diff --git a/cobalt/renderer/rasterizer/skia/gl_format_conversions.h b/cobalt/renderer/rasterizer/skia/gl_format_conversions.h index 4e576d255b66..ef3aa5393e53 100644 --- a/cobalt/renderer/rasterizer/skia/gl_format_conversions.h +++ b/cobalt/renderer/rasterizer/skia/gl_format_conversions.h @@ -18,7 +18,7 @@ #include "cobalt/render_tree/image.h" #include "cobalt/renderer/egl_and_gles.h" #include "third_party/skia/include/gpu/GrTypes.h" -#include "third_party/skia/include/private/GrTypesPriv.h" +#include "third_party/skia/include/private/gpu/ganesh/GrTypesPriv.h" namespace cobalt { namespace renderer { diff --git a/cobalt/renderer/rasterizer/skia/hardware_image.cc b/cobalt/renderer/rasterizer/skia/hardware_image.cc index 8b0192817603..00889454a1e1 100644 --- a/cobalt/renderer/rasterizer/skia/hardware_image.cc +++ b/cobalt/renderer/rasterizer/skia/hardware_image.cc @@ -31,7 +31,7 @@ #include "third_party/skia/include/core/SkPixelRef.h" #include "third_party/skia/include/gpu/GrBackendSurface.h" #include "third_party/skia/include/gpu/gl/GrGLTypes.h" -#include "third_party/skia/src/gpu/GrResourceProvider.h" +#include "third_party/skia/src/gpu/ganesh/GrResourceProvider.h" namespace cobalt { namespace renderer { diff --git a/cobalt/renderer/rasterizer/skia/hardware_rasterizer.cc b/cobalt/renderer/rasterizer/skia/hardware_rasterizer.cc index 939800ab9374..ba16f9780492 100644 --- a/cobalt/renderer/rasterizer/skia/hardware_rasterizer.cc +++ b/cobalt/renderer/rasterizer/skia/hardware_rasterizer.cc @@ -43,8 +43,8 @@ #include "third_party/skia/include/gpu/GrContextOptions.h" #include "third_party/skia/include/gpu/GrDirectContext.h" #include "third_party/skia/include/gpu/gl/GrGLInterface.h" -#include "third_party/skia/src/gpu/GrRenderTarget.h" -#include "third_party/skia/src/gpu/GrResourceProvider.h" +#include "third_party/skia/src/gpu/ganesh/GrRenderTarget.h" +#include "third_party/skia/src/gpu/ganesh/GrResourceProvider.h" namespace { // Some clients call Submit() multiple times with up to 2 different render diff --git a/cobalt/renderer/rasterizer/skia/skia/skia_sources.gni b/cobalt/renderer/rasterizer/skia/skia/skia_sources.gni index 9e4cd871bd14..3ffacd79f999 100644 --- a/cobalt/renderer/rasterizer/skia/skia/skia_sources.gni +++ b/cobalt/renderer/rasterizer/skia/skia/skia_sources.gni @@ -116,7 +116,7 @@ sksl_sources = [ "//third_party/skia/include/sksl/DSLSymbols.h", "//third_party/skia/include/sksl/DSLType.h", "//third_party/skia/include/sksl/DSLVar.h", - "//third_party/skia/include/sksl/SkSLDebugTrace.h", + "//third_party/skia/include/sksl/SkSLOperator.h", "//third_party/skia/src/sksl/SkSLAnalysis.cpp", "//third_party/skia/src/sksl/SkSLAnalysis.h", "//third_party/skia/src/sksl/SkSLBuiltinMap.cpp", @@ -138,12 +138,12 @@ sksl_sources = [ "//third_party/skia/src/sksl/SkSLLexer.h", "//third_party/skia/src/sksl/SkSLMangler.cpp", "//third_party/skia/src/sksl/SkSLMangler.h", - "//third_party/skia/src/sksl/SkSLOperators.cpp", - "//third_party/skia/src/sksl/SkSLOperators.h", + "//third_party/skia/src/sksl/SkSLOperator.cpp", "//third_party/skia/src/sksl/SkSLOutputStream.cpp", "//third_party/skia/src/sksl/SkSLOutputStream.h", "//third_party/skia/src/sksl/SkSLPool.cpp", "//third_party/skia/src/sksl/SkSLPool.h", + "//third_party/skia/src/sksl/SkSLPosition.cpp", "//third_party/skia/src/sksl/SkSLRehydrator.cpp", "//third_party/skia/src/sksl/SkSLRehydrator.h", "//third_party/skia/src/sksl/SkSLSampleUsage.cpp", @@ -159,6 +159,7 @@ sksl_sources = [ "//third_party/skia/src/sksl/analysis/SkSLFinalizationChecks.cpp", "//third_party/skia/src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp", "//third_party/skia/src/sksl/analysis/SkSLIsConstantExpression.cpp", + "//third_party/skia/src/sksl/analysis/SkSLIsSameExpressionTree.cpp", "//third_party/skia/src/sksl/analysis/SkSLProgramUsage.cpp", "//third_party/skia/src/sksl/analysis/SkSLSwitchCaseContainsExit.cpp", "//third_party/skia/src/sksl/codegen/SkSLCodeGenerator.h", @@ -174,6 +175,8 @@ sksl_sources = [ "//third_party/skia/src/sksl/codegen/SkSLSPIRVtoHLSL.h", "//third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.cpp", "//third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.h", + "//third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp", + "//third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.h", "//third_party/skia/src/sksl/dsl/DSLBlock.cpp", "//third_party/skia/src/sksl/dsl/DSLCase.cpp", "//third_party/skia/src/sksl/dsl/DSLCore.cpp", diff --git a/docker/linux/base/Dockerfile b/docker/linux/base/Dockerfile index 16f060aec3aa..c3e580ffe6b3 100644 --- a/docker/linux/base/Dockerfile +++ b/docker/linux/base/Dockerfile @@ -21,6 +21,7 @@ COPY base/clean-after-apt.sh /opt/clean-after-apt.sh ENV PYTHONUNBUFFERED 1 # === Install common dependencies +RUN true RUN apt update -qqy \ && apt -qqy upgrade \ && apt install -qqy --no-install-recommends \ diff --git a/third_party/skia/.bazelrc b/third_party/skia/.bazelrc index 0145ad3c16c9..3e3eb53e4150 100644 --- a/third_party/skia/.bazelrc +++ b/third_party/skia/.bazelrc @@ -1,8 +1,13 @@ +# All of our clang builds should use the hermetic toolchain build:clang --crosstool_top=//toolchain:clang_suite -build:clang --compiler=clang -# Use the default Bazel C++ toolchain to build the tools used during the build. -build:clang --host_crosstool_top=@bazel_tools//tools/cpp:toolchain +# We don't have a great way to test the host system in order to use the right +# version of the toolchain. So we need to have the user specify what their host is. +build:clang_linux --config=clang +build:clang_linux --compiler=host_is_linux_amd64 + +build:clang_mac --config=clang +build:clang_mac --compiler=host_is_mac_M1 # ============================================================================= # Alias to build configurations below. This makes configuring things from @@ -15,13 +20,84 @@ build --flag_alias=include_fontmgr=//bazel/common_config_settings:include_fontmg build --flag_alias=shaper_backend=//bazel/common_config_settings:shaper_backend build --flag_alias=with_gl_standard=//bazel/common_config_settings:with_gl_standard +build --flag_alias=disable_effect_serialization=no//bazel/common_config_settings:enable_effect_serialization +build --flag_alias=enable_effect_serialization=//bazel/common_config_settings:enable_effect_serialization +build --flag_alias=disable_skslc=no//bazel/common_config_settings:enable_skslc +build --flag_alias=enable_skslc=//bazel/common_config_settings:enable_skslc +build --flag_alias=disable_sksl_tracing=no//bazel/common_config_settings:enable_sksl_tracing +build --flag_alias=enable_sksl_tracing=//bazel/common_config_settings:enable_sksl_tracing +build --flag_alias=disable_tracing=no//bazel/common_config_settings:enable_tracing +build --flag_alias=enable_tracing=//bazel/common_config_settings:enable_tracing +build --flag_alias=disable_vma=no//bazel/common_config_settings:use_vulkan_memory_allocator +build --flag_alias=enable_vma=//bazel/common_config_settings:use_vulkan_memory_allocator build --flag_alias=with_icu=//bazel/common_config_settings:use_icu build --flag_alias=with_no_icu=no//bazel/common_config_settings:use_icu -build --flag_alias=disable_tracing=//bazel/common_config_settings:disable_tracing -build --flag_alias=enable_tracing=no//bazel/common_config_settings:disable_tracing -build --flag_alias=disable_effect_serialization=//bazel/common_config_settings:disable_effect_serialization -build --flag_alias=enable_effect_serialization=no//bazel/common_config_settings:disable_effect_serialization # CanvasKit flags build --flag_alias=ck_enable_fonts=//modules/canvaskit:enable_fonts -build --flag_alias=ck_disable_fonts=no//modules/canvaskit:enable_fonts \ No newline at end of file +build --flag_alias=ck_disable_fonts=no//modules/canvaskit:enable_fonts + +# ============================================================================= +# REMOTE BUILD EXECUTION +# ============================================================================= + +# ===== +# The following was copied from https://github.com/bazelbuild/bazel-toolchains/blob/ea243d43269df23de03a797cff2347e1fc3d02bb/bazelrc/bazel-4.1.0.bazelrc +# We should be free to modify this as we see fit. +# +# Depending on how many machines are in the remote execution instance, setting +# this higher can make builds faster by allowing more jobs to run in parallel. +# Setting it too high can result in jobs that timeout, however, while waiting +# for a remote machine to execute them. +build:remote --jobs=50 + +# Set several flags related to specifying the platform, toolchain and java +# properties. +build:remote --java_runtime_version=rbe_jdk +build:remote --tool_java_runtime_version=rbe_jdk + +build:remote --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 +# Platform flags: +# The toolchain container used for execution is defined in the target indicated +# by "extra_execution_platforms", "host_platform" and "platforms". +# More about platforms: https://docs.bazel.build/versions/master/platforms.html + +# Starting with Bazel 0.27.0 strategies do not need to be explicitly +# defined. See https://github.com/bazelbuild/bazel/issues/7480 +build:remote --define=EXECUTOR=remote + +# Enable remote execution so actions are performed on the remote systems. +build:remote --remote_executor=grpcs://remotebuildexecution.googleapis.com + +# Enforce stricter environment rules, which eliminates some non-hermetic +# behavior and therefore improves both the remote cache hit rate and the +# correctness and repeatability of the build. +build:remote --incompatible_strict_action_env=true + +# 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 + +# Enable authentication. This will pick up application default credentials by +# default. You can use --google_credentials=some_file.json to use a service +# account credential instead. +# See https://developers.google.com/remote-build-execution/docs/authentication +build:remote --google_default_credentials=true + +# End of the copied RBE settings +#===== + +# Use the RBE instance on the skia-rbe GCP project. +build:remote --remote_instance_name projects/skia-rbe/instances/default_instance + +# These settings are specific to compiling on our Linux RBE workers. For example, +# Use the worker pool as specified by the gce_linux_platform platform in +# //bazel/rbe/BUILD.bazel. +build:linux-rbe --config=remote +# Use our hermetic toolchain instead of the clang in the toolchain. +build:linux-rbe --crosstool_top=//toolchain:clang_suite +# We want to run on this RBE platform +build:linux-rbe --extra_execution_platforms=//bazel/rbe:gce_linux_platform +# On the RBE instances, this Java and C++ toolchain are available +build:linux-rbe --extra_toolchains=//bazel/rbe/gce_linux/java:all +build:linux-rbe --extra_toolchains=//bazel/rbe/gce_linux/config:cc-toolchain diff --git a/third_party/skia/.gn b/third_party/skia/.gn index 29e83234de73..85002a9c55a3 100644 --- a/third_party/skia/.gn +++ b/third_party/skia/.gn @@ -1,4 +1,5 @@ buildconfig = "//gn/BUILDCONFIG.gn" +script_executable = "python3" default_args = { angle_standalone = false diff --git a/third_party/skia/AUTHORS b/third_party/skia/AUTHORS index dd01e8b2989a..dc0697547fd8 100755 --- a/third_party/skia/AUTHORS +++ b/third_party/skia/AUTHORS @@ -75,6 +75,7 @@ Vibe Inc <*@vibe.us> Scene Group Ltd. <*@scenegroup.co> LG Electronics <*@lge.com> Shekhar Dutta +ColdPaleLight # Trusted service accounts. Recipe roller SA diff --git a/third_party/skia/BUILD.bazel b/third_party/skia/BUILD.bazel index 8157279b35a5..2e24d0b36263 100644 --- a/third_party/skia/BUILD.bazel +++ b/third_party/skia/BUILD.bazel @@ -1,7 +1,6 @@ -# https://github.com/bazelbuild/bazel-skylib -load("@bazel_skylib//lib:selects.bzl", "selects") -load("//bazel:macros.bzl", "select_multi") -load("@bazel_gazelle//:def.bzl", "gazelle") +load("//bazel:macros.bzl", "gazelle", "select_multi", "selects") + +licenses(["notice"]) package(default_visibility = ["//:__subpackages__"]) @@ -53,13 +52,12 @@ CORE_DEPS = [ "//src/shaders:srcs", "//src/utils:srcs", "//third_party:skcms", -] + selects.with_or({ - # https://github.com/bazelbuild/bazel-skylib/blob/main/docs/selects_doc.md#selectswith_or - ("//bazel/common_config_settings:gl_backend", "//bazel/common_config_settings:vulkan_backend"): [ - "//src/gpu:srcs", +] + select({ + "//bazel/common_config_settings:has_gpu_backend": [ + "//src/gpu/ganesh:srcs", "//src/sksl:srcs", # TODO(kjlubick) should mock be test only? - "//src/gpu:mock_srcs", + "//src/gpu/ganesh:mock_srcs", ], "//conditions:default": [], }) + select_multi( diff --git a/third_party/skia/BUILD.gn b/third_party/skia/BUILD.gn index dc81d8c1b421..a03c03d085e6 100644 --- a/third_party/skia/BUILD.gn +++ b/third_party/skia/BUILD.gn @@ -97,6 +97,9 @@ config("skia_private") { defines += [ "GRAPHITE_TEST_UTILS=1" ] } } + if (skia_compare_vm_vs_rp) { + defines += [ "SKIA_COMPARE_VM_VS_RP" ] + } libs = [] lib_dirs = [] if (skia_use_gl && skia_use_angle) { @@ -625,42 +628,29 @@ if (skia_lex) { } } -# `Compile SkSL Tests` relies on skslc. -if (skia_compile_sksl_tests) { - skia_executable("skslc") { +if (skia_compile_modules || skia_compile_sksl_tests) { + # Copy the module source files into the out directory. + copy("sksl_pre_includes") { + sources = [ + "src/sksl/sksl_frag.sksl", + "src/sksl/sksl_gpu.sksl", + "src/sksl/sksl_public.sksl", + "src/sksl/sksl_rt_shader.sksl", + "src/sksl/sksl_vert.sksl", + ] + outputs = [ "$root_out_dir/{{source_file_part}}" ] + } +} + +if (skia_compile_modules) { + # Generate the sksl-precompile binary. + skia_executable("sksl-precompile") { defines = [ "SKSL_STANDALONE", "SK_DISABLE_TRACING", - "SK_ENABLE_SPIRV_CROSS", - "SK_ENABLE_SPIRV_VALIDATION", - ] - sources = [ - "src/core/SkArenaAlloc.cpp", - "src/core/SkBlockAllocator.cpp", - "src/core/SkCpu.cpp", - "src/core/SkData.cpp", - "src/core/SkHalf.cpp", - "src/core/SkMalloc.cpp", - "src/core/SkMath.cpp", - "src/core/SkMatrixInvert.cpp", - "src/core/SkSemaphore.cpp", - "src/core/SkStream.cpp", - "src/core/SkString.cpp", - "src/core/SkStringUtils.cpp", - "src/core/SkThreadID.cpp", - "src/core/SkUtils.cpp", - "src/core/SkVM.cpp", - "src/gpu/GrMemoryPool.cpp", - "src/ports/SkMemory_malloc.cpp", - "src/ports/SkOSFile_stdio.cpp", - "src/sksl/SkSLMain.cpp", - "src/utils/SkJSON.cpp", - "src/utils/SkJSONWriter.cpp", - "src/utils/SkParse.cpp", - "src/utils/SkShaderUtils.cpp", - "src/utils/SkUTF.cpp", - "src/utils/SkVMVisualizer.cpp", ] + sources = skslc_deps + sources += [ "tools/sksl-precompile/SkSLPrecompile.cpp" ] libs = [] if (is_win) { sources += [ "src/ports/SkOSFile_win.cpp" ] @@ -671,35 +661,19 @@ if (skia_compile_sksl_tests) { sources += skia_sksl_sources sources += skia_sksl_gpu_sources include_dirs = [ "." ] - deps = [ - ":run_sksllex", - ":skvm_jit", - "//third_party/externals/spirv-tools:spvtools", - "//third_party/externals/spirv-tools:spvtools_val", - "//third_party/spirv-cross:spirv_cross", - ] + deps = [ ":run_sksllex" ] } - skslc_path = "$root_out_dir/" + sksl_precompile_path = "$root_out_dir/" if (host_toolchain != default_toolchain_name) { - skslc_path += "$host_toolchain/" + sksl_precompile_path += "$host_toolchain/" } - skslc_path += "skslc" + sksl_precompile_path += "sksl-precompile" if (host_os == "win") { - skslc_path += ".exe" - } - - copy("sksl_pre_includes") { - sources = [ - "src/sksl/sksl_frag.sksl", - "src/sksl/sksl_gpu.sksl", - "src/sksl/sksl_public.sksl", - "src/sksl/sksl_rt_shader.sksl", - "src/sksl/sksl_vert.sksl", - ] - outputs = [ "$root_out_dir/{{source_file_part}}" ] + sksl_precompile_path += ".exe" } + # Use dehydrate_sksl.py to precompile all of the modules. dehydrate_sksl_sources = get_target_outputs(":sksl_pre_includes") dehydrate_sksl_outputs = [] @@ -716,13 +690,13 @@ if (skia_compile_sksl_tests) { action("dehydrate_sksl") { script = "gn/dehydrate_sksl.py" deps = [ + ":sksl-precompile(//gn/toolchain:$host_toolchain)", ":sksl_pre_includes", - ":skslc(//gn/toolchain:$host_toolchain)", ] sources = dehydrate_sksl_sources outputs = dehydrate_sksl_outputs args = [ - rebase_path(skslc_path), + rebase_path(sksl_precompile_path), rebase_path("src/sksl/generated"), ] args += rebase_path(dehydrate_sksl_sources) @@ -732,9 +706,50 @@ if (skia_compile_sksl_tests) { } } +# `Compile SkSL Tests` relies on skslc and the precompiled modules. if (skia_compile_sksl_tests) { - import("gn/sksl_tests.gni") + # Build skslc. + skia_executable("skslc") { + defines = [ + "SKSL_ENABLE_TRACING", + "SKSL_STANDALONE", + "SK_DISABLE_TRACING", + "SK_ENABLE_SPIRV_CROSS", + "SK_ENABLE_SPIRV_VALIDATION", + ] + sources = skslc_deps + sources += [ "tools/skslc/Main.cpp" ] + libs = [] + if (is_win) { + sources += [ "src/ports/SkOSFile_win.cpp" ] + } else { + sources += [ "src/ports/SkOSFile_posix.cpp" ] + libs += [ "dl" ] + } + sources += skia_sksl_sources + sources += skia_sksl_gpu_sources + sources += skia_sksl_tracing_sources + include_dirs = [ "." ] + deps = [ + ":run_sksllex", + ":skvm_jit", + "//third_party/externals/spirv-tools:spvtools", + "//third_party/externals/spirv-tools:spvtools_val", + "//third_party/spirv-cross:spirv_cross", + ] + } + skslc_path = "$root_out_dir/" + if (host_toolchain != default_toolchain_name) { + skslc_path += "$host_toolchain/" + } + skslc_path += "skslc" + if (host_os == "win") { + skslc_path += ".exe" + } + + # Build the test files using skslc. + import("gn/sksl_tests.gni") template("compile_sksl") { # Compile the passed-in `sources` into `outputs` using skslc, with the given language/settings. action("compile_sksl_${target_name}") { @@ -761,15 +776,8 @@ if (skia_compile_sksl_tests) { src = resourcesDir + partialPath dir = get_path_info(dst, "dir") - - # We want to support double-extensions (for '.dsl.cpp') but GN doesn't natively handle this. - # Workaround: http://go/ggroup/a/chromium.org/g/gn-dev/c/RdEpjeYtb-4 - # For input path "file.aa.bb", name will contain "file" and ext will contain ".aa.bb". - # For input path "file.cc", name will contain "file" and ext will contain ".cc". - nameTmp = get_path_info(dst, "name") - name = get_path_info(nameTmp, "name") - ext = get_path_info(nameTmp, "extension") - ext += get_path_info(dst, "extension") + name = get_path_info(dst, "name") + ext = get_path_info(dst, "extension") response_file_contents += rebase_path([ src, dir, @@ -824,6 +832,12 @@ if (skia_compile_sksl_tests) { lang = "--spirv" settings = "--settings" } + compile_sksl("wgsl_tests") { + sources = sksl_wgsl_tests_sources + outExtensions = [ ".wgsl" ] + lang = "--wgsl" + settings = "--settings" + } } else { group("compile_sksl_glsl_tests") { } @@ -835,12 +849,24 @@ if (skia_compile_sksl_tests) { } group("compile_sksl_spirv_tests") { } + group("compile_sksl_wgsl_tests") { + } } optional("gpu_shared") { enabled = skia_enable_gpu || skia_enable_graphite - sources = skia_shared_gpu_sources + deps = [] + public_defines = [] + + if (skia_use_direct3d) { + # Must be defined when 'skia_sksl_gpu_sources' is built, even if the rest of skia_use_direct3d + # is handled only in the 'gpu' component. + public_defines += [ "SK_ENABLE_SPIRV_CROSS" ] + deps += [ "//third_party/spirv-cross:spirv_cross" ] + } + + sources = skia_shared_gpu_sources + skia_sksl_gpu_sources } optional("gpu") { @@ -862,7 +888,7 @@ optional("gpu") { public_configs = [] public_deps = [] - sources = skia_gpu_sources + skia_sksl_gpu_sources + sources = skia_gpu_sources if (!skia_enable_skgpu_v1) { sources -= skia_skgpu_v1_sources } @@ -874,8 +900,8 @@ optional("gpu") { public_defines += [ "SK_GL" ] if (is_android) { sources += [ - "src/gpu/gl/egl/GrGLMakeEGLInterface.cpp", - "src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp", + "src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp", + "src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp", ] # this lib is required to link against AHardwareBuffer @@ -884,29 +910,29 @@ optional("gpu") { } } else if (skia_use_egl) { sources += [ - "src/gpu/gl/egl/GrGLMakeEGLInterface.cpp", - "src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp", + "src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp", + "src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp", ] libs += [ "EGL" ] } else if (skia_use_webgl) { - sources += [ "src/gpu/gl/webgl/GrGLMakeNativeInterface_webgl.cpp" ] + sources += [ "src/gpu/ganesh/gl/webgl/GrGLMakeNativeInterface_webgl.cpp" ] } else if (is_linux && skia_use_x11) { sources += [ - "src/gpu/gl/glx/GrGLMakeGLXInterface.cpp", - "src/gpu/gl/glx/GrGLMakeNativeInterface_glx.cpp", + "src/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.cpp", + "src/gpu/ganesh/gl/glx/GrGLMakeNativeInterface_glx.cpp", ] libs += [ "GL" ] } else if (is_mac) { - sources += [ "src/gpu/gl/mac/GrGLMakeNativeInterface_mac.cpp" ] + sources += [ "src/gpu/ganesh/gl/mac/GrGLMakeNativeInterface_mac.cpp" ] } else if (is_ios) { - sources += [ "src/gpu/gl/iOS/GrGLMakeNativeInterface_iOS.cpp" ] + sources += [ "src/gpu/ganesh/gl/iOS/GrGLMakeNativeInterface_iOS.cpp" ] } else if (is_win && !skia_enable_winuwp) { - sources += [ "src/gpu/gl/win/GrGLMakeNativeInterface_win.cpp" ] + sources += [ "src/gpu/ganesh/gl/win/GrGLMakeNativeInterface_win.cpp" ] if (target_cpu != "arm64") { libs += [ "OpenGL32.lib" ] } } else { - sources += [ "src/gpu/gl/GrGLMakeNativeInterface_none.cpp" ] + sources += [ "src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp" ] } sources += skia_gl_gpu_sources } @@ -939,14 +965,14 @@ optional("gpu") { if (skia_use_dawn) { public_defines += [ "SK_DAWN" ] sources += skia_dawn_sources - public_deps += [ "//third_party/externals/dawn/src/dawn:dawn_headers" ] + public_deps += [ "//third_party/externals/dawn/include/dawn:cpp_headers" ] deps += [ - "//third_party/externals/dawn/src/dawn:dawn_proc", - "//third_party/externals/dawn/src/dawn:dawncpp", + "//third_party/externals/dawn/src/dawn:cpp", + "//third_party/externals/dawn/src/dawn:proc", ] if (dawn_enable_d3d12 || dawn_enable_desktop_gl || dawn_enable_metal || dawn_enable_opengles || dawn_enable_vulkan) { - deps += [ "//third_party/externals/dawn/src/dawn_native" ] + deps += [ "//third_party/externals/dawn/src/dawn/native" ] } if (dawn_enable_d3d12) { libs += [ @@ -960,14 +986,8 @@ optional("gpu") { } if (skia_use_direct3d) { - public_defines += [ - "SK_DIRECT3D", - "SK_ENABLE_SPIRV_CROSS", - ] - deps += [ - "//third_party/d3d12allocator", - "//third_party/spirv-cross:spirv_cross", - ] + public_defines += [ "SK_DIRECT3D" ] + deps += [ "//third_party/d3d12allocator" ] sources += skia_direct3d_sources if (skia_enable_direct3d_debug_layer) { public_defines += [ "SK_ENABLE_D3D_DEBUG_LAYER" ] @@ -994,7 +1014,7 @@ optional("gpu") { cflags_objcc += [ "-fobjc-arc" ] } - if (is_debug) { + if (is_debug || skia_build_for_debugger) { public_defines += [ "SK_ENABLE_DUMP_GPU" ] } } @@ -1363,6 +1383,15 @@ skia_component("skia") { if (skia_enable_sksl) { deps += [ ":dehydrate_sksl" ] sources += skia_sksl_sources + + if (skia_enable_sksl_tracing) { + defines += [ "SKSL_ENABLE_TRACING" ] + sources += skia_sksl_tracing_sources + } + } + + if (skia_build_for_debugger) { + defines += [ "SK_BUILD_FOR_DEBUGGER" ] } if (is_win) { @@ -2039,6 +2068,8 @@ if (skia_enable_tools) { sources = [ "tests/Test.cpp", "tests/Test.h", + "tests/TestHarness.cpp", + "tests/TestHarness.h", "tests/TestUtils.cpp", "tests/TestUtils.h", ] @@ -2081,7 +2112,6 @@ if (skia_enable_tools) { ":skia", ":test", ":tool_utils", - "experimental/skrive:tests", "experimental/sktext:tests", "modules/skottie:tests", "modules/skparagraph:tests", @@ -2212,7 +2242,6 @@ if (skia_enable_tools) { ":tests", ":tool_utils", ":trace", - "experimental/skrive", "modules/skottie", "modules/skottie:utils", "modules/svg", @@ -2476,6 +2505,7 @@ if (skia_enable_tools) { sources = [ "dm/DMGpuTestProcs.cpp", "tools/skqp/src/skqp.cpp", + "tools/skqp/src/skqp.h", ] deps = [ ":gm", @@ -2791,8 +2821,6 @@ if (skia_enable_tools) { "tools/viewer/SKPSlide.h", "tools/viewer/SampleSlide.cpp", "tools/viewer/SampleSlide.h", - "tools/viewer/SkRiveSlide.cpp", - "tools/viewer/SkRiveSlide.h", "tools/viewer/SkSLDebuggerSlide.cpp", "tools/viewer/SkSLDebuggerSlide.h", "tools/viewer/SkSLSlide.cpp", @@ -2824,7 +2852,6 @@ if (skia_enable_tools) { ":skia", ":tool_utils", ":trace", - "experimental/skrive", "experimental/sktext", "modules/audioplayer", "modules/particles", @@ -2860,6 +2887,19 @@ if (skia_enable_tools) { } } + if (skia_use_vulkan) { + test_app("VulkanBasic") { + # Bots and even devs may not have Vulkan headers, so put + # include/third_party/vulkan on our path so they're always available. + all_dependent_configs = [ ":our_vulkan_headers" ] + + sources = [ "example/VulkanBasic.cpp" ] + sources += [ "tools/gpu/vk/VkTestUtils.h" ] + sources += [ "tools/gpu/vk/VkTestUtils.cpp" ] + deps = [ ":skia" ] + } + } + if (skia_qt_path != "" && (is_win || is_linux || is_mac)) { action_foreach("generate_mocs") { script = "gn/call.py" diff --git a/third_party/skia/DEPS b/third_party/skia/DEPS index d272f2aa2005..870aa3b6d531 100644 --- a/third_party/skia/DEPS +++ b/third_party/skia/DEPS @@ -6,50 +6,54 @@ 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:0056074ae4f8d12d03946b968daea6a73943017f', + 'sk_tool_revision': 'git_revision:0a929d25e606b9059bde4052385df6b87840b35e', } deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@e5045587752d091991ec9a19646e973a7f99da02", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@8718783526307a3fbb35d4c1ad4e8101262a0d73", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@e61745a6b7add50d380cfd7d3883dd6c62fc2c71", "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@6cc74dce933e6164dc5b2d3bf2cc4d1c8e2e4f2b", + "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@088a600b03679cd20991f145173a573ed9c03480", "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/tint" : "https://dawn.googlesource.com/tint@afb02e8ec7cd8214034136b1290ebe800f217d72", - "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@789af048b388657987c59d4da406859034fe310f", + "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@c5a424a2a21005660b182516eb7a079cd8021699", "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@fc645b7626ebf86530dbd82fbece74d457e7ae07", "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@a28238bdeebc087071777001245df1876a11f5ee", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@5e9caaee7885cbc82f9f821bbec7f6c86f25b33a", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@a8b7f1880412c7f0c9ecdada0a4935011816c7dc", + "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@a8e4563c3418ed74d39019a6c5e2122d12c8f56f", + "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@8d1b000a3edc90c12267b836b4ef3f81c0e53edc", "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", "third_party/externals/libgifcodec" : "https://skia.googlesource.com/libgifcodec@fd59fa92a0c86788dcdd84d091e1ce81eda06a77", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@02959c3ee17abacfd1339ec22ea93301292ffd56", + "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@22f1a22c99e9dde8cd3c72ead333f425c5a7aa77", "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@386707c6d19b974ca2e3db7f5c61873813c6fe44", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@69c7f16111ec582bf1e7cb4d0d4f8d127e28a715", + "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@20ef03ee351d4ff03fc5ff3ec4804a879d1b9d5c", "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", "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/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@0e2880ab990e79ce6cc8c79c219feda42d98b1e8", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@814e728b30ddd0f4509233099a3ad96fd4318c07", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@4b092d2ab81854e61632bdd1e658907f0071c37e", - "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@4228bb95b5b56f6b0f9ded5c7910bbe773a4c9d2", + "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@1d450ae99a0f4ade28dd55dac962f8b28d990376", + # 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@565408992c44e7d969af8c417a0f72730a85c880", + "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@6a67891418a3f08be63f92726e049dc788e46f5b", + "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@82becc8a8a92e509d3d8d635889da0a3c17d0606", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@cb96abbf7affd986016f17dd09f9f971138a922b", + "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@76f00ef6cbb1886eb1162d1fa39bee8b51e22ee8", + "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@fa288188b574d9eee31cd52c5432780b6a46a412", #"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@600cd96cf47788ee3a74b40a6028b035c9fd6a61", "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@c876c8f87101c5a75f6014b0f832499afeb65b73", "../src": { - "url": "https://chromium.googlesource.com/chromium/src.git@8fa4c936281662f1ad1c97ffece6000052108b6a", + "url": "https://chromium.googlesource.com/chromium/src.git@91a2fd838a6a7ee5c442f5b61945e3cdc6c78649", "condition": "checkout_chromium", }, diff --git a/third_party/skia/OWNERS.android b/third_party/skia/OWNERS.android new file mode 100644 index 000000000000..e8efb8cf82f7 --- /dev/null +++ b/third_party/skia/OWNERS.android @@ -0,0 +1,10 @@ +#Bug component: 1346 +# This file uses '*' instead of naming specific owners because we are unable to +# list the autoroller as an owner (see b/199385287 and skbug.com/12454), so this +# would prevent the autoroller from working. Please get a review from one of the +# following: +# - djsollen@google.com +# - scroggo@google.com +# - skia-staff@google.com +* + diff --git a/third_party/skia/PRESUBMIT.py b/third_party/skia/PRESUBMIT.py index b6a53c1f8f40..0c9875103072 100644 --- a/third_party/skia/PRESUBMIT.py +++ b/third_party/skia/PRESUBMIT.py @@ -118,7 +118,8 @@ def _CopyrightChecks(input_api, output_api, source_file_filter=None): for affected_file in input_api.AffectedSourceFiles(source_file_filter): if ('third_party/' in affected_file.LocalPath() or - 'tests/sksl/' in affected_file.LocalPath()): + 'tests/sksl/' in affected_file.LocalPath() or + 'bazel/rbe/' in affected_file.LocalPath()): continue contents = input_api.ReadFile(affected_file, 'rb') if not re.search(copyright_pattern, contents): diff --git a/third_party/skia/RELEASE_NOTES.txt b/third_party/skia/RELEASE_NOTES.txt index f27912348abe..5feec5ce4631 100644 --- a/third_party/skia/RELEASE_NOTES.txt +++ b/third_party/skia/RELEASE_NOTES.txt @@ -2,6 +2,30 @@ Skia Graphics Release Notes This file includes a list of high level updates for each milestone release. +Milestone 102 +------------- + * Add glGetFloatv and glSamplerParameterf to GrGLInterface. + * GrGLCreateNativeInterface is removed. Use GrGLMakeNativeInterface. + * GrContextOptions::fSharpenMipmappedTextures is removed. MIP LOD is now always + biased on the GPU backend. The CPU backend implementation is modified to match + this behavior. + * Passing SkCanvas::kStrict_SrcRectConstraint disables mipmapping. The old behavior differed + between GPU and CPU. CPU always computed a new set of mipmap based on the subset. GPU restricted + the sampling coordinates to the subset in the base level but upper level pixels that map to + pixels outside the subset in the base level were still used. To get the previous CPU behavior + use SkImage::makeSubset() to make a subset image and draw that. The previous GPU behavior is + similar, though not exactly, equivalent to making a mipmapped image shader from the original + image and applying that to a rectangle. + +* * * + +Milestone 101 +------------- + * Add maxSurfaceSampleCountForColorType(SkColorType ct) in GrContextThreadSafeProxy + * Enums SkAlphaType and SkColorType are broken out into their own header files in include/core/ + +* * * + Milestone 100 ------------- * Skia now requires C++17 and the corresponding standard library (or newer). @@ -16,7 +40,7 @@ Milestone 100 shader to produce opaque output, do so in the shader's SkSL code. This can be done by adjusting any `return` statement in your shader with a swizzle: `return color.rgb1;`. https://review.skia.org/506462 - + * SkRSXform is now exported to DLL/.so files. * * * Milestone 99 @@ -34,7 +58,7 @@ Milestone 99 https://review.skia.org/481416 * Added a new variant of SkImageFilters::RuntimeShader that supports multiple child nodes. https://review.skia.org/489536 - * Add the ability to specifiy palette overrides in SkFontArguments. Implemented + * Add the ability to specify palette overrides in SkFontArguments. Implemented for the FreeType-backed SkFontMgrs. * * * diff --git a/third_party/skia/WORKSPACE.bazel b/third_party/skia/WORKSPACE.bazel index 25a69f2428ea..cd4b19de462c 100644 --- a/third_party/skia/WORKSPACE.bazel +++ b/third_party/skia/WORKSPACE.bazel @@ -1,7 +1,10 @@ workspace(name = "skia") +load("//toolchain:download_toolchains.bzl", "download_toolchains_for_skia") + +download_toolchains_for_skia("clang_linux_amd64", "clang_mac_m1") + load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("//toolchain:build_toolchain.bzl", "build_cpp_toolchain") # See https://github.com/emscripten-core/emsdk/tree/85d27a4a2a60d591613a305b14ae438c2bb3ce11/bazel#setup-instructions http_archive( @@ -16,17 +19,14 @@ http_archive( load("@emsdk//:deps.bzl", emsdk_deps = "deps") +# One of the deps here is build_bazel_rules_nodejs, currently version 4.4.1 +# 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.4") -build_cpp_toolchain( - # Meant to run on amd64 linux and compile for amd64 linux. - name = "clang_linux_amd64", -) - http_archive( name = "bazel_skylib", sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d", @@ -40,15 +40,53 @@ load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") bazel_skylib_workspace() +http_archive( + name = "bazel_toolchains", + sha256 = "e52789d4e89c3e2dc0e3446a9684626a626b6bec3fde787d70bae37c6ebcc47f", + strip_prefix = "bazel-toolchains-5.1.1", + urls = [ + "https://github.com/bazelbuild/bazel-toolchains/archive/refs/tags/v5.1.1.tar.gz", + "https://storage.googleapis.com/skia-world-readable/bazel/e52789d4e89c3e2dc0e3446a9684626a626b6bec3fde787d70bae37c6ebcc47f.tar.gz", + ], +) + +load("@bazel_toolchains//repositories:repositories.bzl", bazel_toolchains_repositories = "repositories") + +bazel_toolchains_repositories() + +####################################################################################### +# Python +####################################################################################### + +# https://github.com/bazelbuild/rules_python http_archive( name = "rules_python", - sha256 = "cd6730ed53a002c56ce4e2f396ba3b3be262fd7cb68339f0377a45e8227fe332", + sha256 = "9fcf91dbcc31fde6d1edb15f117246d912c33c36f44cf681976bd886538deba6", + strip_prefix = "rules_python-0.8.0", urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_python/releases/download/0.5.0/rules_python-0.5.0.tar.gz", - "https://github.com/bazelbuild/rules_python/releases/download/0.5.0/rules_python-0.5.0.tar.gz", + "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.8.0.tar.gz", + "https://storage.googleapis.com/skia-world-readable/bazel/9fcf91dbcc31fde6d1edb15f117246d912c33c36f44cf681976bd886538deba6.tar.gz", ], ) +# This sets up a hermetic python3, rather than depending on what is installed. +load("@rules_python//python:repositories.bzl", "python_register_toolchains") + +python_register_toolchains( + name = "python3_9", + # https://github.com/bazelbuild/rules_python/blob/main/python/versions.bzl + python_version = "3.9", +) + +load("@python3_9//:defs.bzl", "interpreter") +load("@rules_python//python:pip.bzl", "pip_install") + +pip_install( + name = "py_deps", + python_interpreter_target = interpreter, + requirements = "//:requirements.txt", +) + ####################################################################################### # Gazelle ####################################################################################### @@ -82,3 +120,74 @@ go_rules_dependencies() go_register_toolchains(version = "1.17.2") gazelle_dependencies(go_repository_default_config = "//:WORKSPACE.bazel") + +# Because the skia infra repo has a dependency on google.golang.org/grpc (aka +# @org_golang_google_grpc), we need to have this library available to build protos. +# https://github.com/bazelbuild/rules_go#protobuf-and-grpc +http_archive( + name = "com_google_protobuf", + sha256 = "d0f5f605d0d656007ce6c8b5a82df3037e1d8fe8b121ed42e536f569dec16113", + strip_prefix = "protobuf-3.14.0", + urls = [ + "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz", + "https://github.com/protocolbuffers/protobuf/archive/v3.14.0.tar.gz", + ], +) + +load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") + +protobuf_deps() + +################################################### +# JavaScript / TypeScript rules and dependencies. # +################################################### + +# The npm_install rule runs anytime the package.json or package-lock.json file changes. It also +# extracts any Bazel rules distributed in an npm package. +load("@build_bazel_rules_nodejs//:index.bzl", "npm_install") + +# Manages the node_modules directory. +npm_install( + name = "npm", + package_json = "//:package.json", + package_lock_json = "//:package-lock.json", +) + +# io_bazel_rules_webtesting allows us to download browsers in a hermetic, repeatable way. This +# currently includes Chromium and Firefox. Note that the version on this does not necessarily +# match the version below of the browsers-X.Y.Z below that is available. +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", + ], +) + +# https://github.com/bazelbuild/rules_webtesting/blob/e9cf17123068b1123c68219edf9b274bf057b9cc/web/versioned/browsers-0.3.3.bzl +load("@io_bazel_rules_webtesting//web/versioned:browsers-0.3.3.bzl", "browser_repositories") + +browser_repositories( + chromium = True, + firefox = True, +) + +################################################### +# External C++ deps with Bazel support # +################################################### +local_repository( + name = "abseil_cpp", + path = "third_party/externals/abseil-cpp", +) + +local_repository( + name = "spirv_tools", + path = "third_party/externals/spirv-tools", +) + +local_repository( + # This name is important because spirv_tools expects @spirv_headers to exist by that name. + name = "spirv_headers", + path = "third_party/externals/spirv-headers", +) diff --git a/third_party/skia/animations/checkbox.xml b/third_party/skia/animations/checkbox.xml deleted file mode 100644 index 7750c36aed86..000000000000 --- a/third_party/skia/animations/checkbox.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/third_party/skia/animations/chest#1.jpg b/third_party/skia/animations/chest#1.jpg deleted file mode 100644 index 9ef7194df240..000000000000 Binary files a/third_party/skia/animations/chest#1.jpg and /dev/null differ diff --git a/third_party/skia/animations/fire#1.jpg b/third_party/skia/animations/fire#1.jpg deleted file mode 100644 index 6269ff7b037f..000000000000 Binary files a/third_party/skia/animations/fire#1.jpg and /dev/null differ diff --git a/third_party/skia/animations/images#1.xml b/third_party/skia/animations/images#1.xml deleted file mode 100644 index c6ad7a650963..000000000000 --- a/third_party/skia/animations/images#1.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/third_party/skia/animations/jet#1.jpg b/third_party/skia/animations/jet#1.jpg deleted file mode 100644 index 1a5a3e736737..000000000000 Binary files a/third_party/skia/animations/jet#1.jpg and /dev/null differ diff --git a/third_party/skia/animations/lines#1.xml b/third_party/skia/animations/lines#1.xml deleted file mode 100644 index fe120a17baee..000000000000 --- a/third_party/skia/animations/lines#1.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/third_party/skia/animations/movie#1.xml b/third_party/skia/animations/movie#1.xml deleted file mode 100644 index 872c7c2e25c0..000000000000 --- a/third_party/skia/animations/movie#1.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/third_party/skia/animations/paths#1.xml b/third_party/skia/animations/paths#1.xml deleted file mode 100644 index 7e14f92f70af..000000000000 --- a/third_party/skia/animations/paths#1.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/third_party/skia/animations/redcross#1.jpg b/third_party/skia/animations/redcross#1.jpg deleted file mode 100644 index 0bbae0438fcd..000000000000 Binary files a/third_party/skia/animations/redcross#1.jpg and /dev/null differ diff --git a/third_party/skia/animations/text#1.xml b/third_party/skia/animations/text#1.xml deleted file mode 100644 index 5a279b688df4..000000000000 --- a/third_party/skia/animations/text#1.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/third_party/skia/bazel/BUILD.bazel b/third_party/skia/bazel/BUILD.bazel index cb463bf1b4f9..3412c85f677d 100644 --- a/third_party/skia/bazel/BUILD.bazel +++ b/third_party/skia/bazel/BUILD.bazel @@ -1,6 +1,11 @@ load("//bazel:macros.bzl", "select_multi") -GENERAL_DEFINES = ["SK_HAS_ANDROID_CODEC"] + select({ +licenses(["notice"]) + +GENERAL_DEFINES = [ + "SK_HAS_ANDROID_CODEC", + "SKIA_IMPLEMENTATION=1", +] + select({ "//bazel/common_config_settings:debug_build": [ "SK_DEBUG", ], @@ -11,10 +16,10 @@ GENERAL_DEFINES = ["SK_HAS_ANDROID_CODEC"] + select({ "SK_RELEASE", ], }) + select({ - "//bazel/common_config_settings:disable_tracing_true": ["SK_DISABLE_TRACING"], + "//bazel/common_config_settings:enable_tracing_false": ["SK_DISABLE_TRACING"], "//conditions:default": [], }) + select({ - "//bazel/common_config_settings:disable_effect_serialization_true": ["SK_DISABLE_EFFECT_DESERIALIZATION"], + "//bazel/common_config_settings:enable_effect_serialization_false": ["SK_DISABLE_EFFECT_DESERIALIZATION"], "//conditions:default": [], }) + select({ "//bazel/common_config_settings:is_skia_dev_build_true": [ @@ -22,6 +27,19 @@ GENERAL_DEFINES = ["SK_HAS_ANDROID_CODEC"] + select({ "SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=1", ], "//conditions:default": [], +}) + select({ + "//bazel/common_config_settings:enable_skslc_true": [ + "SKSL_STANDALONE", + "SK_DISABLE_TRACING", + "SK_ENABLE_SPIRV_CROSS", + "SK_ENABLE_SPIRV_VALIDATION", + ], + "//conditions:default": [], +}) + select({ + "//bazel/common_config_settings:enable_sksl_tracing_true": [ + "SKSL_ENABLE_TRACING", + ], + "//conditions:default": [], }) GPU_DEFINES = select({ @@ -33,6 +51,11 @@ GPU_DEFINES = select({ "SK_VULKAN", "SK_SUPPORT_GPU=1", ], + "//bazel/common_config_settings:dawn_backend": [ + "SK_DAWN", + "SK_SUPPORT_GPU=1", + "VK_USE_PLATFORM_XCB_KHR", # TODO(kjlubick) support dawn's dawn_enable_vulkan etc + ], "//conditions:default": [ "SK_SUPPORT_GPU=0", ], @@ -48,6 +71,11 @@ GPU_DEFINES = select({ "SK_USE_WEBGL", ], "//conditions:default": [], +}) + select({ + "//bazel/common_config_settings:vulkan_with_vma": [ + "SK_USE_VMA", + ], + "//conditions:default": [], }) CODEC_DEFINES = select_multi( diff --git a/third_party/skia/bazel/Makefile b/third_party/skia/bazel/Makefile index c3101b1f9746..f4065ed01fcb 100644 --- a/third_party/skia/bazel/Makefile +++ b/third_party/skia/bazel/Makefile @@ -7,7 +7,9 @@ generate: modules/skshaper modules/svg modules/skresources modules/skparagraph modules/skunicode \ modules/skottie modules/skresources modules/sksg experimental/ffmpeg \ modules/particles \ - experimental/bazel_test experimental/graphite example + experimental/bazel_test example \ + modules/canvaskit/go \ + infra/bots/task_drivers # This target should be run after the go.mod file is updated (e.g. version rolls or new updates) gazelle_update_repo: @@ -17,7 +19,42 @@ gazelle_update_repo: known_good_builds: bazelisk build //experimental/bazel_test/... --config=clang bazelisk run //experimental/bazel_test:bazel_test_exe --config=clang - bazelisk build //:skia_core --config=clang --sandbox_base=/dev/shm - bazelisk build //src/sksl/lex:sksllex --config=clang --sandbox_base=/dev/shm - bazelisk build //tools/skdiff --config=clang --sandbox_base=/dev/shm - bazelisk build //example:hello_world --config=clang --sandbox_base=/dev/shm + bazelisk build //:skia_core --config=clang + bazelisk build //src/sksl/lex:sksllex --config=clang + bazelisk build //tools/skdiff --config=clang + bazelisk build //tools/skslc --config=clang + bazelisk build //modules/canvaskit:canvaskit_wasm --compilation_mode opt --sandbox_base=/dev/shm + + # Test the enforcement of include what you use + bazelisk build //example:hello_world_gl --config=clang --features skia_enforce_iwyu + # Both with and without a GPU backend should be error free (i.e. IWYU should let us + # conditionally import things. + bazelisk build //src/svg/... --config=clang --features skia_enforce_iwyu \ + --gpu_backend=gl_backend --include_decoder=jpeg_decode_codec + bazelisk build //src/svg/... --config=clang --features skia_enforce_iwyu + bazelisk build //tools/debugger --config=clang --gpu_backend=gl_backend \ + --features skia_enforce_iwyu + bazelisk build //:skia_core --config=clang --features skia_enforce_iwyu + +rbe_known_good_builds: + bazelisk build //experimental/bazel_test/... --config=linux-rbe + bazelisk run //experimental/bazel_test:bazel_test_exe --config=linux-rbe + bazelisk build //:skia_core --config=linux-rbe + bazelisk build //src/sksl/lex:sksllex --config=linux-rbe + bazelisk build //tools/skdiff --config=linux-rbe + bazelisk build //tools/skslc --config=linux-rbe + # TODO(kjlubick) CanvasKit in release mode (i.e. with Closure) requires + # https://github.com/emscripten-core/emscripten/pull/16640 to land + bazelisk build //modules/canvaskit:canvaskit_wasm --compilation_mode dbg --config=linux-rbe \ + --jobs 100 + + # Test the enforcement of include what you use + bazelisk build //example:hello_world_gl --config=linux-rbe --features skia_enforce_iwyu + # Both with and without a GPU backend should be error free (i.e. IWYU should let us + # conditionally import things. + bazelisk build //src/svg/... --config=linux-rbe --features skia_enforce_iwyu \ + --gpu_backend=gl_backend --include_decoder=jpeg_decode_codec + bazelisk build //src/svg/... --config=linux-rbe --features skia_enforce_iwyu + bazelisk build //tools/debugger --config=linux-rbe --gpu_backend=gl_backend \ + --features skia_enforce_iwyu + bazelisk build //:skia_core --config=linux-rbe --features skia_enforce_iwyu diff --git a/third_party/skia/bazel/cc_binary_with_flags.bzl b/third_party/skia/bazel/cc_binary_with_flags.bzl index 8b2263a4126b..3da75af6daeb 100644 --- a/third_party/skia/bazel/cc_binary_with_flags.bzl +++ b/third_party/skia/bazel/cc_binary_with_flags.bzl @@ -7,8 +7,10 @@ It is based off of https://github.com/bazelbuild/examples/tree/main/rules/starla """ _bool_flags = [ - "//bazel/common_config_settings:use_icu", + "//bazel/common_config_settings:enable_sksl_tracing", + "//bazel/common_config_settings:enable_skslc", "//bazel/common_config_settings:is_skia_dev_build", + "//bazel/common_config_settings:use_icu", ] _string_flags = [ diff --git a/third_party/skia/bazel/common_config_settings/BUILD.bazel b/third_party/skia/bazel/common_config_settings/BUILD.bazel index 2d04413e8899..c08b749abeec 100644 --- a/third_party/skia/bazel/common_config_settings/BUILD.bazel +++ b/third_party/skia/bazel/common_config_settings/BUILD.bazel @@ -1,4 +1,7 @@ load(":defs.bzl", "bool_flag", "string_flag_with_values") +load("//bazel:macros.bzl", "selects") + +licenses(["notice"]) # @platforms is found at https://github.com/bazelbuild/platforms package(default_visibility = ["//:__subpackages__"]) @@ -59,6 +62,23 @@ config_setting( }, ) +selects.config_setting_group( + name = "has_gpu_backend", + match_any = [ + ":gl_backend", + ":dawn_backend", + ":vulkan_backend", + ], +) + +selects.config_setting_group( + name = "vulkan_with_vma", + match_all = [ + ":vulkan_backend", + ":use_vulkan_memory_allocator_true", + ], +) + # ============================================================================= # Configurable Skia Features # ============================================================================= @@ -81,6 +101,7 @@ string_flag_with_values( values = [ "gl_backend", "vulkan_backend", + "dawn_backend", ], ) @@ -162,21 +183,38 @@ string_flag_with_values( ) bool_flag( - default = False, - flag_name = "use_icu", + default = True, + flag_name = "enable_effect_serialization", ) bool_flag( default = False, - flag_name = "disable_tracing", + flag_name = "enable_skslc", ) bool_flag( default = False, - flag_name = "disable_effect_serialization", + flag_name = "enable_sksl_tracing", +) + +bool_flag( + # See SkTraceVentCommon.h for more on this type of tracing. + default = True, + flag_name = "enable_tracing", ) bool_flag( default = False, flag_name = "is_skia_dev_build", ) + +bool_flag( + default = False, + flag_name = "use_icu", +) + +bool_flag( + default = True, + flag_name = "use_vulkan_memory_allocator", + public = False, # Users should use :vulkan_with_vma +) diff --git a/third_party/skia/bazel/common_config_settings/defs.bzl b/third_party/skia/bazel/common_config_settings/defs.bzl index 92e913dcb9cc..16bbcdfd1c09 100644 --- a/third_party/skia/bazel/common_config_settings/defs.bzl +++ b/third_party/skia/bazel/common_config_settings/defs.bzl @@ -31,7 +31,8 @@ multi_string_flag = rule( doc = "A string-typed build setting that can be set multiple times on the command line", ) -def string_flag_with_values(flag_name, values, default = "", multiple = False, name = ""): +# buildifier: disable=unnamed-macro +def string_flag_with_values(flag_name, values, default = "", multiple = False): """Create a string flag and corresponding config_settings. string_flag_with_values is a Bazel Macro that defines a flag with the given name and a set @@ -47,7 +48,6 @@ def string_flag_with_values(flag_name, values, default = "", multiple = False, n default: string, whatever the default value should be if the flag is not set. Can be empty string for both a string_flag and a multi_string flag. multiple: boolean, True if the flag should be able to be set multiple times on the CLI. - name: string unused, https://github.com/bazelbuild/buildtools/blob/master/WARNINGS.md#unnamed-macro """ if multiple: multi_string_flag( @@ -87,7 +87,8 @@ def string_flag_with_values(flag_name, values, default = "", multiple = False, n }, ) -def bool_flag(flag_name, default = True, name = ""): +# buildifier: disable=unnamed-macro +def bool_flag(flag_name, default = True, public = True): """Create a boolean flag and corresponding config_settings. bool_flag is a Bazel Macro that defines a boolean flag with the given name two config_settings, @@ -99,9 +100,13 @@ def bool_flag(flag_name, default = True, name = ""): Args: flag_name: string, the name of the flag to create and use for the config_settings default: boolean, if the flag should default to on or off. - name: string unused, https://github.com/bazelbuild/buildtools/blob/master/WARNINGS.md#unnamed-macro + public: boolean, if the flag should be usable from other packages or if it is meant to be + combined with some other constraint. """ skylib_bool_flag(name = flag_name, build_setting_default = default) + vis = ["//:__subpackages__"] + if not public: + vis = ["//visibility:private"] native.config_setting( name = flag_name + "_true", @@ -110,6 +115,7 @@ def bool_flag(flag_name, default = True, name = ""): # https://docs.bazel.build/versions/main/skylark/config.html#build-settings-and-select ":" + flag_name: "True", }, + visibility = vis, ) native.config_setting( @@ -117,4 +123,5 @@ def bool_flag(flag_name, default = True, name = ""): flag_values = { ":" + flag_name: "False", }, + visibility = vis, ) diff --git a/third_party/skia/bazel/gcs_mirror/gcs_mirror.go b/third_party/skia/bazel/gcs_mirror/gcs_mirror.go index dda38deaf2d1..c7768294736d 100644 --- a/third_party/skia/bazel/gcs_mirror/gcs_mirror.go +++ b/third_party/skia/bazel/gcs_mirror/gcs_mirror.go @@ -66,6 +66,7 @@ func main() { if err := processOne(workDir, *url, *sha256Hash); err != nil { fatalf("Error while processing entry: %s", err) } + fmt.Printf("https://storage.googleapis.com/skia-world-readable/bazel/%s%s\n", *sha256Hash, getSuffix(*url)) } } @@ -136,7 +137,7 @@ func processOne(workDir, url, hash string) error { return skerr.Wrapf(cmd.Run(), "uploading %s to GCS", tmpFile) } -var supportedSuffixes = []string{".tar.gz", ".tar.xz", ".deb"} +var supportedSuffixes = []string{".tar.gz", ".tar.xz", ".deb", ".zip"} // getSuffix returns the filetype suffix of the file if it is in the list of supported suffixes. // Otherwise, it returns empty string. diff --git a/third_party/skia/bazel/karma_test.bzl b/third_party/skia/bazel/karma_test.bzl new file mode 100644 index 000000000000..fb79d737d8ac --- /dev/null +++ b/third_party/skia/bazel/karma_test.bzl @@ -0,0 +1,341 @@ +"""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") + +# https://github.com/google/skia-buildbot/blob/main/bazel/test_on_env/test_on_env.bzl +load("@org_skia_go_infra//bazel/test_on_env:test_on_env.bzl", "test_on_env") + +def karma_test(name, config_file, srcs, static_files = None, env = None, **kwargs): + """Tests the given JS files using Karma and a browser provided by Bazel (Chromium) + + This rule injects some JS code into the karma config file and produces both that modified + configuration file and a bash script which invokes Karma. That script is then invoked + in an environment that has the Bazel-downloaded browser available and the tests run using it. + + When invoked via `bazel test`, the test runs in headless mode. When invoked via `bazel run`, + a visible web browser appears for the user to inspect and debug. + + 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 + 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 + situations nor bundle everything together. + + Args: + name: The name of the rule which actually runs the tests. generated dependent rules will use + this name plus an applicable suffix. + config_file: A karma config file. The user is to expect a function called BAZEL_APPLY_SETTINGS + is defined and should call it with the configuration object before passing it to config.set. + srcs: A list of JavaScript test files or helpers. + static_files: Arbitrary files which are available to be loaded. + Files are served at: + - `/static//` or + - `/static///` + Examples: + - `/static/skia/modules/canvaskit/tests/assets/color_wheel.gif` + - `/static/skia/modules/canvaskit/canvaskit_wasm/canvaskit.wasm` + env: An optional label to a binary. If set, the test will be wrapped in a test_on_env rule, + and this binary will be used as the "env" part of test_on_env. It will be started before + the tests run and be running in parallel to them. See the test_on_env.bzl in the + Skia Infra repo for more. + **kwargs: Additional arguments are passed to @io_bazel_rules_webtesting/web_test. + """ + if len(srcs) == 0: + fail("Must pass at least one file into srcs or there will be no tests to run") + if not static_files: + static_files = [] + + karma_test_name = name + "_karma_test" + _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"], + tags = ["manual"], + ) + + # See the following link for the options. + # https://github.com/bazelbuild/rules_webtesting/blob/e9cf17123068b1123c68219edf9b274bf057b9cc/web/internal/web_test.bzl#L164 + # TODO(kjlubick) consider using web_test_suite to test on Firefox as well. + if not env: + web_test( + name = name, + launcher = ":" + karma_test_name, + browser = "@io_bazel_rules_webtesting//browsers:chromium-local", + test = karma_test_name, + **kwargs + ) + else: + web_test_name = name + "_web_test" + web_test( + name = web_test_name, + launcher = ":" + karma_test_name, + browser = "@io_bazel_rules_webtesting//browsers:chromium-local", + test = karma_test_name, + visibility = ["//visibility:private"], + **kwargs + ) + test_on_env( + name = name, + env = env, + test = ":" + web_test_name, + test_on_env_binary = "@org_skia_go_infra//bazel/test_on_env:test_on_env", + ) + +# This JS code is injected into the the provided karma configuration file. It contains +# Bazel-specific logic that could be re-used across different configuration files. +# Concretely, it sets up the browser configuration and whether we want to just run the tests +# and exit (e.g. the user ran `bazel test foo`) or if we want to have an interactive session +# (e.g. the user ran `bazel run foo`). +_apply_bazel_settings_js_code = """ +(function(cfg) { +// This is is a JS function provided via environment variables to let us resolve files +// https://bazelbuild.github.io/rules_nodejs/Built-ins.html#nodejs_binary-templated_args +const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']); + +// Apply the paths to any files that are coming from other Bazel rules (e.g. compiled JS). +function addFilePaths(cfg) { + if (!cfg.files) { + cfg.files = []; + } + cfg.files = cfg.files.concat([_BAZEL_SRCS]); + cfg.basePath = "_BAZEL_BASE_PATH"; + + if (!cfg.proxies) { + cfg.proxies = {}; + } + // The following is based off of the concatjs version + // https://github.com/bazelbuild/rules_nodejs/blob/700b7a3c5f97f2877320e6e699892ee706f85269/packages/concatjs/web_test/karma.conf.js#L276 + const staticFiles = [_BAZEL_STATIC_FILES]; + for (const file of staticFiles) { + // We need to find the actual path (symlinks can apparently cause issues on Windows). + const resolvedFile = runfiles.resolve(file); + cfg.files.push({pattern: resolvedFile, included: false}); + // We want the file to be available on a path according to its location in the workspace + // (and not the path on disk), so we use a proxy to redirect. + // Prefixing the proxy path with '/absolute' allows karma to load files that are not + // underneath the basePath. This doesn't see to be an official API. + // https://github.com/karma-runner/karma/issues/2703 + cfg.proxies['/static/' + file] = '/absolute' + resolvedFile; + } +} + +// Returns true if invoked with bazel run, i.e. the user wants to see the results on a real +// browser. +function isBazelRun() { + // This env var seems to be a good indicator on Linux, at least. + return !!process.env['DISPLAY']; +} + +// Configures the settings to run chrome. +function applyChromiumSettings(cfg, chromiumPath) { + if (isBazelRun()) { + cfg.browsers = ['Chrome']; + cfg.singleRun = false; + } else { + // Invoked via bazel test, so run the tests once in a headless browser and be done + cfg.browsers = ['ChromeHeadless']; + cfg.singleRun = true; + } + + try { + // Setting the CHROME_BIN environment variable tells Karma which chrome to use. + // We want it to use the Chrome brought via Bazel. + process.env.CHROME_BIN = runfiles.resolve(chromiumPath); + } catch { + throw new Error(`Failed to resolve Chromium binary '${chromiumPath}' in runfiles`); + } +} + +function applyBazelSettings(cfg) { + addFilePaths(cfg) + + // This is a JSON file that contains this metadata, mixed in with some other data, e.g. + // the link to the correct executable for the given platform. + // https://github.com/bazelbuild/rules_webtesting/blob/e9cf17123068b1123c68219edf9b274bf057b9cc/browsers/chromium-local.json + const webTestMetadata = require(runfiles.resolve(process.env['WEB_TEST_METADATA'])); + + const webTestFiles = webTestMetadata['webTestFiles'][0]; + const path = webTestFiles['namedFiles']['CHROMIUM']; + if (path) { + applyChromiumSettings(cfg, path); + } else { + throw new Error("not supported yet"); + } +} + +applyBazelSettings(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 + # can go in the Karma files list. + srcs = ['"{}"'.format(_absolute_path(ctx, f)) for f in ctx.files.srcs] + src_list = ", ".join(srcs) + + # Set our base path to that which contains the karma configuration file. + # This requires going up a few directory segments. This allows our absolute paths to + # all be compatible with each other. + config_segments = len(ctx.outputs.configuration.short_path.split("/")) + base_path = "/".join([".."] * config_segments) + + static_files = ['"{}"'.format(_absolute_path(ctx, f)) for f in ctx.files.static_files] + static_list = ", ".join(static_files) + + # Replace the placeholders in the embedded JS with those files. We cannot use .format() because + # the curly braces from the JS code throw it off. + apply_bazel_settings = _apply_bazel_settings_js_code.replace("_BAZEL_SRCS", src_list) + apply_bazel_settings = apply_bazel_settings.replace("_BAZEL_BASE_PATH", base_path) + apply_bazel_settings = apply_bazel_settings.replace("_BAZEL_STATIC_FILES", static_list) + + # Add in the JS fragment that applies the Bazel-specific settings to the provided config. + # https://docs.bazel.build/versions/main/skylark/lib/actions.html#expand_template + ctx.actions.expand_template( + output = ctx.outputs.configuration, + template = ctx.file.config_file, + substitutions = { + "BAZEL_APPLY_SETTINGS": apply_bazel_settings, + }, + ) + +def _absolute_path(ctx, file): + # Referencing things in @npm yields a short_path that starts with ../ + # For those cases, we can just remove the ../ + if file.short_path.startswith("../"): + return file.short_path[3:] + + # Otherwise, we have a local file, so we need to include the workspace path to make it + # an absolute path + return ctx.workspace_name + "/" + file.short_path + +_invoke_karma_bash_script = """#!/usr/bin/env bash +# --- begin runfiles.bash initialization v2 --- +# Copy-pasted from the Bazel Bash runfiles library v2. +# https://github.com/bazelbuild/bazel/blob/master/tools/bash/runfiles/runfiles.bash +set -uo pipefail; f=build_bazel_rules_nodejs/third_party/github.com/bazelbuild/bazel/tools/bash/runfiles/runfiles.bash +source "${{RUNFILES_DIR:-/dev/null}}/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "${{RUNFILES_MANIFEST_FILE:-/dev/null}}" | cut -f2- -d' ')" 2>/dev/null || \ + source "$0.runfiles/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.exe.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + {{ echo>&2 "ERROR: cannot find $f"; exit 1; }}; f=; set -e +# --- end runfiles.bash initialization v2 --- + +readonly KARMA=$(rlocation "{_KARMA_EXECUTABLE_SCRIPT}") +readonly CONF=$(rlocation "{_KARMA_CONFIGURATION_FILE}") + +# set a temporary directory as the home directory, because otherwise Chrome fails to +# start up, complaining about a read-only file system. This does not get cleaned up automatically +# by Bazel, so we do so after Karma finishes. +export HOME=$(mktemp -d) + +readonly COMMAND="${{KARMA}} "start" ${{CONF}}" +${{COMMAND}} +KARMA_EXIT_CODE=$? +echo "Karma returned ${{KARMA_EXIT_CODE}}" +# Attempt to clean up the temporary home directory. If this fails, that's not a big deal because +# the contents are small and will be cleaned up by the OS on reboot. +rm -rf $HOME || true +exit $KARMA_EXIT_CODE +""" + +def _create_bash_script_to_invoke_karma(ctx): + ctx.actions.write( + output = ctx.outputs.executable, + is_executable = True, + content = _invoke_karma_bash_script.format( + _KARMA_EXECUTABLE_SCRIPT = _absolute_path(ctx, ctx.executable.karma), + _KARMA_CONFIGURATION_FILE = _absolute_path(ctx, ctx.outputs.configuration), + ), + ) + +def _karma_test_impl(ctx): + _expand_templates_in_karma_config(ctx) + _create_bash_script_to_invoke_karma(ctx) + + # The files that need to be included when we run the bash script that invokes Karma are: + # - 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 + return [DefaultInfo( + runfiles = ctx.runfiles( + files = runfiles, + transitive_files = node_modules, + ).merge(ctx.attr.karma[DefaultInfo].data_runfiles), + executable = ctx.outputs.executable, + )] + +_karma_test = rule( + implementation = _karma_test_impl, + test = True, + executable = True, + attrs = { + "config_file": attr.label( + doc = "The karma config file", + mandatory = True, + allow_single_file = [".js"], + ), + "srcs": attr.label_list( + doc = "A list of JavaScript test files", + 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", + executable = True, + cfg = "exec", + allow_files = True, + ), + "static_files": attr.label_list( + doc = "Additional files which are available to be loaded", + allow_files = True, + ), + }, + outputs = { + "configuration": "%{name}.conf.js", + }, +) diff --git a/third_party/skia/bazel/macros.bzl b/third_party/skia/bazel/macros.bzl index ee9a86e85a89..9b8780f4712e 100644 --- a/third_party/skia/bazel/macros.bzl +++ b/third_party/skia/bazel/macros.bzl @@ -2,6 +2,19 @@ This file contains general helper macros that make our BUILD.bazel files easier to read. """ +# https://github.com/bazelbuild/bazel-skylib +load("@bazel_skylib//lib:selects.bzl", _selects = "selects") +load("@rules_python//python:defs.bzl", _py_binary = "py_binary") +load("@py_deps//:requirements.bzl", _requirement = "requirement") +load("@bazel_gazelle//:def.bzl", _gazelle = "gazelle") + +# re-export symbols that are commonly used or that are not supported in G3 +# (and thus we need to stub out) +selects = _selects +py_binary = _py_binary +requirement = _requirement +gazelle = _gazelle + def select_multi(values_map, default, name = ""): """select() but allowing multiple matches of the keys. @@ -50,11 +63,14 @@ def select_multi(values_map, default, name = ""): }) return rv -def generated_cc_atom(name, **kwargs): +def generated_cc_atom(name, enforce_iwyu = False, **kwargs): """A self-annotating label for a generated cc_library for exactly one file. Args: name: string, the name of the cc_library + enforce_iwyu: boolean, if true, this file will fail to compile if the headers to not comply + with the include-what-you-use standards. This does not affect dependencies nor + dependents, only the file listed in srcs/hdrs. **kwargs: All other arguments are passed verbatim to cc_library """ if len(kwargs.get("srcs", [])) > 1 or len(kwargs.get("hdrs", [])) > 1: @@ -66,7 +82,18 @@ def generated_cc_atom(name, **kwargs): deps = kwargs.get("deps", []) deps.append("//bazel:defines_from_flags") kwargs["deps"] = deps + + features = kwargs.get("features", []) + if enforce_iwyu: + features.append("skia_opt_file_into_iwyu") native.cc_library( name = name, + features = features, **kwargs ) + +# buildifier: disable=unnamed-macro +# buildifier: disable=native-package +def enforce_iwyu_on_package(): + """A self-annotating macro to set force_iwyu = True on all rules in this package.""" + native.package(features = ["skia_opt_file_into_iwyu"]) diff --git a/third_party/skia/bazel/rbe/BUILD.bazel b/third_party/skia/bazel/rbe/BUILD.bazel new file mode 100644 index 000000000000..79c2312fb07f --- /dev/null +++ b/third_party/skia/bazel/rbe/BUILD.bazel @@ -0,0 +1,20 @@ +# https://github.com/bazelbuild/bazel-toolchains/blob/master/rules/exec_properties/exec_properties.bzl +load("@bazel_toolchains//rules/exec_properties:exec_properties.bzl", "create_rbe_exec_properties_dict") + +licenses(["notice"]) + +# https://bazel.build/docs/platforms +platform( + name = "gce_linux_platform", + constraint_values = [ + "@bazel_tools//platforms:linux", + "@bazel_tools//platforms:x86_64", + "@bazel_tools//tools/cpp:clang", + ], + exec_properties = create_rbe_exec_properties_dict( + container_image = "docker://gcr.io/skia-public/rbe_linux@sha256:4f7ea556fbf46f65f0c6a2d65144bbcb1139acc78ef19be4bd4b04dcfa623f18", + os_family = "Linux", + pool = "gce_linux", + ), + parents = ["@local_config_platform//:host"], +) diff --git a/third_party/skia/bazel/rbe/Makefile b/third_party/skia/bazel/rbe/Makefile new file mode 100644 index 000000000000..fcda53e11fb3 --- /dev/null +++ b/third_party/skia/bazel/rbe/Makefile @@ -0,0 +1,18 @@ +LINUX_VERSION=v1 + +build_linux_container: + docker build -t gcr.io/skia-public/rbe_linux:${LINUX_VERSION} ./gce_linux_container/ + +push_linux_container: build_linux_container + docker push gcr.io/skia-public/rbe_linux:${LINUX_VERSION} + +generate_linux_config: + # If you do not have the rbe_configs_gen executable, see + # https://github.com/bazelbuild/bazel-toolchains/releases/tag/v5.1.1 + rbe_configs_gen \ + --bazel_version=5.0.0 \ + --toolchain_container=gcr.io/skia-public/rbe_linux@sha256:4f7ea556fbf46f65f0c6a2d65144bbcb1139acc78ef19be4bd4b04dcfa623f18 \ + --output_src_root=../.. \ + --output_config_path=bazel/rbe/gce_linux \ + --exec_os=linux \ + --target_os=linux \ No newline at end of file diff --git a/third_party/skia/bazel/rbe/README.md b/third_party/skia/bazel/rbe/README.md new file mode 100644 index 000000000000..31afce1f4f74 --- /dev/null +++ b/third_party/skia/bazel/rbe/README.md @@ -0,0 +1,67 @@ +RBE configurations +================== + +Some subdirectories of this folder are generated. For example, `gce_linux` was generated by running +`make generate_linux_config`. Those generated files describe the C++ and Java toolchain that are +in the RBE Docker image; these toolchains are required to run Bazel, but are **not** the toolchains +that we use to compile our code. + +We build our own, bare-bones, Docker image to use on RBE. We intend to use a hermetic toolchain +(see //toolchain) that specifies everything necessary to compile and link Skia. Use of the +hermetic toolchain on and off RBE makes the build reproducible and consistent across machines, +and not require internet access (assuming the toolchain has been cached at least once). This setup +has the desirable property of not needing to change and upload RBE Docker images if we need to +change a small detail of our toolchain. + +The only requirement we have of our Docker image (beyond the minimum requirements to run Bazel) +are that it have sufficient runtime libraries to run our toolchain. For example, this means that +the Linux RBE image has at least glibc 2.32, which is the current minimum requirement of the +Linux binaries in our toolchain. This is the same requirement of any developer who tries to +build Skia using Bazel locally. + +Getting rbe_configs_gen +----------------------- +It is suggested to download a prebuilt binary from +[GitHub](https://github.com/bazelbuild/bazel-toolchains/releases/tag/v5.1.1) and put that onto +your PATH. + +Creating/Updating the RBE image +------------------------------- +In accordance with SLSA level 1, we want to be able to have a scripted way of building our image +and specify exactly what artifacts are in it. To accommodate this, we specify the exact sha256 +hash of the base Docker image we use and the exact versions of the packages we install on top of +that. If we need to add a package or update things, it is best build the image without these +qualifiers to see what was actually used, and then respecify them so if someone were to build +the docker image again, they are likely to get the same image. + +This process is: + 1) Modify the appropriate Dockerfile (e.g. gce_linux_container/Dockerfile) to not have the + 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`. + 4) Note the versions and base image hash that were used. Modify the Dockerfile to use these. + 5) Run `make push_linux_container` to rebuild the container and push it to GCS where it can + be used by our RBE workers. Note the sha256 hash of this created container + 6) Modify the appropriate generate step in `Makefile` (e.g. `generate_linux_config`) to refer + to the correct toolchain_container. Then, run that step. + 7) Modify the RBE platform in `./BUILD.bazel` to refer to the new `container_image`. + +We chose not to use Bazel rules for this container step, as that could be difficult to bootstrap +without Bazel already setup. Additionally, Make is a simple and sufficient way to script the steps +for SLSA purposes. + +Defining our own Bazel RBE platforms +------------------------------------ +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 `./BUILD.bazel`. + +More details +------------ +https://docs.google.com/document/d/14xMZCKews69SSTfULhE8HDUzT5XvPwZ4CvRufEvcZ74/edit + +RBE Metrics +----------- +http://go/skia-rbe-metrics \ No newline at end of file diff --git a/third_party/skia/bazel/rbe/gce_linux/LICENSE b/third_party/skia/bazel/rbe/gce_linux/LICENSE new file mode 100755 index 000000000000..f0a1f59a3c8f --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2021 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/third_party/skia/bazel/rbe/gce_linux/cc/BUILD b/third_party/skia/bazel/rbe/gce_linux/cc/BUILD new file mode 100644 index 000000000000..b603cd9abbd6 --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux/cc/BUILD @@ -0,0 +1,169 @@ +# Copyright 2016 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This becomes the BUILD file for @local_config_cc// under non-BSD unixes. + +load(":cc_toolchain_config.bzl", "cc_toolchain_config") +load(":armeabi_cc_toolchain_config.bzl", "armeabi_cc_toolchain_config") +load("@rules_cc//cc:defs.bzl", "cc_toolchain", "cc_toolchain_suite") + +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) # Apache 2.0 + +cc_library( + name = "malloc", +) + +filegroup( + name = "empty", + srcs = [], +) + +filegroup( + name = "cc_wrapper", + srcs = ["cc_wrapper.sh"], +) + +filegroup( + name = "compiler_deps", + srcs = glob( + ["extra_tools/**"], + allow_empty = True, + ) + [":builtin_include_directory_paths"], +) + +# This is the entry point for --crosstool_top. Toolchains are found +# by lopping off the name of --crosstool_top and searching for +# the "${CPU}" entry in the toolchains attribute. +cc_toolchain_suite( + name = "toolchain", + toolchains = { + "k8|clang": ":cc-compiler-k8", + "k8": ":cc-compiler-k8", + "armeabi-v7a|compiler": ":cc-compiler-armeabi-v7a", + "armeabi-v7a": ":cc-compiler-armeabi-v7a", + }, +) + +cc_toolchain( + name = "cc-compiler-k8", + all_files = ":compiler_deps", + ar_files = ":compiler_deps", + as_files = ":compiler_deps", + compiler_files = ":compiler_deps", + dwp_files = ":empty", + linker_files = ":compiler_deps", + module_map = ":module.modulemap", + objcopy_files = ":empty", + strip_files = ":empty", + supports_param_files = 1, + toolchain_config = ":linux_gnu_x86", + toolchain_identifier = "linux_gnu_x86", +) + +cc_toolchain_config( + name = "linux_gnu_x86", + abi_libc_version = "glibc_2.19", + abi_version = "clang", + compile_flags = [ + "-U_FORTIFY_SOURCE", + "-fstack-protector", + "-Wall", + "-Wthread-safety", + "-Wself-assign", + "-Wunused-but-set-parameter", + "-Wno-free-nonheap-object", + "-fcolor-diagnostics", + "-fno-omit-frame-pointer", + ], + compiler = "clang", + coverage_compile_flags = ["--coverage"], + coverage_link_flags = ["--coverage"], + cpu = "k8", + cxx_builtin_include_directories = [ + "/usr/lib/llvm-13/lib/clang/13.0.1/include", + "/usr/local/include", + "/usr/include/x86_64-linux-gnu", + "/usr/include", + "/usr/lib/llvm-13/lib/clang/13.0.1/share", + "/usr/include/c++/11", + "/usr/include/x86_64-linux-gnu/c++/11", + "/usr/include/c++/11/backward", + ], + cxx_flags = ["-std=c++0x"], + dbg_compile_flags = ["-g"], + host_system_name = "i686-unknown-linux-gnu", + link_flags = [ + "-fuse-ld=/usr/bin/ld.gold", + "-Wl,-no-as-needed", + "-Wl,-z,relro,-z,now", + "-B/usr/lib/llvm-13/bin", + ], + link_libs = [ + "-lstdc++", + "-lm", + ], + opt_compile_flags = [ + "-g0", + "-O2", + "-D_FORTIFY_SOURCE=1", + "-DNDEBUG", + "-ffunction-sections", + "-fdata-sections", + ], + opt_link_flags = ["-Wl,--gc-sections"], + supports_start_end_lib = True, + target_libc = "glibc_2.19", + target_system_name = "x86_64-unknown-linux-gnu", + tool_paths = { + "ar": "/usr/bin/ar", + "ld": "/usr/bin/ld", + "llvm-cov": "None", + "cpp": "/usr/bin/cpp", + "gcc": "/usr/lib/llvm-13/bin/clang", + "dwp": "/usr/bin/dwp", + "gcov": "None", + "nm": "/usr/bin/nm", + "objcopy": "/usr/bin/objcopy", + "objdump": "/usr/bin/objdump", + "strip": "/usr/bin/strip", + }, + toolchain_identifier = "linux_gnu_x86", + unfiltered_compile_flags = [ + "-no-canonical-prefixes", + "-Wno-builtin-macro-redefined", + "-D__DATE__=\"redacted\"", + "-D__TIMESTAMP__=\"redacted\"", + "-D__TIME__=\"redacted\"", + ], +) + +# Android tooling requires a default toolchain for the armeabi-v7a cpu. +cc_toolchain( + name = "cc-compiler-armeabi-v7a", + all_files = ":empty", + ar_files = ":empty", + as_files = ":empty", + compiler_files = ":empty", + dwp_files = ":empty", + linker_files = ":empty", + objcopy_files = ":empty", + strip_files = ":empty", + supports_param_files = 1, + toolchain_config = ":stub_armeabi-v7a", + toolchain_identifier = "stub_armeabi-v7a", +) + +armeabi_cc_toolchain_config(name = "stub_armeabi-v7a") diff --git a/third_party/skia/bazel/rbe/gce_linux/cc/WORKSPACE b/third_party/skia/bazel/rbe/gce_linux/cc/WORKSPACE new file mode 100644 index 000000000000..bc05b4c36ff4 --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux/cc/WORKSPACE @@ -0,0 +1,2 @@ +# DO NOT EDIT: automatically generated WORKSPACE file for cc_autoconf rule +workspace(name = "local_config_cc") diff --git a/third_party/skia/bazel/rbe/gce_linux/cc/armeabi_cc_toolchain_config.bzl b/third_party/skia/bazel/rbe/gce_linux/cc/armeabi_cc_toolchain_config.bzl new file mode 100644 index 000000000000..94e0720bf6c9 --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux/cc/armeabi_cc_toolchain_config.bzl @@ -0,0 +1,82 @@ +# Copyright 2019 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""A Starlark cc_toolchain configuration rule""" + +load( + "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", + "feature", + "tool_path", +) + +def _impl(ctx): + toolchain_identifier = "stub_armeabi-v7a" + host_system_name = "armeabi-v7a" + target_system_name = "armeabi-v7a" + target_cpu = "armeabi-v7a" + target_libc = "armeabi-v7a" + compiler = "compiler" + abi_version = "armeabi-v7a" + abi_libc_version = "armeabi-v7a" + cc_target_os = None + builtin_sysroot = None + action_configs = [] + + supports_pic_feature = feature(name = "supports_pic", enabled = True) + supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True) + features = [supports_dynamic_linker_feature, supports_pic_feature] + + cxx_builtin_include_directories = [] + artifact_name_patterns = [] + make_variables = [] + + tool_paths = [ + tool_path(name = "ar", path = "/bin/false"), + tool_path(name = "compat-ld", path = "/bin/false"), + tool_path(name = "cpp", path = "/bin/false"), + tool_path(name = "dwp", path = "/bin/false"), + tool_path(name = "gcc", path = "/bin/false"), + tool_path(name = "gcov", path = "/bin/false"), + tool_path(name = "ld", path = "/bin/false"), + tool_path(name = "nm", path = "/bin/false"), + tool_path(name = "objcopy", path = "/bin/false"), + tool_path(name = "objdump", path = "/bin/false"), + tool_path(name = "strip", path = "/bin/false"), + ] + + return cc_common.create_cc_toolchain_config_info( + ctx = ctx, + features = features, + action_configs = action_configs, + artifact_name_patterns = artifact_name_patterns, + cxx_builtin_include_directories = cxx_builtin_include_directories, + toolchain_identifier = toolchain_identifier, + host_system_name = host_system_name, + target_system_name = target_system_name, + target_cpu = target_cpu, + target_libc = target_libc, + compiler = compiler, + abi_version = abi_version, + abi_libc_version = abi_libc_version, + tool_paths = tool_paths, + make_variables = make_variables, + builtin_sysroot = builtin_sysroot, + cc_target_os = cc_target_os, + ) + +armeabi_cc_toolchain_config = rule( + implementation = _impl, + attrs = {}, + provides = [CcToolchainConfigInfo], +) diff --git a/third_party/skia/bazel/rbe/gce_linux/cc/builtin_include_directory_paths b/third_party/skia/bazel/rbe/gce_linux/cc/builtin_include_directory_paths new file mode 100644 index 000000000000..16d9a0fd628d --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux/cc/builtin_include_directory_paths @@ -0,0 +1,14 @@ +This file is generated by cc_configure and contains builtin include directories +that /usr/lib/llvm-13/bin/clang reported. This file is a dependency of every compilation action and +changes to it will be reflected in the action cache key. When some of these +paths change, Bazel will make sure to rerun the action, even though none of +declared action inputs or the action commandline changes. + +/usr/lib/llvm-13/lib/clang/13.0.1/include +/usr/local/include +/usr/include/x86_64-linux-gnu +/usr/include +/usr/lib/llvm-13/lib/clang/13.0.1/share +/usr/include/c++/11 +/usr/include/x86_64-linux-gnu/c++/11 +/usr/include/c++/11/backward diff --git a/third_party/skia/bazel/rbe/gce_linux/cc/cc_toolchain_config.bzl b/third_party/skia/bazel/rbe/gce_linux/cc/cc_toolchain_config.bzl new file mode 100644 index 000000000000..26119141059c --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux/cc/cc_toolchain_config.bzl @@ -0,0 +1,1300 @@ +# Copyright 2019 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""A Starlark cc_toolchain configuration rule""" + +load( + "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", + "action_config", + "feature", + "feature_set", + "flag_group", + "flag_set", + "tool", + "tool_path", + "variable_with_value", + "with_feature_set", +) +load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") + +def layering_check_features(compiler): + if compiler != "clang": + return [] + return [ + feature( + name = "use_module_maps", + requires = [feature_set(features = ["module_maps"])], + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group( + flags = [ + "-fmodule-name=%{module_name}", + "-fmodule-map-file=%{module_map_file}", + ], + ), + ], + ), + ], + ), + + # Tell blaze we support module maps in general, so they will be generated + # for all c/c++ rules. + # Note: not all C++ rules support module maps; thus, do not imply this + # feature from other features - instead, require it. + feature(name = "module_maps", enabled = True), + feature( + name = "layering_check", + implies = ["use_module_maps"], + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group(flags = [ + "-fmodules-strict-decluse", + "-Wprivate-header", + ]), + flag_group( + iterate_over = "dependent_module_map_files", + flags = [ + "-fmodule-map-file=%{dependent_module_map_files}", + ], + ), + ], + ), + ], + ), + ] + +all_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ACTION_NAMES.lto_backend, +] + +all_cpp_compile_actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, +] + +preprocessor_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, +] + +codegen_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, +] + +all_link_actions = [ + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, +] + +lto_index_actions = [ + ACTION_NAMES.lto_index_for_executable, + ACTION_NAMES.lto_index_for_dynamic_library, + ACTION_NAMES.lto_index_for_nodeps_dynamic_library, +] + +def _impl(ctx): + tool_paths = [ + tool_path(name = name, path = path) + for name, path in ctx.attr.tool_paths.items() + ] + action_configs = [] + + llvm_cov_action = action_config( + action_name = ACTION_NAMES.llvm_cov, + tools = [ + tool( + path = ctx.attr.tool_paths["llvm-cov"], + ), + ], + ) + + action_configs.append(llvm_cov_action) + + supports_pic_feature = feature( + name = "supports_pic", + enabled = True, + ) + supports_start_end_lib_feature = feature( + name = "supports_start_end_lib", + enabled = True, + ) + + default_compile_flags_feature = feature( + name = "default_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = all_compile_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.compile_flags, + ), + ] if ctx.attr.compile_flags else []), + ), + flag_set( + actions = all_compile_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.dbg_compile_flags, + ), + ] if ctx.attr.dbg_compile_flags else []), + with_features = [with_feature_set(features = ["dbg"])], + ), + flag_set( + actions = all_compile_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.opt_compile_flags, + ), + ] if ctx.attr.opt_compile_flags else []), + with_features = [with_feature_set(features = ["opt"])], + ), + flag_set( + actions = all_cpp_compile_actions + [ACTION_NAMES.lto_backend], + flag_groups = ([ + flag_group( + flags = ctx.attr.cxx_flags, + ), + ] if ctx.attr.cxx_flags else []), + ), + ], + ) + + default_link_flags_feature = feature( + name = "default_link_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.link_flags, + ), + ] if ctx.attr.link_flags else []), + ), + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.opt_link_flags, + ), + ] if ctx.attr.opt_link_flags else []), + with_features = [with_feature_set(features = ["opt"])], + ), + ], + ) + + dbg_feature = feature(name = "dbg") + + opt_feature = feature(name = "opt") + + sysroot_feature = feature( + name = "sysroot", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ] + all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["--sysroot=%{sysroot}"], + expand_if_available = "sysroot", + ), + ], + ), + ], + ) + + fdo_optimize_feature = feature( + name = "fdo_optimize", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [ + flag_group( + flags = [ + "-fprofile-use=%{fdo_profile_path}", + "-fprofile-correction", + ], + expand_if_available = "fdo_profile_path", + ), + ], + ), + ], + provides = ["profile"], + ) + + supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True) + + user_compile_flags_feature = feature( + name = "user_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = all_compile_actions, + flag_groups = [ + flag_group( + flags = ["%{user_compile_flags}"], + iterate_over = "user_compile_flags", + expand_if_available = "user_compile_flags", + ), + ], + ), + ], + ) + + unfiltered_compile_flags_feature = feature( + name = "unfiltered_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = all_compile_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.unfiltered_compile_flags, + ), + ] if ctx.attr.unfiltered_compile_flags else []), + ), + ], + ) + + library_search_directories_feature = feature( + name = "library_search_directories", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["-L%{library_search_directories}"], + iterate_over = "library_search_directories", + expand_if_available = "library_search_directories", + ), + ], + ), + ], + ) + + static_libgcc_feature = feature( + name = "static_libgcc", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.lto_index_for_executable, + ACTION_NAMES.lto_index_for_dynamic_library, + ], + flag_groups = [flag_group(flags = ["-static-libgcc"])], + with_features = [ + with_feature_set(features = ["static_link_cpp_runtimes"]), + ], + ), + ], + ) + + pic_feature = feature( + name = "pic", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group(flags = ["-fPIC"], expand_if_available = "pic"), + ], + ), + ], + ) + + per_object_debug_info_feature = feature( + name = "per_object_debug_info", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_codegen, + ], + flag_groups = [ + flag_group( + flags = ["-gsplit-dwarf", "-g"], + expand_if_available = "per_object_debug_info_file", + ), + ], + ), + ], + ) + + preprocessor_defines_feature = feature( + name = "preprocessor_defines", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["-D%{preprocessor_defines}"], + iterate_over = "preprocessor_defines", + ), + ], + ), + ], + ) + + cs_fdo_optimize_feature = feature( + name = "cs_fdo_optimize", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.lto_backend], + flag_groups = [ + flag_group( + flags = [ + "-fprofile-use=%{fdo_profile_path}", + "-Wno-profile-instr-unprofiled", + "-Wno-profile-instr-out-of-date", + "-fprofile-correction", + ], + expand_if_available = "fdo_profile_path", + ), + ], + ), + ], + provides = ["csprofile"], + ) + + autofdo_feature = feature( + name = "autofdo", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [ + flag_group( + flags = [ + "-fauto-profile=%{fdo_profile_path}", + "-fprofile-correction", + ], + expand_if_available = "fdo_profile_path", + ), + ], + ), + ], + provides = ["profile"], + ) + + runtime_library_search_directories_feature = feature( + name = "runtime_library_search_directories", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + iterate_over = "runtime_library_search_directories", + flag_groups = [ + flag_group( + flags = [ + "-Wl,-rpath,$EXEC_ORIGIN/%{runtime_library_search_directories}", + ], + expand_if_true = "is_cc_test", + ), + flag_group( + flags = [ + "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}", + ], + expand_if_false = "is_cc_test", + ), + ], + expand_if_available = + "runtime_library_search_directories", + ), + ], + with_features = [ + with_feature_set(features = ["static_link_cpp_runtimes"]), + ], + ), + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + iterate_over = "runtime_library_search_directories", + flag_groups = [ + flag_group( + flags = [ + "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}", + ], + ), + ], + expand_if_available = + "runtime_library_search_directories", + ), + ], + with_features = [ + with_feature_set( + not_features = ["static_link_cpp_runtimes"], + ), + ], + ), + ], + ) + + fission_support_feature = feature( + name = "fission_support", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["-Wl,--gdb-index"], + expand_if_available = "is_using_fission", + ), + ], + ), + ], + ) + + shared_flag_feature = feature( + name = "shared_flag", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.lto_index_for_dynamic_library, + ACTION_NAMES.lto_index_for_nodeps_dynamic_library, + ], + flag_groups = [flag_group(flags = ["-shared"])], + ), + ], + ) + + random_seed_feature = feature( + name = "random_seed", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group( + flags = ["-frandom-seed=%{output_file}"], + expand_if_available = "output_file", + ), + ], + ), + ], + ) + + includes_feature = feature( + name = "includes", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ], + flag_groups = [ + flag_group( + flags = ["-include", "%{includes}"], + iterate_over = "includes", + expand_if_available = "includes", + ), + ], + ), + ], + ) + + fdo_instrument_feature = feature( + name = "fdo_instrument", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ] + all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = [ + "-fprofile-generate=%{fdo_instrument_path}", + "-fno-data-sections", + ], + expand_if_available = "fdo_instrument_path", + ), + ], + ), + ], + provides = ["profile"], + ) + + cs_fdo_instrument_feature = feature( + name = "cs_fdo_instrument", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.lto_backend, + ] + all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = [ + "-fcs-profile-generate=%{cs_fdo_instrument_path}", + ], + expand_if_available = "cs_fdo_instrument_path", + ), + ], + ), + ], + provides = ["csprofile"], + ) + + include_paths_feature = feature( + name = "include_paths", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ], + flag_groups = [ + flag_group( + flags = ["-iquote", "%{quote_include_paths}"], + iterate_over = "quote_include_paths", + ), + flag_group( + flags = ["-I%{include_paths}"], + iterate_over = "include_paths", + ), + flag_group( + flags = ["-isystem", "%{system_include_paths}"], + iterate_over = "system_include_paths", + ), + ], + ), + ], + ) + + external_include_paths_feature = feature( + name = "external_include_paths", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ], + flag_groups = [ + flag_group( + flags = ["-isystem", "%{external_include_paths}"], + iterate_over = "external_include_paths", + expand_if_available = "external_include_paths", + ), + ], + ), + ], + ) + + symbol_counts_feature = feature( + name = "symbol_counts", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = [ + "-Wl,--print-symbol-counts=%{symbol_counts_output}", + ], + expand_if_available = "symbol_counts_output", + ), + ], + ), + ], + ) + + llvm_coverage_map_format_feature = feature( + name = "llvm_coverage_map_format", + flag_sets = [ + flag_set( + actions = [ + 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, + ], + flag_groups = [ + flag_group( + flags = [ + "-fprofile-instr-generate", + "-fcoverage-mapping", + ], + ), + ], + ), + flag_set( + actions = all_link_actions + lto_index_actions + [ + "objc-executable", + "objc++-executable", + ], + flag_groups = [ + flag_group(flags = ["-fprofile-instr-generate"]), + ], + ), + ], + requires = [feature_set(features = ["coverage"])], + provides = ["profile"], + ) + + strip_debug_symbols_feature = feature( + name = "strip_debug_symbols", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["-Wl,-S"], + expand_if_available = "strip_debug_symbols", + ), + ], + ), + ], + ) + + build_interface_libraries_feature = feature( + name = "build_interface_libraries", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.lto_index_for_dynamic_library, + ACTION_NAMES.lto_index_for_nodeps_dynamic_library, + ], + flag_groups = [ + flag_group( + flags = [ + "%{generate_interface_library}", + "%{interface_library_builder_path}", + "%{interface_library_input_path}", + "%{interface_library_output_path}", + ], + expand_if_available = "generate_interface_library", + ), + ], + with_features = [ + with_feature_set( + features = ["supports_interface_shared_libraries"], + ), + ], + ), + ], + ) + + libraries_to_link_feature = feature( + name = "libraries_to_link", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + iterate_over = "libraries_to_link", + flag_groups = [ + flag_group( + flags = ["-Wl,--start-lib"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + flag_group( + flags = ["-Wl,-whole-archive"], + expand_if_true = + "libraries_to_link.is_whole_archive", + ), + flag_group( + flags = ["%{libraries_to_link.object_files}"], + iterate_over = "libraries_to_link.object_files", + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "interface_library", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "static_library", + ), + ), + flag_group( + flags = ["-l%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "dynamic_library", + ), + ), + flag_group( + flags = ["-l:%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "versioned_dynamic_library", + ), + ), + flag_group( + flags = ["-Wl,-no-whole-archive"], + expand_if_true = "libraries_to_link.is_whole_archive", + ), + flag_group( + flags = ["-Wl,--end-lib"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + ], + expand_if_available = "libraries_to_link", + ), + flag_group( + flags = ["-Wl,@%{thinlto_param_file}"], + expand_if_true = "thinlto_param_file", + ), + ], + ), + ], + ) + + user_link_flags_feature = feature( + name = "user_link_flags", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["%{user_link_flags}"], + iterate_over = "user_link_flags", + expand_if_available = "user_link_flags", + ), + ] + ([flag_group(flags = ctx.attr.link_libs)] if ctx.attr.link_libs else []), + ), + ], + ) + + fdo_prefetch_hints_feature = feature( + name = "fdo_prefetch_hints", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.lto_backend, + ], + flag_groups = [ + flag_group( + flags = [ + "-mllvm", + "-prefetch-hints-file=%{fdo_prefetch_hints_path}", + ], + expand_if_available = "fdo_prefetch_hints_path", + ), + ], + ), + ], + ) + + linkstamps_feature = feature( + name = "linkstamps", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["%{linkstamp_paths}"], + iterate_over = "linkstamp_paths", + expand_if_available = "linkstamp_paths", + ), + ], + ), + ], + ) + + gcc_coverage_map_format_feature = feature( + name = "gcc_coverage_map_format", + flag_sets = [ + flag_set( + actions = [ + 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, + "objc-executable", + "objc++-executable", + ], + flag_groups = [ + flag_group( + flags = ["-fprofile-arcs", "-ftest-coverage"], + expand_if_available = "gcov_gcno_file", + ), + ], + ), + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [flag_group(flags = ["--coverage"])], + ), + ], + requires = [feature_set(features = ["coverage"])], + provides = ["profile"], + ) + + archiver_flags_feature = feature( + name = "archiver_flags", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.cpp_link_static_library], + flag_groups = [ + flag_group(flags = ["rcsD"]), + flag_group( + flags = ["%{output_execpath}"], + expand_if_available = "output_execpath", + ), + ], + ), + flag_set( + actions = [ACTION_NAMES.cpp_link_static_library], + flag_groups = [ + flag_group( + iterate_over = "libraries_to_link", + flag_groups = [ + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file", + ), + ), + flag_group( + flags = ["%{libraries_to_link.object_files}"], + iterate_over = "libraries_to_link.object_files", + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + ], + expand_if_available = "libraries_to_link", + ), + ], + ), + ], + ) + + force_pic_flags_feature = feature( + name = "force_pic_flags", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.lto_index_for_executable, + ], + flag_groups = [ + flag_group( + flags = ["-pie"], + expand_if_available = "force_pic", + ), + ], + ), + ], + ) + + dependency_file_feature = feature( + name = "dependency_file", + enabled = True, + 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 = ["-MD", "-MF", "%{dependency_file}"], + expand_if_available = "dependency_file", + ), + ], + ), + ], + ) + + dynamic_library_linker_tool_path = tool_paths + dynamic_library_linker_tool_feature = feature( + name = "dynamic_library_linker_tool", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.lto_index_for_dynamic_library, + ACTION_NAMES.lto_index_for_nodeps_dynamic_library, + ], + flag_groups = [ + flag_group( + flags = [" + cppLinkDynamicLibraryToolPath + "], + expand_if_available = "generate_interface_library", + ), + ], + with_features = [ + with_feature_set( + features = ["supports_interface_shared_libraries"], + ), + ], + ), + ], + ) + + output_execpath_flags_feature = feature( + name = "output_execpath_flags", + flag_sets = [ + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = [ + flag_group( + flags = ["-o", "%{output_execpath}"], + expand_if_available = "output_execpath", + ), + ], + ), + ], + ) + + # Note that we also set --coverage for c++-link-nodeps-dynamic-library. The + # generated code contains references to gcov symbols, and the dynamic linker + # can't resolve them unless the library is linked against gcov. + coverage_feature = feature( + name = "coverage", + provides = ["profile"], + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = ([ + flag_group(flags = ctx.attr.coverage_compile_flags), + ] if ctx.attr.coverage_compile_flags else []), + ), + flag_set( + actions = all_link_actions + lto_index_actions, + flag_groups = ([ + flag_group(flags = ctx.attr.coverage_link_flags), + ] if ctx.attr.coverage_link_flags else []), + ), + ], + ) + + thinlto_feature = feature( + name = "thin_lto", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ] + all_link_actions + lto_index_actions, + flag_groups = [ + flag_group(flags = ["-flto=thin"]), + flag_group( + expand_if_available = "lto_indexing_bitcode_file", + flags = [ + "-Xclang", + "-fthin-link-bitcode=%{lto_indexing_bitcode_file}", + ], + ), + ], + ), + flag_set( + actions = [ACTION_NAMES.linkstamp_compile], + flag_groups = [flag_group(flags = ["-DBUILD_LTO_TYPE=thin"])], + ), + flag_set( + actions = lto_index_actions, + flag_groups = [ + flag_group(flags = [ + "-flto=thin", + "-Wl,-plugin-opt,thinlto-index-only%{thinlto_optional_params_file}", + "-Wl,-plugin-opt,thinlto-emit-imports-files", + "-Wl,-plugin-opt,thinlto-prefix-replace=%{thinlto_prefix_replace}", + ]), + flag_group( + expand_if_available = "thinlto_object_suffix_replace", + flags = [ + "-Wl,-plugin-opt,thinlto-object-suffix-replace=%{thinlto_object_suffix_replace}", + ], + ), + flag_group( + expand_if_available = "thinlto_merged_object_file", + flags = [ + "-Wl,-plugin-opt,obj-path=%{thinlto_merged_object_file}", + ], + ), + ], + ), + flag_set( + actions = [ACTION_NAMES.lto_backend], + flag_groups = [ + flag_group(flags = [ + "-c", + "-fthinlto-index=%{thinlto_index}", + "-o", + "%{thinlto_output_object_file}", + "-x", + "ir", + "%{thinlto_input_bitcode_file}", + ]), + ], + ), + ], + ) + + is_linux = ctx.attr.target_libc != "macosx" + + # TODO(#8303): Mac crosstool should also declare every feature. + if is_linux: + features = [ + dependency_file_feature, + random_seed_feature, + pic_feature, + per_object_debug_info_feature, + preprocessor_defines_feature, + includes_feature, + include_paths_feature, + external_include_paths_feature, + fdo_instrument_feature, + cs_fdo_instrument_feature, + cs_fdo_optimize_feature, + thinlto_feature, + fdo_prefetch_hints_feature, + autofdo_feature, + build_interface_libraries_feature, + dynamic_library_linker_tool_feature, + symbol_counts_feature, + shared_flag_feature, + linkstamps_feature, + output_execpath_flags_feature, + runtime_library_search_directories_feature, + library_search_directories_feature, + archiver_flags_feature, + force_pic_flags_feature, + fission_support_feature, + strip_debug_symbols_feature, + coverage_feature, + supports_pic_feature, + ] + ( + [ + supports_start_end_lib_feature, + ] if ctx.attr.supports_start_end_lib else [] + ) + [ + default_compile_flags_feature, + default_link_flags_feature, + libraries_to_link_feature, + user_link_flags_feature, + static_libgcc_feature, + fdo_optimize_feature, + supports_dynamic_linker_feature, + dbg_feature, + opt_feature, + user_compile_flags_feature, + sysroot_feature, + unfiltered_compile_flags_feature, + ] + layering_check_features(ctx.attr.compiler) + else: + features = [ + supports_pic_feature, + ] + ( + [ + supports_start_end_lib_feature, + ] if ctx.attr.supports_start_end_lib else [] + ) + [ + coverage_feature, + default_compile_flags_feature, + default_link_flags_feature, + user_link_flags_feature, + fdo_optimize_feature, + supports_dynamic_linker_feature, + dbg_feature, + opt_feature, + user_compile_flags_feature, + sysroot_feature, + unfiltered_compile_flags_feature, + ] + layering_check_features(ctx.attr.compiler) + + return cc_common.create_cc_toolchain_config_info( + ctx = ctx, + features = features, + action_configs = action_configs, + cxx_builtin_include_directories = ctx.attr.cxx_builtin_include_directories, + toolchain_identifier = ctx.attr.toolchain_identifier, + host_system_name = ctx.attr.host_system_name, + target_system_name = ctx.attr.target_system_name, + target_cpu = ctx.attr.cpu, + target_libc = ctx.attr.target_libc, + compiler = ctx.attr.compiler, + abi_version = ctx.attr.abi_version, + abi_libc_version = ctx.attr.abi_libc_version, + tool_paths = tool_paths, + builtin_sysroot = ctx.attr.builtin_sysroot, + ) + +cc_toolchain_config = rule( + implementation = _impl, + attrs = { + "cpu": attr.string(mandatory = True), + "compiler": attr.string(mandatory = True), + "toolchain_identifier": attr.string(mandatory = True), + "host_system_name": attr.string(mandatory = True), + "target_system_name": attr.string(mandatory = True), + "target_libc": attr.string(mandatory = True), + "abi_version": attr.string(mandatory = True), + "abi_libc_version": attr.string(mandatory = True), + "cxx_builtin_include_directories": attr.string_list(), + "tool_paths": attr.string_dict(), + "compile_flags": attr.string_list(), + "dbg_compile_flags": attr.string_list(), + "opt_compile_flags": attr.string_list(), + "cxx_flags": attr.string_list(), + "link_flags": attr.string_list(), + "link_libs": attr.string_list(), + "opt_link_flags": attr.string_list(), + "unfiltered_compile_flags": attr.string_list(), + "coverage_compile_flags": attr.string_list(), + "coverage_link_flags": attr.string_list(), + "supports_start_end_lib": attr.bool(), + "builtin_sysroot": attr.string(), + }, + provides = [CcToolchainConfigInfo], +) diff --git a/third_party/skia/bazel/rbe/gce_linux/cc/cc_wrapper.sh b/third_party/skia/bazel/rbe/gce_linux/cc/cc_wrapper.sh new file mode 100644 index 000000000000..5ac9d1449407 --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux/cc/cc_wrapper.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# +# Copyright 2015 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Ship the environment to the C++ action +# +set -eu + +# Set-up the environment + + +# Call the C++ compiler +/usr/lib/llvm-13/bin/clang "$@" diff --git a/third_party/skia/bazel/rbe/gce_linux/cc/module.modulemap b/third_party/skia/bazel/rbe/gce_linux/cc/module.modulemap new file mode 100644 index 000000000000..c1a6141885e5 --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux/cc/module.modulemap @@ -0,0 +1,5944 @@ +module "crosstool" [system] { + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_cuda_builtin_vars.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_cuda_cmath.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_cuda_complex_builtins.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_cuda_device_functions.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_cuda_intrinsics.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_cuda_libdevice_declares.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_cuda_math.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_cuda_math_forward_declares.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_cuda_runtime_wrapper.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_hip_cmath.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_hip_libdevice_declares.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_hip_math.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__clang_hip_runtime_wrapper.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__stddef_max_align_t.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__wmmintrin_aes.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/__wmmintrin_pclmul.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/adxintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/altivec.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/ammintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/amxintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/arm64intr.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/arm_acle.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/arm_bf16.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/arm_cde.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/arm_cmse.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/arm_fp16.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/arm_mve.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/arm_neon.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/arm_sve.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/armintr.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx2intrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512bf16intrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512bitalgintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512bwintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512cdintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512dqintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512erintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512fintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512ifmaintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512ifmavlintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512pfintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vbmi2intrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vbmiintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vbmivlintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vlbf16intrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vlbitalgintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vlbwintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vlcdintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vldqintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vlintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vlvbmi2intrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vlvnniintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vlvp2intersectintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vnniintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vp2intersectintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vpopcntdqintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avx512vpopcntdqvlintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avxintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/avxvnniintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/bmi2intrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/bmiintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/builtins.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/cet.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/cetintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/cldemoteintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/clflushoptintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/clwbintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/clzerointrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/cpuid.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/cuda_wrappers/algorithm" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/cuda_wrappers/complex" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/cuda_wrappers/new" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/emmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/enqcmdintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/f16cintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/float.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/fma4intrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/fmaintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/fuzzer/FuzzedDataProvider.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/fxsrintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/gfniintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/hexagon_circ_brev_intrinsics.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/hexagon_protos.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/hexagon_types.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/hresetintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/htmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/htmxlintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/hvx_hexagon_protos.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/ia32intrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/immintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/intrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/inttypes.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/invpcidintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/iso646.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/keylockerintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/limits.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/lwpintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/lzcntintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/mm3dnow.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/mm_malloc.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/mmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/module.modulemap" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/movdirintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/msa.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/mwaitxintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/nmmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/opencl-c-base.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/opencl-c.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/openmp_wrappers/cmath" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/openmp_wrappers/complex" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/openmp_wrappers/complex.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/openmp_wrappers/complex_cmath.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/openmp_wrappers/math.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/openmp_wrappers/new" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/pconfigintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/pkuintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/pmmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/popcntintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/ppc_wrappers/emmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/ppc_wrappers/mm_malloc.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/ppc_wrappers/mmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/ppc_wrappers/pmmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/ppc_wrappers/smmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/ppc_wrappers/tmmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/ppc_wrappers/xmmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/prfchwintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/profile/InstrProfData.inc" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/ptwriteintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/rdseedintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/riscv_vector.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/rtmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/s390intrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/allocator_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/asan_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/common_interface_defs.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/coverage_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/dfsan_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/hwasan_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/linux_syscall_hooks.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/lsan_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/msan_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/netbsd_syscall_hooks.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/scudo_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/tsan_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/tsan_interface_atomic.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sanitizer/ubsan_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/serializeintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/sgxintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/shaintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/smmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/stdalign.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/stdarg.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/stdatomic.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/stdbool.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/stddef.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/stdint.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/stdnoreturn.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/tbmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/tgmath.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/tmmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/tsxldtrkintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/uintrintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/unwind.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/vadefs.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/vaesintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/varargs.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/vecintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/vpclmulqdqintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/waitpkgintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/wasm_simd128.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/wbnoinvdintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/wmmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/x86gprintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/x86intrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/xmmintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/xopintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/xray/xray_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/xray/xray_log_interface.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/xray/xray_records.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/xsavecintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/xsaveintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/xsaveoptintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/xsavesintrin.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/include/xtestintrin.h" + textual header "/usr/include/x86_64-linux-gnu/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/asm/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/asm/auxvec.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bitsperlong.h" + textual header "/usr/include/x86_64-linux-gnu/asm/boot.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bootparam.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bpf_perf_event.h" + textual header "/usr/include/x86_64-linux-gnu/asm/byteorder.h" + textual header "/usr/include/x86_64-linux-gnu/asm/debugreg.h" + textual header "/usr/include/x86_64-linux-gnu/asm/e820.h" + textual header "/usr/include/x86_64-linux-gnu/asm/errno.h" + textual header "/usr/include/x86_64-linux-gnu/asm/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/hw_breakpoint.h" + textual header "/usr/include/x86_64-linux-gnu/asm/hwcap2.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ioctl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ioctls.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ipcbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ist.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm_para.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm_perf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ldt.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mce.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mman.h" + textual header "/usr/include/x86_64-linux-gnu/asm/msgbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/msr.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mtrr.h" + textual header "/usr/include/x86_64-linux-gnu/asm/param.h" + textual header "/usr/include/x86_64-linux-gnu/asm/perf_regs.h" + textual header "/usr/include/x86_64-linux-gnu/asm/poll.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_64.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_x32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/prctl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/processor-flags.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ptrace-abi.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ptrace.h" + textual header "/usr/include/x86_64-linux-gnu/asm/resource.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sembuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/setup.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sgx.h" + textual header "/usr/include/x86_64-linux-gnu/asm/shmbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sigcontext.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sigcontext32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/siginfo.h" + textual header "/usr/include/x86_64-linux-gnu/asm/signal.h" + textual header "/usr/include/x86_64-linux-gnu/asm/socket.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sockios.h" + textual header "/usr/include/x86_64-linux-gnu/asm/stat.h" + textual header "/usr/include/x86_64-linux-gnu/asm/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/asm/svm.h" + textual header "/usr/include/x86_64-linux-gnu/asm/swab.h" + textual header "/usr/include/x86_64-linux-gnu/asm/termbits.h" + textual header "/usr/include/x86_64-linux-gnu/asm/termios.h" + textual header "/usr/include/x86_64-linux-gnu/asm/types.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ucontext.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_64.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_x32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vm86.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vmx.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vsyscall.h" + textual header "/usr/include/x86_64-linux-gnu/bits/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/bits/argp-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/auxv.h" + textual header "/usr/include/x86_64-linux-gnu/bits/byteswap.h" + textual header "/usr/include/x86_64-linux-gnu/bits/cmathcalls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/confname.h" + textual header "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dirent.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dirent_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dlfcn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/elfclass.h" + textual header "/usr/include/x86_64-linux-gnu/bits/endian.h" + textual header "/usr/include/x86_64-linux-gnu/bits/endianness.h" + textual header "/usr/include/x86_64-linux-gnu/bits/environments.h" + textual header "/usr/include/x86_64-linux-gnu/bits/epoll.h" + textual header "/usr/include/x86_64-linux-gnu/bits/err-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/errno.h" + textual header "/usr/include/x86_64-linux-gnu/bits/error-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/error.h" + textual header "/usr/include/x86_64-linux-gnu/bits/eventfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fenv.h" + textual header "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" + textual header "/usr/include/x86_64-linux-gnu/bits/floatn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fp-fast.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fp-logb.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_core.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_posix.h" + textual header "/usr/include/x86_64-linux-gnu/bits/hwcap.h" + textual header "/usr/include/x86_64-linux-gnu/bits/in.h" + textual header "/usr/include/x86_64-linux-gnu/bits/indirect-return.h" + textual header "/usr/include/x86_64-linux-gnu/bits/initspin.h" + textual header "/usr/include/x86_64-linux-gnu/bits/inotify.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ioctl-types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ioctls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipc-perm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipctypes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" + textual header "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" + textual header "/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/link.h" + textual header "/usr/include/x86_64-linux-gnu/bits/local_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/locale.h" + textual header "/usr/include/x86_64-linux-gnu/bits/long-double.h" + textual header "/usr/include/x86_64-linux-gnu/bits/math-vector.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathdef.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-linux.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-map-flags-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-shared.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman.h" + textual header "/usr/include/x86_64-linux-gnu/bits/monetary-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mqueue.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mqueue2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/msq.h" + textual header "/usr/include/x86_64-linux-gnu/bits/netdb.h" + textual header "/usr/include/x86_64-linux-gnu/bits/param.h" + textual header "/usr/include/x86_64-linux-gnu/bits/poll.h" + textual header "/usr/include/x86_64-linux-gnu/bits/poll2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix_opt.h" + textual header "/usr/include/x86_64-linux-gnu/bits/printf-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-extra.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-id.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-prregset.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ptrace-shared.h" + textual header "/usr/include/x86_64-linux-gnu/bits/resource.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sched.h" + textual header "/usr/include/x86_64-linux-gnu/bits/select.h" + textual header "/usr/include/x86_64-linux-gnu/bits/select2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sem.h" + textual header "/usr/include/x86_64-linux-gnu/bits/semaphore.h" + textual header "/usr/include/x86_64-linux-gnu/bits/setjmp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/setjmp2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/shm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/shmlba.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigaction.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signal_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signalfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signum-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signum-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigstack.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigthread.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sockaddr.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket-constants.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket_type.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ss_flags.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stab.def" + textual header "/usr/include/x86_64-linux-gnu/bits/stat.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statvfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statx-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib.h" + textual header "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" + textual header "/usr/include/x86_64-linux-gnu/bits/strings_fortified.h" + textual header "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" + textual header "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" + textual header "/usr/include/x86_64-linux-gnu/bits/struct_stat.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syscall.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog-path.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sysmacros.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-baud.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_cc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_cflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_iflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_lflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_oflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-misc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-struct.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-tcflow.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios.h" + textual header "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/time.h" + textual header "/usr/include/x86_64-linux-gnu/bits/time64.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timerfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timesize.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timex.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/error_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/res_state.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/stack_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_msqid_ds.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_rusage.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_semid_ds.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_shmid_ds.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_statx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_timeb.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/wint_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/typesizes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uio-ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uio_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/unistd_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utmp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utmpx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utsname.h" + textual header "/usr/include/x86_64-linux-gnu/bits/waitflags.h" + textual header "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wordsize.h" + textual header "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/cxxabi_tweaks.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/extc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-posix.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-single.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/stdtr1c++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/ext/opt_random.h" + textual header "/usr/include/x86_64-linux-gnu/ffi.h" + textual header "/usr/include/x86_64-linux-gnu/ffitarget.h" + textual header "/usr/include/x86_64-linux-gnu/fpu_control.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/lib-names-64.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/lib-names.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/libc-version.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/stubs.h" + textual header "/usr/include/x86_64-linux-gnu/ieee754.h" + textual header "/usr/include/x86_64-linux-gnu/sys/acct.h" + textual header "/usr/include/x86_64-linux-gnu/sys/auxv.h" + textual header "/usr/include/x86_64-linux-gnu/sys/bitypes.h" + textual header "/usr/include/x86_64-linux-gnu/sys/cdefs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/debugreg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/dir.h" + textual header "/usr/include/x86_64-linux-gnu/sys/elf.h" + textual header "/usr/include/x86_64-linux-gnu/sys/epoll.h" + textual header "/usr/include/x86_64-linux-gnu/sys/errno.h" + textual header "/usr/include/x86_64-linux-gnu/sys/eventfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fanotify.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/file.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fsuid.h" + textual header "/usr/include/x86_64-linux-gnu/sys/gmon.h" + textual header "/usr/include/x86_64-linux-gnu/sys/gmon_out.h" + textual header "/usr/include/x86_64-linux-gnu/sys/inotify.h" + textual header "/usr/include/x86_64-linux-gnu/sys/io.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ioctl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ipc.h" + textual header "/usr/include/x86_64-linux-gnu/sys/kd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/klog.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mman.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mount.h" + textual header "/usr/include/x86_64-linux-gnu/sys/msg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mtio.h" + textual header "/usr/include/x86_64-linux-gnu/sys/param.h" + textual header "/usr/include/x86_64-linux-gnu/sys/pci.h" + textual header "/usr/include/x86_64-linux-gnu/sys/perm.h" + textual header "/usr/include/x86_64-linux-gnu/sys/personality.h" + textual header "/usr/include/x86_64-linux-gnu/sys/platform/x86.h" + textual header "/usr/include/x86_64-linux-gnu/sys/poll.h" + textual header "/usr/include/x86_64-linux-gnu/sys/prctl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/procfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/profil.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ptrace.h" + textual header "/usr/include/x86_64-linux-gnu/sys/queue.h" + textual header "/usr/include/x86_64-linux-gnu/sys/quota.h" + textual header "/usr/include/x86_64-linux-gnu/sys/random.h" + textual header "/usr/include/x86_64-linux-gnu/sys/raw.h" + textual header "/usr/include/x86_64-linux-gnu/sys/reboot.h" + textual header "/usr/include/x86_64-linux-gnu/sys/reg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/resource.h" + textual header "/usr/include/x86_64-linux-gnu/sys/select.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sem.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sendfile.h" + textual header "/usr/include/x86_64-linux-gnu/sys/shm.h" + textual header "/usr/include/x86_64-linux-gnu/sys/signal.h" + textual header "/usr/include/x86_64-linux-gnu/sys/signalfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/single_threaded.h" + textual header "/usr/include/x86_64-linux-gnu/sys/socket.h" + textual header "/usr/include/x86_64-linux-gnu/sys/socketvar.h" + textual header "/usr/include/x86_64-linux-gnu/sys/soundcard.h" + textual header "/usr/include/x86_64-linux-gnu/sys/stat.h" + textual header "/usr/include/x86_64-linux-gnu/sys/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/statvfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/swap.h" + textual header "/usr/include/x86_64-linux-gnu/sys/syscall.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sysinfo.h" + textual header "/usr/include/x86_64-linux-gnu/sys/syslog.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" + textual header "/usr/include/x86_64-linux-gnu/sys/termios.h" + textual header "/usr/include/x86_64-linux-gnu/sys/time.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timeb.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timerfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/times.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timex.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ttychars.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ttydefaults.h" + textual header "/usr/include/x86_64-linux-gnu/sys/types.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ucontext.h" + textual header "/usr/include/x86_64-linux-gnu/sys/uio.h" + textual header "/usr/include/x86_64-linux-gnu/sys/un.h" + textual header "/usr/include/x86_64-linux-gnu/sys/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/user.h" + textual header "/usr/include/x86_64-linux-gnu/sys/utsname.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vlimit.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vm86.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vt.h" + textual header "/usr/include/x86_64-linux-gnu/sys/wait.h" + textual header "/usr/include/x86_64-linux-gnu/sys/xattr.h" + textual header "/usr/include/aio.h" + textual header "/usr/include/aliases.h" + textual header "/usr/include/alloca.h" + textual header "/usr/include/ar.h" + textual header "/usr/include/argp.h" + textual header "/usr/include/argz.h" + textual header "/usr/include/arpa/ftp.h" + textual header "/usr/include/arpa/inet.h" + textual header "/usr/include/arpa/nameser.h" + textual header "/usr/include/arpa/nameser_compat.h" + textual header "/usr/include/arpa/telnet.h" + textual header "/usr/include/arpa/tftp.h" + textual header "/usr/include/asm-generic/auxvec.h" + textual header "/usr/include/asm-generic/bitsperlong.h" + textual header "/usr/include/asm-generic/bpf_perf_event.h" + textual header "/usr/include/asm-generic/errno-base.h" + textual header "/usr/include/asm-generic/errno.h" + textual header "/usr/include/asm-generic/fcntl.h" + textual header "/usr/include/asm-generic/hugetlb_encode.h" + textual header "/usr/include/asm-generic/int-l64.h" + textual header "/usr/include/asm-generic/int-ll64.h" + textual header "/usr/include/asm-generic/ioctl.h" + textual header "/usr/include/asm-generic/ioctls.h" + textual header "/usr/include/asm-generic/ipcbuf.h" + textual header "/usr/include/asm-generic/kvm_para.h" + textual header "/usr/include/asm-generic/mman-common.h" + textual header "/usr/include/asm-generic/mman.h" + textual header "/usr/include/asm-generic/msgbuf.h" + textual header "/usr/include/asm-generic/param.h" + textual header "/usr/include/asm-generic/poll.h" + textual header "/usr/include/asm-generic/posix_types.h" + textual header "/usr/include/asm-generic/resource.h" + textual header "/usr/include/asm-generic/sembuf.h" + textual header "/usr/include/asm-generic/setup.h" + textual header "/usr/include/asm-generic/shmbuf.h" + textual header "/usr/include/asm-generic/siginfo.h" + textual header "/usr/include/asm-generic/signal-defs.h" + textual header "/usr/include/asm-generic/signal.h" + textual header "/usr/include/asm-generic/socket.h" + textual header "/usr/include/asm-generic/sockios.h" + textual header "/usr/include/asm-generic/stat.h" + textual header "/usr/include/asm-generic/statfs.h" + textual header "/usr/include/asm-generic/swab.h" + textual header "/usr/include/asm-generic/termbits.h" + textual header "/usr/include/asm-generic/termios.h" + textual header "/usr/include/asm-generic/types.h" + textual header "/usr/include/asm-generic/ucontext.h" + textual header "/usr/include/asm-generic/unistd.h" + textual header "/usr/include/assert.h" + textual header "/usr/include/byteswap.h" + textual header "/usr/include/c++/11/algorithm" + textual header "/usr/include/c++/11/any" + textual header "/usr/include/c++/11/array" + textual header "/usr/include/c++/11/atomic" + textual header "/usr/include/c++/11/backward/auto_ptr.h" + textual header "/usr/include/c++/11/backward/backward_warning.h" + textual header "/usr/include/c++/11/backward/binders.h" + textual header "/usr/include/c++/11/backward/hash_fun.h" + textual header "/usr/include/c++/11/backward/hash_map" + textual header "/usr/include/c++/11/backward/hash_set" + textual header "/usr/include/c++/11/backward/hashtable.h" + textual header "/usr/include/c++/11/backward/strstream" + textual header "/usr/include/c++/11/barrier" + textual header "/usr/include/c++/11/bit" + textual header "/usr/include/c++/11/bits/algorithmfwd.h" + textual header "/usr/include/c++/11/bits/align.h" + textual header "/usr/include/c++/11/bits/alloc_traits.h" + textual header "/usr/include/c++/11/bits/allocated_ptr.h" + textual header "/usr/include/c++/11/bits/allocator.h" + textual header "/usr/include/c++/11/bits/atomic_base.h" + textual header "/usr/include/c++/11/bits/atomic_futex.h" + textual header "/usr/include/c++/11/bits/atomic_lockfree_defines.h" + textual header "/usr/include/c++/11/bits/atomic_timed_wait.h" + textual header "/usr/include/c++/11/bits/atomic_wait.h" + textual header "/usr/include/c++/11/bits/basic_ios.h" + textual header "/usr/include/c++/11/bits/basic_ios.tcc" + textual header "/usr/include/c++/11/bits/basic_string.h" + textual header "/usr/include/c++/11/bits/basic_string.tcc" + textual header "/usr/include/c++/11/bits/boost_concept_check.h" + textual header "/usr/include/c++/11/bits/c++0x_warning.h" + textual header "/usr/include/c++/11/bits/char_traits.h" + textual header "/usr/include/c++/11/bits/charconv.h" + textual header "/usr/include/c++/11/bits/codecvt.h" + textual header "/usr/include/c++/11/bits/concept_check.h" + textual header "/usr/include/c++/11/bits/cpp_type_traits.h" + textual header "/usr/include/c++/11/bits/cxxabi_forced.h" + textual header "/usr/include/c++/11/bits/cxxabi_init_exception.h" + textual header "/usr/include/c++/11/bits/deque.tcc" + textual header "/usr/include/c++/11/bits/enable_special_members.h" + textual header "/usr/include/c++/11/bits/erase_if.h" + textual header "/usr/include/c++/11/bits/exception.h" + textual header "/usr/include/c++/11/bits/exception_defines.h" + textual header "/usr/include/c++/11/bits/exception_ptr.h" + textual header "/usr/include/c++/11/bits/forward_list.h" + textual header "/usr/include/c++/11/bits/forward_list.tcc" + textual header "/usr/include/c++/11/bits/fs_dir.h" + textual header "/usr/include/c++/11/bits/fs_fwd.h" + textual header "/usr/include/c++/11/bits/fs_ops.h" + textual header "/usr/include/c++/11/bits/fs_path.h" + textual header "/usr/include/c++/11/bits/fstream.tcc" + textual header "/usr/include/c++/11/bits/functexcept.h" + textual header "/usr/include/c++/11/bits/functional_hash.h" + textual header "/usr/include/c++/11/bits/gslice.h" + textual header "/usr/include/c++/11/bits/gslice_array.h" + textual header "/usr/include/c++/11/bits/hash_bytes.h" + textual header "/usr/include/c++/11/bits/hashtable.h" + textual header "/usr/include/c++/11/bits/hashtable_policy.h" + textual header "/usr/include/c++/11/bits/indirect_array.h" + textual header "/usr/include/c++/11/bits/invoke.h" + textual header "/usr/include/c++/11/bits/ios_base.h" + textual header "/usr/include/c++/11/bits/istream.tcc" + textual header "/usr/include/c++/11/bits/iterator_concepts.h" + textual header "/usr/include/c++/11/bits/list.tcc" + textual header "/usr/include/c++/11/bits/locale_classes.h" + textual header "/usr/include/c++/11/bits/locale_classes.tcc" + textual header "/usr/include/c++/11/bits/locale_conv.h" + textual header "/usr/include/c++/11/bits/locale_facets.h" + textual header "/usr/include/c++/11/bits/locale_facets.tcc" + textual header "/usr/include/c++/11/bits/locale_facets_nonio.h" + textual header "/usr/include/c++/11/bits/locale_facets_nonio.tcc" + textual header "/usr/include/c++/11/bits/localefwd.h" + textual header "/usr/include/c++/11/bits/mask_array.h" + textual header "/usr/include/c++/11/bits/max_size_type.h" + textual header "/usr/include/c++/11/bits/memoryfwd.h" + textual header "/usr/include/c++/11/bits/move.h" + textual header "/usr/include/c++/11/bits/nested_exception.h" + textual header "/usr/include/c++/11/bits/node_handle.h" + textual header "/usr/include/c++/11/bits/ostream.tcc" + textual header "/usr/include/c++/11/bits/ostream_insert.h" + textual header "/usr/include/c++/11/bits/parse_numbers.h" + textual header "/usr/include/c++/11/bits/postypes.h" + textual header "/usr/include/c++/11/bits/predefined_ops.h" + textual header "/usr/include/c++/11/bits/ptr_traits.h" + textual header "/usr/include/c++/11/bits/quoted_string.h" + textual header "/usr/include/c++/11/bits/random.h" + textual header "/usr/include/c++/11/bits/random.tcc" + textual header "/usr/include/c++/11/bits/range_access.h" + textual header "/usr/include/c++/11/bits/ranges_algo.h" + textual header "/usr/include/c++/11/bits/ranges_algobase.h" + textual header "/usr/include/c++/11/bits/ranges_base.h" + textual header "/usr/include/c++/11/bits/ranges_cmp.h" + textual header "/usr/include/c++/11/bits/ranges_uninitialized.h" + textual header "/usr/include/c++/11/bits/ranges_util.h" + textual header "/usr/include/c++/11/bits/refwrap.h" + textual header "/usr/include/c++/11/bits/regex.h" + textual header "/usr/include/c++/11/bits/regex.tcc" + textual header "/usr/include/c++/11/bits/regex_automaton.h" + textual header "/usr/include/c++/11/bits/regex_automaton.tcc" + textual header "/usr/include/c++/11/bits/regex_compiler.h" + textual header "/usr/include/c++/11/bits/regex_compiler.tcc" + textual header "/usr/include/c++/11/bits/regex_constants.h" + textual header "/usr/include/c++/11/bits/regex_error.h" + textual header "/usr/include/c++/11/bits/regex_executor.h" + textual header "/usr/include/c++/11/bits/regex_executor.tcc" + textual header "/usr/include/c++/11/bits/regex_scanner.h" + textual header "/usr/include/c++/11/bits/regex_scanner.tcc" + textual header "/usr/include/c++/11/bits/semaphore_base.h" + textual header "/usr/include/c++/11/bits/shared_ptr.h" + textual header "/usr/include/c++/11/bits/shared_ptr_atomic.h" + textual header "/usr/include/c++/11/bits/shared_ptr_base.h" + textual header "/usr/include/c++/11/bits/slice_array.h" + textual header "/usr/include/c++/11/bits/specfun.h" + textual header "/usr/include/c++/11/bits/sstream.tcc" + textual header "/usr/include/c++/11/bits/std_abs.h" + textual header "/usr/include/c++/11/bits/std_function.h" + textual header "/usr/include/c++/11/bits/std_mutex.h" + textual header "/usr/include/c++/11/bits/std_thread.h" + textual header "/usr/include/c++/11/bits/stl_algo.h" + textual header "/usr/include/c++/11/bits/stl_algobase.h" + textual header "/usr/include/c++/11/bits/stl_bvector.h" + textual header "/usr/include/c++/11/bits/stl_construct.h" + textual header "/usr/include/c++/11/bits/stl_deque.h" + textual header "/usr/include/c++/11/bits/stl_function.h" + textual header "/usr/include/c++/11/bits/stl_heap.h" + textual header "/usr/include/c++/11/bits/stl_iterator.h" + textual header "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" + textual header "/usr/include/c++/11/bits/stl_iterator_base_types.h" + textual header "/usr/include/c++/11/bits/stl_list.h" + textual header "/usr/include/c++/11/bits/stl_map.h" + textual header "/usr/include/c++/11/bits/stl_multimap.h" + textual header "/usr/include/c++/11/bits/stl_multiset.h" + textual header "/usr/include/c++/11/bits/stl_numeric.h" + textual header "/usr/include/c++/11/bits/stl_pair.h" + textual header "/usr/include/c++/11/bits/stl_queue.h" + textual header "/usr/include/c++/11/bits/stl_raw_storage_iter.h" + textual header "/usr/include/c++/11/bits/stl_relops.h" + textual header "/usr/include/c++/11/bits/stl_set.h" + textual header "/usr/include/c++/11/bits/stl_stack.h" + textual header "/usr/include/c++/11/bits/stl_tempbuf.h" + textual header "/usr/include/c++/11/bits/stl_tree.h" + textual header "/usr/include/c++/11/bits/stl_uninitialized.h" + textual header "/usr/include/c++/11/bits/stl_vector.h" + textual header "/usr/include/c++/11/bits/stream_iterator.h" + textual header "/usr/include/c++/11/bits/streambuf.tcc" + textual header "/usr/include/c++/11/bits/streambuf_iterator.h" + textual header "/usr/include/c++/11/bits/string_view.tcc" + textual header "/usr/include/c++/11/bits/stringfwd.h" + textual header "/usr/include/c++/11/bits/this_thread_sleep.h" + textual header "/usr/include/c++/11/bits/uniform_int_dist.h" + textual header "/usr/include/c++/11/bits/unique_lock.h" + textual header "/usr/include/c++/11/bits/unique_ptr.h" + textual header "/usr/include/c++/11/bits/unordered_map.h" + textual header "/usr/include/c++/11/bits/unordered_set.h" + textual header "/usr/include/c++/11/bits/uses_allocator.h" + textual header "/usr/include/c++/11/bits/uses_allocator_args.h" + textual header "/usr/include/c++/11/bits/valarray_after.h" + textual header "/usr/include/c++/11/bits/valarray_array.h" + textual header "/usr/include/c++/11/bits/valarray_array.tcc" + textual header "/usr/include/c++/11/bits/valarray_before.h" + textual header "/usr/include/c++/11/bits/vector.tcc" + textual header "/usr/include/c++/11/bitset" + textual header "/usr/include/c++/11/cassert" + textual header "/usr/include/c++/11/ccomplex" + textual header "/usr/include/c++/11/cctype" + textual header "/usr/include/c++/11/cerrno" + textual header "/usr/include/c++/11/cfenv" + textual header "/usr/include/c++/11/cfloat" + textual header "/usr/include/c++/11/charconv" + textual header "/usr/include/c++/11/chrono" + textual header "/usr/include/c++/11/cinttypes" + textual header "/usr/include/c++/11/ciso646" + textual header "/usr/include/c++/11/climits" + textual header "/usr/include/c++/11/clocale" + textual header "/usr/include/c++/11/cmath" + textual header "/usr/include/c++/11/codecvt" + textual header "/usr/include/c++/11/compare" + textual header "/usr/include/c++/11/complex" + textual header "/usr/include/c++/11/complex.h" + textual header "/usr/include/c++/11/concepts" + textual header "/usr/include/c++/11/condition_variable" + textual header "/usr/include/c++/11/coroutine" + textual header "/usr/include/c++/11/csetjmp" + textual header "/usr/include/c++/11/csignal" + textual header "/usr/include/c++/11/cstdalign" + textual header "/usr/include/c++/11/cstdarg" + textual header "/usr/include/c++/11/cstdbool" + textual header "/usr/include/c++/11/cstddef" + textual header "/usr/include/c++/11/cstdint" + textual header "/usr/include/c++/11/cstdio" + textual header "/usr/include/c++/11/cstdlib" + textual header "/usr/include/c++/11/cstring" + textual header "/usr/include/c++/11/ctgmath" + textual header "/usr/include/c++/11/ctime" + textual header "/usr/include/c++/11/cuchar" + textual header "/usr/include/c++/11/cwchar" + textual header "/usr/include/c++/11/cwctype" + textual header "/usr/include/c++/11/cxxabi.h" + textual header "/usr/include/c++/11/debug/assertions.h" + textual header "/usr/include/c++/11/debug/bitset" + textual header "/usr/include/c++/11/debug/debug.h" + textual header "/usr/include/c++/11/debug/deque" + textual header "/usr/include/c++/11/debug/formatter.h" + textual header "/usr/include/c++/11/debug/forward_list" + textual header "/usr/include/c++/11/debug/functions.h" + textual header "/usr/include/c++/11/debug/helper_functions.h" + textual header "/usr/include/c++/11/debug/list" + textual header "/usr/include/c++/11/debug/macros.h" + textual header "/usr/include/c++/11/debug/map" + textual header "/usr/include/c++/11/debug/map.h" + textual header "/usr/include/c++/11/debug/multimap.h" + textual header "/usr/include/c++/11/debug/multiset.h" + textual header "/usr/include/c++/11/debug/safe_base.h" + textual header "/usr/include/c++/11/debug/safe_container.h" + textual header "/usr/include/c++/11/debug/safe_iterator.h" + textual header "/usr/include/c++/11/debug/safe_iterator.tcc" + textual header "/usr/include/c++/11/debug/safe_local_iterator.h" + textual header "/usr/include/c++/11/debug/safe_local_iterator.tcc" + textual header "/usr/include/c++/11/debug/safe_sequence.h" + textual header "/usr/include/c++/11/debug/safe_sequence.tcc" + textual header "/usr/include/c++/11/debug/safe_unordered_base.h" + textual header "/usr/include/c++/11/debug/safe_unordered_container.h" + textual header "/usr/include/c++/11/debug/safe_unordered_container.tcc" + textual header "/usr/include/c++/11/debug/set" + textual header "/usr/include/c++/11/debug/set.h" + textual header "/usr/include/c++/11/debug/stl_iterator.h" + textual header "/usr/include/c++/11/debug/string" + textual header "/usr/include/c++/11/debug/unordered_map" + textual header "/usr/include/c++/11/debug/unordered_set" + textual header "/usr/include/c++/11/debug/vector" + textual header "/usr/include/c++/11/decimal/decimal" + textual header "/usr/include/c++/11/decimal/decimal.h" + textual header "/usr/include/c++/11/deque" + textual header "/usr/include/c++/11/exception" + textual header "/usr/include/c++/11/execution" + textual header "/usr/include/c++/11/experimental/algorithm" + textual header "/usr/include/c++/11/experimental/any" + textual header "/usr/include/c++/11/experimental/array" + textual header "/usr/include/c++/11/experimental/bits/fs_dir.h" + textual header "/usr/include/c++/11/experimental/bits/fs_fwd.h" + textual header "/usr/include/c++/11/experimental/bits/fs_ops.h" + textual header "/usr/include/c++/11/experimental/bits/fs_path.h" + textual header "/usr/include/c++/11/experimental/bits/lfts_config.h" + textual header "/usr/include/c++/11/experimental/bits/net.h" + textual header "/usr/include/c++/11/experimental/bits/numeric_traits.h" + textual header "/usr/include/c++/11/experimental/bits/shared_ptr.h" + textual header "/usr/include/c++/11/experimental/bits/simd.h" + textual header "/usr/include/c++/11/experimental/bits/simd_builtin.h" + textual header "/usr/include/c++/11/experimental/bits/simd_converter.h" + textual header "/usr/include/c++/11/experimental/bits/simd_detail.h" + textual header "/usr/include/c++/11/experimental/bits/simd_fixed_size.h" + textual header "/usr/include/c++/11/experimental/bits/simd_math.h" + textual header "/usr/include/c++/11/experimental/bits/simd_neon.h" + textual header "/usr/include/c++/11/experimental/bits/simd_ppc.h" + textual header "/usr/include/c++/11/experimental/bits/simd_scalar.h" + textual header "/usr/include/c++/11/experimental/bits/simd_x86.h" + textual header "/usr/include/c++/11/experimental/bits/simd_x86_conversions.h" + textual header "/usr/include/c++/11/experimental/bits/string_view.tcc" + textual header "/usr/include/c++/11/experimental/buffer" + textual header "/usr/include/c++/11/experimental/chrono" + textual header "/usr/include/c++/11/experimental/deque" + textual header "/usr/include/c++/11/experimental/executor" + textual header "/usr/include/c++/11/experimental/filesystem" + textual header "/usr/include/c++/11/experimental/forward_list" + textual header "/usr/include/c++/11/experimental/functional" + textual header "/usr/include/c++/11/experimental/internet" + textual header "/usr/include/c++/11/experimental/io_context" + textual header "/usr/include/c++/11/experimental/iterator" + textual header "/usr/include/c++/11/experimental/list" + textual header "/usr/include/c++/11/experimental/map" + textual header "/usr/include/c++/11/experimental/memory" + textual header "/usr/include/c++/11/experimental/memory_resource" + textual header "/usr/include/c++/11/experimental/net" + textual header "/usr/include/c++/11/experimental/netfwd" + textual header "/usr/include/c++/11/experimental/numeric" + textual header "/usr/include/c++/11/experimental/optional" + textual header "/usr/include/c++/11/experimental/propagate_const" + textual header "/usr/include/c++/11/experimental/random" + textual header "/usr/include/c++/11/experimental/ratio" + textual header "/usr/include/c++/11/experimental/regex" + textual header "/usr/include/c++/11/experimental/set" + textual header "/usr/include/c++/11/experimental/simd" + textual header "/usr/include/c++/11/experimental/socket" + textual header "/usr/include/c++/11/experimental/source_location" + textual header "/usr/include/c++/11/experimental/string" + textual header "/usr/include/c++/11/experimental/string_view" + textual header "/usr/include/c++/11/experimental/system_error" + textual header "/usr/include/c++/11/experimental/timer" + textual header "/usr/include/c++/11/experimental/tuple" + textual header "/usr/include/c++/11/experimental/type_traits" + textual header "/usr/include/c++/11/experimental/unordered_map" + textual header "/usr/include/c++/11/experimental/unordered_set" + textual header "/usr/include/c++/11/experimental/utility" + textual header "/usr/include/c++/11/experimental/vector" + textual header "/usr/include/c++/11/ext/algorithm" + textual header "/usr/include/c++/11/ext/aligned_buffer.h" + textual header "/usr/include/c++/11/ext/alloc_traits.h" + textual header "/usr/include/c++/11/ext/atomicity.h" + textual header "/usr/include/c++/11/ext/bitmap_allocator.h" + textual header "/usr/include/c++/11/ext/cast.h" + textual header "/usr/include/c++/11/ext/cmath" + textual header "/usr/include/c++/11/ext/codecvt_specializations.h" + textual header "/usr/include/c++/11/ext/concurrence.h" + textual header "/usr/include/c++/11/ext/debug_allocator.h" + textual header "/usr/include/c++/11/ext/enc_filebuf.h" + textual header "/usr/include/c++/11/ext/extptr_allocator.h" + textual header "/usr/include/c++/11/ext/functional" + textual header "/usr/include/c++/11/ext/hash_map" + textual header "/usr/include/c++/11/ext/hash_set" + textual header "/usr/include/c++/11/ext/iterator" + textual header "/usr/include/c++/11/ext/malloc_allocator.h" + textual header "/usr/include/c++/11/ext/memory" + textual header "/usr/include/c++/11/ext/mt_allocator.h" + textual header "/usr/include/c++/11/ext/new_allocator.h" + textual header "/usr/include/c++/11/ext/numeric" + textual header "/usr/include/c++/11/ext/numeric_traits.h" + textual header "/usr/include/c++/11/ext/pb_ds/assoc_container.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/entry_pred.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/resize_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/branch_policy/branch_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/branch_policy/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cond_dealtor.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/container_base_dispatch.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/debug_map_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/eq_fn/eq_by_less.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/lu_map_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/priority_queue_base_dispatch.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/node.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/node.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/standard_policies.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/tree_trace_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/type_utils.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/types_traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/unordered_iterator/iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/exception.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/hash_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/list_update_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/priority_queue.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/tag_and_trait.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/tree_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/trie_policy.hpp" + textual header "/usr/include/c++/11/ext/pod_char_traits.h" + textual header "/usr/include/c++/11/ext/pointer.h" + textual header "/usr/include/c++/11/ext/pool_allocator.h" + textual header "/usr/include/c++/11/ext/random" + textual header "/usr/include/c++/11/ext/random.tcc" + textual header "/usr/include/c++/11/ext/rb_tree" + textual header "/usr/include/c++/11/ext/rc_string_base.h" + textual header "/usr/include/c++/11/ext/rope" + textual header "/usr/include/c++/11/ext/ropeimpl.h" + textual header "/usr/include/c++/11/ext/slist" + textual header "/usr/include/c++/11/ext/sso_string_base.h" + textual header "/usr/include/c++/11/ext/stdio_filebuf.h" + textual header "/usr/include/c++/11/ext/stdio_sync_filebuf.h" + textual header "/usr/include/c++/11/ext/string_conversions.h" + textual header "/usr/include/c++/11/ext/throw_allocator.h" + textual header "/usr/include/c++/11/ext/type_traits.h" + textual header "/usr/include/c++/11/ext/typelist.h" + textual header "/usr/include/c++/11/ext/vstring.h" + textual header "/usr/include/c++/11/ext/vstring.tcc" + textual header "/usr/include/c++/11/ext/vstring_fwd.h" + textual header "/usr/include/c++/11/ext/vstring_util.h" + textual header "/usr/include/c++/11/fenv.h" + textual header "/usr/include/c++/11/filesystem" + textual header "/usr/include/c++/11/forward_list" + textual header "/usr/include/c++/11/fstream" + textual header "/usr/include/c++/11/functional" + textual header "/usr/include/c++/11/future" + textual header "/usr/include/c++/11/initializer_list" + textual header "/usr/include/c++/11/iomanip" + textual header "/usr/include/c++/11/ios" + textual header "/usr/include/c++/11/iosfwd" + textual header "/usr/include/c++/11/iostream" + textual header "/usr/include/c++/11/istream" + textual header "/usr/include/c++/11/iterator" + textual header "/usr/include/c++/11/latch" + textual header "/usr/include/c++/11/limits" + textual header "/usr/include/c++/11/list" + textual header "/usr/include/c++/11/locale" + textual header "/usr/include/c++/11/map" + textual header "/usr/include/c++/11/math.h" + textual header "/usr/include/c++/11/memory" + textual header "/usr/include/c++/11/memory_resource" + textual header "/usr/include/c++/11/mutex" + textual header "/usr/include/c++/11/new" + textual header "/usr/include/c++/11/numbers" + textual header "/usr/include/c++/11/numeric" + textual header "/usr/include/c++/11/optional" + textual header "/usr/include/c++/11/ostream" + textual header "/usr/include/c++/11/parallel/algo.h" + textual header "/usr/include/c++/11/parallel/algobase.h" + textual header "/usr/include/c++/11/parallel/algorithm" + textual header "/usr/include/c++/11/parallel/algorithmfwd.h" + textual header "/usr/include/c++/11/parallel/balanced_quicksort.h" + textual header "/usr/include/c++/11/parallel/base.h" + textual header "/usr/include/c++/11/parallel/basic_iterator.h" + textual header "/usr/include/c++/11/parallel/checkers.h" + textual header "/usr/include/c++/11/parallel/compatibility.h" + textual header "/usr/include/c++/11/parallel/compiletime_settings.h" + textual header "/usr/include/c++/11/parallel/equally_split.h" + textual header "/usr/include/c++/11/parallel/features.h" + textual header "/usr/include/c++/11/parallel/find.h" + textual header "/usr/include/c++/11/parallel/find_selectors.h" + textual header "/usr/include/c++/11/parallel/for_each.h" + textual header "/usr/include/c++/11/parallel/for_each_selectors.h" + textual header "/usr/include/c++/11/parallel/iterator.h" + textual header "/usr/include/c++/11/parallel/list_partition.h" + textual header "/usr/include/c++/11/parallel/losertree.h" + textual header "/usr/include/c++/11/parallel/merge.h" + textual header "/usr/include/c++/11/parallel/multiseq_selection.h" + textual header "/usr/include/c++/11/parallel/multiway_merge.h" + textual header "/usr/include/c++/11/parallel/multiway_mergesort.h" + textual header "/usr/include/c++/11/parallel/numeric" + textual header "/usr/include/c++/11/parallel/numericfwd.h" + textual header "/usr/include/c++/11/parallel/omp_loop.h" + textual header "/usr/include/c++/11/parallel/omp_loop_static.h" + textual header "/usr/include/c++/11/parallel/par_loop.h" + textual header "/usr/include/c++/11/parallel/parallel.h" + textual header "/usr/include/c++/11/parallel/partial_sum.h" + textual header "/usr/include/c++/11/parallel/partition.h" + textual header "/usr/include/c++/11/parallel/queue.h" + textual header "/usr/include/c++/11/parallel/quicksort.h" + textual header "/usr/include/c++/11/parallel/random_number.h" + textual header "/usr/include/c++/11/parallel/random_shuffle.h" + textual header "/usr/include/c++/11/parallel/search.h" + textual header "/usr/include/c++/11/parallel/set_operations.h" + textual header "/usr/include/c++/11/parallel/settings.h" + textual header "/usr/include/c++/11/parallel/sort.h" + textual header "/usr/include/c++/11/parallel/tags.h" + textual header "/usr/include/c++/11/parallel/types.h" + textual header "/usr/include/c++/11/parallel/unique_copy.h" + textual header "/usr/include/c++/11/parallel/workstealing.h" + textual header "/usr/include/c++/11/pstl/algorithm_fwd.h" + textual header "/usr/include/c++/11/pstl/algorithm_impl.h" + textual header "/usr/include/c++/11/pstl/execution_defs.h" + textual header "/usr/include/c++/11/pstl/execution_impl.h" + textual header "/usr/include/c++/11/pstl/glue_algorithm_defs.h" + textual header "/usr/include/c++/11/pstl/glue_algorithm_impl.h" + textual header "/usr/include/c++/11/pstl/glue_execution_defs.h" + textual header "/usr/include/c++/11/pstl/glue_memory_defs.h" + textual header "/usr/include/c++/11/pstl/glue_memory_impl.h" + textual header "/usr/include/c++/11/pstl/glue_numeric_defs.h" + textual header "/usr/include/c++/11/pstl/glue_numeric_impl.h" + textual header "/usr/include/c++/11/pstl/memory_impl.h" + textual header "/usr/include/c++/11/pstl/numeric_fwd.h" + textual header "/usr/include/c++/11/pstl/numeric_impl.h" + textual header "/usr/include/c++/11/pstl/parallel_backend.h" + textual header "/usr/include/c++/11/pstl/parallel_backend_serial.h" + textual header "/usr/include/c++/11/pstl/parallel_backend_tbb.h" + textual header "/usr/include/c++/11/pstl/parallel_backend_utils.h" + textual header "/usr/include/c++/11/pstl/parallel_impl.h" + textual header "/usr/include/c++/11/pstl/pstl_config.h" + textual header "/usr/include/c++/11/pstl/unseq_backend_simd.h" + textual header "/usr/include/c++/11/pstl/utils.h" + textual header "/usr/include/c++/11/queue" + textual header "/usr/include/c++/11/random" + textual header "/usr/include/c++/11/ranges" + textual header "/usr/include/c++/11/ratio" + textual header "/usr/include/c++/11/regex" + textual header "/usr/include/c++/11/scoped_allocator" + textual header "/usr/include/c++/11/semaphore" + textual header "/usr/include/c++/11/set" + textual header "/usr/include/c++/11/shared_mutex" + textual header "/usr/include/c++/11/source_location" + textual header "/usr/include/c++/11/span" + textual header "/usr/include/c++/11/sstream" + textual header "/usr/include/c++/11/stack" + textual header "/usr/include/c++/11/stdexcept" + textual header "/usr/include/c++/11/stdlib.h" + textual header "/usr/include/c++/11/stop_token" + textual header "/usr/include/c++/11/streambuf" + textual header "/usr/include/c++/11/string" + textual header "/usr/include/c++/11/string_view" + textual header "/usr/include/c++/11/syncstream" + textual header "/usr/include/c++/11/system_error" + textual header "/usr/include/c++/11/tgmath.h" + textual header "/usr/include/c++/11/thread" + textual header "/usr/include/c++/11/tr1/array" + textual header "/usr/include/c++/11/tr1/bessel_function.tcc" + textual header "/usr/include/c++/11/tr1/beta_function.tcc" + textual header "/usr/include/c++/11/tr1/ccomplex" + textual header "/usr/include/c++/11/tr1/cctype" + textual header "/usr/include/c++/11/tr1/cfenv" + textual header "/usr/include/c++/11/tr1/cfloat" + textual header "/usr/include/c++/11/tr1/cinttypes" + textual header "/usr/include/c++/11/tr1/climits" + textual header "/usr/include/c++/11/tr1/cmath" + textual header "/usr/include/c++/11/tr1/complex" + textual header "/usr/include/c++/11/tr1/complex.h" + textual header "/usr/include/c++/11/tr1/cstdarg" + textual header "/usr/include/c++/11/tr1/cstdbool" + textual header "/usr/include/c++/11/tr1/cstdint" + textual header "/usr/include/c++/11/tr1/cstdio" + textual header "/usr/include/c++/11/tr1/cstdlib" + textual header "/usr/include/c++/11/tr1/ctgmath" + textual header "/usr/include/c++/11/tr1/ctime" + textual header "/usr/include/c++/11/tr1/ctype.h" + textual header "/usr/include/c++/11/tr1/cwchar" + textual header "/usr/include/c++/11/tr1/cwctype" + textual header "/usr/include/c++/11/tr1/ell_integral.tcc" + textual header "/usr/include/c++/11/tr1/exp_integral.tcc" + textual header "/usr/include/c++/11/tr1/fenv.h" + textual header "/usr/include/c++/11/tr1/float.h" + textual header "/usr/include/c++/11/tr1/functional" + textual header "/usr/include/c++/11/tr1/functional_hash.h" + textual header "/usr/include/c++/11/tr1/gamma.tcc" + textual header "/usr/include/c++/11/tr1/hashtable.h" + textual header "/usr/include/c++/11/tr1/hashtable_policy.h" + textual header "/usr/include/c++/11/tr1/hypergeometric.tcc" + textual header "/usr/include/c++/11/tr1/inttypes.h" + textual header "/usr/include/c++/11/tr1/legendre_function.tcc" + textual header "/usr/include/c++/11/tr1/limits.h" + textual header "/usr/include/c++/11/tr1/math.h" + textual header "/usr/include/c++/11/tr1/memory" + textual header "/usr/include/c++/11/tr1/modified_bessel_func.tcc" + textual header "/usr/include/c++/11/tr1/poly_hermite.tcc" + textual header "/usr/include/c++/11/tr1/poly_laguerre.tcc" + textual header "/usr/include/c++/11/tr1/random" + textual header "/usr/include/c++/11/tr1/random.h" + textual header "/usr/include/c++/11/tr1/random.tcc" + textual header "/usr/include/c++/11/tr1/regex" + textual header "/usr/include/c++/11/tr1/riemann_zeta.tcc" + textual header "/usr/include/c++/11/tr1/shared_ptr.h" + textual header "/usr/include/c++/11/tr1/special_function_util.h" + textual header "/usr/include/c++/11/tr1/stdarg.h" + textual header "/usr/include/c++/11/tr1/stdbool.h" + textual header "/usr/include/c++/11/tr1/stdint.h" + textual header "/usr/include/c++/11/tr1/stdio.h" + textual header "/usr/include/c++/11/tr1/stdlib.h" + textual header "/usr/include/c++/11/tr1/tgmath.h" + textual header "/usr/include/c++/11/tr1/tuple" + textual header "/usr/include/c++/11/tr1/type_traits" + textual header "/usr/include/c++/11/tr1/unordered_map" + textual header "/usr/include/c++/11/tr1/unordered_map.h" + textual header "/usr/include/c++/11/tr1/unordered_set" + textual header "/usr/include/c++/11/tr1/unordered_set.h" + textual header "/usr/include/c++/11/tr1/utility" + textual header "/usr/include/c++/11/tr1/wchar.h" + textual header "/usr/include/c++/11/tr1/wctype.h" + textual header "/usr/include/c++/11/tr2/bool_set" + textual header "/usr/include/c++/11/tr2/bool_set.tcc" + textual header "/usr/include/c++/11/tr2/dynamic_bitset" + textual header "/usr/include/c++/11/tr2/dynamic_bitset.tcc" + textual header "/usr/include/c++/11/tr2/ratio" + textual header "/usr/include/c++/11/tr2/type_traits" + textual header "/usr/include/c++/11/tuple" + textual header "/usr/include/c++/11/type_traits" + textual header "/usr/include/c++/11/typeindex" + textual header "/usr/include/c++/11/typeinfo" + textual header "/usr/include/c++/11/unordered_map" + textual header "/usr/include/c++/11/unordered_set" + textual header "/usr/include/c++/11/utility" + textual header "/usr/include/c++/11/valarray" + textual header "/usr/include/c++/11/variant" + textual header "/usr/include/c++/11/vector" + textual header "/usr/include/c++/11/version" + textual header "/usr/include/clang/13.0.1/include/__clang_cuda_builtin_vars.h" + textual header "/usr/include/clang/13.0.1/include/__clang_cuda_cmath.h" + textual header "/usr/include/clang/13.0.1/include/__clang_cuda_complex_builtins.h" + textual header "/usr/include/clang/13.0.1/include/__clang_cuda_device_functions.h" + textual header "/usr/include/clang/13.0.1/include/__clang_cuda_intrinsics.h" + textual header "/usr/include/clang/13.0.1/include/__clang_cuda_libdevice_declares.h" + textual header "/usr/include/clang/13.0.1/include/__clang_cuda_math.h" + textual header "/usr/include/clang/13.0.1/include/__clang_cuda_math_forward_declares.h" + textual header "/usr/include/clang/13.0.1/include/__clang_cuda_runtime_wrapper.h" + textual header "/usr/include/clang/13.0.1/include/__clang_hip_cmath.h" + textual header "/usr/include/clang/13.0.1/include/__clang_hip_libdevice_declares.h" + textual header "/usr/include/clang/13.0.1/include/__clang_hip_math.h" + textual header "/usr/include/clang/13.0.1/include/__clang_hip_runtime_wrapper.h" + textual header "/usr/include/clang/13.0.1/include/__stddef_max_align_t.h" + textual header "/usr/include/clang/13.0.1/include/__wmmintrin_aes.h" + textual header "/usr/include/clang/13.0.1/include/__wmmintrin_pclmul.h" + textual header "/usr/include/clang/13.0.1/include/adxintrin.h" + textual header "/usr/include/clang/13.0.1/include/altivec.h" + textual header "/usr/include/clang/13.0.1/include/ammintrin.h" + textual header "/usr/include/clang/13.0.1/include/amxintrin.h" + textual header "/usr/include/clang/13.0.1/include/arm64intr.h" + textual header "/usr/include/clang/13.0.1/include/arm_acle.h" + textual header "/usr/include/clang/13.0.1/include/arm_bf16.h" + textual header "/usr/include/clang/13.0.1/include/arm_cde.h" + textual header "/usr/include/clang/13.0.1/include/arm_cmse.h" + textual header "/usr/include/clang/13.0.1/include/arm_fp16.h" + textual header "/usr/include/clang/13.0.1/include/arm_mve.h" + textual header "/usr/include/clang/13.0.1/include/arm_neon.h" + textual header "/usr/include/clang/13.0.1/include/arm_sve.h" + textual header "/usr/include/clang/13.0.1/include/armintr.h" + textual header "/usr/include/clang/13.0.1/include/avx2intrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512bf16intrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512bitalgintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512bwintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512cdintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512dqintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512erintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512fintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512ifmaintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512ifmavlintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512pfintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vbmi2intrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vbmiintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vbmivlintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vlbf16intrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vlbitalgintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vlbwintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vlcdintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vldqintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vlintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vlvbmi2intrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vlvnniintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vlvp2intersectintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vnniintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vp2intersectintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vpopcntdqintrin.h" + textual header "/usr/include/clang/13.0.1/include/avx512vpopcntdqvlintrin.h" + textual header "/usr/include/clang/13.0.1/include/avxintrin.h" + textual header "/usr/include/clang/13.0.1/include/avxvnniintrin.h" + textual header "/usr/include/clang/13.0.1/include/bmi2intrin.h" + textual header "/usr/include/clang/13.0.1/include/bmiintrin.h" + textual header "/usr/include/clang/13.0.1/include/builtins.h" + textual header "/usr/include/clang/13.0.1/include/cet.h" + textual header "/usr/include/clang/13.0.1/include/cetintrin.h" + textual header "/usr/include/clang/13.0.1/include/cldemoteintrin.h" + textual header "/usr/include/clang/13.0.1/include/clflushoptintrin.h" + textual header "/usr/include/clang/13.0.1/include/clwbintrin.h" + textual header "/usr/include/clang/13.0.1/include/clzerointrin.h" + textual header "/usr/include/clang/13.0.1/include/cpuid.h" + textual header "/usr/include/clang/13.0.1/include/cuda_wrappers/algorithm" + textual header "/usr/include/clang/13.0.1/include/cuda_wrappers/complex" + textual header "/usr/include/clang/13.0.1/include/cuda_wrappers/new" + textual header "/usr/include/clang/13.0.1/include/emmintrin.h" + textual header "/usr/include/clang/13.0.1/include/enqcmdintrin.h" + textual header "/usr/include/clang/13.0.1/include/f16cintrin.h" + textual header "/usr/include/clang/13.0.1/include/float.h" + textual header "/usr/include/clang/13.0.1/include/fma4intrin.h" + textual header "/usr/include/clang/13.0.1/include/fmaintrin.h" + textual header "/usr/include/clang/13.0.1/include/fuzzer/FuzzedDataProvider.h" + textual header "/usr/include/clang/13.0.1/include/fxsrintrin.h" + textual header "/usr/include/clang/13.0.1/include/gfniintrin.h" + textual header "/usr/include/clang/13.0.1/include/hexagon_circ_brev_intrinsics.h" + textual header "/usr/include/clang/13.0.1/include/hexagon_protos.h" + textual header "/usr/include/clang/13.0.1/include/hexagon_types.h" + textual header "/usr/include/clang/13.0.1/include/hresetintrin.h" + textual header "/usr/include/clang/13.0.1/include/htmintrin.h" + textual header "/usr/include/clang/13.0.1/include/htmxlintrin.h" + textual header "/usr/include/clang/13.0.1/include/hvx_hexagon_protos.h" + textual header "/usr/include/clang/13.0.1/include/ia32intrin.h" + textual header "/usr/include/clang/13.0.1/include/immintrin.h" + textual header "/usr/include/clang/13.0.1/include/intrin.h" + textual header "/usr/include/clang/13.0.1/include/inttypes.h" + textual header "/usr/include/clang/13.0.1/include/invpcidintrin.h" + textual header "/usr/include/clang/13.0.1/include/iso646.h" + textual header "/usr/include/clang/13.0.1/include/keylockerintrin.h" + textual header "/usr/include/clang/13.0.1/include/limits.h" + textual header "/usr/include/clang/13.0.1/include/lwpintrin.h" + textual header "/usr/include/clang/13.0.1/include/lzcntintrin.h" + textual header "/usr/include/clang/13.0.1/include/mm3dnow.h" + textual header "/usr/include/clang/13.0.1/include/mm_malloc.h" + textual header "/usr/include/clang/13.0.1/include/mmintrin.h" + textual header "/usr/include/clang/13.0.1/include/module.modulemap" + textual header "/usr/include/clang/13.0.1/include/movdirintrin.h" + textual header "/usr/include/clang/13.0.1/include/msa.h" + textual header "/usr/include/clang/13.0.1/include/mwaitxintrin.h" + textual header "/usr/include/clang/13.0.1/include/nmmintrin.h" + textual header "/usr/include/clang/13.0.1/include/opencl-c-base.h" + textual header "/usr/include/clang/13.0.1/include/opencl-c.h" + textual header "/usr/include/clang/13.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h" + textual header "/usr/include/clang/13.0.1/include/openmp_wrappers/cmath" + textual header "/usr/include/clang/13.0.1/include/openmp_wrappers/complex" + textual header "/usr/include/clang/13.0.1/include/openmp_wrappers/complex.h" + textual header "/usr/include/clang/13.0.1/include/openmp_wrappers/complex_cmath.h" + textual header "/usr/include/clang/13.0.1/include/openmp_wrappers/math.h" + textual header "/usr/include/clang/13.0.1/include/openmp_wrappers/new" + textual header "/usr/include/clang/13.0.1/include/pconfigintrin.h" + textual header "/usr/include/clang/13.0.1/include/pkuintrin.h" + textual header "/usr/include/clang/13.0.1/include/pmmintrin.h" + textual header "/usr/include/clang/13.0.1/include/popcntintrin.h" + textual header "/usr/include/clang/13.0.1/include/ppc_wrappers/emmintrin.h" + textual header "/usr/include/clang/13.0.1/include/ppc_wrappers/mm_malloc.h" + textual header "/usr/include/clang/13.0.1/include/ppc_wrappers/mmintrin.h" + textual header "/usr/include/clang/13.0.1/include/ppc_wrappers/pmmintrin.h" + textual header "/usr/include/clang/13.0.1/include/ppc_wrappers/smmintrin.h" + textual header "/usr/include/clang/13.0.1/include/ppc_wrappers/tmmintrin.h" + textual header "/usr/include/clang/13.0.1/include/ppc_wrappers/xmmintrin.h" + textual header "/usr/include/clang/13.0.1/include/prfchwintrin.h" + textual header "/usr/include/clang/13.0.1/include/profile/InstrProfData.inc" + textual header "/usr/include/clang/13.0.1/include/ptwriteintrin.h" + textual header "/usr/include/clang/13.0.1/include/rdseedintrin.h" + textual header "/usr/include/clang/13.0.1/include/riscv_vector.h" + textual header "/usr/include/clang/13.0.1/include/rtmintrin.h" + textual header "/usr/include/clang/13.0.1/include/s390intrin.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/allocator_interface.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/asan_interface.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/common_interface_defs.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/coverage_interface.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/dfsan_interface.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/hwasan_interface.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/linux_syscall_hooks.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/lsan_interface.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/msan_interface.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/netbsd_syscall_hooks.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/scudo_interface.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/tsan_interface.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/tsan_interface_atomic.h" + textual header "/usr/include/clang/13.0.1/include/sanitizer/ubsan_interface.h" + textual header "/usr/include/clang/13.0.1/include/serializeintrin.h" + textual header "/usr/include/clang/13.0.1/include/sgxintrin.h" + textual header "/usr/include/clang/13.0.1/include/shaintrin.h" + textual header "/usr/include/clang/13.0.1/include/smmintrin.h" + textual header "/usr/include/clang/13.0.1/include/stdalign.h" + textual header "/usr/include/clang/13.0.1/include/stdarg.h" + textual header "/usr/include/clang/13.0.1/include/stdatomic.h" + textual header "/usr/include/clang/13.0.1/include/stdbool.h" + textual header "/usr/include/clang/13.0.1/include/stddef.h" + textual header "/usr/include/clang/13.0.1/include/stdint.h" + textual header "/usr/include/clang/13.0.1/include/stdnoreturn.h" + textual header "/usr/include/clang/13.0.1/include/tbmintrin.h" + textual header "/usr/include/clang/13.0.1/include/tgmath.h" + textual header "/usr/include/clang/13.0.1/include/tmmintrin.h" + textual header "/usr/include/clang/13.0.1/include/tsxldtrkintrin.h" + textual header "/usr/include/clang/13.0.1/include/uintrintrin.h" + textual header "/usr/include/clang/13.0.1/include/unwind.h" + textual header "/usr/include/clang/13.0.1/include/vadefs.h" + textual header "/usr/include/clang/13.0.1/include/vaesintrin.h" + textual header "/usr/include/clang/13.0.1/include/varargs.h" + textual header "/usr/include/clang/13.0.1/include/vecintrin.h" + textual header "/usr/include/clang/13.0.1/include/vpclmulqdqintrin.h" + textual header "/usr/include/clang/13.0.1/include/waitpkgintrin.h" + textual header "/usr/include/clang/13.0.1/include/wasm_simd128.h" + textual header "/usr/include/clang/13.0.1/include/wbnoinvdintrin.h" + textual header "/usr/include/clang/13.0.1/include/wmmintrin.h" + textual header "/usr/include/clang/13.0.1/include/x86gprintrin.h" + textual header "/usr/include/clang/13.0.1/include/x86intrin.h" + textual header "/usr/include/clang/13.0.1/include/xmmintrin.h" + textual header "/usr/include/clang/13.0.1/include/xopintrin.h" + textual header "/usr/include/clang/13.0.1/include/xray/xray_interface.h" + textual header "/usr/include/clang/13.0.1/include/xray/xray_log_interface.h" + textual header "/usr/include/clang/13.0.1/include/xray/xray_records.h" + textual header "/usr/include/clang/13.0.1/include/xsavecintrin.h" + textual header "/usr/include/clang/13.0.1/include/xsaveintrin.h" + textual header "/usr/include/clang/13.0.1/include/xsaveoptintrin.h" + textual header "/usr/include/clang/13.0.1/include/xsavesintrin.h" + textual header "/usr/include/clang/13.0.1/include/xtestintrin.h" + textual header "/usr/include/clang/13/include/__clang_cuda_builtin_vars.h" + textual header "/usr/include/clang/13/include/__clang_cuda_cmath.h" + textual header "/usr/include/clang/13/include/__clang_cuda_complex_builtins.h" + textual header "/usr/include/clang/13/include/__clang_cuda_device_functions.h" + textual header "/usr/include/clang/13/include/__clang_cuda_intrinsics.h" + textual header "/usr/include/clang/13/include/__clang_cuda_libdevice_declares.h" + textual header "/usr/include/clang/13/include/__clang_cuda_math.h" + textual header "/usr/include/clang/13/include/__clang_cuda_math_forward_declares.h" + textual header "/usr/include/clang/13/include/__clang_cuda_runtime_wrapper.h" + textual header "/usr/include/clang/13/include/__clang_hip_cmath.h" + textual header "/usr/include/clang/13/include/__clang_hip_libdevice_declares.h" + textual header "/usr/include/clang/13/include/__clang_hip_math.h" + textual header "/usr/include/clang/13/include/__clang_hip_runtime_wrapper.h" + textual header "/usr/include/clang/13/include/__stddef_max_align_t.h" + textual header "/usr/include/clang/13/include/__wmmintrin_aes.h" + textual header "/usr/include/clang/13/include/__wmmintrin_pclmul.h" + textual header "/usr/include/clang/13/include/adxintrin.h" + textual header "/usr/include/clang/13/include/altivec.h" + textual header "/usr/include/clang/13/include/ammintrin.h" + textual header "/usr/include/clang/13/include/amxintrin.h" + textual header "/usr/include/clang/13/include/arm64intr.h" + textual header "/usr/include/clang/13/include/arm_acle.h" + textual header "/usr/include/clang/13/include/arm_bf16.h" + textual header "/usr/include/clang/13/include/arm_cde.h" + textual header "/usr/include/clang/13/include/arm_cmse.h" + textual header "/usr/include/clang/13/include/arm_fp16.h" + textual header "/usr/include/clang/13/include/arm_mve.h" + textual header "/usr/include/clang/13/include/arm_neon.h" + textual header "/usr/include/clang/13/include/arm_sve.h" + textual header "/usr/include/clang/13/include/armintr.h" + textual header "/usr/include/clang/13/include/avx2intrin.h" + textual header "/usr/include/clang/13/include/avx512bf16intrin.h" + textual header "/usr/include/clang/13/include/avx512bitalgintrin.h" + textual header "/usr/include/clang/13/include/avx512bwintrin.h" + textual header "/usr/include/clang/13/include/avx512cdintrin.h" + textual header "/usr/include/clang/13/include/avx512dqintrin.h" + textual header "/usr/include/clang/13/include/avx512erintrin.h" + textual header "/usr/include/clang/13/include/avx512fintrin.h" + textual header "/usr/include/clang/13/include/avx512ifmaintrin.h" + textual header "/usr/include/clang/13/include/avx512ifmavlintrin.h" + textual header "/usr/include/clang/13/include/avx512pfintrin.h" + textual header "/usr/include/clang/13/include/avx512vbmi2intrin.h" + textual header "/usr/include/clang/13/include/avx512vbmiintrin.h" + textual header "/usr/include/clang/13/include/avx512vbmivlintrin.h" + textual header "/usr/include/clang/13/include/avx512vlbf16intrin.h" + textual header "/usr/include/clang/13/include/avx512vlbitalgintrin.h" + textual header "/usr/include/clang/13/include/avx512vlbwintrin.h" + textual header "/usr/include/clang/13/include/avx512vlcdintrin.h" + textual header "/usr/include/clang/13/include/avx512vldqintrin.h" + textual header "/usr/include/clang/13/include/avx512vlintrin.h" + textual header "/usr/include/clang/13/include/avx512vlvbmi2intrin.h" + textual header "/usr/include/clang/13/include/avx512vlvnniintrin.h" + textual header "/usr/include/clang/13/include/avx512vlvp2intersectintrin.h" + textual header "/usr/include/clang/13/include/avx512vnniintrin.h" + textual header "/usr/include/clang/13/include/avx512vp2intersectintrin.h" + textual header "/usr/include/clang/13/include/avx512vpopcntdqintrin.h" + textual header "/usr/include/clang/13/include/avx512vpopcntdqvlintrin.h" + textual header "/usr/include/clang/13/include/avxintrin.h" + textual header "/usr/include/clang/13/include/avxvnniintrin.h" + textual header "/usr/include/clang/13/include/bmi2intrin.h" + textual header "/usr/include/clang/13/include/bmiintrin.h" + textual header "/usr/include/clang/13/include/builtins.h" + textual header "/usr/include/clang/13/include/cet.h" + textual header "/usr/include/clang/13/include/cetintrin.h" + textual header "/usr/include/clang/13/include/cldemoteintrin.h" + textual header "/usr/include/clang/13/include/clflushoptintrin.h" + textual header "/usr/include/clang/13/include/clwbintrin.h" + textual header "/usr/include/clang/13/include/clzerointrin.h" + textual header "/usr/include/clang/13/include/cpuid.h" + textual header "/usr/include/clang/13/include/cuda_wrappers/algorithm" + textual header "/usr/include/clang/13/include/cuda_wrappers/complex" + textual header "/usr/include/clang/13/include/cuda_wrappers/new" + textual header "/usr/include/clang/13/include/emmintrin.h" + textual header "/usr/include/clang/13/include/enqcmdintrin.h" + textual header "/usr/include/clang/13/include/f16cintrin.h" + textual header "/usr/include/clang/13/include/float.h" + textual header "/usr/include/clang/13/include/fma4intrin.h" + textual header "/usr/include/clang/13/include/fmaintrin.h" + textual header "/usr/include/clang/13/include/fuzzer/FuzzedDataProvider.h" + textual header "/usr/include/clang/13/include/fxsrintrin.h" + textual header "/usr/include/clang/13/include/gfniintrin.h" + textual header "/usr/include/clang/13/include/hexagon_circ_brev_intrinsics.h" + textual header "/usr/include/clang/13/include/hexagon_protos.h" + textual header "/usr/include/clang/13/include/hexagon_types.h" + textual header "/usr/include/clang/13/include/hresetintrin.h" + textual header "/usr/include/clang/13/include/htmintrin.h" + textual header "/usr/include/clang/13/include/htmxlintrin.h" + textual header "/usr/include/clang/13/include/hvx_hexagon_protos.h" + textual header "/usr/include/clang/13/include/ia32intrin.h" + textual header "/usr/include/clang/13/include/immintrin.h" + textual header "/usr/include/clang/13/include/intrin.h" + textual header "/usr/include/clang/13/include/inttypes.h" + textual header "/usr/include/clang/13/include/invpcidintrin.h" + textual header "/usr/include/clang/13/include/iso646.h" + textual header "/usr/include/clang/13/include/keylockerintrin.h" + textual header "/usr/include/clang/13/include/limits.h" + textual header "/usr/include/clang/13/include/lwpintrin.h" + textual header "/usr/include/clang/13/include/lzcntintrin.h" + textual header "/usr/include/clang/13/include/mm3dnow.h" + textual header "/usr/include/clang/13/include/mm_malloc.h" + textual header "/usr/include/clang/13/include/mmintrin.h" + textual header "/usr/include/clang/13/include/module.modulemap" + textual header "/usr/include/clang/13/include/movdirintrin.h" + textual header "/usr/include/clang/13/include/msa.h" + textual header "/usr/include/clang/13/include/mwaitxintrin.h" + textual header "/usr/include/clang/13/include/nmmintrin.h" + textual header "/usr/include/clang/13/include/opencl-c-base.h" + textual header "/usr/include/clang/13/include/opencl-c.h" + textual header "/usr/include/clang/13/include/openmp_wrappers/__clang_openmp_device_functions.h" + textual header "/usr/include/clang/13/include/openmp_wrappers/cmath" + textual header "/usr/include/clang/13/include/openmp_wrappers/complex" + textual header "/usr/include/clang/13/include/openmp_wrappers/complex.h" + textual header "/usr/include/clang/13/include/openmp_wrappers/complex_cmath.h" + textual header "/usr/include/clang/13/include/openmp_wrappers/math.h" + textual header "/usr/include/clang/13/include/openmp_wrappers/new" + textual header "/usr/include/clang/13/include/pconfigintrin.h" + textual header "/usr/include/clang/13/include/pkuintrin.h" + textual header "/usr/include/clang/13/include/pmmintrin.h" + textual header "/usr/include/clang/13/include/popcntintrin.h" + textual header "/usr/include/clang/13/include/ppc_wrappers/emmintrin.h" + textual header "/usr/include/clang/13/include/ppc_wrappers/mm_malloc.h" + textual header "/usr/include/clang/13/include/ppc_wrappers/mmintrin.h" + textual header "/usr/include/clang/13/include/ppc_wrappers/pmmintrin.h" + textual header "/usr/include/clang/13/include/ppc_wrappers/smmintrin.h" + textual header "/usr/include/clang/13/include/ppc_wrappers/tmmintrin.h" + textual header "/usr/include/clang/13/include/ppc_wrappers/xmmintrin.h" + textual header "/usr/include/clang/13/include/prfchwintrin.h" + textual header "/usr/include/clang/13/include/profile/InstrProfData.inc" + textual header "/usr/include/clang/13/include/ptwriteintrin.h" + textual header "/usr/include/clang/13/include/rdseedintrin.h" + textual header "/usr/include/clang/13/include/riscv_vector.h" + textual header "/usr/include/clang/13/include/rtmintrin.h" + textual header "/usr/include/clang/13/include/s390intrin.h" + textual header "/usr/include/clang/13/include/sanitizer/allocator_interface.h" + textual header "/usr/include/clang/13/include/sanitizer/asan_interface.h" + textual header "/usr/include/clang/13/include/sanitizer/common_interface_defs.h" + textual header "/usr/include/clang/13/include/sanitizer/coverage_interface.h" + textual header "/usr/include/clang/13/include/sanitizer/dfsan_interface.h" + textual header "/usr/include/clang/13/include/sanitizer/hwasan_interface.h" + textual header "/usr/include/clang/13/include/sanitizer/linux_syscall_hooks.h" + textual header "/usr/include/clang/13/include/sanitizer/lsan_interface.h" + textual header "/usr/include/clang/13/include/sanitizer/msan_interface.h" + textual header "/usr/include/clang/13/include/sanitizer/netbsd_syscall_hooks.h" + textual header "/usr/include/clang/13/include/sanitizer/scudo_interface.h" + textual header "/usr/include/clang/13/include/sanitizer/tsan_interface.h" + textual header "/usr/include/clang/13/include/sanitizer/tsan_interface_atomic.h" + textual header "/usr/include/clang/13/include/sanitizer/ubsan_interface.h" + textual header "/usr/include/clang/13/include/serializeintrin.h" + textual header "/usr/include/clang/13/include/sgxintrin.h" + textual header "/usr/include/clang/13/include/shaintrin.h" + textual header "/usr/include/clang/13/include/smmintrin.h" + textual header "/usr/include/clang/13/include/stdalign.h" + textual header "/usr/include/clang/13/include/stdarg.h" + textual header "/usr/include/clang/13/include/stdatomic.h" + textual header "/usr/include/clang/13/include/stdbool.h" + textual header "/usr/include/clang/13/include/stddef.h" + textual header "/usr/include/clang/13/include/stdint.h" + textual header "/usr/include/clang/13/include/stdnoreturn.h" + textual header "/usr/include/clang/13/include/tbmintrin.h" + textual header "/usr/include/clang/13/include/tgmath.h" + textual header "/usr/include/clang/13/include/tmmintrin.h" + textual header "/usr/include/clang/13/include/tsxldtrkintrin.h" + textual header "/usr/include/clang/13/include/uintrintrin.h" + textual header "/usr/include/clang/13/include/unwind.h" + textual header "/usr/include/clang/13/include/vadefs.h" + textual header "/usr/include/clang/13/include/vaesintrin.h" + textual header "/usr/include/clang/13/include/varargs.h" + textual header "/usr/include/clang/13/include/vecintrin.h" + textual header "/usr/include/clang/13/include/vpclmulqdqintrin.h" + textual header "/usr/include/clang/13/include/waitpkgintrin.h" + textual header "/usr/include/clang/13/include/wasm_simd128.h" + textual header "/usr/include/clang/13/include/wbnoinvdintrin.h" + textual header "/usr/include/clang/13/include/wmmintrin.h" + textual header "/usr/include/clang/13/include/x86gprintrin.h" + textual header "/usr/include/clang/13/include/x86intrin.h" + textual header "/usr/include/clang/13/include/xmmintrin.h" + textual header "/usr/include/clang/13/include/xopintrin.h" + textual header "/usr/include/clang/13/include/xray/xray_interface.h" + textual header "/usr/include/clang/13/include/xray/xray_log_interface.h" + textual header "/usr/include/clang/13/include/xray/xray_records.h" + textual header "/usr/include/clang/13/include/xsavecintrin.h" + textual header "/usr/include/clang/13/include/xsaveintrin.h" + textual header "/usr/include/clang/13/include/xsaveoptintrin.h" + textual header "/usr/include/clang/13/include/xsavesintrin.h" + textual header "/usr/include/clang/13/include/xtestintrin.h" + textual header "/usr/include/complex.h" + textual header "/usr/include/cpio.h" + textual header "/usr/include/crypt.h" + textual header "/usr/include/ctype.h" + textual header "/usr/include/curses.h" + textual header "/usr/include/cursesapp.h" + textual header "/usr/include/cursesf.h" + textual header "/usr/include/cursesm.h" + textual header "/usr/include/cursesp.h" + textual header "/usr/include/cursesw.h" + textual header "/usr/include/cursslk.h" + textual header "/usr/include/dirent.h" + textual header "/usr/include/dlfcn.h" + textual header "/usr/include/elf.h" + textual header "/usr/include/endian.h" + textual header "/usr/include/envz.h" + textual header "/usr/include/err.h" + textual header "/usr/include/errno.h" + textual header "/usr/include/error.h" + textual header "/usr/include/eti.h" + textual header "/usr/include/etip.h" + textual header "/usr/include/execinfo.h" + textual header "/usr/include/fcntl.h" + textual header "/usr/include/features.h" + textual header "/usr/include/fenv.h" + textual header "/usr/include/finclude/x86_64-linux-gnu/math-vector-fortran.h" + textual header "/usr/include/fmtmsg.h" + textual header "/usr/include/fnmatch.h" + textual header "/usr/include/form.h" + textual header "/usr/include/fstab.h" + textual header "/usr/include/fts.h" + textual header "/usr/include/ftw.h" + textual header "/usr/include/gconv.h" + textual header "/usr/include/getopt.h" + textual header "/usr/include/glob.h" + textual header "/usr/include/gnu-versions.h" + textual header "/usr/include/grp.h" + textual header "/usr/include/gshadow.h" + textual header "/usr/include/iconv.h" + textual header "/usr/include/ifaddrs.h" + textual header "/usr/include/inttypes.h" + textual header "/usr/include/langinfo.h" + textual header "/usr/include/lastlog.h" + textual header "/usr/include/libgen.h" + textual header "/usr/include/libintl.h" + textual header "/usr/include/libxml2/libxml/DOCBparser.h" + textual header "/usr/include/libxml2/libxml/HTMLparser.h" + textual header "/usr/include/libxml2/libxml/HTMLtree.h" + textual header "/usr/include/libxml2/libxml/SAX.h" + textual header "/usr/include/libxml2/libxml/SAX2.h" + textual header "/usr/include/libxml2/libxml/c14n.h" + textual header "/usr/include/libxml2/libxml/catalog.h" + textual header "/usr/include/libxml2/libxml/chvalid.h" + textual header "/usr/include/libxml2/libxml/debugXML.h" + textual header "/usr/include/libxml2/libxml/dict.h" + textual header "/usr/include/libxml2/libxml/encoding.h" + textual header "/usr/include/libxml2/libxml/entities.h" + textual header "/usr/include/libxml2/libxml/globals.h" + textual header "/usr/include/libxml2/libxml/hash.h" + textual header "/usr/include/libxml2/libxml/list.h" + textual header "/usr/include/libxml2/libxml/nanoftp.h" + textual header "/usr/include/libxml2/libxml/nanohttp.h" + textual header "/usr/include/libxml2/libxml/parser.h" + textual header "/usr/include/libxml2/libxml/parserInternals.h" + textual header "/usr/include/libxml2/libxml/pattern.h" + textual header "/usr/include/libxml2/libxml/relaxng.h" + textual header "/usr/include/libxml2/libxml/schemasInternals.h" + textual header "/usr/include/libxml2/libxml/schematron.h" + textual header "/usr/include/libxml2/libxml/threads.h" + textual header "/usr/include/libxml2/libxml/tree.h" + textual header "/usr/include/libxml2/libxml/uri.h" + textual header "/usr/include/libxml2/libxml/valid.h" + textual header "/usr/include/libxml2/libxml/xinclude.h" + textual header "/usr/include/libxml2/libxml/xlink.h" + textual header "/usr/include/libxml2/libxml/xmlIO.h" + textual header "/usr/include/libxml2/libxml/xmlautomata.h" + textual header "/usr/include/libxml2/libxml/xmlerror.h" + textual header "/usr/include/libxml2/libxml/xmlexports.h" + textual header "/usr/include/libxml2/libxml/xmlmemory.h" + textual header "/usr/include/libxml2/libxml/xmlmodule.h" + textual header "/usr/include/libxml2/libxml/xmlreader.h" + textual header "/usr/include/libxml2/libxml/xmlregexp.h" + textual header "/usr/include/libxml2/libxml/xmlsave.h" + textual header "/usr/include/libxml2/libxml/xmlschemas.h" + textual header "/usr/include/libxml2/libxml/xmlschemastypes.h" + textual header "/usr/include/libxml2/libxml/xmlstring.h" + textual header "/usr/include/libxml2/libxml/xmlunicode.h" + textual header "/usr/include/libxml2/libxml/xmlversion.h" + textual header "/usr/include/libxml2/libxml/xmlwriter.h" + textual header "/usr/include/libxml2/libxml/xpath.h" + textual header "/usr/include/libxml2/libxml/xpathInternals.h" + textual header "/usr/include/libxml2/libxml/xpointer.h" + textual header "/usr/include/limits.h" + textual header "/usr/include/link.h" + textual header "/usr/include/linux/a.out.h" + textual header "/usr/include/linux/acct.h" + textual header "/usr/include/linux/acrn.h" + textual header "/usr/include/linux/adb.h" + textual header "/usr/include/linux/adfs_fs.h" + textual header "/usr/include/linux/affs_hardblocks.h" + textual header "/usr/include/linux/agpgart.h" + textual header "/usr/include/linux/aio_abi.h" + textual header "/usr/include/linux/am437x-vpfe.h" + textual header "/usr/include/linux/amt.h" + textual header "/usr/include/linux/android/binder.h" + textual header "/usr/include/linux/android/binderfs.h" + textual header "/usr/include/linux/apm_bios.h" + textual header "/usr/include/linux/arcfb.h" + textual header "/usr/include/linux/arm_sdei.h" + textual header "/usr/include/linux/aspeed-lpc-ctrl.h" + textual header "/usr/include/linux/aspeed-p2a-ctrl.h" + textual header "/usr/include/linux/atalk.h" + textual header "/usr/include/linux/atm.h" + textual header "/usr/include/linux/atm_eni.h" + textual header "/usr/include/linux/atm_he.h" + textual header "/usr/include/linux/atm_idt77105.h" + textual header "/usr/include/linux/atm_nicstar.h" + textual header "/usr/include/linux/atm_tcp.h" + textual header "/usr/include/linux/atm_zatm.h" + textual header "/usr/include/linux/atmapi.h" + textual header "/usr/include/linux/atmarp.h" + textual header "/usr/include/linux/atmbr2684.h" + textual header "/usr/include/linux/atmclip.h" + textual header "/usr/include/linux/atmdev.h" + textual header "/usr/include/linux/atmioc.h" + textual header "/usr/include/linux/atmlec.h" + textual header "/usr/include/linux/atmmpc.h" + textual header "/usr/include/linux/atmppp.h" + textual header "/usr/include/linux/atmsap.h" + textual header "/usr/include/linux/atmsvc.h" + textual header "/usr/include/linux/audit.h" + textual header "/usr/include/linux/auto_dev-ioctl.h" + textual header "/usr/include/linux/auto_fs.h" + textual header "/usr/include/linux/auto_fs4.h" + textual header "/usr/include/linux/auxvec.h" + textual header "/usr/include/linux/ax25.h" + textual header "/usr/include/linux/batadv_packet.h" + textual header "/usr/include/linux/batman_adv.h" + textual header "/usr/include/linux/baycom.h" + textual header "/usr/include/linux/bcm933xx_hcs.h" + textual header "/usr/include/linux/bfs_fs.h" + textual header "/usr/include/linux/binfmts.h" + textual header "/usr/include/linux/blkpg.h" + textual header "/usr/include/linux/blktrace_api.h" + textual header "/usr/include/linux/blkzoned.h" + textual header "/usr/include/linux/bpf.h" + textual header "/usr/include/linux/bpf_common.h" + textual header "/usr/include/linux/bpf_perf_event.h" + textual header "/usr/include/linux/bpfilter.h" + textual header "/usr/include/linux/bpqether.h" + textual header "/usr/include/linux/bsg.h" + textual header "/usr/include/linux/bt-bmc.h" + textual header "/usr/include/linux/btf.h" + textual header "/usr/include/linux/btrfs.h" + textual header "/usr/include/linux/btrfs_tree.h" + textual header "/usr/include/linux/byteorder/big_endian.h" + textual header "/usr/include/linux/byteorder/little_endian.h" + textual header "/usr/include/linux/caif/caif_socket.h" + textual header "/usr/include/linux/caif/if_caif.h" + textual header "/usr/include/linux/can.h" + textual header "/usr/include/linux/can/bcm.h" + textual header "/usr/include/linux/can/error.h" + textual header "/usr/include/linux/can/gw.h" + textual header "/usr/include/linux/can/isotp.h" + textual header "/usr/include/linux/can/j1939.h" + textual header "/usr/include/linux/can/netlink.h" + textual header "/usr/include/linux/can/raw.h" + textual header "/usr/include/linux/can/vxcan.h" + textual header "/usr/include/linux/capability.h" + textual header "/usr/include/linux/capi.h" + textual header "/usr/include/linux/cciss_defs.h" + textual header "/usr/include/linux/cciss_ioctl.h" + textual header "/usr/include/linux/ccs.h" + textual header "/usr/include/linux/cdrom.h" + textual header "/usr/include/linux/cec-funcs.h" + textual header "/usr/include/linux/cec.h" + textual header "/usr/include/linux/cfm_bridge.h" + textual header "/usr/include/linux/cgroupstats.h" + textual header "/usr/include/linux/chio.h" + textual header "/usr/include/linux/cifs/cifs_mount.h" + textual header "/usr/include/linux/cifs/cifs_netlink.h" + textual header "/usr/include/linux/close_range.h" + textual header "/usr/include/linux/cm4000_cs.h" + textual header "/usr/include/linux/cn_proc.h" + textual header "/usr/include/linux/coda.h" + textual header "/usr/include/linux/coff.h" + textual header "/usr/include/linux/connector.h" + textual header "/usr/include/linux/const.h" + textual header "/usr/include/linux/coresight-stm.h" + textual header "/usr/include/linux/counter.h" + textual header "/usr/include/linux/cramfs_fs.h" + textual header "/usr/include/linux/cryptouser.h" + textual header "/usr/include/linux/cuda.h" + textual header "/usr/include/linux/cxl_mem.h" + textual header "/usr/include/linux/cyclades.h" + textual header "/usr/include/linux/cycx_cfm.h" + textual header "/usr/include/linux/dcbnl.h" + textual header "/usr/include/linux/dccp.h" + textual header "/usr/include/linux/devlink.h" + textual header "/usr/include/linux/dlm.h" + textual header "/usr/include/linux/dlm_device.h" + textual header "/usr/include/linux/dlm_netlink.h" + textual header "/usr/include/linux/dlm_plock.h" + textual header "/usr/include/linux/dlmconstants.h" + textual header "/usr/include/linux/dm-ioctl.h" + textual header "/usr/include/linux/dm-log-userspace.h" + textual header "/usr/include/linux/dma-buf.h" + textual header "/usr/include/linux/dma-heap.h" + textual header "/usr/include/linux/dn.h" + textual header "/usr/include/linux/dns_resolver.h" + textual header "/usr/include/linux/dqblk_xfs.h" + textual header "/usr/include/linux/dvb/audio.h" + textual header "/usr/include/linux/dvb/ca.h" + textual header "/usr/include/linux/dvb/dmx.h" + textual header "/usr/include/linux/dvb/frontend.h" + textual header "/usr/include/linux/dvb/net.h" + textual header "/usr/include/linux/dvb/osd.h" + textual header "/usr/include/linux/dvb/version.h" + textual header "/usr/include/linux/dvb/video.h" + textual header "/usr/include/linux/edd.h" + textual header "/usr/include/linux/efs_fs_sb.h" + textual header "/usr/include/linux/elf-em.h" + textual header "/usr/include/linux/elf-fdpic.h" + textual header "/usr/include/linux/elf.h" + textual header "/usr/include/linux/errno.h" + textual header "/usr/include/linux/errqueue.h" + textual header "/usr/include/linux/erspan.h" + textual header "/usr/include/linux/ethtool.h" + textual header "/usr/include/linux/ethtool_netlink.h" + textual header "/usr/include/linux/eventpoll.h" + textual header "/usr/include/linux/f2fs.h" + textual header "/usr/include/linux/fadvise.h" + textual header "/usr/include/linux/falloc.h" + textual header "/usr/include/linux/fanotify.h" + textual header "/usr/include/linux/fb.h" + textual header "/usr/include/linux/fcntl.h" + textual header "/usr/include/linux/fd.h" + textual header "/usr/include/linux/fdreg.h" + textual header "/usr/include/linux/fib_rules.h" + textual header "/usr/include/linux/fiemap.h" + textual header "/usr/include/linux/filter.h" + textual header "/usr/include/linux/firewire-cdev.h" + textual header "/usr/include/linux/firewire-constants.h" + textual header "/usr/include/linux/fou.h" + textual header "/usr/include/linux/fpga-dfl.h" + textual header "/usr/include/linux/fs.h" + textual header "/usr/include/linux/fscrypt.h" + textual header "/usr/include/linux/fsi.h" + textual header "/usr/include/linux/fsl_hypervisor.h" + textual header "/usr/include/linux/fsl_mc.h" + textual header "/usr/include/linux/fsmap.h" + textual header "/usr/include/linux/fsverity.h" + textual header "/usr/include/linux/fuse.h" + textual header "/usr/include/linux/futex.h" + textual header "/usr/include/linux/gameport.h" + textual header "/usr/include/linux/gen_stats.h" + textual header "/usr/include/linux/genetlink.h" + textual header "/usr/include/linux/genwqe/genwqe_card.h" + textual header "/usr/include/linux/gfs2_ondisk.h" + textual header "/usr/include/linux/gpio.h" + textual header "/usr/include/linux/gsmmux.h" + textual header "/usr/include/linux/gtp.h" + textual header "/usr/include/linux/hash_info.h" + textual header "/usr/include/linux/hdlc.h" + textual header "/usr/include/linux/hdlc/ioctl.h" + textual header "/usr/include/linux/hdlcdrv.h" + textual header "/usr/include/linux/hdreg.h" + textual header "/usr/include/linux/hid.h" + textual header "/usr/include/linux/hiddev.h" + textual header "/usr/include/linux/hidraw.h" + textual header "/usr/include/linux/hpet.h" + textual header "/usr/include/linux/hsi/cs-protocol.h" + textual header "/usr/include/linux/hsi/hsi_char.h" + textual header "/usr/include/linux/hsr_netlink.h" + textual header "/usr/include/linux/hw_breakpoint.h" + textual header "/usr/include/linux/hyperv.h" + textual header "/usr/include/linux/i2c-dev.h" + textual header "/usr/include/linux/i2c.h" + textual header "/usr/include/linux/i2o-dev.h" + textual header "/usr/include/linux/i8k.h" + textual header "/usr/include/linux/icmp.h" + textual header "/usr/include/linux/icmpv6.h" + textual header "/usr/include/linux/idxd.h" + textual header "/usr/include/linux/if.h" + textual header "/usr/include/linux/if_addr.h" + textual header "/usr/include/linux/if_addrlabel.h" + textual header "/usr/include/linux/if_alg.h" + textual header "/usr/include/linux/if_arcnet.h" + textual header "/usr/include/linux/if_arp.h" + textual header "/usr/include/linux/if_bonding.h" + textual header "/usr/include/linux/if_bridge.h" + textual header "/usr/include/linux/if_cablemodem.h" + textual header "/usr/include/linux/if_eql.h" + textual header "/usr/include/linux/if_ether.h" + textual header "/usr/include/linux/if_fc.h" + textual header "/usr/include/linux/if_fddi.h" + textual header "/usr/include/linux/if_hippi.h" + textual header "/usr/include/linux/if_infiniband.h" + textual header "/usr/include/linux/if_link.h" + textual header "/usr/include/linux/if_ltalk.h" + textual header "/usr/include/linux/if_macsec.h" + textual header "/usr/include/linux/if_packet.h" + textual header "/usr/include/linux/if_phonet.h" + textual header "/usr/include/linux/if_plip.h" + textual header "/usr/include/linux/if_ppp.h" + textual header "/usr/include/linux/if_pppol2tp.h" + textual header "/usr/include/linux/if_pppox.h" + textual header "/usr/include/linux/if_slip.h" + textual header "/usr/include/linux/if_team.h" + textual header "/usr/include/linux/if_tun.h" + textual header "/usr/include/linux/if_tunnel.h" + textual header "/usr/include/linux/if_vlan.h" + textual header "/usr/include/linux/if_x25.h" + textual header "/usr/include/linux/if_xdp.h" + textual header "/usr/include/linux/ife.h" + textual header "/usr/include/linux/igmp.h" + textual header "/usr/include/linux/iio/buffer.h" + textual header "/usr/include/linux/iio/events.h" + textual header "/usr/include/linux/iio/types.h" + textual header "/usr/include/linux/ila.h" + textual header "/usr/include/linux/in.h" + textual header "/usr/include/linux/in6.h" + textual header "/usr/include/linux/in_route.h" + textual header "/usr/include/linux/inet_diag.h" + textual header "/usr/include/linux/inotify.h" + textual header "/usr/include/linux/input-event-codes.h" + textual header "/usr/include/linux/input.h" + textual header "/usr/include/linux/io_uring.h" + textual header "/usr/include/linux/ioam6.h" + textual header "/usr/include/linux/ioam6_genl.h" + textual header "/usr/include/linux/ioam6_iptunnel.h" + textual header "/usr/include/linux/ioctl.h" + textual header "/usr/include/linux/iommu.h" + textual header "/usr/include/linux/ioprio.h" + textual header "/usr/include/linux/ip.h" + textual header "/usr/include/linux/ip6_tunnel.h" + textual header "/usr/include/linux/ip_vs.h" + textual header "/usr/include/linux/ipc.h" + textual header "/usr/include/linux/ipmi.h" + textual header "/usr/include/linux/ipmi_bmc.h" + textual header "/usr/include/linux/ipmi_msgdefs.h" + textual header "/usr/include/linux/ipsec.h" + textual header "/usr/include/linux/ipv6.h" + textual header "/usr/include/linux/ipv6_route.h" + textual header "/usr/include/linux/irqnr.h" + textual header "/usr/include/linux/isdn/capicmd.h" + textual header "/usr/include/linux/iso_fs.h" + textual header "/usr/include/linux/isst_if.h" + textual header "/usr/include/linux/ivtv.h" + textual header "/usr/include/linux/ivtvfb.h" + textual header "/usr/include/linux/jffs2.h" + textual header "/usr/include/linux/joystick.h" + textual header "/usr/include/linux/kcm.h" + textual header "/usr/include/linux/kcmp.h" + textual header "/usr/include/linux/kcov.h" + textual header "/usr/include/linux/kd.h" + textual header "/usr/include/linux/kdev_t.h" + textual header "/usr/include/linux/kernel-page-flags.h" + textual header "/usr/include/linux/kernel.h" + textual header "/usr/include/linux/kernelcapi.h" + textual header "/usr/include/linux/kexec.h" + textual header "/usr/include/linux/keyboard.h" + textual header "/usr/include/linux/keyctl.h" + textual header "/usr/include/linux/kfd_ioctl.h" + textual header "/usr/include/linux/kvm.h" + textual header "/usr/include/linux/kvm_para.h" + textual header "/usr/include/linux/l2tp.h" + textual header "/usr/include/linux/landlock.h" + textual header "/usr/include/linux/libc-compat.h" + textual header "/usr/include/linux/limits.h" + textual header "/usr/include/linux/lirc.h" + textual header "/usr/include/linux/llc.h" + textual header "/usr/include/linux/loop.h" + textual header "/usr/include/linux/lp.h" + textual header "/usr/include/linux/lwtunnel.h" + textual header "/usr/include/linux/magic.h" + textual header "/usr/include/linux/major.h" + textual header "/usr/include/linux/map_to_14segment.h" + textual header "/usr/include/linux/map_to_7segment.h" + textual header "/usr/include/linux/matroxfb.h" + textual header "/usr/include/linux/max2175.h" + textual header "/usr/include/linux/mctp.h" + textual header "/usr/include/linux/mdio.h" + textual header "/usr/include/linux/media-bus-format.h" + textual header "/usr/include/linux/media.h" + textual header "/usr/include/linux/mei.h" + textual header "/usr/include/linux/membarrier.h" + textual header "/usr/include/linux/memfd.h" + textual header "/usr/include/linux/mempolicy.h" + textual header "/usr/include/linux/meye.h" + textual header "/usr/include/linux/mii.h" + textual header "/usr/include/linux/minix_fs.h" + textual header "/usr/include/linux/misc/bcm_vk.h" + textual header "/usr/include/linux/mman.h" + textual header "/usr/include/linux/mmc/ioctl.h" + textual header "/usr/include/linux/mmtimer.h" + textual header "/usr/include/linux/module.h" + textual header "/usr/include/linux/mount.h" + textual header "/usr/include/linux/mpls.h" + textual header "/usr/include/linux/mpls_iptunnel.h" + textual header "/usr/include/linux/mptcp.h" + textual header "/usr/include/linux/mqueue.h" + textual header "/usr/include/linux/mroute.h" + textual header "/usr/include/linux/mroute6.h" + textual header "/usr/include/linux/mrp_bridge.h" + textual header "/usr/include/linux/msdos_fs.h" + textual header "/usr/include/linux/msg.h" + textual header "/usr/include/linux/mtio.h" + textual header "/usr/include/linux/nbd-netlink.h" + textual header "/usr/include/linux/nbd.h" + textual header "/usr/include/linux/ncsi.h" + textual header "/usr/include/linux/ndctl.h" + textual header "/usr/include/linux/neighbour.h" + textual header "/usr/include/linux/net.h" + textual header "/usr/include/linux/net_dropmon.h" + textual header "/usr/include/linux/net_namespace.h" + textual header "/usr/include/linux/net_tstamp.h" + textual header "/usr/include/linux/netconf.h" + textual header "/usr/include/linux/netdevice.h" + textual header "/usr/include/linux/netfilter.h" + textual header "/usr/include/linux/netfilter/ipset/ip_set.h" + textual header "/usr/include/linux/netfilter/ipset/ip_set_bitmap.h" + textual header "/usr/include/linux/netfilter/ipset/ip_set_hash.h" + textual header "/usr/include/linux/netfilter/ipset/ip_set_list.h" + textual header "/usr/include/linux/netfilter/nf_conntrack_common.h" + textual header "/usr/include/linux/netfilter/nf_conntrack_ftp.h" + textual header "/usr/include/linux/netfilter/nf_conntrack_sctp.h" + textual header "/usr/include/linux/netfilter/nf_conntrack_tcp.h" + textual header "/usr/include/linux/netfilter/nf_conntrack_tuple_common.h" + textual header "/usr/include/linux/netfilter/nf_log.h" + textual header "/usr/include/linux/netfilter/nf_nat.h" + textual header "/usr/include/linux/netfilter/nf_synproxy.h" + textual header "/usr/include/linux/netfilter/nf_tables.h" + textual header "/usr/include/linux/netfilter/nf_tables_compat.h" + textual header "/usr/include/linux/netfilter/nfnetlink.h" + textual header "/usr/include/linux/netfilter/nfnetlink_acct.h" + textual header "/usr/include/linux/netfilter/nfnetlink_compat.h" + textual header "/usr/include/linux/netfilter/nfnetlink_conntrack.h" + textual header "/usr/include/linux/netfilter/nfnetlink_cthelper.h" + textual header "/usr/include/linux/netfilter/nfnetlink_cttimeout.h" + textual header "/usr/include/linux/netfilter/nfnetlink_hook.h" + textual header "/usr/include/linux/netfilter/nfnetlink_log.h" + textual header "/usr/include/linux/netfilter/nfnetlink_osf.h" + textual header "/usr/include/linux/netfilter/nfnetlink_queue.h" + textual header "/usr/include/linux/netfilter/x_tables.h" + textual header "/usr/include/linux/netfilter/xt_AUDIT.h" + textual header "/usr/include/linux/netfilter/xt_CHECKSUM.h" + textual header "/usr/include/linux/netfilter/xt_CLASSIFY.h" + textual header "/usr/include/linux/netfilter/xt_CONNMARK.h" + textual header "/usr/include/linux/netfilter/xt_CONNSECMARK.h" + textual header "/usr/include/linux/netfilter/xt_CT.h" + textual header "/usr/include/linux/netfilter/xt_DSCP.h" + textual header "/usr/include/linux/netfilter/xt_HMARK.h" + textual header "/usr/include/linux/netfilter/xt_IDLETIMER.h" + textual header "/usr/include/linux/netfilter/xt_LED.h" + textual header "/usr/include/linux/netfilter/xt_LOG.h" + textual header "/usr/include/linux/netfilter/xt_MARK.h" + textual header "/usr/include/linux/netfilter/xt_NFLOG.h" + textual header "/usr/include/linux/netfilter/xt_NFQUEUE.h" + textual header "/usr/include/linux/netfilter/xt_RATEEST.h" + textual header "/usr/include/linux/netfilter/xt_SECMARK.h" + textual header "/usr/include/linux/netfilter/xt_SYNPROXY.h" + textual header "/usr/include/linux/netfilter/xt_TCPMSS.h" + textual header "/usr/include/linux/netfilter/xt_TCPOPTSTRIP.h" + textual header "/usr/include/linux/netfilter/xt_TEE.h" + textual header "/usr/include/linux/netfilter/xt_TPROXY.h" + textual header "/usr/include/linux/netfilter/xt_addrtype.h" + textual header "/usr/include/linux/netfilter/xt_bpf.h" + textual header "/usr/include/linux/netfilter/xt_cgroup.h" + textual header "/usr/include/linux/netfilter/xt_cluster.h" + textual header "/usr/include/linux/netfilter/xt_comment.h" + textual header "/usr/include/linux/netfilter/xt_connbytes.h" + textual header "/usr/include/linux/netfilter/xt_connlabel.h" + textual header "/usr/include/linux/netfilter/xt_connlimit.h" + textual header "/usr/include/linux/netfilter/xt_connmark.h" + textual header "/usr/include/linux/netfilter/xt_conntrack.h" + textual header "/usr/include/linux/netfilter/xt_cpu.h" + textual header "/usr/include/linux/netfilter/xt_dccp.h" + textual header "/usr/include/linux/netfilter/xt_devgroup.h" + textual header "/usr/include/linux/netfilter/xt_dscp.h" + textual header "/usr/include/linux/netfilter/xt_ecn.h" + textual header "/usr/include/linux/netfilter/xt_esp.h" + textual header "/usr/include/linux/netfilter/xt_hashlimit.h" + textual header "/usr/include/linux/netfilter/xt_helper.h" + textual header "/usr/include/linux/netfilter/xt_ipcomp.h" + textual header "/usr/include/linux/netfilter/xt_iprange.h" + textual header "/usr/include/linux/netfilter/xt_ipvs.h" + textual header "/usr/include/linux/netfilter/xt_l2tp.h" + textual header "/usr/include/linux/netfilter/xt_length.h" + textual header "/usr/include/linux/netfilter/xt_limit.h" + textual header "/usr/include/linux/netfilter/xt_mac.h" + textual header "/usr/include/linux/netfilter/xt_mark.h" + textual header "/usr/include/linux/netfilter/xt_multiport.h" + textual header "/usr/include/linux/netfilter/xt_nfacct.h" + textual header "/usr/include/linux/netfilter/xt_osf.h" + textual header "/usr/include/linux/netfilter/xt_owner.h" + textual header "/usr/include/linux/netfilter/xt_physdev.h" + textual header "/usr/include/linux/netfilter/xt_pkttype.h" + textual header "/usr/include/linux/netfilter/xt_policy.h" + textual header "/usr/include/linux/netfilter/xt_quota.h" + textual header "/usr/include/linux/netfilter/xt_rateest.h" + textual header "/usr/include/linux/netfilter/xt_realm.h" + textual header "/usr/include/linux/netfilter/xt_recent.h" + textual header "/usr/include/linux/netfilter/xt_rpfilter.h" + textual header "/usr/include/linux/netfilter/xt_sctp.h" + textual header "/usr/include/linux/netfilter/xt_set.h" + textual header "/usr/include/linux/netfilter/xt_socket.h" + textual header "/usr/include/linux/netfilter/xt_state.h" + textual header "/usr/include/linux/netfilter/xt_statistic.h" + textual header "/usr/include/linux/netfilter/xt_string.h" + textual header "/usr/include/linux/netfilter/xt_tcpmss.h" + textual header "/usr/include/linux/netfilter/xt_tcpudp.h" + textual header "/usr/include/linux/netfilter/xt_time.h" + textual header "/usr/include/linux/netfilter/xt_u32.h" + textual header "/usr/include/linux/netfilter_arp.h" + textual header "/usr/include/linux/netfilter_arp/arp_tables.h" + textual header "/usr/include/linux/netfilter_arp/arpt_mangle.h" + textual header "/usr/include/linux/netfilter_bridge.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_802_3.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_among.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_arp.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_arpreply.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_ip.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_ip6.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_limit.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_log.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_mark_m.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_mark_t.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_nat.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_nflog.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_pkttype.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_redirect.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_stp.h" + textual header "/usr/include/linux/netfilter_bridge/ebt_vlan.h" + textual header "/usr/include/linux/netfilter_bridge/ebtables.h" + textual header "/usr/include/linux/netfilter_decnet.h" + textual header "/usr/include/linux/netfilter_ipv4.h" + textual header "/usr/include/linux/netfilter_ipv4/ip_tables.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_ECN.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_LOG.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_REJECT.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_TTL.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_ah.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_ecn.h" + textual header "/usr/include/linux/netfilter_ipv4/ipt_ttl.h" + textual header "/usr/include/linux/netfilter_ipv6.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6_tables.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_HL.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_LOG.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_NPT.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_REJECT.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_ah.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_frag.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_hl.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_mh.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_opts.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_rt.h" + textual header "/usr/include/linux/netfilter_ipv6/ip6t_srh.h" + textual header "/usr/include/linux/netlink.h" + textual header "/usr/include/linux/netlink_diag.h" + textual header "/usr/include/linux/netrom.h" + textual header "/usr/include/linux/nexthop.h" + textual header "/usr/include/linux/nfc.h" + textual header "/usr/include/linux/nfs.h" + textual header "/usr/include/linux/nfs2.h" + textual header "/usr/include/linux/nfs3.h" + textual header "/usr/include/linux/nfs4.h" + textual header "/usr/include/linux/nfs4_mount.h" + textual header "/usr/include/linux/nfs_fs.h" + textual header "/usr/include/linux/nfs_idmap.h" + textual header "/usr/include/linux/nfs_mount.h" + textual header "/usr/include/linux/nfsacl.h" + textual header "/usr/include/linux/nfsd/cld.h" + textual header "/usr/include/linux/nfsd/debug.h" + textual header "/usr/include/linux/nfsd/export.h" + textual header "/usr/include/linux/nfsd/stats.h" + textual header "/usr/include/linux/nilfs2_api.h" + textual header "/usr/include/linux/nilfs2_ondisk.h" + textual header "/usr/include/linux/nitro_enclaves.h" + textual header "/usr/include/linux/nl80211-vnd-intel.h" + textual header "/usr/include/linux/nl80211.h" + textual header "/usr/include/linux/nsfs.h" + textual header "/usr/include/linux/nubus.h" + textual header "/usr/include/linux/nvme_ioctl.h" + textual header "/usr/include/linux/nvram.h" + textual header "/usr/include/linux/omap3isp.h" + textual header "/usr/include/linux/omapfb.h" + textual header "/usr/include/linux/oom.h" + textual header "/usr/include/linux/openat2.h" + textual header "/usr/include/linux/openvswitch.h" + textual header "/usr/include/linux/packet_diag.h" + textual header "/usr/include/linux/param.h" + textual header "/usr/include/linux/parport.h" + textual header "/usr/include/linux/patchkey.h" + textual header "/usr/include/linux/pci.h" + textual header "/usr/include/linux/pci_regs.h" + textual header "/usr/include/linux/pcitest.h" + textual header "/usr/include/linux/perf_event.h" + textual header "/usr/include/linux/personality.h" + textual header "/usr/include/linux/pfkeyv2.h" + textual header "/usr/include/linux/pg.h" + textual header "/usr/include/linux/phantom.h" + textual header "/usr/include/linux/phonet.h" + textual header "/usr/include/linux/pidfd.h" + textual header "/usr/include/linux/pkt_cls.h" + textual header "/usr/include/linux/pkt_sched.h" + textual header "/usr/include/linux/pktcdvd.h" + textual header "/usr/include/linux/pmu.h" + textual header "/usr/include/linux/poll.h" + textual header "/usr/include/linux/posix_acl.h" + textual header "/usr/include/linux/posix_acl_xattr.h" + textual header "/usr/include/linux/posix_types.h" + textual header "/usr/include/linux/ppdev.h" + textual header "/usr/include/linux/ppp-comp.h" + textual header "/usr/include/linux/ppp-ioctl.h" + textual header "/usr/include/linux/ppp_defs.h" + textual header "/usr/include/linux/pps.h" + textual header "/usr/include/linux/pr.h" + textual header "/usr/include/linux/prctl.h" + textual header "/usr/include/linux/psample.h" + textual header "/usr/include/linux/psci.h" + textual header "/usr/include/linux/psp-sev.h" + textual header "/usr/include/linux/ptp_clock.h" + textual header "/usr/include/linux/ptrace.h" + textual header "/usr/include/linux/qemu_fw_cfg.h" + textual header "/usr/include/linux/qnx4_fs.h" + textual header "/usr/include/linux/qnxtypes.h" + textual header "/usr/include/linux/qrtr.h" + textual header "/usr/include/linux/quota.h" + textual header "/usr/include/linux/radeonfb.h" + textual header "/usr/include/linux/raid/md_p.h" + textual header "/usr/include/linux/raid/md_u.h" + textual header "/usr/include/linux/random.h" + textual header "/usr/include/linux/rds.h" + textual header "/usr/include/linux/reboot.h" + textual header "/usr/include/linux/reiserfs_fs.h" + textual header "/usr/include/linux/reiserfs_xattr.h" + textual header "/usr/include/linux/remoteproc_cdev.h" + textual header "/usr/include/linux/resource.h" + textual header "/usr/include/linux/rfkill.h" + textual header "/usr/include/linux/rio_cm_cdev.h" + textual header "/usr/include/linux/rio_mport_cdev.h" + textual header "/usr/include/linux/rkisp1-config.h" + textual header "/usr/include/linux/romfs_fs.h" + textual header "/usr/include/linux/rose.h" + textual header "/usr/include/linux/route.h" + textual header "/usr/include/linux/rpl.h" + textual header "/usr/include/linux/rpl_iptunnel.h" + textual header "/usr/include/linux/rpmsg.h" + textual header "/usr/include/linux/rpmsg_types.h" + textual header "/usr/include/linux/rseq.h" + textual header "/usr/include/linux/rtc.h" + textual header "/usr/include/linux/rtnetlink.h" + textual header "/usr/include/linux/rxrpc.h" + textual header "/usr/include/linux/scc.h" + textual header "/usr/include/linux/sched.h" + textual header "/usr/include/linux/sched/types.h" + textual header "/usr/include/linux/scif_ioctl.h" + textual header "/usr/include/linux/screen_info.h" + textual header "/usr/include/linux/sctp.h" + textual header "/usr/include/linux/seccomp.h" + textual header "/usr/include/linux/securebits.h" + textual header "/usr/include/linux/sed-opal.h" + textual header "/usr/include/linux/seg6.h" + textual header "/usr/include/linux/seg6_genl.h" + textual header "/usr/include/linux/seg6_hmac.h" + textual header "/usr/include/linux/seg6_iptunnel.h" + textual header "/usr/include/linux/seg6_local.h" + textual header "/usr/include/linux/selinux_netlink.h" + textual header "/usr/include/linux/sem.h" + textual header "/usr/include/linux/serial.h" + textual header "/usr/include/linux/serial_core.h" + textual header "/usr/include/linux/serial_reg.h" + textual header "/usr/include/linux/serio.h" + textual header "/usr/include/linux/shm.h" + textual header "/usr/include/linux/signal.h" + textual header "/usr/include/linux/signalfd.h" + textual header "/usr/include/linux/smc.h" + textual header "/usr/include/linux/smc_diag.h" + textual header "/usr/include/linux/smiapp.h" + textual header "/usr/include/linux/snmp.h" + textual header "/usr/include/linux/sock_diag.h" + textual header "/usr/include/linux/socket.h" + textual header "/usr/include/linux/sockios.h" + textual header "/usr/include/linux/sonet.h" + textual header "/usr/include/linux/sonypi.h" + textual header "/usr/include/linux/sound.h" + textual header "/usr/include/linux/soundcard.h" + textual header "/usr/include/linux/spi/spi.h" + textual header "/usr/include/linux/spi/spidev.h" + textual header "/usr/include/linux/stat.h" + textual header "/usr/include/linux/stddef.h" + textual header "/usr/include/linux/stm.h" + textual header "/usr/include/linux/string.h" + textual header "/usr/include/linux/sunrpc/debug.h" + textual header "/usr/include/linux/surface_aggregator/cdev.h" + textual header "/usr/include/linux/surface_aggregator/dtx.h" + textual header "/usr/include/linux/suspend_ioctls.h" + textual header "/usr/include/linux/swab.h" + textual header "/usr/include/linux/switchtec_ioctl.h" + textual header "/usr/include/linux/sync_file.h" + textual header "/usr/include/linux/synclink.h" + textual header "/usr/include/linux/sysctl.h" + textual header "/usr/include/linux/sysinfo.h" + textual header "/usr/include/linux/target_core_user.h" + textual header "/usr/include/linux/taskstats.h" + textual header "/usr/include/linux/tc_act/tc_bpf.h" + textual header "/usr/include/linux/tc_act/tc_connmark.h" + textual header "/usr/include/linux/tc_act/tc_csum.h" + textual header "/usr/include/linux/tc_act/tc_ct.h" + textual header "/usr/include/linux/tc_act/tc_ctinfo.h" + textual header "/usr/include/linux/tc_act/tc_defact.h" + textual header "/usr/include/linux/tc_act/tc_gact.h" + textual header "/usr/include/linux/tc_act/tc_gate.h" + textual header "/usr/include/linux/tc_act/tc_ife.h" + textual header "/usr/include/linux/tc_act/tc_ipt.h" + textual header "/usr/include/linux/tc_act/tc_mirred.h" + textual header "/usr/include/linux/tc_act/tc_mpls.h" + textual header "/usr/include/linux/tc_act/tc_nat.h" + textual header "/usr/include/linux/tc_act/tc_pedit.h" + textual header "/usr/include/linux/tc_act/tc_sample.h" + textual header "/usr/include/linux/tc_act/tc_skbedit.h" + textual header "/usr/include/linux/tc_act/tc_skbmod.h" + textual header "/usr/include/linux/tc_act/tc_tunnel_key.h" + textual header "/usr/include/linux/tc_act/tc_vlan.h" + textual header "/usr/include/linux/tc_ematch/tc_em_cmp.h" + textual header "/usr/include/linux/tc_ematch/tc_em_ipt.h" + textual header "/usr/include/linux/tc_ematch/tc_em_meta.h" + textual header "/usr/include/linux/tc_ematch/tc_em_nbyte.h" + textual header "/usr/include/linux/tc_ematch/tc_em_text.h" + textual header "/usr/include/linux/tcp.h" + textual header "/usr/include/linux/tcp_metrics.h" + textual header "/usr/include/linux/tee.h" + textual header "/usr/include/linux/termios.h" + textual header "/usr/include/linux/thermal.h" + textual header "/usr/include/linux/time.h" + textual header "/usr/include/linux/time_types.h" + textual header "/usr/include/linux/timerfd.h" + textual header "/usr/include/linux/times.h" + textual header "/usr/include/linux/timex.h" + textual header "/usr/include/linux/tiocl.h" + textual header "/usr/include/linux/tipc.h" + textual header "/usr/include/linux/tipc_config.h" + textual header "/usr/include/linux/tipc_netlink.h" + textual header "/usr/include/linux/tipc_sockets_diag.h" + textual header "/usr/include/linux/tls.h" + textual header "/usr/include/linux/toshiba.h" + textual header "/usr/include/linux/tty.h" + textual header "/usr/include/linux/tty_flags.h" + textual header "/usr/include/linux/types.h" + textual header "/usr/include/linux/udf_fs_i.h" + textual header "/usr/include/linux/udmabuf.h" + textual header "/usr/include/linux/udp.h" + textual header "/usr/include/linux/uhid.h" + textual header "/usr/include/linux/uinput.h" + textual header "/usr/include/linux/uio.h" + textual header "/usr/include/linux/uleds.h" + textual header "/usr/include/linux/ultrasound.h" + textual header "/usr/include/linux/um_timetravel.h" + textual header "/usr/include/linux/un.h" + textual header "/usr/include/linux/unistd.h" + textual header "/usr/include/linux/unix_diag.h" + textual header "/usr/include/linux/usb/audio.h" + textual header "/usr/include/linux/usb/cdc-wdm.h" + textual header "/usr/include/linux/usb/cdc.h" + textual header "/usr/include/linux/usb/ch11.h" + textual header "/usr/include/linux/usb/ch9.h" + textual header "/usr/include/linux/usb/charger.h" + textual header "/usr/include/linux/usb/functionfs.h" + textual header "/usr/include/linux/usb/g_printer.h" + textual header "/usr/include/linux/usb/g_uvc.h" + textual header "/usr/include/linux/usb/gadgetfs.h" + textual header "/usr/include/linux/usb/midi.h" + textual header "/usr/include/linux/usb/raw_gadget.h" + textual header "/usr/include/linux/usb/tmc.h" + textual header "/usr/include/linux/usb/video.h" + textual header "/usr/include/linux/usbdevice_fs.h" + textual header "/usr/include/linux/usbip.h" + textual header "/usr/include/linux/userfaultfd.h" + textual header "/usr/include/linux/userio.h" + textual header "/usr/include/linux/utime.h" + textual header "/usr/include/linux/utsname.h" + textual header "/usr/include/linux/uuid.h" + textual header "/usr/include/linux/uvcvideo.h" + textual header "/usr/include/linux/v4l2-common.h" + textual header "/usr/include/linux/v4l2-controls.h" + textual header "/usr/include/linux/v4l2-dv-timings.h" + textual header "/usr/include/linux/v4l2-mediabus.h" + textual header "/usr/include/linux/v4l2-subdev.h" + textual header "/usr/include/linux/vbox_err.h" + textual header "/usr/include/linux/vbox_vmmdev_types.h" + textual header "/usr/include/linux/vboxguest.h" + textual header "/usr/include/linux/vdpa.h" + textual header "/usr/include/linux/vduse.h" + textual header "/usr/include/linux/version.h" + textual header "/usr/include/linux/veth.h" + textual header "/usr/include/linux/vfio.h" + textual header "/usr/include/linux/vfio_ccw.h" + textual header "/usr/include/linux/vfio_zdev.h" + textual header "/usr/include/linux/vhost.h" + textual header "/usr/include/linux/vhost_types.h" + textual header "/usr/include/linux/videodev2.h" + textual header "/usr/include/linux/virtio_9p.h" + textual header "/usr/include/linux/virtio_balloon.h" + textual header "/usr/include/linux/virtio_blk.h" + textual header "/usr/include/linux/virtio_bt.h" + textual header "/usr/include/linux/virtio_config.h" + textual header "/usr/include/linux/virtio_console.h" + textual header "/usr/include/linux/virtio_crypto.h" + textual header "/usr/include/linux/virtio_fs.h" + textual header "/usr/include/linux/virtio_gpio.h" + textual header "/usr/include/linux/virtio_gpu.h" + textual header "/usr/include/linux/virtio_i2c.h" + textual header "/usr/include/linux/virtio_ids.h" + textual header "/usr/include/linux/virtio_input.h" + textual header "/usr/include/linux/virtio_iommu.h" + textual header "/usr/include/linux/virtio_mem.h" + textual header "/usr/include/linux/virtio_mmio.h" + textual header "/usr/include/linux/virtio_net.h" + textual header "/usr/include/linux/virtio_pci.h" + textual header "/usr/include/linux/virtio_pcidev.h" + textual header "/usr/include/linux/virtio_pmem.h" + textual header "/usr/include/linux/virtio_ring.h" + textual header "/usr/include/linux/virtio_rng.h" + textual header "/usr/include/linux/virtio_scmi.h" + textual header "/usr/include/linux/virtio_scsi.h" + textual header "/usr/include/linux/virtio_snd.h" + textual header "/usr/include/linux/virtio_types.h" + textual header "/usr/include/linux/virtio_vsock.h" + textual header "/usr/include/linux/vm_sockets.h" + textual header "/usr/include/linux/vm_sockets_diag.h" + textual header "/usr/include/linux/vmcore.h" + textual header "/usr/include/linux/vsockmon.h" + textual header "/usr/include/linux/vt.h" + textual header "/usr/include/linux/vtpm_proxy.h" + textual header "/usr/include/linux/wait.h" + textual header "/usr/include/linux/watch_queue.h" + textual header "/usr/include/linux/watchdog.h" + textual header "/usr/include/linux/wireguard.h" + textual header "/usr/include/linux/wireless.h" + textual header "/usr/include/linux/wmi.h" + textual header "/usr/include/linux/wwan.h" + textual header "/usr/include/linux/x25.h" + textual header "/usr/include/linux/xattr.h" + textual header "/usr/include/linux/xdp_diag.h" + textual header "/usr/include/linux/xfrm.h" + textual header "/usr/include/linux/xilinx-v4l2-controls.h" + textual header "/usr/include/linux/zorro.h" + textual header "/usr/include/linux/zorro_ids.h" + textual header "/usr/include/llvm-13/llvm/ADT/APFixedPoint.h" + textual header "/usr/include/llvm-13/llvm/ADT/APFloat.h" + textual header "/usr/include/llvm-13/llvm/ADT/APInt.h" + textual header "/usr/include/llvm-13/llvm/ADT/APSInt.h" + textual header "/usr/include/llvm-13/llvm/ADT/AllocatorList.h" + textual header "/usr/include/llvm-13/llvm/ADT/Any.h" + textual header "/usr/include/llvm-13/llvm/ADT/ArrayRef.h" + textual header "/usr/include/llvm-13/llvm/ADT/BitVector.h" + textual header "/usr/include/llvm-13/llvm/ADT/Bitfields.h" + textual header "/usr/include/llvm-13/llvm/ADT/BitmaskEnum.h" + textual header "/usr/include/llvm-13/llvm/ADT/BreadthFirstIterator.h" + textual header "/usr/include/llvm-13/llvm/ADT/CachedHashString.h" + textual header "/usr/include/llvm-13/llvm/ADT/CoalescingBitVector.h" + textual header "/usr/include/llvm-13/llvm/ADT/DAGDeltaAlgorithm.h" + textual header "/usr/include/llvm-13/llvm/ADT/DeltaAlgorithm.h" + textual header "/usr/include/llvm-13/llvm/ADT/DenseMap.h" + textual header "/usr/include/llvm-13/llvm/ADT/DenseMapInfo.h" + textual header "/usr/include/llvm-13/llvm/ADT/DenseSet.h" + textual header "/usr/include/llvm-13/llvm/ADT/DepthFirstIterator.h" + textual header "/usr/include/llvm-13/llvm/ADT/DirectedGraph.h" + textual header "/usr/include/llvm-13/llvm/ADT/EnumeratedArray.h" + textual header "/usr/include/llvm-13/llvm/ADT/EpochTracker.h" + textual header "/usr/include/llvm-13/llvm/ADT/EquivalenceClasses.h" + textual header "/usr/include/llvm-13/llvm/ADT/FloatingPointMode.h" + textual header "/usr/include/llvm-13/llvm/ADT/FoldingSet.h" + textual header "/usr/include/llvm-13/llvm/ADT/FunctionExtras.h" + textual header "/usr/include/llvm-13/llvm/ADT/GraphTraits.h" + textual header "/usr/include/llvm-13/llvm/ADT/Hashing.h" + textual header "/usr/include/llvm-13/llvm/ADT/ImmutableList.h" + textual header "/usr/include/llvm-13/llvm/ADT/ImmutableMap.h" + textual header "/usr/include/llvm-13/llvm/ADT/ImmutableSet.h" + textual header "/usr/include/llvm-13/llvm/ADT/IndexedMap.h" + textual header "/usr/include/llvm-13/llvm/ADT/IntEqClasses.h" + textual header "/usr/include/llvm-13/llvm/ADT/IntervalMap.h" + textual header "/usr/include/llvm-13/llvm/ADT/IntrusiveRefCntPtr.h" + textual header "/usr/include/llvm-13/llvm/ADT/MapVector.h" + textual header "/usr/include/llvm-13/llvm/ADT/None.h" + textual header "/usr/include/llvm-13/llvm/ADT/Optional.h" + textual header "/usr/include/llvm-13/llvm/ADT/PackedVector.h" + textual header "/usr/include/llvm-13/llvm/ADT/PointerEmbeddedInt.h" + textual header "/usr/include/llvm-13/llvm/ADT/PointerIntPair.h" + textual header "/usr/include/llvm-13/llvm/ADT/PointerSumType.h" + textual header "/usr/include/llvm-13/llvm/ADT/PointerUnion.h" + textual header "/usr/include/llvm-13/llvm/ADT/PostOrderIterator.h" + textual header "/usr/include/llvm-13/llvm/ADT/PriorityQueue.h" + textual header "/usr/include/llvm-13/llvm/ADT/PriorityWorklist.h" + textual header "/usr/include/llvm-13/llvm/ADT/SCCIterator.h" + textual header "/usr/include/llvm-13/llvm/ADT/STLExtras.h" + textual header "/usr/include/llvm-13/llvm/ADT/STLForwardCompat.h" + textual header "/usr/include/llvm-13/llvm/ADT/ScopeExit.h" + textual header "/usr/include/llvm-13/llvm/ADT/ScopedHashTable.h" + textual header "/usr/include/llvm-13/llvm/ADT/Sequence.h" + textual header "/usr/include/llvm-13/llvm/ADT/SetOperations.h" + textual header "/usr/include/llvm-13/llvm/ADT/SetVector.h" + textual header "/usr/include/llvm-13/llvm/ADT/SmallBitVector.h" + textual header "/usr/include/llvm-13/llvm/ADT/SmallPtrSet.h" + textual header "/usr/include/llvm-13/llvm/ADT/SmallSet.h" + textual header "/usr/include/llvm-13/llvm/ADT/SmallString.h" + textual header "/usr/include/llvm-13/llvm/ADT/SmallVector.h" + textual header "/usr/include/llvm-13/llvm/ADT/SparseBitVector.h" + textual header "/usr/include/llvm-13/llvm/ADT/SparseMultiSet.h" + textual header "/usr/include/llvm-13/llvm/ADT/SparseSet.h" + textual header "/usr/include/llvm-13/llvm/ADT/Statistic.h" + textual header "/usr/include/llvm-13/llvm/ADT/StringExtras.h" + textual header "/usr/include/llvm-13/llvm/ADT/StringMap.h" + textual header "/usr/include/llvm-13/llvm/ADT/StringMapEntry.h" + textual header "/usr/include/llvm-13/llvm/ADT/StringRef.h" + textual header "/usr/include/llvm-13/llvm/ADT/StringSet.h" + textual header "/usr/include/llvm-13/llvm/ADT/StringSwitch.h" + textual header "/usr/include/llvm-13/llvm/ADT/TinyPtrVector.h" + textual header "/usr/include/llvm-13/llvm/ADT/Triple.h" + textual header "/usr/include/llvm-13/llvm/ADT/Twine.h" + textual header "/usr/include/llvm-13/llvm/ADT/TypeSwitch.h" + textual header "/usr/include/llvm-13/llvm/ADT/UniqueVector.h" + textual header "/usr/include/llvm-13/llvm/ADT/Waymarking.h" + textual header "/usr/include/llvm-13/llvm/ADT/bit.h" + textual header "/usr/include/llvm-13/llvm/ADT/edit_distance.h" + textual header "/usr/include/llvm-13/llvm/ADT/fallible_iterator.h" + textual header "/usr/include/llvm-13/llvm/ADT/ilist.h" + textual header "/usr/include/llvm-13/llvm/ADT/ilist_base.h" + textual header "/usr/include/llvm-13/llvm/ADT/ilist_iterator.h" + textual header "/usr/include/llvm-13/llvm/ADT/ilist_node.h" + textual header "/usr/include/llvm-13/llvm/ADT/ilist_node_base.h" + textual header "/usr/include/llvm-13/llvm/ADT/ilist_node_options.h" + textual header "/usr/include/llvm-13/llvm/ADT/iterator.h" + textual header "/usr/include/llvm-13/llvm/ADT/iterator_range.h" + textual header "/usr/include/llvm-13/llvm/ADT/simple_ilist.h" + textual header "/usr/include/llvm-13/llvm/Analysis/AliasAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/AliasAnalysisEvaluator.h" + textual header "/usr/include/llvm-13/llvm/Analysis/AliasSetTracker.h" + textual header "/usr/include/llvm-13/llvm/Analysis/AssumeBundleQueries.h" + textual header "/usr/include/llvm-13/llvm/Analysis/AssumptionCache.h" + textual header "/usr/include/llvm-13/llvm/Analysis/BasicAliasAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/BlockFrequencyInfo.h" + textual header "/usr/include/llvm-13/llvm/Analysis/BlockFrequencyInfoImpl.h" + textual header "/usr/include/llvm-13/llvm/Analysis/BranchProbabilityInfo.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CFG.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CFGPrinter.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CFLAliasAnalysisUtils.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CFLAndersAliasAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CFLSteensAliasAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CGSCCPassManager.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CallGraph.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CallGraphSCCPass.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CallPrinter.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CaptureTracking.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CmpInstAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/CodeMetrics.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ConstantFolding.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ConstraintSystem.h" + textual header "/usr/include/llvm-13/llvm/Analysis/DDG.h" + textual header "/usr/include/llvm-13/llvm/Analysis/DDGPrinter.h" + textual header "/usr/include/llvm-13/llvm/Analysis/DOTGraphTraitsPass.h" + textual header "/usr/include/llvm-13/llvm/Analysis/Delinearization.h" + textual header "/usr/include/llvm-13/llvm/Analysis/DemandedBits.h" + textual header "/usr/include/llvm-13/llvm/Analysis/DependenceAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/DependenceGraphBuilder.h" + textual header "/usr/include/llvm-13/llvm/Analysis/DivergenceAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/DomPrinter.h" + textual header "/usr/include/llvm-13/llvm/Analysis/DomTreeUpdater.h" + textual header "/usr/include/llvm-13/llvm/Analysis/DominanceFrontier.h" + textual header "/usr/include/llvm-13/llvm/Analysis/DominanceFrontierImpl.h" + textual header "/usr/include/llvm-13/llvm/Analysis/EHPersonalities.h" + textual header "/usr/include/llvm-13/llvm/Analysis/FunctionPropertiesAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/GlobalsModRef.h" + textual header "/usr/include/llvm-13/llvm/Analysis/GuardUtils.h" + textual header "/usr/include/llvm-13/llvm/Analysis/HeatUtils.h" + textual header "/usr/include/llvm-13/llvm/Analysis/IRSimilarityIdentifier.h" + textual header "/usr/include/llvm-13/llvm/Analysis/IVDescriptors.h" + textual header "/usr/include/llvm-13/llvm/Analysis/IVUsers.h" + textual header "/usr/include/llvm-13/llvm/Analysis/IndirectCallPromotionAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/IndirectCallVisitor.h" + textual header "/usr/include/llvm-13/llvm/Analysis/InlineAdvisor.h" + textual header "/usr/include/llvm-13/llvm/Analysis/InlineCost.h" + textual header "/usr/include/llvm-13/llvm/Analysis/InlineModelFeatureMaps.h" + textual header "/usr/include/llvm-13/llvm/Analysis/InlineSizeEstimatorAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/InstCount.h" + textual header "/usr/include/llvm-13/llvm/Analysis/InstructionPrecedenceTracking.h" + textual header "/usr/include/llvm-13/llvm/Analysis/InstructionSimplify.h" + textual header "/usr/include/llvm-13/llvm/Analysis/Interval.h" + textual header "/usr/include/llvm-13/llvm/Analysis/IntervalIterator.h" + textual header "/usr/include/llvm-13/llvm/Analysis/IntervalPartition.h" + textual header "/usr/include/llvm-13/llvm/Analysis/IteratedDominanceFrontier.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LazyBlockFrequencyInfo.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LazyBranchProbabilityInfo.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LazyCallGraph.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LazyValueInfo.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LegacyDivergenceAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/Lint.h" + textual header "/usr/include/llvm-13/llvm/Analysis/Loads.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LoopAccessAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LoopAnalysisManager.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LoopCacheAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LoopInfo.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LoopInfoImpl.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LoopIterator.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LoopNestAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LoopPass.h" + textual header "/usr/include/llvm-13/llvm/Analysis/LoopUnrollAnalyzer.h" + textual header "/usr/include/llvm-13/llvm/Analysis/MLInlineAdvisor.h" + textual header "/usr/include/llvm-13/llvm/Analysis/MLModelRunner.h" + textual header "/usr/include/llvm-13/llvm/Analysis/MemDerefPrinter.h" + textual header "/usr/include/llvm-13/llvm/Analysis/MemoryBuiltins.h" + textual header "/usr/include/llvm-13/llvm/Analysis/MemoryDependenceAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/MemoryLocation.h" + textual header "/usr/include/llvm-13/llvm/Analysis/MemorySSA.h" + textual header "/usr/include/llvm-13/llvm/Analysis/MemorySSAUpdater.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ModuleDebugInfoPrinter.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ModuleSummaryAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/MustExecute.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ObjCARCAliasAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ObjCARCAnalysisUtils.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ObjCARCInstKind.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ObjCARCUtil.h" + textual header "/usr/include/llvm-13/llvm/Analysis/OptimizationRemarkEmitter.h" + textual header "/usr/include/llvm-13/llvm/Analysis/OverflowInstAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/PHITransAddr.h" + textual header "/usr/include/llvm-13/llvm/Analysis/Passes.h" + textual header "/usr/include/llvm-13/llvm/Analysis/PhiValues.h" + textual header "/usr/include/llvm-13/llvm/Analysis/PostDominators.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ProfileSummaryInfo.h" + textual header "/usr/include/llvm-13/llvm/Analysis/PtrUseVisitor.h" + textual header "/usr/include/llvm-13/llvm/Analysis/RegionInfo.h" + textual header "/usr/include/llvm-13/llvm/Analysis/RegionInfoImpl.h" + textual header "/usr/include/llvm-13/llvm/Analysis/RegionIterator.h" + textual header "/usr/include/llvm-13/llvm/Analysis/RegionPass.h" + textual header "/usr/include/llvm-13/llvm/Analysis/RegionPrinter.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ReplayInlineAdvisor.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ScalarEvolution.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ScalarEvolutionAliasAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ScalarEvolutionDivision.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ScalarEvolutionExpressions.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ScalarEvolutionNormalization.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ScopedNoAliasAA.h" + textual header "/usr/include/llvm-13/llvm/Analysis/SparsePropagation.h" + textual header "/usr/include/llvm-13/llvm/Analysis/StackLifetime.h" + textual header "/usr/include/llvm-13/llvm/Analysis/StackSafetyAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/SyncDependenceAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/SyntheticCountsUtils.h" + textual header "/usr/include/llvm-13/llvm/Analysis/TargetFolder.h" + textual header "/usr/include/llvm-13/llvm/Analysis/TargetLibraryInfo.def" + textual header "/usr/include/llvm-13/llvm/Analysis/TargetLibraryInfo.h" + textual header "/usr/include/llvm-13/llvm/Analysis/TargetTransformInfo.h" + textual header "/usr/include/llvm-13/llvm/Analysis/TargetTransformInfoImpl.h" + textual header "/usr/include/llvm-13/llvm/Analysis/Trace.h" + textual header "/usr/include/llvm-13/llvm/Analysis/TypeBasedAliasAnalysis.h" + textual header "/usr/include/llvm-13/llvm/Analysis/TypeMetadataUtils.h" + textual header "/usr/include/llvm-13/llvm/Analysis/Utils/ImportedFunctionsInliningStatistics.h" + textual header "/usr/include/llvm-13/llvm/Analysis/Utils/Local.h" + textual header "/usr/include/llvm-13/llvm/Analysis/Utils/TFUtils.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ValueLattice.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ValueLatticeUtils.h" + textual header "/usr/include/llvm-13/llvm/Analysis/ValueTracking.h" + textual header "/usr/include/llvm-13/llvm/Analysis/VecFuncs.def" + textual header "/usr/include/llvm-13/llvm/Analysis/VectorUtils.h" + textual header "/usr/include/llvm-13/llvm/AsmParser/LLLexer.h" + textual header "/usr/include/llvm-13/llvm/AsmParser/LLParser.h" + textual header "/usr/include/llvm-13/llvm/AsmParser/LLToken.h" + textual header "/usr/include/llvm-13/llvm/AsmParser/Parser.h" + textual header "/usr/include/llvm-13/llvm/AsmParser/SlotMapping.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/AMDGPUMetadataVerifier.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/COFF.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/Dwarf.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/Dwarf.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/DynamicTags.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELF.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/AArch64.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/AMDGPU.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/ARC.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/ARM.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/AVR.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/BPF.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/CSKY.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/Hexagon.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/Lanai.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/M68k.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/MSP430.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/Mips.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/PowerPC.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/PowerPC64.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/RISCV.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/Sparc.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/SystemZ.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/VE.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/i386.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/ELFRelocs/x86_64.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/MachO.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/MachO.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/Magic.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/Minidump.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/MinidumpConstants.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/MsgPack.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/MsgPack.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/MsgPackDocument.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/MsgPackReader.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/MsgPackWriter.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/Wasm.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/WasmRelocs.def" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/WasmTraits.h" + textual header "/usr/include/llvm-13/llvm/BinaryFormat/XCOFF.h" + textual header "/usr/include/llvm-13/llvm/Bitcode/BitcodeAnalyzer.h" + textual header "/usr/include/llvm-13/llvm/Bitcode/BitcodeCommon.h" + textual header "/usr/include/llvm-13/llvm/Bitcode/BitcodeConvenience.h" + textual header "/usr/include/llvm-13/llvm/Bitcode/BitcodeReader.h" + textual header "/usr/include/llvm-13/llvm/Bitcode/BitcodeWriter.h" + textual header "/usr/include/llvm-13/llvm/Bitcode/BitcodeWriterPass.h" + textual header "/usr/include/llvm-13/llvm/Bitcode/LLVMBitCodes.h" + textual header "/usr/include/llvm-13/llvm/Bitstream/BitCodes.h" + textual header "/usr/include/llvm-13/llvm/Bitstream/BitstreamReader.h" + textual header "/usr/include/llvm-13/llvm/Bitstream/BitstreamWriter.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/AccelTable.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/Analysis.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/AntiDepBreaker.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/AsmPrinter.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/AsmPrinterHandler.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/AtomicExpandUtils.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/BasicBlockSectionUtils.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/BasicTTIImpl.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/CSEConfigBase.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/CalcSpillWeights.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/CallingConvLower.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/CodeGenPassBuilder.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/CommandFlags.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/CostTable.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/DAGCombine.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/DFAPacketizer.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/DIE.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/DIEValue.def" + textual header "/usr/include/llvm-13/llvm/CodeGen/DbgEntityHistoryCalculator.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/DebugHandlerBase.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/DwarfStringPoolEntry.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/EdgeBundles.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ExecutionDomainFix.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ExpandReductions.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ExpandVectorPredication.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/FastISel.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/FaultMaps.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/FunctionLoweringInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GCMetadata.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GCMetadataPrinter.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/CSEInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/CallLowering.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/Combiner.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/CombinerHelper.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/CombinerInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/GISelChangeObserver.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/GISelKnownBits.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/GISelWorkList.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/IRTranslator.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/InlineAsmLowering.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/InstructionSelect.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/InstructionSelector.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/LegacyLegalizerInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/Legalizer.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/LegalizerHelper.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/LegalizerInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/Localizer.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/LostDebugLocObserver.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/MIPatternMatch.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/MachineIRBuilder.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/RegBankSelect.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/RegisterBank.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/RegisterBankInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/GlobalISel/Utils.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ISDOpcodes.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/IndirectThunks.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/IntrinsicLowering.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LatencyPriorityQueue.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LexicalScopes.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LinkAllAsmWriterComponents.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LinkAllCodegenComponents.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LiveInterval.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LiveIntervalCalc.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LiveIntervalUnion.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LiveIntervals.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LivePhysRegs.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LiveRangeCalc.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LiveRangeEdit.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LiveRegMatrix.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LiveRegUnits.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LiveStacks.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LiveVariables.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LoopTraversal.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/LowLevelType.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MBFIWrapper.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MIRFSDiscriminator.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MIRFormatter.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MIRParser/MIParser.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MIRParser/MIRParser.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MIRPrinter.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MIRYamlMapping.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachORelocation.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineBasicBlock.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineBlockFrequencyInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineBranchProbabilityInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineCombinerPattern.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineConstantPool.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineDominanceFrontier.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineDominators.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineFrameInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineFunction.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineFunctionPass.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineInstr.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineInstrBuilder.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineInstrBundle.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineInstrBundleIterator.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineJumpTableInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineLoopInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineLoopUtils.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineMemOperand.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineModuleInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineModuleInfoImpls.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineModuleSlotTracker.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineOperand.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineOptimizationRemarkEmitter.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineOutliner.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachinePassManager.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachinePassRegistry.def" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachinePassRegistry.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachinePipeliner.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachinePostDominators.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineRegionInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineRegisterInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineSSAUpdater.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineScheduler.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineSizeOpts.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineStableHash.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MachineTraceMetrics.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MacroFusion.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ModuloSchedule.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/MultiHazardRecognizer.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/NonRelocatableStringpool.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/PBQP/CostAllocator.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/PBQP/Graph.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/PBQP/Math.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/PBQP/ReductionRules.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/PBQP/Solution.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/PBQPRAConstraint.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ParallelCG.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/Passes.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/PreISelIntrinsicLowering.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/PseudoSourceValue.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/RDFGraph.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/RDFLiveness.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/RDFRegisters.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ReachingDefAnalysis.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/RegAllocCommon.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/RegAllocPBQP.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/RegAllocRegistry.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/Register.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/RegisterClassInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/RegisterPressure.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/RegisterScavenging.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/RegisterUsageInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ReplaceWithVeclib.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ResourcePriorityQueue.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/RuntimeLibcalls.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/SDNodeProperties.td" + textual header "/usr/include/llvm-13/llvm/CodeGen/ScheduleDAG.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ScheduleDAGInstrs.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ScheduleDAGMutation.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ScheduleDFS.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ScheduleHazardRecognizer.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/SchedulerRegistry.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ScoreboardHazardRecognizer.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/SelectionDAG.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/SelectionDAGAddressAnalysis.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/SelectionDAGISel.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/SelectionDAGNodes.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/SelectionDAGTargetInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/SlotIndexes.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/Spiller.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/StableHashing.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/StackMaps.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/StackProtector.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/SwiftErrorValueTracking.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/SwitchLoweringUtils.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TailDuplicator.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TargetCallingConv.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TargetFrameLowering.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TargetInstrInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TargetLowering.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TargetLoweringObjectFileImpl.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TargetOpcodes.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TargetPassConfig.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TargetRegisterInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TargetSchedule.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TargetSubtargetInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/TileShapeInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/UnreachableBlockElim.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ValueTypes.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/ValueTypes.td" + textual header "/usr/include/llvm-13/llvm/CodeGen/VirtRegMap.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/WasmEHFuncInfo.h" + textual header "/usr/include/llvm-13/llvm/CodeGen/WinEHFuncInfo.h" + textual header "/usr/include/llvm-13/llvm/Config/AsmParsers.def" + textual header "/usr/include/llvm-13/llvm/Config/AsmPrinters.def" + textual header "/usr/include/llvm-13/llvm/Config/Disassemblers.def" + textual header "/usr/include/llvm-13/llvm/Config/Targets.def" + textual header "/usr/include/llvm-13/llvm/Config/abi-breaking.h" + textual header "/usr/include/llvm-13/llvm/Config/llvm-config.h" + textual header "/usr/include/llvm-13/llvm/DWARFLinker/DWARFLinker.h" + textual header "/usr/include/llvm-13/llvm/DWARFLinker/DWARFLinkerCompileUnit.h" + textual header "/usr/include/llvm-13/llvm/DWARFLinker/DWARFLinkerDeclContext.h" + textual header "/usr/include/llvm-13/llvm/DWARFLinker/DWARFStreamer.h" + textual header "/usr/include/llvm-13/llvm/DWP/DWP.h" + textual header "/usr/include/llvm-13/llvm/DWP/DWPError.h" + textual header "/usr/include/llvm-13/llvm/DWP/DWPStringPool.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/CVRecord.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/CVSymbolVisitor.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/CVTypeVisitor.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/CodeView.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/CodeViewError.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/CodeViewRecordIO.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/CodeViewRegisters.def" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/CodeViewSymbols.def" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/CodeViewTypes.def" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugLinesSubsection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugSubsection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/EnumTables.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/Formatters.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/FunctionId.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/GUID.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/Line.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/RecordName.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/RecordSerialization.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/StringsAndChecksums.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/SymbolDeserializer.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/SymbolDumper.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/SymbolRecord.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/SymbolRecordMapping.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/SymbolSerializer.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeCollection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeDeserializer.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeDumpVisitor.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeHashing.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeIndex.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeRecord.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeRecordHelpers.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeRecordMapping.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeStreamMerger.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeTableCollection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DIContext.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFAddressRange.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFAttribute.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFCompileUnit.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFContext.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDataExtractor.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugAddr.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugAranges.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugFrame.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugLine.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugLoc.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugMacro.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFDie.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFExpression.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFFormValue.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFGdbIndex.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFListTable.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFLocationExpression.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFObject.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFRelocMap.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFSection.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFTypeUnit.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFUnit.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFUnitIndex.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/DWARF/DWARFVerifier.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/DwarfTransformer.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/FileEntry.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/FileWriter.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/FunctionInfo.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/GsymCreator.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/GsymReader.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/Header.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/InlineInfo.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/LineEntry.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/LineTable.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/LookupResult.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/ObjectFileTransformer.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/Range.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/GSYM/StringTable.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/MSF/IMSFFile.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/MSF/MSFBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/MSF/MSFCommon.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/MSF/MSFError.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/MSF/MappedBlockStream.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIADataStream.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAError.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAFrameData.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIALineNumber.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIASession.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIASourceFile.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIASupport.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIATable.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/DIA/DIAUtils.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/GenericError.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/IPDBDataStream.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/IPDBEnumChildren.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/IPDBFrameData.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/IPDBInjectedSource.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/IPDBLineNumber.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/IPDBRawSymbol.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/IPDBSectionContrib.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/IPDBSession.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/IPDBSourceFile.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/IPDBTable.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/DbiModuleList.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/DbiStream.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/EnumTables.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/Formatters.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/GlobalsStream.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/Hash.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/HashTable.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/InfoStream.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NamedStreamMap.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeEnumLineNumbers.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeEnumModules.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeEnumSymbols.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeFunctionSymbol.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeInlineSiteSymbol.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeLineNumber.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativePublicSymbol.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeSession.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeSourceFile.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeTypeArray.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeTypePointer.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/PDBFile.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/PDBStringTable.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/PublicsStream.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/RawConstants.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/RawError.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/RawTypes.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/SymbolCache.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/SymbolStream.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/TpiHashing.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/TpiStream.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDB.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBContext.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBExtras.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymDumper.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbol.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolBlock.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolCompiland.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolCustom.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolData.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolExe.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolFunc.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolLabel.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolThunk.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolUnknown.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/PDBTypes.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/PDB/UDTLayout.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/Symbolize/DIPrinter.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/Symbolize/SymbolizableModule.h" + textual header "/usr/include/llvm-13/llvm/DebugInfo/Symbolize/Symbolize.h" + textual header "/usr/include/llvm-13/llvm/Demangle/Demangle.h" + textual header "/usr/include/llvm-13/llvm/Demangle/DemangleConfig.h" + textual header "/usr/include/llvm-13/llvm/Demangle/ItaniumDemangle.h" + textual header "/usr/include/llvm-13/llvm/Demangle/MicrosoftDemangle.h" + textual header "/usr/include/llvm-13/llvm/Demangle/MicrosoftDemangleNodes.h" + textual header "/usr/include/llvm-13/llvm/Demangle/StringView.h" + textual header "/usr/include/llvm-13/llvm/Demangle/Utility.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/ExecutionEngine.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/GenericValue.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Interpreter.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITEventListener.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/EHFrameSupport.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/ELF.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/ELF_riscv.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/ELF_x86_64.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/JITLink.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/JITLinkDylib.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/MachO.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/MachO_arm64.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/MachO_x86_64.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/riscv.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITLink/x86_64.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/JITSymbol.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/MCJIT.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/OProfileWrapper.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/ObjectCache.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/CompileUtils.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Core.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/DebugUtils.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/EPCDebugObjectRegistrar.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/EPCEHFrameRegistrar.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/ExecutionUtils.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/IRCompileLayer.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/IRTransformLayer.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/IndirectionUtils.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/LLJIT.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/LLVMSPSSerializers.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Layer.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/LazyReexports.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/MachOPlatform.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Mangling.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/OrcABISupport.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/OrcRPCExecutorProcessControl.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Shared/FDRawByteChannel.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Shared/OrcError.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Shared/RawByteChannel.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Shared/Serialization.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/Speculation.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/SymbolStringPool.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/TargetProcess/OrcRPCTPCServer.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/Orc/ThreadSafeModule.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/OrcMCJITReplacement.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/OrcV1Deprecation.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/RTDyldMemoryManager.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/RuntimeDyld.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/RuntimeDyldChecker.h" + textual header "/usr/include/llvm-13/llvm/ExecutionEngine/SectionMemoryManager.h" + textual header "/usr/include/llvm-13/llvm/FileCheck/FileCheck.h" + textual header "/usr/include/llvm-13/llvm/Frontend/Directive/DirectiveBase.td" + textual header "/usr/include/llvm-13/llvm/Frontend/OpenACC/ACC.h.inc" + textual header "/usr/include/llvm-13/llvm/Frontend/OpenACC/ACC.inc" + textual header "/usr/include/llvm-13/llvm/Frontend/OpenACC/ACC.td" + textual header "/usr/include/llvm-13/llvm/Frontend/OpenMP/OMP.h.inc" + textual header "/usr/include/llvm-13/llvm/Frontend/OpenMP/OMP.inc" + textual header "/usr/include/llvm-13/llvm/Frontend/OpenMP/OMP.td" + textual header "/usr/include/llvm-13/llvm/Frontend/OpenMP/OMPConstants.h" + textual header "/usr/include/llvm-13/llvm/Frontend/OpenMP/OMPContext.h" + textual header "/usr/include/llvm-13/llvm/Frontend/OpenMP/OMPGridValues.h" + textual header "/usr/include/llvm-13/llvm/Frontend/OpenMP/OMPIRBuilder.h" + textual header "/usr/include/llvm-13/llvm/Frontend/OpenMP/OMPKinds.def" + textual header "/usr/include/llvm-13/llvm/FuzzMutate/FuzzerCLI.h" + textual header "/usr/include/llvm-13/llvm/FuzzMutate/IRMutator.h" + textual header "/usr/include/llvm-13/llvm/FuzzMutate/OpDescriptor.h" + textual header "/usr/include/llvm-13/llvm/FuzzMutate/Operations.h" + textual header "/usr/include/llvm-13/llvm/FuzzMutate/Random.h" + textual header "/usr/include/llvm-13/llvm/FuzzMutate/RandomIRBuilder.h" + textual header "/usr/include/llvm-13/llvm/IR/AbstractCallSite.h" + textual header "/usr/include/llvm-13/llvm/IR/Argument.h" + textual header "/usr/include/llvm-13/llvm/IR/AssemblyAnnotationWriter.h" + textual header "/usr/include/llvm-13/llvm/IR/Assumptions.h" + textual header "/usr/include/llvm-13/llvm/IR/Attributes.h" + textual header "/usr/include/llvm-13/llvm/IR/Attributes.inc" + textual header "/usr/include/llvm-13/llvm/IR/Attributes.td" + textual header "/usr/include/llvm-13/llvm/IR/AutoUpgrade.h" + textual header "/usr/include/llvm-13/llvm/IR/BasicBlock.h" + textual header "/usr/include/llvm-13/llvm/IR/BuiltinGCs.h" + textual header "/usr/include/llvm-13/llvm/IR/CFG.h" + textual header "/usr/include/llvm-13/llvm/IR/CallingConv.h" + textual header "/usr/include/llvm-13/llvm/IR/Comdat.h" + textual header "/usr/include/llvm-13/llvm/IR/Constant.h" + textual header "/usr/include/llvm-13/llvm/IR/ConstantFolder.h" + textual header "/usr/include/llvm-13/llvm/IR/ConstantRange.h" + textual header "/usr/include/llvm-13/llvm/IR/Constants.h" + textual header "/usr/include/llvm-13/llvm/IR/ConstrainedOps.def" + textual header "/usr/include/llvm-13/llvm/IR/DIBuilder.h" + textual header "/usr/include/llvm-13/llvm/IR/DataLayout.h" + textual header "/usr/include/llvm-13/llvm/IR/DebugInfo.h" + textual header "/usr/include/llvm-13/llvm/IR/DebugInfoFlags.def" + textual header "/usr/include/llvm-13/llvm/IR/DebugInfoMetadata.h" + textual header "/usr/include/llvm-13/llvm/IR/DebugLoc.h" + textual header "/usr/include/llvm-13/llvm/IR/DerivedTypes.h" + textual header "/usr/include/llvm-13/llvm/IR/DerivedUser.h" + textual header "/usr/include/llvm-13/llvm/IR/DiagnosticHandler.h" + textual header "/usr/include/llvm-13/llvm/IR/DiagnosticInfo.h" + textual header "/usr/include/llvm-13/llvm/IR/DiagnosticPrinter.h" + textual header "/usr/include/llvm-13/llvm/IR/Dominators.h" + textual header "/usr/include/llvm-13/llvm/IR/FPEnv.h" + textual header "/usr/include/llvm-13/llvm/IR/FixedMetadataKinds.def" + textual header "/usr/include/llvm-13/llvm/IR/FixedPointBuilder.h" + textual header "/usr/include/llvm-13/llvm/IR/Function.h" + textual header "/usr/include/llvm-13/llvm/IR/GCStrategy.h" + textual header "/usr/include/llvm-13/llvm/IR/GVMaterializer.h" + textual header "/usr/include/llvm-13/llvm/IR/GetElementPtrTypeIterator.h" + textual header "/usr/include/llvm-13/llvm/IR/GlobalAlias.h" + textual header "/usr/include/llvm-13/llvm/IR/GlobalIFunc.h" + textual header "/usr/include/llvm-13/llvm/IR/GlobalIndirectSymbol.h" + textual header "/usr/include/llvm-13/llvm/IR/GlobalObject.h" + textual header "/usr/include/llvm-13/llvm/IR/GlobalValue.h" + textual header "/usr/include/llvm-13/llvm/IR/GlobalVariable.h" + textual header "/usr/include/llvm-13/llvm/IR/IRBuilder.h" + textual header "/usr/include/llvm-13/llvm/IR/IRBuilderFolder.h" + textual header "/usr/include/llvm-13/llvm/IR/IRPrintingPasses.h" + textual header "/usr/include/llvm-13/llvm/IR/InlineAsm.h" + textual header "/usr/include/llvm-13/llvm/IR/InstIterator.h" + textual header "/usr/include/llvm-13/llvm/IR/InstVisitor.h" + textual header "/usr/include/llvm-13/llvm/IR/InstrTypes.h" + textual header "/usr/include/llvm-13/llvm/IR/Instruction.def" + textual header "/usr/include/llvm-13/llvm/IR/Instruction.h" + textual header "/usr/include/llvm-13/llvm/IR/Instructions.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicEnums.inc" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicImpl.inc" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicInst.h" + textual header "/usr/include/llvm-13/llvm/IR/Intrinsics.h" + textual header "/usr/include/llvm-13/llvm/IR/Intrinsics.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsAArch64.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsAArch64.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsAMDGPU.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsAMDGPU.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsARM.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsARM.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsBPF.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsBPF.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsHexagon.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsHexagon.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsHexagonDep.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsMips.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsMips.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsNVPTX.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsNVVM.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsPowerPC.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsPowerPC.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsR600.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsRISCV.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsRISCV.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsS390.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsSystemZ.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsVE.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsVE.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsVEVL.gen.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsWebAssembly.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsWebAssembly.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsX86.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsX86.td" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsXCore.h" + textual header "/usr/include/llvm-13/llvm/IR/IntrinsicsXCore.td" + textual header "/usr/include/llvm-13/llvm/IR/LLVMContext.h" + textual header "/usr/include/llvm-13/llvm/IR/LLVMRemarkStreamer.h" + textual header "/usr/include/llvm-13/llvm/IR/LegacyPassManager.h" + textual header "/usr/include/llvm-13/llvm/IR/LegacyPassManagers.h" + textual header "/usr/include/llvm-13/llvm/IR/LegacyPassNameParser.h" + textual header "/usr/include/llvm-13/llvm/IR/MDBuilder.h" + textual header "/usr/include/llvm-13/llvm/IR/Mangler.h" + textual header "/usr/include/llvm-13/llvm/IR/MatrixBuilder.h" + textual header "/usr/include/llvm-13/llvm/IR/Metadata.def" + textual header "/usr/include/llvm-13/llvm/IR/Metadata.h" + textual header "/usr/include/llvm-13/llvm/IR/Module.h" + textual header "/usr/include/llvm-13/llvm/IR/ModuleSlotTracker.h" + textual header "/usr/include/llvm-13/llvm/IR/ModuleSummaryIndex.h" + textual header "/usr/include/llvm-13/llvm/IR/ModuleSummaryIndexYAML.h" + textual header "/usr/include/llvm-13/llvm/IR/NoFolder.h" + textual header "/usr/include/llvm-13/llvm/IR/OperandTraits.h" + textual header "/usr/include/llvm-13/llvm/IR/Operator.h" + textual header "/usr/include/llvm-13/llvm/IR/OptBisect.h" + textual header "/usr/include/llvm-13/llvm/IR/PassInstrumentation.h" + textual header "/usr/include/llvm-13/llvm/IR/PassManager.h" + textual header "/usr/include/llvm-13/llvm/IR/PassManagerImpl.h" + textual header "/usr/include/llvm-13/llvm/IR/PassManagerInternal.h" + textual header "/usr/include/llvm-13/llvm/IR/PassTimingInfo.h" + textual header "/usr/include/llvm-13/llvm/IR/PatternMatch.h" + textual header "/usr/include/llvm-13/llvm/IR/PredIteratorCache.h" + textual header "/usr/include/llvm-13/llvm/IR/PrintPasses.h" + textual header "/usr/include/llvm-13/llvm/IR/ProfileSummary.h" + textual header "/usr/include/llvm-13/llvm/IR/PseudoProbe.h" + textual header "/usr/include/llvm-13/llvm/IR/ReplaceConstant.h" + textual header "/usr/include/llvm-13/llvm/IR/RuntimeLibcalls.def" + textual header "/usr/include/llvm-13/llvm/IR/SafepointIRVerifier.h" + textual header "/usr/include/llvm-13/llvm/IR/Statepoint.h" + textual header "/usr/include/llvm-13/llvm/IR/StructuralHash.h" + textual header "/usr/include/llvm-13/llvm/IR/SymbolTableListTraits.h" + textual header "/usr/include/llvm-13/llvm/IR/TrackingMDRef.h" + textual header "/usr/include/llvm-13/llvm/IR/Type.h" + textual header "/usr/include/llvm-13/llvm/IR/TypeFinder.h" + textual header "/usr/include/llvm-13/llvm/IR/Use.h" + textual header "/usr/include/llvm-13/llvm/IR/UseListOrder.h" + textual header "/usr/include/llvm-13/llvm/IR/User.h" + textual header "/usr/include/llvm-13/llvm/IR/VPIntrinsics.def" + textual header "/usr/include/llvm-13/llvm/IR/Value.def" + textual header "/usr/include/llvm-13/llvm/IR/Value.h" + textual header "/usr/include/llvm-13/llvm/IR/ValueHandle.h" + textual header "/usr/include/llvm-13/llvm/IR/ValueMap.h" + textual header "/usr/include/llvm-13/llvm/IR/ValueSymbolTable.h" + textual header "/usr/include/llvm-13/llvm/IR/Verifier.h" + textual header "/usr/include/llvm-13/llvm/IRReader/IRReader.h" + textual header "/usr/include/llvm-13/llvm/InitializePasses.h" + textual header "/usr/include/llvm-13/llvm/InterfaceStub/ELFObjHandler.h" + textual header "/usr/include/llvm-13/llvm/InterfaceStub/IFSHandler.h" + textual header "/usr/include/llvm-13/llvm/InterfaceStub/IFSStub.h" + textual header "/usr/include/llvm-13/llvm/LTO/Caching.h" + textual header "/usr/include/llvm-13/llvm/LTO/Config.h" + textual header "/usr/include/llvm-13/llvm/LTO/LTO.h" + textual header "/usr/include/llvm-13/llvm/LTO/LTOBackend.h" + textual header "/usr/include/llvm-13/llvm/LTO/SummaryBasedOptimizations.h" + textual header "/usr/include/llvm-13/llvm/LTO/legacy/LTOCodeGenerator.h" + textual header "/usr/include/llvm-13/llvm/LTO/legacy/LTOModule.h" + textual header "/usr/include/llvm-13/llvm/LTO/legacy/ThinLTOCodeGenerator.h" + textual header "/usr/include/llvm-13/llvm/LTO/legacy/UpdateCompilerUsed.h" + textual header "/usr/include/llvm-13/llvm/LineEditor/LineEditor.h" + textual header "/usr/include/llvm-13/llvm/LinkAllIR.h" + textual header "/usr/include/llvm-13/llvm/LinkAllPasses.h" + textual header "/usr/include/llvm-13/llvm/Linker/IRMover.h" + textual header "/usr/include/llvm-13/llvm/Linker/Linker.h" + textual header "/usr/include/llvm-13/llvm/MC/ConstantPools.h" + textual header "/usr/include/llvm-13/llvm/MC/LaneBitmask.h" + textual header "/usr/include/llvm-13/llvm/MC/MCAsmBackend.h" + textual header "/usr/include/llvm-13/llvm/MC/MCAsmInfo.h" + textual header "/usr/include/llvm-13/llvm/MC/MCAsmInfoCOFF.h" + textual header "/usr/include/llvm-13/llvm/MC/MCAsmInfoDarwin.h" + textual header "/usr/include/llvm-13/llvm/MC/MCAsmInfoELF.h" + textual header "/usr/include/llvm-13/llvm/MC/MCAsmInfoWasm.h" + textual header "/usr/include/llvm-13/llvm/MC/MCAsmInfoXCOFF.h" + textual header "/usr/include/llvm-13/llvm/MC/MCAsmLayout.h" + textual header "/usr/include/llvm-13/llvm/MC/MCAsmMacro.h" + textual header "/usr/include/llvm-13/llvm/MC/MCAssembler.h" + textual header "/usr/include/llvm-13/llvm/MC/MCCodeEmitter.h" + textual header "/usr/include/llvm-13/llvm/MC/MCCodeView.h" + textual header "/usr/include/llvm-13/llvm/MC/MCContext.h" + textual header "/usr/include/llvm-13/llvm/MC/MCDirectives.h" + textual header "/usr/include/llvm-13/llvm/MC/MCDisassembler/MCDisassembler.h" + textual header "/usr/include/llvm-13/llvm/MC/MCDisassembler/MCExternalSymbolizer.h" + textual header "/usr/include/llvm-13/llvm/MC/MCDisassembler/MCRelocationInfo.h" + textual header "/usr/include/llvm-13/llvm/MC/MCDisassembler/MCSymbolizer.h" + textual header "/usr/include/llvm-13/llvm/MC/MCDwarf.h" + textual header "/usr/include/llvm-13/llvm/MC/MCELFObjectWriter.h" + textual header "/usr/include/llvm-13/llvm/MC/MCELFStreamer.h" + textual header "/usr/include/llvm-13/llvm/MC/MCExpr.h" + textual header "/usr/include/llvm-13/llvm/MC/MCFixedLenDisassembler.h" + textual header "/usr/include/llvm-13/llvm/MC/MCFixup.h" + textual header "/usr/include/llvm-13/llvm/MC/MCFixupKindInfo.h" + textual header "/usr/include/llvm-13/llvm/MC/MCFragment.h" + textual header "/usr/include/llvm-13/llvm/MC/MCInst.h" + textual header "/usr/include/llvm-13/llvm/MC/MCInstBuilder.h" + textual header "/usr/include/llvm-13/llvm/MC/MCInstPrinter.h" + textual header "/usr/include/llvm-13/llvm/MC/MCInstrAnalysis.h" + textual header "/usr/include/llvm-13/llvm/MC/MCInstrDesc.h" + textual header "/usr/include/llvm-13/llvm/MC/MCInstrInfo.h" + textual header "/usr/include/llvm-13/llvm/MC/MCInstrItineraries.h" + textual header "/usr/include/llvm-13/llvm/MC/MCLabel.h" + textual header "/usr/include/llvm-13/llvm/MC/MCLinkerOptimizationHint.h" + textual header "/usr/include/llvm-13/llvm/MC/MCMachObjectWriter.h" + textual header "/usr/include/llvm-13/llvm/MC/MCObjectFileInfo.h" + textual header "/usr/include/llvm-13/llvm/MC/MCObjectStreamer.h" + textual header "/usr/include/llvm-13/llvm/MC/MCObjectWriter.h" + textual header "/usr/include/llvm-13/llvm/MC/MCParser/AsmCond.h" + textual header "/usr/include/llvm-13/llvm/MC/MCParser/AsmLexer.h" + textual header "/usr/include/llvm-13/llvm/MC/MCParser/MCAsmLexer.h" + textual header "/usr/include/llvm-13/llvm/MC/MCParser/MCAsmParser.h" + textual header "/usr/include/llvm-13/llvm/MC/MCParser/MCAsmParserExtension.h" + textual header "/usr/include/llvm-13/llvm/MC/MCParser/MCAsmParserUtils.h" + textual header "/usr/include/llvm-13/llvm/MC/MCParser/MCParsedAsmOperand.h" + textual header "/usr/include/llvm-13/llvm/MC/MCParser/MCTargetAsmParser.h" + textual header "/usr/include/llvm-13/llvm/MC/MCPseudoProbe.h" + textual header "/usr/include/llvm-13/llvm/MC/MCRegister.h" + textual header "/usr/include/llvm-13/llvm/MC/MCRegisterInfo.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSchedule.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSection.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSectionCOFF.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSectionELF.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSectionGOFF.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSectionMachO.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSectionWasm.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSectionXCOFF.h" + textual header "/usr/include/llvm-13/llvm/MC/MCStreamer.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSubtargetInfo.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSymbol.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSymbolCOFF.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSymbolELF.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSymbolGOFF.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSymbolMachO.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSymbolWasm.h" + textual header "/usr/include/llvm-13/llvm/MC/MCSymbolXCOFF.h" + textual header "/usr/include/llvm-13/llvm/MC/MCTargetOptions.h" + textual header "/usr/include/llvm-13/llvm/MC/MCTargetOptionsCommandFlags.h" + textual header "/usr/include/llvm-13/llvm/MC/MCValue.h" + textual header "/usr/include/llvm-13/llvm/MC/MCWasmObjectWriter.h" + textual header "/usr/include/llvm-13/llvm/MC/MCWasmStreamer.h" + textual header "/usr/include/llvm-13/llvm/MC/MCWin64EH.h" + textual header "/usr/include/llvm-13/llvm/MC/MCWinCOFFObjectWriter.h" + textual header "/usr/include/llvm-13/llvm/MC/MCWinCOFFStreamer.h" + textual header "/usr/include/llvm-13/llvm/MC/MCWinEH.h" + textual header "/usr/include/llvm-13/llvm/MC/MCXCOFFObjectWriter.h" + textual header "/usr/include/llvm-13/llvm/MC/MCXCOFFStreamer.h" + textual header "/usr/include/llvm-13/llvm/MC/MachineLocation.h" + textual header "/usr/include/llvm-13/llvm/MC/SectionKind.h" + textual header "/usr/include/llvm-13/llvm/MC/StringTableBuilder.h" + textual header "/usr/include/llvm-13/llvm/MC/SubtargetFeature.h" + textual header "/usr/include/llvm-13/llvm/MCA/CodeEmitter.h" + textual header "/usr/include/llvm-13/llvm/MCA/Context.h" + textual header "/usr/include/llvm-13/llvm/MCA/CustomBehaviour.h" + textual header "/usr/include/llvm-13/llvm/MCA/HWEventListener.h" + textual header "/usr/include/llvm-13/llvm/MCA/HardwareUnits/HardwareUnit.h" + textual header "/usr/include/llvm-13/llvm/MCA/HardwareUnits/LSUnit.h" + textual header "/usr/include/llvm-13/llvm/MCA/HardwareUnits/RegisterFile.h" + textual header "/usr/include/llvm-13/llvm/MCA/HardwareUnits/ResourceManager.h" + textual header "/usr/include/llvm-13/llvm/MCA/HardwareUnits/RetireControlUnit.h" + textual header "/usr/include/llvm-13/llvm/MCA/HardwareUnits/Scheduler.h" + textual header "/usr/include/llvm-13/llvm/MCA/InstrBuilder.h" + textual header "/usr/include/llvm-13/llvm/MCA/Instruction.h" + textual header "/usr/include/llvm-13/llvm/MCA/Pipeline.h" + textual header "/usr/include/llvm-13/llvm/MCA/SourceMgr.h" + textual header "/usr/include/llvm-13/llvm/MCA/Stages/DispatchStage.h" + textual header "/usr/include/llvm-13/llvm/MCA/Stages/EntryStage.h" + textual header "/usr/include/llvm-13/llvm/MCA/Stages/ExecuteStage.h" + textual header "/usr/include/llvm-13/llvm/MCA/Stages/InOrderIssueStage.h" + textual header "/usr/include/llvm-13/llvm/MCA/Stages/InstructionTables.h" + textual header "/usr/include/llvm-13/llvm/MCA/Stages/MicroOpQueueStage.h" + textual header "/usr/include/llvm-13/llvm/MCA/Stages/RetireStage.h" + textual header "/usr/include/llvm-13/llvm/MCA/Stages/Stage.h" + textual header "/usr/include/llvm-13/llvm/MCA/Support.h" + textual header "/usr/include/llvm-13/llvm/Object/Archive.h" + textual header "/usr/include/llvm-13/llvm/Object/ArchiveWriter.h" + textual header "/usr/include/llvm-13/llvm/Object/Binary.h" + textual header "/usr/include/llvm-13/llvm/Object/COFF.h" + textual header "/usr/include/llvm-13/llvm/Object/COFFImportFile.h" + textual header "/usr/include/llvm-13/llvm/Object/COFFModuleDefinition.h" + textual header "/usr/include/llvm-13/llvm/Object/CVDebugRecord.h" + textual header "/usr/include/llvm-13/llvm/Object/Decompressor.h" + textual header "/usr/include/llvm-13/llvm/Object/ELF.h" + textual header "/usr/include/llvm-13/llvm/Object/ELFObjectFile.h" + textual header "/usr/include/llvm-13/llvm/Object/ELFTypes.h" + textual header "/usr/include/llvm-13/llvm/Object/Error.h" + textual header "/usr/include/llvm-13/llvm/Object/FaultMapParser.h" + textual header "/usr/include/llvm-13/llvm/Object/IRObjectFile.h" + textual header "/usr/include/llvm-13/llvm/Object/IRSymtab.h" + textual header "/usr/include/llvm-13/llvm/Object/MachO.h" + textual header "/usr/include/llvm-13/llvm/Object/MachOUniversal.h" + textual header "/usr/include/llvm-13/llvm/Object/MachOUniversalWriter.h" + textual header "/usr/include/llvm-13/llvm/Object/Minidump.h" + textual header "/usr/include/llvm-13/llvm/Object/ModuleSymbolTable.h" + textual header "/usr/include/llvm-13/llvm/Object/ObjectFile.h" + textual header "/usr/include/llvm-13/llvm/Object/RelocationResolver.h" + textual header "/usr/include/llvm-13/llvm/Object/StackMapParser.h" + textual header "/usr/include/llvm-13/llvm/Object/SymbolSize.h" + textual header "/usr/include/llvm-13/llvm/Object/SymbolicFile.h" + textual header "/usr/include/llvm-13/llvm/Object/TapiFile.h" + textual header "/usr/include/llvm-13/llvm/Object/TapiUniversal.h" + textual header "/usr/include/llvm-13/llvm/Object/Wasm.h" + textual header "/usr/include/llvm-13/llvm/Object/WindowsMachineFlag.h" + textual header "/usr/include/llvm-13/llvm/Object/WindowsResource.h" + textual header "/usr/include/llvm-13/llvm/Object/XCOFFObjectFile.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/ArchiveYAML.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/COFFYAML.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/CodeViewYAMLDebugSections.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/CodeViewYAMLSymbols.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/CodeViewYAMLTypes.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/DWARFEmitter.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/DWARFYAML.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/ELFYAML.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/MachOYAML.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/MinidumpYAML.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/ObjectYAML.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/WasmYAML.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/XCOFFYAML.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/YAML.h" + textual header "/usr/include/llvm-13/llvm/ObjectYAML/yaml2obj.h" + textual header "/usr/include/llvm-13/llvm/Option/Arg.h" + textual header "/usr/include/llvm-13/llvm/Option/ArgList.h" + textual header "/usr/include/llvm-13/llvm/Option/OptParser.td" + textual header "/usr/include/llvm-13/llvm/Option/OptSpecifier.h" + textual header "/usr/include/llvm-13/llvm/Option/OptTable.h" + textual header "/usr/include/llvm-13/llvm/Option/Option.h" + textual header "/usr/include/llvm-13/llvm/Pass.h" + textual header "/usr/include/llvm-13/llvm/PassAnalysisSupport.h" + textual header "/usr/include/llvm-13/llvm/PassInfo.h" + textual header "/usr/include/llvm-13/llvm/PassRegistry.h" + textual header "/usr/include/llvm-13/llvm/PassSupport.h" + textual header "/usr/include/llvm-13/llvm/Passes/PassBuilder.h" + textual header "/usr/include/llvm-13/llvm/Passes/PassPlugin.h" + textual header "/usr/include/llvm-13/llvm/Passes/StandardInstrumentations.h" + textual header "/usr/include/llvm-13/llvm/ProfileData/Coverage/CoverageMapping.h" + textual header "/usr/include/llvm-13/llvm/ProfileData/Coverage/CoverageMappingReader.h" + textual header "/usr/include/llvm-13/llvm/ProfileData/Coverage/CoverageMappingWriter.h" + textual header "/usr/include/llvm-13/llvm/ProfileData/GCOV.h" + textual header "/usr/include/llvm-13/llvm/ProfileData/InstrProf.h" + textual header "/usr/include/llvm-13/llvm/ProfileData/InstrProfData.inc" + textual header "/usr/include/llvm-13/llvm/ProfileData/InstrProfReader.h" + textual header "/usr/include/llvm-13/llvm/ProfileData/InstrProfWriter.h" + textual header "/usr/include/llvm-13/llvm/ProfileData/ProfileCommon.h" + textual header "/usr/include/llvm-13/llvm/ProfileData/SampleProf.h" + textual header "/usr/include/llvm-13/llvm/ProfileData/SampleProfReader.h" + textual header "/usr/include/llvm-13/llvm/ProfileData/SampleProfWriter.h" + textual header "/usr/include/llvm-13/llvm/Remarks/BitstreamRemarkContainer.h" + textual header "/usr/include/llvm-13/llvm/Remarks/BitstreamRemarkParser.h" + textual header "/usr/include/llvm-13/llvm/Remarks/BitstreamRemarkSerializer.h" + textual header "/usr/include/llvm-13/llvm/Remarks/HotnessThresholdParser.h" + textual header "/usr/include/llvm-13/llvm/Remarks/Remark.h" + textual header "/usr/include/llvm-13/llvm/Remarks/RemarkFormat.h" + textual header "/usr/include/llvm-13/llvm/Remarks/RemarkLinker.h" + textual header "/usr/include/llvm-13/llvm/Remarks/RemarkParser.h" + textual header "/usr/include/llvm-13/llvm/Remarks/RemarkSerializer.h" + textual header "/usr/include/llvm-13/llvm/Remarks/RemarkStreamer.h" + textual header "/usr/include/llvm-13/llvm/Remarks/RemarkStringTable.h" + textual header "/usr/include/llvm-13/llvm/Remarks/YAMLRemarkSerializer.h" + textual header "/usr/include/llvm-13/llvm/Support/AArch64TargetParser.def" + textual header "/usr/include/llvm-13/llvm/Support/AArch64TargetParser.h" + textual header "/usr/include/llvm-13/llvm/Support/AMDGPUMetadata.h" + textual header "/usr/include/llvm-13/llvm/Support/AMDHSAKernelDescriptor.h" + textual header "/usr/include/llvm-13/llvm/Support/ARMAttributeParser.h" + textual header "/usr/include/llvm-13/llvm/Support/ARMBuildAttributes.h" + textual header "/usr/include/llvm-13/llvm/Support/ARMEHABI.h" + textual header "/usr/include/llvm-13/llvm/Support/ARMTargetParser.def" + textual header "/usr/include/llvm-13/llvm/Support/ARMTargetParser.h" + textual header "/usr/include/llvm-13/llvm/Support/ARMWinEH.h" + textual header "/usr/include/llvm-13/llvm/Support/AlignOf.h" + textual header "/usr/include/llvm-13/llvm/Support/Alignment.h" + textual header "/usr/include/llvm-13/llvm/Support/Allocator.h" + textual header "/usr/include/llvm-13/llvm/Support/AllocatorBase.h" + textual header "/usr/include/llvm-13/llvm/Support/ArrayRecycler.h" + textual header "/usr/include/llvm-13/llvm/Support/Atomic.h" + textual header "/usr/include/llvm-13/llvm/Support/AtomicOrdering.h" + textual header "/usr/include/llvm-13/llvm/Support/AutoConvert.h" + textual header "/usr/include/llvm-13/llvm/Support/Automaton.h" + textual header "/usr/include/llvm-13/llvm/Support/BCD.h" + textual header "/usr/include/llvm-13/llvm/Support/Base64.h" + textual header "/usr/include/llvm-13/llvm/Support/BinaryByteStream.h" + textual header "/usr/include/llvm-13/llvm/Support/BinaryItemStream.h" + textual header "/usr/include/llvm-13/llvm/Support/BinaryStream.h" + textual header "/usr/include/llvm-13/llvm/Support/BinaryStreamArray.h" + textual header "/usr/include/llvm-13/llvm/Support/BinaryStreamError.h" + textual header "/usr/include/llvm-13/llvm/Support/BinaryStreamReader.h" + textual header "/usr/include/llvm-13/llvm/Support/BinaryStreamRef.h" + textual header "/usr/include/llvm-13/llvm/Support/BinaryStreamWriter.h" + textual header "/usr/include/llvm-13/llvm/Support/BlockFrequency.h" + textual header "/usr/include/llvm-13/llvm/Support/BranchProbability.h" + textual header "/usr/include/llvm-13/llvm/Support/BuryPointer.h" + textual header "/usr/include/llvm-13/llvm/Support/CBindingWrapping.h" + textual header "/usr/include/llvm-13/llvm/Support/CFGDiff.h" + textual header "/usr/include/llvm-13/llvm/Support/CFGUpdate.h" + textual header "/usr/include/llvm-13/llvm/Support/COM.h" + textual header "/usr/include/llvm-13/llvm/Support/CRC.h" + textual header "/usr/include/llvm-13/llvm/Support/CachePruning.h" + textual header "/usr/include/llvm-13/llvm/Support/Capacity.h" + textual header "/usr/include/llvm-13/llvm/Support/Casting.h" + textual header "/usr/include/llvm-13/llvm/Support/CheckedArithmetic.h" + textual header "/usr/include/llvm-13/llvm/Support/Chrono.h" + textual header "/usr/include/llvm-13/llvm/Support/CodeGen.h" + textual header "/usr/include/llvm-13/llvm/Support/CodeGenCoverage.h" + textual header "/usr/include/llvm-13/llvm/Support/CommandLine.h" + textual header "/usr/include/llvm-13/llvm/Support/Compiler.h" + textual header "/usr/include/llvm-13/llvm/Support/Compression.h" + textual header "/usr/include/llvm-13/llvm/Support/ConvertUTF.h" + textual header "/usr/include/llvm-13/llvm/Support/CrashRecoveryContext.h" + textual header "/usr/include/llvm-13/llvm/Support/DJB.h" + textual header "/usr/include/llvm-13/llvm/Support/DOTGraphTraits.h" + textual header "/usr/include/llvm-13/llvm/Support/DataExtractor.h" + textual header "/usr/include/llvm-13/llvm/Support/DataTypes.h" + textual header "/usr/include/llvm-13/llvm/Support/Debug.h" + textual header "/usr/include/llvm-13/llvm/Support/DebugCounter.h" + textual header "/usr/include/llvm-13/llvm/Support/Discriminator.h" + textual header "/usr/include/llvm-13/llvm/Support/DynamicLibrary.h" + textual header "/usr/include/llvm-13/llvm/Support/ELFAttributeParser.h" + textual header "/usr/include/llvm-13/llvm/Support/ELFAttributes.h" + textual header "/usr/include/llvm-13/llvm/Support/Endian.h" + textual header "/usr/include/llvm-13/llvm/Support/EndianStream.h" + textual header "/usr/include/llvm-13/llvm/Support/Errc.h" + textual header "/usr/include/llvm-13/llvm/Support/Errno.h" + textual header "/usr/include/llvm-13/llvm/Support/Error.h" + textual header "/usr/include/llvm-13/llvm/Support/ErrorHandling.h" + textual header "/usr/include/llvm-13/llvm/Support/ErrorOr.h" + textual header "/usr/include/llvm-13/llvm/Support/ExitCodes.h" + textual header "/usr/include/llvm-13/llvm/Support/ExtensibleRTTI.h" + textual header "/usr/include/llvm-13/llvm/Support/Extension.def" + textual header "/usr/include/llvm-13/llvm/Support/FileCollector.h" + textual header "/usr/include/llvm-13/llvm/Support/FileOutputBuffer.h" + textual header "/usr/include/llvm-13/llvm/Support/FileSystem.h" + textual header "/usr/include/llvm-13/llvm/Support/FileSystem/UniqueID.h" + textual header "/usr/include/llvm-13/llvm/Support/FileUtilities.h" + textual header "/usr/include/llvm-13/llvm/Support/Format.h" + textual header "/usr/include/llvm-13/llvm/Support/FormatAdapters.h" + textual header "/usr/include/llvm-13/llvm/Support/FormatCommon.h" + textual header "/usr/include/llvm-13/llvm/Support/FormatProviders.h" + textual header "/usr/include/llvm-13/llvm/Support/FormatVariadic.h" + textual header "/usr/include/llvm-13/llvm/Support/FormatVariadicDetails.h" + textual header "/usr/include/llvm-13/llvm/Support/FormattedStream.h" + textual header "/usr/include/llvm-13/llvm/Support/GenericDomTree.h" + textual header "/usr/include/llvm-13/llvm/Support/GenericDomTreeConstruction.h" + textual header "/usr/include/llvm-13/llvm/Support/GenericIteratedDominanceFrontier.h" + textual header "/usr/include/llvm-13/llvm/Support/GlobPattern.h" + textual header "/usr/include/llvm-13/llvm/Support/GraphWriter.h" + textual header "/usr/include/llvm-13/llvm/Support/Host.h" + textual header "/usr/include/llvm-13/llvm/Support/InitLLVM.h" + textual header "/usr/include/llvm-13/llvm/Support/InstructionCost.h" + textual header "/usr/include/llvm-13/llvm/Support/ItaniumManglingCanonicalizer.h" + textual header "/usr/include/llvm-13/llvm/Support/JSON.h" + textual header "/usr/include/llvm-13/llvm/Support/KnownBits.h" + textual header "/usr/include/llvm-13/llvm/Support/LEB128.h" + textual header "/usr/include/llvm-13/llvm/Support/LineIterator.h" + textual header "/usr/include/llvm-13/llvm/Support/Locale.h" + textual header "/usr/include/llvm-13/llvm/Support/LockFileManager.h" + textual header "/usr/include/llvm-13/llvm/Support/LowLevelTypeImpl.h" + textual header "/usr/include/llvm-13/llvm/Support/MD5.h" + textual header "/usr/include/llvm-13/llvm/Support/MSVCErrorWorkarounds.h" + textual header "/usr/include/llvm-13/llvm/Support/MachineValueType.h" + textual header "/usr/include/llvm-13/llvm/Support/ManagedStatic.h" + textual header "/usr/include/llvm-13/llvm/Support/MathExtras.h" + textual header "/usr/include/llvm-13/llvm/Support/MemAlloc.h" + textual header "/usr/include/llvm-13/llvm/Support/Memory.h" + textual header "/usr/include/llvm-13/llvm/Support/MemoryBuffer.h" + textual header "/usr/include/llvm-13/llvm/Support/MemoryBufferRef.h" + textual header "/usr/include/llvm-13/llvm/Support/MipsABIFlags.h" + textual header "/usr/include/llvm-13/llvm/Support/Mutex.h" + textual header "/usr/include/llvm-13/llvm/Support/NativeFormatting.h" + textual header "/usr/include/llvm-13/llvm/Support/OnDiskHashTable.h" + textual header "/usr/include/llvm-13/llvm/Support/OptimizedStructLayout.h" + textual header "/usr/include/llvm-13/llvm/Support/Parallel.h" + textual header "/usr/include/llvm-13/llvm/Support/Path.h" + textual header "/usr/include/llvm-13/llvm/Support/PluginLoader.h" + textual header "/usr/include/llvm-13/llvm/Support/PointerLikeTypeTraits.h" + textual header "/usr/include/llvm-13/llvm/Support/PrettyStackTrace.h" + textual header "/usr/include/llvm-13/llvm/Support/Printable.h" + textual header "/usr/include/llvm-13/llvm/Support/Process.h" + textual header "/usr/include/llvm-13/llvm/Support/Program.h" + textual header "/usr/include/llvm-13/llvm/Support/RISCVAttributeParser.h" + textual header "/usr/include/llvm-13/llvm/Support/RISCVAttributes.h" + textual header "/usr/include/llvm-13/llvm/Support/RISCVTargetParser.def" + textual header "/usr/include/llvm-13/llvm/Support/RWMutex.h" + textual header "/usr/include/llvm-13/llvm/Support/RandomNumberGenerator.h" + textual header "/usr/include/llvm-13/llvm/Support/Recycler.h" + textual header "/usr/include/llvm-13/llvm/Support/RecyclingAllocator.h" + textual header "/usr/include/llvm-13/llvm/Support/Regex.h" + textual header "/usr/include/llvm-13/llvm/Support/Registry.h" + textual header "/usr/include/llvm-13/llvm/Support/ReverseIteration.h" + textual header "/usr/include/llvm-13/llvm/Support/SHA1.h" + textual header "/usr/include/llvm-13/llvm/Support/SHA256.h" + textual header "/usr/include/llvm-13/llvm/Support/SMLoc.h" + textual header "/usr/include/llvm-13/llvm/Support/SMTAPI.h" + textual header "/usr/include/llvm-13/llvm/Support/SaveAndRestore.h" + textual header "/usr/include/llvm-13/llvm/Support/ScaledNumber.h" + textual header "/usr/include/llvm-13/llvm/Support/ScopedPrinter.h" + textual header "/usr/include/llvm-13/llvm/Support/Signals.h" + textual header "/usr/include/llvm-13/llvm/Support/Signposts.h" + textual header "/usr/include/llvm-13/llvm/Support/SmallVectorMemoryBuffer.h" + textual header "/usr/include/llvm-13/llvm/Support/Solaris/sys/regset.h" + textual header "/usr/include/llvm-13/llvm/Support/SourceMgr.h" + textual header "/usr/include/llvm-13/llvm/Support/SpecialCaseList.h" + textual header "/usr/include/llvm-13/llvm/Support/StringSaver.h" + textual header "/usr/include/llvm-13/llvm/Support/SuffixTree.h" + textual header "/usr/include/llvm-13/llvm/Support/SwapByteOrder.h" + textual header "/usr/include/llvm-13/llvm/Support/SymbolRemappingReader.h" + textual header "/usr/include/llvm-13/llvm/Support/SystemUtils.h" + textual header "/usr/include/llvm-13/llvm/Support/TarWriter.h" + textual header "/usr/include/llvm-13/llvm/Support/TargetOpcodes.def" + textual header "/usr/include/llvm-13/llvm/Support/TargetParser.h" + textual header "/usr/include/llvm-13/llvm/Support/TargetRegistry.h" + textual header "/usr/include/llvm-13/llvm/Support/TargetSelect.h" + textual header "/usr/include/llvm-13/llvm/Support/TaskQueue.h" + textual header "/usr/include/llvm-13/llvm/Support/ThreadLocal.h" + textual header "/usr/include/llvm-13/llvm/Support/ThreadPool.h" + textual header "/usr/include/llvm-13/llvm/Support/Threading.h" + textual header "/usr/include/llvm-13/llvm/Support/TimeProfiler.h" + textual header "/usr/include/llvm-13/llvm/Support/Timer.h" + textual header "/usr/include/llvm-13/llvm/Support/ToolOutputFile.h" + textual header "/usr/include/llvm-13/llvm/Support/TrailingObjects.h" + textual header "/usr/include/llvm-13/llvm/Support/TrigramIndex.h" + textual header "/usr/include/llvm-13/llvm/Support/TypeName.h" + textual header "/usr/include/llvm-13/llvm/Support/TypeSize.h" + textual header "/usr/include/llvm-13/llvm/Support/Unicode.h" + textual header "/usr/include/llvm-13/llvm/Support/UnicodeCharRanges.h" + textual header "/usr/include/llvm-13/llvm/Support/VCSRevision.h" + textual header "/usr/include/llvm-13/llvm/Support/Valgrind.h" + textual header "/usr/include/llvm-13/llvm/Support/VersionTuple.h" + textual header "/usr/include/llvm-13/llvm/Support/VirtualFileSystem.h" + textual header "/usr/include/llvm-13/llvm/Support/Watchdog.h" + textual header "/usr/include/llvm-13/llvm/Support/Win64EH.h" + textual header "/usr/include/llvm-13/llvm/Support/Windows/WindowsSupport.h" + textual header "/usr/include/llvm-13/llvm/Support/WindowsError.h" + textual header "/usr/include/llvm-13/llvm/Support/WithColor.h" + textual header "/usr/include/llvm-13/llvm/Support/X86DisassemblerDecoderCommon.h" + textual header "/usr/include/llvm-13/llvm/Support/X86TargetParser.def" + textual header "/usr/include/llvm-13/llvm/Support/X86TargetParser.h" + textual header "/usr/include/llvm-13/llvm/Support/YAMLParser.h" + textual header "/usr/include/llvm-13/llvm/Support/YAMLTraits.h" + textual header "/usr/include/llvm-13/llvm/Support/circular_raw_ostream.h" + textual header "/usr/include/llvm-13/llvm/Support/raw_os_ostream.h" + textual header "/usr/include/llvm-13/llvm/Support/raw_ostream.h" + textual header "/usr/include/llvm-13/llvm/Support/raw_sha1_ostream.h" + textual header "/usr/include/llvm-13/llvm/Support/thread.h" + textual header "/usr/include/llvm-13/llvm/Support/type_traits.h" + textual header "/usr/include/llvm-13/llvm/Support/xxhash.h" + textual header "/usr/include/llvm-13/llvm/TableGen/Automaton.td" + textual header "/usr/include/llvm-13/llvm/TableGen/DirectiveEmitter.h" + textual header "/usr/include/llvm-13/llvm/TableGen/Error.h" + textual header "/usr/include/llvm-13/llvm/TableGen/Main.h" + textual header "/usr/include/llvm-13/llvm/TableGen/Record.h" + textual header "/usr/include/llvm-13/llvm/TableGen/SearchableTable.td" + textual header "/usr/include/llvm-13/llvm/TableGen/SetTheory.h" + textual header "/usr/include/llvm-13/llvm/TableGen/StringMatcher.h" + textual header "/usr/include/llvm-13/llvm/TableGen/StringToOffsetTable.h" + textual header "/usr/include/llvm-13/llvm/TableGen/TableGenBackend.h" + textual header "/usr/include/llvm-13/llvm/Target/CGPassBuilderOption.h" + textual header "/usr/include/llvm-13/llvm/Target/CodeGenCWrappers.h" + textual header "/usr/include/llvm-13/llvm/Target/GenericOpcodes.td" + textual header "/usr/include/llvm-13/llvm/Target/GlobalISel/Combine.td" + textual header "/usr/include/llvm-13/llvm/Target/GlobalISel/RegisterBank.td" + textual header "/usr/include/llvm-13/llvm/Target/GlobalISel/SelectionDAGCompat.td" + textual header "/usr/include/llvm-13/llvm/Target/GlobalISel/Target.td" + textual header "/usr/include/llvm-13/llvm/Target/Target.td" + textual header "/usr/include/llvm-13/llvm/Target/TargetCallingConv.td" + textual header "/usr/include/llvm-13/llvm/Target/TargetInstrPredicate.td" + textual header "/usr/include/llvm-13/llvm/Target/TargetIntrinsicInfo.h" + textual header "/usr/include/llvm-13/llvm/Target/TargetItinerary.td" + textual header "/usr/include/llvm-13/llvm/Target/TargetLoweringObjectFile.h" + textual header "/usr/include/llvm-13/llvm/Target/TargetMachine.h" + textual header "/usr/include/llvm-13/llvm/Target/TargetOptions.h" + textual header "/usr/include/llvm-13/llvm/Target/TargetPfmCounters.td" + textual header "/usr/include/llvm-13/llvm/Target/TargetSchedule.td" + textual header "/usr/include/llvm-13/llvm/Target/TargetSelectionDAG.td" + textual header "/usr/include/llvm-13/llvm/Testing/Support/Annotations.h" + textual header "/usr/include/llvm-13/llvm/Testing/Support/Error.h" + textual header "/usr/include/llvm-13/llvm/Testing/Support/SupportHelpers.h" + textual header "/usr/include/llvm-13/llvm/TextAPI/Architecture.def" + textual header "/usr/include/llvm-13/llvm/TextAPI/Architecture.h" + textual header "/usr/include/llvm-13/llvm/TextAPI/ArchitectureSet.h" + textual header "/usr/include/llvm-13/llvm/TextAPI/InterfaceFile.h" + textual header "/usr/include/llvm-13/llvm/TextAPI/PackedVersion.h" + textual header "/usr/include/llvm-13/llvm/TextAPI/Platform.h" + textual header "/usr/include/llvm-13/llvm/TextAPI/Symbol.h" + textual header "/usr/include/llvm-13/llvm/TextAPI/Target.h" + textual header "/usr/include/llvm-13/llvm/TextAPI/TextAPIReader.h" + textual header "/usr/include/llvm-13/llvm/TextAPI/TextAPIWriter.h" + textual header "/usr/include/llvm-13/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h" + textual header "/usr/include/llvm-13/llvm/ToolDrivers/llvm-lib/LibDriver.h" + textual header "/usr/include/llvm-13/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h" + textual header "/usr/include/llvm-13/llvm/Transforms/CFGuard.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Coroutines.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Coroutines/CoroCleanup.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Coroutines/CoroEarly.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Coroutines/CoroElide.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Coroutines/CoroSplit.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/AlwaysInliner.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/Annotation2Metadata.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/ArgumentPromotion.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/Attributor.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/BlockExtractor.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/CalledValuePropagation.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/ConstantMerge.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/CrossDSOCFI.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/DeadArgumentElimination.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/ElimAvailExtern.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/ForceFunctionAttrs.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/FunctionAttrs.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/FunctionImport.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/GlobalDCE.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/GlobalOpt.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/GlobalSplit.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/HotColdSplitting.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/IROutliner.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/InferFunctionAttrs.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/Inliner.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/Internalize.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/LoopExtractor.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/LowerTypeTests.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/MergeFunctions.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/OpenMPOpt.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/PartialInlining.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/PassManagerBuilder.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/ProfiledCallGraph.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/SCCP.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/SampleContextTracker.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/SampleProfile.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/SampleProfileProbe.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/StripDeadPrototypes.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/StripSymbols.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/SyntheticCountsPropagation.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h" + textual header "/usr/include/llvm-13/llvm/Transforms/IPO/WholeProgramDevirt.h" + textual header "/usr/include/llvm-13/llvm/Transforms/InstCombine/InstCombine.h" + textual header "/usr/include/llvm-13/llvm/Transforms/InstCombine/InstCombineWorklist.h" + textual header "/usr/include/llvm-13/llvm/Transforms/InstCombine/InstCombiner.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/AddressSanitizer.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/AddressSanitizerCommon.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/AddressSanitizerOptions.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/BoundsChecking.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/CGProfile.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/ControlHeightReduction.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/DataFlowSanitizer.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/GCOVProfiler.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/HWAddressSanitizer.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/InstrOrderFile.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/InstrProfiling.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/MemProfiler.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/MemorySanitizer.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/PGOInstrumentation.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/PoisonChecking.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/SanitizerCoverage.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Instrumentation/ThreadSanitizer.h" + textual header "/usr/include/llvm-13/llvm/Transforms/ObjCARC.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/ADCE.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/AlignmentFromAssumptions.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/AnnotationRemarks.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/BDCE.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/CallSiteSplitting.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/ConstantHoisting.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/ConstraintElimination.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/CorrelatedValuePropagation.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/DCE.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/DFAJumpThreading.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/DeadStoreElimination.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/DivRemPairs.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/EarlyCSE.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/Float2Int.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/GVN.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/GVNExpression.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/GuardWidening.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/IVUsersPrinter.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/IndVarSimplify.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/InferAddressSpaces.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/InstSimplifyPass.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/JumpThreading.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LICM.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopBoundSplit.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopDataPrefetch.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopDeletion.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopDistribute.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopFlatten.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopFuse.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopIdiomRecognize.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopInstSimplify.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopInterchange.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopLoadElimination.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopPassManager.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopPredication.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopReroll.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopRotation.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopSimplifyCFG.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopSink.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopStrengthReduce.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopUnrollPass.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LoopVersioningLICM.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LowerAtomic.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LowerConstantIntrinsics.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LowerExpectIntrinsic.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LowerGuardIntrinsic.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LowerMatrixIntrinsics.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/LowerWidenableCondition.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/MakeGuardsExplicit.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/MemCpyOptimizer.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/MergeICmps.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/MergedLoadStoreMotion.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/NaryReassociate.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/NewGVN.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/Reassociate.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/Reg2Mem.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/RewriteStatepointsForGC.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/SCCP.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/SROA.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/ScalarizeMaskedMemIntrin.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/Scalarizer.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/SeparateConstOffsetFromGEP.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/SimpleLoopUnswitch.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/SimplifyCFG.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/Sink.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/SpeculativeExecution.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/StraightLineStrengthReduce.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/StructurizeCFG.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/TailRecursionElimination.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Scalar/WarnMissedTransforms.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/AMDGPUEmitPrintf.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/ASanStackFrameLayout.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/AddDiscriminators.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/AssumeBundleBuilder.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/BasicBlockUtils.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/BreakCriticalEdges.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/BuildLibCalls.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/BypassSlowDivision.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/CallGraphUpdater.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/CallPromotionUtils.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/CanonicalizeAliases.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/CanonicalizeFreezeInLoops.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/Cloning.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/CodeExtractor.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/CodeMoverUtils.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/CtorUtils.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/Debugify.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/EntryExitInstrumenter.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/EscapeEnumerator.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/Evaluator.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/FixIrreducible.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/FunctionComparator.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/FunctionImportUtils.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/GlobalStatus.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/GuardUtils.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/HelloWorld.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/InjectTLIMappings.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/InstructionNamer.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/IntegerDivision.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/LCSSA.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/LibCallsShrinkWrap.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/Local.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/LoopPeel.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/LoopRotationUtils.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/LoopSimplify.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/LoopUtils.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/LoopVersioning.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/LowerInvoke.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/LowerMemIntrinsics.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/LowerSwitch.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/MatrixUtils.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/Mem2Reg.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/MemoryOpRemark.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/MetaRenamer.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/ModuleUtils.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/NameAnonGlobals.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/PredicateInfo.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/PromoteMemToReg.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/RelLookupTableConverter.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SCCPSolver.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SSAUpdater.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SSAUpdaterBulk.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SSAUpdaterImpl.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SampleProfileLoaderBaseUtil.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SanitizerStats.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/ScalarEvolutionExpander.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SimplifyCFGOptions.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SimplifyIndVar.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SimplifyLibCalls.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SizeOpts.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SplitModule.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/StripGCRelocates.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/StripNonLineTableDebugInfo.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/SymbolRewriter.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/UnifyFunctionExitNodes.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/UnifyLoopExits.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/UnrollLoop.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/VNCoercion.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Utils/ValueMapper.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Vectorize.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Vectorize/LoadStoreVectorizer.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Vectorize/LoopVectorizationLegality.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Vectorize/LoopVectorize.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Vectorize/SLPVectorizer.h" + textual header "/usr/include/llvm-13/llvm/Transforms/Vectorize/VectorCombine.h" + textual header "/usr/include/llvm-13/llvm/WindowsManifest/WindowsManifestMerger.h" + textual header "/usr/include/llvm-13/llvm/WindowsResource/ResourceProcessor.h" + textual header "/usr/include/llvm-13/llvm/WindowsResource/ResourceScriptToken.h" + textual header "/usr/include/llvm-13/llvm/WindowsResource/ResourceScriptTokenList.h" + textual header "/usr/include/llvm-13/llvm/XRay/BlockIndexer.h" + textual header "/usr/include/llvm-13/llvm/XRay/BlockPrinter.h" + textual header "/usr/include/llvm-13/llvm/XRay/BlockVerifier.h" + textual header "/usr/include/llvm-13/llvm/XRay/FDRLogBuilder.h" + textual header "/usr/include/llvm-13/llvm/XRay/FDRRecordConsumer.h" + textual header "/usr/include/llvm-13/llvm/XRay/FDRRecordProducer.h" + textual header "/usr/include/llvm-13/llvm/XRay/FDRRecords.h" + textual header "/usr/include/llvm-13/llvm/XRay/FDRTraceExpander.h" + textual header "/usr/include/llvm-13/llvm/XRay/FDRTraceWriter.h" + textual header "/usr/include/llvm-13/llvm/XRay/FileHeaderReader.h" + textual header "/usr/include/llvm-13/llvm/XRay/Graph.h" + textual header "/usr/include/llvm-13/llvm/XRay/InstrumentationMap.h" + textual header "/usr/include/llvm-13/llvm/XRay/Profile.h" + textual header "/usr/include/llvm-13/llvm/XRay/RecordPrinter.h" + textual header "/usr/include/llvm-13/llvm/XRay/Trace.h" + textual header "/usr/include/llvm-13/llvm/XRay/XRayRecord.h" + textual header "/usr/include/llvm-13/llvm/XRay/YAMLXRayRecord.h" + textual header "/usr/include/llvm-c-13/llvm-c/Analysis.h" + textual header "/usr/include/llvm-c-13/llvm-c/BitReader.h" + textual header "/usr/include/llvm-c-13/llvm-c/BitWriter.h" + textual header "/usr/include/llvm-c-13/llvm-c/Comdat.h" + textual header "/usr/include/llvm-c-13/llvm-c/Core.h" + textual header "/usr/include/llvm-c-13/llvm-c/DataTypes.h" + textual header "/usr/include/llvm-c-13/llvm-c/DebugInfo.h" + textual header "/usr/include/llvm-c-13/llvm-c/Disassembler.h" + textual header "/usr/include/llvm-c-13/llvm-c/DisassemblerTypes.h" + textual header "/usr/include/llvm-c-13/llvm-c/Error.h" + textual header "/usr/include/llvm-c-13/llvm-c/ErrorHandling.h" + textual header "/usr/include/llvm-c-13/llvm-c/ExecutionEngine.h" + textual header "/usr/include/llvm-c-13/llvm-c/ExternC.h" + textual header "/usr/include/llvm-c-13/llvm-c/IRReader.h" + textual header "/usr/include/llvm-c-13/llvm-c/Initialization.h" + textual header "/usr/include/llvm-c-13/llvm-c/LLJIT.h" + textual header "/usr/include/llvm-c-13/llvm-c/Linker.h" + textual header "/usr/include/llvm-c-13/llvm-c/Object.h" + textual header "/usr/include/llvm-c-13/llvm-c/Orc.h" + textual header "/usr/include/llvm-c-13/llvm-c/OrcEE.h" + textual header "/usr/include/llvm-c-13/llvm-c/Remarks.h" + textual header "/usr/include/llvm-c-13/llvm-c/Support.h" + textual header "/usr/include/llvm-c-13/llvm-c/Target.h" + textual header "/usr/include/llvm-c-13/llvm-c/TargetMachine.h" + textual header "/usr/include/llvm-c-13/llvm-c/Transforms/AggressiveInstCombine.h" + textual header "/usr/include/llvm-c-13/llvm-c/Transforms/Coroutines.h" + textual header "/usr/include/llvm-c-13/llvm-c/Transforms/IPO.h" + textual header "/usr/include/llvm-c-13/llvm-c/Transforms/InstCombine.h" + textual header "/usr/include/llvm-c-13/llvm-c/Transforms/PassBuilder.h" + textual header "/usr/include/llvm-c-13/llvm-c/Transforms/PassManagerBuilder.h" + textual header "/usr/include/llvm-c-13/llvm-c/Transforms/Scalar.h" + textual header "/usr/include/llvm-c-13/llvm-c/Transforms/Utils.h" + textual header "/usr/include/llvm-c-13/llvm-c/Transforms/Vectorize.h" + textual header "/usr/include/llvm-c-13/llvm-c/Types.h" + textual header "/usr/include/llvm-c-13/llvm-c/lto.h" + textual header "/usr/include/locale.h" + textual header "/usr/include/malloc.h" + textual header "/usr/include/math.h" + textual header "/usr/include/mcheck.h" + textual header "/usr/include/memory.h" + textual header "/usr/include/menu.h" + textual header "/usr/include/misc/cxl.h" + textual header "/usr/include/misc/fastrpc.h" + textual header "/usr/include/misc/habanalabs.h" + textual header "/usr/include/misc/ocxl.h" + textual header "/usr/include/misc/pvpanic.h" + textual header "/usr/include/misc/uacce/hisi_qm.h" + textual header "/usr/include/misc/uacce/uacce.h" + textual header "/usr/include/misc/xilinx_sdfec.h" + textual header "/usr/include/mntent.h" + textual header "/usr/include/monetary.h" + textual header "/usr/include/mqueue.h" + textual header "/usr/include/mtd/inftl-user.h" + textual header "/usr/include/mtd/mtd-abi.h" + textual header "/usr/include/mtd/mtd-user.h" + textual header "/usr/include/mtd/nftl-user.h" + textual header "/usr/include/mtd/ubi-user.h" + textual header "/usr/include/nc_tparm.h" + textual header "/usr/include/ncurses.h" + textual header "/usr/include/ncurses_dll.h" + textual header "/usr/include/ncursesw/curses.h" + textual header "/usr/include/ncursesw/cursesapp.h" + textual header "/usr/include/ncursesw/cursesf.h" + textual header "/usr/include/ncursesw/cursesm.h" + textual header "/usr/include/ncursesw/cursesp.h" + textual header "/usr/include/ncursesw/cursesw.h" + textual header "/usr/include/ncursesw/cursslk.h" + textual header "/usr/include/ncursesw/eti.h" + textual header "/usr/include/ncursesw/etip.h" + textual header "/usr/include/ncursesw/form.h" + textual header "/usr/include/ncursesw/menu.h" + textual header "/usr/include/ncursesw/nc_tparm.h" + textual header "/usr/include/ncursesw/ncurses.h" + textual header "/usr/include/ncursesw/ncurses_dll.h" + textual header "/usr/include/ncursesw/panel.h" + textual header "/usr/include/ncursesw/term.h" + textual header "/usr/include/ncursesw/term_entry.h" + textual header "/usr/include/ncursesw/termcap.h" + textual header "/usr/include/ncursesw/tic.h" + textual header "/usr/include/ncursesw/unctrl.h" + textual header "/usr/include/net/ethernet.h" + textual header "/usr/include/net/if.h" + textual header "/usr/include/net/if_arp.h" + textual header "/usr/include/net/if_packet.h" + textual header "/usr/include/net/if_ppp.h" + textual header "/usr/include/net/if_shaper.h" + textual header "/usr/include/net/if_slip.h" + textual header "/usr/include/net/ppp-comp.h" + textual header "/usr/include/net/ppp_defs.h" + textual header "/usr/include/net/route.h" + textual header "/usr/include/netash/ash.h" + textual header "/usr/include/netatalk/at.h" + textual header "/usr/include/netax25/ax25.h" + textual header "/usr/include/netdb.h" + textual header "/usr/include/neteconet/ec.h" + textual header "/usr/include/netinet/ether.h" + textual header "/usr/include/netinet/icmp6.h" + textual header "/usr/include/netinet/if_ether.h" + textual header "/usr/include/netinet/if_fddi.h" + textual header "/usr/include/netinet/if_tr.h" + textual header "/usr/include/netinet/igmp.h" + textual header "/usr/include/netinet/in.h" + textual header "/usr/include/netinet/in_systm.h" + textual header "/usr/include/netinet/ip.h" + textual header "/usr/include/netinet/ip6.h" + textual header "/usr/include/netinet/ip_icmp.h" + textual header "/usr/include/netinet/tcp.h" + textual header "/usr/include/netinet/udp.h" + textual header "/usr/include/netipx/ipx.h" + textual header "/usr/include/netiucv/iucv.h" + textual header "/usr/include/netpacket/packet.h" + textual header "/usr/include/netrom/netrom.h" + textual header "/usr/include/netrose/rose.h" + textual header "/usr/include/nfs/nfs.h" + textual header "/usr/include/nl_types.h" + textual header "/usr/include/nss.h" + textual header "/usr/include/obstack.h" + textual header "/usr/include/panel.h" + textual header "/usr/include/paths.h" + textual header "/usr/include/poll.h" + textual header "/usr/include/printf.h" + textual header "/usr/include/proc_service.h" + textual header "/usr/include/protocols/routed.h" + textual header "/usr/include/protocols/rwhod.h" + textual header "/usr/include/protocols/talkd.h" + textual header "/usr/include/protocols/timed.h" + textual header "/usr/include/pthread.h" + textual header "/usr/include/pty.h" + textual header "/usr/include/pwd.h" + textual header "/usr/include/rdma/bnxt_re-abi.h" + textual header "/usr/include/rdma/cxgb4-abi.h" + textual header "/usr/include/rdma/efa-abi.h" + textual header "/usr/include/rdma/hfi/hfi1_ioctl.h" + textual header "/usr/include/rdma/hfi/hfi1_user.h" + textual header "/usr/include/rdma/hns-abi.h" + textual header "/usr/include/rdma/ib_user_ioctl_cmds.h" + textual header "/usr/include/rdma/ib_user_ioctl_verbs.h" + textual header "/usr/include/rdma/ib_user_mad.h" + textual header "/usr/include/rdma/ib_user_sa.h" + textual header "/usr/include/rdma/ib_user_verbs.h" + textual header "/usr/include/rdma/irdma-abi.h" + textual header "/usr/include/rdma/mlx4-abi.h" + textual header "/usr/include/rdma/mlx5-abi.h" + textual header "/usr/include/rdma/mlx5_user_ioctl_cmds.h" + textual header "/usr/include/rdma/mlx5_user_ioctl_verbs.h" + textual header "/usr/include/rdma/mthca-abi.h" + textual header "/usr/include/rdma/ocrdma-abi.h" + textual header "/usr/include/rdma/qedr-abi.h" + textual header "/usr/include/rdma/rdma_netlink.h" + textual header "/usr/include/rdma/rdma_user_cm.h" + textual header "/usr/include/rdma/rdma_user_ioctl.h" + textual header "/usr/include/rdma/rdma_user_ioctl_cmds.h" + textual header "/usr/include/rdma/rdma_user_rxe.h" + textual header "/usr/include/rdma/rvt-abi.h" + textual header "/usr/include/rdma/siw-abi.h" + textual header "/usr/include/rdma/vmw_pvrdma-abi.h" + textual header "/usr/include/re_comp.h" + textual header "/usr/include/regex.h" + textual header "/usr/include/regexp.h" + textual header "/usr/include/resolv.h" + textual header "/usr/include/rpc/netdb.h" + textual header "/usr/include/rpcsvc/bootparam_prot.h" + textual header "/usr/include/rpcsvc/bootparam_prot.x" + textual header "/usr/include/rpcsvc/key_prot.h" + textual header "/usr/include/rpcsvc/key_prot.x" + textual header "/usr/include/rpcsvc/klm_prot.h" + textual header "/usr/include/rpcsvc/klm_prot.x" + textual header "/usr/include/rpcsvc/mount.h" + textual header "/usr/include/rpcsvc/mount.x" + textual header "/usr/include/rpcsvc/nfs_prot.h" + textual header "/usr/include/rpcsvc/nfs_prot.x" + textual header "/usr/include/rpcsvc/nis.h" + textual header "/usr/include/rpcsvc/nis.x" + textual header "/usr/include/rpcsvc/nis_callback.h" + textual header "/usr/include/rpcsvc/nis_callback.x" + textual header "/usr/include/rpcsvc/nis_object.x" + textual header "/usr/include/rpcsvc/nis_tags.h" + textual header "/usr/include/rpcsvc/nislib.h" + textual header "/usr/include/rpcsvc/nlm_prot.h" + textual header "/usr/include/rpcsvc/nlm_prot.x" + textual header "/usr/include/rpcsvc/rex.h" + textual header "/usr/include/rpcsvc/rex.x" + textual header "/usr/include/rpcsvc/rquota.h" + textual header "/usr/include/rpcsvc/rquota.x" + textual header "/usr/include/rpcsvc/rstat.h" + textual header "/usr/include/rpcsvc/rstat.x" + textual header "/usr/include/rpcsvc/rusers.h" + textual header "/usr/include/rpcsvc/rusers.x" + textual header "/usr/include/rpcsvc/sm_inter.h" + textual header "/usr/include/rpcsvc/sm_inter.x" + textual header "/usr/include/rpcsvc/spray.h" + textual header "/usr/include/rpcsvc/spray.x" + textual header "/usr/include/rpcsvc/yp.h" + textual header "/usr/include/rpcsvc/yp.x" + textual header "/usr/include/rpcsvc/yp_prot.h" + textual header "/usr/include/rpcsvc/ypclnt.h" + textual header "/usr/include/rpcsvc/yppasswd.h" + textual header "/usr/include/rpcsvc/yppasswd.x" + textual header "/usr/include/rpcsvc/ypupd.h" + textual header "/usr/include/sched.h" + textual header "/usr/include/scsi/scsi.h" + textual header "/usr/include/scsi/scsi_ioctl.h" + textual header "/usr/include/scsi/sg.h" + textual header "/usr/include/search.h" + textual header "/usr/include/semaphore.h" + textual header "/usr/include/setjmp.h" + textual header "/usr/include/sgtty.h" + textual header "/usr/include/shadow.h" + textual header "/usr/include/signal.h" + textual header "/usr/include/sound/asequencer.h" + textual header "/usr/include/sound/asoc.h" + textual header "/usr/include/sound/asound.h" + textual header "/usr/include/sound/asound_fm.h" + textual header "/usr/include/sound/compress_offload.h" + textual header "/usr/include/sound/compress_params.h" + textual header "/usr/include/sound/emu10k1.h" + textual header "/usr/include/sound/firewire.h" + textual header "/usr/include/sound/hdsp.h" + textual header "/usr/include/sound/hdspm.h" + textual header "/usr/include/sound/sb16_csp.h" + textual header "/usr/include/sound/sfnt_info.h" + textual header "/usr/include/sound/skl-tplg-interface.h" + textual header "/usr/include/sound/snd_ar_tokens.h" + textual header "/usr/include/sound/snd_sst_tokens.h" + textual header "/usr/include/sound/sof/abi.h" + textual header "/usr/include/sound/sof/fw.h" + textual header "/usr/include/sound/sof/header.h" + textual header "/usr/include/sound/sof/tokens.h" + textual header "/usr/include/sound/tlv.h" + textual header "/usr/include/sound/usb_stream.h" + textual header "/usr/include/spawn.h" + textual header "/usr/include/stab.h" + textual header "/usr/include/stdc-predef.h" + textual header "/usr/include/stdint.h" + textual header "/usr/include/stdio.h" + textual header "/usr/include/stdio_ext.h" + textual header "/usr/include/stdlib.h" + textual header "/usr/include/string.h" + textual header "/usr/include/strings.h" + textual header "/usr/include/syscall.h" + textual header "/usr/include/sysexits.h" + textual header "/usr/include/syslog.h" + textual header "/usr/include/tar.h" + textual header "/usr/include/term.h" + textual header "/usr/include/term_entry.h" + textual header "/usr/include/termcap.h" + textual header "/usr/include/termio.h" + textual header "/usr/include/termios.h" + textual header "/usr/include/tgmath.h" + textual header "/usr/include/thread_db.h" + textual header "/usr/include/threads.h" + textual header "/usr/include/tic.h" + textual header "/usr/include/time.h" + textual header "/usr/include/tirpc/netconfig.h" + textual header "/usr/include/tirpc/rpc/auth.h" + textual header "/usr/include/tirpc/rpc/auth_des.h" + textual header "/usr/include/tirpc/rpc/auth_gss.h" + textual header "/usr/include/tirpc/rpc/auth_unix.h" + textual header "/usr/include/tirpc/rpc/clnt.h" + textual header "/usr/include/tirpc/rpc/clnt_soc.h" + textual header "/usr/include/tirpc/rpc/clnt_stat.h" + textual header "/usr/include/tirpc/rpc/des.h" + textual header "/usr/include/tirpc/rpc/des_crypt.h" + textual header "/usr/include/tirpc/rpc/key_prot.h" + textual header "/usr/include/tirpc/rpc/nettype.h" + textual header "/usr/include/tirpc/rpc/pmap_clnt.h" + textual header "/usr/include/tirpc/rpc/pmap_prot.h" + textual header "/usr/include/tirpc/rpc/pmap_rmt.h" + textual header "/usr/include/tirpc/rpc/raw.h" + textual header "/usr/include/tirpc/rpc/rpc.h" + textual header "/usr/include/tirpc/rpc/rpc_com.h" + textual header "/usr/include/tirpc/rpc/rpc_msg.h" + textual header "/usr/include/tirpc/rpc/rpcb_clnt.h" + textual header "/usr/include/tirpc/rpc/rpcb_prot.h" + textual header "/usr/include/tirpc/rpc/rpcb_prot.x" + textual header "/usr/include/tirpc/rpc/rpcent.h" + textual header "/usr/include/tirpc/rpc/rpcsec_gss.h" + textual header "/usr/include/tirpc/rpc/svc.h" + textual header "/usr/include/tirpc/rpc/svc_auth.h" + textual header "/usr/include/tirpc/rpc/svc_auth_gss.h" + textual header "/usr/include/tirpc/rpc/svc_dg.h" + textual header "/usr/include/tirpc/rpc/svc_mt.h" + textual header "/usr/include/tirpc/rpc/svc_soc.h" + textual header "/usr/include/tirpc/rpc/types.h" + textual header "/usr/include/tirpc/rpc/xdr.h" + textual header "/usr/include/tirpc/rpcsvc/crypt.h" + textual header "/usr/include/tirpc/rpcsvc/crypt.x" + textual header "/usr/include/ttyent.h" + textual header "/usr/include/uchar.h" + textual header "/usr/include/ucontext.h" + textual header "/usr/include/ulimit.h" + textual header "/usr/include/unctrl.h" + textual header "/usr/include/unicode/alphaindex.h" + textual header "/usr/include/unicode/appendable.h" + textual header "/usr/include/unicode/basictz.h" + textual header "/usr/include/unicode/brkiter.h" + textual header "/usr/include/unicode/bytestream.h" + textual header "/usr/include/unicode/bytestrie.h" + textual header "/usr/include/unicode/bytestriebuilder.h" + textual header "/usr/include/unicode/calendar.h" + textual header "/usr/include/unicode/caniter.h" + textual header "/usr/include/unicode/casemap.h" + textual header "/usr/include/unicode/char16ptr.h" + textual header "/usr/include/unicode/chariter.h" + textual header "/usr/include/unicode/choicfmt.h" + textual header "/usr/include/unicode/coleitr.h" + textual header "/usr/include/unicode/coll.h" + textual header "/usr/include/unicode/compactdecimalformat.h" + textual header "/usr/include/unicode/curramt.h" + textual header "/usr/include/unicode/currpinf.h" + textual header "/usr/include/unicode/currunit.h" + textual header "/usr/include/unicode/datefmt.h" + textual header "/usr/include/unicode/dbbi.h" + textual header "/usr/include/unicode/dcfmtsym.h" + textual header "/usr/include/unicode/decimfmt.h" + textual header "/usr/include/unicode/docmain.h" + textual header "/usr/include/unicode/dtfmtsym.h" + textual header "/usr/include/unicode/dtintrv.h" + textual header "/usr/include/unicode/dtitvfmt.h" + textual header "/usr/include/unicode/dtitvinf.h" + textual header "/usr/include/unicode/dtptngen.h" + textual header "/usr/include/unicode/dtrule.h" + textual header "/usr/include/unicode/edits.h" + textual header "/usr/include/unicode/enumset.h" + textual header "/usr/include/unicode/errorcode.h" + textual header "/usr/include/unicode/fieldpos.h" + textual header "/usr/include/unicode/filteredbrk.h" + textual header "/usr/include/unicode/fmtable.h" + textual header "/usr/include/unicode/format.h" + textual header "/usr/include/unicode/formattedvalue.h" + textual header "/usr/include/unicode/fpositer.h" + textual header "/usr/include/unicode/gender.h" + textual header "/usr/include/unicode/gregocal.h" + textual header "/usr/include/unicode/icudataver.h" + textual header "/usr/include/unicode/icuplug.h" + textual header "/usr/include/unicode/idna.h" + textual header "/usr/include/unicode/listformatter.h" + textual header "/usr/include/unicode/localebuilder.h" + textual header "/usr/include/unicode/localematcher.h" + textual header "/usr/include/unicode/localpointer.h" + textual header "/usr/include/unicode/locdspnm.h" + textual header "/usr/include/unicode/locid.h" + textual header "/usr/include/unicode/measfmt.h" + textual header "/usr/include/unicode/measunit.h" + textual header "/usr/include/unicode/measure.h" + textual header "/usr/include/unicode/messagepattern.h" + textual header "/usr/include/unicode/msgfmt.h" + textual header "/usr/include/unicode/normalizer2.h" + textual header "/usr/include/unicode/normlzr.h" + textual header "/usr/include/unicode/nounit.h" + textual header "/usr/include/unicode/numberformatter.h" + textual header "/usr/include/unicode/numberrangeformatter.h" + textual header "/usr/include/unicode/numfmt.h" + textual header "/usr/include/unicode/numsys.h" + textual header "/usr/include/unicode/parseerr.h" + textual header "/usr/include/unicode/parsepos.h" + textual header "/usr/include/unicode/platform.h" + textual header "/usr/include/unicode/plurfmt.h" + textual header "/usr/include/unicode/plurrule.h" + textual header "/usr/include/unicode/ptypes.h" + textual header "/usr/include/unicode/putil.h" + textual header "/usr/include/unicode/rbbi.h" + textual header "/usr/include/unicode/rbnf.h" + textual header "/usr/include/unicode/rbtz.h" + textual header "/usr/include/unicode/regex.h" + textual header "/usr/include/unicode/region.h" + textual header "/usr/include/unicode/reldatefmt.h" + textual header "/usr/include/unicode/rep.h" + textual header "/usr/include/unicode/resbund.h" + textual header "/usr/include/unicode/schriter.h" + textual header "/usr/include/unicode/scientificnumberformatter.h" + textual header "/usr/include/unicode/search.h" + textual header "/usr/include/unicode/selfmt.h" + textual header "/usr/include/unicode/simpleformatter.h" + textual header "/usr/include/unicode/simpletz.h" + textual header "/usr/include/unicode/smpdtfmt.h" + textual header "/usr/include/unicode/sortkey.h" + textual header "/usr/include/unicode/std_string.h" + textual header "/usr/include/unicode/strenum.h" + textual header "/usr/include/unicode/stringoptions.h" + textual header "/usr/include/unicode/stringpiece.h" + textual header "/usr/include/unicode/stringtriebuilder.h" + textual header "/usr/include/unicode/stsearch.h" + textual header "/usr/include/unicode/symtable.h" + textual header "/usr/include/unicode/tblcoll.h" + textual header "/usr/include/unicode/timezone.h" + textual header "/usr/include/unicode/tmunit.h" + textual header "/usr/include/unicode/tmutamt.h" + textual header "/usr/include/unicode/tmutfmt.h" + textual header "/usr/include/unicode/translit.h" + textual header "/usr/include/unicode/tzfmt.h" + textual header "/usr/include/unicode/tznames.h" + textual header "/usr/include/unicode/tzrule.h" + textual header "/usr/include/unicode/tztrans.h" + textual header "/usr/include/unicode/ubidi.h" + textual header "/usr/include/unicode/ubiditransform.h" + textual header "/usr/include/unicode/ubrk.h" + textual header "/usr/include/unicode/ucal.h" + textual header "/usr/include/unicode/ucasemap.h" + textual header "/usr/include/unicode/ucat.h" + textual header "/usr/include/unicode/uchar.h" + textual header "/usr/include/unicode/ucharstrie.h" + textual header "/usr/include/unicode/ucharstriebuilder.h" + textual header "/usr/include/unicode/uchriter.h" + textual header "/usr/include/unicode/uclean.h" + textual header "/usr/include/unicode/ucnv.h" + textual header "/usr/include/unicode/ucnv_cb.h" + textual header "/usr/include/unicode/ucnv_err.h" + textual header "/usr/include/unicode/ucnvsel.h" + textual header "/usr/include/unicode/ucol.h" + textual header "/usr/include/unicode/ucoleitr.h" + textual header "/usr/include/unicode/uconfig.h" + textual header "/usr/include/unicode/ucpmap.h" + textual header "/usr/include/unicode/ucptrie.h" + textual header "/usr/include/unicode/ucsdet.h" + textual header "/usr/include/unicode/ucurr.h" + textual header "/usr/include/unicode/udat.h" + textual header "/usr/include/unicode/udata.h" + textual header "/usr/include/unicode/udateintervalformat.h" + textual header "/usr/include/unicode/udatpg.h" + textual header "/usr/include/unicode/udisplaycontext.h" + textual header "/usr/include/unicode/uenum.h" + textual header "/usr/include/unicode/ufieldpositer.h" + textual header "/usr/include/unicode/uformattable.h" + textual header "/usr/include/unicode/uformattedvalue.h" + textual header "/usr/include/unicode/ugender.h" + textual header "/usr/include/unicode/uidna.h" + textual header "/usr/include/unicode/uiter.h" + textual header "/usr/include/unicode/uldnames.h" + textual header "/usr/include/unicode/ulistformatter.h" + textual header "/usr/include/unicode/uloc.h" + textual header "/usr/include/unicode/ulocdata.h" + textual header "/usr/include/unicode/umachine.h" + textual header "/usr/include/unicode/umisc.h" + textual header "/usr/include/unicode/umsg.h" + textual header "/usr/include/unicode/umutablecptrie.h" + textual header "/usr/include/unicode/unifilt.h" + textual header "/usr/include/unicode/unifunct.h" + textual header "/usr/include/unicode/unimatch.h" + textual header "/usr/include/unicode/unirepl.h" + textual header "/usr/include/unicode/uniset.h" + textual header "/usr/include/unicode/unistr.h" + textual header "/usr/include/unicode/unorm.h" + textual header "/usr/include/unicode/unorm2.h" + textual header "/usr/include/unicode/unum.h" + textual header "/usr/include/unicode/unumberformatter.h" + textual header "/usr/include/unicode/unumsys.h" + textual header "/usr/include/unicode/uobject.h" + textual header "/usr/include/unicode/upluralrules.h" + textual header "/usr/include/unicode/uregex.h" + textual header "/usr/include/unicode/uregion.h" + textual header "/usr/include/unicode/ureldatefmt.h" + textual header "/usr/include/unicode/urename.h" + textual header "/usr/include/unicode/urep.h" + textual header "/usr/include/unicode/ures.h" + textual header "/usr/include/unicode/uscript.h" + textual header "/usr/include/unicode/usearch.h" + textual header "/usr/include/unicode/uset.h" + textual header "/usr/include/unicode/usetiter.h" + textual header "/usr/include/unicode/ushape.h" + textual header "/usr/include/unicode/uspoof.h" + textual header "/usr/include/unicode/usprep.h" + textual header "/usr/include/unicode/ustdio.h" + textual header "/usr/include/unicode/ustream.h" + textual header "/usr/include/unicode/ustring.h" + textual header "/usr/include/unicode/ustringtrie.h" + textual header "/usr/include/unicode/utext.h" + textual header "/usr/include/unicode/utf.h" + textual header "/usr/include/unicode/utf16.h" + textual header "/usr/include/unicode/utf32.h" + textual header "/usr/include/unicode/utf8.h" + textual header "/usr/include/unicode/utf_old.h" + textual header "/usr/include/unicode/utmscale.h" + textual header "/usr/include/unicode/utrace.h" + textual header "/usr/include/unicode/utrans.h" + textual header "/usr/include/unicode/utypes.h" + textual header "/usr/include/unicode/uvernum.h" + textual header "/usr/include/unicode/uversion.h" + textual header "/usr/include/unicode/vtzone.h" + textual header "/usr/include/unistd.h" + textual header "/usr/include/utime.h" + textual header "/usr/include/utmp.h" + textual header "/usr/include/utmpx.h" + textual header "/usr/include/values.h" + textual header "/usr/include/video/edid.h" + textual header "/usr/include/video/sisfb.h" + textual header "/usr/include/video/uvesafb.h" + textual header "/usr/include/wait.h" + textual header "/usr/include/wchar.h" + textual header "/usr/include/wctype.h" + textual header "/usr/include/wordexp.h" + textual header "/usr/include/x86_64-linux-gnu/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/asm/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/asm/auxvec.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bitsperlong.h" + textual header "/usr/include/x86_64-linux-gnu/asm/boot.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bootparam.h" + textual header "/usr/include/x86_64-linux-gnu/asm/bpf_perf_event.h" + textual header "/usr/include/x86_64-linux-gnu/asm/byteorder.h" + textual header "/usr/include/x86_64-linux-gnu/asm/debugreg.h" + textual header "/usr/include/x86_64-linux-gnu/asm/e820.h" + textual header "/usr/include/x86_64-linux-gnu/asm/errno.h" + textual header "/usr/include/x86_64-linux-gnu/asm/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/hw_breakpoint.h" + textual header "/usr/include/x86_64-linux-gnu/asm/hwcap2.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ioctl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ioctls.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ipcbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ist.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm_para.h" + textual header "/usr/include/x86_64-linux-gnu/asm/kvm_perf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ldt.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mce.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mman.h" + textual header "/usr/include/x86_64-linux-gnu/asm/msgbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/msr.h" + textual header "/usr/include/x86_64-linux-gnu/asm/mtrr.h" + textual header "/usr/include/x86_64-linux-gnu/asm/param.h" + textual header "/usr/include/x86_64-linux-gnu/asm/perf_regs.h" + textual header "/usr/include/x86_64-linux-gnu/asm/poll.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_64.h" + textual header "/usr/include/x86_64-linux-gnu/asm/posix_types_x32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/prctl.h" + textual header "/usr/include/x86_64-linux-gnu/asm/processor-flags.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ptrace-abi.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ptrace.h" + textual header "/usr/include/x86_64-linux-gnu/asm/resource.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sembuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/setup.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sgx.h" + textual header "/usr/include/x86_64-linux-gnu/asm/shmbuf.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sigcontext.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sigcontext32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/siginfo.h" + textual header "/usr/include/x86_64-linux-gnu/asm/signal.h" + textual header "/usr/include/x86_64-linux-gnu/asm/socket.h" + textual header "/usr/include/x86_64-linux-gnu/asm/sockios.h" + textual header "/usr/include/x86_64-linux-gnu/asm/stat.h" + textual header "/usr/include/x86_64-linux-gnu/asm/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/asm/svm.h" + textual header "/usr/include/x86_64-linux-gnu/asm/swab.h" + textual header "/usr/include/x86_64-linux-gnu/asm/termbits.h" + textual header "/usr/include/x86_64-linux-gnu/asm/termios.h" + textual header "/usr/include/x86_64-linux-gnu/asm/types.h" + textual header "/usr/include/x86_64-linux-gnu/asm/ucontext.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_64.h" + textual header "/usr/include/x86_64-linux-gnu/asm/unistd_x32.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vm86.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vmx.h" + textual header "/usr/include/x86_64-linux-gnu/asm/vsyscall.h" + textual header "/usr/include/x86_64-linux-gnu/bits/a.out.h" + textual header "/usr/include/x86_64-linux-gnu/bits/argp-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/auxv.h" + textual header "/usr/include/x86_64-linux-gnu/bits/byteswap.h" + textual header "/usr/include/x86_64-linux-gnu/bits/cmathcalls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/confname.h" + textual header "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dirent.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dirent_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/dlfcn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/elfclass.h" + textual header "/usr/include/x86_64-linux-gnu/bits/endian.h" + textual header "/usr/include/x86_64-linux-gnu/bits/endianness.h" + textual header "/usr/include/x86_64-linux-gnu/bits/environments.h" + textual header "/usr/include/x86_64-linux-gnu/bits/epoll.h" + textual header "/usr/include/x86_64-linux-gnu/bits/err-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/errno.h" + textual header "/usr/include/x86_64-linux-gnu/bits/error-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/error.h" + textual header "/usr/include/x86_64-linux-gnu/bits/eventfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fcntl2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fenv.h" + textual header "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" + textual header "/usr/include/x86_64-linux-gnu/bits/floatn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fp-fast.h" + textual header "/usr/include/x86_64-linux-gnu/bits/fp-logb.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_core.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/getopt_posix.h" + textual header "/usr/include/x86_64-linux-gnu/bits/hwcap.h" + textual header "/usr/include/x86_64-linux-gnu/bits/in.h" + textual header "/usr/include/x86_64-linux-gnu/bits/indirect-return.h" + textual header "/usr/include/x86_64-linux-gnu/bits/initspin.h" + textual header "/usr/include/x86_64-linux-gnu/bits/inotify.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ioctl-types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ioctls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipc-perm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ipctypes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" + textual header "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" + textual header "/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/link.h" + textual header "/usr/include/x86_64-linux-gnu/bits/local_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/locale.h" + textual header "/usr/include/x86_64-linux-gnu/bits/long-double.h" + textual header "/usr/include/x86_64-linux-gnu/bits/math-vector.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mathdef.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-linux.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-map-flags-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman-shared.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mman.h" + textual header "/usr/include/x86_64-linux-gnu/bits/monetary-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mqueue.h" + textual header "/usr/include/x86_64-linux-gnu/bits/mqueue2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/msq.h" + textual header "/usr/include/x86_64-linux-gnu/bits/netdb.h" + textual header "/usr/include/x86_64-linux-gnu/bits/param.h" + textual header "/usr/include/x86_64-linux-gnu/bits/poll.h" + textual header "/usr/include/x86_64-linux-gnu/bits/poll2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/posix_opt.h" + textual header "/usr/include/x86_64-linux-gnu/bits/printf-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-extra.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-id.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs-prregset.h" + textual header "/usr/include/x86_64-linux-gnu/bits/procfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ptrace-shared.h" + textual header "/usr/include/x86_64-linux-gnu/bits/resource.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sched.h" + textual header "/usr/include/x86_64-linux-gnu/bits/select.h" + textual header "/usr/include/x86_64-linux-gnu/bits/select2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sem.h" + textual header "/usr/include/x86_64-linux-gnu/bits/semaphore.h" + textual header "/usr/include/x86_64-linux-gnu/bits/setjmp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/setjmp2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/shm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/shmlba.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigaction.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signal_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signalfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signum-arch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/signum-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigstack.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sigthread.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sockaddr.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket-constants.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/socket_type.h" + textual header "/usr/include/x86_64-linux-gnu/bits/ss_flags.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stab.def" + textual header "/usr/include/x86_64-linux-gnu/bits/stat.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statvfs.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statx-generic.h" + textual header "/usr/include/x86_64-linux-gnu/bits/statx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/stdlib.h" + textual header "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" + textual header "/usr/include/x86_64-linux-gnu/bits/strings_fortified.h" + textual header "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" + textual header "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" + textual header "/usr/include/x86_64-linux-gnu/bits/struct_stat.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syscall.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog-path.h" + textual header "/usr/include/x86_64-linux-gnu/bits/syslog.h" + textual header "/usr/include/x86_64-linux-gnu/bits/sysmacros.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-baud.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_cc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_cflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_iflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_lflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-c_oflag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-misc.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-struct.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios-tcflow.h" + textual header "/usr/include/x86_64-linux-gnu/bits/termios.h" + textual header "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/time.h" + textual header "/usr/include/x86_64-linux-gnu/bits/time64.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timerfd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timesize.h" + textual header "/usr/include/x86_64-linux-gnu/bits/timex.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/error_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/res_state.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/stack_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_msqid_ds.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_rusage.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_semid_ds.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_shmid_ds.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_statx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_timeb.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/types/wint_t.h" + textual header "/usr/include/x86_64-linux-gnu/bits/typesizes.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uio-ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/uio_lim.h" + textual header "/usr/include/x86_64-linux-gnu/bits/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/bits/unistd_ext.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utmp.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utmpx.h" + textual header "/usr/include/x86_64-linux-gnu/bits/utsname.h" + textual header "/usr/include/x86_64-linux-gnu/bits/waitflags.h" + textual header "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar-ldbl.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wchar2.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" + textual header "/usr/include/x86_64-linux-gnu/bits/wordsize.h" + textual header "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/cxxabi_tweaks.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/extc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-posix.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-single.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/stdtr1c++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/ext/opt_random.h" + textual header "/usr/include/x86_64-linux-gnu/ffi.h" + textual header "/usr/include/x86_64-linux-gnu/ffitarget.h" + textual header "/usr/include/x86_64-linux-gnu/fpu_control.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/lib-names-64.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/lib-names.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/libc-version.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" + textual header "/usr/include/x86_64-linux-gnu/gnu/stubs.h" + textual header "/usr/include/x86_64-linux-gnu/ieee754.h" + textual header "/usr/include/x86_64-linux-gnu/sys/acct.h" + textual header "/usr/include/x86_64-linux-gnu/sys/auxv.h" + textual header "/usr/include/x86_64-linux-gnu/sys/bitypes.h" + textual header "/usr/include/x86_64-linux-gnu/sys/cdefs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/debugreg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/dir.h" + textual header "/usr/include/x86_64-linux-gnu/sys/elf.h" + textual header "/usr/include/x86_64-linux-gnu/sys/epoll.h" + textual header "/usr/include/x86_64-linux-gnu/sys/errno.h" + textual header "/usr/include/x86_64-linux-gnu/sys/eventfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fanotify.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fcntl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/file.h" + textual header "/usr/include/x86_64-linux-gnu/sys/fsuid.h" + textual header "/usr/include/x86_64-linux-gnu/sys/gmon.h" + textual header "/usr/include/x86_64-linux-gnu/sys/gmon_out.h" + textual header "/usr/include/x86_64-linux-gnu/sys/inotify.h" + textual header "/usr/include/x86_64-linux-gnu/sys/io.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ioctl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ipc.h" + textual header "/usr/include/x86_64-linux-gnu/sys/kd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/klog.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mman.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mount.h" + textual header "/usr/include/x86_64-linux-gnu/sys/msg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/mtio.h" + textual header "/usr/include/x86_64-linux-gnu/sys/param.h" + textual header "/usr/include/x86_64-linux-gnu/sys/pci.h" + textual header "/usr/include/x86_64-linux-gnu/sys/perm.h" + textual header "/usr/include/x86_64-linux-gnu/sys/personality.h" + textual header "/usr/include/x86_64-linux-gnu/sys/platform/x86.h" + textual header "/usr/include/x86_64-linux-gnu/sys/poll.h" + textual header "/usr/include/x86_64-linux-gnu/sys/prctl.h" + textual header "/usr/include/x86_64-linux-gnu/sys/procfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/profil.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ptrace.h" + textual header "/usr/include/x86_64-linux-gnu/sys/queue.h" + textual header "/usr/include/x86_64-linux-gnu/sys/quota.h" + textual header "/usr/include/x86_64-linux-gnu/sys/random.h" + textual header "/usr/include/x86_64-linux-gnu/sys/raw.h" + textual header "/usr/include/x86_64-linux-gnu/sys/reboot.h" + textual header "/usr/include/x86_64-linux-gnu/sys/reg.h" + textual header "/usr/include/x86_64-linux-gnu/sys/resource.h" + textual header "/usr/include/x86_64-linux-gnu/sys/select.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sem.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sendfile.h" + textual header "/usr/include/x86_64-linux-gnu/sys/shm.h" + textual header "/usr/include/x86_64-linux-gnu/sys/signal.h" + textual header "/usr/include/x86_64-linux-gnu/sys/signalfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/single_threaded.h" + textual header "/usr/include/x86_64-linux-gnu/sys/socket.h" + textual header "/usr/include/x86_64-linux-gnu/sys/socketvar.h" + textual header "/usr/include/x86_64-linux-gnu/sys/soundcard.h" + textual header "/usr/include/x86_64-linux-gnu/sys/stat.h" + textual header "/usr/include/x86_64-linux-gnu/sys/statfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/statvfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/swap.h" + textual header "/usr/include/x86_64-linux-gnu/sys/syscall.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sysinfo.h" + textual header "/usr/include/x86_64-linux-gnu/sys/syslog.h" + textual header "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" + textual header "/usr/include/x86_64-linux-gnu/sys/termios.h" + textual header "/usr/include/x86_64-linux-gnu/sys/time.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timeb.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timerfd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/times.h" + textual header "/usr/include/x86_64-linux-gnu/sys/timex.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ttychars.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ttydefaults.h" + textual header "/usr/include/x86_64-linux-gnu/sys/types.h" + textual header "/usr/include/x86_64-linux-gnu/sys/ucontext.h" + textual header "/usr/include/x86_64-linux-gnu/sys/uio.h" + textual header "/usr/include/x86_64-linux-gnu/sys/un.h" + textual header "/usr/include/x86_64-linux-gnu/sys/unistd.h" + textual header "/usr/include/x86_64-linux-gnu/sys/user.h" + textual header "/usr/include/x86_64-linux-gnu/sys/utsname.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vfs.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vlimit.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vm86.h" + textual header "/usr/include/x86_64-linux-gnu/sys/vt.h" + textual header "/usr/include/x86_64-linux-gnu/sys/wait.h" + textual header "/usr/include/x86_64-linux-gnu/sys/xattr.h" + textual header "/usr/include/xen/evtchn.h" + textual header "/usr/include/xen/gntalloc.h" + textual header "/usr/include/xen/gntdev.h" + textual header "/usr/include/xen/privcmd.h" + textual header "/usr/include/z3++.h" + textual header "/usr/include/z3.h" + textual header "/usr/include/z3_algebraic.h" + textual header "/usr/include/z3_api.h" + textual header "/usr/include/z3_ast_containers.h" + textual header "/usr/include/z3_fixedpoint.h" + textual header "/usr/include/z3_fpa.h" + textual header "/usr/include/z3_macros.h" + textual header "/usr/include/z3_optimization.h" + textual header "/usr/include/z3_polynomial.h" + textual header "/usr/include/z3_rcf.h" + textual header "/usr/include/z3_spacer.h" + textual header "/usr/include/z3_v1.h" + textual header "/usr/include/z3_version.h" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/share/README.txt" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/share/asan_ignorelist.txt" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/share/cfi_ignorelist.txt" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/share/dfsan_abilist.txt" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/share/hwasan_ignorelist.txt" + textual header "/usr/lib/llvm-13/lib/clang/13.0.1/share/msan_ignorelist.txt" + textual header "/usr/include/c++/11/algorithm" + textual header "/usr/include/c++/11/any" + textual header "/usr/include/c++/11/array" + textual header "/usr/include/c++/11/atomic" + textual header "/usr/include/c++/11/backward/auto_ptr.h" + textual header "/usr/include/c++/11/backward/backward_warning.h" + textual header "/usr/include/c++/11/backward/binders.h" + textual header "/usr/include/c++/11/backward/hash_fun.h" + textual header "/usr/include/c++/11/backward/hash_map" + textual header "/usr/include/c++/11/backward/hash_set" + textual header "/usr/include/c++/11/backward/hashtable.h" + textual header "/usr/include/c++/11/backward/strstream" + textual header "/usr/include/c++/11/barrier" + textual header "/usr/include/c++/11/bit" + textual header "/usr/include/c++/11/bits/algorithmfwd.h" + textual header "/usr/include/c++/11/bits/align.h" + textual header "/usr/include/c++/11/bits/alloc_traits.h" + textual header "/usr/include/c++/11/bits/allocated_ptr.h" + textual header "/usr/include/c++/11/bits/allocator.h" + textual header "/usr/include/c++/11/bits/atomic_base.h" + textual header "/usr/include/c++/11/bits/atomic_futex.h" + textual header "/usr/include/c++/11/bits/atomic_lockfree_defines.h" + textual header "/usr/include/c++/11/bits/atomic_timed_wait.h" + textual header "/usr/include/c++/11/bits/atomic_wait.h" + textual header "/usr/include/c++/11/bits/basic_ios.h" + textual header "/usr/include/c++/11/bits/basic_ios.tcc" + textual header "/usr/include/c++/11/bits/basic_string.h" + textual header "/usr/include/c++/11/bits/basic_string.tcc" + textual header "/usr/include/c++/11/bits/boost_concept_check.h" + textual header "/usr/include/c++/11/bits/c++0x_warning.h" + textual header "/usr/include/c++/11/bits/char_traits.h" + textual header "/usr/include/c++/11/bits/charconv.h" + textual header "/usr/include/c++/11/bits/codecvt.h" + textual header "/usr/include/c++/11/bits/concept_check.h" + textual header "/usr/include/c++/11/bits/cpp_type_traits.h" + textual header "/usr/include/c++/11/bits/cxxabi_forced.h" + textual header "/usr/include/c++/11/bits/cxxabi_init_exception.h" + textual header "/usr/include/c++/11/bits/deque.tcc" + textual header "/usr/include/c++/11/bits/enable_special_members.h" + textual header "/usr/include/c++/11/bits/erase_if.h" + textual header "/usr/include/c++/11/bits/exception.h" + textual header "/usr/include/c++/11/bits/exception_defines.h" + textual header "/usr/include/c++/11/bits/exception_ptr.h" + textual header "/usr/include/c++/11/bits/forward_list.h" + textual header "/usr/include/c++/11/bits/forward_list.tcc" + textual header "/usr/include/c++/11/bits/fs_dir.h" + textual header "/usr/include/c++/11/bits/fs_fwd.h" + textual header "/usr/include/c++/11/bits/fs_ops.h" + textual header "/usr/include/c++/11/bits/fs_path.h" + textual header "/usr/include/c++/11/bits/fstream.tcc" + textual header "/usr/include/c++/11/bits/functexcept.h" + textual header "/usr/include/c++/11/bits/functional_hash.h" + textual header "/usr/include/c++/11/bits/gslice.h" + textual header "/usr/include/c++/11/bits/gslice_array.h" + textual header "/usr/include/c++/11/bits/hash_bytes.h" + textual header "/usr/include/c++/11/bits/hashtable.h" + textual header "/usr/include/c++/11/bits/hashtable_policy.h" + textual header "/usr/include/c++/11/bits/indirect_array.h" + textual header "/usr/include/c++/11/bits/invoke.h" + textual header "/usr/include/c++/11/bits/ios_base.h" + textual header "/usr/include/c++/11/bits/istream.tcc" + textual header "/usr/include/c++/11/bits/iterator_concepts.h" + textual header "/usr/include/c++/11/bits/list.tcc" + textual header "/usr/include/c++/11/bits/locale_classes.h" + textual header "/usr/include/c++/11/bits/locale_classes.tcc" + textual header "/usr/include/c++/11/bits/locale_conv.h" + textual header "/usr/include/c++/11/bits/locale_facets.h" + textual header "/usr/include/c++/11/bits/locale_facets.tcc" + textual header "/usr/include/c++/11/bits/locale_facets_nonio.h" + textual header "/usr/include/c++/11/bits/locale_facets_nonio.tcc" + textual header "/usr/include/c++/11/bits/localefwd.h" + textual header "/usr/include/c++/11/bits/mask_array.h" + textual header "/usr/include/c++/11/bits/max_size_type.h" + textual header "/usr/include/c++/11/bits/memoryfwd.h" + textual header "/usr/include/c++/11/bits/move.h" + textual header "/usr/include/c++/11/bits/nested_exception.h" + textual header "/usr/include/c++/11/bits/node_handle.h" + textual header "/usr/include/c++/11/bits/ostream.tcc" + textual header "/usr/include/c++/11/bits/ostream_insert.h" + textual header "/usr/include/c++/11/bits/parse_numbers.h" + textual header "/usr/include/c++/11/bits/postypes.h" + textual header "/usr/include/c++/11/bits/predefined_ops.h" + textual header "/usr/include/c++/11/bits/ptr_traits.h" + textual header "/usr/include/c++/11/bits/quoted_string.h" + textual header "/usr/include/c++/11/bits/random.h" + textual header "/usr/include/c++/11/bits/random.tcc" + textual header "/usr/include/c++/11/bits/range_access.h" + textual header "/usr/include/c++/11/bits/ranges_algo.h" + textual header "/usr/include/c++/11/bits/ranges_algobase.h" + textual header "/usr/include/c++/11/bits/ranges_base.h" + textual header "/usr/include/c++/11/bits/ranges_cmp.h" + textual header "/usr/include/c++/11/bits/ranges_uninitialized.h" + textual header "/usr/include/c++/11/bits/ranges_util.h" + textual header "/usr/include/c++/11/bits/refwrap.h" + textual header "/usr/include/c++/11/bits/regex.h" + textual header "/usr/include/c++/11/bits/regex.tcc" + textual header "/usr/include/c++/11/bits/regex_automaton.h" + textual header "/usr/include/c++/11/bits/regex_automaton.tcc" + textual header "/usr/include/c++/11/bits/regex_compiler.h" + textual header "/usr/include/c++/11/bits/regex_compiler.tcc" + textual header "/usr/include/c++/11/bits/regex_constants.h" + textual header "/usr/include/c++/11/bits/regex_error.h" + textual header "/usr/include/c++/11/bits/regex_executor.h" + textual header "/usr/include/c++/11/bits/regex_executor.tcc" + textual header "/usr/include/c++/11/bits/regex_scanner.h" + textual header "/usr/include/c++/11/bits/regex_scanner.tcc" + textual header "/usr/include/c++/11/bits/semaphore_base.h" + textual header "/usr/include/c++/11/bits/shared_ptr.h" + textual header "/usr/include/c++/11/bits/shared_ptr_atomic.h" + textual header "/usr/include/c++/11/bits/shared_ptr_base.h" + textual header "/usr/include/c++/11/bits/slice_array.h" + textual header "/usr/include/c++/11/bits/specfun.h" + textual header "/usr/include/c++/11/bits/sstream.tcc" + textual header "/usr/include/c++/11/bits/std_abs.h" + textual header "/usr/include/c++/11/bits/std_function.h" + textual header "/usr/include/c++/11/bits/std_mutex.h" + textual header "/usr/include/c++/11/bits/std_thread.h" + textual header "/usr/include/c++/11/bits/stl_algo.h" + textual header "/usr/include/c++/11/bits/stl_algobase.h" + textual header "/usr/include/c++/11/bits/stl_bvector.h" + textual header "/usr/include/c++/11/bits/stl_construct.h" + textual header "/usr/include/c++/11/bits/stl_deque.h" + textual header "/usr/include/c++/11/bits/stl_function.h" + textual header "/usr/include/c++/11/bits/stl_heap.h" + textual header "/usr/include/c++/11/bits/stl_iterator.h" + textual header "/usr/include/c++/11/bits/stl_iterator_base_funcs.h" + textual header "/usr/include/c++/11/bits/stl_iterator_base_types.h" + textual header "/usr/include/c++/11/bits/stl_list.h" + textual header "/usr/include/c++/11/bits/stl_map.h" + textual header "/usr/include/c++/11/bits/stl_multimap.h" + textual header "/usr/include/c++/11/bits/stl_multiset.h" + textual header "/usr/include/c++/11/bits/stl_numeric.h" + textual header "/usr/include/c++/11/bits/stl_pair.h" + textual header "/usr/include/c++/11/bits/stl_queue.h" + textual header "/usr/include/c++/11/bits/stl_raw_storage_iter.h" + textual header "/usr/include/c++/11/bits/stl_relops.h" + textual header "/usr/include/c++/11/bits/stl_set.h" + textual header "/usr/include/c++/11/bits/stl_stack.h" + textual header "/usr/include/c++/11/bits/stl_tempbuf.h" + textual header "/usr/include/c++/11/bits/stl_tree.h" + textual header "/usr/include/c++/11/bits/stl_uninitialized.h" + textual header "/usr/include/c++/11/bits/stl_vector.h" + textual header "/usr/include/c++/11/bits/stream_iterator.h" + textual header "/usr/include/c++/11/bits/streambuf.tcc" + textual header "/usr/include/c++/11/bits/streambuf_iterator.h" + textual header "/usr/include/c++/11/bits/string_view.tcc" + textual header "/usr/include/c++/11/bits/stringfwd.h" + textual header "/usr/include/c++/11/bits/this_thread_sleep.h" + textual header "/usr/include/c++/11/bits/uniform_int_dist.h" + textual header "/usr/include/c++/11/bits/unique_lock.h" + textual header "/usr/include/c++/11/bits/unique_ptr.h" + textual header "/usr/include/c++/11/bits/unordered_map.h" + textual header "/usr/include/c++/11/bits/unordered_set.h" + textual header "/usr/include/c++/11/bits/uses_allocator.h" + textual header "/usr/include/c++/11/bits/uses_allocator_args.h" + textual header "/usr/include/c++/11/bits/valarray_after.h" + textual header "/usr/include/c++/11/bits/valarray_array.h" + textual header "/usr/include/c++/11/bits/valarray_array.tcc" + textual header "/usr/include/c++/11/bits/valarray_before.h" + textual header "/usr/include/c++/11/bits/vector.tcc" + textual header "/usr/include/c++/11/bitset" + textual header "/usr/include/c++/11/cassert" + textual header "/usr/include/c++/11/ccomplex" + textual header "/usr/include/c++/11/cctype" + textual header "/usr/include/c++/11/cerrno" + textual header "/usr/include/c++/11/cfenv" + textual header "/usr/include/c++/11/cfloat" + textual header "/usr/include/c++/11/charconv" + textual header "/usr/include/c++/11/chrono" + textual header "/usr/include/c++/11/cinttypes" + textual header "/usr/include/c++/11/ciso646" + textual header "/usr/include/c++/11/climits" + textual header "/usr/include/c++/11/clocale" + textual header "/usr/include/c++/11/cmath" + textual header "/usr/include/c++/11/codecvt" + textual header "/usr/include/c++/11/compare" + textual header "/usr/include/c++/11/complex" + textual header "/usr/include/c++/11/complex.h" + textual header "/usr/include/c++/11/concepts" + textual header "/usr/include/c++/11/condition_variable" + textual header "/usr/include/c++/11/coroutine" + textual header "/usr/include/c++/11/csetjmp" + textual header "/usr/include/c++/11/csignal" + textual header "/usr/include/c++/11/cstdalign" + textual header "/usr/include/c++/11/cstdarg" + textual header "/usr/include/c++/11/cstdbool" + textual header "/usr/include/c++/11/cstddef" + textual header "/usr/include/c++/11/cstdint" + textual header "/usr/include/c++/11/cstdio" + textual header "/usr/include/c++/11/cstdlib" + textual header "/usr/include/c++/11/cstring" + textual header "/usr/include/c++/11/ctgmath" + textual header "/usr/include/c++/11/ctime" + textual header "/usr/include/c++/11/cuchar" + textual header "/usr/include/c++/11/cwchar" + textual header "/usr/include/c++/11/cwctype" + textual header "/usr/include/c++/11/cxxabi.h" + textual header "/usr/include/c++/11/debug/assertions.h" + textual header "/usr/include/c++/11/debug/bitset" + textual header "/usr/include/c++/11/debug/debug.h" + textual header "/usr/include/c++/11/debug/deque" + textual header "/usr/include/c++/11/debug/formatter.h" + textual header "/usr/include/c++/11/debug/forward_list" + textual header "/usr/include/c++/11/debug/functions.h" + textual header "/usr/include/c++/11/debug/helper_functions.h" + textual header "/usr/include/c++/11/debug/list" + textual header "/usr/include/c++/11/debug/macros.h" + textual header "/usr/include/c++/11/debug/map" + textual header "/usr/include/c++/11/debug/map.h" + textual header "/usr/include/c++/11/debug/multimap.h" + textual header "/usr/include/c++/11/debug/multiset.h" + textual header "/usr/include/c++/11/debug/safe_base.h" + textual header "/usr/include/c++/11/debug/safe_container.h" + textual header "/usr/include/c++/11/debug/safe_iterator.h" + textual header "/usr/include/c++/11/debug/safe_iterator.tcc" + textual header "/usr/include/c++/11/debug/safe_local_iterator.h" + textual header "/usr/include/c++/11/debug/safe_local_iterator.tcc" + textual header "/usr/include/c++/11/debug/safe_sequence.h" + textual header "/usr/include/c++/11/debug/safe_sequence.tcc" + textual header "/usr/include/c++/11/debug/safe_unordered_base.h" + textual header "/usr/include/c++/11/debug/safe_unordered_container.h" + textual header "/usr/include/c++/11/debug/safe_unordered_container.tcc" + textual header "/usr/include/c++/11/debug/set" + textual header "/usr/include/c++/11/debug/set.h" + textual header "/usr/include/c++/11/debug/stl_iterator.h" + textual header "/usr/include/c++/11/debug/string" + textual header "/usr/include/c++/11/debug/unordered_map" + textual header "/usr/include/c++/11/debug/unordered_set" + textual header "/usr/include/c++/11/debug/vector" + textual header "/usr/include/c++/11/decimal/decimal" + textual header "/usr/include/c++/11/decimal/decimal.h" + textual header "/usr/include/c++/11/deque" + textual header "/usr/include/c++/11/exception" + textual header "/usr/include/c++/11/execution" + textual header "/usr/include/c++/11/experimental/algorithm" + textual header "/usr/include/c++/11/experimental/any" + textual header "/usr/include/c++/11/experimental/array" + textual header "/usr/include/c++/11/experimental/bits/fs_dir.h" + textual header "/usr/include/c++/11/experimental/bits/fs_fwd.h" + textual header "/usr/include/c++/11/experimental/bits/fs_ops.h" + textual header "/usr/include/c++/11/experimental/bits/fs_path.h" + textual header "/usr/include/c++/11/experimental/bits/lfts_config.h" + textual header "/usr/include/c++/11/experimental/bits/net.h" + textual header "/usr/include/c++/11/experimental/bits/numeric_traits.h" + textual header "/usr/include/c++/11/experimental/bits/shared_ptr.h" + textual header "/usr/include/c++/11/experimental/bits/simd.h" + textual header "/usr/include/c++/11/experimental/bits/simd_builtin.h" + textual header "/usr/include/c++/11/experimental/bits/simd_converter.h" + textual header "/usr/include/c++/11/experimental/bits/simd_detail.h" + textual header "/usr/include/c++/11/experimental/bits/simd_fixed_size.h" + textual header "/usr/include/c++/11/experimental/bits/simd_math.h" + textual header "/usr/include/c++/11/experimental/bits/simd_neon.h" + textual header "/usr/include/c++/11/experimental/bits/simd_ppc.h" + textual header "/usr/include/c++/11/experimental/bits/simd_scalar.h" + textual header "/usr/include/c++/11/experimental/bits/simd_x86.h" + textual header "/usr/include/c++/11/experimental/bits/simd_x86_conversions.h" + textual header "/usr/include/c++/11/experimental/bits/string_view.tcc" + textual header "/usr/include/c++/11/experimental/buffer" + textual header "/usr/include/c++/11/experimental/chrono" + textual header "/usr/include/c++/11/experimental/deque" + textual header "/usr/include/c++/11/experimental/executor" + textual header "/usr/include/c++/11/experimental/filesystem" + textual header "/usr/include/c++/11/experimental/forward_list" + textual header "/usr/include/c++/11/experimental/functional" + textual header "/usr/include/c++/11/experimental/internet" + textual header "/usr/include/c++/11/experimental/io_context" + textual header "/usr/include/c++/11/experimental/iterator" + textual header "/usr/include/c++/11/experimental/list" + textual header "/usr/include/c++/11/experimental/map" + textual header "/usr/include/c++/11/experimental/memory" + textual header "/usr/include/c++/11/experimental/memory_resource" + textual header "/usr/include/c++/11/experimental/net" + textual header "/usr/include/c++/11/experimental/netfwd" + textual header "/usr/include/c++/11/experimental/numeric" + textual header "/usr/include/c++/11/experimental/optional" + textual header "/usr/include/c++/11/experimental/propagate_const" + textual header "/usr/include/c++/11/experimental/random" + textual header "/usr/include/c++/11/experimental/ratio" + textual header "/usr/include/c++/11/experimental/regex" + textual header "/usr/include/c++/11/experimental/set" + textual header "/usr/include/c++/11/experimental/simd" + textual header "/usr/include/c++/11/experimental/socket" + textual header "/usr/include/c++/11/experimental/source_location" + textual header "/usr/include/c++/11/experimental/string" + textual header "/usr/include/c++/11/experimental/string_view" + textual header "/usr/include/c++/11/experimental/system_error" + textual header "/usr/include/c++/11/experimental/timer" + textual header "/usr/include/c++/11/experimental/tuple" + textual header "/usr/include/c++/11/experimental/type_traits" + textual header "/usr/include/c++/11/experimental/unordered_map" + textual header "/usr/include/c++/11/experimental/unordered_set" + textual header "/usr/include/c++/11/experimental/utility" + textual header "/usr/include/c++/11/experimental/vector" + textual header "/usr/include/c++/11/ext/algorithm" + textual header "/usr/include/c++/11/ext/aligned_buffer.h" + textual header "/usr/include/c++/11/ext/alloc_traits.h" + textual header "/usr/include/c++/11/ext/atomicity.h" + textual header "/usr/include/c++/11/ext/bitmap_allocator.h" + textual header "/usr/include/c++/11/ext/cast.h" + textual header "/usr/include/c++/11/ext/cmath" + textual header "/usr/include/c++/11/ext/codecvt_specializations.h" + textual header "/usr/include/c++/11/ext/concurrence.h" + textual header "/usr/include/c++/11/ext/debug_allocator.h" + textual header "/usr/include/c++/11/ext/enc_filebuf.h" + textual header "/usr/include/c++/11/ext/extptr_allocator.h" + textual header "/usr/include/c++/11/ext/functional" + textual header "/usr/include/c++/11/ext/hash_map" + textual header "/usr/include/c++/11/ext/hash_set" + textual header "/usr/include/c++/11/ext/iterator" + textual header "/usr/include/c++/11/ext/malloc_allocator.h" + textual header "/usr/include/c++/11/ext/memory" + textual header "/usr/include/c++/11/ext/mt_allocator.h" + textual header "/usr/include/c++/11/ext/new_allocator.h" + textual header "/usr/include/c++/11/ext/numeric" + textual header "/usr/include/c++/11/ext/numeric_traits.h" + textual header "/usr/include/c++/11/ext/pb_ds/assoc_container.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/bin_search_tree_/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/entry_pred.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/resize_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/branch_policy/branch_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/branch_policy/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/cond_dealtor.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/container_base_dispatch.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/debug_map_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/eq_fn/eq_by_less.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/lu_map_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/ov_tree_map_/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/priority_queue_base_dispatch.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/node.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rb_tree_map_/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/node.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/splay_tree_/traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/standard_policies.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/tree_trace_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/type_utils.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/types_traits.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/unordered_iterator/iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/exception.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/hash_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/list_update_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/priority_queue.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/tag_and_trait.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/tree_policy.hpp" + textual header "/usr/include/c++/11/ext/pb_ds/trie_policy.hpp" + textual header "/usr/include/c++/11/ext/pod_char_traits.h" + textual header "/usr/include/c++/11/ext/pointer.h" + textual header "/usr/include/c++/11/ext/pool_allocator.h" + textual header "/usr/include/c++/11/ext/random" + textual header "/usr/include/c++/11/ext/random.tcc" + textual header "/usr/include/c++/11/ext/rb_tree" + textual header "/usr/include/c++/11/ext/rc_string_base.h" + textual header "/usr/include/c++/11/ext/rope" + textual header "/usr/include/c++/11/ext/ropeimpl.h" + textual header "/usr/include/c++/11/ext/slist" + textual header "/usr/include/c++/11/ext/sso_string_base.h" + textual header "/usr/include/c++/11/ext/stdio_filebuf.h" + textual header "/usr/include/c++/11/ext/stdio_sync_filebuf.h" + textual header "/usr/include/c++/11/ext/string_conversions.h" + textual header "/usr/include/c++/11/ext/throw_allocator.h" + textual header "/usr/include/c++/11/ext/type_traits.h" + textual header "/usr/include/c++/11/ext/typelist.h" + textual header "/usr/include/c++/11/ext/vstring.h" + textual header "/usr/include/c++/11/ext/vstring.tcc" + textual header "/usr/include/c++/11/ext/vstring_fwd.h" + textual header "/usr/include/c++/11/ext/vstring_util.h" + textual header "/usr/include/c++/11/fenv.h" + textual header "/usr/include/c++/11/filesystem" + textual header "/usr/include/c++/11/forward_list" + textual header "/usr/include/c++/11/fstream" + textual header "/usr/include/c++/11/functional" + textual header "/usr/include/c++/11/future" + textual header "/usr/include/c++/11/initializer_list" + textual header "/usr/include/c++/11/iomanip" + textual header "/usr/include/c++/11/ios" + textual header "/usr/include/c++/11/iosfwd" + textual header "/usr/include/c++/11/iostream" + textual header "/usr/include/c++/11/istream" + textual header "/usr/include/c++/11/iterator" + textual header "/usr/include/c++/11/latch" + textual header "/usr/include/c++/11/limits" + textual header "/usr/include/c++/11/list" + textual header "/usr/include/c++/11/locale" + textual header "/usr/include/c++/11/map" + textual header "/usr/include/c++/11/math.h" + textual header "/usr/include/c++/11/memory" + textual header "/usr/include/c++/11/memory_resource" + textual header "/usr/include/c++/11/mutex" + textual header "/usr/include/c++/11/new" + textual header "/usr/include/c++/11/numbers" + textual header "/usr/include/c++/11/numeric" + textual header "/usr/include/c++/11/optional" + textual header "/usr/include/c++/11/ostream" + textual header "/usr/include/c++/11/parallel/algo.h" + textual header "/usr/include/c++/11/parallel/algobase.h" + textual header "/usr/include/c++/11/parallel/algorithm" + textual header "/usr/include/c++/11/parallel/algorithmfwd.h" + textual header "/usr/include/c++/11/parallel/balanced_quicksort.h" + textual header "/usr/include/c++/11/parallel/base.h" + textual header "/usr/include/c++/11/parallel/basic_iterator.h" + textual header "/usr/include/c++/11/parallel/checkers.h" + textual header "/usr/include/c++/11/parallel/compatibility.h" + textual header "/usr/include/c++/11/parallel/compiletime_settings.h" + textual header "/usr/include/c++/11/parallel/equally_split.h" + textual header "/usr/include/c++/11/parallel/features.h" + textual header "/usr/include/c++/11/parallel/find.h" + textual header "/usr/include/c++/11/parallel/find_selectors.h" + textual header "/usr/include/c++/11/parallel/for_each.h" + textual header "/usr/include/c++/11/parallel/for_each_selectors.h" + textual header "/usr/include/c++/11/parallel/iterator.h" + textual header "/usr/include/c++/11/parallel/list_partition.h" + textual header "/usr/include/c++/11/parallel/losertree.h" + textual header "/usr/include/c++/11/parallel/merge.h" + textual header "/usr/include/c++/11/parallel/multiseq_selection.h" + textual header "/usr/include/c++/11/parallel/multiway_merge.h" + textual header "/usr/include/c++/11/parallel/multiway_mergesort.h" + textual header "/usr/include/c++/11/parallel/numeric" + textual header "/usr/include/c++/11/parallel/numericfwd.h" + textual header "/usr/include/c++/11/parallel/omp_loop.h" + textual header "/usr/include/c++/11/parallel/omp_loop_static.h" + textual header "/usr/include/c++/11/parallel/par_loop.h" + textual header "/usr/include/c++/11/parallel/parallel.h" + textual header "/usr/include/c++/11/parallel/partial_sum.h" + textual header "/usr/include/c++/11/parallel/partition.h" + textual header "/usr/include/c++/11/parallel/queue.h" + textual header "/usr/include/c++/11/parallel/quicksort.h" + textual header "/usr/include/c++/11/parallel/random_number.h" + textual header "/usr/include/c++/11/parallel/random_shuffle.h" + textual header "/usr/include/c++/11/parallel/search.h" + textual header "/usr/include/c++/11/parallel/set_operations.h" + textual header "/usr/include/c++/11/parallel/settings.h" + textual header "/usr/include/c++/11/parallel/sort.h" + textual header "/usr/include/c++/11/parallel/tags.h" + textual header "/usr/include/c++/11/parallel/types.h" + textual header "/usr/include/c++/11/parallel/unique_copy.h" + textual header "/usr/include/c++/11/parallel/workstealing.h" + textual header "/usr/include/c++/11/pstl/algorithm_fwd.h" + textual header "/usr/include/c++/11/pstl/algorithm_impl.h" + textual header "/usr/include/c++/11/pstl/execution_defs.h" + textual header "/usr/include/c++/11/pstl/execution_impl.h" + textual header "/usr/include/c++/11/pstl/glue_algorithm_defs.h" + textual header "/usr/include/c++/11/pstl/glue_algorithm_impl.h" + textual header "/usr/include/c++/11/pstl/glue_execution_defs.h" + textual header "/usr/include/c++/11/pstl/glue_memory_defs.h" + textual header "/usr/include/c++/11/pstl/glue_memory_impl.h" + textual header "/usr/include/c++/11/pstl/glue_numeric_defs.h" + textual header "/usr/include/c++/11/pstl/glue_numeric_impl.h" + textual header "/usr/include/c++/11/pstl/memory_impl.h" + textual header "/usr/include/c++/11/pstl/numeric_fwd.h" + textual header "/usr/include/c++/11/pstl/numeric_impl.h" + textual header "/usr/include/c++/11/pstl/parallel_backend.h" + textual header "/usr/include/c++/11/pstl/parallel_backend_serial.h" + textual header "/usr/include/c++/11/pstl/parallel_backend_tbb.h" + textual header "/usr/include/c++/11/pstl/parallel_backend_utils.h" + textual header "/usr/include/c++/11/pstl/parallel_impl.h" + textual header "/usr/include/c++/11/pstl/pstl_config.h" + textual header "/usr/include/c++/11/pstl/unseq_backend_simd.h" + textual header "/usr/include/c++/11/pstl/utils.h" + textual header "/usr/include/c++/11/queue" + textual header "/usr/include/c++/11/random" + textual header "/usr/include/c++/11/ranges" + textual header "/usr/include/c++/11/ratio" + textual header "/usr/include/c++/11/regex" + textual header "/usr/include/c++/11/scoped_allocator" + textual header "/usr/include/c++/11/semaphore" + textual header "/usr/include/c++/11/set" + textual header "/usr/include/c++/11/shared_mutex" + textual header "/usr/include/c++/11/source_location" + textual header "/usr/include/c++/11/span" + textual header "/usr/include/c++/11/sstream" + textual header "/usr/include/c++/11/stack" + textual header "/usr/include/c++/11/stdexcept" + textual header "/usr/include/c++/11/stdlib.h" + textual header "/usr/include/c++/11/stop_token" + textual header "/usr/include/c++/11/streambuf" + textual header "/usr/include/c++/11/string" + textual header "/usr/include/c++/11/string_view" + textual header "/usr/include/c++/11/syncstream" + textual header "/usr/include/c++/11/system_error" + textual header "/usr/include/c++/11/tgmath.h" + textual header "/usr/include/c++/11/thread" + textual header "/usr/include/c++/11/tr1/array" + textual header "/usr/include/c++/11/tr1/bessel_function.tcc" + textual header "/usr/include/c++/11/tr1/beta_function.tcc" + textual header "/usr/include/c++/11/tr1/ccomplex" + textual header "/usr/include/c++/11/tr1/cctype" + textual header "/usr/include/c++/11/tr1/cfenv" + textual header "/usr/include/c++/11/tr1/cfloat" + textual header "/usr/include/c++/11/tr1/cinttypes" + textual header "/usr/include/c++/11/tr1/climits" + textual header "/usr/include/c++/11/tr1/cmath" + textual header "/usr/include/c++/11/tr1/complex" + textual header "/usr/include/c++/11/tr1/complex.h" + textual header "/usr/include/c++/11/tr1/cstdarg" + textual header "/usr/include/c++/11/tr1/cstdbool" + textual header "/usr/include/c++/11/tr1/cstdint" + textual header "/usr/include/c++/11/tr1/cstdio" + textual header "/usr/include/c++/11/tr1/cstdlib" + textual header "/usr/include/c++/11/tr1/ctgmath" + textual header "/usr/include/c++/11/tr1/ctime" + textual header "/usr/include/c++/11/tr1/ctype.h" + textual header "/usr/include/c++/11/tr1/cwchar" + textual header "/usr/include/c++/11/tr1/cwctype" + textual header "/usr/include/c++/11/tr1/ell_integral.tcc" + textual header "/usr/include/c++/11/tr1/exp_integral.tcc" + textual header "/usr/include/c++/11/tr1/fenv.h" + textual header "/usr/include/c++/11/tr1/float.h" + textual header "/usr/include/c++/11/tr1/functional" + textual header "/usr/include/c++/11/tr1/functional_hash.h" + textual header "/usr/include/c++/11/tr1/gamma.tcc" + textual header "/usr/include/c++/11/tr1/hashtable.h" + textual header "/usr/include/c++/11/tr1/hashtable_policy.h" + textual header "/usr/include/c++/11/tr1/hypergeometric.tcc" + textual header "/usr/include/c++/11/tr1/inttypes.h" + textual header "/usr/include/c++/11/tr1/legendre_function.tcc" + textual header "/usr/include/c++/11/tr1/limits.h" + textual header "/usr/include/c++/11/tr1/math.h" + textual header "/usr/include/c++/11/tr1/memory" + textual header "/usr/include/c++/11/tr1/modified_bessel_func.tcc" + textual header "/usr/include/c++/11/tr1/poly_hermite.tcc" + textual header "/usr/include/c++/11/tr1/poly_laguerre.tcc" + textual header "/usr/include/c++/11/tr1/random" + textual header "/usr/include/c++/11/tr1/random.h" + textual header "/usr/include/c++/11/tr1/random.tcc" + textual header "/usr/include/c++/11/tr1/regex" + textual header "/usr/include/c++/11/tr1/riemann_zeta.tcc" + textual header "/usr/include/c++/11/tr1/shared_ptr.h" + textual header "/usr/include/c++/11/tr1/special_function_util.h" + textual header "/usr/include/c++/11/tr1/stdarg.h" + textual header "/usr/include/c++/11/tr1/stdbool.h" + textual header "/usr/include/c++/11/tr1/stdint.h" + textual header "/usr/include/c++/11/tr1/stdio.h" + textual header "/usr/include/c++/11/tr1/stdlib.h" + textual header "/usr/include/c++/11/tr1/tgmath.h" + textual header "/usr/include/c++/11/tr1/tuple" + textual header "/usr/include/c++/11/tr1/type_traits" + textual header "/usr/include/c++/11/tr1/unordered_map" + textual header "/usr/include/c++/11/tr1/unordered_map.h" + textual header "/usr/include/c++/11/tr1/unordered_set" + textual header "/usr/include/c++/11/tr1/unordered_set.h" + textual header "/usr/include/c++/11/tr1/utility" + textual header "/usr/include/c++/11/tr1/wchar.h" + textual header "/usr/include/c++/11/tr1/wctype.h" + textual header "/usr/include/c++/11/tr2/bool_set" + textual header "/usr/include/c++/11/tr2/bool_set.tcc" + textual header "/usr/include/c++/11/tr2/dynamic_bitset" + textual header "/usr/include/c++/11/tr2/dynamic_bitset.tcc" + textual header "/usr/include/c++/11/tr2/ratio" + textual header "/usr/include/c++/11/tr2/type_traits" + textual header "/usr/include/c++/11/tuple" + textual header "/usr/include/c++/11/type_traits" + textual header "/usr/include/c++/11/typeindex" + textual header "/usr/include/c++/11/typeinfo" + textual header "/usr/include/c++/11/unordered_map" + textual header "/usr/include/c++/11/unordered_set" + textual header "/usr/include/c++/11/utility" + textual header "/usr/include/c++/11/valarray" + textual header "/usr/include/c++/11/variant" + textual header "/usr/include/c++/11/vector" + textual header "/usr/include/c++/11/version" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/cxxabi_tweaks.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/extc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-posix.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-single.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/stdtr1c++.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h" + textual header "/usr/include/x86_64-linux-gnu/c++/11/ext/opt_random.h" + textual header "/usr/include/c++/11/backward/auto_ptr.h" + textual header "/usr/include/c++/11/backward/backward_warning.h" + textual header "/usr/include/c++/11/backward/binders.h" + textual header "/usr/include/c++/11/backward/hash_fun.h" + textual header "/usr/include/c++/11/backward/hash_map" + textual header "/usr/include/c++/11/backward/hash_set" + textual header "/usr/include/c++/11/backward/hashtable.h" + textual header "/usr/include/c++/11/backward/strstream" +} \ No newline at end of file diff --git a/third_party/skia/bazel/rbe/gce_linux/cc/tools/cpp/empty.cc b/third_party/skia/bazel/rbe/gce_linux/cc/tools/cpp/empty.cc new file mode 100644 index 000000000000..c272dabaeb68 --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux/cc/tools/cpp/empty.cc @@ -0,0 +1 @@ +int main() {} \ No newline at end of file diff --git a/third_party/skia/bazel/rbe/gce_linux/config/BUILD b/third_party/skia/bazel/rbe/gce_linux/config/BUILD new file mode 100755 index 000000000000..5bf2219d0e5b --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux/config/BUILD @@ -0,0 +1,47 @@ +# Copyright 2020 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This file is auto-generated by github.com/bazelbuild/bazel-toolchains/pkg/rbeconfigsgen +# and should not be modified directly. + +package(default_visibility = ["//visibility:public"]) + +toolchain( + name = "cc-toolchain", + exec_compatible_with = [ + "@bazel_tools//platforms:linux", + "@bazel_tools//platforms:x86_64", + "@bazel_tools//tools/cpp:clang", + ], + target_compatible_with = [ + "@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", +) + +platform( + name = "platform", + constraint_values = [ + "@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:4f7ea556fbf46f65f0c6a2d65144bbcb1139acc78ef19be4bd4b04dcfa623f18", + "OSFamily": "Linux", + }, + parents = ["@local_config_platform//:host"], +) diff --git a/third_party/skia/bazel/rbe/gce_linux/java/BUILD b/third_party/skia/bazel/rbe/gce_linux/java/BUILD new file mode 100755 index 000000000000..fc957c5acb9f --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux/java/BUILD @@ -0,0 +1,31 @@ +# Copyright 2020 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This file is auto-generated by github.com/bazelbuild/bazel-toolchains/pkg/rbeconfigsgen +# and should not be modified directly. + +load("@bazel_tools//tools/jdk:local_java_repository.bzl", "local_java_runtime") + +package(default_visibility = ["//visibility:public"]) + +alias( + name = "jdk", + actual = "rbe_jdk", +) + +local_java_runtime( + name = "rbe_jdk", + java_home = "/usr/lib/jvm/java-11-openjdk-amd64/", + version = "11.0.14", +) diff --git a/third_party/skia/bazel/rbe/gce_linux_container/Dockerfile b/third_party/skia/bazel/rbe/gce_linux_container/Dockerfile new file mode 100644 index 000000000000..50fedcc23fb6 --- /dev/null +++ b/third_party/skia/bazel/rbe/gce_linux_container/Dockerfile @@ -0,0 +1,12 @@ +# This image was created with the following 2 docker commands: +# FROM debian:bookworm-slim +# RUN apt-get update && \ +# apt-get install -y clang openjdk-11-jdk-headless +# Then, after seeing what the hash was of the base image and what versions of clang and the JDK +# were installed, those versions were pinned and the image was rebuilt and pushed to make sure +# those precise versions were used. This is to reach at least SLSA level 1 in that we know exactly +# what versions of the binaries are installed on the images we used to build things. +FROM debian@sha256:8c6a7e41209df74f51677a06b6944be803d662f821a18890d67eecf5dd2962e5 +RUN apt-get update && \ + apt-get install -y clang=1:13.0-54 openjdk-11-jdk-headless=11.0.14+9-1 +ENV JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/" \ No newline at end of file diff --git a/third_party/skia/bench/Benchmark.h b/third_party/skia/bench/Benchmark.h index 6a5f4fdece09..5967690c8855 100644 --- a/third_party/skia/bench/Benchmark.h +++ b/third_party/skia/bench/Benchmark.h @@ -44,6 +44,7 @@ class Benchmark : public SkRefCnt { kNonRendering_Backend, kRaster_Backend, kGPU_Backend, + kGraphite_Backend, kPDF_Backend, kHWUI_Backend, }; diff --git a/third_party/skia/bench/BulkRectBench.cpp b/third_party/skia/bench/BulkRectBench.cpp index dd74bdbec620..88918281a419 100644 --- a/third_party/skia/bench/BulkRectBench.cpp +++ b/third_party/skia/bench/BulkRectBench.cpp @@ -13,9 +13,9 @@ #include "include/gpu/GrDirectContext.h" #include "include/utils/SkRandom.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrOpsTypes.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrOpsTypes.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" // Benchmarks that exercise the bulk image and solid color quad APIs, under a variety of patterns: enum class ImageMode { @@ -151,7 +151,7 @@ class BulkRectBench : public Benchmark { SkMatrixProvider matrixProvider(view); GrPaint grPaint; SkPaintToGrPaint(context, sdc->colorInfo(), paint, matrixProvider, &grPaint); - sdc->drawQuadSet(nullptr, std::move(grPaint), GrAA::kYes, view, batch, kRectCount); + sdc->drawQuadSet(nullptr, std::move(grPaint), view, batch, kRectCount); } void drawSolidColorsRef(SkCanvas* canvas) const { diff --git a/third_party/skia/bench/ClearBench.cpp b/third_party/skia/bench/ClearBench.cpp index bf0473f3b432..37c5aa36ac11 100644 --- a/third_party/skia/bench/ClearBench.cpp +++ b/third_party/skia/bench/ClearBench.cpp @@ -18,7 +18,7 @@ #include "include/core/SkRect.h" #include "include/effects/SkGradientShader.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" static sk_sp make_shader() { static const SkPoint kPts[] = {{0, 0}, {10, 10}}; diff --git a/third_party/skia/bench/CompositingImagesBench.cpp b/third_party/skia/bench/CompositingImagesBench.cpp index acbe7691c713..41567d60e1ae 100644 --- a/third_party/skia/bench/CompositingImagesBench.cpp +++ b/third_party/skia/bench/CompositingImagesBench.cpp @@ -8,8 +8,8 @@ #include #include "bench/Benchmark.h" - #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" diff --git a/third_party/skia/bench/GMBench.cpp b/third_party/skia/bench/GMBench.cpp index 58c31862419c..dbce90e8dc6c 100644 --- a/third_party/skia/bench/GMBench.cpp +++ b/third_party/skia/bench/GMBench.cpp @@ -8,7 +8,7 @@ #include "bench/GMBench.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" GMBench::GMBench(std::unique_ptr gm) : fGM(std::move(gm)) { fGM->setMode(skiagm::GM::kBench_Mode); diff --git a/third_party/skia/bench/GeometryBench.cpp b/third_party/skia/bench/GeometryBench.cpp index b77bfa3219a1..75b867d33b89 100644 --- a/third_party/skia/bench/GeometryBench.cpp +++ b/third_party/skia/bench/GeometryBench.cpp @@ -6,6 +6,7 @@ */ #include "bench/Benchmark.h" +#include "include/core/SkRRect.h" #include "include/core/SkRect.h" #include "include/utils/SkRandom.h" #include "src/core/SkGeometry.h" diff --git a/third_party/skia/bench/GlyphQuadFillBench.cpp b/third_party/skia/bench/GlyphQuadFillBench.cpp index 760a53e3f77c..7b4e5746c1ff 100644 --- a/third_party/skia/bench/GlyphQuadFillBench.cpp +++ b/third_party/skia/bench/GlyphQuadFillBench.cpp @@ -6,16 +6,17 @@ */ #include "bench/Benchmark.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkFont.h" #include "include/core/SkTypeface.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkStrikeCache.h" #include "src/core/SkUtils.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/text/GrStrikeCache.h" -#include "src/gpu/text/GrTextBlob.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/text/GrStrikeCache.h" +#include "src/gpu/ganesh/text/GrTextBlob.h" #include "src/utils/SkUTF.h" // From Project Guttenberg. This is UTF-8 text. diff --git a/third_party/skia/bench/GrMemoryPoolBench.cpp b/third_party/skia/bench/GrMemoryPoolBench.cpp index 9547171deddd..317deadb568e 100644 --- a/third_party/skia/bench/GrMemoryPoolBench.cpp +++ b/third_party/skia/bench/GrMemoryPoolBench.cpp @@ -6,9 +6,8 @@ */ #include "bench/Benchmark.h" -#include "include/private/GrTypesPriv.h" #include "include/utils/SkRandom.h" -#include "src/gpu/GrMemoryPool.h" +#include "src/gpu/ganesh/GrMemoryPool.h" #include diff --git a/third_party/skia/bench/GrMipmapBench.cpp b/third_party/skia/bench/GrMipmapBench.cpp index 1ed564116703..4b7d2e8edd08 100644 --- a/third_party/skia/bench/GrMipmapBench.cpp +++ b/third_party/skia/bench/GrMipmapBench.cpp @@ -7,6 +7,7 @@ #include "bench/Benchmark.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkPaint.h" #include "include/core/SkSurface.h" diff --git a/third_party/skia/bench/GrQuadBench.cpp b/third_party/skia/bench/GrQuadBench.cpp index 21f9aadcfb25..ea3a8fb16c6d 100644 --- a/third_party/skia/bench/GrQuadBench.cpp +++ b/third_party/skia/bench/GrQuadBench.cpp @@ -7,8 +7,8 @@ #include "bench/Benchmark.h" #include "include/utils/SkRandom.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/geometry/GrQuadUtils.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/geometry/GrQuadUtils.h" class GrQuadBoundsBench : public Benchmark { public: diff --git a/third_party/skia/bench/GrResourceCacheBench.cpp b/third_party/skia/bench/GrResourceCacheBench.cpp index c2383a293997..aeba15ea2550 100644 --- a/third_party/skia/bench/GrResourceCacheBench.cpp +++ b/third_party/skia/bench/GrResourceCacheBench.cpp @@ -9,11 +9,11 @@ #include "include/core/SkCanvas.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrGpuResource.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrResourceCache.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrGpuResource.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrResourceCache.h" enum { CACHE_SIZE_COUNT = 4096, @@ -21,8 +21,8 @@ enum { class BenchResource : public GrGpuResource { public: - BenchResource (GrGpu* gpu) - : INHERITED(gpu) { + BenchResource(GrGpu* gpu, std::string_view label) + : INHERITED(gpu, label) { this->registerWithCache(SkBudgeted::kYes); } @@ -44,7 +44,7 @@ static void populate_cache(GrGpu* gpu, int resourceCount, int keyData32Count) { for (int i = 0; i < resourceCount; ++i) { skgpu::UniqueKey key; BenchResource::ComputeKey(i, keyData32Count, &key); - GrGpuResource* resource = new BenchResource(gpu); + GrGpuResource* resource = new BenchResource(gpu, /*label=*/{}); resource->resourcePriv().setUniqueKey(key); resource->unref(); } diff --git a/third_party/skia/bench/ImageCacheBudgetBench.cpp b/third_party/skia/bench/ImageCacheBudgetBench.cpp index b39083ca6360..d7bbb2baac48 100644 --- a/third_party/skia/bench/ImageCacheBudgetBench.cpp +++ b/third_party/skia/bench/ImageCacheBudgetBench.cpp @@ -10,8 +10,8 @@ #include "include/core/SkImage.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrResourceCache.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrResourceCache.h" #include "tools/ToolUtils.h" diff --git a/third_party/skia/bench/ImageCycleBench.cpp b/third_party/skia/bench/ImageCycleBench.cpp index 8b69af7ea82c..70268aeb74ee 100644 --- a/third_party/skia/bench/ImageCycleBench.cpp +++ b/third_party/skia/bench/ImageCycleBench.cpp @@ -8,8 +8,8 @@ #include #include "bench/Benchmark.h" - #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkSurface.h" #include "include/utils/SkRandom.h" diff --git a/third_party/skia/bench/MipmapBench.cpp b/third_party/skia/bench/MipmapBench.cpp index 1af06d9d7906..94beea0a1327 100644 --- a/third_party/skia/bench/MipmapBench.cpp +++ b/third_party/skia/bench/MipmapBench.cpp @@ -7,6 +7,7 @@ #include "bench/Benchmark.h" #include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" #include "src/core/SkMipmap.h" class MipmapBench: public Benchmark { diff --git a/third_party/skia/bench/PatchBench.cpp b/third_party/skia/bench/PatchBench.cpp index 126e2b759c26..1228dc1e49a8 100644 --- a/third_party/skia/bench/PatchBench.cpp +++ b/third_party/skia/bench/PatchBench.cpp @@ -6,6 +6,7 @@ */ #include "bench/Benchmark.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkPaint.h" #include "include/core/SkString.h" #include "include/core/SkVertices.h" diff --git a/third_party/skia/bench/PathBench.cpp b/third_party/skia/bench/PathBench.cpp index 9225a4d3fedc..3f93a49fabe2 100644 --- a/third_party/skia/bench/PathBench.cpp +++ b/third_party/skia/bench/PathBench.cpp @@ -14,6 +14,7 @@ #include "include/core/SkShader.h" #include "include/core/SkString.h" #include "include/private/SkTArray.h" +#include "include/private/SkTDArray.h" #include "include/utils/SkRandom.h" #include "src/core/SkDraw.h" diff --git a/third_party/skia/bench/RecordingBench.cpp b/third_party/skia/bench/RecordingBench.cpp index 1050348f2e33..303bf823ac9d 100644 --- a/third_party/skia/bench/RecordingBench.cpp +++ b/third_party/skia/bench/RecordingBench.cpp @@ -6,7 +6,9 @@ */ #include "bench/RecordingBench.h" + #include "include/core/SkBBHFactory.h" +#include "include/core/SkData.h" #include "include/core/SkPictureRecorder.h" PictureCentricBench::PictureCentricBench(const char* name, const SkPicture* pic) : fName(name) { diff --git a/third_party/skia/bench/RectanizerBench.cpp b/third_party/skia/bench/RectanizerBench.cpp index 843b26c91f55..06406bdd22a1 100644 --- a/third_party/skia/bench/RectanizerBench.cpp +++ b/third_party/skia/bench/RectanizerBench.cpp @@ -12,8 +12,8 @@ #include "include/private/SkTDArray.h" #include "include/utils/SkRandom.h" -#include "src/gpu/GrRectanizerPow2.h" -#include "src/gpu/GrRectanizerSkyline.h" +#include "src/gpu/ganesh/GrRectanizerPow2.h" +#include "src/gpu/ganesh/GrRectanizerSkyline.h" /** * This bench exercises Ganesh' GrRectanizer classes. It exercises the following diff --git a/third_party/skia/bench/SKPBench.cpp b/third_party/skia/bench/SKPBench.cpp index fdc87db784db..fe874dcc0f2d 100644 --- a/third_party/skia/bench/SKPBench.cpp +++ b/third_party/skia/bench/SKPBench.cpp @@ -8,7 +8,7 @@ #include "bench/SKPBench.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tools/flags/CommandLineFlags.h" @@ -136,7 +136,7 @@ void SKPBench::drawPicture() { } } -#include "src/gpu/GrGpu.h" +#include "src/gpu/ganesh/GrGpu.h" static void draw_pic_for_stats(SkCanvas* canvas, GrDirectContext* dContext, const SkPicture* picture, diff --git a/third_party/skia/bench/ShadowBench.cpp b/third_party/skia/bench/ShadowBench.cpp index b4e9adb1b2f4..6566723fa5c0 100644 --- a/third_party/skia/bench/ShadowBench.cpp +++ b/third_party/skia/bench/ShadowBench.cpp @@ -8,6 +8,7 @@ #include "include/core/SkCanvas.h" #include "include/core/SkPaint.h" #include "include/core/SkPath.h" +#include "include/core/SkRRect.h" #include "include/utils/SkShadowUtils.h" #include "src/core/SkDrawShadowInfo.h" diff --git a/third_party/skia/bench/SkGlyphCacheBench.cpp b/third_party/skia/bench/SkGlyphCacheBench.cpp index 2127f1a0f4a7..6f5adce9aceb 100644 --- a/third_party/skia/bench/SkGlyphCacheBench.cpp +++ b/third_party/skia/bench/SkGlyphCacheBench.cpp @@ -9,6 +9,7 @@ #include "bench/Benchmark.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkGraphics.h" #include "include/core/SkTypeface.h" #include "include/private/chromium/SkChromeRemoteGlyphCache.h" diff --git a/third_party/skia/bench/SkSLBench.cpp b/third_party/skia/bench/SkSLBench.cpp index f150446b7989..17dca013c181 100644 --- a/third_party/skia/bench/SkSLBench.cpp +++ b/third_party/skia/bench/SkSLBench.cpp @@ -8,9 +8,9 @@ #include "bench/ResultsWriter.h" #include "bench/SkSLBench.h" #include "include/core/SkCanvas.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/mock/GrMockCaps.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/mock/GrMockCaps.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/SkSLDSLParser.h" diff --git a/third_party/skia/bench/TessellateBench.cpp b/third_party/skia/bench/TessellateBench.cpp index f195e45e1bb5..63093c428905 100644 --- a/third_party/skia/bench/TessellateBench.cpp +++ b/third_party/skia/bench/TessellateBench.cpp @@ -9,19 +9,17 @@ #include "include/gpu/GrDirectContext.h" #include "src/core/SkPathPriv.h" #include "src/core/SkRectPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/mock/GrMockOpTarget.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/mock/GrMockOpTarget.h" +#include "src/gpu/ganesh/ops/PathTessellator.h" +#include "src/gpu/ganesh/ops/StrokeTessellator.h" #include "src/gpu/tessellate/AffineMatrix.h" #include "src/gpu/tessellate/MiddleOutPolygonTriangulator.h" -#include "src/gpu/tessellate/PathCurveTessellator.h" -#include "src/gpu/tessellate/PathWedgeTessellator.h" -#include "src/gpu/tessellate/StrokeFixedCountTessellator.h" -#include "src/gpu/tessellate/StrokeHardwareTessellator.h" #include "src/gpu/tessellate/WangsFormula.h" #include "tools/ToolUtils.h" #include -namespace skgpu { +namespace skgpu::v1 { // This is the number of cubics in desk_chalkboard.skp. (There are no quadratics in the chalkboard.) constexpr static int kNumCubicsInChalkboard = 47182; @@ -143,7 +141,7 @@ DEF_PATH_TESS_BENCH(GrPathCurveTessellator, make_cubic_path(8), SkMatrix::I()) { auto tess = PathCurveTessellator::Make(&arena, fTarget->caps().shaderCaps()->infinitySupport()); tess->prepare(fTarget.get(), - 1 << PathCurveTessellator::kMaxFixedResolveLevel, + kMaxParametricSegments, fMatrix, {gAlmostIdentity, fPath, SK_PMColor4fTRANSPARENT}, fPath.countVerbs(), @@ -157,7 +155,7 @@ DEF_PATH_TESS_BENCH(GrPathWedgeTessellator, make_cubic_path(8), SkMatrix::I()) { auto tess = PathWedgeTessellator::Make(&arena, fTarget->caps().shaderCaps()->infinitySupport()); tess->prepare(fTarget.get(), - 1 << PathCurveTessellator::kMaxFixedResolveLevel, + kMaxParametricSegments, fMatrix, {gAlmostIdentity, fPath, SK_PMColor4fTRANSPARENT}, fPath.countVerbs(), @@ -232,8 +230,7 @@ DEF_PATH_TESS_BENCH(middle_out_triangulation, ToolUtils::make_star(SkRect::MakeWH(500, 500), kNumCubicsInChalkboard), SkMatrix::I()) { // Conservative estimate of triangulation (see PathStencilCoverOp) - const int maxVerts = - 3 * (PathTessellator::MaxCombinedFanEdgesInPathDrawList(kNumCubicsInChalkboard) - 2); + const int maxVerts = 3 * (MaxCombinedFanEdgesInPaths(kNumCubicsInChalkboard) - 2); sk_sp buffer; int baseVertex; @@ -411,4 +408,4 @@ DEF_BENCH(return new TessPrepareBench( "GrStrokeFixedCountTessellator_motionmark"); ) -} // namespace skgpu +} // namespace skgpu::v1 diff --git a/third_party/skia/bench/TopoSortBench.cpp b/third_party/skia/bench/TopoSortBench.cpp index 32ec93d2a477..42abce5d2d70 100644 --- a/third_party/skia/bench/TopoSortBench.cpp +++ b/third_party/skia/bench/TopoSortBench.cpp @@ -8,7 +8,7 @@ #include "bench/Benchmark.h" #include "include/core/SkString.h" #include "include/utils/SkRandom.h" -#include "src/gpu/GrTTopoSort.h" +#include "src/gpu/ganesh/GrTTopoSort.h" #include "tools/ToolUtils.h" diff --git a/third_party/skia/bench/TriangulatorBench.cpp b/third_party/skia/bench/TriangulatorBench.cpp index c848d26c075e..f67071d571b2 100644 --- a/third_party/skia/bench/TriangulatorBench.cpp +++ b/third_party/skia/bench/TriangulatorBench.cpp @@ -8,9 +8,9 @@ #include "bench/Benchmark.h" #include "include/core/SkPath.h" #include "src/core/SkArenaAlloc.h" -#include "src/gpu/GrEagerVertexAllocator.h" -#include "src/gpu/geometry/GrInnerFanTriangulator.h" -#include "src/gpu/geometry/GrTriangulator.h" +#include "src/gpu/ganesh/GrEagerVertexAllocator.h" +#include "src/gpu/ganesh/geometry/GrInnerFanTriangulator.h" +#include "src/gpu/ganesh/geometry/GrTriangulator.h" #include struct TigerPath { diff --git a/third_party/skia/bench/VertexColorSpaceBench.cpp b/third_party/skia/bench/VertexColorSpaceBench.cpp index 9b08b973c4fc..517c8841554f 100644 --- a/third_party/skia/bench/VertexColorSpaceBench.cpp +++ b/third_party/skia/bench/VertexColorSpaceBench.cpp @@ -11,19 +11,19 @@ #include "include/gpu/GrDirectContext.h" #include "include/private/SkHalf.h" #include "src/core/SkColorSpacePriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrProgramInfo.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace { diff --git a/third_party/skia/bench/WritePixelsBench.cpp b/third_party/skia/bench/WritePixelsBench.cpp index 4a4303d40600..af63486e27fc 100644 --- a/third_party/skia/bench/WritePixelsBench.cpp +++ b/third_party/skia/bench/WritePixelsBench.cpp @@ -8,6 +8,7 @@ #include "bench/Benchmark.h" #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkString.h" // Time variants of write-pixels diff --git a/third_party/skia/bench/graphite/IntersectionTreeBench.cpp b/third_party/skia/bench/graphite/IntersectionTreeBench.cpp index 568ec1340f49..e1b2cdefe0d8 100644 --- a/third_party/skia/bench/graphite/IntersectionTreeBench.cpp +++ b/third_party/skia/bench/graphite/IntersectionTreeBench.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ #include "bench/Benchmark.h" -#include "experimental/graphite/src/geom/IntersectionTree.h" #include "include/core/SkPaint.h" #include "include/core/SkPath.h" #include "include/utils/SkRandom.h" #include "src/core/SkMathPriv.h" +#include "src/gpu/graphite/geom/IntersectionTree.h" #include "tools/ToolUtils.h" #include "tools/flags/CommandLineFlags.h" static DEFINE_string(intersectionTreeFile, "", "svg or skp for the IntersectionTree bench to sniff paths from."); -namespace skgpu { +namespace skgpu::graphite { class IntersectionTreeBench : public Benchmark { protected: @@ -157,11 +157,11 @@ class FileIntersectionBench : public IntersectionTreeBench { } }; -} // namespace skgpu +} // namespace skgpu::graphite -DEF_BENCH( return new skgpu::RandomIntersectionBench(100); ) -DEF_BENCH( return new skgpu::RandomIntersectionBench(500); ) -DEF_BENCH( return new skgpu::RandomIntersectionBench(1000); ) -DEF_BENCH( return new skgpu::RandomIntersectionBench(5000); ) -DEF_BENCH( return new skgpu::RandomIntersectionBench(10000); ) -DEF_BENCH( return new skgpu::FileIntersectionBench(); ) // Sniffs --intersectionTreeFile +DEF_BENCH( return new skgpu::graphite::RandomIntersectionBench(100); ) +DEF_BENCH( return new skgpu::graphite::RandomIntersectionBench(500); ) +DEF_BENCH( return new skgpu::graphite::RandomIntersectionBench(1000); ) +DEF_BENCH( return new skgpu::graphite::RandomIntersectionBench(5000); ) +DEF_BENCH( return new skgpu::graphite::RandomIntersectionBench(10000); ) +DEF_BENCH( return new skgpu::graphite::FileIntersectionBench(); ) // Sniffs --intersectionTreeFile diff --git a/third_party/skia/bench/nanobench.cpp b/third_party/skia/bench/nanobench.cpp index f890fdff5f59..be2acbc5e0a2 100644 --- a/third_party/skia/bench/nanobench.cpp +++ b/third_party/skia/bench/nanobench.cpp @@ -26,6 +26,7 @@ #include "include/core/SkCanvas.h" #include "include/core/SkData.h" #include "include/core/SkGraphics.h" +#include "include/core/SkImageEncoder.h" #include "include/core/SkPictureRecorder.h" #include "include/core/SkString.h" #include "include/core/SkSurface.h" @@ -60,6 +61,15 @@ #include "client_utils/android/BitmapRegionDecoder.h" #endif +#ifdef SK_GRAPHITE_ENABLED +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Recorder.h" +#include "include/gpu/graphite/Recording.h" +#include "include/gpu/graphite/SkStuff.h" +#include "tools/graphite/ContextFactory.h" +#include "tools/graphite/GraphiteTestContext.h" +#endif + #include #include #include @@ -72,15 +82,18 @@ extern bool gUseSkVMBlitter; extern bool gSkVMAllowJIT; extern bool gSkVMJITViaDylib; +#include "src/utils/SkBlitterTraceCommon.h" +SK_BLITTER_TRACE_INIT + #ifndef SK_BUILD_FOR_WIN #include #endif #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" #include "tools/gpu/GrContextFactory.h" using sk_gpu_test::ContextInfo; @@ -243,7 +256,7 @@ struct GPUTarget : public Target { this->contextInfo.testContext()->flushAndWaitOnSync(contextInfo.directContext()); } } - void fence() override { this->contextInfo.testContext()->finish(); } + void syncCPU() override { this->contextInfo.testContext()->finish(); } bool needsFrameTiming(int* maxFrameLag) const override { if (!this->contextInfo.testContext()->getMaxGpuFrameLag(maxFrameLag)) { @@ -281,6 +294,87 @@ struct GPUTarget : public Target { } }; +#ifdef SK_GRAPHITE_ENABLED +struct GraphiteTarget : public Target { + explicit GraphiteTarget(const Config& c) : Target(c) {} + using TestContext = skiatest::graphite::GraphiteTestContext; + using ContextFactory = skiatest::graphite::ContextFactory; + + std::unique_ptr factory; + + TestContext* testContext; + skgpu::graphite::Context* context; + std::unique_ptr recorder; + + ~GraphiteTarget() override {} + + void setup() override {} + + void endTiming() override { + if (context && recorder) { + std::unique_ptr recording = this->recorder->snap(); + if (recording) { + this->testContext->submitRecordingAndWaitOnSync(this->context, recording.get()); + } + } + } + void syncCPU() override { + if (context && recorder) { + // TODO: have a way to sync work with out submitting a Recording which is currently + // required. Probably need to get to the point where the backend command buffers are + // stored on the Context and not Recordings before this is feasible. + std::unique_ptr recording = this->recorder->snap(); + if (recording) { + skgpu::graphite::InsertRecordingInfo info; + info.fRecording = recording.get(); + this->context->insertRecording(info); + } + this->context->submit(skgpu::graphite::SyncToCpu::kYes); + } + } + + bool needsFrameTiming(int* maxFrameLag) const override { + SkAssertResult(this->testContext->getMaxGpuFrameLag(maxFrameLag)); + return true; + } + bool init(SkImageInfo info, Benchmark* bench) override { + GrContextOptions options = grContextOpts; + bench->modifyGrContextOptions(&options); + // TODO: We should merge Ganesh and Graphite context options and then actually use the + // context options when we make the factory here. + this->factory = std::make_unique(); + + auto [testCtx, ctx] = this->factory->getContextInfo(this->config.graphiteCtxType); + if (!ctx) { + return false; + } + this->testContext = testCtx; + this->context = ctx; + + this->recorder = this->context->makeRecorder(); + if (!this->recorder) { + return false; + } + + this->surface = MakeGraphite(this->recorder.get(), info); + if (!this->surface) { + return false; + } + // TODO: get fence stuff working +#if 0 + if (!this->contextInfo.testContext()->fenceSyncSupport()) { + SkDebugf("WARNING: GL context for config \"%s\" does not support fence sync. " + "Timings might not be accurate.\n", this->config.name.c_str()); + } +#endif + return true; + } + + void dumpStats() override { + } +}; +#endif // SK_GRAPHITE_ENABLED + static double time(int loops, Benchmark* bench, Target* target) { SkCanvas* canvas = target->getCanvas(); if (canvas) { @@ -289,7 +383,11 @@ static double time(int loops, Benchmark* bench, Target* target) { bench->preDraw(canvas); double start = now_ms(); canvas = target->beginTiming(canvas); + + SK_BLITTER_TRACE_LOCAL_SETUP; bench->draw(loops, canvas); + SK_BLITTER_TRACE_LOCAL_TEARDOWN; + target->endTiming(); double elapsed = now_ms() - start; bench->postDraw(canvas); @@ -429,7 +527,7 @@ static int setup_gpu_bench(Target* target, Benchmark* bench, int maxGpuFrameLag) loops = clamp_loops(loops); // Make sure we're not still timing our calibration. - target->fence(); + target->syncCPU(); } else { loops = detect_forever_loops(loops); } @@ -443,6 +541,7 @@ static int setup_gpu_bench(Target* target, Benchmark* bench, int maxGpuFrameLag) } #define kBogusContextType GrContextFactory::kGL_ContextType +#define kBogusGraphiteContextType skiatest::graphite::ContextFactory::ContextType::kMetal #define kBogusContextOverrides GrContextFactory::ContextOverrides::kNone static std::optional create_config(const SkCommandLineConfig* config) { @@ -485,8 +584,61 @@ static std::optional create_config(const SkCommandLineConfig* config) { sampleCount, ctxType, ctxOverrides, + kBogusGraphiteContextType, gpuConfig->getSurfaceFlags()}; } +#ifdef SK_GRAPHITE_ENABLED + if (const auto* gpuConfig = config->asConfigGraphite()) { + if (!FLAGS_gpu) { + SkDebugf("Skipping config '%s' as requested.\n", config->getTag().c_str()); + return std::nullopt; + } + + const auto graphiteCtxType = gpuConfig->getContextType(); + const auto sampleCount = 1; // TODO: gpuConfig->getSamples(); + const auto colorType = gpuConfig->getColorType(); + + using ContextFactory = skiatest::graphite::ContextFactory; + + ContextFactory factory{}; + auto [testContext, ctx] = factory.getContextInfo(graphiteCtxType); + if (ctx) { + // TODO: Add graphite ctx queries for supported sample count by color type. +#if 0 + GrBackendFormat format = ctx->defaultBackendFormat(colorType, GrRenderable::kYes); + int supportedSampleCount = + ctx->priv().caps()->getRenderTargetSampleCount(sampleCount, format); + if (sampleCount != supportedSampleCount) { + SkDebugf("Configuration '%s' sample count %d is not a supported sample count.\n", + config->getTag().c_str(), + sampleCount); + return std::nullopt; + } +#else + if (sampleCount > 1) { + SkDebugf("Configuration '%s' sample count %d is not a supported sample count.\n", + config->getTag().c_str(), + sampleCount); + return std::nullopt; + } +#endif + } else { + SkDebugf("No context was available matching config '%s'.\n", config->getTag().c_str()); + return std::nullopt; + } + + return Config{gpuConfig->getTag(), + Benchmark::kGraphite_Backend, + colorType, + kPremul_SkAlphaType, + config->refColorSpace(), + sampleCount, + kBogusContextType, + kBogusContextOverrides, + graphiteCtxType, + 0}; + } +#endif #define CPU_CONFIG(name, backend, color, alpha) \ if (config->getBackend().equals(name)) { \ @@ -502,6 +654,7 @@ static std::optional create_config(const SkCommandLineConfig* config) { 0, \ kBogusContextType, \ kBogusContextOverrides, \ + kBogusGraphiteContextType, \ 0}; \ } @@ -561,6 +714,11 @@ static Target* is_enabled(Benchmark* bench, const Config& config) { case Benchmark::kGPU_Backend: target = new GPUTarget(config); break; +#ifdef SK_GRAPHITE_ENABLED + case Benchmark::kGraphite_Backend: + target = new GraphiteTarget(config); + break; +#endif default: target = new Target(config); break; @@ -1414,11 +1572,13 @@ int main(int argc, char** argv) { if (configs.count() == 1) { config = ""; // Only print the config if we run the same bench on more than one. } - SkDebugf("%4d/%-4dMB\t%s\t%s\n" + SkDebugf("%4d/%-4dMB\t%s\t%s " , sk_tools::getCurrResidentSetSizeMB() , sk_tools::getMaxResidentSetSizeMB() , bench->getUniqueName() , config); + SK_BLITTER_TRACE_PRINT; + SkDebugf("\n"); } else if (FLAGS_quiet) { const char* mark = " "; const double stddev_percent = diff --git a/third_party/skia/bench/nanobench.h b/third_party/skia/bench/nanobench.h index 3001ca6cecc7..657bc727cd9f 100644 --- a/third_party/skia/bench/nanobench.h +++ b/third_party/skia/bench/nanobench.h @@ -13,6 +13,7 @@ #include "include/core/SkSurface.h" #include "include/core/SkTypes.h" #include "tools/gpu/GrContextFactory.h" +#include "tools/graphite/ContextFactory.h" class SkBitmap; class SkCanvas; @@ -27,6 +28,7 @@ struct Config { int samples; sk_gpu_test::GrContextFactory::ContextType ctxType; sk_gpu_test::GrContextFactory::ContextOverrides ctxOverrides; + skiatest::graphite::ContextFactory::ContextType graphiteCtxType; uint32_t surfaceFlags; }; @@ -52,7 +54,7 @@ struct Target { /** Called between benchmarks (or between calibration and measured runs) to make sure all pending work in drivers / threads is complete. */ - virtual void fence() { } + virtual void syncCPU() { } /** CPU-like targets can just be timed, but GPU-like targets need to pay attention to frame boundaries diff --git a/third_party/skia/bin/fetch-gn b/third_party/skia/bin/fetch-gn index b4bb14c63031..b63f2bb65630 100755 --- a/third_party/skia/bin/fetch-gn +++ b/third_party/skia/bin/fetch-gn @@ -23,7 +23,7 @@ os.chdir(os.path.join(os.path.dirname(__file__), os.pardir)) gnzip = os.path.join(tempfile.mkdtemp(), 'gn.zip') with open(gnzip, 'wb') as f: OS = {'darwin': 'mac', 'linux': 'linux', 'linux2': 'linux', 'win32': 'windows'}[sys.platform] - cpu = {'amd64': 'amd64', 'arm64': 'arm64', 'x86_64': 'amd64'}[platform.machine().lower()] + cpu = {'aarch64': 'arm64', 'amd64': 'amd64', 'arm64': 'arm64', 'x86_64': 'amd64'}[platform.machine().lower()] rev = 'd62642c920e6a0d1756316d225a90fd6faa9e21e' url = 'https://chrome-infra-packages.appspot.com/dl/gn/gn/{}-{}/+/git_revision:{}'.format( diff --git a/third_party/skia/bin/fetch-sk b/third_party/skia/bin/fetch-sk index 87db5fdbdb44..36040455f851 100755 --- a/third_party/skia/bin/fetch-sk +++ b/third_party/skia/bin/fetch-sk @@ -33,7 +33,7 @@ def sha256sum(path): os.chdir(os.path.join(os.path.dirname(__file__), os.pardir)) OS = {'darwin': 'mac', 'linux': 'linux', 'linux2': 'linux', 'win32': 'windows'}[sys.platform] -cpu = {'amd64': 'amd64', 'arm64': 'arm64', 'x86_64': 'amd64'}[platform.machine().lower()] +cpu = {'aarch64': 'arm64', 'amd64': 'amd64', 'arm64': 'arm64', 'x86_64': 'amd64'}[platform.machine().lower()] platform = '%s-%s' % (OS, cpu) sk = 'sk' if 'windows' in platform: diff --git a/third_party/skia/build_overrides/dawn.gni b/third_party/skia/build_overrides/dawn.gni index e0daa8082b6e..72497df9f20c 100644 --- a/third_party/skia/build_overrides/dawn.gni +++ b/third_party/skia/build_overrides/dawn.gni @@ -13,3 +13,5 @@ dawn_jinja2_dir = "//third_party/externals/jinja2" 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" +dawn_vulkan_headers_dir = "//third_party/externals/vulkan-headers" +dawn_vulkan_tools_dir = "//third_party/externals/vulkan-tools" diff --git a/third_party/skia/build_overrides/tint.gni b/third_party/skia/build_overrides/tint.gni index b68cd9285667..2529bbbfcd3d 100644 --- a/third_party/skia/build_overrides/tint.gni +++ b/third_party/skia/build_overrides/tint.gni @@ -5,7 +5,7 @@ # These are variables that are overridable by projects that include Tint. -tint_root_dir = "//third_party/externals/tint" +tint_root_dir = "//third_party/externals/dawn" tint_spirv_tools_dir = "//third_party/externals/spirv-tools" tint_spirv_headers_dir = "//third_party/externals/spirv-headers" diff --git a/third_party/skia/build_overrides/vulkan_headers.gni b/third_party/skia/build_overrides/vulkan_headers.gni new file mode 100644 index 000000000000..673b6d8bdc0c --- /dev/null +++ b/third_party/skia/build_overrides/vulkan_headers.gni @@ -0,0 +1,4 @@ +# Copyright 2022 Google LLC +# +# 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/skia/build_overrides/vulkan_tools.gni b/third_party/skia/build_overrides/vulkan_tools.gni new file mode 100644 index 000000000000..ebea6c2fe10f --- /dev/null +++ b/third_party/skia/build_overrides/vulkan_tools.gni @@ -0,0 +1,7 @@ +# Copyright 2022 Google LLC +# +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +vulkan_data_subdir = "vulkandata" +vulkan_headers_dir = "//third_party/externals/vulkan-headers" diff --git a/third_party/skia/dm/DM.cpp b/third_party/skia/dm/DM.cpp index 03a70c33e3d3..ae3be915d5de 100644 --- a/third_party/skia/dm/DM.cpp +++ b/third_party/skia/dm/DM.cpp @@ -26,6 +26,7 @@ #include "src/core/SkTaskGroup.h" #include "src/utils/SkOSPath.h" #include "tests/Test.h" +#include "tests/TestHarness.h" #include "tools/AutoreleasePool.h" #include "tools/HashAndEncode.h" #include "tools/ProcStats.h" @@ -59,6 +60,7 @@ extern bool gSkForceRasterPipelineBlitter; extern bool gUseSkVMBlitter; extern bool gSkVMAllowJIT; +extern bool gSkBlobAsSlugTesting; static DEFINE_string(src, "tests gm skp mskp lottie rive svg image colorImage", "Source types to test."); @@ -94,6 +96,7 @@ static DEFINE_string(mskps, "", "Directory to read mskps from, or a single mskp static DEFINE_bool(forceRasterPipeline, false, "sets gSkForceRasterPipelineBlitter"); static DEFINE_bool(skvm, false, "sets gUseSkVMBlitter"); static DEFINE_bool(jit, true, "sets gSkVMAllowJIT"); +static DEFINE_bool(blobAsSlugTesting, false, "sets gSkBlobAsSlugTesting"); static DEFINE_string(bisect, "", "Pair of: SKP file to bisect, followed by an l/r bisect trail string (e.g., 'lrll'). The " @@ -141,7 +144,6 @@ static DEFINE_bool2(verbose, v, false, "enable verbose output from the test driv static DEFINE_string(skps, "skps", "Directory to read skps from."); static DEFINE_string(lotties, "lotties", "Directory to read (Bodymovin) jsons from."); -static DEFINE_string(rives, "rives", "Directory to read Rive/Flare files from."); static DEFINE_string(svgs, "", "Directory to read SVGs from, or a single SVG file."); static DEFINE_int_2(threads, j, -1, @@ -887,9 +889,6 @@ static bool gather_srcs() { #if defined(SK_ENABLE_SKOTTIE) gather_file_srcs(FLAGS_lotties, "json", "lottie"); #endif -#if defined(SK_ENABLE_SKRIVE) - gather_file_srcs(FLAGS_rives, "flr", "rive"); -#endif #if defined(SK_ENABLE_SVG) gather_file_srcs(FLAGS_svgs, "svg"); #endif @@ -968,6 +967,8 @@ static Sink* create_sink(const GrContextOptions& grCtxOptions, const SkCommandLi return new GPUDDLSink(gpuConfig, grCtxOptions); } else if (gpuConfig->getOOPRish()) { return new GPUOOPRSink(gpuConfig, grCtxOptions); + } else if (gpuConfig->getSlug()) { + return new GPUSlugSink(gpuConfig, grCtxOptions); } else { return new GPUSink(gpuConfig, grCtxOptions); } @@ -1483,6 +1484,12 @@ static void run_test(skiatest::Test test, const GrContextOptions& grCtxOptions) /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +TestHarness CurrentTestHarness() { + return TestHarness::kDM; +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + int main(int argc, char** argv) { #if defined(__MSVC_RUNTIME_CHECKS) _RTC_SetErrorFunc(RuntimeCheckErrorFunc); @@ -1506,6 +1513,7 @@ int main(int argc, char** argv) { gSkForceRasterPipelineBlitter = FLAGS_forceRasterPipeline; gUseSkVMBlitter = FLAGS_skvm; gSkVMAllowJIT = FLAGS_jit; + gSkBlobAsSlugTesting = FLAGS_blobAsSlugTesting; // The bots like having a verbose.log to upload, so always touch the file even if --verbose. if (!FLAGS_writePath.isEmpty()) { diff --git a/third_party/skia/dm/DMGpuTestProcs.cpp b/third_party/skia/dm/DMGpuTestProcs.cpp index 9f6efe570c8b..6764734f8db2 100644 --- a/third_party/skia/dm/DMGpuTestProcs.cpp +++ b/third_party/skia/dm/DMGpuTestProcs.cpp @@ -10,7 +10,7 @@ #include "include/gpu/GrDirectContext.h" #ifdef SK_GRAPHITE_ENABLED -#include "experimental/graphite/include/Context.h" +#include "include/gpu/graphite/Context.h" #include "tools/graphite/ContextFactory.h" #endif diff --git a/third_party/skia/dm/DMSrcSink.cpp b/third_party/skia/dm/DMSrcSink.cpp index d45007017245..33e6d98d71b9 100644 --- a/third_party/skia/dm/DMSrcSink.cpp +++ b/third_party/skia/dm/DMSrcSink.cpp @@ -43,18 +43,23 @@ #include "src/core/SkPictureData.h" #include "src/core/SkRecordDraw.h" #include "src/core/SkRecorder.h" +#include "src/core/SkTLazy.h" #include "src/core/SkTaskGroup.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/utils/SkJSONWriter.h" #include "src/utils/SkMultiPictureDocumentPriv.h" #include "src/utils/SkOSPath.h" +#include "src/utils/SkTestCanvas.h" #include "tools/DDLPromiseImageHelper.h" #include "tools/DDLTileHelper.h" #include "tools/Resources.h" #include "tools/RuntimeBlendUtils.h" +#include "tools/UrlDataManager.h" #include "tools/debugger/DebugCanvas.h" #include "tools/gpu/BackendSurfaceFactory.h" #include "tools/gpu/MemoryCache.h" + #if defined(SK_BUILD_FOR_WIN) #include "include/docs/SkXPSDocument.h" #include "src/utils/win/SkAutoCoInitialize.h" @@ -68,10 +73,6 @@ #include "modules/skresources/include/SkResources.h" #endif -#if defined(SK_ENABLE_SKRIVE) - #include "experimental/skrive/include/SkRive.h" -#endif - #if defined(SK_ENABLE_SVG) #include "include/svg/SkSVGCanvas.h" #include "modules/svg/include/SkSVGDOM.h" @@ -80,12 +81,12 @@ #endif #ifdef SK_GRAPHITE_ENABLED -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/include/Recording.h" -#include "experimental/graphite/include/SkStuff.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Recorder.h" +#include "include/gpu/graphite/Recording.h" +#include "include/gpu/graphite/SkStuff.h" // TODO: Remove this src include once we figure out public readPixels call for Graphite. -#include "experimental/graphite/src/Surface_Graphite.h" +#include "src/gpu/graphite/Surface_Graphite.h" #include "tools/graphite/ContextFactory.h" #include "tools/graphite/GraphiteTestContext.h" #endif @@ -1262,61 +1263,6 @@ bool SkottieSrc::veto(SinkFlags flags) const { } #endif -/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ -#if defined(SK_ENABLE_SKRIVE) -SkRiveSrc::SkRiveSrc(Path path) : fPath(std::move(path)) {} - -Result SkRiveSrc::draw(GrDirectContext*, SkCanvas* canvas) const { - auto fileStream = SkFILEStream::Make(fPath.c_str()); - if (!fileStream) { - return Result::Fatal("Unable to open file: %s", fPath.c_str()); - } - - const auto skrive = skrive::SkRive::Builder().make(std::move(fileStream)); - if (!skrive) { - return Result::Fatal("Unable to parse file: %s", fPath.c_str()); - } - - auto bounds = SkRect::MakeEmpty(); - - for (const auto& ab : skrive->artboards()) { - const auto& pos = ab->getTranslation(); - const auto& size = ab->getSize(); - - bounds.join(SkRect::MakeXYWH(pos.x, pos.y, size.x, size.y)); - } - - canvas->drawColor(SK_ColorWHITE); - - if (!bounds.isEmpty()) { - // TODO: tiled frames when we add animation support - SkAutoCanvasRestore acr(canvas, true); - canvas->concat(SkMatrix::RectToRect(bounds, SkRect::MakeWH(kTargetSize, kTargetSize), - SkMatrix::kCenter_ScaleToFit)); - for (const auto& ab : skrive->artboards()) { - ab->render(canvas); - } - } - - return Result::Ok(); -} - -SkISize SkRiveSrc::size() const { - return SkISize::Make(kTargetSize, kTargetSize); -} - -Name SkRiveSrc::name() const { return SkOSPath::Basename(fPath.c_str()); } - -bool SkRiveSrc::veto(SinkFlags flags) const { - // No need to test to non-(raster||gpu||vector) or indirect backends. - bool type_ok = flags.type == SinkFlags::kRaster - || flags.type == SinkFlags::kGPU - || flags.type == SinkFlags::kVector; - - return !type_ok || flags.approach != SinkFlags::kDirect; -} -#endif - /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ #if defined(SK_ENABLE_SVG) // Used when the image doesn't have an intrinsic size. @@ -1547,7 +1493,8 @@ bool GPUSink::readBack(SkSurface* surface, SkBitmap* dst) const { Result GPUSink::onDraw(const Src& src, SkBitmap* dst, SkWStream*, SkString* log, const GrContextOptions& baseOptions, - std::function initContext) const { + std::function initContext, + std::function wrapCanvas) const { GrContextOptions grOptions = baseOptions; // We don't expect the src to mess with the persistent cache or the executor. @@ -1576,7 +1523,12 @@ Result GPUSink::onDraw(const Src& src, SkBitmap* dst, SkWStream*, SkString* log, factory.abandonContexts(); } - Result result = src.draw(direct, surface->getCanvas()); + auto canvas = surface->getCanvas(); + if (wrapCanvas != nullptr) { + canvas = wrapCanvas(canvas); + } + + Result result = src.draw(direct, canvas); if (!result.isOk()) { return result; } @@ -1602,7 +1554,24 @@ Result GPUSink::onDraw(const Src& src, SkBitmap* dst, SkWStream*, SkString* log, } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GPUSlugSink::GPUSlugSink(const SkCommandLineConfigGpu* config, const GrContextOptions& options) + : GPUSink(config, options) {} + +Result GPUSlugSink::draw(const Src& src, SkBitmap* dst, SkWStream* write, SkString* log) const { + GrContextOptions grOptions = this->baseContextOptions(); + // Force padded atlas entries for slug drawing. + grOptions.fSupportBilerpFromGlyphAtlas |= true; + + SkTLazy> testCanvas; + return onDraw(src, dst, write, log, grOptions, nullptr, + [&](SkCanvas* canvas){ + testCanvas.init(canvas); + return testCanvas.get(); + }); +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ GPUThreadTestingSink::GPUThreadTestingSink(const SkCommandLineConfigGpu* config, const GrContextOptions& grCtxOptions) : INHERITED(config, grCtxOptions) @@ -2130,17 +2099,17 @@ namespace { // For the sprint Graphite only handles: // solid colors with src or srcOver // repeated or clamped linear gradients with src or srcOver -void precompile(skgpu::Context* context) { - using ShaderType = skgpu::ShaderCombo::ShaderType; +void precompile(skgpu::graphite::Context* context) { + using ShaderType = skgpu::graphite::ShaderCombo::ShaderType; - skgpu::PaintCombo c1 { { skgpu::ShaderCombo({ ShaderType::kSolidColor }, - { SkTileMode::kRepeat }) }, - { SkBlendMode::kSrcOver, SkBlendMode::kSrc } }; + skgpu::graphite::PaintCombo c1 { { skgpu::graphite::ShaderCombo({ ShaderType::kSolidColor }, + { SkTileMode::kRepeat }) }, + { SkBlendMode::kSrcOver, SkBlendMode::kSrc } }; context->preCompile(c1); - skgpu::PaintCombo c2 { { skgpu::ShaderCombo({ ShaderType::kLinearGradient }, - { SkTileMode::kRepeat, SkTileMode::kClamp }) }, - { SkBlendMode::kSrcOver, SkBlendMode::kSrc } }; + skgpu::graphite::PaintCombo c2 { { skgpu::graphite::ShaderCombo({ ShaderType::kLinearGradient }, + { SkTileMode::kRepeat, SkTileMode::kClamp }) }, + { SkBlendMode::kSrcOver, SkBlendMode::kSrc } }; context->preCompile(c2); } @@ -2169,7 +2138,7 @@ Result GraphiteSink::draw(const Src& src, precompile(context); } - std::unique_ptr recorder = context->makeRecorder(); + std::unique_ptr recorder = context->makeRecorder(); if (!recorder) { return Result::Fatal("Could not create a recorder."); } @@ -2191,19 +2160,24 @@ Result GraphiteSink::draw(const Src& src, // that instead. SkPixmap pm; if (!dst->peekPixels(&pm) || - !static_cast(surface.get())->onReadPixels(context, - recorder.get(), - pm, - 0, - 0)) { + !static_cast(surface.get())->onReadPixels(context, + recorder.get(), + pm, + 0, + 0)) { return Result::Fatal("Could not readback from surface."); } } - std::unique_ptr recording = recorder->snap(); + std::unique_ptr recording = recorder->snap(); + if (!recording) { + return Result::Fatal("Could not create a recording."); + } - context->insertRecording(std::move(recording)); - context->submit(skgpu::SyncToCpu::kYes); + skgpu::graphite::InsertRecordingInfo info; + info.fRecording = recording.get(); + context->insertRecording(info); + context->submit(skgpu::graphite::SyncToCpu::kYes); return Result::Ok(); } diff --git a/third_party/skia/dm/DMSrcSink.h b/third_party/skia/dm/DMSrcSink.h index da234b1dbf97..b8dabd6ed7c0 100644 --- a/third_party/skia/dm/DMSrcSink.h +++ b/third_party/skia/dm/DMSrcSink.h @@ -313,28 +313,6 @@ class SkottieSrc final : public Src { }; #endif -#if defined(SK_ENABLE_SKRIVE) -class SkRiveSrc final : public Src { -public: - explicit SkRiveSrc(Path path); - - Result draw(GrDirectContext*, SkCanvas*) const override; - SkISize size() const override; - Name name() const override; - bool veto(SinkFlags) const override; - -private: - // Generates a kTileCount x kTileCount filmstrip with evenly distributed frames. - inline static constexpr int kTileCount = 5; - - // Fit kTileCount x kTileCount frames to a 1000x1000 film strip. - inline static constexpr SkScalar kTargetSize = 1000; - inline static constexpr SkScalar kTileSize = kTargetSize / kTileCount; - - const Path fPath; -}; -#endif - #if defined(SK_ENABLE_SVG) } // namespace DM @@ -395,7 +373,8 @@ class GPUSink : public Sink { Result draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; Result onDraw(const Src&, SkBitmap*, SkWStream*, SkString*, const GrContextOptions& baseOptions, - std::function initContext = nullptr) const; + std::function initContext = nullptr, + std::function wrapCanvas = nullptr) const; sk_gpu_test::GrContextFactory::ContextType contextType() const { return fContextType; } const sk_gpu_test::GrContextFactory::ContextOverrides& contextOverrides() const { @@ -432,6 +411,15 @@ class GPUSink : public Sink { sk_gpu_test::MemoryCache fMemoryCache; }; +// Wrap a gpu canvas in one that routes all text draws through GrSlugs. +// Note that text blobs that have an RSXForm aren't converted. +class GPUSlugSink : public GPUSink { +public: + GPUSlugSink(const SkCommandLineConfigGpu*, const GrContextOptions&); + + Result draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; +}; + class GPUThreadTestingSink : public GPUSink { public: GPUThreadTestingSink(const SkCommandLineConfigGpu*, const GrContextOptions&); diff --git a/third_party/skia/docker/skia-wasm-release/Dockerfile b/third_party/skia/docker/skia-wasm-release/Dockerfile index 454807542ba2..c3820b12fcce 100644 --- a/third_party/skia/docker/skia-wasm-release/Dockerfile +++ b/third_party/skia/docker/skia-wasm-release/Dockerfile @@ -10,6 +10,8 @@ RUN cd /tmp \ ENV PATH=${PATH}:/tmp/depot_tools +# See skbug.com/13128 +ENV DEPOT_TOOLS_UPDATE=0 # Checkout Skia using fetch from depot_tools RUN mkdir -p /tmp/skia \ && cd /tmp/skia \ @@ -45,10 +47,8 @@ RUN cd /tmp/skia/skia \ RUN /tmp/skia/skia/modules/pathkit/compile.sh # CanvasKit should be in /tmp/skia/skia/out/canvaskit_wasm -RUN /tmp/skia/skia/modules/canvaskit/compile.sh - -# Debugger should be in /tmp/skia/skia/out/debugger_wasm -RUN /tmp/skia/skia/experimental/wasm-skp-debugger/compile.sh +# We also want to include the debugger bindings to run debugger.skia.org +RUN /tmp/skia/skia/modules/canvaskit/compile.sh enable_debugger RUN cd /tmp/skia/skia && git rev-parse HEAD > /tmp/VERSION @@ -71,5 +71,3 @@ COPY --from=builder /tmp/skia/skia/out/pathkit/pathkit* /tmp/pathkit/ COPY --from=builder /tmp/skia/skia/out/canvaskit_wasm/canvaskit* /tmp/canvaskit/ COPY --from=builder /tmp/skia/skia/modules/canvaskit/npm_build/types/index.d.ts /tmp/canvaskit/canvaskit.d.ts - -COPY --from=builder /tmp/skia/skia/out/debugger_wasm/debugger* /tmp/debugger/ diff --git a/third_party/skia/example/BUILD.bazel b/third_party/skia/example/BUILD.bazel index 165223c38fc0..977f85b0c523 100644 --- a/third_party/skia/example/BUILD.bazel +++ b/third_party/skia/example/BUILD.bazel @@ -1,18 +1,13 @@ load("//bazel:macros.bzl", "generated_cc_atom") load("//bazel:cc_binary_with_flags.bzl", "cc_binary_with_flags") +licenses(["notice"]) + cc_binary_with_flags( - name = "hello_world", + name = "hello_world_gl", srcs = [ "//example:HelloWorld_src", ], - linkopts = [ - "-lX11", - "-lxcb", - "-lXau", - "-lXdmcp", - "-lGL", - ], # These flags are defined in //bazel/common_config_settings/BUILD.bazel set_flags = { # Use the GL backend with the normal GL standard (as opposed to WebGL or GLES) @@ -30,11 +25,73 @@ cc_binary_with_flags( }, deps = [ "//:skia_core", - "//src/utils:json_srcs", "//tools/sk_app", ], ) +cc_binary_with_flags( + name = "hello_world_vulkan", + srcs = [ + "//example:HelloWorld_src", + ], + # These flags are defined in //bazel/common_config_settings/BUILD.bazel + set_flags = { + "gpu_backend": [ + "vulkan_backend", + ], + # 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_core", + "//tools/sk_app", + ], +) + +cc_binary_with_flags( + name = "hello_world_dawn", + srcs = [ + "//example:HelloWorld_src", + ], + # These flags are defined in //bazel/common_config_settings/BUILD.bazel + set_flags = { + "gpu_backend": [ + "dawn_backend", + ], + # 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_core", + "//tools/sk_app", + ], +) + +cc_binary_with_flags( + name = "vulkan_basic", + srcs = [ + "//example:VulkanBasic_src", + ], + # These flags are defined in //bazel/common_config_settings/BUILD.bazel + set_flags = { + "gpu_backend": [ + "vulkan_backend", + ], + }, + deps = [ + "//:skia_core", + # This DEPS is for the utility in the demo for creating a vulkan context. + # Outside clients would not need it. + "//tools/gpu/vk:VkTestUtils_src", + ], +) + # Everything below this line is autogenerated by gazelle using the C++ plugin built here: # https://github.com/google/skia-buildbot/tree/main/bazel/gazelle/cpp # These can be regenerated (if needed) by navigating to //bazel and running `make generate` @@ -63,3 +120,17 @@ generated_cc_atom( "//include/effects:SkGradientShader_hdr", ], ) + +generated_cc_atom( + name = "VulkanBasic_src", + srcs = ["VulkanBasic.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkCanvas_hdr", + "//include/core:SkSurface_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu/vk:GrVkBackendContext_hdr", + "//include/gpu/vk:GrVkExtensions_hdr", + "//tools/gpu/vk:VkTestUtils_hdr", + ], +) diff --git a/third_party/skia/example/HelloWorld.cpp b/third_party/skia/example/HelloWorld.cpp index c947e7b12a2f..51b505fdfb65 100644 --- a/third_party/skia/example/HelloWorld.cpp +++ b/third_party/skia/example/HelloWorld.cpp @@ -20,8 +20,16 @@ Application* Application::Create(int argc, char** argv, void* platformData) { } HelloWorld::HelloWorld(int argc, char** argv, void* platformData) - : fBackendType(Window::kNativeGL_BackendType) - , fRotationAngle(0) { +#if defined(SK_GL) + : 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 + fRotationAngle(0) { SkGraphics::Init(); fWindow = Window::CreateNativeWindow(platformData); @@ -39,12 +47,25 @@ HelloWorld::~HelloWorld() { } void HelloWorld::updateTitle() { - if (!fWindow || fWindow->sampleCount() <= 1) { + if (!fWindow) { return; } SkString title("Hello World "); - title.append(Window::kRaster_BackendType == fBackendType ? "Raster" : "OpenGL"); + if (Window::kRaster_BackendType == fBackendType) { + title.append("Raster"); + } else { +#if defined(SK_GL) + title.append("GL"); +#elif defined(SK_VULKAN) + title.append("Vulkan"); +#elif defined(SK_DAWN) + title.append("Dawn"); +#else + title.append("Unknown GPU backend"); +#endif + } + fWindow->setTitle(title.c_str()); } @@ -111,8 +132,20 @@ void HelloWorld::onIdle() { bool HelloWorld::onChar(SkUnichar c, skui::ModifierKey modifiers) { if (' ' == c) { - fBackendType = Window::kRaster_BackendType == fBackendType ? Window::kNativeGL_BackendType - : Window::kRaster_BackendType; + if (Window::kRaster_BackendType == fBackendType) { +#if defined(SK_GL) + 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; +#endif + } else { + fBackendType = Window::kRaster_BackendType; + } fWindow->detach(); fWindow->attach(fBackendType); } diff --git a/third_party/skia/example/VulkanBasic.cpp b/third_party/skia/example/VulkanBasic.cpp new file mode 100644 index 000000000000..6f2bd2d710d0 --- /dev/null +++ b/third_party/skia/example/VulkanBasic.cpp @@ -0,0 +1,122 @@ +/* + * 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 "include/core/SkCanvas.h" +#include "include/core/SkSurface.h" +#include "include/gpu/GrDirectContext.h" +#include "include/gpu/vk/GrVkBackendContext.h" +#include "include/gpu/vk/GrVkExtensions.h" + +#include "tools/gpu/vk/VkTestUtils.h" + +#include + +#include + +#define ACQUIRE_INST_VK_PROC(name) \ + do { \ + fVk##name = reinterpret_cast(getProc("vk" #name, backendContext.fInstance, \ + VK_NULL_HANDLE)); \ + if (fVk##name == nullptr) { \ + SkDebugf("Function ptr for vk%s could not be acquired\n", #name); \ + return 1; \ + } \ + } while(false) + +int main(int argc, char** argv) { + GrVkBackendContext backendContext; + VkDebugReportCallbackEXT debugCallback; + std::unique_ptr extensions(new GrVkExtensions()); + std::unique_ptr features(new VkPhysicalDeviceFeatures2); + + // First we need to create a GrVkBackendContext so that we can make a Vulkan GrDirectContext. + // The vast majority of this chunk of code is setting up the VkInstance and VkDevice objects. + // Normally a client will have their own way of creating these objects. This example uses Skia's + // test helper sk_gpu_test::CreateVkBackendContext to aid in this. Clients can look at this + // function as a guide on things to consider when setting up Vulkan for themselves, but they + // should not depend on that function. We may arbitrarily change it as it is meant only for Skia + // internal testing. Additionally it may do some odd things that a normal Vulkan user wouldn't + // do because it is againt meant for Skia testing. + { + PFN_vkGetInstanceProcAddr instProc; + if (!sk_gpu_test::LoadVkLibraryAndGetProcAddrFuncs(&instProc)) { + return 1; + } + + memset(features.get(), 0, sizeof(VkPhysicalDeviceFeatures2)); + features->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; + features->pNext = nullptr; + // Fill in features you want to enable here + + backendContext.fInstance = VK_NULL_HANDLE; + backendContext.fDevice = VK_NULL_HANDLE; + + if (!sk_gpu_test::CreateVkBackendContext(instProc, &backendContext, extensions.get(), + features.get(), &debugCallback)) { + return 1; + } + } + + auto getProc = backendContext.fGetProc; + PFN_vkDestroyInstance fVkDestroyInstance; + PFN_vkDestroyDebugReportCallbackEXT fVkDestroyDebugReportCallbackEXT = nullptr; + PFN_vkDestroyDevice fVkDestroyDevice; + ACQUIRE_INST_VK_PROC(DestroyInstance); + if (debugCallback != VK_NULL_HANDLE) { + ACQUIRE_INST_VK_PROC(DestroyDebugReportCallbackEXT); + } + ACQUIRE_INST_VK_PROC(DestroyDevice); + + // Create a GrDirectContext with our GrVkBackendContext + sk_sp context = GrDirectContext::MakeVulkan(backendContext); + if (!context) { + fVkDestroyDevice(backendContext.fDevice, nullptr); + if (debugCallback != VK_NULL_HANDLE) { + fVkDestroyDebugReportCallbackEXT(backendContext.fInstance, debugCallback, nullptr); + } + fVkDestroyInstance(backendContext.fInstance, nullptr); + return 1; + } + + SkImageInfo imageInfo = SkImageInfo::Make(16, 16, kRGBA_8888_SkColorType, kPremul_SkAlphaType); + + // Create an SkSurface backed by a Vulkan VkImage. Often clients will be getting VkImages from + // swapchains. In those cases they should use SkSurface::MakeFromBackendTexture or + // SkSurface::MakeFromBackendRenderTarget to wrap those premade VkImages in Skia. See the + // HelloWorld example app to see how this is done. + sk_sp surface = SkSurface::MakeRenderTarget(context.get(), + SkBudgeted::kYes, + imageInfo); + if (!surface) { + context.reset(); + fVkDestroyDevice(backendContext.fDevice, nullptr); + if (debugCallback != VK_NULL_HANDLE) { + fVkDestroyDebugReportCallbackEXT(backendContext.fInstance, debugCallback, nullptr); + } fVkDestroyInstance(backendContext.fInstance, nullptr); + return 1; + } + + surface->getCanvas()->clear(SK_ColorRED); + + // After drawing to our surface, we must first flush the recorded work (i.e. convert all our + // recorded SkCanvas calls into a VkCommandBuffer). Then we call submit to submit our + // VkCommandBuffers to the gpu queue. + surface->flush(); + context->submit(); + + surface.reset(); + context.reset(); + + // Skia doesn't own the VkDevice or VkInstance so the client must manage their lifetime. The + // client must not delete these objects until cleaning up all Skia objects that may have used + // them first. + fVkDestroyDevice(backendContext.fDevice, nullptr); + if (debugCallback != VK_NULL_HANDLE) { + fVkDestroyDebugReportCallbackEXT(backendContext.fInstance, debugCallback, nullptr); + } fVkDestroyInstance(backendContext.fInstance, nullptr); + return 0; +} diff --git a/third_party/skia/experimental/bazel_test/BUILD.bazel b/third_party/skia/experimental/bazel_test/BUILD.bazel index 1b777efec0f0..59509f54fb8b 100644 --- a/third_party/skia/experimental/bazel_test/BUILD.bazel +++ b/third_party/skia/experimental/bazel_test/BUILD.bazel @@ -1,7 +1,11 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") load("@rules_cc//cc:defs.bzl", "cc_binary") load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") +licenses(["notice"]) + +enforce_iwyu_on_package() + cc_binary( name = "bazel_test_exe", visibility = ["//:__subpackages__"], diff --git a/third_party/skia/experimental/bazel_test/bazel_test.cpp b/third_party/skia/experimental/bazel_test/bazel_test.cpp index 290a87dff11c..984b261e6361 100644 --- a/third_party/skia/experimental/bazel_test/bazel_test.cpp +++ b/third_party/skia/experimental/bazel_test/bazel_test.cpp @@ -1,11 +1,14 @@ // Copyright 2020 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/SkTypes.h" + #include "png.h" + +#include #include #include -#include "include/core/SkTypes.h" - void print_localtime() { std::time_t result = std::time(nullptr); std::cout << std::asctime(std::localtime(&result)); diff --git a/third_party/skia/experimental/ffmpeg/BUILD.bazel b/third_party/skia/experimental/ffmpeg/BUILD.bazel index 7acb83617ede..61d533baa07d 100644 --- a/third_party/skia/experimental/ffmpeg/BUILD.bazel +++ b/third_party/skia/experimental/ffmpeg/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkVideoDecoder_hdr", hdrs = ["SkVideoDecoder.h"], @@ -13,8 +15,10 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkVideoDecoder_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", + "//include/core:SkStream_hdr", "//include/core:SkYUVAPixmaps_hdr", ], ) diff --git a/third_party/skia/experimental/ffmpeg/SkVideoDecoder.cpp b/third_party/skia/experimental/ffmpeg/SkVideoDecoder.cpp index e5ade148a854..fdcadbf38c23 100644 --- a/third_party/skia/experimental/ffmpeg/SkVideoDecoder.cpp +++ b/third_party/skia/experimental/ffmpeg/SkVideoDecoder.cpp @@ -6,8 +6,10 @@ */ #include "experimental/ffmpeg/SkVideoDecoder.h" +#include "include/core/SkBitmap.h" #include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" +#include "include/core/SkStream.h" #include "include/core/SkYUVAPixmaps.h" static SkYUVColorSpace get_yuvspace(AVColorSpace space) { diff --git a/third_party/skia/experimental/ffmpeg/SkVideoDecoder.h b/third_party/skia/experimental/ffmpeg/SkVideoDecoder.h index 85c25a748a03..2a8b721c9e90 100644 --- a/third_party/skia/experimental/ffmpeg/SkVideoDecoder.h +++ b/third_party/skia/experimental/ffmpeg/SkVideoDecoder.h @@ -18,6 +18,8 @@ extern "C" { #include "libswscale/swscale.h" } +class SkStream; + class SkVideoDecoder { public: SkVideoDecoder(GrRecordingContext* = nullptr); diff --git a/third_party/skia/experimental/graphite/include/GraphiteTypes.h b/third_party/skia/experimental/graphite/include/GraphiteTypes.h deleted file mode 100644 index 1725a0be99ee..000000000000 --- a/third_party/skia/experimental/graphite/include/GraphiteTypes.h +++ /dev/null @@ -1,50 +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 skgpu_GraphiteTypes_DEFINED -#define skgpu_GraphiteTypes_DEFINED - -#include "include/core/SkTypes.h" -#include "include/private/SkVx.h" - -namespace skgpu { - -/** - * Actually submit work to the GPU and track its completion - */ -enum class SyncToCpu : bool { - kYes = true, - kNo = false -}; - -/** - * Possible 3D APIs that may be used by Graphite. - */ -enum class BackendApi : unsigned { - kMetal, - kMock, -}; - -/** - * Is the texture mipmapped or not - */ -enum class Mipmapped: bool { - kNo = false, - kYes = true, -}; - -/** - * Is the data protected on the GPU or not. - */ -enum class Protected : bool { - kNo = false, - kYes = true, -}; - -} // namespace skgpu - -#endif // skgpu_GraphiteTypes_DEFINED diff --git a/third_party/skia/experimental/graphite/include/Recording.h b/third_party/skia/experimental/graphite/include/Recording.h deleted file mode 100644 index 0dce3362e7f1..000000000000 --- a/third_party/skia/experimental/graphite/include/Recording.h +++ /dev/null @@ -1,32 +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 skgpu_Recording_DEFINED -#define skgpu_Recording_DEFINED - -#include "include/core/SkRefCnt.h" - -namespace skgpu { - -class CommandBuffer; - -class Recording final { -public: - ~Recording(); - -protected: -private: - friend class Context; // for access fCommandBuffer - friend class Recorder; // for ctor - Recording(sk_sp); - - sk_sp fCommandBuffer; -}; - -} // namespace skgpu - -#endif // skgpu_Recording_DEFINED diff --git a/third_party/skia/experimental/graphite/include/mtl/MtlBackendContext.h b/third_party/skia/experimental/graphite/include/mtl/MtlBackendContext.h deleted file mode 100644 index c3afafaa30e2..000000000000 --- a/third_party/skia/experimental/graphite/include/mtl/MtlBackendContext.h +++ /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. - */ - -#ifndef skgpu_MtlBackendContext_DEFINED -#define skgpu_MtlBackendContext_DEFINED - -#include "experimental/graphite/include/mtl/MtlTypes.h" - -namespace skgpu::mtl { - -// The BackendContext contains all of the base Metal objects needed by the MtlGpu. The assumption -// is that the client will set these up and pass them to the MtlGpu constructor. -struct SK_API BackendContext { - sk_cfp fDevice; - sk_cfp fQueue; -}; - -} // namespace skgpu::mtl - -#endif // skgpu_MtlBackendContext_DEFINED diff --git a/third_party/skia/experimental/graphite/src/Caps.cpp b/third_party/skia/experimental/graphite/src/Caps.cpp deleted file mode 100644 index ae67912fbb77..000000000000 --- a/third_party/skia/experimental/graphite/src/Caps.cpp +++ /dev/null @@ -1,33 +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 "experimental/graphite/src/Caps.h" - -#include "experimental/graphite/include/TextureInfo.h" -#include "src/sksl/SkSLUtil.h" - -namespace skgpu { - -Caps::Caps() {} -Caps::~Caps() {} - -bool Caps::isTexturable(const TextureInfo& info) const { - if (info.numSamples() > 1) { - return false; - } - return this->onIsTexturable(info); -} - -bool Caps::areColorTypeAndTextureInfoCompatible(SkColorType type, const TextureInfo& info) const { - if (type == kUnknown_SkColorType) { - return false; - } - - return this->onAreColorTypeAndTextureInfoCompatible(type, info); -} - -} // namespace skgpu diff --git a/third_party/skia/experimental/graphite/src/Context.cpp b/third_party/skia/experimental/graphite/src/Context.cpp deleted file mode 100644 index 01aaedefb8a4..000000000000 --- a/third_party/skia/experimental/graphite/src/Context.cpp +++ /dev/null @@ -1,121 +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 "experimental/graphite/include/Context.h" - -#include "experimental/graphite/include/BackendTexture.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/include/Recording.h" -#include "experimental/graphite/include/TextureInfo.h" -#include "experimental/graphite/src/Caps.h" -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/GlobalCache.h" -#include "experimental/graphite/src/Gpu.h" -#include "experimental/graphite/src/GraphicsPipelineDesc.h" -#include "experimental/graphite/src/Renderer.h" -#include "experimental/graphite/src/ResourceProvider.h" -#include "include/core/SkPathTypes.h" -#include "src/core/SkKeyHelpers.h" -#include "src/core/SkShaderCodeDictionary.h" - -#ifdef SK_METAL -#include "experimental/graphite/src/mtl/MtlTrampoline.h" -#endif - -namespace skgpu { - -Context::Context(sk_sp gpu, BackendApi backend) - : fGpu(std::move(gpu)) - , fGlobalCache(sk_make_sp()) - , fBackend(backend) { -} -Context::~Context() {} - -#ifdef SK_METAL -std::unique_ptr Context::MakeMetal(const mtl::BackendContext& backendContext) { - sk_sp gpu = mtl::Trampoline::MakeGpu(backendContext); - if (!gpu) { - return nullptr; - } - - return std::unique_ptr(new Context(std::move(gpu), BackendApi::kMetal)); -} -#endif - -std::unique_ptr Context::makeRecorder() { - return std::unique_ptr(new Recorder(fGpu, fGlobalCache)); -} - -void Context::insertRecording(std::unique_ptr recording) { - fRecordings.emplace_back(std::move(recording)); -} - -void Context::submit(SyncToCpu syncToCpu) { - // TODO: we want Gpu::submit to take an array of command buffers but, for now, it just takes - // one. Once we have more than one recording queued up we will need to extract the - // command buffers and submit them as a block. - SkASSERT(fRecordings.size() == 1); - fGpu->submit(fRecordings[0]->fCommandBuffer); - - fGpu->checkForFinishedWork(syncToCpu); - fRecordings.clear(); -} - -void Context::preCompile(const PaintCombo& paintCombo) { - static const Renderer* kRenderers[] = { - &Renderer::StencilAndFillPath(SkPathFillType::kWinding), - &Renderer::StencilAndFillPath(SkPathFillType::kEvenOdd), - &Renderer::StencilAndFillPath(SkPathFillType::kInverseWinding), - &Renderer::StencilAndFillPath(SkPathFillType::kInverseEvenOdd) - }; - - SkShaderCodeDictionary* dict = fGlobalCache->shaderCodeDictionary(); - - for (auto bm: paintCombo.fBlendModes) { - for (auto& shaderCombo: paintCombo.fShaders) { - for (auto shaderType: shaderCombo.fTypes) { - for (auto tm: shaderCombo.fTileModes) { - std::unique_ptr key = CreateKey(dict, SkBackend::kGraphite, - shaderType, tm, bm); - auto entry = dict->findOrCreate(std::move(key)); - - GraphicsPipelineDesc desc; - - for (const Renderer* r : kRenderers) { - for (auto&& s : r->steps()) { - if (s->performsShading()) { - desc.setProgram(s, entry->uniqueID()); - } - // TODO: Combine with renderpass description set to generate full - // GraphicsPipeline and MSL program. Cache that compiled pipeline on - // the resource provider in a map from desc -> pipeline so that any - // later desc created from equivalent RenderStep + Combination get it. - } - } - } - } - } - } - // TODO: Iterate over the renderers and make descriptions for the steps that don't perform - // shading, and just use ShaderType::kNone. -} - -BackendTexture Context::createBackendTexture(SkISize dimensions, const TextureInfo& info) { - if (!info.isValid() || info.backend() != this->backend()) { - return {}; - } - return fGpu->createBackendTexture(dimensions, info); -} - -void Context::deleteBackendTexture(BackendTexture& texture) { - if (!texture.isValid() || texture.backend() != this->backend()) { - return; - } - fGpu->deleteBackendTexture(texture); -} - -} // namespace skgpu diff --git a/third_party/skia/experimental/graphite/src/ContextUtils.cpp b/third_party/skia/experimental/graphite/src/ContextUtils.cpp deleted file mode 100644 index ddea44d614cc..000000000000 --- a/third_party/skia/experimental/graphite/src/ContextUtils.cpp +++ /dev/null @@ -1,40 +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 "experimental/graphite/src/ContextUtils.h" - -#include -#include "experimental/graphite/src/ContextPriv.h" -#include "experimental/graphite/src/DrawTypes.h" -#include "experimental/graphite/src/PaintParams.h" -#include "include/core/SkPaint.h" -#include "include/private/SkUniquePaintParamsID.h" -#include "src/core/SkBlenderBase.h" -#include "src/core/SkKeyHelpers.h" -#include "src/core/SkShaderCodeDictionary.h" -#include "src/core/SkUniform.h" -#include "src/core/SkUniformData.h" - -namespace skgpu { - -std::tuple> ExtractPaintData( - SkShaderCodeDictionary* dict, - const PaintParams& p) { - - SkPaintParamsKeyBuilder builder(dict); - std::unique_ptr block = std::make_unique(); - - p.toKey(dict, SkBackend::kGraphite, &builder, block.get()); - - std::unique_ptr key = builder.snap(); - - auto entry = dict->findOrCreate(std::move(key)); - - return { entry->uniqueID(), std::move(block) }; -} - -} // namespace skgpu diff --git a/third_party/skia/experimental/graphite/src/ContextUtils.h b/third_party/skia/experimental/graphite/src/ContextUtils.h deleted file mode 100644 index 443e0e178163..000000000000 --- a/third_party/skia/experimental/graphite/src/ContextUtils.h +++ /dev/null @@ -1,31 +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 skgpu_ContextUtils_DEFINED -#define skgpu_ContextUtils_DEFINED - -#include "experimental/graphite/include/Context.h" -#include "include/core/SkBlendMode.h" -#include "include/core/SkSpan.h" -#include "include/core/SkTileMode.h" - -enum class CodeSnippetID : uint8_t; -class SkShaderCodeDictionary; -class SkUniform; -class SkUniformBlock; -class SkUniquePaintParamsID; - -namespace skgpu { - -class PaintParams; - -std::tuple> ExtractPaintData( - SkShaderCodeDictionary*, const PaintParams&); - -} // namespace skgpu - -#endif // skgpu_ContextUtils_DEFINED diff --git a/third_party/skia/experimental/graphite/src/DrawBufferManager.h b/third_party/skia/experimental/graphite/src/DrawBufferManager.h deleted file mode 100644 index cd3aa1f09fc8..000000000000 --- a/third_party/skia/experimental/graphite/src/DrawBufferManager.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2021 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef skgpu_DrawBufferManager_DEFINED -#define skgpu_DrawBufferManager_DEFINED - -#include "experimental/graphite/src/DrawTypes.h" -#include "include/core/SkRefCnt.h" -#include "src/gpu/BufferWriter.h" - -#include - -namespace skgpu { - -class Buffer; -class CommandBuffer; -class ResourceProvider; - -class DrawBufferManager { -public: - DrawBufferManager(ResourceProvider*, size_t uniformStartAlignment); - ~DrawBufferManager(); - - std::tuple getVertexWriter(size_t requiredBytes); - std::tuple getIndexWriter(size_t requiredBytes); - std::tuple getUniformWriter(size_t requiredBytes); - - // Finalizes all buffers and transfers ownership of them to the CommandBuffer. - void transferToCommandBuffer(CommandBuffer*); - -private: - ResourceProvider* fResourceProvider; - - sk_sp fCurrentVertexBuffer; - size_t fVertexOffset = 0; - - sk_sp fCurrentIndexBuffer; - size_t fIndexOffset = 0; - - sk_sp fCurrentUniformBuffer; - size_t fUniformOffset = 0; - - size_t fUniformStartAlignment; - - std::vector> fUsedBuffers; -}; - -} // namespace skgpu - -#endif // skgpu_DrawBufferManager_DEFINED diff --git a/third_party/skia/experimental/graphite/src/DrawList.cpp b/third_party/skia/experimental/graphite/src/DrawList.cpp deleted file mode 100644 index a42e166b9746..000000000000 --- a/third_party/skia/experimental/graphite/src/DrawList.cpp +++ /dev/null @@ -1,69 +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 "experimental/graphite/src/DrawList.h" - -#include "experimental/graphite/src/Renderer.h" -#include "src/gpu/BufferWriter.h" - -namespace skgpu { - -const Transform& DrawList::deduplicateTransform(const Transform& localToDevice) { - // TODO: This is a pretty simple deduplication strategy and doesn't take advantage of the stack - // knowledge that Device has. - if (fTransforms.empty() || fTransforms.back() != localToDevice) { - fTransforms.push_back(localToDevice); - } - return fTransforms.back(); -} - -void DrawList::stencilAndFillPath(const Transform& localToDevice, - const Shape& shape, - const Clip& clip, - DrawOrder ordering, - const PaintParams* paint) { - SkASSERT(localToDevice.valid()); - SkASSERT(!shape.isEmpty() && !clip.drawBounds().isEmptyNegativeOrNaN()); - - const Renderer& renderer = Renderer::StencilAndFillPath(shape.fillType()); - fDraws.push_back({renderer, this->deduplicateTransform(localToDevice), - shape, clip, ordering, paint, nullptr}); - fRenderStepCount += renderer.numRenderSteps(); -} - -void DrawList::fillConvexPath(const Transform& localToDevice, - const Shape& shape, - const Clip& clip, - DrawOrder ordering, - const PaintParams* paint) { - SkASSERT(localToDevice.valid()); - SkASSERT(!shape.isEmpty() && !clip.drawBounds().isEmptyNegativeOrNaN()); - // TODO actually record this, but for now just drop the draw since the Renderer - // isn't implemented yet - // fDraws.push_back({Renderer::FillConvexPath(), - // this->deduplicateTransform(localToDevice), - // shape, clip, ordering, paint, nullptr}); - // fRenderStepCount += Renderer::FillConvexPath().numRenderSteps(); -} - -void DrawList::strokePath(const Transform& localToDevice, - const Shape& shape, - const StrokeParams& stroke, - const Clip& clip, - DrawOrder ordering, - const PaintParams* paint) { - SkASSERT(localToDevice.valid()); - SkASSERT(!shape.isEmpty() && !clip.drawBounds().isEmptyNegativeOrNaN()); - // TODO actually record this, but for now just drop the draw since the Renderer - // isn't implemented yet - // fDraws.push_back({Renderer::StrokePath(), - // this->deduplicateTransform(localToDevice), - // shape, clip, ordering, paint, stroke}); - // fRenderStepCount += Renderer::StrokePath().numRenderSteps(); -} - -} // namespace skgpu diff --git a/third_party/skia/experimental/graphite/src/DrawList.h b/third_party/skia/experimental/graphite/src/DrawList.h deleted file mode 100644 index 8024d741bd1b..000000000000 --- a/third_party/skia/experimental/graphite/src/DrawList.h +++ /dev/null @@ -1,202 +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 skgpu_DrawList_DEFINED -#define skgpu_DrawList_DEFINED - -#include "include/core/SkPaint.h" -#include "src/core/SkTBlockList.h" - -#include "experimental/graphite/src/DrawOrder.h" -#include "experimental/graphite/src/PaintParams.h" -#include "experimental/graphite/src/geom/Shape.h" -#include "experimental/graphite/src/geom/Transform_graphite.h" - -#include -#include - -class SkPath; -class SkShader; -struct SkIRect; - -namespace skgpu { - -class Renderer; - -// NOTE: Only represents the stroke or hairline styles; stroke-and-fill must be handled higher up. -class StrokeParams { -public: - StrokeParams() : fHalfWidth(0.f), fJoinLimit(0.f), fCap(SkPaint::kButt_Cap) {} - StrokeParams(float width, - float miterLimit, - SkPaint::Join join, - SkPaint::Cap cap) - : fHalfWidth(std::max(0.f, 0.5f * width)) - , fJoinLimit(join == SkPaint::kMiter_Join ? std::max(0.f, miterLimit) : - (join == SkPaint::kBevel_Join ? 0.f : -1.f)) - , fCap(cap) {} - - StrokeParams(const StrokeParams&) = default; - - StrokeParams& operator=(const StrokeParams&) = default; - - bool isMiterJoin() const { return fJoinLimit > 0.f; } - bool isBevelJoin() const { return fJoinLimit == 0.f; } - bool isRoundJoin() const { return fJoinLimit < 0.f; } - - float halfWidth() const { return fHalfWidth; } - float width() const { return 2.f * fHalfWidth; } - float miterLimit() const { return std::max(0.f, fJoinLimit); } - SkPaint::Cap cap() const { return fCap; } - SkPaint::Join join() const { - return fJoinLimit > 0.f ? SkPaint::kMiter_Join : - (fJoinLimit == 0.f ? SkPaint::kBevel_Join : SkPaint::kRound_Join); - } - -private: - float fHalfWidth; // >0: relative to transform; ==0: hairline, 1px in device space - float fJoinLimit; // >0: miter join; ==0: bevel join; <0: round join - SkPaint::Cap fCap; -}; - -// TBD: Separate DashParams extracted from an SkDashPathEffect? Or folded into StrokeParams? - -class Clip { -public: - Clip(const Rect& drawBounds, const SkIRect& scissor) - : fDrawBounds(drawBounds) - , fScissor(scissor) {} - - const Rect& drawBounds() const { return fDrawBounds; } - const SkIRect& scissor() const { return fScissor; } - -private: - // Draw bounds represent the tight bounds of the draw, including any padding/outset for stroking - // and intersected with the scissor. - // - DrawList assumes the DrawBounds are correct for a given shape, transform, and style. They - // are provided to the DrawList to avoid re-calculating the same bounds. - Rect fDrawBounds; - // The scissor must contain fDrawBounds, and must already be intersected with the device bounds. - SkIRect fScissor; - // TODO: If we add more complex analytic shapes for clipping, e.g. coverage rrect, it should - // go here. -}; - -/** - * A DrawList represents a collection of drawing commands (and related clip/shading state) in - * a form that closely mirrors what can be rendered efficiently and directly by the GPU backend - * (while balancing how much pre-processing to do for draws that might get eliminated later due to - * occlusion culling). - * - * A draw command combines: - * - a shape - * - a transform - * - a primitive clip (not affected by the transform) - * - optional shading description (shader, color filter, blend mode, etc) - * - a draw ordering (compressed painters index, stencil set, and write/test depth) - * - * Commands are accumulated in an arbitrary order and then sorted by increasing sort z when the list - * is prepared into an actual command buffer. The result of a draw command is the rasterization of - * the transformed shape, restricted by its primitive clip (e.g. a scissor rect) and a depth test - * of "GREATER" vs. its write/test z. (A test of GREATER, as opposed to GEQUAL, avoids double hits - * for draws that may have overlapping geometry, e.g. stroking.) If the command has a shading - * description, the color buffer will be modified; if not, it will be a depth-only draw. - * - * In addition to sorting the collected commands, the command list can be optimized during - * preparation. Commands that are fully occluded by later operations can be skipped entirely without - * affecting the final results. Adjacent commands (post sort) that would use equivalent GPU - * pipelines are merged to produce fewer (but larger) operations on the GPU. - * - * Other than flush-time optimizations (sort, cull, and merge), the command list does what you tell - * it to. Draw-specific simplification, style application, and advanced clipping should be handled - * at a higher layer. - */ -class DrawList { -public: - // The maximum number of draw calls that can be recorded into a DrawList before it must be - // converted to a DrawPass. The true fundamental limit is imposed by the limits of the depth - // attachment and precision of CompressedPaintersOrder and PaintDepth. These values can be - // shared by multiple draw calls so it's more difficult to reason about how much room is left - // in a DrawList. Limiting it to this keeps tracking simple and ensures that the sequences in - // DrawOrder cannot overflow since they are always less than or equal to the number of draws. - static constexpr int kMaxDraws = std::numeric_limits::max(); - - // NOTE: All path rendering functions, e.g. [fill|stroke|...]Path() that take a Shape - // draw using the same underlying techniques regardless of the shape's type. If a Shape has - // a type matching a simpler primitive technique or coverage AA, the caller must explicitly - // invoke it to use that rendering algorithms. - // - // Additionally, DrawList requires that all Transforms passed to its draw calls be valid and - // assert as much; invalid transforms should be detected at the Device level or similar. - - void stencilAndFillPath(const Transform& localToDevice, - const Shape& shape, - const Clip& clip, - DrawOrder ordering, - const PaintParams* paint); - - void fillConvexPath(const Transform& localToDevice, - const Shape& shape, - const Clip& clip, - DrawOrder ordering, - const PaintParams* paint); - - void strokePath(const Transform& localToDevice, - const Shape& shape, - const StrokeParams& stroke, - const Clip& clip, - DrawOrder ordering, - const PaintParams* paint); - - // TODO: fill[R]Rect, stroke[R]Rect (will need to support per-edge aa and arbitrary quads) - // fillImage (per-edge aa and arbitrary quad, only if this fast path is required) - // dashPath(feasible for general paths?) - // dash[R]Rect(only if general dashPath isn't viable) - // dashLine(only if general or rrect version aren't viable) - - int drawCount() const { return fDraws.count(); } - int renderStepCount() const { return fRenderStepCount; } - -private: - friend class DrawPass; - - struct Draw { - const Renderer& fRenderer; // Statically defined by function that recorded the Draw - const Transform& fTransform; // Points to a transform in fTransforms - - Shape fShape; - Clip fClip; - DrawOrder fOrder; - - std::optional fPaintParams; // Not present implies depth-only draw - std::optional fStrokeParams; // Not present implies fill - - Draw(const Renderer& renderer, const Transform& transform, const Shape& shape, - const Clip& clip, DrawOrder order, const PaintParams* paint, - const StrokeParams* stroke) - : fRenderer(renderer) - , fTransform(transform) - , fShape(shape) - , fClip(clip) - , fOrder(order) - , fPaintParams(paint ? std::optional(*paint) : std::nullopt) - , fStrokeParams(stroke ? std::optional(*stroke) : std::nullopt) {} - }; - - // The returned Transform reference remains valid for the lifetime of the DrawList. - const Transform& deduplicateTransform(const Transform&); - - SkTBlockList fTransforms; - SkTBlockList fDraws; - - // Running total of RenderSteps for all draws, assuming nothing is culled - int fRenderStepCount; -}; - -} // namespace skgpu - -#endif // skgpu_DrawList_DEFINED diff --git a/third_party/skia/experimental/graphite/src/GpuWorkSubmission.h b/third_party/skia/experimental/graphite/src/GpuWorkSubmission.h deleted file mode 100644 index a4b5a7647c28..000000000000 --- a/third_party/skia/experimental/graphite/src/GpuWorkSubmission.h +++ /dev/null @@ -1,29 +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 skgpu_GpuWorkSubmission_DEFINED -#define skgpu_GpuWorkSubmission_DEFINED - -namespace skgpu { -class Gpu; - -class GpuWorkSubmission { -public: - virtual ~GpuWorkSubmission() = default; - - virtual bool isFinished() = 0; - virtual void waitUntilFinished(const Gpu*) = 0; - -protected: - GpuWorkSubmission() = default; - -private: -}; - -} // namespace skgpu - -#endif // skgpu_GpuWorkSubmission_DEFINED diff --git a/third_party/skia/experimental/graphite/src/Image_Graphite.cpp b/third_party/skia/experimental/graphite/src/Image_Graphite.cpp deleted file mode 100644 index 0ab29f6e0d68..000000000000 --- a/third_party/skia/experimental/graphite/src/Image_Graphite.cpp +++ /dev/null @@ -1,35 +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 "experimental/graphite/src/Image_Graphite.h" - -#if SK_SUPPORT_GPU -// TODO: move onAsFragmentProcessor off of SkImage_Base and remove this include -#include "src/gpu/GrFragmentProcessor.h" -#endif - -namespace skgpu { - -Image_Graphite::Image_Graphite(const SkImageInfo& ii) - : SkImage_Base(ii, kNeedNewImageUniqueID) { -} - -Image_Graphite::~Image_Graphite() {} - -#if SK_SUPPORT_GPU -std::unique_ptr Image_Graphite::onAsFragmentProcessor( - GrRecordingContext*, - SkSamplingOptions, - const SkTileMode[2], - const SkMatrix&, - const SkRect* subset, - const SkRect* domain) const { - return nullptr; -} -#endif - -} // namespace skgpu diff --git a/third_party/skia/experimental/graphite/src/Recording.cpp b/third_party/skia/experimental/graphite/src/Recording.cpp deleted file mode 100644 index 9a04fffecf76..000000000000 --- a/third_party/skia/experimental/graphite/src/Recording.cpp +++ /dev/null @@ -1,20 +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 "experimental/graphite/include/Recording.h" - -#include "experimental/graphite/src/CommandBuffer.h" - -namespace skgpu { - -Recording::Recording(sk_sp commandBuffer) - : fCommandBuffer(std::move(commandBuffer)){ -} - -Recording::~Recording() {} - -} // namespace skgpu diff --git a/third_party/skia/experimental/graphite/src/Resource.cpp b/third_party/skia/experimental/graphite/src/Resource.cpp deleted file mode 100644 index 49cf7b9f709d..000000000000 --- a/third_party/skia/experimental/graphite/src/Resource.cpp +++ /dev/null @@ -1,41 +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 "experimental/graphite/src/Resource.h" - -namespace skgpu { - -Resource::Resource(const Gpu* gpu) : fGpu(gpu), fUsageRefCnt(1), fCommandBufferRefCnt(0) { - // Normally the array index will always be set before the cache tries to read so there isn't - // a worry about this not being initialized. However, when we try to validate the cache in - // debug builds we may try to read a resources index before it has actually been set by the - // cache - SkDEBUGCODE(fCacheArrayIndex = -1); -} - -Resource::~Resource() { - // The cache should have released or destroyed this resource. - SkASSERT(this->wasDestroyed()); -} - -void Resource::notifyARefIsZero(LastRemovedRef removedRef) const { - // TODO: Eventually we'll go through the cache to release the resource, but for now we just do - // this immediately. - SkASSERT(removedRef == LastRemovedRef::kUsageRef); - Resource* mutableThis = const_cast(this); - mutableThis->freeGpuData(); -} - -void Resource::freeGpuData() { - SkASSERT(fGpu); - this->onFreeGpuData(); - fGpu = nullptr; - delete this; -} - -} // namespace skgpu - diff --git a/third_party/skia/experimental/graphite/src/Resource.h b/third_party/skia/experimental/graphite/src/Resource.h deleted file mode 100644 index 03613b562efe..000000000000 --- a/third_party/skia/experimental/graphite/src/Resource.h +++ /dev/null @@ -1,136 +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_Resource_DEFINED -#define skgpu_Resource_DEFINED - -#include "experimental/graphite/src/ResourceTypes.h" -#include "include/core/SkTypes.h" - -#include - -namespace skgpu { - -class Gpu; - -/** - * Base class for objects that can be kept in the ResourceCache. - */ -class Resource { -public: - Resource(const Resource&) = delete; - Resource(Resource&&) = delete; - Resource& operator=(const Resource&) = delete; - Resource& operator=(Resource&&) = delete; - - // Adds a usage ref to the resource. Named ref so we can easily manage usage refs with sk_sp. - void ref() const { - // Only the cache should be able to add the first usage ref to a resource. - SkASSERT(this->hasUsageRef()); - // No barrier required. - (void)fUsageRefCnt.fetch_add(+1, std::memory_order_relaxed); - } - - // Removes a usage ref from the resource - void unref() const { - SkASSERT(this->hasUsageRef()); - // A release here acts in place of all releases we "should" have been doing in ref(). - if (1 == fUsageRefCnt.fetch_add(-1, std::memory_order_acq_rel)) { - this->notifyARefIsZero(LastRemovedRef::kUsageRef); - } - } - - // Adds a command buffer ref to the resource - void refCommandBuffer() const { - // No barrier required. - (void)fCommandBufferRefCnt.fetch_add(+1, std::memory_order_relaxed); - } - - // Removes a command buffer ref from the resource - void unrefCommandBuffer() const { - SkASSERT(this->hasCommandBufferRef()); - // A release here acts in place of all releases we "should" have been doing in ref(). - if (1 == fCommandBufferRefCnt.fetch_add(-1, std::memory_order_acq_rel)) { - this->notifyARefIsZero(LastRemovedRef::kCommandBufferRef); - } - } - - /** - * Tests whether a object has been abandoned or released. All objects will be in this state - * after their creating Context is destroyed or abandoned. - * - * @return true if the object has been released or abandoned, - * false otherwise. - */ - bool wasDestroyed() const { return fGpu == nullptr; } - - int* accessCacheIndex() const { return &fCacheArrayIndex; } - - uint32_t timestamp() const { return fTimestamp; } - void setTimestamp(uint32_t ts) { fTimestamp = ts; } - -protected: - Resource(const Gpu*); - virtual ~Resource(); - - /** Overridden to free GPU resources in the backend API. */ - virtual void onFreeGpuData() = 0; - -private: - bool hasUsageRef() const { - if (0 == fUsageRefCnt.load(std::memory_order_acquire)) { - // The acquire barrier is only really needed if we return true. It - // prevents code conditioned on the result of hasUsageRef() from running until previous - // owners are all totally done calling unref(). - return false; - } - return true; - } - - bool hasCommandBufferRef() const { - if (0 == fCommandBufferRefCnt.load(std::memory_order_acquire)) { - // The acquire barrier is only really needed if we return true. It - // prevents code conditioned on the result of hasCommandBufferRef() from running - // until previous owners are all totally done calling unrefCommandBuffer(). - return false; - } - return true; - } - - // Privileged method that allows going from ref count = 0 to ref count = 1. - void addInitialUsageRef() const { - SkASSERT(!this->hasUsageRef()); - // No barrier required. - (void)fUsageRefCnt.fetch_add(+1, std::memory_order_relaxed); - } - - void notifyARefIsZero(LastRemovedRef removedRef) const; - - /** - * Frees the object in the underlying 3D API. - */ - void freeGpuData(); - - // This is not ref'ed but abandon() or release() will be called before the Gpu object is - // destroyed. Those calls set will this to nullptr. - const Gpu* fGpu; - - mutable std::atomic fUsageRefCnt; - mutable std::atomic fCommandBufferRefCnt; - - // An index into a heap when this resource is purgeable or an array when not. This is maintained - // by the cache. - mutable int fCacheArrayIndex; - // This value reflects how recently this resource was accessed in the cache. This is maintained - // by the cache. - uint32_t fTimestamp; -}; - -} // namespace skgpu - -#endif // skgpu_Resource_DEFINED - diff --git a/third_party/skia/experimental/graphite/src/ResourceCache.cpp b/third_party/skia/experimental/graphite/src/ResourceCache.cpp deleted file mode 100644 index 7bd0344d73ab..000000000000 --- a/third_party/skia/experimental/graphite/src/ResourceCache.cpp +++ /dev/null @@ -1,30 +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 "experimental/graphite/src/ResourceCache.h" - -#include "experimental/graphite/src/Resource.h" -#include "include/private/SingleOwner.h" - -namespace skgpu { - -#define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(fSingleOwner) - -ResourceCache::ResourceCache(SingleOwner* singleOwner) : fSingleOwner(singleOwner) { -// TODO: Maybe when things start using ResourceCache, then like Ganesh the compiler won't complain -// about not using fSingleOwner in Release builds and we can delete this. -#ifndef SK_DEBUG - (void)fSingleOwner; -#endif -} - -void ResourceCache::insertResource(Resource* resource) { - ASSERT_SINGLE_OWNER - SkASSERT(resource); -} - -} // namespace skgpu diff --git a/third_party/skia/experimental/graphite/src/ResourceCache.h b/third_party/skia/experimental/graphite/src/ResourceCache.h deleted file mode 100644 index ac3e571665a0..000000000000 --- a/third_party/skia/experimental/graphite/src/ResourceCache.h +++ /dev/null @@ -1,51 +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_ResourceCache_DEFINED -#define skgpu_ResourceCache_DEFINED - -#include "experimental/graphite/src/Resource.h" -#include "include/private/SkTArray.h" -#include "include/private/SkTHash.h" -#include "src/core/SkTDPQueue.h" - -namespace skgpu { - -class SingleOwner; - -class ResourceCache { -public: - ResourceCache(SingleOwner*); - - ResourceCache(const ResourceCache&) = delete; - ResourceCache(ResourceCache&&) = delete; - ResourceCache& operator=(const ResourceCache&) = delete; - ResourceCache& operator=(ResourceCache&&) = delete; - - void insertResource(Resource*); - -private: - static bool CompareTimestamp(Resource* const& a, Resource* const& b) { - return a->timestamp() < b->timestamp(); - } - - static int* AccessResourceIndex(Resource* const& res) { - return res->accessCacheIndex(); - } - - using PurgeableQueue = SkTDPQueue; - using ResourceArray = SkTDArray; - - PurgeableQueue fPurgeableQueue; - ResourceArray fNonpurgeableResources; - - SingleOwner* fSingleOwner = nullptr; -}; - -} // namespace skgpu - -#endif // skgpu_ResourceCache_DEFINED diff --git a/third_party/skia/experimental/graphite/src/ResourceProvider.cpp b/third_party/skia/experimental/graphite/src/ResourceProvider.cpp deleted file mode 100644 index fbf5b53d5897..000000000000 --- a/third_party/skia/experimental/graphite/src/ResourceProvider.cpp +++ /dev/null @@ -1,100 +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 "experimental/graphite/src/ResourceProvider.h" - -#include "experimental/graphite/src/Buffer.h" -#include "experimental/graphite/src/Caps.h" -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/ContextPriv.h" -#include "experimental/graphite/src/GlobalCache.h" -#include "experimental/graphite/src/Gpu.h" -#include "experimental/graphite/src/GraphicsPipeline.h" -#include "experimental/graphite/src/Sampler.h" -#include "experimental/graphite/src/Texture.h" - -namespace skgpu { - -ResourceProvider::ResourceProvider(const Gpu* gpu, - sk_sp globalCache, - SingleOwner* singleOwner) - : fGpu(gpu) - , fResourceCache(singleOwner) - , fGlobalCache(std::move(globalCache)) { - fGraphicsPipelineCache.reset(new GraphicsPipelineCache(this)); -} - -ResourceProvider::~ResourceProvider() { - fGraphicsPipelineCache.release(); -} - -sk_sp ResourceProvider::findOrCreateGraphicsPipeline( - const GraphicsPipelineDesc& pipelineDesc, - const RenderPassDesc& renderPassDesc) { - return fGraphicsPipelineCache->refPipeline(fGpu->caps(), pipelineDesc, renderPassDesc); -} - -SkShaderCodeDictionary* ResourceProvider::shaderCodeDictionary() const { - return fGlobalCache->shaderCodeDictionary(); -} - -//////////////////////////////////////////////////////////////////////////////////////////////// - -struct ResourceProvider::GraphicsPipelineCache::Entry { - Entry(sk_sp pipeline) : fPipeline(std::move(pipeline)) {} - - sk_sp fPipeline; -}; - -ResourceProvider::GraphicsPipelineCache::GraphicsPipelineCache(ResourceProvider* resourceProvider) - : fMap(16) // TODO: find a good value for this - , fResourceProvider(resourceProvider) {} - -ResourceProvider::GraphicsPipelineCache::~GraphicsPipelineCache() { - SkASSERT(0 == fMap.count()); -} - -void ResourceProvider::GraphicsPipelineCache::release() { - fMap.reset(); -} - -sk_sp ResourceProvider::GraphicsPipelineCache::refPipeline( - const Caps* caps, - const GraphicsPipelineDesc& pipelineDesc, - const RenderPassDesc& renderPassDesc) { - UniqueKey pipelineKey = caps->makeGraphicsPipelineKey(pipelineDesc, renderPassDesc); - - std::unique_ptr* entry = fMap.find(pipelineKey); - - if (!entry) { - auto pipeline = fResourceProvider->onCreateGraphicsPipeline(pipelineDesc, renderPassDesc); - if (!pipeline) { - return nullptr; - } - entry = fMap.insert(pipelineKey, std::unique_ptr(new Entry(std::move(pipeline)))); - } - return (*entry)->fPipeline; -} - -sk_sp ResourceProvider::findOrCreateTexture(SkISize dimensions, const TextureInfo& info) { - return this->createTexture(dimensions, info); -} - -sk_sp ResourceProvider::findOrCreateCompatibleSampler(const SkSamplingOptions& smplOptions, - SkTileMode xTileMode, - SkTileMode yTileMode) { - return this->createSampler(smplOptions, xTileMode, yTileMode); -} - -sk_sp ResourceProvider::findOrCreateBuffer(size_t size, - BufferType type, - PrioritizeGpuReads prioritizeGpuReads) { - return this->createBuffer(size, type, prioritizeGpuReads); -} - - -} // namespace skgpu diff --git a/third_party/skia/experimental/graphite/src/SkStuff.cpp b/third_party/skia/experimental/graphite/src/SkStuff.cpp deleted file mode 100644 index 76a044658faa..000000000000 --- a/third_party/skia/experimental/graphite/src/SkStuff.cpp +++ /dev/null @@ -1,85 +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 "experimental/graphite/include/SkStuff.h" - -#include "experimental/graphite/include/BackendTexture.h" -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/src/Caps.h" -#include "experimental/graphite/src/ContextPriv.h" -#include "experimental/graphite/src/Device.h" -#include "experimental/graphite/src/Gpu.h" -#include "experimental/graphite/src/RecorderPriv.h" -#include "experimental/graphite/src/ResourceProvider.h" -#include "experimental/graphite/src/Surface_Graphite.h" -#include "experimental/graphite/src/Texture.h" -#include "experimental/graphite/src/TextureProxy.h" - -sk_sp MakeGraphite(skgpu::Recorder* recorder, const SkImageInfo& ii) { - sk_sp device = skgpu::Device::Make(recorder, ii); - if (!device) { - return nullptr; - } - - return sk_make_sp(std::move(device)); -} - -static bool validate_backend_texture(const skgpu::Caps* caps, - const skgpu::BackendTexture& texture, - SkColorType ct) { - if (!texture.isValid()) { - return false; - } - - const skgpu::TextureInfo& info = texture.info(); - if (!caps->areColorTypeAndTextureInfoCompatible(ct, info)) { - return false; - } - - if (!caps->isRenderable(info)) { - return false; - } - return true; -} - -sk_sp MakeGraphiteFromBackendTexture(skgpu::Recorder* recorder, - const skgpu::BackendTexture& beTexture, - SkColorType colorType, - sk_sp colorSpace, - const SkSurfaceProps* props) { - - if (!recorder) { - return nullptr; - } - - if (!validate_backend_texture(recorder->priv().caps(), - beTexture, - colorType)) { - return nullptr; - } - - sk_sp texture = - recorder->priv().resourceProvider()->createWrappedTexture(beTexture); - - if (!texture) { - return nullptr; - } - - sk_sp proxy(new skgpu::TextureProxy(std::move(texture))); - - sk_sp device = skgpu::Device::Make(recorder, - std::move(proxy), - std::move(colorSpace), - colorType, - kPremul_SkAlphaType); - if (!device) { - return nullptr; - } - - return sk_make_sp(std::move(device)); -} diff --git a/third_party/skia/experimental/graphite/src/UniformCache.cpp b/third_party/skia/experimental/graphite/src/UniformCache.cpp deleted file mode 100644 index fd54f5c2ad2f..000000000000 --- a/third_party/skia/experimental/graphite/src/UniformCache.cpp +++ /dev/null @@ -1,69 +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 "experimental/graphite/src/UniformCache.h" - -#include "src/core/SkOpts.h" -#include "src/core/SkUniformData.h" - -namespace skgpu { - -size_t UniformCache::Hash::operator()(SkUniformBlock* ub) const { - if (!ub) { - return 0; - } - - return ub->hash(); -} - -bool UniformCache::Eq::operator()(SkUniformBlock* a, SkUniformBlock* b) const { - if (!a || !b) { - return !a && !b; - } - - return *a == *b; -}; - -UniformCache::UniformCache() { - // kInvalidUniformID is reserved - static_assert(kInvalidUniformID == 0); - fUniformBlock.push_back(nullptr); - fUniformBlockIDs.insert({nullptr, 0}); -} - -#ifdef SK_DEBUG -void UniformCache::validate() const { - for (size_t i = 0; i < fUniformBlock.size(); ++i) { - auto kv = fUniformBlockIDs.find(fUniformBlock[i].get()); - SkASSERT(kv != fUniformBlockIDs.end()); - SkASSERT(kv->first == fUniformBlock[i].get()); - SkASSERT(SkTo(i) == kv->second); - } -} -#endif - -uint32_t UniformCache::insert(std::unique_ptr block) { - auto kv = fUniformBlockIDs.find(block.get()); - if (kv != fUniformBlockIDs.end()) { - return kv->second; - } - - uint32_t id = SkTo(fUniformBlock.size()); - SkASSERT(block && id != kInvalidUniformID); - - fUniformBlockIDs.insert({block.get(), id}); - fUniformBlock.push_back(std::move(block)); - this->validate(); - return id; -} - -SkUniformBlock* UniformCache::lookup(uint32_t uniqueID) { - SkASSERT(uniqueID < fUniformBlock.size()); - return fUniformBlock[uniqueID].get(); -} - -} // namespace skgpu diff --git a/third_party/skia/experimental/graphite/src/UniformCache.h b/third_party/skia/experimental/graphite/src/UniformCache.h deleted file mode 100644 index 351e54e2e0d7..000000000000 --- a/third_party/skia/experimental/graphite/src/UniformCache.h +++ /dev/null @@ -1,81 +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 skgpu_UniformCache_DEFINED -#define skgpu_UniformCache_DEFINED - -#include "include/core/SkRefCnt.h" - -#include -#include - -class SkUniformBlock; - -namespace skgpu { - - -class UniformCache { -public: - static constexpr uint32_t kInvalidUniformID = 0; - - UniformCache(); - - // TODO: Revisit the UniformCache::insert and UniformData::Make APIs: - // 1. UniformData::Make requires knowing the data size up front, which involves two invocations - // of the UniformManager. Ideally, we could align uniforms on the fly into a dynamic buffer. - // 2. UniformData stores the offsets for each uniform, but these aren't needed after we've - // filled out the buffer. If we remember layout offsets, it should be stored per Combination - // or RenderStep that defines the uniform set. - // 3. UniformCache's ids are only fundamentally limited by the number of draws that can be - // recorded into a DrawPass, which means a very large recording with multiple passes could - // exceed uint32_t across all the passes. - // 4. The check to know if a UniformData is present in the cache is practically the same for - // checking if the data needs to be uploaded to the GPU, so UniformCache could remember the - // associated BufferBindInfos as well. - // 5. Because UniformCache only cares about the content byte hash/equality, and can memcpy to - // the GPU buffer, the cached data contents could all go into a shared byte array, instead of - // needing to extend SkRefCnt. - // 6. insert() as a name can imply that the value is always added, so we may want a better one. - // It can be a little less generic if UniformCache returns id and bind buffer info. On the - // other hand unordered_map::insert has the same semantics as this insert, so maybe it's fine - - // Add the block of uniform data to the cache and return a unique ID that corresponds to its - // contents. If an identical block of data is already in the cache, that unique ID is returned. - uint32_t insert(std::unique_ptr); - - SkUniformBlock* lookup(uint32_t uniqueID); - - // The number of unique UniformBlock objects in the cache - size_t count() const { - SkASSERT(fUniformBlock.size() == fUniformBlockIDs.size() && fUniformBlock.size() > 0); - return fUniformBlock.size() - 1; - } - -private: - struct Hash { - // This hash operator de-references and hashes the data contents - size_t operator()(SkUniformBlock*) const; - }; - struct Eq { - // This equality operator de-references and compares the actual data contents - bool operator()(SkUniformBlock*, SkUniformBlock*) const; - }; - - // The UniformBlock's unique ID is only unique w/in a Recorder _not_ globally - std::unordered_map fUniformBlockIDs; - std::vector> fUniformBlock; - -#ifdef SK_DEBUG - void validate() const; -#else - void validate() const {} -#endif -}; - -} // namespace skgpu - -#endif // skgpu_UniformCache_DEFINED diff --git a/third_party/skia/experimental/graphite/src/UniformManager.h b/third_party/skia/experimental/graphite/src/UniformManager.h deleted file mode 100644 index 86c9fbc0b7f4..000000000000 --- a/third_party/skia/experimental/graphite/src/UniformManager.h +++ /dev/null @@ -1,50 +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 skgpu_UniformManager_DEFINED -#define skgpu_UniformManager_DEFINED - -#include "include/core/SkSpan.h" -#include "src/core/SkSLTypeShared.h" - -class SkUniform; - -namespace skgpu { - -enum class Layout { - kStd140, - kStd430, - kMetal, /** This is our own self-imposed layout we use for Metal. */ -}; - -class UniformManager { -public: - UniformManager(Layout layout); - - /* - * Use the uniform 'definitions' to write the data in 'srcs' into 'dst' (if it is non-null). - * If non-null, 'offsets' is filled in with the offset of each uniform w/in 'dst'. The - * number of bytes that was written (or would've been written) to 'dst' is returned. - * In practice one should call: - * auto bytes = writeUniforms(definitions, nullptr, nullptr, nullptr); - * // allocate dst and offsets memory - * writeUniforms(definitions, src, offsets, dst); - */ - uint32_t writeUniforms(SkSpan definitions, - const void** srcs, - uint32_t* offsets, - char *dst); - -private: - SkSLType getUniformTypeForLayout(SkSLType type); - - Layout fLayout; -}; - -} // namespace skgpu - -#endif // skgpu_UniformManager_DEFINED diff --git a/third_party/skia/experimental/graphite/src/geom/Transform.cpp b/third_party/skia/experimental/graphite/src/geom/Transform.cpp deleted file mode 100644 index 27687d27c98e..000000000000 --- a/third_party/skia/experimental/graphite/src/geom/Transform.cpp +++ /dev/null @@ -1,70 +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 "experimental/graphite/src/geom/Transform_graphite.h" - -#include "experimental/graphite/src/geom/Rect.h" -#include "experimental/graphite/src/geom/VectorTypes.h" -#include "src/core/SkMatrixPriv.h" - -namespace skgpu { - -namespace { - -Rect map_rect(const SkM44& m, const Rect& r) { - // TODO: Can Rect's (l,t,-r,-b) structure be used to optimize mapRect? - // TODO: Can take this opportunity to implement 100% accurate perspective plane clipping since - // it doesn't have to match raster/ganesh rendering behavior. - return SkMatrixPriv::MapRect(m, r.asSkRect()); -} - -} // anonymous namespace - -Transform::Transform(const SkM44& m) - : fM(m) { - if (fM.invert(&fInvM)) { - // TODO: actually detect these - fType = (fM == SkM44()) ? Type::kIdentity : Type::kPerspective; - fScale = {1.f, 1.f}; - } else { - fType = Type::kInvalid; - fInvM = SkM44(); - fScale = {1.f, 1.f}; - } -} - -bool Transform::operator==(const Transform& t) const { - // Checking fM should be sufficient as all other values are computed from it. - SkASSERT(fM != t.fM || (fInvM == t.fInvM && fType == t.fType && fScale == t.fScale)); - return fM == t.fM; -} - -Rect Transform::mapRect(const Rect& rect) const { return map_rect(fM, rect); } -Rect Transform::inverseMapRect(const Rect& rect) const { return map_rect(fInvM, rect); } - -void Transform::mapPoints(const Rect& localRect, SkV4 deviceOut[4]) const { - SkV2 localCorners[4] = {{localRect.left(), localRect.top()}, - {localRect.right(), localRect.top()}, - {localRect.right(), localRect.bot()}, - {localRect.left(), localRect.bot()}}; - this->mapPoints(localCorners, deviceOut, 4); -} - -void Transform::mapPoints(const SkV2* localIn, SkV4* deviceOut, int count) const { - // TODO: These maybe should go into SkM44, since bulk point mapping seems generally useful - float4 c0 = float4::Load(SkMatrixPriv::M44ColMajor(fM) + 0); - float4 c1 = float4::Load(SkMatrixPriv::M44ColMajor(fM) + 4); - // skip c2 since localIn's z is assumed to be 0 - float4 c3 = float4::Load(SkMatrixPriv::M44ColMajor(fM) + 12); - - for (int i = 0; i < count; ++i) { - float4 p = c0 * localIn[i].x + c1 * localIn[i].y /* + c2*0.f */ + c3 /* *1.f */; - p.store(deviceOut + i); - } -} - -} // namespace skgpu diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlBuffer.h b/third_party/skia/experimental/graphite/src/mtl/MtlBuffer.h deleted file mode 100644 index 330af9e029b7..000000000000 --- a/third_party/skia/experimental/graphite/src/mtl/MtlBuffer.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2021 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef skgpu_MtlBuffer_DEFINED -#define skgpu_MtlBuffer_DEFINED - -#include "experimental/graphite/include/mtl/MtlTypes.h" -#include "experimental/graphite/src/Buffer.h" -#include "include/core/SkRefCnt.h" - -#import - -namespace skgpu::mtl { - -class Gpu; - -class Buffer : public skgpu::Buffer { -public: - static sk_sp Make(const Gpu*, size_t size, BufferType type, PrioritizeGpuReads); - - id mtlBuffer() const { return fBuffer.get(); } - -private: - Buffer(const Gpu*, size_t size, BufferType type, PrioritizeGpuReads, sk_cfp>); - - void onMap() override; - void onUnmap() override; - - void onFreeGpuData() override; - - sk_cfp> fBuffer; -}; - -} // namespace skgpu::mtl - -#endif // skgpu_MtlBuffer_DEFINED - diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlCaps.h b/third_party/skia/experimental/graphite/src/mtl/MtlCaps.h deleted file mode 100644 index 7d070bde9f5e..000000000000 --- a/third_party/skia/experimental/graphite/src/mtl/MtlCaps.h +++ /dev/null @@ -1,81 +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 skgpu_MtlCaps_DEFINED -#define skgpu_MtlCaps_DEFINED - -#include "experimental/graphite/src/Caps.h" - -#import - -namespace skgpu::mtl { - -class Caps final : public skgpu::Caps { -public: - Caps(const id); - ~Caps() override {} - - skgpu::TextureInfo getDefaultSampledTextureInfo(SkColorType, - uint32_t levelCount, - Protected, - Renderable) const override; - - skgpu::TextureInfo getDefaultMSAATextureInfo(SkColorType, - uint32_t sampleCount, - Protected) const override; - - skgpu::TextureInfo getDefaultDepthStencilTextureInfo(Mask, - uint32_t sampleCount, - Protected) const override; - - UniqueKey makeGraphicsPipelineKey(const GraphicsPipelineDesc&, - const RenderPassDesc&) const override; - - bool isMac() const { return fGPUFamily == GPUFamily::kMac; } - bool isApple()const { return fGPUFamily == GPUFamily::kApple; } - - size_t getMinBufferAlignment() const { return this->isMac() ? 4 : 1; } - - bool isRenderable(const skgpu::TextureInfo&) const override; - - void buildKeyForTexture(SkISize dimensions, - const skgpu::TextureInfo&, - ResourceType, - Shareable, - GraphiteResourceKey*) const override; - -private: - void initGPUFamily(const id); - - void initCaps(const id); - void initShaderCaps(); - void initFormatTable(); - - enum class GPUFamily { - kMac, - kApple, - }; - static bool GetGPUFamily(id device, GPUFamily* gpuFamily, int* group); - static bool GetGPUFamilyFromFeatureSet(id device, GPUFamily* gpuFamily, - int* group); - - bool onAreColorTypeAndTextureInfoCompatible(SkColorType, - const skgpu::TextureInfo&) const override; - - bool onIsTexturable(const skgpu::TextureInfo&) const override; - bool isTexturable(MTLPixelFormat) const; - bool isRenderable(MTLPixelFormat, uint32_t numSamples) const; - - size_t getTransferBufferAlignment(size_t bytesPerPixel) const override; - - GPUFamily fGPUFamily; - int fFamilyGroup; -}; - -} // namespace skgpu::mtl - -#endif // skgpu_MtlCaps_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlGpu.h b/third_party/skia/experimental/graphite/src/mtl/MtlGpu.h deleted file mode 100644 index 4fe93146f75b..000000000000 --- a/third_party/skia/experimental/graphite/src/mtl/MtlGpu.h +++ /dev/null @@ -1,54 +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 skgpu_MtlGpu_DEFINED -#define skgpu_MtlGpu_DEFINED - -#include "experimental/graphite/src/Gpu.h" - -#include "include/ports/SkCFObject.h" - -#include "experimental/graphite/include/mtl/MtlBackendContext.h" -#include "experimental/graphite/src/mtl/MtlCaps.h" - -#import - -namespace skgpu::mtl { - -class Gpu final : public skgpu::Gpu { -public: - static sk_sp Make(const BackendContext&); - ~Gpu() override; - - id device() const { return fDevice.get(); } - id queue() const { return fQueue.get(); } - - const Caps& mtlCaps() const { return static_cast(*this->caps()); } - - std::unique_ptr makeResourceProvider( - sk_sp, SingleOwner*) const override; - -private: - Gpu(sk_cfp>, sk_cfp>, sk_sp); - - bool onSubmit(sk_sp) override; - - BackendTexture onCreateBackendTexture(SkISize dimensions, const skgpu::TextureInfo&) override; - void onDeleteBackendTexture(BackendTexture&) override; - -#if GRAPHITE_TEST_UTILS - void testingOnly_startCapture() override; - void testingOnly_endCapture() override; -#endif - - sk_cfp> fDevice; - sk_cfp> fQueue; -}; - -} // namespace skgpu::mtl - -#endif // skgpu_MtlGpu_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlResourceProvider.h b/third_party/skia/experimental/graphite/src/mtl/MtlResourceProvider.h deleted file mode 100644 index bc19d3b8cd35..000000000000 --- a/third_party/skia/experimental/graphite/src/mtl/MtlResourceProvider.h +++ /dev/null @@ -1,53 +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 skgpu_MtlResourceProvider_DEFINED -#define skgpu_MtlResourceProvider_DEFINED - -#include "experimental/graphite/src/DrawTypes.h" -#include "experimental/graphite/src/ResourceProvider.h" -#include "include/private/SkTHash.h" - -#import - -namespace skgpu { -class CommandBuffer; -} - -namespace skgpu::mtl { - -class Gpu; - -class ResourceProvider final : public skgpu::ResourceProvider { -public: - ResourceProvider(const skgpu::Gpu* gpu, sk_sp, SingleOwner*); - ~ResourceProvider() override {} - - sk_sp createWrappedTexture(const BackendTexture&) override; - - // Finds or creates a compatible DepthStencilState based on the enum - id findOrCreateCompatibleDepthStencilState(const DepthStencilSettings&); - -private: - const Gpu* mtlGpu(); - - sk_sp createCommandBuffer() override; - sk_sp onCreateGraphicsPipeline(const GraphicsPipelineDesc&, - const RenderPassDesc&) override; - sk_sp createTexture(SkISize, const skgpu::TextureInfo&) override; - sk_sp createBuffer(size_t size, BufferType type, PrioritizeGpuReads) override; - - sk_sp createSampler(const SkSamplingOptions&, - SkTileMode xTileMode, - SkTileMode yTileMode) override; - - SkTHashMap>> fDepthStencilStates; -}; - -} // namespace skgpu::mtl - -#endif // skgpu_MtlResourceProvider_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlSampler.h b/third_party/skia/experimental/graphite/src/mtl/MtlSampler.h deleted file mode 100644 index 97f8cc22b135..000000000000 --- a/third_party/skia/experimental/graphite/src/mtl/MtlSampler.h +++ /dev/null @@ -1,47 +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_MtlSampler_DEFINED -#define skgpu_MtlSampler_DEFINED - -#include "experimental/graphite/src/Sampler.h" - -#include "include/core/SkRefCnt.h" -#include "include/core/SkTileMode.h" -#include "include/ports/SkCFObject.h" - -#import - -struct SkSamplingOptions; - -namespace skgpu::mtl { - -class Gpu; - -class Sampler : public skgpu::Sampler { -public: - static sk_sp Make(const Gpu*, - const SkSamplingOptions& samplingOptions, - SkTileMode xTileMode, - SkTileMode yTileMode); - - ~Sampler() override {} - - id mtlSamplerState() const { return fSamplerState.get(); } - -private: - Sampler(const Gpu* gpu, - sk_cfp>); - - void onFreeGpuData() override; - - sk_cfp> fSamplerState; -}; - -} // namepsace skgpu::mtl - -#endif // skgpu_MtlSampler_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlTexture.h b/third_party/skia/experimental/graphite/src/mtl/MtlTexture.h deleted file mode 100644 index aee173236b9a..000000000000 --- a/third_party/skia/experimental/graphite/src/mtl/MtlTexture.h +++ /dev/null @@ -1,53 +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 skgpu_MtlTexture_DEFINED -#define skgpu_MtlTexture_DEFINED - -#include "experimental/graphite/src/Texture.h" -#include "include/core/SkRefCnt.h" - -#import - -namespace skgpu::mtl { - -class Gpu; - -class Texture : public skgpu::Texture { -public: - static sk_cfp> MakeMtlTexture(const Gpu*, - SkISize dimensions, - const skgpu::TextureInfo&); - - static sk_sp Make(const Gpu*, - SkISize dimensions, - const skgpu::TextureInfo&); - - static sk_sp MakeWrapped(const Gpu*, - SkISize dimensions, - const skgpu::TextureInfo&, - sk_cfp>); - - ~Texture() override {} - - id mtlTexture() const { return fTexture.get(); } - -private: - Texture(const Gpu* gpu, - SkISize dimensions, - const skgpu::TextureInfo& info, - sk_cfp>, - Ownership); - - void onFreeGpuData() override; - - sk_cfp> fTexture; -}; - -} // namepsace skgpu::mtl - -#endif // skgpu_MtlTexture_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlTrampoline.mm b/third_party/skia/experimental/graphite/src/mtl/MtlTrampoline.mm deleted file mode 100644 index 7e1ae23cc6f2..000000000000 --- a/third_party/skia/experimental/graphite/src/mtl/MtlTrampoline.mm +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2021 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "experimental/graphite/src/mtl/MtlTrampoline.h" - -#include "experimental/graphite/src/mtl/MtlGpu.h" - -namespace skgpu::mtl { -sk_sp Trampoline::MakeGpu(const BackendContext& backendContext) { - return Gpu::Make(backendContext); -} - -} // namespace skgpu::mtl diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlUtils.h b/third_party/skia/experimental/graphite/src/mtl/MtlUtils.h deleted file mode 100644 index b7387aff7008..000000000000 --- a/third_party/skia/experimental/graphite/src/mtl/MtlUtils.h +++ /dev/null @@ -1,54 +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 skgpu_MtlUtils_DEFINED -#define skgpu_MtlUtils_DEFINED - -#include "experimental/graphite/src/ResourceTypes.h" -#include "include/core/SkImageInfo.h" -#include "include/ports/SkCFObject.h" -#include "src/sksl/ir/SkSLProgram.h" - -#import - -namespace skgpu { -class ShaderErrorHandler; - -namespace mtl { - -class Gpu; - -bool FormatIsDepthOrStencil(MTLPixelFormat); -bool FormatIsDepth(MTLPixelFormat); -bool FormatIsStencil(MTLPixelFormat); - -MTLPixelFormat SkColorTypeToFormat(SkColorType); - -MTLPixelFormat DepthStencilFlagsToFormat(Mask); - -/** - * Produces MSL code generated by SkSLC - */ -bool SkSLToMSL(const Gpu* gpu, - const std::string& sksl, - SkSL::ProgramKind kind, - const SkSL::Program::Settings& settings, - std::string* msl, - SkSL::Program::Inputs* outInputs, - ShaderErrorHandler* errorHandler); - -sk_cfp> CompileShaderLibrary(const Gpu* gpu, - const std::string& msl, - ShaderErrorHandler* errorHandler); - -#ifdef SK_BUILD_FOR_IOS -bool IsAppInBackground(); -#endif -} // namespace skgpu::mtl -} // namespace skgpu - -#endif // skgpu_MtlUtils_DEFINED diff --git a/third_party/skia/experimental/graphite/src/render/BUILD.bazel b/third_party/skia/experimental/graphite/src/render/BUILD.bazel deleted file mode 100644 index 6a6180c53aad..000000000000 --- a/third_party/skia/experimental/graphite/src/render/BUILD.bazel +++ /dev/null @@ -1,19 +0,0 @@ -load("//bazel:macros.bzl", "generated_cc_atom") - -generated_cc_atom( - name = "StencilAndFillPathRenderer_src", - srcs = ["StencilAndFillPathRenderer.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - "//experimental/graphite/src:DrawWriter_hdr", - "//experimental/graphite/src:Renderer_hdr", - "//experimental/graphite/src:UniformManager_hdr", - "//experimental/graphite/src/geom:Shape_hdr", - "//experimental/graphite/src/geom:Transform_graphite_hdr", - "//include/core:SkPathTypes_hdr", - "//include/core:SkRect_hdr", - "//src/core:SkUniformData_hdr", - "//src/gpu:BufferWriter_hdr", - "//src/gpu/tessellate:MiddleOutPolygonTriangulator_hdr", - ], -) diff --git a/third_party/skia/experimental/graphite/src/render/StencilAndFillPathRenderer.cpp b/third_party/skia/experimental/graphite/src/render/StencilAndFillPathRenderer.cpp deleted file mode 100644 index d1e5763787c3..000000000000 --- a/third_party/skia/experimental/graphite/src/render/StencilAndFillPathRenderer.cpp +++ /dev/null @@ -1,300 +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 "experimental/graphite/src/Renderer.h" - -#include "experimental/graphite/src/DrawWriter.h" -#include "experimental/graphite/src/UniformManager.h" -#include "experimental/graphite/src/geom/Shape.h" -#include "experimental/graphite/src/geom/Transform_graphite.h" -#include "include/core/SkPathTypes.h" -#include "include/core/SkRect.h" -#include "src/core/SkUniformData.h" -#include "src/gpu/BufferWriter.h" -#include "src/gpu/tessellate/MiddleOutPolygonTriangulator.h" - -namespace skgpu { - -namespace { - -// TODO: These settings are actually shared by tessellating path renderers, so will be exposed later - -// Returns the stencil settings to use for a standard Redbook "stencil" pass. -constexpr DepthStencilSettings fillrule_settings(bool evenOdd) { - // Increments clockwise triangles and decrements counterclockwise. Used for "winding" fill. - constexpr DepthStencilSettings::Face kIncCW = { - /*stencilFail=*/ StencilOp::kKeep, - /*depthFail=*/ StencilOp::kKeep, - /*dsPass=*/ StencilOp::kIncWrap, - /*stencilCompare=*/CompareOp::kAlways, - /*readMask=*/ 0xffffffff, - /*writeMask=*/ 0xffffffff - }; - constexpr DepthStencilSettings::Face kDecCCW = { - /*stencilFail=*/ StencilOp::kKeep, - /*depthFail=*/ StencilOp::kKeep, - /*dsPass=*/ StencilOp::kDecWrap, - /*stencilCompare=*/CompareOp::kAlways, - /*readMask=*/ 0xffffffff, - /*writeMask=*/ 0xffffffff - }; - - // Toggles the bottom stencil bit. Used for "even-odd" fill. - constexpr DepthStencilSettings::Face kToggle = { - /*stencilFail=*/ StencilOp::kKeep, - /*depthFail=*/ StencilOp::kKeep, - /*dsPass=*/ StencilOp::kInvert, - /*stencilCompare=*/CompareOp::kAlways, - /*readMask=*/ 0xffffffff, - /*writeMask=*/ 0x00000001 - }; - - // Always use ref = 0, disable depths, but still use greater depth test. - constexpr DepthStencilSettings kWindingFill = { - /*frontStencil=*/kIncCW, - /*backStencil=*/ kDecCCW, - /*refValue=*/ 0, - /*stencilTest=*/ true, - /*depthCompare=*/CompareOp::kAlways, // kGreater once steps know the right depth value - /*depthTest=*/ true, - /*depthWrite=*/ false - }; - constexpr DepthStencilSettings kEvenOddFill = { - /*frontStencil=*/kToggle, - /*backStencil=*/ kToggle, - /*refValue=*/ 0, - /*stencilTest=*/ true, - /*depthCompare=*/CompareOp::kAlways, // kGreater once steps know the right depth value - /*depthTest=*/ true, - /*depthWrite=*/ false - }; - - return evenOdd ? kEvenOddFill : kWindingFill; -} - -// Returns the stencil settings to use for a standard Redbook "fill" pass. Allows non-zero -// stencil values to pass and write a color, and resets the stencil value back to zero; discards -// immediately on stencil values of zero (or does the inverse of these operations when the path -// requires filling everything else). -constexpr DepthStencilSettings cover_settings(bool inverse) { - // Resets non-zero bits to 0, passes when not zero. We set depthFail to kZero because if we - // encounter that case, the kNotEqual=0 stencil test passed, so it does need to be set back to 0 - // and the dsPass op won't be run. In practice, since the stencil steps will fail the same depth - // test, the stencil value will likely not be non-zero, but best to be explicit. - constexpr DepthStencilSettings::Face kNormal = { - /*stencilFail=*/ StencilOp::kKeep, - /*depthFail=*/ StencilOp::kZero, - /*dsPass=*/ StencilOp::kZero, - /*stencilCompare=*/CompareOp::kNotEqual, - /*readMask=*/ 0xffffffff, - /*writeMask=*/ 0xffffffff - }; - - // Resets non-zero bits to 0, passes when zero - constexpr DepthStencilSettings::Face kInverted = { - /*stencilFail=*/ StencilOp::kZero, - /*depthFail=*/ StencilOp::kKeep, - /*dsPass=*/ StencilOp::kKeep, - /*stencilCompare=*/CompareOp::kEqual, - /*readMask=*/ 0xffffffff, - /*writeMask=*/ 0xffffffff - }; - - // Always use ref = 0, enabled depth writes, and greater depth test, both - // front and back use the same stencil settings. - constexpr DepthStencilSettings kNormalDSS = { - /*frontStencil=*/kNormal, - /*frontStencil=*/kNormal, - /*refValue=*/ 0, - /*stencilTest=*/ true, - /*depthCompare=*/CompareOp::kAlways, // kGreater once steps know the right depth value - /*depthTest=*/ true, - /*depthWrite=*/ true - }; - constexpr DepthStencilSettings kInvertedDSS = { - /*frontStencil=*/kInverted, - /*backStencil=*/ kInverted, - /*refValue=*/ 0, - /*stencilTest=*/ true, - /*depthCompare=*/CompareOp::kAlways, // kGreater once steps know the right depth value - /*depthTest=*/ true, - /*depthWrite=*/ true - }; - return inverse ? kInvertedDSS : kNormalDSS; -} - -class StencilFanRenderStep final : public RenderStep { -public: - StencilFanRenderStep(bool evenOdd) - : RenderStep(Flags::kRequiresMSAA, - /*uniforms=*/{}, - PrimitiveType::kTriangles, - fillrule_settings(evenOdd), - /*vertexAttrs=*/{{"position", - VertexAttribType::kFloat3, - SkSLType::kFloat3}}, - /*instanceAttrs=*/{}) {} - - ~StencilFanRenderStep() override {} - - const char* name() const override { return "stencil-fan"; } - - const char* vertexSkSL() const override { - return " float4 devPosition = float4(position.xy, 0.0, position.z);\n"; - } - - void writeVertices(DrawWriter* writer, - const SkIRect& bounds, - const Transform& localToDevice, - const Shape& shape) const override { - // TODO: Have Shape provide a path-like iterator so we don't actually have to convert non - // paths to SkPath just to iterate their pts/verbs - SkPath path = shape.asPath(); - DrawWriter::Vertices verts{*writer}; - for (PathMiddleOutFanIter it(path); !it.done();) { - for (auto [p0, p1, p2] : it.nextStack()) { - // TODO: PathMiddleOutFanIter should use SkV2 instead of SkPoint? - SkV2 p[3] = {{p0.fX, p0.fY}, {p1.fX, p1.fY}, {p2.fX, p2.fY}}; - SkV4 devPoints[3]; - localToDevice.mapPoints(p, devPoints, 3); - - // TODO: Support reserving maxTrianglesInFans*3 vertices outside the loop, with - // automatic returns of unused verts. - verts.append(3) << devPoints[0].x << devPoints[0].y << devPoints[0].w // p0 - << devPoints[1].x << devPoints[1].y << devPoints[1].w // p1 - << devPoints[2].x << devPoints[2].y << devPoints[2].w; // p2 - } - } - } - - sk_sp writeUniforms(Layout layout, - const SkIRect&, - const Transform&, - const Shape&) const override { - // Control points are pre-transformed to device space on the CPU, so no uniforms needed. - return nullptr; - } -}; - -// TODO: Hand off to csmartdalton, this should roughly correspond to the fStencilPathProgram stage -// of skgpu::v1::PathStencilCoverOp using the PathCurveTessellator -/* -class StencilCurvesRenderStep : public RenderStep { -public: - StencilCurvesRenderStep() {} - - ~StencilCurvesRenderStep() override {} - - const char* name() const override { return "stencil-curves"; } - bool requiresStencil() const override { return true; } - bool requiresMSAA() const override { return true; } - bool performsShading() const override { return false; } - -private: -}; -*/ - -// TODO: Hand off to csmartdalton, this should roughly correspond to the fCoverBBoxProgram stage -// of skgpu::v1::PathStencilCoverOp. -class FillBoundsRenderStep final : public RenderStep { -public: - // TODO: Will need to add kRequiresStencil when we support specifying stencil settings and - // the Renderer includes the stenciling step first. - FillBoundsRenderStep(bool inverseFill) - : RenderStep(Flags::kPerformsShading, - /*uniforms=*/{}, - PrimitiveType::kTriangles, - cover_settings(inverseFill), - /*vertexAttrs=*/{{"position", - VertexAttribType::kFloat3, - SkSLType::kFloat3}}, - /*instanceAttrs=*/{}) - , fInverseFill(inverseFill) {} - - ~FillBoundsRenderStep() override {} - - const char* name() const override { return "fill-bounds"; } - - const char* vertexSkSL() const override { - return " float4 devPosition = float4(position.xy, 0.0, position.z);\n"; - } - - void writeVertices(DrawWriter* writer, - const SkIRect& bounds, - const Transform& localToDevice, - const Shape& shape) const override { - SkV4 devPoints[4]; // ordered TL, TR, BR, BL - - if (fInverseFill) { - // TODO: When we handle local coords, we'd need to map these corners by the inverse. - devPoints[0] = {(float) bounds.fLeft, (float) bounds.fTop, 0.f, 1.f}; - devPoints[1] = {(float) bounds.fRight, (float) bounds.fTop, 0.f, 1.f}; - devPoints[2] = {(float) bounds.fRight, (float) bounds.fBottom, 0.f, 1.f}; - devPoints[3] = {(float) bounds.fLeft, (float) bounds.fBottom, 0.f, 1.f}; - } else { - localToDevice.mapPoints(shape.bounds(), devPoints); - } - - DrawWriter::Vertices verts{*writer}; - verts.append(6) << devPoints[0].x << devPoints[0].y << devPoints[0].w // TL - << devPoints[3].x << devPoints[3].y << devPoints[3].w // BL - << devPoints[1].x << devPoints[1].y << devPoints[1].w // TR - << devPoints[1].x << devPoints[1].y << devPoints[1].w // TR - << devPoints[3].x << devPoints[3].y << devPoints[3].w // BL - << devPoints[2].x << devPoints[2].y << devPoints[2].w;// BR - } - - sk_sp writeUniforms(Layout layout, - const SkIRect&, - const Transform& localToDevice, - const Shape&) const override { - // Positions are pre-transformed on the CPU so no uniforms needed - return nullptr; - } - -private: - const bool fInverseFill; -}; - -} // anonymous namespace - -const Renderer& Renderer::StencilAndFillPath(SkPathFillType fillType) { - // Because each fill type uses a different stencil settings, there is one Renderer per type. - // However, at each stage (stencil vs. cover), there are only two RenderSteps to branch on. - static const StencilFanRenderStep kWindingStencilFan{false}; - static const StencilFanRenderStep kEvenOddStencilFan{true}; - static const FillBoundsRenderStep kFill{false}; - static const FillBoundsRenderStep kInverseFill{true}; - - // TODO: Uncomment and include the curve stenciling steps to draw curved paths - static const Renderer kWindingRenderer{"stencil-and-fill[winding]", - &kWindingStencilFan, - /*&kWindingStencilCurves,*/ - &kFill}; - static const Renderer kInverseWindingRenderer{"stencil-and-fill[inverse-winding]", - &kWindingStencilFan, - /*&kWindingStencilCurves,*/ - &kInverseFill}; - static const Renderer kEvenOddRenderer{"stencil-and-fill[evenodd]", - &kEvenOddStencilFan, - /*&kEvenOddStencilCurves,*/ - &kFill}; - static const Renderer kInverseEvenOddRenderer{"stencil-and-fill[inverse-evenodd]", - &kEvenOddStencilFan, - /*&kEvenOddStencilCurves,*/ - &kInverseFill}; - - switch(fillType) { - case SkPathFillType::kWinding: return kWindingRenderer; - case SkPathFillType::kEvenOdd: return kEvenOddRenderer; - case SkPathFillType::kInverseWinding: return kInverseWindingRenderer; - case SkPathFillType::kInverseEvenOdd: return kInverseEvenOddRenderer; - } - SkUNREACHABLE; -} - -} // namespace skgpu diff --git a/third_party/skia/experimental/minimal_ios_mtl_skia_app/main.mm b/third_party/skia/experimental/minimal_ios_mtl_skia_app/main.mm index ba5491709b72..033d09ca3124 100644 --- a/third_party/skia/experimental/minimal_ios_mtl_skia_app/main.mm +++ b/third_party/skia/experimental/minimal_ios_mtl_skia_app/main.mm @@ -9,6 +9,8 @@ #include "tools/skottie_ios_app/SkMetalViewBridge.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColor.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkPaint.h" #include "include/core/SkSurface.h" #include "include/core/SkTime.h" diff --git a/third_party/skia/experimental/pvg/draw_msg.proto b/third_party/skia/experimental/pvg/draw_msg.proto deleted file mode 100644 index 56861c541d28..000000000000 --- a/third_party/skia/experimental/pvg/draw_msg.proto +++ /dev/null @@ -1,270 +0,0 @@ -/* - * Copyright 2018 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -syntax = "proto3"; - -package pvg; - -enum ClipVerb { - INTERSECT = 0; - DIFFERENCE = 1; -} - -message Point { - float x = 1; - float y = 2; -} - -message Rect { - float left = 1; - float top = 2; - float right = 3; - float bottom = 4; -} - -message Color { - float r = 1; - float g = 2; - float b = 3; - float a = 4; // default to 1.0 -} - -message Matrix33 { - // m11, m22, m33 default to 1.0 - - float m11 = 1; float m12 = 2; float m13 = 3; - float m21 = 4; float m22 = 5; float m23 = 6; - float m31 = 7; float m32 = 8; float m33 = 9; -} - -message ClipArgs { - ClipVerb verb = 1; - bool is_aliased = 2; -} - -//////////////////////////////////////////////// - -enum BlendMode { - SRC_OVER = 0; - CLEAR = 1; - SRC = 2; - // ... -} - -enum PaintStyle { - FILL = 0; - STROKE = 1; - HAIRLINE = 2; -} - -enum FilterQuality { - NONE = 0; - LOW = 1; - MEDIUM = 2; - HIGH = 3; -} - -message Paint { - PaintStyle style = 1; - FilterQuality filter_quality = 2; - BlendMode blend_mode = 3; - bool is_aliased = 4; - - Color color = 5; - - int32 shader = 6; - int32 color_filter = 7; - int32 mask_filter = 8; - int32 path_filter = 9; - int32 image_filter = 10; -} - -//////////////////////////////////////////////// - -enum Hinting { - NONE_Hinting = 0; - SLIGHT_Hinting = 1; - NORMAL_Hinting = 2; - FULL_Hinting = 3; -} - -message Font { - int32 typeface = 1; - float size = 2; - float scale_x = 3; // default = 1.0 - float skew_x = 4; - - Hinting Hinting = 5; - - bool force_autohinting = 6; - bool embedded_bitmaps = 7; - bool subpixel = 8; - bool linear_metrics = 9; - bool embolden = 10; -} - -//////////////////////////////////////////////// - -enum PathVerb { - MOVE = 0; - LINE = 1; - QUAD = 2; - CUBIC = 3; - CONIC = 4; -} - -message PathData { - repeated PathVerb verbs = 1; - repeated float points = 2; // count must be even, and correspond to verbs - repeated float conic_weights = 3; // count must be == # conic verbs -} - -message DefinePath { - uint32 id = 1; - PathData data = 2; -} - -//////////////////////////////////////////////// - -message DefineImage { - uint32 id = 1; - bytes encoded_data = 2; -} - -//////////////////////////////////////////////// - -enum TileMode { - CLAMP_TileMode = 0; - REPEAT_TileMode = 1; - MIRROR_TileMode = 2; - DECAL_TileMode = 3; -} - -message GradientCommon { - repeated Color colors = 1; - repeated float positions = 2; // empty or count == colors.count - Matrix33 local_matrix = 3; - TileMode tile_mode = 4; -} - -message LinearGradient { - Point p0 = 1; - Point p1 = 2; - GradientCommon common = 3; -} - -message RadialGradient { - Point center = 1; - float radius = 2; - GradientCommon common = 3; -} - -message ImageShader { - uint32 image_id = 1; - TileMode tile_mode_x = 2; - TileMode tile_mode_y = 3; - Matrix33 local_matrix = 4; -} - -message DefineShader { - uint32 id = 1; - oneof type { - Color color = 2; - LinearGradient linear_gradient = 3; - RadialGradient radial_gradient = 4; - ImageShader image = 5; - } -} - -//////////////////////////////////////////////// - -message Save {} - -message SaveLayer { - Rect bounds = 1; - Paint paint = 2; - // ... -} - -message Restore {} - -message Concat { - Matrix33 matrix = 1; -} - -message ClipRect { - Rect rect = 1; - ClipArgs args = 2; -} - -message ClipPath { - oneof path { - uint32 id = 1; - PathData data = 2; - } - ClipArgs args = 3; -} - -message DrawPaint { - Paint paint = 1; -} - -message DrawRect { - Rect rect = 1; - Paint paint = 2; -} - -message DrawOval { - Rect oval = 1; - Paint paint = 2; -} - -message DrawPath { - oneof path { - uint32 id = 1; - PathData data = 2; - } - Paint paint = 3; -} - -message DrawImage { - uint32 id = 1; - Paint paint = 2; -} - -message DrawText { - repeated uint32 glyphs = 1; // uint16? bytes? - repeated float pos_x = 2; // must match counts with glyphs - repeated float pos_y = 3; // must match counts with glyphs OR have 1 entry - - Font font = 4; - Paint paint = 5; -} - -message CanvasMsg { - oneof msg { - Save save = 1; - SaveLayer save_layer = 2; - Restore restore = 3; - - Concat concat = 4; - - ClipRect clip_rect = 5; - ClipPath clip_path = 6; - - DrawPaint draw_paint = 7; - DrawRect draw_rect = 8; - DrawOval draw_oval = 9; - DrawPath draw_path = 10; - DrawImage draw_image = 11; - DrawText draw_text = 12; - - DefineImage def_image = 13; - DefinePath def_path = 14; - DefineShader def_shader = 15; - } -} diff --git a/third_party/skia/experimental/skrive/BUILD.gn b/third_party/skia/experimental/skrive/BUILD.gn deleted file mode 100644 index 14b5219139eb..000000000000 --- a/third_party/skia/experimental/skrive/BUILD.gn +++ /dev/null @@ -1,52 +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. - -import("../../gn/skia.gni") - -if (skia_enable_skrive) { - config("public_config") { - defines = [ "SK_ENABLE_SKRIVE" ] - include_dirs = [ "include" ] - } - - component("skrive") { - check_includes = false - import("skrive.gni") - public_configs = [ ":public_config" ] - public = skia_skrive_public - sources = skia_skrive_sources - configs += [ "../../:skia_private" ] - deps = [ "../..:skia" ] - } - - if (defined(is_skia_standalone)) { - if (skia_enable_tools) { - source_set("tests") { - testonly = true - - configs += [ - "../..:skia_private", - "../..:tests_config", - ] - sources = [ - "tests/BinaryReader.cpp", - "tests/DomTypes.cpp", - "tests/JsonReader.cpp", - ] - - deps = [ - ":skrive", - "../..:skia", - "../..:test", - ] - } - } - } -} else { - group("skrive") { - } - group("tests") { - } -} diff --git a/third_party/skia/experimental/skrive/include/SkRive.h b/third_party/skia/experimental/skrive/include/SkRive.h deleted file mode 100644 index c19fe83df839..000000000000 --- a/third_party/skia/experimental/skrive/include/SkRive.h +++ /dev/null @@ -1,320 +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. - */ - -#ifndef SkRive_DEFINED -#define SkRive_DEFINED - -#include "include/core/SkBlendMode.h" -#include "include/core/SkColor.h" -#include "include/core/SkM44.h" -#include "include/core/SkPaint.h" -#include "include/core/SkPathTypes.h" -#include "include/core/SkRefCnt.h" -#include "include/core/SkString.h" - -#include -#include -#include - -class SkCanvas; -class SkPaint; -class SkStreamAsset; - -namespace skrive { - -#define ACTOR_ATTR(attr_name, attr_type, attr_default) \ -private: \ - attr_type f##attr_name = attr_default; \ -public: \ - const attr_type& get##attr_name() const { return f##attr_name; } \ - void set##attr_name(const attr_type& v) { \ - if (f##attr_name == v) return; \ - f##attr_name = v; \ - this->invalidate(); \ - } \ - void set##attr_name(attr_type&& v) { \ - if (f##attr_name == v) return; \ - f##attr_name = std::move(v); \ - this->invalidate(); \ - } - -class Node; - -class Component : public SkRefCnt { -public: - ACTOR_ATTR(Name, SkString, SkString()) - - template - std::enable_if_t::value, bool> - is() const { - if constexpr(std::is_same::value) { - return true; - } else { - return is_base_of(fType); - } - } - - template - operator const T*() const { - return this->is() ? reinterpret_cast(this) : nullptr; - } - - template - operator T*() { - return this->is() ? reinterpret_cast(this) : nullptr; - } - - void revalidate(); - - // probably not the right place - void render(SkCanvas* canvas) const { - this->onRender(canvas); - } - -protected: - enum class Type : uint32_t { - kNode, - kShape, - kColorPaint, - kEllipse, - kRectangle, - }; - - explicit Component(Type t) : fType(t) {} - - void invalidate(); - - bool hasInval() const { return fDirty; } - - virtual void onRevalidate() = 0; - virtual void onRender(SkCanvas*) const; - -private: - friend class Node; // parent access - - template - static constexpr bool is_base_of(Type t); - - const Type fType; - - Node* fParent = nullptr; - bool fDirty = true; -}; - -class TransformableComponent : public Component { -public: - ACTOR_ATTR(Translation , SkV2 , SkV2({0, 0})) - ACTOR_ATTR(Scale , SkV2 , SkV2({1, 1})) - ACTOR_ATTR(Rotation , float, 0 ) - ACTOR_ATTR(Opacity , float, 1 ) - -protected: - explicit TransformableComponent(Type t) : INHERITED(t) {} - - class ScopedTransformContext final { - public: - ScopedTransformContext(const TransformableComponent*, SkCanvas*); - ~ScopedTransformContext(); - - private: - SkCanvas* fCanvas; - const int fRestoreCount; - }; - -private: - using INHERITED = Component; -}; - -class Node : public TransformableComponent { -public: - Node() : INHERITED(Type::kNode) {} - - ACTOR_ATTR(CollapsedVisibility, bool , false ) - - void addChild(sk_sp); - - const std::vector>& children() const { return fChildren; } - -protected: - explicit Node(Type t) : INHERITED(t) {} - - void onRevalidate() override; - - void onRender(SkCanvas*) const override; - -private: - std::vector> fChildren; - - using INHERITED = TransformableComponent; -}; - -class Paint : public Component { -public: - ACTOR_ATTR(Opacity , float , 1 ) - ACTOR_ATTR(FillRule , SkPathFillType, SkPathFillType::kWinding ) - ACTOR_ATTR(StrokeWidth, float , 1 ) - ACTOR_ATTR(StrokeCap , SkPaint::Cap , SkPaint::Cap::kButt_Cap ) - ACTOR_ATTR(StrokeJoin , SkPaint::Join , SkPaint::Join::kMiter_Join) - - enum class StrokeTrim : uint8_t { kOff, kSequential, kSynced }; - ACTOR_ATTR(StrokeTrim , StrokeTrim, StrokeTrim::kOff) - ACTOR_ATTR(StrokeTrimStart , float , 0) - ACTOR_ATTR(StrokeTrimEnd , float , 0) - ACTOR_ATTR(StrokeTrimOffset, float , 0) - - void apply(SkPaint* paint) const { - this->onApply(paint); - } - - SkPaint::Style style() const { return fStyle; } - -protected: - Paint(Type t, SkPaint::Style style) : INHERITED(t), fStyle(style) {} - - virtual void onApply(SkPaint*) const; - -private: - const SkPaint::Style fStyle; - - using INHERITED = Component; -}; - -class ColorPaint final : public Paint { -public: - explicit ColorPaint(SkPaint::Style style) : INHERITED(Type::kColorPaint, style) {} - - ACTOR_ATTR(Color, SkColor4f, SkColors::kBlack) - -private: - void onRevalidate() override; - - void onApply(SkPaint*) const override; - - using INHERITED = Paint; -}; - -class Geometry : public Node { -public: - void draw(SkCanvas* canvas, const SkPaint& paint, SkPathFillType ftype) const { - return this->onDraw(canvas, paint, ftype); - } - -protected: - explicit Geometry(Type t) : INHERITED(t) {} - - virtual void onDraw(SkCanvas*, const SkPaint&, SkPathFillType) const = 0; - -private: - using INHERITED = Node; -}; - -class Ellipse final : public Geometry { -public: - Ellipse() : INHERITED(Type::kEllipse) {} - - ACTOR_ATTR(Width , float, 0) - ACTOR_ATTR(Height, float, 0) - -private: - void onRevalidate() override; - void onDraw(SkCanvas*, const SkPaint&, SkPathFillType) const override; - - using INHERITED = Geometry; -}; - -class Rectangle final : public Geometry { -public: - Rectangle() : INHERITED(Type::kRectangle) {} - - ACTOR_ATTR(Width , float, 0) - ACTOR_ATTR(Height, float, 0) - ACTOR_ATTR(Radius, float, 0) - -private: - void onRevalidate() override; - void onDraw(SkCanvas*, const SkPaint&, SkPathFillType) const override; - - using INHERITED = Geometry; -}; - -class Drawable : public Node { -public: - ACTOR_ATTR(DrawOrder, size_t , 0 ) - ACTOR_ATTR(BlendMode, SkBlendMode, SkBlendMode::kSrcOver) - ACTOR_ATTR(IsHidden , bool , false ) - -protected: - explicit Drawable(Type t) : INHERITED(t) {} - -private: - using INHERITED = Node; -}; - -class Shape final : public Drawable { -public: - Shape() : INHERITED(Type::kShape) {} - - ACTOR_ATTR(TransformAffectsStroke, bool, true) - -private: - void onRevalidate() override; - void onRender(SkCanvas*) const override; - - // cached on revalidation - // tracked separately due to paint order (all fills before strokes) - std::vector fFills, - fStrokes; - - std::vector fGeometries; - - using INHERITED = Drawable; -}; - -template -constexpr bool Component::is_base_of(Type t) { - if (t == Type::kNode ) return std::is_base_of::value; - if (t == Type::kShape ) return std::is_base_of::value; - if (t == Type::kColorPaint) return std::is_base_of::value; - if (t == Type::kEllipse ) return std::is_base_of::value; - if (t == Type::kRectangle ) return std::is_base_of::value; - - return false; -} - -class Artboard final : public SkRefCnt { -public: - ACTOR_ATTR(Root , sk_sp, nullptr ) - ACTOR_ATTR(Name , SkString , SkString() ) - ACTOR_ATTR(Color , SkColor4f , SkColors::kBlack) - ACTOR_ATTR(Size , SkV2 , SkV2({0,0}) ) - ACTOR_ATTR(Origin , SkV2 , SkV2({0,0}) ) - ACTOR_ATTR(Translation , SkV2 , SkV2({0,0}) ) - ACTOR_ATTR(ClipContents, bool , false ) - - void render(SkCanvas*) const; - -private: - void invalidate() {} -}; - -class SK_API SkRive final : public SkNVRefCnt { -public: - class Builder final { - public: - sk_sp make(std::unique_ptr); - }; - - const std::vector>& artboards() const { return fArtboards; } - std::vector>& artboards() { return fArtboards; } - -private: - std::vector> fArtboards; -}; - -} // namespace skrive - -#endif // SkRive_DEFINED diff --git a/third_party/skia/experimental/skrive/skrive.gni b/third_party/skia/experimental/skrive/skrive.gni deleted file mode 100644 index 920b2285e57c..000000000000 --- a/third_party/skia/experimental/skrive/skrive.gni +++ /dev/null @@ -1,27 +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. - -# Things are easiest for everyone if these source paths are absolute. -_src = get_path_info("src", "abspath") -_include = get_path_info("include", "abspath") - -skia_skrive_public = [ "$_include/SkRive.h" ] - -skia_skrive_sources = [ - "$_src/Artboard.cpp", - "$_src/Color.cpp", - "$_src/Component.cpp", - "$_src/Drawable.cpp", - "$_src/Ellipse.cpp", - "$_src/Node.cpp", - "$_src/Paint.cpp", - "$_src/Rectangle.cpp", - "$_src/Shape.cpp", - "$_src/SkRive.cpp", - "$_src/reader/BinaryReader.cpp", - "$_src/reader/JsonReader.cpp", - "$_src/reader/StreamReader.cpp", - "$_src/reader/StreamReader.h", -] diff --git a/third_party/skia/experimental/skrive/src/Artboard.cpp b/third_party/skia/experimental/skrive/src/Artboard.cpp deleted file mode 100644 index ebe0fa410a2b..000000000000 --- a/third_party/skia/experimental/skrive/src/Artboard.cpp +++ /dev/null @@ -1,140 +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 "experimental/skrive/include/SkRive.h" - -#include "experimental/skrive/src/reader/StreamReader.h" -#include "include/core/SkCanvas.h" - -#include -#include - -namespace skrive { - -namespace internal { - -template -size_t parse_node(StreamReader*, T*); - -template -std::tuple, size_t> make_from_stream(StreamReader* sr, Args&&... args) { - auto node = sk_make_sp(std::forward(args)...); - - const auto parent_id = parse_node(sr, node.get()); - - return std::make_tuple(std::move(node), parent_id); -} - -std::tuple, size_t> parse_component(StreamReader* sr) { - StreamReader::AutoBlock block(sr); - switch (block.type()) { - case StreamReader::BlockType::kActorNode: - return make_from_stream(sr); - case StreamReader::BlockType::kActorShape: - return make_from_stream(sr); - case StreamReader::BlockType::kColorFill: - return make_from_stream(sr, SkPaint::kFill_Style); - case StreamReader::BlockType::kColorStroke: - return make_from_stream(sr, SkPaint::kStroke_Style); - case StreamReader::BlockType::kActorEllipse: - return make_from_stream(sr); - case StreamReader::BlockType::kActorRectangle: - return make_from_stream(sr); - default: - break; - } - - SkDebugf("!! unsupported node type: %d\n", (int)block.type()); - return {nullptr, 0}; -} - -sk_sp parse_components(StreamReader* sr) { - const auto count = sr->readLength16(); - - std::vector> components; - components.reserve(count); - - for (size_t i = 0; i < count; ++i) { - auto [ component, parent_id ] = parse_component(sr); - - // parent IDs are kinda-sorta one-based - if (parent_id > 0) { - parent_id -= 1; - } - - if (component && parent_id < i && components[parent_id]) { - if (Node* node = *components[parent_id]) { - node->addChild(component); - } - } - - components.push_back(std::move(component)); - } - - SkDebugf(".. parsed %zu components\n", components.size()); - - // hmm... - for (const auto& comp : components) { - if (comp && comp->is()) { - return sk_ref_sp(static_cast(*comp)); - } - } - - return nullptr; -} - -sk_sp parse_artboard(StreamReader* sr) { - auto ab = sk_make_sp(); - - ab->setName (sr->readString("name" )); - ab->setTranslation (sr->readV2 ("translation" )); - ab->setSize ({sr->readFloat ("width" ), - sr->readFloat ("height" )}); - ab->setOrigin (sr->readV2 ("origin" )); - ab->setClipContents(sr->readBool ("clipContents")); - ab->setColor (sr->readColor ("color" )); - - for (;;) { - StreamReader::AutoBlock block(sr); - if (block.type() == StreamReader::BlockType::kEoB) { - break; - } - - switch (block.type()) { - case StreamReader::BlockType::kComponents: - ab->setRoot(parse_components(sr)); - break; - default: - SkDebugf("!! Unsupported block type: %d\n", (int)block.type()); - break; - } - } - - SkDebugf(".. parsed artboard \"%s\" [%f x %f]\n", - ab->getName().c_str(), ab->getSize().x, ab->getSize().y); - - return ab; -} - -} // namespace internal - -void Artboard::render(SkCanvas* canvas) const { - SkAutoCanvasRestore acr(canvas, true); - canvas->translate(fTranslation.x, fTranslation.y); - - SkPaint paint; - paint.setColor4f(fColor); - - canvas->drawRect(SkRect::MakeWH(fSize.x, fSize.y), paint); - - if (fRoot) { - fRoot->revalidate(); - fRoot->render(canvas); - } -} - -} // namespace skrive diff --git a/third_party/skia/experimental/skrive/src/Color.cpp b/third_party/skia/experimental/skrive/src/Color.cpp deleted file mode 100644 index 925623acc443..000000000000 --- a/third_party/skia/experimental/skrive/src/Color.cpp +++ /dev/null @@ -1,41 +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 "experimental/skrive/include/SkRive.h" - -#include "experimental/skrive/src/reader/StreamReader.h" - -namespace skrive { - -namespace internal { - -template -size_t parse_node(StreamReader*, T*); - -extern void parse_fill_stroke(StreamReader*, Paint*); - -template <> -size_t parse_node(StreamReader* sr, ColorPaint* node) { - const auto parent_id = parse_node(sr, node); - - node->setColor(sr->readColor("color")); - - parse_fill_stroke(sr, node); - - return parent_id; -} - -} // namespace internal - -void ColorPaint::onRevalidate() {} - -void ColorPaint::onApply(SkPaint* paint) const { - this->INHERITED::onApply(paint); - paint->setColor4f(fColor); -} - -} // namespace skrive diff --git a/third_party/skia/experimental/skrive/src/Component.cpp b/third_party/skia/experimental/skrive/src/Component.cpp deleted file mode 100644 index f23c05b7a0cd..000000000000 --- a/third_party/skia/experimental/skrive/src/Component.cpp +++ /dev/null @@ -1,84 +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 "experimental/skrive/include/SkRive.h" - -#include "experimental/skrive/src/reader/StreamReader.h" -#include "include/core/SkCanvas.h" - -namespace skrive { -namespace internal { - -template -size_t parse_node(StreamReader*, T*); - -template <> -size_t parse_node(StreamReader* sr, Component* node) { - node->setName(sr->readString("name")); - - const auto parent_id = sr->readId("parent"); - - SkDebugf(".. %s -> %d\n", node->getName().c_str(), parent_id); - - return parent_id; -} - -template <> -size_t parse_node(StreamReader* sr, TransformableComponent* node) { - const auto parent_index = parse_node(sr, node); - - node->setTranslation(sr->readV2("translation")); - node->setRotation(sr->readFloat("rotation")); - node->setScale(sr->readV2("scale")); - node->setOpacity(sr->readFloat("opacity")); - - return parent_index; -} - -} // namespace internal - -void Component::invalidate() { - auto* node = this; - - do { - node->fDirty = true; - node = node->fParent; - } while (node && !node->hasInval()); -} - -void Component::revalidate() { - if (this->hasInval()) { - this->onRevalidate(); - fDirty = false; - } -} - -void Component::onRender(SkCanvas*) const {} - -TransformableComponent::ScopedTransformContext:: -ScopedTransformContext(const TransformableComponent* node, SkCanvas* canvas) - : fCanvas(canvas) - , fRestoreCount(canvas->getSaveCount()) { - const auto lm = SkMatrix::Translate(node->getTranslation().x, node->getTranslation().y) * - SkMatrix::RotateDeg(node->getRotation() ) * - SkMatrix::Scale (node->getScale().x , node->getScale().y ); - - if (node->getOpacity() < 1) { - SkPaint layer_paint; - layer_paint.setAlphaf(node->getOpacity()); - canvas->saveLayer(nullptr, &layer_paint); - } else if (!lm.isIdentity()) { - canvas->save(); - } - canvas->concat(lm); -} - -TransformableComponent::ScopedTransformContext::~ScopedTransformContext() { - fCanvas->restoreToCount(this->fRestoreCount); -} - -} // namespace skrive diff --git a/third_party/skia/experimental/skrive/src/Drawable.cpp b/third_party/skia/experimental/skrive/src/Drawable.cpp deleted file mode 100644 index 42d02ee71d3e..000000000000 --- a/third_party/skia/experimental/skrive/src/Drawable.cpp +++ /dev/null @@ -1,32 +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 "experimental/skrive/include/SkRive.h" - -#include "experimental/skrive/src/reader/StreamReader.h" - -namespace skrive::internal { -template -size_t parse_node(StreamReader*, T*); - -template <> -size_t parse_node(StreamReader* sr, Drawable* node) { - const auto parent_id = parse_node(sr, node); - - node->setIsHidden(!sr->readBool("isVisible")); - - const auto bm = sr->readUInt8("blendMode"); - if (bm <= static_cast(SkBlendMode::kLastMode)) { - node->setBlendMode(static_cast(bm)); - } - - node->setDrawOrder(sr->readUInt16("drawOrder")); - - return parent_id; -} - -} // namespace skrive::internal diff --git a/third_party/skia/experimental/skrive/src/Ellipse.cpp b/third_party/skia/experimental/skrive/src/Ellipse.cpp deleted file mode 100644 index 98ac236c4bb1..000000000000 --- a/third_party/skia/experimental/skrive/src/Ellipse.cpp +++ /dev/null @@ -1,45 +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 "experimental/skrive/include/SkRive.h" - -#include "experimental/skrive/src/reader/StreamReader.h" -#include "include/core/SkCanvas.h" - -namespace skrive { -namespace internal { - -template -size_t parse_node(StreamReader*, T*); - -template <> -size_t parse_node(StreamReader* sr, Ellipse* node) { - const auto parent_id = parse_node(sr, node); - - node->setWidth(sr->readFloat("width")); - node->setHeight(sr->readFloat("height")); - - return parent_id; -} - -} // namespace internal - -void Ellipse::onRevalidate() { - SkASSERT(this->hasInval()); -} - -void Ellipse::onDraw(SkCanvas* canvas, const SkPaint& paint, SkPathFillType) const { - SkASSERT(!this->hasInval()); - - if (SkScalarNearlyEqual(fWidth, fHeight)) { - canvas->drawCircle(0, 0, fWidth * 0.5f, paint); - } else { - canvas->drawOval(SkRect::MakeXYWH(-fWidth * 0.5f, -fHeight * 0.5f, fWidth, fHeight), paint); - } -} - -} // namespace skrive diff --git a/third_party/skia/experimental/skrive/src/Node.cpp b/third_party/skia/experimental/skrive/src/Node.cpp deleted file mode 100644 index ff240b1c33fb..000000000000 --- a/third_party/skia/experimental/skrive/src/Node.cpp +++ /dev/null @@ -1,77 +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 "experimental/skrive/include/SkRive.h" - -#include "experimental/skrive/src/reader/StreamReader.h" - -#include - -namespace skrive { -namespace internal { - -template -size_t parse_node(StreamReader*, T*); - -template <> -size_t parse_node(StreamReader* sr, Node* node) { - const auto parent_id = parse_node(sr, node); - - node->setCollapsedVisibility(sr->readBool("isCollapsed")); - - if (sr->openArray("clips")) { - const auto count = sr->readLength8(); - - SkDebugf(".. %d clips\n", count); - - for (size_t i = 0; i < count; ++i) { - if (sr->openObject("clip")) { - /*const auto clip_id =*/ sr->readUInt16("node"); - /*const auto intersect =*/ sr->readBool("intersect"); - - // TODO: actually use clips - sr->closeObject(); - } - } - - sr->closeArray(); - } - - return parent_id; -} - -} // namespace internal - -void Node::addChild(sk_sp child) { - child->fParent = this; - fChildren.push_back(std::move(child)); - this->invalidate(); -} - -void Node::onRevalidate() { - SkASSERT(this->hasInval()); - - for (const auto& child : fChildren) { - if (child) { - child->revalidate(); - } - } -} - -void Node::onRender(SkCanvas* canvas) const { - SkASSERT(!this->hasInval()); - - TransformableComponent::ScopedTransformContext stc(this, canvas); - - // TODO: draw order? - for (const auto& child : this->children()) { - child->render(canvas); - } -} - - -} // namespace skrive diff --git a/third_party/skia/experimental/skrive/src/Paint.cpp b/third_party/skia/experimental/skrive/src/Paint.cpp deleted file mode 100644 index 0124e726f9c9..000000000000 --- a/third_party/skia/experimental/skrive/src/Paint.cpp +++ /dev/null @@ -1,82 +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 "experimental/skrive/include/SkRive.h" - -#include "experimental/skrive/src/reader/StreamReader.h" - -namespace skrive { - -namespace internal { - -template -size_t parse_node(StreamReader*, T*); - -template <> -size_t parse_node(StreamReader* sr, Paint* node) { - const auto parent_id = parse_node(sr, node); - - node->setOpacity(sr->readFloat("opacity")); - - return parent_id; -} - -void parse_fill_stroke(StreamReader* sr, Paint* node) { - if (node->style() == SkPaint::kFill_Style) { - static constexpr SkPathFillType gFillTypeMap[] = { - SkPathFillType::kWinding, // 0 - SkPathFillType::kEvenOdd, // 1 - }; - node->setFillRule(gFillTypeMap[std::min(sr->readUInt8("fillRule"), - SK_ARRAY_COUNT(gFillTypeMap) - 1)]); - } else { - node->setStrokeWidth(sr->readFloat("width")); - - static constexpr SkPaint::Cap gCapMap[] = { - SkPaint::kButt_Cap, // 0 - SkPaint::kRound_Cap, // 1 - SkPaint::kSquare_Cap, // 2 - }; - node->setStrokeCap(gCapMap[std::min(sr->readUInt8("cap"), - SK_ARRAY_COUNT(gCapMap) - 1)]); - - static constexpr SkPaint::Join gJoinMap[] = { - SkPaint::kMiter_Join, // 0 - SkPaint::kRound_Join, // 1 - SkPaint::kBevel_Join, // 2 - }; - node->setStrokeJoin(gJoinMap[std::min(sr->readUInt8("join"), - SK_ARRAY_COUNT(gJoinMap) - 1)]); - - static constexpr Paint::StrokeTrim gTrimMap[] = { - Paint::StrokeTrim::kOff, // 0 - Paint::StrokeTrim::kSequential, // 1 - Paint::StrokeTrim::kSynced, // 2 - }; - node->setStrokeTrim(gTrimMap[std::min(sr->readUInt8("trim"), - SK_ARRAY_COUNT(gTrimMap) - 1)]); - - if (node->getStrokeTrim() != Paint::StrokeTrim::kOff) { - node->setStrokeTrimStart (sr->readFloat("start" )); - node->setStrokeTrimEnd (sr->readFloat("end" )); - node->setStrokeTrimOffset(sr->readFloat("offset")); - } - } -} - -} // namespace internal - -void Paint::onApply(SkPaint* paint) const { - paint->setAntiAlias(true); - paint->setStyle(this->style()); - - paint->setStrokeWidth(fStrokeWidth); - paint->setStrokeCap (fStrokeCap ); - paint->setStrokeJoin (fStrokeJoin ); -} - -} // namespace skrive diff --git a/third_party/skia/experimental/skrive/src/Rectangle.cpp b/third_party/skia/experimental/skrive/src/Rectangle.cpp deleted file mode 100644 index a561db9d6693..000000000000 --- a/third_party/skia/experimental/skrive/src/Rectangle.cpp +++ /dev/null @@ -1,44 +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 "experimental/skrive/include/SkRive.h" - -#include "experimental/skrive/src/reader/StreamReader.h" -#include "include/core/SkCanvas.h" - -namespace skrive { -namespace internal { - -template -size_t parse_node(StreamReader*, T*); - -template <> -size_t parse_node(StreamReader* sr, Rectangle* node) { - const auto parent_id = parse_node(sr, node); - - node->setWidth(sr->readFloat("width")); - node->setHeight(sr->readFloat("height")); - node->setRadius(sr->readFloat("cornerRadius")); - - return parent_id; -} - -} // namespace internal - -void Rectangle::onRevalidate() { - SkASSERT(this->hasInval()); -} - -void Rectangle::onDraw(SkCanvas* canvas, const SkPaint& paint, SkPathFillType) const { - SkASSERT(!this->hasInval()); - - const auto rect = SkRect::MakeXYWH(-fWidth * 0.5f, -fHeight * 0.5f, fWidth, fHeight); - - canvas->drawRect(rect, paint); -} - -} // namespace skrive diff --git a/third_party/skia/experimental/skrive/src/Shape.cpp b/third_party/skia/experimental/skrive/src/Shape.cpp deleted file mode 100644 index 081e2733e0c6..000000000000 --- a/third_party/skia/experimental/skrive/src/Shape.cpp +++ /dev/null @@ -1,73 +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 "experimental/skrive/include/SkRive.h" - -#include "experimental/skrive/src/reader/StreamReader.h" -#include "include/core/SkPaint.h" - -namespace skrive { -namespace internal { - -template -size_t parse_node(StreamReader*, T*); - -template <> -size_t parse_node(StreamReader* sr, Shape* node) { - const auto parent_id = parse_node(sr, node); - - node->setTransformAffectsStroke(sr->readBool("transformAffectsStroke")); - - return parent_id; -} - -} // namespace internal - -void Shape::onRevalidate() { - this->INHERITED::onRevalidate(); - - fFills.clear(); - fStrokes.clear(); - fGeometries.clear(); - - for (const auto& child : this->children()) { - if (const Paint* paint = *child) { - SkASSERT(paint->style() == SkPaint::kFill_Style || - paint->style() == SkPaint::kStroke_Style); - - auto& bucket = paint->style() == SkPaint::kFill_Style ? fFills : fStrokes; - bucket.push_back(paint); - } else if (const Geometry* geo = *child) { - fGeometries.push_back(geo); - } - } - - SkDebugf("[Shape::onRevalidate] %zu geos %zu fill(s) %zu stroke(s)\n", - fGeometries.size(), fFills.size(), fStrokes.size()); -} - -void Shape::onRender(SkCanvas* canvas) const { - auto draw_paint = [this](SkCanvas* canvas, const Paint* paint) { - SkPaint p; - paint->apply(&p); - - for (const auto& geo : fGeometries) { - geo->draw(canvas, p, paint->getFillRule()); - } - }; - - TransformableComponent::ScopedTransformContext stc(this, canvas); - - for (const auto* fill : fFills) { - draw_paint(canvas, fill); - } - for (const auto* stroke : fStrokes) { - draw_paint(canvas, stroke); - } -} - -} // namespace skrive diff --git a/third_party/skia/experimental/skrive/src/SkRive.cpp b/third_party/skia/experimental/skrive/src/SkRive.cpp deleted file mode 100644 index c71e7fbe8209..000000000000 --- a/third_party/skia/experimental/skrive/src/SkRive.cpp +++ /dev/null @@ -1,75 +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 "experimental/skrive/include/SkRive.h" - -#include "experimental/skrive/src/reader/StreamReader.h" -#include "include/core/SkStream.h" - -namespace skrive { - -namespace internal { - -extern sk_sp parse_artboard(StreamReader*); - -void parse_artboards(const sk_sp& skrive, StreamReader* sr) { - const size_t artboard_count = sr->readLength16(); - skrive->artboards().reserve(artboard_count); - - for (size_t i = 0; i < artboard_count; ++i) { - StreamReader::AutoBlock block(sr); - if (block.type() == StreamReader::BlockType::kEoB) { - break; - } - if (block.type() != StreamReader::BlockType::kActorArtboard) { - SkDebugf("!! Unexpected artboard block type: %d\n", (int)block.type()); - continue; - } - - skrive->artboards().push_back(parse_artboard(sr)); - } -} - -static sk_sp parse_skrive(std::unique_ptr sr) { - if (!sr) { - return nullptr; - } - - const auto version = sr->readUInt32("version"); - SkDebugf(".. loading version %d\n", version); - - auto skrive = sk_make_sp(); - - for (;;) { - StreamReader::AutoBlock block(sr); - if (block.type() == StreamReader::BlockType::kEoB) { - break; - } - - switch (block.type()) { - case StreamReader::BlockType::kArtboards: - parse_artboards(skrive, sr.get()); - break; - default: - SkDebugf("!! Unsupported block type: %d\n", (int)block.type()); - break; - } - } - - return skrive; -} - -} // namespace internal - -sk_sp SkRive::Builder::make(std::unique_ptr stream) { - auto reader = internal::StreamReader::Make(std::move(stream)); - - return reader ? parse_skrive(std::move(reader)) - : nullptr; -} - -} // namespace skrive diff --git a/third_party/skia/experimental/skrive/src/reader/BinaryReader.cpp b/third_party/skia/experimental/skrive/src/reader/BinaryReader.cpp deleted file mode 100644 index 9df7f3b71561..000000000000 --- a/third_party/skia/experimental/skrive/src/reader/BinaryReader.cpp +++ /dev/null @@ -1,153 +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 "experimental/skrive/src/reader/StreamReader.h" -#include "include/core/SkStream.h" -#include "include/core/SkString.h" - -#include - -namespace skrive::internal { - -namespace { - -class BinaryReader final : public StreamReader { -public: - explicit BinaryReader(std::unique_ptr stream) - : fStream(std::move(stream)) {} - -private: - bool validateSize(size_t sz) const { - const auto next_pos = fStream->getPosition() + sz, - block_end = fBlockStack.empty() ? fStream->getLength() - : fBlockStack.back().block_end; - return next_pos <= block_end; - } - - uint16_t readId(const char label[]) override { - return this->readUInt16(label); - } - - bool readBool(const char[]) override { - uint8_t v; - - return validateSize(sizeof(v)) && fStream->readU8(&v) - ? v == 1 - : false; - } - - float readFloat(const char[]) override { - float v; - - return validateSize(sizeof(v)) && fStream->readScalar(&v) - ? v - : 0.0f; - } - - uint8_t readUInt8(const char[]) override { - uint8_t v; - - return validateSize(sizeof(v)) && fStream->readU8(&v) - ? v - : 0; - } - - uint16_t readUInt16(const char[]) override { - uint16_t v; - - return validateSize(sizeof(v)) && fStream->readU16(&v) - ? v - : 0; - } - - uint32_t readUInt32(const char[]) override { - uint32_t v; - - return validateSize(sizeof(v)) && fStream->readU32(&v) - ? v - : 0; - } - - SkString readString(const char[]) override { - uint32_t length; - if (!validateSize(sizeof(length)) || !fStream->readU32(&length)) { - return SkString(); - } - - SkString str(length); - return validateSize(length) && fStream->read(str.writable_str(), length) == length - ? str - : SkString(); - } - - size_t readFloatArray(const char[], float dst[], size_t count) override { - if (!validateSize(count * sizeof(float))) { - return 0; - } - - return fStream->read(dst, count * sizeof(float)) / sizeof(float); - } - - uint8_t readLength8() override { - return this->readUInt8(nullptr); - } - - uint16_t readLength16() override { - return this->readUInt16(nullptr); - } - - // nops - bool openArray(const char[]) override { return true; } - void closeArray() override {} - bool openObject(const char[]) override { return true; } - void closeObject() override {} - - BlockType openBlock() override { - uint8_t block_type; - uint32_t block_size; - - if (this->validateSize(sizeof(block_type) + sizeof(block_size)) && - fStream->readU8 (&block_type) && - fStream->readU32(&block_size)) { - const auto block_end = std::min(fStream->getPosition() + block_size, - fStream->getLength()); - fBlockStack.push_back({block_end}); - return static_cast(block_type); - } - - return BlockType::kEoB; - } - - void closeBlock() override { - SkASSERT(!fBlockStack.empty()); - SkASSERT(fStream->getPosition() <= fBlockStack.back().block_end); - - if (fStream->getPosition() < fBlockStack.back().block_end) { - const auto skip = fBlockStack.back().block_end - fStream->getPosition(); - SkDebugf("!! skipping %zu bytes in block\n", skip); - fStream->skip(skip); - } - - fBlockStack.pop_back(); - } - - const std::unique_ptr fStream; - - struct BlockRec { - size_t block_end; - }; - - std::vector fBlockStack; -}; - -} // namespace - -std::unique_ptr MakeBinaryStreamReader(std::unique_ptr stream) { - return std::make_unique(std::move(stream)); -} - -} // namespace skrive::internal diff --git a/third_party/skia/experimental/skrive/src/reader/JsonReader.cpp b/third_party/skia/experimental/skrive/src/reader/JsonReader.cpp deleted file mode 100644 index 3454dd134093..000000000000 --- a/third_party/skia/experimental/skrive/src/reader/JsonReader.cpp +++ /dev/null @@ -1,259 +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 "experimental/skrive/src/reader/StreamReader.h" -#include "include/core/SkString.h" -#include "src/utils/SkJSON.h" - -#include -#include -#include - -namespace skrive::internal { -namespace { - -StreamReader::BlockType block_type(const char* type_name) { - static constexpr struct TypeMapEntry { - const char* name; - StreamReader::BlockType block_type; - } gTypeMap[] = { - {"artboard" , StreamReader::BlockType::kActorArtboard }, - {"artboards" , StreamReader::BlockType::kArtboards }, - {"colorFill" , StreamReader::BlockType::kColorFill }, - {"colorStroke" , StreamReader::BlockType::kColorStroke }, - {"ellipse" , StreamReader::BlockType::kActorEllipse }, - {"gradientFill" , StreamReader::BlockType::kGradientFill }, - {"gradientStroke" , StreamReader::BlockType::kGradientStroke }, - {"node" , StreamReader::BlockType::kActorNode }, - {"nodes" , StreamReader::BlockType::kComponents }, - {"path" , StreamReader::BlockType::kActorPath }, - {"polygon" , StreamReader::BlockType::kActorPolygon }, - {"radialGradientFill" , StreamReader::BlockType::kRadialGradientFill }, - {"radialGradientStroke", StreamReader::BlockType::kRadialGradientStroke }, - {"rectangle" , StreamReader::BlockType::kActorRectangle }, - {"shape" , StreamReader::BlockType::kActorShape }, - {"star" , StreamReader::BlockType::kActorStar }, - {"triangle" , StreamReader::BlockType::kActorTriangle }, - }; - - const TypeMapEntry key = { type_name, StreamReader::BlockType::kUnknown }; - const auto* map_entry = std::lower_bound(std::begin(gTypeMap), - std::end (gTypeMap), - key, - [](const TypeMapEntry& a, const TypeMapEntry& b) { - return strcmp(a.name, b.name) < 0; - }); - - return (map_entry != std::end(gTypeMap) && !strcmp(map_entry->name, key.name)) - ? map_entry->block_type - : StreamReader::BlockType::kUnknown; -} - -class JsonReader final : public StreamReader { -public: - explicit JsonReader(std::unique_ptr dom) - : fDom(std::move(dom)) { - fContextStack.push_back({&fDom->root(), 0}); - } - - ~JsonReader() override { - SkASSERT(fContextStack.size() == 1); - } - -private: - template - const T* readProp(const char label[]) { - auto& ctx = fContextStack.back(); - - if (ctx.fContainer->is()) { - return static_cast(ctx.fContainer->as()[label]); - } - - const skjson::ArrayValue* jarr = *ctx.fContainer; - SkASSERT(jarr); - - return ctx.fMemberIndex < jarr->size() - ? static_cast((*jarr)[ctx.fMemberIndex++]) - : nullptr; - } - - uint16_t readId(const char label[]) override { - // unlike binary, json IDs are 0-based - return this->readUInt16(label) + 1; - } - - bool readBool(const char label[]) override { - const auto* jbool = this->readProp(label); - - return jbool ? **jbool : false; - } - - float readFloat(const char label[]) override { - const auto* jnum = this->readProp(label); - - return jnum ? static_cast(**jnum) : 0.0f; - } - - uint8_t readUInt8(const char label[]) override { - return static_cast(this->readUInt32(label)); - } - - uint16_t readUInt16(const char label[]) override { - return static_cast(this->readUInt32(label)); - } - - uint32_t readUInt32(const char label[]) override { - const auto* jnum = this->readProp(label); - - return jnum ? static_cast(**jnum) : 0; - } - - SkString readString(const char label[]) override { - const auto* jstr = this->readProp(label); - - return SkString(jstr ? jstr->begin() : nullptr); - } - - size_t readFloatArray(const char label[], float dst[], size_t count) override { - const auto* jarr = this->readProp(label); - - if (!jarr) { - return 0; - } - - count = std::min(count, jarr->size()); - - for (size_t i = 0; i < count; ++i) { - const skjson::NumberValue* jnum = (*jarr)[i]; - dst[i] = jnum ? static_cast(**jnum) : 0.0f; - } - - return count; - } - - uint8_t readLength8() override { - return SkToU8(this->currentLength()); - } - - uint16_t readLength16() override { - return SkToU16(this->currentLength()); - } - - size_t currentLength() const { - const auto& ctx = fContextStack.back(); - return ctx.fContainer->is() - ? ctx.fContainer->as().size() - : ctx.fContainer->as().size(); - } - - bool openArray(const char label[]) override { - const auto* jarr = this->readProp(label); - if (!jarr) { - return false; - } - - fContextStack.push_back({jarr, 0}); - return true; - } - - void closeArray() override { - SkASSERT(fContextStack.back().fContainer->is()); - fContextStack.pop_back(); - } - - bool openObject(const char label[]) override { - const auto* jobj = this->readProp(label); - if (!jobj) { - return false; - } - - fContextStack.push_back({jobj, 0}); - return true; - } - - void closeObject() override { - SkASSERT(fContextStack.back().fContainer->is()); - fContextStack.pop_back(); - } - - // "Blocks" map to either objects or arrays. For object containers, the block type is encoded - // as the key; for array containers, the type is an explicit "type" property *inside* the block - // entry - which must be an object in this case. - BlockType openBlock() override { - switch (fContextStack.back().fContainer->getType()) { - case skjson::Value::Type::kObject: return this->openObjectBlock(); - case skjson::Value::Type::kArray: return this->openArrayBlock(); - default: break; - } - SkUNREACHABLE; - } - - BlockType openObjectBlock() { - auto& ctx = fContextStack.back(); - const auto& container = ctx.fContainer->as(); - - while (ctx.fMemberIndex < container.size()) { - const auto& m = container[ctx.fMemberIndex]; - if (m.fValue.is() || m.fValue.is()) { - const auto btype = block_type(m.fKey.begin()); - if (btype != BlockType::kUnknown) { - fContextStack.push_back({&m.fValue, 0}); - return btype; - } - } - - ctx.fMemberIndex++; - } - - return BlockType::kEoB; - } - - BlockType openArrayBlock() { - auto& ctx = fContextStack.back(); - const auto& container = ctx.fContainer->as(); - - while (ctx.fMemberIndex < container.size()) { - const auto& m = container[ctx.fMemberIndex]; - if (m.is()) { - if (const skjson::StringValue* jtype = m.as()["type"]) { - fContextStack.push_back({&m, 0}); - return block_type(jtype->begin()); - } - } - - ctx.fMemberIndex++; - } - - return BlockType::kEoB; - } - - void closeBlock() override { - SkASSERT(fContextStack.size() > 1); - fContextStack.pop_back(); - fContextStack.back().fMemberIndex++; - } - - struct ContextRec { - const skjson::Value* fContainer; - size_t fMemberIndex; - }; - - const std::unique_ptr fDom; - - std::vector fContextStack; -}; - -} // namespace - -std::unique_ptr MakeJsonStreamReader(const char json[], size_t len) { - auto dom = std::make_unique(json, len); - - return dom->root().is() ? std::make_unique(std::move(dom)) - : nullptr; -} - -} // namespace skrive::internal diff --git a/third_party/skia/experimental/skrive/src/reader/StreamReader.cpp b/third_party/skia/experimental/skrive/src/reader/StreamReader.cpp deleted file mode 100644 index 23abc4ce8865..000000000000 --- a/third_party/skia/experimental/skrive/src/reader/StreamReader.cpp +++ /dev/null @@ -1,72 +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 "experimental/skrive/src/reader/StreamReader.h" - -#include "include/core/SkStream.h" - -#include - -namespace skrive::internal { - -static constexpr char kBinaryPrefix[] = "FLARE"; -static constexpr size_t kBinaryPrefixSize = sizeof(kBinaryPrefix) - 1; - -extern std::unique_ptr MakeJsonStreamReader(const char[], size_t); -extern std::unique_ptr MakeBinaryStreamReader(std::unique_ptr); - -std::unique_ptr StreamReader::Make(const sk_sp& data) { - if (data->size() >= kBinaryPrefixSize && - !memcmp(data->data(), kBinaryPrefix, kBinaryPrefixSize)) { - auto reader = SkMemoryStream::Make(data); - reader->skip(kBinaryPrefixSize); - - return MakeBinaryStreamReader(std::move(reader)); - } - - return MakeJsonStreamReader(static_cast(data->data()), data->size()); -} - -std::unique_ptr StreamReader::Make(std::unique_ptr stream) { - char buf[kBinaryPrefixSize]; - - if (stream->read(buf, kBinaryPrefixSize) == kBinaryPrefixSize) { - if (!strncmp(buf, kBinaryPrefix, kBinaryPrefixSize)) { - // binary stream - we can stay in streaming mode - return MakeBinaryStreamReader(std::move(stream)); - } - } else { - // stream too short to hold anything useful - return nullptr; - } - - if (!stream->rewind()) { - SkDebugf("!! failed to rewind stream.\n"); - return nullptr; - } - - // read to memory to figure what we're dealing with - return StreamReader::Make(SkData::MakeFromStream(stream.get(), stream->getLength())); -} - -SkV2 StreamReader::readV2(const char label[]) { - SkV2 v2{0,0}; - - this->readFloatArray(label, reinterpret_cast(&v2), 2); - - return v2; -} - -SkColor4f StreamReader::readColor(const char label[]) { - SkColor4f color{0,0,0,1}; - - this->readFloatArray(label, reinterpret_cast(&color), 4); - - return color; -} - -} // namespace skrive::internal diff --git a/third_party/skia/experimental/skrive/src/reader/StreamReader.h b/third_party/skia/experimental/skrive/src/reader/StreamReader.h deleted file mode 100644 index bf440972f643..000000000000 --- a/third_party/skia/experimental/skrive/src/reader/StreamReader.h +++ /dev/null @@ -1,108 +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. - */ - -#ifndef SkRive_Streamreader_DEFINED -#define SkRive_Streamreader_DEFINED - -#include - -#include "include/core/SkColor.h" -#include "include/core/SkM44.h" -#include "include/core/SkRefCnt.h" - -class SkStreamAsset; -class SkString; - -namespace skrive::internal { - -class StreamReader { -public: - virtual ~StreamReader() = default; - - static std::unique_ptr Make(std::unique_ptr); - static std::unique_ptr Make(const sk_sp&); - - enum class BlockType : uint8_t { - kUnknown = 0, - kComponents = 1, - kActorNode = 2, - - kActorShape = 100, - kActorPath = 101, - kColorFill = 102, - kColorStroke = 103, - kGradientFill = 104, - kGradientStroke = 105, - kRadialGradientFill = 106, - kRadialGradientStroke = 107, - kActorEllipse = 108, - kActorRectangle = 109, - kActorTriangle = 110, - kActorStar = 111, - kActorPolygon = 112, - kActorArtboard = 114, - kArtboards = 115, - - // End-of-block marker - kEoB = 0xff, - }; - - // Sequential block API - virtual BlockType openBlock() = 0; - virtual void closeBlock() = 0; - - // Keyed API - virtual bool openArray(const char label[]) = 0; - virtual void closeArray() = 0; - virtual bool openObject(const char label[]) = 0; - virtual void closeObject() = 0; - - - virtual uint16_t readId (const char label[]) = 0; - virtual bool readBool (const char label[]) = 0; - virtual float readFloat (const char label[]) = 0; - virtual uint8_t readUInt8 (const char label[]) = 0; - virtual uint16_t readUInt16(const char label[]) = 0; - virtual uint32_t readUInt32(const char label[]) = 0; - virtual SkString readString(const char label[]) = 0; - - virtual uint8_t readLength8 () = 0; - virtual uint16_t readLength16() = 0; - - SkColor4f readColor(const char label[]); - SkV2 readV2(const char label[]); - - class AutoBlock final { - public: - explicit AutoBlock(StreamReader* reader) - : fReader(reader) - , fType(reader->openBlock()) {} - - explicit AutoBlock(const std::unique_ptr& reader) - : fReader(reader.get()) - , fType(reader->openBlock()) {} - - ~AutoBlock() { - if (fType != BlockType::kEoB) { - fReader->closeBlock(); - } - } - - BlockType type() const { return fType; } - - private: - StreamReader* fReader; - BlockType fType; - }; - -protected: - virtual size_t readFloatArray(const char label[], float dst[], size_t count) = 0; -}; - -} // namespace skrive::internal - -#endif // SkRiveStreamreader_DEFINED diff --git a/third_party/skia/experimental/skrive/tests/BinaryReader.cpp b/third_party/skia/experimental/skrive/tests/BinaryReader.cpp deleted file mode 100644 index b4930399ab4a..000000000000 --- a/third_party/skia/experimental/skrive/tests/BinaryReader.cpp +++ /dev/null @@ -1,73 +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 "experimental/skrive/src/reader/StreamReader.h" -#include "tests/Test.h" - -using namespace skrive::internal; - -DEF_TEST(SkRive_BinaryReader, reporter) { - static constexpr uint8_t bin[] = { - 0x46, 0x4c, 0x41, 0x52, 0x45, // 'FLARE' - 0x12, 0x00, 0x00, 0x00, // version: 18 - 0x73, // block type: kArtboards (115) - 0x38, 0x00, 0x00, 0x00, // block size: 56 - 0x01, 0x00, // container count: 1 - 0x72, // block type: kActorArtboard (114) - 0x31, 0x00, 0x00, 0x00, // block size: 49 - 0x04, 0x00, 0x00, 0x00, // name len: 4 - 0x46, 0x6f, 0x6f, 0x6f, // name: 'Fooo' - // translation: - 0x00, 0x00, 0x00, 0x00, // 0 - 0x00, 0x00, 0x00, 0x00, // 0 - 0x00, 0xc0, 0x57, 0x44, // width: 863.0 - 0x00, 0xc0, 0x60, 0x44, // height: 899.0 - // origin: - 0x00, 0x00, 0x00, 0x00, // 0 - 0x00, 0x00, 0x00, 0x00, // 0 - 0x01, // clipContents: true - // color: - 0x00, 0x00, 0x00, 0x3f, // 0.5 - 0x00, 0x00, 0x00, 0x3f, // 0.5 - 0x00, 0x00, 0x00, 0x3f, // 0.5 - 0x00, 0x00, 0x80, 0x3f, // 1.0 - }; - - auto sr = StreamReader::Make(SkData::MakeWithoutCopy(bin, sizeof(bin))); - - REPORTER_ASSERT(reporter, sr); - REPORTER_ASSERT(reporter, sr->readUInt32("version") == 18); - { - StreamReader::AutoBlock ab(sr); - REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kArtboards); - REPORTER_ASSERT(reporter, sr->readLength16() == 1); - - { - StreamReader::AutoBlock ab(sr); - REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kActorArtboard); - REPORTER_ASSERT(reporter, sr->readString("name").equals("Fooo")); - REPORTER_ASSERT(reporter, sr->readV2("translation") == (SkV2{0,0})); - REPORTER_ASSERT(reporter, sr->readFloat("width" ) == 863); - REPORTER_ASSERT(reporter, sr->readFloat("height") == 899); - REPORTER_ASSERT(reporter, sr->readV2("origin") == (SkV2{0,0})); - REPORTER_ASSERT(reporter, sr->readBool("clipContents")); - REPORTER_ASSERT(reporter, sr->readColor("color") == (SkColor4f{0.5f,0.5f,0.5f,1})); - - REPORTER_ASSERT(reporter, sr->readString("INVALID").equals("")); - REPORTER_ASSERT(reporter, sr->readFloat("INVALID" ) == 0); - REPORTER_ASSERT(reporter, !sr->readBool("INVALID")); - } - { - StreamReader::AutoBlock ab(sr); - REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kEoB); - } - } - { - StreamReader::AutoBlock ab(sr); - REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kEoB); - } -} diff --git a/third_party/skia/experimental/skrive/tests/DomTypes.cpp b/third_party/skia/experimental/skrive/tests/DomTypes.cpp deleted file mode 100644 index 116317db62f7..000000000000 --- a/third_party/skia/experimental/skrive/tests/DomTypes.cpp +++ /dev/null @@ -1,63 +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 "experimental/skrive/include/SkRive.h" -#include "tests/Test.h" - -template -void check_type(skiatest::Reporter* reporter, const sk_sp& node, bool expected) { - REPORTER_ASSERT(reporter, node->template is() == expected); - REPORTER_ASSERT(reporter, !!static_cast(*node.get()) == expected); -} - -DEF_TEST(SkRive_DomTypes, reporter) { - { - auto node = sk_make_sp(); - - check_type(reporter, node, true); - check_type(reporter, node, true); - check_type(reporter, node, true); - check_type(reporter, node, false); - check_type(reporter, node, false); - } - - { - auto node = sk_make_sp(); - - check_type(reporter, node, true); - check_type(reporter, node, true); - check_type(reporter, node, true); - check_type(reporter, node, true); - check_type(reporter, node, true); - } - - { - auto node = sk_make_sp(SkPaint::Style::kFill_Style); - - check_type(reporter, node, true); - check_type(reporter, node, false); - check_type(reporter, node, false); - check_type(reporter, node, false); - check_type(reporter, node, false); - check_type(reporter, node, true ); - check_type(reporter, node, true ); - } - - { - auto node = sk_make_sp(); - - check_type(reporter, node, true); - check_type(reporter, node, true); - check_type(reporter, node, true); - check_type(reporter, node, false); - check_type(reporter, node, false); - check_type(reporter, node, false ); - check_type(reporter, node, false ); - check_type(reporter, node, true); - check_type(reporter, node, true); - } -} diff --git a/third_party/skia/experimental/skrive/tests/JsonReader.cpp b/third_party/skia/experimental/skrive/tests/JsonReader.cpp deleted file mode 100644 index 11e28c2071ff..000000000000 --- a/third_party/skia/experimental/skrive/tests/JsonReader.cpp +++ /dev/null @@ -1,63 +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 "experimental/skrive/src/reader/StreamReader.h" -#include "tests/Test.h" - -using namespace skrive::internal; - -DEF_TEST(SkRive_JsonReader, reporter) { - static constexpr char json[] = R"({ - "version": 24, - "artboards": [ - { - "name" : "artboard 1", - "translation" : [ 24, 42 ], - "width" : 500, - "height" : 250, - "origin" : [ 100, 100 ], - "clipContents": true, - "color" : [ 1, 1, 0, 1], - "type" : "artboard" - } - ] - })"; - - auto sr = StreamReader::Make(SkData::MakeWithoutCopy(json, strlen(json))); - - REPORTER_ASSERT(reporter, sr); - REPORTER_ASSERT(reporter, sr->readUInt32("version") == 24); - { - StreamReader::AutoBlock ab(sr); - REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kArtboards); - REPORTER_ASSERT(reporter, sr->readLength16() == 1); - - { - StreamReader::AutoBlock ab(sr); - REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kActorArtboard); - REPORTER_ASSERT(reporter, sr->readString("name").equals("artboard 1")); - REPORTER_ASSERT(reporter, sr->readV2("translation") == (SkV2{24,42})); - REPORTER_ASSERT(reporter, sr->readFloat("width" ) == 500); - REPORTER_ASSERT(reporter, sr->readFloat("height") == 250); - REPORTER_ASSERT(reporter, sr->readV2("origin") == (SkV2{100,100})); - REPORTER_ASSERT(reporter, sr->readBool("clipContents")); - REPORTER_ASSERT(reporter, sr->readColor("color") == (SkColor4f{1,1,0,1})); - - REPORTER_ASSERT(reporter, sr->readString("INVALID").equals("")); - REPORTER_ASSERT(reporter, sr->readFloat("INVALID" ) == 0); - REPORTER_ASSERT(reporter, !sr->readBool("INVALID")); - } - { - StreamReader::AutoBlock ab(sr); - REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kEoB); - } - } - { - StreamReader::AutoBlock ab(sr); - REPORTER_ASSERT(reporter, ab.type() == StreamReader::BlockType::kEoB); - } -} diff --git a/third_party/skia/experimental/sktext/tests/FontResolvedText.cpp b/third_party/skia/experimental/sktext/tests/FontResolvedText.cpp index 8e4ebafc7b37..7f647643df49 100644 --- a/third_party/skia/experimental/sktext/tests/FontResolvedText.cpp +++ b/third_party/skia/experimental/sktext/tests/FontResolvedText.cpp @@ -39,14 +39,14 @@ struct GrContextOptions; using namespace skia::text; UNIX_ONLY_TEST(SkText_FontResolution1, reporter) { - TrivialFontChain* fontChain = new TrivialFontChain("Roboto", 40.0f, SkFontStyle::Normal()); + auto fontChain = sk_sp(new TrivialFontChain("Roboto", 40.0f, SkFontStyle::Normal())); if (fontChain->empty()) return; std::u16string utf16(u"Hello world"); UnicodeText unicodeText(SkUnicode::Make(), SkSpan((uint16_t*)utf16.data(), utf16.size())); if (!unicodeText.getUnicode()) return; - FontBlock fontBlock(utf16.size(), sk_ref_sp(fontChain)); + FontBlock fontBlock(utf16.size(), fontChain); auto fontResolvedText = unicodeText.resolveFonts(SkSpan(&fontBlock, 1)); auto resolvedFonts = fontResolvedText->resolvedFonts(); @@ -59,14 +59,14 @@ UNIX_ONLY_TEST(SkText_FontResolution1, reporter) { } UNIX_ONLY_TEST(SkText_FontResolution3, reporter) { - MultipleFontChain* fontChain = new MultipleFontChain({ "Roboto", "Noto Color Emoji", "Noto Serif CJK JP" }, 40.0f, SkFontStyle::Normal()); + auto fontChain = sk_sp(new MultipleFontChain({ "Roboto", "Noto Color Emoji", "Noto Serif CJK JP" }, 40.0f, SkFontStyle::Normal())); if (fontChain->count() < 3) return; std::u16string utf16(u"English English 字典 字典 😀😃😄 😀😃😄"); UnicodeText unicodeText(SkUnicode::Make(), SkSpan((uint16_t*)utf16.data(), utf16.size())); if (!unicodeText.getUnicode()) return; - FontBlock fontBlock(utf16.size(), sk_ref_sp(fontChain)); + FontBlock fontBlock(utf16.size(), fontChain); auto fontResolvedText = unicodeText.resolveFonts(SkSpan(&fontBlock, 1)); auto resolvedFonts = fontResolvedText->resolvedFonts(); diff --git a/third_party/skia/experimental/sktext/tests/ShapedText.cpp b/third_party/skia/experimental/sktext/tests/ShapedText.cpp index 99627bd1ed13..abc84f6b95ce 100644 --- a/third_party/skia/experimental/sktext/tests/ShapedText.cpp +++ b/third_party/skia/experimental/sktext/tests/ShapedText.cpp @@ -39,14 +39,14 @@ struct GrContextOptions; using namespace skia::text; UNIX_ONLY_TEST(SkText_ShapedText_LTR, reporter) { - TrivialFontChain* fontChain = new TrivialFontChain("Roboto", 40.0f, SkFontStyle::Normal()); + auto fontChain = sk_sp(new TrivialFontChain("Roboto", 40.0f, SkFontStyle::Normal())); if (fontChain->empty()) return; std::u16string utf16(u"Hello world\nHello world"); UnicodeText unicodeText(SkUnicode::Make(), SkSpan((uint16_t*)utf16.data(), utf16.size())); if (!unicodeText.getUnicode()) return; - FontBlock fontBlock(utf16.size(), sk_ref_sp(fontChain)); + FontBlock fontBlock(utf16.size(), fontChain); auto fontResolvedText = unicodeText.resolveFonts(SkSpan(&fontBlock, 1)); auto shapedText = fontResolvedText->shape(&unicodeText, TextDirection::kLtr); auto logicalRuns = shapedText->getLogicalRuns(); @@ -58,7 +58,7 @@ UNIX_ONLY_TEST(SkText_ShapedText_LTR, reporter) { } UNIX_ONLY_TEST(SkText_ShapedText_RTL, reporter) { - sk_sp fontChain = sk_make_sp("Roboto", 40.0f, SkFontStyle::Normal()); + auto fontChain = sk_sp(new TrivialFontChain("Roboto", 40.0f, SkFontStyle::Normal())); if (fontChain->empty()) return; std::u16string utf16(u"\u202EHELLO WORLD\nHELLO WORLD"); diff --git a/third_party/skia/experimental/sorttoy/Cmds.cpp b/third_party/skia/experimental/sorttoy/Cmds.cpp index 757b00aa8825..e928fee74e9c 100644 --- a/third_party/skia/experimental/sorttoy/Cmds.cpp +++ b/third_party/skia/experimental/sorttoy/Cmds.cpp @@ -8,11 +8,11 @@ #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkColor.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkPaint.h" #include "include/core/SkRRect.h" #include "include/effects/SkGradientShader.h" - //------------------------------------------------------------------------------------------------ SortKey SaveCmd::getKey() { SkASSERT(0); diff --git a/third_party/skia/experimental/sorttoy/sorttoy.cpp b/third_party/skia/experimental/sorttoy/sorttoy.cpp index 131add560647..6c58a15e8487 100644 --- a/third_party/skia/experimental/sorttoy/sorttoy.cpp +++ b/third_party/skia/experimental/sorttoy/sorttoy.cpp @@ -9,8 +9,8 @@ #include "include/core/SkGraphics.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkOSFile.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/utils/SkOSPath.h" #include "tools/ToolUtils.h" #include "tools/flags/CommandLineFlags.h" diff --git a/third_party/skia/experimental/wasm-hello-world/BUILD.bazel b/third_party/skia/experimental/wasm-hello-world/BUILD.bazel index ce8eda53b1bb..9868ad45bc00 100644 --- a/third_party/skia/experimental/wasm-hello-world/BUILD.bazel +++ b/third_party/skia/experimental/wasm-hello-world/BUILD.bazel @@ -1,6 +1,8 @@ load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary") load("//bazel:cc_binary_with_flags.bzl", "cc_binary_with_flags") +licenses(["notice"]) + LINKOPTS = [ "-sALLOW_MEMORY_GROWTH", "-sUSE_PTHREADS=0", # Disable pthreads diff --git a/third_party/skia/experimental/wasm-skp-debugger/.gitignore b/third_party/skia/experimental/wasm-skp-debugger/.gitignore deleted file mode 100644 index 907d56f90431..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -package-lock.json -fonts/*.cpp -debugger/bin/* \ No newline at end of file diff --git a/third_party/skia/experimental/wasm-skp-debugger/Makefile b/third_party/skia/experimental/wasm-skp-debugger/Makefile deleted file mode 100644 index f72ec70250cc..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -release: - # Does an incremental build where possible. - ./compile.sh - mkdir -p ./debugger/bin - cp ../../out/debugger_wasm/debugger.js ./debugger/bin - cp ../../out/debugger_wasm/debugger.wasm ./debugger/bin - echo "const SKIA_VERSION = 'local release build';" > ./debugger/bin/version.js - -debug: - # Does an incremental build where possible. - ./compile.sh debug - mkdir -p ./debugger/bin - cp ../../out/debugger_wasm_debug/debugger.js ./debugger/bin - cp ../../out/debugger_wasm_debug/debugger.wasm ./debugger/bin - echo "const SKIA_VERSION = 'local debug build';" > ./debugger/bin/version.js - -# When testing the debugger locally, these assets need to be copied to it's build dir. -move-assets: - rm -rf ${SKIA_INFRA_ROOT}/debugger-app/build/debugger/ - mkdir ${SKIA_INFRA_ROOT}/debugger-app/build/debugger/ - cp ./debugger/bin/debugger.js ${SKIA_INFRA_ROOT}/debugger-app/build/debugger/ - cp ./debugger/bin/debugger.wasm ${SKIA_INFRA_ROOT}/debugger-app/build/debugger/ - cp ./debugger/bin/version.js ${SKIA_INFRA_ROOT}/debugger-app/build/ - -# See buildbot/debugger-app/ for running the frontend. -local-debug: debug move-assets - -local-release: release move-assets - -test-continuous: - echo "Assuming npm install has been run by user" - echo "Also assuming make debug or release has also been run by a user (if needed)" - npx karma start ./karma.conf.js --no-single-run --watch-poll diff --git a/third_party/skia/experimental/wasm-skp-debugger/README.md b/third_party/skia/experimental/wasm-skp-debugger/README.md deleted file mode 100644 index 6432177e4506..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/README.md +++ /dev/null @@ -1,33 +0,0 @@ -WASM SKP Debugger -================= - -The wasm skp debugger is a wasm binary that uses DebugCanvas to show SKP and MSKP files. It is -embedded in the javascript code in debugger-assets from the infra buildbot repository. - -The live version is available at debugger.skia.org - -Build ------ - -``` -make debug -make move-assets -``` - -note that make move-assets just copies the two output files over to the infra repo where they can -be served locally. This requires SKIA_INFRA_ROOT to be set to the root of your checkout of that -repo. - -For more information on running the debugger locally, see infra/debugger-assets/README.md in the -buildbot repo. - -Test ----- - -tests are run with - -``` -make test-continuous -``` - -tests are defined by files in `tests/*.spec.js` \ No newline at end of file diff --git a/third_party/skia/experimental/wasm-skp-debugger/compile.sh b/third_party/skia/experimental/wasm-skp-debugger/compile.sh deleted file mode 100755 index afa69be113fe..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/compile.sh +++ /dev/null @@ -1,153 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google LLC -# -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - - -set -ex - -BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd` -# This expects the environment variable EMSDK to be set -if [[ ! -d $EMSDK ]]; then - echo "Be sure to set the EMSDK environment variable." - exit 1 -fi - -# Navigate to SKIA_HOME from where this file is located. -pushd $BASE_DIR/../.. - -source $EMSDK/emsdk_env.sh -EMCC=`which emcc` -EMCXX=`which em++` -EMAR=`which emar` - -if [[ $@ == *debug* ]]; then - echo "Building a Debug build" - EXTRA_CFLAGS="\"-DSK_DEBUG\"," - RELEASE_CONF="-O0 --js-opts 0 -sDEMANGLE_SUPPORT=1 -sASSERTIONS=1 -sGL_ASSERTIONS=1 -g3 \ - --source-map-base /node_modules/debugger/bin/ -DSK_DEBUG" - BUILD_DIR=${BUILD_DIR:="out/debugger_wasm_debug"} -else - echo "Building a Release build" - EXTRA_CFLAGS="\"-DSK_RELEASE\"," - RELEASE_CONF="-Oz --closure 1 --llvm-lto 3 -DSK_RELEASE" - BUILD_DIR=${BUILD_DIR:="out/debugger_wasm"} -fi - -mkdir -p $BUILD_DIR -# sometimes the .a files keep old symbols around - cleaning them out makes sure -# we get a fresh build. -rm -f $BUILD_DIR/*.a - -BUILTIN_FONT="$BASE_DIR/fonts/NotoMono-Regular.ttf.cpp" -# Generate the font's binary file (which is covered by .gitignore) -python tools/embed_resources.py \ - --name SK_EMBEDDED_FONTS \ - --input $BASE_DIR/fonts/NotoMono-Regular.ttf \ - --output $BASE_DIR/fonts/NotoMono-Regular.ttf.cpp \ - --align 4 - -WASM_GPU="-lEGL -lGL -lGLESv2 -DSK_SUPPORT_GPU=1 -DSK_GL -DSK_ENABLE_DUMP_GPU \ - -DSK_DISABLE_LEGACY_SHADERCONTEXT --pre-js $BASE_DIR/cpu.js --pre-js $BASE_DIR/gpu.js" - -# Turn off exiting while we check for ninja (which may not be on PATH) -set +e -NINJA=`which ninja` -if [[ -z $NINJA ]]; then - git clone "https://chromium.googlesource.com/chromium/tools/depot_tools.git" --depth 1 $BUILD_DIR/depot_tools - NINJA=$BUILD_DIR/depot_tools/ninja -fi -# Re-enable error checking -set -e - -./bin/fetch-gn - -echo "Compiling bitcode" - -./bin/gn gen ${BUILD_DIR} \ - --args="cc=\"${EMCC}\" \ - cxx=\"${EMCXX}\" \ - ar=\"${EMAR}\" \ - extra_cflags_cc=[\"-frtti\"] \ - extra_cflags=[\"-sMAIN_MODULE=1\", - \"-DSKNX_NO_SIMD\", \"-DSK_DISABLE_AAA\", - \"-DSK_FORCE_8_BYTE_ALIGNMENT\", - \"-DSK_ENABLE_DUMP_GPU\", \"-DSK_DISABLE_LEGACY_SHADERCONTEXT\", - ${EXTRA_CFLAGS} - ] \ - is_debug=false \ - is_official_build=true \ - is_component_build=false \ - werror=true \ - target_cpu=\"wasm\" \ - \ - skia_use_angle=false \ - skia_use_dng_sdk=false \ - skia_use_webgl=true \ - skia_use_expat=false \ - skia_use_fontconfig=false \ - skia_use_freetype=true \ - skia_use_libheif=false \ - skia_use_libjpeg_turbo_decode=true \ - skia_use_libjpeg_turbo_encode=false \ - skia_use_libpng_decode=true \ - skia_use_libpng_encode=false \ - skia_use_libwebp_decode=true \ - skia_use_libwebp_encode=false \ - skia_use_wuffs=true \ - skia_use_lua=false \ - skia_use_piex=false \ - skia_use_system_libpng=false \ - skia_use_system_freetype2=false \ - skia_use_system_libjpeg_turbo = false \ - skia_use_system_libwebp=false \ - skia_use_system_zlib=false\ - skia_use_vulkan=false \ - skia_use_zlib=true \ - skia_enable_gpu=true \ - skia_gl_standard=\"webgl\" \ - skia_enable_tools=false \ - skia_enable_skshaper=false \ - skia_enable_fontmgr_custom_directory=false \ - skia_enable_fontmgr_custom_embedded=true \ - skia_enable_fontmgr_custom_empty=false \ - skia_enable_pdf=false" - -# Build all the libs, we'll link the appropriate ones down below -${NINJA} -C ${BUILD_DIR} libskia.a libdebugcanvas.a - -export EMCC_CLOSURE_ARGS="--externs $BASE_DIR/externs.js " - -echo "Generating final wasm" - -# Emscripten prefers that the .a files go last in order, otherwise, it -# may drop symbols that it incorrectly thinks aren't used. One day, -# Emscripten will use LLD, which may relax this requirement. -EMCC_DEBUG=1 ${EMCXX} \ - $RELEASE_CONF \ - -I. \ - -Ithird_party/icu \ - -Ithird_party/skcms \ - -DSK_DISABLE_AAA \ - -DSK_FORCE_8_BYTE_ALIGNMENT \ - -std=c++17 \ - $WASM_GPU \ - --pre-js $BASE_DIR/helper.js \ - --bind \ - --no-entry \ - $BASE_DIR/fonts/NotoMono-Regular.ttf.cpp \ - $BASE_DIR/debugger_bindings.cpp \ - $BUILD_DIR/libdebugcanvas.a \ - $BUILD_DIR/libskia.a \ - -sALLOW_MEMORY_GROWTH=1 \ - -sEXPORT_NAME="DebuggerInit" \ - -sFORCE_FILESYSTEM=0 \ - -sFILESYSTEM=0 \ - -sMODULARIZE=1 \ - -sNO_EXIT_RUNTIME=1 \ - -sSTRICT=1 \ - -sINITIAL_MEMORY=128MB \ - -sWASM=1 \ - -sUSE_WEBGL2=1 \ - -o $BUILD_DIR/debugger.js diff --git a/third_party/skia/experimental/wasm-skp-debugger/cpu.js b/third_party/skia/experimental/wasm-skp-debugger/cpu.js deleted file mode 100644 index 929712c83d6a..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/cpu.js +++ /dev/null @@ -1,86 +0,0 @@ -// Adds compile-time JS functions to handle creation and flushing of wasm's offscreen buffer -// to a visible element on the page. -(function(DebuggerView){ - // Takes a canvas element - DebuggerView.MakeSWCanvasSurface = function(canvas) { - // Set the canvas element to have a 2d non-gpu context. (constant until element is destroyed) - // We don't need the context in this scope, we just want the side effect. - canvas.getContext('2d', { - alpha: true, - depth: false - }); - // Maybe better to use clientWidth/height. See: - // https://webglfundamentals.org/webgl/lessons/webgl-anti-patterns.html - var surface = DebuggerView.MakeSurface(canvas.width, canvas.height); - if (surface) { - surface._canvas = canvas; - } - console.log('Made HTML Canvas Surface'); - return surface; - }; - - // Don't over-write the MakeCanvasSurface set by gpu.js if it exists. - if (!DebuggerView.MakeCanvasSurface) { - DebuggerView.MakeCanvasSurface = DebuggerView.MakeSWCanvasSurface; - } - - DebuggerView.MakeSurface = function(width, height) { - var bufferLen = width * height * 4; // 4 bytes per pixel - // Allocate the buffer of pixels to be drawn into. - var pixelPtr = DebuggerView._malloc(bufferLen); - var imageInfo = { - 'width': width, - 'height': height, - // RGBA 8888 is the only pixel format we can show on an HTML canvas - 'colorType': DebuggerView.ColorType.RGBA_8888, - // We are sending these pixels directly into the HTML canvas, - // (and those pixels are un-premultiplied, i.e. straight r,g,b,a) - 'alphaType': DebuggerView.AlphaType.Unpremul, - 'imageAddress': 0, // unused here. field only relevant for some UI stuff in resource tab. - } - var surface = this._getRasterDirectSurface(imageInfo, pixelPtr, width * 4); - if (surface) { - surface._canvas = null; - surface._width = width; - surface._height = height; - surface._bufferLen = bufferLen; - - surface._pixelPtr = pixelPtr; - // rasterDirectSurface does not initialize the pixels, so we clear them - // to transparent black. - surface.getCanvas().clear(DebuggerView.TRANSPARENT); - } - return surface; - }; - - - DebuggerView.onRuntimeInitialized = function() { - - DebuggerView.SkSurface.prototype.flush = function() { - this._flush(); - // Do we have an HTML canvas to write the pixels to? - // We will not if this a GPU build or a raster surface, for example. - if (this._canvas) { - var pixels = new Uint8ClampedArray(DebuggerView.HEAPU8.buffer, this._pixelPtr, this._bufferLen); - var imageData = new ImageData(pixels, this._width, this._height); - this._canvas.getContext('2d').putImageData(imageData, 0, 0); - } - }; - - // Call dispose() instead of delete to clean up the underlying memory - DebuggerView.SkSurface.prototype.dispose = function() { - if (this._pixelPtr) { - DebuggerView._free(this._pixelPtr); - } - this.delete(); - } - } - - DebuggerView.currentContext = DebuggerView.currentContext || function() { - // no op if this is a cpu-only build. - }; - - DebuggerView.setCurrentContext = DebuggerView.setCurrentContext || function() { - // no op if this is a cpu-only build. - }; -}(Module)); // When this file is loaded in, the high level object is "Module"; diff --git a/third_party/skia/experimental/wasm-skp-debugger/debugger/anim.mskp b/third_party/skia/experimental/wasm-skp-debugger/debugger/anim.mskp deleted file mode 100644 index 2cc3877f93ae..000000000000 Binary files a/third_party/skia/experimental/wasm-skp-debugger/debugger/anim.mskp and /dev/null differ diff --git a/third_party/skia/experimental/wasm-skp-debugger/debugger/index.html b/third_party/skia/experimental/wasm-skp-debugger/debugger/index.html deleted file mode 100644 index 702108ae2193..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/debugger/index.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - Debugger Demo - - - - - -
- CPU - WebGL
- | 0 commands
- - command interval in ms -
- Overdraw vis
- GPU Op bounds
- Clip visualization color -
-
-
-
- - diff --git a/third_party/skia/experimental/wasm-skp-debugger/debugger/sample.skp b/third_party/skia/experimental/wasm-skp-debugger/debugger/sample.skp deleted file mode 100644 index 3053116923d6..000000000000 Binary files a/third_party/skia/experimental/wasm-skp-debugger/debugger/sample.skp and /dev/null differ diff --git a/third_party/skia/experimental/wasm-skp-debugger/externs.js b/third_party/skia/experimental/wasm-skp-debugger/externs.js deleted file mode 100644 index e57e1e13e0d4..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/externs.js +++ /dev/null @@ -1,73 +0,0 @@ -var DebuggerView = { - MakeSWCanvasSurface: function() {}, - _getRasterDirectSurface: function() {}, - _malloc: function() {}, - _free: function() {}, - onRuntimeInitialized: function() {}, - SkpFilePlayer: function() {}, - MakeWebGLCanvasSurface: function() {}, - MakeGrContext: function() {}, - MakeOnScreenGLSurface: function() {}, - MakeCanvasSurface: function() {}, - MinVersion: function() {}, - - ColorType: { - RGBA_8888: {}, - }, - - AlphaType: { - Unpremul: {}, - }, - - TRANSPARENT: {}, - - SkSurface: { - // public API (from C++ bindings) - /** @return {DebuggerView.SkCanvas} */ - getCanvas: function() {}, - clear: function() {}, - - // private API - _flush: function() {}, - delete: function() {}, - }, - - SkpDebugPlayer: { - SkpDebugPlayer: function() {}, - changeFrame: function() {}, - deleteCommand: function() {}, - draw: function() {}, - drawTo: function() {}, - findCommandByPixel: function() {}, - getBounds: function() {}, - getFrameCount: function() {}, - getImageResource: function() {}, - getImageCount: function() {}, - getImageInfo: function() {}, - getLayerSummariesJs: function() {}, - getSize: function() {}, - imageUseInfoForFrameJs: function() {}, - jsonCommandList: function() {}, - lastCommandInfo: function() {}, - loadSkp: function() {}, - setClipVizColor: function() {}, - setCommandVisibility: function() {}, - setGpuOpBounds: function() {}, - setInspectedLayer: function() {}, - setOriginVisible: function() {}, - setOverdrawVis: function() {}, - setAndroidClipViz: function() {}, - }, - - /** - * @type {Uint8Array} - */ - HEAPU8: {}, -}; - -// Public API things that are newly declared in the JS should go here. -// It's not enough to declare them above, because closure can still erase them -// unless they go on the prototype. - -DebuggerView.SkSurface.prototype.flush = function() {}; -DebuggerView.SkSurface.prototype.dispose = function() {}; \ No newline at end of file diff --git a/third_party/skia/experimental/wasm-skp-debugger/fonts/NotoMono-Regular.ttf b/third_party/skia/experimental/wasm-skp-debugger/fonts/NotoMono-Regular.ttf deleted file mode 100644 index 3560a3a0c87b..000000000000 Binary files a/third_party/skia/experimental/wasm-skp-debugger/fonts/NotoMono-Regular.ttf and /dev/null differ diff --git a/third_party/skia/experimental/wasm-skp-debugger/gpu.js b/third_party/skia/experimental/wasm-skp-debugger/gpu.js deleted file mode 100644 index 35f702dddca3..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/gpu.js +++ /dev/null @@ -1,74 +0,0 @@ -// Adds compile-time JS functions to augment the DebuggerView interface. -// Specifically, anything that should only be on the GPU version of DebuggerView. -(function(DebuggerView){ - function makeWebGLContext(canvas, attrs) { - // These defaults come from the emscripten _emscripten_webgl_create_context - // TODO(nifong): All these settings appear to be ignored. investigate. - var contextAttributes = { - alpha: 1, - depth: 1, - stencil: 0, - antialias: 1, - premultipliedAlpha: 1, - // for the zoom to be able to access the pixels. Incurs performance penalty - preserveDrawingBuffer: 1, - preferLowPowerToHighPerformance: 0, - failIfMajorPerformanceCaveat: 0, - majorVersion: 2, - minorVersion: 0, - enableExtensionsByDefault: 1, - explicitSwapControl: 0, - renderViaOffscreenBackBuffer: 0, - }; - if (!canvas) { - console.log('null canvas passed into makeWebGLContext'); - return 0; - } - // This check is from the emscripten version - if (contextAttributes['explicitSwapControl']) { - console.log('explicitSwapControl is not supported'); - return 0; - } - // GL is an enscripten provided helper - // See https://github.com/emscripten-core/emscripten/blob/incoming/src/library_webgl.js - var context = GL.createContext(canvas, contextAttributes); - if (!context) { - console.log('Could not get a WebGL context from the canvas element.'); - } - console.log('Made Web Gl Canvas Surface'); - return context - } - - DebuggerView.GetWebGLContext = function(canvas, attrs) { - return makeWebGLContext(canvas, attrs); - }; - - // canvas - a canvas element to use for this surface. - DebuggerView.MakeWebGLCanvasSurface = function(canvas) { - // we are ok with all the defaults - var ctx = DebuggerView.GetWebGLContext(canvas); - - if (!ctx || ctx < 0) { - throw 'failed to create webgl context: err ' + ctx; - } - - var grcontext = this.MakeGrContext(ctx); - if (!grcontext) { - throw ( - 'failed to create grcontext. Open GL driver may not support all needed functions: err ' - + grcontext); - } - - // Maybe better to use clientWidth/height. See: - // https://webglfundamentals.org/webgl/lessons/webgl-anti-patterns.html - var surface = this.MakeOnScreenGLSurface(grcontext, canvas.width, canvas.height); - if (!surface) { - // Don't fall back silently in the debugger, the user explicitly controls which backend he - // wants via the UI. Calling function may catch this and show the user an error. - throw ('Failed to create OpenGL surface. GPU Backend unavailable.'); - } - return surface; - }; - // Default to trying WebGL first. - DebuggerView.MakeCanvasSurface = DebuggerView.MakeWebGLCanvasSurface; -}(Module)); // When this file is loaded in, the high level object is "Module"; diff --git a/third_party/skia/experimental/wasm-skp-debugger/karma.conf.js b/third_party/skia/experimental/wasm-skp-debugger/karma.conf.js deleted file mode 100644 index 5a9eb12bca25..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/karma.conf.js +++ /dev/null @@ -1,75 +0,0 @@ -const isDocker = require('is-docker')(); - -module.exports = function(config) { - // Set the default values to be what are needed when testing the - // WebAssembly build locally. - let cfg = { - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['jasmine'], - - // list of files / patterns to load in the browser - files: [ - { pattern: 'debugger/bin/debugger.wasm', included:false, served:true}, - { pattern: 'debugger/sample.skp', included:false, served:true}, - { pattern: 'debugger/anim.mskp', included:false, served:true}, - '../../modules/pathkit/tests/testReporter.js', - 'debugger/bin/debugger.js', - 'tests/debuggerinit.js', - 'tests/*.spec.js' - ], - - proxies: { - '/debugger/': '/base/debugger/', - }, - - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['progress'], - - // web server port - port: 4444, - - // enable / disable colors in the output (reporters and logs) - colors: true, - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - logLevel: config.LOG_INFO, - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: true, - - browserDisconnectTimeout: 15000, - browserNoActivityTimeout: 15000, - - // start these browsers - browsers: ['Chrome'], - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: false, - - // Concurrency level - // how many browser should be started simultaneous - concurrency: Infinity, - }; - - if (isDocker) { - // See https://hackernoon.com/running-karma-tests-with-headless-chrome-inside-docker-ae4aceb06ed3 - cfg.browsers = ['ChromeHeadlessNoSandbox'], - cfg.customLaunchers = { - ChromeHeadlessNoSandbox: { - base: 'ChromeHeadless', - flags: [ - // Without this flag, we see an error: - // Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted - '--no-sandbox' - ], - }, - }; - } - - config.set(cfg); -} diff --git a/third_party/skia/experimental/wasm-skp-debugger/package.json b/third_party/skia/experimental/wasm-skp-debugger/package.json deleted file mode 100644 index be52f2e1a0b1..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "debugger-local", - "version": "0.0.0", - "description": "private", - "private": true, - "main": "index.js", - "dependencies": {}, - "devDependencies": { - "is-docker": "~1.1.0", - "jasmine-core": "~3.1.0", - "karma": "~3.0.0", - "karma-chrome-launcher": "~2.2.0", - "karma-jasmine": "~1.1.2", - "requirejs": "~2.3.5" - }, - "scripts": { - "test": "make test-continuous" - }, - "author": "", - "license": "BSD-3-Clause" -} diff --git a/third_party/skia/experimental/wasm-skp-debugger/tests/debuggerinit.js b/third_party/skia/experimental/wasm-skp-debugger/tests/debuggerinit.js deleted file mode 100644 index d49da5deb43b..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/tests/debuggerinit.js +++ /dev/null @@ -1,15 +0,0 @@ -jasmine.DEFAULT_TIMEOUT_INTERVAL = 20000; - -let Debugger = null; -const LoadDebugger = new Promise(function(resolve, reject) { - if (Debugger) { - resolve(); - } else { - DebuggerInit({ - locateFile: (file) => '/debugger/bin/'+file, - }).then((_Debugger) => { - Debugger = _Debugger; - resolve(); - }); - } -}); \ No newline at end of file diff --git a/third_party/skia/experimental/wasm-skp-debugger/tests/mskp_playback.spec.js b/third_party/skia/experimental/wasm-skp-debugger/tests/mskp_playback.spec.js deleted file mode 100644 index 3ba937f92cc4..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/tests/mskp_playback.spec.js +++ /dev/null @@ -1,65 +0,0 @@ -// The increased timeout is especially needed with larger binaries -// like in the debug/gpu build -jasmine.DEFAULT_TIMEOUT_INTERVAL = 20000; - -describe('Debugger\'s Playback Behavior', function() { - const container = document.createElement('div'); - document.body.appendChild(container); - - beforeEach(function() { - container.innerHTML = ``; - }); - - afterEach(function() { - container.innerHTML = ''; - }); - - it('can switch to the second frame of an animated skp', function(done) { - const filename = '/debugger/anim.mskp' - const fetchSkpPromise = fetch(filename); - - Promise.all([LoadDebugger, fetchSkpPromise]).then((values) => { - - const response = values[1]; - if (!response.ok) { - throw new Error("HTTP error, status = " + response.status); - } - response.arrayBuffer().then((buffer) => { - catchException(done, () => { - const canvasElement = document.getElementById('debugger_view'); - const fileContents = new Uint8Array(buffer); - console.log('fetched '+filename); - const player = Debugger.SkpFilePlayer(fileContents); - const bounds = player.getBounds(); - canvasElement.width = bounds.fRight - bounds.fLeft; - canvasElement.height = bounds.fBottom - bounds.fTop; - expect(canvasElement.width).toBe(1080); - expect(canvasElement.height).toBe(1920); - const surface = Debugger.MakeWebGLCanvasSurface(canvasElement); - expect(surface).toBeTruthy(); - const numFrames = player.getFrameCount(); - expect(numFrames).toBe(10); - - let cmd = JSON.parse(player.jsonCommandList(surface)); - expect(cmd).toBeTruthy(); - - // Move to last command in first frame - player.drawTo(surface, cmd.commands.length); - surface.flush(); - - // Move to frame two - player.changeFrame(1); - cmd = JSON.parse(player.jsonCommandList(surface)); - expect(cmd).toBeTruthy(); - // move to command 100 in frame 2 - player.drawTo(surface, 100); - surface.flush(); - - console.log('drew picture to canvas element'); - surface.dispose(); - done(); - })(); - }); - }); - }); -}); diff --git a/third_party/skia/experimental/wasm-skp-debugger/tests/startup.spec.js b/third_party/skia/experimental/wasm-skp-debugger/tests/startup.spec.js deleted file mode 100644 index c69597eaca61..000000000000 --- a/third_party/skia/experimental/wasm-skp-debugger/tests/startup.spec.js +++ /dev/null @@ -1,67 +0,0 @@ -// The increased timeout is especially needed with larger binaries -// like in the debug/gpu build -jasmine.DEFAULT_TIMEOUT_INTERVAL = 20000; - -describe('Debugger\'s Startup Behavior', function() { - let container = document.createElement('div'); - document.body.appendChild(container); - - beforeEach(function() { - container.innerHTML = ``; - }); - - afterEach(function() { - container.innerHTML = ''; - }); - - it('can load and draw a skp file on an Canvas2D', function(done) { - LoadDebugger.then(catchException(done, () => { - const surface = Debugger.MakeSWCanvasSurface(document.getElementById('debugger_view')); - - fetch('/debugger/sample.skp').then(function(response) { - // Load test file - if (!response.ok) { - throw new Error("HTTP error, status = " + response.status); - } - response.arrayBuffer().then(function(buffer) { - const fileContents = new Uint8Array(buffer); - console.log('fetched /debugger/sample.skp'); - const player = Debugger.SkpFilePlayer(fileContents); - // Draw picture - player.drawTo(surface, 789); // number of commands in sample file - surface.flush(); - - console.log('drew picture to canvas element'); - surface.dispose(); - done(); - }); - }); - })); - }); - - it('can load and draw a skp file on a Web GL canvas', function(done) { - LoadDebugger.then(catchException(done, () => { - const surface = Debugger.MakeWebGLCanvasSurface( - document.getElementById('debugger_view')); - - fetch('/debugger/sample.skp').then(function(response) { - // Load test file - if (!response.ok) { - throw new Error("HTTP error, status = " + response.status); - } - response.arrayBuffer().then(function(buffer) { - const fileContents = new Uint8Array(buffer); - console.log('fetched /debugger/sample.skp'); - const player = Debugger.SkpFilePlayer(fileContents); - // Draw picture - player.drawTo(surface, 789); // number of commands in sample file - surface.flush(); - - console.log('drew picture to canvas element'); - surface.dispose(); - done(); - }); - }); - })); - }); -}); diff --git a/third_party/skia/experimental/xps_to_png/.gitignore b/third_party/skia/experimental/xps_to_png/.gitignore deleted file mode 100644 index 335ad177dc32..000000000000 --- a/third_party/skia/experimental/xps_to_png/.gitignore +++ /dev/null @@ -1 +0,0 @@ -xps_to_png.exe diff --git a/third_party/skia/experimental/xps_to_png/compile_xps_to_png.bat b/third_party/skia/experimental/xps_to_png/compile_xps_to_png.bat deleted file mode 100644 index b4140d4246c1..000000000000 --- a/third_party/skia/experimental/xps_to_png/compile_xps_to_png.bat +++ /dev/null @@ -1,14 +0,0 @@ -@rem Copyright 2016 Google Inc. -@rem -@rem Use of this source code is governed by a BSD-style license that can be -@rem found in the LICENSE file. - -@set CSC="C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\csc.exe" -@set LIB="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2" - -%CSC% /lib:%LIB% ^ -/reference:"PresentationCore.dll" ^ -/reference:"PresentationFramework.dll" ^ -/reference:"ReachFramework.dll" ^ -/reference:"WindowsBase.dll" ^ -"%~dp0%xps_to_png.cs" diff --git a/third_party/skia/experimental/xps_to_png/xps_to_png.cs b/third_party/skia/experimental/xps_to_png/xps_to_png.cs deleted file mode 100644 index 738e0fc17e59..000000000000 --- a/third_party/skia/experimental/xps_to_png/xps_to_png.cs +++ /dev/null @@ -1,107 +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. - */ - -/* -Compile with: - - "...../csc" \ - /lib:"....." \ - /reference:"ReachFramework.dll" \ - /reference:"WindowsBase.dll" \ - /reference:"PresentationCore.dll" \ - /reference:"PresentationFramework.dll" \ - xps_to_png.cs - -*/ -// logic inspired by this example: https://goo.gl/nCxrjQ -class Program { - static int ceil(double x) { return (int)System.Math.Ceiling(x); } - static void convert(double dpi, string path, string out_path) { - double scale = dpi / 96.0; - System.Windows.Xps.Packaging.XpsDocument xpsDoc = - new System.Windows.Xps.Packaging.XpsDocument( - path, System.IO.FileAccess.Read); - if (xpsDoc == null) { - throw new System.Exception("XpsDocumentfailed"); - } - System.Windows.Documents.FixedDocumentSequence docSeq = - xpsDoc.GetFixedDocumentSequence(); - if (docSeq == null) { - throw new System.Exception("GetFixedDocumentSequence failed"); - } - System.Windows.Documents.DocumentReferenceCollection drc = docSeq.References; - int index = 0; - foreach (System.Windows.Documents.DocumentReference dr in drc) { - System.Windows.Documents.FixedDocument dp = dr.GetDocument(false); - foreach (System.Windows.Documents.PageContent pc in dp.Pages) { - System.Windows.Documents.FixedPage fixedPage = pc.GetPageRoot(false); - double width = fixedPage.Width; - double height = fixedPage.Height; - System.Windows.Size sz = new System.Windows.Size(width, height); - fixedPage.Measure(sz); - fixedPage.Arrange( - new System.Windows.Rect(new System.Windows.Point(), sz)); - fixedPage.UpdateLayout(); - System.Windows.Media.Imaging.BitmapImage bitmap = - new System.Windows.Media.Imaging.BitmapImage(); - System.Windows.Media.Imaging.RenderTargetBitmap renderTarget = - new System.Windows.Media.Imaging.RenderTargetBitmap( - ceil(scale * width), ceil(scale * height), dpi, dpi, - System.Windows.Media.PixelFormats.Default); - renderTarget.Render(fixedPage); - System.Windows.Media.Imaging.BitmapEncoder encoder = - new System.Windows.Media.Imaging.PngBitmapEncoder(); - encoder.Frames.Add( - System.Windows.Media.Imaging.BitmapFrame.Create(renderTarget)); - string filename = string.Format("{0}_{1}.png", out_path, index); - System.IO.FileStream pageOutStream = new System.IO.FileStream( - filename, System.IO.FileMode.Create, System.IO.FileAccess.Write); - encoder.Save(pageOutStream); - pageOutStream.Close(); - System.Console.WriteLine(filename); - ++index; - } - } - } - // Executes convert, catching thrown exceptions, and printing them - // to stdout, and exiting immediately. - static void try_convert(double dpi, string path, string out_path) { - try { - convert(dpi, path, out_path); - } catch (System.Exception e) { - System.Console.WriteLine(e); - System.Environment.Exit(1); - } - } - // For each command line argument, convert xps to sequence of pngs. - static void Main(string[] args) { - double dpi = 72.0; - if (args.Length == 0) { - System.Console.WriteLine("usage:\n\txps_to_png [-dDPI] [XPS_FILES]\n\n"); - System.Environment.Exit(1); - } - System.Collections.Generic.List xpsFiles = - new System.Collections.Generic.List(); - foreach (string arg in args) { - string flag = "-d"; - if (arg.StartsWith(flag)) { - dpi = System.Convert.ToDouble(arg.Remove(0, flag.Length)); - } else if (System.IO.File.Exists(arg)) { - xpsFiles.Add(arg); - } else { - System.Console.WriteLine("file missing: '" + arg + "'\n\n"); - System.Environment.Exit(1); - } - } - foreach (string file in xpsFiles) { - System.Threading.Thread t = new System.Threading.Thread( - () => try_convert(dpi, file, file)); - t.SetApartmentState(System.Threading.ApartmentState.STA); - t.Start(); - } - } -} diff --git a/third_party/skia/fuzz/FuzzCanvas.cpp b/third_party/skia/fuzz/FuzzCanvas.cpp index 2bc1cdee7a8d..69af03dcbb67 100644 --- a/third_party/skia/fuzz/FuzzCanvas.cpp +++ b/third_party/skia/fuzz/FuzzCanvas.cpp @@ -7,8 +7,7 @@ #include "fuzz/Fuzz.h" #include "fuzz/FuzzCommon.h" - -// CORE +#include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkColorFilter.h" #include "include/core/SkFontMgr.h" @@ -20,18 +19,10 @@ #include "include/core/SkRSXform.h" #include "include/core/SkRegion.h" #include "include/core/SkSurface.h" +#include "include/core/SkTextBlob.h" #include "include/core/SkTypeface.h" +#include "include/core/SkVertices.h" #include "include/docs/SkPDFDocument.h" -#include "include/private/SkTo.h" -#include "include/svg/SkSVGCanvas.h" -#include "include/utils/SkNullCanvas.h" -#include "src/core/SkOSFile.h" -#include "src/core/SkPaintPriv.h" -#include "src/core/SkPicturePriv.h" -#include "tools/debugger/DebugCanvas.h" - -// EFFECTS -#include "include/core/SkTextBlob.h" #include "include/effects/Sk1DPathEffect.h" #include "include/effects/Sk2DPathEffect.h" #include "include/effects/SkColorMatrixFilter.h" @@ -44,26 +35,31 @@ #include "include/effects/SkLumaColorFilter.h" #include "include/effects/SkPerlinNoiseShader.h" #include "include/effects/SkTableColorFilter.h" +#include "include/private/SkTo.h" +#include "include/svg/SkSVGCanvas.h" +#include "include/utils/SkNullCanvas.h" +#include "src/core/SkOSFile.h" +#include "src/core/SkPaintPriv.h" +#include "src/core/SkPicturePriv.h" #include "src/core/SkReadBuffer.h" - -// SRC +#include "src/utils/SkJSONWriter.h" #include "src/utils/SkUTF.h" +#include "tools/UrlDataManager.h" +#include "tools/debugger/DebugCanvas.h" #include "tools/flags/CommandLineFlags.h" #if SK_SUPPORT_GPU #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tools/gpu/GrContextFactory.h" #endif #ifdef SK_GL #include "include/gpu/gl/GrGLFunctions.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #endif -// MISC - #include #include diff --git a/third_party/skia/fuzz/FuzzCreateDDL.cpp b/third_party/skia/fuzz/FuzzCreateDDL.cpp index be44d2039388..4a013bf8266b 100644 --- a/third_party/skia/fuzz/FuzzCreateDDL.cpp +++ b/third_party/skia/fuzz/FuzzCreateDDL.cpp @@ -12,8 +12,8 @@ #include "include/core/SkSurface.h" #include "include/core/SkSurfaceCharacterization.h" #include "include/gpu/GrDirectContext.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrShaderCaps.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrShaderCaps.h" #include "tools/gpu/GrContextFactory.h" #include "fuzz/Fuzz.h" diff --git a/third_party/skia/fuzz/FuzzEncoders.cpp b/third_party/skia/fuzz/FuzzEncoders.cpp index 01e3940da43c..ac65b4a4f73e 100644 --- a/third_party/skia/fuzz/FuzzEncoders.cpp +++ b/third_party/skia/fuzz/FuzzEncoders.cpp @@ -10,6 +10,7 @@ #include "include/core/SkImage.h" #include "include/core/SkImageInfo.h" #include "include/core/SkPixmap.h" +#include "include/core/SkStream.h" #include "include/encode/SkJpegEncoder.h" #include "include/encode/SkPngEncoder.h" #include "include/encode/SkWebpEncoder.h" diff --git a/third_party/skia/fuzz/FuzzTriangulation.cpp b/third_party/skia/fuzz/FuzzTriangulation.cpp index b62054c483b4..b1a532d8a5f0 100644 --- a/third_party/skia/fuzz/FuzzTriangulation.cpp +++ b/third_party/skia/fuzz/FuzzTriangulation.cpp @@ -8,9 +8,9 @@ #include "fuzz/Fuzz.h" #include "fuzz/FuzzCommon.h" #include "include/core/SkPath.h" -#include "src/gpu/GrEagerVertexAllocator.h" -#include "src/gpu/geometry/GrPathUtils.h" -#include "src/gpu/geometry/GrTriangulator.h" +#include "src/gpu/ganesh/GrEagerVertexAllocator.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/geometry/GrTriangulator.h" DEF_FUZZ(Triangulation, fuzz) { diff --git a/third_party/skia/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp b/third_party/skia/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp index bdbde040f3ac..4b3610ecc1d2 100644 --- a/third_party/skia/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp +++ b/third_party/skia/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp @@ -7,6 +7,7 @@ #include "include/core/SkCanvas.h" +#include "include/core/SkData.h" #include "include/core/SkPaint.h" #include "include/core/SkSurface.h" #include "src/core/SkRegionPriv.h" diff --git a/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp b/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp index e22ced3293e3..beb25f0ac33f 100644 --- a/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp +++ b/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderCaps.h" #include "src/sksl/SkSLCompiler.h" #include "fuzz/Fuzz.h" diff --git a/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Metal.cpp b/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Metal.cpp index 546463a2c83d..e0a75b2078e6 100644 --- a/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Metal.cpp +++ b/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Metal.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderCaps.h" #include "src/sksl/SkSLCompiler.h" #include "fuzz/Fuzz.h" diff --git a/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp b/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp index 6a529b00259a..7cd52926262c 100644 --- a/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp +++ b/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderCaps.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/codegen/SkSLPipelineStageCodeGenerator.h" #include "src/sksl/ir/SkSLVarDeclarations.h" diff --git a/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp b/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp index 41281f3e3515..6840d7a974d6 100644 --- a/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp +++ b/third_party/skia/fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderCaps.h" #include "src/sksl/SkSLCompiler.h" #include "fuzz/Fuzz.h" diff --git a/third_party/skia/fuzz/oss_fuzz/FuzzSkRuntimeEffect.cpp b/third_party/skia/fuzz/oss_fuzz/FuzzSkRuntimeEffect.cpp index d75c252b7d98..ec52e5b13a6d 100644 --- a/third_party/skia/fuzz/oss_fuzz/FuzzSkRuntimeEffect.cpp +++ b/third_party/skia/fuzz/oss_fuzz/FuzzSkRuntimeEffect.cpp @@ -12,7 +12,7 @@ #include "include/core/SkSurface.h" #include "include/effects/SkBlenders.h" #include "include/effects/SkRuntimeEffect.h" -#include "src/gpu/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderCaps.h" #include "fuzz/Fuzz.h" diff --git a/third_party/skia/gm/BUILD.bazel b/third_party/skia/gm/BUILD.bazel index 98519b22abb9..09dfd0535c87 100644 --- a/third_party/skia/gm/BUILD.bazel +++ b/third_party/skia/gm/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "gm", testonly = True, @@ -518,12 +520,12 @@ generated_cc_atom( "//include/core:SkScalar_hdr", "//include/core:SkSize_hdr", "//include/core:SkString_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/gpu:TestOps_hdr", ], ) @@ -925,21 +927,21 @@ generated_cc_atom( "//include/core:SkRect_hdr", "//include/gpu:GrRecordingContext_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrBuffer_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrGpuBuffer_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProcessorSet_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrShaderVar_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/ops:GrOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrBuffer_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrGpuBuffer_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProcessorSet_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrShaderVar_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/ops:GrOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/gpu:ProxyUtils_hdr", ], ) @@ -1035,8 +1037,8 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrRecordingContext_hdr", "//src/core:SkCompressedDataUtils_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrImageContextPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrImageContextPriv_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkImage_GpuBase_hdr", "//tools/gpu:ProxyUtils_hdr", @@ -1062,32 +1064,32 @@ generated_cc_atom( "//include/core:SkString_hdr", "//include/core:SkTypes_hdr", "//include/gpu:GrRecordingContext_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkColorData_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//include/utils:SkRandom_hdr", "//src/core:SkCanvasPriv_hdr", "//src/core:SkGeometry_hdr", "//src/core:SkPointPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:GrProcessorAnalysis_hdr", - "//src/gpu:GrProcessorSet_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrUserStencilSettings_hdr", - "//src/gpu/effects:GrBezierEffect_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - "//src/gpu/geometry:GrPathUtils_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/ops:GrMeshDrawOp_hdr", - "//src/gpu/ops:GrOp_hdr", - "//src/gpu/ops:GrSimpleMeshDrawOpHelper_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:GrProcessorAnalysis_hdr", + "//src/gpu/ganesh:GrProcessorSet_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrUserStencilSettings_hdr", + "//src/gpu/ganesh/effects:GrBezierEffect_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh/geometry:GrPathUtils_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/ops:GrMeshDrawOp_hdr", + "//src/gpu/ganesh/ops:GrOp_hdr", + "//src/gpu/ganesh/ops:GrSimpleMeshDrawOpHelper_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -1194,16 +1196,16 @@ generated_cc_atom( "//include/core:SkSize_hdr", "//include/core:SkString_hdr", "//include/core:SkTypes_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - "//src/gpu/effects:GrRRectEffect_hdr", - "//src/gpu/ops:FillRectOp_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrRRectEffect_hdr", + "//src/gpu/ganesh/ops:FillRectOp_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools:ToolUtils_hdr", ], ) @@ -1393,8 +1395,8 @@ generated_cc_atom( "//include/core:SkTileMode_hdr", "//include/core:SkTypes_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", ], ) @@ -1619,7 +1621,7 @@ generated_cc_atom( "//include/private:SkTo_hdr", "//src/core:SkBlurMask_hdr", "//src/core:SkMask_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", "//tools/timer:TimeUtils_hdr", ], ) @@ -1922,13 +1924,14 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":gm_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkPoint_hdr", "//include/core:SkRect_hdr", "//include/private:SkColorData_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrSwizzle_hdr", - "//src/gpu:SurfaceFillContext_hdr", + "//src/gpu:Swizzle_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", ], ) @@ -2036,35 +2039,35 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/gpu:GrRecordingContext_hdr", "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkColorData_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrBuffer_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrGpuBuffer_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrProcessorSet_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrSamplerState_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrShaderVar_hdr", - "//src/gpu:GrSurfaceProxy_hdr", - "//src/gpu:GrTextureProxy_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/ops:GrOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrBuffer_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrGpuBuffer_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrProcessorSet_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrShaderVar_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/ops:GrOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/gpu:ProxyUtils_hdr", ], ) @@ -2268,6 +2271,7 @@ generated_cc_atom( deps = [ ":gm_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkFont_hdr", "//include/core:SkSurface_hdr", "//tools:Resources_hdr", @@ -2414,6 +2418,7 @@ generated_cc_atom( "//include/core:SkFont_hdr", "//include/core:SkPaint_hdr", "//include/core:SkPathBuilder_hdr", + "//include/core:SkRRect_hdr", "//include/core:SkRect_hdr", "//include/core:SkScalar_hdr", "//include/core:SkSize_hdr", @@ -2548,9 +2553,9 @@ generated_cc_atom( "//include/gpu:GrRecordingContext_hdr", "//src/core:SkCompressedDataUtils_hdr", "//src/core:SkMipmap_hdr", - "//src/gpu:GrDataUtils_hdr", - "//src/gpu:GrImageContextPriv_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + "//src/gpu/ganesh:GrImageContextPriv_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkImage_GpuBase_hdr", "//third_party:etc1", @@ -2616,16 +2621,16 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/effects:SkGradientShader_hdr", "//include/gpu:GrConfig_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkColorData_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkCanvasPriv_hdr", "//src/core:SkMatrixProvider_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/ops:GrOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/ops:GrOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools:ToolUtils_hdr", "//tools/gpu:TestOps_hdr", ], @@ -2663,6 +2668,7 @@ generated_cc_atom( "//include/core:SkMatrix_hdr", "//include/core:SkPaint_hdr", "//include/core:SkPathBuilder_hdr", + "//include/core:SkRRect_hdr", "//include/core:SkRect_hdr", "//include/core:SkScalar_hdr", "//include/core:SkSize_hdr", @@ -2719,13 +2725,13 @@ generated_cc_atom( "//include/core:SkScalar_hdr", "//include/core:SkSize_hdr", "//include/core:SkString_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu/effects:GrConvexPolyEffect_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh/effects:GrConvexPolyEffect_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/gpu:TestOps_hdr", ], ) @@ -3221,6 +3227,7 @@ generated_cc_atom( ":gm_hdr", "//include/core:SkBlender_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkCustomMesh_hdr", "//include/core:SkSurface_hdr", "//include/effects:SkGradientShader_hdr", @@ -3351,12 +3358,12 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/effects:SkImageFilters_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools:Resources_hdr", "//tools:ToolUtils_hdr", ], @@ -3644,6 +3651,7 @@ generated_cc_atom( "//include/core:SkBlendMode_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkColorFilter_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkColor_hdr", "//include/core:SkImageInfo_hdr", "//include/core:SkImage_hdr", @@ -3727,12 +3735,12 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/effects:SkGradientShader_hdr", "//include/gpu:GrRecordingContext_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkCanvasPriv_hdr", "//src/core:SkMatrixProvider_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools:ToolUtils_hdr", ], ) @@ -3841,9 +3849,10 @@ generated_cc_atom( deps = [ ":gm_hdr", "//include/effects:SkRuntimeEffect_hdr", + "//include/sksl:DSL_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", "//src/sksl/dsl/priv:DSLFPs_hdr", "//src/sksl/dsl/priv:DSLWriter_hdr", "//src/sksl/ir:SkSLVariable_hdr", @@ -3974,6 +3983,7 @@ generated_cc_atom( deps = [ ":gm_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkData_hdr", "//include/core:SkEncodedImageFormat_hdr", "//include/core:SkImageInfo_hdr", @@ -4073,9 +4083,9 @@ generated_cc_atom( "//include/gpu:GrRecordingContext_hdr", "//src/core:SkCompressedDataUtils_hdr", "//src/core:SkMipmap_hdr", - "//src/gpu:GrImageContextPriv_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu/gl:GrGLDefines_hdr", + "//src/gpu/ganesh:GrImageContextPriv_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkImage_GpuBase_hdr", "//tools:Resources_hdr", @@ -4284,8 +4294,8 @@ generated_cc_atom( "//include/gpu:GrRecordingContext_hdr", "//include/gpu:GrTypes_hdr", "//include/private:SkTArray_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrPixmap_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrPixmap_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkImage_Gpu_hdr", "//tools:ToolUtils_hdr", @@ -4312,8 +4322,8 @@ generated_cc_atom( "//include/core:SkTypeface_hdr", "//include/gpu:GrContextOptions_hdr", "//include/gpu:GrDirectContext_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//tools:ToolUtils_hdr", ], ) @@ -4372,9 +4382,9 @@ generated_cc_atom( "//include/gpu:GrContextOptions_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrRecordingContext_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkTemplates_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//tools:ToolUtils_hdr", ], ) @@ -4426,16 +4436,17 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":gm_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkFont_hdr", "//include/effects:SkRuntimeEffect_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrMatrixEffect_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrMatrixEffect_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools:ToolUtils_hdr", ], ) @@ -4446,6 +4457,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":gm_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkColor_hdr", "//include/core:SkImageInfo_hdr", @@ -4458,15 +4470,15 @@ generated_cc_atom( "//include/core:SkTileMode_hdr", "//include/core:SkTypes_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrRRectEffect_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrRRectEffect_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", "//tools:Resources_hdr", "//tools:ToolUtils_hdr", ], @@ -4487,32 +4499,32 @@ generated_cc_atom( "//include/core:SkRefCnt_hdr", "//include/core:SkString_hdr", "//include/gpu:GrRecordingContext_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrBuffer_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrGpuBuffer_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrProcessorSet_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrShaderVar_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/ops:GrOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrBuffer_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrGpuBuffer_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrProcessorSet_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrShaderVar_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/ops:GrOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/gpu:ProxyUtils_hdr", ], ) @@ -4651,16 +4663,17 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":gm_hdr", + "//include/core:SkColorSpace_hdr", "//include/effects:SkGradientShader_hdr", "//include/gpu:GrRecordingContext_hdr", "//src/core:SkCanvasPriv_hdr", "//src/core:SkGpuBlurUtils_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//src/image:SkImage_Base_hdr", ], ) @@ -4835,10 +4848,14 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":gm_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", "//include/core:SkPaint_hdr", + "//include/core:SkRRect_hdr", "//include/effects:SkGradientShader_hdr", + "//include/gpu:GrRecordingContext_hdr", "//tools:Resources_hdr", ], ) @@ -5050,11 +5067,11 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrRecordingContext_hdr", "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrSamplerState_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SurfaceContext_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SurfaceContext_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkImage_Gpu_hdr", ], @@ -5755,6 +5772,7 @@ generated_cc_atom( deps = [ ":gm_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkMaskFilter_hdr", "//include/core:SkPaint_hdr", "//include/core:SkPathEffect_hdr", "//include/core:SkPath_hdr", @@ -5763,6 +5781,7 @@ generated_cc_atom( "//include/core:SkScalar_hdr", "//include/core:SkTypes_hdr", "//include/effects:SkDashPathEffect_hdr", + "//include/effects:SkImageFilters_hdr", ], ) @@ -5861,6 +5880,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":gm_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkPaint_hdr", "//include/core:SkRect_hdr", @@ -5869,13 +5889,13 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//src/core:SkCanvasPriv_hdr", "//src/core:SkConvertPixels_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/gpu:ProxyUtils_hdr", ], ) @@ -6074,6 +6094,7 @@ generated_cc_atom( "//include/core:SkBlendMode_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkColorFilter_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkColor_hdr", "//include/core:SkFontTypes_hdr", "//include/core:SkFont_hdr", @@ -6181,9 +6202,9 @@ generated_cc_atom( "//include/core:SkPath_hdr", "//include/gpu:GrContextOptions_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", "//tools:ToolUtils_hdr", ], ) @@ -6229,7 +6250,7 @@ generated_cc_atom( "//include/core:SkTypeface_hdr", "//include/effects:SkGradientShader_hdr", "//include/effects:SkImageFilters_hdr", - "//src/gpu/effects:GrMatrixConvolutionEffect_hdr", + "//src/gpu/ganesh/effects:GrMatrixConvolutionEffect_hdr", "//tools:ToolUtils_hdr", ], ) @@ -6582,6 +6603,7 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/effects:SkDashPathEffect_hdr", "//include/effects:SkGradientShader_hdr", + "//include/private:SkImageInfoPriv_hdr", "//include/private:SkTPin_hdr", "//src/core:SkColorSpaceXformSteps_hdr", ], @@ -6727,6 +6749,7 @@ generated_cc_atom( "//include/core:SkColor_hdr", "//include/core:SkPaint_hdr", "//include/core:SkPathBuilder_hdr", + "//include/core:SkRRect_hdr", "//include/core:SkRect_hdr", "//include/core:SkScalar_hdr", "//include/core:SkSize_hdr", @@ -6769,8 +6792,8 @@ generated_cc_atom( "//include/core:SkSize_hdr", "//include/core:SkString_hdr", "//include/gpu:GrContextOptions_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkTArray_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -7231,10 +7254,10 @@ generated_cc_atom( "//include/gpu:GrContextOptions_hdr", "//include/gpu:GrRecordingContext_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools:ToolUtils_hdr", ], ) @@ -7373,10 +7396,10 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrTypes_hdr", "//src/core:SkAutoPixmapStorage_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu/gl:GrGLCaps_hdr", - "//src/gpu/gl:GrGLDefines_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh/gl:GrGLCaps_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", ], ) @@ -7505,16 +7528,16 @@ generated_cc_atom( "//include/core:SkString_hdr", "//include/core:SkTypes_hdr", "//include/effects:SkGradientShader_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - "//src/gpu/effects:GrRRectEffect_hdr", - "//src/gpu/ops:FillRectOp_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrRRectEffect_hdr", + "//src/gpu/ganesh/ops:FillRectOp_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -7541,6 +7564,7 @@ generated_cc_atom( ":gm_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkColorFilter_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkData_hdr", "//include/core:SkImage_hdr", "//include/core:SkPaint_hdr", @@ -7615,8 +7639,8 @@ generated_cc_atom( "//include/effects:SkRuntimeEffect_hdr", "//include/utils:SkRandom_hdr", "//src/core:SkRuntimeEffectPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", "//tools:Resources_hdr", "//tools:ToolUtils_hdr", ], @@ -7628,6 +7652,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":gm_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkData_hdr", "//include/core:SkPaint_hdr", @@ -7752,6 +7777,7 @@ generated_cc_atom( "//include/core:SkString_hdr", "//include/core:SkTextBlob_hdr", "//include/core:SkTypeface_hdr", + "//src/utils:SkUTF_hdr", "//tools:ToolUtils_hdr", ], ) @@ -8160,6 +8186,7 @@ generated_cc_atom( ":gm_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", ], ) @@ -8475,6 +8502,8 @@ generated_cc_atom( "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkColor_hdr", + "//include/core:SkFontArguments_hdr", + "//include/core:SkFontMgr_hdr", "//include/core:SkFontTypes_hdr", "//include/core:SkFont_hdr", "//include/core:SkImageInfo_hdr", @@ -8551,16 +8580,17 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":gm_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkImageInfo_hdr", "//include/core:SkMatrix_hdr", "//include/core:SkRect_hdr", "//include/core:SkTypes_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", "//tools:Resources_hdr", ], ) @@ -8620,22 +8650,22 @@ generated_cc_atom( deps = [ ":gm_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrShaderVar_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrShaderVar_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -8675,12 +8705,12 @@ generated_cc_atom( "//include/core:SkString_hdr", "//include/private:SkTArray_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrSamplerState_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools:Resources_hdr", "//tools/gpu:TestOps_hdr", ], @@ -9176,11 +9206,11 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//include/utils:SkRandom_hdr", "//src/core:SkGeometry_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu/ops:TessellationPathRenderer_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh/ops:TessellationPathRenderer_hdr", ], ) @@ -9239,6 +9269,7 @@ generated_cc_atom( "//include/core:SkPaint_hdr", "//include/core:SkPath_hdr", "//include/core:SkSize_hdr", + "//include/core:SkStream_hdr", "//include/core:SkString_hdr", "//include/core:SkTextBlob_hdr", "//include/utils:SkCustomTypeface_hdr", @@ -9380,17 +9411,18 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrRecordingContext_hdr", "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private:SkHalf_hdr", "//include/private:SkTArray_hdr", "//include/private:SkTDArray_hdr", "//include/private:SkTPin_hdr", "//include/private:SkTemplates_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//include/utils:SkTextUtils_hdr", "//src/core:SkAutoPixmapStorage_hdr", "//src/core:SkConvertPixels_hdr", "//src/core:SkYUVMath_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", "//tools:Resources_hdr", "//tools:ToolUtils_hdr", "//tools/gpu:YUVUtils_hdr", @@ -9409,11 +9441,11 @@ generated_cc_atom( "//include/gpu:GrContextOptions_hdr", "//include/gpu:GrDirectContext_hdr", "//include/utils:SkRandom_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu/ops:TessellationPathRenderer_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh/ops:TessellationPathRenderer_hdr", ], ) @@ -9561,6 +9593,7 @@ generated_cc_atom( deps = [ ":gm_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", "//include/core:SkPaint_hdr", "//include/core:SkSize_hdr", @@ -9580,6 +9613,7 @@ generated_cc_atom( "//include/core:SkCanvas_hdr", "//include/core:SkImage_hdr", "//include/core:SkPixmap_hdr", + "//include/core:SkStream_hdr", "//include/core:SkSurface_hdr", "//include/encode:SkJpegEncoder_hdr", "//include/gpu:GrRecordingContext_hdr", @@ -9608,11 +9642,47 @@ generated_cc_atom( "//include/core:SkYUVAInfo_hdr", "//include/core:SkYUVAPixmaps_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrSamplerState_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrYUVATextureProxies_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrYUVtoRGBEffect_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrYUVATextureProxies_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrYUVtoRGBEffect_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", + ], +) + +generated_cc_atom( + name = "palette_src", + srcs = ["palette.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":gm_hdr", + "//include/core:SkCanvas_hdr", + "//include/core:SkColor_hdr", + "//include/core:SkFontMetrics_hdr", + "//include/core:SkFontMgr_hdr", + "//include/core:SkFont_hdr", + "//include/core:SkPaint_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkScalar_hdr", + "//include/core:SkSize_hdr", + "//include/core:SkString_hdr", + "//include/core:SkTypeface_hdr", + "//include/core:SkTypes_hdr", + "//tools:Resources_hdr", + "//tools:ToolUtils_hdr", + ], +) + +generated_cc_atom( + name = "crbug_1313579_src", + srcs = ["crbug_1313579.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":gm_hdr", + "//include/core:SkCanvas_hdr", + "//include/core:SkMatrix_hdr", + "//include/core:SkRect_hdr", + "//include/effects:SkImageFilters_hdr", ], ) diff --git a/third_party/skia/gm/aaa.cpp b/third_party/skia/gm/aaa.cpp index 67fe3538a04f..c58680d85e58 100644 --- a/third_party/skia/gm/aaa.cpp +++ b/third_party/skia/gm/aaa.cpp @@ -45,48 +45,49 @@ DEF_SIMPLE_GM(analytic_antialias_convex, canvas, W, H) { canvas->restore(); // The following path is empty but it'll reveal bug chrome:662914 - SkPathBuilder path; - path.moveTo(SkBits2Float(0x429b9d5c), SkBits2Float(0x4367a041)); // 77.8073f, 231.626f + SkPathBuilder pb; + pb.moveTo(SkBits2Float(0x429b9d5c), SkBits2Float(0x4367a041)); // 77.8073f, 231.626f // 77.8075f, 231.626f, 77.8074f, 231.625f, 77.8073f, 231.625f - path.cubicTo(SkBits2Float(0x429b9d71), SkBits2Float(0x4367a022), + pb.cubicTo(SkBits2Float(0x429b9d71), SkBits2Float(0x4367a022), SkBits2Float(0x429b9d64), SkBits2Float(0x4367a009), SkBits2Float(0x429b9d50), SkBits2Float(0x43679ff2)); - path.lineTo(SkBits2Float(0x429b9d5c), SkBits2Float(0x4367a041)); // 77.8073f, 231.626f - path.close(); - canvas->drawPath(path.detach(), p); + pb.lineTo(SkBits2Float(0x429b9d5c), SkBits2Float(0x4367a041)); // 77.8073f, 231.626f + pb.close(); + canvas->drawPath(pb.detach(), p); // The following path reveals a subtle SkAnalyticQuadraticEdge::updateQuadratic bug: // we should not use any snapped y for the intermediate values whose error may accumulate; // snapping should only be allowed once before updateLine. - path.moveTo(SkBits2Float(0x434ba71e), SkBits2Float(0x438a06d0)); // 203.653f, 276.053f - path.lineTo(SkBits2Float(0x43492a74), SkBits2Float(0x4396d70d)); // 201.166f, 301.68f + pb.moveTo(SkBits2Float(0x434ba71e), SkBits2Float(0x438a06d0)); // 203.653f, 276.053f + pb.lineTo(SkBits2Float(0x43492a74), SkBits2Float(0x4396d70d)); // 201.166f, 301.68f // 200.921f, 304.207f, 196.939f, 303.82f, 0.707107f - path.conicTo(SkBits2Float(0x4348ebaf), SkBits2Float(0x43981a75), + pb.conicTo(SkBits2Float(0x4348ebaf), SkBits2Float(0x43981a75), SkBits2Float(0x4344f079), SkBits2Float(0x4397e900), SkBits2Float(0x3f3504f3)); - path.close(); + pb.close(); + SkPath path = pb.detach(); // Manually setting convexity is required. Otherwise, this path will be considered concave. - SkPathPriv::SetConvexity(&path, SkPathConvexity::kConvex); - canvas->drawPath(path.detach(), p); + SkPathPriv::SetConvexity(path, SkPathConvexity::kConvex); + canvas->drawPath(path, p); // skbug.com/7573 y += 200; canvas->save(); canvas->translate(0, y); p.setAntiAlias(true); - path.moveTo(1.98009784f, 9.0162744f); - path.lineTo(47.843992f, 10.1922744f); - path.lineTo(47.804008f, 11.7597256f); - path.lineTo(1.93990216f, 10.5837256f); - canvas->drawPath(path.detach(), p); + pb.moveTo(1.98009784f, 9.0162744f); + pb.lineTo(47.843992f, 10.1922744f); + pb.lineTo(47.804008f, 11.7597256f); + pb.lineTo(1.93990216f, 10.5837256f); + canvas->drawPath(pb.detach(), p); canvas->restore(); // skbug.com/7813 // t8888 splits the 800-high canvas into 3 pieces; the boundary is close to 266 and 534 - path.moveTo(700, 266); - path.lineTo(710, 266); - path.lineTo(710, 534); - path.lineTo(700, 534); - canvas->drawPath(path.detach(), p); + pb.moveTo(700, 266); + pb.lineTo(710, 266); + pb.lineTo(710, 534); + pb.lineTo(700, 534); + canvas->drawPath(pb.detach(), p); } DEF_SIMPLE_GM(analytic_antialias_general, canvas, W, H) { diff --git a/third_party/skia/gm/aarecteffect.cpp b/third_party/skia/gm/aarecteffect.cpp index a7176d8d73ec..8f4c446fd178 100644 --- a/third_party/skia/gm/aarecteffect.cpp +++ b/third_party/skia/gm/aarecteffect.cpp @@ -16,12 +16,12 @@ #include "include/core/SkScalar.h" #include "include/core/SkSize.h" #include "include/core/SkString.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/gpu/TestOps.h" #include diff --git a/third_party/skia/gm/anisotropic.cpp b/third_party/skia/gm/anisotropic.cpp index 60b62ff0ebc2..efc156cb4573 100644 --- a/third_party/skia/gm/anisotropic.cpp +++ b/third_party/skia/gm/anisotropic.cpp @@ -18,16 +18,16 @@ namespace skiagm { -// This GM exercises HighQuality anisotropic filtering. +// This GM exercises anisotropic image scaling. class AnisotropicGM : public GM { public: - AnisotropicGM() : fSampling(SkCubicResampler::Mitchell()) { + AnisotropicGM() : fSampling(SkFilterMode::kLinear, SkMipmapMode::kLinear) { this->setBGColor(0xFFCCCCCC); } protected: - SkString onShortName() override { return SkString("anisotropic_hq"); } + SkString onShortName() override { return SkString("anisotropic_image_scale_mip"); } SkISize onISize() override { return SkISize::Make(2*kImageSize + 3*kSpacer, diff --git a/third_party/skia/gm/attributes.cpp b/third_party/skia/gm/attributes.cpp index 28539e95efc9..1d5b3fc6ab09 100644 --- a/third_party/skia/gm/attributes.cpp +++ b/third_party/skia/gm/attributes.cpp @@ -10,21 +10,21 @@ #include "include/core/SkRect.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrBuffer.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProcessorSet.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrShaderVar.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/ops/GrOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrBuffer.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProcessorSet.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/ops/GrOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/gpu/ProxyUtils.h" #include diff --git a/third_party/skia/gm/bc1_transparency.cpp b/third_party/skia/gm/bc1_transparency.cpp index d52be82e4bdc..5c486d5fb561 100644 --- a/third_party/skia/gm/bc1_transparency.cpp +++ b/third_party/skia/gm/bc1_transparency.cpp @@ -11,8 +11,8 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkCompressedDataUtils.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_GpuBase.h" #include "tools/gpu/ProxyUtils.h" diff --git a/third_party/skia/gm/beziereffects.cpp b/third_party/skia/gm/beziereffects.cpp index ebd51321285a..85a8aab693d7 100644 --- a/third_party/skia/gm/beziereffects.cpp +++ b/third_party/skia/gm/beziereffects.cpp @@ -21,32 +21,32 @@ #include "include/core/SkString.h" #include "include/core/SkTypes.h" #include "include/gpu/GrRecordingContext.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkColorData.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "include/utils/SkRandom.h" #include "src/core/SkCanvasPriv.h" #include "src/core/SkGeometry.h" #include "src/core/SkPointPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/GrProcessorAnalysis.h" -#include "src/gpu/GrProcessorSet.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrUserStencilSettings.h" -#include "src/gpu/effects/GrBezierEffect.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" -#include "src/gpu/geometry/GrPathUtils.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrProcessorAnalysis.h" +#include "src/gpu/ganesh/GrProcessorSet.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrUserStencilSettings.h" +#include "src/gpu/ganesh/effects/GrBezierEffect.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include #include diff --git a/third_party/skia/gm/bigrrectaaeffect.cpp b/third_party/skia/gm/bigrrectaaeffect.cpp index d5061354bb2a..844ed1ef6b80 100644 --- a/third_party/skia/gm/bigrrectaaeffect.cpp +++ b/third_party/skia/gm/bigrrectaaeffect.cpp @@ -17,16 +17,16 @@ #include "include/core/SkSize.h" #include "include/core/SkString.h" #include "include/core/SkTypes.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" -#include "src/gpu/effects/GrRRectEffect.h" -#include "src/gpu/ops/FillRectOp.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/effects/GrRRectEffect.h" +#include "src/gpu/ganesh/ops/FillRectOp.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/ToolUtils.h" #include diff --git a/third_party/skia/gm/bitmapshader.cpp b/third_party/skia/gm/bitmapshader.cpp index cbf153a5d136..7ee6aad8fb4a 100644 --- a/third_party/skia/gm/bitmapshader.cpp +++ b/third_party/skia/gm/bitmapshader.cpp @@ -19,8 +19,8 @@ #include "include/core/SkTileMode.h" #include "include/core/SkTypes.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" namespace skiagm { diff --git a/third_party/skia/gm/blurrect.cpp b/third_party/skia/gm/blurrect.cpp index 2ff36ca74763..07f734d87ed4 100644 --- a/third_party/skia/gm/blurrect.cpp +++ b/third_party/skia/gm/blurrect.cpp @@ -32,7 +32,7 @@ #include "include/private/SkTo.h" #include "src/core/SkBlurMask.h" #include "src/core/SkMask.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" #include "tools/timer/TimeUtils.h" #include diff --git a/third_party/skia/gm/clear_swizzle.cpp b/third_party/skia/gm/clear_swizzle.cpp index 5e7e69f209dd..c95e48dde8a5 100644 --- a/third_party/skia/gm/clear_swizzle.cpp +++ b/third_party/skia/gm/clear_swizzle.cpp @@ -6,13 +6,15 @@ */ #include "gm/gm.h" + +#include "include/core/SkColorSpace.h" #include "include/core/SkPoint.h" #include "include/core/SkRect.h" #include "include/private/SkColorData.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SurfaceFillContext.h" #include "src/gpu/Swizzle.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" namespace skiagm { diff --git a/third_party/skia/gm/clockwise.cpp b/third_party/skia/gm/clockwise.cpp index 544f184ce9d9..6ad803b6f9e6 100644 --- a/third_party/skia/gm/clockwise.cpp +++ b/third_party/skia/gm/clockwise.cpp @@ -18,35 +18,35 @@ #include "include/core/SkTypes.h" #include "include/gpu/GrRecordingContext.h" #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkColorData.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrBuffer.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProcessorSet.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrShaderVar.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrTextureProxy.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/ops/GrOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrBuffer.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProcessorSet.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/ops/GrOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/gpu/ProxyUtils.h" #include @@ -287,7 +287,6 @@ DrawResult ClockwiseGM::onDraw(GrRecordingContext* rContext, SkCanvas* canvas, S SK_PMColor4fWHITE, {0, 0, 100, 200}, {100, 0, 200, 200}, - GrAA::kNo, GrQuadAAFlags::kNone, SkCanvas::SrcRectConstraint::kStrict_SrcRectConstraint, SkMatrix::I(), @@ -311,7 +310,6 @@ DrawResult ClockwiseGM::onDraw(GrRecordingContext* rContext, SkCanvas* canvas, S SK_PMColor4fWHITE, {0, 0, 100, 200}, {200, 0, 300, 200}, - GrAA::kNo, GrQuadAAFlags::kNone, SkCanvas::SrcRectConstraint::kStrict_SrcRectConstraint, SkMatrix::I(), diff --git a/third_party/skia/gm/colorspace.cpp b/third_party/skia/gm/colorspace.cpp index 315fafc011a6..9b5cc92ffd34 100644 --- a/third_party/skia/gm/colorspace.cpp +++ b/third_party/skia/gm/colorspace.cpp @@ -7,6 +7,7 @@ #include "gm/gm.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkFont.h" #include "include/core/SkSurface.h" #include "tools/Resources.h" diff --git a/third_party/skia/gm/colrv1.cpp b/third_party/skia/gm/colrv1.cpp index 0270cd8ea9e3..ea133e42ff2c 100644 --- a/third_party/skia/gm/colrv1.cpp +++ b/third_party/skia/gm/colrv1.cpp @@ -38,7 +38,10 @@ class ColrV1GM : public GM { kColorFontsRepoTransform, kColorFontsRepoClipBox, kColorFontsRepoComposite, - kColorFontsRepoForeground + kColorFontsRepoForeground, + kColorFontsRepoSweepPad, + kColorFontsRepoSweepReflect, + kColorFontsRepoSweepRepeat, }; ColrV1GM(ColrV1TestType testType, SkScalar skewX, SkScalar rotateDeg) @@ -67,6 +70,12 @@ class ColrV1GM : public GM { return SkString("composite"); case kColorFontsRepoForeground: return SkString("foreground"); + case kColorFontsRepoSweepPad: + return SkString("sweep_pad"); + case kColorFontsRepoSweepReflect: + return SkString("sweep_reflect"); + case kColorFontsRepoSweepRepeat: + return SkString("sweep_repeat"); } SkASSERT(false); /* not reached */ return SkString(); @@ -118,6 +127,15 @@ class ColrV1GM : public GM { case kColorFontsRepoForeground: fEmojiFont.fGlyphs = {47, 48, 49, 50, 51, 52, 53, 54}; break; + case kColorFontsRepoSweepPad: + fEmojiFont.fGlyphs = {2, 58, 59, 60, 61, 62, 63, 64}; + break; + case kColorFontsRepoSweepReflect: + fEmojiFont.fGlyphs = {65, 66, 67, 68, 69, 70, 71, 72}; + break; + case kColorFontsRepoSweepRepeat: + fEmojiFont.fGlyphs = {73, 74, 75, 76, 77, 78, 79, 80}; + break; } } @@ -193,5 +211,8 @@ DEF_GM(return new ColrV1GM(ColrV1GM::kColorFontsRepoClipBox, 0.f, 0.f);) DEF_GM(return new ColrV1GM(ColrV1GM::kColorFontsRepoClipBox, -0.5f, 20.f);) DEF_GM(return new ColrV1GM(ColrV1GM::kColorFontsRepoComposite, 0.f, 0.f);) DEF_GM(return new ColrV1GM(ColrV1GM::kColorFontsRepoForeground, 0.f, 0.f);) +DEF_GM(return new ColrV1GM(ColrV1GM::kColorFontsRepoSweepPad, 0.f, 0.f);) +DEF_GM(return new ColrV1GM(ColrV1GM::kColorFontsRepoSweepReflect, 0.f, 0.f);) +DEF_GM(return new ColrV1GM(ColrV1GM::kColorFontsRepoSweepRepeat, 0.f, 0.f);) } // namespace skiagm diff --git a/third_party/skia/gm/complexclip.cpp b/third_party/skia/gm/complexclip.cpp index fa81908a5b98..806ae1ea4ef4 100644 --- a/third_party/skia/gm/complexclip.cpp +++ b/third_party/skia/gm/complexclip.cpp @@ -14,6 +14,7 @@ #include "include/core/SkFontTypes.h" #include "include/core/SkPaint.h" #include "include/core/SkPathBuilder.h" +#include "include/core/SkRRect.h" #include "include/core/SkRect.h" #include "include/core/SkScalar.h" #include "include/core/SkSize.h" diff --git a/third_party/skia/gm/compressed_textures.cpp b/third_party/skia/gm/compressed_textures.cpp index dab9e88073ec..ec3d57a22b94 100644 --- a/third_party/skia/gm/compressed_textures.cpp +++ b/third_party/skia/gm/compressed_textures.cpp @@ -25,9 +25,9 @@ #include "include/gpu/GrRecordingContext.h" #include "src/core/SkCompressedDataUtils.h" #include "src/core/SkMipmap.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_GpuBase.h" #include "third_party/etc1/etc1.h" diff --git a/third_party/skia/gm/constcolorprocessor.cpp b/third_party/skia/gm/constcolorprocessor.cpp index e40821ef1278..3216e71ce38c 100644 --- a/third_party/skia/gm/constcolorprocessor.cpp +++ b/third_party/skia/gm/constcolorprocessor.cpp @@ -26,16 +26,16 @@ #include "include/core/SkTypes.h" #include "include/effects/SkGradientShader.h" #include "include/gpu/GrConfig.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkColorData.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkCanvasPriv.h" #include "src/core/SkMatrixProvider.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/ops/GrOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/ops/GrOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/ToolUtils.h" #include "tools/gpu/TestOps.h" diff --git a/third_party/skia/gm/convexpaths.cpp b/third_party/skia/gm/convexpaths.cpp index 18f1cd27c57d..b95e20eb3cb3 100644 --- a/third_party/skia/gm/convexpaths.cpp +++ b/third_party/skia/gm/convexpaths.cpp @@ -11,6 +11,7 @@ #include "include/core/SkMatrix.h" #include "include/core/SkPaint.h" #include "include/core/SkPathBuilder.h" +#include "include/core/SkRRect.h" #include "include/core/SkRect.h" #include "include/core/SkScalar.h" #include "include/core/SkSize.h" diff --git a/third_party/skia/gm/convexpolyeffect.cpp b/third_party/skia/gm/convexpolyeffect.cpp index 87e931fb4905..182c3cc9085d 100644 --- a/third_party/skia/gm/convexpolyeffect.cpp +++ b/third_party/skia/gm/convexpolyeffect.cpp @@ -18,13 +18,13 @@ #include "include/core/SkScalar.h" #include "include/core/SkSize.h" #include "include/core/SkString.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/effects/GrConvexPolyEffect.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/effects/GrConvexPolyEffect.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/gpu/TestOps.h" #include diff --git a/third_party/skia/gm/crbug_1313579.cpp b/third_party/skia/gm/crbug_1313579.cpp new file mode 100644 index 000000000000..05a50ce413a5 --- /dev/null +++ b/third_party/skia/gm/crbug_1313579.cpp @@ -0,0 +1,41 @@ +/* + * 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 "gm/gm.h" +#include "include/core/SkCanvas.h" +#include "include/core/SkMatrix.h" +#include "include/core/SkRect.h" +#include "include/effects/SkImageFilters.h" + +// SkiaRenderer can wind up specifying near-integer scale-and-translate matrices on SkCanvas before +// applying a backdrop blur image filter via saveLayer() with an integer clip, crop rect, and +// SaveLayerRec bounds. Round-out is used to determine the bounds of the input image needed in IFs. +// This could cause an extra row/column of pixels to be included in the blur. When that row/column +// is significantly different in color than the intended blur content and the radius is large then +// clamp mode blur creates a very noticeable color bleed artifact. +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)); + + SkMatrix m; + + canvas->clear(SK_ColorGREEN); + + m.setAll(0.999999f, 0, 4.99999f, + 0, 0.999999f, 4.99999f, + 0, 0, 1); + canvas->concat(m); + canvas->clipIRect(kBGRect); + canvas->clear(SK_ColorWHITE); + canvas->saveLayer(SkCanvas::SaveLayerRec(nullptr, nullptr, backdrop_filter.get(), 0)); + canvas->restore(); +} diff --git a/third_party/skia/gm/custommesh.cpp b/third_party/skia/gm/custommesh.cpp index d11c75b64dfd..62229793f649 100644 --- a/third_party/skia/gm/custommesh.cpp +++ b/third_party/skia/gm/custommesh.cpp @@ -8,6 +8,7 @@ #include "gm/gm.h" #include "include/core/SkBlender.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkCustomMesh.h" #include "include/core/SkSurface.h" #include "include/effects/SkGradientShader.h" diff --git a/third_party/skia/gm/destcolor.cpp b/third_party/skia/gm/destcolor.cpp index 520de1137c2d..627bbe2e11d6 100644 --- a/third_party/skia/gm/destcolor.cpp +++ b/third_party/skia/gm/destcolor.cpp @@ -13,12 +13,12 @@ #include "include/core/SkTypes.h" #include "include/effects/SkImageFilters.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/Resources.h" #include "tools/ToolUtils.h" diff --git a/third_party/skia/gm/drawimageset.cpp b/third_party/skia/gm/drawimageset.cpp index b6c0289a8ab2..1a960ff34119 100644 --- a/third_party/skia/gm/drawimageset.cpp +++ b/third_party/skia/gm/drawimageset.cpp @@ -10,6 +10,7 @@ #include "include/core/SkCanvas.h" #include "include/core/SkColor.h" #include "include/core/SkColorFilter.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkImageInfo.h" #include "include/core/SkMatrix.h" diff --git a/third_party/skia/gm/drawquadset.cpp b/third_party/skia/gm/drawquadset.cpp index ed4798f47583..72e9c2aead91 100644 --- a/third_party/skia/gm/drawquadset.cpp +++ b/third_party/skia/gm/drawquadset.cpp @@ -23,12 +23,12 @@ #include "include/core/SkTypes.h" #include "include/effects/SkGradientShader.h" #include "include/gpu/GrRecordingContext.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkCanvasPriv.h" #include "src/core/SkMatrixProvider.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/ToolUtils.h" #include @@ -87,7 +87,7 @@ static void draw_gradient_tiles(SkCanvas* canvas, bool alignGradients) { SkMatrixProvider matrixProvider(view); GrPaint grPaint; SkPaintToGrPaint(rContext, sdc->colorInfo(), paint, matrixProvider, &grPaint); - sdc->fillRectWithEdgeAA(nullptr, std::move(grPaint), GrAA::kYes, + sdc->fillRectWithEdgeAA(nullptr, std::move(grPaint), static_cast(aa), view, tile); } else { // Fallback to solid color on raster backend since the public API only has color diff --git a/third_party/skia/gm/dsl_processor_test.cpp b/third_party/skia/gm/dsl_processor_test.cpp index f6a52435d1d0..be26f68ebbd9 100644 --- a/third_party/skia/gm/dsl_processor_test.cpp +++ b/third_party/skia/gm/dsl_processor_test.cpp @@ -7,9 +7,10 @@ #include "gm/gm.h" #include "include/effects/SkRuntimeEffect.h" +#include "include/sksl/DSL.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" #include "src/sksl/dsl/priv/DSLFPs.h" #include "src/sksl/dsl/priv/DSLWriter.h" #include "src/sksl/ir/SkSLVariable.h" diff --git a/third_party/skia/gm/encode_color_types.cpp b/third_party/skia/gm/encode_color_types.cpp index 911a439c8254..8038fab00cda 100644 --- a/third_party/skia/gm/encode_color_types.cpp +++ b/third_party/skia/gm/encode_color_types.cpp @@ -7,6 +7,7 @@ #include "gm/gm.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkData.h" #include "include/core/SkEncodedImageFormat.h" #include "include/core/SkImage.h" diff --git a/third_party/skia/gm/exoticformats.cpp b/third_party/skia/gm/exoticformats.cpp index 3bd0fad01990..86d182ae85e7 100644 --- a/third_party/skia/gm/exoticformats.cpp +++ b/third_party/skia/gm/exoticformats.cpp @@ -13,9 +13,9 @@ #include "include/gpu/GrRecordingContext.h" #include "src/core/SkCompressedDataUtils.h" #include "src/core/SkMipmap.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/gl/GrGLDefines.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_GpuBase.h" #include "tools/gpu/ProxyUtils.h" diff --git a/third_party/skia/gm/flippity.cpp b/third_party/skia/gm/flippity.cpp index 5edf19286b66..7ac50e08e83e 100644 --- a/third_party/skia/gm/flippity.cpp +++ b/third_party/skia/gm/flippity.cpp @@ -27,8 +27,8 @@ #include "include/gpu/GrRecordingContext.h" #include "include/gpu/GrTypes.h" #include "include/private/SkTArray.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrPixmap.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrPixmap.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_Gpu.h" #include "tools/ToolUtils.h" diff --git a/third_party/skia/gm/fontcache.cpp b/third_party/skia/gm/fontcache.cpp index f65e31a6b443..324968ca65a0 100644 --- a/third_party/skia/gm/fontcache.cpp +++ b/third_party/skia/gm/fontcache.cpp @@ -22,8 +22,8 @@ #include "include/core/SkTypeface.h" #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tools/ToolUtils.h" static SkScalar draw_string(SkCanvas* canvas, const SkString& text, SkScalar x, diff --git a/third_party/skia/gm/fontregen.cpp b/third_party/skia/gm/fontregen.cpp index 26c9b954c837..457aaa587d17 100644 --- a/third_party/skia/gm/fontregen.cpp +++ b/third_party/skia/gm/fontregen.cpp @@ -31,9 +31,9 @@ #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkTemplates.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tools/ToolUtils.h" static sk_sp make_blob(const SkString& text, const SkFont& font) { diff --git a/third_party/skia/gm/fp_sample_chaining.cpp b/third_party/skia/gm/fp_sample_chaining.cpp index 3e43490425fb..f21da69fba23 100644 --- a/third_party/skia/gm/fp_sample_chaining.cpp +++ b/third_party/skia/gm/fp_sample_chaining.cpp @@ -6,16 +6,17 @@ */ #include "gm/gm.h" +#include "include/core/SkBitmap.h" #include "include/core/SkFont.h" #include "include/effects/SkRuntimeEffect.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrMatrixEffect.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrMatrixEffect.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/ToolUtils.h" namespace { diff --git a/third_party/skia/gm/fpcoordinateoverride.cpp b/third_party/skia/gm/fpcoordinateoverride.cpp index 5365cefe17a6..c31ea708fb39 100644 --- a/third_party/skia/gm/fpcoordinateoverride.cpp +++ b/third_party/skia/gm/fpcoordinateoverride.cpp @@ -6,6 +6,7 @@ */ #include "gm/gm.h" +#include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkColor.h" #include "include/core/SkImageInfo.h" @@ -18,15 +19,15 @@ #include "include/core/SkTileMode.h" #include "include/core/SkTypes.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrRRectEffect.h" -#include "src/gpu/effects/GrSkSLFP.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrRRectEffect.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" #include "tools/Resources.h" #include "tools/ToolUtils.h" diff --git a/third_party/skia/gm/fwidth_squircle.cpp b/third_party/skia/gm/fwidth_squircle.cpp index 4a2023b2d5ac..13c452e52ad9 100644 --- a/third_party/skia/gm/fwidth_squircle.cpp +++ b/third_party/skia/gm/fwidth_squircle.cpp @@ -15,32 +15,32 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkString.h" #include "include/gpu/GrRecordingContext.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrBuffer.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProcessorSet.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrShaderVar.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/ops/GrOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrBuffer.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProcessorSet.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/ops/GrOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/gpu/ProxyUtils.h" #include diff --git a/third_party/skia/gm/gpu_blur_utils.cpp b/third_party/skia/gm/gpu_blur_utils.cpp index e51b725d6960..5d87e61f5d55 100644 --- a/third_party/skia/gm/gpu_blur_utils.cpp +++ b/third_party/skia/gm/gpu_blur_utils.cpp @@ -7,16 +7,17 @@ #include "gm/gm.h" +#include "include/core/SkColorSpace.h" #include "include/effects/SkGradientShader.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkCanvasPriv.h" #include "src/core/SkGpuBlurUtils.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "src/image/SkImage_Base.h" namespace { @@ -297,15 +298,13 @@ static GM::DrawResult run(GrRecordingContext* rContext, SkCanvas* canvas, SkStr sampler, caps); // Compose against white (default paint color) - fp = GrBlendFragmentProcessor::Make(std::move(fp), - /*dst=*/nullptr, - SkBlendMode::kSrcOver); + fp = GrBlendFragmentProcessor::Make(std::move(fp), + /*dst=*/nullptr); GrPaint paint; // Compose against white (default paint color) and then replace the dst // (SkBlendMode::kSrc). - fp = GrBlendFragmentProcessor::Make(std::move(fp), - /*dst=*/nullptr, - SkBlendMode::kSrcOver); + fp = GrBlendFragmentProcessor::Make(std::move(fp), + /*dst=*/nullptr); paint.setColorFragmentProcessor(std::move(fp)); paint.setPorterDuffXPFactory(SkBlendMode::kSrc); sdc->fillRectToRect(nullptr, @@ -415,9 +414,8 @@ static DrawResult do_very_large_blur_gm(GrRecordingContext* rContext, if (result) { std::unique_ptr fp = GrTextureEffect::Make(std::move(result), kPremul_SkAlphaType); - fp = GrBlendFragmentProcessor::Make(std::move(fp), - /*dst=*/nullptr, - SkBlendMode::kSrcOver); + fp = GrBlendFragmentProcessor::Make(std::move(fp), + /*dst=*/nullptr); sdc->fillRectToRectWithFP(SkIRect::MakeSize(dstB.size()), dstRect, std::move(fp)); diff --git a/third_party/skia/gm/graphitestart.cpp b/third_party/skia/gm/graphitestart.cpp index b14bc1abc973..bee9b8b7f6be 100644 --- a/third_party/skia/gm/graphitestart.cpp +++ b/third_party/skia/gm/graphitestart.cpp @@ -6,14 +6,50 @@ */ #include "gm/gm.h" +#include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkPaint.h" +#include "include/core/SkRRect.h" #include "include/effects/SkGradientShader.h" +#include "include/gpu/GrRecordingContext.h" #include "tools/Resources.h" namespace { +class MetaContext { +public: + MetaContext(SkCanvas* canvas) { +#ifdef SK_GRAPHITE_ENABLED + fRecorder = canvas->recorder(); +#endif + fContext = canvas->recordingContext() ? canvas->recordingContext()->asDirectContext() + : nullptr; + } + + sk_sp makeTextureImage(sk_sp orig) const { +#ifdef SK_GRAPHITE_ENABLED + if (fRecorder) { + return orig->makeTextureImage(fRecorder); + } +#endif + + if (fContext) { + return orig->makeTextureImage(fContext); + } + + return orig; + } + +private: +#ifdef SK_GRAPHITE_ENABLED + skgpu::graphite::Recorder* fRecorder; +#endif + + GrDirectContext* fContext; +}; + sk_sp create_gradient_shader(SkRect r) { // TODO: it seems like only the x-component of sk_FragCoord is making it to the shader! SkPoint pts[2] = { {r.fLeft, r.fTop}, {r.fRight, r.fTop} }; @@ -24,8 +60,8 @@ sk_sp create_gradient_shader(SkRect r) { SkTileMode::kClamp); } -sk_sp create_image_shader() { - SkImageInfo ii = SkImageInfo::Make(100, 100, kRGBA_8888_SkColorType, kPremul_SkAlphaType); +sk_sp create_image_shader(const MetaContext& context) { + SkImageInfo ii = SkImageInfo::Make(128, 128, kRGBA_8888_SkColorType, kPremul_SkAlphaType); SkBitmap bitmap; bitmap.allocPixels(ii); @@ -33,24 +69,73 @@ sk_sp create_image_shader() { SkCanvas canvas(bitmap); - SkPaint redPaint; - redPaint.setColor(SK_ColorRED); - canvas.drawCircle(50, 50, 50, redPaint); + SkColor colors[3][3] = { + { SK_ColorRED, SK_ColorDKGRAY, SK_ColorBLUE }, + { SK_ColorLTGRAY, SK_ColorCYAN, SK_ColorYELLOW }, + { SK_ColorGREEN, SK_ColorWHITE, SK_ColorMAGENTA } + }; + + for (int y = 0; y < 3; ++y) { + for (int x = 0; x < 3; ++x) { + SkPaint paint; + paint.setColor(colors[y][x]); + canvas.drawRect(SkRect::MakeXYWH(x*42, y*42, 43, 43), paint); + } + } bitmap.setAlphaType(kOpaque_SkAlphaType); bitmap.setImmutable(); sk_sp img = SkImage::MakeFromBitmap(bitmap); - // TODO: we'll need a 'makeTextureImage' call here + img = context.makeTextureImage(std::move(img)); return img->makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat, SkSamplingOptions()); } -sk_sp create_blend_shader(SkBlendMode bm) { +sk_sp create_blend_shader(const MetaContext& context, SkBlendMode bm) { constexpr SkColor4f kTransYellow = {1.0f, 1.0f, 0.0f, 0.5f}; - sk_sp solid = SkShaders::Color(kTransYellow, nullptr); - return SkShaders::Blend(bm, std::move(solid), create_image_shader()); + sk_sp dst = SkShaders::Color(kTransYellow, nullptr); + return SkShaders::Blend(bm, std::move(dst), create_image_shader(context)); +} + +void draw_blend_mode_swatches(SkCanvas* canvas, SkRect clipRect) { + static const int kTileHeight = 16; + static const int kTileWidth = 16; + static const SkColor4f kOpaqueWhite { 1.0f, 1.0f, 1.0f, 1.0f }; + static const SkColor4f kTransBluish { 0.0f, 0.5f, 1.0f, 0.5f }; + static const SkColor4f kTransWhite { 1.0f, 1.0f, 1.0f, 0.75f }; + + SkPaint dstPaint; + dstPaint.setColor(kOpaqueWhite); + dstPaint.setBlendMode(SkBlendMode::kSrc); + dstPaint.setAntiAlias(false); + + SkPaint srcPaint; + srcPaint.setColor(kTransBluish); + srcPaint.setAntiAlias(false); + + SkRect r = SkRect::MakeXYWH(clipRect.fLeft, clipRect.fTop, kTileWidth, kTileHeight); + + // For the first pass we draw: transparent bluish on top of opaque white + // For the second pass we draw: transparent white on top of transparent bluish + for (int passes = 0; passes < 2; ++passes) { + for (int i = 0; i <= (int)SkBlendMode::kLastCoeffMode; ++i) { + if (r.fLeft+kTileWidth > clipRect.fRight) { + r.offsetTo(clipRect.fLeft, r.fTop+kTileHeight); + } + + canvas->drawRect(r.makeInset(1.0f, 1.0f), dstPaint); + srcPaint.setBlendMode(static_cast(i)); + canvas->drawRect(r.makeInset(2.0f, 2.0f), srcPaint); + + r.offset(kTileWidth, 0.0f); + } + + r.offsetTo(clipRect.fLeft, r.fTop+kTileHeight); + srcPaint.setColor(kTransWhite); + dstPaint.setColor(kTransBluish); + } } } // anonymous namespace @@ -61,26 +146,42 @@ namespace skiagm { class GraphiteStartGM : public GM { public: GraphiteStartGM() { - this->setBGColor(0xFFCCCCCC); + this->setBGColor(SK_ColorBLACK); GetResourceAsBitmap("images/color_wheel.gif", &fBitmap); } protected: + static const int kWidth = 256; + static const int kHeight = 384; + SkString onShortName() override { return SkString("graphitestart"); } SkISize onISize() override { - return SkISize::Make(256, 384); + return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { + MetaContext context(canvas); + + canvas->save(); + canvas->clipRRect(SkRRect::MakeRectXY({16.f, 16.f, 240.f, 366.f}, 32.f, 32.f), true); + // UL corner { SkPaint p; - p.setColor(SK_ColorRED); - canvas->drawRect({2, 2, 127, 127}, p); + p.setShader(create_image_shader(context)); + + SkPath path; + path.moveTo(1, 1); + path.lineTo(64, 127); + path.lineTo(127, 1); + path.lineTo(63, 63); + path.close(); + + canvas->drawPath(path, p); } // UR corner @@ -94,22 +195,28 @@ class GraphiteStartGM : public GM { // LL corner { SkPaint p; - p.setShader(create_image_shader()); + p.setColor(SK_ColorRED); canvas->drawRect({2, 129, 127, 255}, p); } // LR corner { SkPaint p; - p.setShader(create_blend_shader(SkBlendMode::kDstOver)); + p.setShader(create_blend_shader(context, SkBlendMode::kModulate)); canvas->drawRect({129, 129, 255, 255}, p); } + + canvas->restore(); + #ifdef SK_GRAPHITE_ENABLED // TODO: failing serialize test on Linux, not sure what's going on canvas->writePixels(fBitmap, 0, 256); #endif + + draw_blend_mode_swatches(canvas, SkRect::MakeXYWH(128, 256, 128, 128)); } +private: SkBitmap fBitmap; }; diff --git a/third_party/skia/gm/image.cpp b/third_party/skia/gm/image.cpp index 51b5c54744c1..281f99d422a8 100644 --- a/third_party/skia/gm/image.cpp +++ b/third_party/skia/gm/image.cpp @@ -29,7 +29,6 @@ #include "include/core/SkSurface.h" #include "include/core/SkTypeface.h" #include "include/core/SkTypes.h" -#include "include/effects/SkGradientShader.h" #include "include/gpu/GrDirectContext.h" #include "include/private/SkMalloc.h" #include "src/core/SkAutoPixmapStorage.h" @@ -460,39 +459,3 @@ DEF_SIMPLE_GM_CAN_FAIL(image_subset, canvas, errorMsg, 440, 220) { canvas->drawImage(sub, 220+110, 10); return skiagm::DrawResult::kOk; } - -/////////////////////////////////////////////////////////////////////////////////////////////////// - -DEF_SIMPLE_GM(image_dither, canvas, 800, 800) { - // Make a low-res image of a gradient that shows banding if there's no dithering. When up-scaled - // bilerp filtering will emphasize the banding unless the image is drawn with dithering. - auto gradImage = []() -> sk_sp { - SkImageInfo gradImageInfo = SkImageInfo::Make({8, 16}, {SkColorType::kRGBA_8888_SkColorType, - SkAlphaType::kPremul_SkAlphaType, - nullptr}); - auto surface = SkSurface::MakeRaster(gradImageInfo); - - SkPoint pts[2] = {{0.f, 0.f}, - {(float) 2 * gradImageInfo.width(), (float) gradImageInfo.height()}}; - const SkColor colors[] = { 0xFF555555, 0xFF444444 }; - SkPaint p; - p.setShader(SkGradientShader::MakeLinear(pts, colors, nullptr, 2, SkTileMode::kClamp)); - surface->getCanvas()->drawPaint(p); - return surface->makeImageSnapshot(); - }(); - - SkRect imageBounds = SkRect::MakeIWH(gradImage->width(), gradImage->height()); - - canvas->scale(50, 50); - - // 1st image definitely goes through general shader paths so should have dithering - SkPaint p; - p.setShader(gradImage->makeShader(SkSamplingOptions{SkFilterMode::kLinear})); - p.setDither(true); - canvas->drawRect(imageBounds, p); - - // 2nd image goes through draw-image fast paths, but dithering should be detected - p.setShader(nullptr); - canvas->translate(imageBounds.width(), 0.f); - canvas->drawImage(gradImage, 0.f, 0.f, SkSamplingOptions{SkFilterMode::kLinear}, &p); -} diff --git a/third_party/skia/gm/image_pict.cpp b/third_party/skia/gm/image_pict.cpp index 75ac56bfbbd5..6d320c73d87e 100644 --- a/third_party/skia/gm/image_pict.cpp +++ b/third_party/skia/gm/image_pict.cpp @@ -28,11 +28,11 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SurfaceContext.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SurfaceContext.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_Gpu.h" diff --git a/third_party/skia/gm/lazytiling.cpp b/third_party/skia/gm/lazytiling.cpp index 44a703d6d969..df9e7e112ba2 100644 --- a/third_party/skia/gm/lazytiling.cpp +++ b/third_party/skia/gm/lazytiling.cpp @@ -6,23 +6,22 @@ */ #include "gm/gm.h" +#include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkPaint.h" #include "include/core/SkRect.h" #include "include/core/SkSize.h" #include "include/core/SkString.h" #include "include/gpu/GrDirectContext.h" - #include "src/core/SkCanvasPriv.h" #include "src/core/SkConvertPixels.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" - +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/gpu/ProxyUtils.h" static GrSurfaceProxyView create_view(GrDirectContext* dContext, diff --git a/third_party/skia/gm/lumafilter.cpp b/third_party/skia/gm/lumafilter.cpp index dcaa48d26ba8..a409644e3f78 100644 --- a/third_party/skia/gm/lumafilter.cpp +++ b/third_party/skia/gm/lumafilter.cpp @@ -10,6 +10,7 @@ #include "include/core/SkCanvas.h" #include "include/core/SkColor.h" #include "include/core/SkColorFilter.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkFont.h" #include "include/core/SkFontTypes.h" #include "include/core/SkPaint.h" diff --git a/third_party/skia/gm/manypathatlases.cpp b/third_party/skia/gm/manypathatlases.cpp index ab0bc167cca4..b6c7214106db 100644 --- a/third_party/skia/gm/manypathatlases.cpp +++ b/third_party/skia/gm/manypathatlases.cpp @@ -10,9 +10,9 @@ #include "include/core/SkPath.h" #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" #include "tools/ToolUtils.h" namespace skiagm { diff --git a/third_party/skia/gm/matrixconvolution.cpp b/third_party/skia/gm/matrixconvolution.cpp index a150057e5ce0..f721a80146bc 100644 --- a/third_party/skia/gm/matrixconvolution.cpp +++ b/third_party/skia/gm/matrixconvolution.cpp @@ -22,7 +22,7 @@ #include "include/core/SkTypeface.h" #include "include/effects/SkGradientShader.h" #include "include/effects/SkImageFilters.h" -#include "src/gpu/effects/GrMatrixConvolutionEffect.h" +#include "src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h" #include "tools/ToolUtils.h" #include diff --git a/third_party/skia/gm/p3.cpp b/third_party/skia/gm/p3.cpp index 7aecf37c7e18..9b78a970cdde 100644 --- a/third_party/skia/gm/p3.cpp +++ b/third_party/skia/gm/p3.cpp @@ -24,6 +24,7 @@ #include "include/core/SkTypes.h" #include "include/effects/SkDashPathEffect.h" #include "include/effects/SkGradientShader.h" +#include "include/private/SkImageInfoPriv.h" #include "include/private/SkTPin.h" #include "src/core/SkColorSpaceXformSteps.h" diff --git a/third_party/skia/gm/pathfill.cpp b/third_party/skia/gm/pathfill.cpp index e7dd4782440b..66042236a957 100644 --- a/third_party/skia/gm/pathfill.cpp +++ b/third_party/skia/gm/pathfill.cpp @@ -10,6 +10,7 @@ #include "include/core/SkColor.h" #include "include/core/SkPaint.h" #include "include/core/SkPathBuilder.h" +#include "include/core/SkRRect.h" #include "include/core/SkRect.h" #include "include/core/SkScalar.h" #include "include/core/SkSize.h" diff --git a/third_party/skia/gm/pathmaskcache.cpp b/third_party/skia/gm/pathmaskcache.cpp index 7493cdd2db9c..88c56e6b07f5 100644 --- a/third_party/skia/gm/pathmaskcache.cpp +++ b/third_party/skia/gm/pathmaskcache.cpp @@ -15,8 +15,8 @@ #include "include/core/SkSize.h" #include "include/core/SkString.h" #include "include/gpu/GrContextOptions.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkTArray.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" /** This tests the GPU backend's caching of path coverage masks */ class PathMaskCache : public skiagm::GM { diff --git a/third_party/skia/gm/preservefillrule.cpp b/third_party/skia/gm/preservefillrule.cpp index 2b559d17cb45..73b5fa9a9bf4 100644 --- a/third_party/skia/gm/preservefillrule.cpp +++ b/third_party/skia/gm/preservefillrule.cpp @@ -11,10 +11,10 @@ #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/ToolUtils.h" namespace skiagm { diff --git a/third_party/skia/gm/rectangletexture.cpp b/third_party/skia/gm/rectangletexture.cpp index b0e87611fa22..0b8cc00f93a3 100644 --- a/third_party/skia/gm/rectangletexture.cpp +++ b/third_party/skia/gm/rectangletexture.cpp @@ -30,10 +30,10 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrTypes.h" #include "src/core/SkAutoPixmapStorage.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/gl/GrGLCaps.h" -#include "src/gpu/gl/GrGLDefines.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/gl/GrGLCaps.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" #include #include diff --git a/third_party/skia/gm/rrects.cpp b/third_party/skia/gm/rrects.cpp index 337ad8476efd..12725ff1b2d1 100644 --- a/third_party/skia/gm/rrects.cpp +++ b/third_party/skia/gm/rrects.cpp @@ -18,16 +18,16 @@ #include "include/core/SkString.h" #include "include/core/SkTypes.h" #include "include/effects/SkGradientShader.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" -#include "src/gpu/effects/GrRRectEffect.h" -#include "src/gpu/ops/FillRectOp.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/effects/GrRRectEffect.h" +#include "src/gpu/ganesh/ops/FillRectOp.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include #include @@ -113,15 +113,24 @@ class RRectGM : public GM { for (int curRRect = 0; curRRect < kNumRRects; ++curRRect) { bool drew = true; #ifdef SK_DEBUG - SkRect imageSpaceBounds = fRRects[curRRect].getBounds(); - imageSpaceBounds.offset(SkIntToScalar(x), SkIntToScalar(y)); - SkASSERT(kMaxImageBound.contains(imageSpaceBounds)); + if (curRRect != kNumRRects - 1) { // skip last rrect, which is large but clipped + SkRect imageSpaceBounds = fRRects[curRRect].getBounds(); + imageSpaceBounds.offset(SkIntToScalar(x), SkIntToScalar(y)); + SkASSERT(kMaxImageBound.contains(imageSpaceBounds)); + } #endif canvas->save(); canvas->translate(SkIntToScalar(x), SkIntToScalar(y)); + + SkRRect rrect = fRRects[curRRect]; + if (curRRect == kNumRRects - 1) { + canvas->clipRect({0, 0, kTileX - 2, kTileY - 2}); + canvas->translate(-0.14f * rrect.rect().width(), + -0.14f * rrect.rect().height()); + } if (kEffect_Type == fType) { - SkRRect rrect = fRRects[curRRect]; - rrect.offset(SkIntToScalar(x), SkIntToScalar(y)); + fRRects[curRRect].transform(canvas->getLocalToDeviceAs3x3(), &rrect); + GrClipEdgeType edgeType = (GrClipEdgeType) et; const auto& caps = *rContext->priv().caps()->shaderCaps(); auto [success, fp] = GrRRectEffect::Make(/*inputFP=*/nullptr, @@ -133,7 +142,10 @@ class RRectGM : public GM { grPaint.setColor4f({ 0, 0, 0, 1.f }); SkRect bounds = rrect.getBounds(); - bounds.outset(2.f, 2.f); + bounds.intersect(SkRect::MakeXYWH(x, y, kTileX - 2, kTileY - 2)); + if (et >= (int) GrClipEdgeType::kInverseFillBW) { + bounds.outset(2.f, 2.f); + } sdc->addDrawOp(skgpu::v1::FillRectOp::MakeNonAARect( rContext, std::move(grPaint), SkMatrix::I(), bounds)); @@ -142,12 +154,13 @@ class RRectGM : public GM { } } else if (fType == kBW_Clip_Type || fType == kAA_Clip_Type) { bool aaClip = (kAA_Clip_Type == fType); - canvas->clipRRect(fRRects[curRRect], aaClip); + canvas->clipRRect(rrect, aaClip); canvas->setMatrix(SkMatrix::Scale(kImageWidth, kImageHeight)); canvas->drawRect(SkRect::MakeWH(1, 1), paint); } else { - canvas->drawRRect(fRRects[curRRect], paint); + canvas->drawRRect(rrect, paint); } + canvas->restore(); if (drew) { x = x + kTileX; @@ -183,6 +196,9 @@ class RRectGM : public GM { for (size_t i = 1; i < SK_ARRAY_COUNT(gRadii); ++i) { fRRects[kNumSimpleCases+i].setRectRadii(SkRect::MakeWH(kTileX-2, kTileY-2), gRadii[i]); } + // The last case is larger than kTileX-2 x kTileY-2 but will be drawn at an offset + // into a clip rect that respects the tile size and highlights the rrect's corner curve. + fRRects[kNumRRects - 1].setRectXY({9.f, 9.f, 1699.f, 1699.f}, 843.749f, 843.75f); } private: @@ -199,7 +215,7 @@ class RRectGM : public GM { static const SkVector gRadii[kNumComplexCases][4]; - inline static constexpr int kNumRRects = kNumSimpleCases + kNumComplexCases; + inline static constexpr int kNumRRects = kNumSimpleCases + kNumComplexCases + 1 /* extra big */; SkRRect fRRects[kNumRRects]; using INHERITED = GM; diff --git a/third_party/skia/gm/runtimecolorfilter.cpp b/third_party/skia/gm/runtimecolorfilter.cpp index 8a105de235e6..8ff59267d21a 100644 --- a/third_party/skia/gm/runtimecolorfilter.cpp +++ b/third_party/skia/gm/runtimecolorfilter.cpp @@ -8,6 +8,7 @@ #include "gm/gm.h" #include "include/core/SkCanvas.h" #include "include/core/SkColorFilter.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkData.h" #include "include/core/SkImage.h" #include "include/core/SkPaint.h" diff --git a/third_party/skia/gm/runtimeintrinsics.cpp b/third_party/skia/gm/runtimeintrinsics.cpp index 183da789fa9b..5eb96b6c8aeb 100644 --- a/third_party/skia/gm/runtimeintrinsics.cpp +++ b/third_party/skia/gm/runtimeintrinsics.cpp @@ -19,8 +19,8 @@ #include "include/effects/SkRuntimeEffect.h" #include "include/utils/SkRandom.h" #include "src/core/SkRuntimeEffectPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" #include "tools/Resources.h" #include "tools/ToolUtils.h" diff --git a/third_party/skia/gm/runtimeshader.cpp b/third_party/skia/gm/runtimeshader.cpp index 94b3e0d4c227..5d8f13779dfd 100644 --- a/third_party/skia/gm/runtimeshader.cpp +++ b/third_party/skia/gm/runtimeshader.cpp @@ -6,6 +6,7 @@ */ #include "gm/gm.h" +#include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkData.h" #include "include/core/SkPaint.h" diff --git a/third_party/skia/gm/scaledemoji.cpp b/third_party/skia/gm/scaledemoji.cpp index 97989bedd17c..a3d705396181 100644 --- a/third_party/skia/gm/scaledemoji.cpp +++ b/third_party/skia/gm/scaledemoji.cpp @@ -18,6 +18,7 @@ #include "include/core/SkString.h" #include "include/core/SkTextBlob.h" #include "include/core/SkTypeface.h" +#include "src/utils/SkUTF.h" #include "tools/ToolUtils.h" #include @@ -150,12 +151,22 @@ class ScaledEmojiPerspectiveGM : public GM { protected: struct EmojiFont { sk_sp fTypeface; - const char* fText; + SkString fText; } fEmojiFont; void onOnceBeforeDraw() override { fEmojiFont.fTypeface = ToolUtils::emoji_typeface(); - fEmojiFont.fText = ToolUtils::emoji_sample_text(); + + int count = 0; + const char* ch_ptr = ToolUtils::emoji_sample_text(); + const char* ch_end = ch_ptr + strlen(ch_ptr); + while (ch_ptr < ch_end && count < 2) { + SkUnichar ch = SkUTF::NextUTF8(&ch_ptr, ch_end); + if (ch != ' ') { + fEmojiFont.fText.appendUnichar(ch); + ++count; + } + } } SkString onShortName() override { @@ -174,9 +185,7 @@ class ScaledEmojiPerspectiveGM : public GM { SkFont font; font.setTypeface(fEmojiFont.fTypeface); font.setSize(40); - const char* text = "\xF0\x9F\x98\x80" - "\xE2\x99\xA2"; // 😀♢; - sk_sp blob = make_hpos_test_blob_utf8(text, font); + sk_sp blob = make_hpos_test_blob_utf8(fEmojiFont.fText.c_str(), font); // draw text at different point sizes // Testing GPU bitmap path, SDF path with no scaling, diff --git a/third_party/skia/gm/skbug_9819.cpp b/third_party/skia/gm/skbug_9819.cpp index 3097d658fcfd..799d8b0411cc 100644 --- a/third_party/skia/gm/skbug_9819.cpp +++ b/third_party/skia/gm/skbug_9819.cpp @@ -8,6 +8,7 @@ #include "gm/gm.h" #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" // This GM should draw two yellow boxes; the bug drew one in cyan. diff --git a/third_party/skia/gm/stroketext.cpp b/third_party/skia/gm/stroketext.cpp index 4c2baa11f467..98e670a9ff6c 100644 --- a/third_party/skia/gm/stroketext.cpp +++ b/third_party/skia/gm/stroketext.cpp @@ -10,6 +10,8 @@ #include "include/core/SkCanvas.h" #include "include/core/SkColor.h" #include "include/core/SkFont.h" +#include "include/core/SkFontArguments.h" +#include "include/core/SkFontMgr.h" #include "include/core/SkFontTypes.h" #include "include/core/SkImageInfo.h" #include "include/core/SkPaint.h" @@ -95,10 +97,24 @@ DEF_SIMPLE_GM(stroketext, canvas, 1200, 480) { draw_text_set(canvas, paint, font); } -DEF_SIMPLE_GM_CAN_FAIL(stroketext_native, canvas, msg, 650, 320) { +DEF_SIMPLE_GM_CAN_FAIL(stroketext_native, canvas, msg, 650, 420) { sk_sp ttf = MakeResourceAsTypeface("fonts/Stroking.ttf"); sk_sp otf = MakeResourceAsTypeface("fonts/Stroking.otf"); - if (!ttf && !otf) { + + sk_sp overlap = []() -> sk_sp{ + std::unique_ptr variableStream(GetResourceAsStream("fonts/Variable.ttf")); + if (!variableStream) { + return nullptr; + } + const SkFontArguments::VariationPosition::Coordinate position[] = { + { SkSetFourByteTag('w','g','h','t'), 721.0f }, + }; + SkFontArguments params; + params.setVariationDesignPosition({position, SK_ARRAY_COUNT(position)}); + return SkFontMgr::RefDefault()->makeFromStream(std::move(variableStream), params); + }(); + + if (!ttf && !otf && !overlap) { msg->append("No support for ttf or otf."); return skiagm::DrawResult::kSkip; } @@ -140,5 +156,15 @@ DEF_SIMPLE_GM_CAN_FAIL(stroketext_native, canvas, msg, 650, 320) { canvas->drawString("○◉ ⁰¹³ᶠ", 10, 300, font, p); } + if (overlap) { + /* Variable.ttf is structured like: + U+74 t (glyf outline has overlap flag) + U+167 ŧ (glyf outline does not have overlap flag) + */ + SkFont font(overlap, 100); + p.setStrokeWidth(1); + canvas->drawString("tŧ", 10, 400, font, p); + } + return skiagm::DrawResult::kOk; } diff --git a/third_party/skia/gm/surface.cpp b/third_party/skia/gm/surface.cpp index c8cccc8ab1f7..0985f52af717 100644 --- a/third_party/skia/gm/surface.cpp +++ b/third_party/skia/gm/surface.cpp @@ -298,6 +298,47 @@ DEF_SURFACE_TESTS(simple_snap_image2, canvas, 256, 256) { canvas->drawImage(std::move(image), 0, 0); } +DEF_SIMPLE_GM(snap_with_mips, canvas, 80, 75) { + auto ct = canvas->imageInfo().colorType() == kUnknown_SkColorType + ? kRGBA_8888_SkColorType + : canvas->imageInfo().colorType(); + auto ii = SkImageInfo::Make({32, 32}, + ct, + kPremul_SkAlphaType, + canvas->imageInfo().refColorSpace()); + auto surface = SkSurface::MakeRaster(ii); + + auto nextImage = [&](SkColor color) { + surface->getCanvas()->clear(color); + SkPaint paint; + paint.setColor(~color | 0xFF000000); + surface->getCanvas()->drawRect(SkRect::MakeLTRB(surface->width() *2/5.f, + surface->height()*2/5.f, + surface->width() *3/5.f, + surface->height()*3/5.f), + paint); + return surface->makeImageSnapshot()->withDefaultMipmaps(); + }; + + static constexpr int kPad = 8; + static const SkSamplingOptions kSampling{SkFilterMode::kLinear, SkMipmapMode::kLinear}; + + canvas->save(); + for (int y = 0; y < 3; ++y) { + canvas->save(); + SkColor kColors[] = {0xFFF0F0F0, SK_ColorBLUE}; + for (int x = 0; x < 2; ++x) { + auto image = nextImage(kColors[x]); + canvas->drawImage(image, 0, 0, kSampling); + canvas->translate(ii.width() + kPad, 0); + } + canvas->restore(); + canvas->translate(0, ii.width() + kPad); + canvas->scale(.4f, .4f); + } + canvas->restore(); +} + DEF_SURFACE_TESTS(copy_on_write_savelayer, canvas, 256, 256) { const SkImageInfo info = SkImageInfo::MakeN32Premul(256, 256); sk_sp surf = make(info); diff --git a/third_party/skia/gm/swizzle.cpp b/third_party/skia/gm/swizzle.cpp index 972e56e8d387..da9b838e3c64 100644 --- a/third_party/skia/gm/swizzle.cpp +++ b/third_party/skia/gm/swizzle.cpp @@ -6,16 +6,17 @@ */ #include "gm/gm.h" +#include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkImageInfo.h" #include "include/core/SkMatrix.h" #include "include/core/SkRect.h" #include "include/core/SkTypes.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #include "tools/Resources.h" DEF_SIMPLE_GPU_GM(swizzle, rContext, canvas, 512, 512) { diff --git a/third_party/skia/gm/tessellation.cpp b/third_party/skia/gm/tessellation.cpp index c0e337c073c5..526d4bc4e522 100644 --- a/third_party/skia/gm/tessellation.cpp +++ b/third_party/skia/gm/tessellation.cpp @@ -8,22 +8,22 @@ #include "gm/gm.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrShaderVar.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace skiagm { diff --git a/third_party/skia/gm/texelsubset.cpp b/third_party/skia/gm/texelsubset.cpp index f0bc2411762f..cdad2e9970cd 100644 --- a/third_party/skia/gm/texelsubset.cpp +++ b/third_party/skia/gm/texelsubset.cpp @@ -18,12 +18,12 @@ #include "include/core/SkString.h" #include "include/private/SkTArray.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tools/Resources.h" #include "tools/gpu/TestOps.h" diff --git a/third_party/skia/gm/trickycubicstrokes.cpp b/third_party/skia/gm/trickycubicstrokes.cpp index 07d72aaddb4f..938638a1d39c 100644 --- a/third_party/skia/gm/trickycubicstrokes.cpp +++ b/third_party/skia/gm/trickycubicstrokes.cpp @@ -20,10 +20,10 @@ #include "include/gpu/GrDirectContext.h" #include "include/utils/SkRandom.h" #include "src/core/SkGeometry.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" static constexpr float kStrokeWidth = 30; static constexpr int kCellSize = 200; @@ -182,7 +182,7 @@ DEF_SIMPLE_GM(trickycubicstrokes_roundcaps, canvas, kTestWidth, kTestHeight) { } #if SK_GPU_V1 -#include "src/gpu/ops/TessellationPathRenderer.h" +#include "src/gpu/ganesh/ops/TessellationPathRenderer.h" class TrickyCubicStrokes_tess_segs_5 : public skiagm::GM { SkString onShortName() override { diff --git a/third_party/skia/gm/userfont.cpp b/third_party/skia/gm/userfont.cpp index b40410ea906a..9e9942594e8f 100644 --- a/third_party/skia/gm/userfont.cpp +++ b/third_party/skia/gm/userfont.cpp @@ -11,6 +11,7 @@ #include "include/core/SkPaint.h" #include "include/core/SkPath.h" #include "include/core/SkSize.h" +#include "include/core/SkStream.h" #include "include/core/SkString.h" #include "include/utils/SkCustomTypeface.h" #include "tools/Resources.h" diff --git a/third_party/skia/gm/verifiers/BUILD.bazel b/third_party/skia/gm/verifiers/BUILD.bazel index f22e87209064..07daede5d3b7 100644 --- a/third_party/skia/gm/verifiers/BUILD.bazel +++ b/third_party/skia/gm/verifiers/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "gmverifier_hdr", hdrs = ["gmverifier.h"], @@ -20,6 +22,7 @@ generated_cc_atom( "//gm:gm_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkSurface_hdr", "//include/effects:SkImageFilters_hdr", "//include/encode:SkPngEncoder_hdr", diff --git a/third_party/skia/gm/verifiers/gmverifier.cpp b/third_party/skia/gm/verifiers/gmverifier.cpp index a09835a94981..1ad46d830b88 100644 --- a/third_party/skia/gm/verifiers/gmverifier.cpp +++ b/third_party/skia/gm/verifiers/gmverifier.cpp @@ -9,6 +9,7 @@ #include "gm/verifiers/gmverifier.h" #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkSurface.h" #include "include/effects/SkImageFilters.h" #include "include/encode/SkPngEncoder.h" diff --git a/third_party/skia/gm/verifiers/gmverifier.h b/third_party/skia/gm/verifiers/gmverifier.h index 2809936f532f..beca79524128 100644 --- a/third_party/skia/gm/verifiers/gmverifier.h +++ b/third_party/skia/gm/verifiers/gmverifier.h @@ -15,6 +15,7 @@ #include class SkBitmap; +class SkColorInfo; namespace skiagm { diff --git a/third_party/skia/gm/vertices.cpp b/third_party/skia/gm/vertices.cpp index 20387ed40fe3..cc618b59f130 100644 --- a/third_party/skia/gm/vertices.cpp +++ b/third_party/skia/gm/vertices.cpp @@ -311,3 +311,25 @@ DEF_SIMPLE_GM(vertices_perspective, canvas, 256, 256) { canvas->drawVertices(verts, SkBlendMode::kModulate, paint); canvas->restore(); } + +DEF_SIMPLE_GM(skbug_13047, canvas, 200, 200) { + auto image = GetResourceAsImage("images/mandrill_128.png"); + + const float w = image->width(); + const float h = image->height(); + + SkPoint verts[] = {{0, 0}, {200, 0}, {200, 200}, {0, 200}}; + SkPoint texs[] = {{0, 0}, {w, 0}, {w, h}, {0, h}}; + uint16_t indices[] = {0, 1, 2, 2, 3, 0}; + + auto v = SkVertices::MakeCopy( + SkVertices::kTriangles_VertexMode, 4, verts, texs, nullptr, 6, indices); + + auto m = SkMatrix::Scale(2, 2); // ignored in CPU ??? + auto s = image->makeShader(SkSamplingOptions(SkFilterMode::kLinear), &m); + + SkPaint p; + p.setShader(s); + + canvas->drawVertices(v, SkBlendMode::kModulate, p); +} diff --git a/third_party/skia/gm/wacky_yuv_formats.cpp b/third_party/skia/gm/wacky_yuv_formats.cpp index c75342663512..b7ce4fbdadee 100644 --- a/third_party/skia/gm/wacky_yuv_formats.cpp +++ b/third_party/skia/gm/wacky_yuv_formats.cpp @@ -36,17 +36,17 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkHalf.h" #include "include/private/SkTArray.h" #include "include/private/SkTDArray.h" #include "include/private/SkTPin.h" #include "include/private/SkTemplates.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "include/utils/SkTextUtils.h" #include "src/core/SkConvertPixels.h" #include "src/core/SkYUVMath.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" #include "tools/ToolUtils.h" #include "tools/gpu/YUVUtils.h" diff --git a/third_party/skia/gm/widebuttcaps.cpp b/third_party/skia/gm/widebuttcaps.cpp index a8c2a9ddf768..5476470c1cc9 100644 --- a/third_party/skia/gm/widebuttcaps.cpp +++ b/third_party/skia/gm/widebuttcaps.cpp @@ -12,11 +12,11 @@ #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" #include "include/utils/SkRandom.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/ops/TessellationPathRenderer.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/ops/TessellationPathRenderer.h" static constexpr float kStrokeWidth = 100; static constexpr int kTestWidth = 120 * 4; diff --git a/third_party/skia/gm/ycbcrimage.cpp b/third_party/skia/gm/ycbcrimage.cpp index 53ccfcf6681e..f9acb4146d0e 100644 --- a/third_party/skia/gm/ycbcrimage.cpp +++ b/third_party/skia/gm/ycbcrimage.cpp @@ -11,6 +11,7 @@ #ifdef SK_VULKAN #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkPaint.h" #include "include/core/SkSize.h" diff --git a/third_party/skia/gm/yuv420_odd_dim.cpp b/third_party/skia/gm/yuv420_odd_dim.cpp index f66bbfef12d5..3af7a042b447 100644 --- a/third_party/skia/gm/yuv420_odd_dim.cpp +++ b/third_party/skia/gm/yuv420_odd_dim.cpp @@ -11,6 +11,7 @@ #include "include/core/SkCanvas.h" #include "include/core/SkImage.h" #include "include/core/SkPixmap.h" +#include "include/core/SkStream.h" #include "include/core/SkSurface.h" #include "include/encode/SkJpegEncoder.h" #include "include/gpu/GrRecordingContext.h" diff --git a/third_party/skia/gm/yuvtorgbsubset.cpp b/third_party/skia/gm/yuvtorgbsubset.cpp index df41aa1b955b..1dc6153c6e5f 100644 --- a/third_party/skia/gm/yuvtorgbsubset.cpp +++ b/third_party/skia/gm/yuvtorgbsubset.cpp @@ -19,12 +19,12 @@ #include "include/core/SkYUVAInfo.h" #include "include/core/SkYUVAPixmaps.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/GrYUVATextureProxies.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrYUVtoRGBEffect.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/GrYUVATextureProxies.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrYUVtoRGBEffect.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include #include @@ -140,13 +140,12 @@ class YUVtoRGBSubsetEffect : public GpuGM { const SkRect* subset = j > 0 ? &kColorRect : nullptr; - GrSamplerState samplerState; - samplerState.setFilterMode(kFilters[i]); + auto wm = GrSamplerState::WrapMode::kClamp; if (j > 0) { - auto wm = static_cast(j - 1); - samplerState.setWrapModeX(wm); - samplerState.setWrapModeY(wm); + wm = static_cast(j - 1); } + GrSamplerState samplerState(wm, kFilters[i]); + const auto& caps = *rContext->priv().caps(); std::unique_ptr fp = GrYUVtoRGBEffect::Make(fProxies, samplerState, caps, SkMatrix::I(), subset); diff --git a/third_party/skia/gn/BUILDCONFIG.gn b/third_party/skia/gn/BUILDCONFIG.gn index 8d7a76b04088..08da7f2bbffc 100644 --- a/third_party/skia/gn/BUILDCONFIG.gn +++ b/third_party/skia/gn/BUILDCONFIG.gn @@ -31,6 +31,8 @@ declare_args() { clang_win_version = "" ios_min_target = "" + ios_use_simulator = + target_os == "ios" && (target_cpu == "x86" || target_cpu == "x64") } declare_args() { is_debug = !is_official_build diff --git a/third_party/skia/gn/codesign_ios.py b/third_party/skia/gn/codesign_ios.py index 06e0c90251c5..3be8e2de8a22 100755 --- a/third_party/skia/gn/codesign_ios.py +++ b/third_party/skia/gn/codesign_ios.py @@ -42,7 +42,7 @@ 'Provisioning Profiles', '*.mobileprovision')): if re.search(r'''Name -\t''' + profile + r'''''', open(p).read(), re.MULTILINE): +\t''' + profile + r'''''', open(p, 'rb').read().decode("utf-8", "ignore"), re.MULTILINE): mobileprovision = p if mobileprovision is None: print("Provisioning profile matching '" + profile + "' not found.") @@ -56,7 +56,7 @@ # Extract the appliciation identitifer prefix from the .mobileprovision. m = re.search(r'''ApplicationIdentifierPrefix \t -\t(.*)''', open(mobileprovision).read(), re.MULTILINE) +\t(.*)''', open(mobileprovision, 'rb').read().decode("utf-8", "ignore"), re.MULTILINE) prefix = m.group(1) app, _ = os.path.splitext(os.path.basename(pkg)) @@ -70,7 +70,7 @@ get-task-allow -'''.format(prefix=prefix, app=app)) +'''.format(prefix=prefix, app=app).encode("utf-8")) f.flush() subprocess.check_call(['codesign', diff --git a/third_party/skia/gn/compile_sksl_tests.py b/third_party/skia/gn/compile_sksl_tests.py index bcb16557564f..cd3040c14479 100755 --- a/third_party/skia/gn/compile_sksl_tests.py +++ b/third_party/skia/gn/compile_sksl_tests.py @@ -94,8 +94,12 @@ def extensionForSpirvAsm(ext): worklist.write(input + "\n") worklist.write(target + ".stage\n") worklist.write(settings + "\n\n") + elif lang == "--wgsl": + worklist.write(input + "\n") + worklist.write(target + ".wgsl\n") + worklist.write(settings + "\n\n") else: - sys.exit("### Expected one of: --glsl --metal --spirv --skvm --stage --dsl, got " + lang) + sys.exit("### Expected one of: --glsl --metal --spirv --wgsl --skvm --stage --dsl, got " + lang) # Compile items one at a time. if not batchCompile: diff --git a/third_party/skia/gn/core.gni b/third_party/skia/gn/core.gni index c87315afcb11..6d7d72337196 100644 --- a/third_party/skia/gn/core.gni +++ b/third_party/skia/gn/core.gni @@ -247,6 +247,8 @@ skia_core_sources = [ "$_src/core/SkImageFilter_Base.h", "$_src/core/SkImageGenerator.cpp", "$_src/core/SkImageInfo.cpp", + "$_src/core/SkKeyContext.cpp", + "$_src/core/SkKeyContext.h", "$_src/core/SkKeyHelpers.cpp", "$_src/core/SkKeyHelpers.h", "$_src/core/SkLRUCache.h", @@ -306,6 +308,8 @@ skia_core_sources = [ "$_src/core/SkPathPriv.h", "$_src/core/SkPathRef.cpp", "$_src/core/SkPath_serial.cpp", + "$_src/core/SkPipelineData.cpp", + "$_src/core/SkPipelineData.h", "$_src/core/SkPixelRef.cpp", "$_src/core/SkPixmap.cpp", "$_src/core/SkPoint.cpp", @@ -413,8 +417,6 @@ skia_core_sources = [ "$_src/core/SkTypeface_remote.h", "$_src/core/SkUnPreMultiply.cpp", "$_src/core/SkUniform.h", - "$_src/core/SkUniformData.cpp", - "$_src/core/SkUniformData.h", "$_src/core/SkUtils.cpp", "$_src/core/SkUtils.h", "$_src/core/SkVM.cpp", @@ -503,7 +505,6 @@ skia_core_sources = [ "$_include/private/SkTFitsIn.h", "$_include/private/SkTHash.h", "$_include/private/SkTLogic.h", - "$_include/private/SkTOptional.h", "$_include/private/SkTemplates.h", "$_include/private/SkThreadAnnotations.h", "$_include/private/SkThreadID.h", diff --git a/third_party/skia/gn/dehydrate_sksl.py b/third_party/skia/gn/dehydrate_sksl.py index d7192e371018..a1e24a687f24 100644 --- a/third_party/skia/gn/dehydrate_sksl.py +++ b/third_party/skia/gn/dehydrate_sksl.py @@ -9,20 +9,20 @@ import subprocess import sys -skslc = sys.argv[1] +sksl_precompile = sys.argv[1] targetDir = sys.argv[2] -includes = sys.argv[3:] +modules = sys.argv[3:] -for inc in includes: +for module in modules: try: - noExt, _ = os.path.splitext(inc) + noExt, _ = os.path.splitext(module) head, tail = os.path.split(noExt) if not os.path.isdir(targetDir): os.mkdir(targetDir) target = os.path.join(targetDir, tail) subprocess.check_output([ - skslc, inc, target + ".dehydrated.sksl"]).decode('utf-8') + sksl_precompile, target + ".dehydrated.sksl", module]).decode('utf-8') except subprocess.CalledProcessError as err: - print("### Error compiling " + inc + ":") + print("### Error compiling " + module + ":") print(err.output) exit(1) diff --git a/third_party/skia/gn/effects.gni b/third_party/skia/gn/effects.gni index ef57c575a23a..e179f42c9330 100644 --- a/third_party/skia/gn/effects.gni +++ b/third_party/skia/gn/effects.gni @@ -26,6 +26,7 @@ skia_effects_public = [ "$_include/effects/SkShaderMaskFilter.h", "$_include/effects/SkTableColorFilter.h", "$_include/effects/SkTableMaskFilter.h", + "$_include/effects/SkTrimPathEffect.h", ] skia_effects_sources = [ diff --git a/third_party/skia/gn/find_headers.py b/third_party/skia/gn/find_headers.py index aafa5532ef80..3749737d1d4f 100755 --- a/third_party/skia/gn/find_headers.py +++ b/third_party/skia/gn/find_headers.py @@ -39,6 +39,14 @@ print(e.output.decode('utf-8')) raise +if desc_json_txt.startswith('WARNING'): + print('\ngn generated a warning when we asked for JSON output.', + 'To see the warning, run this command from the out_dir:', + '(you may need to quote the * argument)\n', + ' '.join(gn_desc_cmd), + '\n', sep='\n') + sys.exit(-1) + desc_json = {} try: desc_json = json.loads(desc_json_txt) diff --git a/third_party/skia/gn/gm.gni b/third_party/skia/gn/gm.gni index a19a315917e8..8582d61caf97 100644 --- a/third_party/skia/gn/gm.gni +++ b/third_party/skia/gn/gm.gni @@ -119,6 +119,7 @@ gm_sources = [ "$_gm/crbug_1174354.cpp", "$_gm/crbug_1177833.cpp", "$_gm/crbug_1257515.cpp", + "$_gm/crbug_1313579.cpp", "$_gm/crbug_224618.cpp", "$_gm/crbug_691386.cpp", "$_gm/crbug_788500.cpp", diff --git a/third_party/skia/gn/gn_to_bp.py b/third_party/skia/gn/gn_to_bp.py index cff5552938c8..f5869b5c7b8a 100755 --- a/third_party/skia/gn/gn_to_bp.py +++ b/third_party/skia/gn/gn_to_bp.py @@ -180,7 +180,7 @@ "android", ], }, - linux_glibc: { + host_linux: { srcs: [ $linux_srcs ], @@ -448,6 +448,10 @@ android_test { name: "CtsSkQPTestCases", defaults: ["cts_defaults"], + test_suites: [ + "general-tests", + "cts", + ], libs: ["android.test.runner.stubs"], jni_libs: ["libskqp_jni"], @@ -465,6 +469,7 @@ srcs: ["platform_tools/android/apps/skqp/src/main/java/**/*.java"], sdk_version: "test_current", + } ''') @@ -490,6 +495,8 @@ def generate_args(target_os, enable_gpu, renderengine = False): 'skia_use_fontconfig': 'false', 'skia_include_multiframe_procs': 'false', + # Required for some SKSL tests + 'skia_enable_sksl_tracing': 'true', } d['target_os'] = target_os if target_os == '"android"': @@ -656,6 +663,10 @@ def strip_headers(sources): gn_to_bp_utils.GrabDependentValues(js_skqp, '//:libskqp_app', 'defines', skqp_defines, None) +skqp_defines.add("SK_ENABLE_DUMP_GPU") +skqp_defines.add("SK_BUILD_FOR_SKQP") +skqp_defines.add("SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=1") + skqp_srcs = strip_headers(skqp_srcs) skqp_cflags = gn_to_bp_utils.CleanupCFlags(skqp_cflags) skqp_cflags_cc = gn_to_bp_utils.CleanupCCFlags(skqp_cflags_cc) diff --git a/third_party/skia/gn/gpu.gni b/third_party/skia/gn/gpu.gni index 09301a628aee..428dbbf7377f 100644 --- a/third_party/skia/gn/gpu.gni +++ b/third_party/skia/gn/gpu.gni @@ -6,7 +6,6 @@ # Things are easiest for everyone if these source paths are absolute. _src = get_path_info("../src", "abspath") _include = get_path_info("../include", "abspath") - skia_gpu_sources = [ "$_include/gpu/GrBackendDrawableInfo.h", "$_include/gpu/GrBackendSemaphore.h", @@ -23,388 +22,374 @@ skia_gpu_sources = [ "$_include/gpu/GrYUVABackendTextures.h", # Private includes - "$_include/private/GrContext_Base.h", - "$_include/private/GrGLTypesPriv.h", - "$_include/private/GrImageContext.h", - "$_include/private/GrMtlTypesPriv.h", - "$_include/private/GrTypesPriv.h", "$_include/private/chromium/GrSlug.h", - "$_src/gpu/GrAHardwareBufferImageGenerator.cpp", - "$_src/gpu/GrAHardwareBufferImageGenerator.h", - "$_src/gpu/GrAHardwareBufferUtils.cpp", + "$_include/private/gpu/ganesh/GrContext_Base.h", + "$_include/private/gpu/ganesh/GrGLTypesPriv.h", + "$_include/private/gpu/ganesh/GrImageContext.h", + "$_include/private/gpu/ganesh/GrMtlTypesPriv.h", + "$_include/private/gpu/ganesh/GrTypesPriv.h", "$_src/gpu/GrAHardwareBufferUtils.h", - "$_src/gpu/GrAppliedClip.h", - "$_src/gpu/GrAttachment.cpp", - "$_src/gpu/GrAttachment.h", - "$_src/gpu/GrAuditTrail.h", - "$_src/gpu/GrAutoLocaleSetter.h", - "$_src/gpu/GrBackendSemaphore.cpp", - "$_src/gpu/GrBackendSurface.cpp", - "$_src/gpu/GrBackendSurfaceMutableState.cpp", - "$_src/gpu/GrBackendSurfaceMutableStateImpl.h", - "$_src/gpu/GrBackendTextureImageGenerator.cpp", - "$_src/gpu/GrBackendTextureImageGenerator.h", - "$_src/gpu/GrBackendUtils.cpp", - "$_src/gpu/GrBackendUtils.h", - "$_src/gpu/GrBaseContextPriv.h", - "$_src/gpu/GrBlend.h", - "$_src/gpu/GrBuffer.h", - "$_src/gpu/GrBufferAllocPool.cpp", - "$_src/gpu/GrBufferAllocPool.h", - "$_src/gpu/GrCaps.cpp", - "$_src/gpu/GrCaps.h", - "$_src/gpu/GrClientMappedBufferManager.cpp", - "$_src/gpu/GrClientMappedBufferManager.h", - "$_src/gpu/GrClip.h", - "$_src/gpu/GrColor.h", - "$_src/gpu/GrColorInfo.cpp", - "$_src/gpu/GrColorInfo.h", - "$_src/gpu/GrColorSpaceXform.cpp", - "$_src/gpu/GrColorSpaceXform.h", - "$_src/gpu/GrContextThreadSafeProxy.cpp", - "$_src/gpu/GrContextThreadSafeProxyPriv.h", - "$_src/gpu/GrContext_Base.cpp", - "$_src/gpu/GrCopyRenderTask.cpp", - "$_src/gpu/GrCopyRenderTask.h", - "$_src/gpu/GrCpuBuffer.h", - "$_src/gpu/GrDDLContext.cpp", - "$_src/gpu/GrDDLTask.cpp", - "$_src/gpu/GrDDLTask.h", - "$_src/gpu/GrDataUtils.cpp", - "$_src/gpu/GrDataUtils.h", - "$_src/gpu/GrDefaultGeoProcFactory.cpp", - "$_src/gpu/GrDefaultGeoProcFactory.h", - "$_src/gpu/GrDeferredProxyUploader.h", - "$_src/gpu/GrDeferredUpload.h", - "$_src/gpu/GrDirectContext.cpp", - "$_src/gpu/GrDirectContextPriv.cpp", - "$_src/gpu/GrDirectContextPriv.h", - "$_src/gpu/GrDistanceFieldGenFromVector.cpp", - "$_src/gpu/GrDistanceFieldGenFromVector.h", - "$_src/gpu/GrDrawIndirectCommand.h", - "$_src/gpu/GrDrawOpAtlas.cpp", - "$_src/gpu/GrDrawOpAtlas.h", - "$_src/gpu/GrDrawingManager.cpp", - "$_src/gpu/GrDrawingManager.h", - "$_src/gpu/GrDriverBugWorkarounds.cpp", - "$_src/gpu/GrDstProxyView.h", - "$_src/gpu/GrDynamicAtlas.cpp", - "$_src/gpu/GrDynamicAtlas.h", - "$_src/gpu/GrEagerVertexAllocator.cpp", - "$_src/gpu/GrEagerVertexAllocator.h", - "$_src/gpu/GrFinishCallbacks.cpp", - "$_src/gpu/GrFinishCallbacks.h", - "$_src/gpu/GrFixedClip.cpp", - "$_src/gpu/GrFixedClip.h", - "$_src/gpu/GrFragmentProcessor.cpp", - "$_src/gpu/GrFragmentProcessor.h", - "$_src/gpu/GrGeometryProcessor.cpp", - "$_src/gpu/GrGeometryProcessor.h", - "$_src/gpu/GrGlyph.h", - "$_src/gpu/GrGpu.cpp", - "$_src/gpu/GrGpu.h", - "$_src/gpu/GrGpuBuffer.cpp", - "$_src/gpu/GrGpuBuffer.h", - "$_src/gpu/GrGpuResource.cpp", - "$_src/gpu/GrGpuResource.h", - "$_src/gpu/GrGpuResourceCacheAccess.h", - "$_src/gpu/GrGpuResourcePriv.h", - "$_src/gpu/GrHashMapWithCache.h", - "$_src/gpu/GrImageContext.cpp", - "$_src/gpu/GrImageContextPriv.h", - "$_src/gpu/GrImageInfo.h", - "$_src/gpu/GrManagedResource.cpp", - "$_src/gpu/GrManagedResource.h", - "$_src/gpu/GrMemoryPool.cpp", - "$_src/gpu/GrMemoryPool.h", - "$_src/gpu/GrMeshDrawTarget.cpp", - "$_src/gpu/GrMeshDrawTarget.h", - "$_src/gpu/GrNativeRect.h", - "$_src/gpu/GrNonAtomicRef.h", - "$_src/gpu/GrOnFlushResourceProvider.cpp", - "$_src/gpu/GrOnFlushResourceProvider.h", - "$_src/gpu/GrOpFlushState.cpp", - "$_src/gpu/GrOpFlushState.h", - "$_src/gpu/GrOpsRenderPass.cpp", - "$_src/gpu/GrOpsRenderPass.h", - "$_src/gpu/GrOpsTypes.h", - "$_src/gpu/GrPaint.cpp", - "$_src/gpu/GrPaint.h", - "$_src/gpu/GrPersistentCacheUtils.cpp", - "$_src/gpu/GrPersistentCacheUtils.h", - "$_src/gpu/GrPipeline.cpp", - "$_src/gpu/GrPipeline.h", - "$_src/gpu/GrPixmap.h", - "$_src/gpu/GrProcessor.cpp", - "$_src/gpu/GrProcessor.h", - "$_src/gpu/GrProcessorAnalysis.cpp", - "$_src/gpu/GrProcessorAnalysis.h", - "$_src/gpu/GrProcessorSet.cpp", - "$_src/gpu/GrProcessorSet.h", - "$_src/gpu/GrProcessorUnitTest.cpp", - "$_src/gpu/GrProcessorUnitTest.h", - "$_src/gpu/GrProgramDesc.cpp", - "$_src/gpu/GrProgramDesc.h", - "$_src/gpu/GrProgramInfo.cpp", - "$_src/gpu/GrProgramInfo.h", - "$_src/gpu/GrProxyProvider.cpp", - "$_src/gpu/GrProxyProvider.h", - "$_src/gpu/GrRecordingContext.cpp", - "$_src/gpu/GrRecordingContextPriv.cpp", - "$_src/gpu/GrRecordingContextPriv.h", "$_src/gpu/GrRectanizer.h", - "$_src/gpu/GrRectanizerPow2.cpp", - "$_src/gpu/GrRectanizerPow2.h", - "$_src/gpu/GrRectanizerSkyline.cpp", - "$_src/gpu/GrRectanizerSkyline.h", - "$_src/gpu/GrRefCnt.h", - "$_src/gpu/GrRenderTarget.cpp", - "$_src/gpu/GrRenderTarget.h", - "$_src/gpu/GrRenderTargetProxy.cpp", - "$_src/gpu/GrRenderTargetProxy.h", - "$_src/gpu/GrRenderTask.cpp", - "$_src/gpu/GrRenderTask.h", - "$_src/gpu/GrRenderTaskCluster.cpp", - "$_src/gpu/GrRenderTaskCluster.h", - "$_src/gpu/GrResourceAllocator.cpp", - "$_src/gpu/GrResourceAllocator.h", - "$_src/gpu/GrResourceCache.cpp", - "$_src/gpu/GrResourceCache.h", - "$_src/gpu/GrResourceHandle.h", - "$_src/gpu/GrResourceProvider.cpp", - "$_src/gpu/GrResourceProvider.h", - "$_src/gpu/GrResourceProviderPriv.h", - "$_src/gpu/GrRingBuffer.cpp", - "$_src/gpu/GrRingBuffer.h", - "$_src/gpu/GrSPIRVUniformHandler.cpp", - "$_src/gpu/GrSPIRVUniformHandler.h", - "$_src/gpu/GrSPIRVVaryingHandler.cpp", - "$_src/gpu/GrSPIRVVaryingHandler.h", - "$_src/gpu/GrSWMaskHelper.cpp", - "$_src/gpu/GrSWMaskHelper.h", - "$_src/gpu/GrSamplerState.h", - "$_src/gpu/GrScissorState.h", - "$_src/gpu/GrSemaphore.h", - "$_src/gpu/GrShaderCaps.cpp", - "$_src/gpu/GrShaderCaps.h", - "$_src/gpu/GrShaderVar.cpp", - "$_src/gpu/GrShaderVar.h", - "$_src/gpu/GrSimpleMesh.h", - "$_src/gpu/GrStagingBufferManager.cpp", - "$_src/gpu/GrStagingBufferManager.h", - "$_src/gpu/GrStencilSettings.cpp", - "$_src/gpu/GrStencilSettings.h", - "$_src/gpu/GrStyle.cpp", - "$_src/gpu/GrStyle.h", - "$_src/gpu/GrSubRunAllocator.cpp", - "$_src/gpu/GrSubRunAllocator.h", - "$_src/gpu/GrSurface.cpp", - "$_src/gpu/GrSurface.h", - "$_src/gpu/GrSurfaceInfo.cpp", - "$_src/gpu/GrSurfaceProxy.cpp", - "$_src/gpu/GrSurfaceProxy.h", - "$_src/gpu/GrSurfaceProxyPriv.h", - "$_src/gpu/GrSurfaceProxyView.h", - "$_src/gpu/GrTTopoSort.h", - "$_src/gpu/GrTestUtils.cpp", - "$_src/gpu/GrTestUtils.h", - "$_src/gpu/GrTexture.cpp", - "$_src/gpu/GrTexture.h", - "$_src/gpu/GrTextureProxy.cpp", - "$_src/gpu/GrTextureProxy.h", - "$_src/gpu/GrTextureProxyCacheAccess.h", - "$_src/gpu/GrTextureProxyPriv.h", - "$_src/gpu/GrTextureRenderTargetProxy.cpp", - "$_src/gpu/GrTextureRenderTargetProxy.h", - "$_src/gpu/GrTextureResolveManager.h", - "$_src/gpu/GrTextureResolveRenderTask.cpp", - "$_src/gpu/GrTextureResolveRenderTask.h", - "$_src/gpu/GrThreadSafeCache.cpp", - "$_src/gpu/GrThreadSafeCache.h", - "$_src/gpu/GrThreadSafePipelineBuilder.cpp", - "$_src/gpu/GrThreadSafePipelineBuilder.h", - "$_src/gpu/GrTracing.h", - "$_src/gpu/GrTransferFromRenderTask.cpp", - "$_src/gpu/GrTransferFromRenderTask.h", - "$_src/gpu/GrUniformDataManager.cpp", - "$_src/gpu/GrUniformDataManager.h", - "$_src/gpu/GrUserStencilSettings.h", - "$_src/gpu/GrUtil.cpp", - "$_src/gpu/GrUtil.h", - "$_src/gpu/GrVertexChunkArray.cpp", - "$_src/gpu/GrVertexChunkArray.h", - "$_src/gpu/GrVx.h", - "$_src/gpu/GrWaitRenderTask.cpp", - "$_src/gpu/GrWaitRenderTask.h", - "$_src/gpu/GrWindowRectangles.h", - "$_src/gpu/GrWindowRectsState.h", - "$_src/gpu/GrWritePixelsRenderTask.cpp", - "$_src/gpu/GrWritePixelsRenderTask.h", - "$_src/gpu/GrXferProcessor.cpp", - "$_src/gpu/GrXferProcessor.h", - "$_src/gpu/GrYUVABackendTextures.cpp", - "$_src/gpu/GrYUVATextureProxies.cpp", - "$_src/gpu/GrYUVATextureProxies.h", - "$_src/gpu/SurfaceContext.cpp", - "$_src/gpu/SurfaceContext.h", - "$_src/gpu/SurfaceFillContext.cpp", - "$_src/gpu/SurfaceFillContext.h", + "$_src/gpu/ganesh/GrAHardwareBufferImageGenerator.cpp", + "$_src/gpu/ganesh/GrAHardwareBufferImageGenerator.h", + "$_src/gpu/ganesh/GrAHardwareBufferUtils.cpp", + "$_src/gpu/ganesh/GrAHardwareBufferUtils_impl.h", + "$_src/gpu/ganesh/GrAppliedClip.h", + "$_src/gpu/ganesh/GrAttachment.cpp", + "$_src/gpu/ganesh/GrAttachment.h", + "$_src/gpu/ganesh/GrAuditTrail.h", + "$_src/gpu/ganesh/GrAutoLocaleSetter.h", + "$_src/gpu/ganesh/GrBackendSemaphore.cpp", + "$_src/gpu/ganesh/GrBackendSurface.cpp", + "$_src/gpu/ganesh/GrBackendSurfaceMutableState.cpp", + "$_src/gpu/ganesh/GrBackendSurfaceMutableStateImpl.h", + "$_src/gpu/ganesh/GrBackendTextureImageGenerator.cpp", + "$_src/gpu/ganesh/GrBackendTextureImageGenerator.h", + "$_src/gpu/ganesh/GrBackendUtils.cpp", + "$_src/gpu/ganesh/GrBackendUtils.h", + "$_src/gpu/ganesh/GrBaseContextPriv.h", + "$_src/gpu/ganesh/GrBuffer.h", + "$_src/gpu/ganesh/GrBufferAllocPool.cpp", + "$_src/gpu/ganesh/GrBufferAllocPool.h", + "$_src/gpu/ganesh/GrCaps.cpp", + "$_src/gpu/ganesh/GrCaps.h", + "$_src/gpu/ganesh/GrClientMappedBufferManager.cpp", + "$_src/gpu/ganesh/GrClientMappedBufferManager.h", + "$_src/gpu/ganesh/GrClip.h", + "$_src/gpu/ganesh/GrColor.h", + "$_src/gpu/ganesh/GrColorInfo.cpp", + "$_src/gpu/ganesh/GrColorInfo.h", + "$_src/gpu/ganesh/GrColorSpaceXform.cpp", + "$_src/gpu/ganesh/GrColorSpaceXform.h", + "$_src/gpu/ganesh/GrContextThreadSafeProxy.cpp", + "$_src/gpu/ganesh/GrContextThreadSafeProxyPriv.h", + "$_src/gpu/ganesh/GrContext_Base.cpp", + "$_src/gpu/ganesh/GrCopyRenderTask.cpp", + "$_src/gpu/ganesh/GrCopyRenderTask.h", + "$_src/gpu/ganesh/GrCpuBuffer.h", + "$_src/gpu/ganesh/GrDDLContext.cpp", + "$_src/gpu/ganesh/GrDDLTask.cpp", + "$_src/gpu/ganesh/GrDDLTask.h", + "$_src/gpu/ganesh/GrDataUtils.cpp", + "$_src/gpu/ganesh/GrDataUtils.h", + "$_src/gpu/ganesh/GrDefaultGeoProcFactory.cpp", + "$_src/gpu/ganesh/GrDefaultGeoProcFactory.h", + "$_src/gpu/ganesh/GrDeferredProxyUploader.h", + "$_src/gpu/ganesh/GrDeferredUpload.h", + "$_src/gpu/ganesh/GrDirectContext.cpp", + "$_src/gpu/ganesh/GrDirectContextPriv.cpp", + "$_src/gpu/ganesh/GrDirectContextPriv.h", + "$_src/gpu/ganesh/GrDistanceFieldGenFromVector.cpp", + "$_src/gpu/ganesh/GrDistanceFieldGenFromVector.h", + "$_src/gpu/ganesh/GrDrawIndirectCommand.h", + "$_src/gpu/ganesh/GrDrawOpAtlas.cpp", + "$_src/gpu/ganesh/GrDrawOpAtlas.h", + "$_src/gpu/ganesh/GrDrawingManager.cpp", + "$_src/gpu/ganesh/GrDrawingManager.h", + "$_src/gpu/ganesh/GrDriverBugWorkarounds.cpp", + "$_src/gpu/ganesh/GrDstProxyView.h", + "$_src/gpu/ganesh/GrDynamicAtlas.cpp", + "$_src/gpu/ganesh/GrDynamicAtlas.h", + "$_src/gpu/ganesh/GrEagerVertexAllocator.cpp", + "$_src/gpu/ganesh/GrEagerVertexAllocator.h", + "$_src/gpu/ganesh/GrFinishCallbacks.cpp", + "$_src/gpu/ganesh/GrFinishCallbacks.h", + "$_src/gpu/ganesh/GrFixedClip.cpp", + "$_src/gpu/ganesh/GrFixedClip.h", + "$_src/gpu/ganesh/GrFragmentProcessor.cpp", + "$_src/gpu/ganesh/GrFragmentProcessor.h", + "$_src/gpu/ganesh/GrGeometryProcessor.cpp", + "$_src/gpu/ganesh/GrGeometryProcessor.h", + "$_src/gpu/ganesh/GrGlyph.h", + "$_src/gpu/ganesh/GrGpu.cpp", + "$_src/gpu/ganesh/GrGpu.h", + "$_src/gpu/ganesh/GrGpuBuffer.cpp", + "$_src/gpu/ganesh/GrGpuBuffer.h", + "$_src/gpu/ganesh/GrGpuResource.cpp", + "$_src/gpu/ganesh/GrGpuResource.h", + "$_src/gpu/ganesh/GrGpuResourceCacheAccess.h", + "$_src/gpu/ganesh/GrGpuResourcePriv.h", + "$_src/gpu/ganesh/GrHashMapWithCache.h", + "$_src/gpu/ganesh/GrImageContext.cpp", + "$_src/gpu/ganesh/GrImageContextPriv.h", + "$_src/gpu/ganesh/GrImageInfo.cpp", + "$_src/gpu/ganesh/GrImageInfo.h", + "$_src/gpu/ganesh/GrManagedResource.cpp", + "$_src/gpu/ganesh/GrManagedResource.h", + "$_src/gpu/ganesh/GrMemoryPool.cpp", + "$_src/gpu/ganesh/GrMemoryPool.h", + "$_src/gpu/ganesh/GrMeshDrawTarget.cpp", + "$_src/gpu/ganesh/GrMeshDrawTarget.h", + "$_src/gpu/ganesh/GrNativeRect.h", + "$_src/gpu/ganesh/GrNonAtomicRef.h", + "$_src/gpu/ganesh/GrOnFlushResourceProvider.cpp", + "$_src/gpu/ganesh/GrOnFlushResourceProvider.h", + "$_src/gpu/ganesh/GrOpFlushState.cpp", + "$_src/gpu/ganesh/GrOpFlushState.h", + "$_src/gpu/ganesh/GrOpsRenderPass.cpp", + "$_src/gpu/ganesh/GrOpsRenderPass.h", + "$_src/gpu/ganesh/GrOpsTypes.h", + "$_src/gpu/ganesh/GrPaint.cpp", + "$_src/gpu/ganesh/GrPaint.h", + "$_src/gpu/ganesh/GrPersistentCacheUtils.cpp", + "$_src/gpu/ganesh/GrPersistentCacheUtils.h", + "$_src/gpu/ganesh/GrPipeline.cpp", + "$_src/gpu/ganesh/GrPipeline.h", + "$_src/gpu/ganesh/GrPixmap.h", + "$_src/gpu/ganesh/GrProcessor.cpp", + "$_src/gpu/ganesh/GrProcessor.h", + "$_src/gpu/ganesh/GrProcessorAnalysis.cpp", + "$_src/gpu/ganesh/GrProcessorAnalysis.h", + "$_src/gpu/ganesh/GrProcessorSet.cpp", + "$_src/gpu/ganesh/GrProcessorSet.h", + "$_src/gpu/ganesh/GrProcessorUnitTest.cpp", + "$_src/gpu/ganesh/GrProcessorUnitTest.h", + "$_src/gpu/ganesh/GrProgramDesc.cpp", + "$_src/gpu/ganesh/GrProgramDesc.h", + "$_src/gpu/ganesh/GrProgramInfo.cpp", + "$_src/gpu/ganesh/GrProgramInfo.h", + "$_src/gpu/ganesh/GrProxyProvider.cpp", + "$_src/gpu/ganesh/GrProxyProvider.h", + "$_src/gpu/ganesh/GrRecordingContext.cpp", + "$_src/gpu/ganesh/GrRecordingContextPriv.cpp", + "$_src/gpu/ganesh/GrRecordingContextPriv.h", + "$_src/gpu/ganesh/GrRectanizerPow2.cpp", + "$_src/gpu/ganesh/GrRectanizerPow2.h", + "$_src/gpu/ganesh/GrRectanizerSkyline.cpp", + "$_src/gpu/ganesh/GrRectanizerSkyline.h", + "$_src/gpu/ganesh/GrRectanizer_impl.h", + "$_src/gpu/ganesh/GrRefCnt.h", + "$_src/gpu/ganesh/GrRenderTarget.cpp", + "$_src/gpu/ganesh/GrRenderTarget.h", + "$_src/gpu/ganesh/GrRenderTargetProxy.cpp", + "$_src/gpu/ganesh/GrRenderTargetProxy.h", + "$_src/gpu/ganesh/GrRenderTask.cpp", + "$_src/gpu/ganesh/GrRenderTask.h", + "$_src/gpu/ganesh/GrRenderTaskCluster.cpp", + "$_src/gpu/ganesh/GrRenderTaskCluster.h", + "$_src/gpu/ganesh/GrResourceAllocator.cpp", + "$_src/gpu/ganesh/GrResourceAllocator.h", + "$_src/gpu/ganesh/GrResourceCache.cpp", + "$_src/gpu/ganesh/GrResourceCache.h", + "$_src/gpu/ganesh/GrResourceHandle.h", + "$_src/gpu/ganesh/GrResourceProvider.cpp", + "$_src/gpu/ganesh/GrResourceProvider.h", + "$_src/gpu/ganesh/GrResourceProviderPriv.h", + "$_src/gpu/ganesh/GrRingBuffer.cpp", + "$_src/gpu/ganesh/GrRingBuffer.h", + "$_src/gpu/ganesh/GrSPIRVUniformHandler.cpp", + "$_src/gpu/ganesh/GrSPIRVUniformHandler.h", + "$_src/gpu/ganesh/GrSPIRVVaryingHandler.cpp", + "$_src/gpu/ganesh/GrSPIRVVaryingHandler.h", + "$_src/gpu/ganesh/GrSWMaskHelper.cpp", + "$_src/gpu/ganesh/GrSWMaskHelper.h", + "$_src/gpu/ganesh/GrSamplerState.h", + "$_src/gpu/ganesh/GrScissorState.h", + "$_src/gpu/ganesh/GrSemaphore.h", + "$_src/gpu/ganesh/GrShaderCaps.cpp", + "$_src/gpu/ganesh/GrShaderCaps.h", + "$_src/gpu/ganesh/GrShaderVar.cpp", + "$_src/gpu/ganesh/GrShaderVar.h", + "$_src/gpu/ganesh/GrSimpleMesh.h", + "$_src/gpu/ganesh/GrStagingBufferManager.cpp", + "$_src/gpu/ganesh/GrStagingBufferManager.h", + "$_src/gpu/ganesh/GrStencilSettings.cpp", + "$_src/gpu/ganesh/GrStencilSettings.h", + "$_src/gpu/ganesh/GrStyle.cpp", + "$_src/gpu/ganesh/GrStyle.h", + "$_src/gpu/ganesh/GrSubRunAllocator.cpp", + "$_src/gpu/ganesh/GrSubRunAllocator.h", + "$_src/gpu/ganesh/GrSurface.cpp", + "$_src/gpu/ganesh/GrSurface.h", + "$_src/gpu/ganesh/GrSurfaceInfo.cpp", + "$_src/gpu/ganesh/GrSurfaceProxy.cpp", + "$_src/gpu/ganesh/GrSurfaceProxy.h", + "$_src/gpu/ganesh/GrSurfaceProxyPriv.h", + "$_src/gpu/ganesh/GrSurfaceProxyView.h", + "$_src/gpu/ganesh/GrTTopoSort.h", + "$_src/gpu/ganesh/GrTestUtils.cpp", + "$_src/gpu/ganesh/GrTestUtils.h", + "$_src/gpu/ganesh/GrTexture.cpp", + "$_src/gpu/ganesh/GrTexture.h", + "$_src/gpu/ganesh/GrTextureProxy.cpp", + "$_src/gpu/ganesh/GrTextureProxy.h", + "$_src/gpu/ganesh/GrTextureProxyCacheAccess.h", + "$_src/gpu/ganesh/GrTextureProxyPriv.h", + "$_src/gpu/ganesh/GrTextureRenderTargetProxy.cpp", + "$_src/gpu/ganesh/GrTextureRenderTargetProxy.h", + "$_src/gpu/ganesh/GrTextureResolveManager.h", + "$_src/gpu/ganesh/GrTextureResolveRenderTask.cpp", + "$_src/gpu/ganesh/GrTextureResolveRenderTask.h", + "$_src/gpu/ganesh/GrThreadSafeCache.cpp", + "$_src/gpu/ganesh/GrThreadSafeCache.h", + "$_src/gpu/ganesh/GrThreadSafePipelineBuilder.cpp", + "$_src/gpu/ganesh/GrThreadSafePipelineBuilder.h", + "$_src/gpu/ganesh/GrTracing.h", + "$_src/gpu/ganesh/GrTransferFromRenderTask.cpp", + "$_src/gpu/ganesh/GrTransferFromRenderTask.h", + "$_src/gpu/ganesh/GrUniformDataManager.cpp", + "$_src/gpu/ganesh/GrUniformDataManager.h", + "$_src/gpu/ganesh/GrUserStencilSettings.h", + "$_src/gpu/ganesh/GrUtil.cpp", + "$_src/gpu/ganesh/GrUtil.h", + "$_src/gpu/ganesh/GrVertexChunkArray.cpp", + "$_src/gpu/ganesh/GrVertexChunkArray.h", + "$_src/gpu/ganesh/GrVx.h", + "$_src/gpu/ganesh/GrWaitRenderTask.cpp", + "$_src/gpu/ganesh/GrWaitRenderTask.h", + "$_src/gpu/ganesh/GrWindowRectangles.h", + "$_src/gpu/ganesh/GrWindowRectsState.h", + "$_src/gpu/ganesh/GrWritePixelsRenderTask.cpp", + "$_src/gpu/ganesh/GrWritePixelsRenderTask.h", + "$_src/gpu/ganesh/GrXferProcessor.cpp", + "$_src/gpu/ganesh/GrXferProcessor.h", + "$_src/gpu/ganesh/GrYUVABackendTextures.cpp", + "$_src/gpu/ganesh/GrYUVATextureProxies.cpp", + "$_src/gpu/ganesh/GrYUVATextureProxies.h", + "$_src/gpu/ganesh/SurfaceContext.cpp", + "$_src/gpu/ganesh/SurfaceContext.h", + "$_src/gpu/ganesh/SurfaceFillContext.cpp", + "$_src/gpu/ganesh/SurfaceFillContext.h", # Ops - "$_src/gpu/effects/GrBezierEffect.cpp", - "$_src/gpu/effects/GrBezierEffect.h", - "$_src/gpu/effects/GrBicubicEffect.cpp", - "$_src/gpu/effects/GrBicubicEffect.h", - "$_src/gpu/effects/GrBitmapTextGeoProc.cpp", - "$_src/gpu/effects/GrBitmapTextGeoProc.h", - "$_src/gpu/effects/GrBlendFragmentProcessor.cpp", - "$_src/gpu/effects/GrBlendFragmentProcessor.h", - "$_src/gpu/effects/GrConvexPolyEffect.cpp", - "$_src/gpu/effects/GrConvexPolyEffect.h", - "$_src/gpu/effects/GrCoverageSetOpXP.cpp", - "$_src/gpu/effects/GrCoverageSetOpXP.h", - "$_src/gpu/effects/GrCustomXfermode.cpp", - "$_src/gpu/effects/GrCustomXfermode.h", - "$_src/gpu/effects/GrDisableColorXP.cpp", - "$_src/gpu/effects/GrDisableColorXP.h", - "$_src/gpu/effects/GrDistanceFieldGeoProc.cpp", - "$_src/gpu/effects/GrDistanceFieldGeoProc.h", - "$_src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp", - "$_src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h", - "$_src/gpu/effects/GrMatrixConvolutionEffect.cpp", - "$_src/gpu/effects/GrMatrixConvolutionEffect.h", - "$_src/gpu/effects/GrMatrixEffect.cpp", - "$_src/gpu/effects/GrMatrixEffect.h", - "$_src/gpu/effects/GrModulateAtlasCoverageEffect.cpp", - "$_src/gpu/effects/GrModulateAtlasCoverageEffect.h", - "$_src/gpu/effects/GrOvalEffect.cpp", - "$_src/gpu/effects/GrOvalEffect.h", - "$_src/gpu/effects/GrPorterDuffXferProcessor.cpp", - "$_src/gpu/effects/GrPorterDuffXferProcessor.h", - "$_src/gpu/effects/GrRRectEffect.cpp", - "$_src/gpu/effects/GrRRectEffect.h", - "$_src/gpu/effects/GrShadowGeoProc.cpp", - "$_src/gpu/effects/GrShadowGeoProc.h", - "$_src/gpu/effects/GrSkSLFP.cpp", - "$_src/gpu/effects/GrSkSLFP.h", - "$_src/gpu/effects/GrTextureEffect.cpp", - "$_src/gpu/effects/GrTextureEffect.h", - "$_src/gpu/effects/GrYUVtoRGBEffect.cpp", - "$_src/gpu/effects/GrYUVtoRGBEffect.h", - "$_src/gpu/geometry/GrAAConvexTessellator.cpp", - "$_src/gpu/geometry/GrAAConvexTessellator.h", - "$_src/gpu/geometry/GrAATriangulator.cpp", - "$_src/gpu/geometry/GrAATriangulator.h", - "$_src/gpu/geometry/GrInnerFanTriangulator.h", - "$_src/gpu/geometry/GrPathUtils.cpp", - "$_src/gpu/geometry/GrPathUtils.h", - "$_src/gpu/geometry/GrQuad.cpp", - "$_src/gpu/geometry/GrQuad.h", - "$_src/gpu/geometry/GrQuadBuffer.h", - "$_src/gpu/geometry/GrQuadUtils.cpp", - "$_src/gpu/geometry/GrQuadUtils.h", - "$_src/gpu/geometry/GrRect.h", - "$_src/gpu/geometry/GrShape.cpp", - "$_src/gpu/geometry/GrShape.h", - "$_src/gpu/geometry/GrStyledShape.cpp", - "$_src/gpu/geometry/GrStyledShape.h", - "$_src/gpu/geometry/GrTriangulator.cpp", - "$_src/gpu/geometry/GrTriangulator.h", + "$_src/gpu/ganesh/effects/GrBezierEffect.cpp", + "$_src/gpu/ganesh/effects/GrBezierEffect.h", + "$_src/gpu/ganesh/effects/GrBicubicEffect.cpp", + "$_src/gpu/ganesh/effects/GrBicubicEffect.h", + "$_src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp", + "$_src/gpu/ganesh/effects/GrBitmapTextGeoProc.h", + "$_src/gpu/ganesh/effects/GrBlendFragmentProcessor.cpp", + "$_src/gpu/ganesh/effects/GrBlendFragmentProcessor.h", + "$_src/gpu/ganesh/effects/GrConvexPolyEffect.cpp", + "$_src/gpu/ganesh/effects/GrConvexPolyEffect.h", + "$_src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp", + "$_src/gpu/ganesh/effects/GrCoverageSetOpXP.h", + "$_src/gpu/ganesh/effects/GrCustomXfermode.cpp", + "$_src/gpu/ganesh/effects/GrCustomXfermode.h", + "$_src/gpu/ganesh/effects/GrDisableColorXP.cpp", + "$_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/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", + "$_src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.h", + "$_src/gpu/ganesh/effects/GrOvalEffect.cpp", + "$_src/gpu/ganesh/effects/GrOvalEffect.h", + "$_src/gpu/ganesh/effects/GrPorterDuffXferProcessor.cpp", + "$_src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h", + "$_src/gpu/ganesh/effects/GrRRectEffect.cpp", + "$_src/gpu/ganesh/effects/GrRRectEffect.h", + "$_src/gpu/ganesh/effects/GrShadowGeoProc.cpp", + "$_src/gpu/ganesh/effects/GrShadowGeoProc.h", + "$_src/gpu/ganesh/effects/GrSkSLFP.cpp", + "$_src/gpu/ganesh/effects/GrSkSLFP.h", + "$_src/gpu/ganesh/effects/GrTextureEffect.cpp", + "$_src/gpu/ganesh/effects/GrTextureEffect.h", + "$_src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp", + "$_src/gpu/ganesh/effects/GrYUVtoRGBEffect.h", + "$_src/gpu/ganesh/geometry/GrAAConvexTessellator.cpp", + "$_src/gpu/ganesh/geometry/GrAAConvexTessellator.h", + "$_src/gpu/ganesh/geometry/GrAATriangulator.cpp", + "$_src/gpu/ganesh/geometry/GrAATriangulator.h", + "$_src/gpu/ganesh/geometry/GrInnerFanTriangulator.h", + "$_src/gpu/ganesh/geometry/GrPathUtils.cpp", + "$_src/gpu/ganesh/geometry/GrPathUtils.h", + "$_src/gpu/ganesh/geometry/GrQuad.cpp", + "$_src/gpu/ganesh/geometry/GrQuad.h", + "$_src/gpu/ganesh/geometry/GrQuadBuffer.h", + "$_src/gpu/ganesh/geometry/GrQuadUtils.cpp", + "$_src/gpu/ganesh/geometry/GrQuadUtils.h", + "$_src/gpu/ganesh/geometry/GrRect.h", + "$_src/gpu/ganesh/geometry/GrShape.cpp", + "$_src/gpu/ganesh/geometry/GrShape.h", + "$_src/gpu/ganesh/geometry/GrStyledShape.cpp", + "$_src/gpu/ganesh/geometry/GrStyledShape.h", + "$_src/gpu/ganesh/geometry/GrTriangulator.cpp", + "$_src/gpu/ganesh/geometry/GrTriangulator.h", # gradients - "$_src/gpu/gradients/GrGradientBitmapCache.cpp", - "$_src/gpu/gradients/GrGradientBitmapCache.h", - "$_src/gpu/gradients/GrGradientShader.cpp", - "$_src/gpu/gradients/GrGradientShader.h", - - # tessellate - "$_src/gpu/tessellate/AffineMatrix.h", - "$_src/gpu/tessellate/PatchWriter.cpp", - "$_src/gpu/tessellate/PatchWriter.h", - "$_src/gpu/tessellate/PathCurveTessellator.cpp", - "$_src/gpu/tessellate/PathCurveTessellator.h", - "$_src/gpu/tessellate/PathTessellator.h", - "$_src/gpu/tessellate/PathWedgeTessellator.cpp", - "$_src/gpu/tessellate/PathWedgeTessellator.h", - "$_src/gpu/tessellate/StrokeFixedCountTessellator.cpp", - "$_src/gpu/tessellate/StrokeFixedCountTessellator.h", - "$_src/gpu/tessellate/StrokeHardwareTessellator.cpp", - "$_src/gpu/tessellate/StrokeHardwareTessellator.h", - "$_src/gpu/tessellate/StrokeIterator.h", - "$_src/gpu/tessellate/StrokeTessellator.h", + "$_src/gpu/ganesh/gradients/GrGradientBitmapCache.cpp", + "$_src/gpu/ganesh/gradients/GrGradientBitmapCache.h", + "$_src/gpu/ganesh/gradients/GrGradientShader.cpp", + "$_src/gpu/ganesh/gradients/GrGradientShader.h", # tessellate/shaders - "$_src/gpu/tessellate/shaders/GrPathTessellationShader.cpp", - "$_src/gpu/tessellate/shaders/GrPathTessellationShader.h", - "$_src/gpu/tessellate/shaders/GrPathTessellationShader_Hardware.cpp", - "$_src/gpu/tessellate/shaders/GrPathTessellationShader_MiddleOut.cpp", - "$_src/gpu/tessellate/shaders/GrStrokeTessellationShader.cpp", - "$_src/gpu/tessellate/shaders/GrStrokeTessellationShader.h", - "$_src/gpu/tessellate/shaders/GrStrokeTessellationShader_HardwareImpl.cpp", - "$_src/gpu/tessellate/shaders/GrStrokeTessellationShader_InstancedImpl.cpp", - "$_src/gpu/tessellate/shaders/GrTessellationShader.cpp", - "$_src/gpu/tessellate/shaders/GrTessellationShader.h", + "$_src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.cpp", + "$_src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.h", + "$_src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader_Hardware.cpp", + "$_src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader_MiddleOut.cpp", + "$_src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.cpp", + "$_src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.h", + "$_src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader_HardwareImpl.cpp", + "$_src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader_InstancedImpl.cpp", + "$_src/gpu/ganesh/tessellate/shaders/GrTessellationShader.cpp", + "$_src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h", # text - "$_src/gpu/text/GrAtlasManager.cpp", - "$_src/gpu/text/GrAtlasManager.h", - "$_src/gpu/text/GrDistanceFieldAdjustTable.cpp", - "$_src/gpu/text/GrDistanceFieldAdjustTable.h", - "$_src/gpu/text/GrGlyphVector.cpp", - "$_src/gpu/text/GrGlyphVector.h", - "$_src/gpu/text/GrSDFMaskFilter.cpp", - "$_src/gpu/text/GrSDFMaskFilter.h", - "$_src/gpu/text/GrSDFTControl.cpp", - "$_src/gpu/text/GrSDFTControl.h", - "$_src/gpu/text/GrSlug.cpp", - "$_src/gpu/text/GrStrikeCache.cpp", - "$_src/gpu/text/GrStrikeCache.h", - "$_src/gpu/text/GrTextBlob.cpp", - "$_src/gpu/text/GrTextBlob.h", - "$_src/gpu/text/GrTextBlobRedrawCoordinator.cpp", - "$_src/gpu/text/GrTextBlobRedrawCoordinator.h", + "$_src/gpu/ganesh/text/GrAtlasManager.cpp", + "$_src/gpu/ganesh/text/GrAtlasManager.h", + "$_src/gpu/ganesh/text/GrDistanceFieldAdjustTable.cpp", + "$_src/gpu/ganesh/text/GrDistanceFieldAdjustTable.h", + "$_src/gpu/ganesh/text/GrGlyphVector.cpp", + "$_src/gpu/ganesh/text/GrGlyphVector.h", + "$_src/gpu/ganesh/text/GrSDFMaskFilter.cpp", + "$_src/gpu/ganesh/text/GrSDFMaskFilter.h", + "$_src/gpu/ganesh/text/GrSDFTControl.cpp", + "$_src/gpu/ganesh/text/GrSDFTControl.h", + "$_src/gpu/ganesh/text/GrSlug.cpp", + "$_src/gpu/ganesh/text/GrStrikeCache.cpp", + "$_src/gpu/ganesh/text/GrStrikeCache.h", + "$_src/gpu/ganesh/text/GrTextBlob.cpp", + "$_src/gpu/ganesh/text/GrTextBlob.h", + "$_src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.cpp", + "$_src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h", # GLSL - "$_src/gpu/glsl/GrGLSL.cpp", - "$_src/gpu/glsl/GrGLSL.h", - "$_src/gpu/glsl/GrGLSLBlend.cpp", - "$_src/gpu/glsl/GrGLSLBlend.h", - "$_src/gpu/glsl/GrGLSLColorSpaceXformHelper.h", - "$_src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp", - "$_src/gpu/glsl/GrGLSLFragmentShaderBuilder.h", - "$_src/gpu/glsl/GrGLSLProgramBuilder.cpp", - "$_src/gpu/glsl/GrGLSLProgramBuilder.h", - "$_src/gpu/glsl/GrGLSLProgramDataManager.cpp", - "$_src/gpu/glsl/GrGLSLProgramDataManager.h", - "$_src/gpu/glsl/GrGLSLShaderBuilder.cpp", - "$_src/gpu/glsl/GrGLSLShaderBuilder.h", - "$_src/gpu/glsl/GrGLSLUniformHandler.cpp", - "$_src/gpu/glsl/GrGLSLUniformHandler.h", - "$_src/gpu/glsl/GrGLSLVarying.cpp", - "$_src/gpu/glsl/GrGLSLVarying.h", - "$_src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp", - "$_src/gpu/glsl/GrGLSLVertexGeoBuilder.h", + "$_src/gpu/ganesh/glsl/GrGLSL.cpp", + "$_src/gpu/ganesh/glsl/GrGLSL.h", + "$_src/gpu/ganesh/glsl/GrGLSLBlend.cpp", + "$_src/gpu/ganesh/glsl/GrGLSLBlend.h", + "$_src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h", + "$_src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.cpp", + "$_src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h", + "$_src/gpu/ganesh/glsl/GrGLSLProgramBuilder.cpp", + "$_src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h", + "$_src/gpu/ganesh/glsl/GrGLSLProgramDataManager.cpp", + "$_src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h", + "$_src/gpu/ganesh/glsl/GrGLSLShaderBuilder.cpp", + "$_src/gpu/ganesh/glsl/GrGLSLShaderBuilder.h", + "$_src/gpu/ganesh/glsl/GrGLSLUniformHandler.cpp", + "$_src/gpu/ganesh/glsl/GrGLSLUniformHandler.h", + "$_src/gpu/ganesh/glsl/GrGLSLVarying.cpp", + "$_src/gpu/ganesh/glsl/GrGLSLVarying.h", + "$_src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.cpp", + "$_src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h", # Mock "$_include/gpu/mock/GrMockTypes.h", - "$_include/private/GrMockTypesPriv.h", - "$_src/gpu/mock/GrMockAttachment.h", - "$_src/gpu/mock/GrMockBuffer.h", - "$_src/gpu/mock/GrMockCaps.cpp", - "$_src/gpu/mock/GrMockCaps.h", - "$_src/gpu/mock/GrMockGpu.cpp", - "$_src/gpu/mock/GrMockGpu.h", - "$_src/gpu/mock/GrMockOpsRenderPass.h", - "$_src/gpu/mock/GrMockRenderTask.h", - "$_src/gpu/mock/GrMockSurfaceProxy.h", - "$_src/gpu/mock/GrMockTexture.h", - "$_src/gpu/mock/GrMockTypes.cpp", + "$_include/private/gpu/ganesh/GrMockTypesPriv.h", + "$_src/gpu/ganesh/mock/GrMockAttachment.h", + "$_src/gpu/ganesh/mock/GrMockBuffer.h", + "$_src/gpu/ganesh/mock/GrMockCaps.cpp", + "$_src/gpu/ganesh/mock/GrMockCaps.h", + "$_src/gpu/ganesh/mock/GrMockGpu.cpp", + "$_src/gpu/ganesh/mock/GrMockGpu.h", + "$_src/gpu/ganesh/mock/GrMockOpsRenderPass.h", + "$_src/gpu/ganesh/mock/GrMockRenderTask.h", + "$_src/gpu/ganesh/mock/GrMockSurfaceProxy.h", + "$_src/gpu/ganesh/mock/GrMockTexture.h", + "$_src/gpu/ganesh/mock/GrMockTypes.cpp", # Sk files - "$_src/gpu/BaseDevice.cpp", - "$_src/gpu/BaseDevice.h", - "$_src/gpu/SkGr.cpp", - "$_src/gpu/SkGr.h", + "$_src/gpu/ganesh/BaseDevice.cpp", + "$_src/gpu/ganesh/BaseDevice.h", + "$_src/gpu/ganesh/SkGr.cpp", + "$_src/gpu/ganesh/SkGr.h", "$_src/image/SkImage_Gpu.cpp", "$_src/image/SkImage_Gpu.h", "$_src/image/SkImage_GpuBase.cpp", @@ -422,165 +407,171 @@ skia_gl_gpu_sources = [ "$_include/gpu/gl/GrGLFunctions.h", "$_include/gpu/gl/GrGLInterface.h", "$_include/gpu/gl/GrGLTypes.h", - "$_src/gpu/gl/GrGLAssembleGLESInterfaceAutogen.cpp", - "$_src/gpu/gl/GrGLAssembleGLInterfaceAutogen.cpp", - "$_src/gpu/gl/GrGLAssembleHelpers.cpp", - "$_src/gpu/gl/GrGLAssembleInterface.cpp", - "$_src/gpu/gl/GrGLAssembleWebGLInterfaceAutogen.cpp", - "$_src/gpu/gl/GrGLAttachment.cpp", - "$_src/gpu/gl/GrGLAttachment.h", - "$_src/gpu/gl/GrGLBuffer.cpp", - "$_src/gpu/gl/GrGLBuffer.h", - "$_src/gpu/gl/GrGLCaps.cpp", - "$_src/gpu/gl/GrGLCaps.h", - "$_src/gpu/gl/GrGLContext.cpp", - "$_src/gpu/gl/GrGLContext.h", + "$_src/gpu/ganesh/gl/GrGLAssembleGLESInterfaceAutogen.cpp", + "$_src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.cpp", + "$_src/gpu/ganesh/gl/GrGLAssembleHelpers.cpp", + "$_src/gpu/ganesh/gl/GrGLAssembleInterface.cpp", + "$_src/gpu/ganesh/gl/GrGLAssembleWebGLInterfaceAutogen.cpp", + "$_src/gpu/ganesh/gl/GrGLAttachment.cpp", + "$_src/gpu/ganesh/gl/GrGLAttachment.h", + "$_src/gpu/ganesh/gl/GrGLBuffer.cpp", + "$_src/gpu/ganesh/gl/GrGLBuffer.h", + "$_src/gpu/ganesh/gl/GrGLCaps.cpp", + "$_src/gpu/ganesh/gl/GrGLCaps.h", + "$_src/gpu/ganesh/gl/GrGLContext.cpp", + "$_src/gpu/ganesh/gl/GrGLContext.h", + "$_src/gpu/ganesh/gl/GrGLDefines_impl.h", + "$_src/gpu/ganesh/gl/GrGLExtensions.cpp", + "$_src/gpu/ganesh/gl/GrGLGLSL.cpp", + "$_src/gpu/ganesh/gl/GrGLGLSL.h", + "$_src/gpu/ganesh/gl/GrGLGpu.cpp", + "$_src/gpu/ganesh/gl/GrGLGpu.h", + "$_src/gpu/ganesh/gl/GrGLGpuProgramCache.cpp", + "$_src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp", + "$_src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp", + "$_src/gpu/ganesh/gl/GrGLOpsRenderPass.h", + "$_src/gpu/ganesh/gl/GrGLProgram.cpp", + "$_src/gpu/ganesh/gl/GrGLProgram.h", + "$_src/gpu/ganesh/gl/GrGLProgramDataManager.cpp", + "$_src/gpu/ganesh/gl/GrGLProgramDataManager.h", + "$_src/gpu/ganesh/gl/GrGLRenderTarget.cpp", + "$_src/gpu/ganesh/gl/GrGLRenderTarget.h", + "$_src/gpu/ganesh/gl/GrGLSemaphore.cpp", + "$_src/gpu/ganesh/gl/GrGLSemaphore.h", + "$_src/gpu/ganesh/gl/GrGLTexture.cpp", + "$_src/gpu/ganesh/gl/GrGLTexture.h", + "$_src/gpu/ganesh/gl/GrGLTextureRenderTarget.cpp", + "$_src/gpu/ganesh/gl/GrGLTextureRenderTarget.h", + "$_src/gpu/ganesh/gl/GrGLTypesPriv.cpp", + "$_src/gpu/ganesh/gl/GrGLUniformHandler.cpp", + "$_src/gpu/ganesh/gl/GrGLUniformHandler.h", + "$_src/gpu/ganesh/gl/GrGLUtil.cpp", + "$_src/gpu/ganesh/gl/GrGLUtil.h", + "$_src/gpu/ganesh/gl/GrGLVaryingHandler.h", + "$_src/gpu/ganesh/gl/GrGLVertexArray.cpp", + "$_src/gpu/ganesh/gl/GrGLVertexArray.h", "$_src/gpu/gl/GrGLDefines.h", - "$_src/gpu/gl/GrGLExtensions.cpp", - "$_src/gpu/gl/GrGLGLSL.cpp", - "$_src/gpu/gl/GrGLGLSL.h", - "$_src/gpu/gl/GrGLGpu.cpp", - "$_src/gpu/gl/GrGLGpu.h", - "$_src/gpu/gl/GrGLGpuProgramCache.cpp", - "$_src/gpu/gl/GrGLInterfaceAutogen.cpp", - "$_src/gpu/gl/GrGLOpsRenderPass.cpp", - "$_src/gpu/gl/GrGLOpsRenderPass.h", - "$_src/gpu/gl/GrGLProgram.cpp", - "$_src/gpu/gl/GrGLProgram.h", - "$_src/gpu/gl/GrGLProgramDataManager.cpp", - "$_src/gpu/gl/GrGLProgramDataManager.h", - "$_src/gpu/gl/GrGLRenderTarget.cpp", - "$_src/gpu/gl/GrGLRenderTarget.h", - "$_src/gpu/gl/GrGLSemaphore.cpp", - "$_src/gpu/gl/GrGLSemaphore.h", - "$_src/gpu/gl/GrGLTexture.cpp", - "$_src/gpu/gl/GrGLTexture.h", - "$_src/gpu/gl/GrGLTextureRenderTarget.cpp", - "$_src/gpu/gl/GrGLTextureRenderTarget.h", - "$_src/gpu/gl/GrGLTypesPriv.cpp", - "$_src/gpu/gl/GrGLUniformHandler.cpp", - "$_src/gpu/gl/GrGLUniformHandler.h", - "$_src/gpu/gl/GrGLUtil.cpp", - "$_src/gpu/gl/GrGLUtil.h", - "$_src/gpu/gl/GrGLVaryingHandler.h", - "$_src/gpu/gl/GrGLVertexArray.cpp", - "$_src/gpu/gl/GrGLVertexArray.h", # Files for building GLSL shaders - "$_src/gpu/gl/builders/GrGLProgramBuilder.cpp", - "$_src/gpu/gl/builders/GrGLProgramBuilder.h", - "$_src/gpu/gl/builders/GrGLShaderStringBuilder.cpp", - "$_src/gpu/gl/builders/GrGLShaderStringBuilder.h", + "$_src/gpu/ganesh/gl/builders/GrGLProgramBuilder.cpp", + "$_src/gpu/ganesh/gl/builders/GrGLProgramBuilder.h", + "$_src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp", + "$_src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h", ] -skia_null_gpu_sources = [ "$_src/gpu/gl/GrGLMakeNativeInterface_none.cpp" ] +skia_null_gpu_sources = + [ "$_src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp" ] skia_skgpu_v1_sources = [ - "$_src/gpu/GrAuditTrail.cpp", - "$_src/gpu/GrBlurUtils.cpp", - "$_src/gpu/GrBlurUtils.h", - "$_src/gpu/GrDrawOpTest.cpp", - "$_src/gpu/GrDrawOpTest.h", + "$_src/gpu/ganesh/GrAuditTrail.cpp", + "$_src/gpu/ganesh/GrBlurUtils.cpp", + "$_src/gpu/ganesh/GrBlurUtils.h", + "$_src/gpu/ganesh/GrDrawOpTest.cpp", + "$_src/gpu/ganesh/GrDrawOpTest.h", # Ops - "$_src/gpu/ops/AAConvexPathRenderer.cpp", - "$_src/gpu/ops/AAConvexPathRenderer.h", - "$_src/gpu/ops/AAHairLinePathRenderer.cpp", - "$_src/gpu/ops/AAHairLinePathRenderer.h", - "$_src/gpu/ops/AALinearizingConvexPathRenderer.cpp", - "$_src/gpu/ops/AALinearizingConvexPathRenderer.h", - "$_src/gpu/ops/AtlasInstancedHelper.cpp", - "$_src/gpu/ops/AtlasInstancedHelper.h", - "$_src/gpu/ops/AtlasPathRenderer.cpp", - "$_src/gpu/ops/AtlasPathRenderer.h", - "$_src/gpu/ops/AtlasRenderTask.cpp", - "$_src/gpu/ops/AtlasRenderTask.h", - "$_src/gpu/ops/AtlasTextOp.cpp", - "$_src/gpu/ops/AtlasTextOp.h", - "$_src/gpu/ops/ClearOp.cpp", - "$_src/gpu/ops/ClearOp.h", - "$_src/gpu/ops/DashLinePathRenderer.cpp", - "$_src/gpu/ops/DashLinePathRenderer.h", - "$_src/gpu/ops/DashOp.cpp", - "$_src/gpu/ops/DashOp.h", - "$_src/gpu/ops/DefaultPathRenderer.cpp", - "$_src/gpu/ops/DefaultPathRenderer.h", - "$_src/gpu/ops/DrawAtlasOp.cpp", - "$_src/gpu/ops/DrawAtlasOp.h", - "$_src/gpu/ops/DrawAtlasPathOp.cpp", - "$_src/gpu/ops/DrawAtlasPathOp.h", - "$_src/gpu/ops/DrawCustomMeshOp.cpp", - "$_src/gpu/ops/DrawCustomMeshOp.h", - "$_src/gpu/ops/DrawableOp.cpp", - "$_src/gpu/ops/DrawableOp.h", - "$_src/gpu/ops/FillPathFlags.h", - "$_src/gpu/ops/FillRRectOp.cpp", - "$_src/gpu/ops/FillRRectOp.h", - "$_src/gpu/ops/FillRectOp.cpp", - "$_src/gpu/ops/FillRectOp.h", - "$_src/gpu/ops/GrDrawOp.h", - "$_src/gpu/ops/GrMeshDrawOp.cpp", - "$_src/gpu/ops/GrMeshDrawOp.h", - "$_src/gpu/ops/GrOp.cpp", - "$_src/gpu/ops/GrOp.h", - "$_src/gpu/ops/GrOvalOpFactory.cpp", - "$_src/gpu/ops/GrOvalOpFactory.h", - "$_src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp", - "$_src/gpu/ops/GrSimpleMeshDrawOpHelper.h", - "$_src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp", - "$_src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h", - "$_src/gpu/ops/LatticeOp.cpp", - "$_src/gpu/ops/LatticeOp.h", - "$_src/gpu/ops/OpsTask.cpp", - "$_src/gpu/ops/OpsTask.h", - "$_src/gpu/ops/PathInnerTriangulateOp.cpp", - "$_src/gpu/ops/PathInnerTriangulateOp.h", - "$_src/gpu/ops/PathStencilCoverOp.cpp", - "$_src/gpu/ops/PathStencilCoverOp.h", - "$_src/gpu/ops/PathTessellateOp.cpp", - "$_src/gpu/ops/PathTessellateOp.h", - "$_src/gpu/ops/QuadPerEdgeAA.cpp", - "$_src/gpu/ops/QuadPerEdgeAA.h", - "$_src/gpu/ops/RegionOp.cpp", - "$_src/gpu/ops/RegionOp.h", - "$_src/gpu/ops/ShadowRRectOp.cpp", - "$_src/gpu/ops/ShadowRRectOp.h", - "$_src/gpu/ops/SmallPathAtlasMgr.cpp", - "$_src/gpu/ops/SmallPathAtlasMgr.h", - "$_src/gpu/ops/SmallPathRenderer.cpp", - "$_src/gpu/ops/SmallPathRenderer.h", - "$_src/gpu/ops/SmallPathShapeData.cpp", - "$_src/gpu/ops/SmallPathShapeData.h", - "$_src/gpu/ops/SoftwarePathRenderer.cpp", - "$_src/gpu/ops/SoftwarePathRenderer.h", - "$_src/gpu/ops/StrokeRectOp.cpp", - "$_src/gpu/ops/StrokeRectOp.h", - "$_src/gpu/ops/StrokeTessellateOp.cpp", - "$_src/gpu/ops/StrokeTessellateOp.h", - "$_src/gpu/ops/TessellationPathRenderer.cpp", - "$_src/gpu/ops/TessellationPathRenderer.h", - "$_src/gpu/ops/TextureOp.cpp", - "$_src/gpu/ops/TextureOp.h", - "$_src/gpu/ops/TriangulatingPathRenderer.cpp", - "$_src/gpu/ops/TriangulatingPathRenderer.h", + "$_src/gpu/ganesh/ops/AAConvexPathRenderer.cpp", + "$_src/gpu/ganesh/ops/AAConvexPathRenderer.h", + "$_src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp", + "$_src/gpu/ganesh/ops/AAHairLinePathRenderer.h", + "$_src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.cpp", + "$_src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.h", + "$_src/gpu/ganesh/ops/AtlasInstancedHelper.cpp", + "$_src/gpu/ganesh/ops/AtlasInstancedHelper.h", + "$_src/gpu/ganesh/ops/AtlasPathRenderer.cpp", + "$_src/gpu/ganesh/ops/AtlasPathRenderer.h", + "$_src/gpu/ganesh/ops/AtlasRenderTask.cpp", + "$_src/gpu/ganesh/ops/AtlasRenderTask.h", + "$_src/gpu/ganesh/ops/AtlasTextOp.cpp", + "$_src/gpu/ganesh/ops/AtlasTextOp.h", + "$_src/gpu/ganesh/ops/ClearOp.cpp", + "$_src/gpu/ganesh/ops/ClearOp.h", + "$_src/gpu/ganesh/ops/DashLinePathRenderer.cpp", + "$_src/gpu/ganesh/ops/DashLinePathRenderer.h", + "$_src/gpu/ganesh/ops/DashOp.cpp", + "$_src/gpu/ganesh/ops/DashOp.h", + "$_src/gpu/ganesh/ops/DefaultPathRenderer.cpp", + "$_src/gpu/ganesh/ops/DefaultPathRenderer.h", + "$_src/gpu/ganesh/ops/DrawAtlasOp.cpp", + "$_src/gpu/ganesh/ops/DrawAtlasOp.h", + "$_src/gpu/ganesh/ops/DrawAtlasPathOp.cpp", + "$_src/gpu/ganesh/ops/DrawAtlasPathOp.h", + "$_src/gpu/ganesh/ops/DrawCustomMeshOp.cpp", + "$_src/gpu/ganesh/ops/DrawCustomMeshOp.h", + "$_src/gpu/ganesh/ops/DrawableOp.cpp", + "$_src/gpu/ganesh/ops/DrawableOp.h", + "$_src/gpu/ganesh/ops/FillPathFlags.h", + "$_src/gpu/ganesh/ops/FillRRectOp.cpp", + "$_src/gpu/ganesh/ops/FillRRectOp.h", + "$_src/gpu/ganesh/ops/FillRectOp.cpp", + "$_src/gpu/ganesh/ops/FillRectOp.h", + "$_src/gpu/ganesh/ops/GrDrawOp.h", + "$_src/gpu/ganesh/ops/GrMeshDrawOp.cpp", + "$_src/gpu/ganesh/ops/GrMeshDrawOp.h", + "$_src/gpu/ganesh/ops/GrOp.cpp", + "$_src/gpu/ganesh/ops/GrOp.h", + "$_src/gpu/ganesh/ops/GrOvalOpFactory.cpp", + "$_src/gpu/ganesh/ops/GrOvalOpFactory.h", + "$_src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.cpp", + "$_src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h", + "$_src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp", + "$_src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h", + "$_src/gpu/ganesh/ops/LatticeOp.cpp", + "$_src/gpu/ganesh/ops/LatticeOp.h", + "$_src/gpu/ganesh/ops/OpsTask.cpp", + "$_src/gpu/ganesh/ops/OpsTask.h", + "$_src/gpu/ganesh/ops/PathInnerTriangulateOp.cpp", + "$_src/gpu/ganesh/ops/PathInnerTriangulateOp.h", + "$_src/gpu/ganesh/ops/PathStencilCoverOp.cpp", + "$_src/gpu/ganesh/ops/PathStencilCoverOp.h", + "$_src/gpu/ganesh/ops/PathTessellateOp.cpp", + "$_src/gpu/ganesh/ops/PathTessellateOp.h", + "$_src/gpu/ganesh/ops/PathTessellator.cpp", + "$_src/gpu/ganesh/ops/PathTessellator.h", + "$_src/gpu/ganesh/ops/QuadPerEdgeAA.cpp", + "$_src/gpu/ganesh/ops/QuadPerEdgeAA.h", + "$_src/gpu/ganesh/ops/RegionOp.cpp", + "$_src/gpu/ganesh/ops/RegionOp.h", + "$_src/gpu/ganesh/ops/ShadowRRectOp.cpp", + "$_src/gpu/ganesh/ops/ShadowRRectOp.h", + "$_src/gpu/ganesh/ops/SmallPathAtlasMgr.cpp", + "$_src/gpu/ganesh/ops/SmallPathAtlasMgr.h", + "$_src/gpu/ganesh/ops/SmallPathRenderer.cpp", + "$_src/gpu/ganesh/ops/SmallPathRenderer.h", + "$_src/gpu/ganesh/ops/SmallPathShapeData.cpp", + "$_src/gpu/ganesh/ops/SmallPathShapeData.h", + "$_src/gpu/ganesh/ops/SoftwarePathRenderer.cpp", + "$_src/gpu/ganesh/ops/SoftwarePathRenderer.h", + "$_src/gpu/ganesh/ops/StrokeRectOp.cpp", + "$_src/gpu/ganesh/ops/StrokeRectOp.h", + "$_src/gpu/ganesh/ops/StrokeTessellateOp.cpp", + "$_src/gpu/ganesh/ops/StrokeTessellateOp.h", + "$_src/gpu/ganesh/ops/StrokeTessellator.cpp", + "$_src/gpu/ganesh/ops/StrokeTessellator.h", + "$_src/gpu/ganesh/ops/TessellationPathRenderer.cpp", + "$_src/gpu/ganesh/ops/TessellationPathRenderer.h", + "$_src/gpu/ganesh/ops/TextureOp.cpp", + "$_src/gpu/ganesh/ops/TextureOp.h", + "$_src/gpu/ganesh/ops/TriangulatingPathRenderer.cpp", + "$_src/gpu/ganesh/ops/TriangulatingPathRenderer.h", # v1 - "$_src/gpu/v1/ClipStack.cpp", - "$_src/gpu/v1/ClipStack.h", - "$_src/gpu/v1/Device.cpp", - "$_src/gpu/v1/Device_drawTexture.cpp", - "$_src/gpu/v1/Device_v1.h", - "$_src/gpu/v1/PathRenderer.cpp", - "$_src/gpu/v1/PathRenderer.h", - "$_src/gpu/v1/PathRendererChain.cpp", - "$_src/gpu/v1/PathRendererChain.h", - "$_src/gpu/v1/StencilClip.h", - "$_src/gpu/v1/StencilMaskHelper.cpp", - "$_src/gpu/v1/StencilMaskHelper.h", - "$_src/gpu/v1/SurfaceDrawContext.cpp", - "$_src/gpu/v1/SurfaceDrawContext_v1.h", - "$_src/gpu/v1/SurfaceFillContext_v1.cpp", - "$_src/gpu/v1/SurfaceFillContext_v1.h", + "$_src/gpu/ganesh/v1/ClipStack.cpp", + "$_src/gpu/ganesh/v1/ClipStack.h", + "$_src/gpu/ganesh/v1/Device.cpp", + "$_src/gpu/ganesh/v1/Device_drawTexture.cpp", + "$_src/gpu/ganesh/v1/Device_v1.h", + "$_src/gpu/ganesh/v1/PathRenderer.cpp", + "$_src/gpu/ganesh/v1/PathRenderer.h", + "$_src/gpu/ganesh/v1/PathRendererChain.cpp", + "$_src/gpu/ganesh/v1/PathRendererChain.h", + "$_src/gpu/ganesh/v1/StencilClip.h", + "$_src/gpu/ganesh/v1/StencilMaskHelper.cpp", + "$_src/gpu/ganesh/v1/StencilMaskHelper.h", + "$_src/gpu/ganesh/v1/SurfaceDrawContext.cpp", + "$_src/gpu/ganesh/v1/SurfaceDrawContext_v1.h", + "$_src/gpu/ganesh/v1/SurfaceFillContext_v1.cpp", + "$_src/gpu/ganesh/v1/SurfaceFillContext_v1.h", ] skia_gpu_sources += skia_skgpu_v1_sources @@ -591,233 +582,237 @@ skia_vk_sources = [ "$_include/gpu/vk/GrVkMemoryAllocator.h", "$_include/gpu/vk/GrVkTypes.h", "$_include/gpu/vk/GrVkVulkan.h", - "$_include/private/GrVkTypesPriv.h", - "$_src/gpu/vk/GrVkAMDMemoryAllocator.cpp", - "$_src/gpu/vk/GrVkAMDMemoryAllocator.h", - "$_src/gpu/vk/GrVkBuffer.cpp", - "$_src/gpu/vk/GrVkBuffer.h", - "$_src/gpu/vk/GrVkCaps.cpp", - "$_src/gpu/vk/GrVkCaps.h", - "$_src/gpu/vk/GrVkCommandBuffer.cpp", - "$_src/gpu/vk/GrVkCommandBuffer.h", - "$_src/gpu/vk/GrVkCommandPool.cpp", - "$_src/gpu/vk/GrVkCommandPool.h", - "$_src/gpu/vk/GrVkDescriptorPool.cpp", - "$_src/gpu/vk/GrVkDescriptorPool.h", - "$_src/gpu/vk/GrVkDescriptorSet.cpp", - "$_src/gpu/vk/GrVkDescriptorSet.h", - "$_src/gpu/vk/GrVkDescriptorSetManager.cpp", - "$_src/gpu/vk/GrVkDescriptorSetManager.h", - "$_src/gpu/vk/GrVkExtensions.cpp", - "$_src/gpu/vk/GrVkFramebuffer.cpp", - "$_src/gpu/vk/GrVkFramebuffer.h", - "$_src/gpu/vk/GrVkGpu.cpp", - "$_src/gpu/vk/GrVkGpu.h", - "$_src/gpu/vk/GrVkImage.cpp", - "$_src/gpu/vk/GrVkImage.h", - "$_src/gpu/vk/GrVkImageLayout.h", - "$_src/gpu/vk/GrVkImageView.cpp", - "$_src/gpu/vk/GrVkImageView.h", - "$_src/gpu/vk/GrVkInterface.cpp", - "$_src/gpu/vk/GrVkInterface.h", - "$_src/gpu/vk/GrVkMSAALoadManager.cpp", - "$_src/gpu/vk/GrVkMSAALoadManager.h", - "$_src/gpu/vk/GrVkManagedResource.h", - "$_src/gpu/vk/GrVkMemory.cpp", - "$_src/gpu/vk/GrVkMemory.h", - "$_src/gpu/vk/GrVkOpsRenderPass.cpp", - "$_src/gpu/vk/GrVkOpsRenderPass.h", - "$_src/gpu/vk/GrVkPipeline.cpp", - "$_src/gpu/vk/GrVkPipeline.h", - "$_src/gpu/vk/GrVkPipelineState.cpp", - "$_src/gpu/vk/GrVkPipelineState.h", - "$_src/gpu/vk/GrVkPipelineStateBuilder.cpp", - "$_src/gpu/vk/GrVkPipelineStateBuilder.h", - "$_src/gpu/vk/GrVkPipelineStateCache.cpp", - "$_src/gpu/vk/GrVkPipelineStateDataManager.cpp", - "$_src/gpu/vk/GrVkPipelineStateDataManager.h", - "$_src/gpu/vk/GrVkRenderPass.cpp", - "$_src/gpu/vk/GrVkRenderPass.h", - "$_src/gpu/vk/GrVkRenderTarget.cpp", - "$_src/gpu/vk/GrVkRenderTarget.h", - "$_src/gpu/vk/GrVkResourceProvider.cpp", - "$_src/gpu/vk/GrVkResourceProvider.h", - "$_src/gpu/vk/GrVkSampler.cpp", - "$_src/gpu/vk/GrVkSampler.h", - "$_src/gpu/vk/GrVkSamplerYcbcrConversion.cpp", - "$_src/gpu/vk/GrVkSamplerYcbcrConversion.h", - "$_src/gpu/vk/GrVkSecondaryCBDrawContext.cpp", + "$_include/private/gpu/ganesh/GrVkTypesPriv.h", + "$_src/gpu/ganesh/vk/GrVkAMDMemoryAllocator.cpp", + "$_src/gpu/ganesh/vk/GrVkAMDMemoryAllocator.h", + "$_src/gpu/ganesh/vk/GrVkBuffer.cpp", + "$_src/gpu/ganesh/vk/GrVkBuffer.h", + "$_src/gpu/ganesh/vk/GrVkCaps.cpp", + "$_src/gpu/ganesh/vk/GrVkCaps.h", + "$_src/gpu/ganesh/vk/GrVkCommandBuffer.cpp", + "$_src/gpu/ganesh/vk/GrVkCommandBuffer.h", + "$_src/gpu/ganesh/vk/GrVkCommandPool.cpp", + "$_src/gpu/ganesh/vk/GrVkCommandPool.h", + "$_src/gpu/ganesh/vk/GrVkDescriptorPool.cpp", + "$_src/gpu/ganesh/vk/GrVkDescriptorPool.h", + "$_src/gpu/ganesh/vk/GrVkDescriptorSet.cpp", + "$_src/gpu/ganesh/vk/GrVkDescriptorSet.h", + "$_src/gpu/ganesh/vk/GrVkDescriptorSetManager.cpp", + "$_src/gpu/ganesh/vk/GrVkDescriptorSetManager.h", + "$_src/gpu/ganesh/vk/GrVkExtensions.cpp", + "$_src/gpu/ganesh/vk/GrVkFramebuffer.cpp", + "$_src/gpu/ganesh/vk/GrVkFramebuffer.h", + "$_src/gpu/ganesh/vk/GrVkGpu.cpp", + "$_src/gpu/ganesh/vk/GrVkGpu.h", + "$_src/gpu/ganesh/vk/GrVkImage.cpp", + "$_src/gpu/ganesh/vk/GrVkImage.h", + "$_src/gpu/ganesh/vk/GrVkImageLayout.h", + "$_src/gpu/ganesh/vk/GrVkImageView.cpp", + "$_src/gpu/ganesh/vk/GrVkImageView.h", + "$_src/gpu/ganesh/vk/GrVkInterface.cpp", + "$_src/gpu/ganesh/vk/GrVkInterface.h", + "$_src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp", + "$_src/gpu/ganesh/vk/GrVkMSAALoadManager.h", + "$_src/gpu/ganesh/vk/GrVkManagedResource.h", + "$_src/gpu/ganesh/vk/GrVkMemory.cpp", + "$_src/gpu/ganesh/vk/GrVkMemory.h", + "$_src/gpu/ganesh/vk/GrVkOpsRenderPass.cpp", + "$_src/gpu/ganesh/vk/GrVkOpsRenderPass.h", + "$_src/gpu/ganesh/vk/GrVkPipeline.cpp", + "$_src/gpu/ganesh/vk/GrVkPipeline.h", + "$_src/gpu/ganesh/vk/GrVkPipelineState.cpp", + "$_src/gpu/ganesh/vk/GrVkPipelineState.h", + "$_src/gpu/ganesh/vk/GrVkPipelineStateBuilder.cpp", + "$_src/gpu/ganesh/vk/GrVkPipelineStateBuilder.h", + "$_src/gpu/ganesh/vk/GrVkPipelineStateCache.cpp", + "$_src/gpu/ganesh/vk/GrVkPipelineStateDataManager.cpp", + "$_src/gpu/ganesh/vk/GrVkPipelineStateDataManager.h", + "$_src/gpu/ganesh/vk/GrVkRenderPass.cpp", + "$_src/gpu/ganesh/vk/GrVkRenderPass.h", + "$_src/gpu/ganesh/vk/GrVkRenderTarget.cpp", + "$_src/gpu/ganesh/vk/GrVkRenderTarget.h", + "$_src/gpu/ganesh/vk/GrVkResourceProvider.cpp", + "$_src/gpu/ganesh/vk/GrVkResourceProvider.h", + "$_src/gpu/ganesh/vk/GrVkSampler.cpp", + "$_src/gpu/ganesh/vk/GrVkSampler.h", + "$_src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.cpp", + "$_src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.h", + "$_src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext.cpp", + "$_src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext_impl.h", + "$_src/gpu/ganesh/vk/GrVkSemaphore.cpp", + "$_src/gpu/ganesh/vk/GrVkSemaphore.h", + "$_src/gpu/ganesh/vk/GrVkTexture.cpp", + "$_src/gpu/ganesh/vk/GrVkTexture.h", + "$_src/gpu/ganesh/vk/GrVkTextureRenderTarget.cpp", + "$_src/gpu/ganesh/vk/GrVkTextureRenderTarget.h", + "$_src/gpu/ganesh/vk/GrVkTypesPriv.cpp", + "$_src/gpu/ganesh/vk/GrVkUniformHandler.cpp", + "$_src/gpu/ganesh/vk/GrVkUniformHandler.h", + "$_src/gpu/ganesh/vk/GrVkUtil.cpp", + "$_src/gpu/ganesh/vk/GrVkUtil.h", + "$_src/gpu/ganesh/vk/GrVkVaryingHandler.cpp", + "$_src/gpu/ganesh/vk/GrVkVaryingHandler.h", "$_src/gpu/vk/GrVkSecondaryCBDrawContext.h", - "$_src/gpu/vk/GrVkSemaphore.cpp", - "$_src/gpu/vk/GrVkSemaphore.h", - "$_src/gpu/vk/GrVkTexture.cpp", - "$_src/gpu/vk/GrVkTexture.h", - "$_src/gpu/vk/GrVkTextureRenderTarget.cpp", - "$_src/gpu/vk/GrVkTextureRenderTarget.h", - "$_src/gpu/vk/GrVkTypesPriv.cpp", - "$_src/gpu/vk/GrVkUniformHandler.cpp", - "$_src/gpu/vk/GrVkUniformHandler.h", - "$_src/gpu/vk/GrVkUtil.cpp", - "$_src/gpu/vk/GrVkUtil.h", - "$_src/gpu/vk/GrVkVaryingHandler.cpp", - "$_src/gpu/vk/GrVkVaryingHandler.h", ] skia_direct3d_sources = [ "$_include/gpu/d3d/GrD3DBackendContext.h", "$_include/gpu/d3d/GrD3DTypes.h", - "$_include/private/GrD3DTypesMinimal.h", - "$_src/gpu/d3d/GrD3DAMDMemoryAllocator.cpp", - "$_src/gpu/d3d/GrD3DAMDMemoryAllocator.h", - "$_src/gpu/d3d/GrD3DAttachment.cpp", - "$_src/gpu/d3d/GrD3DAttachment.h", - "$_src/gpu/d3d/GrD3DBuffer.cpp", - "$_src/gpu/d3d/GrD3DBuffer.h", - "$_src/gpu/d3d/GrD3DCaps.cpp", - "$_src/gpu/d3d/GrD3DCaps.h", - "$_src/gpu/d3d/GrD3DCommandList.cpp", - "$_src/gpu/d3d/GrD3DCommandList.h", - "$_src/gpu/d3d/GrD3DCommandSignature.cpp", - "$_src/gpu/d3d/GrD3DCommandSignature.h", - "$_src/gpu/d3d/GrD3DCpuDescriptorManager.cpp", - "$_src/gpu/d3d/GrD3DCpuDescriptorManager.h", - "$_src/gpu/d3d/GrD3DDescriptorHeap.cpp", - "$_src/gpu/d3d/GrD3DDescriptorHeap.h", - "$_src/gpu/d3d/GrD3DDescriptorTableManager.cpp", - "$_src/gpu/d3d/GrD3DDescriptorTableManager.h", - "$_src/gpu/d3d/GrD3DGpu.cpp", - "$_src/gpu/d3d/GrD3DGpu.h", - "$_src/gpu/d3d/GrD3DOpsRenderPass.cpp", - "$_src/gpu/d3d/GrD3DOpsRenderPass.h", - "$_src/gpu/d3d/GrD3DPipeline.h", - "$_src/gpu/d3d/GrD3DPipelineState.cpp", - "$_src/gpu/d3d/GrD3DPipelineState.h", - "$_src/gpu/d3d/GrD3DPipelineStateBuilder.cpp", - "$_src/gpu/d3d/GrD3DPipelineStateBuilder.h", - "$_src/gpu/d3d/GrD3DPipelineStateDataManager.cpp", - "$_src/gpu/d3d/GrD3DPipelineStateDataManager.h", - "$_src/gpu/d3d/GrD3DRenderTarget.cpp", - "$_src/gpu/d3d/GrD3DRenderTarget.h", - "$_src/gpu/d3d/GrD3DResourceProvider.cpp", - "$_src/gpu/d3d/GrD3DResourceProvider.h", - "$_src/gpu/d3d/GrD3DResourceState.h", - "$_src/gpu/d3d/GrD3DRootSignature.cpp", - "$_src/gpu/d3d/GrD3DRootSignature.h", - "$_src/gpu/d3d/GrD3DSemaphore.cpp", - "$_src/gpu/d3d/GrD3DSemaphore.h", - "$_src/gpu/d3d/GrD3DTexture.cpp", - "$_src/gpu/d3d/GrD3DTexture.h", - "$_src/gpu/d3d/GrD3DTextureRenderTarget.cpp", - "$_src/gpu/d3d/GrD3DTextureRenderTarget.h", - "$_src/gpu/d3d/GrD3DTextureResource.cpp", - "$_src/gpu/d3d/GrD3DTextureResource.h", - "$_src/gpu/d3d/GrD3DTypesMinimal.cpp", - "$_src/gpu/d3d/GrD3DTypesPriv.cpp", - "$_src/gpu/d3d/GrD3DTypesPriv.h", - "$_src/gpu/d3d/GrD3DUtil.cpp", - "$_src/gpu/d3d/GrD3DUtil.h", + "$_include/private/gpu/ganesh/GrD3DTypesMinimal.h", + "$_src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.cpp", + "$_src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.h", + "$_src/gpu/ganesh/d3d/GrD3DAttachment.cpp", + "$_src/gpu/ganesh/d3d/GrD3DAttachment.h", + "$_src/gpu/ganesh/d3d/GrD3DBuffer.cpp", + "$_src/gpu/ganesh/d3d/GrD3DBuffer.h", + "$_src/gpu/ganesh/d3d/GrD3DCaps.cpp", + "$_src/gpu/ganesh/d3d/GrD3DCaps.h", + "$_src/gpu/ganesh/d3d/GrD3DCommandList.cpp", + "$_src/gpu/ganesh/d3d/GrD3DCommandList.h", + "$_src/gpu/ganesh/d3d/GrD3DCommandSignature.cpp", + "$_src/gpu/ganesh/d3d/GrD3DCommandSignature.h", + "$_src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.cpp", + "$_src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.h", + "$_src/gpu/ganesh/d3d/GrD3DDescriptorHeap.cpp", + "$_src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h", + "$_src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.cpp", + "$_src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.h", + "$_src/gpu/ganesh/d3d/GrD3DGpu.cpp", + "$_src/gpu/ganesh/d3d/GrD3DGpu.h", + "$_src/gpu/ganesh/d3d/GrD3DOpsRenderPass.cpp", + "$_src/gpu/ganesh/d3d/GrD3DOpsRenderPass.h", + "$_src/gpu/ganesh/d3d/GrD3DPipeline.h", + "$_src/gpu/ganesh/d3d/GrD3DPipelineState.cpp", + "$_src/gpu/ganesh/d3d/GrD3DPipelineState.h", + "$_src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp", + "$_src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.h", + "$_src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.cpp", + "$_src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.h", + "$_src/gpu/ganesh/d3d/GrD3DRenderTarget.cpp", + "$_src/gpu/ganesh/d3d/GrD3DRenderTarget.h", + "$_src/gpu/ganesh/d3d/GrD3DResourceProvider.cpp", + "$_src/gpu/ganesh/d3d/GrD3DResourceProvider.h", + "$_src/gpu/ganesh/d3d/GrD3DResourceState.h", + "$_src/gpu/ganesh/d3d/GrD3DRootSignature.cpp", + "$_src/gpu/ganesh/d3d/GrD3DRootSignature.h", + "$_src/gpu/ganesh/d3d/GrD3DSemaphore.cpp", + "$_src/gpu/ganesh/d3d/GrD3DSemaphore.h", + "$_src/gpu/ganesh/d3d/GrD3DTexture.cpp", + "$_src/gpu/ganesh/d3d/GrD3DTexture.h", + "$_src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.cpp", + "$_src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.h", + "$_src/gpu/ganesh/d3d/GrD3DTextureResource.cpp", + "$_src/gpu/ganesh/d3d/GrD3DTextureResource.h", + "$_src/gpu/ganesh/d3d/GrD3DTypesMinimal.cpp", + "$_src/gpu/ganesh/d3d/GrD3DTypesPriv.cpp", + "$_src/gpu/ganesh/d3d/GrD3DTypesPriv.h", + "$_src/gpu/ganesh/d3d/GrD3DUtil.cpp", + "$_src/gpu/ganesh/d3d/GrD3DUtil.h", ] skia_dawn_sources = [ "$_include/gpu/dawn/GrDawnTypes.h", - "$_include/private/GrDawnTypesPriv.h", - "$_src/gpu/dawn/GrDawnAttachment.cpp", - "$_src/gpu/dawn/GrDawnAttachment.h", - "$_src/gpu/dawn/GrDawnBuffer.cpp", - "$_src/gpu/dawn/GrDawnBuffer.h", - "$_src/gpu/dawn/GrDawnCaps.cpp", - "$_src/gpu/dawn/GrDawnCaps.h", - "$_src/gpu/dawn/GrDawnGpu.cpp", - "$_src/gpu/dawn/GrDawnGpu.h", - "$_src/gpu/dawn/GrDawnOpsRenderPass.cpp", - "$_src/gpu/dawn/GrDawnOpsRenderPass.h", - "$_src/gpu/dawn/GrDawnProgramBuilder.cpp", - "$_src/gpu/dawn/GrDawnProgramBuilder.h", - "$_src/gpu/dawn/GrDawnProgramDataManager.cpp", - "$_src/gpu/dawn/GrDawnProgramDataManager.h", - "$_src/gpu/dawn/GrDawnRenderTarget.cpp", - "$_src/gpu/dawn/GrDawnRenderTarget.h", - "$_src/gpu/dawn/GrDawnRingBuffer.cpp", - "$_src/gpu/dawn/GrDawnRingBuffer.h", - "$_src/gpu/dawn/GrDawnTexture.cpp", - "$_src/gpu/dawn/GrDawnTexture.h", - "$_src/gpu/dawn/GrDawnTextureRenderTarget.cpp", - "$_src/gpu/dawn/GrDawnTextureRenderTarget.h", - "$_src/gpu/dawn/GrDawnTypesPriv.cpp", - "$_src/gpu/dawn/GrDawnUtil.cpp", - "$_src/gpu/dawn/GrDawnUtil.h", + "$_include/private/gpu/ganesh/GrDawnTypesPriv.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", ] skia_metal_sources = [ "$_include/gpu/mtl/GrMtlBackendContext.h", "$_include/gpu/mtl/GrMtlTypes.h", - "$_src/gpu/mtl/GrMtlAttachment.h", - "$_src/gpu/mtl/GrMtlAttachment.mm", - "$_src/gpu/mtl/GrMtlBuffer.h", - "$_src/gpu/mtl/GrMtlBuffer.mm", - "$_src/gpu/mtl/GrMtlCaps.h", - "$_src/gpu/mtl/GrMtlCaps.mm", - "$_src/gpu/mtl/GrMtlCommandBuffer.h", - "$_src/gpu/mtl/GrMtlCommandBuffer.mm", - "$_src/gpu/mtl/GrMtlCppUtil.h", - "$_src/gpu/mtl/GrMtlDepthStencil.h", - "$_src/gpu/mtl/GrMtlDepthStencil.mm", - "$_src/gpu/mtl/GrMtlFramebuffer.h", - "$_src/gpu/mtl/GrMtlFramebuffer.mm", - "$_src/gpu/mtl/GrMtlGpu.h", - "$_src/gpu/mtl/GrMtlGpu.mm", - "$_src/gpu/mtl/GrMtlOpsRenderPass.h", - "$_src/gpu/mtl/GrMtlOpsRenderPass.mm", - "$_src/gpu/mtl/GrMtlPipeline.h", - "$_src/gpu/mtl/GrMtlPipelineState.h", - "$_src/gpu/mtl/GrMtlPipelineState.mm", - "$_src/gpu/mtl/GrMtlPipelineStateBuilder.h", - "$_src/gpu/mtl/GrMtlPipelineStateBuilder.mm", - "$_src/gpu/mtl/GrMtlPipelineStateDataManager.h", - "$_src/gpu/mtl/GrMtlPipelineStateDataManager.mm", - "$_src/gpu/mtl/GrMtlRenderCommandEncoder.h", - "$_src/gpu/mtl/GrMtlRenderTarget.h", - "$_src/gpu/mtl/GrMtlRenderTarget.mm", - "$_src/gpu/mtl/GrMtlResourceProvider.h", - "$_src/gpu/mtl/GrMtlResourceProvider.mm", - "$_src/gpu/mtl/GrMtlSampler.h", - "$_src/gpu/mtl/GrMtlSampler.mm", - "$_src/gpu/mtl/GrMtlSemaphore.h", - "$_src/gpu/mtl/GrMtlSemaphore.mm", - "$_src/gpu/mtl/GrMtlTexture.h", - "$_src/gpu/mtl/GrMtlTexture.mm", - "$_src/gpu/mtl/GrMtlTextureRenderTarget.h", - "$_src/gpu/mtl/GrMtlTextureRenderTarget.mm", - "$_src/gpu/mtl/GrMtlTrampoline.h", - "$_src/gpu/mtl/GrMtlTrampoline.mm", - "$_src/gpu/mtl/GrMtlTypesPriv.mm", - "$_src/gpu/mtl/GrMtlUniformHandler.h", - "$_src/gpu/mtl/GrMtlUniformHandler.mm", - "$_src/gpu/mtl/GrMtlUtil.h", - "$_src/gpu/mtl/GrMtlUtil.mm", - "$_src/gpu/mtl/GrMtlVaryingHandler.h", - "$_src/gpu/mtl/GrMtlVaryingHandler.mm", + "$_src/gpu/ganesh/mtl/GrMtlAttachment.h", + "$_src/gpu/ganesh/mtl/GrMtlAttachment.mm", + "$_src/gpu/ganesh/mtl/GrMtlBuffer.h", + "$_src/gpu/ganesh/mtl/GrMtlBuffer.mm", + "$_src/gpu/ganesh/mtl/GrMtlCaps.h", + "$_src/gpu/ganesh/mtl/GrMtlCaps.mm", + "$_src/gpu/ganesh/mtl/GrMtlCommandBuffer.h", + "$_src/gpu/ganesh/mtl/GrMtlCommandBuffer.mm", + "$_src/gpu/ganesh/mtl/GrMtlCppUtil.h", + "$_src/gpu/ganesh/mtl/GrMtlDepthStencil.h", + "$_src/gpu/ganesh/mtl/GrMtlDepthStencil.mm", + "$_src/gpu/ganesh/mtl/GrMtlFramebuffer.h", + "$_src/gpu/ganesh/mtl/GrMtlFramebuffer.mm", + "$_src/gpu/ganesh/mtl/GrMtlGpu.h", + "$_src/gpu/ganesh/mtl/GrMtlGpu.mm", + "$_src/gpu/ganesh/mtl/GrMtlOpsRenderPass.h", + "$_src/gpu/ganesh/mtl/GrMtlOpsRenderPass.mm", + "$_src/gpu/ganesh/mtl/GrMtlPipeline.h", + "$_src/gpu/ganesh/mtl/GrMtlPipelineState.h", + "$_src/gpu/ganesh/mtl/GrMtlPipelineState.mm", + "$_src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.h", + "$_src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm", + "$_src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.h", + "$_src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.mm", + "$_src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h", + "$_src/gpu/ganesh/mtl/GrMtlRenderTarget.h", + "$_src/gpu/ganesh/mtl/GrMtlRenderTarget.mm", + "$_src/gpu/ganesh/mtl/GrMtlResourceProvider.h", + "$_src/gpu/ganesh/mtl/GrMtlResourceProvider.mm", + "$_src/gpu/ganesh/mtl/GrMtlSampler.h", + "$_src/gpu/ganesh/mtl/GrMtlSampler.mm", + "$_src/gpu/ganesh/mtl/GrMtlSemaphore.h", + "$_src/gpu/ganesh/mtl/GrMtlSemaphore.mm", + "$_src/gpu/ganesh/mtl/GrMtlTexture.h", + "$_src/gpu/ganesh/mtl/GrMtlTexture.mm", + "$_src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.h", + "$_src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.mm", + "$_src/gpu/ganesh/mtl/GrMtlTrampoline.h", + "$_src/gpu/ganesh/mtl/GrMtlTrampoline.mm", + "$_src/gpu/ganesh/mtl/GrMtlTypesPriv.mm", + "$_src/gpu/ganesh/mtl/GrMtlUniformHandler.h", + "$_src/gpu/ganesh/mtl/GrMtlUniformHandler.mm", + "$_src/gpu/ganesh/mtl/GrMtlUtil.h", + "$_src/gpu/ganesh/mtl/GrMtlUtil.mm", + "$_src/gpu/ganesh/mtl/GrMtlVaryingHandler.h", + "$_src/gpu/ganesh/mtl/GrMtlVaryingHandler.mm", "$_src/image/SkSurface_GpuMtl.mm", ] skia_native_gpu_sources = [ "$_include/gpu/gl/egl/GrGLMakeEGLInterface.h", "$_include/gpu/gl/glx/GrGLMakeGLXInterface.h", - "$_src/gpu/gl/android/GrGLMakeNativeInterface_android.cpp", - "$_src/gpu/gl/egl/GrGLMakeEGLInterface.cpp", - "$_src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp", - "$_src/gpu/gl/glx/GrGLMakeGLXInterface.cpp", - "$_src/gpu/gl/glx/GrGLMakeNativeInterface_glx.cpp", - "$_src/gpu/gl/iOS/GrGLMakeNativeInterface_iOS.cpp", - "$_src/gpu/gl/mac/GrGLMakeNativeInterface_mac.cpp", - "$_src/gpu/gl/win/GrGLMakeNativeInterface_win.cpp", + "$_src/gpu/ganesh/gl/android/GrGLMakeNativeInterface_android.cpp", + "$_src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp", + "$_src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp", + "$_src/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.cpp", + "$_src/gpu/ganesh/gl/glx/GrGLMakeNativeInterface_glx.cpp", + "$_src/gpu/ganesh/gl/iOS/GrGLMakeNativeInterface_iOS.cpp", + "$_src/gpu/ganesh/gl/mac/GrGLMakeNativeInterface_mac.cpp", + "$_src/gpu/ganesh/gl/win/GrGLMakeNativeInterface_win.cpp", ] skia_shared_gpu_sources = [ + "$_include/gpu/GpuTypes.h", "$_include/gpu/ShaderErrorHandler.h", "$_include/private/SingleOwner.h", + "$_src/gpu/Blend.h", "$_src/gpu/BufferWriter.h", "$_src/gpu/KeyBuilder.h", + "$_src/gpu/RefCntedCallback.h", "$_src/gpu/ResourceKey.cpp", "$_src/gpu/ResourceKey.h", "$_src/gpu/ShaderErrorHandler.cpp", @@ -825,8 +820,14 @@ skia_shared_gpu_sources = [ "$_src/gpu/Swizzle.h", # tessellate + "$_src/gpu/tessellate/AffineMatrix.h", "$_src/gpu/tessellate/CullTest.h", + "$_src/gpu/tessellate/FixedCountBufferUtils.cpp", + "$_src/gpu/tessellate/FixedCountBufferUtils.h", "$_src/gpu/tessellate/MiddleOutPolygonTriangulator.h", + "$_src/gpu/tessellate/MidpointContourParser.h", + "$_src/gpu/tessellate/PatchWriter.h", + "$_src/gpu/tessellate/StrokeIterator.h", "$_src/gpu/tessellate/Tessellation.cpp", "$_src/gpu/tessellate/Tessellation.h", "$_src/gpu/tessellate/WangsFormula.h", diff --git a/third_party/skia/gn/graphite.gni b/third_party/skia/gn/graphite.gni index ad4036d7f546..940d7f18ad37 100644 --- a/third_party/skia/gn/graphite.gni +++ b/third_party/skia/gn/graphite.gni @@ -4,8 +4,9 @@ # found in the LICENSE file. # Things are easiest for everyone if these source paths are absolute. -_src = get_path_info("../experimental/graphite/src", "abspath") -_include = get_path_info("../experimental/graphite/include", "abspath") +_src = get_path_info("../src/gpu/graphite", "abspath") +_include = get_path_info("../include/gpu/graphite", "abspath") +_include_private = get_path_info("../include/private/gpu/graphite", "abspath") skia_graphite_public = [ "$_include/BackendTexture.h", @@ -24,6 +25,8 @@ skia_graphite_sources = [ "$_src/Buffer.h", "$_src/Caps.cpp", "$_src/Caps.h", + "$_src/ClipStack.cpp", + "$_src/ClipStack_graphite.h", "$_src/CommandBuffer.cpp", "$_src/CommandBuffer.h", "$_src/Context.cpp", @@ -52,6 +55,7 @@ skia_graphite_sources = [ "$_src/GlobalCache.h", "$_src/Gpu.cpp", "$_src/Gpu.h", + "$_src/GpuWorkSubmission.cpp", "$_src/GpuWorkSubmission.h", "$_src/GraphicsPipeline.cpp", "$_src/GraphicsPipeline.h", @@ -64,6 +68,7 @@ skia_graphite_sources = [ "$_src/Log.h", "$_src/PaintParams.cpp", "$_src/PaintParams.h", + "$_src/PipelineDataCache.h", "$_src/Recorder.cpp", "$_src/RecorderPriv.cpp", "$_src/RecorderPriv.h", @@ -93,8 +98,8 @@ skia_graphite_sources = [ "$_src/TextureProxy.cpp", "$_src/TextureProxy.h", "$_src/TextureProxyView.h", - "$_src/UniformCache.cpp", - "$_src/UniformCache.h", + "$_src/TextureUtils.cpp", + "$_src/TextureUtils.h", "$_src/UniformManager.cpp", "$_src/UniformManager.h", "$_src/UploadTask.cpp", @@ -108,13 +113,22 @@ skia_graphite_sources = [ "$_src/geom/Transform.cpp", "$_src/geom/Transform_graphite.h", "$_src/geom/VectorTypes.h", + "$_src/render/CoverBoundsRenderStep.cpp", + "$_src/render/CoverBoundsRenderStep.h", + "$_src/render/MiddleOutFanRenderStep.cpp", + "$_src/render/MiddleOutFanRenderStep.h", + "$_src/render/StencilAndCoverDSS.h", "$_src/render/StencilAndFillPathRenderer.cpp", + "$_src/render/TessellateCurvesRenderStep.cpp", + "$_src/render/TessellateCurvesRenderStep.h", + "$_src/render/TessellateWedgesRenderStep.cpp", + "$_src/render/TessellateWedgesRenderStep.h", ] skia_graphite_mtl_sources = [ "$_include/mtl/MtlBackendContext.h", "$_include/mtl/MtlTypes.h", - "$_include/private/MtlTypesPriv.h", + "$_include_private/MtlTypesPriv.h", "$_src/mtl/MtlBlitCommandEncoder.h", "$_src/mtl/MtlBuffer.h", "$_src/mtl/MtlBuffer.mm", diff --git a/third_party/skia/gn/ios.gni b/third_party/skia/gn/ios.gni index 9434472e2901..3bce517ce852 100644 --- a/third_party/skia/gn/ios.gni +++ b/third_party/skia/gn/ios.gni @@ -214,7 +214,7 @@ if (is_ios) { } # should only code sign when running on a device, not the simulator - if (target_cpu != "x64") { + if (!ios_use_simulator) { code_signing_script = "//gn/codesign_ios.py" code_signing_sources = [ "$target_gen_dir/$app_name" ] code_signing_outputs = [ diff --git a/third_party/skia/gn/samples.gni b/third_party/skia/gn/samples.gni index 86ce396089f8..28748beccd9b 100644 --- a/third_party/skia/gn/samples.gni +++ b/third_party/skia/gn/samples.gni @@ -58,6 +58,7 @@ samples_sources = [ "$_samplecode/SampleQuadStroker.cpp", "$_samplecode/SampleRectanizer.cpp", "$_samplecode/SampleRepeatTile.cpp", + "$_samplecode/SampleSBIX.cpp", "$_samplecode/SampleSG.cpp", "$_samplecode/SampleSVGFile.cpp", "$_samplecode/SampleShadowColor.cpp", diff --git a/third_party/skia/gn/skia.gni b/third_party/skia/gn/skia.gni index 8c8b44f9e160..f6ed7a8c0f07 100644 --- a/third_party/skia/gn/skia.gni +++ b/third_party/skia/gn/skia.gni @@ -10,7 +10,8 @@ is_skia_dev_build = is_skia_standalone && !is_official_build declare_args() { skia_android_serial = "" - skia_compile_processors = false + skia_compile_modules = false + skia_compile_sksl_tests = false skia_enable_api_available_macro = true skia_enable_android_utils = is_skia_dev_build skia_enable_skgpu_v1 = true @@ -23,8 +24,8 @@ declare_args() { skia_enable_pdf = !is_wasm skia_enable_skottie = !(is_win && is_component_build) || (is_wasm && skia_canvaskit_enable_skottie) - skia_enable_skrive = true skia_enable_sksl = true + skia_enable_sksl_tracing = is_skia_dev_build skia_enable_skvm_jit_when_possible = is_skia_dev_build skia_enable_svg = !is_component_build skia_enable_tools = is_skia_dev_build @@ -77,6 +78,8 @@ declare_args() { skia_ios_identity = ".*Google.*" skia_ios_profile = "Google Development" } + + skia_compare_vm_vs_rp = false } declare_args() { @@ -107,7 +110,6 @@ declare_args() { } declare_args() { - skia_compile_sksl_tests = skia_compile_processors skia_enable_fontmgr_android = skia_use_expat && skia_use_freetype skia_enable_fontmgr_custom_directory = skia_use_freetype && !is_fuchsia && !is_wasm @@ -126,6 +128,7 @@ declare_args() { skia_enable_direct3d_debug_layer = skia_enable_gpu_debug_layers skia_enable_metal_debug_info = skia_enable_gpu_debug_layers skia_use_vma = skia_use_vulkan + skia_build_for_debugger = false } declare_args() { diff --git a/third_party/skia/gn/skia/BUILD.gn b/third_party/skia/gn/skia/BUILD.gn index da6ca646c4fa..9f2df2f8ec5b 100644 --- a/third_party/skia/gn/skia/BUILD.gn +++ b/third_party/skia/gn/skia/BUILD.gn @@ -7,7 +7,7 @@ if (is_fuchsia) { import("//build/fuchsia/sdk.gni") } if (is_wasm) { - import("//gn/toolchain/wasm.gni") + import("../toolchain/wasm.gni") } declare_args() { @@ -25,12 +25,12 @@ declare_args() { if (is_ios && xcode_sysroot == "") { if (is_tvos) { sdk = "appletvos" - if (target_cpu == "x86" || target_cpu == "x64") { + if (ios_use_simulator) { sdk = "appletvsimulator" } } else { sdk = "iphoneos" - if (target_cpu == "x86" || target_cpu == "x64") { + if (ios_use_simulator) { sdk = "iphonesimulator" } } @@ -271,10 +271,7 @@ config("default") { } if (is_wasm) { - cflags += [ - "--sysroot=$skia_emsdk_dir/upstream/emscripten/cache/sysroot", - "-sMAIN_MODULE=1", - ] + cflags += [ "--sysroot=$skia_emsdk_dir/upstream/emscripten/cache/sysroot" ] ldflags += [ "--sysroot=$skia_emsdk_dir/upstream/emscripten/cache/sysroot" ] } diff --git a/third_party/skia/gn/skqp_gn_args.py b/third_party/skia/gn/skqp_gn_args.py index 6105396670bb..5f90bb1a1482 100644 --- a/third_party/skia/gn/skqp_gn_args.py +++ b/third_party/skia/gn/skqp_gn_args.py @@ -6,16 +6,15 @@ def GetGNArgs(api_level, debug, arch=None, ndk=None, is_android_bp=False): gn_args = { 'ndk_api': api_level, 'is_debug': 'true' if debug else 'false', - 'extra_cflags': '[ "-DSK_ENABLE_DUMP_GPU", "-DSK_BUILD_FOR_SKQP" ]', 'skia_enable_fontmgr_android': 'false', 'skia_enable_fontmgr_empty': 'true', 'skia_enable_pdf': 'false', - 'skia_enable_skshaper': 'false', 'skia_enable_skottie': 'false', - 'skia_enable_skrive': 'false', + 'skia_enable_skshaper': 'false', + 'skia_enable_sksl_tracing': 'true', 'skia_enable_sktext': 'false', - 'skia_enable_tools': 'true', 'skia_enable_svg': 'false', + 'skia_enable_tools': 'true', 'skia_tools_require_resources': 'true', 'skia_use_dng_sdk': 'false', 'skia_use_expat': 'true', diff --git a/third_party/skia/gn/sksl.gni b/third_party/skia/gn/sksl.gni index 6490d6f0e8ed..fd504fb7bcde 100644 --- a/third_party/skia/gn/sksl.gni +++ b/third_party/skia/gn/sksl.gni @@ -33,6 +33,7 @@ skia_sksl_sources = [ "$_include/sksl/DSLVar.h", "$_include/sksl/SkSLDebugTrace.h", "$_include/sksl/SkSLErrorReporter.h", + "$_include/sksl/SkSLOperator.h", "$_src/sksl/SkSLAnalysis.cpp", "$_src/sksl/SkSLAnalysis.h", "$_src/sksl/SkSLBuiltinMap.cpp", @@ -62,13 +63,13 @@ skia_sksl_sources = [ "$_src/sksl/SkSLMemoryLayout.h", "$_src/sksl/SkSLMemoryPool.h", "$_src/sksl/SkSLModifiersPool.h", - "$_src/sksl/SkSLOperators.cpp", - "$_src/sksl/SkSLOperators.h", + "$_src/sksl/SkSLOperator.cpp", "$_src/sksl/SkSLOutputStream.cpp", "$_src/sksl/SkSLOutputStream.h", "$_src/sksl/SkSLParsedModule.h", "$_src/sksl/SkSLPool.cpp", "$_src/sksl/SkSLPool.h", + "$_src/sksl/SkSLPosition.cpp", "$_src/sksl/SkSLProgramSettings.h", "$_src/sksl/SkSLRehydrator.cpp", "$_src/sksl/SkSLRehydrator.h", @@ -86,6 +87,8 @@ skia_sksl_sources = [ "$_src/sksl/analysis/SkSLFinalizationChecks.cpp", "$_src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp", "$_src/sksl/analysis/SkSLIsConstantExpression.cpp", + "$_src/sksl/analysis/SkSLIsSameExpressionTree.cpp", + "$_src/sksl/analysis/SkSLNoOpErrorReporter.h", "$_src/sksl/analysis/SkSLProgramUsage.cpp", "$_src/sksl/analysis/SkSLProgramVisitor.h", "$_src/sksl/analysis/SkSLSwitchCaseContainsExit.cpp", @@ -201,8 +204,6 @@ skia_sksl_sources = [ "$_src/sksl/spirv.h", "$_src/sksl/tracing/SkVMDebugTrace.cpp", "$_src/sksl/tracing/SkVMDebugTrace.h", - "$_src/sksl/tracing/SkVMDebugTracePlayer.cpp", - "$_src/sksl/tracing/SkVMDebugTracePlayer.h", "$_src/sksl/transform/SkSLBuiltinVariableScanner.cpp", "$_src/sksl/transform/SkSLEliminateDeadFunctions.cpp", "$_src/sksl/transform/SkSLEliminateDeadGlobalVariables.cpp", @@ -211,6 +212,11 @@ skia_sksl_sources = [ "$_src/sksl/transform/SkSLTransform.h", ] +skia_sksl_tracing_sources = [ + "$_src/sksl/tracing/SkVMDebugTracePlayer.cpp", + "$_src/sksl/tracing/SkVMDebugTracePlayer.h", +] + skia_sksl_gpu_sources = [ "$_src/sksl/codegen/SkSLCodeGenerator.h", "$_src/sksl/codegen/SkSLGLSLCodeGenerator.cpp", @@ -223,4 +229,33 @@ skia_sksl_gpu_sources = [ "$_src/sksl/codegen/SkSLSPIRVCodeGenerator.h", "$_src/sksl/codegen/SkSLSPIRVtoHLSL.cpp", "$_src/sksl/codegen/SkSLSPIRVtoHLSL.h", + "$_src/sksl/codegen/SkSLWGSLCodeGenerator.cpp", + "$_src/sksl/codegen/SkSLWGSLCodeGenerator.h", +] + +skslc_deps = [ + "$_src/core/SkArenaAlloc.cpp", + "$_src/core/SkBlockAllocator.cpp", + "$_src/core/SkCpu.cpp", + "$_src/core/SkData.cpp", + "$_src/core/SkHalf.cpp", + "$_src/core/SkMalloc.cpp", + "$_src/core/SkMath.cpp", + "$_src/core/SkMatrixInvert.cpp", + "$_src/core/SkSemaphore.cpp", + "$_src/core/SkStream.cpp", + "$_src/core/SkString.cpp", + "$_src/core/SkStringUtils.cpp", + "$_src/core/SkThreadID.cpp", + "$_src/core/SkUtils.cpp", + "$_src/core/SkVM.cpp", + "$_src/gpu/ganesh/GrMemoryPool.cpp", + "$_src/ports/SkMemory_malloc.cpp", + "$_src/ports/SkOSFile_stdio.cpp", + "$_src/utils/SkJSON.cpp", + "$_src/utils/SkJSONWriter.cpp", + "$_src/utils/SkParse.cpp", + "$_src/utils/SkShaderUtils.cpp", + "$_src/utils/SkUTF.cpp", + "$_src/utils/SkVMVisualizer.cpp", ] diff --git a/third_party/skia/gn/sksl_tests.gni b/third_party/skia/gn/sksl_tests.gni index b2576c97d3e9..3ab8e68e79f8 100644 --- a/third_party/skia/gn/sksl_tests.gni +++ b/third_party/skia/gn/sksl_tests.gni @@ -4,100 +4,102 @@ # found in the LICENSE file. sksl_error_tests = [ - "/sksl/errors/ArgumentCountMismatch.sksl", - "/sksl/errors/ArgumentMismatch.sksl", - "/sksl/errors/ArgumentModifiers.sksl", + "/sksl/errors/ArgumentCountMismatch.rts", + "/sksl/errors/ArgumentMismatch.rts", + "/sksl/errors/ArgumentModifiers.rts", "/sksl/errors/ArrayConstructorElementCount.sksl", - "/sksl/errors/ArrayIndexOutOfRange.sksl", + "/sksl/errors/ArrayIndexOutOfRange.rts", "/sksl/errors/ArrayInlinedIndexOutOfRange.sksl", - "/sksl/errors/ArrayNegation.sksl", - "/sksl/errors/ArrayOfInvalidSize.sksl", - "/sksl/errors/ArrayOfVoid.sksl", - "/sksl/errors/ArrayPlus.sksl", - "/sksl/errors/ArrayReturnTypes.sksl", - "/sksl/errors/ArraySplitDimensions.sksl", - "/sksl/errors/ArraySplitDimensionsInFuncBody.sksl", - "/sksl/errors/ArraySplitDimensionsInFuncDecl.sksl", - "/sksl/errors/ArraySplitDimensionsInStruct.sksl", - "/sksl/errors/ArrayTooManyDimensions.sksl", - "/sksl/errors/ArrayTooManyDimensionsInFuncBody.sksl", - "/sksl/errors/ArrayTooManyDimensionsInFuncDecl.sksl", - "/sksl/errors/ArrayTooManyDimensionsInStruct.sksl", - "/sksl/errors/ArrayTypeTooManyDimensions.sksl", - "/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.sksl", - "/sksl/errors/ArrayTypeTooManyDimensionsInFuncDecl.sksl", - "/sksl/errors/ArrayTypeTooManyDimensionsInStruct.sksl", - "/sksl/errors/ArrayUnspecifiedDimensions.sksl", - "/sksl/errors/AssignmentTypeMismatch.sksl", + "/sksl/errors/ArrayNegation.rts", + "/sksl/errors/ArrayOfInvalidSize.rts", + "/sksl/errors/ArrayOfVoid.rts", + "/sksl/errors/ArrayPlus.rts", + "/sksl/errors/ArrayReturnTypes.rts", + "/sksl/errors/ArraySplitDimensions.rts", + "/sksl/errors/ArraySplitDimensionsInFuncBody.rts", + "/sksl/errors/ArraySplitDimensionsInFuncDecl.rts", + "/sksl/errors/ArraySplitDimensionsInStruct.rts", + "/sksl/errors/ArrayTooManyDimensions.rts", + "/sksl/errors/ArrayTooManyDimensionsInFuncBody.rts", + "/sksl/errors/ArrayTooManyDimensionsInFuncDecl.rts", + "/sksl/errors/ArrayTooManyDimensionsInStruct.rts", + "/sksl/errors/ArrayTypeTooManyDimensions.rts", + "/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.rts", + "/sksl/errors/ArrayTypeTooManyDimensionsInFuncDecl.rts", + "/sksl/errors/ArrayTypeTooManyDimensionsInStruct.rts", + "/sksl/errors/ArrayUnspecifiedDimensions.rts", + "/sksl/errors/AssignmentTypeMismatch.rts", "/sksl/errors/BadCaps.sksl", - "/sksl/errors/BadConstInitializers.sksl", - "/sksl/errors/BadFieldAccess.sksl", - "/sksl/errors/BadIndex.sksl", + "/sksl/errors/BadConstInitializers.rts", + "/sksl/errors/BadFieldAccess.rts", + "/sksl/errors/BadIndex.rts", "/sksl/errors/BadModifiers.sksl", - "/sksl/errors/BadOctal.sksl", - "/sksl/errors/BinaryInvalidType.sksl", + "/sksl/errors/BadOctal.rts", + "/sksl/errors/BinaryInvalidType.rts", "/sksl/errors/BinaryTypeCoercion.sksl", - "/sksl/errors/BinaryTypeMismatch.sksl", - "/sksl/errors/BitShiftFloat.sksl", - "/sksl/errors/BitShiftFloatMatrix.sksl", - "/sksl/errors/BitShiftFloatVector.sksl", + "/sksl/errors/BinaryTypeMismatch.rts", + "/sksl/errors/BitShiftFloat.rts", + "/sksl/errors/BitShiftFloatMatrix.rts", + "/sksl/errors/BitShiftFloatVector.rts", "/sksl/errors/BooleanArithmetic.sksl", - "/sksl/errors/BreakOutsideLoop.sksl", - "/sksl/errors/CallNonFunction.sksl", + "/sksl/errors/BreakOutsideLoop.rts", + "/sksl/errors/CallNonFunction.rts", "/sksl/errors/CanExitWithoutReturningValue.sksl", - "/sksl/errors/ComparisonDimensional.sksl", - "/sksl/errors/ConstructorArgumentCount.sksl", - "/sksl/errors/ConstructorTypeMismatch.sksl", - "/sksl/errors/ContinueOutsideLoop.sksl", - "/sksl/errors/DivideByZero.sksl", + "/sksl/errors/ComparisonDimensional.rts", + "/sksl/errors/ConstructorArgumentCount.rts", + "/sksl/errors/ConstructorTypeMismatch.rts", + "/sksl/errors/ContinueOutsideLoop.rts", + "/sksl/errors/DivideByZero.rts", "/sksl/errors/DoTypeMismatch.sksl", - "/sksl/errors/DuplicateFunction.sksl", + "/sksl/errors/DuplicateFunction.rts", "/sksl/errors/DuplicateOutput.sksl", - "/sksl/errors/DuplicateSymbol.sksl", - "/sksl/errors/EmptyArray.sksl", - "/sksl/errors/EmptyStruct.sksl", - "/sksl/errors/ErrorsInDeadCode.sksl", - "/sksl/errors/FloatRemainder.sksl", + "/sksl/errors/DuplicateSymbol.rts", + "/sksl/errors/EmptyArray.rts", + "/sksl/errors/EmptyStruct.rts", + "/sksl/errors/ErrorsInDeadCode.rts", + "/sksl/errors/FloatRemainder.rts", "/sksl/errors/ForInitStmt.sksl", - "/sksl/errors/ForTypeMismatch.sksl", - "/sksl/errors/FunctionParameterOfVoid.sksl", - "/sksl/errors/GenericArgumentMismatch.sksl", - "/sksl/errors/PrecisionQualifiersDisallowed.sksl", - "/sksl/errors/IfTypeMismatch.sksl", - "/sksl/errors/InVarWithInitializerExpression.sksl", - "/sksl/errors/IncompleteExpression.sksl", - "/sksl/errors/IncompleteFunctionCall.sksl", + "/sksl/errors/ForTypeMismatch.rts", + "/sksl/errors/FunctionParameterOfVoid.rts", + "/sksl/errors/GenericArgumentMismatch.rts", + "/sksl/errors/IfTypeMismatch.rts", + "/sksl/errors/IncompleteExpression.rts", + "/sksl/errors/IncompleteFunctionCall.rts", "/sksl/errors/InterfaceBlockMemberReservedName.sksl", + "/sksl/errors/InterfaceBlockPrivateType.sksl", "/sksl/errors/InterfaceBlockReservedName.sksl", "/sksl/errors/InterfaceBlockScope.sksl", "/sksl/errors/InterfaceBlockStorageModifiers.sksl", "/sksl/errors/InterfaceBlockWithNoMembers.sksl", "/sksl/errors/IntrinsicInGlobalVariable.sksl", - "/sksl/errors/InvalidAssignment.sksl", - "/sksl/errors/InvalidOutParams.sksl", - "/sksl/errors/InvalidToken.sksl", - "/sksl/errors/InvalidUnary.sksl", + "/sksl/errors/InvalidAssignment.rts", + "/sksl/errors/InvalidOutParams.rts", + "/sksl/errors/InvalidToken.rts", + "/sksl/errors/InvalidUnary.rts", + "/sksl/errors/InVarWithInitializerExpression.sksl", "/sksl/errors/LayoutInFunctions.sksl", "/sksl/errors/LayoutInInterfaceBlock.sksl", "/sksl/errors/LayoutInStruct.sksl", "/sksl/errors/LayoutRepeatedQualifiers.sksl", - "/sksl/errors/MatrixIndexOutOfRange.sksl", + "/sksl/errors/MatrixIndexOutOfRange.rts", + "/sksl/errors/MatrixIndexOutOfRangeES3.sksl", "/sksl/errors/MatrixInlinedIndexOutOfRange.sksl", - "/sksl/errors/MatrixToVectorCast3x3.sksl", - "/sksl/errors/MatrixToVectorCastBoolean.sksl", - "/sksl/errors/MatrixToVectorCastInteger.sksl", - "/sksl/errors/MatrixToVectorCastTooSmall.sksl", - "/sksl/errors/MismatchedNumbers.sksl", - "/sksl/errors/MultipleFields.sksl", + "/sksl/errors/MatrixToVectorCast3x3.rts", + "/sksl/errors/MatrixToVectorCastBoolean.rts", + "/sksl/errors/MatrixToVectorCastInteger.rts", + "/sksl/errors/MatrixToVectorCastTooSmall.rts", + "/sksl/errors/MismatchedNumbers.rts", + "/sksl/errors/MismatchedNumbersES3.sksl", + "/sksl/errors/ModifiersInStruct.rts", + "/sksl/errors/MultipleFields.rts", "/sksl/errors/MultipleFieldsInInterfaceBlocks.sksl", - "/sksl/errors/ModifiersInStruct.sksl", "/sksl/errors/NoES3ModifierInUserCode.sksl", "/sksl/errors/OpaqueTypeAssignment.sksl", "/sksl/errors/OpaqueTypeConstruction.sksl", "/sksl/errors/OpaqueTypeInArray.sksl", "/sksl/errors/OpaqueTypeInInterfaceBlock.sksl", "/sksl/errors/OpaqueTypeInStruct.sksl", - "/sksl/errors/OpenArray.sksl", + "/sksl/errors/OpenArray.rts", "/sksl/errors/Ossfuzz26700.sksl", "/sksl/errors/Ossfuzz27614.sksl", "/sksl/errors/Ossfuzz27650.sksl", @@ -133,113 +135,116 @@ sksl_error_tests = [ "/sksl/errors/Ossfuzz44559.sksl", "/sksl/errors/Ossfuzz44561.sksl", "/sksl/errors/Ossfuzz44565.sksl", - "/sksl/errors/OverflowFloatLiteral.sksl", + "/sksl/errors/OverflowFloatLiteral.rts", "/sksl/errors/OverflowInlinedLiteral.sksl", - "/sksl/errors/OverflowIntLiteral.sksl", - "/sksl/errors/OverflowInt64Literal.sksl", - "/sksl/errors/OverflowParamArraySize.sksl", + "/sksl/errors/OverflowInt64Literal.rts", + "/sksl/errors/OverflowIntLiteral.rts", + "/sksl/errors/OverflowParamArraySize.rts", + "/sksl/errors/OverflowShortLiteral.sksl", "/sksl/errors/OverflowUintLiteral.sksl", - "/sksl/errors/ProgramTooLarge_Globals.sksl", - "/sksl/errors/ProgramTooLarge_Stack.sksl", - "/sksl/errors/PrototypeInFuncBody.sksl", - "/sksl/errors/PrivateTypes.sksl", - "/sksl/errors/PrivateVariables.sksl", - "/sksl/errors/RedeclareBasicType.sksl", + "/sksl/errors/PrecisionQualifiersDisallowed.sksl", + "/sksl/errors/PrivateTypes.rts", + "/sksl/errors/PrivateVariables.rts", + "/sksl/errors/ProgramTooLarge_Globals.rts", + "/sksl/errors/ProgramTooLarge_Stack.rts", + "/sksl/errors/PrototypeInFuncBody.rts", + "/sksl/errors/RedeclareBasicType.rts", "/sksl/errors/RedeclareSamplerType.sksl", - "/sksl/errors/RedeclareStruct.sksl", - "/sksl/errors/RedeclareStructTypeWithName.sksl", - "/sksl/errors/RedeclareUserType.sksl", - "/sksl/errors/RedeclareVariable.sksl", - "/sksl/errors/ReservedNameAsm.sksl", - "/sksl/errors/ReservedNameAttribute.sksl", - "/sksl/errors/ReservedNameCast.sksl", - "/sksl/errors/ReservedNameDouble.sksl", - "/sksl/errors/ReservedNameDvec2.sksl", - "/sksl/errors/ReservedNameDvec3.sksl", - "/sksl/errors/ReservedNameDvec4.sksl", - "/sksl/errors/ReservedNameEnum.sksl", - "/sksl/errors/ReservedNameExtern.sksl", - "/sksl/errors/ReservedNameExternal.sksl", - "/sksl/errors/ReservedNameFixed.sksl", - "/sksl/errors/ReservedNameFvec2.sksl", - "/sksl/errors/ReservedNameFvec3.sksl", - "/sksl/errors/ReservedNameFvec4.sksl", - "/sksl/errors/ReservedNameGoto.sksl", - "/sksl/errors/ReservedNameHvec2.sksl", - "/sksl/errors/ReservedNameHvec3.sksl", - "/sksl/errors/ReservedNameHvec4.sksl", - "/sksl/errors/ReservedNameInput.sksl", - "/sksl/errors/ReservedNameInterface.sksl", - "/sksl/errors/ReservedNameInvariant.sksl", - "/sksl/errors/ReservedNameLong.sksl", - "/sksl/errors/ReservedNameNamespace.sksl", - "/sksl/errors/ReservedNameOutput.sksl", - "/sksl/errors/ReservedNamePacked.sksl", - "/sksl/errors/ReservedNamePrecision.sksl", - "/sksl/errors/ReservedNamePublic.sksl", - "/sksl/errors/ReservedNameSampler1DShadow.sksl", - "/sksl/errors/ReservedNameSampler2DRectShadow.sksl", - "/sksl/errors/ReservedNameSampler2DShadow.sksl", - "/sksl/errors/ReservedNameSampler3DRect.sksl", - "/sksl/errors/ReservedNameSamplerCube.sksl", - "/sksl/errors/ReservedNameSizeof.sksl", - "/sksl/errors/ReservedNameStatic.sksl", - "/sksl/errors/ReservedNameSuperp.sksl", - "/sksl/errors/ReservedNameTemplate.sksl", - "/sksl/errors/ReservedNameThis.sksl", - "/sksl/errors/ReservedNameTypedef.sksl", - "/sksl/errors/ReservedNameUnion.sksl", - "/sksl/errors/ReservedNameUnsigned.sksl", - "/sksl/errors/ReservedNameUsing.sksl", - "/sksl/errors/ReservedNameVarying.sksl", - "/sksl/errors/ReservedNameVolatile.sksl", - "/sksl/errors/ReturnDifferentType.sksl", - "/sksl/errors/ReturnFromVoid.sksl", - "/sksl/errors/ReturnMissingValue.sksl", - "/sksl/errors/ReturnTypeMismatch.sksl", - "/sksl/errors/SelfReferentialInitializerExpression.sksl", - "/sksl/errors/SpuriousFloat.sksl", + "/sksl/errors/RedeclareShaderType.rts", + "/sksl/errors/RedeclareStruct.rts", + "/sksl/errors/RedeclareStructTypeWithName.rts", + "/sksl/errors/RedeclareUserType.rts", + "/sksl/errors/RedeclareVariable.rts", + "/sksl/errors/ReservedNameAsm.rts", + "/sksl/errors/ReservedNameAttribute.rts", + "/sksl/errors/ReservedNameCast.rts", + "/sksl/errors/ReservedNameDouble.rts", + "/sksl/errors/ReservedNameDvec2.rts", + "/sksl/errors/ReservedNameDvec3.rts", + "/sksl/errors/ReservedNameDvec4.rts", + "/sksl/errors/ReservedNameEnum.rts", + "/sksl/errors/ReservedNameExtern.rts", + "/sksl/errors/ReservedNameExternal.rts", + "/sksl/errors/ReservedNameFixed.rts", + "/sksl/errors/ReservedNameFvec2.rts", + "/sksl/errors/ReservedNameFvec3.rts", + "/sksl/errors/ReservedNameFvec4.rts", + "/sksl/errors/ReservedNameGoto.rts", + "/sksl/errors/ReservedNameHvec2.rts", + "/sksl/errors/ReservedNameHvec3.rts", + "/sksl/errors/ReservedNameHvec4.rts", + "/sksl/errors/ReservedNameInput.rts", + "/sksl/errors/ReservedNameInterface.rts", + "/sksl/errors/ReservedNameInvariant.rts", + "/sksl/errors/ReservedNameLong.rts", + "/sksl/errors/ReservedNameNamespace.rts", + "/sksl/errors/ReservedNameOutput.rts", + "/sksl/errors/ReservedNamePacked.rts", + "/sksl/errors/ReservedNamePrecision.rts", + "/sksl/errors/ReservedNamePublic.rts", + "/sksl/errors/ReservedNameSampler1DShadow.rts", + "/sksl/errors/ReservedNameSampler2DRectShadow.rts", + "/sksl/errors/ReservedNameSampler2DShadow.rts", + "/sksl/errors/ReservedNameSampler3DRect.rts", + "/sksl/errors/ReservedNameSamplerCube.rts", + "/sksl/errors/ReservedNameSizeof.rts", + "/sksl/errors/ReservedNameStatic.rts", + "/sksl/errors/ReservedNameSuperp.rts", + "/sksl/errors/ReservedNameTemplate.rts", + "/sksl/errors/ReservedNameThis.rts", + "/sksl/errors/ReservedNameTypedef.rts", + "/sksl/errors/ReservedNameUnion.rts", + "/sksl/errors/ReservedNameUnsigned.rts", + "/sksl/errors/ReservedNameUsing.rts", + "/sksl/errors/ReservedNameVarying.rts", + "/sksl/errors/ReservedNameVolatile.rts", + "/sksl/errors/ReturnDifferentType.rts", + "/sksl/errors/ReturnFromVoid.rts", + "/sksl/errors/ReturnMissingValue.rts", + "/sksl/errors/ReturnTypeMismatch.rts", + "/sksl/errors/SelfReferentialInitializerExpression.rts", + "/sksl/errors/SpuriousFloat.rts", "/sksl/errors/StaticIfTest.sksl", "/sksl/errors/StaticSwitchConditionalBreak.sksl", "/sksl/errors/StaticSwitchTest.sksl", "/sksl/errors/StaticSwitchWithConditionalBreak.sksl", "/sksl/errors/StaticSwitchWithConditionalContinue.sksl", "/sksl/errors/StaticSwitchWithConditionalReturn.sksl", - "/sksl/errors/StructMemberReservedName.sksl", - "/sksl/errors/StructNameWithoutIdentifier.sksl", - "/sksl/errors/StructTooDeeplyNested.sksl", - "/sksl/errors/StructVariableReservedName.sksl", - "/sksl/errors/SwitchDuplicateCase.sksl", - "/sksl/errors/SwitchDuplicateDefault.sksl", - "/sksl/errors/SwitchTypes.sksl", + "/sksl/errors/StructMemberReservedName.rts", + "/sksl/errors/StructNameWithoutIdentifier.rts", + "/sksl/errors/StructTooDeeplyNested.rts", + "/sksl/errors/StructVariableReservedName.rts", + "/sksl/errors/SwitchDuplicateCase.rts", + "/sksl/errors/SwitchDuplicateDefault.rts", + "/sksl/errors/SwitchTypes.rts", "/sksl/errors/SwitchWithContinueInside.sksl", - "/sksl/errors/SwizzleConstantOutput.sksl", - "/sksl/errors/SwizzleDomain.sksl", - "/sksl/errors/SwizzleMatrix.sksl", - "/sksl/errors/SwizzleOnlyLiterals.sksl", - "/sksl/errors/SwizzleOutOfBounds.sksl", - "/sksl/errors/SwizzleTooManyComponents.sksl", - "/sksl/errors/TernaryMismatch.sksl", - "/sksl/errors/UnassignedOutParameter.sksl", - "/sksl/errors/UndeclaredFunction.sksl", - "/sksl/errors/UndefinedFunction.sksl", - "/sksl/errors/UndefinedSymbol.sksl", - "/sksl/errors/UniformVarWithInitializerExpression.sksl", + "/sksl/errors/SwizzleConstantOutput.rts", + "/sksl/errors/SwizzleDomain.rts", + "/sksl/errors/SwizzleMatrix.rts", + "/sksl/errors/SwizzleOnlyLiterals.rts", + "/sksl/errors/SwizzleOutOfBounds.rts", + "/sksl/errors/SwizzleTooManyComponents.rts", + "/sksl/errors/TernaryMismatch.rts", + "/sksl/errors/UnassignedOutParameter.rts", + "/sksl/errors/UndeclaredFunction.rts", + "/sksl/errors/UndefinedFunction.rts", + "/sksl/errors/UndefinedSymbol.rts", + "/sksl/errors/UniformVarWithInitializerExpression.rts", "/sksl/errors/UnknownDivideByZero.sksl", - "/sksl/errors/UnsupportedGLSLIdentifiers.sksl", "/sksl/errors/UnscopedVariableInDoWhile.sksl", - "/sksl/errors/UnscopedVariableInElse.sksl", - "/sksl/errors/UnscopedVariableInFor.sksl", - "/sksl/errors/UnscopedVariableInIf.sksl", + "/sksl/errors/UnscopedVariableInElse.rts", + "/sksl/errors/UnscopedVariableInFor.rts", + "/sksl/errors/UnscopedVariableInIf.rts", "/sksl/errors/UnscopedVariableInWhile.sksl", - "/sksl/errors/UsingInvalidValue.sksl", - "/sksl/errors/VectorIndexOutOfRange.sksl", + "/sksl/errors/UnsupportedGLSLIdentifiers.rts", + "/sksl/errors/UsingInvalidValue.rts", + "/sksl/errors/VectorIndexOutOfRange.rts", "/sksl/errors/VectorInlinedIndexOutOfRange.sksl", - "/sksl/errors/VectorSlice.sksl", + "/sksl/errors/VectorSlice.rts", "/sksl/errors/VertexEarlyReturn.vert", - "/sksl/errors/VoidConstructor.sksl", - "/sksl/errors/VoidInStruct.sksl", - "/sksl/errors/VoidVariable.sksl", + "/sksl/errors/VoidConstructor.rts", + "/sksl/errors/VoidInStruct.rts", + "/sksl/errors/VoidVariable.rts", "/sksl/errors/WhileTypeMismatch.sksl", ] @@ -274,6 +279,7 @@ sksl_metal_tests = [ sksl_spirv_tests = [ "/sksl/spirv/ConstantVectorFromVector.sksl", + "/sksl/spirv/ConstantVectorize.sksl", "/sksl/spirv/InterfaceBlockPushConstant.sksl", "/sksl/spirv/LayoutMultipleOf4.sksl", "/sksl/spirv/LayoutOutOfOrder.sksl", @@ -287,9 +293,11 @@ sksl_spirv_tests = [ "/sksl/errors/LayoutInStruct.sksl", "/sksl/errors/Ossfuzz36850.sksl", "/sksl/errors/Ossfuzz37469.sksl", - "/sksl/errors/UndefinedFunction.sksl", + "/sksl/errors/UndefinedFunction.rts", ] +sksl_wgsl_tests = [ "/sksl/shared/HelloWorld.sksl" ] + sksl_shared_tests = [ "/sksl/intrinsics/AbsFloat.sksl", "/sksl/intrinsics/AbsInt.sksl", @@ -405,6 +413,7 @@ sksl_shared_tests = [ "/sksl/shared/DependentInitializers.sksl", "/sksl/shared/DerivativesUnused.sksl", "/sksl/shared/Discard.sksl", + "/sksl/shared/DoubleNegation.sksl", "/sksl/shared/DoWhileControlFlow.sksl", "/sksl/shared/EmptyBlocksES2.sksl", "/sksl/shared/EmptyBlocksES3.sksl", @@ -422,6 +431,7 @@ sksl_shared_tests = [ "/sksl/shared/Hex.sksl", "/sksl/shared/HexUnsigned.sksl", "/sksl/shared/InoutParameters.sksl", + "/sksl/shared/InoutParamsAreDistinct.sksl", "/sksl/shared/InstanceID.vert", "/sksl/shared/InterfaceBlockNamed.sksl", "/sksl/shared/InterfaceBlockNamedArray.sksl", @@ -433,7 +443,6 @@ sksl_shared_tests = [ "/sksl/shared/MatrixScalarMath.sksl", "/sksl/shared/MatrixToVectorCast.sksl", "/sksl/shared/MultipleAssignments.sksl", - "/sksl/shared/Negation.sksl", "/sksl/shared/NoFragCoordsPos.vert", "/sksl/shared/NoFragCoordsPosRT.vert", "/sksl/shared/NormalizationVert.vert", @@ -457,6 +466,7 @@ sksl_shared_tests = [ "/sksl/shared/Ossfuzz41000.sksl", "/sksl/shared/OutParams.sksl", "/sksl/shared/OutParamsAreDistinct.sksl", + "/sksl/shared/OutParamsAreDistinctFromGlobal.sksl", "/sksl/shared/OutParamsTricky.sksl", "/sksl/shared/Overflow.sksl", "/sksl/shared/RectangleTexture.sksl", @@ -524,10 +534,13 @@ sksl_folding_tests = [ "/sksl/folding/IntFoldingES3.sksl", "/sksl/folding/MatrixFoldingES2.sksl", "/sksl/folding/MatrixFoldingES3.sksl", + "/sksl/folding/Negation.sksl", + "/sksl/folding/PreserveSideEffects.sksl", "/sksl/folding/SelfAssignment.sksl", "/sksl/folding/ShortCircuitBoolFolding.sksl", "/sksl/folding/SwizzleFolding.sksl", "/sksl/folding/SwitchCaseFolding.sksl", + "/sksl/folding/TernaryFolding.sksl", "/sksl/folding/VectorScalarFolding.sksl", "/sksl/folding/VectorVectorFolding.sksl", ] @@ -647,6 +660,7 @@ sksl_rte_tests = [ "/sksl/runtime/LargeProgram_ZeroIterFor.rts", "/sksl/runtime/LoopInt.rts", "/sksl/runtime/LoopFloat.rts", + "/sksl/runtime/MultipleCallsInOneStatement.rts", "/sksl/runtime/PrecisionQualifiers.rts", "/sksl/runtime/QualifierOrder.rts", "/sksl/runtime/RecursiveComparison_Structs.rts", @@ -685,6 +699,7 @@ sksl_rte_error_tests = [ "/sksl/runtime_errors/LoopStructureErrors.rts", "/sksl/runtime_errors/Ossfuzz36655.rts", "/sksl/runtime_errors/Ossfuzz38131.rts", + "/sksl/runtime_errors/Ossfuzz45279.rts", "/sksl/runtime_errors/ProgramTooLarge_BlocklessLoops.rts", "/sksl/runtime_errors/ProgramTooLarge_Extreme.rts", "/sksl/runtime_errors/ProgramTooLarge_FlatLoop.rts", @@ -724,6 +739,13 @@ sksl_glsl_settings_tests_sources = sksl_blend_tests + sksl_settings_tests sksl_metal_tests_sources = sksl_metal_tests + sksl_blend_tests + sksl_shared_tests +# Tests in sksl_wgsl_tests_sources will be compiled with --settings on, and are expected to generate +# a .wgsl output file. +# TODO(skia:13092): WGSL support is WIP and the test sources added here are copies of a subset of +# shared test sources to track development progress. Eventually we want this to at a minimum equal +# sksl_shared_tests. +sksl_wgsl_tests_sources = sksl_wgsl_tests + # Tests in sksl_spirv_tests_sources will be compiled with --settings on, and are expected to # generate a .asm.(frag|vert|geom) output file. sksl_spirv_tests_sources = diff --git a/third_party/skia/gn/tests.gni b/third_party/skia/gn/tests.gni index 2a7eac03f735..c155ae8d4f11 100644 --- a/third_party/skia/gn/tests.gni +++ b/third_party/skia/gn/tests.gni @@ -244,7 +244,6 @@ tests_sources = [ "$_tests/SkRemoteGlyphCacheTest.cpp", "$_tests/SkResourceCacheTest.cpp", "$_tests/SkRuntimeEffectTest.cpp", - "$_tests/SkSLDSLErrorLineNumbers.cpp", "$_tests/SkSLDSLOnlyTest.cpp", "$_tests/SkSLDSLTest.cpp", "$_tests/SkSLES2ConformanceTest.cpp", @@ -335,16 +334,15 @@ metal_tests_sources = [ graphite_tests_sources = [ "$_tests/graphite/BackendTextureTest.cpp", - "$_tests/graphite/ComboTest.cpp", "$_tests/graphite/CommandBufferTest.cpp", "$_tests/graphite/IntersectionTreeTest.cpp", "$_tests/graphite/KeyTest.cpp", "$_tests/graphite/MaskTest.cpp", + "$_tests/graphite/PipelineDataCacheTest.cpp", "$_tests/graphite/RecorderTest.cpp", "$_tests/graphite/RectTest.cpp", "$_tests/graphite/ShapeTest.cpp", "$_tests/graphite/TransformTest.cpp", - "$_tests/graphite/UniformCacheTest.cpp", "$_tests/graphite/UniformTest.cpp", ] diff --git a/third_party/skia/gn/toolchain/wasm.gni b/third_party/skia/gn/toolchain/wasm.gni index cf34caaaa0ed..ce91f7a2867c 100644 --- a/third_party/skia/gn/toolchain/wasm.gni +++ b/third_party/skia/gn/toolchain/wasm.gni @@ -12,7 +12,6 @@ declare_args() { skia_emsdk_dir = rebase_path("../../third_party/externals/emsdk") } -skia_wasm_toolchain = "//gn/toolchain:wasm" is_wasm = target_os == "wasm" # Defines a WASM library target. @@ -38,7 +37,7 @@ template("skia_wasm_lib") { } group("$_lib_name") { - deps = [ ":${_lib_name}.js($skia_wasm_toolchain)" ] + deps = [ ":${_lib_name}.js" ] } } diff --git a/third_party/skia/gn/utils.gni b/third_party/skia/gn/utils.gni index 96fd884d09fd..97f5ed66295a 100644 --- a/third_party/skia/gn/utils.gni +++ b/third_party/skia/gn/utils.gni @@ -32,6 +32,8 @@ skia_utils_sources = [ "$_src/utils/SkAnimCodecPlayer.cpp", "$_src/utils/SkBase64.cpp", "$_src/utils/SkBitSet.h", + "$_src/utils/SkBlitterTrace.h", + "$_src/utils/SkBlitterTraceCommon.h", "$_src/utils/SkCallableTraits.h", "$_src/utils/SkCamera.cpp", "$_src/utils/SkCanvasStack.cpp", @@ -42,6 +44,7 @@ skia_utils_sources = [ "$_src/utils/SkClipStackUtils.cpp", "$_src/utils/SkClipStackUtils.h", "$_src/utils/SkCustomTypeface.cpp", + "$_src/utils/SkCycles.h", "$_src/utils/SkDashPath.cpp", "$_src/utils/SkDashPathPriv.h", "$_src/utils/SkEventTracer.cpp", @@ -75,6 +78,7 @@ skia_utils_sources = [ "$_src/utils/SkShadowUtils.cpp", "$_src/utils/SkShaperJSONWriter.cpp", "$_src/utils/SkShaperJSONWriter.h", + "$_src/utils/SkTestCanvas.h", "$_src/utils/SkTextUtils.cpp", "$_src/utils/SkThreadUtils_pthread.cpp", "$_src/utils/SkThreadUtils_win.cpp", diff --git a/third_party/skia/go.mod b/third_party/skia/go.mod index 41b8110a3aa4..ddf82bec40dc 100644 --- a/third_party/skia/go.mod +++ b/third_party/skia/go.mod @@ -8,16 +8,18 @@ require ( cloud.google.com/go/storage v1.12.0 github.com/andygrunwald/go-gerrit v0.0.0-20200503132804-ed2419acda39 github.com/bazelbuild/remote-apis-sdks v0.0.0-20201120151053-8f976b9bf4fc // indirect + github.com/coreos/go-systemd/v22 v22.1.0 // indirect github.com/flynn/json5 v0.0.0-20160717195620-7620272ed633 + github.com/go-kit/kit v0.10.0 // indirect 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/prometheus/common v0.15.0 // indirect github.com/stretchr/testify v1.6.1 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20220110171919-69477ccd2d29 + go.skia.org/infra v0.0.0-20220408145701-dc0abbc75941 golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58 google.golang.org/api v0.35.0 google.golang.org/genproto v0.0.0-20201119123407-9b1e624d6bc4 // indirect + nhooyr.io/websocket v1.8.7 // indirect ) diff --git a/third_party/skia/go.sum b/third_party/skia/go.sum index bc30895901dd..b290c7bc72ca 100644 --- a/third_party/skia/go.sum +++ b/third_party/skia/go.sum @@ -202,6 +202,8 @@ github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAK github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c h1:+0HFd5KSZ/mm3JmhmrDukiId5iR6w4+BdFtfSy4yWIc= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb h1:m935MPodAbYS46DG4pJSv7WO+VECIWUQ7OJYSoTrMh4= +github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmatcuk/doublestar v1.2.2 h1:oC24CykoSAB8zd7XgruHo33E0cHJf/WhQA/7BeXj+x0= @@ -388,6 +390,8 @@ github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= 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/fsouza/fake-gcs-server v1.17.0 h1:OeH75kBZcZa3ZE+zz/mFdJ2btt9FgqfjI7gIh9+5fvk= github.com/fsouza/fake-gcs-server v1.17.0/go.mod h1:D1rTE4YCyHFNa99oyJJ5HyclvN/0uQR+pM/VdlL83bw= github.com/fvbommel/sortorder v1.0.1 h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqFfzE= @@ -396,6 +400,10 @@ github.com/garyburd/redigo v1.6.0 h1:0VruCpn7yAIIu7pWVClQC8wxCJEcG3nyzpMSHKi1PQc github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= +github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= @@ -413,6 +421,8 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0 h1:dXFJfIHVvUcpSgDOV+Ne6t7jXri8Tfv2uOLHUZ2XNuo= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= +github.com/go-kit/log v0.1.0 h1:DGJh0Sm43HbOeYDNnVZFl8BvcYVvjD5bqYJvp0REbwQ= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= 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 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4= @@ -472,6 +482,14 @@ github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+ github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= github.com/go-openapi/validate v0.19.8 h1:YFzsdWIDfVuLvIOF+ZmKjVg1MbPJ1QgY9PihMwei1ys= github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= +github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= +github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-python/gpython v0.0.3 h1:QNFZ0h540Lajx7Pi/os06XzzdYUQG+2sV7IvPo/Mvmg= 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= @@ -483,6 +501,12 @@ github.com/gobuffalo/here v0.6.0 h1:hYrd0a6gDmWxBM4TnrGw8mQg24iSVoIkHEk7FodQcBI= github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/gocql/gocql v0.0.0-20190301043612-f6df8288f9b4 h1:vF83LI8tAakwEwvWZtrIEx7pOySacl2TOxx6eXk4ePo= github.com/gocql/gocql v0.0.0-20190301043612-f6df8288f9b4/go.mod h1:4Fw1eo5iaEhDUs8XyuhSVCVy52Jq3L+/3GJgYkwc+/0= github.com/godbus/dbus v4.1.0+incompatible h1:WqqLRTsQic3apZUK9qC5sGNfXthmPXzUZ7nQPrNITa4= @@ -570,6 +594,9 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +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 h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-github/v29 v29.0.3 h1:IktKCTwU//aFHnpA+2SLIi7Oo9uhAzgsdZNbcAqhgdc= @@ -635,6 +662,7 @@ github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyC github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= @@ -800,8 +828,12 @@ github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= 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 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +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 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= @@ -823,6 +855,7 @@ github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHz github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= 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= @@ -846,6 +879,8 @@ 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/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= 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= @@ -938,6 +973,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= @@ -1078,6 +1115,8 @@ github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeD github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0 h1:zvJNkoCFAnYFNC24FV8nW4JdRJ3GIFcLbg65lL/JDcw= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= +github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -1094,6 +1133,8 @@ github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB8 github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.15.0 h1:4fgOnadei3EZvgRwxJ7RMpG1k1pOZth5Pc13tyspaKM= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= +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-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -1102,6 +1143,8 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= github.com/prometheus/procfs v0.2.0/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 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a h1:9ZKAASQSHhDYGoxY8uLVpewe1GDZ2vu2Tr/vTdVAkFQ= @@ -1245,8 +1288,12 @@ github.com/twitchtv/twirp v7.1.0+incompatible h1:3fNSDoSPyq+fTrifIvGue9XM/tptzuh github.com/twitchtv/twirp v7.1.0+incompatible/go.mod h1:RRJoFSAmTEh2weEqWtpPE3vFK5YBhA6bqp2l1kfCC5A= github.com/ugorji/go v1.1.4 h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8 h1:3SVOIvH7Ae1KRYyQWRjXWJEA9sS/c/pjvH++55Gr648= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/unrolled/secure v1.0.8 h1:JaMvKbe4CRt8oyxVXn+xY+6jlqd7pyJNSVkmsBxxQsM= github.com/unrolled/secure v1.0.8/go.mod h1:fO+mEan+FLB0CdEnHf6Q4ZZVNqG+5fuLFnP8p0BXDPI= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= @@ -1321,6 +1368,12 @@ go.skia.org/infra v0.0.0-20211221155757-2dce552b7a06 h1:0nA6CcXj6OayS2l7WKWT8xY/ go.skia.org/infra v0.0.0-20211221155757-2dce552b7a06/go.mod h1:F317bWqAb10VqH9f5yC3cZugJ87N0Lvoi5xjM+vmR1g= go.skia.org/infra v0.0.0-20220110171919-69477ccd2d29 h1:EQFMh6ZPs6RJ7pyDiH3z1JrIEl/BR2YNGqMAdctU7N8= go.skia.org/infra v0.0.0-20220110171919-69477ccd2d29/go.mod h1:F317bWqAb10VqH9f5yC3cZugJ87N0Lvoi5xjM+vmR1g= +go.skia.org/infra v0.0.0-20220218204246-e55dd748425d h1:kJI4Qi6P70H38eByqCxaM5P1DSyStOYr56zM1sjoitU= +go.skia.org/infra v0.0.0-20220218204246-e55dd748425d/go.mod h1:M2kWv30a9SuDTrCr46O0KQsbhsP7ean3Z93P09X6+QA= +go.skia.org/infra v0.0.0-20220223133516-d8a552a29e02 h1:a9vcNLAkQ84ggJZkrWeHUggxXUPviw2HVmcGGB7L3UY= +go.skia.org/infra v0.0.0-20220223133516-d8a552a29e02/go.mod h1:M2kWv30a9SuDTrCr46O0KQsbhsP7ean3Z93P09X6+QA= +go.skia.org/infra v0.0.0-20220408145701-dc0abbc75941 h1:TD1IztBVQVEmoYykyeZo5eGivdxodqfRGRhKKQ26CQg= +go.skia.org/infra v0.0.0-20220408145701-dc0abbc75941/go.mod h1:D+0KvP53NTPdZymM3r+u+wPV1tuZUNAc35revwOX0r8= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc= 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= @@ -1487,6 +1540,9 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201008141435-b3e1573b7520/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= 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 h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/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= @@ -1549,8 +1605,12 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073 h1:8qxJSnu+7dRq6upnbntrmriWByIakBuct5OM/MdQC1M= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE= @@ -1770,6 +1830,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1 h1:7QnIQpGRHE5RnLKnESfDoxm2dTapTZua5a0kS0A+VXQ= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1897,6 +1959,8 @@ modernc.org/strutil v1.1.0 h1:+1/yCzZxY2pZwwrsbH+4T7BQMoLQ9QiBshRC9eicYsc= modernc.org/strutil v1.1.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= modernc.org/zappy v1.0.0 h1:dPVaP+3ueIUv4guk8PuZ2wiUGcJ1WUVvIheeSSTD0yk= modernc.org/zappy v1.0.0/go.mod h1:hHe+oGahLVII/aTTyWK/b53VDHMAGCBYYeZ9sn83HC4= +nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= +nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0 h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY= diff --git a/third_party/skia/go_repositories.bzl b/third_party/skia/go_repositories.bzl index f1e12f607c07..da3ce84493d1 100644 --- a/third_party/skia/go_repositories.bzl +++ b/third_party/skia/go_repositories.bzl @@ -4,8 +4,8 @@ def go_repositories(): go_repository( name = "co_honnef_go_tools", importpath = "honnef.co/go/tools", - sum = "h1:W18jzjh8mfPez+AwGLxmOImucz/IFjpNlrKVnaj2YVc=", - version = "v0.0.1-2020.1.6", + sum = "h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8=", + version = "v0.0.1-2020.1.4", ) go_repository( name = "com_github_99designs_goodies", @@ -256,8 +256,8 @@ def go_repositories(): go_repository( name = "com_github_bazelbuild_rules_go", importpath = "github.com/bazelbuild/rules_go", - sum = "h1:mb2SfWfQcOkIGTEf8QdRna9nF6nnjlyv/qeXvPVkleE=", - version = "v0.25.0", + sum = "h1:wzbawlkLtl2ze9w/312NHZ84c7kpUCtlkD8HgFY27sw=", + version = "v0.0.0-20190719190356-6dae44dc5cab", ) go_repository( name = "com_github_beorn7_perks", @@ -289,6 +289,13 @@ def go_repositories(): sum = "h1:+0HFd5KSZ/mm3JmhmrDukiId5iR6w4+BdFtfSy4yWIc=", version = "v0.0.3-0.20200106085610-5cbc8cc4026c", ) + go_repository( + name = "com_github_blakesmith_ar", + importpath = "github.com/blakesmith/ar", + sum = "h1:m935MPodAbYS46DG4pJSv7WO+VECIWUQ7OJYSoTrMh4=", + version = "v0.0.0-20190502131153-809d4375e1fb", + ) + go_repository( name = "com_github_blang_semver", importpath = "github.com/blang/semver", @@ -700,8 +707,8 @@ def go_repositories(): go_repository( name = "com_github_dustin_go_humanize", importpath = "github.com/dustin/go-humanize", - sum = "h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=", - version = "v1.0.0", + sum = "h1:qk/FSDDxo05wdJH28W+p5yivv7LuLYLRXPPD8KQCtZs=", + version = "v0.0.0-20171111073723-bb3d318650d4", ) go_repository( name = "com_github_eapache_go_resiliency", @@ -832,8 +839,8 @@ def go_repositories(): go_repository( name = "com_github_fsnotify_fsnotify", importpath = "github.com/fsnotify/fsnotify", - sum = "h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=", - version = "v1.4.9", + sum = "h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=", + version = "v1.5.1", ) go_repository( name = "com_github_fsouza_fake_gcs_server", @@ -871,6 +878,19 @@ def go_repositories(): sum = "h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=", version = "v1.0.0", ) + go_repository( + name = "com_github_gin_contrib_sse", + importpath = "github.com/gin-contrib/sse", + sum = "h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=", + version = "v0.1.0", + ) + go_repository( + name = "com_github_gin_gonic_gin", + importpath = "github.com/gin-gonic/gin", + sum = "h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14=", + version = "v1.6.3", + ) + go_repository( name = "com_github_gliderlabs_ssh", importpath = "github.com/gliderlabs/ssh", @@ -907,6 +927,13 @@ def go_repositories(): sum = "h1:dXFJfIHVvUcpSgDOV+Ne6t7jXri8Tfv2uOLHUZ2XNuo=", version = "v0.10.0", ) + go_repository( + name = "com_github_go_kit_log", + importpath = "github.com/go-kit/log", + sum = "h1:DGJh0Sm43HbOeYDNnVZFl8BvcYVvjD5bqYJvp0REbwQ=", + version = "v0.1.0", + ) + go_repository( name = "com_github_go_logfmt_logfmt", importpath = "github.com/go-logfmt/logfmt", @@ -979,6 +1006,31 @@ def go_repositories(): sum = "h1:YFzsdWIDfVuLvIOF+ZmKjVg1MbPJ1QgY9PihMwei1ys=", version = "v0.19.8", ) + go_repository( + name = "com_github_go_playground_assert_v2", + importpath = "github.com/go-playground/assert/v2", + sum = "h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=", + version = "v2.0.1", + ) + go_repository( + name = "com_github_go_playground_locales", + importpath = "github.com/go-playground/locales", + sum = "h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q=", + version = "v0.13.0", + ) + go_repository( + name = "com_github_go_playground_universal_translator", + importpath = "github.com/go-playground/universal-translator", + sum = "h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no=", + version = "v0.17.0", + ) + go_repository( + name = "com_github_go_playground_validator_v10", + importpath = "github.com/go-playground/validator/v10", + sum = "h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY=", + version = "v10.2.0", + ) + go_repository( name = "com_github_go_python_gpython", importpath = "github.com/go-python/gpython", @@ -1009,6 +1061,25 @@ def go_repositories(): sum = "h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=", version = "v0.2.3", ) + go_repository( + name = "com_github_gobwas_httphead", + importpath = "github.com/gobwas/httphead", + sum = "h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0=", + version = "v0.0.0-20180130184737-2c6c146eadee", + ) + go_repository( + name = "com_github_gobwas_pool", + importpath = "github.com/gobwas/pool", + sum = "h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8=", + version = "v0.2.0", + ) + go_repository( + name = "com_github_gobwas_ws", + importpath = "github.com/gobwas/ws", + sum = "h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo=", + version = "v1.0.2", + ) + go_repository( name = "com_github_gocql_gocql", importpath = "github.com/gocql/gocql", @@ -1150,8 +1221,8 @@ def go_repositories(): go_repository( name = "com_github_google_go_cmp", importpath = "github.com/google/go-cmp", - sum = "h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=", - version = "v0.5.4", + sum = "h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=", + version = "v0.5.7", ) go_repository( name = "com_github_google_go_github", @@ -1672,8 +1743,8 @@ def go_repositories(): go_repository( name = "com_github_json_iterator_go", importpath = "github.com/json-iterator/go", - sum = "h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=", - version = "v1.1.10", + sum = "h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=", + version = "v1.1.12", ) go_repository( name = "com_github_jstemmer_go_junit_report", @@ -1708,8 +1779,8 @@ def go_repositories(): go_repository( name = "com_github_kevinburke_ssh_config", importpath = "github.com/kevinburke/ssh_config", - sum = "h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck=", - version = "v0.0.0-20201106050909-4977a11b4351", + sum = "h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY=", + version = "v0.0.0-20190725054713-01f96b0aa0cd", ) go_repository( name = "com_github_kisielk_errcheck", @@ -1756,8 +1827,8 @@ def go_repositories(): go_repository( name = "com_github_kr_pretty", importpath = "github.com/kr/pretty", - sum = "h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=", - version = "v0.2.1", + sum = "h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=", + version = "v0.2.0", ) go_repository( name = "com_github_kr_pty", @@ -1777,6 +1848,13 @@ def go_repositories(): sum = "h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=", version = "v1.1.0", ) + go_repository( + name = "com_github_leodido_go_urn", + importpath = "github.com/leodido/go-urn", + sum = "h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y=", + version = "v1.2.0", + ) + go_repository( name = "com_github_lib_pq", importpath = "github.com/lib/pq", @@ -1828,8 +1906,8 @@ def go_repositories(): go_repository( name = "com_github_mailru_easyjson", importpath = "github.com/mailru/easyjson", - sum = "h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=", - version = "v0.7.6", + sum = "h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8=", + version = "v0.7.1", ) go_repository( name = "com_github_makenowjust_heredoc", @@ -1888,8 +1966,8 @@ def go_repositories(): go_repository( name = "com_github_mattn_go_runewidth", importpath = "github.com/mattn/go-runewidth", - sum = "h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=", - version = "v0.0.9", + sum = "h1:Ei8KR0497xHyKJPAv59M1dkC+rOZCMBJ+t3fZ+twI54=", + version = "v0.0.7", ) go_repository( name = "com_github_mattn_go_sqlite3", @@ -1906,8 +1984,8 @@ def go_repositories(): go_repository( name = "com_github_microsoft_go_winio", importpath = "github.com/Microsoft/go-winio", - sum = "h1:qkLXKzb1QoVatRyd/YlXZ/Kg0m5K3SPuoD82jjSOaBc=", - version = "v0.4.15", + sum = "h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=", + version = "v0.4.14", ) go_repository( name = "com_github_miekg_dns", @@ -1990,8 +2068,8 @@ def go_repositories(): go_repository( name = "com_github_modern_go_reflect2", importpath = "github.com/modern-go/reflect2", - sum = "h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=", - version = "v1.0.1", + sum = "h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=", + version = "v1.0.2", ) go_repository( name = "com_github_monochromegane_go_gitignore", @@ -2284,8 +2362,8 @@ def go_repositories(): go_repository( name = "com_github_peterh_liner", importpath = "github.com/peterh/liner", - sum = "h1:w/UPXyl5GfahFxcTOz2j9wCIHNI+pUPr2laqpojKNCg=", - version = "v1.2.0", + sum = "h1:f+aAedNJA6uk7+6rXsYBnhdo4Xux7ESLe+kcuVUF5os=", + version = "v1.1.0", ) go_repository( name = "com_github_phpdave11_gofpdi", @@ -2338,8 +2416,8 @@ def go_repositories(): go_repository( name = "com_github_prometheus_client_golang", importpath = "github.com/prometheus/client_golang", - sum = "h1:zvJNkoCFAnYFNC24FV8nW4JdRJ3GIFcLbg65lL/JDcw=", - version = "v1.8.0", + sum = "h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ=", + version = "v1.11.0", ) go_repository( name = "com_github_prometheus_client_model", @@ -2350,14 +2428,14 @@ def go_repositories(): go_repository( name = "com_github_prometheus_common", importpath = "github.com/prometheus/common", - sum = "h1:4fgOnadei3EZvgRwxJ7RMpG1k1pOZth5Pc13tyspaKM=", - version = "v0.15.0", + sum = "h1:iMAkS2TDoNWnKM+Kopnx/8tnEStIfpYA0ur0xQzzhMQ=", + version = "v0.26.0", ) go_repository( name = "com_github_prometheus_procfs", importpath = "github.com/prometheus/procfs", - sum = "h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4=", - version = "v0.2.0", + sum = "h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4=", + version = "v0.6.0", ) go_repository( name = "com_github_prometheus_tsdb", @@ -2410,8 +2488,8 @@ def go_repositories(): go_repository( name = "com_github_rogpeppe_go_internal", importpath = "github.com/rogpeppe/go-internal", - sum = "h1:Usqs0/lDK/NqTkvrmKSwA/3XkZAs7ZAW/eLeQ2MVBTw=", - version = "v1.5.0", + sum = "h1:RR9dF3JtopPvtkroDZuVD7qquD0bnHlKSqaQhgwt8yk=", + version = "v1.3.0", ) go_repository( name = "com_github_rs_cors", @@ -2704,14 +2782,14 @@ def go_repositories(): go_repository( name = "com_github_ugorji_go", importpath = "github.com/ugorji/go", - sum = "h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw=", - version = "v1.1.4", + sum = "h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo=", + version = "v1.1.7", ) go_repository( name = "com_github_ugorji_go_codec", importpath = "github.com/ugorji/go/codec", - sum = "h1:3SVOIvH7Ae1KRYyQWRjXWJEA9sS/c/pjvH++55Gr648=", - version = "v0.0.0-20181204163529-d75b2dcb6bc8", + sum = "h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs=", + version = "v1.1.7", ) go_repository( name = "com_github_unrolled_secure", @@ -2788,8 +2866,8 @@ def go_repositories(): go_repository( name = "com_github_xanzy_ssh_agent", importpath = "github.com/xanzy/ssh-agent", - sum = "h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI=", - version = "v0.3.0", + sum = "h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70=", + version = "v0.2.1", ) go_repository( name = "com_github_xdg_scram", @@ -3217,6 +3295,13 @@ def go_repositories(): sum = "h1:CbnUZsM497iRC5QMVkHwyl8s2tB3g7yaSHkYPkpgelw=", version = "v0.0.0-20201110183641-67b214c5f920", ) + go_repository( + name = "io_nhooyr_websocket", + importpath = "nhooyr.io/websocket", + sum = "h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g=", + version = "v1.8.7", + ) + go_repository( name = "io_opencensus_go", importpath = "go.opencensus.io", @@ -3244,14 +3329,14 @@ def go_repositories(): go_repository( name = "io_rsc_sampler", importpath = "rsc.io/sampler", - sum = "h1:7i08f/p5TBU5joCPW3GjWG1ZFCmr28ybGqlXtelhEK8=", - version = "v1.99.99", + sum = "h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4=", + version = "v1.3.0", ) go_repository( name = "net_starlark_go", importpath = "go.starlark.net", - sum = "h1:JPjLPz44y2N9mkzh2N344kTk1Y4/V4yJAjTrXGmzv8I=", - version = "v0.0.0-20201118183435-e55f603d8c79", + sum = "h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc=", + version = "v0.0.0-20200306205701-8dd3e2ee1dd5", ) go_repository( name = "org_chromium_go_gae", @@ -3261,6 +3346,9 @@ def go_repositories(): ) go_repository( name = "org_chromium_go_luci", + # This module is distributed with pre-generated .pb.go files, so we disable generation of + # go_proto_library targets. + build_file_proto_mode = "disable", importpath = "go.chromium.org/luci", sum = "h1:Qe0s5XpxD36QC+7OVnc1Ce8igF3sfTo3f3ad4WKEpNo=", version = "v0.0.0-20201121231857-b9ab316d7198", @@ -3304,8 +3392,8 @@ def go_repositories(): go_repository( name = "org_golang_google_protobuf", importpath = "google.golang.org/protobuf", - sum = "h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=", - version = "v1.25.0", + sum = "h1:7QnIQpGRHE5RnLKnESfDoxm2dTapTZua5a0kS0A+VXQ=", + version = "v1.26.0-rc.1", ) go_repository( name = "org_golang_x_build", @@ -3322,8 +3410,8 @@ def go_repositories(): go_repository( name = "org_golang_x_exp", importpath = "golang.org/x/exp", - sum = "h1:jqhIzSw5SQNkbu5hOGpgMHhkfXxrbsLJdkIRcX19gCY=", - version = "v0.0.0-20200228211341-fcea875c7e85", + sum = "h1:QE6XYQK6naiK1EPAe1g/ILLxN5RBoH5xkJk3CqlMI/Y=", + version = "v0.0.0-20200224162631-6cc2880d07d6", ) go_repository( name = "org_golang_x_image", @@ -3370,14 +3458,14 @@ def go_repositories(): go_repository( name = "org_golang_x_sync", importpath = "golang.org/x/sync", - sum = "h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck=", - version = "v0.0.0-20201020160332-67f06af15bc9", + sum = "h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=", + version = "v0.0.0-20210220032951-036812b2e83c", ) go_repository( name = "org_golang_x_sys", importpath = "golang.org/x/sys", - sum = "h1:8qxJSnu+7dRq6upnbntrmriWByIakBuct5OM/MdQC1M=", - version = "v0.0.0-20210225134936-a50acf3fe073", + sum = "h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I=", + version = "v0.0.0-20210630005230-0f9fa26af87c", ) go_repository( name = "org_golang_x_term", @@ -3490,8 +3578,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:EQFMh6ZPs6RJ7pyDiH3z1JrIEl/BR2YNGqMAdctU7N8=", - version = "v0.0.0-20220110171919-69477ccd2d29", + sum = "h1:TD1IztBVQVEmoYykyeZo5eGivdxodqfRGRhKKQ26CQg=", + version = "v0.0.0-20220408145701-dc0abbc75941", ) go_repository( name = "org_uber_go_atomic", diff --git a/third_party/skia/include/android/BUILD.bazel b/third_party/skia/include/android/BUILD.bazel index 0ee0f5aa7561..ddaba8bc4409 100644 --- a/third_party/skia/include/android/BUILD.bazel +++ b/third_party/skia/include/android/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkAndroidFrameworkUtils_hdr", hdrs = ["SkAndroidFrameworkUtils.h"], diff --git a/third_party/skia/include/c/BUILD.bazel b/third_party/skia/include/c/BUILD.bazel index ffb4f7f6b55f..44c87670697a 100644 --- a/third_party/skia/include/c/BUILD.bazel +++ b/third_party/skia/include/c/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "sk_canvas_hdr", hdrs = ["sk_canvas.h"], diff --git a/third_party/skia/include/codec/BUILD.bazel b/third_party/skia/include/codec/BUILD.bazel index 27db9c460b73..c28757ce6380 100644 --- a/third_party/skia/include/codec/BUILD.bazel +++ b/third_party/skia/include/codec/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkAndroidCodec_hdr", hdrs = ["SkAndroidCodec.h"], diff --git a/third_party/skia/include/codec/SkCodec.h b/third_party/skia/include/codec/SkCodec.h index 0f891c7979b4..d2715d9a4195 100644 --- a/third_party/skia/include/codec/SkCodec.h +++ b/third_party/skia/include/codec/SkCodec.h @@ -760,6 +760,10 @@ class SK_API SkCodec : SkNoncopyable { void setSrcXformFormat(XformFormat pixelFormat); + XformFormat getSrcXformFormat() const { + return fSrcXformFormat; + } + virtual SkISize onGetScaledDimensions(float /*desiredScale*/) const { // By default, scaling is not supported. return this->dimensions(); diff --git a/third_party/skia/include/config/BUILD.bazel b/third_party/skia/include/config/BUILD.bazel index ad2d64d7bbd7..419fd1004a71 100644 --- a/third_party/skia/include/config/BUILD.bazel +++ b/third_party/skia/include/config/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkUserConfig_hdr", hdrs = ["SkUserConfig.h"], diff --git a/third_party/skia/include/core/BUILD.bazel b/third_party/skia/include/core/BUILD.bazel index e7ee356e21dc..c724386b299f 100644 --- a/third_party/skia/include/core/BUILD.bazel +++ b/third_party/skia/include/core/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkAnnotation_hdr", hdrs = ["SkAnnotation.h"], @@ -90,7 +92,6 @@ generated_cc_atom( ":SkTypes_hdr", "//include/private:SkDeque_hdr", "//include/private:SkMacros_hdr", - "//include/private:SkTOptional_hdr", ], ) @@ -141,7 +142,7 @@ generated_cc_atom( hdrs = ["SkColor.h"], visibility = ["//:__subpackages__"], deps = [ - ":SkImageInfo_hdr", + ":SkAlphaType_hdr", ":SkScalar_hdr", ":SkTypes_hdr", ], @@ -274,6 +275,7 @@ generated_cc_atom( hdrs = ["SkFontArguments.h"], visibility = ["//:__subpackages__"], deps = [ + ":SkColor_hdr", ":SkScalar_hdr", ":SkTypes_hdr", ], @@ -354,7 +356,6 @@ generated_cc_atom( hdrs = ["SkImageEncoder.h"], visibility = ["//:__subpackages__"], deps = [ - ":SkBitmap_hdr", ":SkData_hdr", ":SkEncodedImageFormat_hdr", ":SkPixmap_hdr", @@ -383,7 +384,6 @@ generated_cc_atom( ":SkImageInfo_hdr", ":SkImage_hdr", ":SkYUVAPixmaps_hdr", - "//include/private:SkTOptional_hdr", ], ) @@ -392,9 +392,12 @@ generated_cc_atom( hdrs = ["SkImageInfo.h"], visibility = ["//:__subpackages__"], deps = [ + ":SkAlphaType_hdr", ":SkColorSpace_hdr", + ":SkColorType_hdr", ":SkMath_hdr", ":SkRect_hdr", + ":SkRefCnt_hdr", ":SkSize_hdr", "//include/private:SkTFitsIn_hdr", "//include/private:SkTo_hdr", @@ -406,7 +409,6 @@ generated_cc_atom( hdrs = ["SkImage.h"], visibility = ["//:__subpackages__"], deps = [ - ":SkImageEncoder_hdr", ":SkImageInfo_hdr", ":SkRefCnt_hdr", ":SkSamplingOptions_hdr", @@ -414,7 +416,7 @@ generated_cc_atom( ":SkShader_hdr", ":SkTileMode_hdr", "//include/gpu:GrTypes_hdr", - "//include/private:SkTOptional_hdr", + "//include/gpu/graphite:GraphiteTypes_hdr", ], ) @@ -494,7 +496,6 @@ generated_cc_atom( ":SkBlendMode_hdr", ":SkColor_hdr", ":SkRefCnt_hdr", - "//include/private:SkTOptional_hdr", "//include/private:SkTo_hdr", ], ) @@ -507,6 +508,7 @@ generated_cc_atom( ":SkMatrix_hdr", ":SkPathTypes_hdr", ":SkPath_hdr", + ":SkRefCnt_hdr", "//include/private:SkTDArray_hdr", ], ) @@ -547,7 +549,7 @@ generated_cc_atom( deps = [ ":SkMatrix_hdr", ":SkPathTypes_hdr", - "//include/private:SkPathRef_hdr", + ":SkRefCnt_hdr", "//include/private:SkTo_hdr", ], ) @@ -933,10 +935,10 @@ generated_cc_atom( generated_cc_atom( name = "SkCustomMesh_hdr", hdrs = ["SkCustomMesh.h"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ - ":SkColorSpace_hdr", - ":SkImageInfo_hdr", + ":SkAlphaType_hdr", ":SkRect_hdr", ":SkRefCnt_hdr", ":SkSpan_hdr", @@ -944,3 +946,16 @@ generated_cc_atom( ":SkTypes_hdr", ], ) + +generated_cc_atom( + name = "SkAlphaType_hdr", + hdrs = ["SkAlphaType.h"], + visibility = ["//:__subpackages__"], +) + +generated_cc_atom( + name = "SkColorType_hdr", + hdrs = ["SkColorType.h"], + visibility = ["//:__subpackages__"], + deps = [":SkTypes_hdr"], +) diff --git a/third_party/skia/include/core/SkAlphaType.h b/third_party/skia/include/core/SkAlphaType.h new file mode 100644 index 000000000000..0c99906dfd54 --- /dev/null +++ b/third_party/skia/include/core/SkAlphaType.h @@ -0,0 +1,45 @@ +/* + * 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 SkAlphaType_DEFINED +#define SkAlphaType_DEFINED + +/** \enum SkAlphaType + Describes how to interpret the alpha component of a pixel. A pixel may + be opaque, or alpha, describing multiple levels of transparency. + + In simple blending, alpha weights the draw color and the destination + color to create a new color. If alpha describes a weight from zero to one: + + new color = draw color * alpha + destination color * (1 - alpha) + + In practice alpha is encoded in two or more bits, where 1.0 equals all bits set. + + RGB may have alpha included in each component value; the stored + value is the original RGB multiplied by alpha. Premultiplied color + components improve performance. +*/ +enum SkAlphaType : int { + kUnknown_SkAlphaType, //!< uninitialized + kOpaque_SkAlphaType, //!< pixel is opaque + kPremul_SkAlphaType, //!< pixel components are premultiplied by alpha + kUnpremul_SkAlphaType, //!< pixel components are independent of alpha + kLastEnum_SkAlphaType = kUnpremul_SkAlphaType, //!< last valid value +}; + +/** Returns true if SkAlphaType equals kOpaque_SkAlphaType. + + kOpaque_SkAlphaType is a hint that the SkColorType is opaque, or that all + alpha values are set to their 1.0 equivalent. If SkAlphaType is + kOpaque_SkAlphaType, and SkColorType is not opaque, then the result of + drawing any pixel with a alpha value less than 1.0 is undefined. +*/ +static inline bool SkAlphaTypeIsOpaque(SkAlphaType at) { + return kOpaque_SkAlphaType == at; +} + +#endif diff --git a/third_party/skia/include/core/SkBitmap.h b/third_party/skia/include/core/SkBitmap.h index 088280fbeaac..db0d1776525d 100644 --- a/third_party/skia/include/core/SkBitmap.h +++ b/third_party/skia/include/core/SkBitmap.h @@ -18,6 +18,7 @@ #include "include/core/SkTileMode.h" class SkBitmap; +class SkColorSpace; struct SkMask; class SkMipmap; struct SkIRect; @@ -158,7 +159,7 @@ class SK_API SkBitmap { @return SkColorSpace in SkImageInfo, or nullptr */ - SkColorSpace* colorSpace() const { return fPixmap.colorSpace(); } + SkColorSpace* colorSpace() const; /** Returns smart pointer to SkColorSpace, the range of colors, associated with SkImageInfo. The smart pointer tracks the number of objects sharing this @@ -168,7 +169,7 @@ class SK_API SkBitmap { @return SkColorSpace in SkImageInfo wrapped in a smart pointer */ - sk_sp refColorSpace() const { return fPixmap.info().refColorSpace(); } + sk_sp refColorSpace() const; /** Returns number of bytes per pixel required by SkColorType. Returns zero if colorType( is kUnknown_SkColorType. diff --git a/third_party/skia/include/core/SkCanvas.h b/third_party/skia/include/core/SkCanvas.h index 3a7d53064ad7..87d55c236788 100644 --- a/third_party/skia/include/core/SkCanvas.h +++ b/third_party/skia/include/core/SkCanvas.h @@ -28,10 +28,10 @@ #include "include/core/SkTypes.h" #include "include/private/SkDeque.h" #include "include/private/SkMacros.h" -#include "include/private/SkTOptional.h" #include #include +#include #include #ifndef SK_SUPPORT_LEGACY_GETTOTALMATRIX @@ -66,6 +66,9 @@ class SkSurface_Base; class SkTextBlob; class SkVertices; +namespace skgpu::graphite { class Recorder; } +namespace SkRecords { class Draw; } + /** \class SkCanvas SkCanvas provides an interface for drawing, and how the drawing is clipped and transformed. SkCanvas contains a stack of SkMatrix and clip values. @@ -297,6 +300,12 @@ class SK_API SkCanvas { */ virtual GrRecordingContext* recordingContext(); + /** Returns Recorder for the GPU surface associated with SkCanvas. + + @return Recorder, if available; nullptr otherwise + */ + virtual skgpu::graphite::Recorder* recorder(); + #ifdef STARBOARD /** * Return the framebuffer object identifier for the render target, if @@ -1445,6 +1454,7 @@ class SK_API SkCanvas { SrcRectConstraint controls the behavior at the edge of source SkRect, provided to drawImageRect() when there is any filtering. If kStrict is set, then extra code is used to ensure it nevers samples outside of the src-rect. + kStrict_SrcRectConstraint disables the use of mipmaps. */ enum SrcRectConstraint { kStrict_SrcRectConstraint, //!< sample only inside bounds; slower @@ -2272,12 +2282,12 @@ class SK_API SkCanvas { #if SK_SUPPORT_GPU /** Experimental */ - virtual sk_sp doConvertBlobToSlug( - const SkTextBlob& blob, SkPoint origin, const SkPaint& paint); + virtual sk_sp onConvertGlyphRunListToSlug( + const SkGlyphRunList& glyphRunList, const SkPaint& paint); /** Experimental */ - virtual void doDrawSlug(GrSlug* slug); + virtual void onDrawSlug(const GrSlug* slug); #endif private: @@ -2361,10 +2371,6 @@ class SK_API SkCanvas { void reset(SkBaseDevice* device); }; - SkDeque fMCStack; - // points to top of stack - MCRec* fMCRec; - // the first N recs that can fit here mean we won't call malloc #if defined(STARBOARD) // Cobalt uses various compilers, set a safe larger size. @@ -2376,6 +2382,10 @@ class SK_API SkCanvas { intptr_t fMCRecStorage[kMCRecSize * kMCRecCount / sizeof(intptr_t)]; + SkDeque fMCStack; + // points to top of stack + MCRec* fMCRec; + // Installed via init() sk_sp fBaseDevice; const SkSurfaceProps fProps; @@ -2408,6 +2418,10 @@ class SK_API SkCanvas { friend class SkPictureRecord; // predrawNotify (why does it need it? ) friend class SkOverdrawCanvas; friend class SkRasterHandleAllocator; + friend class SkRecords::Draw; + template + friend class SkTestCanvas; + protected: // For use by SkNoDrawCanvas (via SkCanvasVirtualEnforcer, which can't be a friend) SkCanvas(const SkIRect& bounds); @@ -2430,7 +2444,7 @@ class SK_API SkCanvas { /** Experimental * Draw an GrSlug given the current canvas state. */ - void drawSlug(GrSlug* slug); + void drawSlug(const GrSlug* slug); #endif /** Experimental diff --git a/third_party/skia/include/core/SkColor.h b/third_party/skia/include/core/SkColor.h index 9cba771ddd61..a6e63def2379 100644 --- a/third_party/skia/include/core/SkColor.h +++ b/third_party/skia/include/core/SkColor.h @@ -8,7 +8,7 @@ #ifndef SkColor_DEFINED #define SkColor_DEFINED -#include "include/core/SkImageInfo.h" +#include "include/core/SkAlphaType.h" #include "include/core/SkScalar.h" #include "include/core/SkTypes.h" diff --git a/third_party/skia/include/core/SkColorFilter.h b/third_party/skia/include/core/SkColorFilter.h index e949b24ac597..ca428cf5b80f 100644 --- a/third_party/skia/include/core/SkColorFilter.h +++ b/third_party/skia/include/core/SkColorFilter.h @@ -13,6 +13,7 @@ #include "include/core/SkFlattenable.h" class SkColorMatrix; +class SkColorSpace; /** * ColorFilters are optional objects in the drawing pipeline. When present in diff --git a/third_party/skia/include/core/SkColorType.h b/third_party/skia/include/core/SkColorType.h new file mode 100644 index 000000000000..b51aa7b96f96 --- /dev/null +++ b/third_party/skia/include/core/SkColorType.h @@ -0,0 +1,66 @@ +/* + * 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 SkColorType_DEFINED +#define SkColorType_DEFINED + +#include "include/core/SkTypes.h" + +/** \enum SkColorType + Describes how pixel bits encode color. A pixel may be an alpha mask, a grayscale, RGB, or ARGB. + + kN32_SkColorType selects the native 32-bit ARGB format for the current configuration. This can + lead to inconsistent results across platforms, so use with caution. +*/ +enum SkColorType : int { + kUnknown_SkColorType, //!< uninitialized + kAlpha_8_SkColorType, //!< pixel with alpha in 8-bit byte + kRGB_565_SkColorType, //!< pixel with 5 bits red, 6 bits green, 5 bits blue, in 16-bit word + kARGB_4444_SkColorType, //!< pixel with 4 bits for alpha, red, green, blue; in 16-bit word + kRGBA_8888_SkColorType, //!< pixel with 8 bits for red, green, blue, alpha; in 32-bit word + kRGB_888x_SkColorType, //!< pixel with 8 bits each for red, green, blue; in 32-bit word + kBGRA_8888_SkColorType, //!< pixel with 8 bits for blue, green, red, alpha; in 32-bit word + kRGBA_1010102_SkColorType, //!< 10 bits for red, green, blue; 2 bits for alpha; in 32-bit word + kBGRA_1010102_SkColorType, //!< 10 bits for blue, green, red; 2 bits for alpha; in 32-bit word + kRGB_101010x_SkColorType, //!< pixel with 10 bits each for red, green, blue; in 32-bit word + kBGR_101010x_SkColorType, //!< pixel with 10 bits each for blue, green, red; in 32-bit word + kGray_8_SkColorType, //!< pixel with grayscale level in 8-bit byte + kRGBA_F16Norm_SkColorType, //!< pixel with half floats in [0,1] for red, green, blue, alpha; + // in 64-bit word + kRGBA_F16_SkColorType, //!< pixel with half floats for red, green, blue, alpha; + // in 64-bit word + kRGBA_F32_SkColorType, //!< pixel using C float for red, green, blue, alpha; in 128-bit word + + // The following 6 colortypes are just for reading from - not for rendering to + kR8G8_unorm_SkColorType, //!< pixel with a uint8_t for red and green + + kA16_float_SkColorType, //!< pixel with a half float for alpha + kR16G16_float_SkColorType, //!< pixel with a half float for red and green + + kA16_unorm_SkColorType, //!< pixel with a little endian uint16_t for alpha + kR16G16_unorm_SkColorType, //!< pixel with a little endian uint16_t for red and green + kR16G16B16A16_unorm_SkColorType, //!< pixel with a little endian uint16_t for red, green, blue + // and alpha + + kSRGBA_8888_SkColorType, + kR8_unorm_SkColorType, + + kLastEnum_SkColorType = kR8_unorm_SkColorType, //!< last valid value + +#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) + kN32_SkColorType = kBGRA_8888_SkColorType,//!< native 32-bit BGRA encoding + +#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) + kN32_SkColorType = kRGBA_8888_SkColorType,//!< native 32-bit RGBA encoding + +#else + #error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order" +#endif +}; +static constexpr int kSkColorTypeCnt = static_cast(kLastEnum_SkColorType) + 1; + +#endif diff --git a/third_party/skia/include/core/SkCustomMesh.h b/third_party/skia/include/core/SkCustomMesh.h index f9bddf3385ce..118388042e9f 100644 --- a/third_party/skia/include/core/SkCustomMesh.h +++ b/third_party/skia/include/core/SkCustomMesh.h @@ -8,18 +8,20 @@ #ifndef SkCustomMesh_DEFINED #define SkCustomMesh_DEFINED -#include "include/core/SkTypes.h" +#include "include/core/SkTypes.h" // IWYU pragma: keep #ifdef SK_ENABLE_SKSL -#include "include/core/SkColorSpace.h" -#include "include/core/SkImageInfo.h" +#include "include/core/SkAlphaType.h" #include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" #include "include/core/SkSpan.h" #include "include/core/SkString.h" +#include #include +class SkColorSpace; + namespace SkSL { struct Program; } /** @@ -111,13 +113,24 @@ class SkCustomMeshSpecification : public SkNVRefCnt { * @param at The alpha type of the color produced by 'fs'. Ignored if 'fs's main() * function does not have a color out param. Cannot be kUnknown. */ + static Result Make(SkSpan attributes, + size_t vertexStride, + SkSpan varyings, + const SkString& vs, + const SkString& fs); + static Result Make(SkSpan attributes, + size_t vertexStride, + SkSpan varyings, + const SkString& vs, + const SkString& fs, + sk_sp cs); static Result Make(SkSpan attributes, size_t vertexStride, SkSpan varyings, const SkString& vs, const SkString& fs, - sk_sp cs = SkColorSpace::MakeSRGB(), - SkAlphaType at = kPremul_SkAlphaType); + sk_sp cs, + SkAlphaType at); SkSpan attributes() const { return SkMakeSpan(fAttributes); } diff --git a/third_party/skia/include/core/SkImage.h b/third_party/skia/include/core/SkImage.h index 72dfefa3450c..493e383a8052 100644 --- a/third_party/skia/include/core/SkImage.h +++ b/third_party/skia/include/core/SkImage.h @@ -8,41 +8,52 @@ #ifndef SkImage_DEFINED #define SkImage_DEFINED -#include "include/core/SkImageEncoder.h" #include "include/core/SkImageInfo.h" #include "include/core/SkRefCnt.h" #include "include/core/SkSamplingOptions.h" #include "include/core/SkScalar.h" #include "include/core/SkShader.h" #include "include/core/SkTileMode.h" -#include "include/private/SkTOptional.h" #if SK_SUPPORT_GPU #include "include/gpu/GrTypes.h" #endif +#if SK_GRAPHITE_ENABLED +#include "include/gpu/graphite/GraphiteTypes.h" +#endif #include // std::function +#include #if defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26 #include #endif -class SkData; +class GrBackendFormat; +class GrBackendTexture; +class GrContextThreadSafeProxy; +class GrDirectContext; +class GrRecordingContext; +class GrYUVABackendTextureInfo; +class GrYUVABackendTextures; class SkCanvas; +class SkData; class SkImage; class SkImageFilter; class SkImageGenerator; class SkMipmap; class SkPaint; class SkPicture; +class SkPixmap; class SkPromiseImageTexture; class SkSurface; class SkYUVAPixmaps; -class GrBackendFormat; -class GrBackendTexture; -class GrDirectContext; -class GrRecordingContext; -class GrContextThreadSafeProxy; -class GrYUVABackendTextureInfo; -class GrYUVABackendTextures; + +enum class SkEncodedImageFormat; + +#if SK_GRAPHITE_ENABLED +namespace skgpu::graphite { +class Recorder; +}; +#endif /** \class SkImage SkImage describes a two dimensional array of pixels to draw. The pixels may be @@ -390,12 +401,21 @@ class SK_API SkImage : public SkRefCnt { @param colorSpace range of colors; may be nullptr @return created SkImage, or nullptr */ + static sk_sp MakeFromAdoptedTexture(GrRecordingContext* context, + const GrBackendTexture& backendTexture, + GrSurfaceOrigin textureOrigin, + SkColorType colorType); static sk_sp MakeFromAdoptedTexture(GrRecordingContext* context, const GrBackendTexture& backendTexture, GrSurfaceOrigin textureOrigin, SkColorType colorType, - SkAlphaType alphaType = kPremul_SkAlphaType, - sk_sp colorSpace = nullptr); + SkAlphaType alphaType); + static sk_sp MakeFromAdoptedTexture(GrRecordingContext* context, + const GrBackendTexture& backendTexture, + GrSurfaceOrigin textureOrigin, + SkColorType colorType, + SkAlphaType alphaType, + sk_sp colorSpace); /** Creates an SkImage from YUV[A] planar textures. This requires that the textures stay valid for the lifetime of the image. The ReleaseContext can be used to know when it is safe to @@ -722,7 +742,7 @@ class SK_API SkImage : public SkRefCnt { */ bool peekPixels(SkPixmap* pixmap) const; - /** Returns true the contents of SkImage was created on or uploaded to GPU memory, + /** Returns true if the contents of SkImage was created on or uploaded to GPU memory, and is available as a GPU texture. @return true if SkImage is a GPU texture @@ -1122,6 +1142,31 @@ class SK_API SkImage : public SkRefCnt { sk_sp makeTextureImage(GrDirectContext*, GrMipmapped = GrMipmapped::kNo, SkBudgeted = SkBudgeted::kYes) const; +#endif +#ifdef SK_GRAPHITE_ENABLED + /** Graphite version of makeTextureImage. + + Returns SkImage backed by GPU texture, using Recorder for creation and uploads if necessary. + The returned SkImage respects mipMapped setting for non-GPU SkImages; if mipMapped + equals GrMipmapped::kYes, the backing texture allocates mip map levels. + + It is assumed that MIP maps are always supported by the GPU. + + Returns original SkImage if the image is already texture-backed, the recorder matches, and + mipMapped is compatible with the backing GPU texture. If mipmapped is not compatible, + it will return nullptr. + + Returns nullptr if recorder is nullptr, or if SkImage was created with another + Recorder and work on that Recorder has not been submitted. + + @param Recorder the Recorder to use for storing commands + @param Mipmapped whether created SkImage texture must allocate mip map levels + @return created SkImage, or nullptr + */ + sk_sp makeTextureImage(skgpu::graphite::Recorder*, + skgpu::graphite::Mipmapped = skgpu::graphite::Mipmapped::kNo, + SkBudgeted = SkBudgeted::kYes) const; + #endif /** Returns raster image or lazy image. Copies SkImage backed by GPU texture into diff --git a/third_party/skia/include/core/SkImageEncoder.h b/third_party/skia/include/core/SkImageEncoder.h index fd7bc8036940..15796220a5b3 100644 --- a/third_party/skia/include/core/SkImageEncoder.h +++ b/third_party/skia/include/core/SkImageEncoder.h @@ -8,9 +8,6 @@ #ifndef SkImageEncoder_DEFINED #define SkImageEncoder_DEFINED -// TODO: update clients so we can remove this include, they should IWYU -#include "include/core/SkBitmap.h" - #include "include/core/SkData.h" #include "include/core/SkEncodedImageFormat.h" #include "include/core/SkPixmap.h" diff --git a/third_party/skia/include/core/SkImageGenerator.h b/third_party/skia/include/core/SkImageGenerator.h index bdd913c61f4c..970ccdbab9f4 100644 --- a/third_party/skia/include/core/SkImageGenerator.h +++ b/third_party/skia/include/core/SkImageGenerator.h @@ -13,7 +13,8 @@ #include "include/core/SkImage.h" #include "include/core/SkImageInfo.h" #include "include/core/SkYUVAPixmaps.h" -#include "include/private/SkTOptional.h" + +#include class GrRecordingContext; class GrSurfaceProxyView; diff --git a/third_party/skia/include/core/SkImageInfo.h b/third_party/skia/include/core/SkImageInfo.h index 6426811c1bd7..d53fd4ae4f95 100644 --- a/third_party/skia/include/core/SkImageInfo.h +++ b/third_party/skia/include/core/SkImageInfo.h @@ -8,9 +8,12 @@ #ifndef SkImageInfo_DEFINED #define SkImageInfo_DEFINED -#include "include/core/SkColorSpace.h" +#include "include/core/SkAlphaType.h" +#include "include/core/SkColorSpace.h" // TODO(kjlubick) Remove this after clients fixed +#include "include/core/SkColorType.h" #include "include/core/SkMath.h" #include "include/core/SkRect.h" +#include "include/core/SkRefCnt.h" #include "include/core/SkSize.h" #include "include/private/SkTFitsIn.h" @@ -18,101 +21,7 @@ class SkReadBuffer; class SkWriteBuffer; - -/** \enum SkImageInfo::SkAlphaType - Describes how to interpret the alpha component of a pixel. A pixel may - be opaque, or alpha, describing multiple levels of transparency. - - In simple blending, alpha weights the draw color and the destination - color to create a new color. If alpha describes a weight from zero to one: - - new color = draw color * alpha + destination color * (1 - alpha) - - In practice alpha is encoded in two or more bits, where 1.0 equals all bits set. - - RGB may have alpha included in each component value; the stored - value is the original RGB multiplied by alpha. Premultiplied color - components improve performance. -*/ -enum SkAlphaType : int { - kUnknown_SkAlphaType, //!< uninitialized - kOpaque_SkAlphaType, //!< pixel is opaque - kPremul_SkAlphaType, //!< pixel components are premultiplied by alpha - kUnpremul_SkAlphaType, //!< pixel components are independent of alpha - kLastEnum_SkAlphaType = kUnpremul_SkAlphaType, //!< last valid value -}; - -/** Returns true if SkAlphaType equals kOpaque_SkAlphaType. - - kOpaque_SkAlphaType is a hint that the SkColorType is opaque, or that all - alpha values are set to their 1.0 equivalent. If SkAlphaType is - kOpaque_SkAlphaType, and SkColorType is not opaque, then the result of - drawing any pixel with a alpha value less than 1.0 is undefined. -*/ -static inline bool SkAlphaTypeIsOpaque(SkAlphaType at) { - return kOpaque_SkAlphaType == at; -} - -/////////////////////////////////////////////////////////////////////////////// - -/** \enum SkImageInfo::SkColorType - Describes how pixel bits encode color. A pixel may be an alpha mask, a grayscale, RGB, or ARGB. - - kN32_SkColorType selects the native 32-bit ARGB format for the current configuration. This can - lead to inconsistent results across platforms, so use with caution. -*/ -enum SkColorType : int { - kUnknown_SkColorType, //!< uninitialized - kAlpha_8_SkColorType, //!< pixel with alpha in 8-bit byte - kRGB_565_SkColorType, //!< pixel with 5 bits red, 6 bits green, 5 bits blue, in 16-bit word - kARGB_4444_SkColorType, //!< pixel with 4 bits for alpha, red, green, blue; in 16-bit word - kRGBA_8888_SkColorType, //!< pixel with 8 bits for red, green, blue, alpha; in 32-bit word - kRGB_888x_SkColorType, //!< pixel with 8 bits each for red, green, blue; in 32-bit word - kBGRA_8888_SkColorType, //!< pixel with 8 bits for blue, green, red, alpha; in 32-bit word - kRGBA_1010102_SkColorType, //!< 10 bits for red, green, blue; 2 bits for alpha; in 32-bit word - kBGRA_1010102_SkColorType, //!< 10 bits for blue, green, red; 2 bits for alpha; in 32-bit word - kRGB_101010x_SkColorType, //!< pixel with 10 bits each for red, green, blue; in 32-bit word - kBGR_101010x_SkColorType, //!< pixel with 10 bits each for blue, green, red; in 32-bit word - kGray_8_SkColorType, //!< pixel with grayscale level in 8-bit byte - kRGBA_F16Norm_SkColorType, //!< pixel with half floats in [0,1] for red, green, blue, alpha; - // in 64-bit word - kRGBA_F16_SkColorType, //!< pixel with half floats for red, green, blue, alpha; - // in 64-bit word - kRGBA_F32_SkColorType, //!< pixel using C float for red, green, blue, alpha; in 128-bit word - - // The following 6 colortypes are just for reading from - not for rendering to - kR8G8_unorm_SkColorType, //!< pixel with a uint8_t for red and green - - kA16_float_SkColorType, //!< pixel with a half float for alpha - kR16G16_float_SkColorType, //!< pixel with a half float for red and green - - kA16_unorm_SkColorType, //!< pixel with a little endian uint16_t for alpha - kR16G16_unorm_SkColorType, //!< pixel with a little endian uint16_t for red and green - kR16G16B16A16_unorm_SkColorType, //!< pixel with a little endian uint16_t for red, green, blue - // and alpha - - kSRGBA_8888_SkColorType, - kR8_unorm_SkColorType, - - kLastEnum_SkColorType = kR8_unorm_SkColorType, //!< last valid value - -#if !defined(STARBOARD) -#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) - kN32_SkColorType = kBGRA_8888_SkColorType,//!< native 32-bit BGRA encoding - -#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) - kN32_SkColorType = kRGBA_8888_SkColorType,//!< native 32-bit RGBA encoding - -#else - #error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order" -#endif -#endif -}; - -#if defined(STARBOARD) -#define kN32_SkColorType \ - (GetSkPmcolor() == SkPmcolorIsBgra ? kBGRA_8888_SkColorType : kRGBA_8888_SkColorType) -#endif +class SkColorSpace; /** Returns the number of bytes required to store a pixel, including unused padding. Returns zero if ct is kUnknown_SkColorType or invalid. @@ -191,7 +100,8 @@ class SK_API SkColorInfo { @return empty SkImageInfo */ - SkColorInfo() = default; + SkColorInfo(); + ~SkColorInfo(); /** Creates SkColorInfo from SkColorType ct, SkAlphaType at, and optionally SkColorSpace cs. @@ -202,17 +112,16 @@ class SK_API SkColorInfo { combination is supported. @return created SkColorInfo */ - SkColorInfo(SkColorType ct, SkAlphaType at, sk_sp cs) - : fColorSpace(std::move(cs)), fColorType(ct), fAlphaType(at) {} + SkColorInfo(SkColorType ct, SkAlphaType at, sk_sp cs); - SkColorInfo(const SkColorInfo&) = default; - SkColorInfo(SkColorInfo&&) = default; + SkColorInfo(const SkColorInfo&); + SkColorInfo(SkColorInfo&&); - SkColorInfo& operator=(const SkColorInfo&) = default; - SkColorInfo& operator=(SkColorInfo&&) = default; + SkColorInfo& operator=(const SkColorInfo&); + SkColorInfo& operator=(SkColorInfo&&); - SkColorSpace* colorSpace() const { return fColorSpace.get(); } - sk_sp refColorSpace() const { return fColorSpace; } + SkColorSpace* colorSpace() const; + sk_sp refColorSpace() const; SkColorType colorType() const { return fColorType; } SkAlphaType alphaType() const { return fAlphaType; } @@ -221,16 +130,13 @@ class SK_API SkColorInfo { || SkColorTypeIsAlwaysOpaque(fColorType); } - bool gammaCloseToSRGB() const { return fColorSpace && fColorSpace->gammaCloseToSRGB(); } + bool gammaCloseToSRGB() const; /** Does other represent the same color type, alpha type, and color space? */ - bool operator==(const SkColorInfo& other) const { - return fColorType == other.fColorType && fAlphaType == other.fAlphaType && - SkColorSpace::Equals(fColorSpace.get(), other.fColorSpace.get()); - } + bool operator==(const SkColorInfo& other) const; /** Does other represent a different color type, alpha type, or color space? */ - bool operator!=(const SkColorInfo& other) const { return !(*this == other); } + bool operator!=(const SkColorInfo& other) const; /** Creates SkColorInfo with same SkColorType, SkColorSpace, with SkAlphaType set to newAlphaType. @@ -238,23 +144,17 @@ class SK_API SkColorInfo { Created SkColorInfo contains newAlphaType even if it is incompatible with SkColorType, in which case SkAlphaType in SkColorInfo is ignored. */ - SkColorInfo makeAlphaType(SkAlphaType newAlphaType) const { - return SkColorInfo(this->colorType(), newAlphaType, this->refColorSpace()); - } + SkColorInfo makeAlphaType(SkAlphaType newAlphaType) const; /** Creates new SkColorInfo with same SkAlphaType, SkColorSpace, with SkColorType set to newColorType. */ - SkColorInfo makeColorType(SkColorType newColorType) const { - return SkColorInfo(newColorType, this->alphaType(), this->refColorSpace()); - } + SkColorInfo makeColorType(SkColorType newColorType) const; /** Creates SkColorInfo with same SkAlphaType, SkColorType, with SkColorSpace set to cs. cs may be nullptr. */ - SkColorInfo makeColorSpace(sk_sp cs) const { - return SkColorInfo(this->colorType(), this->alphaType(), std::move(cs)); - } + SkColorInfo makeColorSpace(sk_sp cs) const; /** Returns number of bytes per pixel required by SkColorType. Returns zero if colorType() is kUnknown_SkColorType. @@ -314,14 +214,12 @@ struct SK_API SkImageInfo { @param cs range of colors; may be nullptr @return created SkImageInfo */ + static SkImageInfo Make(int width, int height, SkColorType ct, SkAlphaType at); static SkImageInfo Make(int width, int height, SkColorType ct, SkAlphaType at, - sk_sp cs = nullptr) { - return SkImageInfo({width, height}, {ct, at, std::move(cs)}); - } + sk_sp cs); + static SkImageInfo Make(SkISize dimensions, SkColorType ct, SkAlphaType at); static SkImageInfo Make(SkISize dimensions, SkColorType ct, SkAlphaType at, - sk_sp cs = nullptr) { - return SkImageInfo(dimensions, {ct, at, std::move(cs)}); - } + sk_sp cs); /** Creates SkImageInfo from integral dimensions and SkColorInfo colorInfo, @@ -355,10 +253,8 @@ struct SK_API SkImageInfo { @param cs range of colors; may be nullptr @return created SkImageInfo */ - static SkImageInfo MakeN32(int width, int height, SkAlphaType at, - sk_sp cs = nullptr) { - return Make({width, height}, kN32_SkColorType, at, std::move(cs)); - } + static SkImageInfo MakeN32(int width, int height, SkAlphaType at); + static SkImageInfo MakeN32(int width, int height, SkAlphaType at, sk_sp cs); /** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType, SkAlphaType at, with sRGB SkColorSpace. @@ -388,9 +284,8 @@ struct SK_API SkImageInfo { @param cs range of colors; may be nullptr @return created SkImageInfo */ - static SkImageInfo MakeN32Premul(int width, int height, sk_sp cs = nullptr) { - return Make({width, height}, kN32_SkColorType, kPremul_SkAlphaType, std::move(cs)); - } + static SkImageInfo MakeN32Premul(int width, int height); + static SkImageInfo MakeN32Premul(int width, int height, sk_sp cs); /** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType, kPremul_SkAlphaType, with SkColorSpace set to nullptr. @@ -405,9 +300,8 @@ struct SK_API SkImageInfo { @param cs range of colors; may be nullptr @return created SkImageInfo */ - static SkImageInfo MakeN32Premul(SkISize dimensions, sk_sp cs = nullptr) { - return Make(dimensions, kN32_SkColorType, kPremul_SkAlphaType, std::move(cs)); - } + static SkImageInfo MakeN32Premul(SkISize dimensions); + static SkImageInfo MakeN32Premul(SkISize dimensions, sk_sp cs); /** Creates SkImageInfo from integral dimensions width and height, kAlpha_8_SkColorType, kPremul_SkAlphaType, with SkColorSpace set to nullptr. @@ -416,18 +310,14 @@ struct SK_API SkImageInfo { @param height pixel row count; must be zero or greater @return created SkImageInfo */ - static SkImageInfo MakeA8(int width, int height) { - return Make({width, height}, kAlpha_8_SkColorType, kPremul_SkAlphaType, nullptr); - } + static SkImageInfo MakeA8(int width, int height); /** Creates SkImageInfo from integral dimensions, kAlpha_8_SkColorType, kPremul_SkAlphaType, with SkColorSpace set to nullptr. @param dimensions pixel row and column count; must be zero or greater @return created SkImageInfo */ - static SkImageInfo MakeA8(SkISize dimensions) { - return Make(dimensions, kAlpha_8_SkColorType, kPremul_SkAlphaType, nullptr); - } + static SkImageInfo MakeA8(SkISize dimensions); /** Creates SkImageInfo from integral dimensions width and height, kUnknown_SkColorType, kUnknown_SkAlphaType, with SkColorSpace set to nullptr. @@ -439,9 +329,7 @@ struct SK_API SkImageInfo { @param height pixel row count; must be zero or greater @return created SkImageInfo */ - static SkImageInfo MakeUnknown(int width, int height) { - return Make({width, height}, kUnknown_SkColorType, kUnknown_SkAlphaType, nullptr); - } + static SkImageInfo MakeUnknown(int width, int height); /** Creates SkImageInfo from integral dimensions width and height set to zero, kUnknown_SkColorType, kUnknown_SkAlphaType, with SkColorSpace set to nullptr. @@ -476,7 +364,7 @@ struct SK_API SkImageInfo { @return SkColorSpace, or nullptr */ - SkColorSpace* colorSpace() const { return fColorInfo.colorSpace(); } + SkColorSpace* colorSpace() const; /** Returns smart pointer to SkColorSpace, the range of colors. The smart pointer tracks the number of objects sharing this SkColorSpace reference so the memory @@ -486,7 +374,7 @@ struct SK_API SkImageInfo { @return SkColorSpace wrapped in a smart pointer */ - sk_sp refColorSpace() const { return fColorInfo.refColorSpace(); } + sk_sp refColorSpace() const; /** Returns if SkImageInfo describes an empty area of pixels by checking if either width or height is zero or smaller. @@ -579,9 +467,7 @@ struct SK_API SkImageInfo { @param cs range of colors; may be nullptr @return created SkImageInfo */ - SkImageInfo makeColorSpace(sk_sp cs) const { - return Make(fDimensions, fColorInfo.makeColorSpace(std::move(cs))); - } + SkImageInfo makeColorSpace(sk_sp cs) const; /** Returns number of bytes per pixel required by SkColorType. Returns zero if colorType( is kUnknown_SkColorType. diff --git a/third_party/skia/include/core/SkMilestone.h b/third_party/skia/include/core/SkMilestone.h index 5409f46dea78..0f79b1a2fb90 100644 --- a/third_party/skia/include/core/SkMilestone.h +++ b/third_party/skia/include/core/SkMilestone.h @@ -5,5 +5,5 @@ * found in the LICENSE file. */ #ifndef SK_MILESTONE -#define SK_MILESTONE 100 +#define SK_MILESTONE 102 #endif diff --git a/third_party/skia/include/core/SkPaint.h b/third_party/skia/include/core/SkPaint.h index 08c4aa9e41c3..0a6064dcbd5b 100644 --- a/third_party/skia/include/core/SkPaint.h +++ b/third_party/skia/include/core/SkPaint.h @@ -11,9 +11,10 @@ #include "include/core/SkBlendMode.h" #include "include/core/SkColor.h" #include "include/core/SkRefCnt.h" -#include "include/private/SkTOptional.h" #include "include/private/SkTo.h" +#include + class SkBlender; class SkColorFilter; class SkColorSpace; @@ -649,23 +650,7 @@ class SK_API SkPaint { @param storage computed bounds of geometry; may not be nullptr @return fast computed bounds */ - const SkRect& computeFastBounds(const SkRect& orig, SkRect* storage) const { - // Things like stroking, etc... will do math on the bounds rect, assuming that it's sorted. - SkASSERT(orig.isSorted()); - SkPaint::Style style = this->getStyle(); - // ultra fast-case: filling with no effects that affect geometry - if (kFill_Style == style) { - uintptr_t effects = 0; - effects |= reinterpret_cast(this->getMaskFilter()); - effects |= reinterpret_cast(this->getPathEffect()); - effects |= reinterpret_cast(this->getImageFilter()); - if (!effects) { - return orig; - } - } - - return this->doComputeFastBounds(orig, storage, style); - } + const SkRect& computeFastBounds(const SkRect& orig, SkRect* storage) const; /** (to be made private) diff --git a/third_party/skia/include/core/SkPath.h b/third_party/skia/include/core/SkPath.h index 178e4d22f215..89364725a8a3 100644 --- a/third_party/skia/include/core/SkPath.h +++ b/third_party/skia/include/core/SkPath.h @@ -10,16 +10,21 @@ #include "include/core/SkMatrix.h" #include "include/core/SkPathTypes.h" -#include "include/private/SkPathRef.h" +#include "include/core/SkRefCnt.h" #include "include/private/SkTo.h" #include +#include class SkAutoPathBoundsUpdate; class SkData; +class SkPathRef; class SkRRect; class SkWStream; +enum class SkPathConvexity; +enum class SkPathFirstDirection; + // WIP -- define this locally, and fix call-sites to use SkPathBuilder (skbug.com/9000) //#define SK_HIDE_PATH_EDIT_METHODS @@ -225,9 +230,7 @@ class SK_API SkPath { /** Returns true if the path is convex. If necessary, it will first compute the convexity. */ - bool isConvex() const { - return SkPathConvexity::kConvex == this->getConvexity(); - } + bool isConvex() const; /** Returns true if this path is recognized as an oval or circle. @@ -285,10 +288,7 @@ class SK_API SkPath { @return true if the path contains no SkPath::Verb array */ - bool isEmpty() const { - SkDEBUGCODE(this->validate();) - return 0 == fPathRef->countVerbs(); - } + bool isEmpty() const; /** Returns if contour is closed. Contour is closed if SkPath SkPath::Verb array was last modified by close(). When stroked, @@ -306,10 +306,7 @@ class SK_API SkPath { @return true if all SkPoint values are finite */ - bool isFinite() const { - SkDEBUGCODE(this->validate();) - return fPathRef->isFinite(); - } + bool isFinite() const; /** Returns true if the path is volatile; it will not be altered or discarded by the caller after it is drawn. SkPath by default have volatile set false, allowing @@ -482,9 +479,7 @@ class SK_API SkPath { @return bounds of all SkPoint in SkPoint array */ - const SkRect& getBounds() const { - return fPathRef->getBounds(); - } + const SkRect& getBounds() const; /** Updates internal bounds so that subsequent calls to getBounds() are instantaneous. Unaltered copies of SkPath may also access cached bounds through getBounds(). @@ -1409,7 +1404,7 @@ class SK_API SkPath { @return SegmentMask bits or zero */ - uint32_t getSegmentMasks() const { return fPathRef->getSegmentMasks(); } + uint32_t getSegmentMasks() const; /** \enum SkPath::Verb Verb instructs SkPath how to interpret one or more SkPoint and optional conic weight; @@ -1759,7 +1754,7 @@ class SK_API SkPath { @return true if SkPath data is consistent */ - bool isValid() const { return this->isValidImpl() && fPathRef->isValid(); } + bool isValid() const; private: SkPath(sk_sp, SkPathFillType, bool isVolatile, SkPathConvexity, @@ -1810,12 +1805,14 @@ class SK_API SkPath { SkPathConvexity computeConvexity() const; + bool isValidImpl() const; /** Asserts if SkPath data is inconsistent. Debugging check intended for internal use only. */ - SkDEBUGCODE(void validate() const { SkASSERT(this->isValidImpl()); } ) - bool isValidImpl() const; - SkDEBUGCODE(void validateRef() const { fPathRef->validate(); } ) +#ifdef SK_DEBUG + void validate() const; + void validateRef() const; +#endif // called by stroker to see if all points (in the last contour) are equal and worthy of a cap bool isZeroLengthSincePoint(int startPtIndex) const; @@ -1823,18 +1820,10 @@ class SK_API SkPath { /** Returns if the path can return a bound at no cost (true) or will have to perform some computation (false). */ - bool hasComputedBounds() const { - SkDEBUGCODE(this->validate();) - return fPathRef->hasComputedBounds(); - } - + bool hasComputedBounds() const; // 'rect' needs to be sorted - void setBounds(const SkRect& rect) { - SkPathRef::Editor ed(&fPathRef); - - ed.setBounds(rect); - } + void setBounds(const SkRect& rect); void setPt(int index, SkScalar x, SkScalar y); @@ -1852,9 +1841,7 @@ class SK_API SkPath { */ SkPathConvexity getConvexity() const; - SkPathConvexity getConvexityOrUnknown() const { - return (SkPathConvexity)fConvexity.load(std::memory_order_relaxed); - } + SkPathConvexity getConvexityOrUnknown() const; // Compares the cached value with a freshly computed one (computeConvexity()) bool isConvexityAccurate() const; diff --git a/third_party/skia/include/core/SkPathBuilder.h b/third_party/skia/include/core/SkPathBuilder.h index ec10de87efc6..c7ab4b01342a 100644 --- a/third_party/skia/include/core/SkPathBuilder.h +++ b/third_party/skia/include/core/SkPathBuilder.h @@ -11,6 +11,7 @@ #include "include/core/SkMatrix.h" #include "include/core/SkPath.h" #include "include/core/SkPathTypes.h" +#include "include/core/SkRefCnt.h" #include "include/private/SkTDArray.h" class SK_API SkPathBuilder { @@ -241,9 +242,6 @@ class SK_API SkPathBuilder { int fIsAStart = -1; // tracks direction iff fIsA is not unknown bool fIsACCW = false; // tracks direction iff fIsA is not unknown - // for testing - SkPathConvexity fOverrideConvexity = SkPathConvexity::kUnknown; - int countVerbs() const { return fVerbs.count(); } // called right before we add a (non-move) verb @@ -258,9 +256,6 @@ class SK_API SkPathBuilder { SkPathBuilder& privateReverseAddPath(const SkPath&); - // For testing - void privateSetConvexity(SkPathConvexity c) { fOverrideConvexity = c; } - friend class SkPathPriv; }; diff --git a/third_party/skia/include/core/SkPixelRef.h b/third_party/skia/include/core/SkPixelRef.h index 0a55ac339177..ce25665b01a6 100644 --- a/third_party/skia/include/core/SkPixelRef.h +++ b/third_party/skia/include/core/SkPixelRef.h @@ -112,7 +112,7 @@ class SK_API SkPixelRef : public SkRefCnt { void setTemporarilyImmutable(); void restoreMutability(); - friend class SkSurface_Raster; // For the two methods above. + friend class SkSurface_Raster; // For temporary immutable methods above. void setImmutableWithID(uint32_t genID); friend void SkBitmapCache_setImmutableWithID(SkPixelRef*, uint32_t); diff --git a/third_party/skia/include/core/SkPixmap.h b/third_party/skia/include/core/SkPixmap.h index ba1268a2055f..af7e86b18bef 100644 --- a/third_party/skia/include/core/SkPixmap.h +++ b/third_party/skia/include/core/SkPixmap.h @@ -12,6 +12,7 @@ #include "include/core/SkImageInfo.h" #include "include/core/SkSamplingOptions.h" +class SkColorSpace; class SkData; struct SkMask; @@ -170,7 +171,7 @@ class SK_API SkPixmap { @return SkColorSpace in SkImageInfo, or nullptr */ - SkColorSpace* colorSpace() const { return fInfo.colorSpace(); } + SkColorSpace* colorSpace() const; /** Returns smart pointer to SkColorSpace, the range of colors, associated with SkImageInfo. The smart pointer tracks the number of objects sharing this @@ -180,7 +181,7 @@ class SK_API SkPixmap { @return SkColorSpace in SkImageInfo wrapped in a smart pointer */ - sk_sp refColorSpace() const { return fInfo.refColorSpace(); } + sk_sp refColorSpace() const; /** Returns true if SkAlphaType is kOpaque_SkAlphaType. Does not check if SkColorType allows alpha, or if any pixel value has diff --git a/third_party/skia/include/core/SkRSXform.h b/third_party/skia/include/core/SkRSXform.h index 91653311d979..5fcfff29221a 100644 --- a/third_party/skia/include/core/SkRSXform.h +++ b/third_party/skia/include/core/SkRSXform.h @@ -18,7 +18,7 @@ * [ fSSin fSCos fTy ] * [ 0 0 1 ] */ -struct SkRSXform { +struct SK_API SkRSXform { static SkRSXform Make(SkScalar scos, SkScalar ssin, SkScalar tx, SkScalar ty) { SkRSXform xform = { scos, ssin, tx, ty }; return xform; diff --git a/third_party/skia/include/core/SkSpan.h b/third_party/skia/include/core/SkSpan.h index b09ec867a000..a5a30f5364b6 100644 --- a/third_party/skia/include/core/SkSpan.h +++ b/third_party/skia/include/core/SkSpan.h @@ -33,11 +33,8 @@ class SkSpan { constexpr SkSpan(const SkSpan& that) : fPtr(that.data()), fSize{that.size()} {} constexpr SkSpan(const SkSpan& o) = default; - constexpr SkSpan& operator=(const SkSpan& that) { - fPtr = that.fPtr; - fSize = that.fSize; - return *this; - } + constexpr SkSpan& operator=(const SkSpan& that) = default; + constexpr T& operator [] (size_t i) const { SkASSERT(i < this->size()); return fPtr[i]; @@ -60,6 +57,9 @@ class SkSpan { SkASSERT(postfixLen <= this->size()); return SkSpan{fPtr + (this->size() - postfixLen), postfixLen}; } + constexpr SkSpan subspan(size_t offset) const { + return this->subspan(offset, this->size() - offset); + } constexpr SkSpan subspan(size_t offset, size_t count) const { SkASSERT(offset <= this->size()); SkASSERT(count <= this->size() - offset); diff --git a/third_party/skia/include/core/SkSurface.h b/third_party/skia/include/core/SkSurface.h index 14901ea5f39e..1e9b594fb61c 100644 --- a/third_party/skia/include/core/SkSurface.h +++ b/third_party/skia/include/core/SkSurface.h @@ -38,6 +38,8 @@ class GrRecordingContext; class GrRenderTarget; enum GrSurfaceOrigin: int; +namespace skgpu::graphite { class Recorder; } + /** \class SkSurface SkSurface is responsible for managing the pixels that a canvas draws into. The pixels can be allocated either in CPU memory (a raster surface) or on the GPU (a GrRenderTarget surface). @@ -517,6 +519,12 @@ class SK_API SkSurface : public SkRefCnt { */ GrRecordingContext* recordingContext(); + /** Returns the recorder being used by the SkSurface. + + @return the recorder, if available; nullptr otherwise + */ + skgpu::graphite::Recorder* recorder(); + #if SK_SUPPORT_GPU enum BackendHandleAccess { kFlushRead_BackendHandleAccess, //!< back-end object is readable diff --git a/third_party/skia/include/core/SkTypes.h b/third_party/skia/include/core/SkTypes.h index 41eb19ad859a..c55131ce6ef5 100644 --- a/third_party/skia/include/core/SkTypes.h +++ b/third_party/skia/include/core/SkTypes.h @@ -263,8 +263,10 @@ #if defined(SK_BUILD_FOR_GOOGLE3) void SkDebugfForDumpStackTrace(const char* data, void* unused); - void DumpStackTrace(int skip_count, void w(const char*, void*), void* arg); -# define SK_DUMP_GOOGLE3_STACK() DumpStackTrace(0, SkDebugfForDumpStackTrace, nullptr) + namespace base { + void DumpStackTrace(int skip_count, void w(const char*, void*), void* arg); + } +# define SK_DUMP_GOOGLE3_STACK() ::base::DumpStackTrace(0, SkDebugfForDumpStackTrace, nullptr) #else # define SK_DUMP_GOOGLE3_STACK() #endif @@ -405,8 +407,10 @@ # define GR_TEST_UTILS 0 #endif -#ifndef SK_GPU_V1 -# define SK_GPU_V1 1 +#if !SK_SUPPORT_GPU + #define SK_GPU_V1 0 // always false if Ganesh is disabled +#elif !defined(SK_GPU_V1) +# define SK_GPU_V1 1 // otherwise default to v1 enabled #endif #if defined(SK_HISTOGRAM_ENUMERATION) || \ diff --git a/third_party/skia/include/docs/BUILD.bazel b/third_party/skia/include/docs/BUILD.bazel index c59bf7caefa3..daeed1019938 100644 --- a/third_party/skia/include/docs/BUILD.bazel +++ b/third_party/skia/include/docs/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkPDFDocument_hdr", hdrs = ["SkPDFDocument.h"], diff --git a/third_party/skia/include/effects/BUILD.bazel b/third_party/skia/include/effects/BUILD.bazel index ecb349097b71..89c94d58a882 100644 --- a/third_party/skia/include/effects/BUILD.bazel +++ b/third_party/skia/include/effects/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "Sk1DPathEffect_hdr", hdrs = ["Sk1DPathEffect.h"], @@ -82,7 +84,11 @@ generated_cc_atom( name = "SkGradientShader_hdr", hdrs = ["SkGradientShader.h"], visibility = ["//:__subpackages__"], - deps = ["//include/core:SkShader_hdr"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/core:SkShader_hdr", + "//include/core:SkTileMode_hdr", + ], ) generated_cc_atom( @@ -172,7 +178,6 @@ generated_cc_atom( "//include/core:SkString_hdr", "//include/private:SkOnce_hdr", "//include/private:SkSLSampleUsage_hdr", - "//include/private:SkTOptional_hdr", ], ) diff --git a/third_party/skia/include/effects/SkGradientShader.h b/third_party/skia/include/effects/SkGradientShader.h index f8745c3b7659..13a3e234d00b 100644 --- a/third_party/skia/include/effects/SkGradientShader.h +++ b/third_party/skia/include/effects/SkGradientShader.h @@ -8,7 +8,11 @@ #ifndef SkGradientShader_DEFINED #define SkGradientShader_DEFINED +#include "include/core/SkRefCnt.h" #include "include/core/SkShader.h" +#include "include/core/SkTileMode.h" + +class SkColorSpace; /** \class SkGradientShader @@ -100,9 +104,7 @@ class SK_API SkGradientShader { uint32_t flags, const SkMatrix* localMatrix); static sk_sp MakeLinear(const SkPoint pts[2], const SkColor4f colors[], sk_sp colorSpace, - const SkScalar pos[], int count, SkTileMode mode) { - return MakeLinear(pts, colors, std::move(colorSpace), pos, count, mode, 0, nullptr); - } + const SkScalar pos[], int count, SkTileMode mode); /** Returns a shader that generates a radial gradient given the center and radius.

@@ -146,10 +148,7 @@ class SK_API SkGradientShader { uint32_t flags, const SkMatrix* localMatrix); static sk_sp MakeRadial(const SkPoint& center, SkScalar radius, const SkColor4f colors[], sk_sp colorSpace, - const SkScalar pos[], int count, SkTileMode mode) { - return MakeRadial(center, radius, colors, std::move(colorSpace), pos, count, mode, - 0, nullptr); - } + const SkScalar pos[], int count, SkTileMode mode); /** * Returns a shader that generates a conical gradient given two circles, or @@ -186,10 +185,7 @@ class SK_API SkGradientShader { const SkPoint& end, SkScalar endRadius, const SkColor4f colors[], sk_sp colorSpace, const SkScalar pos[], - int count, SkTileMode mode) { - return MakeTwoPointConical(start, startRadius, end, endRadius, colors, - std::move(colorSpace), pos, count, mode, 0, nullptr); - } + int count, SkTileMode mode); /** Returns a shader that generates a sweep gradient given a center.

@@ -248,15 +244,10 @@ class SK_API SkGradientShader { static sk_sp MakeSweep(SkScalar cx, SkScalar cy, const SkColor4f colors[], sk_sp colorSpace, const SkScalar pos[], int count, - uint32_t flags, const SkMatrix* localMatrix) { - return MakeSweep(cx, cy, colors, std::move(colorSpace), pos, count, - SkTileMode::kClamp, 0, 360, flags, localMatrix); - } + uint32_t flags, const SkMatrix* localMatrix); static sk_sp MakeSweep(SkScalar cx, SkScalar cy, const SkColor4f colors[], sk_sp colorSpace, - const SkScalar pos[], int count) { - return MakeSweep(cx, cy, colors, std::move(colorSpace), pos, count, 0, nullptr); - } + const SkScalar pos[], int count); static void RegisterFlattenables(); }; diff --git a/third_party/skia/include/effects/SkRuntimeEffect.h b/third_party/skia/include/effects/SkRuntimeEffect.h index cdda2b556186..a77a73707438 100644 --- a/third_party/skia/include/effects/SkRuntimeEffect.h +++ b/third_party/skia/include/effects/SkRuntimeEffect.h @@ -18,9 +18,9 @@ #include "include/core/SkString.h" #include "include/private/SkOnce.h" #include "include/private/SkSLSampleUsage.h" -#include "include/private/SkTOptional.h" #include +#include #include #ifdef SK_ENABLE_SKSL @@ -184,6 +184,9 @@ class SK_API SkRuntimeEffect : public SkRefCnt { ChildPtr(sk_sp cf) : fChild(std::move(cf)) {} ChildPtr(sk_sp b) : fChild(std::move(b)) {} + // Asserts that the flattenable is either null, or one of the legal derived types + ChildPtr(sk_sp f); + std::optional type() const; SkShader* shader() const; diff --git a/third_party/skia/include/encode/BUILD.bazel b/third_party/skia/include/encode/BUILD.bazel index fc728d0d0e77..5016df254e28 100644 --- a/third_party/skia/include/encode/BUILD.bazel +++ b/third_party/skia/include/encode/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkEncoder_hdr", hdrs = ["SkEncoder.h"], diff --git a/third_party/skia/include/gpu/BUILD.bazel b/third_party/skia/include/gpu/BUILD.bazel index 9c81d2948c7d..aede5410c5c2 100644 --- a/third_party/skia/include/gpu/BUILD.bazel +++ b/third_party/skia/include/gpu/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrBackendDrawableInfo_hdr", hdrs = ["GrBackendDrawableInfo.h"], @@ -19,7 +21,7 @@ generated_cc_atom( "//include/gpu/gl:GrGLTypes_hdr", "//include/gpu/mtl:GrMtlTypes_hdr", "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:GrD3DTypesMinimal_hdr", + "//include/private/gpu/ganesh:GrD3DTypesMinimal_hdr", ], ) @@ -29,7 +31,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrTypes_hdr", - "//include/private:GrVkTypesPriv_hdr", + "//include/private/gpu/ganesh:GrVkTypesPriv_hdr", ], ) @@ -46,9 +48,10 @@ generated_cc_atom( "//include/gpu/mock:GrMockTypes_hdr", "//include/gpu/mtl:GrMtlTypes_hdr", "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:GrD3DTypesMinimal_hdr", - "//include/private:GrGLTypesPriv_hdr", - "//include/private:GrVkTypesPriv_hdr", + "//include/private/gpu/ganesh:GrD3DTypesMinimal_hdr", + "//include/private/gpu/ganesh:GrGLTypesPriv_hdr", + "//include/private/gpu/ganesh:GrVkTypesPriv_hdr", + "//third_party:dawn", ], ) @@ -70,7 +73,7 @@ generated_cc_atom( "//include/core:SkData_hdr", "//include/core:SkString_hdr", "//include/core:SkTypes_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -119,8 +122,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/core:SkRefCnt_hdr", - "//include/private:GrImageContext_hdr", "//include/private:SkTArray_hdr", + "//include/private/gpu/ganesh:GrImageContext_hdr", ], ) @@ -130,12 +133,12 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrTypes_hdr", - "//include/private:GrD3DTypesMinimal_hdr", - "//include/private:GrDawnTypesPriv_hdr", - "//include/private:GrGLTypesPriv_hdr", - "//include/private:GrMockTypesPriv_hdr", - "//include/private:GrMtlTypesPriv_hdr", - "//include/private:GrVkTypesPriv_hdr", + "//include/private/gpu/ganesh:GrD3DTypesMinimal_hdr", + "//include/private/gpu/ganesh:GrDawnTypesPriv_hdr", + "//include/private/gpu/ganesh:GrGLTypesPriv_hdr", + "//include/private/gpu/ganesh:GrMockTypesPriv_hdr", + "//include/private/gpu/ganesh:GrMtlTypesPriv_hdr", + "//include/private/gpu/ganesh:GrVkTypesPriv_hdr", ], ) @@ -166,3 +169,10 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = ["//include/core:SkTypes_hdr"], ) + +generated_cc_atom( + name = "GpuTypes_hdr", + hdrs = ["GpuTypes.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/core:SkTypes_hdr"], +) diff --git a/third_party/skia/include/gpu/GpuTypes.h b/third_party/skia/include/gpu/GpuTypes.h new file mode 100644 index 000000000000..0c8ffa276fc1 --- /dev/null +++ b/third_party/skia/include/gpu/GpuTypes.h @@ -0,0 +1,32 @@ +/* + * 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_GpuTypes_DEFINED +#define skgpu_GpuTypes_DEFINED + +#include "include/core/SkTypes.h" + +/** + * This file includes numerous public types that are used by all of our gpu backends. + */ + +namespace skgpu { + +/** + * Value passed into various callbacks to tell the client the result of operations connected to a + * specific callback. The actual interpretation of kFailed and kSuccess are dependent on the + * specific callbacks and are documented with the callback itself. + */ +enum class CallbackResult : bool { + kFailed = true, + kSuccess = true, +}; + + +} // namespace skgpu + +#endif // skgpu_GpuTypes_DEFINED diff --git a/third_party/skia/include/gpu/GrBackendSemaphore.h b/third_party/skia/include/gpu/GrBackendSemaphore.h index 83d70adf065f..13d07928e71e 100644 --- a/third_party/skia/include/gpu/GrBackendSemaphore.h +++ b/third_party/skia/include/gpu/GrBackendSemaphore.h @@ -21,7 +21,7 @@ #endif #ifdef SK_DIRECT3D -#include "include/private/GrD3DTypesMinimal.h" +#include "include/private/gpu/ganesh/GrD3DTypesMinimal.h" #endif /** diff --git a/third_party/skia/include/gpu/GrBackendSurface.h b/third_party/skia/include/gpu/GrBackendSurface.h index 66616ef9b50d..8f21ceba38fe 100644 --- a/third_party/skia/include/gpu/GrBackendSurface.h +++ b/third_party/skia/include/gpu/GrBackendSurface.h @@ -13,12 +13,12 @@ #include "include/gpu/GrTypes.h" #ifdef SK_GL #include "include/gpu/gl/GrGLTypes.h" -#include "include/private/GrGLTypesPriv.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/GrVkTypesPriv.h" +#include "include/private/gpu/ganesh/GrVkTypesPriv.h" #endif #ifdef SK_DAWN @@ -31,7 +31,7 @@ class GrGLTextureParameters; class GrColorFormatDesc; #ifdef SK_DAWN -#include "dawn/webgpu_cpp.h" +#include "webgpu/webgpu_cpp.h" #endif #ifdef SK_METAL @@ -39,7 +39,7 @@ class GrColorFormatDesc; #endif #ifdef SK_DIRECT3D -#include "include/private/GrD3DTypesMinimal.h" +#include "include/private/gpu/ganesh/GrD3DTypesMinimal.h" class GrD3DResourceState; #endif @@ -137,6 +137,8 @@ class SK_API GrBackendFormat { * GrGLFormat::kUnknown. */ GrGLFormat asGLFormat() const; + + GrGLenum asGLFormatEnum() const; #endif #ifdef SK_VULKAN @@ -640,4 +642,3 @@ class SK_API GrBackendRenderTarget { #endif #endif - diff --git a/third_party/skia/include/gpu/GrBackendSurfaceMutableState.h b/third_party/skia/include/gpu/GrBackendSurfaceMutableState.h index 3a5f1d7fa26a..22f2ffd70d76 100644 --- a/third_party/skia/include/gpu/GrBackendSurfaceMutableState.h +++ b/third_party/skia/include/gpu/GrBackendSurfaceMutableState.h @@ -11,7 +11,7 @@ #include "include/gpu/GrTypes.h" #ifdef SK_VULKAN -#include "include/private/GrVkTypesPriv.h" +#include "include/private/gpu/ganesh/GrVkTypesPriv.h" #endif /** diff --git a/third_party/skia/include/gpu/GrContextOptions.h b/third_party/skia/include/gpu/GrContextOptions.h index b769d6ca21da..e204b98a2f4e 100644 --- a/third_party/skia/include/gpu/GrContextOptions.h +++ b/third_party/skia/include/gpu/GrContextOptions.h @@ -14,7 +14,7 @@ #include "include/gpu/GrDriverBugWorkarounds.h" #include "include/gpu/GrTypes.h" #include "include/gpu/ShaderErrorHandler.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include @@ -169,13 +169,6 @@ struct SK_API GrContextOptions { */ bool fAvoidStencilBuffers = false; - /** - * If true, texture fetches from mip-mapped textures will be biased to read larger MIP levels. - * This has the effect of sharpening those textures, at the cost of some aliasing, and possible - * performance impact. - */ - bool fSharpenMipmappedTextures = false; - /** * Enables driver workaround to use draws instead of HW clears, e.g. glClear on the GL backend. */ @@ -260,7 +253,9 @@ struct SK_API GrContextOptions { * If true, then add 1 pixel padding to all glyph masks in the atlas to support bi-lerp * rendering of all glyphs. This must be set to true to use GrSlug. */ - #if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG) + #if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG) || \ + defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_SERIALIZE) || \ + defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_STRIKE_SERIALIZE) bool fSupportBilerpFromGlyphAtlas = true; #else bool fSupportBilerpFromGlyphAtlas = false; diff --git a/third_party/skia/include/gpu/GrContextThreadSafeProxy.h b/third_party/skia/include/gpu/GrContextThreadSafeProxy.h index 1bf1f1f96731..19b25cbd1cbb 100644 --- a/third_party/skia/include/gpu/GrContextThreadSafeProxy.h +++ b/third_party/skia/include/gpu/GrContextThreadSafeProxy.h @@ -114,6 +114,13 @@ class SK_API GrContextThreadSafeProxy final : public SkNVRefCnt @@ -90,7 +90,9 @@ class GrRecordingContext : public GrImageContext { * rendering is supported for the color type. 0 is returned if rendering to this color type * is not supported at all. */ - SK_API int maxSurfaceSampleCountForColorType(SkColorType) const; + SK_API int maxSurfaceSampleCountForColorType(SkColorType colorType) const { + return INHERITED::maxSurfaceSampleCountForColorType(colorType); + } // Provides access to functions that aren't part of the public API. GrRecordingContextPriv priv(); diff --git a/third_party/skia/include/gpu/GrSurfaceInfo.h b/third_party/skia/include/gpu/GrSurfaceInfo.h index e4ef3c18d6c1..e037fb495781 100644 --- a/third_party/skia/include/gpu/GrSurfaceInfo.h +++ b/third_party/skia/include/gpu/GrSurfaceInfo.h @@ -11,22 +11,22 @@ #include "include/gpu/GrTypes.h" #ifdef SK_GL -#include "include/private/GrGLTypesPriv.h" +#include "include/private/gpu/ganesh/GrGLTypesPriv.h" #endif #ifdef SK_VULKAN -#include "include/private/GrVkTypesPriv.h" +#include "include/private/gpu/ganesh/GrVkTypesPriv.h" #endif #ifdef SK_DIRECT3D -#include "include/private/GrD3DTypesMinimal.h" +#include "include/private/gpu/ganesh/GrD3DTypesMinimal.h" struct GrD3DSurfaceInfo; #endif #ifdef SK_METAL -#include "include/private/GrMtlTypesPriv.h" +#include "include/private/gpu/ganesh/GrMtlTypesPriv.h" #endif #ifdef SK_DAWN -#include "include/private/GrDawnTypesPriv.h" +#include "include/private/gpu/ganesh/GrDawnTypesPriv.h" #endif -#include "include/private/GrMockTypesPriv.h" +#include "include/private/gpu/ganesh/GrMockTypesPriv.h" class GrSurfaceInfo { public: diff --git a/third_party/skia/include/gpu/d3d/BUILD.bazel b/third_party/skia/include/gpu/d3d/BUILD.bazel index 77a38844f772..134c158e8d61 100644 --- a/third_party/skia/include/gpu/d3d/BUILD.bazel +++ b/third_party/skia/include/gpu/d3d/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrD3DBackendContext_hdr", hdrs = ["GrD3DBackendContext.h"], diff --git a/third_party/skia/include/gpu/dawn/BUILD.bazel b/third_party/skia/include/gpu/dawn/BUILD.bazel index 8b93b918cbc2..582534d6835e 100644 --- a/third_party/skia/include/gpu/dawn/BUILD.bazel +++ b/third_party/skia/include/gpu/dawn/BUILD.bazel @@ -1,8 +1,13 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrDawnTypes_hdr", hdrs = ["GrDawnTypes.h"], visibility = ["//:__subpackages__"], - deps = ["//include/gpu:GrTypes_hdr"], + deps = [ + "//include/gpu:GrTypes_hdr", + "//third_party:dawn", + ], ) diff --git a/third_party/skia/include/gpu/dawn/GrDawnTypes.h b/third_party/skia/include/gpu/dawn/GrDawnTypes.h index 640516f6e2a1..70a2f9f6d6c5 100644 --- a/third_party/skia/include/gpu/dawn/GrDawnTypes.h +++ b/third_party/skia/include/gpu/dawn/GrDawnTypes.h @@ -22,7 +22,7 @@ static constexpr int Success = 0; #undef None static constexpr int None = 0L; #endif -#include "dawn/webgpu_cpp.h" +#include "webgpu/webgpu_cpp.h" struct GrDawnTextureInfo { wgpu::Texture fTexture; diff --git a/third_party/skia/include/gpu/gl/BUILD.bazel b/third_party/skia/include/gpu/gl/BUILD.bazel index c2dcf89d8417..39978201abb4 100644 --- a/third_party/skia/include/gpu/gl/BUILD.bazel +++ b/third_party/skia/include/gpu/gl/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLAssembleHelpers_hdr", hdrs = ["GrGLAssembleHelpers.h"], diff --git a/third_party/skia/include/gpu/gl/GrGLFunctions.h b/third_party/skia/include/gpu/gl/GrGLFunctions.h index aef61e065a6b..84724403a91e 100644 --- a/third_party/skia/include/gpu/gl/GrGLFunctions.h +++ b/third_party/skia/include/gpu/gl/GrGLFunctions.h @@ -96,6 +96,7 @@ using GrGLGenVertexArraysFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLsizei n, GrGLuint using GrGLGetBufferParameterivFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLenum target, GrGLenum pname, GrGLint* params); using GrGLGetErrorFn = GrGLenum GR_GL_FUNCTION_TYPE(); using GrGLGetFramebufferAttachmentParameterivFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLenum target, GrGLenum attachment, GrGLenum pname, GrGLint* params); +using GrGLGetFloatvFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLenum pname, GrGLfloat* params); using GrGLGetIntegervFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLenum pname, GrGLint* params); using GrGLGetMultisamplefvFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLenum pname, GrGLuint index, GrGLfloat* val); using GrGLGetProgramBinaryFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLuint program, GrGLsizei bufsize, GrGLsizei* length, GrGLenum* binaryFormat, void* binary); @@ -142,7 +143,8 @@ using GrGLReadPixelsFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLint x, GrGLint y, GrGL using GrGLRenderbufferStorageFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLenum target, GrGLenum internalformat, GrGLsizei width, GrGLsizei height); using GrGLRenderbufferStorageMultisampleFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLenum target, GrGLsizei samples, GrGLenum internalformat, GrGLsizei width, GrGLsizei height); using GrGLResolveMultisampleFramebufferFn = GrGLvoid GR_GL_FUNCTION_TYPE(); -using GrGLSamplerParameteriFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLuint sampler, GrGLenum pname, GrGLint params); +using GrGLSamplerParameterfFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLuint sampler, GrGLenum pname, GrGLfloat param); +using GrGLSamplerParameteriFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLuint sampler, GrGLenum pname, GrGLint param); using GrGLSamplerParameterivFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLuint sampler, GrGLenum pname, const GrGLint* params); using GrGLScissorFn = GrGLvoid GR_GL_FUNCTION_TYPE(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height); // GL_CHROMIUM_bind_uniform_location diff --git a/third_party/skia/include/gpu/gl/GrGLInterface.h b/third_party/skia/include/gpu/gl/GrGLInterface.h index af3ca67dcc51..e10242b3b724 100644 --- a/third_party/skia/include/gpu/gl/GrGLInterface.h +++ b/third_party/skia/include/gpu/gl/GrGLInterface.h @@ -31,8 +31,6 @@ struct GrGLInterface; * appropriate one to build. */ SK_API sk_sp GrGLMakeNativeInterface(); -// Deprecated alternative to GrGLMakeNativeInterface(). -SK_API const GrGLInterface* GrGLCreateNativeInterface(); /** * GrContext uses the following interface to make all calls into OpenGL. When a @@ -170,6 +168,7 @@ struct SK_API GrGLInterface : public SkRefCnt { GrGLFunction fGetBufferParameteriv; GrGLFunction fGetError; GrGLFunction fGetFramebufferAttachmentParameteriv; + GrGLFunction fGetFloatv; GrGLFunction fGetIntegerv; GrGLFunction fGetMultisamplefv; GrGLFunction fGetProgramBinary; @@ -248,6 +247,7 @@ struct SK_API GrGLInterface : public SkRefCnt { GrGLFunction fBindUniformLocation; GrGLFunction fResolveMultisampleFramebuffer; + GrGLFunction fSamplerParameterf; GrGLFunction fSamplerParameteri; GrGLFunction fSamplerParameteriv; GrGLFunction fScissor; diff --git a/third_party/skia/include/gpu/gl/egl/BUILD.bazel b/third_party/skia/include/gpu/gl/egl/BUILD.bazel index 4e824371ad1e..4cd00ad4ddc5 100644 --- a/third_party/skia/include/gpu/gl/egl/BUILD.bazel +++ b/third_party/skia/include/gpu/gl/egl/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLMakeEGLInterface_hdr", hdrs = ["GrGLMakeEGLInterface.h"], diff --git a/third_party/skia/include/gpu/gl/glx/BUILD.bazel b/third_party/skia/include/gpu/gl/glx/BUILD.bazel index c336d4974e9e..4b18b59e9e6c 100644 --- a/third_party/skia/include/gpu/gl/glx/BUILD.bazel +++ b/third_party/skia/include/gpu/gl/glx/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLMakeGLXInterface_hdr", hdrs = ["GrGLMakeGLXInterface.h"], diff --git a/third_party/skia/experimental/graphite/include/BUILD.bazel b/third_party/skia/include/gpu/graphite/BUILD.bazel similarity index 90% rename from third_party/skia/experimental/graphite/include/BUILD.bazel rename to third_party/skia/include/gpu/graphite/BUILD.bazel index 1d6eccf672e9..ed220a528cf5 100644 --- a/third_party/skia/experimental/graphite/include/BUILD.bazel +++ b/third_party/skia/include/gpu/graphite/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "BackendTexture_hdr", hdrs = ["BackendTexture.h"], @@ -7,8 +9,8 @@ generated_cc_atom( deps = [ ":GraphiteTypes_hdr", ":TextureInfo_hdr", - "//experimental/graphite/include/mtl:MtlTypes_hdr", "//include/core:SkSize_hdr", + "//include/gpu/graphite/mtl:MtlTypes_hdr", ], ) @@ -32,7 +34,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/core:SkTypes_hdr", - "//include/private:SkVx_hdr", + "//include/gpu:GpuTypes_hdr", ], ) @@ -69,6 +71,6 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GraphiteTypes_hdr", - "//experimental/graphite/include/private:MtlTypesPriv_hdr", + "//include/private/gpu/graphite:MtlTypesPriv_hdr", ], ) diff --git a/third_party/skia/experimental/graphite/include/BackendTexture.h b/third_party/skia/include/gpu/graphite/BackendTexture.h similarity index 61% rename from third_party/skia/experimental/graphite/include/BackendTexture.h rename to third_party/skia/include/gpu/graphite/BackendTexture.h index 192d8e38348f..bbc5af04c9b4 100644 --- a/third_party/skia/experimental/graphite/include/BackendTexture.h +++ b/third_party/skia/include/gpu/graphite/BackendTexture.h @@ -5,26 +5,26 @@ * found in the LICENSE file. */ -#ifndef skgpu_BackendTexture_DEFINED -#define skgpu_BackendTexture_DEFINED +#ifndef skgpu_graphite_BackendTexture_DEFINED +#define skgpu_graphite_BackendTexture_DEFINED -#include "experimental/graphite/include/GraphiteTypes.h" -#include "experimental/graphite/include/TextureInfo.h" #include "include/core/SkSize.h" +#include "include/gpu/graphite/GraphiteTypes.h" +#include "include/gpu/graphite/TextureInfo.h" #ifdef SK_METAL -#include "experimental/graphite/include/mtl/MtlTypes.h" +#include "include/gpu/graphite/mtl/MtlTypes.h" #endif -namespace skgpu { +namespace skgpu::graphite { class BackendTexture { public: BackendTexture() {} #ifdef SK_METAL - // The BackendTexture will not call retain or release on the passed in mtl::Handle. Thus the - // client must keep the mtl::Handle valid until they are no longer using the BackendTexture. - BackendTexture(SkISize dimensions, mtl::Handle mtlTexture); + // The BackendTexture will not call retain or release on the passed in MtlHandle. Thus the + // client must keep the MtlHandle valid until they are no longer using the BackendTexture. + BackendTexture(SkISize dimensions, MtlHandle mtlTexture); #endif BackendTexture(const BackendTexture&); @@ -44,7 +44,7 @@ class BackendTexture { const TextureInfo& info() const { return fInfo; } #ifdef SK_METAL - mtl::Handle getMtlTexture() const; + MtlHandle getMtlTexture() const; #endif private: @@ -53,12 +53,12 @@ class BackendTexture { union { #ifdef SK_METAL - mtl::Handle fMtlTexture; + MtlHandle fMtlTexture; #endif }; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_BackendTexture_DEFINED +#endif // skgpu_graphite_BackendTexture_DEFINED diff --git a/third_party/skia/experimental/graphite/include/Context.h b/third_party/skia/include/gpu/graphite/Context.h similarity index 83% rename from third_party/skia/experimental/graphite/include/Context.h rename to third_party/skia/include/gpu/graphite/Context.h index ba3cc3762ab6..c76ec119c9cd 100644 --- a/third_party/skia/experimental/graphite/include/Context.h +++ b/third_party/skia/include/gpu/graphite/Context.h @@ -5,8 +5,8 @@ * found in the LICENSE file. */ -#ifndef skgpu_Context_DEFINED -#define skgpu_Context_DEFINED +#ifndef skgpu_graphite_Context_DEFINED +#define skgpu_graphite_Context_DEFINED #include #include "include/core/SkBlendMode.h" @@ -15,18 +15,19 @@ #include "include/core/SkTileMode.h" #include "include/private/SkNoncopyable.h" -#include "experimental/graphite/include/GraphiteTypes.h" +#include "include/gpu/graphite/GraphiteTypes.h" -namespace skgpu { +namespace skgpu::graphite { class BackendTexture; +class CommandBuffer; class ContextPriv; class GlobalCache; class Gpu; +struct MtlBackendContext; class Recorder; class Recording; class TextureInfo; -namespace mtl { struct BackendContext; } struct ShaderCombo { enum class ShaderType { @@ -63,16 +64,21 @@ class Context final { ~Context(); #ifdef SK_METAL - static std::unique_ptr MakeMetal(const skgpu::mtl::BackendContext&); + static std::unique_ptr MakeMetal(const skgpu::graphite::MtlBackendContext&); #endif BackendApi backend() const { return fBackend; } std::unique_ptr makeRecorder(); - void insertRecording(std::unique_ptr); + void insertRecording(const InsertRecordingInfo&); void submit(SyncToCpu = SyncToCpu::kNo); + /** + * Checks whether any asynchronous work is complete and if so calls related callbacks. + */ + void checkAsyncWorkCompletion(); + void preCompile(const PaintCombo&); /** @@ -106,12 +112,13 @@ class Context final { private: friend class ContextPriv; - std::vector> fRecordings; + sk_sp fCurrentCommandBuffer; + sk_sp fGpu; sk_sp fGlobalCache; BackendApi fBackend; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_Context_DEFINED +#endif // skgpu_graphite_Context_DEFINED diff --git a/third_party/skia/include/gpu/graphite/GraphiteTypes.h b/third_party/skia/include/gpu/graphite/GraphiteTypes.h new file mode 100644 index 000000000000..e0b7a6fe1a65 --- /dev/null +++ b/third_party/skia/include/gpu/graphite/GraphiteTypes.h @@ -0,0 +1,71 @@ +/* + * 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 skgpu_graphite_GraphiteTypes_DEFINED +#define skgpu_graphite_GraphiteTypes_DEFINED + +#include "include/core/SkTypes.h" +#include "include/gpu/GpuTypes.h" + +#include + +namespace skgpu::graphite { + +class Recording; + +using GpuFinishedContext = void*; +using GpuFinishedProc = void (*)(GpuFinishedContext finishedContext, CallbackResult); + +/** + * The fFinishedProc is called when the Recording has been submitted and finished on the GPU, or + * when there is a failure that caused it not to be submitted. The callback will always be called + * and the caller can use the callback to know it is safe to free any resources associated with + * the Recording that they may be holding onto. If the Recording is successfully submitted to the + * GPU the callback will be called with CallbackResult::kSuccess once the GPU has finished. All + * other cases where some failure occured it will be called with CallbackResult::kFailed. + */ +struct InsertRecordingInfo { + Recording* fRecording = nullptr; + GpuFinishedContext fFinishedContext = nullptr; + GpuFinishedProc fFinishedProc = nullptr; +}; + +/** + * Actually submit work to the GPU and track its completion + */ +enum class SyncToCpu : bool { + kYes = true, + kNo = false +}; + +/** + * Possible 3D APIs that may be used by Graphite. + */ +enum class BackendApi : unsigned { + kMetal, + kMock, +}; + +/** + * Is the texture mipmapped or not + */ +enum class Mipmapped: bool { + kNo = false, + kYes = true, +}; + +/** + * Is the data protected on the GPU or not. + */ +enum class Protected : bool { + kNo = false, + kYes = true, +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_GraphiteTypes_DEFINED diff --git a/third_party/skia/experimental/graphite/include/Recorder.h b/third_party/skia/include/gpu/graphite/Recorder.h similarity index 81% rename from third_party/skia/experimental/graphite/include/Recorder.h rename to third_party/skia/include/gpu/graphite/Recorder.h index 0b6d85a25fbf..a910316abe40 100644 --- a/third_party/skia/experimental/graphite/include/Recorder.h +++ b/third_party/skia/include/gpu/graphite/Recorder.h @@ -5,15 +5,19 @@ * found in the LICENSE file. */ -#ifndef skgpu_Recorder_DEFINED -#define skgpu_Recorder_DEFINED +#ifndef skgpu_graphite_Recorder_DEFINED +#define skgpu_graphite_Recorder_DEFINED #include "include/core/SkRefCnt.h" #include "include/private/SingleOwner.h" #include -namespace skgpu { +class SkTextureDataBlock; +class SkUniformDataBlock; +class SkUniformDataBlockPassThrough; // TODO: remove + +namespace skgpu::graphite { class Caps; class Device; @@ -25,7 +29,10 @@ class Recording; class ResourceProvider; class Task; class TaskGraph; -class UniformCache; + +template class PipelineDataCache; +using UniformDataCache = PipelineDataCache; +using TextureDataCache = PipelineDataCache, SkTextureDataBlock>; class Recorder final { public: @@ -79,7 +86,8 @@ class Recorder final { std::unique_ptr fResourceProvider; std::unique_ptr fGraph; - std::unique_ptr fUniformCache; + std::unique_ptr fUniformDataCache; + std::unique_ptr fTextureDataCache; std::unique_ptr fDrawBufferManager; std::vector fTrackedDevices; @@ -89,6 +97,6 @@ class Recorder final { mutable SingleOwner fSingleOwner; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_Recorder_DEFINED +#endif // skgpu_graphite_Recorder_DEFINED diff --git a/third_party/skia/include/gpu/graphite/Recording.h b/third_party/skia/include/gpu/graphite/Recording.h new file mode 100644 index 000000000000..1a073907f2e6 --- /dev/null +++ b/third_party/skia/include/gpu/graphite/Recording.h @@ -0,0 +1,39 @@ +/* + * 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 skgpu_graphite_Recording_DEFINED +#define skgpu_graphite_Recording_DEFINED + +#include "include/core/SkRefCnt.h" + +class SkTextureDataBlock; + +namespace skgpu::graphite { + +class CommandBuffer; +template class PipelineDataCache; +using TextureDataCache = PipelineDataCache, SkTextureDataBlock>; + +class Recording final { +public: + ~Recording(); + +protected: +private: + friend class Context; // for access fCommandBuffer + friend class Recorder; // for ctor + Recording(sk_sp, std::unique_ptr); + + sk_sp fCommandBuffer; + + // The TextureDataCache holds all the Textures and Samplers used in this Recording. + std::unique_ptr fTextureDataCache; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_Recording_DEFINED diff --git a/third_party/skia/experimental/graphite/include/SkStuff.h b/third_party/skia/include/gpu/graphite/SkStuff.h similarity index 83% rename from third_party/skia/experimental/graphite/include/SkStuff.h rename to third_party/skia/include/gpu/graphite/SkStuff.h index eb6d70a9acfa..0768c64e23fe 100644 --- a/third_party/skia/experimental/graphite/include/SkStuff.h +++ b/third_party/skia/include/gpu/graphite/SkStuff.h @@ -11,16 +11,17 @@ #include "include/core/SkImageInfo.h" #include "include/core/SkRefCnt.h" +class SkColorSpace; class SkSurface; class SkSurfaceProps; -namespace skgpu { +namespace skgpu::graphite { class BackendTexture; class Recorder; } // TODO: Should be in SkSurface.h -sk_sp MakeGraphite(skgpu::Recorder*, const SkImageInfo&); +sk_sp MakeGraphite(skgpu::graphite::Recorder*, const SkImageInfo&); /** * Wraps a GPU-backed texture into SkSurface. Depending on the backend gpu API, the caller may be @@ -37,8 +38,8 @@ sk_sp MakeGraphite(skgpu::Recorder*, const SkImageInfo&); * * If SK_ENABLE_GRAPHITE is not defined, this has no effect and returns nullptr. */ -sk_sp MakeGraphiteFromBackendTexture(skgpu::Recorder*, - const skgpu::BackendTexture&, +sk_sp MakeGraphiteFromBackendTexture(skgpu::graphite::Recorder*, + const skgpu::graphite::BackendTexture&, SkColorType colorType, sk_sp colorSpace, const SkSurfaceProps* props); diff --git a/third_party/skia/experimental/graphite/include/TextureInfo.h b/third_party/skia/include/gpu/graphite/TextureInfo.h similarity index 70% rename from third_party/skia/experimental/graphite/include/TextureInfo.h rename to third_party/skia/include/gpu/graphite/TextureInfo.h index 850e1d72c9ee..e129b21d2a3c 100644 --- a/third_party/skia/experimental/graphite/include/TextureInfo.h +++ b/third_party/skia/include/gpu/graphite/TextureInfo.h @@ -5,22 +5,22 @@ * found in the LICENSE file. */ -#ifndef skgpu_TextureInfo_DEFINED -#define skgpu_TextureInfo_DEFINED +#ifndef skgpu_graphite_TextureInfo_DEFINED +#define skgpu_graphite_TextureInfo_DEFINED -#include "experimental/graphite/include/GraphiteTypes.h" +#include "include/gpu/graphite/GraphiteTypes.h" #ifdef SK_METAL -#include "experimental/graphite/include/private/MtlTypesPriv.h" +#include "include/private/gpu/graphite/MtlTypesPriv.h" #endif -namespace skgpu { +namespace skgpu::graphite { // Forward declares so we can friend classes in other namespaces #ifdef SK_METAL -namespace mtl { - class Caps; - class Texture; +namespace graphite { + class MtlCaps; + class MtlTexture; } #endif @@ -28,7 +28,7 @@ class TextureInfo { public: TextureInfo() {} #ifdef SK_METAL - TextureInfo(const mtl::TextureInfo& mtlInfo) + TextureInfo(const MtlTextureInfo& mtlInfo) : fBackend(BackendApi::kMetal) , fValid(true) , fSampleCount(mtlInfo.fSampleCount) @@ -52,20 +52,20 @@ class TextureInfo { Protected isProtected() const { return fProtected; } #ifdef SK_METAL - bool getMtlTextureInfo(mtl::TextureInfo* info) const { + bool getMtlTextureInfo(MtlTextureInfo* info) const { if (!this->isValid() || fBackend != BackendApi::kMetal) { return false; } - *info = mtl::TextureSpecToTextureInfo(fMtlSpec, fSampleCount, fLevelCount); + *info = MtlTextureSpecToTextureInfo(fMtlSpec, fSampleCount, fLevelCount); return true; } #endif private: #ifdef SK_METAL - friend class mtl::Caps; - friend class mtl::Texture; - const mtl::TextureSpec& mtlTextureSpec() const { + friend class MtlCaps; + friend class MtlTexture; + const MtlTextureSpec& mtlTextureSpec() const { SkASSERT(fValid && fBackend == BackendApi::kMetal); return fMtlSpec; } @@ -80,11 +80,11 @@ class TextureInfo { union { #ifdef SK_METAL - mtl::TextureSpec fMtlSpec; + MtlTextureSpec fMtlSpec; #endif }; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif //skgpu_TextureInfo_DEFINED +#endif //skgpu_graphite_TextureInfo_DEFINED diff --git a/third_party/skia/experimental/graphite/include/mtl/BUILD.bazel b/third_party/skia/include/gpu/graphite/mtl/BUILD.bazel similarity index 94% rename from third_party/skia/experimental/graphite/include/mtl/BUILD.bazel rename to third_party/skia/include/gpu/graphite/mtl/BUILD.bazel index 54821e4d6827..081722f5fb4a 100644 --- a/third_party/skia/experimental/graphite/include/mtl/BUILD.bazel +++ b/third_party/skia/include/gpu/graphite/mtl/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "MtlBackendContext_hdr", hdrs = ["MtlBackendContext.h"], diff --git a/third_party/skia/include/gpu/graphite/mtl/MtlBackendContext.h b/third_party/skia/include/gpu/graphite/mtl/MtlBackendContext.h new file mode 100644 index 000000000000..20ad9ee6d641 --- /dev/null +++ b/third_party/skia/include/gpu/graphite/mtl/MtlBackendContext.h @@ -0,0 +1,24 @@ +/* + * 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 skgpu_graphite_MtlBackendContext_DEFINED +#define skgpu_graphite_MtlBackendContext_DEFINED + +#include "include/gpu/graphite/mtl/MtlTypes.h" + +namespace skgpu::graphite { + +// The MtlBackendContext contains all of the base Metal objects needed by the MtlGpu. The assumption +// is that the client will set these up and pass them to the MtlGpu constructor. +struct SK_API MtlBackendContext { + sk_cfp fDevice; + sk_cfp fQueue; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_MtlBackendContext_DEFINED diff --git a/third_party/skia/experimental/graphite/include/mtl/MtlTypes.h b/third_party/skia/include/gpu/graphite/mtl/MtlTypes.h similarity index 55% rename from third_party/skia/experimental/graphite/include/mtl/MtlTypes.h rename to third_party/skia/include/gpu/graphite/mtl/MtlTypes.h index 392bda19bbff..5f4c4c8dccff 100644 --- a/third_party/skia/experimental/graphite/include/mtl/MtlTypes.h +++ b/third_party/skia/include/gpu/graphite/mtl/MtlTypes.h @@ -5,8 +5,8 @@ * found in the LICENSE file. */ -#ifndef skgpu_MtlTypes_DEFINED -#define skgpu_MtlTypes_DEFINED +#ifndef skgpu_graphite_MtlTypes_DEFINED +#define skgpu_graphite_MtlTypes_DEFINED #include "include/ports/SkCFObject.h" @@ -26,35 +26,35 @@ #endif // __APPLE__ -namespace skgpu::mtl { +namespace skgpu::graphite { /** * Declares typedefs for Metal types used in Graphite cpp code */ -using PixelFormat = unsigned int; -using TextureUsage = unsigned int; -using StorageMode = unsigned int; -using Handle = const void*; +using MtlPixelFormat = unsigned int; +using MtlTextureUsage = unsigned int; +using MtlStorageMode = unsigned int; +using MtlHandle = const void*; -struct TextureInfo { +struct MtlTextureInfo { uint32_t fSampleCount = 1; uint32_t fLevelCount = 0; // Since we aren't in an Obj-C header we can't directly use Mtl types here. Each of these can // cast to their mapped Mtl types list below. - PixelFormat fFormat = 0; // MTLPixelFormat fFormat = MTLPixelFormatInvalid; - TextureUsage fUsage = 0; // MTLTextureUsage fUsage = MTLTextureUsageUnknown; - StorageMode fStorageMode = 0; // MTLStorageMode fStorageMode = MTLStorageModeShared; + MtlPixelFormat fFormat = 0; // MTLPixelFormat fFormat = MTLPixelFormatInvalid; + MtlTextureUsage fUsage = 0; // MTLTextureUsage fUsage = MTLTextureUsageUnknown; + MtlStorageMode fStorageMode = 0; // MTLStorageMode fStorageMode = MTLStorageModeShared; bool fFramebufferOnly = false; - TextureInfo() = default; - TextureInfo(Handle mtlTexture); - TextureInfo(uint32_t sampleCount, - uint32_t levelCount, - PixelFormat format, - TextureUsage usage, - StorageMode storageMode, - bool framebufferOnly) + MtlTextureInfo() = default; + MtlTextureInfo(MtlHandle mtlTexture); + MtlTextureInfo(uint32_t sampleCount, + uint32_t levelCount, + MtlPixelFormat format, + MtlTextureUsage usage, + MtlStorageMode storageMode, + bool framebufferOnly) : fSampleCount(sampleCount) , fLevelCount(levelCount) , fFormat(format) @@ -63,6 +63,6 @@ struct TextureInfo { , fFramebufferOnly(framebufferOnly) {} }; -} // namespace skgpu::mtl +} // namespace skgpu::graphite -#endif // skgpu_MtlTypes_DEFINED +#endif // skgpu_graphite_MtlTypes_DEFINED diff --git a/third_party/skia/include/gpu/mock/BUILD.bazel b/third_party/skia/include/gpu/mock/BUILD.bazel index b7f4a9e06160..0f4b923b9bc6 100644 --- a/third_party/skia/include/gpu/mock/BUILD.bazel +++ b/third_party/skia/include/gpu/mock/BUILD.bazel @@ -1,11 +1,13 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrMockTypes_hdr", hdrs = ["GrMockTypes.h"], visibility = ["//:__subpackages__"], deps = [ "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) diff --git a/third_party/skia/include/gpu/mock/GrMockTypes.h b/third_party/skia/include/gpu/mock/GrMockTypes.h index dbffe3ceb3f8..48d82c739d91 100644 --- a/third_party/skia/include/gpu/mock/GrMockTypes.h +++ b/third_party/skia/include/gpu/mock/GrMockTypes.h @@ -9,7 +9,7 @@ #define GrMockOptions_DEFINED #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" class GrBackendFormat; diff --git a/third_party/skia/include/gpu/mtl/BUILD.bazel b/third_party/skia/include/gpu/mtl/BUILD.bazel index 9881ff21ff05..676fc7f2ff7f 100644 --- a/third_party/skia/include/gpu/mtl/BUILD.bazel +++ b/third_party/skia/include/gpu/mtl/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrMtlBackendContext_hdr", hdrs = ["GrMtlBackendContext.h"], diff --git a/third_party/skia/include/gpu/vk/BUILD.bazel b/third_party/skia/include/gpu/vk/BUILD.bazel index a2f41750e377..8b468ccc598c 100644 --- a/third_party/skia/include/gpu/vk/BUILD.bazel +++ b/third_party/skia/include/gpu/vk/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrVkBackendContext_hdr", hdrs = ["GrVkBackendContext.h"], diff --git a/third_party/skia/include/pathops/BUILD.bazel b/third_party/skia/include/pathops/BUILD.bazel index 746a84434f56..77efcbefe04c 100644 --- a/third_party/skia/include/pathops/BUILD.bazel +++ b/third_party/skia/include/pathops/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkPathOps_hdr", hdrs = ["SkPathOps.h"], diff --git a/third_party/skia/include/ports/BUILD.bazel b/third_party/skia/include/ports/BUILD.bazel index 4b9b65e07989..876c298992f8 100644 --- a/third_party/skia/include/ports/BUILD.bazel +++ b/third_party/skia/include/ports/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkCFObject_hdr", hdrs = ["SkCFObject.h"], diff --git a/third_party/skia/include/ports/SkCFObject.h b/third_party/skia/include/ports/SkCFObject.h index 4dc70863f4dd..20e86671b790 100644 --- a/third_party/skia/include/ports/SkCFObject.h +++ b/third_party/skia/include/ports/SkCFObject.h @@ -176,9 +176,5 @@ template sk_cfp sk_ret_cfp(T obj) { return sk_cfp(SkCFSafeRetain(obj)); } -// For Flutter. -// TODO: migrate them away from this and remove -template using sk_cf_obj = sk_cfp; - #endif // __APPLE__ #endif // SkCFObject_DEFINED diff --git a/third_party/skia/include/private/BUILD.bazel b/third_party/skia/include/private/BUILD.bazel index 134b7322c838..c3261bb1bf58 100644 --- a/third_party/skia/include/private/BUILD.bazel +++ b/third_party/skia/include/private/BUILD.bazel @@ -1,95 +1,6 @@ load("//bazel:macros.bzl", "generated_cc_atom") -generated_cc_atom( - name = "GrContext_Base_hdr", - hdrs = ["GrContext_Base.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu:GrContextOptions_hdr", - "//include/gpu:GrTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrD3DTypesMinimal_hdr", - hdrs = ["GrD3DTypesMinimal.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/gpu:GrTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrDawnTypesPriv_hdr", - hdrs = ["GrDawnTypesPriv.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/gpu/dawn:GrDawnTypes_hdr"], -) - -generated_cc_atom( - name = "GrGLTypesPriv_hdr", - hdrs = ["GrGLTypesPriv.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/gpu/gl:GrGLTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrImageContext_hdr", - hdrs = ["GrImageContext.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrContext_Base_hdr", - ":SingleOwner_hdr", - ], -) - -generated_cc_atom( - name = "GrMockTypesPriv_hdr", - hdrs = ["GrMockTypesPriv.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/gpu/mock:GrMockTypes_hdr"], -) - -generated_cc_atom( - name = "GrMtlTypesPriv_hdr", - hdrs = ["GrMtlTypesPriv.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu:GrTypes_hdr", - "//include/gpu/mtl:GrMtlTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrTypesPriv_hdr", - hdrs = ["GrTypesPriv.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":SkImageInfoPriv_hdr", - ":SkMacros_hdr", - "//include/core:SkImageInfo_hdr", - "//include/core:SkImage_hdr", - "//include/core:SkPath_hdr", - "//include/core:SkRefCnt_hdr", - "//include/gpu:GrTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrVkTypesPriv_hdr", - hdrs = ["GrVkTypesPriv.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - ], -) +licenses(["notice"]) generated_cc_atom( name = "SkBitmaskEnum_hdr", @@ -134,6 +45,7 @@ generated_cc_atom( hdrs = ["SkEncodedInfo.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkColorSpace_hdr", "//include/core:SkData_hdr", "//include/core:SkImageInfo_hdr", "//include/third_party/skcms:skcms_hdr", @@ -290,7 +202,6 @@ generated_cc_atom( ":SkTo_hdr", "//include/core:SkMatrix_hdr", "//include/core:SkPoint_hdr", - "//include/core:SkRRect_hdr", "//include/core:SkRect_hdr", "//include/core:SkRefCnt_hdr", ], @@ -313,6 +224,7 @@ generated_cc_atom( deps = [ ":SkSLString_hdr", ":SkTArray_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/sksl:SkSLLexer_hdr", "//src/sksl:SkSLModifiersPool_hdr", "//src/sksl:SkSLPool_hdr", @@ -330,7 +242,10 @@ generated_cc_atom( name = "SkSLModifiers_hdr", hdrs = ["SkSLModifiers.h"], visibility = ["//:__subpackages__"], - deps = [":SkSLLayout_hdr"], + deps = [ + ":SkSLLayout_hdr", + "//include/sksl:SkSLPosition_hdr", + ], ) generated_cc_atom( @@ -369,7 +284,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLDefines_hdr", - "//include/core:SkString_hdr", + "//include/core:SkTypes_hdr", ], ) @@ -473,12 +388,6 @@ generated_cc_atom( deps = [":SkTo_hdr"], ) -generated_cc_atom( - name = "SkTOptional_hdr", - hdrs = ["SkTOptional.h"], - visibility = ["//:__subpackages__"], -) - generated_cc_atom( name = "SkTPin_hdr", hdrs = ["SkTPin.h"], diff --git a/third_party/skia/include/private/SkChecksum.h b/third_party/skia/include/private/SkChecksum.h index 6339239d65ce..235649feec3e 100644 --- a/third_party/skia/include/private/SkChecksum.h +++ b/third_party/skia/include/private/SkChecksum.h @@ -14,6 +14,9 @@ #include "include/private/SkOpts_spi.h" #include "include/private/SkTLogic.h" +#include +#include + class SkChecksum : SkNoncopyable { public: /** @@ -61,6 +64,14 @@ struct SkGoodHash { uint32_t operator()(const SkString& k) const { return SkOpts::hash_fn(k.c_str(), k.size(), 0); } + + uint32_t operator()(const std::string& k) const { + return SkOpts::hash_fn(k.c_str(), k.size(), 0); + } + + uint32_t operator()(std::string_view k) const { + return SkOpts::hash_fn(k.data(), k.size(), 0); + } }; #endif diff --git a/third_party/skia/include/private/SkEncodedInfo.h b/third_party/skia/include/private/SkEncodedInfo.h index 92400d9564e6..e4806d3b3842 100644 --- a/third_party/skia/include/private/SkEncodedInfo.h +++ b/third_party/skia/include/private/SkEncodedInfo.h @@ -10,6 +10,7 @@ #include +#include "include/core/SkColorSpace.h" #include "include/core/SkData.h" #include "include/core/SkImageInfo.h" #include "include/third_party/skcms/skcms.h" @@ -100,8 +101,15 @@ struct SkEncodedInfo { return Make(width, height, color, alpha, bitsPerComponent, nullptr); } - static SkEncodedInfo Make(int width, int height, Color color, Alpha alpha, - int bitsPerComponent, std::unique_ptr profile) { + static SkEncodedInfo Make(int width, int height, Color color, + Alpha alpha, int bitsPerComponent, std::unique_ptr profile) { + return Make(width, height, color, alpha, /*bitsPerComponent*/ bitsPerComponent, + std::move(profile), /*colorDepth*/ bitsPerComponent); + } + + static SkEncodedInfo Make(int width, int height, Color color, + Alpha alpha, int bitsPerComponent, std::unique_ptr profile, + int colorDepth) { SkASSERT(1 == bitsPerComponent || 2 == bitsPerComponent || 4 == bitsPerComponent || @@ -150,7 +158,8 @@ struct SkEncodedInfo { break; } - return SkEncodedInfo(width, height, color, alpha, bitsPerComponent, std::move(profile)); + return SkEncodedInfo(width, height, color, alpha, + bitsPerComponent, colorDepth, std::move(profile)); } /* @@ -220,21 +229,28 @@ struct SkEncodedInfo { // Explicit copy method, to avoid accidental copying. SkEncodedInfo copy() const { - auto copy = SkEncodedInfo::Make(fWidth, fHeight, fColor, fAlpha, fBitsPerComponent); + auto copy = SkEncodedInfo::Make( + fWidth, fHeight, fColor, fAlpha, fBitsPerComponent, nullptr, fColorDepth); if (fProfile) { copy.fProfile = std::make_unique(*fProfile); } return copy; } + // Return number of bits of R/G/B channel + uint8_t getColorDepth() const { + return fColorDepth; + } + private: SkEncodedInfo(int width, int height, Color color, Alpha alpha, - uint8_t bitsPerComponent, std::unique_ptr profile) + uint8_t bitsPerComponent, uint8_t colorDepth, std::unique_ptr profile) : fWidth(width) , fHeight(height) , fColor(color) , fAlpha(alpha) , fBitsPerComponent(bitsPerComponent) + , fColorDepth(colorDepth) , fProfile(std::move(profile)) {} @@ -243,6 +259,7 @@ struct SkEncodedInfo { Color fColor; Alpha fAlpha; uint8_t fBitsPerComponent; + uint8_t fColorDepth; std::unique_ptr fProfile; }; diff --git a/third_party/skia/include/private/SkFloatingPoint.h b/third_party/skia/include/private/SkFloatingPoint.h index fbabd0ebc572..08011623ba09 100644 --- a/third_party/skia/include/private/SkFloatingPoint.h +++ b/third_party/skia/include/private/SkFloatingPoint.h @@ -17,15 +17,6 @@ #include #include - -#if defined(SK_LEGACY_FLOAT_RSQRT) -#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1 - #include -#elif defined(SK_ARM_HAS_NEON) - #include -#endif -#endif - constexpr float SK_FloatSqrt2 = 1.41421356f; constexpr float SK_FloatPI = 3.14159265f; constexpr double SK_DoublePI = 3.14159265358979323846264338327950288; @@ -171,53 +162,9 @@ static inline float sk_double_to_float(double x) { // Returns true if count is 0 bool sk_floats_are_unit(const float array[], size_t count); -#if defined(SK_LEGACY_FLOAT_RSQRT) -static inline float sk_float_rsqrt_portable(float x) { - // Get initial estimate. - int i; - memcpy(&i, &x, 4); - i = 0x5F1FFFF9 - (i>>1); - float estimate; - memcpy(&estimate, &i, 4); - - // One step of Newton's method to refine. - const float estimate_sq = estimate*estimate; - estimate *= 0.703952253f*(2.38924456f-x*estimate_sq); - return estimate; -} - -// Fast, approximate inverse square root. -// Compare to name-brand "1.0f / sk_float_sqrt(x)". Should be around 10x faster on SSE, 2x on NEON. -static inline float sk_float_rsqrt(float x) { -// We want all this inlined, so we'll inline SIMD and just take the hit when we don't know we've got -// it at compile time. This is going to be too fast to productively hide behind a function pointer. -// -// We do one step of Newton's method to refine the estimates in the NEON and portable paths. No -// refinement is faster, but very innacurate. Two steps is more accurate, but slower than 1/sqrt. -// -// Optimized constants in the portable path courtesy of http://rrrola.wz.cz/inv_sqrt.html -#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1 - return _mm_cvtss_f32(_mm_rsqrt_ss(_mm_set_ss(x))); -#elif defined(SK_ARM_HAS_NEON) - // Get initial estimate. - const float32x2_t xx = vdup_n_f32(x); // Clever readers will note we're doing everything 2x. - float32x2_t estimate = vrsqrte_f32(xx); - - // One step of Newton's method to refine. - const float32x2_t estimate_sq = vmul_f32(estimate, estimate); - estimate = vmul_f32(estimate, vrsqrts_f32(xx, estimate_sq)); - return vget_lane_f32(estimate, 0); // 1 will work fine too; the answer's in both places. -#else - return sk_float_rsqrt_portable(x); -#endif -} -#else - static inline float sk_float_rsqrt_portable(float x) { return 1.0f / sk_float_sqrt(x); } static inline float sk_float_rsqrt (float x) { return 1.0f / sk_float_sqrt(x); } -#endif - // Returns the log2 of the provided value, were that value to be rounded up to the next power of 2. // Returns 0 if value <= 0: // Never returns a negative number, even if value is NaN. diff --git a/third_party/skia/include/private/SkMacros.h b/third_party/skia/include/private/SkMacros.h index 7732d44d7983..025037920567 100644 --- a/third_party/skia/include/private/SkMacros.h +++ b/third_party/skia/include/private/SkMacros.h @@ -7,6 +7,8 @@ #ifndef SkMacros_DEFINED #define SkMacros_DEFINED +#include + /* * Usage: SK_MACRO_CONCAT(a, b) to construct the symbol ab * @@ -47,38 +49,31 @@ * bitfield. */ #define SK_MAKE_BITFIELD_OPS(X) \ + inline X operator ~(X a) { \ + using U = std::underlying_type_t; \ + return (X) (~static_cast(a)); \ + } \ inline X operator |(X a, X b) { \ - return (X) (+a | +b); \ + using U = std::underlying_type_t; \ + return (X) (static_cast(a) | static_cast(b)); \ } \ inline X& operator |=(X& a, X b) { \ return (a = a | b); \ } \ inline X operator &(X a, X b) { \ - return (X) (+a & +b); \ + using U = std::underlying_type_t; \ + return (X) (static_cast(a) & static_cast(b)); \ } \ inline X& operator &=(X& a, X b) { \ return (a = a & b); \ - } \ - template \ - inline X operator &(T a, X b) { \ - return (X) (+a & +b); \ - } \ - template \ - inline X operator &(X a, T b) { \ - return (X) (+a & +b); \ - } \ + } #define SK_DECL_BITFIELD_OPS_FRIENDS(X) \ + friend X operator ~(X a); \ friend X operator |(X a, X b); \ friend X& operator |=(X& a, X b); \ \ friend X operator &(X a, X b); \ - friend X& operator &=(X& a, X b); \ - \ - template \ - friend X operator &(T a, X b); \ - \ - template \ - friend X operator &(X a, T b); \ + friend X& operator &=(X& a, X b); #endif // SkMacros_DEFINED diff --git a/third_party/skia/include/private/SkPathRef.h b/third_party/skia/include/private/SkPathRef.h index 301f3b75120c..7d2f85964e7b 100644 --- a/third_party/skia/include/private/SkPathRef.h +++ b/third_party/skia/include/private/SkPathRef.h @@ -10,7 +10,6 @@ #include "include/core/SkMatrix.h" #include "include/core/SkPoint.h" -#include "include/core/SkRRect.h" #include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" #include "include/private/SkIDChangeListener.h" @@ -25,6 +24,7 @@ class SkRBuffer; class SkWBuffer; +class SkRRect; enum class SkPathConvexity { kConvex, @@ -246,21 +246,7 @@ class SK_API SkPathRef final : public SkNVRefCnt { return SkToBool(fIsOval); } - bool isRRect(SkRRect* rrect, bool* isCCW, unsigned* start) const { - if (fIsRRect) { - if (rrect) { - *rrect = this->getRRect(); - } - if (isCCW) { - *isCCW = SkToBool(fRRectOrOvalIsCCW); - } - if (start) { - *start = fRRectOrOvalStartIdx; - } - } - return SkToBool(fIsRRect); - } - + bool isRRect(SkRRect* rrect, bool* isCCW, unsigned* start) const; bool hasComputedBounds() const { return !fBoundsIsDirty; diff --git a/third_party/skia/include/private/SkSLIRNode.h b/third_party/skia/include/private/SkSLIRNode.h index 56daafe622b5..c11a56614c42 100644 --- a/third_party/skia/include/private/SkSLIRNode.h +++ b/third_party/skia/include/private/SkSLIRNode.h @@ -10,6 +10,7 @@ #include "include/private/SkSLString.h" #include "include/private/SkTArray.h" +#include "include/sksl/SkSLPosition.h" #include "src/sksl/SkSLLexer.h" #include "src/sksl/SkSLModifiersPool.h" #include "src/sksl/SkSLPool.h" @@ -47,12 +48,12 @@ class IRNode : public Poolable { IRNode(const IRNode&) = delete; IRNode& operator=(const IRNode&) = delete; - // line of this element within the program being compiled, for error reporting purposes - int fLine; + // position of this element within the program being compiled, for error reporting purposes + Position fPosition; protected: - IRNode(int line, int kind) - : fLine(line) + IRNode(Position position, int kind) + : fPosition(position) , fKind(kind) {} int fKind; diff --git a/third_party/skia/include/private/SkSLModifiers.h b/third_party/skia/include/private/SkSLModifiers.h index 0104827f0a32..0cdeef215ba7 100644 --- a/third_party/skia/include/private/SkSLModifiers.h +++ b/third_party/skia/include/private/SkSLModifiers.h @@ -9,6 +9,7 @@ #define SKSL_MODIFIERS #include "include/private/SkSLLayout.h" +#include "include/sksl/SkSLPosition.h" #include @@ -117,7 +118,7 @@ struct Modifiers { * Verifies that only permitted modifiers and layout flags are included. Reports errors and * returns false in the event of a violation. */ - bool checkPermitted(const Context& context, int line, int permittedModifierFlags, + bool checkPermitted(const Context& context, Position pos, int permittedModifierFlags, int permittedLayoutFlags) const; Layout fLayout; diff --git a/third_party/skia/include/private/SkSLProgramElement.h b/third_party/skia/include/private/SkSLProgramElement.h index 88c4129ee2d5..8eb0a31aadab 100644 --- a/third_party/skia/include/private/SkSLProgramElement.h +++ b/third_party/skia/include/private/SkSLProgramElement.h @@ -32,8 +32,8 @@ class ProgramElement : public IRNode { kLast = kStructDefinition }; - ProgramElement(int offset, Kind kind) - : INHERITED(offset, (int) kind) { + ProgramElement(Position pos, Kind kind) + : INHERITED(pos, (int) kind) { SkASSERT(kind >= Kind::kFirst && kind <= Kind::kLast); } diff --git a/third_party/skia/include/private/SkSLStatement.h b/third_party/skia/include/private/SkSLStatement.h index 8913369e9860..52272772d4f0 100644 --- a/third_party/skia/include/private/SkSLStatement.h +++ b/third_party/skia/include/private/SkSLStatement.h @@ -38,8 +38,8 @@ class Statement : public IRNode { kLast = kVarDeclaration, }; - Statement(int line, Kind kind) - : INHERITED(line, (int) kind) { + Statement(Position pos, Kind kind) + : INHERITED(pos, (int) kind) { SkASSERT(kind >= Kind::kFirst && kind <= Kind::kLast); } diff --git a/third_party/skia/include/private/SkSLString.h b/third_party/skia/include/private/SkSLString.h index 6cf681680947..4458a2f0f5b4 100644 --- a/third_party/skia/include/private/SkSLString.h +++ b/third_party/skia/include/private/SkSLString.h @@ -8,16 +8,13 @@ #ifndef SKSL_STRING #define SKSL_STRING +#include "include/core/SkTypes.h" #include "include/private/SkSLDefines.h" -#include + #include #include #include -#ifndef SKSL_STANDALONE -#include "include/core/SkString.h" -#endif - namespace SkSL { bool stod(std::string_view s, SKSL_FLOAT* value); diff --git a/third_party/skia/include/private/SkSLSymbol.h b/third_party/skia/include/private/SkSLSymbol.h index 88aff6f8701d..ecabf2b5c438 100644 --- a/third_party/skia/include/private/SkSLSymbol.h +++ b/third_party/skia/include/private/SkSLSymbol.h @@ -30,8 +30,8 @@ class Symbol : public IRNode { kLast = kVariable }; - Symbol(int offset, Kind kind, std::string_view name, const Type* type = nullptr) - : INHERITED(offset, (int) kind) + Symbol(Position pos, Kind kind, std::string_view name, const Type* type = nullptr) + : INHERITED(pos, (int) kind) , fName(name) , fType(type) { SkASSERT(kind >= Kind::kFirst && kind <= Kind::kLast); diff --git a/third_party/skia/include/private/SkTArray.h b/third_party/skia/include/private/SkTArray.h index 9db5fd030619..9bbe98bbaf14 100644 --- a/third_party/skia/include/private/SkTArray.h +++ b/third_party/skia/include/private/SkTArray.h @@ -16,6 +16,7 @@ #include "include/private/SkTemplates.h" #include "include/private/SkTo.h" +#include #include #include #include diff --git a/third_party/skia/include/private/SkTHash.h b/third_party/skia/include/private/SkTHash.h index 9ed039748c86..0363f743278c 100644 --- a/third_party/skia/include/private/SkTHash.h +++ b/third_party/skia/include/private/SkTHash.h @@ -11,6 +11,8 @@ #include "include/core/SkTypes.h" #include "include/private/SkChecksum.h" #include "include/private/SkTemplates.h" + +#include #include #include @@ -134,6 +136,27 @@ class SkTHashTable { } } + // Hash tables will automatically resize themselves when set() and remove() are called, but + // resize() can be called to manually grow capacity before a bulk insertion. + void resize(int capacity) { + SkASSERT(capacity >= fCount); + int oldCapacity = fCapacity; + SkDEBUGCODE(int oldCount = fCount); + + fCount = 0; + fCapacity = capacity; + SkAutoTArray oldSlots = std::move(fSlots); + fSlots = SkAutoTArray(capacity); + + for (int i = 0; i < oldCapacity; i++) { + Slot& s = oldSlots[i]; + if (s.has_value()) { + this->uncheckedSet(*std::move(s)); + } + } + SkASSERT(fCount == oldCount); + } + // Call fn on every entry in the table. You may mutate the entries, but be very careful. template // f(T*) void foreach(Fn&& fn) { @@ -259,24 +282,6 @@ class SkTHashTable { return nullptr; } - void resize(int capacity) { - int oldCapacity = fCapacity; - SkDEBUGCODE(int oldCount = fCount); - - fCount = 0; - fCapacity = capacity; - SkAutoTArray oldSlots = std::move(fSlots); - fSlots = SkAutoTArray(capacity); - - for (int i = 0; i < oldCapacity; i++) { - Slot& s = oldSlots[i]; - if (s.has_value()) { - this->uncheckedSet(*std::move(s)); - } - } - SkASSERT(fCount == oldCount); - } - void removeSlot(int index) { fCount--; @@ -413,12 +418,38 @@ class SkTHashTable { template class SkTHashMap { public: + // Allow default construction and assignment. + SkTHashMap() = default; + + SkTHashMap(SkTHashMap&& that) = default; + SkTHashMap(const SkTHashMap& that) = default; + + SkTHashMap& operator=(SkTHashMap&& that) = default; + SkTHashMap& operator=(const SkTHashMap& that) = default; + + // Construct with an initializer list of key-value pairs. + struct Pair : public std::pair { + using std::pair::pair; + static const K& GetKey(const Pair& p) { return p.first; } + static auto Hash(const K& key) { return HashK()(key); } + }; + + SkTHashMap(std::initializer_list pairs) { + fTable.resize(pairs.size() * 5 / 3); + for (const Pair& p : pairs) { + fTable.set(p); + } + } + // Clear the map. void reset() { fTable.reset(); } // How many key/value pairs are in the table? int count() const { return fTable.count(); } + // Is empty? + bool empty() const { return fTable.count() == 0; } + // Approximately how many bytes of memory do we use beyond sizeof(*this)? size_t approxBytesUsed() const { return fTable.approxBytesUsed(); } @@ -466,12 +497,6 @@ class SkTHashMap { } // Dereferencing an iterator gives back a key-value pair, suitable for structured binding. - struct Pair : public std::pair { - using std::pair::pair; - static const K& GetKey(const Pair& p) { return p.first; } - static auto Hash(const K& key) { return HashK()(key); } - }; - using Iter = typename SkTHashTable::template Iter>; Iter begin() const { @@ -490,6 +515,23 @@ class SkTHashMap { template class SkTHashSet { public: + // Allow default construction and assignment. + SkTHashSet() = default; + + SkTHashSet(SkTHashSet&& that) = default; + SkTHashSet(const SkTHashSet& that) = default; + + SkTHashSet& operator=(SkTHashSet&& that) = default; + SkTHashSet& operator=(const SkTHashSet& that) = default; + + // Construct with an initializer list of Ts. + SkTHashSet(std::initializer_list vals) { + fTable.resize(vals.size() * 5 / 3); + for (const T& val : vals) { + fTable.set(val); + } + } + // Clear the set. void reset() { fTable.reset(); } diff --git a/third_party/skia/include/private/SkTOptional.h b/third_party/skia/include/private/SkTOptional.h deleted file mode 100644 index 137b3cb2676c..000000000000 --- a/third_party/skia/include/private/SkTOptional.h +++ /dev/null @@ -1,21 +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 SkTOptional_DEFINED -#define SkTOptional_DEFINED - -#include - -namespace skstd { - -template using optional = std::optional; -using nullopt_t = std::nullopt_t; -inline constexpr nullopt_t nullopt = std::nullopt; - -} // namespace skstd - -#endif diff --git a/third_party/skia/include/private/chromium/BUILD.bazel b/third_party/skia/include/private/chromium/BUILD.bazel index 8633eae549c7..35507160604b 100644 --- a/third_party/skia/include/private/chromium/BUILD.bazel +++ b/third_party/skia/include/private/chromium/BUILD.bazel @@ -1,10 +1,13 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrSlug_hdr", hdrs = ["GrSlug.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkData_hdr", "//include/core:SkRect_hdr", "//include/core:SkRefCnt_hdr", ], diff --git a/third_party/skia/include/private/chromium/GrSlug.h b/third_party/skia/include/private/chromium/GrSlug.h index a14b2c49c657..52891b44919b 100644 --- a/third_party/skia/include/private/chromium/GrSlug.h +++ b/third_party/skia/include/private/chromium/GrSlug.h @@ -8,19 +8,22 @@ #ifndef GrSlug_DEFINED #define GrSlug_DEFINED +#include "include/core/SkData.h" #include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" class SkCanvas; class SkMatrix; class SkPaint; -class SkReadBuffer; class SkTextBlob; +class SkReadBuffer; class SkStrikeClient; class SkWriteBuffer; // You can use GrSlug to simulate drawTextBlob by defining the following at compile time. // SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG +// You can use GrSlug serialization to simulate drawTextBlob by defining the following: +// SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_SERIALIZE // For Skia, add this to your args.gn file. // extra_cflags = ["-D", "SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG"] @@ -43,16 +46,29 @@ class SK_API GrSlug : public GrTextReferenceFrame { static sk_sp ConvertBlob( SkCanvas* canvas, const SkTextBlob& blob, SkPoint origin, const SkPaint& paint); - // Set the client parameter to nullptr if no typeface ID translation is needed. - static sk_sp MakeFromBuffer(SkReadBuffer& buffer, const SkStrikeClient* client); + // Serialize the slug. + sk_sp serialize() const; + size_t serialize(void* buffer, size_t size) const; - // Draw the GrSlug obeying the canvas's mapping and clipping. - void draw(SkCanvas* canvas); + // Set the client parameter to the appropriate SkStrikeClient when typeface ID translation + // is needed. + static sk_sp Deserialize( + const void* data, size_t size, const SkStrikeClient* client = nullptr); + static sk_sp MakeFromBuffer(SkReadBuffer& buffer); - // Serialize the slug. - virtual void flatten(SkWriteBuffer&) const = 0; + + // Draw the GrSlug obeying the canvas's mapping and clipping. + void draw(SkCanvas* canvas) const; virtual SkRect sourceBounds() const = 0; virtual const SkPaint& paint() const = 0; + + virtual void doFlatten(SkWriteBuffer&) const = 0; + + uint32_t uniqueID() const { return fUniqueID; } + +private: + static uint32_t NextUniqueID(); + const uint32_t fUniqueID{NextUniqueID()}; }; #endif // GrSlug_DEFINED diff --git a/third_party/skia/include/private/chromium/SkChromeRemoteGlyphCache.h b/third_party/skia/include/private/chromium/SkChromeRemoteGlyphCache.h index f1212f2d396d..cbeaaab24a48 100644 --- a/third_party/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +++ b/third_party/skia/include/private/chromium/SkChromeRemoteGlyphCache.h @@ -141,7 +141,7 @@ class SkStrikeClient { // Given a buffer, unflatten into a slug making sure to do the typefaceID translation from // renderer to GPU. Returns nullptr if there was a problem. - sk_sp makeSlugFromBuffer(SkReadBuffer& buffer) const; + sk_sp deserializeSlug(const void* data, size_t size) const; private: std::unique_ptr fImpl; diff --git a/third_party/skia/include/private/gpu/ganesh/BUILD.bazel b/third_party/skia/include/private/gpu/ganesh/BUILD.bazel new file mode 100644 index 000000000000..50c0d603d824 --- /dev/null +++ b/third_party/skia/include/private/gpu/ganesh/BUILD.bazel @@ -0,0 +1,94 @@ +load("//bazel:macros.bzl", "generated_cc_atom") + +licenses(["notice"]) + +generated_cc_atom( + name = "GrContext_Base_hdr", + hdrs = ["GrContext_Base.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu:GrContextOptions_hdr", + "//include/gpu:GrTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrD3DTypesMinimal_hdr", + hdrs = ["GrD3DTypesMinimal.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/gpu:GrTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrDawnTypesPriv_hdr", + hdrs = ["GrDawnTypesPriv.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/gpu/dawn:GrDawnTypes_hdr"], +) + +generated_cc_atom( + name = "GrGLTypesPriv_hdr", + hdrs = ["GrGLTypesPriv.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/gpu/gl:GrGLTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrImageContext_hdr", + hdrs = ["GrImageContext.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrContext_Base_hdr", + "//include/private:SingleOwner_hdr", + ], +) + +generated_cc_atom( + name = "GrMockTypesPriv_hdr", + hdrs = ["GrMockTypesPriv.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/gpu/mock:GrMockTypes_hdr"], +) + +generated_cc_atom( + name = "GrMtlTypesPriv_hdr", + hdrs = ["GrMtlTypesPriv.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu:GrTypes_hdr", + "//include/gpu/mtl:GrMtlTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrTypesPriv_hdr", + hdrs = ["GrTypesPriv.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkImageInfo_hdr", + "//include/core:SkImage_hdr", + "//include/core:SkPath_hdr", + "//include/core:SkRefCnt_hdr", + "//include/gpu:GrTypes_hdr", + "//include/private:SkImageInfoPriv_hdr", + "//include/private:SkMacros_hdr", + ], +) + +generated_cc_atom( + name = "GrVkTypesPriv_hdr", + hdrs = ["GrVkTypesPriv.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + ], +) diff --git a/third_party/skia/include/private/GrContext_Base.h b/third_party/skia/include/private/gpu/ganesh/GrContext_Base.h similarity index 90% rename from third_party/skia/include/private/GrContext_Base.h rename to third_party/skia/include/private/gpu/ganesh/GrContext_Base.h index 19c367da4184..847e76f23252 100644 --- a/third_party/skia/include/private/GrContext_Base.h +++ b/third_party/skia/include/private/gpu/ganesh/GrContext_Base.h @@ -45,6 +45,13 @@ class GrContext_Base : public SkRefCnt { SK_API GrBackendFormat compressedBackendFormat(SkImage::CompressionType) 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 + * is not supported at all. + */ + SK_API int maxSurfaceSampleCountForColorType(SkColorType colorType) const; + // TODO: When the public version is gone, rename to refThreadSafeProxy and add raw ptr ver. sk_sp threadSafeProxy(); diff --git a/third_party/skia/include/private/GrD3DTypesMinimal.h b/third_party/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h similarity index 100% rename from third_party/skia/include/private/GrD3DTypesMinimal.h rename to third_party/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h diff --git a/third_party/skia/include/private/GrDawnTypesPriv.h b/third_party/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h similarity index 100% rename from third_party/skia/include/private/GrDawnTypesPriv.h rename to third_party/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h diff --git a/third_party/skia/include/private/GrGLTypesPriv.h b/third_party/skia/include/private/gpu/ganesh/GrGLTypesPriv.h similarity index 99% rename from third_party/skia/include/private/GrGLTypesPriv.h rename to third_party/skia/include/private/gpu/ganesh/GrGLTypesPriv.h index 4abef05c7d20..e951fbd17cfa 100644 --- a/third_party/skia/include/private/GrGLTypesPriv.h +++ b/third_party/skia/include/private/gpu/ganesh/GrGLTypesPriv.h @@ -38,6 +38,7 @@ class GrGLTextureParameters : public SkNVRefCnt { GrGLenum fWrapT; GrGLfloat fMinLOD; GrGLfloat fMaxLOD; + GrGLfloat fMaxAniso; // We always want the border color to be transparent black, so no need to store 4 floats. // Just track if it's been invalidated and no longer the default bool fBorderColorInvalid; diff --git a/third_party/skia/include/private/GrImageContext.h b/third_party/skia/include/private/gpu/ganesh/GrImageContext.h similarity index 97% rename from third_party/skia/include/private/GrImageContext.h rename to third_party/skia/include/private/gpu/ganesh/GrImageContext.h index 7d14181c96f5..5a1a7a32d624 100644 --- a/third_party/skia/include/private/GrImageContext.h +++ b/third_party/skia/include/private/gpu/ganesh/GrImageContext.h @@ -8,8 +8,8 @@ #ifndef GrImageContext_DEFINED #define GrImageContext_DEFINED -#include "include/private/GrContext_Base.h" #include "include/private/SingleOwner.h" +#include "include/private/gpu/ganesh/GrContext_Base.h" class GrImageContextPriv; diff --git a/third_party/skia/include/private/GrMockTypesPriv.h b/third_party/skia/include/private/gpu/ganesh/GrMockTypesPriv.h similarity index 100% rename from third_party/skia/include/private/GrMockTypesPriv.h rename to third_party/skia/include/private/gpu/ganesh/GrMockTypesPriv.h diff --git a/third_party/skia/include/private/GrMtlTypesPriv.h b/third_party/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h similarity index 100% rename from third_party/skia/include/private/GrMtlTypesPriv.h rename to third_party/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h diff --git a/third_party/skia/include/private/GrTypesPriv.h b/third_party/skia/include/private/gpu/ganesh/GrTypesPriv.h similarity index 96% rename from third_party/skia/include/private/GrTypesPriv.h rename to third_party/skia/include/private/gpu/ganesh/GrTypesPriv.h index 671efe4440eb..8fae1c36efed 100644 --- a/third_party/skia/include/private/GrTypesPriv.h +++ b/third_party/skia/include/private/gpu/ganesh/GrTypesPriv.h @@ -257,18 +257,13 @@ enum class GrClampType { /** * A number of rectangle/quadrilateral drawing APIs can control anti-aliasing on a per edge basis. * These masks specify which edges are AA'ed. The intent for this is to support tiling with seamless - * boundaries, where the inner edges are non-AA and the outer edges are AA. Regular draws (where AA - * is specified by GrAA) is almost equivalent to kNone or kAll, with the exception of how MSAA is - * handled. + * boundaries, where the inner edges are non-AA and the outer edges are AA. Regular rectangle draws + * simply use kAll or kNone depending on if they want anti-aliasing or not. * - * When tiling and there is MSAA, mixed edge rectangles are processed with MSAA, so in order for the - * tiled edges to remain seamless, inner tiles with kNone must also be processed with MSAA. In - * regular drawing, however, kNone should disable MSAA (if it's supported) to match the expected - * appearance. - * - * Therefore, APIs that use per-edge AA flags also take a GrAA value so that they can differentiate - * between the regular and tiling use case behaviors. Tiling operations should always pass - * GrAA::kYes while regular options should pass GrAA based on the SkPaint's anti-alias state. + * In APIs that support per-edge AA, GrQuadAAFlags is the only AA-control parameter that is + * provided (compared to the typical GrAA parameter). kNone is equivalent to GrAA::kNo, and any + * other set of edge flags would require GrAA::kYes (with rendering output dependent on how that + * maps to GrAAType for a given SurfaceDrawContext). * * These values are identical to SkCanvas::QuadAAFlags. */ @@ -978,36 +973,6 @@ static constexpr GrColorType GrMaskFormatToColorType(GrMaskFormat format) { SkUNREACHABLE; } -/** - * Ref-counted object that calls a callback from its destructor. - */ -class GrRefCntedCallback : public SkNVRefCnt { -public: - using Context = void*; - using Callback = void (*)(Context); - - static sk_sp Make(Callback proc, Context ctx) { - if (!proc) { - return nullptr; - } - return sk_sp(new GrRefCntedCallback(proc, ctx)); - } - - ~GrRefCntedCallback() { fReleaseProc(fReleaseCtx); } - - Context context() const { return fReleaseCtx; } - -private: - GrRefCntedCallback(Callback proc, Context ctx) : fReleaseProc(proc), fReleaseCtx(ctx) {} - GrRefCntedCallback(const GrRefCntedCallback&) = delete; - GrRefCntedCallback(GrRefCntedCallback&&) = delete; - GrRefCntedCallback& operator=(const GrRefCntedCallback&) = delete; - GrRefCntedCallback& operator=(GrRefCntedCallback&&) = delete; - - Callback fReleaseProc; - Context fReleaseCtx; -}; - enum class GrDstSampleFlags { kNone = 0, kRequiresTextureBarrier = 1 << 0, diff --git a/third_party/skia/include/private/GrVkTypesPriv.h b/third_party/skia/include/private/gpu/ganesh/GrVkTypesPriv.h similarity index 100% rename from third_party/skia/include/private/GrVkTypesPriv.h rename to third_party/skia/include/private/gpu/ganesh/GrVkTypesPriv.h diff --git a/third_party/skia/experimental/graphite/include/private/BUILD.bazel b/third_party/skia/include/private/gpu/graphite/BUILD.bazel similarity index 60% rename from third_party/skia/experimental/graphite/include/private/BUILD.bazel rename to third_party/skia/include/private/gpu/graphite/BUILD.bazel index 46dc0b70b0e4..053e7eb7ab73 100644 --- a/third_party/skia/experimental/graphite/include/private/BUILD.bazel +++ b/third_party/skia/include/private/gpu/graphite/BUILD.bazel @@ -1,11 +1,13 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "MtlTypesPriv_hdr", hdrs = ["MtlTypesPriv.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include:GraphiteTypes_hdr", - "//experimental/graphite/include/mtl:MtlTypes_hdr", + "//include/gpu/graphite:GraphiteTypes_hdr", + "//include/gpu/graphite/mtl:MtlTypes_hdr", ], ) diff --git a/third_party/skia/experimental/graphite/include/private/MtlTypesPriv.h b/third_party/skia/include/private/gpu/graphite/MtlTypesPriv.h similarity index 67% rename from third_party/skia/experimental/graphite/include/private/MtlTypesPriv.h rename to third_party/skia/include/private/gpu/graphite/MtlTypesPriv.h index 585bc9edcbe1..697628a84d93 100644 --- a/third_party/skia/experimental/graphite/include/private/MtlTypesPriv.h +++ b/third_party/skia/include/private/gpu/graphite/MtlTypesPriv.h @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#ifndef skgpu_MtlTypesPriv_DEFINED -#define skgpu_MtlTypesPriv_DEFINED +#ifndef skgpu_graphite_MtlTypesPriv_DEFINED +#define skgpu_graphite_MtlTypesPriv_DEFINED -#include "experimental/graphite/include/GraphiteTypes.h" -#include "experimental/graphite/include/mtl/MtlTypes.h" +#include "include/gpu/graphite/GraphiteTypes.h" +#include "include/gpu/graphite/mtl/MtlTypes.h" /////////////////////////////////////////////////////////////////////////////// @@ -38,37 +38,37 @@ #endif // __APPLE__ -namespace skgpu::mtl { +namespace skgpu::graphite { -struct TextureSpec { - TextureSpec() +struct MtlTextureSpec { + MtlTextureSpec() : fFormat(0) , fUsage(0) , fStorageMode(0) , fFramebufferOnly(false) {} - TextureSpec(const TextureInfo& info) + MtlTextureSpec(const MtlTextureInfo& info) : fFormat(info.fFormat) , fUsage(info.fUsage) , fStorageMode(info.fStorageMode) , fFramebufferOnly(info.fFramebufferOnly) {} - bool operator==(const TextureSpec& that) const { + bool operator==(const MtlTextureSpec& that) const { return fFormat == that.fFormat && fUsage == that.fUsage && fStorageMode == that.fStorageMode && fFramebufferOnly == that.fFramebufferOnly; } - PixelFormat fFormat; - TextureUsage fUsage; - StorageMode fStorageMode; + MtlPixelFormat fFormat; + MtlTextureUsage fUsage; + MtlStorageMode fStorageMode; bool fFramebufferOnly; }; -TextureInfo TextureSpecToTextureInfo(const TextureSpec& mtlSpec, - uint32_t sampleCount, - uint32_t levelCount); +MtlTextureInfo MtlTextureSpecToTextureInfo(const MtlTextureSpec& mtlSpec, + uint32_t sampleCount, + uint32_t levelCount); -} // namespace skgpu::mtl +} // namespace skgpu::graphite -#endif // skgpu_MtlTypesPriv_DEFINED +#endif // skgpu_graphite_MtlTypesPriv_DEFINED diff --git a/third_party/skia/include/sksl/BUILD.bazel b/third_party/skia/include/sksl/BUILD.bazel index c3b554599b40..2d07bb719229 100644 --- a/third_party/skia/include/sksl/BUILD.bazel +++ b/third_party/skia/include/sksl/BUILD.bazel @@ -1,13 +1,18 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") + +licenses(["notice"]) + +enforce_iwyu_on_package() generated_cc_atom( name = "DSLBlock_hdr", hdrs = ["DSLBlock.h"], visibility = ["//:__subpackages__"], deps = [ - ":DSLExpression_hdr", ":DSLStatement_hdr", + ":SkSLPosition_hdr", "//include/private:SkSLDefines_hdr", + "//include/private:SkTArray_hdr", ], ) @@ -18,7 +23,9 @@ generated_cc_atom( deps = [ ":DSLExpression_hdr", ":DSLStatement_hdr", + ":SkSLPosition_hdr", "//include/private:SkSLDefines_hdr", + "//include/private:SkTArray_hdr", ], ) @@ -27,15 +34,11 @@ generated_cc_atom( hdrs = ["DSLCore.h"], visibility = ["//:__subpackages__"], deps = [ - ":DSLBlock_hdr", ":DSLCase_hdr", ":DSLExpression_hdr", - ":DSLFunction_hdr", ":DSLStatement_hdr", - ":DSLType_hdr", ":DSLVar_hdr", - ":DSLWrapper_hdr", - ":SkSLErrorReporter_hdr", + "//include/private:SkSLDefines_hdr", "//include/private:SkSLProgramKind_hdr", "//include/private:SkTArray_hdr", ], @@ -46,9 +49,8 @@ generated_cc_atom( hdrs = ["DSLExpression.h"], visibility = ["//:__subpackages__"], deps = [ - ":DSLWrapper_hdr", - ":SkSLErrorReporter_hdr", - "//include/core:SkTypes_hdr", + ":SkSLOperator_hdr", + ":SkSLPosition_hdr", "//include/private:SkTArray_hdr", ], ) @@ -60,9 +62,13 @@ generated_cc_atom( deps = [ ":DSLBlock_hdr", ":DSLExpression_hdr", + ":DSLModifiers_hdr", + ":DSLStatement_hdr", ":DSLType_hdr", ":DSLVar_hdr", - ":DSLWrapper_hdr", + ":SkSLPosition_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkTArray_hdr", ], ) @@ -71,7 +77,7 @@ generated_cc_atom( hdrs = ["DSLLayout.h"], visibility = ["//:__subpackages__"], deps = [ - ":SkSLErrorReporter_hdr", + ":SkSLPosition_hdr", "//include/private:SkSLLayout_hdr", ], ) @@ -92,7 +98,7 @@ generated_cc_atom( hdrs = ["DSLRuntimeEffects.h"], visibility = ["//:__subpackages__"], deps = [ - ":DSL_hdr", + "//include/core:SkRefCnt_hdr", "//include/effects:SkRuntimeEffect_hdr", ], ) @@ -102,8 +108,6 @@ generated_cc_atom( hdrs = ["DSLStatement.h"], visibility = ["//:__subpackages__"], deps = [ - ":SkSLErrorReporter_hdr", - "//include/core:SkString_hdr", "//include/core:SkTypes_hdr", "//include/private:SkSLStatement_hdr", ], @@ -113,10 +117,7 @@ generated_cc_atom( name = "DSLSymbols_hdr", hdrs = ["DSLSymbols.h"], visibility = ["//:__subpackages__"], - deps = [ - ":DSLExpression_hdr", - "//include/private:SkSLString_hdr", - ], + deps = [":DSLExpression_hdr"], ) generated_cc_atom( @@ -126,8 +127,8 @@ generated_cc_atom( deps = [ ":DSLExpression_hdr", ":DSLModifiers_hdr", + ":SkSLPosition_hdr", "//include/core:SkSpan_hdr", - "//include/private:SkSLString_hdr", ], ) @@ -139,6 +140,7 @@ generated_cc_atom( ":DSLExpression_hdr", ":DSLModifiers_hdr", ":DSLType_hdr", + ":SkSLPosition_hdr", ], ) @@ -152,17 +154,20 @@ generated_cc_atom( name = "DSL_hdr", hdrs = ["DSL.h"], visibility = ["//:__subpackages__"], - deps = [":DSLCore_hdr"], + deps = [ + ":DSLBlock_hdr", + ":DSLCore_hdr", + ":DSLExpression_hdr", + ":DSLFunction_hdr", + ":DSLType_hdr", + ], ) generated_cc_atom( name = "SkSLErrorReporter_hdr", hdrs = ["SkSLErrorReporter.h"], visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkTypes_hdr", - "//include/private:SkSLString_hdr", - ], + deps = ["//include/core:SkTypes_hdr"], ) generated_cc_atom( @@ -171,3 +176,16 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = ["//include/core:SkRefCnt_hdr"], ) + +generated_cc_atom( + name = "SkSLPosition_hdr", + hdrs = ["SkSLPosition.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/core:SkTypes_hdr"], +) + +generated_cc_atom( + name = "SkSLOperator_hdr", + hdrs = ["SkSLOperator.h"], + visibility = ["//:__subpackages__"], +) diff --git a/third_party/skia/include/sksl/DSL.h b/third_party/skia/include/sksl/DSL.h index a8c8f5285170..1628029406d4 100644 --- a/third_party/skia/include/sksl/DSL.h +++ b/third_party/skia/include/sksl/DSL.h @@ -8,7 +8,11 @@ #ifndef SKSL_DSL #define SKSL_DSL +#include "include/sksl/DSLBlock.h" #include "include/sksl/DSLCore.h" +#include "include/sksl/DSLExpression.h" +#include "include/sksl/DSLFunction.h" +#include "include/sksl/DSLType.h" namespace SkSL { diff --git a/third_party/skia/include/sksl/DSLBlock.h b/third_party/skia/include/sksl/DSLBlock.h index 3fcbb34c896d..ba3d05e2e0a7 100644 --- a/third_party/skia/include/sksl/DSLBlock.h +++ b/third_party/skia/include/sksl/DSLBlock.h @@ -9,10 +9,12 @@ #define SKSL_DSL_BLOCK #include "include/private/SkSLDefines.h" -#include "include/sksl/DSLExpression.h" +#include "include/private/SkTArray.h" #include "include/sksl/DSLStatement.h" +#include "include/sksl/SkSLPosition.h" #include +#include namespace SkSL { @@ -37,9 +39,11 @@ class DSLBlock { DSLBlock(DSLBlock&& other) = default; - DSLBlock(SkSL::StatementArray statements, std::shared_ptr symbols = nullptr); + DSLBlock(SkSL::StatementArray statements, std::shared_ptr symbols = nullptr, + Position pos = {}); - DSLBlock(SkTArray statements, std::shared_ptr symbols = nullptr); + DSLBlock(SkTArray statements, std::shared_ptr symbols = nullptr, + Position pos = {}); ~DSLBlock(); @@ -55,6 +59,7 @@ class DSLBlock { private: SkSL::StatementArray fStatements; std::shared_ptr fSymbols; + Position fPosition; friend class DSLStatement; friend class DSLFunction; diff --git a/third_party/skia/include/sksl/DSLCase.h b/third_party/skia/include/sksl/DSLCase.h index 5b006e7e2837..d873fb3d1768 100644 --- a/third_party/skia/include/sksl/DSLCase.h +++ b/third_party/skia/include/sksl/DSLCase.h @@ -9,15 +9,15 @@ #define SKSL_DSL_CASE #include "include/private/SkSLDefines.h" +#include "include/private/SkTArray.h" #include "include/sksl/DSLExpression.h" #include "include/sksl/DSLStatement.h" +#include "include/sksl/SkSLPosition.h" -#include +#include namespace SkSL { -class Statement; - namespace dsl { class DSLCase { @@ -37,10 +37,10 @@ class DSLCase { } DSLCase(DSLExpression value, SkTArray statements, - PositionInfo info = PositionInfo::Capture()); + Position pos = {}); DSLCase(DSLExpression value, SkSL::StatementArray statements, - PositionInfo info = PositionInfo::Capture()); + Position pos = {}); DSLCase(DSLCase&&); @@ -53,7 +53,7 @@ class DSLCase { private: DSLExpression fValue; SkSL::StatementArray fStatements; - PositionInfo fPosition; + Position fPosition; friend class DSLCore; diff --git a/third_party/skia/include/sksl/DSLCore.h b/third_party/skia/include/sksl/DSLCore.h index 9a2215d83b16..b25c5ffc4881 100644 --- a/third_party/skia/include/sksl/DSLCore.h +++ b/third_party/skia/include/sksl/DSLCore.h @@ -8,26 +8,32 @@ #ifndef SKSL_DSL_CORE #define SKSL_DSL_CORE +#include "include/private/SkSLDefines.h" #include "include/private/SkSLProgramKind.h" #include "include/private/SkTArray.h" -#include "include/sksl/DSLBlock.h" #include "include/sksl/DSLCase.h" #include "include/sksl/DSLExpression.h" -#include "include/sksl/DSLFunction.h" #include "include/sksl/DSLStatement.h" -#include "include/sksl/DSLType.h" #include "include/sksl/DSLVar.h" -#include "include/sksl/DSLWrapper.h" -#include "include/sksl/SkSLErrorReporter.h" + +#include +#include +#include +#include namespace SkSL { class Compiler; +class ErrorReporter; +class Position; struct Program; struct ProgramSettings; namespace dsl { +class DSLField; +class DSLModifiers; + // When users import the DSL namespace via `using namespace SkSL::dsl`, we want the SwizzleComponent // Type enum to come into scope as well, so `Swizzle(var, X, Y, ONE)` can work as expected. // `namespace SkSL::SwizzleComponent` contains only an `enum Type`; this `using namespace` directive @@ -76,42 +82,42 @@ DSLExpression sk_Position(); /** * #extension : enable */ -void AddExtension(std::string_view name, PositionInfo pos = PositionInfo::Capture()); +void AddExtension(std::string_view name, Position pos = {}); /** * break; */ -DSLStatement Break(PositionInfo pos = PositionInfo::Capture()); +DSLStatement Break(Position pos = {}); /** * continue; */ -DSLStatement Continue(PositionInfo pos = PositionInfo::Capture()); +DSLStatement Continue(Position pos = {}); /** * Adds a modifiers declaration to the current program. */ -void Declare(const DSLModifiers& modifiers, PositionInfo pos = PositionInfo::Capture()); +void Declare(const DSLModifiers& modifiers, Position pos = {}); /** * Creates a local variable declaration statement. */ -DSLStatement Declare(DSLVar& var, PositionInfo pos = PositionInfo::Capture()); +DSLStatement Declare(DSLVar& var, Position pos = {}); /** * Creates a local variable declaration statement containing multiple variables. */ -DSLStatement Declare(SkTArray& vars, PositionInfo pos = PositionInfo::Capture()); +DSLStatement Declare(SkTArray& vars, Position pos = {}); /** * Declares a global variable. */ -void Declare(DSLGlobalVar& var, PositionInfo pos = PositionInfo::Capture()); +void Declare(DSLGlobalVar& var, Position pos = {}); /** * Declares a set of global variables. */ -void Declare(SkTArray& vars, PositionInfo pos = PositionInfo::Capture()); +void Declare(SkTArray& vars, Position pos = {}); /** * default: statements @@ -124,50 +130,50 @@ DSLCase Default(Statements... statements) { /** * discard; */ -DSLStatement Discard(PositionInfo pos = PositionInfo::Capture()); +DSLStatement Discard(Position pos = {}); /** * do stmt; while (test); */ -DSLStatement Do(DSLStatement stmt, DSLExpression test, PositionInfo pos = PositionInfo::Capture()); +DSLStatement Do(DSLStatement stmt, DSLExpression test, Position pos = {}); /** * for (initializer; test; next) stmt; */ DSLStatement For(DSLStatement initializer, DSLExpression test, DSLExpression next, - DSLStatement stmt, PositionInfo pos = PositionInfo::Capture()); + DSLStatement stmt, Position pos = {}); /** * if (test) ifTrue; [else ifFalse;] */ DSLStatement If(DSLExpression test, DSLStatement ifTrue, DSLStatement ifFalse = DSLStatement(), - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); DSLGlobalVar InterfaceBlock(const DSLModifiers& modifiers, std::string_view typeName, SkTArray fields, std::string_view varName = "", - int arraySize = 0, PositionInfo pos = PositionInfo::Capture()); + int arraySize = 0, Position pos = {}); /** * return [value]; */ DSLStatement Return(DSLExpression value = DSLExpression(), - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * test ? ifTrue : ifFalse */ DSLExpression Select(DSLExpression test, DSLExpression ifTrue, DSLExpression ifFalse, - PositionInfo info = PositionInfo::Capture()); + Position = {}); DSLStatement StaticIf(DSLExpression test, DSLStatement ifTrue, DSLStatement ifFalse = DSLStatement(), - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); // Internal use only DSLPossibleStatement PossibleStaticSwitch(DSLExpression value, SkTArray cases); DSLStatement StaticSwitch(DSLExpression value, SkTArray cases, - PositionInfo info = PositionInfo::Capture()); + Position pos = {}); /** * @switch (value) { cases } @@ -184,7 +190,7 @@ DSLPossibleStatement StaticSwitch(DSLExpression value, Cases... cases) { DSLPossibleStatement PossibleSwitch(DSLExpression value, SkTArray cases); DSLStatement Switch(DSLExpression value, SkTArray cases, - PositionInfo info = PositionInfo::Capture()); + Position pos = {}); /** * switch (value) { cases } @@ -201,187 +207,187 @@ DSLPossibleStatement Switch(DSLExpression value, Cases... cases) { * while (test) stmt; */ DSLStatement While(DSLExpression test, DSLStatement stmt, - PositionInfo info = PositionInfo::Capture()); + Position pos = {}); /** * expression.xyz1 */ DSLExpression Swizzle(DSLExpression base, SkSL::SwizzleComponent::Type a, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); DSLExpression Swizzle(DSLExpression base, SkSL::SwizzleComponent::Type a, SkSL::SwizzleComponent::Type b, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); DSLExpression Swizzle(DSLExpression base, SkSL::SwizzleComponent::Type a, SkSL::SwizzleComponent::Type b, SkSL::SwizzleComponent::Type c, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); DSLExpression Swizzle(DSLExpression base, SkSL::SwizzleComponent::Type a, SkSL::SwizzleComponent::Type b, SkSL::SwizzleComponent::Type c, SkSL::SwizzleComponent::Type d, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns the absolute value of x. If x is a vector, operates componentwise. */ -DSLExpression Abs(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Abs(DSLExpression x, Position pos = {}); /** * Returns true if all of the components of boolean vector x are true. */ -DSLExpression All(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression All(DSLExpression x, Position pos = {}); /** * Returns true if any of the components of boolean vector x are true. */ -DSLExpression Any(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Any(DSLExpression x, Position pos = {}); /** * Returns the arctangent of y over x. Operates componentwise on vectors. */ -DSLExpression Atan(DSLExpression y_over_x, PositionInfo pos = PositionInfo::Capture()); -DSLExpression Atan(DSLExpression y, DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Atan(DSLExpression y_over_x, Position pos = {}); +DSLExpression Atan(DSLExpression y, DSLExpression x, Position pos = {}); /** * Returns x rounded towards positive infinity. If x is a vector, operates componentwise. */ -DSLExpression Ceil(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Ceil(DSLExpression x, Position pos = {}); /** * Returns x clamped to between min and max. If x is a vector, operates componentwise. */ DSLExpression Clamp(DSLExpression x, DSLExpression min, DSLExpression max, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns the cosine of x. If x is a vector, operates componentwise. */ -DSLExpression Cos(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Cos(DSLExpression x, Position pos = {}); /** * Returns the cross product of x and y. */ -DSLExpression Cross(DSLExpression x, DSLExpression y, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Cross(DSLExpression x, DSLExpression y, Position pos = {}); /** * Returns x converted from radians to degrees. If x is a vector, operates componentwise. */ -DSLExpression Degrees(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Degrees(DSLExpression x, Position pos = {}); /** * Returns the distance between x and y. */ DSLExpression Distance(DSLExpression x, DSLExpression y, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns the dot product of x and y. */ -DSLExpression Dot(DSLExpression x, DSLExpression y, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Dot(DSLExpression x, DSLExpression y, Position pos = {}); /** * Returns a boolean vector indicating whether components of x are equal to the corresponding * components of y. */ -DSLExpression Equal(DSLExpression x, DSLExpression y, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Equal(DSLExpression x, DSLExpression y, Position pos = {}); /** * Returns e^x. If x is a vector, operates componentwise. */ -DSLExpression Exp(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Exp(DSLExpression x, Position pos = {}); /** * Returns 2^x. If x is a vector, operates componentwise. */ -DSLExpression Exp2(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Exp2(DSLExpression x, Position pos = {}); /** * If dot(i, nref) >= 0, returns n, otherwise returns -n. */ DSLExpression Faceforward(DSLExpression n, DSLExpression i, DSLExpression nref, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns x rounded towards negative infinity. If x is a vector, operates componentwise. */ -DSLExpression Floor(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Floor(DSLExpression x, Position pos = {}); /** * Returns the fractional part of x. If x is a vector, operates componentwise. */ -DSLExpression Fract(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Fract(DSLExpression x, Position pos = {}); /** * Returns a boolean vector indicating whether components of x are greater than the corresponding * components of y. */ DSLExpression GreaterThan(DSLExpression x, DSLExpression y, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns a boolean vector indicating whether components of x are greater than or equal to the * corresponding components of y. */ DSLExpression GreaterThanEqual(DSLExpression x, DSLExpression y, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns the 1/sqrt(x). If x is a vector, operates componentwise. */ -DSLExpression Inversesqrt(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Inversesqrt(DSLExpression x, Position pos = {}); /** * Returns the inverse of the matrix x. */ -DSLExpression Inverse(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Inverse(DSLExpression x, Position pos = {}); /** * Returns the length of the vector x. */ -DSLExpression Length(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Length(DSLExpression x, Position pos = {}); /** * Returns a boolean vector indicating whether components of x are less than the corresponding * components of y. */ DSLExpression LessThan(DSLExpression x, DSLExpression y, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns a boolean vector indicating whether components of x are less than or equal to the * corresponding components of y. */ DSLExpression LessThanEqual(DSLExpression x, DSLExpression y, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns the log base e of x. If x is a vector, operates componentwise. */ -DSLExpression Log(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Log(DSLExpression x, Position pos = {}); /** * Returns the log base 2 of x. If x is a vector, operates componentwise. */ -DSLExpression Log2(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Log2(DSLExpression x, Position pos = {}); /** * Returns the larger (closer to positive infinity) of x and y. If x is a vector, operates * componentwise. y may be either a vector of the same dimensions as x, or a scalar. */ -DSLExpression Max(DSLExpression x, DSLExpression y, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Max(DSLExpression x, DSLExpression y, Position pos = {}); /** * Returns the smaller (closer to negative infinity) of x and y. If x is a vector, operates * componentwise. y may be either a vector of the same dimensions as x, or a scalar. */ -DSLExpression Min(DSLExpression x, DSLExpression y, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Min(DSLExpression x, DSLExpression y, Position pos = {}); /** * Returns a linear intepolation between x and y at position a, where a=0 results in x and a=1 @@ -389,68 +395,68 @@ DSLExpression Min(DSLExpression x, DSLExpression y, PositionInfo pos = PositionI * same dimensions as x and y, or a scalar. */ DSLExpression Mix(DSLExpression x, DSLExpression y, DSLExpression a, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns x modulo y. If x is a vector, operates componentwise. y may be either a vector of the * same dimensions as x, or a scalar. */ -DSLExpression Mod(DSLExpression x, DSLExpression y, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Mod(DSLExpression x, DSLExpression y, Position pos = {}); /** * Returns the vector x normalized to a length of 1. */ -DSLExpression Normalize(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Normalize(DSLExpression x, Position pos = {}); /** * Returns a boolean vector indicating whether components of x are not equal to the corresponding * components of y. */ DSLExpression NotEqual(DSLExpression x, DSLExpression y, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns x raised to the power y. If x is a vector, operates componentwise. y may be either a * vector of the same dimensions as x, or a scalar. */ -DSLExpression Pow(DSLExpression x, DSLExpression y, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Pow(DSLExpression x, DSLExpression y, Position pos = {}); /** * Returns x converted from degrees to radians. If x is a vector, operates componentwise. */ -DSLExpression Radians(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Radians(DSLExpression x, Position pos = {}); /** * Returns i reflected from a surface with normal n. */ -DSLExpression Reflect(DSLExpression i, DSLExpression n, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Reflect(DSLExpression i, DSLExpression n, Position pos = {}); /** * Returns i refracted across a surface with normal n and ratio of indices of refraction eta. */ DSLExpression Refract(DSLExpression i, DSLExpression n, DSLExpression eta, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns x, rounded to the nearest integer. If x is a vector, operates componentwise. */ -DSLExpression Round(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Round(DSLExpression x, Position pos = {}); /** * Returns x clamped to the range [0, 1]. If x is a vector, operates componentwise. */ -DSLExpression Saturate(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Saturate(DSLExpression x, Position pos = {}); /** * Returns -1, 0, or 1 depending on whether x is negative, zero, or positive, respectively. If x is * a vector, operates componentwise. */ -DSLExpression Sign(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Sign(DSLExpression x, Position pos = {}); /** * Returns the sine of x. If x is a vector, operates componentwise. */ -DSLExpression Sin(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Sin(DSLExpression x, Position pos = {}); /** * Returns a smooth interpolation between 0 (at x=edge1) and 1 (at x=edge2). If x is a vector, @@ -458,28 +464,28 @@ DSLExpression Sin(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); * scalars. */ DSLExpression Smoothstep(DSLExpression edge1, DSLExpression edge2, DSLExpression x, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns the square root of x. If x is a vector, operates componentwise. */ -DSLExpression Sqrt(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Sqrt(DSLExpression x, Position pos = {}); /** * Returns 0 if x < edge or 1 if x >= edge. If x is a vector, operates componentwise. edge may be * either a vector of the same dimensions as x, or a scalar. */ -DSLExpression Step(DSLExpression edge, DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Step(DSLExpression edge, DSLExpression x, Position pos = {}); /** * Returns the tangent of x. If x is a vector, operates componentwise. */ -DSLExpression Tan(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Tan(DSLExpression x, Position pos = {}); /** * Returns x converted from premultipled to unpremultiplied alpha. */ -DSLExpression Unpremul(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Unpremul(DSLExpression x, Position pos = {}); } // namespace dsl diff --git a/third_party/skia/include/sksl/DSLExpression.h b/third_party/skia/include/sksl/DSLExpression.h index 47d6f2311ac1..7223ec39f68a 100644 --- a/third_party/skia/include/sksl/DSLExpression.h +++ b/third_party/skia/include/sksl/DSLExpression.h @@ -8,13 +8,13 @@ #ifndef SKSL_DSL_EXPRESSION #define SKSL_DSL_EXPRESSION -#include "include/core/SkTypes.h" #include "include/private/SkTArray.h" -#include "include/sksl/DSLWrapper.h" -#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLOperator.h" +#include "include/sksl/SkSLPosition.h" #include #include +#include #include #if defined(__has_cpp_attribute) && __has_cpp_attribute(clang::reinitializes) @@ -26,14 +26,14 @@ namespace SkSL { class Expression; -class Type; +class ExpressionArray; namespace dsl { class DSLPossibleExpression; -class DSLStatement; class DSLType; class DSLVarBase; +template class DSLWrapper; /** * Represents an expression such as 'cos(x)' or 'a + b'. @@ -49,76 +49,85 @@ class DSLExpression { /** * Creates an expression representing a literal float. */ - DSLExpression(float value, PositionInfo pos = PositionInfo::Capture()); + DSLExpression(float value, Position pos = {}); /** * Creates an expression representing a literal float. */ - DSLExpression(double value, PositionInfo pos = PositionInfo::Capture()) + DSLExpression(double value, Position pos = {}) : DSLExpression((float) value) {} /** * Creates an expression representing a literal int. */ - DSLExpression(int value, PositionInfo pos = PositionInfo::Capture()); + DSLExpression(int value, Position pos = {}); /** * Creates an expression representing a literal int. */ - DSLExpression(int64_t value, PositionInfo pos = PositionInfo::Capture()); + DSLExpression(int64_t value, Position pos = {}); /** * Creates an expression representing a literal uint. */ - DSLExpression(unsigned int value, PositionInfo pos = PositionInfo::Capture()); + DSLExpression(unsigned int value, Position pos = {}); /** * Creates an expression representing a literal bool. */ - DSLExpression(bool value, PositionInfo pos = PositionInfo::Capture()); + DSLExpression(bool value, Position pos = {}); /** * Creates an expression representing a variable reference. */ - DSLExpression(DSLVarBase& var, PositionInfo pos = PositionInfo::Capture()); + DSLExpression(DSLVarBase& var, Position pos = {}); - DSLExpression(DSLVarBase&& var, PositionInfo pos = PositionInfo::Capture()); + DSLExpression(DSLVarBase&& var, Position pos = {}); - DSLExpression(DSLPossibleExpression expr, PositionInfo pos = PositionInfo::Capture()); + DSLExpression(DSLPossibleExpression expr, Position pos = {}); explicit DSLExpression(std::unique_ptr expression); - static DSLExpression Poison(PositionInfo pos = PositionInfo::Capture()); + // If expression is null, returns Poison(pos) + DSLExpression(std::unique_ptr expression, Position pos); + + static DSLExpression Poison(Position pos = {}); ~DSLExpression(); - DSLType type(); + DSLType type() const; + + std::string description() const; + + Position position() const; + + void setPosition(Position pos); /** * Overloads the '=' operator to create an SkSL assignment statement. */ DSLPossibleExpression operator=(DSLExpression other); - DSLExpression x(PositionInfo pos = PositionInfo::Capture()); + DSLExpression x(Position pos = {}); - DSLExpression y(PositionInfo pos = PositionInfo::Capture()); + DSLExpression y(Position pos = {}); - DSLExpression z(PositionInfo pos = PositionInfo::Capture()); + DSLExpression z(Position pos = {}); - DSLExpression w(PositionInfo pos = PositionInfo::Capture()); + DSLExpression w(Position pos = {}); - DSLExpression r(PositionInfo pos = PositionInfo::Capture()); + DSLExpression r(Position pos = {}); - DSLExpression g(PositionInfo pos = PositionInfo::Capture()); + DSLExpression g(Position pos = {}); - DSLExpression b(PositionInfo pos = PositionInfo::Capture()); + DSLExpression b(Position pos = {}); - DSLExpression a(PositionInfo pos = PositionInfo::Capture()); + DSLExpression a(Position pos = {}); /** * Creates an SkSL struct field access expression. */ - DSLExpression field(std::string_view name, PositionInfo pos = PositionInfo::Capture()); + DSLExpression field(std::string_view name, Position pos = {}); /** * Creates an SkSL array index expression. @@ -126,10 +135,30 @@ class DSLExpression { DSLPossibleExpression operator[](DSLExpression index); DSLPossibleExpression operator()(SkTArray> args, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); DSLPossibleExpression operator()(ExpressionArray args, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); + + /** + * Invokes a prefix operator. + */ + DSLExpression prefix(Operator::Kind op, Position pos); + + /** + * Invokes a postfix operator. + */ + DSLExpression postfix(Operator::Kind op, Position pos); + + /** + * Invokes a binary operator. + */ + DSLExpression binary(Operator::Kind op, DSLExpression right, Position pos); + + /** + * Equivalent to operator[]. + */ + DSLExpression index(DSLExpression index, Position pos); /** * Returns true if this object contains an expression. DSLExpressions which were created with @@ -216,12 +245,12 @@ DSLPossibleExpression operator--(DSLExpression expr, int); /** * Represents an Expression which may have failed and/or have pending errors to report. Converting a - * PossibleExpression into an Expression requires PositionInfo so that any pending errors can be + * PossibleExpression into an Expression requires a Position so that any pending errors can be * reported at the correct position. * * PossibleExpression is used instead of Expression in situations where it is not possible to - * capture the PositionInfo at the time of Expression construction (notably in operator overloads, - * where we cannot add default parameters). + * capture the Position at the time of Expression construction (notably in operator overloads, where + * we cannot add default parameters). */ class DSLPossibleExpression { public: @@ -238,27 +267,31 @@ class DSLPossibleExpression { /** * Reports any pending errors at the specified position. */ - void reportErrors(PositionInfo pos); + void reportErrors(Position pos); + + DSLType type() const; + + std::string description() const; - DSLType type(); + Position position() const; - DSLExpression x(PositionInfo pos = PositionInfo::Capture()); + DSLExpression x(Position pos = {}); - DSLExpression y(PositionInfo pos = PositionInfo::Capture()); + DSLExpression y(Position pos = {}); - DSLExpression z(PositionInfo pos = PositionInfo::Capture()); + DSLExpression z(Position pos = {}); - DSLExpression w(PositionInfo pos = PositionInfo::Capture()); + DSLExpression w(Position pos = {}); - DSLExpression r(PositionInfo pos = PositionInfo::Capture()); + DSLExpression r(Position pos = {}); - DSLExpression g(PositionInfo pos = PositionInfo::Capture()); + DSLExpression g(Position pos = {}); - DSLExpression b(PositionInfo pos = PositionInfo::Capture()); + DSLExpression b(Position pos = {}); - DSLExpression a(PositionInfo pos = PositionInfo::Capture()); + DSLExpression a(Position pos = {}); - DSLExpression field(std::string_view name, PositionInfo pos = PositionInfo::Capture()); + DSLExpression field(std::string_view name, Position pos = {}); DSLPossibleExpression operator=(DSLExpression expr); @@ -271,10 +304,10 @@ class DSLPossibleExpression { DSLPossibleExpression operator[](DSLExpression index); DSLPossibleExpression operator()(SkTArray> args, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); DSLPossibleExpression operator()(ExpressionArray args, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); DSLPossibleExpression operator++(); @@ -284,7 +317,7 @@ class DSLPossibleExpression { DSLPossibleExpression operator--(int); - std::unique_ptr release(PositionInfo pos = PositionInfo::Capture()); + std::unique_ptr release(Position pos = {}); private: std::unique_ptr fExpression; diff --git a/third_party/skia/include/sksl/DSLFunction.h b/third_party/skia/include/sksl/DSLFunction.h index abdf38388ae7..a2ddcc193333 100644 --- a/third_party/skia/include/sksl/DSLFunction.h +++ b/third_party/skia/include/sksl/DSLFunction.h @@ -8,21 +8,26 @@ #ifndef SKSL_DSL_FUNCTION #define SKSL_DSL_FUNCTION +#include "include/private/SkSLDefines.h" +#include "include/private/SkTArray.h" #include "include/sksl/DSLBlock.h" #include "include/sksl/DSLExpression.h" +#include "include/sksl/DSLModifiers.h" +#include "include/sksl/DSLStatement.h" #include "include/sksl/DSLType.h" #include "include/sksl/DSLVar.h" -#include "include/sksl/DSLWrapper.h" +#include "include/sksl/SkSLPosition.h" + +#include +#include namespace SkSL { -class Block; class FunctionDeclaration; -class Variable; namespace dsl { -class DSLType; +template class DSLWrapper; class DSLFunction { public: @@ -41,17 +46,17 @@ class DSLFunction { int unused[] = {0, (static_cast(parameterArray.push_back(¶meters)), 0)...}; static_cast(unused); // We can't have a default parameter and a template parameter pack at the same time, so - // unfortunately we can't capture position info from this overload. - this->init(modifiers, returnType, name, std::move(parameterArray), PositionInfo()); + // unfortunately we can't capture position from this overload. + this->init(modifiers, returnType, name, std::move(parameterArray), Position()); } DSLFunction(const DSLType& returnType, std::string_view name, - SkTArray parameters, PositionInfo pos = PositionInfo::Capture()) { + SkTArray parameters, Position pos = {}) { this->init(DSLModifiers(), returnType, name, std::move(parameters), pos); } DSLFunction(const DSLModifiers& modifiers, const DSLType& returnType, std::string_view name, - SkTArray parameters, PositionInfo pos = PositionInfo::Capture()) { + SkTArray parameters, Position pos = {}) { this->init(modifiers, returnType, name, std::move(parameters), pos); } @@ -66,7 +71,7 @@ class DSLFunction { this->define(std::move(block)); } - void define(DSLBlock block, PositionInfo pos = PositionInfo::Capture()); + void define(DSLBlock block, Position pos = {}); /** * Invokes the function with the given arguments. @@ -83,9 +88,9 @@ class DSLFunction { * Invokes the function with the given arguments. */ DSLExpression call(SkTArray> args, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); - DSLExpression call(ExpressionArray args, PositionInfo pos = PositionInfo::Capture()); + DSLExpression call(ExpressionArray args, Position pos = {}); private: void collectArgs(ExpressionArray& args) {} @@ -103,10 +108,10 @@ class DSLFunction { } void init(DSLModifiers modifiers, const DSLType& returnType, std::string_view name, - SkTArray params, PositionInfo pos); + SkTArray params, Position pos); const SkSL::FunctionDeclaration* fDecl = nullptr; - SkSL::PositionInfo fPosition; + SkSL::Position fPosition; }; } // namespace dsl diff --git a/third_party/skia/include/sksl/DSLLayout.h b/third_party/skia/include/sksl/DSLLayout.h index a0698f77f3b2..a1c963a74eac 100644 --- a/third_party/skia/include/sksl/DSLLayout.h +++ b/third_party/skia/include/sksl/DSLLayout.h @@ -8,10 +8,8 @@ #ifndef SKSL_DSL_LAYOUT #define SKSL_DSL_LAYOUT -#include "include/sksl/DSLLayout.h" - #include "include/private/SkSLLayout.h" -#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLPosition.h" namespace SkSL { @@ -21,53 +19,53 @@ class DSLLayout { public: DSLLayout() {} - DSLLayout& originUpperLeft(PositionInfo pos = PositionInfo::Capture()) { + DSLLayout& originUpperLeft(Position pos = {}) { return this->flag(SkSL::Layout::kOriginUpperLeft_Flag, "origin_upper_left", pos); } - DSLLayout& pushConstant(PositionInfo pos = PositionInfo::Capture()) { + DSLLayout& pushConstant(Position pos = {}) { return this->flag(SkSL::Layout::kPushConstant_Flag, "push_constant", pos); } - DSLLayout& blendSupportAllEquations(PositionInfo pos = PositionInfo::Capture()) { + DSLLayout& blendSupportAllEquations(Position pos = {}) { return this->flag(SkSL::Layout::kBlendSupportAllEquations_Flag, "blend_support_all_equations", pos); } - DSLLayout& color(PositionInfo pos = PositionInfo::Capture()) { + DSLLayout& color(Position pos = {}) { return this->flag(SkSL::Layout::kColor_Flag, "color", pos); } - DSLLayout& location(int location, PositionInfo pos = PositionInfo::Capture()) { + DSLLayout& location(int location, Position pos = {}) { return this->intValue(&fSkSLLayout.fLocation, location, SkSL::Layout::kLocation_Flag, "location", pos); } - DSLLayout& offset(int offset, PositionInfo pos = PositionInfo::Capture()) { + DSLLayout& offset(int offset, Position pos = {}) { return this->intValue(&fSkSLLayout.fOffset, offset, SkSL::Layout::kOffset_Flag, "offset", pos); } - DSLLayout& binding(int binding, PositionInfo pos = PositionInfo::Capture()) { + DSLLayout& binding(int binding, Position pos = {}) { return this->intValue(&fSkSLLayout.fBinding, binding, SkSL::Layout::kBinding_Flag, "binding", pos); } - DSLLayout& index(int index, PositionInfo pos = PositionInfo::Capture()) { + DSLLayout& index(int index, Position pos = {}) { return this->intValue(&fSkSLLayout.fIndex, index, SkSL::Layout::kIndex_Flag, "index", pos); } - DSLLayout& set(int set, PositionInfo pos = PositionInfo::Capture()) { + DSLLayout& set(int set, Position pos = {}) { return this->intValue(&fSkSLLayout.fSet, set, SkSL::Layout::kSet_Flag, "set", pos); } - DSLLayout& builtin(int builtin, PositionInfo pos = PositionInfo::Capture()) { + DSLLayout& builtin(int builtin, Position pos = {}) { return this->intValue(&fSkSLLayout.fBuiltin, builtin, SkSL::Layout::kBuiltin_Flag, "builtin", pos); } DSLLayout& inputAttachmentIndex(int inputAttachmentIndex, - PositionInfo pos = PositionInfo::Capture()) { + Position pos = {}) { return this->intValue(&fSkSLLayout.fInputAttachmentIndex, inputAttachmentIndex, SkSL::Layout::kInputAttachmentIndex_Flag, "input_attachment_index", pos); @@ -77,10 +75,10 @@ class DSLLayout { explicit DSLLayout(SkSL::Layout skslLayout) : fSkSLLayout(skslLayout) {} - DSLLayout& flag(SkSL::Layout::Flag mask, const char* name, PositionInfo pos); + DSLLayout& flag(SkSL::Layout::Flag mask, const char* name, Position pos); DSLLayout& intValue(int* target, int value, SkSL::Layout::Flag flag, const char* name, - PositionInfo pos); + Position pos); SkSL::Layout fSkSLLayout; diff --git a/third_party/skia/include/sksl/DSLModifiers.h b/third_party/skia/include/sksl/DSLModifiers.h index 6906797a14d9..9a48292203d6 100644 --- a/third_party/skia/include/sksl/DSLModifiers.h +++ b/third_party/skia/include/sksl/DSLModifiers.h @@ -32,11 +32,12 @@ enum Modifier { class DSLModifiers { public: - DSLModifiers(int flags = 0) - : DSLModifiers(DSLLayout(), flags) {} + DSLModifiers(int flags = 0, Position pos = {}) + : DSLModifiers(DSLLayout(), flags, pos) {} - DSLModifiers(DSLLayout layout, int flags = 0) - : fModifiers(layout.fSkSLLayout, flags) {} + DSLModifiers(DSLLayout layout, int flags = 0, Position pos = {}) + : fModifiers(layout.fSkSLLayout, flags) + , fPosition(pos) {} int flags() const { return fModifiers.fFlags; @@ -48,8 +49,9 @@ class DSLModifiers { private: SkSL::Modifiers fModifiers; + Position fPosition; - friend DSLType Struct(std::string_view name, SkSpan fields, PositionInfo pos); + friend DSLType Struct(std::string_view name, SkSpan fields, Position pos); friend class DSLCore; friend class DSLFunction; friend class DSLType; diff --git a/third_party/skia/include/sksl/DSLRuntimeEffects.h b/third_party/skia/include/sksl/DSLRuntimeEffects.h index 3d9b99091272..3ecd746b863e 100644 --- a/third_party/skia/include/sksl/DSLRuntimeEffects.h +++ b/third_party/skia/include/sksl/DSLRuntimeEffects.h @@ -8,8 +8,8 @@ #ifndef SKSL_DSL_RUNTIME_EFFECTS #define SKSL_DSL_RUNTIME_EFFECTS +#include "include/core/SkRefCnt.h" #include "include/effects/SkRuntimeEffect.h" -#include "include/sksl/DSL.h" namespace SkSL { diff --git a/third_party/skia/include/sksl/DSLStatement.h b/third_party/skia/include/sksl/DSLStatement.h index 976198ca1973..e83679854fc6 100644 --- a/third_party/skia/include/sksl/DSLStatement.h +++ b/third_party/skia/include/sksl/DSLStatement.h @@ -8,19 +8,16 @@ #ifndef SKSL_DSL_STATEMENT #define SKSL_DSL_STATEMENT -#include "include/core/SkString.h" #include "include/core/SkTypes.h" #include "include/private/SkSLStatement.h" -#include "include/sksl/SkSLErrorReporter.h" #include - -class GrGLSLShaderBuilder; +#include namespace SkSL { class Expression; -class Statement; +class Position; namespace dsl { @@ -28,7 +25,6 @@ class DSLBlock; class DSLExpression; class DSLPossibleExpression; class DSLPossibleStatement; -class DSLVar; class DSLStatement { public: @@ -36,9 +32,9 @@ class DSLStatement { DSLStatement(DSLExpression expr); - DSLStatement(DSLPossibleExpression expr, PositionInfo pos = PositionInfo::Capture()); + DSLStatement(DSLPossibleExpression expr, Position pos = {}); - DSLStatement(DSLPossibleStatement stmt, PositionInfo pos = PositionInfo::Capture()); + DSLStatement(DSLPossibleStatement stmt, Position pos = {}); DSLStatement(DSLBlock block); @@ -76,11 +72,11 @@ class DSLStatement { /** * Represents a Statement which may have failed and/or have pending errors to report. Converting a - * PossibleStatement into a Statement requires PositionInfo so that any pending errors can be + * PossibleStatement into a Statement requires a Position so that any pending errors can be * reported at the correct position. * * PossibleStatement is used instead of Statement in situations where it is not possible to capture - * the PositionInfo at the time of Statement construction. + * the Position at the time of Statement construction. */ class DSLPossibleStatement { public: diff --git a/third_party/skia/include/sksl/DSLSymbols.h b/third_party/skia/include/sksl/DSLSymbols.h index 29c8ed70e4f0..34117b5bca42 100644 --- a/third_party/skia/include/sksl/DSLSymbols.h +++ b/third_party/skia/include/sksl/DSLSymbols.h @@ -8,7 +8,6 @@ #ifndef SKSL_DSL_SYMBOLS #define SKSL_DSL_SYMBOLS -#include "include/private/SkSLString.h" #include "include/sksl/DSLExpression.h" #include @@ -16,11 +15,12 @@ namespace SkSL { +class Position; class SymbolTable; namespace dsl { -class DSLVar; +class DSLVarBase; // This header provides methods for manually managing symbol tables in DSL code. They should not be // used by normal hand-written DSL code, where we rely on C++ to manage symbols, but are instead @@ -47,7 +47,7 @@ std::shared_ptr CurrentSymbolTable(); /** * Returns an expression referring to the named symbol. */ -DSLPossibleExpression Symbol(std::string_view name, PositionInfo pos = PositionInfo::Capture()); +DSLExpression Symbol(std::string_view name, Position pos = {}); /** * Returns true if the name refers to a type (user or built-in) in the current symbol table. @@ -62,7 +62,7 @@ bool IsBuiltinType(std::string_view name); /** * Adds a variable to the current symbol table. */ -void AddToSymbolTable(DSLVarBase& var, PositionInfo pos = PositionInfo::Capture()); +void AddToSymbolTable(DSLVarBase& var, Position pos = {}); } // namespace dsl diff --git a/third_party/skia/include/sksl/DSLType.h b/third_party/skia/include/sksl/DSLType.h index 5b1e4e96e7e7..baea65a4e390 100644 --- a/third_party/skia/include/sksl/DSLType.h +++ b/third_party/skia/include/sksl/DSLType.h @@ -9,11 +9,13 @@ #define SKSL_DSL_TYPE #include "include/core/SkSpan.h" -#include "include/private/SkSLString.h" #include "include/sksl/DSLExpression.h" #include "include/sksl/DSLModifiers.h" +#include "include/sksl/SkSLPosition.h" #include +#include +#include namespace SkSL { @@ -22,7 +24,6 @@ class Type; namespace dsl { -class DSLExpression; class DSLField; class DSLVarBase; @@ -90,7 +91,7 @@ class DSLType { DSLType(std::string_view name, DSLModifiers* modifiers, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); /** * Returns true if this type is a bool. @@ -173,8 +174,8 @@ class DSLType { TypeConstant fTypeConstant = kPoison_Type; - friend DSLType Array(const DSLType& base, int count, PositionInfo pos); - friend DSLType Struct(std::string_view name, SkSpan fields, PositionInfo pos); + friend DSLType Array(const DSLType& base, int count, Position pos); + friend DSLType Struct(std::string_view name, SkSpan fields, Position pos); friend class DSLCore; friend class DSLFunction; friend class DSLVarBase; @@ -220,16 +221,16 @@ MATRIX_TYPE(Half) #undef VECTOR_TYPE #undef MATRIX_TYPE -DSLType Array(const DSLType& base, int count, PositionInfo pos = PositionInfo::Capture()); +DSLType Array(const DSLType& base, int count, Position pos = {}); class DSLField { public: DSLField(const DSLType type, std::string_view name, - PositionInfo pos = PositionInfo::Capture()) + Position pos = {}) : DSLField(DSLModifiers(), type, name, pos) {} DSLField(const DSLModifiers& modifiers, const DSLType type, std::string_view name, - PositionInfo pos = PositionInfo::Capture()) + Position pos = {}) : fModifiers(modifiers) , fType(type) , fName(name) @@ -239,19 +240,19 @@ class DSLField { DSLModifiers fModifiers; const DSLType fType; std::string_view fName; - PositionInfo fPosition; + Position fPosition; friend class DSLCore; - friend DSLType Struct(std::string_view name, SkSpan fields, PositionInfo pos); + friend DSLType Struct(std::string_view name, SkSpan fields, Position pos); }; DSLType Struct(std::string_view name, SkSpan fields, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); template DSLType Struct(std::string_view name, Field... fields) { DSLField fieldTypes[] = {std::move(fields)...}; - return Struct(name, SkMakeSpan(fieldTypes), PositionInfo()); + return Struct(name, SkMakeSpan(fieldTypes), Position()); } } // namespace dsl diff --git a/third_party/skia/include/sksl/DSLVar.h b/third_party/skia/include/sksl/DSLVar.h index 27708404a29e..ea9e7ec924e3 100644 --- a/third_party/skia/include/sksl/DSLVar.h +++ b/third_party/skia/include/sksl/DSLVar.h @@ -11,12 +11,20 @@ #include "include/sksl/DSLExpression.h" #include "include/sksl/DSLModifiers.h" #include "include/sksl/DSLType.h" +#include "include/sksl/SkSLPosition.h" + +#include +#include +#include +#include namespace SkSL { class Expression; +class ExpressionArray; class IRGenerator; class SPIRVCodeGenerator; +class Statement; class Variable; enum class VariableStorage : int8_t; @@ -35,15 +43,15 @@ class DSLVarBase { * name conflicts and the variable's name is only important when debugging shaders, the name * parameter is optional. */ - DSLVarBase(DSLType type, std::string_view name, DSLExpression initialValue, PositionInfo pos); + DSLVarBase(DSLType type, std::string_view name, DSLExpression initialValue, Position pos); - DSLVarBase(DSLType type, DSLExpression initialValue, PositionInfo pos); + DSLVarBase(DSLType type, DSLExpression initialValue, Position pos); DSLVarBase(const DSLModifiers& modifiers, DSLType type, std::string_view name, - DSLExpression initialValue, PositionInfo pos); + DSLExpression initialValue, Position pos); DSLVarBase(const DSLModifiers& modifiers, DSLType type, DSLExpression initialValue, - PositionInfo pos); + Position pos); DSLVarBase(DSLVarBase&&) = default; @@ -60,57 +68,57 @@ class DSLVarBase { virtual VariableStorage storage() const = 0; DSLExpression x() { - return DSLExpression(*this, PositionInfo()).x(); + return DSLExpression(*this, Position()).x(); } DSLExpression y() { - return DSLExpression(*this, PositionInfo()).y(); + return DSLExpression(*this, Position()).y(); } DSLExpression z() { - return DSLExpression(*this, PositionInfo()).z(); + return DSLExpression(*this, Position()).z(); } DSLExpression w() { - return DSLExpression(*this, PositionInfo()).w(); + return DSLExpression(*this, Position()).w(); } DSLExpression r() { - return DSLExpression(*this, PositionInfo()).r(); + return DSLExpression(*this, Position()).r(); } DSLExpression g() { - return DSLExpression(*this, PositionInfo()).g(); + return DSLExpression(*this, Position()).g(); } DSLExpression b() { - return DSLExpression(*this, PositionInfo()).b(); + return DSLExpression(*this, Position()).b(); } DSLExpression a() { - return DSLExpression(*this, PositionInfo()).a(); + return DSLExpression(*this, Position()).a(); } DSLExpression field(std::string_view name) { - return DSLExpression(*this, PositionInfo()).field(name); + return DSLExpression(*this, Position()).field(name); } DSLPossibleExpression operator[](DSLExpression&& index); DSLPossibleExpression operator++() { - return ++DSLExpression(*this, PositionInfo()); + return ++DSLExpression(*this, Position()); } DSLPossibleExpression operator++(int) { - return DSLExpression(*this, PositionInfo())++; + return DSLExpression(*this, Position())++; } DSLPossibleExpression operator--() { - return --DSLExpression(*this, PositionInfo()); + return --DSLExpression(*this, Position()); } DSLPossibleExpression operator--(int) { - return DSLExpression(*this, PositionInfo())--; + return DSLExpression(*this, Position())--; } protected: @@ -133,7 +141,7 @@ class DSLVarBase { // true if we have attempted to create the SkSL var bool fInitialized = false; bool fDeclared = false; - PositionInfo fPosition; + Position fPosition; friend class DSLCore; friend class DSLExpression; @@ -152,22 +160,22 @@ class DSLVar : public DSLVarBase { DSLVar(DSLType type, std::string_view name = "var", DSLExpression initialValue = DSLExpression(), - PositionInfo pos = PositionInfo::Capture()) + Position pos = {}) : INHERITED(type, name, std::move(initialValue), pos) {} DSLVar(DSLType type, const char* name, DSLExpression initialValue = DSLExpression(), - PositionInfo pos = PositionInfo::Capture()) + Position pos = {}) : DSLVar(type, std::string_view(name), std::move(initialValue), pos) {} - DSLVar(DSLType type, DSLExpression initialValue, PositionInfo pos = PositionInfo::Capture()) + DSLVar(DSLType type, DSLExpression initialValue, Position pos = {}) : INHERITED(type, std::move(initialValue), pos) {} DSLVar(const DSLModifiers& modifiers, DSLType type, std::string_view name = "var", - DSLExpression initialValue = DSLExpression(), PositionInfo pos = PositionInfo::Capture()) + DSLExpression initialValue = DSLExpression(), Position pos = {}) : INHERITED(modifiers, type, name, std::move(initialValue), pos) {} DSLVar(const DSLModifiers& modifiers, DSLType type, const char* name, - DSLExpression initialValue = DSLExpression(), PositionInfo pos = PositionInfo::Capture()) + DSLExpression initialValue = DSLExpression(), Position pos = {}) : DSLVar(modifiers, type, std::string_view(name), std::move(initialValue), pos) {} DSLVar(DSLVar&&) = default; @@ -199,23 +207,23 @@ class DSLGlobalVar : public DSLVarBase { DSLGlobalVar() = default; DSLGlobalVar(DSLType type, std::string_view name = "var", - DSLExpression initialValue = DSLExpression(), PositionInfo pos = PositionInfo::Capture()) + DSLExpression initialValue = DSLExpression(), Position pos = {}) : INHERITED(type, name, std::move(initialValue), pos) {} DSLGlobalVar(DSLType type, const char* name, DSLExpression initialValue = DSLExpression(), - PositionInfo pos = PositionInfo::Capture()) + Position pos = {}) : DSLGlobalVar(type, std::string_view(name), std::move(initialValue), pos) {} DSLGlobalVar(DSLType type, DSLExpression initialValue, - PositionInfo pos = PositionInfo::Capture()) + Position pos = {}) : INHERITED(type, std::move(initialValue), pos) {} DSLGlobalVar(const DSLModifiers& modifiers, DSLType type, std::string_view name = "var", - DSLExpression initialValue = DSLExpression(), PositionInfo pos = PositionInfo::Capture()) + DSLExpression initialValue = DSLExpression(), Position pos = {}) : INHERITED(modifiers, type, name, std::move(initialValue), pos) {} DSLGlobalVar(const DSLModifiers& modifiers, DSLType type, const char* name, - DSLExpression initialValue = DSLExpression(), PositionInfo pos = PositionInfo::Capture()) + DSLExpression initialValue = DSLExpression(), Position pos = {}) : DSLGlobalVar(modifiers, type, std::string_view(name), std::move(initialValue), pos) {} DSLGlobalVar(const char* name); @@ -242,19 +250,19 @@ class DSLGlobalVar : public DSLVarBase { * half4 shader::eval(float2 coords); * half4 colorFilter::eval(half4 input); */ - DSLExpression eval(DSLExpression x, PositionInfo pos = PositionInfo::Capture()); + DSLExpression eval(DSLExpression x, Position pos = {}); /** * Implements the following method call: * half4 blender::eval(half4 src, half4 dst); */ DSLExpression eval(DSLExpression x, DSLExpression y, - PositionInfo pos = PositionInfo::Capture()); + Position pos = {}); private: - DSLExpression eval(ExpressionArray args, PositionInfo pos); + DSLExpression eval(ExpressionArray args, Position pos); - std::unique_ptr methodCall(std::string_view methodName, PositionInfo pos); + std::unique_ptr methodCall(std::string_view methodName, Position pos); using INHERITED = DSLVarBase; }; @@ -267,18 +275,18 @@ class DSLParameter : public DSLVarBase { DSLParameter() = default; DSLParameter(DSLType type, std::string_view name = "var", - PositionInfo pos = PositionInfo::Capture()) + Position pos = {}) : INHERITED(type, name, DSLExpression(), pos) {} - DSLParameter(DSLType type, const char* name, PositionInfo pos = PositionInfo::Capture()) + DSLParameter(DSLType type, const char* name, Position pos = {}) : DSLParameter(type, std::string_view(name), pos) {} DSLParameter(const DSLModifiers& modifiers, DSLType type, std::string_view name = "var", - PositionInfo pos = PositionInfo::Capture()) + Position pos = {}) : INHERITED(modifiers, type, name, DSLExpression(), pos) {} DSLParameter(const DSLModifiers& modifiers, DSLType type, const char* name, - PositionInfo pos = PositionInfo::Capture()) + Position pos = {}) : DSLParameter(modifiers, type, std::string_view(name), pos) {} DSLParameter(DSLParameter&&) = default; diff --git a/third_party/skia/include/sksl/SkSLErrorReporter.h b/third_party/skia/include/sksl/SkSLErrorReporter.h index 4be4c405f58e..75be34b91233 100644 --- a/third_party/skia/include/sksl/SkSLErrorReporter.h +++ b/third_party/skia/include/sksl/SkSLErrorReporter.h @@ -9,7 +9,6 @@ #define SKSL_ERROR_REPORTER #include "include/core/SkTypes.h" -#include "include/private/SkSLString.h" #include #include @@ -17,36 +16,7 @@ namespace SkSL { -#ifndef __has_builtin - #define __has_builtin(x) 0 -#endif - -class PositionInfo { -public: - PositionInfo(const char* file = nullptr, int line = -1) - : fFile(file) - , fLine(line) {} - -#if __has_builtin(__builtin_FILE) && __has_builtin(__builtin_LINE) - static PositionInfo Capture(const char* file = __builtin_FILE(), int line = __builtin_LINE()) { - return PositionInfo(file, line); - } -#else - static PositionInfo Capture() { return PositionInfo(); } -#endif // __has_builtin(__builtin_FILE) && __has_builtin(__builtin_LINE) - - const char* file_name() const { - return fFile; - } - - int line() const { - return fLine; - } - -private: - const char* fFile = nullptr; - int32_t fLine = -1; -}; +class Position; /** * Class which is notified in the event of an error. @@ -59,24 +29,19 @@ class ErrorReporter { SkASSERT(fPendingErrors.empty()); } - void error(std::string_view msg, PositionInfo position); + void error(std::string_view msg, Position position); /** * Reports an error message at the given line of the source text. Errors reported * with a line of -1 will be queued until line number information can be determined. */ - void error(int line, std::string_view msg); + void error(Position pos, std::string_view msg); - const char* source() const { return fSource; } + std::string_view source() const { return fSource; } - void setSource(const char* source) { fSource = source; } + void setSource(std::string_view source) { fSource = source; } - void reportPendingErrors(PositionInfo pos) { - for (const std::string& msg : fPendingErrors) { - this->handleError(msg, pos); - } - fPendingErrors.clear(); - } + void reportPendingErrors(Position pos); int errorCount() const { return fErrorCount; @@ -90,12 +55,12 @@ class ErrorReporter { /** * Called when an error is reported. */ - virtual void handleError(std::string_view msg, PositionInfo position) = 0; + virtual void handleError(std::string_view msg, Position position) = 0; private: - PositionInfo position(int offset) const; + Position position(int offset) const; - const char* fSource = nullptr; + std::string_view fSource; std::vector fPendingErrors; int fErrorCount = 0; }; @@ -105,9 +70,7 @@ class ErrorReporter { */ class TestingOnly_AbortErrorReporter : public ErrorReporter { public: - void handleError(std::string_view msg, PositionInfo pos) override { - SK_ABORT("%.*s", (int)msg.length(), msg.data()); - } + void handleError(std::string_view msg, Position pos) override; }; } // namespace SkSL diff --git a/third_party/skia/src/sksl/SkSLOperators.h b/third_party/skia/include/sksl/SkSLOperator.h similarity index 77% rename from third_party/skia/src/sksl/SkSLOperators.h rename to third_party/skia/include/sksl/SkSLOperator.h index 1a11b1fd6c58..68e615096ce3 100644 --- a/third_party/skia/src/sksl/SkSLOperators.h +++ b/third_party/skia/include/sksl/SkSLOperator.h @@ -5,11 +5,8 @@ * found in the LICENSE file. */ -#ifndef SKSL_OPERATORS -#define SKSL_OPERATORS - -#include "include/private/SkSLDefines.h" -#include "src/sksl/SkSLLexer.h" +#ifndef SKSL_OPERATOR +#define SKSL_OPERATOR #include @@ -20,12 +17,43 @@ class Type; class Operator { public: - using Kind = Token::Kind; - - // Allow implicit conversion from Token::Kind, since this is just a utility wrapper on top. - Operator(Token::Kind t) : fKind(t) { - SkASSERTF(this->isOperator(), "token-kind %d is not an operator", (int)fKind); - } + enum class Kind { + PLUS, + MINUS, + STAR, + SLASH, + PERCENT, + SHL, + SHR, + LOGICALNOT, + LOGICALAND, + LOGICALOR, + LOGICALXOR, + BITWISENOT, + BITWISEAND, + BITWISEOR, + BITWISEXOR, + EQ, + EQEQ, + NEQ, + LT, + GT, + LTEQ, + GTEQ, + PLUSEQ, + MINUSEQ, + STAREQ, + SLASHEQ, + PERCENTEQ, + SHLEQ, + SHREQ, + BITWISEANDEQ, + BITWISEOREQ, + BITWISEXOREQ, + PLUSPLUS, + MINUSMINUS, + COMMA + }; enum class Precedence { kParentheses = 1, @@ -48,10 +76,12 @@ class Operator { kTopLevel = kSequence }; - Token::Kind kind() const { return fKind; } + Operator(Kind op) : fKind(op) {} + + Kind kind() const { return fKind; } bool isEquality() const { - return fKind == Token::Kind::TK_EQEQ || fKind == Token::Kind::TK_NEQ; + return fKind == Kind::EQEQ || fKind == Kind::NEQ; } Precedence getBinaryPrecedence() const; @@ -70,10 +100,10 @@ class Operator { Operator removeAssignment() const; /** - * Defines the set of logical (comparison) operators: + * Defines the set of relational (comparison) operators: * < <= > >= */ - bool isLogical() const; + bool isRelational() const; /** * Defines the set of operators which are only valid on integral types: diff --git a/third_party/skia/include/sksl/SkSLPosition.h b/third_party/skia/include/sksl/SkSLPosition.h new file mode 100644 index 000000000000..37688436fc7e --- /dev/null +++ b/third_party/skia/include/sksl/SkSLPosition.h @@ -0,0 +1,97 @@ +/* + * 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 SKSL_POSITION +#define SKSL_POSITION + +#include "include/core/SkTypes.h" +#include + +#ifndef __has_builtin + #define __has_builtin(x) 0 +#endif + +namespace SkSL { + +class Position { +public: + Position() + : fStartOffset(-1) + , fEndOffset(-1) {} + + static Position Range(int startOffset, int endOffset) { + SkASSERT(startOffset <= endOffset); + Position result; + result.fStartOffset = startOffset; + result.fEndOffset = endOffset; + return result; + } + + bool valid() const { + return fStartOffset != -1; + } + + int line(std::string_view source) const; + + int startOffset() const { + SkASSERT(this->valid()); + return fStartOffset; + } + + int endOffset() const { + SkASSERT(this->valid()); + return fEndOffset; + } + + // Returns the position from this through, and including the entirety of, end. + Position rangeThrough(Position end) const { + if (fEndOffset == -1 || end.fEndOffset == -1) { + return *this; + } + SkASSERTF(this->startOffset() <= end.startOffset() && this->endOffset() <= end.endOffset(), + "Invalid range: (%d-%d) - (%d-%d)\n", this->startOffset(), this->endOffset(), + end.startOffset(), end.endOffset()); + return Range(this->startOffset(), end.endOffset()); + } + + // Returns a position representing the character immediately after this position + Position after() const { + return Range(fEndOffset, fEndOffset + 1); + } + + bool operator==(const Position& other) const { + return fStartOffset == other.fStartOffset && fEndOffset == other.fEndOffset; + } + + bool operator!=(const Position& other) const { + return !(*this == other); + } + + bool operator>(const Position& other) const { + return fStartOffset > other.fStartOffset; + } + + bool operator>=(const Position& other) const { + return fStartOffset >= other.fStartOffset; + } + + bool operator<(const Position& other) const { + return fStartOffset < other.fStartOffset; + } + + bool operator<=(const Position& other) const { + return fStartOffset <= other.fStartOffset; + } + +private: + int32_t fStartOffset; + int32_t fEndOffset; +}; + +} // namespace SkSL + +#endif diff --git a/third_party/skia/include/svg/BUILD.bazel b/third_party/skia/include/svg/BUILD.bazel index 7be34715fe52..d33ef1657039 100644 --- a/third_party/skia/include/svg/BUILD.bazel +++ b/third_party/skia/include/svg/BUILD.bazel @@ -1,8 +1,10 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkSVGCanvas_hdr", hdrs = ["SkSVGCanvas.h"], visibility = ["//:__subpackages__"], - deps = ["//include/core:SkCanvas_hdr"], + deps = ["//include/core:SkTypes_hdr"], ) diff --git a/third_party/skia/include/svg/SkSVGCanvas.h b/third_party/skia/include/svg/SkSVGCanvas.h index 2d9858a79268..cb36cd9113ef 100644 --- a/third_party/skia/include/svg/SkSVGCanvas.h +++ b/third_party/skia/include/svg/SkSVGCanvas.h @@ -8,9 +8,13 @@ #ifndef SkSVGCanvas_DEFINED #define SkSVGCanvas_DEFINED -#include "include/core/SkCanvas.h" +#include "include/core/SkTypes.h" +#include + +class SkCanvas; class SkWStream; +struct SkRect; class SK_API SkSVGCanvas { public: diff --git a/third_party/skia/include/third_party/BUILD.bazel b/third_party/skia/include/third_party/BUILD.bazel new file mode 100644 index 000000000000..58cb54442b55 --- /dev/null +++ b/third_party/skia/include/third_party/BUILD.bazel @@ -0,0 +1,10 @@ +licenses(["notice"]) + +cc_library( + name = "skias_vulkan_headers", + includes = ["vulkan"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/third_party/vulkan/vulkan:vulkan_hdr", + ], +) diff --git a/third_party/skia/include/third_party/skcms/BUILD.bazel b/third_party/skia/include/third_party/skcms/BUILD.bazel index 0aef4dd490b7..de06a98c3155 100644 --- a/third_party/skia/include/third_party/skcms/BUILD.bazel +++ b/third_party/skia/include/third_party/skcms/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "skcms_hdr", hdrs = ["skcms.h"], diff --git a/third_party/skia/include/third_party/vulkan/vulkan/BUILD.bazel b/third_party/skia/include/third_party/vulkan/vulkan/BUILD.bazel index 73abd998f52a..bfa04921908f 100644 --- a/third_party/skia/include/third_party/vulkan/vulkan/BUILD.bazel +++ b/third_party/skia/include/third_party/vulkan/vulkan/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "vk_platform_hdr", hdrs = ["vk_platform.h"], @@ -16,12 +18,22 @@ generated_cc_atom( name = "vulkan_core_hdr", hdrs = ["vulkan_core.h"], visibility = ["//:__subpackages__"], + deps = ["//include/third_party/vulkan/vulkan:vk_platform_hdr"], ) generated_cc_atom( name = "vulkan_hdr", hdrs = ["vulkan.h"], visibility = ["//:__subpackages__"], + deps = [ + "//include/third_party/vulkan/vulkan:vk_platform_hdr", + "//include/third_party/vulkan/vulkan:vulkan_android_hdr", + "//include/third_party/vulkan/vulkan:vulkan_core_hdr", + "//include/third_party/vulkan/vulkan:vulkan_ios_hdr", + "//include/third_party/vulkan/vulkan:vulkan_macos_hdr", + "//include/third_party/vulkan/vulkan:vulkan_win32_hdr", + "//include/third_party/vulkan/vulkan:vulkan_xcb_hdr", + ], ) generated_cc_atom( diff --git a/third_party/skia/include/utils/BUILD.bazel b/third_party/skia/include/utils/BUILD.bazel index a1fbb0f077f8..58d075742136 100644 --- a/third_party/skia/include/utils/BUILD.bazel +++ b/third_party/skia/include/utils/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkAnimCodecPlayer_hdr", hdrs = ["SkAnimCodecPlayer.h"], diff --git a/third_party/skia/include/utils/SkNWayCanvas.h b/third_party/skia/include/utils/SkNWayCanvas.h index 4470567de618..837ba8c5a0fd 100644 --- a/third_party/skia/include/utils/SkNWayCanvas.h +++ b/third_party/skia/include/utils/SkNWayCanvas.h @@ -39,6 +39,9 @@ class SK_API SkNWayCanvas : public SkCanvasVirtualEnforcer { void onDrawGlyphRunList(const SkGlyphRunList&, const SkPaint&) override; void onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, const SkPaint& paint) override; +#if SK_SUPPORT_GPU + void onDrawSlug(const GrSlug* slug) override; +#endif void onDrawPatch(const SkPoint cubics[12], const SkColor colors[4], const SkPoint texCoords[4], SkBlendMode, const SkPaint& paint) override; diff --git a/third_party/skia/include/utils/SkShadowUtils.h b/third_party/skia/include/utils/SkShadowUtils.h index b25770c1bcc6..86103f2a4a3b 100644 --- a/third_party/skia/include/utils/SkShadowUtils.h +++ b/third_party/skia/include/utils/SkShadowUtils.h @@ -17,6 +17,7 @@ class SkCanvas; class SkMatrix; class SkPath; class SkResourceCache; +struct SkRect; class SK_API SkShadowUtils { public: diff --git a/third_party/skia/include/utils/mac/BUILD.bazel b/third_party/skia/include/utils/mac/BUILD.bazel index 5af933472be6..59e578a99733 100644 --- a/third_party/skia/include/utils/mac/BUILD.bazel +++ b/third_party/skia/include/utils/mac/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkCGUtils_hdr", hdrs = ["SkCGUtils.h"], diff --git a/third_party/skia/infra/bots/BUILD.bazel b/third_party/skia/infra/bots/BUILD.bazel new file mode 100644 index 000000000000..8a11249d3913 --- /dev/null +++ b/third_party/skia/infra/bots/BUILD.bazel @@ -0,0 +1,46 @@ +licenses(["notice"]) + +# This rule is a convenient way to build all the task drivers and copy them all into a single +# place as a tar folder. Otherwise, we would need to run many separate bazel build commands and +# then fish the executables out of a deep folder structure like: +# _bazel_bin/infra/bots/task_drivers/bazel_build_all/bazel_build_all_/bazel_build_all +# After this runs, the executables will all be in //_bazel_bin/built_task_drivers.tar +# Why the tar file? Windows binaries are created with .exe and other platforms are not. However, +# outs *must* be static, thus we cannot use a select. Bazel requires us to define all outputs +# exactly, so the only way to support files with different names on different platforms is to +# package them up into a file with the same name. +# Cross compilation is handled as per https://github.com/bazelbuild/rules_go#how-do-i-cross-compile +genrule( + name = "all_task_drivers", + srcs = [ + "//infra/bots/task_drivers/bazel_check_includes", + "//infra/bots/task_drivers/check_generated_bazel_files", + "//infra/bots/task_drivers/codesize", + "//infra/bots/task_drivers/compile_wasm_gm_tests", + "//infra/bots/task_drivers/fm_driver", + "//infra/bots/task_drivers/g3_canary", + "//infra/bots/task_drivers/perf_puppeteer_canvas", + "//infra/bots/task_drivers/perf_puppeteer_render_skps", + "//infra/bots/task_drivers/perf_puppeteer_skottie_frames", + "//infra/bots/task_drivers/push_apps_from_skia_image", + "//infra/bots/task_drivers/push_bazel_apps_from_wasm_image", + "//infra/bots/task_drivers/recreate_skps", + "//infra/bots/task_drivers/run_gn_to_bp", + "//infra/bots/task_drivers/run_wasm_gm_tests", + "@org_skia_go_infra//infra/bots/task_drivers/build_push_docker_image", + "@org_skia_go_infra//infra/bots/task_drivers/canary", + ], + outs = ["built_task_drivers.tar"], + # Make a temporary directory in the output directory, as recommended by + # https://bazel.build/reference/be/make-variables#predefined_genrule_variables + # Reminder that $(@D) refers to that output directory and $(SRCS) refers to all + # the input files, in a space separated list. + cmd = "mkdir -p $(@D)/tmp_task_drivers && " + + # Copy all the task drivers to the same folder + "cp $(SRCS) $(@D)/tmp_task_drivers && " + + # Tar them up from that folder (so they will be in the top level of the tar directory) + # The parent directory of our temp directory is where the output tar file should go. + "cd $(@D)/tmp_task_drivers && tar --file ../built_task_drivers.tar --create . && " + + # Delete the temp folder (as per the recommendation above) + "cd .. && rm -rf tmp_task_drivers", +) diff --git a/third_party/skia/infra/bots/README.recipes.md b/third_party/skia/infra/bots/README.recipes.md index c39711dbeff6..1f428c5da9f6 100644 --- a/third_party/skia/infra/bots/README.recipes.md +++ b/third_party/skia/infra/bots/README.recipes.md @@ -229,17 +229,17 @@ Args: If the operation fails, it will be retried multiple times. ### *recipe_modules* / [infra](/infra/bots/recipe_modules/infra) -[DEPS](/infra/bots/recipe_modules/infra/__init__.py#7): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/step][recipe_engine/recipe_modules/step], [run](#recipe_modules-run), [vars](#recipe_modules-vars) +[DEPS](/infra/bots/recipe_modules/infra/__init__.py#7): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [run](#recipe_modules-run), [vars](#recipe_modules-vars) PYTHON_VERSION_COMPATIBILITY: PY3 #### **class [InfraApi](/infra/bots/recipe_modules/infra/api.py#14)([RecipeApi][recipe_engine/wkt/RecipeApi]):** -  **@property**
— **def [go\_bin](/infra/bots/recipe_modules/infra/api.py#19)(self):** +  **@property**
— **def [go\_bin](/infra/bots/recipe_modules/infra/api.py#46)(self):** -  **@property**
— **def [go\_env](/infra/bots/recipe_modules/infra/api.py#23)(self):** +  **@property**
— **def [go\_env](/infra/bots/recipe_modules/infra/api.py#50)(self):** -  **@property**
— **def [gopath](/infra/bots/recipe_modules/infra/api.py#33)(self):** +  **@property**
— **def [gopath](/infra/bots/recipe_modules/infra/api.py#60)(self):**   **@property**
— **def [goroot](/infra/bots/recipe_modules/infra/api.py#15)(self):** ### *recipe_modules* / [run](/infra/bots/recipe_modules/run) diff --git a/third_party/skia/infra/bots/assets/go/VERSION b/third_party/skia/infra/bots/assets/go/VERSION index da2d3988d7d1..19c7bdba7b1e 100644 --- a/third_party/skia/infra/bots/assets/go/VERSION +++ b/third_party/skia/infra/bots/assets/go/VERSION @@ -1 +1 @@ -14 \ No newline at end of file +16 \ No newline at end of file diff --git a/third_party/skia/infra/bots/assets/go/asset.json b/third_party/skia/infra/bots/assets/go/asset.json new file mode 100644 index 000000000000..3ed2cb917e95 --- /dev/null +++ b/third_party/skia/infra/bots/assets/go/asset.json @@ -0,0 +1,3 @@ +{ + "installMode": "copy" +} \ No newline at end of file diff --git a/third_party/skia/infra/bots/assets/go/create.py b/third_party/skia/infra/bots/assets/go/create.py index 9f3b7110fbad..1a8d808a670c 100755 --- a/third_party/skia/infra/bots/assets/go/create.py +++ b/third_party/skia/infra/bots/assets/go/create.py @@ -21,7 +21,7 @@ # Remember to also update the go_win asset when this is updated. -GO_URL = "https://golang.org/dl/go1.16.3.linux-amd64.tar.gz" +GO_URL = "https://go.dev/dl/go1.18.linux-amd64.tar.gz" def create_asset(target_dir): diff --git a/third_party/skia/infra/bots/assets/go_win/VERSION b/third_party/skia/infra/bots/assets/go_win/VERSION index e440e5c84258..bf0d87ab1b2b 100644 --- a/third_party/skia/infra/bots/assets/go_win/VERSION +++ b/third_party/skia/infra/bots/assets/go_win/VERSION @@ -1 +1 @@ -3 \ No newline at end of file +4 \ No newline at end of file diff --git a/third_party/skia/infra/bots/assets/go_win/create.py b/third_party/skia/infra/bots/assets/go_win/create.py index 659170e3dd2b..a0ec73a6bbe8 100755 --- a/third_party/skia/infra/bots/assets/go_win/create.py +++ b/third_party/skia/infra/bots/assets/go_win/create.py @@ -21,7 +21,7 @@ # Remember to also update the go asset when this is updated. -GO_URL = "https://golang.org/dl/go1.16.3.windows-amd64.zip" +GO_URL = "https://go.dev/dl/go1.18.windows-amd64.zip" def create_asset(target_dir): diff --git a/third_party/skia/infra/bots/assets/mockery/VERSION b/third_party/skia/infra/bots/assets/mockery/VERSION index 56a6051ca2b0..d8263ee98605 100644 --- a/third_party/skia/infra/bots/assets/mockery/VERSION +++ b/third_party/skia/infra/bots/assets/mockery/VERSION @@ -1 +1 @@ -1 \ No newline at end of file +2 \ No newline at end of file diff --git a/third_party/skia/infra/bots/assets/mockery/create.py b/third_party/skia/infra/bots/assets/mockery/create.py index 73741afd0ba4..5db9db1a2f2c 100755 --- a/third_party/skia/infra/bots/assets/mockery/create.py +++ b/third_party/skia/infra/bots/assets/mockery/create.py @@ -12,19 +12,57 @@ import argparse import subprocess import os +import shutil -URL = "https://github.com/vektra/mockery/releases/download/v2.4.0/mockery_2.4.0_Linux_x86_64.tar.gz" +REPO_URL = "https://github.com/vektra/mockery.git" +REPO_DIR = "mockery_repo" +BINARY_NAME = "mockery" def create_asset(target_dir): """Create the asset.""" os.chdir(target_dir) - output = subprocess.check_output(["wget", URL, "--output-document=mockery.tar.gz"]) + + # We build mockery 2.4.0 from source to fix an issue with Go 1.18. Read the + # comments below for details. + output = subprocess.check_output(["git", "clone", REPO_URL, REPO_DIR]) + print(output) + os.chdir(os.path.join(target_dir, REPO_DIR)) + output = subprocess.check_output(["git", "checkout", "v2.4.0"]) + + # Under Go 1.18, mockery v2.4.0 through v2.10.0 fails with errors such as: + # + # internal error: package "fmt" without types was imported from ... + # + # This can be fixed by updating golang.org/x/tools to a more recent version. + # For more details, please see https://github.com/vektra/mockery/issues/434 + # and https://github.com/golang/go/issues/49608. + output = subprocess.check_output(["go", "get", "golang.org/x/tools@v0.1.10"]) print(output) - output = subprocess.check_output(["tar", "-xvf", "mockery.tar.gz"]) + output = subprocess.check_output(["go", "mod", "tidy"]) print(output) - os.remove("mockery.tar.gz") + + # Build mockery with the same flags as in release builds. + # + # If we don't specify a SemVer value, mockery will generate files with a + # "Code generated by mockery v0.0.0-dev. DO NOT EDIT." comment at the top, + # which causes diffs due to the changed version. Thus, it is important to set + # the SemVer value to the correct version. + # + # See + # https://github.com/vektra/mockery/blob/271c74610ef710a4c30e19a42733796c50e7ea3f/.goreleaser.yml#L9. + ldflags = "-s -w -X github.com/vektra/mockery/v2/pkg/config.SemVer=2.4.0" + build_command = ["go", "build", "-ldflags=\"%s\"" % ldflags] + print("Building with command:", build_command) + output = subprocess.check_output(["go", "build", "-ldflags=" + ldflags]) + print(output) + + # Copy binary outside of the cloned repository directory and clean up. + output = subprocess.check_output(["cp", BINARY_NAME, ".."]) + shutil.copy(os.path.join(target_dir, REPO_DIR, BINARY_NAME), target_dir) + shutil.rmtree(os.path.join(target_dir, REPO_DIR)) + os.chdir(target_dir) def main(): diff --git a/third_party/skia/infra/bots/assets/procdump_win/VERSION b/third_party/skia/infra/bots/assets/procdump_win/VERSION deleted file mode 100644 index c227083464fb..000000000000 --- a/third_party/skia/infra/bots/assets/procdump_win/VERSION +++ /dev/null @@ -1 +0,0 @@ -0 \ No newline at end of file diff --git a/third_party/skia/infra/bots/assets/procdump_win/create.py b/third_party/skia/infra/bots/assets/procdump_win/create.py deleted file mode 100755 index 504bf0f41513..000000000000 --- a/third_party/skia/infra/bots/assets/procdump_win/create.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2018 Google Inc. -# -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - - -"""Create the asset.""" - - -import argparse -import os -import subprocess -import sys - -FILE_DIR = os.path.dirname(os.path.abspath(__file__)) -INFRA_BOTS_DIR = os.path.realpath(os.path.join(FILE_DIR, os.pardir, os.pardir)) -sys.path.insert(0, INFRA_BOTS_DIR) -import utils - - -# Download URL can be found on this page: -# https://docs.microsoft.com/en-us/sysinternals/downloads/procdump -PROCDUMP_URL = 'https://download.sysinternals.com/files/Procdump.zip' - - -def create_asset(target_dir): - """Create the asset.""" - with utils.tmp_dir(): - subprocess.check_call(["curl", PROCDUMP_URL, "-o", "procdump.zip"]) - subprocess.check_call(["unzip", "procdump.zip", "-d", target_dir]) - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('--target_dir', '-t', required=True) - args = parser.parse_args() - create_asset(args.target_dir) - - -if __name__ == '__main__': - main() diff --git a/third_party/skia/infra/bots/assets/skp/VERSION b/third_party/skia/infra/bots/assets/skp/VERSION index 6c0c8340ea7a..2291c046ea20 100644 --- a/third_party/skia/infra/bots/assets/skp/VERSION +++ b/third_party/skia/infra/bots/assets/skp/VERSION @@ -1 +1 @@ -362 \ No newline at end of file +373 \ No newline at end of file diff --git a/third_party/skia/infra/bots/build_task_drivers.sh b/third_party/skia/infra/bots/build_task_drivers.sh index b757945f47dc..625b2b4b3fa1 100755 --- a/third_party/skia/infra/bots/build_task_drivers.sh +++ b/third_party/skia/infra/bots/build_task_drivers.sh @@ -1,35 +1,32 @@ #!/bin/bash -# Copyright 2019 Google, LLC +# Copyright 2022 Google LLC # # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +# +# Takes two arguments. +# First argument is the output directory where executables are to be placed. +# Second (optional) argument is the target platform. These are formatted as os_arch +# https://github.com/bazelbuild/rules_go/blob/e9a7054ff11a520e3b8aceb76a3ba44bb8da4c94/go/toolchain/toolchains.bzl#L22 set -x -e -export GOCACHE="$(pwd)/cache/go_cache" -export GOPATH="$(pwd)/cache/gopath" -export GOROOT="$(pwd)/go/go" - -cd skia +# Navigate to the root of the infra checkout. +cd $(dirname ${BASH_SOURCE[0]}) +cd ../.. -# Build task drivers from the infra repo. -export GOBIN="${1}" -git init -git remote add origin https://skia.googlesource.com/skia.git -git add . -git commit -a -m "initial commit to make go modules work" -export GOFLAGS="-mod=readonly" -go mod download -go install -v go.skia.org/infra/infra/bots/task_drivers/build_push_docker_image -go install -v go.skia.org/infra/infra/bots/task_drivers/canary -go install -v go.skia.org/infra/infra/bots/task_drivers/update_go_deps +PLATFORM=${2:-linux_amd64} # use linux_amd64 if not specified -goos=$2 -goarch=$3 -if [ "$goos" == "windows" ]; then suffix=".exe"; else suffix=""; fi +# Build the executables and extract them to the folder in the first argument. +# We specify the cache directory to be somewhere other than the default (home directory) +# Because the home directory is mounted on / which typically does not have a lot of disk space. +# /mnt/pd0 is the bigger disk mounted to the GCE VM. +# https://bazel.build/docs/output_directories#layout +bazelisk --output_user_root=/mnt/pd0/bazel_cache \ + build //infra/bots:all_task_drivers --platforms=@io_bazel_rules_go//go/toolchain:${PLATFORM} \ + --config=linux-rbe -# Build task drivers from this repo. -task_drivers_dir=infra/bots/task_drivers -for td in $(cd ${task_drivers_dir} && ls); do - CGO_ENABLED=0 GOARCH=$goarch GOOS=$goos go build -o ${1}/${td}${suffix} ${task_drivers_dir}/${td}/${td}.go -done +tar -xf bazel-bin/infra/bots/built_task_drivers.tar -C ${1} +# Bazel outputs are write-protected, so we make sure everybody can write them. This way there +# are no expected errors in deleting them later. +chmod 0777 ${1}/* diff --git a/third_party/skia/infra/bots/cfg.json b/third_party/skia/infra/bots/cfg.json index c375c00bd9f3..20eb455f57ff 100644 --- a/third_party/skia/infra/bots/cfg.json +++ b/third_party/skia/infra/bots/cfg.json @@ -10,7 +10,6 @@ "ASAN", "AbandonGpuContext", "Coverage", - "Graphite", "MSAN", "TSAN", "Valgrind", diff --git a/third_party/skia/infra/bots/gen_tasks_logic/compile_cas.go b/third_party/skia/infra/bots/gen_tasks_logic/compile_cas.go index 2a53adece291..f80be82eeedc 100644 --- a/third_party/skia/infra/bots/gen_tasks_logic/compile_cas.go +++ b/third_party/skia/infra/bots/gen_tasks_logic/compile_cas.go @@ -43,13 +43,20 @@ var ( // not appear in the CasSpec if they are included indirectly via a parent // dir. explicitPaths = []string{ + ".bazelrc", + ".bazelversion", ".clang-format", ".clang-tidy", ".vpython", + "BUILD.bazel", + "WORKSPACE.bazel", + "bazel", "bin/activate-emsdk", "bin/fetch-clang-format", "bin/fetch-gn", "buildtools", + "example", + "go_repositories.bzl", "infra/bots/assets/android_ndk_darwin/VERSION", "infra/bots/assets/android_ndk_linux/VERSION", "infra/bots/assets/android_ndk_windows/VERSION", @@ -57,10 +64,13 @@ var ( "infra/bots/assets/clang_linux/VERSION", "infra/bots/assets/clang_win/VERSION", "infra/bots/run_recipe.py", + "infra/bots/task_drivers", "infra/canvaskit", "infra/pathkit", + "requirements.txt", "resources", "third_party/externals", + "toolchain", } ) diff --git a/third_party/skia/infra/bots/gen_tasks_logic/dm_flags.go b/third_party/skia/infra/bots/gen_tasks_logic/dm_flags.go index a17a9eee89dc..2958a2db149d 100644 --- a/third_party/skia/infra/bots/gen_tasks_logic/dm_flags.go +++ b/third_party/skia/infra/bots/gen_tasks_logic/dm_flags.go @@ -302,6 +302,12 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { // TODO: re-enable - currently fails with "Failed to make lazy image" skip(ALL, "gm", ALL, "image_subset") + // TODO: re-enable - currently fails readback from surface + skip(ALL, "gm", ALL, "blurrect_compare") + skip(ALL, "gm", ALL, "lattice_alpha") + skip(ALL, "gm", ALL, "localmatriximageshader") + skip(ALL, "gm", ALL, "savelayer_f16") + if b.extraConfig("ASAN") { // skbug.com/12507 (Neon UB during JPEG compression on M1 ASAN Graphite bot) skip(ALL, "gm", ALL, "yuv420_odd_dim") // Oddly enough yuv420_odd_dim_repeat doesn't crash @@ -459,6 +465,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { skip("mtltestprecompile", "gm", ALL, "circular_arcs_hairline") skip("mtltestprecompile", "gm", ALL, "dashcircle") skip("mtltestprecompile", "gm", ALL, "dftext") + skip("mtltestprecompile", "gm", ALL, "encode-platform") skip("mtltestprecompile", "gm", ALL, "fontmgr_bounds") skip("mtltestprecompile", "gm", ALL, "fontmgr_bounds_1_-0.25") skip("mtltestprecompile", "gm", ALL, "glyph_pos_h_b") @@ -582,6 +589,12 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { removeFromArgs("tests") } + // Workaround for skbug.com/13040. Eventually, the CommandBuffer bots are going to be + // replaced with ANGLE bots, so this is fine as a temporary fix + if b.extraConfig("CommandBuffer") { + removeFromArgs("tests") + } + if b.extraConfig("NativeFonts") { // images won't exercise native font integration :) removeFromArgs("image") removeFromArgs("colorImage") @@ -920,6 +933,8 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { skip(glMsaaConfig, "gm", ALL, "imageblurtiled") skip(glMsaaConfig, "gm", ALL, "imagefiltersbase") } + + skip(ALL, "tests", ALL, "SkSLUnaryPositiveNegative_GPU") } if b.matchGpu("Adreno[3456]") { // disable broken tests on Adreno 3/4/5/6xx @@ -936,12 +951,9 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { skip(ALL, "tests", ALL, "SkSLStructsInFunctions_GPU") // skia:11929 } - if b.matchGpu("Adreno6") || b.matchGpu("MaliG77") || b.matchGpu("QuadroP400") { - skip(ALL, "tests", ALL, "SkSLRecursiveComparison_Arrays_GPU") // skia:12642 - skip(ALL, "tests", ALL, "SkSLRecursiveComparison_Structs_GPU") - skip(ALL, "tests", ALL, "SkSLRecursiveComparison_Types_GPU") - skip(ALL, "tests", ALL, "SkSLRecursiveComparison_Vectors_GPU") - } + 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 + } if b.matchGpu("Adreno6") && !b.extraConfig("Vulkan") { // disable broken tests on Adreno 6xx GLSL skip(ALL, "tests", ALL, "SkSLIntrinsicIsInf_GPU") // skia:12377 @@ -974,6 +986,8 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { if b.matchGpu("Intel") && b.matchOs("Win") && !b.extraConfig("Vulkan") { skip(ALL, "tests", ALL, "SkSLReturnsValueOnEveryPathES3_GPU") // skia:12465 + skip(ALL, "tests", ALL, "SkSLReturnsValueOnEveryPathES3_GPU") // skia:12465 + skip(ALL, "tests", ALL, "SkSLOutParamsAreDistinctFromGlobal_GPU") // skia:13115 } if b.extraConfig("Vulkan") && b.isLinux() && b.matchGpu("Intel") { @@ -996,21 +1010,40 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { skip(ALL, "tests", ALL, "SkSLLoopInt_GPU") } - if b.gpu("QuadroP400") || b.gpu("GTX660") || b.gpu("GTX960") || b.gpu("Tegra3") { + 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 + + // Nvidia drivers erroneously constant-fold expressions with side-effects in matrix and + // vector constructors when compiling GLSL. + skip(ALL, "tests", ALL, "SkSLPreserveSideEffects_GPU") // skia:13035 } + } + + if b.gpu("Tegra3") && !b.extraConfig("Vulkan") { + // Fails on Tegra3 w/ OpenGL ES skip(ALL, "tests", ALL, "SkSLMatrixFoldingES2_GPU") // skia:11919 } + if b.gpu("QuadroP400") && b.matchOs("Ubuntu") && b.matchModel("Golo") { + // Fails on Ubuntu18-Golo bots with QuadroP400 GPUs on Vulkan and OpenGL + skip(ALL, "tests", ALL, "SkSLPreserveSideEffects_GPU") // skia:13035 + } + + if b.gpu("QuadroP400") && b.matchOs("Win10") && b.matchModel("Golo") { + // Times out with driver 30.0.15.1179 + skip("vkmsaa4", "gm", ALL, "shadow_utils") + } + if b.gpu("PowerVRGE8320") || b.gpu("Tegra3") || b.gpu("Adreno308") { skip(ALL, "tests", ALL, "SkSLVectorScalarMath_GPU") // skia:11919 } if b.gpu("PowerVRGE8320") { skip(ALL, "tests", ALL, "SkSLOutParamsAreDistinct_GPU") + skip(ALL, "tests", ALL, "SkSLOutParamsAreDistinctFromGlobal_GPU") // skia:13115 } if !b.extraConfig("Vulkan") && (b.gpu("RadeonR9M470X") || b.gpu("RadeonHD7770")) { @@ -1145,6 +1178,11 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { match = append(match, "~BadImage") } + if b.arch("arm64") && b.extraConfig("ASAN") { + // skbug.com/13155 the use of longjmp may cause ASAN stack check issues. + skip(ALL, "test", ALL, "SkPDF_JpegIdentification"); + } + if b.matchOs("Mac") && b.gpu("IntelHD6000") { // skia:7574 match = append(match, "~^ProcessorCloneTest$") @@ -1156,6 +1194,11 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { match = append(match, "~^GrMeshTest$") } + if b.matchOs("Mac") && b.gpu("IntelIrisPlus") { + // skia:7603 + match = append(match, "~^GrMeshTest$") + } + if b.extraConfig("Vulkan") && b.model("GalaxyS20") { // skia:10247 match = append(match, "~VkPrepareForExternalIOQueueTransitionTest") diff --git a/third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go b/third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go index 1d6bec3a479f..402edf34193f 100644 --- a/third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go +++ b/third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go @@ -57,6 +57,7 @@ const ( ISOLATE_SDK_LINUX_NAME = "Housekeeper-PerCommit-IsolateAndroidSDKLinux" ISOLATE_WIN_TOOLCHAIN_NAME = "Housekeeper-PerCommit-IsolateWinToolchain" + DEBIAN_11_OS = "Debian-11.2" DEFAULT_OS_DEBIAN = "Debian-10.10" DEFAULT_OS_LINUX_GCE = "Debian-10.3" OLD_OS_LINUX_GCE = "Debian-9.8" @@ -497,11 +498,18 @@ func GenTasks(cfg *Config) { b.MustAddCasSpec(CAS_TASK_DRIVERS, &specs.CasSpec{ Root: "..", Paths: []string{ - "skia/.vpython", - "skia/go.mod", - "skia/go.sum", + // Deps needed to use Bazel + "skia/.bazelrc", + "skia/.bazelversion", + "skia/BUILD.bazel", + "skia/WORKSPACE.bazel", + "skia/bazel", + "skia/go_repositories.bzl", + "skia/requirements.txt", + "skia/toolchain", + // Actually needed to build the task drivers + "skia/infra/bots/BUILD.bazel", "skia/infra/bots/build_task_drivers.sh", - "skia/infra/bots/run_recipe.py", "skia/infra/bots/task_drivers", }, Excludes: []string{rbe.ExcludeGitDir}, @@ -599,11 +607,6 @@ func (b *taskBuilder) kitchenTaskNoBundle(recipe string, outputDir string) { b.output(outputDir) } python := "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}" - if b.role("Test", "Perf") && b.matchOs("Win7") && b.matchModel("Golo") { - // TODO(borenet): Win7 machines in the Golo seem to be missing a - // necessary DLL to make python3 work. - python = "cipd_bin_packages/vpython" - } b.cmd(python, "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", recipe, b.getRecipeProps(), b.cfg.Project) // Most recipes want this isolate; they can override if necessary. b.cas(CAS_RUN_RECIPE) @@ -664,7 +667,7 @@ func (b *jobBuilder) deriveCompileTaskName() string { ignore := []string{ "Skpbench", "AbandonGpuContext", "PreAbandonGpuContext", "Valgrind", "ReleaseAndAbandonGpuContext", "FSAA", "FAAA", "FDAA", "NativeFonts", "GDI", - "NoGPUThreads", "ProcDump", "DDL1", "DDL3", "OOPRDDL", "T8888", + "NoGPUThreads", "DDL1", "DDL3", "OOPRDDL", "T8888", "DDLTotal", "DDLRecord", "9x9", "BonusConfigs", "SkottieTracing", "SkottieWASM", "GpuTess", "DMSAAStats", "Mskp", "Docker", "PDF", "SkVM", "Puppeteer", "SkottieFrames", "RenderSKP", "CanvasPerf", "AllPathsVolatile", "WebGL2", "i5"} @@ -693,6 +696,9 @@ func (b *jobBuilder) deriveCompileTaskName() string { // GCC compiles are now on a Docker container. We use the same OS and // version to compile as to test. ec = append(ec, "Docker") + } else if b.matchOs("Debian11") { + // We compile using the Debian11 machines in the skolo. + task_os = "Debian11" } else if b.matchOs("Ubuntu", "Debian") { task_os = COMPILE_TASK_NAME_OS_LINUX } else if b.matchOs("Mac") { @@ -756,6 +762,7 @@ func (b *taskBuilder) defaultSwarmDimensions() { "ChromeOS": "ChromeOS", "Debian9": DEFAULT_OS_LINUX_GCE, // Runs in Deb9 Docker. "Debian10": DEFAULT_OS_LINUX_GCE, + "Debian11": DEBIAN_11_OS, "Mac": DEFAULT_OS_MAC, "Mac10.12": "Mac-10.12", "Mac10.13": "Mac-10.13.6", @@ -768,7 +775,6 @@ func (b *taskBuilder) defaultSwarmDimensions() { "Win": DEFAULT_OS_WIN, "Win10": "Windows-10-19044", "Win2019": DEFAULT_OS_WIN, - "Win7": "Windows-7-SP1", "Win8": "Windows-8.1-SP0", "iOS": "iOS-13.3.1", }[os] @@ -891,6 +897,7 @@ func (b *taskBuilder) defaultSwarmDimensions() { "RadeonHD7770": "1002:683d-26.20.13031.18002", "RadeonR9M470X": "1002:6646-26.20.13031.18002", "QuadroP400": "10de:1cb3-30.0.15.1179", + "RTX3060": "10de:2489-30.0.15.1165", }[b.parts["cpu_or_gpu_value"]] if !ok { log.Fatalf("Entry %q not found in Win GPU mapping.", b.parts["cpu_or_gpu_value"]) @@ -904,14 +911,17 @@ func (b *taskBuilder) defaultSwarmDimensions() { "IntelHD405": "8086:22b1", "IntelIris640": "8086:5926", "QuadroP400": "10de:1cb3-510.60.02", + "RTX3060": "10de:2489-460.91.03", }[b.parts["cpu_or_gpu_value"]] if !ok { log.Fatalf("Entry %q not found in Ubuntu GPU mapping.", b.parts["cpu_or_gpu_value"]) } d["gpu"] = gpu - // The Debian10 machines in the skolo are 10.10, not 10.3. - if b.matchOs("Debian") { + if b.matchOs("Debian11") { + d["os"] = DEBIAN_11_OS + } else if b.matchOs("Debian") { + // The Debian10 machines in the skolo are 10.10, not 10.3. d["os"] = DEFAULT_OS_DEBIAN } @@ -962,7 +972,12 @@ func (b *taskBuilder) defaultSwarmDimensions() { } } } else { - d["gpu"] = "none" + if d["os"] == DEBIAN_11_OS { + // The Debain11 compile machines in the skolo have GPUs, but we + // still use them for compiles also. + } else { + d["gpu"] = "none" + } if d["os"] == DEFAULT_OS_LINUX_GCE { if b.extraConfig("CanvasKit", "CMake", "Docker", "PathKit") || b.role("BuildStats", "CodeSize") { b.linuxGceDimensions(MACHINE_TYPE_MEDIUM) @@ -1013,46 +1028,18 @@ func (b *jobBuilder) bundleRecipes() string { func (b *jobBuilder) buildTaskDrivers(goos, goarch string) string { name := BUILD_TASK_DRIVERS_PREFIX + "_" + goos + "_" + goarch b.addTask(name, func(b *taskBuilder) { - b.usesGo() b.cmd("/bin/bash", "skia/infra/bots/build_task_drivers.sh", specs.PLACEHOLDER_ISOLATED_OUTDIR, - goos, - goarch) - b.linuxGceDimensions(MACHINE_TYPE_SMALL) - b.addToPATH("cipd_bin_packages", "cipd_bin_packages/bin") + goos+"_"+goarch) + b.linuxGceDimensions(MACHINE_TYPE_MEDIUM) + b.cipd(b.MustGetCipdPackageFromAsset("bazelisk")) + b.addToPATH("bazelisk") b.idempotent() b.cas(CAS_TASK_DRIVERS) }) return name } -// updateGoDeps generates the task to update Go dependencies. -func (b *jobBuilder) updateGoDeps() { - b.addTask(b.Name, func(b *taskBuilder) { - b.usesGo() - b.asset("protoc") - b.cmd( - "./update_go_deps", - "--project_id", "skia-swarming-bots", - "--task_id", specs.PLACEHOLDER_TASK_ID, - "--task_name", b.Name, - "--workdir", ".", - "--gerrit_project", "skia", - "--gerrit_url", "https://skia-review.googlesource.com", - "--repo", specs.PLACEHOLDER_REPO, - "--revision", specs.PLACEHOLDER_REVISION, - "--patch_issue", specs.PLACEHOLDER_ISSUE, - "--patch_set", specs.PLACEHOLDER_PATCHSET, - "--patch_server", specs.PLACEHOLDER_CODEREVIEW_SERVER, - ) - b.dep(b.buildTaskDrivers("linux", "amd64")) - b.linuxGceDimensions(MACHINE_TYPE_MEDIUM) - b.addToPATH("cipd_bin_packages", "cipd_bin_packages/bin") - b.cas(CAS_EMPTY) - b.serviceAccount(b.cfg.ServiceAccountRecreateSKPs) - }) -} - // createDockerImage creates the specified docker image. Returns the name of the // generated task. func (b *jobBuilder) createDockerImage(wasm bool) string { @@ -1189,6 +1176,8 @@ func (b *jobBuilder) compile() string { name := b.deriveCompileTaskName() if b.extraConfig("WasmGMTests") { b.compileWasmGMTests(name) + } else if b.compiler("BazelClang") { + b.compileWithBazel(name) } else { b.addTask(name, func(b *taskBuilder) { recipe := "compile" @@ -1212,6 +1201,10 @@ func (b *jobBuilder) compile() string { b.usesDocker() b.cache(CACHES_DOCKER...) } + if b.extraConfig("Dawn") { + // https://dawn.googlesource.com/dawn/+/516701da8184655a47c92a573cc84da7db5e69d4/generator/dawn_version_generator.py#21 + b.usesGit() + } // Android bots require a toolchain. if b.extraConfig("Android") { @@ -1273,6 +1266,48 @@ func (b *jobBuilder) compile() string { return name } +// compileWithBazel uses RBE to compile Skia. +func (b *jobBuilder) compileWithBazel(name string) { + if b.extraConfig("IWYU") { + b.addTask(name, func(b *taskBuilder) { + b.cmd("./bazel_check_includes", + "--project_id", "skia-swarming-bots", + "--task_id", specs.PLACEHOLDER_TASK_ID, + "--task_name", b.Name, + ) + b.linuxGceDimensions(MACHINE_TYPE_MEDIUM) + b.cipd(b.MustGetCipdPackageFromAsset("bazelisk")) + b.addToPATH("bazelisk") + b.idempotent() + b.cas(CAS_COMPILE) + b.dep(b.buildTaskDrivers("linux", "amd64")) + b.attempts(1) + b.serviceAccount(b.cfg.ServiceAccountCompile) + }) + } else { + log.Fatalf("Unsupported Bazel task " + name) + } +} + +// compileWithBazel uses RBE to compile Skia. +func (b *jobBuilder) checkGeneratedBazelFiles() { + b.addTask("Housekeeper-PerCommit-CheckGeneratedBazelFiles", func(b *taskBuilder) { + b.cmd("./check_generated_bazel_files", + "--project_id", "skia-swarming-bots", + "--task_id", specs.PLACEHOLDER_TASK_ID, + "--task_name", b.Name, + ) + b.linuxGceDimensions(MACHINE_TYPE_MEDIUM) + b.cipd(b.MustGetCipdPackageFromAsset("bazelisk")) + b.addToPATH("bazelisk") + b.idempotent() + b.cas(CAS_COMPILE) + b.dep(b.buildTaskDrivers("linux", "amd64")) + b.attempts(1) + b.serviceAccount(b.cfg.ServiceAccountCompile) // needed for logging + }) +} + // recreateSKPs generates a RecreateSKPs task. func (b *jobBuilder) recreateSKPs() { cmd := []string{ @@ -1526,9 +1561,6 @@ func (b *taskBuilder) commonTestPerfAssets() { b.asset("mesa_intel_driver_linux") } } - if b.matchOs("Win") && b.extraConfig("ProcDump") { - b.asset("procdump_win") - } } // directUpload adds prerequisites for uploading to GCS. diff --git a/third_party/skia/infra/bots/gen_tasks_logic/job_builder.go b/third_party/skia/infra/bots/gen_tasks_logic/job_builder.go index e9925a79ed64..5f11a7e91123 100644 --- a/third_party/skia/infra/bots/gen_tasks_logic/job_builder.go +++ b/third_party/skia/infra/bots/gen_tasks_logic/job_builder.go @@ -105,12 +105,6 @@ func (b *jobBuilder) genTasksForJob() { return } - // Update Go Dependencies. - if b.extraConfig("UpdateGoDeps") { - b.updateGoDeps() - return - } - // Create docker image. if b.extraConfig("CreateDockerImage") { b.createDockerImage(b.extraConfig("WASM")) @@ -141,6 +135,11 @@ func (b *jobBuilder) genTasksForJob() { b.checkGeneratedFiles() return } + if b.Name == "Housekeeper-PerCommit-CheckGeneratedBazelFiles" { + b.checkGeneratedBazelFiles() + return + } + if b.Name == "Housekeeper-PerCommit-RunGnToBp" { b.checkGnToBp() return diff --git a/third_party/skia/infra/bots/gen_tasks_logic/nano_flags.go b/third_party/skia/infra/bots/gen_tasks_logic/nano_flags.go index 93d003601765..787fde52a282 100644 --- a/third_party/skia/infra/bots/gen_tasks_logic/nano_flags.go +++ b/third_party/skia/infra/bots/gen_tasks_logic/nano_flags.go @@ -156,6 +156,11 @@ func (b *taskBuilder) nanobenchFlags(doUpload bool) { } } } + + if b.extraConfig("Graphite") { + configs = []string{"grmtl"} + } + if b.os("ChromeOS") { // Just run GLES for now - maybe add gles_msaa4 in the future configs = []string{"gles"} diff --git a/third_party/skia/infra/bots/jobs.json b/third_party/skia/infra/bots/jobs.json index 9ae1d09c2cf5..ad84c8423b2b 100644 --- a/third_party/skia/infra/bots/jobs.json +++ b/third_party/skia/infra/bots/jobs.json @@ -13,6 +13,16 @@ }, {"name": "Build-Debian10-GCC-x86_64-Release-NoGPU_Docker"}, {"name": "Build-Debian10-GCC-x86_64-Release-Shared_Docker"}, + { + "name": "Build-Debian10-BazelClang-x86_64-Release-IWYU", + "cq_config": { + "location_regexes": [ + "src/sksl/*", + "src/svg/*", + "tools/debugger/*" + ] + } + }, { "name": "Build-Debian10-Clang-arm-Debug-Android", "cq_config": {} @@ -74,6 +84,7 @@ {"name": "Build-Debian10-Clang-x86_64-Release"}, {"name": "Build-Debian10-Clang-x86_64-Release-ANGLE"}, {"name": "Build-Debian10-Clang-x86_64-Release-ASAN"}, + {"name": "Build-Debian10-Clang-x86_64-Release-ASAN_Vulkan"}, {"name": "Build-Debian10-Clang-x86_64-Release-CMake"}, {"name": "Build-Debian10-Clang-x86_64-Release-Chromebook_GLES"}, {"name": "Build-Debian10-Clang-x86_64-Release-Fast"}, @@ -104,6 +115,10 @@ }, {"name": "Build-Debian10-EMCC-wasm-Release-PathKit"}, {"name": "Build-Debian10-EMCC-wasm-Release-WasmGMTests"}, + {"name": "Build-Debian11-Clang-x86_64-Debug"}, + {"name": "Build-Debian11-Clang-x86_64-Debug-ASAN"}, + {"name": "Build-Debian11-Clang-x86_64-Release"}, + {"name": "Build-Debian11-Clang-x86_64-Release-ASAN"}, {"name": "Build-Mac-Clang-arm64-Debug"}, {"name": "Build-Mac-Clang-arm64-Debug-Android"}, {"name": "Build-Mac-Clang-arm64-Debug-Metal"}, @@ -122,12 +137,28 @@ {"name": "Build-Mac-Clang-x86_64-Debug-ASAN"}, {"name": "Build-Mac-Clang-x86_64-Debug-ASAN_Metal"}, {"name": "Build-Mac-Clang-x86_64-Debug-CommandBuffer"}, + { + "name": "Build-Mac-Clang-x86_64-Debug-Graphite", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, {"name": "Build-Mac-Clang-x86_64-Debug-Metal"}, { "name": "Build-Mac-Clang-x86_64-Release", "cq_config": {} }, {"name": "Build-Mac-Clang-x86_64-Release-CommandBuffer"}, + { + "name": "Build-Mac-Clang-x86_64-Release-Graphite", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, {"name": "Build-Mac-Clang-x86_64-Release-Metal"}, {"name": "Build-Mac-Clang-x86_64-Release-TSAN"}, {"name": "Build-Mac-Clang-x86_64-Release-TSAN_Metal"}, @@ -142,12 +173,40 @@ "cq_config": {} }, {"name": "Build-Mac-Clang-arm64-Debug-ASAN"}, - {"name": "Build-Mac-Clang-arm64-Debug-ASAN_Graphite"}, - {"name": "Build-Mac-Clang-arm64-Debug-iOS_Graphite"}, + { + "name": "Build-Mac-Clang-arm64-Debug-ASAN_Graphite", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, + { + "name": "Build-Mac-Clang-arm64-Debug-iOS_Graphite", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, {"name": "Build-Win-Clang-arm64-Release"}, {"name": "Build-Win-Clang-arm64-Release-ANGLE"}, - {"name": "Build-Mac-Clang-arm64-Release-Graphite"}, - {"name": "Build-Mac-Clang-arm64-Release-iOS_Graphite"}, + { + "name": "Build-Mac-Clang-arm64-Release-Graphite", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, + { + "name": "Build-Mac-Clang-arm64-Release-iOS_Graphite", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, {"name": "Build-Win-Clang-arm64-Release-Android"}, { "name": "Build-Win-Clang-x86-Debug", @@ -250,7 +309,6 @@ {"name": "FM-Win-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN"}, {"name": "FM-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug-All"}, {"name": "Housekeeper-Nightly-RecreateSKPs_DryRun"}, - {"name": "Housekeeper-Nightly-UpdateGoDeps"}, { "name": "Housekeeper-OnDemand-Presubmit", "cq_config": {} @@ -260,6 +318,10 @@ {"name": "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64"}, {"name": "Housekeeper-PerCommit-BuildTaskDrivers_windows_amd64"}, {"name": "Housekeeper-PerCommit-BundleRecipes"}, + { + "name": "Housekeeper-PerCommit-CheckGeneratedBazelFiles", + "cq_config": {} + }, { "name": "Housekeeper-PerCommit-CheckGeneratedFiles", "cq_config": { @@ -294,7 +356,6 @@ {"name": "Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan"}, {"name": "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android"}, {"name": "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan"}, - {"name": "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Mskp_Skpbench"}, {"name": "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Skpbench"}, {"name": "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_Skpbench"}, {"name": "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench"}, @@ -304,10 +365,7 @@ {"name": "Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android"}, {"name": "Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan"}, {"name": "Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android"}, - {"name": "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Mskp_Skpbench"}, - {"name": "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Skpbench"}, {"name": "Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan"}, - {"name": "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Vulkan_Skpbench"}, {"name": "Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android"}, {"name": "Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan"}, {"name": "Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android"}, @@ -329,8 +387,6 @@ {"name": "Perf-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All"}, {"name": "Perf-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All"}, {"name": "Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All"}, - {"name": "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN"}, - {"name": "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs"}, {"name": "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All"}, {"name": "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs"}, {"name": "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast"}, @@ -341,8 +397,8 @@ {"name": "Perf-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader"}, {"name": "Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All"}, {"name": "Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan"}, - {"name": "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_Vulkan"}, {"name": "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All"}, + {"name": "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-ASAN_Vulkan"}, {"name": "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing"}, {"name": "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan"}, {"name": "Perf-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All"}, @@ -353,6 +409,8 @@ {"name": "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP"}, {"name": "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_CanvasPerf"}, {"name": "Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb"}, + {"name": "Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All"}, + {"name": "Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-ASAN"}, {"name": "Perf-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All"}, {"name": "Perf-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All-CommandBuffer"}, {"name": "Perf-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All"}, @@ -363,8 +421,24 @@ {"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-CommandBuffer"}, {"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", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, {"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", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, {"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"}, {"name": "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal_AllPathsVolatile_Skpbench"}, @@ -400,6 +474,8 @@ {"name": "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All"}, {"name": "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE"}, {"name": "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan"}, + {"name": "Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All"}, + {"name": "Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan"}, {"name": "Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All"}, {"name": "Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE"}, {"name": "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All"}, @@ -413,8 +489,6 @@ {"name": "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan"}, {"name": "Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All"}, {"name": "Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan"}, - {"name": "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN"}, - {"name": "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs"}, {"name": "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All"}, {"name": "Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All"}, {"name": "Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal"}, @@ -502,10 +576,12 @@ "name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All", "cq_config": {} }, + {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN"}, { "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-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"}, @@ -547,6 +623,7 @@ {"name": "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_TSAN"}, {"name": "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_TSAN_Vulkan"}, {"name": "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-TSAN"}, + {"name": "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-TSAN_Vulkan"}, {"name": "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan"}, {"name": "Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Debug-All"}, {"name": "Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All"}, @@ -576,6 +653,14 @@ ] } }, + {"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-DDL3_ASAN"}, + {"name": "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-OOPRDDL_ASAN"}, + {"name": "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All"}, {"name": "Test-Mac10.12-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts"}, {"name": "Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Debug-All"}, {"name": "Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Debug-All-CommandBuffer"}, @@ -613,6 +698,14 @@ {"name": "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-OOPRDDL_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", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, {"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-Release-All-Metal"}, {"name": "Test-Mac10.15.7-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts"}, @@ -620,16 +713,40 @@ {"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"}, + { + "name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal"}, - {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite"}, + { + "name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal"}, - {"name": "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Debug-All"}, - {"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"}, - {"name": "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Release-All-Metal"}, + {"name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All"}, + { + "name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite", + "cq_config": { + "location_regexes": [ + "experimental/graphite/.*" + ] + } + }, + {"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"}, + {"name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal"}, {"name": "Test-Mac12-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts_ASAN"}, {"name": "Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts"}, + {"name": "Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal"}, + {"name": "Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal"}, {"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"}, { @@ -670,22 +787,17 @@ {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess"}, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ReleaseAndAbandonGpuContext"}, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan"}, - {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan_ProcDump"}, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All"}, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE"}, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs"}, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ReleaseAndAbandonGpuContext"}, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan"}, - {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump"}, {"name": "Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts"}, {"name": "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All"}, {"name": "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE"}, {"name": "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All"}, {"name": "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE"}, - { - "name": "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All", - "cq_config": {} - }, + {"name": "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All"}, {"name": "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE"}, {"name": "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan"}, {"name": "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All"}, @@ -700,6 +812,10 @@ {"name": "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE"}, {"name": "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D"}, {"name": "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan"}, + {"name": "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All"}, + {"name": "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-Vulkan"}, + {"name": "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All"}, + {"name": "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan"}, {"name": "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All"}, {"name": "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE"}, {"name": "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All"}, @@ -736,6 +852,8 @@ {"name": "Test-Win2019-Clang-GCE-CPU-AVX2-x86-Debug-All"}, {"name": "Test-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All"}, {"name": "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM"}, + {"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": {} @@ -747,12 +865,6 @@ {"name": "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM"}, {"name": "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All"}, {"name": "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM"}, - {"name": "Test-Win7-Clang-Golo-CPU-AVX512-x86-Debug-All"}, - {"name": "Test-Win7-Clang-Golo-CPU-AVX512-x86-Release-All"}, - {"name": "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All"}, - {"name": "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts"}, - {"name": "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts_GDI"}, - {"name": "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Release-All"}, {"name": "Test-Win8-Clang-Golo-CPU-AVX512-x86-Debug-All"}, {"name": "Test-Win8-Clang-Golo-CPU-AVX512-x86-Release-All"}, {"name": "Test-Win8-Clang-Golo-CPU-AVX512-x86_64-Debug-All"}, diff --git a/third_party/skia/infra/bots/recipe_modules/build/default.py b/third_party/skia/infra/bots/recipe_modules/build/default.py index ed29b33f6184..11e9d6c7ad2c 100644 --- a/third_party/skia/infra/bots/recipe_modules/build/default.py +++ b/third_party/skia/infra/bots/recipe_modules/build/default.py @@ -136,7 +136,7 @@ def compile_fn(api, checkout_root, out_dir): if 'CheckGeneratedFiles' in extra_tokens: compiler = 'Clang' - args['skia_compile_processors'] = 'true' + args['skia_compile_modules'] = 'true' args['skia_compile_sksl_tests'] = 'true' args['skia_generate_workarounds'] = 'true' diff --git a/third_party/skia/infra/bots/recipe_modules/build/docker.py b/third_party/skia/infra/bots/recipe_modules/build/docker.py index 76bc72f557a3..d0c60e79c509 100644 --- a/third_party/skia/infra/bots/recipe_modules/build/docker.py +++ b/third_party/skia/infra/bots/recipe_modules/build/docker.py @@ -5,15 +5,13 @@ from . import util - -# TODO(dogben): Move this mapping to a machine-editable file. IMAGES = { 'gcc-debian10': ( 'gcr.io/skia-public/gcc-debian10@sha256:' - '89a72df1e2fdea6f774a3fa4199bb9aaa4a0526a3ac1f233e604d689b694f95c'), + 'cd1dd99a3c423332a00998a20c4363aa1d5998b41f21e6e86ca016b412082777'), 'gcc-debian10-x86': ( 'gcr.io/skia-public/gcc-debian10-x86@sha256:' - 'b1ec55403ac66d9500d033d6ffd7663894d32335711fbbb0fb4c67dfce812203'), + 'e30b4616f842fa2fd89329abf3d8e81cf6c25e147640289f37692f18862515c8'), } diff --git a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86-Debug-Docker.json b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86-Debug-Docker.json index 8485546cc9f5..4dd7c5a3e854 100644 --- a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86-Debug-Docker.json +++ b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86-Debug-Docker.json @@ -83,9 +83,9 @@ "type=bind,source=[START_DIR]/cache/work,target=/SRC", "--mount", "type=bind,source=[START_DIR]/cache/work/skia/out/Build-Debian10-GCC-x86-Debug-Docker/Debug,target=/OUT", - "gcr.io/skia-public/gcc-debian10-x86@sha256:b1ec55403ac66d9500d033d6ffd7663894d32335711fbbb0fb4c67dfce812203", + "gcr.io/skia-public/gcc-debian10-x86@sha256:e30b4616f842fa2fd89329abf3d8e81cf6c25e147640289f37692f18862515c8", "/SRC/../RECIPE_MODULE[skia::build]/resources/docker-compile.sh", - "cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-O1\",\"-g1\",\"-DREBUILD_IF_CHANGED_docker_image=gcr.io/skia-public/gcc-debian10-x86@sha256:b1ec55403ac66d9500d033d6ffd7663894d32335711fbbb0fb4c67dfce812203\"] extra_ldflags=[] target_cpu=\"x86\" werror=true" + "cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-O1\",\"-g1\",\"-DREBUILD_IF_CHANGED_docker_image=gcr.io/skia-public/gcc-debian10-x86@sha256:e30b4616f842fa2fd89329abf3d8e81cf6c25e147640289f37692f18862515c8\"] extra_ldflags=[] target_cpu=\"x86\" werror=true" ], "env": { "CHROME_HEADLESS": "1", diff --git a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Debug-Docker.json b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Debug-Docker.json index ace9e0d49081..836b0cb3c938 100644 --- a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Debug-Docker.json +++ b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Debug-Docker.json @@ -83,9 +83,9 @@ "type=bind,source=[START_DIR]/cache/work,target=/SRC", "--mount", "type=bind,source=[START_DIR]/cache/work/skia/out/Build-Debian10-GCC-x86_64-Debug-Docker/Debug,target=/OUT", - "gcr.io/skia-public/gcc-debian10@sha256:89a72df1e2fdea6f774a3fa4199bb9aaa4a0526a3ac1f233e604d689b694f95c", + "gcr.io/skia-public/gcc-debian10@sha256:cd1dd99a3c423332a00998a20c4363aa1d5998b41f21e6e86ca016b412082777", "/SRC/../RECIPE_MODULE[skia::build]/resources/docker-compile.sh", - "cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-O1\",\"-g1\",\"-DREBUILD_IF_CHANGED_docker_image=gcr.io/skia-public/gcc-debian10@sha256:89a72df1e2fdea6f774a3fa4199bb9aaa4a0526a3ac1f233e604d689b694f95c\"] extra_ldflags=[] target_cpu=\"x86_64\" werror=true" + "cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-O1\",\"-g1\",\"-DREBUILD_IF_CHANGED_docker_image=gcr.io/skia-public/gcc-debian10@sha256:cd1dd99a3c423332a00998a20c4363aa1d5998b41f21e6e86ca016b412082777\"] extra_ldflags=[] target_cpu=\"x86_64\" werror=true" ], "env": { "CHROME_HEADLESS": "1", diff --git a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Release-NoGPU_Docker.json b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Release-NoGPU_Docker.json index 7dfc12e822e4..cb8c8c3871aa 100644 --- a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Release-NoGPU_Docker.json +++ b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Release-NoGPU_Docker.json @@ -83,9 +83,9 @@ "type=bind,source=[START_DIR]/cache/work,target=/SRC", "--mount", "type=bind,source=[START_DIR]/cache/work/skia/out/Build-Debian10-GCC-x86_64-Release-NoGPU_Docker/Release,target=/OUT", - "gcr.io/skia-public/gcc-debian10@sha256:89a72df1e2fdea6f774a3fa4199bb9aaa4a0526a3ac1f233e604d689b694f95c", + "gcr.io/skia-public/gcc-debian10@sha256:cd1dd99a3c423332a00998a20c4363aa1d5998b41f21e6e86ca016b412082777", "/SRC/../RECIPE_MODULE[skia::build]/resources/docker-compile.sh", - "cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-g1\",\"-DREBUILD_IF_CHANGED_docker_image=gcr.io/skia-public/gcc-debian10@sha256:89a72df1e2fdea6f774a3fa4199bb9aaa4a0526a3ac1f233e604d689b694f95c\"] extra_ldflags=[] is_debug=false skia_enable_gpu=false target_cpu=\"x86_64\" werror=true" + "cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-g1\",\"-DREBUILD_IF_CHANGED_docker_image=gcr.io/skia-public/gcc-debian10@sha256:cd1dd99a3c423332a00998a20c4363aa1d5998b41f21e6e86ca016b412082777\"] extra_ldflags=[] is_debug=false skia_enable_gpu=false target_cpu=\"x86_64\" werror=true" ], "env": { "CHROME_HEADLESS": "1", diff --git a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Release-Shared_Docker.json b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Release-Shared_Docker.json index b92bd234f829..a3717235cf7d 100644 --- a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Release-Shared_Docker.json +++ b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-GCC-x86_64-Release-Shared_Docker.json @@ -83,9 +83,9 @@ "type=bind,source=[START_DIR]/cache/work,target=/SRC", "--mount", "type=bind,source=[START_DIR]/cache/work/skia/out/Build-Debian10-GCC-x86_64-Release-Shared_Docker/Release,target=/OUT", - "gcr.io/skia-public/gcc-debian10@sha256:89a72df1e2fdea6f774a3fa4199bb9aaa4a0526a3ac1f233e604d689b694f95c", + "gcr.io/skia-public/gcc-debian10@sha256:cd1dd99a3c423332a00998a20c4363aa1d5998b41f21e6e86ca016b412082777", "/SRC/../RECIPE_MODULE[skia::build]/resources/docker-compile.sh", - "cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-g1\",\"-DREBUILD_IF_CHANGED_docker_image=gcr.io/skia-public/gcc-debian10@sha256:89a72df1e2fdea6f774a3fa4199bb9aaa4a0526a3ac1f233e604d689b694f95c\"] extra_ldflags=[] is_component_build=true is_debug=false target_cpu=\"x86_64\" werror=true" + "cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-g1\",\"-DREBUILD_IF_CHANGED_docker_image=gcr.io/skia-public/gcc-debian10@sha256:cd1dd99a3c423332a00998a20c4363aa1d5998b41f21e6e86ca016b412082777\"] extra_ldflags=[] is_component_build=true is_debug=false target_cpu=\"x86_64\" werror=true" ], "env": { "CHROME_HEADLESS": "1", diff --git a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json index d094448704e6..849a47dbb54a 100644 --- a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json +++ b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json @@ -66,7 +66,7 @@ "[START_DIR]/cache/work/skia/bin/gn", "gen", "[START_DIR]/cache/work/skia/out/Housekeeper-PerCommit-CheckGeneratedFiles/Release", - "--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\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-L[START_DIR]/clang_linux/lib\"] is_debug=false skia_compile_processors=true skia_compile_sksl_tests=true skia_generate_workarounds=true werror=true" + "--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\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-L[START_DIR]/clang_linux/lib\"] is_debug=false skia_compile_modules=true skia_compile_sksl_tests=true skia_generate_workarounds=true werror=true" ], "cwd": "[START_DIR]/cache/work/skia", "env": { diff --git a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/unknown-docker-image.json b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/unknown-docker-image.json index cb11bf17b8e0..0f8938db241e 100644 --- a/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/unknown-docker-image.json +++ b/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/unknown-docker-image.json @@ -11,7 +11,7 @@ " api.build(checkout_root=checkout_root, out_dir=out_dir)", " File \"RECIPE_REPO[skia]/infra/bots/recipe_modules/build/api.py\", line 53, in __call__", " self.compile_fn(self.m, checkout_root, out_dir)", - " File \"RECIPE_REPO[skia]/infra/bots/recipe_modules/build/docker.py\", line 61, in compile_fn", + " File \"RECIPE_REPO[skia]/infra/bots/recipe_modules/build/docker.py\", line 59, in compile_fn", " raise Exception('Not implemented: ' + api.vars.builder_name)", "Exception('Not implemented: Build-Unix-GCC-x86_64-Release-Docker')" ] diff --git a/third_party/skia/infra/bots/recipe_modules/flavor/default.py b/third_party/skia/infra/bots/recipe_modules/flavor/default.py index aecc5b44b848..00849786445d 100644 --- a/third_party/skia/infra/bots/recipe_modules/flavor/default.py +++ b/third_party/skia/infra/bots/recipe_modules/flavor/default.py @@ -172,19 +172,6 @@ def step(self, name, cmd, **unused_kwargs): ld_library_path.append(clang_linux + '/lib') elif self.m.vars.is_linux: cmd = ['catchsegv'] + cmd - elif 'ProcDump' in extra_tokens: - dumps_dir = self.m.path.join(self.m.vars.swarming_out_dir, 'dumps') - self.m.file.ensure_directory('makedirs dumps', dumps_dir) - procdump = str(self.m.vars.workdir.join('procdump_win', - 'procdump64.exe')) - # Full docs for ProcDump here: - # https://docs.microsoft.com/en-us/sysinternals/downloads/procdump - # -accepteula automatically accepts the license agreement - # -mp saves a packed minidump to save space - # -e 1 tells procdump to dump once - # -x launches exe and writes dumps to the - # specified dir - cmd = [procdump, '-accepteula', '-mp', '-e', '1', '-x', dumps_dir] + cmd if 'ASAN' in extra_tokens: os = self.m.vars.builder_cfg.get('os', '') diff --git a/third_party/skia/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump.json b/third_party/skia/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump.json deleted file mode 100644 index 1b4148d5a10d..000000000000 --- a/third_party/skia/infra/bots/recipe_modules/flavor/examples/full.expected/Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump.json +++ /dev/null @@ -1,237 +0,0 @@ -[ - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "copy", - "file.txt", - "/path/to/tmp/" - ], - "infra_step": true, - "name": "read file.txt", - "~followup_annotations": [ - "@@@STEP_LOG_END@file.txt@@@" - ] - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "remove", - "file.txt" - ], - "infra_step": true, - "name": "remove file.txt" - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "rmtree", - "results_dir" - ], - "infra_step": true, - "name": "rmtree results_dir" - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "ensure-directory", - "--mode", - "0777", - "results_dir" - ], - "infra_step": true, - "name": "makedirs results_dir" - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "rmtree", - "device_results_dir" - ], - "infra_step": true, - "name": "rmtree device_results_dir" - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "ensure-directory", - "--mode", - "0777", - "device_results_dir" - ], - "infra_step": true, - "name": "makedirs device_results_dir" - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "copy", - "[START_DIR]\\skia\\infra\\bots\\assets\\skp\\VERSION", - "/path/to/tmp/" - ], - "infra_step": true, - "name": "Get skp VERSION", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@VERSION@42@@@", - "@@@STEP_LOG_END@VERSION@@@" - ] - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "copy", - "42", - "[START_DIR]\\tmp\\SKP_VERSION" - ], - "infra_step": true, - "name": "write SKP_VERSION", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@SKP_VERSION@42@@@", - "@@@STEP_LOG_END@SKP_VERSION@@@" - ] - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "copy", - "[START_DIR]\\skia\\infra\\bots\\assets\\skimage\\VERSION", - "/path/to/tmp/" - ], - "infra_step": true, - "name": "Get skimage VERSION", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@VERSION@42@@@", - "@@@STEP_LOG_END@VERSION@@@" - ] - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "copy", - "42", - "[START_DIR]\\tmp\\SK_IMAGE_VERSION" - ], - "infra_step": true, - "name": "write SK_IMAGE_VERSION", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@", - "@@@STEP_LOG_END@SK_IMAGE_VERSION@@@" - ] - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "copy", - "[START_DIR]\\skia\\infra\\bots\\assets\\svg\\VERSION", - "/path/to/tmp/" - ], - "infra_step": true, - "name": "Get svg VERSION", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@VERSION@42@@@", - "@@@STEP_LOG_END@VERSION@@@" - ] - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "copy", - "42", - "[START_DIR]\\tmp\\SVG_VERSION" - ], - "infra_step": true, - "name": "write SVG_VERSION", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@SVG_VERSION@42@@@", - "@@@STEP_LOG_END@SVG_VERSION@@@" - ] - }, - { - "cmd": [ - "vpython", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "ensure-directory", - "--mode", - "0777", - "[START_DIR]\\[SWARM_OUT_DIR]\\dumps" - ], - "infra_step": true, - "name": "makedirs dumps" - }, - { - "cmd": [ - "powershell", - "-ExecutionPolicy", - "Unrestricted", - "-File", - "RECIPE_MODULE[skia::flavor]\\resources\\win_run_and_check_log.ps1", - "[START_DIR]\\procdump_win\\procdump64.exe", - "-accepteula", - "-mp", - "-e", - "1", - "-x", - "[START_DIR]\\[SWARM_OUT_DIR]\\dumps", - "[START_DIR]\\build\\dm", - "--some-flag" - ], - "env": { - "CHROME_HEADLESS": "1", - "PATH": ";RECIPE_REPO[depot_tools]" - }, - "name": "dm" - }, - { - "name": "$result" - } -] \ No newline at end of file diff --git a/third_party/skia/infra/bots/recipe_modules/flavor/examples/full.py b/third_party/skia/infra/bots/recipe_modules/flavor/examples/full.py index 07dc1ff0c08e..969ba4aba664 100644 --- a/third_party/skia/infra/bots/recipe_modules/flavor/examples/full.py +++ b/third_party/skia/infra/bots/recipe_modules/flavor/examples/full.py @@ -107,7 +107,6 @@ def RunSteps(api): 'Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Debug-All-ASAN', ('Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All' '-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41'), - 'Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump', 'Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_Vulkan', ] diff --git a/third_party/skia/infra/bots/recipe_modules/infra/__init__.py b/third_party/skia/infra/bots/recipe_modules/infra/__init__.py index b414e8896223..aebb009a6be4 100644 --- a/third_party/skia/infra/bots/recipe_modules/infra/__init__.py +++ b/third_party/skia/infra/bots/recipe_modules/infra/__init__.py @@ -8,6 +8,7 @@ 'recipe_engine/context', 'recipe_engine/file', 'recipe_engine/path', + 'recipe_engine/raw_io', 'recipe_engine/step', 'run', 'vars', diff --git a/third_party/skia/infra/bots/recipe_modules/infra/api.py b/third_party/skia/infra/bots/recipe_modules/infra/api.py index 18d519dbe956..0d8a00595d67 100644 --- a/third_party/skia/infra/bots/recipe_modules/infra/api.py +++ b/third_party/skia/infra/bots/recipe_modules/infra/api.py @@ -14,11 +14,38 @@ class InfraApi(recipe_api.RecipeApi): @property def goroot(self): - return self.m.vars.workdir.join('go', 'go') + go_root = self.m.vars.workdir.join('go', 'go') + # Starting with Go 1.18, the standard library includes "//go:embed" + # directives that point to other files in the standard library. For + # security reasons, the "embed" package does not support symbolic links + # (discussion at + # https://github.com/golang/go/issues/35950#issuecomment-561725322), and it + # produces "cannot embed irregular file" errors when it encounters one. + # + # To prevent the above error, we ensure our GOROOT environment variable + # points to a path without symbolic links. + # + # For some reason step.m.path.realpath returns the path unchanged, so we + # invoke realpath instead. + symlink_version_file = go_root.join('VERSION') # Arbitrary symlink. + step_result = self.m.step('realpath go/go/VERSION', + cmd=['realpath', str(symlink_version_file)], + stdout=self.m.raw_io.output_text()) + step_result = self.m.step('dirname', + cmd=['dirname', step_result.stdout], + stdout=self.m.raw_io.output_text()) + go_root_nosymlinks = step_result.stdout.strip() + if go_root_nosymlinks != "": + return go_root_nosymlinks # pragma: nocover + else: + # This branch exists solely to appease recipe tests, under which the + # workdir variable is unset. Returning an empty string causes tests to + # fail, so we return the original GOROOT instead. + return go_root @property def go_bin(self): - return self.goroot.join('bin') + return self.m.path.join(self.goroot, 'bin') @property def go_env(self): diff --git a/third_party/skia/infra/bots/recipe_modules/infra/examples/full.expected/infra_tests.json b/third_party/skia/infra/bots/recipe_modules/infra/examples/full.expected/infra_tests.json index 71e12f440a37..2ede645a3732 100644 --- a/third_party/skia/infra/bots/recipe_modules/infra/examples/full.expected/infra_tests.json +++ b/third_party/skia/infra/bots/recipe_modules/infra/examples/full.expected/infra_tests.json @@ -1,4 +1,32 @@ [ + { + "cmd": [ + "realpath", + "[START_DIR]/go/go/VERSION" + ], + "name": "realpath go/go/VERSION" + }, + { + "cmd": [ + "dirname", + "" + ], + "name": "dirname" + }, + { + "cmd": [ + "realpath", + "[START_DIR]/go/go/VERSION" + ], + "name": "realpath go/go/VERSION (2)" + }, + { + "cmd": [ + "dirname", + "" + ], + "name": "dirname (2)" + }, { "cmd": [ "echo", diff --git a/third_party/skia/infra/bots/recipes/check_generated_files.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json b/third_party/skia/infra/bots/recipes/check_generated_files.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json index 08c6035a6873..f58721dd6fad 100644 --- a/third_party/skia/infra/bots/recipes/check_generated_files.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json +++ b/third_party/skia/infra/bots/recipes/check_generated_files.expected/Housekeeper-PerCommit-CheckGeneratedFiles.json @@ -155,6 +155,38 @@ }, "name": "git diff #1" }, + { + "cmd": [ + "realpath", + "[START_DIR]/go/go/VERSION" + ], + "cwd": "[START_DIR]/cache/work/skia", + "name": "realpath go/go/VERSION" + }, + { + "cmd": [ + "dirname", + "" + ], + "cwd": "[START_DIR]/cache/work/skia", + "name": "dirname" + }, + { + "cmd": [ + "realpath", + "[START_DIR]/go/go/VERSION" + ], + "cwd": "[START_DIR]/cache/work/skia", + "name": "realpath go/go/VERSION (2)" + }, + { + "cmd": [ + "dirname", + "" + ], + "cwd": "[START_DIR]/cache/work/skia", + "name": "dirname (2)" + }, { "cmd": [ "make", @@ -239,7 +271,7 @@ "[START_DIR]/cache/work/skia/bin/gn", "gen", "[START_DIR]/build/out/Release", - "--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\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-L[START_DIR]/clang_linux/lib\"] is_debug=false skia_compile_processors=true skia_compile_sksl_tests=true skia_generate_workarounds=true werror=true" + "--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\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-L[START_DIR]/clang_linux/lib\"] is_debug=false skia_compile_modules=true skia_compile_sksl_tests=true skia_generate_workarounds=true werror=true" ], "cwd": "[START_DIR]/cache/work/skia", "env": { diff --git a/third_party/skia/infra/bots/recipes/infra.expected/infra_tests.json b/third_party/skia/infra/bots/recipes/infra.expected/infra_tests.json index 377e02b0d905..1692bfa2545c 100644 --- a/third_party/skia/infra/bots/recipes/infra.expected/infra_tests.json +++ b/third_party/skia/infra/bots/recipes/infra.expected/infra_tests.json @@ -1,4 +1,32 @@ [ + { + "cmd": [ + "realpath", + "[START_DIR]/go/go/VERSION" + ], + "name": "realpath go/go/VERSION" + }, + { + "cmd": [ + "dirname", + "" + ], + "name": "dirname" + }, + { + "cmd": [ + "realpath", + "[START_DIR]/go/go/VERSION" + ], + "name": "realpath go/go/VERSION (2)" + }, + { + "cmd": [ + "dirname", + "" + ], + "name": "dirname (2)" + }, { "cmd": [ "git", diff --git a/third_party/skia/infra/bots/recipes/infra.expected/infra_tests_lottie_ci.json b/third_party/skia/infra/bots/recipes/infra.expected/infra_tests_lottie_ci.json index 32992c84f252..8b4ae2309b28 100644 --- a/third_party/skia/infra/bots/recipes/infra.expected/infra_tests_lottie_ci.json +++ b/third_party/skia/infra/bots/recipes/infra.expected/infra_tests_lottie_ci.json @@ -1,4 +1,32 @@ [ + { + "cmd": [ + "realpath", + "[START_DIR]/go/go/VERSION" + ], + "name": "realpath go/go/VERSION" + }, + { + "cmd": [ + "dirname", + "" + ], + "name": "dirname" + }, + { + "cmd": [ + "realpath", + "[START_DIR]/go/go/VERSION" + ], + "name": "realpath go/go/VERSION (2)" + }, + { + "cmd": [ + "dirname", + "" + ], + "name": "dirname (2)" + }, { "cmd": [ "git", diff --git a/third_party/skia/infra/bots/task_drivers/bazel_check_includes/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/bazel_check_includes/BUILD.bazel new file mode 100644 index 000000000000..cd4f9ecdd0c0 --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/bazel_check_includes/BUILD.bazel @@ -0,0 +1,22 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "bazel_check_includes_lib", + srcs = ["bazel_check_includes.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/bazel_check_includes", + 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_check_includes", + embed = [":bazel_check_includes_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/infra/bots/task_drivers/bazel_check_includes/bazel_check_includes.go b/third_party/skia/infra/bots/task_drivers/bazel_check_includes/bazel_check_includes.go new file mode 100644 index 000000000000..ec6c8e4600d5 --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/bazel_check_includes/bazel_check_includes.go @@ -0,0 +1,100 @@ +// Copyright 2022 Google LLC +// +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// This executable checks that we can build certain Bazel targets using --features skia_enforce_iwyu +// which validates that a subset of files are properly declaring all includes that they use. +package main + +import ( + "context" + "flag" + "fmt" + "path/filepath" + "strconv" + + 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" +) + +// This value is arbitrarily selected. It is smaller than our maximum RBE pool size. +const rbeJobs = 100 + +var ( + // Required properties for this task. + 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") + // 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() { + ctx := td.StartRun(projectId, taskId, taskName, output, local) + defer td.EndRun(ctx) + + wd, err := os_steps.Abs(ctx, *workdir) + if err != nil { + td.Fatal(ctx, err) + } + skiaDir := filepath.Join(wd, "skia") + + opts := bazel.BazelOptions{ + // 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: "/mnt/pd0/bazel_cache", + } + if err := bazel.EnsureBazelRCFile(ctx, opts); err != nil { + td.Fatal(ctx, err) + } + + targets := []string{"//example:hello_world_gl", "//example:hello_world_vulkan", + "//example:hello_world_dawn", "//example:vulkan_basic", "//:skia_core", "//src/svg/..."} + for _, t := range targets { + if err := bazelCheckIncludes(ctx, skiaDir, t); err != nil { + td.Fatal(ctx, err) + } + } + + // Here are other configurations, e.g. with the GPU backend. These extra configurations + // will make sure IWYU is happy with other #ifdef settings + if err := bazelCheckIncludes(ctx, skiaDir, "//src/svg/...", + "--gpu_backend=gl_backend", "--include_decoder=jpeg_decode_codec"); err != nil { + td.Fatal(ctx, err) + } + + if err := bazelCheckIncludes(ctx, skiaDir, "//tools/debugger", "--gpu_backend=gl_backend"); err != nil { + td.Fatal(ctx, err) + } +} + +// bazelCheckIncludes builds the given label with the feature enabled that treats improper include +// declarations as a compilation error. +func bazelCheckIncludes(ctx context.Context, checkoutDir, label string, opts ...string) error { + step := fmt.Sprintf("Build and check includes for %s with %d extra flags", label, len(opts)) + return td.Do(ctx, td.Props(step), func(ctx context.Context) error { + runCmd := &sk_exec.Command{ + Name: "bazelisk", + Args: append([]string{"build", + "--config=linux-rbe", // Compile using RBE + "--features=skia_enforce_iwyu", + "--jobs=" + strconv.Itoa(rbeJobs), + label, + }, opts...), + 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 + }) +} diff --git a/third_party/skia/infra/bots/task_drivers/check_generated_bazel_files/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/check_generated_bazel_files/BUILD.bazel new file mode 100644 index 000000000000..e1adf8ae5494 --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/check_generated_bazel_files/BUILD.bazel @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "check_generated_bazel_files_lib", + srcs = ["check_generated_bazel_files.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/check_generated_bazel_files", + visibility = ["//visibility:private"], + deps = [ + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/skerr", + "@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 = "check_generated_bazel_files", + embed = [":check_generated_bazel_files_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/infra/bots/task_drivers/check_generated_bazel_files/check_generated_bazel_files.go b/third_party/skia/infra/bots/task_drivers/check_generated_bazel_files/check_generated_bazel_files.go new file mode 100644 index 000000000000..508be8c3b416 --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/check_generated_bazel_files/check_generated_bazel_files.go @@ -0,0 +1,173 @@ +// Copyright 2022 Google LLC +// +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// This executable checks that there are no diffs to the BUILD.bazel files after we run +// gazelle to autogenerate the CPP rules (e.g. generated_cc_atom) +package main + +import ( + "context" + "errors" + "flag" + "fmt" + "os" + "path/filepath" + "strconv" + + sk_exec "go.skia.org/infra/go/exec" + "go.skia.org/infra/go/skerr" + "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" +) + +// This value is arbitrarily selected. It is smaller than our maximum RBE pool size. +const rbeJobs = 100 + +var ( + // Required properties for this task. + 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") + // 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() { + ctx := td.StartRun(projectId, taskId, taskName, output, local) + defer td.EndRun(ctx) + + wd, err := os_steps.Abs(ctx, *workdir) + if err != nil { + td.Fatal(ctx, err) + } + skiaDir := filepath.Join(wd, "skia") + + opts := bazel.BazelOptions{ + // 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: "/mnt/pd0/bazel_cache", + } + if err := bazel.EnsureBazelRCFile(ctx, opts); err != nil { + td.Fatal(ctx, err) + } + + if err := ensureNoGeneratedDiffs(ctx, skiaDir); err != nil { + td.Fatal(ctx, err) + } + + if err := smokeTestBuild(ctx, skiaDir); err != nil { + td.Fatal(ctx, err) + } +} + +func ensureNoGeneratedDiffs(ctx context.Context, checkoutDir string) error { + // CAS doesn't keep the .git folder around, so we cannot use git diff. + // However, we can copy just the BUILD.bazel files into a temporary directory + // regenerate the build.bazel files, copy the BUILD.bazel files to a different + // directory and then use the standard diff tool to compare them. + beforeDir, err := os.MkdirTemp("", "before") + if err != nil { + return skerr.Wrap(err) + } + defer os.RemoveAll(beforeDir) + afterDir, err := os.MkdirTemp("", "after") + if err != nil { + return skerr.Wrap(err) + } + defer os.RemoveAll(afterDir) + + return td.Do(ctx, td.Props("Regenerate Bazel files"), func(ctx context.Context) error { + if err := copyAllBUILDFilesTo(ctx, checkoutDir, beforeDir); err != nil { + return err + } + + genCmd := &sk_exec.Command{ + Name: "make", + Args: []string{"generate"}, + InheritEnv: true, // Makes sure bazelisk is on PATH + Dir: filepath.Join(checkoutDir, "bazel"), + LogStdout: true, + LogStderr: true, + } + _, err = sk_exec.RunCommand(ctx, genCmd) + if err != nil { + return err + } + + if err := copyAllBUILDFilesTo(ctx, checkoutDir, afterDir); err != nil { + return err + } + + // diff returns a non-zero exit code if it finds a diff. If it does, the diffs will + // be written to stderr, which shows up in the error returned by RunCommand. + diffCmd := &sk_exec.Command{ + Name: "diff", + Args: []string{"--unified", "--recursive", beforeDir, afterDir}, + Dir: checkoutDir, + LogStdout: true, + LogStderr: true, + } + _, err := sk_exec.RunCommand(ctx, diffCmd) + if err != nil { + // By returning the diff in an error, it shows up in a prominent place in the + // task driver logs, so it is more clear how to fix this. + return errors.New("Unexpected diffs after generating Bazel files\n" + err.Error() + ` + + +You need to run make generate from //bazel. +You may also need to manually add your new files to srcs +in the BUILD.bazel of the parent of your added files. +`) + } + return nil + }) +} + +func copyAllBUILDFilesTo(ctx context.Context, srcDir, targetDir string) error { + copyCmd := &sk_exec.Command{ + Name: "bash", + // We want ** to expand with the shell, so we need to use bash -c + // Moreover, we want to match all BUILD.bazel files, no matter how deep, so we need to + // set the globstar option, which is off by default https://askubuntu.com/a/1010708 + Args: []string{"-c", `shopt -s globstar && cp --recursive --parents ./**/BUILD.bazel ` + targetDir}, + Dir: srcDir, + LogStdout: true, + LogStderr: true, + } + _, err := sk_exec.RunCommand(ctx, copyCmd) + return err +} + +// smokeTestBuild builds and links something with Bazelisk to make sure the generated BUILD.bazel +// files and the manually curated lists of files continue to work. +func smokeTestBuild(ctx context.Context, checkoutDir string) error { + return td.Do(ctx, td.Props("Smoke test compile+link"), func(ctx context.Context) error { + runCmd := &sk_exec.Command{ + Name: "bazelisk", + Args: []string{"build", + "--config=linux-rbe", // Compile using RBE + "--jobs=" + strconv.Itoa(rbeJobs), + "//example:hello_world_gl", // This compiles and links, so is a good smoke test + }, + InheritEnv: true, // Makes sure bazelisk is on PATH + Dir: checkoutDir, + LogStdout: true, + LogStderr: true, + } + _, err := sk_exec.RunCommand(ctx, runCmd) + if err != nil { + fmt.Println("===============================================") + fmt.Println("Bazel smoke test failed!") + fmt.Println("You may need to manually update the :srcs target in the appropriate") + fmt.Println("BUILD.bazel file to include files/targets you added or delete ones") + fmt.Println("corresponding to deleted files.") + return err + } + return nil + }) +} diff --git a/third_party/skia/infra/bots/task_drivers/codesize/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/codesize/BUILD.bazel new file mode 100644 index 000000000000..1abcb0e0ad40 --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/codesize/BUILD.bazel @@ -0,0 +1,56 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test") + +licenses(["notice"]) + +go_library( + name = "codesize_lib", + srcs = ["codesize.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/codesize", + visibility = ["//visibility:private"], + deps = [ + "@com_google_cloud_go_storage//:storage", + "@org_golang_google_api//option", + "@org_skia_go_infra//go/auth", + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/gcs", + "@org_skia_go_infra//go/gcs/gcsclient", + "@org_skia_go_infra//go/gerrit", + "@org_skia_go_infra//go/gitiles", + "@org_skia_go_infra//go/now", + "@org_skia_go_infra//go/skerr", + "@org_skia_go_infra//task_driver/go/lib/auth_steps", + "@org_skia_go_infra//task_driver/go/lib/checkout", + "@org_skia_go_infra//task_driver/go/td", + "@org_skia_go_infra//task_scheduler/go/types", + ], +) + +go_binary( + name = "codesize", + embed = [":codesize_lib"], + visibility = ["//visibility:public"], +) + +go_test( + name = "codesize_test", + srcs = ["codesize_test.go"], + embed = [":codesize_lib"], + deps = [ + "@com_github_stretchr_testify//assert", + "@com_github_stretchr_testify//require", + "@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/testutils", + "@org_skia_go_infra//go/gitiles", + "@org_skia_go_infra//go/gitiles/testutils", + "@org_skia_go_infra//go/mockhttpclient", + "@org_skia_go_infra//go/now", + "@org_skia_go_infra//go/testutils", + "@org_skia_go_infra//task_driver/go/td", + "@org_skia_go_infra//task_scheduler/go/types", + ], +) diff --git a/third_party/skia/infra/bots/task_drivers/compile_wasm_gm_tests/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/compile_wasm_gm_tests/BUILD.bazel new file mode 100644 index 000000000000..e3e90fa1f540 --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/compile_wasm_gm_tests/BUILD.bazel @@ -0,0 +1,25 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "compile_wasm_gm_tests_lib", + srcs = ["compile_wasm_gm_tests.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/compile_wasm_gm_tests", + visibility = ["//visibility:private"], + deps = [ + "@com_google_cloud_go_storage//:storage", + "@org_skia_go_infra//go/auth", + "@org_skia_go_infra//go/skerr", + "@org_skia_go_infra//task_driver/go/lib/auth_steps", + "@org_skia_go_infra//task_driver/go/lib/docker", + "@org_skia_go_infra//task_driver/go/lib/os_steps", + "@org_skia_go_infra//task_driver/go/td", + ], +) + +go_binary( + name = "compile_wasm_gm_tests", + embed = [":compile_wasm_gm_tests_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/infra/bots/task_drivers/fm_driver/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/fm_driver/BUILD.bazel new file mode 100644 index 000000000000..46464bccb345 --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/fm_driver/BUILD.bazel @@ -0,0 +1,21 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "fm_driver_lib", + srcs = ["fm_driver.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/fm_driver", + visibility = ["//visibility:private"], + deps = [ + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/util", + "@org_skia_go_infra//task_driver/go/td", + ], +) + +go_binary( + name = "fm_driver", + embed = [":fm_driver_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/infra/bots/task_drivers/g3_canary/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/g3_canary/BUILD.bazel new file mode 100644 index 000000000000..3efce231d03e --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/g3_canary/BUILD.bazel @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "g3_canary_lib", + srcs = ["g3_canary.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/g3_canary", + visibility = ["//visibility:private"], + deps = [ + "@com_google_cloud_go_storage//:storage", + "@org_golang_google_api//option", + "@org_skia_go_infra//go/auth", + "@org_skia_go_infra//go/gcs", + "@org_skia_go_infra//go/gcs/gcsclient", + "@org_skia_go_infra//go/httputils", + "@org_skia_go_infra//go/skerr", + "@org_skia_go_infra//go/sklog", + "@org_skia_go_infra//promk/go/pushgateway", + "@org_skia_go_infra//task_driver/go/lib/auth_steps", + "@org_skia_go_infra//task_driver/go/lib/checkout", + "@org_skia_go_infra//task_driver/go/td", + ], +) + +go_binary( + name = "g3_canary", + embed = [":g3_canary_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/infra/bots/task_drivers/perf_puppeteer_canvas/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/perf_puppeteer_canvas/BUILD.bazel new file mode 100644 index 000000000000..8bca427d929b --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/perf_puppeteer_canvas/BUILD.bazel @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test") + +licenses(["notice"]) + +go_library( + name = "perf_puppeteer_canvas_lib", + srcs = ["perf_puppeteer_canvas.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/perf_puppeteer_canvas", + visibility = ["//visibility:private"], + deps = [ + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/skerr", + "@org_skia_go_infra//task_driver/go/lib/os_steps", + "@org_skia_go_infra//task_driver/go/td", + ], +) + +go_binary( + name = "perf_puppeteer_canvas", + embed = [":perf_puppeteer_canvas_lib"], + visibility = ["//visibility:public"], +) + +go_test( + name = "perf_puppeteer_canvas_test", + srcs = ["perf_puppeteer_canvas_test.go"], + embed = [":perf_puppeteer_canvas_lib"], + deps = [ + "@com_github_stretchr_testify//assert", + "@com_github_stretchr_testify//require", + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/testutils", + "@org_skia_go_infra//task_driver/go/td", + ], +) diff --git a/third_party/skia/infra/bots/task_drivers/perf_puppeteer_render_skps/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/perf_puppeteer_render_skps/BUILD.bazel new file mode 100644 index 000000000000..2fdbc86500e0 --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/perf_puppeteer_render_skps/BUILD.bazel @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test") + +licenses(["notice"]) + +go_library( + name = "perf_puppeteer_render_skps_lib", + srcs = ["perf_puppeteer_render_skps.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/perf_puppeteer_render_skps", + visibility = ["//visibility:private"], + deps = [ + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/skerr", + "@org_skia_go_infra//go/sklog", + "@org_skia_go_infra//go/util", + "@org_skia_go_infra//task_driver/go/lib/os_steps", + "@org_skia_go_infra//task_driver/go/td", + ], +) + +go_binary( + name = "perf_puppeteer_render_skps", + embed = [":perf_puppeteer_render_skps_lib"], + visibility = ["//visibility:public"], +) + +go_test( + name = "perf_puppeteer_render_skps_test", + srcs = ["perf_puppeteer_render_skps_test.go"], + embed = [":perf_puppeteer_render_skps_lib"], + deps = [ + "@com_github_stretchr_testify//assert", + "@com_github_stretchr_testify//require", + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/testutils", + "@org_skia_go_infra//task_driver/go/td", + ], +) diff --git a/third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/BUILD.bazel new file mode 100644 index 000000000000..22bbf7081650 --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/BUILD.bazel @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test") + +licenses(["notice"]) + +go_library( + name = "perf_puppeteer_skottie_frames_lib", + srcs = ["perf_puppeteer_skottie_frames.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames", + visibility = ["//visibility:private"], + deps = [ + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/skerr", + "@org_skia_go_infra//go/sklog", + "@org_skia_go_infra//go/util", + "@org_skia_go_infra//task_driver/go/lib/os_steps", + "@org_skia_go_infra//task_driver/go/td", + ], +) + +go_binary( + name = "perf_puppeteer_skottie_frames", + embed = [":perf_puppeteer_skottie_frames_lib"], + visibility = ["//visibility:public"], +) + +go_test( + name = "perf_puppeteer_skottie_frames_test", + srcs = ["perf_puppeteer_skottie_frames_test.go"], + embed = [":perf_puppeteer_skottie_frames_lib"], + deps = [ + "@com_github_stretchr_testify//assert", + "@com_github_stretchr_testify//require", + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/testutils", + "@org_skia_go_infra//task_driver/go/td", + ], +) diff --git a/third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/make_lotties_with_assets/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/make_lotties_with_assets/BUILD.bazel new file mode 100644 index 000000000000..6762cccdee4b --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/make_lotties_with_assets/BUILD.bazel @@ -0,0 +1,16 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "make_lotties_with_assets_lib", + srcs = ["make_lotties_with_assets.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/perf_puppeteer_skottie_frames/make_lotties_with_assets", + visibility = ["//visibility:private"], +) + +go_binary( + name = "make_lotties_with_assets", + embed = [":make_lotties_with_assets_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/infra/bots/task_drivers/push_apps_from_skia_image/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/push_apps_from_skia_image/BUILD.bazel new file mode 100644 index 000000000000..a42dff5d790b --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/push_apps_from_skia_image/BUILD.bazel @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "push_apps_from_skia_image_lib", + srcs = ["push_apps_from_skia_image.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/push_apps_from_skia_image", + visibility = ["//visibility:private"], + deps = [ + "@com_google_cloud_go_pubsub//:pubsub", + "@org_golang_google_api//option", + "@org_skia_go_infra//go/auth", + "@org_skia_go_infra//go/common", + "@org_skia_go_infra//go/docker/build/pubsub", + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//task_driver/go/lib/auth_steps", + "@org_skia_go_infra//task_driver/go/lib/bazel", + "@org_skia_go_infra//task_driver/go/lib/checkout", + "@org_skia_go_infra//task_driver/go/lib/docker", + "@org_skia_go_infra//task_driver/go/lib/golang", + "@org_skia_go_infra//task_driver/go/lib/os_steps", + "@org_skia_go_infra//task_driver/go/td", + "@org_skia_go_infra//task_scheduler/go/types", + ], +) + +go_binary( + name = "push_apps_from_skia_image", + embed = [":push_apps_from_skia_image_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/infra/bots/task_drivers/push_apps_from_skia_image/push_apps_from_skia_image.go b/third_party/skia/infra/bots/task_drivers/push_apps_from_skia_image/push_apps_from_skia_image.go index 9086eddd0dc1..23aa7ce52fc1 100644 --- a/third_party/skia/infra/bots/task_drivers/push_apps_from_skia_image/push_apps_from_skia_image.go +++ b/third_party/skia/infra/bots/task_drivers/push_apps_from_skia_image/push_apps_from_skia_image.go @@ -125,6 +125,10 @@ func buildPushApiImage(ctx context.Context, dkr *docker.Docker, tag, checkoutDir } doxygenCmd := []string{"/bin/sh", "-c", "cd /CHECKOUT/tools/doxygen && doxygen ProdDoxyfile"} doxygenImg := "gcr.io/skia-public/doxygen:testing-slim" + // Make sure we have the latest doxygen image. + if err := dkr.Pull(ctx, doxygenImg); err != nil { + return err + } if err := dkr.Run(ctx, doxygenImg, doxygenCmd, volumes, env); err != nil { return err } diff --git a/third_party/skia/infra/bots/task_drivers/push_bazel_apps_from_wasm_image/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/push_bazel_apps_from_wasm_image/BUILD.bazel new file mode 100644 index 000000000000..984b25072bc4 --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/push_bazel_apps_from_wasm_image/BUILD.bazel @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "push_bazel_apps_from_wasm_image_lib", + srcs = ["push_bazel_apps_from_wasm_image.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/push_bazel_apps_from_wasm_image", + visibility = ["//visibility:private"], + deps = [ + "@com_google_cloud_go_pubsub//:pubsub", + "@org_golang_google_api//option", + "@org_skia_go_infra//go/auth", + "@org_skia_go_infra//go/common", + "@org_skia_go_infra//go/docker/build/pubsub", + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//task_driver/go/lib/auth_steps", + "@org_skia_go_infra//task_driver/go/lib/bazel", + "@org_skia_go_infra//task_driver/go/lib/checkout", + "@org_skia_go_infra//task_driver/go/lib/docker", + "@org_skia_go_infra//task_driver/go/lib/golang", + "@org_skia_go_infra//task_driver/go/lib/os_steps", + "@org_skia_go_infra//task_driver/go/td", + "@org_skia_go_infra//task_scheduler/go/types", + ], +) + +go_binary( + name = "push_bazel_apps_from_wasm_image", + embed = [":push_bazel_apps_from_wasm_image_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/infra/bots/task_drivers/push_bazel_apps_from_wasm_image/push_bazel_apps_from_wasm_image.go b/third_party/skia/infra/bots/task_drivers/push_bazel_apps_from_wasm_image/push_bazel_apps_from_wasm_image.go index 7739f55d0153..aee9b96c5dd7 100644 --- a/third_party/skia/infra/bots/task_drivers/push_bazel_apps_from_wasm_image/push_bazel_apps_from_wasm_image.go +++ b/third_party/skia/infra/bots/task_drivers/push_bazel_apps_from_wasm_image/push_bazel_apps_from_wasm_image.go @@ -112,6 +112,8 @@ func main() { } opts := bazel.BazelOptions{ + // 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: "/mnt/pd0/bazel_cache", } if err := bazel.EnsureBazelRCFile(ctx, opts); err != nil { diff --git a/third_party/skia/infra/bots/task_drivers/recreate_skps/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/recreate_skps/BUILD.bazel new file mode 100644 index 000000000000..443189f610ea --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/recreate_skps/BUILD.bazel @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "recreate_skps_lib", + srcs = ["recreate_skps.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/recreate_skps", + visibility = ["//visibility:private"], + deps = [ + "@org_skia_go_infra//go/depot_tools", + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/gerrit", + "@org_skia_go_infra//go/git/git_common", + "@org_skia_go_infra//go/sklog", + "@org_skia_go_infra//promk/go/pushgateway", + "@org_skia_go_infra//task_driver/go/lib/auth_steps", + "@org_skia_go_infra//task_driver/go/lib/checkout", + "@org_skia_go_infra//task_driver/go/lib/gerrit_steps", + "@org_skia_go_infra//task_driver/go/lib/os_steps", + "@org_skia_go_infra//task_driver/go/td", + "@org_skia_go_infra//task_scheduler/go/types", + ], +) + +go_binary( + name = "recreate_skps", + embed = [":recreate_skps_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/infra/bots/task_drivers/run_gn_to_bp/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/run_gn_to_bp/BUILD.bazel new file mode 100644 index 000000000000..9a2607e540ec --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/run_gn_to_bp/BUILD.bazel @@ -0,0 +1,21 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "run_gn_to_bp_lib", + srcs = ["run_gn_to_bp.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/run_gn_to_bp", + visibility = ["//visibility:private"], + deps = [ + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/skerr", + "@org_skia_go_infra//task_driver/go/td", + ], +) + +go_binary( + name = "run_gn_to_bp", + embed = [":run_gn_to_bp_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/infra/bots/task_drivers/run_wasm_gm_tests/BUILD.bazel b/third_party/skia/infra/bots/task_drivers/run_wasm_gm_tests/BUILD.bazel new file mode 100644 index 000000000000..ebbc04ed340c --- /dev/null +++ b/third_party/skia/infra/bots/task_drivers/run_wasm_gm_tests/BUILD.bazel @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "run_wasm_gm_tests_lib", + srcs = ["run_wasm_gm_tests.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/run_wasm_gm_tests", + visibility = ["//visibility:private"], + deps = [ + "@org_skia_go_infra//go/common", + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/httputils", + "@org_skia_go_infra//go/skerr", + "@org_skia_go_infra//task_driver/go/lib/os_steps", + "@org_skia_go_infra//task_driver/go/td", + ], +) + +go_binary( + name = "run_wasm_gm_tests", + embed = [":run_wasm_gm_tests_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/infra/bots/tasks.json b/third_party/skia/infra/bots/tasks.json index 76c18a5fb60c..90dff3c53b6b 100755 --- a/third_party/skia/infra/bots/tasks.json +++ b/third_party/skia/infra/bots/tasks.json @@ -1,5 +1,10 @@ { "jobs": { + "Build-Debian10-BazelClang-x86_64-Release-IWYU": { + "tasks": [ + "Build-Debian10-BazelClang-x86_64-Release-IWYU" + ] + }, "Build-Debian10-Clang-arm-Debug-Android": { "tasks": [ "Build-Debian10-Clang-arm-Debug-Android" @@ -190,6 +195,11 @@ "Build-Debian10-Clang-x86_64-Release-ASAN" ] }, + "Build-Debian10-Clang-x86_64-Release-ASAN_Vulkan": { + "tasks": [ + "Build-Debian10-Clang-x86_64-Release-ASAN_Vulkan" + ] + }, "Build-Debian10-Clang-x86_64-Release-CMake": { "tasks": [ "Build-Debian10-Clang-x86_64-Release-CMake" @@ -345,6 +355,26 @@ "Build-Debian10-GCC-x86_64-Release-Shared_Docker" ] }, + "Build-Debian11-Clang-x86_64-Debug": { + "tasks": [ + "Build-Debian11-Clang-x86_64-Debug" + ] + }, + "Build-Debian11-Clang-x86_64-Debug-ASAN": { + "tasks": [ + "Build-Debian11-Clang-x86_64-Debug-ASAN" + ] + }, + "Build-Debian11-Clang-x86_64-Release": { + "tasks": [ + "Build-Debian11-Clang-x86_64-Release" + ] + }, + "Build-Debian11-Clang-x86_64-Release-ASAN": { + "tasks": [ + "Build-Debian11-Clang-x86_64-Release-ASAN" + ] + }, "Build-Debian9-Clang-arm-Release-Flutter_Android_Docker": { "tasks": [ "Build-Debian9-Clang-arm-Release-Flutter_Android_Docker" @@ -457,6 +487,11 @@ ], "trigger": "main" }, + "Build-Mac-Clang-x86_64-Debug-Graphite": { + "tasks": [ + "Build-Mac-Clang-x86_64-Debug-Graphite" + ] + }, "Build-Mac-Clang-x86_64-Debug-Metal": { "tasks": [ "Build-Mac-Clang-x86_64-Debug-Metal" @@ -473,6 +508,11 @@ ], "trigger": "main" }, + "Build-Mac-Clang-x86_64-Release-Graphite": { + "tasks": [ + "Build-Mac-Clang-x86_64-Release-Graphite" + ] + }, "Build-Mac-Clang-x86_64-Release-Metal": { "tasks": [ "Build-Mac-Clang-x86_64-Release-Metal" @@ -829,12 +869,6 @@ ], "trigger": "nightly" }, - "Housekeeper-Nightly-UpdateGoDeps": { - "tasks": [ - "Housekeeper-Nightly-UpdateGoDeps" - ], - "trigger": "nightly" - }, "Housekeeper-OnDemand-Presubmit": { "priority": 1, "tasks": [ @@ -867,6 +901,11 @@ "Housekeeper-PerCommit-BundleRecipes" ] }, + "Housekeeper-PerCommit-CheckGeneratedBazelFiles": { + "tasks": [ + "Housekeeper-PerCommit-CheckGeneratedBazelFiles" + ] + }, "Housekeeper-PerCommit-CheckGeneratedFiles": { "tasks": [ "Housekeeper-PerCommit-CheckGeneratedFiles" @@ -952,11 +991,6 @@ "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench" ] }, - "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Mskp_Skpbench": { - "tasks": [ - "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Mskp_Skpbench" - ] - }, "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Skpbench": { "tasks": [ "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Skpbench" @@ -1017,21 +1051,6 @@ "Upload-Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan" ] }, - "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Mskp_Skpbench": { - "tasks": [ - "Upload-Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Mskp_Skpbench" - ] - }, - "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Skpbench": { - "tasks": [ - "Upload-Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Skpbench" - ] - }, - "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Vulkan_Skpbench": { - "tasks": [ - "Upload-Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Vulkan_Skpbench" - ] - }, "Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android": { "tasks": [ "Upload-Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android" @@ -1147,16 +1166,6 @@ "Upload-Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All" ] }, - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN": { - "tasks": [ - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN" - ] - }, - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs": { - "tasks": [ - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs" - ] - }, "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All": { "tasks": [ "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All" @@ -1207,14 +1216,14 @@ "Upload-Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan" ] }, - "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_Vulkan": { + "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All": { "tasks": [ - "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_Vulkan" + "Upload-Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All" ] }, - "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All": { + "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-ASAN_Vulkan": { "tasks": [ - "Upload-Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All" + "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-ASAN_Vulkan" ] }, "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing": { @@ -1267,6 +1276,16 @@ "Upload-Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb" ] }, + "Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All": { + "tasks": [ + "Upload-Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All" + ] + }, + "Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-ASAN": { + "tasks": [ + "Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-ASAN" + ] + }, "Perf-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All": { "tasks": [ "Upload-Perf-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All" @@ -1321,6 +1340,11 @@ "Upload-Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal" ] }, + "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Graphite": { + "tasks": [ + "Upload-Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Graphite" + ] + }, "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal": { "tasks": [ "Upload-Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal" @@ -1336,6 +1360,11 @@ "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench" ] }, + "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite": { + "tasks": [ + "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite" + ] + }, "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal_AllPathsVolatile_Skpbench": { "tasks": [ "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal_AllPathsVolatile_Skpbench" @@ -1507,6 +1536,16 @@ "Upload-Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan" ] }, + "Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All": { + "tasks": [ + "Upload-Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All" + ] + }, + "Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan": { + "tasks": [ + "Upload-Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan" + ] + }, "Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All": { "tasks": [ "Upload-Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All" @@ -1572,16 +1611,6 @@ "Upload-Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan" ] }, - "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN": { - "tasks": [ - "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN" - ] - }, - "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs": { - "tasks": [ - "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs" - ] - }, "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All": { "tasks": [ "Upload-Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All" @@ -1967,11 +1996,21 @@ "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All" ] }, + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN": { + "tasks": [ + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN" + ] + }, "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs": { "tasks": [ "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs" ] }, + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs_ASAN": { + "tasks": [ + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs_ASAN" + ] + }, "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-NativeFonts": { "tasks": [ "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-NativeFonts" @@ -2162,6 +2201,11 @@ "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-TSAN" ] }, + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-TSAN_Vulkan": { + "tasks": [ + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-TSAN_Vulkan" + ] + }, "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan": { "tasks": [ "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan" @@ -2227,6 +2271,31 @@ "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker" ] }, + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All": { + "tasks": [ + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All" + ] + }, + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-ASAN": { + "tasks": [ + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-ASAN" + ] + }, + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_ASAN": { + "tasks": [ + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_ASAN" + ] + }, + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-OOPRDDL_ASAN": { + "tasks": [ + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-OOPRDDL_ASAN" + ] + }, + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All": { + "tasks": [ + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All" + ] + }, "Test-Mac10.12-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts": { "tasks": [ "Test-Mac10.12-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts" @@ -2396,6 +2465,11 @@ "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal" ] }, + "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Graphite": { + "tasks": [ + "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Graphite" + ] + }, "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Metal": { "tasks": [ "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Metal" @@ -2456,24 +2530,29 @@ "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal" ] }, - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Debug-All": { + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All": { + "tasks": [ + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All" + ] + }, + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite": { "tasks": [ - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Debug-All" + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite" ] }, - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal": { + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal": { "tasks": [ - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal" + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal" ] }, - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Release-All": { + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All": { "tasks": [ - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Release-All" + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All" ] }, - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Release-All-Metal": { + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal": { "tasks": [ - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Release-All-Metal" + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal" ] }, "Test-Mac12-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts_ASAN": { @@ -2481,11 +2560,21 @@ "Test-Mac12-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts_ASAN" ] }, + "Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal": { + "tasks": [ + "Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal" + ] + }, "Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts": { "tasks": [ "Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts" ] }, + "Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal": { + "tasks": [ + "Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal" + ] + }, "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1": { "tasks": [ "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1" @@ -2629,11 +2718,6 @@ "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan_ProcDump": { - "tasks": [ - "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan_ProcDump" - ] - }, "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { "tasks": [ "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All" @@ -2659,11 +2743,6 @@ "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump": { - "tasks": [ - "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump" - ] - }, "Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts": { "tasks": [ "Upload-Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts" @@ -2764,6 +2843,26 @@ "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan" ] }, + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All": { + "tasks": [ + "Upload-Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All" + ] + }, + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-Vulkan": { + "tasks": [ + "Upload-Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-Vulkan" + ] + }, + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All": { + "tasks": [ + "Upload-Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All" + ] + }, + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan": { + "tasks": [ + "Upload-Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan" + ] + }, "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All": { "tasks": [ "Upload-Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All" @@ -2924,6 +3023,16 @@ "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All" ] }, + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN": { + "tasks": [ + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN" + ] + }, + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs": { + "tasks": [ + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs" + ] + }, "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM": { "tasks": [ "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM" @@ -2969,36 +3078,6 @@ "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM" ] }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86-Debug-All": { - "tasks": [ - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86-Debug-All" - ] - }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86-Release-All": { - "tasks": [ - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86-Release-All" - ] - }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All": { - "tasks": [ - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All" - ] - }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts": { - "tasks": [ - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts" - ] - }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts_GDI": { - "tasks": [ - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts_GDI" - ] - }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Release-All": { - "tasks": [ - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Release-All" - ] - }, "Test-Win8-Clang-Golo-CPU-AVX512-x86-Debug-All": { "tasks": [ "Upload-Test-Win8-Clang-Golo-CPU-AVX512-x86-Debug-All" @@ -3101,103 +3180,44 @@ } }, "tasks": { - "Build-Debian10-Clang-arm-Debug-Android": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], + "Build-Debian10-BazelClang-x86_64-Release-IWYU": { "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/android_ndk_linux", - "path": "android_ndk_linux", - "version": "version:16" + "name": "skia/bots/bazelisk", + "path": "bazelisk", + "version": "version:0" } ], "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-arm-Debug-Android\",\"swarm_out_dir\":\"build\"}", - "skia" + "./bazel_check_includes", + "--project_id", + "skia-swarming-bots", + "--task_id", + "<(TASK_ID)", + "--task_name", + "Build-Debian10-BazelClang-x86_64-Release-IWYU" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes" + "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-highcpu-64", + "machine_type:n1-standard-16", "os:Debian-10.3", "pool:Skia" ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, "env_prefixes": { "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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" + "bazelisk" ] }, - "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" - ], + "max_attempts": 1, "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm-Debug-Android_Vulkan": { + "Build-Debian10-Clang-arm-Debug-Android": { "caches": [ { "name": "vpython", @@ -3209,7 +3229,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -3219,22 +3239,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -3248,7 +3268,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Debug-Android_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Debug-Android\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -3293,7 +3313,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm-Debug-Chromebook_GLES": { + "Build-Debian10-Clang-arm-Debug-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -3305,7 +3325,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -3315,37 +3335,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/armhf_sysroot", - "path": "armhf_sysroot", - "version": "version:10" - }, - { - "name": "skia/bots/chromebook_arm_gles", - "path": "chromebook_arm_gles", - "version": "version:0" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" + "name": "skia/bots/android_ndk_linux", + "path": "android_ndk_linux", + "version": "version:16" } ], "command": [ @@ -3354,7 +3364,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Debug-Chromebook_GLES\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Debug-Android_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -3399,7 +3409,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm-Release-Android": { + "Build-Debian10-Clang-arm-Debug-Chromebook_GLES": { "caches": [ { "name": "vpython", @@ -3411,7 +3421,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -3421,123 +3431,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/android_ndk_linux", - "path": "android_ndk_linux", - "version": "version:16" - } - ], - "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-arm-Release-Android\",\"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/cpython", - "cipd_bin_packages/cpython/bin", - "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-arm-Release-Android_API26": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "compile", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/linux-amd64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "name": "skia/bots/armhf_sysroot", + "path": "armhf_sysroot", + "version": "version:10" }, { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "name": "skia/bots/chromebook_arm_gles", + "path": "chromebook_arm_gles", + "version": "version:0" }, { - "name": "skia/bots/android_ndk_linux", - "path": "android_ndk_linux", - "version": "version:16" + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" } ], "command": [ @@ -3546,7 +3470,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Release-Android_API26\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Debug-Chromebook_GLES\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -3591,7 +3515,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm-Release-Android_Vulkan": { + "Build-Debian10-Clang-arm-Release-Android": { "caches": [ { "name": "vpython", @@ -3603,7 +3527,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -3613,22 +3537,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -3642,7 +3566,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Release-Android_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Release-Android\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -3687,7 +3611,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm-Release-Chromebook_GLES": { + "Build-Debian10-Clang-arm-Release-Android_API26": { "caches": [ { "name": "vpython", @@ -3699,7 +3623,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -3709,37 +3633,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/armhf_sysroot", - "path": "armhf_sysroot", - "version": "version:10" - }, - { - "name": "skia/bots/chromebook_arm_gles", - "path": "chromebook_arm_gles", - "version": "version:0" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" + "name": "skia/bots/android_ndk_linux", + "path": "android_ndk_linux", + "version": "version:16" } ], "command": [ @@ -3748,7 +3662,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Release-Chromebook_GLES\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Release-Android_API26\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -3793,7 +3707,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm64-Debug-Android": { + "Build-Debian10-Clang-arm-Release-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -3805,7 +3719,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -3815,22 +3729,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -3844,7 +3758,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Debug-Android\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Release-Android_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -3889,7 +3803,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm64-Debug-Android_API30": { + "Build-Debian10-Clang-arm-Release-Chromebook_GLES": { "caches": [ { "name": "vpython", @@ -3901,7 +3815,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -3911,27 +3825,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/android_ndk_linux", - "path": "android_ndk_linux", - "version": "version:16" + "name": "skia/bots/armhf_sysroot", + "path": "armhf_sysroot", + "version": "version:10" + }, + { + "name": "skia/bots/chromebook_arm_gles", + "path": "chromebook_arm_gles", + "version": "version:0" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" } ], "command": [ @@ -3940,7 +3864,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Debug-Android_API30\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm-Release-Chromebook_GLES\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -3985,7 +3909,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm64-Debug-Android_HWASAN": { + "Build-Debian10-Clang-arm64-Debug-Android": { "caches": [ { "name": "vpython", @@ -3997,7 +3921,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -4007,22 +3931,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -4036,7 +3960,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Debug-Android_HWASAN\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Debug-Android\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -4081,7 +4005,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan": { + "Build-Debian10-Clang-arm64-Debug-Android_API30": { "caches": [ { "name": "vpython", @@ -4093,7 +4017,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -4103,22 +4027,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -4132,7 +4056,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Debug-Android_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Debug-Android_API30\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -4177,7 +4101,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm64-Release-Android": { + "Build-Debian10-Clang-arm64-Debug-Android_HWASAN": { "caches": [ { "name": "vpython", @@ -4189,7 +4113,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -4199,22 +4123,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -4228,7 +4152,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Release-Android\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Debug-Android_HWASAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -4273,7 +4197,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm64-Release-Android_API30": { + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -4285,7 +4209,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -4295,22 +4219,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -4324,7 +4248,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Release-Android_API30\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Debug-Android_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -4369,7 +4293,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm64-Release-Android_Vulkan": { + "Build-Debian10-Clang-arm64-Release-Android": { "caches": [ { "name": "vpython", @@ -4381,7 +4305,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -4391,22 +4315,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -4420,7 +4344,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Release-Android_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Release-Android\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -4465,7 +4389,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-arm64-Release-Android_Wuffs": { + "Build-Debian10-Clang-arm64-Release-Android_API30": { "caches": [ { "name": "vpython", @@ -4477,7 +4401,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -4487,22 +4411,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -4516,7 +4440,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Release-Android_Wuffs\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Release-Android_API30\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -4561,7 +4485,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x64-Debug-Android": { + "Build-Debian10-Clang-arm64-Release-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -4573,7 +4497,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -4583,22 +4507,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -4612,7 +4536,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x64-Debug-Android\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Release-Android_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -4657,7 +4581,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x64-Release-Android": { + "Build-Debian10-Clang-arm64-Release-Android_Wuffs": { "caches": [ { "name": "vpython", @@ -4669,7 +4593,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -4679,22 +4603,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -4708,7 +4632,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x64-Release-Android\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-arm64-Release-Android_Wuffs\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -4753,12 +4677,8 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86-Debug": { + "Build-Debian10-Clang-x64-Debug-Android": { "caches": [ - { - "name": "ccache", - "path": "cache/ccache" - }, { "name": "vpython", "path": "cache/vpython" @@ -4769,7 +4689,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -4779,32 +4699,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/ccache_linux", - "path": "ccache_linux", - "version": "version:1" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" + "name": "skia/bots/android_ndk_linux", + "path": "android_ndk_linux", + "version": "version:16" } ], "command": [ @@ -4813,7 +4728,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86-Debug\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x64-Debug-Android\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -4858,7 +4773,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86-Debug-Android": { + "Build-Debian10-Clang-x64-Release-Android": { "caches": [ { "name": "vpython", @@ -4870,7 +4785,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -4880,22 +4795,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -4909,7 +4824,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86-Debug-Android\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x64-Release-Android\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -4954,8 +4869,12 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86-Debug-Android_Vulkan": { + "Build-Debian10-Clang-x86-Debug": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" @@ -4966,7 +4885,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -4976,27 +4895,32 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/android_ndk_linux", - "path": "android_ndk_linux", - "version": "version:16" + "name": "skia/bots/ccache_linux", + "path": "ccache_linux", + "version": "version:1" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" } ], "command": [ @@ -5005,7 +4929,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86-Debug-Android_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -5050,7 +4974,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86-Release-Android": { + "Build-Debian10-Clang-x86-Debug-Android": { "caches": [ { "name": "vpython", @@ -5062,7 +4986,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -5072,22 +4996,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -5101,7 +5025,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86-Release-Android\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86-Debug-Android\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -5146,7 +5070,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86-Release-Android_Vulkan": { + "Build-Debian10-Clang-x86-Debug-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -5158,7 +5082,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -5168,22 +5092,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/android_ndk_linux", @@ -5197,7 +5121,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86-Release-Android_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86-Debug-Android_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -5242,12 +5166,8 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug": { + "Build-Debian10-Clang-x86-Release-Android": { "caches": [ - { - "name": "ccache", - "path": "cache/ccache" - }, { "name": "vpython", "path": "cache/vpython" @@ -5258,7 +5178,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -5268,32 +5188,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/ccache_linux", - "path": "ccache_linux", - "version": "version:1" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" + "name": "skia/bots/android_ndk_linux", + "path": "android_ndk_linux", + "version": "version:16" } ], "command": [ @@ -5302,7 +5217,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86-Release-Android\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -5347,12 +5262,8 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-ASAN": { + "Build-Debian10-Clang-x86-Release-Android_Vulkan": { "caches": [ - { - "name": "ccache", - "path": "cache/ccache" - }, { "name": "vpython", "path": "cache/vpython" @@ -5363,7 +5274,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -5373,22 +5284,122 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/android_ndk_linux", + "path": "android_ndk_linux", + "version": "version:16" + } + ], + "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-Release-Android_Vulkan\",\"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/cpython", + "cipd_bin_packages/cpython/bin", + "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": { + "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "compile", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -5407,7 +5418,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-ASAN\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -5452,7 +5463,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-ASAN_Vulkan": { + "Build-Debian10-Clang-x86_64-Debug-ASAN": { "caches": [ { "name": "ccache", @@ -5468,7 +5479,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -5478,22 +5489,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -5512,7 +5523,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-ASAN_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-ASAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -5557,8 +5568,12 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-Chromebook_GLES": { + "Build-Debian10-Clang-x86_64-Debug-ASAN_Vulkan": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" @@ -5569,7 +5584,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -5579,27 +5594,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/chromebook_x86_64_gles", - "path": "chromebook_x86_64_gles", - "version": "version:2" + "name": "skia/bots/ccache_linux", + "path": "ccache_linux", + "version": "version:1" }, { "name": "skia/bots/clang_linux", @@ -5613,7 +5628,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Chromebook_GLES\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-ASAN_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -5658,12 +5673,8 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-Dawn": { + "Build-Debian10-Clang-x86_64-Debug-Chromebook_GLES": { "caches": [ - { - "name": "ccache", - "path": "cache/ccache" - }, { "name": "vpython", "path": "cache/vpython" @@ -5674,7 +5685,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -5684,27 +5695,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ccache_linux", - "path": "ccache_linux", - "version": "version:1" + "name": "skia/bots/chromebook_x86_64_gles", + "path": "chromebook_x86_64_gles", + "version": "version:2" }, { "name": "skia/bots/clang_linux", @@ -5718,7 +5729,7 @@ "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\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Chromebook_GLES\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -5763,12 +5774,20 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE": { + "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" @@ -5779,32 +5798,47 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -5823,7 +5857,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Dawn\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -5868,7 +5902,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-SafeStack": { + "Build-Debian10-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE": { "caches": [ { "name": "ccache", @@ -5884,7 +5918,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -5894,22 +5928,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -5928,7 +5962,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-SafeStack\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -5973,7 +6007,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-Static": { + "Build-Debian10-Clang-x86_64-Debug-SafeStack": { "caches": [ { "name": "ccache", @@ -5989,7 +6023,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -5999,22 +6033,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -6033,7 +6067,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Static\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-SafeStack\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -6078,7 +6112,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-SwiftShader": { + "Build-Debian10-Clang-x86_64-Debug-Static": { "caches": [ { "name": "ccache", @@ -6094,7 +6128,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -6104,22 +6138,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -6130,11 +6164,6 @@ "name": "skia/bots/clang_linux", "path": "clang_linux", "version": "version:20" - }, - { - "name": "skia/bots/cmake_linux", - "path": "cmake_linux", - "version": "version:1" } ], "command": [ @@ -6143,7 +6172,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-SwiftShader\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Static\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -6188,7 +6217,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-SwiftShader_MSAN": { + "Build-Debian10-Clang-x86_64-Debug-SwiftShader": { "caches": [ { "name": "ccache", @@ -6204,7 +6233,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -6214,22 +6243,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -6253,7 +6282,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-SwiftShader_MSAN\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-SwiftShader\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -6298,7 +6327,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-Tidy": { + "Build-Debian10-Clang-x86_64-Debug-SwiftShader_MSAN": { "caches": [ { "name": "ccache", @@ -6314,7 +6343,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -6324,22 +6353,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -6350,6 +6379,11 @@ "name": "skia/bots/clang_linux", "path": "clang_linux", "version": "version:20" + }, + { + "name": "skia/bots/cmake_linux", + "path": "cmake_linux", + "version": "version:1" } ], "command": [ @@ -6358,7 +6392,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Tidy\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-SwiftShader_MSAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -6403,7 +6437,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-Vulkan": { + "Build-Debian10-Clang-x86_64-Debug-Tidy": { "caches": [ { "name": "ccache", @@ -6419,7 +6453,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -6429,22 +6463,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -6463,7 +6497,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Tidy\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -6508,7 +6542,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-Wuffs": { + "Build-Debian10-Clang-x86_64-Debug-Vulkan": { "caches": [ { "name": "ccache", @@ -6524,7 +6558,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -6534,22 +6568,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -6568,7 +6602,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Wuffs\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -6613,7 +6647,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release": { + "Build-Debian10-Clang-x86_64-Debug-Wuffs": { "caches": [ { "name": "ccache", @@ -6629,7 +6663,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -6639,22 +6673,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -6673,7 +6707,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Wuffs\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -6718,7 +6752,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-ANGLE": { + "Build-Debian10-Clang-x86_64-Release": { "caches": [ { "name": "ccache", @@ -6734,7 +6768,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -6744,22 +6778,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -6778,7 +6812,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-ANGLE\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -6823,7 +6857,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-ASAN": { + "Build-Debian10-Clang-x86_64-Release-ANGLE": { "caches": [ { "name": "ccache", @@ -6839,7 +6873,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -6849,22 +6883,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -6883,7 +6917,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-ASAN\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-ANGLE\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -6928,79 +6962,48 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-CMake": { + "Build-Debian10-Clang-x86_64-Release-ASAN": { "caches": [ { "name": "ccache", "path": "cache/ccache" }, - { - "name": "docker", - "path": "cache/docker" - }, - { - "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", + "casSpec": "compile", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "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.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -7018,8 +7021,8 @@ "-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-Release-CMake\",\"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)\"}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-ASAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -7028,10 +7031,9 @@ "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-standard-16", + "machine_type:n1-highcpu-64", "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -7057,6 +7059,7 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, + "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ @@ -7064,8 +7067,12 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-Chromebook_GLES": { + "Build-Debian10-Clang-x86_64-Release-ASAN_Vulkan": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" @@ -7076,7 +7083,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -7086,27 +7093,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/chromebook_x86_64_gles", - "path": "chromebook_x86_64_gles", - "version": "version:2" + "name": "skia/bots/ccache_linux", + "path": "ccache_linux", + "version": "version:1" }, { "name": "skia/bots/clang_linux", @@ -7120,7 +7127,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-Chromebook_GLES\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-ASAN_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -7165,48 +7172,79 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-Fast": { + "Build-Debian10-Clang-x86_64-Release-CMake": { "caches": [ { "name": "ccache", "path": "cache/ccache" }, + { + "name": "docker", + "path": "cache/docker" + }, + { + "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/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -7219,13 +7257,114 @@ "version": "version:20" } ], + "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-Release-CMake\",\"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-standard-16", + "os:Debian-10.3", + "pool:Skia", + "docker_installed:true" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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": [ + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, + "Build-Debian10-Clang-x86_64-Release-Chromebook_GLES": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "compile", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/chromebook_x86_64_gles", + "path": "chromebook_x86_64_gles", + "version": "version:2" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" + } + ], "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-Release-Fast\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-Chromebook_GLES\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -7270,7 +7409,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-MSAN": { + "Build-Debian10-Clang-x86_64-Release-Fast": { "caches": [ { "name": "ccache", @@ -7286,7 +7425,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -7296,22 +7435,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -7330,7 +7469,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-MSAN\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-Fast\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -7375,71 +7514,48 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-NoDEPS": { + "Build-Debian10-Clang-x86_64-Release-MSAN": { "caches": [ { "name": "ccache", "path": "cache/ccache" }, - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "run-recipe", + "casSpec": "compile", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "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.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -7457,8 +7573,8 @@ "-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-Release-NoDEPS\",\"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)\"}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-MSAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -7495,6 +7611,7 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, + "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ @@ -7502,48 +7619,71 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-SKNX_NO_SIMD": { + "Build-Debian10-Clang-x86_64-Release-NoDEPS": { "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", + "casSpec": "run-recipe", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -7561,8 +7701,8 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-SKNX_NO_SIMD\",\"swarm_out_dir\":\"build\"}", + "sync_and_compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Build-Debian10-Clang-x86_64-Release-NoDEPS\",\"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": [ @@ -7599,7 +7739,6 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ @@ -7607,7 +7746,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE2": { + "Build-Debian10-Clang-x86_64-Release-SKNX_NO_SIMD": { "caches": [ { "name": "ccache", @@ -7623,7 +7762,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -7633,22 +7772,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -7667,7 +7806,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE2\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-SKNX_NO_SIMD\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -7712,7 +7851,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE41": { + "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE2": { "caches": [ { "name": "ccache", @@ -7728,7 +7867,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -7738,22 +7877,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -7772,7 +7911,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE41\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE2\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -7817,7 +7956,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-SK_FORCE_RASTER_PIPELINE_BLITTER": { + "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE41": { "caches": [ { "name": "ccache", @@ -7833,7 +7972,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -7843,22 +7982,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -7877,7 +8016,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-SK_FORCE_RASTER_PIPELINE_BLITTER\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE41\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -7922,7 +8061,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-Static": { + "Build-Debian10-Clang-x86_64-Release-SK_FORCE_RASTER_PIPELINE_BLITTER": { "caches": [ { "name": "ccache", @@ -7938,7 +8077,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -7948,22 +8087,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -7982,7 +8121,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-Static\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-SK_FORCE_RASTER_PIPELINE_BLITTER\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -8027,7 +8166,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-SwiftShader": { + "Build-Debian10-Clang-x86_64-Release-Static": { "caches": [ { "name": "ccache", @@ -8043,7 +8182,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -8053,22 +8192,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -8079,11 +8218,6 @@ "name": "skia/bots/clang_linux", "path": "clang_linux", "version": "version:20" - }, - { - "name": "skia/bots/cmake_linux", - "path": "cmake_linux", - "version": "version:1" } ], "command": [ @@ -8092,7 +8226,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-SwiftShader\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-Static\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -8137,7 +8271,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-TSAN": { + "Build-Debian10-Clang-x86_64-Release-SwiftShader": { "caches": [ { "name": "ccache", @@ -8153,7 +8287,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -8163,22 +8297,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -8189,6 +8323,11 @@ "name": "skia/bots/clang_linux", "path": "clang_linux", "version": "version:20" + }, + { + "name": "skia/bots/cmake_linux", + "path": "cmake_linux", + "version": "version:1" } ], "command": [ @@ -8197,7 +8336,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-TSAN\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-SwiftShader\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -8242,7 +8381,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-TSAN_Vulkan": { + "Build-Debian10-Clang-x86_64-Release-TSAN": { "caches": [ { "name": "ccache", @@ -8258,7 +8397,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -8268,22 +8407,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -8302,7 +8441,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-TSAN_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-TSAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -8347,7 +8486,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-Vulkan": { + "Build-Debian10-Clang-x86_64-Release-TSAN_Vulkan": { "caches": [ { "name": "ccache", @@ -8363,7 +8502,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -8373,22 +8512,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -8407,7 +8546,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-TSAN_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -8452,7 +8591,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Release-Wuffs": { + "Build-Debian10-Clang-x86_64-Release-Vulkan": { "caches": [ { "name": "ccache", @@ -8468,7 +8607,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -8478,22 +8617,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -8512,7 +8651,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-Wuffs\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -8557,16 +8696,12 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-EMCC-asmjs-Debug-PathKit": { + "Build-Debian10-Clang-x86_64-Release-Wuffs": { "caches": [ { "name": "ccache", "path": "cache/ccache" }, - { - "name": "docker", - "path": "cache/docker" - }, { "name": "vpython", "path": "cache/vpython" @@ -8577,7 +8712,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -8587,27 +8722,32 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", "path": "ccache_linux", "version": "version:1" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" } ], "command": [ @@ -8616,7 +8756,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-asmjs-Debug-PathKit\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Release-Wuffs\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -8625,10 +8765,9 @@ "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-standard-16", + "machine_type:n1-highcpu-64", "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -8662,7 +8801,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-EMCC-asmjs-Release-PathKit": { + "Build-Debian10-EMCC-asmjs-Debug-PathKit": { "caches": [ { "name": "ccache", @@ -8682,7 +8821,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -8692,22 +8831,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -8721,7 +8860,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-asmjs-Release-PathKit\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-asmjs-Debug-PathKit\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -8767,7 +8906,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-EMCC-wasm-Debug-CanvasKit": { + "Build-Debian10-EMCC-asmjs-Release-PathKit": { "caches": [ { "name": "ccache", @@ -8787,7 +8926,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -8797,22 +8936,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -8826,7 +8965,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Debug-CanvasKit\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-asmjs-Release-PathKit\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -8872,7 +9011,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-EMCC-wasm-Debug-CanvasKit_CPU": { + "Build-Debian10-EMCC-wasm-Debug-CanvasKit": { "caches": [ { "name": "ccache", @@ -8892,7 +9031,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -8902,22 +9041,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -8931,7 +9070,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Debug-CanvasKit_CPU\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Debug-CanvasKit\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -8977,7 +9116,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-EMCC-wasm-Debug-PathKit": { + "Build-Debian10-EMCC-wasm-Debug-CanvasKit_CPU": { "caches": [ { "name": "ccache", @@ -8997,7 +9136,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -9007,22 +9146,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -9036,7 +9175,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Debug-PathKit\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Debug-CanvasKit_CPU\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -9082,7 +9221,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-EMCC-wasm-Release-CanvasKit": { + "Build-Debian10-EMCC-wasm-Debug-PathKit": { "caches": [ { "name": "ccache", @@ -9102,7 +9241,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -9112,22 +9251,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -9141,7 +9280,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Release-CanvasKit\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Debug-PathKit\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -9187,7 +9326,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU": { + "Build-Debian10-EMCC-wasm-Release-CanvasKit": { "caches": [ { "name": "ccache", @@ -9207,7 +9346,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -9217,22 +9356,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -9246,7 +9385,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Release-CanvasKit\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -9292,7 +9431,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-EMCC-wasm-Release-PathKit": { + "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU": { "caches": [ { "name": "ccache", @@ -9312,7 +9451,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -9322,22 +9461,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -9351,7 +9490,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Release-PathKit\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -9397,56 +9536,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-EMCC-wasm-Release-WasmGMTests": { - "caches": [ - { - "name": "docker", - "path": "cache/docker" - } - ], - "casSpec": "compile", - "cipd_packages": [ - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - } - ], - "command": [ - "./compile_wasm_gm_tests", - "--project_id", - "skia-swarming-bots", - "--task_id", - "<(TASK_ID)", - "--task_name", - "Build-Debian10-EMCC-wasm-Release-WasmGMTests", - "--out_path", - "./wasm_out", - "--skia_path", - "./skia", - "--work_path", - "./cache/docker/wasm_gm" - ], - "dependencies": [ - "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" - ], - "dimensions": [ - "docker_installed:true", - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia" - ], - "execution_timeout_ns": 3600000000000, - "io_timeout_ns": 3600000000000, - "max_attempts": 1, - "outputs": [ - "wasm_out" - ], - "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" - }, - "Build-Debian10-GCC-x86-Debug-Docker": { + "Build-Debian10-EMCC-wasm-Release-PathKit": { "caches": [ { "name": "ccache", @@ -9466,7 +9556,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -9476,22 +9566,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -9505,7 +9595,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86-Debug-Docker\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-EMCC-wasm-Release-PathKit\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -9551,112 +9641,56 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-GCC-x86-Release-Docker": { + "Build-Debian10-EMCC-wasm-Release-WasmGMTests": { "caches": [ - { - "name": "ccache", - "path": "cache/ccache" - }, { "name": "docker", "path": "cache/docker" - }, - { - "name": "vpython", - "path": "cache/vpython" } ], "casSpec": "compile", "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/linux-amd64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/ccache_linux", - "path": "ccache_linux", - "version": "version:1" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "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-GCC-x86-Release-Docker\",\"swarm_out_dir\":\"build\"}", - "skia" + "./compile_wasm_gm_tests", + "--project_id", + "skia-swarming-bots", + "--task_id", + "<(TASK_ID)", + "--task_name", + "Build-Debian10-EMCC-wasm-Release-WasmGMTests", + "--out_path", + "./wasm_out", + "--skia_path", + "./skia", + "--work_path", + "./cache/docker/wasm_gm" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes" + "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" ], "dimensions": [ + "docker_installed:true", "cpu:x86-64-Haswell_GCE", "gpu:none", "machine_type:n1-standard-16", "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "pool:Skia" ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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, + "max_attempts": 1, "outputs": [ - "build" + "wasm_out" ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-GCC-x86_64-Debug-Docker": { + "Build-Debian10-GCC-x86-Debug-Docker": { "caches": [ { "name": "ccache", @@ -9676,7 +9710,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -9686,22 +9720,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -9715,7 +9749,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86_64-Debug-Docker\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86-Debug-Docker\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -9761,7 +9795,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-GCC-x86_64-Debug-NoGPU_Docker": { + "Build-Debian10-GCC-x86-Release-Docker": { "caches": [ { "name": "ccache", @@ -9781,7 +9815,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -9791,22 +9825,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -9820,7 +9854,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86_64-Debug-NoGPU_Docker\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86-Release-Docker\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -9866,7 +9900,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-GCC-x86_64-Release-Docker": { + "Build-Debian10-GCC-x86_64-Debug-Docker": { "caches": [ { "name": "ccache", @@ -9886,7 +9920,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -9896,22 +9930,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -9925,7 +9959,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86_64-Release-Docker\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86_64-Debug-Docker\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -9971,7 +10005,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-GCC-x86_64-Release-NoGPU_Docker": { + "Build-Debian10-GCC-x86_64-Debug-NoGPU_Docker": { "caches": [ { "name": "ccache", @@ -9991,7 +10025,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -10001,22 +10035,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -10030,7 +10064,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86_64-Release-NoGPU_Docker\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86_64-Debug-NoGPU_Docker\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -10076,7 +10110,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-GCC-x86_64-Release-Shared_Docker": { + "Build-Debian10-GCC-x86_64-Release-Docker": { "caches": [ { "name": "ccache", @@ -10096,7 +10130,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -10106,22 +10140,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -10135,7 +10169,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86_64-Release-Shared_Docker\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86_64-Release-Docker\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -10181,80 +10215,57 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian9-Clang-arm-Release-Flutter_Android_Docker": { + "Build-Debian10-GCC-x86_64-Release-NoGPU_Docker": { "caches": [ { - "name": "docker", - "path": "cache/docker" - }, - { - "name": "git", - "path": "cache/git" + "name": "ccache", + "path": "cache/ccache" }, { - "name": "git_cache", - "path": "cache/git_cache" + "name": "docker", + "path": "cache/docker" }, { "name": "vpython", "path": "cache/vpython" - }, - { - "name": "work", - "path": "cache/work" } ], - "casSpec": "run-recipe", + "casSpec": "compile", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "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.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/android_ndk_linux", - "path": "android_ndk_linux", - "version": "version:16" + "name": "skia/bots/ccache_linux", + "path": "ccache_linux", + "version": "version:1" } ], "command": [ @@ -10262,8 +10273,8 @@ "-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-Debian9-Clang-arm-Release-Flutter_Android_Docker\",\"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)\"}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86_64-Release-NoGPU_Docker\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -10301,6 +10312,7 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, + "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ @@ -10308,61 +10320,56 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Debug": { + "Build-Debian10-GCC-x86_64-Release-Shared_Docker": { "caches": [ { "name": "ccache", "path": "cache/ccache" }, { - "name": "vpython", - "path": "cache/vpython" + "name": "docker", + "path": "cache/docker" }, { - "name": "xcode", - "path": "cache/Xcode.app" + "name": "vpython", + "path": "cache/vpython" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/mac-amd64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/mac-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}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/mac_toolchain/${platform}", - "path": "mac_toolchain", - "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ccache_mac", - "path": "ccache_mac", + "name": "skia/bots/ccache_linux", + "path": "ccache_linux", "version": "version:1" } ], @@ -10372,17 +10379,19 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-GCC-x86_64-Release-Shared_Docker\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cores:12", - "cpu:x86-64", - "os:Mac-10.15.7", - "pool:Skia" + "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", @@ -10416,7 +10425,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Debug-ASAN": { + "Build-Debian11-Clang-x86_64-Debug": { "caches": [ { "name": "ccache", @@ -10425,53 +10434,49 @@ { "name": "vpython", "path": "cache/vpython" - }, - { - "name": "xcode", - "path": "cache/Xcode.app" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/mac-amd64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/mac-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}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "infra/tools/mac_toolchain/${platform}", - "path": "mac_toolchain", - "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + "name": "skia/bots/ccache_linux", + "path": "ccache_linux", + "version": "version:1" }, { - "name": "skia/bots/ccache_mac", - "path": "ccache_mac", - "version": "version:1" + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" } ], "command": [ @@ -10480,16 +10485,14 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-ASAN\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian11-Clang-x86_64-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cores:12", - "cpu:x86-64", - "os:Mac-10.15.7", + "os:Debian-11.2", "pool:Skia" ], "environment": { @@ -10524,7 +10527,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Debug-ASAN_Graphite": { + "Build-Debian11-Clang-x86_64-Debug-ASAN": { "caches": [ { "name": "ccache", @@ -10533,53 +10536,49 @@ { "name": "vpython", "path": "cache/vpython" - }, - { - "name": "xcode", - "path": "cache/Xcode.app" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/mac-amd64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/mac-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}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "infra/tools/mac_toolchain/${platform}", - "path": "mac_toolchain", - "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + "name": "skia/bots/ccache_linux", + "path": "ccache_linux", + "version": "version:1" }, { - "name": "skia/bots/ccache_mac", - "path": "ccache_mac", - "version": "version:1" + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" } ], "command": [ @@ -10588,16 +10587,14 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-ASAN_Graphite\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian11-Clang-x86_64-Debug-ASAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cores:12", - "cpu:x86-64", - "os:Mac-10.15.7", + "os:Debian-11.2", "pool:Skia" ], "environment": { @@ -10632,8 +10629,12 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Debug-Android": { + "Build-Debian11-Clang-x86_64-Release": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" @@ -10642,39 +10643,44 @@ "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/mac-amd64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/mac-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}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/android_ndk_darwin", - "path": "android_ndk_darwin", - "version": "version:10" + "name": "skia/bots/ccache_linux", + "path": "ccache_linux", + "version": "version:1" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" } ], "command": [ @@ -10683,16 +10689,14 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-Android\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian11-Clang-x86_64-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cores:12", - "cpu:x86-64", - "os:Mac-10.15.7", + "os:Debian-11.2", "pool:Skia" ], "environment": { @@ -10727,7 +10731,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Debug-Graphite": { + "Build-Debian11-Clang-x86_64-Release-ASAN": { "caches": [ { "name": "ccache", @@ -10736,53 +10740,49 @@ { "name": "vpython", "path": "cache/vpython" - }, - { - "name": "xcode", - "path": "cache/Xcode.app" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/mac-amd64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/mac-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}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "infra/tools/mac_toolchain/${platform}", - "path": "mac_toolchain", - "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + "name": "skia/bots/ccache_linux", + "path": "ccache_linux", + "version": "version:1" }, { - "name": "skia/bots/ccache_mac", - "path": "ccache_mac", - "version": "version:1" + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" } ], "command": [ @@ -10791,16 +10791,14 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-Graphite\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian11-Clang-x86_64-Release-ASAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cores:12", - "cpu:x86-64", - "os:Mac-10.15.7", + "os:Debian-11.2", "pool:Skia" ], "environment": { @@ -10835,170 +10833,80 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Debug-Graphite_NoGpu": { + "Build-Debian9-Clang-arm-Release-Flutter_Android_Docker": { "caches": [ { - "name": "ccache", - "path": "cache/ccache" + "name": "docker", + "path": "cache/docker" + }, + { + "name": "git", + "path": "cache/git" + }, + { + "name": "git_cache", + "path": "cache/git_cache" }, { "name": "vpython", "path": "cache/vpython" }, { - "name": "xcode", - "path": "cache/Xcode.app" + "name": "work", + "path": "cache/work" } ], - "casSpec": "compile", + "casSpec": "run-recipe", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/mac-amd64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/mac-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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "version:2@2.35.1.chromium.8" }, { - "name": "infra/tools/luci/vpython-native/${platform}", + "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "infra/tools/luci/vpython/${platform}", + "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/mac_toolchain/${platform}", - "path": "mac_toolchain", - "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" - }, - { - "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}", - "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-Graphite_NoGpu\",\"swarm_out_dir\":\"build\"}", - "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/cpython", - "cipd_bin_packages/cpython/bin", - "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-Mac-Clang-arm64-Debug-Metal": { - "caches": [ - { - "name": "ccache", - "path": "cache/ccache" - }, - { - "name": "vpython", - "path": "cache/vpython" - }, - { - "name": "xcode", - "path": "cache/Xcode.app" - } - ], - "casSpec": "compile", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/mac-amd64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "name": "infra/3pp/tools/cpython3/mac-amd64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "infra/tools/luci-auth/${platform}", + "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/mac_toolchain/${platform}", - "path": "mac_toolchain", - "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ccache_mac", - "path": "ccache_mac", - "version": "version:1" + "name": "skia/bots/android_ndk_linux", + "path": "android_ndk_linux", + "version": "version:16" } ], "command": [ @@ -11006,18 +10914,20 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-Metal\",\"swarm_out_dir\":\"build\"}", + "sync_and_compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Build-Debian9-Clang-arm-Release-Flutter_Android_Docker\",\"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" + "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", @@ -11043,7 +10953,6 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ @@ -11051,7 +10960,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Debug-iOS": { + "Build-Mac-Clang-arm64-Debug": { "caches": [ { "name": "ccache", @@ -11071,7 +10980,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -11081,22 +10990,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -11107,11 +11016,6 @@ "name": "skia/bots/ccache_mac", "path": "ccache_mac", "version": "version:1" - }, - { - "name": "skia/bots/provisioning_profile_ios", - "path": "provisioning_profile_ios", - "version": "version:6" } ], "command": [ @@ -11120,7 +11024,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-iOS\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -11164,7 +11068,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Debug-iOS_Graphite": { + "Build-Mac-Clang-arm64-Debug-ASAN": { "caches": [ { "name": "ccache", @@ -11184,7 +11088,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -11194,22 +11098,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -11220,11 +11124,6 @@ "name": "skia/bots/ccache_mac", "path": "ccache_mac", "version": "version:1" - }, - { - "name": "skia/bots/provisioning_profile_ios", - "path": "provisioning_profile_ios", - "version": "version:6" } ], "command": [ @@ -11233,7 +11132,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-iOS_Graphite\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-ASAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -11277,7 +11176,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Debug-iOS_Metal": { + "Build-Mac-Clang-arm64-Debug-ASAN_Graphite": { "caches": [ { "name": "ccache", @@ -11297,7 +11196,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -11307,22 +11206,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -11333,11 +11232,101 @@ "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}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-ASAN_Graphite\",\"swarm_out_dir\":\"build\"}", + "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/cpython", + "cipd_bin_packages/cpython/bin", + "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-Mac-Clang-arm64-Debug-Android": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "compile", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/mac-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" }, { - "name": "skia/bots/provisioning_profile_ios", - "path": "provisioning_profile_ios", - "version": "version:6" + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/android_ndk_darwin", + "path": "android_ndk_darwin", + "version": "version:10" } ], "command": [ @@ -11346,7 +11335,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-iOS_Metal\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-Android\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -11390,7 +11379,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Release": { + "Build-Mac-Clang-arm64-Debug-Graphite": { "caches": [ { "name": "ccache", @@ -11410,7 +11399,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -11420,22 +11409,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -11454,7 +11443,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-Graphite\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -11498,7 +11487,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Release-Graphite": { + "Build-Mac-Clang-arm64-Debug-Graphite_NoGpu": { "caches": [ { "name": "ccache", @@ -11518,7 +11507,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -11528,22 +11517,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -11562,7 +11551,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release-Graphite\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-Graphite_NoGpu\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -11606,7 +11595,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Release-Metal": { + "Build-Mac-Clang-arm64-Debug-Metal": { "caches": [ { "name": "ccache", @@ -11626,7 +11615,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -11636,22 +11625,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -11670,7 +11659,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release-Metal\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-Metal\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -11714,7 +11703,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Release-iOS": { + "Build-Mac-Clang-arm64-Debug-iOS": { "caches": [ { "name": "ccache", @@ -11734,7 +11723,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -11744,22 +11733,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -11783,7 +11772,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release-iOS\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-iOS\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -11827,7 +11816,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Release-iOS_Graphite": { + "Build-Mac-Clang-arm64-Debug-iOS_Graphite": { "caches": [ { "name": "ccache", @@ -11847,7 +11836,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -11857,22 +11846,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -11896,7 +11885,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release-iOS_Graphite\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-iOS_Graphite\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -11940,7 +11929,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-arm64-Release-iOS_Metal": { + "Build-Mac-Clang-arm64-Debug-iOS_Metal": { "caches": [ { "name": "ccache", @@ -11960,7 +11949,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -11970,22 +11959,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -12009,7 +11998,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release-iOS_Metal\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Debug-iOS_Metal\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -12053,7 +12042,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-x64-Release-iOS": { + "Build-Mac-Clang-arm64-Release": { "caches": [ { "name": "ccache", @@ -12073,7 +12062,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -12083,22 +12072,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -12109,11 +12098,6 @@ "name": "skia/bots/ccache_mac", "path": "ccache_mac", "version": "version:1" - }, - { - "name": "skia/bots/provisioning_profile_ios", - "path": "provisioning_profile_ios", - "version": "version:6" } ], "command": [ @@ -12122,7 +12106,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x64-Release-iOS\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -12166,7 +12150,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-x86_64-Debug": { + "Build-Mac-Clang-arm64-Release-Graphite": { "caches": [ { "name": "ccache", @@ -12186,7 +12170,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -12196,22 +12180,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -12230,7 +12214,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Debug\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release-Graphite\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -12274,7 +12258,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-x86_64-Debug-ASAN": { + "Build-Mac-Clang-arm64-Release-Metal": { "caches": [ { "name": "ccache", @@ -12294,7 +12278,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -12304,22 +12288,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -12338,7 +12322,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Debug-ASAN\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release-Metal\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -12382,7 +12366,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-x86_64-Debug-ASAN_Metal": { + "Build-Mac-Clang-arm64-Release-iOS": { "caches": [ { "name": "ccache", @@ -12402,7 +12386,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -12412,22 +12396,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -12438,6 +12422,11 @@ "name": "skia/bots/ccache_mac", "path": "ccache_mac", "version": "version:1" + }, + { + "name": "skia/bots/provisioning_profile_ios", + "path": "provisioning_profile_ios", + "version": "version:6" } ], "command": [ @@ -12446,7 +12435,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Debug-ASAN_Metal\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release-iOS\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -12490,79 +12479,52 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-x86_64-Debug-CommandBuffer": { + "Build-Mac-Clang-arm64-Release-iOS_Graphite": { "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", + "casSpec": "compile", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "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.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -12573,6 +12535,11 @@ "name": "skia/bots/ccache_mac", "path": "ccache_mac", "version": "version:1" + }, + { + "name": "skia/bots/provisioning_profile_ios", + "path": "provisioning_profile_ios", + "version": "version:6" } ], "command": [ @@ -12580,8 +12547,8 @@ "-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-CommandBuffer\",\"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)\"}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release-iOS_Graphite\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -12613,18 +12580,19 @@ "cache/vpython" ] }, - "execution_timeout_ns": 7200000000000, + "execution_timeout_ns": 3600000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 7200000000000, + "idempotent": true, + "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ "build" ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-x86_64-Debug-Metal": { + "Build-Mac-Clang-arm64-Release-iOS_Metal": { "caches": [ { "name": "ccache", @@ -12644,7 +12612,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -12654,22 +12622,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -12680,6 +12648,11 @@ "name": "skia/bots/ccache_mac", "path": "ccache_mac", "version": "version:1" + }, + { + "name": "skia/bots/provisioning_profile_ios", + "path": "provisioning_profile_ios", + "version": "version:6" } ], "command": [ @@ -12688,7 +12661,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Debug-Metal\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-arm64-Release-iOS_Metal\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -12732,7 +12705,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-x86_64-Release": { + "Build-Mac-Clang-x64-Release-iOS": { "caches": [ { "name": "ccache", @@ -12752,7 +12725,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -12762,22 +12735,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -12788,6 +12761,11 @@ "name": "skia/bots/ccache_mac", "path": "ccache_mac", "version": "version:1" + }, + { + "name": "skia/bots/provisioning_profile_ios", + "path": "provisioning_profile_ios", + "version": "version:6" } ], "command": [ @@ -12796,7 +12774,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Release\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x64-Release-iOS\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -12840,79 +12818,52 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-x86_64-Release-CommandBuffer": { + "Build-Mac-Clang-x86_64-Debug": { "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", + "casSpec": "compile", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "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.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -12930,8 +12881,8 @@ "-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-Release-CommandBuffer\",\"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)\"}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -12963,18 +12914,19 @@ "cache/vpython" ] }, - "execution_timeout_ns": 7200000000000, + "execution_timeout_ns": 3600000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 7200000000000, + "idempotent": true, + "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ "build" ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-x86_64-Release-Metal": { + "Build-Mac-Clang-x86_64-Debug-ASAN": { "caches": [ { "name": "ccache", @@ -12994,7 +12946,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -13004,22 +12956,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -13038,7 +12990,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Release-Metal\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Debug-ASAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -13082,7 +13034,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-x86_64-Release-TSAN": { + "Build-Mac-Clang-x86_64-Debug-ASAN_Metal": { "caches": [ { "name": "ccache", @@ -13102,7 +13054,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -13112,22 +13064,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -13146,7 +13098,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Release-TSAN\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Debug-ASAN_Metal\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -13190,52 +13142,79 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Clang-x86_64-Release-TSAN_Metal": { + "Build-Mac-Clang-x86_64-Debug-CommandBuffer": { "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": "compile", + "casSpec": "run-recipe", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -13253,8 +13232,8 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Release-TSAN_Metal\",\"swarm_out_dir\":\"build\"}", + "sync_and_compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Build-Mac-Clang-x86_64-Debug-CommandBuffer\",\"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": [ @@ -13286,19 +13265,18 @@ "cache/vpython" ] }, - "execution_timeout_ns": 3600000000000, + "execution_timeout_ns": 7200000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "idempotent": true, - "io_timeout_ns": 3600000000000, + "io_timeout_ns": 7200000000000, "max_attempts": 2, "outputs": [ "build" ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Xcode11.4.1-arm64-Debug-iOS": { + "Build-Mac-Clang-x86_64-Debug-Graphite": { "caches": [ { "name": "ccache", @@ -13318,7 +13296,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -13328,22 +13306,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -13354,11 +13332,6 @@ "name": "skia/bots/ccache_mac", "path": "ccache_mac", "version": "version:1" - }, - { - "name": "skia/bots/provisioning_profile_ios", - "path": "provisioning_profile_ios", - "version": "version:6" } ], "command": [ @@ -13367,7 +13340,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Xcode11.4.1-arm64-Debug-iOS\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Debug-Graphite\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -13411,7 +13384,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Xcode11.4.1-arm64-Debug-iOS_Metal": { + "Build-Mac-Clang-x86_64-Debug-Metal": { "caches": [ { "name": "ccache", @@ -13431,7 +13404,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -13441,22 +13414,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -13467,11 +13440,6 @@ "name": "skia/bots/ccache_mac", "path": "ccache_mac", "version": "version:1" - }, - { - "name": "skia/bots/provisioning_profile_ios", - "path": "provisioning_profile_ios", - "version": "version:6" } ], "command": [ @@ -13480,7 +13448,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Xcode11.4.1-arm64-Debug-iOS_Metal\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Debug-Metal\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -13524,7 +13492,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Xcode11.4.1-arm64-Release-iOS": { + "Build-Mac-Clang-x86_64-Release": { "caches": [ { "name": "ccache", @@ -13544,7 +13512,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -13554,22 +13522,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -13580,11 +13548,6 @@ "name": "skia/bots/ccache_mac", "path": "ccache_mac", "version": "version:1" - }, - { - "name": "skia/bots/provisioning_profile_ios", - "path": "provisioning_profile_ios", - "version": "version:6" } ], "command": [ @@ -13593,7 +13556,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Xcode11.4.1-arm64-Release-iOS\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -13637,52 +13600,79 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Mac-Xcode11.4.1-arm64-Release-iOS_Metal": { + "Build-Mac-Clang-x86_64-Release-CommandBuffer": { "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": "compile", + "casSpec": "run-recipe", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/mac_toolchain/${platform}", @@ -13693,11 +13683,6 @@ "name": "skia/bots/ccache_mac", "path": "ccache_mac", "version": "version:1" - }, - { - "name": "skia/bots/provisioning_profile_ios", - "path": "provisioning_profile_ios", - "version": "version:6" } ], "command": [ @@ -13705,8 +13690,8 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Xcode11.4.1-arm64-Release-iOS_Metal\",\"swarm_out_dir\":\"build\"}", + "sync_and_compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Build-Mac-Clang-x86_64-Release-CommandBuffer\",\"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": [ @@ -13738,61 +13723,73 @@ "cache/vpython" ] }, - "execution_timeout_ns": 3600000000000, + "execution_timeout_ns": 7200000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "idempotent": true, - "io_timeout_ns": 3600000000000, + "io_timeout_ns": 7200000000000, "max_attempts": 2, "outputs": [ "build" ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-arm64-Debug": { + "Build-Mac-Clang-x86_64-Release-Graphite": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" + }, + { + "name": "xcode", + "path": "cache/Xcode.app" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:16" + "name": "infra/tools/mac_toolchain/${platform}", + "path": "mac_toolchain", + "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + }, + { + "name": "skia/bots/ccache_mac", + "path": "ccache_mac", + "version": "version:1" } ], "command": [ @@ -13801,18 +13798,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-arm64-Debug\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Release-Graphite\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", + "cores:12", + "cpu:x86-64", + "os:Mac-10.15.7", "pool:Skia" ], "environment": { @@ -13847,49 +13842,62 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-arm64-Debug-ANGLE": { + "Build-Mac-Clang-x86_64-Release-Metal": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" + }, + { + "name": "xcode", + "path": "cache/Xcode.app" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:16" + "name": "infra/tools/mac_toolchain/${platform}", + "path": "mac_toolchain", + "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + }, + { + "name": "skia/bots/ccache_mac", + "path": "ccache_mac", + "version": "version:1" } ], "command": [ @@ -13898,18 +13906,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-arm64-Debug-ANGLE\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Release-Metal\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", + "cores:12", + "cpu:x86-64", + "os:Mac-10.15.7", "pool:Skia" ], "environment": { @@ -13944,49 +13950,62 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-arm64-Release": { + "Build-Mac-Clang-x86_64-Release-TSAN": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" + }, + { + "name": "xcode", + "path": "cache/Xcode.app" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:16" + "name": "infra/tools/mac_toolchain/${platform}", + "path": "mac_toolchain", + "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + }, + { + "name": "skia/bots/ccache_mac", + "path": "ccache_mac", + "version": "version:1" } ], "command": [ @@ -13995,18 +14014,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-arm64-Release\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Release-TSAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", + "cores:12", + "cpu:x86-64", + "os:Mac-10.15.7", "pool:Skia" ], "environment": { @@ -14041,49 +14058,62 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-arm64-Release-ANGLE": { + "Build-Mac-Clang-x86_64-Release-TSAN_Metal": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" + }, + { + "name": "xcode", + "path": "cache/Xcode.app" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:16" + "name": "infra/tools/mac_toolchain/${platform}", + "path": "mac_toolchain", + "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + }, + { + "name": "skia/bots/ccache_mac", + "path": "ccache_mac", + "version": "version:1" } ], "command": [ @@ -14092,18 +14122,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-arm64-Release-ANGLE\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Clang-x86_64-Release-TSAN_Metal\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", + "cores:12", + "cpu:x86-64", + "os:Mac-10.15.7", "pool:Skia" ], "environment": { @@ -14138,49 +14166,67 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-arm64-Release-Android": { + "Build-Mac-Xcode11.4.1-arm64-Debug-iOS": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" + }, + { + "name": "xcode", + "path": "cache/Xcode.app" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/android_ndk_windows", - "path": "n", - "version": "version:11" + "name": "infra/tools/mac_toolchain/${platform}", + "path": "mac_toolchain", + "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + }, + { + "name": "skia/bots/ccache_mac", + "path": "ccache_mac", + "version": "version:1" + }, + { + "name": "skia/bots/provisioning_profile_ios", + "path": "provisioning_profile_ios", + "version": "version:6" } ], "command": [ @@ -14189,17 +14235,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-arm64-Release-Android\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Xcode11.4.1-arm64-Debug-iOS\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", + "cores:12", + "cpu:x86-64", + "os:Mac-10.15.7", "pool:Skia" ], "environment": { @@ -14234,49 +14279,67 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86-Debug": { + "Build-Mac-Xcode11.4.1-arm64-Debug-iOS_Metal": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" + }, + { + "name": "xcode", + "path": "cache/Xcode.app" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:16" + "name": "infra/tools/mac_toolchain/${platform}", + "path": "mac_toolchain", + "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + }, + { + "name": "skia/bots/ccache_mac", + "path": "ccache_mac", + "version": "version:1" + }, + { + "name": "skia/bots/provisioning_profile_ios", + "path": "provisioning_profile_ios", + "version": "version:6" } ], "command": [ @@ -14285,18 +14348,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86-Debug\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Xcode11.4.1-arm64-Debug-iOS_Metal\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", + "cores:12", + "cpu:x86-64", + "os:Mac-10.15.7", "pool:Skia" ], "environment": { @@ -14331,49 +14392,67 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86-Debug-Exceptions": { + "Build-Mac-Xcode11.4.1-arm64-Release-iOS": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" + }, + { + "name": "xcode", + "path": "cache/Xcode.app" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:16" + "name": "infra/tools/mac_toolchain/${platform}", + "path": "mac_toolchain", + "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + }, + { + "name": "skia/bots/ccache_mac", + "path": "ccache_mac", + "version": "version:1" + }, + { + "name": "skia/bots/provisioning_profile_ios", + "path": "provisioning_profile_ios", + "version": "version:6" } ], "command": [ @@ -14382,18 +14461,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86-Debug-Exceptions\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Xcode11.4.1-arm64-Release-iOS\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", + "cores:12", + "cpu:x86-64", + "os:Mac-10.15.7", "pool:Skia" ], "environment": { @@ -14428,49 +14505,67 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86-Release": { + "Build-Mac-Xcode11.4.1-arm64-Release-iOS_Metal": { "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, { "name": "vpython", "path": "cache/vpython" + }, + { + "name": "xcode", + "path": "cache/Xcode.app" } ], "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:16" + "name": "infra/tools/mac_toolchain/${platform}", + "path": "mac_toolchain", + "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + }, + { + "name": "skia/bots/ccache_mac", + "path": "ccache_mac", + "version": "version:1" + }, + { + "name": "skia/bots/provisioning_profile_ios", + "path": "provisioning_profile_ios", + "version": "version:6" } ], "command": [ @@ -14479,18 +14574,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86-Release\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Mac-Xcode11.4.1-arm64-Release-iOS_Metal\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", + "cores:12", + "cpu:x86-64", + "os:Mac-10.15.7", "pool:Skia" ], "environment": { @@ -14525,7 +14618,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug": { + "Build-Win-Clang-arm64-Debug": { "caches": [ { "name": "vpython", @@ -14537,7 +14630,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -14547,22 +14640,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -14576,7 +14669,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-arm64-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -14622,7 +14715,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-ANGLE": { + "Build-Win-Clang-arm64-Debug-ANGLE": { "caches": [ { "name": "vpython", @@ -14634,7 +14727,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -14644,22 +14737,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -14673,7 +14766,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-ANGLE\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-arm64-Debug-ANGLE\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -14719,7 +14812,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-ASAN": { + "Build-Win-Clang-arm64-Release": { "caches": [ { "name": "vpython", @@ -14731,7 +14824,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -14741,22 +14834,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -14770,7 +14863,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-ASAN\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-arm64-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -14816,7 +14909,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-Dawn": { + "Build-Win-Clang-arm64-Release-ANGLE": { "caches": [ { "name": "vpython", @@ -14828,7 +14921,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -14838,22 +14931,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -14867,7 +14960,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-arm64-Release-ANGLE\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -14913,7 +15006,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-Direct3D": { + "Build-Win-Clang-arm64-Release-Android": { "caches": [ { "name": "vpython", @@ -14925,7 +15018,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -14935,27 +15028,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:16" + "name": "skia/bots/android_ndk_windows", + "path": "n", + "version": "version:11" } ], "command": [ @@ -14964,12 +15057,11 @@ "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-arm64-Release-Android\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -15010,7 +15102,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-Vulkan": { + "Build-Win-Clang-x86-Debug": { "caches": [ { "name": "vpython", @@ -15022,7 +15114,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -15032,22 +15124,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -15061,7 +15153,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-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -15107,7 +15199,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-Wuffs": { + "Build-Win-Clang-x86-Debug-Exceptions": { "caches": [ { "name": "vpython", @@ -15119,7 +15211,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -15129,22 +15221,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -15158,7 +15250,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-Debug-Exceptions\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -15204,7 +15296,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release": { + "Build-Win-Clang-x86-Release": { "caches": [ { "name": "vpython", @@ -15216,7 +15308,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -15226,22 +15318,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -15255,7 +15347,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-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -15301,7 +15393,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release-ANGLE": { + "Build-Win-Clang-x86_64-Debug": { "caches": [ { "name": "vpython", @@ -15313,7 +15405,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -15323,22 +15415,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -15352,7 +15444,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-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -15398,7 +15490,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release-Dawn": { + "Build-Win-Clang-x86_64-Debug-ANGLE": { "caches": [ { "name": "vpython", @@ -15410,7 +15502,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -15420,22 +15512,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -15449,7 +15541,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-Debug-ANGLE\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -15495,7 +15587,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-Debug-ASAN": { "caches": [ { "name": "vpython", @@ -15507,7 +15599,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -15517,22 +15609,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -15546,7 +15638,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-Debug-ASAN\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -15592,8 +15684,16 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release-Shared": { + "Build-Win-Clang-x86_64-Debug-Dawn": { "caches": [ + { + "name": "git", + "path": "cache/git" + }, + { + "name": "git_cache", + "path": "cache/git_cache" + }, { "name": "vpython", "path": "cache/vpython" @@ -15604,32 +15704,47 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -15643,7 +15758,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-Clang-x86_64-Debug-Dawn\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -15689,7 +15804,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release-Vulkan": { + "Build-Win-Clang-x86_64-Debug-Direct3D": { "caches": [ { "name": "vpython", @@ -15701,7 +15816,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -15711,22 +15826,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_win", @@ -15740,7 +15855,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-Clang-x86_64-Debug-Direct3D\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -15786,7 +15901,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-arm64-Debug": { + "Build-Win-Clang-x86_64-Debug-Vulkan": { "caches": [ { "name": "vpython", @@ -15798,7 +15913,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -15808,22 +15923,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_win", + "path": "clang_win", + "version": "version:16" } ], "command": [ @@ -15832,7 +15952,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-Clang-x86_64-Debug-Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -15878,7 +15998,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-arm64-Debug-ANGLE": { + "Build-Win-Clang-x86_64-Debug-Wuffs": { "caches": [ { "name": "vpython", @@ -15890,7 +16010,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -15900,22 +16020,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_win", + "path": "clang_win", + "version": "version:16" } ], "command": [ @@ -15924,7 +16049,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-Clang-x86_64-Debug-Wuffs\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -15970,7 +16095,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-arm64-Release": { + "Build-Win-Clang-x86_64-Release": { "caches": [ { "name": "vpython", @@ -15982,7 +16107,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -15992,22 +16117,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_win", + "path": "clang_win", + "version": "version:16" } ], "command": [ @@ -16016,7 +16146,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-Clang-x86_64-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -16062,7 +16192,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-arm64-Release-ANGLE": { + "Build-Win-Clang-x86_64-Release-ANGLE": { "caches": [ { "name": "vpython", @@ -16074,7 +16204,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -16084,22 +16214,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_win", + "path": "clang_win", + "version": "version:16" } ], "command": [ @@ -16108,7 +16243,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-Clang-x86_64-Release-ANGLE\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -16154,8 +16289,16 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86-Debug": { + "Build-Win-Clang-x86_64-Release-Dawn": { "caches": [ + { + "name": "git", + "path": "cache/git" + }, + { + "name": "git_cache", + "path": "cache/git_cache" + }, { "name": "vpython", "path": "cache/vpython" @@ -16166,32 +16309,52 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_win", + "path": "clang_win", + "version": "version:16" } ], "command": [ @@ -16200,7 +16363,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-Clang-x86_64-Release-Dawn\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -16246,7 +16409,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86-Release": { + "Build-Win-Clang-x86_64-Release-Direct3D": { "caches": [ { "name": "vpython", @@ -16258,7 +16421,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -16268,22 +16431,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_win", + "path": "clang_win", + "version": "version:16" } ], "command": [ @@ -16292,7 +16460,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-Clang-x86_64-Release-Direct3D\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -16338,7 +16506,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Debug": { + "Build-Win-Clang-x86_64-Release-Shared": { "caches": [ { "name": "vpython", @@ -16350,7 +16518,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -16360,22 +16528,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_win", + "path": "clang_win", + "version": "version:16" } ], "command": [ @@ -16384,7 +16557,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-Clang-x86_64-Release-Shared\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -16430,7 +16603,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Debug-Direct3D": { + "Build-Win-Clang-x86_64-Release-Vulkan": { "caches": [ { "name": "vpython", @@ -16442,7 +16615,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -16452,22 +16625,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_win", + "path": "clang_win", + "version": "version:16" } ], "command": [ @@ -16476,7 +16654,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-Clang-x86_64-Release-Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -16522,7 +16700,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Debug-Vulkan": { + "Build-Win-MSVC-arm64-Debug": { "caches": [ { "name": "vpython", @@ -16534,7 +16712,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -16544,22 +16722,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -16568,7 +16746,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-arm64-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -16614,7 +16792,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Debug-Wuffs": { + "Build-Win-MSVC-arm64-Debug-ANGLE": { "caches": [ { "name": "vpython", @@ -16626,7 +16804,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -16636,22 +16814,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -16660,7 +16838,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-arm64-Debug-ANGLE\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -16706,7 +16884,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Release": { + "Build-Win-MSVC-arm64-Release": { "caches": [ { "name": "vpython", @@ -16718,7 +16896,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -16728,22 +16906,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -16752,7 +16930,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-arm64-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -16798,7 +16976,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Release-Direct3D": { + "Build-Win-MSVC-arm64-Release-ANGLE": { "caches": [ { "name": "vpython", @@ -16810,7 +16988,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -16820,22 +16998,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -16844,7 +17022,7 @@ "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\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-arm64-Release-ANGLE\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -16890,7 +17068,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Release-Shared": { + "Build-Win-MSVC-x86-Debug": { "caches": [ { "name": "vpython", @@ -16902,7 +17080,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -16912,22 +17090,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -16936,7 +17114,191 @@ "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\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86-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/cpython", + "cipd_bin_packages/cpython/bin", + "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-Release": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "compile", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/windows-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + } + ], + "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-Release\",\"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/cpython", + "cipd_bin_packages/cpython/bin", + "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-Debug": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "compile", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/windows-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + } + ], + "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-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -16982,7 +17344,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Release-Vulkan": { + "Build-Win-MSVC-x86_64-Debug-Direct3D": { "caches": [ { "name": "vpython", @@ -16994,7 +17356,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -17004,22 +17366,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -17028,7 +17390,7 @@ "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\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Direct3D\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -17074,76 +17436,44 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "BuildStats-Debian10-Clang-x86_64-Release": { + "Build-Win-MSVC-x86_64-Debug-Vulkan": { "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", + "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-amd64", + "name": "infra/3pp/tools/cpython3/windows-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.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/bloaty", - "path": "bloaty", - "version": "version:1" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -17151,21 +17481,20 @@ "-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-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)\"}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release", - "Housekeeper-PerCommit-BundleRecipes" + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateWinToolchain" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "machine_type:n1-highcpu-64", + "os:Windows-Server-17763", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -17191,82 +17520,52 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, + "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ - "perf" - ] + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "BuildStats-Debian10-Clang-x86_64-Release-Vulkan": { + "Build-Win-MSVC-x86_64-Debug-Wuffs": { "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", + "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-amd64", + "name": "infra/3pp/tools/cpython3/windows-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.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/bloaty", - "path": "bloaty", - "version": "version:1" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -17274,21 +17573,20 @@ "-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-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)\"}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Wuffs\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release-Vulkan", - "Housekeeper-PerCommit-BundleRecipes" + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateWinToolchain" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "machine_type:n1-highcpu-64", + "os:Windows-Server-17763", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -17314,82 +17612,52 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, + "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ - "perf" - ] + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "BuildStats-Debian10-EMCC-asmjs-Release-PathKit": { + "Build-Win-MSVC-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": "run-recipe", + "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-amd64", + "name": "infra/3pp/tools/cpython3/windows-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.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/bloaty", - "path": "bloaty", - "version": "version:1" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -17397,21 +17665,20 @@ "-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-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)\"}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Build-Debian10-EMCC-asmjs-Release-PathKit", - "Housekeeper-PerCommit-BundleRecipes" + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateWinToolchain" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "machine_type:n1-highcpu-64", + "os:Windows-Server-17763", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -17437,82 +17704,52 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, + "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ - "perf" - ] + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit": { + "Build-Win-MSVC-x86_64-Release-Direct3D": { "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", + "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-amd64", + "name": "infra/3pp/tools/cpython3/windows-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.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/bloaty", - "path": "bloaty", - "version": "version:1" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -17520,21 +17757,20 @@ "-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\",\"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)\"}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Direct3D\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Build-Debian10-EMCC-wasm-Debug-CanvasKit", - "Housekeeper-PerCommit-BundleRecipes" + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateWinToolchain" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "machine_type:n1-highcpu-64", + "os:Windows-Server-17763", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -17560,82 +17796,52 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, + "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ - "perf" - ] + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit_CPU": { + "Build-Win-MSVC-x86_64-Release-Shared": { "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", + "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-amd64", + "name": "infra/3pp/tools/cpython3/windows-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.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/bloaty", - "path": "bloaty", - "version": "version:1" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -17643,21 +17849,20 @@ "-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)\"}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Shared\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Build-Debian10-EMCC-wasm-Debug-CanvasKit_CPU", - "Housekeeper-PerCommit-BundleRecipes" + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateWinToolchain" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "machine_type:n1-highcpu-64", + "os:Windows-Server-17763", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -17683,82 +17888,52 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, + "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ - "perf" - ] + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit": { + "Build-Win-MSVC-x86_64-Release-Vulkan": { "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", + "casSpec": "compile", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-amd64", + "name": "infra/3pp/tools/cpython3/windows-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.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/bloaty", - "path": "bloaty", - "version": "version:1" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -17766,21 +17941,20 @@ "-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)\"}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ - "Build-Debian10-EMCC-wasm-Release-CanvasKit", - "Housekeeper-PerCommit-BundleRecipes" + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateWinToolchain" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "machine_type:n1-highcpu-64", + "os:Windows-Server-17763", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -17806,13 +17980,15 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, + "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ - "perf" - ] + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU": { + "BuildStats-Debian10-Clang-x86_64-Release": { "caches": [ { "name": "git", @@ -17836,7 +18012,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -17846,37 +18022,37 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/bloaty", @@ -17890,11 +18066,749 @@ "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)\"}", + "{\"$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": [ - "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", + "Build-Debian10-Clang-x86_64-Release", + "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": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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-Clang-x86_64-Release-Vulkan": { + "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/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "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-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": [ + "Build-Debian10-Clang-x86_64-Release-Vulkan", + "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": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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-asmjs-Release-PathKit": { + "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/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "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-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": [ + "Build-Debian10-EMCC-asmjs-Release-PathKit", + "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": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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": { + "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/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "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\",\"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": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "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": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "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": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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.35.1.chromium.8" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "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", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -17959,7 +18873,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -17969,37 +18883,37 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/bloaty", @@ -18082,7 +18996,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -18092,37 +19006,37 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/bloaty", @@ -18187,7 +19101,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -18237,7 +19151,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -18287,7 +19201,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -18337,7 +19251,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -18387,7 +19301,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/bloaty", @@ -18449,7 +19363,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/bloaty", @@ -18511,7 +19425,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/bloaty", @@ -18573,7 +19487,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/bloaty", @@ -18634,7 +19548,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -18690,7 +19604,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -18754,7 +19668,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -18818,7 +19732,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -18877,7 +19791,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -18927,7 +19841,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -18977,7 +19891,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -19027,7 +19941,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -19078,7 +19992,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -19129,7 +20043,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -19201,7 +20115,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -19211,37 +20125,37 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/go", "path": "go", - "version": "version:14" + "version": "version:16" } ], "command": [ @@ -19298,100 +20212,6 @@ "max_attempts": 2, "service_account": "skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com" }, - "Housekeeper-Nightly-UpdateGoDeps": { - "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, - { - "name": "go_cache", - "path": "cache/go_cache" - }, - { - "name": "gopath", - "path": "cache/gopath" - } - ], - "casSpec": "empty", - "cipd_packages": [ - { - "name": "infra/3pp/tools/git/linux-amd64", - "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/go", - "path": "go", - "version": "version:14" - }, - { - "name": "skia/bots/protoc", - "path": "protoc", - "version": "version:0" - } - ], - "command": [ - "./update_go_deps", - "--project_id", - "skia-swarming-bots", - "--task_id", - "<(TASK_ID)", - "--task_name", - "Housekeeper-Nightly-UpdateGoDeps", - "--workdir", - ".", - "--gerrit_project", - "skia", - "--gerrit_url", - "https://skia-review.googlesource.com", - "--repo", - "<(REPO)", - "--revision", - "<(REVISION)", - "--patch_issue", - "<(ISSUE)", - "--patch_set", - "<(PATCHSET)", - "--patch_server", - "<(CODEREVIEW_SERVER)" - ], - "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": { - "GOROOT": [ - "go/go" - ], - "PATH": [ - "go/go/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" - ] - }, - "service_account": "skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com" - }, "Housekeeper-OnDemand-Presubmit": { "caches": [ { @@ -19412,7 +20232,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -19422,7 +20242,7 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build", @@ -19432,32 +20252,32 @@ { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -19528,7 +20348,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -19538,37 +20358,37 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -19619,205 +20439,88 @@ "service_account": "skia-external-housekeeper@skia-swarming-bots.iam.gserviceaccount.com" }, "Housekeeper-PerCommit-BuildTaskDrivers_darwin_amd64": { - "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, - { - "name": "go_cache", - "path": "cache/go_cache" - }, - { - "name": "gopath", - "path": "cache/gopath" - } - ], "casSpec": "task-drivers", "cipd_packages": [ { - "name": "infra/3pp/tools/git/linux-amd64", - "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/go", - "path": "go", - "version": "version:14" + "name": "skia/bots/bazelisk", + "path": "bazelisk", + "version": "version:0" } ], "command": [ "/bin/bash", "skia/infra/bots/build_task_drivers.sh", "${ISOLATED_OUTDIR}", - "darwin", - "amd64" + "darwin_amd64" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-highmem-2", + "machine_type:n1-standard-16", "os:Debian-10.3", "pool:Skia" ], "env_prefixes": { - "GOROOT": [ - "go/go" - ], "PATH": [ - "go/go/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" + "bazelisk" ] }, "idempotent": true }, "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64": { - "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, - { - "name": "go_cache", - "path": "cache/go_cache" - }, - { - "name": "gopath", - "path": "cache/gopath" - } - ], "casSpec": "task-drivers", "cipd_packages": [ { - "name": "infra/3pp/tools/git/linux-amd64", - "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/go", - "path": "go", - "version": "version:14" + "name": "skia/bots/bazelisk", + "path": "bazelisk", + "version": "version:0" } ], "command": [ "/bin/bash", "skia/infra/bots/build_task_drivers.sh", "${ISOLATED_OUTDIR}", - "linux", - "amd64" + "linux_amd64" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-highmem-2", + "machine_type:n1-standard-16", "os:Debian-10.3", "pool:Skia" ], "env_prefixes": { - "GOROOT": [ - "go/go" - ], "PATH": [ - "go/go/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" + "bazelisk" ] }, "idempotent": true }, "Housekeeper-PerCommit-BuildTaskDrivers_windows_amd64": { - "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, - { - "name": "go_cache", - "path": "cache/go_cache" - }, - { - "name": "gopath", - "path": "cache/gopath" - } - ], "casSpec": "task-drivers", "cipd_packages": [ { - "name": "infra/3pp/tools/git/linux-amd64", - "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/go", - "path": "go", - "version": "version:14" + "name": "skia/bots/bazelisk", + "path": "bazelisk", + "version": "version:0" } ], "command": [ "/bin/bash", "skia/infra/bots/build_task_drivers.sh", "${ISOLATED_OUTDIR}", - "windows", - "amd64" + "windows_amd64" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-highmem-2", + "machine_type:n1-standard-16", "os:Debian-10.3", "pool:Skia" ], "env_prefixes": { - "GOROOT": [ - "go/go" - ], "PATH": [ - "go/go/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" + "bazelisk" ] }, "idempotent": true @@ -19834,7 +20537,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -19844,27 +20547,27 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -19897,6 +20600,43 @@ }, "idempotent": true }, + "Housekeeper-PerCommit-CheckGeneratedBazelFiles": { + "casSpec": "compile", + "cipd_packages": [ + { + "name": "skia/bots/bazelisk", + "path": "bazelisk", + "version": "version:0" + } + ], + "command": [ + "./check_generated_bazel_files", + "--project_id", + "skia-swarming-bots", + "--task_id", + "<(TASK_ID)", + "--task_name", + "Housekeeper-PerCommit-CheckGeneratedBazelFiles" + ], + "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" + ] + }, + "idempotent": true, + "max_attempts": 1, + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, "Housekeeper-PerCommit-CheckGeneratedFiles": { "caches": [ { @@ -19933,7 +20673,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -19943,37 +20683,37 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ccache_linux", @@ -19988,7 +20728,7 @@ { "name": "skia/bots/go", "path": "go", - "version": "version:14" + "version": "version:16" } ], "command": [ @@ -20062,17 +20802,17 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -20145,17 +20885,17 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -20236,7 +20976,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -20246,7 +20986,7 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/gsutil", @@ -20256,37 +20996,37 @@ { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/go", "path": "go", - "version": "version:14" + "version": "version:16" } ], "command": [ @@ -20371,7 +21111,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" } ], "command": [ @@ -20481,17 +21221,17 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/bazelisk", @@ -20563,17 +21303,17 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/bazelisk", @@ -20627,7 +21367,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -20637,12 +21377,12 @@ { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -20713,7 +21453,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -20723,37 +21463,37 @@ { "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "version:2@2.34.1.chromium.6" + "version": "version:2@2.35.1.chromium.8" }, { "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/go", "path": "go", - "version": "version:14" + "version": "version:16" } ], "command": [ @@ -20821,7 +21561,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -20831,22 +21571,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -20914,7 +21654,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -20924,22 +21664,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/lottie-samples", @@ -21012,7 +21752,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -21022,22 +21762,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -21105,7 +21845,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -21115,22 +21855,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -21185,98 +21925,6 @@ "perf" ] }, - "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Mskp_Skpbench": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "skpbench", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/linux-arm64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "name": "infra/3pp/tools/cpython3/linux-arm64", - "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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "skia/infra/bots/run_recipe.py", - "${ISOLATED_OUTDIR}", - "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Mskp_Skpbench\",\"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-arm64-Release-Android", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateMSKP", - "Housekeeper-PerCommit-IsolateSKP" - ], - "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:exynos990", - "os:Android", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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": [ - "perf" - ] - }, "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Skpbench": { "caches": [ { @@ -21289,7 +21937,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -21299,22 +21947,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -21381,7 +22029,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -21391,22 +22039,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -21474,7 +22122,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -21484,22 +22132,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -21566,7 +22214,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -21576,22 +22224,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -21658,7 +22306,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -21668,22 +22316,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -21751,7 +22399,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -21761,22 +22409,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -21844,291 +22492,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "name": "infra/3pp/tools/cpython3/linux-arm64", - "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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "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)\"}", - "skia" - ], - "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" - ], - "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:starlte", - "os:Android", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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": [ - "perf" - ] - }, - "Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "perf", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/linux-arm64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "name": "infra/3pp/tools/cpython3/linux-arm64", - "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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "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)\"}", - "skia" - ], - "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" - ], - "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:starlte", - "os:Android", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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": [ - "perf" - ] - }, - "Perf-Android-Clang-JioNext-CPU-SnapdragonQM215-arm-Release-All-Android": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "perf", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/linux-arm64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "name": "infra/3pp/tools/cpython3/linux-arm64", - "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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/text_blob_traces", - "path": "text_blob_traces", - "version": "version:0" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "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\"}", - "skia" - ], - "dependencies": [ - "Build-Debian10-Clang-arm-Release-Android", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" - ], - "dimensions": [ - "device_os:RKQ1.210602.002", - "device_type:msm8937", - "os:Android", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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": [ - "perf" - ] - }, - "Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "perf", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/linux-arm64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -22138,22 +22502,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -22162,19 +22526,19 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm-Release-Android", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:LMY47V_1836172", - "device_type:grouper", + "device_os:QP1A.190711.020", + "device_type:starlte", "os:Android", "pool:Skia" ], @@ -22209,7 +22573,7 @@ "perf" ] }, - "Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android": { + "Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -22221,7 +22585,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -22231,22 +22595,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -22255,19 +22619,19 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:HUAWEIELE-L29", - "device_type:HWELE", + "device_os:QP1A.190711.020", + "device_type:starlte", "os:Android", "pool:Skia" ], @@ -22302,7 +22666,7 @@ "perf" ] }, - "Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan": { + "Perf-Android-Clang-JioNext-CPU-SnapdragonQM215-arm-Release-All-Android": { "caches": [ { "name": "vpython", @@ -22314,7 +22678,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -22324,22 +22688,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/text_blob_traces", + "path": "text_blob_traces", + "version": "version:0" } ], "command": [ @@ -22348,19 +22717,19 @@ "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-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\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:HUAWEIELE-L29", - "device_type:HWELE", + "device_os:RKQ1.210602.002", + "device_type:msm8937", "os:Android", "pool:Skia" ], @@ -22395,19 +22764,19 @@ "perf" ] }, - "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Mskp_Skpbench": { + "Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "skpbench", + "casSpec": "perf", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -22417,22 +22786,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -22440,19 +22809,20 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Mskp_Skpbench\",\"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)\"}", + "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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm-Release-Android", "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateMSKP", - "Housekeeper-PerCommit-IsolateSKP" + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:PPR1.180610.009", - "device_type:taimen", + "device_os:LMY47V_1836172", + "device_type:grouper", "os:Android", "pool:Skia" ], @@ -22487,19 +22857,19 @@ "perf" ] }, - "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Skpbench": { + "Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "skpbench", + "casSpec": "perf", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -22509,22 +22879,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -22532,19 +22902,20 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Skpbench\",\"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)\"}", + "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)\"}", "skia" ], "dependencies": [ "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateMSKP", - "Housekeeper-PerCommit-IsolateSKP" + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:PPR1.180610.009", - "device_type:taimen", + "device_os:HUAWEIELE-L29", + "device_type:HWELE", "os:Android", "pool:Skia" ], @@ -22579,19 +22950,19 @@ "perf" ] }, - "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Vulkan_Skpbench": { + "Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "skpbench", + "casSpec": "perf", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -22601,22 +22972,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -22624,19 +22995,20 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Vulkan_Skpbench\",\"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)\"}", + "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)\"}", "skia" ], "dependencies": [ "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateMSKP", - "Housekeeper-PerCommit-IsolateSKP" + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:PPR1.180610.009", - "device_type:taimen", + "device_os:HUAWEIELE-L29", + "device_type:HWELE", "os:Android", "pool:Skia" ], @@ -22683,7 +23055,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -22693,22 +23065,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -22776,7 +23148,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -22786,22 +23158,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -22869,7 +23241,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -22879,22 +23251,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -22962,7 +23334,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -22972,22 +23344,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -23055,7 +23427,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -23065,22 +23437,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -23148,7 +23520,198 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" + }, + { + "name": "infra/3pp/tools/cpython3/linux-arm64", + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "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)\"}", + "skia" + ], + "dependencies": [ + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" + ], + "dimensions": [ + "device_os:QP1A.190711.020", + "device_type:sargo", + "os:Android", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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": [ + "perf" + ] + }, + "Perf-Android-Clang-Pixel4-CPU-Snapdragon855-arm64-Release-All-Android_Wuffs": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "perf", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/linux-arm64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "name": "infra/3pp/tools/cpython3/linux-arm64", + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/text_blob_traces", + "path": "text_blob_traces", + "version": "version:0" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "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\"}", + "skia" + ], + "dependencies": [ + "Build-Debian10-Clang-arm64-Release-Android_Wuffs", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" + ], + "dimensions": [ + "device_os:RPB2.200611.009", + "device_type:flame", + "os:Android", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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": [ + "perf" + ] + }, + "Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "perf", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/linux-arm64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -23158,22 +23721,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -23182,19 +23745,19 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:sargo", + "device_os:RPB2.200611.009", + "device_type:flame", "os:Android", "pool:Skia" ], @@ -23229,7 +23792,7 @@ "perf" ] }, - "Perf-Android-Clang-Pixel4-CPU-Snapdragon855-arm64-Release-All-Android_Wuffs": { + "Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -23241,7 +23804,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -23251,27 +23814,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/text_blob_traces", - "path": "text_blob_traces", - "version": "version:0" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -23280,11 +23838,11 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Wuffs", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -23327,7 +23885,7 @@ "perf" ] }, - "Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android": { + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -23339,7 +23897,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -23349,22 +23907,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -23373,7 +23931,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-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)\"}", "skia" ], "dependencies": [ @@ -23384,8 +23942,8 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:RPB2.200611.009", - "device_type:flame", + "device_os:QD1A.190821.011.C4", + "device_type:coral", "os:Android", "pool:Skia" ], @@ -23420,19 +23978,19 @@ "perf" ] }, - "Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "perf", + "casSpec": "skpbench", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -23442,22 +24000,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -23465,20 +24023,19 @@ "-u", "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)\"}", + "skpbench", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_AllPathsVolatile_Skpbench\",\"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-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" + "Housekeeper-PerCommit-IsolateMSKP", + "Housekeeper-PerCommit-IsolateSKP" ], "dimensions": [ - "device_os:RPB2.200611.009", - "device_type:flame", + "device_os:QD1A.190821.011.C4", + "device_type:coral", "os:Android", "pool:Skia" ], @@ -23513,7 +24070,99 @@ "perf" ] }, - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android": { + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Skpbench": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "skpbench", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/linux-arm64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "name": "infra/3pp/tools/cpython3/linux-arm64", + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", + "skpbench", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Skpbench\",\"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-arm64-Release-Android", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateMSKP", + "Housekeeper-PerCommit-IsolateSKP" + ], + "dimensions": [ + "device_os:QD1A.190821.011.C4", + "device_type:coral", + "os:Android", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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": [ + "perf" + ] + }, + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -23525,7 +24174,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -23535,22 +24184,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -23559,11 +24208,11 @@ "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_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -23606,7 +24255,7 @@ "perf" ] }, - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_AllPathsVolatile_Skpbench": { + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", @@ -23618,7 +24267,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -23628,22 +24277,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -23652,11 +24301,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_AllPathsVolatile_Skpbench\",\"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\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench\",\"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-arm64-Release-Android", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateMSKP", "Housekeeper-PerCommit-IsolateSKP" @@ -23698,7 +24347,7 @@ "perf" ] }, - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Skpbench": { + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_Skpbench": { "caches": [ { "name": "vpython", @@ -23710,7 +24359,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -23720,22 +24369,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -23744,11 +24393,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Skpbench\",\"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\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_Skpbench\",\"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-arm64-Release-Android", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateMSKP", "Housekeeper-PerCommit-IsolateSKP" @@ -23790,7 +24439,7 @@ "perf" ] }, - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { + "Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -23802,7 +24451,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -23812,22 +24461,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -23836,19 +24485,19 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QD1A.190821.011.C4", - "device_type:coral", + "device_os:RD1A.200810.022.A4", + "device_type:redfin", "os:Android", "pool:Skia" ], @@ -23883,19 +24532,19 @@ "perf" ] }, - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench": { + "Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "skpbench", + "casSpec": "perf", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -23905,22 +24554,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -23928,19 +24577,20 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench\",\"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)\"}", + "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)\"}", "skia" ], "dependencies": [ "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateMSKP", - "Housekeeper-PerCommit-IsolateSKP" + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QD1A.190821.011.C4", - "device_type:coral", + "device_os:RD1A.200810.022.A4", + "device_type:redfin", "os:Android", "pool:Skia" ], @@ -23975,19 +24625,19 @@ "perf" ] }, - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_Skpbench": { + "Perf-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "skpbench", + "casSpec": "perf", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -23997,22 +24647,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -24020,19 +24670,20 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_Skpbench\",\"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)\"}", + "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)\"}", "skia" ], "dependencies": [ "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateMSKP", - "Housekeeper-PerCommit-IsolateSKP" + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QD1A.190821.011.C4", - "device_type:coral", + "device_os:SD1A.210817.037", + "device_type:oriole", "os:Android", "pool:Skia" ], @@ -24067,7 +24718,7 @@ "perf" ] }, - "Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android": { + "Perf-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android": { "caches": [ { "name": "vpython", @@ -24079,7 +24730,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -24089,22 +24740,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -24113,19 +24764,19 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:RD1A.200810.022.A4", - "device_type:redfin", + "device_os:SP2A.211004.001", + "device_type:wembley", "os:Android", "pool:Skia" ], @@ -24160,7 +24811,7 @@ "perf" ] }, - "Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan": { + "Perf-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All": { "caches": [ { "name": "vpython", @@ -24172,7 +24823,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -24182,22 +24833,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -24206,21 +24857,21 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm-Release-Chromebook_GLES", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:RD1A.200810.022.A4", - "device_type:redfin", - "os:Android", - "pool:Skia" + "gpu:MaliT860", + "os:ChromeOS", + "pool:Skia", + "release_version:14092.77.0" ], "environment": { "RECIPES_USE_PY3": "true", @@ -24253,7 +24904,7 @@ "perf" ] }, - "Perf-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan": { + "Perf-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -24265,7 +24916,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -24275,22 +24926,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -24299,21 +24950,21 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-x86_64-Release-Chromebook_GLES", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:SD1A.210817.037", - "device_type:oriole", - "os:Android", - "pool:Skia" + "gpu:IntelUHDGraphics605", + "os:ChromeOS", + "pool:Skia", + "release_version:14233.0.0" ], "environment": { "RECIPES_USE_PY3": "true", @@ -24346,7 +24997,7 @@ "perf" ] }, - "Perf-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android": { + "Perf-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All": { "caches": [ { "name": "vpython", @@ -24358,7 +25009,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -24368,22 +25019,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -24392,21 +25043,21 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm-Release-Android", + "Build-Debian10-Clang-arm-Release-Chromebook_GLES", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:SP2A.211004.001", - "device_type:wembley", - "os:Android", - "pool:Skia" + "gpu:Adreno618", + "os:ChromeOS", + "pool:Skia", + "release_version:14150.39.0" ], "environment": { "RECIPES_USE_PY3": "true", @@ -24439,7 +25090,7 @@ "perf" ] }, - "Perf-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All": { + "Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -24451,7 +25102,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -24461,22 +25112,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -24485,21 +25136,21 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm-Release-Chromebook_GLES", + "Build-Debian10-Clang-x86_64-Release-Chromebook_GLES", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "gpu:MaliT860", + "gpu:RadeonVega3", "os:ChromeOS", "pool:Skia", - "release_version:14092.77.0" + "release_version:14233.0.0" ], "environment": { "RECIPES_USE_PY3": "true", @@ -24532,7 +25183,7 @@ "perf" ] }, - "Perf-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All": { + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -24542,34 +25193,49 @@ "casSpec": "perf", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-arm64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-arm64", + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -24578,21 +25244,18 @@ "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-Debian10-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\\\",\\\"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": [ - "Build-Debian10-Clang-x86_64-Release-Chromebook_GLES", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" + "Build-Debian10-Clang-x86_64-Release", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:IntelUHDGraphics605", - "os:ChromeOS", - "pool:Skia", - "release_version:14233.0.0" + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -24625,7 +25288,7 @@ "perf" ] }, - "Perf-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All": { + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs": { "caches": [ { "name": "vpython", @@ -24635,34 +25298,49 @@ "casSpec": "perf", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-arm64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-arm64", + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -24671,21 +25349,18 @@ "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-Debian10-Clang-GCE-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\\\",\\\"GCE\\\",\\\"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": [ - "Build-Debian10-Clang-arm-Release-Chromebook_GLES", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" + "Build-Debian10-Clang-x86_64-Release", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:Adreno618", - "os:ChromeOS", - "pool:Skia", - "release_version:14150.39.0" + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -24718,7 +25393,7 @@ "perf" ] }, - "Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All": { + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast": { "caches": [ { "name": "vpython", @@ -24728,34 +25403,49 @@ "casSpec": "perf", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-arm64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-arm64", + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -24764,21 +25454,18 @@ "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-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast\",\"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\\\",\\\"Fast\\\",\\\"model\\\",\\\"GCE\\\",\\\"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": [ - "Build-Debian10-Clang-x86_64-Release-Chromebook_GLES", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" + "Build-Debian10-Clang-x86_64-Release-Fast", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:RadeonVega3", - "os:ChromeOS", - "pool:Skia", - "release_version:14233.0.0" + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -24811,7 +25498,7 @@ "perf" ] }, - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN": { + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER": { "caches": [ { "name": "vpython", @@ -24823,7 +25510,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -24833,27 +25520,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -24863,7 +25545,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -24877,11 +25559,11 @@ "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-GCE-CPU-AVX2-x86_64-Debug-All-ASAN\",\"do_upload\":\"false\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--loops\\\",\\\"1\\\",\\\"--samples\\\",\\\"1\\\",\\\"--keepAlive\\\",\\\"true\\\",\\\"--match\\\",\\\"~^floor2int_undef$\\\",\\\"~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-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER\",\"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\\\",\\\"SK_FORCE_RASTER_PIPELINE_BLITTER\\\",\\\"model\\\",\\\"GCE\\\",\\\"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": [ - "Build-Debian10-Clang-x86_64-Debug-ASAN", + "Build-Debian10-Clang-x86_64-Release-SK_FORCE_RASTER_PIPELINE_BLITTER", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -24916,12 +25598,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "perf" ] }, - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs": { + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkottieTracing": { "caches": [ { "name": "vpython", @@ -24933,7 +25615,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -24943,27 +25625,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" + "name": "skia/bots/lottie-samples", + "path": "lottie-samples", + "version": "version:2" }, { "name": "skia/bots/skimage", @@ -24973,7 +25655,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -24986,12 +25668,12 @@ "-u", "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-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs\",\"do_upload\":\"false\",\"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\\\",\\\"--loops\\\",\\\"1\\\",\\\"--samples\\\",\\\"1\\\",\\\"--keepAlive\\\",\\\"true\\\",\\\"--match\\\",\\\"~^floor2int_undef$\\\",\\\"~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)\"}", + "perf_skottietrace", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkottieTracing\",\"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-Debug-ASAN", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -25026,12 +25708,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "perf" ] }, - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All": { + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Wuffs": { "caches": [ { "name": "vpython", @@ -25043,7 +25725,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -25053,22 +25735,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -25078,7 +25760,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -25092,11 +25774,11 @@ "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-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\\\",\\\"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-GCE-CPU-AVX2-x86_64-Release-All-Wuffs\",\"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\\\",\\\"Wuffs\\\",\\\"model\\\",\\\"GCE\\\",\\\"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": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-Clang-x86_64-Release-Wuffs", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -25136,7 +25818,7 @@ "perf" ] }, - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs": { + "Perf-Debian10-Clang-GCE-CPU-AVX512-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -25148,7 +25830,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -25158,22 +25840,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -25183,7 +25865,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -25197,7 +25879,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-GCE-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\\\",\\\"GCE\\\",\\\"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-GCE-CPU-AVX512-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\\\",\\\"AVX512\\\",\\\"model\\\",\\\"GCE\\\",\\\"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": [ @@ -25205,8 +25887,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", + "cpu:x86-64-Skylake_GCE", "os:Debian-10.3", "pool:Skia" ], @@ -25241,7 +25922,7 @@ "perf" ] }, - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast": { + "Perf-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader": { "caches": [ { "name": "vpython", @@ -25253,7 +25934,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -25263,22 +25944,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -25288,7 +25969,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -25302,11 +25983,11 @@ "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-GCE-CPU-AVX2-x86_64-Release-All-Fast\",\"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\\\",\\\"Fast\\\",\\\"model\\\",\\\"GCE\\\",\\\"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-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"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\\\",\\\"SwiftShader\\\",\\\"extra_config\\\",\\\"SwiftShader\\\",\\\"model\\\",\\\"GCE\\\",\\\"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": [ - "Build-Debian10-Clang-x86_64-Release-Fast", + "Build-Debian10-Clang-x86_64-Release-SwiftShader", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -25346,7 +26027,7 @@ "perf" ] }, - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER": { + "Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -25358,7 +26039,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -25368,22 +26049,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/mesa_intel_driver_linux", + "path": "mesa_intel_driver_linux", + "version": "version:15" }, { "name": "skia/bots/skimage", @@ -25393,7 +26079,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -25407,17 +26093,16 @@ "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-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER\",\"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\\\",\\\"SK_FORCE_RASTER_PIPELINE_BLITTER\\\",\\\"model\\\",\\\"GCE\\\",\\\"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\\\",\\\"--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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release-SK_FORCE_RASTER_PIPELINE_BLITTER", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", + "gpu:8086:22b1", + "os:Debian-10.10", "pool:Skia" ], "environment": { @@ -25451,7 +26136,7 @@ "perf" ] }, - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkottieTracing": { + "Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -25463,7 +26148,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -25473,27 +26158,32 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/lottie-samples", - "path": "lottie-samples", - "version": "version:2" + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" + }, + { + "name": "skia/bots/mesa_intel_driver_linux", + "path": "mesa_intel_driver_linux", + "version": "version:15" }, { "name": "skia/bots/skimage", @@ -25503,7 +26193,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -25516,18 +26206,17 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "perf_skottietrace", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkottieTracing\",\"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)\"}", + "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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", + "gpu:8086:22b1", + "os:Debian-10.10", "pool:Skia" ], "environment": { @@ -25561,7 +26250,7 @@ "perf" ] }, - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Wuffs": { + "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -25573,7 +26262,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -25583,22 +26272,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/mesa_intel_driver_linux", + "path": "mesa_intel_driver_linux", + "version": "version:15" }, { "name": "skia/bots/skimage", @@ -25608,7 +26302,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -25622,17 +26316,16 @@ "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-GCE-CPU-AVX2-x86_64-Release-All-Wuffs\",\"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\\\",\\\"Wuffs\\\",\\\"model\\\",\\\"GCE\\\",\\\"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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--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\\\",\\\"IntelIris640\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"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": [ - "Build-Debian10-Clang-x86_64-Release-Wuffs", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", + "gpu:8086:5926", + "os:Debian-10.10", "pool:Skia" ], "environment": { @@ -25666,7 +26359,7 @@ "perf" ] }, - "Perf-Debian10-Clang-GCE-CPU-AVX512-x86_64-Release-All": { + "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-ASAN_Vulkan": { "caches": [ { "name": "vpython", @@ -25678,7 +26371,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -25688,22 +26381,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" + }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" + }, + { + "name": "skia/bots/mesa_intel_driver_linux", + "path": "mesa_intel_driver_linux", + "version": "version:15" }, { "name": "skia/bots/skimage", @@ -25713,7 +26421,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -25727,16 +26435,16 @@ "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-GCE-CPU-AVX512-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\\\",\\\"AVX512\\\",\\\"model\\\",\\\"GCE\\\",\\\"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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--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": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-Clang-x86_64-Release-ASAN_Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Skylake_GCE", - "os:Debian-10.3", + "gpu:8086:5926", + "os:Debian-10.10", "pool:Skia" ], "environment": { @@ -25765,12 +26473,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "perf" ] }, - "Perf-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader": { + "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing": { "caches": [ { "name": "vpython", @@ -25782,7 +26490,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -25792,22 +26500,32 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/lottie-samples", + "path": "lottie-samples", + "version": "version:2" + }, + { + "name": "skia/bots/mesa_intel_driver_linux", + "path": "mesa_intel_driver_linux", + "version": "version:15" }, { "name": "skia/bots/skimage", @@ -25817,7 +26535,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -25830,18 +26548,17 @@ "-u", "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-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"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\\\",\\\"SwiftShader\\\",\\\"extra_config\\\",\\\"SwiftShader\\\",\\\"model\\\",\\\"GCE\\\",\\\"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)\"}", + "perf_skottietrace", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing\",\"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-SwiftShader", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", + "gpu:8086:5926", + "os:Debian-10.10", "pool:Skia" ], "environment": { @@ -25875,7 +26592,7 @@ "perf" ] }, - "Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All": { + "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -25887,7 +26604,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -25897,22 +26614,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -25927,7 +26649,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -25941,15 +26663,15 @@ "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"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": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:22b1", + "gpu:8086:5926", "os:Debian-10.10", "pool:Skia" ], @@ -25984,7 +26706,7 @@ "perf" ] }, - "Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan": { + "Perf-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -25996,7 +26718,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -26006,27 +26728,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -26041,7 +26758,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -26055,15 +26772,15 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release-Vulkan", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:22b1", + "gpu:8086:0f31", "os:Debian-10.10", "pool:Skia" ], @@ -26098,7 +26815,7 @@ "perf" ] }, - "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_Vulkan": { + "Perf-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -26110,7 +26827,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -26120,32 +26837,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" - }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -26160,7 +26867,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -26174,15 +26881,15 @@ "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-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-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\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Debug-ASAN_Vulkan", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:5926", + "gpu:8086:0102", "os:Debian-10.10", "pool:Skia" ], @@ -26212,24 +26919,24 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "perf" ] }, - "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All": { + "Perf-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "perf", + "casSpec": "pathkit", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -26239,42 +26946,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/mesa_intel_driver_linux", - "path": "mesa_intel_driver_linux", - "version": "version:15" - }, - { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -26282,18 +26969,20 @@ "-u", "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--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\\\",\\\"IntelIris640\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"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)\"}", + "perf_pathkit", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-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": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-EMCC-asmjs-Release-PathKit", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:5926", - "os:Debian-10.10", - "pool:Skia" + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia", + "docker_installed:true" ], "environment": { "RECIPES_USE_PY3": "true", @@ -26326,19 +27015,19 @@ "perf" ] }, - "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing": { + "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "perf", + "casSpec": "pathkit", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -26348,47 +27037,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/lottie-samples", - "path": "lottie-samples", - "version": "version:2" - }, - { - "name": "skia/bots/mesa_intel_driver_linux", - "path": "mesa_intel_driver_linux", - "version": "version:15" - }, - { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -26396,18 +27060,20 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "perf_skottietrace", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing\",\"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)\"}", + "perf_pathkit", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-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": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-EMCC-wasm-Release-PathKit", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:5926", - "os:Debian-10.10", - "pool:Skia" + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia", + "docker_installed:true" ], "environment": { "RECIPES_USE_PY3": "true", @@ -26440,19 +27106,233 @@ "perf" ] }, - "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan": { + "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_CanvasPerf": { + "casSpec": "puppeteer", + "cipd_packages": [ + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/node", + "path": "node", + "version": "version:3" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + } + ], + "command": [ + "./perf_puppeteer_canvas", + "--project_id", + "skia-swarming-bots", + "--git_hash", + "<(REVISION)", + "--task_id", + "<(TASK_ID)", + "--task_name", + "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_CanvasPerf", + "--canvaskit_bin_path", + "./build", + "--node_bin_path", + "./node/node/bin", + "--benchmark_path", + "./tools/perf-canvaskit-puppeteer", + "--output_path", + "perf", + "--os_trace", + "Debian10", + "--model_trace", + "GCE", + "--cpu_or_gpu_trace", + "CPU", + "--cpu_or_gpu_value_trace", + "AVX2", + "--webgl_version", + "2" + ], + "dependencies": [ + "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", + "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" + ], + "env_prefixes": { + "PATH": [ + "node/node/bin" + ] + }, + "execution_timeout_ns": 3600000000000, + "io_timeout_ns": 3600000000000, + "outputs": [ + "perf" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, + "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP": { + "casSpec": "puppeteer", + "cipd_packages": [ + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/node", + "path": "node", + "version": "version:3" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + } + ], + "command": [ + "./perf_puppeteer_render_skps", + "--project_id", + "skia-swarming-bots", + "--git_hash", + "<(REVISION)", + "--task_id", + "<(TASK_ID)", + "--task_name", + "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP", + "--canvaskit_bin_path", + "./build", + "--skps_path", + "./skp", + "--node_bin_path", + "./node/node/bin", + "--benchmark_path", + "./tools/perf-canvaskit-puppeteer", + "--output_path", + "perf", + "--os_trace", + "Debian10", + "--model_trace", + "GCE", + "--cpu_or_gpu_trace", + "CPU", + "--cpu_or_gpu_value_trace", + "AVX2", + "--webgl_version", + "2" + ], + "dependencies": [ + "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", + "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" + ], + "env_prefixes": { + "PATH": [ + "node/node/bin" + ] + }, + "execution_timeout_ns": 3600000000000, + "io_timeout_ns": 3600000000000, + "outputs": [ + "perf" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, + "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_SkottieFrames": { + "casSpec": "puppeteer", + "cipd_packages": [ + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/node", + "path": "node", + "version": "version:3" + }, + { + "name": "skia/internal/lotties_with_assets", + "path": "lotties_with_assets", + "version": "version:1" + } + ], + "command": [ + "./perf_puppeteer_skottie_frames", + "--project_id", + "skia-swarming-bots", + "--git_hash", + "<(REVISION)", + "--task_id", + "<(TASK_ID)", + "--task_name", + "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_SkottieFrames", + "--canvaskit_bin_path", + "./build", + "--lotties_path", + "./lotties_with_assets", + "--node_bin_path", + "./node/node/bin", + "--benchmark_path", + "./tools/perf-canvaskit-puppeteer", + "--output_path", + "perf", + "--os_trace", + "Debian10", + "--model_trace", + "GCE", + "--cpu_or_gpu_trace", + "CPU", + "--cpu_or_gpu_value_trace", + "AVX2", + "--webgl_version", + "2" + ], + "dependencies": [ + "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", + "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" + ], + "env_prefixes": { + "PATH": [ + "node/node/bin" + ] + }, + "execution_timeout_ns": 3600000000000, + "io_timeout_ns": 3600000000000, + "outputs": [ + "perf" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, + "Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "perf", + "casSpec": "lottie-web", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -26462,32 +27342,32 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "name": "skia/bots/lottie-samples", + "path": "lottie-samples", + "version": "version:2" }, { - "name": "skia/bots/mesa_intel_driver_linux", - "path": "mesa_intel_driver_linux", - "version": "version:15" + "name": "skia/bots/node", + "path": "node", + "version": "version:3" }, { "name": "skia/bots/skimage", @@ -26497,7 +27377,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -26510,17 +27390,17 @@ "-u", "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"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)\"}", + "perf_skottiewasm_lottieweb", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb\",\"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", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:5926", - "os:Debian-10.10", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", "pool:Skia" ], "environment": { @@ -26554,7 +27434,7 @@ "perf" ] }, - "Perf-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All": { + "Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -26566,7 +27446,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -26576,27 +27456,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/mesa_intel_driver_linux", - "path": "mesa_intel_driver_linux", - "version": "version:15" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -26606,7 +27481,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -26620,16 +27495,16 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian11-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0f31", - "os:Debian-10.10", + "gpu:10de:2489-460.91.03", + "os:Debian-11.2", "pool:Skia" ], "environment": { @@ -26663,7 +27538,7 @@ "perf" ] }, - "Perf-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All": { + "Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-ASAN": { "caches": [ { "name": "vpython", @@ -26675,7 +27550,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -26685,27 +27560,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/mesa_intel_driver_linux", - "path": "mesa_intel_driver_linux", - "version": "version:15" + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" }, { "name": "skia/bots/skimage", @@ -26715,7 +27590,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -26729,16 +27604,16 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian11-Clang-x86_64-Release-ASAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0102", - "os:Debian-10.10", + "gpu:10de:2489-460.91.03", + "os:Debian-11.2", "pool:Skia" ], "environment": { @@ -26767,49 +27642,64 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "perf" ] }, - "Perf-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit": { + "Perf-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "pathkit", + "casSpec": "perf", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "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" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -26817,20 +27707,18 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "perf_pathkit", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-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)\"}", + "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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-EMCC-asmjs-Release-PathKit", + "Build-Mac-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "gpu:8086:591e", + "os:Mac-10.13.6", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -26863,44 +27751,59 @@ "perf" ] }, - "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit": { + "Perf-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All-CommandBuffer": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "pathkit", + "casSpec": "perf", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "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" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -26908,20 +27811,18 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "perf_pathkit", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-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)\"}", + "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-CommandBuffer\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~^desk_micrographygirlsvg.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\\\",\\\"IntelHD615\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"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": [ - "Build-Debian10-EMCC-wasm-Release-PathKit", + "Build-Mac-Clang-x86_64-Release-CommandBuffer", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "gpu:8086:591e", + "os:Mac-10.13.6", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -26954,268 +27855,148 @@ "perf" ] }, - "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_CanvasPerf": { - "casSpec": "puppeteer", + "Perf-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "perf", "cipd_packages": [ { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "name": "infra/3pp/tools/cpython/mac-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" }, { - "name": "skia/bots/node", - "path": "node", - "version": "version:3" + "name": "infra/3pp/tools/cpython3/mac-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - } - ], - "command": [ - "./perf_puppeteer_canvas", - "--project_id", - "skia-swarming-bots", - "--git_hash", - "<(REVISION)", - "--task_id", - "<(TASK_ID)", - "--task_name", - "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_CanvasPerf", - "--canvaskit_bin_path", - "./build", - "--node_bin_path", - "./node/node/bin", - "--benchmark_path", - "./tools/perf-canvaskit-puppeteer", - "--output_path", - "perf", - "--os_trace", - "Debian10", - "--model_trace", - "GCE", - "--cpu_or_gpu_trace", - "CPU", - "--cpu_or_gpu_value_trace", - "AVX2", - "--webgl_version", - "2" - ], - "dependencies": [ - "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", - "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" - ], - "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia" - ], - "env_prefixes": { - "PATH": [ - "node/node/bin" - ] - }, - "execution_timeout_ns": 3600000000000, - "io_timeout_ns": 3600000000000, - "outputs": [ - "perf" - ], - "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" - }, - "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP": { - "casSpec": "puppeteer", - "cipd_packages": [ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/node", - "path": "node", - "version": "version:3" + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - } - ], - "command": [ - "./perf_puppeteer_render_skps", - "--project_id", - "skia-swarming-bots", - "--git_hash", - "<(REVISION)", - "--task_id", - "<(TASK_ID)", - "--task_name", - "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP", - "--canvaskit_bin_path", - "./build", - "--skps_path", - "./skp", - "--node_bin_path", - "./node/node/bin", - "--benchmark_path", - "./tools/perf-canvaskit-puppeteer", - "--output_path", - "perf", - "--os_trace", - "Debian10", - "--model_trace", - "GCE", - "--cpu_or_gpu_trace", - "CPU", - "--cpu_or_gpu_value_trace", - "AVX2", - "--webgl_version", - "2" - ], - "dependencies": [ - "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", - "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" - ], - "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia" - ], - "env_prefixes": { - "PATH": [ - "node/node/bin" - ] - }, - "execution_timeout_ns": 3600000000000, - "io_timeout_ns": 3600000000000, - "outputs": [ - "perf" - ], - "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" - }, - "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_SkottieFrames": { - "casSpec": "puppeteer", - "cipd_packages": [ + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, { - "name": "infra/tools/luci-auth/${platform}", + "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/node", - "path": "node", - "version": "version:3" + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" }, { - "name": "skia/internal/lotties_with_assets", - "path": "lotties_with_assets", - "version": "version:1" + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ - "./perf_puppeteer_skottie_frames", - "--project_id", - "skia-swarming-bots", - "--git_hash", - "<(REVISION)", - "--task_id", - "<(TASK_ID)", - "--task_name", - "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_SkottieFrames", - "--canvaskit_bin_path", - "./build", - "--lotties_path", - "./lotties_with_assets", - "--node_bin_path", - "./node/node/bin", - "--benchmark_path", - "./tools/perf-canvaskit-puppeteer", - "--output_path", + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", "perf", - "--os_trace", - "Debian10", - "--model_trace", - "GCE", - "--cpu_or_gpu_trace", - "CPU", - "--cpu_or_gpu_value_trace", - "AVX2", - "--webgl_version", - "2" + "{\"$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)\"}", + "skia" ], "dependencies": [ - "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", - "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" + "Build-Mac-Clang-x86_64-Release", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", + "cpu:x86-64-i7-4870HQ", + "os:Mac-10.13.6", "pool:Skia" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ - "node/node/bin" + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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, - "io_timeout_ns": 3600000000000, + "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": [ "perf" - ], - "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb": { + "Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "lottie-web", + "casSpec": "perf", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "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" }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/lottie-samples", - "path": "lottie-samples", - "version": "version:2" - }, - { - "name": "skia/bots/node", - "path": "node", - "version": "version:3" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -27225,7 +28006,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -27238,17 +28019,17 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "perf_skottiewasm_lottieweb", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb\",\"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)\"}", + "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)\"}", "skia" ], "dependencies": [ + "Build-Mac-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", + "gpu:1002:6821-4.0.20-3.2.8", + "os:Mac-10.13.6", "pool:Skia" ], "environment": { @@ -27282,7 +28063,7 @@ "perf" ] }, - "Perf-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All": { + "Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer": { "caches": [ { "name": "vpython", @@ -27294,7 +28075,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -27304,22 +28085,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -27329,7 +28110,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -27343,15 +28124,15 @@ "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-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"cmdbuffer_es2_dmsaa\\\",\\\"--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\\\",\\\"CommandBuffer\\\",\\\"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": [ - "Build-Mac-Clang-x86_64-Release", + "Build-Mac-Clang-x86_64-Release-CommandBuffer", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:591e", + "gpu:1002:6821-4.0.20-3.2.8", "os:Mac-10.13.6", "pool:Skia" ], @@ -27386,7 +28167,7 @@ "perf" ] }, - "Perf-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All-CommandBuffer": { + "Perf-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -27398,7 +28179,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -27408,22 +28189,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -27433,7 +28214,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -27447,15 +28228,16 @@ "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-CommandBuffer\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~^desk_micrographygirlsvg.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\\\",\\\"IntelHD615\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"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-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)\"}", "skia" ], "dependencies": [ - "Build-Mac-Clang-x86_64-Release-CommandBuffer", + "Build-Mac-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:591e", + "cpu:x86-64-i7-4578U", + "gpu:8086:0a2e", "os:Mac-10.13.6", "pool:Skia" ], @@ -27490,7 +28272,7 @@ "perf" ] }, - "Perf-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All": { + "Perf-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All-CommandBuffer": { "caches": [ { "name": "vpython", @@ -27502,7 +28284,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -27512,22 +28294,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -27537,7 +28319,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -27551,15 +28333,16 @@ "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-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All-CommandBuffer\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--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\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"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": [ - "Build-Mac-Clang-x86_64-Release", + "Build-Mac-Clang-x86_64-Release-CommandBuffer", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-i7-4870HQ", + "cpu:x86-64-i7-4578U", + "gpu:8086:0a2e", "os:Mac-10.13.6", "pool:Skia" ], @@ -27594,7 +28377,7 @@ "perf" ] }, - "Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All": { + "Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -27606,7 +28389,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -27616,22 +28399,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -27641,7 +28424,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -27655,7 +28438,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.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)\"}", "skia" ], "dependencies": [ @@ -27663,8 +28446,8 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:6821-4.0.20-3.2.8", - "os:Mac-10.13.6", + "gpu:8086:1626", + "os:Mac-10.15.1", "pool:Skia" ], "environment": { @@ -27698,7 +28481,7 @@ "perf" ] }, - "Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer": { + "Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-CommandBuffer": { "caches": [ { "name": "vpython", @@ -27710,7 +28493,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -27720,22 +28503,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -27745,7 +28528,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -27759,7 +28542,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-CommandBuffer\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"cmdbuffer_es2_dmsaa\\\",\\\"--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\\\",\\\"CommandBuffer\\\",\\\"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.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-CommandBuffer\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--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\\\",\\\"CommandBuffer\\\",\\\"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": [ @@ -27767,113 +28550,8 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:6821-4.0.20-3.2.8", - "os:Mac-10.13.6", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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": [ - "perf" - ] - }, - "Perf-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "perf", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/mac-amd64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - }, - { - "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}", - "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)\"}", - "skia" - ], - "dependencies": [ - "Build-Mac-Clang-x86_64-Release", - "Housekeeper-PerCommit-BundleRecipes" - ], - "dimensions": [ - "cpu:x86-64-i7-4578U", - "gpu:8086:0a2e", - "os:Mac-10.13.6", + "gpu:8086:1626", + "os:Mac-10.15.1", "pool:Skia" ], "environment": { @@ -27907,7 +28585,7 @@ "perf" ] }, - "Perf-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All-CommandBuffer": { + "Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -27919,7 +28597,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -27929,22 +28607,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -27954,7 +28632,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -27968,17 +28646,16 @@ "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-CommandBuffer\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--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\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"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.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)\"}", "skia" ], "dependencies": [ - "Build-Mac-Clang-x86_64-Release-CommandBuffer", + "Build-Mac-Clang-x86_64-Release-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-i7-4578U", - "gpu:8086:0a2e", - "os:Mac-10.13.6", + "gpu:8086:1626", + "os:Mac-10.15.1", "pool:Skia" ], "environment": { @@ -28012,7 +28689,7 @@ "perf" ] }, - "Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All": { + "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Graphite": { "caches": [ { "name": "vpython", @@ -28024,7 +28701,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -28034,22 +28711,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -28059,7 +28736,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -28073,16 +28750,16 @@ "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.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Graphite\",\"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\\\",\\\"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": [ - "Build-Mac-Clang-x86_64-Release", + "Build-Mac-Clang-x86_64-Release-Graphite", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:1626", - "os:Mac-10.15.1", + "gpu:1002:6821-4.0.20-3.2.8", + "os:Mac-10.15.7", "pool:Skia" ], "environment": { @@ -28116,7 +28793,7 @@ "perf" ] }, - "Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-CommandBuffer": { + "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -28128,7 +28805,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -28138,22 +28815,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -28163,7 +28840,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -28177,16 +28854,16 @@ "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-CommandBuffer\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--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\\\",\\\"CommandBuffer\\\",\\\"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.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)\"}", "skia" ], "dependencies": [ - "Build-Mac-Clang-x86_64-Release-CommandBuffer", + "Build-Mac-Clang-x86_64-Release-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:1626", - "os:Mac-10.15.1", + "gpu:1002:6821-4.0.20-3.2.8", + "os:Mac-10.15.7", "pool:Skia" ], "environment": { @@ -28220,7 +28897,7 @@ "perf" ] }, - "Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal": { + "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -28232,7 +28909,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -28242,22 +28919,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -28267,7 +28944,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -28281,16 +28958,16 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Mac-Clang-x86_64-Release-Metal", + "Build-Mac-Clang-arm64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:1626", - "os:Mac-10.15.1", + "cpu:arm64-64-Apple_M1", + "os:Mac-11.4", "pool:Skia" ], "environment": { @@ -28324,19 +29001,19 @@ "perf" ] }, - "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal": { + "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "perf", + "casSpec": "skpbench", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -28346,37 +29023,32 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" + "name": "skia/bots/mskp", + "path": "mskp", + "version": "version:5" }, { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "version": "version:373" } ], "command": [ @@ -28384,17 +29056,17 @@ "-u", "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)\"}", + "skpbench", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench\",\"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-Mac-Clang-x86_64-Release-Metal", + "Build-Mac-Clang-arm64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:6821-4.0.20-3.2.8", - "os:Mac-10.15.7", + "cpu:arm64-64-Apple_M1", + "os:Mac-11.4", "pool:Skia" ], "environment": { @@ -28428,7 +29100,7 @@ "perf" ] }, - "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All": { + "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite": { "caches": [ { "name": "vpython", @@ -28440,7 +29112,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -28450,22 +29122,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -28475,7 +29147,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -28489,110 +29161,11 @@ "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)\"}", - "skia" - ], - "dependencies": [ - "Build-Mac-Clang-arm64-Release", - "Housekeeper-PerCommit-BundleRecipes" - ], - "dimensions": [ - "cpu:arm64-64-Apple_M1", - "os:Mac-11.4", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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": [ - "perf" - ] - }, - "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "skpbench", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/mac-amd64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/mskp", - "path": "mskp", - "version": "version:5" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "skia/infra/bots/run_recipe.py", - "${ISOLATED_OUTDIR}", - "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench\",\"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\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite\",\"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\\\",\\\"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": [ - "Build-Mac-Clang-arm64-Release", + "Build-Mac-Clang-arm64-Release-Graphite", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -28643,7 +29216,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -28653,22 +29226,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mskp", @@ -28678,7 +29251,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" } ], "command": [ @@ -28742,7 +29315,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -28752,22 +29325,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mskp", @@ -28777,7 +29350,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" } ], "command": [ @@ -28841,7 +29414,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -28851,22 +29424,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -28876,7 +29449,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -28945,7 +29518,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -28955,22 +29528,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -28980,7 +29553,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -29049,7 +29622,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -29059,22 +29632,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -29084,7 +29657,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -29159,7 +29732,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -29169,22 +29742,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/linux_vulkan_sdk", @@ -29199,7 +29772,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -29262,7 +29835,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/node", @@ -29272,7 +29845,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" } ], "command": [ @@ -29331,7 +29904,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/node", @@ -29341,7 +29914,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" } ], "command": [ @@ -29400,7 +29973,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/node", @@ -29410,7 +29983,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" } ], "command": [ @@ -29471,7 +30044,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/node", @@ -29481,7 +30054,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" } ], "command": [ @@ -29542,7 +30115,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/node", @@ -29613,7 +30186,7 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/node", @@ -29690,7 +30263,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -29700,22 +30273,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/lottie-samples", @@ -29735,7 +30308,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -29804,7 +30377,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -29814,22 +30387,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/lottie-samples", @@ -29849,7 +30422,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -29917,7 +30490,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -29927,22 +30500,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -29952,7 +30525,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -30021,7 +30594,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -30031,22 +30604,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -30056,7 +30629,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -30125,7 +30698,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -30135,22 +30708,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mskp", @@ -30160,7 +30733,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" } ], "command": [ @@ -30224,7 +30797,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -30234,22 +30807,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -30259,7 +30832,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -30316,19 +30889,425 @@ "perf" ] }, - "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench": { + "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "skpbench", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/windows-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/mskp", + "path": "mskp", + "version": "version:5" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", + "skpbench", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench\",\"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-Win-Clang-x86_64-Release-Vulkan", + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "gpu:1002:6646-26.20.13031.18002", + "os:Windows-10-19044", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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": [ + "perf" + ] + }, + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "perf", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/windows-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "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}", + "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)\"}", + "skia" + ], + "dependencies": [ + "Build-Win-Clang-x86_64-Release", + "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/cpython", + "cipd_bin_packages/cpython/bin", + "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": [ + "perf" + ] + }, + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "perf", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/windows-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "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}", + "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)\"}", + "skia" + ], + "dependencies": [ + "Build-Win-Clang-x86_64-Release-ANGLE", + "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/cpython", + "cipd_bin_packages/cpython/bin", + "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": [ + "perf" + ] + }, + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-AllPathsVolatile_Skpbench": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "skpbench", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/windows-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/mskp", + "path": "mskp", + "version": "version:5" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", + "skpbench", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-AllPathsVolatile_Skpbench\",\"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-Win-Clang-x86_64-Release", + "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/cpython", + "cipd_bin_packages/cpython/bin", + "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": [ + "perf" + ] + }, + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "skpbench", + "casSpec": "perf", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -30338,32 +31317,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/mskp", - "path": "mskp", - "version": "version:5" + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" }, { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -30371,8 +31355,8 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench\",\"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)\"}", + "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\\\",\\\"~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": [ @@ -30380,8 +31364,8 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:6646-26.20.13031.18002", - "os:Windows-10-19044", + "gpu:10de:1cb3-30.0.15.1179", + "os:Windows-10-19043", "pool:Skia" ], "environment": { @@ -30415,19 +31399,19 @@ "perf" ] }, - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "perf", + "casSpec": "skpbench", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -30437,37 +31421,32 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" + "name": "skia/bots/mskp", + "path": "mskp", + "version": "version:5" }, { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "version": "version:373" } ], "command": [ @@ -30475,12 +31454,12 @@ "-u", "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)\"}", + "skpbench", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench\",\"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-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -30519,19 +31498,19 @@ "perf" ] }, - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE": { + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "perf", + "casSpec": "skpbench", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -30541,37 +31520,32 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" + "name": "skia/bots/mskp", + "path": "mskp", + "version": "version:5" }, { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "version": "version:373" } ], "command": [ @@ -30579,12 +31553,12 @@ "-u", "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)\"}", + "skpbench", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench\",\"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-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -30623,7 +31597,7 @@ "perf" ] }, - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-AllPathsVolatile_Skpbench": { + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench_DDLTotal_9x9": { "caches": [ { "name": "vpython", @@ -30635,7 +31609,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -30645,22 +31619,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mskp", @@ -30670,7 +31644,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" } ], "command": [ @@ -30679,11 +31653,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-AllPathsVolatile_Skpbench\",\"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\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench_DDLTotal_9x9\",\"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-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -30722,7 +31696,7 @@ "perf" ] }, - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { + "Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -30734,7 +31708,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -30744,22 +31718,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -30769,7 +31743,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -30783,16 +31757,16 @@ "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\\\",\\\"~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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:8086:162b-20.19.15.4963", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -30826,19 +31800,19 @@ "perf" ] }, - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench": { + "Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "skpbench", + "casSpec": "perf", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -30848,32 +31822,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/mskp", - "path": "mskp", - "version": "version:5" + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" }, { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -30881,17 +31860,17 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench\",\"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)\"}", + "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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Release-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:8086:162b-20.19.15.4963", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -30925,19 +31904,19 @@ "perf" ] }, - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench": { + "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "skpbench", + "casSpec": "perf", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -30947,32 +31926,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/mskp", - "path": "mskp", - "version": "version:5" + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" }, { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -30980,17 +31964,17 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench\",\"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)\"}", + "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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:8086:1926-26.20.100.7463", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -31024,19 +32008,19 @@ "perf" ] }, - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench_DDLTotal_9x9": { + "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "skpbench", + "casSpec": "perf", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -31046,32 +32030,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/mskp", - "path": "mskp", - "version": "version:5" + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" }, { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -31079,8 +32068,112 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "skpbench", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench_DDLTotal_9x9\",\"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)\"}", + "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)\"}", + "skia" + ], + "dependencies": [ + "Build-Win-Clang-x86_64-Release-ANGLE", + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "gpu:8086:1926-26.20.100.7463", + "os:Windows-10-19044", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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": [ + "perf" + ] + }, + "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "perf", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/windows-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "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}", + "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)\"}", "skia" ], "dependencies": [ @@ -31088,8 +32181,8 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:8086:1926-26.20.100.7463", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -31123,7 +32216,7 @@ "perf" ] }, - "Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All": { + "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -31135,7 +32228,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -31145,22 +32238,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -31170,7 +32263,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -31184,7 +32277,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-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)\"}", "skia" ], "dependencies": [ @@ -31192,7 +32285,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:162b-20.19.15.4963", + "gpu:8086:3ea5-26.20.100.7463", "os:Windows-10-19044", "pool:Skia" ], @@ -31227,7 +32320,7 @@ "perf" ] }, - "Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE": { + "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -31239,7 +32332,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -31249,22 +32342,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -31274,7 +32367,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -31288,7 +32381,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-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)\"}", "skia" ], "dependencies": [ @@ -31296,7 +32389,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:162b-20.19.15.4963", + "gpu:8086:3ea5-26.20.100.7463", "os:Windows-10-19044", "pool:Skia" ], @@ -31331,7 +32424,7 @@ "perf" ] }, - "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All": { + "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -31343,7 +32436,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -31353,22 +32446,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -31378,7 +32471,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -31392,15 +32485,15 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:1926-26.20.100.7463", + "gpu:8086:3ea5-26.20.100.7463", "os:Windows-10-19044", "pool:Skia" ], @@ -31435,7 +32528,7 @@ "perf" ] }, - "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE": { + "Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -31447,7 +32540,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -31457,22 +32550,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -31482,7 +32575,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -31496,15 +32589,15 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:1926-26.20.100.7463", + "gpu:10de:2489-30.0.15.1165", "os:Windows-10-19044", "pool:Skia" ], @@ -31539,7 +32632,7 @@ "perf" ] }, - "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan": { + "Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -31551,7 +32644,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -31561,22 +32654,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -31586,7 +32679,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -31600,7 +32693,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-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)\"}", "skia" ], "dependencies": [ @@ -31608,7 +32701,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:1926-26.20.100.7463", + "gpu:10de:2489-30.0.15.1165", "os:Windows-10-19044", "pool:Skia" ], @@ -31643,7 +32736,7 @@ "perf" ] }, - "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All": { + "Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -31655,7 +32748,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -31665,22 +32758,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -31690,7 +32783,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -31704,7 +32797,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-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)\"}", "skia" ], "dependencies": [ @@ -31712,7 +32805,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:3ea5-26.20.100.7463", + "gpu:8086:0a16-20.19.15.4963", "os:Windows-10-19044", "pool:Skia" ], @@ -31747,7 +32840,7 @@ "perf" ] }, - "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE": { + "Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -31759,7 +32852,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -31769,22 +32862,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -31794,7 +32887,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -31808,7 +32901,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-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)\"}", "skia" ], "dependencies": [ @@ -31816,7 +32909,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:3ea5-26.20.100.7463", + "gpu:8086:0a16-20.19.15.4963", "os:Windows-10-19044", "pool:Skia" ], @@ -31851,7 +32944,7 @@ "perf" ] }, - "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan": { + "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -31863,7 +32956,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -31873,22 +32966,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -31898,7 +32991,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -31912,15 +33005,15 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:3ea5-26.20.100.7463", + "gpu:10de:11c0-26.21.14.4120", "os:Windows-10-19044", "pool:Skia" ], @@ -31955,7 +33048,7 @@ "perf" ] }, - "Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All": { + "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -31967,7 +33060,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -31977,22 +33070,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -32002,7 +33095,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -32016,15 +33109,15 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Release-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0a16-20.19.15.4963", + "gpu:10de:11c0-26.21.14.4120", "os:Windows-10-19044", "pool:Skia" ], @@ -32059,7 +33152,7 @@ "perf" ] }, - "Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE": { + "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -32071,7 +33164,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -32081,22 +33174,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -32106,7 +33199,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -32120,15 +33213,15 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0a16-20.19.15.4963", + "gpu:10de:11c0-26.21.14.4120", "os:Windows-10-19044", "pool:Skia" ], @@ -32163,7 +33256,7 @@ "perf" ] }, - "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All": { + "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -32175,7 +33268,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -32185,22 +33278,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -32210,7 +33303,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -32224,7 +33317,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-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)\"}", "skia" ], "dependencies": [ @@ -32232,7 +33325,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:11c0-26.21.14.4120", + "gpu:1002:683d-26.20.13031.18002", "os:Windows-10-19044", "pool:Skia" ], @@ -32267,7 +33360,7 @@ "perf" ] }, - "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE": { + "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -32279,7 +33372,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -32289,22 +33382,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -32314,7 +33407,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -32328,7 +33421,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-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)\"}", "skia" ], "dependencies": [ @@ -32336,7 +33429,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:11c0-26.21.14.4120", + "gpu:1002:683d-26.20.13031.18002", "os:Windows-10-19044", "pool:Skia" ], @@ -32371,7 +33464,7 @@ "perf" ] }, - "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan": { + "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -32383,7 +33476,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -32393,22 +33486,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -32418,7 +33511,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -32432,7 +33525,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-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)\"}", "skia" ], "dependencies": [ @@ -32440,7 +33533,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:11c0-26.21.14.4120", + "gpu:1002:683d-26.20.13031.18002", "os:Windows-10-19044", "pool:Skia" ], @@ -32475,7 +33568,7 @@ "perf" ] }, - "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All": { + "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -32487,7 +33580,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -32497,22 +33590,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -32522,7 +33615,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -32536,7 +33629,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-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)\"}", "skia" ], "dependencies": [ @@ -32544,7 +33637,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:683d-26.20.13031.18002", + "gpu:10de:1401-27.21.14.5671", "os:Windows-10-19044", "pool:Skia" ], @@ -32579,7 +33672,7 @@ "perf" ] }, - "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE": { + "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -32591,7 +33684,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -32601,22 +33694,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -32626,7 +33719,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -32640,7 +33733,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-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)\"}", "skia" ], "dependencies": [ @@ -32648,7 +33741,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:683d-26.20.13031.18002", + "gpu:10de:1401-27.21.14.5671", "os:Windows-10-19044", "pool:Skia" ], @@ -32683,7 +33776,7 @@ "perf" ] }, - "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan": { + "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -32695,7 +33788,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -32705,22 +33798,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -32730,7 +33823,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -32744,117 +33837,13 @@ "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-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)\"}", "skia" ], "dependencies": [ "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], - "dimensions": [ - "gpu:1002:683d-26.20.13031.18002", - "os:Windows-10-19044", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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": [ - "perf" - ] - }, - "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "perf", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/windows-amd64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - }, - { - "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}", - "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)\"}", - "skia" - ], - "dependencies": [ - "Build-Win-Clang-x86_64-Release", - "Housekeeper-PerCommit-BundleRecipes" - ], "dimensions": [ "gpu:10de:1401-27.21.14.5671", "os:Windows-10-19044", @@ -32891,7 +33880,7 @@ "perf" ] }, - "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE": { + "Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -32903,7 +33892,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -32913,22 +33902,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -32938,7 +33927,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -32952,16 +33941,16 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-MSVC-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-27.21.14.5671", - "os:Windows-10-19044", + "gpu:10de:1cb3-30.0.15.1179", + "os:Windows-10-19043", "pool:Skia" ], "environment": { @@ -32995,7 +33984,7 @@ "perf" ] }, - "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan": { + "Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -33007,7 +33996,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -33017,22 +34006,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -33042,7 +34031,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -33056,16 +34045,16 @@ "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-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\\\",\\\"~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": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-MSVC-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-27.21.14.5671", - "os:Windows-10-19044", + "gpu:10de:1cb3-30.0.15.1179", + "os:Windows-10-19043", "pool:Skia" ], "environment": { @@ -33099,7 +34088,7 @@ "perf" ] }, - "Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All": { + "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -33111,7 +34100,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -33121,22 +34110,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -33146,7 +34135,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -33160,16 +34149,17 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-MSVC-x86_64-Release", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Windows-Server-17763", "pool:Skia" ], "environment": { @@ -33203,7 +34193,7 @@ "perf" ] }, - "Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { + "Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -33213,49 +34203,39 @@ "casSpec": "perf", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "name": "infra/3pp/tools/cpython3/linux-arm64", "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "name": "skia/bots/ios-dev-image-13.6", + "path": "ios-dev-image-13.6", + "version": "version:0" } ], "command": [ @@ -33264,16 +34244,19 @@ "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\\\",\\\"~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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-MSVC-x86_64-Release-Vulkan", - "Housekeeper-PerCommit-BundleRecipes" + "Build-Mac-Clang-arm64-Release-iOS", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "device_type:iPad6,3", + "os:iOS-13.6", "pool:Skia" ], "environment": { @@ -33307,7 +34290,7 @@ "perf" ] }, - "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN": { + "Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -33317,49 +34300,39 @@ "casSpec": "perf", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "name": "infra/3pp/tools/cpython3/linux-arm64", "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "name": "skia/bots/ios-dev-image-13.6", + "path": "ios-dev-image-13.6", + "version": "version:0" } ], "command": [ @@ -33368,17 +34341,19 @@ "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-Debug-All-ASAN\",\"do_upload\":\"false\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--loops\\\",\\\"1\\\",\\\"--samples\\\",\\\"1\\\",\\\"--keepAlive\\\",\\\"true\\\",\\\"--match\\\",\\\"~^floor2int_undef$\\\",\\\"~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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-ASAN", - "Housekeeper-PerCommit-BundleRecipes" + "Build-Mac-Clang-arm64-Release-iOS_Metal", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Windows-Server-17763", + "device_type:iPad6,3", + "os:iOS-13.6", "pool:Skia" ], "environment": { @@ -33407,12 +34382,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "perf" ] }, - "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs": { + "Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -33422,49 +34397,39 @@ "casSpec": "perf", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "name": "infra/3pp/tools/cpython3/linux-arm64", "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "name": "skia/bots/ios-dev-image-13.3", + "path": "ios-dev-image-13.3", + "version": "version:0" } ], "command": [ @@ -33473,17 +34438,19 @@ "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-Debug-All-ASAN_BonusConfigs\",\"do_upload\":\"false\",\"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\\\",\\\"--loops\\\",\\\"1\\\",\\\"--samples\\\",\\\"1\\\",\\\"--keepAlive\\\",\\\"true\\\",\\\"--match\\\",\\\"~^floor2int_undef$\\\",\\\"~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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-ASAN", - "Housekeeper-PerCommit-BundleRecipes" + "Build-Mac-Clang-arm64-Release-iOS", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Windows-Server-17763", + "device_type:iPhone9,1", + "os:iOS-13.3.1", "pool:Skia" ], "environment": { @@ -33512,12 +34479,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "perf" ] }, - "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All": { + "Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -33527,49 +34494,39 @@ "casSpec": "perf", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "name": "infra/3pp/tools/cpython3/linux-arm64", "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "name": "skia/bots/ios-dev-image-13.3", + "path": "ios-dev-image-13.3", + "version": "version:0" } ], "command": [ @@ -33578,17 +34535,19 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release", - "Housekeeper-PerCommit-BundleRecipes" + "Build-Mac-Clang-arm64-Release-iOS_Metal", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Windows-Server-17763", + "device_type:iPhone9,1", + "os:iOS-13.3.1", "pool:Skia" ], "environment": { @@ -33622,7 +34581,7 @@ "perf" ] }, - "Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All": { + "Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -33634,7 +34593,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -33644,26 +34603,26 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ios-dev-image-13.6", - "path": "ios-dev-image-13.6", + "name": "skia/bots/ios-dev-image-13.3", + "path": "ios-dev-image-13.3", "version": "version:0" } ], @@ -33673,7 +34632,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-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)\"}", "skia" ], "dependencies": [ @@ -33684,8 +34643,8 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPad6,3", - "os:iOS-13.6", + "device_type:iPhone10,1", + "os:iOS-13.3.1", "pool:Skia" ], "environment": { @@ -33719,7 +34678,7 @@ "perf" ] }, - "Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal": { + "Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -33731,7 +34690,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -33741,26 +34700,26 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ios-dev-image-13.6", - "path": "ios-dev-image-13.6", + "name": "skia/bots/ios-dev-image-13.3", + "path": "ios-dev-image-13.3", "version": "version:0" } ], @@ -33770,7 +34729,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-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)\"}", "skia" ], "dependencies": [ @@ -33781,8 +34740,8 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPad6,3", - "os:iOS-13.6", + "device_type:iPhone10,1", + "os:iOS-13.3.1", "pool:Skia" ], "environment": { @@ -33816,7 +34775,7 @@ "perf" ] }, - "Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All": { + "Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -33828,7 +34787,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -33838,26 +34797,26 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ios-dev-image-13.3", - "path": "ios-dev-image-13.3", + "name": "skia/bots/ios-dev-image-13.6", + "path": "ios-dev-image-13.6", "version": "version:0" } ], @@ -33867,19 +34826,19 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Mac-Clang-arm64-Release-iOS", + "Build-Mac-Xcode11.4.1-arm64-Release-iOS", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone9,1", - "os:iOS-13.3.1", + "device_type:iPhone12,1", + "os:iOS-13.6", "pool:Skia" ], "environment": { @@ -33913,7 +34872,7 @@ "perf" ] }, - "Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal": { + "Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -33925,7 +34884,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -33935,26 +34894,26 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ios-dev-image-13.3", - "path": "ios-dev-image-13.3", + "name": "skia/bots/ios-dev-image-13.6", + "path": "ios-dev-image-13.6", "version": "version:0" } ], @@ -33964,19 +34923,19 @@ "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-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)\"}", "skia" ], "dependencies": [ - "Build-Mac-Clang-arm64-Release-iOS_Metal", + "Build-Mac-Xcode11.4.1-arm64-Release-iOS_Metal", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone9,1", - "os:iOS-13.3.1", + "device_type:iPhone12,1", + "os:iOS-13.6", "pool:Skia" ], "environment": { @@ -34010,49 +34969,49 @@ "perf" ] }, - "Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All": { + "Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Debug-All-Android": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "perf", + "casSpec": "test", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/ios-dev-image-13.3", - "path": "ios-dev-image-13.3", - "version": "version:0" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -34060,20 +35019,21 @@ "-u", "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)\"}", + "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLUnaryPositiveNegative_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"--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": [ - "Build-Mac-Clang-arm64-Release-iOS", + "Build-Debian10-Clang-arm-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone10,1", - "os:iOS-13.3.1", + "device_os:MOB30Q", + "device_type:sprout", + "os:Android", "pool:Skia" ], "environment": { @@ -34104,52 +35064,53 @@ "io_timeout_ns": 14400000000000, "max_attempts": 2, "outputs": [ - "perf" - ] + "test" + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal": { + "Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "perf", + "casSpec": "test", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/ios-dev-image-13.3", - "path": "ios-dev-image-13.3", - "version": "version:0" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -34157,20 +35118,21 @@ "-u", "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)\"}", + "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLUnaryPositiveNegative_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"--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": [ - "Build-Mac-Clang-arm64-Release-iOS_Metal", + "Build-Debian10-Clang-arm-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone10,1", - "os:iOS-13.3.1", + "device_os:MOB30Q", + "device_type:sprout", + "os:Android", "pool:Skia" ], "environment": { @@ -34201,52 +35163,53 @@ "io_timeout_ns": 14400000000000, "max_attempts": 2, "outputs": [ - "perf" - ] + "test" + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All": { + "Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Debug-All-Android": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "perf", + "casSpec": "test", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/ios-dev-image-13.6", - "path": "ios-dev-image-13.6", - "version": "version:0" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -34254,20 +35217,21 @@ "-u", "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)\"}", + "test", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"glesdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-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": [ - "Build-Mac-Xcode11.4.1-arm64-Release-iOS", + "Build-Debian10-Clang-arm64-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone12,1", - "os:iOS-13.6", + "device_os:QP1A.190711.020", + "device_type:exynos990", + "os:Android", "pool:Skia" ], "environment": { @@ -34298,52 +35262,53 @@ "io_timeout_ns": 14400000000000, "max_attempts": 2, "outputs": [ - "perf" - ] + "test" + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All-Metal": { + "Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Debug-All-Android_Vulkan": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "perf", + "casSpec": "test", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/ios-dev-image-13.6", - "path": "ios-dev-image-13.6", - "version": "version:0" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -34351,20 +35316,21 @@ "-u", "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)\"}", + "test", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"~VkPrepareForExternalIOQueueTransitionTest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-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": [ - "Build-Mac-Xcode11.4.1-arm64-Release-iOS_Metal", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone12,1", - "os:iOS-13.6", + "device_os:QP1A.190711.020", + "device_type:exynos990", + "os:Android", "pool:Skia" ], "environment": { @@ -34395,10 +35361,11 @@ "io_timeout_ns": 14400000000000, "max_attempts": 2, "outputs": [ - "perf" - ] + "test" + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Debug-All-Android": { + "Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -34410,7 +35377,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -34425,22 +35392,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -34449,19 +35416,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"--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-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"glesdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-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": [ - "Build-Debian10-Clang-arm-Debug-Android", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:MOB30Q", - "device_type:sprout", + "device_os:QP1A.190711.020", + "device_type:exynos990", "os:Android", "pool:Skia" ], @@ -34497,7 +35464,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android": { + "Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_NativeFonts": { "caches": [ { "name": "vpython", @@ -34509,7 +35476,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -34524,22 +35491,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -34548,19 +35515,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"--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-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android_NativeFonts\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_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-arm-Release-Android", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:MOB30Q", - "device_type:sprout", + "device_os:QP1A.190711.020", + "device_type:exynos990", "os:Android", "pool:Skia" ], @@ -34596,7 +35563,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Debug-All-Android": { + "Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -34608,7 +35575,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -34623,22 +35590,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -34647,11 +35614,11 @@ "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-GalaxyS20-GPU-MaliG77-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"glesdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-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-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"~VkPrepareForExternalIOQueueTransitionTest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-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": [ - "Build-Debian10-Clang-arm64-Debug-Android", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -34695,7 +35662,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Debug-All-Android_Vulkan": { + "Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -34707,7 +35674,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -34722,22 +35689,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -34746,19 +35713,19 @@ "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-GalaxyS20-GPU-MaliG77-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"--match\\\",\\\"~VkPrepareForExternalIOQueueTransitionTest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-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-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-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": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm64-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:exynos990", + "device_os:R16NW_G930FXXS2ERH6", + "device_type:herolte", "os:Android", "pool:Skia" ], @@ -34794,7 +35761,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android": { + "Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -34806,7 +35773,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -34821,22 +35788,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -34845,19 +35812,19 @@ "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-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"glesdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-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-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-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": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:exynos990", + "device_os:R16NW_G930FXXS2ERH6", + "device_type:herolte", "os:Android", "pool:Skia" ], @@ -34893,7 +35860,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_NativeFonts": { + "Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -34905,7 +35872,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -34920,22 +35887,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -34944,7 +35911,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-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android_NativeFonts\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_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-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-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": [ @@ -34955,8 +35922,8 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:exynos990", + "device_os:R16NW_G930FXXS2ERH6", + "device_type:herolte", "os:Android", "pool:Skia" ], @@ -34992,7 +35959,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan": { + "Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -35004,7 +35971,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -35019,22 +35986,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -35043,7 +36010,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-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"--match\\\",\\\"~VkPrepareForExternalIOQueueTransitionTest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS20-GPU-MaliG77-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-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-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": [ @@ -35054,8 +36021,8 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:exynos990", + "device_os:R16NW_G930FXXS2ERH6", + "device_type:herolte", "os:Android", "pool:Skia" ], @@ -35091,7 +36058,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android": { + "Test-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -35103,7 +36070,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -35118,22 +36085,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -35142,7 +36109,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-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-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-GalaxyS9-GPU-MaliG72-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS9-GPU-MaliG72-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": [ @@ -35153,8 +36120,8 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:R16NW_G930FXXS2ERH6", - "device_type:herolte", + "device_os:QP1A.190711.020", + "device_type:starlte", "os:Android", "pool:Skia" ], @@ -35190,7 +36157,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android_Vulkan": { + "Test-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Debug-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -35202,7 +36169,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -35217,22 +36184,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -35241,7 +36208,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-GalaxyS7_G930FD-GPU-MaliT880-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-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-GalaxyS9-GPU-MaliG72-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-GalaxyS9-GPU-MaliG72-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": [ @@ -35252,8 +36219,8 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:R16NW_G930FXXS2ERH6", - "device_type:herolte", + "device_os:QP1A.190711.020", + "device_type:starlte", "os:Android", "pool:Skia" ], @@ -35289,7 +36256,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android": { + "Test-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -35301,7 +36268,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -35316,22 +36283,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -35340,7 +36307,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-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-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-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS9-GPU-MaliG72-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": [ @@ -35351,8 +36318,8 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:R16NW_G930FXXS2ERH6", - "device_type:herolte", + "device_os:QP1A.190711.020", + "device_type:starlte", "os:Android", "pool:Skia" ], @@ -35388,7 +36355,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android_Vulkan": { + "Test-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -35400,7 +36367,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -35415,22 +36382,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -35439,7 +36406,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-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-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-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-GalaxyS9-GPU-MaliG72-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": [ @@ -35449,105 +36416,6 @@ "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], - "dimensions": [ - "device_os:R16NW_G930FXXS2ERH6", - "device_type:herolte", - "os:Android", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Debug-All-Android": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "test", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/linux-arm64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "name": "infra/3pp/tools/cpython3/linux-arm64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" - }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - } - ], - "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-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS9-GPU-MaliG72-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": [ - "Build-Debian10-Clang-arm64-Debug-Android", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" - ], "dimensions": [ "device_os:QP1A.190711.020", "device_type:starlte", @@ -35586,7 +36454,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Debug-All-Android_Vulkan": { + "Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -35598,7 +36466,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -35613,22 +36481,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -35637,19 +36505,19 @@ "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-GalaxyS9-GPU-MaliG72-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-GalaxyS9-GPU-MaliG72-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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:starlte", + "device_os:RKQ1.210602.002", + "device_type:msm8937", "os:Android", "pool:Skia" ], @@ -35685,7 +36553,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android": { + "Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android": { "caches": [ { "name": "vpython", @@ -35697,7 +36565,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -35712,22 +36580,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -35736,19 +36604,19 @@ "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-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-GalaxyS9-GPU-MaliG72-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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:starlte", + "device_os:RKQ1.210602.002", + "device_type:msm8937", "os:Android", "pool:Skia" ], @@ -35784,7 +36652,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan": { + "Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -35796,7 +36664,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -35811,22 +36679,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -35835,19 +36703,19 @@ "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-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-GalaxyS9-GPU-MaliG72-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-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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchCaseFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:starlte", + "device_os:LMY47V_1836172", + "device_type:grouper", "os:Android", "pool:Skia" ], @@ -35883,7 +36751,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android": { + "Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android": { "caches": [ { "name": "vpython", @@ -35895,7 +36763,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -35910,22 +36778,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -35934,19 +36802,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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-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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchCaseFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm-Debug-Android", + "Build-Debian10-Clang-arm-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:RKQ1.210602.002", - "device_type:msm8937", + "device_os:LMY47V_1836172", + "device_type:grouper", "os:Android", "pool:Skia" ], @@ -35982,7 +36850,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android": { + "Test-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -35994,7 +36862,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -36009,22 +36877,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -36033,19 +36901,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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-P30-GPU-MaliG76-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-P30-GPU-MaliG76-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": [ - "Build-Debian10-Clang-arm-Release-Android", + "Build-Debian10-Clang-arm64-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:RKQ1.210602.002", - "device_type:msm8937", + "device_os:HUAWEIELE-L29", + "device_type:HWELE", "os:Android", "pool:Skia" ], @@ -36081,7 +36949,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android": { + "Test-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android_DDL1_Vulkan": { "caches": [ { "name": "vpython", @@ -36093,7 +36961,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -36108,22 +36976,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -36132,19 +37000,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchCaseFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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-P30-GPU-MaliG76-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\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-P30-GPU-MaliG76-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": [ - "Build-Debian10-Clang-arm-Debug-Android", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:LMY47V_1836172", - "device_type:grouper", + "device_os:HUAWEIELE-L29", + "device_type:HWELE", "os:Android", "pool:Skia" ], @@ -36180,7 +37048,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android": { + "Test-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android_DDL3_Vulkan": { "caches": [ { "name": "vpython", @@ -36192,7 +37060,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -36207,22 +37075,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -36231,19 +37099,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchCaseFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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-P30-GPU-MaliG76-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\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-P30-GPU-MaliG76-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": [ - "Build-Debian10-Clang-arm-Release-Android", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:LMY47V_1836172", - "device_type:grouper", + "device_os:HUAWEIELE-L29", + "device_type:HWELE", "os:Android", "pool:Skia" ], @@ -36279,7 +37147,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android": { + "Test-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android_OOPRDDL_Vulkan": { "caches": [ { "name": "vpython", @@ -36291,7 +37159,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -36306,22 +37174,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -36330,11 +37198,11 @@ "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-P30-GPU-MaliG76-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-P30-GPU-MaliG76-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-P30-GPU-MaliG76-arm64-Debug-All-Android_OOPRDDL_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_OOPRDDL_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android_OOPRDDL_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-arm64-Debug-Android", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -36378,7 +37246,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android_DDL1_Vulkan": { + "Test-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -36390,7 +37258,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -36405,22 +37273,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -36429,7 +37297,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-P30-GPU-MaliG76-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\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-P30-GPU-MaliG76-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-P30-GPU-MaliG76-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-P30-GPU-MaliG76-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": [ @@ -36477,7 +37345,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android_DDL3_Vulkan": { + "Test-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -36489,7 +37357,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -36504,22 +37372,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -36528,11 +37396,11 @@ "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-P30-GPU-MaliG76-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\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-P30-GPU-MaliG76-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-P30-GPU-MaliG76-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-P30-GPU-MaliG76-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": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -36576,7 +37444,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android_OOPRDDL_Vulkan": { + "Test-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -36588,7 +37456,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -36603,22 +37471,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -36627,11 +37495,11 @@ "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-P30-GPU-MaliG76-arm64-Debug-All-Android_OOPRDDL_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_OOPRDDL_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android_OOPRDDL_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-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-P30-GPU-MaliG76-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": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -36675,7 +37543,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-P30-GPU-MaliG76-arm64-Debug-All-Android_Vulkan": { + "Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -36687,7 +37555,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -36702,22 +37570,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -36726,19 +37594,19 @@ "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-P30-GPU-MaliG76-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-P30-GPU-MaliG76-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\",\"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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm64-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:HUAWEIELE-L29", - "device_type:HWELE", + "device_os:PPR1.180610.009", + "device_type:taimen", "os:Android", "pool:Skia" ], @@ -36774,7 +37642,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android": { + "Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -36786,7 +37654,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -36801,22 +37669,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -36825,19 +37693,19 @@ "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-P30-GPU-MaliG76-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-P30-GPU-MaliG76-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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:HUAWEIELE-L29", - "device_type:HWELE", + "device_os:PPR1.180610.009", + "device_type:taimen", "os:Android", "pool:Skia" ], @@ -36873,7 +37741,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan": { + "Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -36885,7 +37753,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -36900,22 +37768,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -36924,19 +37792,19 @@ "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-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-P30-GPU-MaliG76-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\",\"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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:HUAWEIELE-L29", - "device_type:HWELE", + "device_os:PPR1.180610.009", + "device_type:taimen", "os:Android", "pool:Skia" ], @@ -36972,7 +37840,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android": { + "Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -36984,7 +37852,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -36999,22 +37867,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -37023,11 +37891,11 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Debug-Android", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -37071,7 +37939,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan": { + "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -37083,7 +37951,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -37098,22 +37966,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -37122,19 +37990,19 @@ "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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm64-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:PPR1.180610.009", - "device_type:taimen", + "device_os:PQ1A.190105.004", + "device_type:blueline", "os:Android", "pool:Skia" ], @@ -37170,7 +38038,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android": { + "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan": { "caches": [ { "name": "vpython", @@ -37182,7 +38050,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -37197,22 +38065,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -37221,19 +38089,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:PPR1.180610.009", - "device_type:taimen", + "device_os:PQ1A.190105.004", + "device_type:blueline", "os:Android", "pool:Skia" ], @@ -37269,7 +38137,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan": { + "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan": { "caches": [ { "name": "vpython", @@ -37281,7 +38149,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -37296,22 +38164,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -37320,19 +38188,19 @@ "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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:PPR1.180610.009", - "device_type:taimen", + "device_os:PQ1A.190105.004", + "device_type:blueline", "os:Android", "pool:Skia" ], @@ -37368,7 +38236,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android": { + "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_OOPRDDL_Vulkan": { "caches": [ { "name": "vpython", @@ -37380,7 +38248,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -37395,22 +38263,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -37419,11 +38287,11 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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_OOPRDDL_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_OOPRDDL_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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_OOPRDDL_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-arm64-Debug-Android", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -37467,7 +38335,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan": { + "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -37479,7 +38347,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -37494,22 +38362,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -37518,7 +38386,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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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_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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ @@ -37566,7 +38434,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan": { + "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -37578,7 +38446,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -37593,22 +38461,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -37617,11 +38485,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -37665,7 +38533,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_OOPRDDL_Vulkan": { + "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -37677,7 +38545,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -37692,22 +38560,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -37716,11 +38584,11 @@ "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_OOPRDDL_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_OOPRDDL_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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_OOPRDDL_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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -37764,7 +38632,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan": { + "Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -37776,7 +38644,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -37791,22 +38659,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -37815,19 +38683,19 @@ "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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm64-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:PQ1A.190105.004", - "device_type:blueline", + "device_os:QP1A.190711.020", + "device_type:sargo", "os:Android", "pool:Skia" ], @@ -37863,7 +38731,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android": { + "Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -37875,7 +38743,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -37890,22 +38758,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -37914,19 +38782,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:PQ1A.190105.004", - "device_type:blueline", + "device_os:QP1A.190711.020", + "device_type:sargo", "os:Android", "pool:Skia" ], @@ -37962,7 +38830,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan": { + "Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -37974,7 +38842,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -37989,22 +38857,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -38013,19 +38881,19 @@ "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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:PQ1A.190105.004", - "device_type:blueline", + "device_os:QP1A.190711.020", + "device_type:sargo", "os:Android", "pool:Skia" ], @@ -38061,7 +38929,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android": { + "Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -38073,7 +38941,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -38088,22 +38956,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -38112,11 +38980,11 @@ "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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Debug-Android", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -38160,7 +39028,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan": { + "Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30": { "caches": [ { "name": "vpython", @@ -38172,7 +39040,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -38187,22 +39055,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -38211,19 +39079,19 @@ "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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm64-Debug-Android_API30", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:sargo", + "device_os:RPB2.200611.009", + "device_type:flame", "os:Android", "pool:Skia" ], @@ -38259,7 +39127,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android": { + "Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -38271,7 +39139,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -38286,22 +39154,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -38310,19 +39178,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:sargo", + "device_os:RPB2.200611.009", + "device_type:flame", "os:Android", "pool:Skia" ], @@ -38358,7 +39226,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan": { + "Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30": { "caches": [ { "name": "vpython", @@ -38370,7 +39238,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -38385,22 +39253,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -38409,19 +39277,19 @@ "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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm64-Release-Android_API30", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QP1A.190711.020", - "device_type:sargo", + "device_os:RPB2.200611.009", + "device_type:flame", "os:Android", "pool:Skia" ], @@ -38457,7 +39325,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30": { + "Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -38469,7 +39337,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -38484,22 +39352,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -38508,11 +39376,11 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Debug-Android_API30", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -38556,7 +39424,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan": { + "Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -38568,7 +39436,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -38583,22 +39451,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -38607,19 +39475,19 @@ "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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm64-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:RPB2.200611.009", - "device_type:flame", + "device_os:QD1A.190821.011.C4", + "device_type:coral", "os:Android", "pool:Skia" ], @@ -38655,7 +39523,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30": { + "Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -38667,7 +39535,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -38682,22 +39550,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -38706,19 +39574,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Release-Android_API30", + "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:RPB2.200611.009", - "device_type:flame", + "device_os:QD1A.190821.011.C4", + "device_type:coral", "os:Android", "pool:Skia" ], @@ -38754,7 +39622,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { + "Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -38766,7 +39634,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -38781,22 +39649,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -38805,19 +39673,19 @@ "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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:RPB2.200611.009", - "device_type:flame", + "device_os:QD1A.190821.011.C4", + "device_type:coral", "os:Android", "pool:Skia" ], @@ -38853,7 +39721,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android": { + "Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -38865,7 +39733,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -38880,22 +39748,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -38904,11 +39772,11 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Debug-Android", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -38952,7 +39820,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan": { + "Test-Android-Clang-Pixel4a-CPU-Snapdragon730G-arm64-Debug-All-Android_HWASAN": { "caches": [ { "name": "vpython", @@ -38964,37 +39832,32 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -39003,19 +39866,20 @@ "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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-Pixel4a-CPU-Snapdragon730G-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Snapdragon730G\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-CPU-Snapdragon730G-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": [ - "Build-Debian10-Clang-arm64-Debug-Android_Vulkan", + "Build-Debian10-Clang-arm64-Debug-Android_HWASAN", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QD1A.190821.011.C4", - "device_type:coral", + "android_hwasan_build:1", + "device_os:AOSP.MASTER_7819821", + "device_type:sunfish", "os:Android", "pool:Skia" ], @@ -39045,13 +39909,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android": { + "Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN": { "caches": [ { "name": "vpython", @@ -39063,37 +39926,32 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -39102,19 +39960,20 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm64-Debug-Android_HWASAN", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QD1A.190821.011.C4", - "device_type:coral", + "android_hwasan_build:1", + "device_os:AOSP.MASTER_7819821", + "device_type:sunfish", "os:Android", "pool:Skia" ], @@ -39144,13 +40003,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { + "Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -39162,7 +40020,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -39177,22 +40035,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -39201,19 +40059,19 @@ "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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm64-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:QD1A.190821.011.C4", - "device_type:coral", + "device_os:RD1A.200810.022.A4", + "device_type:redfin", "os:Android", "pool:Skia" ], @@ -39249,7 +40107,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel4a-CPU-Snapdragon730G-arm64-Debug-All-Android_HWASAN": { + "Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -39261,32 +40119,37 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -39295,20 +40158,19 @@ "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-CPU-Snapdragon730G-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Snapdragon730G\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-CPU-Snapdragon730G-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-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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Debug-Android_HWASAN", + "Build-Debian10-Clang-arm64-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "android_hwasan_build:1", - "device_os:AOSP.MASTER_7819821", - "device_type:sunfish", + "device_os:RD1A.200810.022.A4", + "device_type:redfin", "os:Android", "pool:Skia" ], @@ -39338,12 +40200,13 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "test" - ] + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN": { + "Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -39355,32 +40218,37 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -39389,20 +40257,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"--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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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": [ - "Build-Debian10-Clang-arm64-Debug-Android_HWASAN", + "Build-Debian10-Clang-arm64-Release-Android_Vulkan", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "android_hwasan_build:1", - "device_os:AOSP.MASTER_7819821", - "device_type:sunfish", + "device_os:RD1A.200810.022.A4", + "device_type:redfin", "os:Android", "pool:Skia" ], @@ -39432,12 +40299,13 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "test" - ] + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android": { + "Test-Android-Clang-Pixel6-GPU-MaliG78-arm64-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -39449,7 +40317,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -39464,22 +40332,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -39488,7 +40356,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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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-Pixel6-GPU-MaliG78-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG78\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel6\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel6-GPU-MaliG78-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": [ @@ -39499,8 +40367,8 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:RD1A.200810.022.A4", - "device_type:redfin", + "device_os:SD1A.210817.037", + "device_type:oriole", "os:Android", "pool:Skia" ], @@ -39536,7 +40404,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android": { + "Test-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -39548,7 +40416,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -39563,22 +40431,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -39587,7 +40455,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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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-Pixel6-GPU-MaliG78-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG78\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel6\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel6-GPU-MaliG78-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": [ @@ -39598,8 +40466,8 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:RD1A.200810.022.A4", - "device_type:redfin", + "device_os:SD1A.210817.037", + "device_type:oriole", "os:Android", "pool:Skia" ], @@ -39635,7 +40503,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan": { + "Test-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -39647,7 +40515,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -39662,22 +40530,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -39686,7 +40554,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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsTricky_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"--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-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG78\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel6\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-Pixel6-GPU-MaliG78-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": [ @@ -39697,8 +40565,8 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:RD1A.200810.022.A4", - "device_type:redfin", + "device_os:SD1A.210817.037", + "device_type:oriole", "os:Android", "pool:Skia" ], @@ -39734,7 +40602,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel6-GPU-MaliG78-arm64-Debug-All-Android": { + "Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Debug-All-Android": { "caches": [ { "name": "vpython", @@ -39746,7 +40614,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -39761,22 +40629,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -39785,19 +40653,19 @@ "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-Pixel6-GPU-MaliG78-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG78\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel6\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel6-GPU-MaliG78-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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Debug-Android", + "Build-Debian10-Clang-arm-Debug-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:SD1A.210817.037", - "device_type:oriole", + "device_os:SP2A.211004.001", + "device_type:wembley", "os:Android", "pool:Skia" ], @@ -39833,7 +40701,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android": { + "Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android": { "caches": [ { "name": "vpython", @@ -39845,7 +40713,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -39860,22 +40728,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -39884,19 +40752,19 @@ "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-Pixel6-GPU-MaliG78-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG78\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel6\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel6-GPU-MaliG78-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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm64-Release-Android", + "Build-Debian10-Clang-arm-Release-Android", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:SD1A.210817.037", - "device_type:oriole", + "device_os:SP2A.211004.001", + "device_type:wembley", "os:Android", "pool:Skia" ], @@ -39932,7 +40800,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan": { + "Test-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Debug-All": { "caches": [ { "name": "vpython", @@ -39944,7 +40812,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -39959,22 +40827,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -39983,21 +40851,21 @@ "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-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG78\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel6\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Android-Clang-Pixel6-GPU-MaliG78-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-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT860\\\",\\\"model\\\",\\\"Kevin\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Kevin-GPU-MaliT860-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": [ - "Build-Debian10-Clang-arm64-Release-Android_Vulkan", + "Build-Debian10-Clang-arm-Debug-Chromebook_GLES", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:SD1A.210817.037", - "device_type:oriole", - "os:Android", - "pool:Skia" + "gpu:MaliT860", + "os:ChromeOS", + "pool:Skia", + "release_version:14092.77.0" ], "environment": { "RECIPES_USE_PY3": "true", @@ -40031,7 +40899,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Debug-All-Android": { + "Test-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All": { "caches": [ { "name": "vpython", @@ -40043,7 +40911,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -40058,22 +40926,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -40082,21 +40950,21 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinct_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-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT860\\\",\\\"model\\\",\\\"Kevin\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Kevin-GPU-MaliT860-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": [ - "Build-Debian10-Clang-arm-Debug-Android", + "Build-Debian10-Clang-arm-Release-Chromebook_GLES", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:SP2A.211004.001", - "device_type:wembley", - "os:Android", - "pool:Skia" + "gpu:MaliT860", + "os:ChromeOS", + "pool:Skia", + "release_version:14092.77.0" ], "environment": { "RECIPES_USE_PY3": "true", @@ -40130,7 +40998,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android": { + "Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -40142,7 +41010,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -40157,22 +41025,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -40181,21 +41049,21 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinct_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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm-Release-Android", + "Build-Debian10-Clang-x86_64-Debug-Chromebook_GLES", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_os:SP2A.211004.001", - "device_type:wembley", - "os:Android", - "pool:Skia" + "gpu:IntelUHDGraphics605", + "os:ChromeOS", + "pool:Skia", + "release_version:14233.0.0" ], "environment": { "RECIPES_USE_PY3": "true", @@ -40229,7 +41097,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Debug-All": { + "Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -40241,7 +41109,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -40256,22 +41124,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -40280,21 +41148,21 @@ "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-Kevin-GPU-MaliT860-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT860\\\",\\\"model\\\",\\\"Kevin\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Kevin-GPU-MaliT860-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-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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-arm-Debug-Chromebook_GLES", + "Build-Debian10-Clang-x86_64-Release-Chromebook_GLES", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "gpu:MaliT860", + "gpu:IntelUHDGraphics605", "os:ChromeOS", "pool:Skia", - "release_version:14092.77.0" + "release_version:14233.0.0" ], "environment": { "RECIPES_USE_PY3": "true", @@ -40328,7 +41196,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All": { + "Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All": { "caches": [ { "name": "vpython", @@ -40340,7 +41208,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -40355,22 +41223,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -40379,7 +41247,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-Kevin-GPU-MaliT860-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT860\\\",\\\"model\\\",\\\"Kevin\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Kevin-GPU-MaliT860-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\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_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\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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)\"}", "skia" ], "dependencies": [ @@ -40390,10 +41258,10 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "gpu:MaliT860", + "gpu:Adreno618", "os:ChromeOS", "pool:Skia", - "release_version:14092.77.0" + "release_version:14150.39.0" ], "environment": { "RECIPES_USE_PY3": "true", @@ -40427,7 +41295,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Debug-All": { + "Test-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -40439,7 +41307,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -40454,22 +41322,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -40478,7 +41346,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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-Spin514-GPU-RadeonVega3-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega3\\\",\\\"model\\\",\\\"Spin514\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin514-GPU-RadeonVega3-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": [ @@ -40489,7 +41357,7 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "gpu:IntelUHDGraphics605", + "gpu:RadeonVega3", "os:ChromeOS", "pool:Skia", "release_version:14233.0.0" @@ -40526,7 +41394,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All": { + "Test-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -40538,7 +41406,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -40553,22 +41421,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -40577,7 +41445,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_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-Spin514-GPU-RadeonVega3-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega3\\\",\\\"model\\\",\\\"Spin514\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin514-GPU-RadeonVega3-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": [ @@ -40588,7 +41456,7 @@ "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "gpu:IntelUHDGraphics605", + "gpu:RadeonVega3", "os:ChromeOS", "pool:Skia", "release_version:14233.0.0" @@ -40625,7 +41493,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86-Debug-All": { "caches": [ { "name": "vpython", @@ -40635,12 +41503,12 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-arm64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-arm64", + "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, @@ -40652,22 +41520,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -40676,21 +41559,18 @@ "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\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_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\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_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-Debian10-Clang-GCE-CPU-AVX2-x86-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86-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": [ - "Build-Debian10-Clang-arm-Release-Chromebook_GLES", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" + "Build-Debian10-Clang-x86-Debug", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:Adreno618", - "os:ChromeOS", - "pool:Skia", - "release_version:14150.39.0" + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -40712,19 +41592,19 @@ "cache/vpython" ] }, - "execution_timeout_ns": 14400000000000, + "execution_timeout_ns": 21600000000000, "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 14400000000000, + "io_timeout_ns": 21600000000000, "max_attempts": 2, "outputs": [ "test" ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Debug-All": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -40734,12 +41614,12 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-arm64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-arm64", + "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, @@ -40751,22 +41631,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -40775,21 +41670,18 @@ "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-Spin514-GPU-RadeonVega3-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega3\\\",\\\"model\\\",\\\"Spin514\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin514-GPU-RadeonVega3-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-GCE-CPU-AVX2-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Chromebook_GLES", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" + "Build-Debian10-Clang-x86_64-Debug", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:RadeonVega3", - "os:ChromeOS", - "pool:Skia", - "release_version:14233.0.0" + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -40823,7 +41715,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN": { "caches": [ { "name": "vpython", @@ -40833,39 +41725,54 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-arm64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-arm64", + "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -40874,21 +41781,18 @@ "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-Spin514-GPU-RadeonVega3-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega3\\\",\\\"model\\\",\\\"Spin514\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin514-GPU-RadeonVega3-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-GCE-CPU-AVX2-x86_64-Debug-All-ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"ASAN\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"~8888\\\",\\\"svg\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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-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": [ - "Build-Debian10-Clang-x86_64-Release-Chromebook_GLES", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" + "Build-Debian10-Clang-x86_64-Debug-ASAN", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:RadeonVega3", - "os:ChromeOS", - "pool:Skia", - "release_version:14233.0.0" + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -40916,13 +41820,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86-Debug-All": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs": { "caches": [ { "name": "vpython", @@ -40934,7 +41837,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -40949,22 +41852,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -40974,7 +41877,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -40988,11 +41891,11 @@ "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-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86-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-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"BonusConfigs\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"r8\\\",\\\"565\\\",\\\"pic-8888\\\",\\\"serialize-8888\\\",\\\"linear-f16\\\",\\\"srgb-rgba\\\",\\\"srgb-f16\\\",\\\"narrow-rgba\\\",\\\"narrow-f16\\\",\\\"p3-rgba\\\",\\\"p3-f16\\\",\\\"rec2020-rgba\\\",\\\"rec2020-f16\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"r8\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"r8\\\",\\\"colorImage\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_batch_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fast_constraint_red_is_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"c_gms\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype_xfermodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_0.75_0\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_1_-0.25\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_match\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_iter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemasksubset\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_domain\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapfilters\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapshaders\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"convex_poly_clip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"extractalpha\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_checkerboard_32_32_g8\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_image_mandrill_64\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadows\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"simpleaaclip_aaclip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes_npot\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering_pfaMac\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"parsedpaths\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_images\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"all_bitmap_configs\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"makecolorspace\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"readpixels\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_rect_to_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_alpha_only\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"compositor_quads_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_qtr\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_effect_image\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ctmpatheffect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"analytic_antialias_convex\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-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\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Debug", + "Build-Debian10-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -41021,19 +41924,19 @@ "cache/vpython" ] }, - "execution_timeout_ns": 21600000000000, + "execution_timeout_ns": 14400000000000, "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 21600000000000, + "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": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs_ASAN": { "caches": [ { "name": "vpython", @@ -41045,37 +41948,37 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" }, { "name": "skia/bots/skimage", @@ -41085,7 +41988,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -41099,11 +42002,11 @@ "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\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CPU-AVX2-x86_64-Debug-All-BonusConfigs_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"BonusConfigs_ASAN\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"r8\\\",\\\"565\\\",\\\"pic-8888\\\",\\\"serialize-8888\\\",\\\"linear-f16\\\",\\\"srgb-rgba\\\",\\\"srgb-f16\\\",\\\"narrow-rgba\\\",\\\"narrow-f16\\\",\\\"p3-rgba\\\",\\\"p3-f16\\\",\\\"rec2020-rgba\\\",\\\"rec2020-f16\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"r8\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"r8\\\",\\\"colorImage\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_batch_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fast_constraint_red_is_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"c_gms\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype_xfermodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_0.75_0\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_1_-0.25\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_match\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_iter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemasksubset\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_domain\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapfilters\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapshaders\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"convex_poly_clip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"extractalpha\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_checkerboard_32_32_g8\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_image_mandrill_64\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadows\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"simpleaaclip_aaclip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes_npot\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering_pfaMac\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"parsedpaths\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_images\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"all_bitmap_configs\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"makecolorspace\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"readpixels\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_rect_to_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_alpha_only\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"compositor_quads_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_qtr\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_effect_image\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ctmpatheffect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"analytic_antialias_convex\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs_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": [ - "Build-Debian10-Clang-x86_64-Debug", + "Build-Debian10-Clang-x86_64-Debug-ASAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -41138,13 +42041,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-NativeFonts": { "caches": [ { "name": "vpython", @@ -41156,7 +42058,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -41171,22 +42073,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -41196,7 +42098,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -41210,7 +42112,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-CPU-AVX2-x86_64-Debug-All-BonusConfigs\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"BonusConfigs\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"r8\\\",\\\"565\\\",\\\"pic-8888\\\",\\\"serialize-8888\\\",\\\"linear-f16\\\",\\\"srgb-rgba\\\",\\\"srgb-f16\\\",\\\"narrow-rgba\\\",\\\"narrow-f16\\\",\\\"p3-rgba\\\",\\\"p3-f16\\\",\\\"rec2020-rgba\\\",\\\"rec2020-f16\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"r8\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"r8\\\",\\\"colorImage\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_batch_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fast_constraint_red_is_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"c_gms\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype_xfermodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_0.75_0\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_1_-0.25\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_match\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_iter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemasksubset\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_domain\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapfilters\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapshaders\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"convex_poly_clip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"extractalpha\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_checkerboard_32_32_g8\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_image_mandrill_64\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadows\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"simpleaaclip_aaclip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes_npot\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering_pfaMac\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"parsedpaths\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_images\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"all_bitmap_configs\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"makecolorspace\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"readpixels\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_rect_to_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_alpha_only\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"compositor_quads_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_qtr\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_effect_image\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ctmpatheffect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"analytic_antialias_convex\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-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\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-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\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-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": [ @@ -41255,7 +42157,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-NativeFonts": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_DISCARDABLE_SCALEDIMAGECACHE": { "caches": [ { "name": "vpython", @@ -41267,7 +42169,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -41282,22 +42184,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -41307,7 +42209,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -41321,11 +42223,11 @@ "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-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\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-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-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_DISCARDABLE_SCALEDIMAGECACHE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SK_USE_DISCARDABLE_SCALEDIMAGECACHE\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"0\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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-SK_USE_DISCARDABLE_SCALEDIMAGECACHE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Debian10-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -41366,7 +42268,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_DISCARDABLE_SCALEDIMAGECACHE": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SafeStack": { "caches": [ { "name": "vpython", @@ -41378,7 +42280,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -41393,22 +42295,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -41418,7 +42320,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -41432,11 +42334,11 @@ "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-SK_USE_DISCARDABLE_SCALEDIMAGECACHE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SK_USE_DISCARDABLE_SCALEDIMAGECACHE\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"0\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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-SK_USE_DISCARDABLE_SCALEDIMAGECACHE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CPU-AVX2-x86_64-Debug-All-SafeStack\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SafeStack\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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-SafeStack\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-SK_USE_DISCARDABLE_SCALEDIMAGECACHE", + "Build-Debian10-Clang-x86_64-Debug-SafeStack", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -41477,7 +42379,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SafeStack": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM": { "caches": [ { "name": "vpython", @@ -41489,7 +42391,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -41504,22 +42406,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -41529,7 +42431,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -41543,11 +42445,11 @@ "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-SafeStack\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SafeStack\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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-SafeStack\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CPU-AVX2-x86_64-Debug-All-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-SafeStack", + "Build-Debian10-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -41588,7 +42490,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Wuffs": { "caches": [ { "name": "vpython", @@ -41600,7 +42502,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -41615,22 +42517,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -41640,7 +42542,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -41654,11 +42556,11 @@ "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-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CPU-AVX2-x86_64-Debug-All-Wuffs\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Wuffs\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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-Wuffs\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Debian10-Clang-x86_64-Debug-Wuffs", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -41699,7 +42601,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Wuffs": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -41711,7 +42613,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -41726,22 +42628,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -41751,7 +42653,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -41765,11 +42667,11 @@ "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-Wuffs\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Wuffs\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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-Wuffs\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-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\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-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": [ - "Build-Debian10-Clang-x86_64-Debug-Wuffs", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -41810,7 +42712,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs": { "caches": [ { "name": "vpython", @@ -41822,7 +42724,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -41837,22 +42739,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -41862,7 +42764,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -41876,7 +42778,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-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\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-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-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"BonusConfigs\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"r8\\\",\\\"565\\\",\\\"pic-8888\\\",\\\"serialize-8888\\\",\\\"linear-f16\\\",\\\"srgb-rgba\\\",\\\"srgb-f16\\\",\\\"narrow-rgba\\\",\\\"narrow-f16\\\",\\\"p3-rgba\\\",\\\"p3-f16\\\",\\\"rec2020-rgba\\\",\\\"rec2020-f16\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"r8\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"r8\\\",\\\"colorImage\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_batch_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fast_constraint_red_is_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"c_gms\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype_xfermodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_0.75_0\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_1_-0.25\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_match\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_iter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemasksubset\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_domain\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapfilters\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapshaders\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"convex_poly_clip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"extractalpha\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_checkerboard_32_32_g8\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_image_mandrill_64\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadows\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"simpleaaclip_aaclip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes_npot\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering_pfaMac\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"parsedpaths\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_images\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"all_bitmap_configs\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"makecolorspace\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"readpixels\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_rect_to_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_alpha_only\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"compositor_quads_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_qtr\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_effect_image\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ctmpatheffect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"analytic_antialias_convex\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-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\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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 +42823,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast": { "caches": [ { "name": "vpython", @@ -41933,7 +42835,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -41948,22 +42850,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -41973,7 +42875,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -41987,11 +42889,11 @@ "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-Release-All-BonusConfigs\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"BonusConfigs\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"r8\\\",\\\"565\\\",\\\"pic-8888\\\",\\\"serialize-8888\\\",\\\"linear-f16\\\",\\\"srgb-rgba\\\",\\\"srgb-f16\\\",\\\"narrow-rgba\\\",\\\"narrow-f16\\\",\\\"p3-rgba\\\",\\\"p3-f16\\\",\\\"rec2020-rgba\\\",\\\"rec2020-f16\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"r8\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"r8\\\",\\\"colorImage\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_batch_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fast_constraint_red_is_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"c_gms\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype_xfermodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_0.75_0\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_1_-0.25\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_match\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_iter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemasksubset\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_domain\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapfilters\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapshaders\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"convex_poly_clip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"extractalpha\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_checkerboard_32_32_g8\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_image_mandrill_64\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadows\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"simpleaaclip_aaclip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes_npot\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering_pfaMac\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"parsedpaths\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_images\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"all_bitmap_configs\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"makecolorspace\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"readpixels\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_rect_to_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_alpha_only\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"compositor_quads_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_qtr\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_effect_image\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ctmpatheffect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"analytic_antialias_convex\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-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\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CPU-AVX2-x86_64-Release-All-Fast\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Fast\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Release", + "Build-Debian10-Clang-x86_64-Release-Fast", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -42032,7 +42934,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD": { "caches": [ { "name": "vpython", @@ -42044,7 +42946,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -42059,22 +42961,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -42084,7 +42986,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -42098,11 +43000,11 @@ "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-Release-All-Fast\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Fast\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SKNX_NO_SIMD\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Release-Fast", + "Build-Debian10-Clang-x86_64-Release-SKNX_NO_SIMD", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -42143,7 +43045,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_CPU_LIMIT_SSE2": { "caches": [ { "name": "vpython", @@ -42155,7 +43057,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -42170,22 +43072,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -42195,7 +43097,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -42209,11 +43111,11 @@ "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-Release-All-SKNX_NO_SIMD\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SKNX_NO_SIMD\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CPU-AVX2-x86_64-Release-All-SK_CPU_LIMIT_SSE2\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SK_CPU_LIMIT_SSE2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_CPU_LIMIT_SSE2\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Release-SKNX_NO_SIMD", + "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE2", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -42254,7 +43156,229 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_CPU_LIMIT_SSE2": { + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_CPU_LIMIT_SSE41": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "test", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "name": "infra/3pp/tools/cpython3/linux-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" + }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "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-Release-All-SK_CPU_LIMIT_SSE41\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SK_CPU_LIMIT_SSE41\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-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\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Release-SK_CPU_LIMIT_SSE41", + "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": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "test", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "name": "infra/3pp/tools/cpython3/linux-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" + }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "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-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SK_FORCE_RASTER_PIPELINE_BLITTER\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Release-SK_FORCE_RASTER_PIPELINE_BLITTER", + "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": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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-Release-All-SkVM": { "caches": [ { "name": "vpython", @@ -42266,7 +43390,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -42281,22 +43405,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -42306,7 +43430,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -42320,11 +43444,11 @@ "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-Release-All-SK_CPU_LIMIT_SSE2\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SK_CPU_LIMIT_SSE2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_CPU_LIMIT_SSE2\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CPU-AVX2-x86_64-Release-All-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Release-SK_CPU_LIMIT_SSE2", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -42365,7 +43489,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_CPU_LIMIT_SSE41": { + "Test-Debian10-Clang-GCE-CPU-AVX512-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -42377,7 +43501,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -42392,22 +43516,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -42417,7 +43541,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -42431,16 +43555,15 @@ "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-Release-All-SK_CPU_LIMIT_SSE41\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SK_CPU_LIMIT_SSE41\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-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\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CPU-AVX512-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX512-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": [ - "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE41", + "Build-Debian10-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", + "cpu:x86-64-Skylake_GCE", "os:Debian-10.3", "pool:Skia" ], @@ -42476,7 +43599,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER": { + "Test-Debian10-Clang-GCE-CPU-AVX512-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -42488,7 +43611,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -42503,22 +43626,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -42528,7 +43651,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -42542,16 +43665,15 @@ "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-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SK_FORCE_RASTER_PIPELINE_BLITTER\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CPU-AVX512-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX512-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": [ - "Build-Debian10-Clang-x86_64-Release-SK_FORCE_RASTER_PIPELINE_BLITTER", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", + "cpu:x86-64-Skylake_GCE", "os:Debian-10.3", "pool:Skia" ], @@ -42587,7 +43709,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM": { + "Test-Debian10-Clang-GCE-CPU-Rome-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -42599,7 +43721,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -42614,22 +43736,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -42639,7 +43761,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -42653,16 +43775,15 @@ "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-Release-All-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CPU-Rome-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Rome\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-Rome-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": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", + "cpu:x86-64-AMD_Rome_GCE", "os:Debian-10.3", "pool:Skia" ], @@ -42698,7 +43819,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX512-x86_64-Debug-All": { + "Test-Debian10-Clang-GCE-CPU-Rome-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -42710,7 +43831,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -42725,22 +43846,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -42750,7 +43871,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -42764,15 +43885,15 @@ "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-AVX512-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX512-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-GCE-CPU-Rome-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Rome\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-Rome-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": [ - "Build-Debian10-Clang-x86_64-Debug", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Skylake_GCE", + "cpu:x86-64-AMD_Rome_GCE", "os:Debian-10.3", "pool:Skia" ], @@ -42808,7 +43929,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-AVX512-x86_64-Release-All": { + "Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader": { "caches": [ { "name": "vpython", @@ -42820,7 +43941,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -42835,22 +43956,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -42860,7 +43981,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -42874,15 +43995,16 @@ "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-AVX512-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX512-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-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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrThreadSafeCache16Verts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-Clang-x86_64-Debug-SwiftShader", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Skylake_GCE", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", "os:Debian-10.3", "pool:Skia" ], @@ -42918,7 +44040,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-CPU-Rome-x86_64-Debug-All": { + "Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader_MSAN": { "caches": [ { "name": "vpython", @@ -42930,37 +44052,37 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" }, { "name": "skia/bots/skimage", @@ -42970,7 +44092,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -42984,15 +44106,16 @@ "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-Rome-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Rome\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-Rome-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-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader_MSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"SwiftShader\\\",\\\"extra_config\\\",\\\"SwiftShader_MSAN\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrThreadSafeCache16Verts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"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\\\",\\\"--match\\\",\\\"~Once\\\",\\\"~Shared\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader_MSAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"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": [ - "Build-Debian10-Clang-x86_64-Debug", + "Build-Debian10-Clang-x86_64-Debug-SwiftShader_MSAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-AMD_Rome_GCE", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", "os:Debian-10.3", "pool:Skia" ], @@ -43016,19 +44139,18 @@ "cache/vpython" ] }, - "execution_timeout_ns": 14400000000000, + "execution_timeout_ns": 32400000000000, "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "io_timeout_ns": 32400000000000, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Debian10-Clang-GCE-CPU-Rome-x86_64-Release-All": { + "Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader": { "caches": [ { "name": "vpython", @@ -43040,7 +44162,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -43055,22 +44177,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -43080,7 +44202,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -43094,15 +44216,16 @@ "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-Rome-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Rome\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-Rome-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-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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrThreadSafeCache16Verts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-Clang-x86_64-Release-SwiftShader", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-AMD_Rome_GCE", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", "os:Debian-10.3", "pool:Skia" ], @@ -43138,7 +44261,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader": { + "Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -43150,7 +44273,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -43165,22 +44288,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/mesa_intel_driver_linux", + "path": "mesa_intel_driver_linux", + "version": "version:15" }, { "name": "skia/bots/skimage", @@ -43190,7 +44318,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -43204,17 +44332,16 @@ "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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrThreadSafeCache16Verts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"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\\\",\\\"--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-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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Debug-SwiftShader", + "Build-Debian10-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", + "gpu:8086:22b1", + "os:Debian-10.10", "pool:Skia" ], "environment": { @@ -43249,7 +44376,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader_MSAN": { + "Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -43261,37 +44388,47 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" + }, + { + "name": "skia/bots/mesa_intel_driver_linux", + "path": "mesa_intel_driver_linux", + "version": "version:15" }, { "name": "skia/bots/skimage", @@ -43301,7 +44438,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -43315,17 +44452,16 @@ "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_MSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"SwiftShader\\\",\\\"extra_config\\\",\\\"SwiftShader_MSAN\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrThreadSafeCache16Verts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"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\\\",\\\"--match\\\",\\\"~Once\\\",\\\"~Shared\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader_MSAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"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-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\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Debug-SwiftShader_MSAN", + "Build-Debian10-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", + "gpu:8086:22b1", + "os:Debian-10.10", "pool:Skia" ], "environment": { @@ -43348,18 +44484,19 @@ "cache/vpython" ] }, - "execution_timeout_ns": 32400000000000, + "execution_timeout_ns": 14400000000000, "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 32400000000000, - "max_attempts": 1, + "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-GPU-SwiftShader-x86_64-Release-All-SwiftShader": { + "Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -43371,7 +44508,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -43386,22 +44523,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/mesa_intel_driver_linux", + "path": "mesa_intel_driver_linux", + "version": "version:15" }, { "name": "skia/bots/skimage", @@ -43411,7 +44553,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -43425,17 +44567,16 @@ "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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrThreadSafeCache16Verts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"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\\\",\\\"--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-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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release-SwiftShader", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", + "gpu:8086:22b1", + "os:Debian-10.10", "pool:Skia" ], "environment": { @@ -43470,7 +44611,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All": { + "Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -43482,7 +44623,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -43497,22 +44638,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -43527,7 +44673,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -43541,11 +44687,11 @@ "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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Debug", + "Build-Debian10-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -43585,7 +44731,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All-Vulkan": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -43597,7 +44743,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -43612,27 +44758,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -43647,7 +44788,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -43661,15 +44802,15 @@ "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\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"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-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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": [ - "Build-Debian10-Clang-x86_64-Debug-Vulkan", + "Build-Debian10-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:22b1", + "gpu:8086:5926", "os:Debian-10.10", "pool:Skia" ], @@ -43705,7 +44846,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_Vulkan": { "caches": [ { "name": "vpython", @@ -43717,37 +44858,42 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" + }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -43762,7 +44908,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -43776,15 +44922,15 @@ "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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"ASAN_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-Clang-x86_64-Debug-ASAN_Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:22b1", + "gpu:8086:5926", "os:Debian-10.10", "pool:Skia" ], @@ -43814,13 +44960,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-DDL1": { "caches": [ { "name": "vpython", @@ -43832,7 +44977,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -43847,27 +44992,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -43882,7 +45022,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -43896,15 +45036,15 @@ "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\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL1\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-Release-Vulkan", + "Build-Debian10-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:22b1", + "gpu:8086:5926", "os:Debian-10.10", "pool:Skia" ], @@ -43940,7 +45080,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-DDL1_Vulkan": { "caches": [ { "name": "vpython", @@ -43952,7 +45092,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -43967,22 +45107,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -43997,7 +45142,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -44011,11 +45156,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL1_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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": [ - "Build-Debian10-Clang-x86_64-Debug", + "Build-Debian10-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -44055,7 +45200,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_Vulkan": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-DDL3_ASAN": { "caches": [ { "name": "vpython", @@ -44067,7 +45212,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -44077,33 +45222,28 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_linux", "path": "clang_linux", "version": "version:20" }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" - }, { "name": "skia/bots/mesa_intel_driver_linux", "path": "mesa_intel_driver_linux", @@ -44117,7 +45257,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -44131,11 +45271,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"ASAN_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL3_ASAN\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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": [ - "Build-Debian10-Clang-x86_64-Debug-ASAN_Vulkan", + "Build-Debian10-Clang-x86_64-Debug-ASAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -44174,7 +45314,7 @@ "test" ] }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-DDL1": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-DDL3_ASAN_Vulkan": { "caches": [ { "name": "vpython", @@ -44186,37 +45326,42 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" + }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -44231,7 +45376,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -44245,11 +45390,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL1\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL3_ASAN_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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": [ - "Build-Debian10-Clang-x86_64-Debug", + "Build-Debian10-Clang-x86_64-Debug-ASAN_Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -44283,13 +45428,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-DDL1_Vulkan": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_ASAN": { "caches": [ { "name": "vpython", @@ -44301,42 +45445,37 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -44351,7 +45490,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -44365,11 +45504,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL1_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"OOPRDDL_ASAN\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_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": [ - "Build-Debian10-Clang-x86_64-Debug-Vulkan", + "Build-Debian10-Clang-x86_64-Debug-ASAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -44403,13 +45542,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-DDL3_ASAN": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_ASAN_Vulkan": { "caches": [ { "name": "vpython", @@ -44421,7 +45559,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -44431,28 +45569,33 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_linux", "path": "clang_linux", "version": "version:20" }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" + }, { "name": "skia/bots/mesa_intel_driver_linux", "path": "mesa_intel_driver_linux", @@ -44466,7 +45609,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -44480,11 +45623,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL3_ASAN\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_ASAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"OOPRDDL_ASAN_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_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": [ - "Build-Debian10-Clang-x86_64-Debug-ASAN", + "Build-Debian10-Clang-x86_64-Debug-ASAN_Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -44523,7 +45666,7 @@ "test" ] }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-DDL3_ASAN_Vulkan": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -44535,42 +45678,37 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" - }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -44585,7 +45723,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -44599,11 +45737,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL3_ASAN_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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": [ - "Build-Debian10-Clang-x86_64-Debug-ASAN_Vulkan", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -44637,12 +45775,13 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "test" - ] + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_ASAN": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-DDL3_TSAN": { "caches": [ { "name": "vpython", @@ -44654,7 +45793,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -44664,22 +45803,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_linux", @@ -44699,7 +45838,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -44713,11 +45852,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"OOPRDDL_ASAN\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL3_TSAN\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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": [ - "Build-Debian10-Clang-x86_64-Debug-ASAN", + "Build-Debian10-Clang-x86_64-Release-TSAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -44756,7 +45895,7 @@ "test" ] }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_ASAN_Vulkan": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-DDL3_TSAN_Vulkan": { "caches": [ { "name": "vpython", @@ -44768,7 +45907,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -44778,22 +45917,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_linux", @@ -44818,7 +45957,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -44832,11 +45971,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_ASAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"OOPRDDL_ASAN_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--gpuResourceCacheLimit\\\",\\\"16777216\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-OOPRDDL_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-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL3_TSAN_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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": [ - "Build-Debian10-Clang-x86_64-Debug-ASAN_Vulkan", + "Build-Debian10-Clang-x86_64-Release-TSAN_Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -44875,7 +46014,7 @@ "test" ] }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_TSAN": { "caches": [ { "name": "vpython", @@ -44887,37 +46026,37 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -44932,7 +46071,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -44946,11 +46085,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"OOPRDDL_TSAN\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_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": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-Clang-x86_64-Release-TSAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -44984,13 +46123,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-DDL3_TSAN": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_TSAN_Vulkan": { "caches": [ { "name": "vpython", @@ -45002,7 +46140,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -45012,28 +46150,33 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_linux", "path": "clang_linux", "version": "version:20" }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" + }, { "name": "skia/bots/mesa_intel_driver_linux", "path": "mesa_intel_driver_linux", @@ -45047,7 +46190,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -45061,11 +46204,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL3_TSAN\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_TSAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"OOPRDDL_TSAN_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_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": [ - "Build-Debian10-Clang-x86_64-Release-TSAN", + "Build-Debian10-Clang-x86_64-Release-TSAN_Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -45104,7 +46247,7 @@ "test" ] }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-DDL3_TSAN_Vulkan": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-TSAN": { "caches": [ { "name": "vpython", @@ -45116,7 +46259,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -45126,33 +46269,28 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_linux", "path": "clang_linux", "version": "version:20" }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" - }, { "name": "skia/bots/mesa_intel_driver_linux", "path": "mesa_intel_driver_linux", @@ -45166,7 +46304,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -45180,11 +46318,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"DDL3_TSAN_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"TSAN\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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": [ - "Build-Debian10-Clang-x86_64-Release-TSAN_Vulkan", + "Build-Debian10-Clang-x86_64-Release-TSAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -45223,7 +46361,7 @@ "test" ] }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_TSAN": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-TSAN_Vulkan": { "caches": [ { "name": "vpython", @@ -45235,7 +46373,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -45245,28 +46383,33 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/clang_linux", "path": "clang_linux", "version": "version:20" }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" + }, { "name": "skia/bots/mesa_intel_driver_linux", "path": "mesa_intel_driver_linux", @@ -45280,7 +46423,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -45294,11 +46437,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"OOPRDDL_TSAN\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_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-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"TSAN_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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": [ - "Build-Debian10-Clang-x86_64-Release-TSAN", + "Build-Debian10-Clang-x86_64-Release-TSAN_Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -45337,7 +46480,7 @@ "test" ] }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_TSAN_Vulkan": { + "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -45349,37 +46492,37 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/linux_vulkan_sdk", @@ -45399,7 +46542,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -45413,11 +46556,11 @@ "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-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_TSAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"OOPRDDL_TSAN_Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkooprddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-OOPRDDL_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-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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": [ - "Build-Debian10-Clang-x86_64-Release-TSAN_Vulkan", + "Build-Debian10-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -45451,12 +46594,128 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, + "outputs": [ + "test" + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + }, + "Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Debug-All": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "test", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "name": "infra/3pp/tools/cpython3/linux-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" + }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/mesa_intel_driver_linux", + "path": "mesa_intel_driver_linux", + "version": "version:15" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "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-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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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)\"}", + "skia" + ], + "dependencies": [ + "Build-Debian10-Clang-x86_64-Debug", + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "gpu:8086:0f31", + "os:Debian-10.10", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-TSAN": { + "Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -45468,37 +46727,37 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -45513,7 +46772,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -45527,15 +46786,15 @@ "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"TSAN\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release-TSAN", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:5926", + "gpu:8086:0f31", "os:Debian-10.10", "pool:Skia" ], @@ -45565,12 +46824,13 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "test" - ] + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan": { + "Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -45582,7 +46842,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -45597,27 +46857,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -45632,7 +46887,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -45646,15 +46901,15 @@ "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-NUC7i5BNK-GPU-IntelIris640-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\\\",\\\"IntelIris640\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC7i5BNK\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~VkHeapTests\\\",\\\"~Programs\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-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-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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release-Vulkan", + "Build-Debian10-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:5926", + "gpu:8086:0102", "os:Debian-10.10", "pool:Skia" ], @@ -45690,7 +46945,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Debug-All": { + "Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -45702,7 +46957,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -45717,22 +46972,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/mesa_intel_driver_linux", @@ -45747,7 +47002,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -45761,15 +47016,15 @@ "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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Debug", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0f31", + "gpu:8086:0102", "os:Debian-10.10", "pool:Skia" ], @@ -45805,19 +47060,19 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All": { + "Test-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "test", + "casSpec": "pathkit", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -45832,42 +47087,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/mesa_intel_driver_linux", - "path": "mesa_intel_driver_linux", - "version": "version:15" - }, - { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -45875,18 +47110,20 @@ "-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-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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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)\"}", + "test_pathkit", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"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\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-EMCC-asmjs-Release-PathKit", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0f31", - "os:Debian-10.10", - "pool:Skia" + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia", + "docker_installed:true" ], "environment": { "RECIPES_USE_PY3": "true", @@ -45920,19 +47157,19 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Debug-All": { + "Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "test", + "casSpec": "canvaskit", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -45947,42 +47184,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/mesa_intel_driver_linux", - "path": "mesa_intel_driver_linux", - "version": "version:15" - }, - { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -45990,18 +47207,20 @@ "-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-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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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)\"}", + "test_canvaskit", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"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\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Debug", + "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0102", - "os:Debian-10.10", - "pool:Skia" + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia", + "docker_installed:true" ], "environment": { "RECIPES_USE_PY3": "true", @@ -46035,19 +47254,19 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All": { + "Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "test", + "casSpec": "pathkit", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -46062,42 +47281,119 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", + "test_pathkit", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"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\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "skia" + ], + "dependencies": [ + "Build-Debian10-EMCC-wasm-Release-PathKit", + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "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": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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-EMCC-GCE-GPU-AVX2-wasm-Release-All-CanvasKit": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "canvaskit", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "name": "infra/3pp/tools/cpython3/linux-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" + }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" }, { - "name": "skia/bots/mesa_intel_driver_linux", - "path": "mesa_intel_driver_linux", - "version": "version:15" + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -46105,18 +47401,20 @@ "-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-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\\\",\\\"srgb-gl\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"gltestthreading\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdblendmodes\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"lcdoverlap\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"textbloblooper\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_with_backdrop\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_shaders_bw\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext_blob_persp\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"gpu_blur_utils_subset_rect_ref\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"orientation\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"stroketext\\\",\\\"gltestthreading\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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)\"}", + "test_canvaskit", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-EMCC-GCE-GPU-AVX2-wasm-Release-All-CanvasKit\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"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\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-EMCC-wasm-Release-CanvasKit", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0102", - "os:Debian-10.10", - "pool:Skia" + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia", + "docker_installed:true" ], "environment": { "RECIPES_USE_PY3": "true", @@ -46150,19 +47448,19 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit": { + "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "pathkit", + "casSpec": "test", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -46177,22 +47475,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -46200,12 +47513,12 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "test_pathkit", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"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\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "test", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"GCC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Docker\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-EMCC-asmjs-Release-PathKit", + "Build-Debian10-GCC-x86-Debug-Docker", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -46235,31 +47548,31 @@ "cache/vpython" ] }, - "execution_timeout_ns": 14400000000000, + "execution_timeout_ns": 21600000000000, "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 14400000000000, + "io_timeout_ns": 21600000000000, "max_attempts": 2, "outputs": [ "test" ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit": { + "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "canvaskit", + "casSpec": "test", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -46274,22 +47587,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -46297,12 +47625,12 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "test_canvaskit", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"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\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "test", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"GCC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Docker\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-EMCC-wasm-Release-CanvasKit_CPU", + "Build-Debian10-GCC-x86-Release-Docker", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -46344,19 +47672,19 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit": { + "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "pathkit", + "casSpec": "test", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -46371,22 +47699,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -46394,12 +47737,12 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "test_pathkit", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"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\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "test", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"GCC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Docker\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-EMCC-wasm-Release-PathKit", + "Build-Debian10-GCC-x86_64-Debug-Docker", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -46441,19 +47784,19 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-EMCC-GCE-GPU-AVX2-wasm-Release-All-CanvasKit": { + "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "canvaskit", + "casSpec": "test", "cipd_packages": [ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -46468,22 +47811,37 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -46491,12 +47849,12 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "test_canvaskit", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-EMCC-GCE-GPU-AVX2-wasm-Release-All-CanvasKit\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"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\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "test", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"GCC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Docker\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-EMCC-wasm-Release-CanvasKit", + "Build-Debian10-GCC-x86_64-Release-Docker", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -46538,7 +47896,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker": { + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -46550,7 +47908,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -46565,22 +47923,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -46590,7 +47948,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -46604,19 +47962,17 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"GCC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Docker\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Debug-All-Docker\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"--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": [ - "Build-Debian10-GCC-x86-Debug-Docker", + "Build-Debian11-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "gpu:10de:2489-460.91.03", + "os:Debian-11.2", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -46638,19 +47994,19 @@ "cache/vpython" ] }, - "execution_timeout_ns": 21600000000000, + "execution_timeout_ns": 14400000000000, "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 21600000000000, + "io_timeout_ns": 14400000000000, "max_attempts": 2, "outputs": [ "test" ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker": { + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-ASAN": { "caches": [ { "name": "vpython", @@ -46662,37 +48018,37 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" }, { "name": "skia/bots/skimage", @@ -46702,7 +48058,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -46716,19 +48072,17 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"GCC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Docker\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-GCC-GCE-CPU-AVX2-x86-Release-All-Docker\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"--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": [ - "Build-Debian10-GCC-x86-Release-Docker", + "Build-Debian11-Clang-x86_64-Debug-ASAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "gpu:10de:2489-460.91.03", + "os:Debian-11.2", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -46756,13 +48110,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker": { + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_ASAN": { "caches": [ { "name": "vpython", @@ -46774,7 +48127,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -46782,29 +48135,138 @@ "version": "version:2@3.8.10.chromium.19" }, { - "name": "infra/gsutil", + "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "version:4.46" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "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-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\\\",\\\"--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": [ + "Build-Debian11-Clang-x86_64-Debug-ASAN", + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "gpu:10de:2489-460.91.03", + "os:Debian-11.2", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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": 1, + "outputs": [ + "test" + ] + }, + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-OOPRDDL_ASAN": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "test", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" }, { "name": "skia/bots/skimage", @@ -46814,7 +48276,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -46828,19 +48290,17 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"GCC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Docker\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Debug-All-Docker\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-OOPRDDL_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"OOPRDDL_ASAN\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glooprddl\\\",\\\"--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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-OOPRDDL_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": [ - "Build-Debian10-GCC-x86_64-Debug-Docker", + "Build-Debian11-Clang-x86_64-Debug-ASAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "gpu:10de:2489-460.91.03", + "os:Debian-11.2", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -46868,13 +48328,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker": { + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -46886,7 +48345,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -46901,22 +48360,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -46926,7 +48385,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -46940,19 +48399,17 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"GCC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Docker\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-GCC-GCE-CPU-AVX2-x86_64-Release-All-Docker\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"--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": [ - "Build-Debian10-GCC-x86_64-Release-Docker", + "Build-Debian11-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" + "gpu:10de:2489-460.91.03", + "os:Debian-11.2", + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -46998,7 +48455,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -47013,22 +48470,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -47038,7 +48495,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -47108,7 +48565,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -47123,22 +48580,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -47148,7 +48605,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -47218,7 +48675,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -47233,22 +48690,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -47258,7 +48715,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -47272,7 +48729,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-CommandBuffer\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD615\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"model\\\",\\\"MacBook10.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GLBackendAllocationTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrDDLImage_MakeSubset\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrContext_oomed\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~^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-CommandBuffer\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CommandBuffer\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD615\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"model\\\",\\\"MacBook10.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GLBackendAllocationTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrDDLImage_MakeSubset\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrContext_oomed\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~^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-CommandBuffer\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -47328,7 +48785,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -47343,22 +48800,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -47368,7 +48825,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -47438,7 +48895,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -47453,22 +48910,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -47478,7 +48935,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -47548,7 +49005,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -47563,22 +49020,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -47588,7 +49045,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -47658,7 +49115,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -47673,22 +49130,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -47698,7 +49155,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -47768,7 +49225,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -47783,22 +49240,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -47808,7 +49265,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -47878,7 +49335,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -47888,22 +49345,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -47913,7 +49370,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -47982,7 +49439,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -47997,22 +49454,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -48022,7 +49479,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -48036,7 +49493,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-CommandBuffer\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"cmdbuffer_es2_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GLBackendAllocationTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrDDLImage_MakeSubset\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrContext_oomed\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CommandBuffer\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"cmdbuffer_es2_dmsaa\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GLBackendAllocationTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrDDLImage_MakeSubset\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrContext_oomed\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -48092,7 +49549,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -48107,22 +49564,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -48132,7 +49589,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -48202,7 +49659,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -48212,22 +49669,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -48237,7 +49694,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -48306,7 +49763,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -48321,22 +49778,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -48346,7 +49803,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -48416,7 +49873,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -48431,22 +49888,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -48456,7 +49913,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -48527,7 +49984,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -48542,22 +49999,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -48567,7 +50024,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -48581,7 +50038,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-CommandBuffer\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris5100\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GLBackendAllocationTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrDDLImage_MakeSubset\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrContext_oomed\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"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-CommandBuffer\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CommandBuffer\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris5100\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GLBackendAllocationTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrDDLImage_MakeSubset\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrContext_oomed\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"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-CommandBuffer\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -48638,7 +50095,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -48653,22 +50110,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -48678,7 +50135,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -48749,7 +50206,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -48764,22 +50221,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -48789,7 +50246,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -48859,7 +50316,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -48874,22 +50331,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -48899,7 +50356,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -48969,7 +50426,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -48984,22 +50441,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -49009,7 +50466,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -49079,7 +50536,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -49094,22 +50551,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -49119,7 +50576,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -49189,7 +50646,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -49199,22 +50656,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -49224,7 +50681,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -49293,7 +50750,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -49308,22 +50765,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -49333,7 +50790,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -49347,7 +50804,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-CommandBuffer\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GLBackendAllocationTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrDDLImage_MakeSubset\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrContext_oomed\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"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-CommandBuffer\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-CommandBuffer\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"CommandBuffer\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"cmdbuffer_es2\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GLBackendAllocationTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrDDLImage_MakeSubset\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrContext_oomed\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"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-CommandBuffer\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -49403,7 +50860,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -49418,22 +50875,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -49443,7 +50900,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -49513,7 +50970,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -49528,22 +50985,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -49553,7 +51010,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -49623,7 +51080,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -49638,22 +51095,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -49663,7 +51120,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -49733,7 +51190,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -49748,22 +51205,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -49773,7 +51230,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -49843,7 +51300,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -49858,22 +51315,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -49883,7 +51340,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -49953,7 +51410,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -49968,22 +51425,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -49993,7 +51450,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -50063,7 +51520,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -50078,22 +51535,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -50103,7 +51560,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -50173,7 +51630,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -50188,22 +51645,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -50213,7 +51670,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -50283,7 +51740,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -50298,22 +51755,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -50323,7 +51780,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -50393,7 +51850,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -50408,22 +51865,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -50433,7 +51890,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -50503,7 +51960,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -50513,22 +51970,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -50538,7 +51995,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -50595,7 +52052,7 @@ "test" ] }, - "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Metal": { + "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Graphite": { "caches": [ { "name": "vpython", @@ -50607,7 +52064,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -50622,22 +52079,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -50647,7 +52104,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -50661,11 +52118,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"~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-Graphite\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"Graphite\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"lattice_alpha\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"localmatriximageshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_f16\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"~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\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Metal", + "Build-Mac-Clang-x86_64-Debug-Graphite", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -50705,7 +52162,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal": { + "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Metal": { "caches": [ { "name": "vpython", @@ -50717,7 +52174,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -50732,22 +52189,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -50757,7 +52214,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -50771,11 +52228,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"~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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"~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": [ - "Build-Mac-Clang-x86_64-Release-Metal", + "Build-Mac-Clang-x86_64-Debug-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -50815,7 +52272,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac10.15.7-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts": { + "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -50827,7 +52284,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -50842,22 +52299,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -50867,7 +52324,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -50881,15 +52338,15 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"~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": [ - "Build-Mac-Clang-x86_64-Debug", + "Build-Mac-Clang-x86_64-Release-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-i5-4278U", + "gpu:1002:6821-4.0.20-3.2.8", "os:Mac-10.15.7", "pool:Skia" ], @@ -50925,7 +52382,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac10.15.7-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All-NativeFonts_i5": { + "Test-Mac10.15.7-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts": { "caches": [ { "name": "vpython", @@ -50937,7 +52394,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -50952,22 +52409,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -50977,7 +52434,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -50991,7 +52448,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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--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": [ @@ -51000,7 +52457,6 @@ ], "dimensions": [ "cpu:x86-64-i5-4278U", - "gpu:8086:0a2e", "os:Mac-10.15.7", "pool:Skia" ], @@ -51036,7 +52492,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac10.15.7-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts": { + "Test-Mac10.15.7-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All-NativeFonts_i5": { "caches": [ { "name": "vpython", @@ -51048,7 +52504,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -51063,22 +52519,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -51088,7 +52544,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -51102,7 +52558,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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--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": [ @@ -51110,7 +52566,8 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64", + "cpu:x86-64-i5-4278U", + "gpu:8086:0a2e", "os:Mac-10.15.7", "pool:Skia" ], @@ -51146,7 +52603,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All": { + "Test-Mac10.15.7-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts": { "caches": [ { "name": "vpython", @@ -51158,7 +52615,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -51173,22 +52630,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -51198,7 +52655,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -51212,16 +52669,16 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--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": [ - "Build-Mac-Clang-arm64-Debug", + "Build-Mac-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:arm64-64-Apple_M1", - "os:Mac-11.4", + "cpu:x86-64", + "os:Mac-10.15.7", "pool:Skia" ], "environment": { @@ -51256,7 +52713,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts": { + "Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All": { "caches": [ { "name": "vpython", @@ -51268,7 +52725,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -51283,22 +52740,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -51308,7 +52765,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -51322,7 +52779,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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--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\",\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--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": [ @@ -51366,7 +52823,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All": { + "Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts": { "caches": [ { "name": "vpython", @@ -51378,7 +52835,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -51393,22 +52850,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -51418,7 +52875,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -51432,7 +52889,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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--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": [ @@ -51476,7 +52933,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite": { + "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All": { "caches": [ { "name": "vpython", @@ -51488,32 +52945,37 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -51523,7 +52985,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -51537,11 +52999,11 @@ "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-ASAN_Graphite\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"ASAN_Graphite\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"yuv420_odd_dim\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-alpha-jpeg\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"jpg-color-cube\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"~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-ASAN_Graphite\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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": [ - "Build-Mac-Clang-arm64-Debug-ASAN_Graphite", + "Build-Mac-Clang-arm64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -51575,12 +53037,13 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "test" - ] + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal": { + "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite": { "caches": [ { "name": "vpython", @@ -51592,37 +53055,32 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -51632,7 +53090,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -51646,11 +53104,11 @@ "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-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\\\",\\\"Mac11\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Mac11-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-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"ASAN_Graphite\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"lattice_alpha\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"localmatriximageshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_f16\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"yuv420_odd_dim\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-alpha-jpeg\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"jpg-color-cube\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkPDF_JpegIdentification\\\",\\\"--match\\\",\\\"~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-ASAN_Graphite\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"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": [ - "Build-Mac-Clang-arm64-Debug-Metal", + "Build-Mac-Clang-arm64-Debug-ASAN_Graphite", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -51684,13 +53142,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite": { + "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal": { "caches": [ { "name": "vpython", @@ -51702,32 +53159,37 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -51737,7 +53199,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -51751,11 +53213,11 @@ "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\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"~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\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"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-Mac11-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\\\",\\\"Mac11\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Mac11-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-Release-Graphite", + "Build-Mac-Clang-arm64-Debug-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -51792,9 +53254,10 @@ "max_attempts": 2, "outputs": [ "test" - ] + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal": { + "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite": { "caches": [ { "name": "vpython", @@ -51806,7 +53269,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -51821,22 +53284,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -51846,7 +53309,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -51860,11 +53323,11 @@ "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-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\\\",\\\"Mac11\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Mac11-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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"lattice_alpha\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"localmatriximageshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_f16\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"~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\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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", + "Build-Mac-Clang-arm64-Release-Graphite", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -51904,7 +53367,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Debug-All": { + "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -51916,7 +53379,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -51931,22 +53394,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -51956,7 +53419,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -51970,16 +53433,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-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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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-Mac11-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\\\",\\\"Mac11\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Mac11-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-x86_64-Debug", + "Build-Mac-Clang-arm64-Release-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:8a53", - "os:Mac-12", + "cpu:arm64-64-Apple_M1", + "os:Mac-11.4", "pool:Skia" ], "environment": { @@ -52014,7 +53477,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal": { + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -52026,7 +53489,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -52041,22 +53504,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -52066,7 +53529,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -52080,11 +53543,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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\",\"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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~^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": [ - "Build-Mac-Clang-x86_64-Debug-Metal", + "Build-Mac-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -52124,7 +53587,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Release-All": { + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite": { "caches": [ { "name": "vpython", @@ -52136,7 +53599,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -52151,22 +53614,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -52176,7 +53639,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -52190,11 +53653,11 @@ "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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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-Debug-All-Graphite\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Graphite\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"lattice_alpha\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"localmatriximageshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayer_f16\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~^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\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Release", + "Build-Mac-Clang-x86_64-Debug-Graphite", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -52234,7 +53697,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac12-Clang-MacBookPro16,2-GPU-IntelIrisPlus-x86_64-Release-All-Metal": { + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal": { "caches": [ { "name": "vpython", @@ -52246,7 +53709,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -52261,22 +53724,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -52286,7 +53749,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -52300,11 +53763,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~^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": [ - "Build-Mac-Clang-x86_64-Release-Metal", + "Build-Mac-Clang-x86_64-Debug-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -52344,7 +53807,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac12-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts_ASAN": { + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -52356,32 +53819,37 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -52391,7 +53859,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -52405,15 +53873,15 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--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-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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~^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": [ - "Build-Mac-Clang-arm64-Debug-ASAN", + "Build-Mac-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:arm64-64-Apple_M1", + "gpu:8086:8a53", "os:Mac-12", "pool:Skia" ], @@ -52443,12 +53911,13 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "test" - ] + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts": { + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -52460,7 +53929,7 @@ { "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/mac-amd64", @@ -52475,22 +53944,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -52500,7 +53969,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -52514,15 +53983,15 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"~^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": [ - "Build-Mac-Clang-arm64-Debug", + "Build-Mac-Clang-x86_64-Release-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:arm64-64-Apple_M1", + "gpu:8086:8a53", "os:Mac-12", "pool:Skia" ], @@ -52558,7 +54027,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-Mac12-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts_ASAN": { "caches": [ { "name": "vpython", @@ -52568,39 +54037,34 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "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" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -52610,7 +54074,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -52624,16 +54088,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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkPDF_JpegIdentification\\\",\\\"--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": [ - "Build-Debian10-Clang-x86_64-Debug", + "Build-Mac-Clang-arm64-Debug-ASAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-510.60.02", - "os:Ubuntu-18.04", + "cpu:arm64-64-Apple_M1", + "os:Mac-12", "pool:Skia" ], "environment": { @@ -52662,13 +54126,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" - ], - "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-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal": { "caches": [ { "name": "vpython", @@ -52678,12 +54141,12 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "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" }, @@ -52695,27 +54158,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -52725,7 +54183,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -52739,16 +54197,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_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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-Mac12-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\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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-Debian10-Clang-x86_64-Debug-Vulkan", + "Build-Mac-Clang-arm64-Debug-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-510.60.02", - "os:Ubuntu-18.04", + "cpu:arm64-64-Apple_M1", + "os:Mac-12", "pool:Skia" ], "environment": { @@ -52783,7 +54241,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-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts": { "caches": [ { "name": "vpython", @@ -52793,12 +54251,12 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "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" }, @@ -52810,27 +54268,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -52840,7 +54293,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -52854,16 +54307,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-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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--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": [ - "Build-Debian10-Clang-x86_64-Debug-Vulkan", + "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-12", "pool:Skia" ], "environment": { @@ -52898,7 +54351,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-OOPRDDL_Vulkan": { + "Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -52908,12 +54361,12 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/mac-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "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" }, @@ -52925,27 +54378,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -52955,7 +54403,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -52969,16 +54417,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-OOPRDDL_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"OOPRDDL_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkooprddl\\\",\\\"--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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-OOPRDDL_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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Debian10-Clang-x86_64-Debug-Vulkan", + "Build-Mac-Clang-arm64-Release-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-510.60.02", - "os:Ubuntu-18.04", + "cpu:arm64-64-Apple_M1", + "os:Mac-12", "pool:Skia" ], "environment": { @@ -53013,7 +54461,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-PreAbandonGpuContext": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1": { "caches": [ { "name": "vpython", @@ -53025,32 +54473,37 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -53060,7 +54513,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -53074,7 +54527,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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"_\\\",\\\"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)\"}", "skia" ], "dependencies": [ @@ -53115,9 +54568,10 @@ "max_attempts": 2, "outputs": [ "test" - ] + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan": { "caches": [ { "name": "vpython", @@ -53129,7 +54583,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -53144,22 +54598,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/linux_vulkan_sdk", @@ -53174,7 +54628,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -53188,7 +54642,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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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)\"}", "skia" ], "dependencies": [ @@ -53232,7 +54686,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan": { "caches": [ { "name": "vpython", @@ -53244,7 +54698,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -53259,22 +54713,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" }, { "name": "skia/bots/skimage", @@ -53284,7 +54743,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -53298,11 +54757,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-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\\\",\\\"srgb-gl\\\",\\\"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_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -53342,7 +54801,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DDL3_TSAN": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-OOPRDDL_Vulkan": { "caches": [ { "name": "vpython", @@ -53354,37 +54813,42 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" }, { "name": "skia/bots/skimage", @@ -53394,7 +54858,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -53408,11 +54872,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-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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-Debug-All-OOPRDDL_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"OOPRDDL_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkooprddl\\\",\\\"--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-OOPRDDL_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-Release-TSAN", + "Build-Debian10-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -53446,12 +54910,13 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "test" - ] + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-OOPRDDL_TSAN": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-PreAbandonGpuContext": { "caches": [ { "name": "vpython", @@ -53463,7 +54928,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -53473,27 +54938,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:20" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -53503,7 +54963,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -53517,11 +54977,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-Release-All-OOPRDDL_TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"OOPRDDL_TSAN\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glooprddl\\\",\\\"--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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-OOPRDDL_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release-TSAN", + "Build-Debian10-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -53555,12 +55015,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 1, + "max_attempts": 2, "outputs": [ "test" ] }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-PreAbandonGpuContext": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -53572,32 +55032,42 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" }, { "name": "skia/bots/skimage", @@ -53607,7 +55077,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -53621,11 +55091,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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -53662,9 +55132,10 @@ "max_attempts": 2, "outputs": [ "test" - ] + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -53676,32 +55147,37 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -53711,17 +55187,12 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", "path": "svg", "version": "version:14" - }, - { - "name": "skia/bots/valgrind", - "path": "valgrind", - "version": "version:9" } ], "command": [ @@ -53730,18 +55201,17 @@ "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\\\",\\\"srgb-gl\\\",\\\"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_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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\",\"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\\\",\\\"srgb-gl\\\",\\\"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_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE41", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "gpu:10de:1cb3-510.60.02", "os:Ubuntu-18.04", - "pool:Skia", - "valgrind:1" + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -53763,18 +55233,19 @@ "cache/vpython" ] }, - "execution_timeout_ns": 32400000000000, - "expiration_ns": 172800000000000, + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 32400000000000, - "max_attempts": 1, + "io_timeout_ns": 14400000000000, + "max_attempts": 2, "outputs": [ "test" - ] + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DDL3_TSAN": { "caches": [ { "name": "vpython", @@ -53786,7 +55257,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -53796,22 +55267,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" }, { "name": "skia/bots/skimage", @@ -53821,17 +55297,12 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", "path": "svg", "version": "version:14" - }, - { - "name": "skia/bots/valgrind", - "path": "valgrind", - "version": "version:9" } ], "command": [ @@ -53840,18 +55311,17 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"_\\\",\\\"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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE41", + "Build-Debian10-Clang-x86_64-Release-TSAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "gpu:10de:1cb3-510.60.02", "os:Ubuntu-18.04", - "pool:Skia", - "valgrind:1" + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -53873,18 +55343,18 @@ "cache/vpython" ] }, - "execution_timeout_ns": 32400000000000, - "expiration_ns": 172800000000000, + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 32400000000000, + "io_timeout_ns": 14400000000000, "max_attempts": 1, "outputs": [ "test" ] }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_SK_CPU_LIMIT_SSE41": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-OOPRDDL_TSAN": { "caches": [ { "name": "vpython", @@ -53896,7 +55366,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -53906,22 +55376,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:20" }, { "name": "skia/bots/skimage", @@ -53931,17 +55406,12 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", "path": "svg", "version": "version:14" - }, - { - "name": "skia/bots/valgrind", - "path": "valgrind", - "version": "version:9" } ], "command": [ @@ -53950,18 +55420,17 @@ "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\\\",\\\"srgb-gl\\\",\\\"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_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-OOPRDDL_TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"OOPRDDL_TSAN\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glooprddl\\\",\\\"--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\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-OOPRDDL_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": [ - "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE41", + "Build-Debian10-Clang-x86_64-Release-TSAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "gpu:10de:1cb3-510.60.02", "os:Ubuntu-18.04", - "pool:Skia", - "valgrind:1" + "pool:Skia" ], "environment": { "RECIPES_USE_PY3": "true", @@ -53983,18 +55452,18 @@ "cache/vpython" ] }, - "execution_timeout_ns": 32400000000000, - "expiration_ns": 172800000000000, + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 32400000000000, + "io_timeout_ns": 14400000000000, "max_attempts": 1, "outputs": [ "test" ] }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-PreAbandonGpuContext": { "caches": [ { "name": "vpython", @@ -54006,42 +55475,32 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:5" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -54051,7 +55510,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -54065,11 +55524,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-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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"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)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release-Vulkan", + "Build-Debian10-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -54106,99 +55565,119 @@ "max_attempts": 2, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-WasmGMTests_WebGL2": { - "casSpec": "wasm-gm", + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "test", "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/linux-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/node", - "path": "node", - "version": "version:3" + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/tools/goldctl/${platform}", + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" + }, + { + "name": "skia/bots/valgrind", + "path": "valgrind", + "version": "version:9" } ], "command": [ - "./run_wasm_gm_tests", - "--project_id", - "skia-swarming-bots", - "--task_id", - "<(TASK_ID)", - "--task_name", - "Test-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-WasmGMTests_WebGL2", - "--test_harness_path", - "./tools/run-wasm-gm-tests", - "--built_path", - "./wasm_out", - "--node_bin_path", - "./node/node/bin", - "--resource_path", - "./resources", - "--work_path", - "./wasm_gm/work", - "--gold_ctl_path", - "./cipd_bin_packages/goldctl", - "--gold_hashes_url", - "https://gold.skia.org/json/v1/hashes", - "--git_commit", - "<(REVISION)", - "--changelist_id", - "<(ISSUE)", - "--patchset_order", - "<(PATCHSET)", - "--tryjob_id", - "<(BUILDBUCKET_BUILD_ID)", - "--webgl_version", - "2", - "--gold_key", - "alpha_type:Premul", - "--gold_key", - "arch:wasm", - "--gold_key", - "browser:Chrome", - "--gold_key", - "color_depth:8888", - "--gold_key", - "config:gles", - "--gold_key", - "configuration:Release", - "--gold_key", - "cpu_or_gpu_value:QuadroP400", - "--gold_key", - "model:Golo", - "--gold_key", - "os:Ubuntu18" + "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-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\\\",\\\"srgb-gl\\\",\\\"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_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"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)\"}", + "skia" ], "dependencies": [ - "Build-Debian10-EMCC-wasm-Release-WasmGMTests", - "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" + "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE41", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "gpu:10de:1cb3-510.60.02", "os:Ubuntu-18.04", - "pool:Skia" + "pool:Skia", + "valgrind:1" ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, "env_prefixes": { "PATH": [ - "node/node/bin" + "cipd_bin_packages/cpython", + "cipd_bin_packages/cpython/bin", + "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, - "io_timeout_ns": 3600000000000, + "execution_timeout_ns": 32400000000000, + "expiration_ns": 172800000000000, + "extra_tags": { + "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" + }, + "io_timeout_ns": 32400000000000, "max_attempts": 1, - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + "outputs": [ + "test" + ] }, - "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41": { "caches": [ { "name": "vpython", @@ -54208,34 +55687,34 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "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}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -54245,12 +55724,17 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", "path": "svg", "version": "version:14" + }, + { + "name": "skia/bots/valgrind", + "path": "valgrind", + "version": "version:9" } ], "command": [ @@ -54259,17 +55743,18 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE41", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:6646-26.20.13031.18002", - "os:Windows-10-19044", - "pool:Skia" + "gpu:10de:1cb3-510.60.02", + "os:Ubuntu-18.04", + "pool:Skia", + "valgrind:1" ], "environment": { "RECIPES_USE_PY3": "true", @@ -54291,18 +55776,18 @@ "cache/vpython" ] }, - "execution_timeout_ns": 14400000000000, - "expiration_ns": 72000000000000, + "execution_timeout_ns": 32400000000000, + "expiration_ns": 172800000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "io_timeout_ns": 32400000000000, + "max_attempts": 1, "outputs": [ "test" ] }, - "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_SK_CPU_LIMIT_SSE41": { "caches": [ { "name": "vpython", @@ -54312,34 +55797,34 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "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}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -54349,12 +55834,17 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", "path": "svg", "version": "version:14" + }, + { + "name": "skia/bots/valgrind", + "path": "valgrind", + "version": "version:9" } ], "command": [ @@ -54363,17 +55853,18 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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-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\\\",\\\"srgb-gl\\\",\\\"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_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-ANGLE", + "Build-Debian10-Clang-x86_64-Release-SK_CPU_LIMIT_SSE41", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:6646-26.20.13031.18002", - "os:Windows-10-19044", - "pool:Skia" + "gpu:10de:1cb3-510.60.02", + "os:Ubuntu-18.04", + "pool:Skia", + "valgrind:1" ], "environment": { "RECIPES_USE_PY3": "true", @@ -54395,18 +55886,18 @@ "cache/vpython" ] }, - "execution_timeout_ns": 14400000000000, - "expiration_ns": 72000000000000, + "execution_timeout_ns": 32400000000000, + "expiration_ns": 172800000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "io_timeout_ns": 32400000000000, + "max_attempts": 1, "outputs": [ "test" ] }, - "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-Vulkan": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -54416,34 +55907,44 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/windows-amd64", + "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "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/gsutil", + "path": "cipd_bin_packages", + "version": "version:4.46" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:5" }, { "name": "skia/bots/skimage", @@ -54453,7 +55954,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -54467,16 +55968,16 @@ "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-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkDrawableImportTest\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-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-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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-Vulkan", + "Build-Debian10-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:6646-26.20.13031.18002", - "os:Windows-10-19044", + "gpu:10de:1cb3-510.60.02", + "os:Ubuntu-18.04", "pool:Skia" ], "environment": { @@ -54508,113 +56009,99 @@ "max_attempts": 2, "outputs": [ "test" - ] - }, - "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } ], - "casSpec": "test", + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + }, + "Test-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-WasmGMTests_WebGL2": { + "casSpec": "wasm-gm", "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/windows-amd64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "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:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "name": "skia/bots/node", + "path": "node", + "version": "version:3" }, { - "name": "infra/tools/luci/vpython/${platform}", + "name": "skia/tools/goldctl/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:362" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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)\"}", - "skia" + "./run_wasm_gm_tests", + "--project_id", + "skia-swarming-bots", + "--task_id", + "<(TASK_ID)", + "--task_name", + "Test-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-WasmGMTests_WebGL2", + "--test_harness_path", + "./tools/run-wasm-gm-tests", + "--built_path", + "./wasm_out", + "--node_bin_path", + "./node/node/bin", + "--resource_path", + "./resources", + "--work_path", + "./wasm_gm/work", + "--gold_ctl_path", + "./cipd_bin_packages/goldctl", + "--gold_hashes_url", + "https://gold.skia.org/json/v1/hashes", + "--git_commit", + "<(REVISION)", + "--changelist_id", + "<(ISSUE)", + "--patchset_order", + "<(PATCHSET)", + "--tryjob_id", + "<(BUILDBUCKET_BUILD_ID)", + "--webgl_version", + "2", + "--gold_key", + "alpha_type:Premul", + "--gold_key", + "arch:wasm", + "--gold_key", + "browser:Chrome", + "--gold_key", + "color_depth:8888", + "--gold_key", + "config:gles", + "--gold_key", + "configuration:Release", + "--gold_key", + "cpu_or_gpu_value:QuadroP400", + "--gold_key", + "model:Golo", + "--gold_key", + "os:Ubuntu18" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release", - "Housekeeper-PerCommit-BundleRecipes" + "Build-Debian10-EMCC-wasm-Release-WasmGMTests", + "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" ], "dimensions": [ - "gpu:1002:6646-26.20.13031.18002", - "os:Windows-10-19044", + "gpu:10de:1cb3-510.60.02", + "os:Ubuntu-18.04", "pool:Skia" ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, "env_prefixes": { "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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" + "node/node/bin" ] }, - "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" - ] + "execution_timeout_ns": 3600000000000, + "io_timeout_ns": 3600000000000, + "max_attempts": 1, + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE": { + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -54626,7 +56113,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -54636,22 +56123,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -54661,7 +56148,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -54675,11 +56162,11 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -54718,7 +56205,7 @@ "test" ] }, - "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan": { + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -54730,7 +56217,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -54740,22 +56227,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -54765,7 +56252,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -54779,11 +56266,11 @@ "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-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkDrawableImportTest\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Debug-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -54822,7 +56309,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All": { + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -54834,7 +56321,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -54844,22 +56331,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -54869,7 +56356,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -54883,16 +56370,16 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-AlphaR2-GPU-RadeonR9M470X-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\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkDrawableImportTest\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-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": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:1002:6646-26.20.13031.18002", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -54926,7 +56413,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE": { + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -54938,7 +56425,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -54948,22 +56435,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -54973,7 +56460,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -54987,16 +56474,16 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-ANGLE", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:1002:6646-26.20.13031.18002", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -55030,7 +56517,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs": { + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -55042,7 +56529,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -55052,22 +56539,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -55077,7 +56564,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -55091,16 +56578,16 @@ "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\\\",\\\"narrow-glf16\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-Clang-x86_64-Release-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:1002:6646-26.20.13031.18002", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -55134,7 +56621,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn": { + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -55146,7 +56633,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -55156,22 +56643,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -55181,7 +56668,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -55195,16 +56682,16 @@ "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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-AlphaR2-GPU-RadeonR9M470X-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\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkDrawableImportTest\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-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": [ - "Build-Win-Clang-x86_64-Debug-Dawn", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:1002:6646-26.20.13031.18002", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -55238,7 +56725,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess": { + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -55250,7 +56737,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -55260,22 +56747,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -55285,7 +56772,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -55299,7 +56786,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\\\",\\\"--hwtess\\\",\\\"--alwaysHwTess\\\",\\\"--maxTessellationSegments\\\",\\\"16\\\",\\\"--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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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\",\"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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ @@ -55342,7 +56829,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ReleaseAndAbandonGpuContext": { + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -55354,7 +56841,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -55364,22 +56851,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -55389,7 +56876,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -55403,11 +56890,11 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-Clang-x86_64-Debug-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -55446,7 +56933,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": { + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs": { "caches": [ { "name": "vpython", @@ -55458,7 +56945,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -55468,22 +56955,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -55493,7 +56980,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -55507,11 +56994,11 @@ "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-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\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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\\\",\\\"narrow-glf16\\\",\\\"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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Debug-Vulkan", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -55550,7 +57037,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan_ProcDump": { + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn": { "caches": [ { "name": "vpython", @@ -55562,7 +57049,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -55572,27 +57059,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/procdump_win", - "path": "procdump_win", - "version": "version:0" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -55602,7 +57084,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -55616,11 +57098,11 @@ "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-Vulkan_ProcDump\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan_ProcDump\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan_ProcDump\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"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\\\",\\\"--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-Vulkan", + "Build-Win-Clang-x86_64-Debug-Dawn", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -55659,7 +57141,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess": { "caches": [ { "name": "vpython", @@ -55671,7 +57153,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -55681,22 +57163,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -55706,7 +57188,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -55720,11 +57202,11 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"--hwtess\\\",\\\"--alwaysHwTess\\\",\\\"--maxTessellationSegments\\\",\\\"16\\\",\\\"--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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -55763,7 +57245,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE": { + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ReleaseAndAbandonGpuContext": { "caches": [ { "name": "vpython", @@ -55775,7 +57257,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -55785,22 +57267,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -55810,7 +57292,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -55824,11 +57306,11 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -55867,7 +57349,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs": { + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -55879,7 +57361,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -55889,22 +57371,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -55914,7 +57396,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -55928,11 +57410,11 @@ "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\\\",\\\"narrow-glf16\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--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\\\",\\\"vkmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Release", + "Build-Win-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -55971,7 +57453,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ReleaseAndAbandonGpuContext": { + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -55983,7 +57465,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -55993,22 +57475,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -56018,7 +57500,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -56032,7 +57514,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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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\",\"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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ @@ -56075,7 +57557,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -56087,7 +57569,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -56097,22 +57579,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -56122,7 +57604,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -56136,11 +57618,11 @@ "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-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\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Release-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -56179,7 +57661,7 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump": { + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs": { "caches": [ { "name": "vpython", @@ -56191,7 +57673,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -56201,27 +57683,126 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/procdump_win", - "path": "procdump_win", - "version": "version:0" + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "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-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\\\",\\\"narrow-glf16\\\",\\\"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\\\",\\\"--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": [ + "Build-Win-Clang-x86_64-Release", + "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/cpython", + "cipd_bin_packages/cpython/bin", + "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-Release-All-ReleaseAndAbandonGpuContext": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "test", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython/windows-amd64", + "path": "cipd_bin_packages/cpython", + "version": "version:2@2.7.18.chromium.42" + }, + { + "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:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -56231,7 +57812,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -56245,11 +57826,11 @@ "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-Vulkan_ProcDump\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan_ProcDump\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -56288,7 +57869,7 @@ "test" ] }, - "Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts": { + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -56300,7 +57881,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -56310,22 +57891,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -56335,7 +57916,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -56349,16 +57930,16 @@ "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-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\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC5i7RYH-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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-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\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--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\\\",\\\"vkmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-i7-5557U", - "os:Windows-10-19044", + "gpu:10de:1cb3-30.0.15.1179", + "os:Windows-10-19043", "pool:Skia" ], "environment": { @@ -56392,7 +57973,7 @@ "test" ] }, - "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All": { + "Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts": { "caches": [ { "name": "vpython", @@ -56404,7 +57985,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -56414,22 +57995,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -56439,7 +58020,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -56453,7 +58034,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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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-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\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC5i7RYH-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56461,7 +58042,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:162b-20.19.15.4963", + "cpu:x86-64-i7-5557U", "os:Windows-10-19044", "pool:Skia" ], @@ -56496,7 +58077,7 @@ "test" ] }, - "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE": { + "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -56508,7 +58089,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -56518,22 +58099,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -56543,7 +58124,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -56557,11 +58138,11 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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\",\"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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-ANGLE", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -56600,7 +58181,7 @@ "test" ] }, - "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All": { + "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -56612,7 +58193,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -56622,22 +58203,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -56647,7 +58228,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -56661,11 +58242,11 @@ "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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Debug-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -56704,7 +58285,7 @@ "test" ] }, - "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE": { + "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -56716,7 +58297,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -56726,22 +58307,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -56751,7 +58332,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -56765,11 +58346,11 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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\",\"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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -56808,7 +58389,7 @@ "test" ] }, - "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All": { + "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -56820,7 +58401,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -56830,22 +58411,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -56855,7 +58436,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -56869,15 +58450,15 @@ "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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-Clang-x86_64-Release-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:1926-26.20.100.7463", + "gpu:8086:162b-20.19.15.4963", "os:Windows-10-19044", "pool:Skia" ], @@ -56912,7 +58493,7 @@ "test" ] }, - "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE": { + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -56924,7 +58505,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -56934,22 +58515,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -56959,7 +58540,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -56973,11 +58554,11 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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\",\"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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-ANGLE", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -57016,7 +58597,7 @@ "test" ] }, - "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan": { + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -57028,7 +58609,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -57038,22 +58619,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -57063,7 +58644,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -57077,11 +58658,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-Vulkan", + "Build-Win-Clang-x86_64-Debug-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -57120,7 +58701,7 @@ "test" ] }, - "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All": { + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -57132,7 +58713,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -57142,22 +58723,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -57167,7 +58748,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -57181,11 +58762,11 @@ "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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -57224,7 +58805,7 @@ "test" ] }, - "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE": { + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -57236,7 +58817,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -57246,22 +58827,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -57271,7 +58852,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -57285,11 +58866,11 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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\",\"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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -57328,7 +58909,7 @@ "test" ] }, - "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts": { + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -57340,7 +58921,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -57350,22 +58931,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -57375,7 +58956,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -57389,11 +58970,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Release-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -57432,7 +59013,7 @@ "test" ] }, - "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan": { + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts": { "caches": [ { "name": "vpython", @@ -57444,7 +59025,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -57454,22 +59035,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -57479,7 +59060,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -57493,11 +59074,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -57536,7 +59117,7 @@ "test" ] }, - "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All": { + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -57548,7 +59129,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -57558,22 +59139,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -57583,7 +59164,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -57597,15 +59178,15 @@ "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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:3ea5-26.20.100.7463", + "gpu:8086:1926-26.20.100.7463", "os:Windows-10-19044", "pool:Skia" ], @@ -57640,7 +59221,7 @@ "test" ] }, - "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE": { + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -57652,7 +59233,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -57662,22 +59243,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -57687,7 +59268,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -57701,11 +59282,11 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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\",\"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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-ANGLE", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -57744,7 +59325,7 @@ "test" ] }, - "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D": { + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -57756,7 +59337,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -57766,22 +59347,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -57791,7 +59372,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -57805,11 +59386,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-Direct3D", + "Build-Win-Clang-x86_64-Debug-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -57848,7 +59429,7 @@ "test" ] }, - "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan": { + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D": { "caches": [ { "name": "vpython", @@ -57860,7 +59441,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -57870,22 +59451,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -57895,7 +59476,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -57909,11 +59490,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-Vulkan", + "Build-Win-Clang-x86_64-Debug-Direct3D", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -57952,7 +59533,7 @@ "test" ] }, - "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All": { + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -57964,7 +59545,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -57974,22 +59555,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -57999,7 +59580,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -58013,11 +59594,11 @@ "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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -58056,7 +59637,7 @@ "test" ] }, - "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE": { + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -58068,7 +59649,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -58078,22 +59659,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -58103,7 +59684,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -58117,11 +59698,11 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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\",\"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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -58160,7 +59741,7 @@ "test" ] }, - "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D": { + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -58172,7 +59753,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -58182,22 +59763,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -58207,7 +59788,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -58221,11 +59802,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-Direct3D", + "Build-Win-Clang-x86_64-Release-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -58264,7 +59845,7 @@ "test" ] }, - "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan": { + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D": { "caches": [ { "name": "vpython", @@ -58276,7 +59857,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -58286,22 +59867,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -58311,7 +59892,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -58325,11 +59906,11 @@ "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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Release-Direct3D", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -58368,7 +59949,7 @@ "test" ] }, - "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All": { + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -58380,7 +59961,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -58390,22 +59971,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -58415,7 +59996,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -58429,15 +60010,15 @@ "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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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-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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".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-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": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0a16-20.19.15.4963", + "gpu:8086:3ea5-26.20.100.7463", "os:Windows-10-19044", "pool:Skia" ], @@ -58472,7 +60053,7 @@ "test" ] }, - "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE": { + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -58484,7 +60065,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -58494,22 +60075,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -58519,7 +60100,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -58533,15 +60114,15 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Debug-ANGLE", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0a16-20.19.15.4963", + "gpu:10de:2489-30.0.15.1165", "os:Windows-10-19044", "pool:Skia" ], @@ -58576,7 +60157,7 @@ "test" ] }, - "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All": { + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -58588,7 +60169,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -58598,22 +60179,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -58623,7 +60204,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -58637,15 +60218,15 @@ "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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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-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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0a16-20.19.15.4963", + "gpu:10de:2489-30.0.15.1165", "os:Windows-10-19044", "pool:Skia" ], @@ -58680,7 +60261,7 @@ "test" ] }, - "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE": { + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -58692,7 +60273,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -58702,22 +60283,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -58727,7 +60308,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -58741,15 +60322,15 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:8086:0a16-20.19.15.4963", + "gpu:10de:2489-30.0.15.1165", "os:Windows-10-19044", "pool:Skia" ], @@ -58784,7 +60365,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All": { + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -58796,7 +60377,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -58806,22 +60387,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -58831,7 +60412,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -58845,15 +60426,15 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:11c0-26.21.14.4120", + "gpu:10de:2489-30.0.15.1165", "os:Windows-10-19044", "pool:Skia" ], @@ -58888,7 +60469,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE": { + "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -58900,7 +60481,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -58910,22 +60491,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -58935,7 +60516,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -58949,15 +60530,15 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-ANGLE", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:11c0-26.21.14.4120", + "gpu:8086:0a16-20.19.15.4963", "os:Windows-10-19044", "pool:Skia" ], @@ -58992,7 +60573,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-Vulkan": { + "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -59004,7 +60585,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -59014,22 +60595,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -59039,7 +60620,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -59053,15 +60634,15 @@ "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-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--match\\\",\\\"~FloatingPointTextureTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-Vulkan", + "Build-Win-Clang-x86_64-Debug-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:11c0-26.21.14.4120", + "gpu:8086:0a16-20.19.15.4963", "os:Windows-10-19044", "pool:Skia" ], @@ -59096,7 +60677,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All": { + "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -59108,7 +60689,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -59118,22 +60699,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -59143,7 +60724,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -59157,7 +60738,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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"srgb-gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ @@ -59165,7 +60746,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:11c0-26.21.14.4120", + "gpu:8086:0a16-20.19.15.4963", "os:Windows-10-19044", "pool:Skia" ], @@ -59200,7 +60781,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE": { + "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -59212,7 +60793,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -59222,22 +60803,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -59247,7 +60828,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -59261,7 +60842,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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_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)\"}", "skia" ], "dependencies": [ @@ -59269,7 +60850,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:11c0-26.21.14.4120", + "gpu:8086:0a16-20.19.15.4963", "os:Windows-10-19044", "pool:Skia" ], @@ -59304,7 +60885,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan": { + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -59316,7 +60897,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -59326,22 +60907,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -59351,7 +60932,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -59365,11 +60946,11 @@ "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-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--match\\\",\\\"~FloatingPointTextureTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -59408,7 +60989,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All": { + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -59420,7 +61001,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -59430,22 +61011,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -59455,7 +61036,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -59469,15 +61050,15 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-Clang-x86_64-Debug-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:683d-26.20.13031.18002", + "gpu:10de:11c0-26.21.14.4120", "os:Windows-10-19044", "pool:Skia" ], @@ -59512,7 +61093,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE": { + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -59524,7 +61105,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -59534,22 +61115,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -59559,7 +61140,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -59573,15 +61154,15 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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-GTX660-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\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"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\\\",\\\"--match\\\",\\\"~FloatingPointTextureTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-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": [ - "Build-Win-Clang-x86_64-Debug-ANGLE", + "Build-Win-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:683d-26.20.13031.18002", + "gpu:10de:11c0-26.21.14.4120", "os:Windows-10-19044", "pool:Skia" ], @@ -59616,7 +61197,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D": { + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -59628,7 +61209,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -59638,22 +61219,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -59663,7 +61244,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -59677,15 +61258,15 @@ "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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Debug-Direct3D", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:683d-26.20.13031.18002", + "gpu:10de:11c0-26.21.14.4120", "os:Windows-10-19044", "pool:Skia" ], @@ -59720,7 +61301,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Vulkan": { + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -59732,7 +61313,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -59742,22 +61323,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -59767,7 +61348,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -59781,15 +61362,15 @@ "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-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkDrawableImportTest\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Debug-Vulkan", + "Build-Win-Clang-x86_64-Release-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:683d-26.20.13031.18002", + "gpu:10de:11c0-26.21.14.4120", "os:Windows-10-19044", "pool:Skia" ], @@ -59824,7 +61405,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All": { + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -59836,7 +61417,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -59846,22 +61427,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -59871,7 +61452,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -59885,15 +61466,15 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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-GTX660-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\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"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\\\",\\\"--match\\\",\\\"~FloatingPointTextureTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-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": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:1002:683d-26.20.13031.18002", + "gpu:10de:11c0-26.21.14.4120", "os:Windows-10-19044", "pool:Skia" ], @@ -59928,7 +61509,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE": { + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -59940,7 +61521,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -59950,22 +61531,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -59975,7 +61556,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -59989,11 +61570,11 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -60032,7 +61613,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D": { + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -60044,7 +61625,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -60054,22 +61635,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -60079,7 +61660,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -60093,11 +61674,11 @@ "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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-Direct3D", + "Build-Win-Clang-x86_64-Debug-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -60136,7 +61717,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan": { + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D": { "caches": [ { "name": "vpython", @@ -60148,7 +61729,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -60158,22 +61739,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -60183,7 +61764,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -60197,11 +61778,11 @@ "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-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkDrawableImportTest\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-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-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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Debug-Direct3D", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -60240,7 +61821,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All": { + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -60252,7 +61833,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -60262,22 +61843,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -60287,7 +61868,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -60301,15 +61882,15 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-ShuttleA-GPU-RadeonHD7770-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\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkDrawableImportTest\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-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": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-27.21.14.5671", + "gpu:1002:683d-26.20.13031.18002", "os:Windows-10-19044", "pool:Skia" ], @@ -60344,7 +61925,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE": { + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -60356,7 +61937,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -60366,22 +61947,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -60391,7 +61972,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -60405,15 +61986,15 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-ANGLE", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-27.21.14.5671", + "gpu:1002:683d-26.20.13031.18002", "os:Windows-10-19044", "pool:Skia" ], @@ -60448,7 +62029,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-Vulkan": { + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -60460,7 +62041,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -60470,22 +62051,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -60495,7 +62076,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -60509,15 +62090,15 @@ "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-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Debug-Vulkan", + "Build-Win-Clang-x86_64-Release-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-27.21.14.5671", + "gpu:1002:683d-26.20.13031.18002", "os:Windows-10-19044", "pool:Skia" ], @@ -60552,7 +62133,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All": { + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D": { "caches": [ { "name": "vpython", @@ -60564,7 +62145,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -60574,22 +62155,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -60599,7 +62180,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -60613,15 +62194,15 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Release-Direct3D", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-27.21.14.5671", + "gpu:1002:683d-26.20.13031.18002", "os:Windows-10-19044", "pool:Skia" ], @@ -60656,7 +62237,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE": { + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -60668,7 +62249,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -60678,22 +62259,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -60703,7 +62284,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -60717,15 +62298,15 @@ "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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-ShuttleA-GPU-RadeonHD7770-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\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkDrawableImportTest\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-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": [ - "Build-Win-Clang-x86_64-Release-ANGLE", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-27.21.14.5671", + "gpu:1002:683d-26.20.13031.18002", "os:Windows-10-19044", "pool:Skia" ], @@ -60760,7 +62341,7 @@ "test" ] }, - "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan": { + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -60772,7 +62353,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -60782,22 +62363,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -60807,7 +62388,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -60821,11 +62402,11 @@ "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-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"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\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-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-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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Release-Vulkan", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -60864,7 +62445,7 @@ "test" ] }, - "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All": { + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -60876,7 +62457,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -60886,22 +62467,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -60911,7 +62492,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -60925,16 +62506,16 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"--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": [ - "Build-Win-MSVC-x86_64-Debug", + "Build-Win-Clang-x86_64-Debug-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:10de:1401-27.21.14.5671", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -60968,7 +62549,7 @@ "test" ] }, - "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D": { + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -60980,7 +62561,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -60990,22 +62571,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -61015,7 +62596,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -61029,16 +62610,16 @@ "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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-Clang-ShuttleC-GPU-GTX960-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\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-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": [ - "Build-Win-MSVC-x86_64-Debug-Direct3D", + "Build-Win-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:10de:1401-27.21.14.5671", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -61072,7 +62653,7 @@ "test" ] }, - "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": { + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -61084,7 +62665,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -61094,22 +62675,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -61119,7 +62700,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -61133,16 +62714,16 @@ "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-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Win-MSVC-x86_64-Debug-Vulkan", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:10de:1401-27.21.14.5671", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -61176,7 +62757,7 @@ "test" ] }, - "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All": { + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -61188,7 +62769,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -61198,22 +62779,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -61223,7 +62804,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -61237,16 +62818,16 @@ "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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-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_gl_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_gl_es3_dmsaa\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa4\\\",\\\"angle_gl_es2_dmsaa\\\",\\\"angle_gl_es3_msaa4\\\",\\\"angle_gl_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\\\",\\\"--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": [ - "Build-Win-MSVC-x86_64-Release", + "Build-Win-Clang-x86_64-Release-ANGLE", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:10de:1401-27.21.14.5671", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -61280,7 +62861,7 @@ "test" ] }, - "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D": { + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -61292,7 +62873,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -61302,22 +62883,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -61327,7 +62908,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -61341,16 +62922,16 @@ "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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_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-Clang-ShuttleC-GPU-GTX960-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\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-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": [ - "Build-Win-MSVC-x86_64-Release-Direct3D", + "Build-Win-Clang-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", + "gpu:10de:1401-27.21.14.5671", + "os:Windows-10-19044", "pool:Skia" ], "environment": { @@ -61384,7 +62965,7 @@ "test" ] }, - "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -61396,7 +62977,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -61406,22 +62987,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -61431,7 +63012,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -61445,11 +63026,11 @@ "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-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--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\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Arrays_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Structs_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Types_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLRecursiveComparison_Vectors_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Win-MSVC-x86_64-Release-Vulkan", + "Build-Win-MSVC-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -61488,7 +63069,7 @@ "test" ] }, - "Test-Win2019-Clang-GCE-CPU-AVX2-x86-Debug-All": { + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D": { "caches": [ { "name": "vpython", @@ -61500,7 +63081,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -61510,22 +63091,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -61535,7 +63116,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -61549,17 +63130,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-Clang-GCE-CPU-AVX2-x86-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-CPU-AVX2-x86-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-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\\\",\\\"--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": [ - "Build-Win-Clang-x86-Debug", + "Build-Win-MSVC-x86_64-Debug-Direct3D", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Windows-Server-17763", + "gpu:10de:1cb3-30.0.15.1179", + "os:Windows-10-19043", "pool:Skia" ], "environment": { @@ -61582,18 +63162,18 @@ "cache/vpython" ] }, - "execution_timeout_ns": 21600000000000, + "execution_timeout_ns": 14400000000000, "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 21600000000000, + "io_timeout_ns": 14400000000000, "max_attempts": 2, "outputs": [ "test" ] }, - "Test-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All": { + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -61605,7 +63185,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -61615,22 +63195,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -61640,7 +63220,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -61654,17 +63234,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-CPU-AVX2-x86-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-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--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\\\",\\\"vkmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Release", + "Build-Win-MSVC-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Windows-Server-17763", + "gpu:10de:1cb3-30.0.15.1179", + "os:Windows-10-19043", "pool:Skia" ], "environment": { @@ -61698,7 +63277,7 @@ "test" ] }, - "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM": { + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -61710,7 +63289,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -61720,22 +63299,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -61745,7 +63324,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -61759,17 +63338,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_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\\\",\\\"srgb-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gl\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"--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": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-MSVC-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Windows-Server-17763", + "gpu:10de:1cb3-30.0.15.1179", + "os:Windows-10-19043", "pool:Skia" ], "environment": { @@ -61803,7 +63381,7 @@ "test" ] }, - "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All": { + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D": { "caches": [ { "name": "vpython", @@ -61815,7 +63393,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -61825,22 +63403,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -61850,7 +63428,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -61864,17 +63442,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-Clang-GCE-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\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_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)\"}", "skia" ], "dependencies": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-MSVC-x86_64-Release-Direct3D", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Windows-Server-17763", + "gpu:10de:1cb3-30.0.15.1179", + "os:Windows-10-19043", "pool:Skia" ], "environment": { @@ -61908,7 +63485,7 @@ "test" ] }, - "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM": { + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -61920,7 +63497,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -61930,22 +63507,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -61955,7 +63532,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -61969,17 +63546,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_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-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--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\\\",\\\"vkmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Release", + "Build-Win-MSVC-x86_64-Release-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "machine_type:n1-standard-16", - "os:Windows-Server-17763", + "gpu:10de:1cb3-30.0.15.1179", + "os:Windows-10-19043", "pool:Skia" ], "environment": { @@ -62013,7 +63589,7 @@ "test" ] }, - "Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Debug-All": { + "Test-Win2019-Clang-GCE-CPU-AVX2-x86-Debug-All": { "caches": [ { "name": "vpython", @@ -62025,7 +63601,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -62035,22 +63611,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -62060,7 +63636,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -62074,11 +63650,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86-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-Win2019-Clang-GCE-CPU-AVX2-x86-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-CPU-AVX2-x86-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": [ - "Build-Win-MSVC-x86-Debug", + "Build-Win-Clang-x86-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -62118,7 +63694,7 @@ "test" ] }, - "Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Release-All": { + "Test-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All": { "caches": [ { "name": "vpython", @@ -62130,7 +63706,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -62140,22 +63716,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -62165,7 +63741,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -62179,11 +63755,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86-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-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-CPU-AVX2-x86-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": [ - "Build-Win-MSVC-x86-Release", + "Build-Win-Clang-x86-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -62223,7 +63799,7 @@ "test" ] }, - "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All": { + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN": { "caches": [ { "name": "vpython", @@ -62235,7 +63811,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -62245,22 +63821,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -62270,7 +63846,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -62284,11 +63860,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-CPU-AVX2-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-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"ASAN\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-CPU-AVX2-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": [ - "Build-Win-MSVC-x86_64-Debug", + "Build-Win-Clang-x86_64-Debug-ASAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -62323,12 +63899,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" ] }, - "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM": { + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs": { "caches": [ { "name": "vpython", @@ -62340,7 +63916,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -62350,22 +63926,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -62375,7 +63951,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -62389,11 +63965,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_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-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"ASAN_BonusConfigs\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"r8\\\",\\\"565\\\",\\\"pic-8888\\\",\\\"serialize-8888\\\",\\\"linear-f16\\\",\\\"srgb-rgba\\\",\\\"srgb-f16\\\",\\\"narrow-rgba\\\",\\\"narrow-f16\\\",\\\"p3-rgba\\\",\\\"p3-f16\\\",\\\"rec2020-rgba\\\",\\\"rec2020-f16\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"r8\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"r8\\\",\\\"colorImage\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_batch_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_no_red_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fast_constraint_red_is_allowed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"c_gms\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"colortype_xfermodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_0.75_0\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_1_-0.25\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_match\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_iter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemasksubset\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_domain\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_crop_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"imagemakewithfilter_ref\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapfilters\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"bitmapshaders\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"convex_poly_clip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"extractalpha\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_checkerboard_32_32_g8\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"filterbitmap_image_mandrill_64\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadows\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"simpleaaclip_aaclip\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes_npot\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"scaled_tilemodes\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering_pfaMac\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"parsedpaths\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ImageGeneratorExternal_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_images\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"all_bitmap_configs\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"makecolorspace\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"readpixels\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_rect_to_rect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"draw_image_set_alpha_only\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"compositor_quads_shader\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"wacky_yuv_formats_qtr\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_effect_image\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"ctmpatheffect\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"analytic_antialias_convex\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"verylargebitmap\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"verylarge_picture_image\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"drawfilter\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-picture\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-raster\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"image-cacherator-from-ctable\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_bw\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"complexclip4_aa\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"p3\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up_large\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_alpha_type\\\",\\\"pic-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"serialize-8888\\\",\\\"gm\\\",\\\"_\\\",\\\"blurrect_compare\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_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\":\"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": [ - "Build-Win-MSVC-x86_64-Debug", + "Build-Win-Clang-x86_64-Debug-ASAN", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -62428,12 +64004,12 @@ "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, "io_timeout_ns": 14400000000000, - "max_attempts": 2, + "max_attempts": 1, "outputs": [ "test" ] }, - "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All": { + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM": { "caches": [ { "name": "vpython", @@ -62445,7 +64021,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -62455,22 +64031,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -62480,7 +64056,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -62494,11 +64070,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_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-MSVC-x86_64-Release", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -62538,7 +64114,7 @@ "test" ] }, - "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM": { + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -62550,7 +64126,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -62560,22 +64136,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -62585,7 +64161,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -62599,11 +64175,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_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-Win2019-Clang-GCE-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\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-MSVC-x86_64-Release", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -62643,7 +64219,7 @@ "test" ] }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86-Debug-All": { + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM": { "caches": [ { "name": "vpython", @@ -62655,7 +64231,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -62665,22 +64241,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -62690,7 +64266,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -62699,21 +64275,22 @@ } ], "command": [ - "cipd_bin_packages/vpython", + "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-Win7-Clang-Golo-CPU-AVX512-x86-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win7-Clang-Golo-CPU-AVX512-x86-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-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_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-Debug", + "Build-Win-Clang-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:Intel64_Family_6_Model_85_Stepping_7__GenuineIntel", - "os:Windows-7-SP1", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Windows-Server-17763", "pool:Skia" ], "environment": { @@ -62736,18 +64313,18 @@ "cache/vpython" ] }, - "execution_timeout_ns": 21600000000000, + "execution_timeout_ns": 14400000000000, "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 21600000000000, + "io_timeout_ns": 14400000000000, "max_attempts": 2, "outputs": [ "test" ] }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86-Release-All": { + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Debug-All": { "caches": [ { "name": "vpython", @@ -62759,7 +64336,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -62769,22 +64346,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -62794,7 +64371,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -62803,21 +64380,22 @@ } ], "command": [ - "cipd_bin_packages/vpython", + "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-Win7-Clang-Golo-CPU-AVX512-x86-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win7-Clang-Golo-CPU-AVX512-x86-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-Win2019-MSVC-GCE-CPU-AVX2-x86-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86-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": [ - "Build-Win-Clang-x86-Release", + "Build-Win-MSVC-x86-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:Intel64_Family_6_Model_85_Stepping_7__GenuineIntel", - "os:Windows-7-SP1", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Windows-Server-17763", "pool:Skia" ], "environment": { @@ -62840,18 +64418,18 @@ "cache/vpython" ] }, - "execution_timeout_ns": 14400000000000, + "execution_timeout_ns": 21600000000000, "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 14400000000000, + "io_timeout_ns": 21600000000000, "max_attempts": 2, "outputs": [ "test" ] }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All": { + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Release-All": { "caches": [ { "name": "vpython", @@ -62863,7 +64441,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -62873,22 +64451,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -62898,7 +64476,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -62907,21 +64485,22 @@ } ], "command": [ - "cipd_bin_packages/vpython", + "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-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win7-Clang-Golo-CPU-AVX512-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-Win2019-MSVC-GCE-CPU-AVX2-x86-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86-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": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-MSVC-x86-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:Intel64_Family_6_Model_85_Stepping_7__GenuineIntel", - "os:Windows-7-SP1", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Windows-Server-17763", "pool:Skia" ], "environment": { @@ -62955,7 +64534,7 @@ "test" ] }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts": { + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -62967,7 +64546,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -62977,22 +64556,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -63002,7 +64581,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -63011,21 +64590,22 @@ } ], "command": [ - "cipd_bin_packages/vpython", + "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-Win7-Clang-Golo-CPU-AVX512-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\\\",\\\"AVX512\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win7-Clang-Golo-CPU-AVX512-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-CPU-AVX2-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": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-MSVC-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:Intel64_Family_6_Model_85_Stepping_7__GenuineIntel", - "os:Windows-7-SP1", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Windows-Server-17763", "pool:Skia" ], "environment": { @@ -63059,7 +64639,7 @@ "test" ] }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts_GDI": { + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM": { "caches": [ { "name": "vpython", @@ -63071,7 +64651,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -63081,22 +64661,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -63106,7 +64686,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -63115,21 +64695,22 @@ } ], "command": [ - "cipd_bin_packages/vpython", + "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-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts_GDI\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"extra_config\\\",\\\"NativeFonts_GDI\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--gdi\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts_GDI\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_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-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_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", + "Build-Win-MSVC-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:Intel64_Family_6_Model_85_Stepping_7__GenuineIntel", - "os:Windows-7-SP1", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Windows-Server-17763", "pool:Skia" ], "environment": { @@ -63163,7 +64744,7 @@ "test" ] }, - "Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Release-All": { + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -63175,7 +64756,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -63185,22 +64766,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -63210,7 +64791,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -63219,21 +64800,22 @@ } ], "command": [ - "cipd_bin_packages/vpython", + "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-Win7-Clang-Golo-CPU-AVX512-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win7-Clang-Golo-CPU-AVX512-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-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-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\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"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-Release", + "Build-Win-MSVC-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:Intel64_Family_6_Model_85_Stepping_7__GenuineIntel", - "os:Windows-7-SP1", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Windows-Server-17763", "pool:Skia" ], "environment": { @@ -63267,7 +64849,7 @@ "test" ] }, - "Test-Win8-Clang-Golo-CPU-AVX512-x86-Debug-All": { + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM": { "caches": [ { "name": "vpython", @@ -63279,7 +64861,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -63289,22 +64871,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -63314,7 +64896,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -63328,16 +64910,17 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win8-Clang-Golo-CPU-AVX512-x86-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win8\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"f16\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"abnormal.wbmp\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Win8-Clang-Golo-CPU-AVX512-x86-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-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"SkVM\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--skvm\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_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-Debug", + "Build-Win-MSVC-x86_64-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:Intel64_Family_6_Model_85_Stepping_7__GenuineIntel", - "os:Windows-8.1-SP0", + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Windows-Server-17763", "pool:Skia" ], "environment": { @@ -63360,18 +64943,18 @@ "cache/vpython" ] }, - "execution_timeout_ns": 21600000000000, + "execution_timeout_ns": 14400000000000, "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 21600000000000, + "io_timeout_ns": 14400000000000, "max_attempts": 2, "outputs": [ "test" ] }, - "Test-Win8-Clang-Golo-CPU-AVX512-x86-Release-All": { + "Test-Win8-Clang-Golo-CPU-AVX512-x86-Debug-All": { "caches": [ { "name": "vpython", @@ -63383,7 +64966,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -63393,22 +64976,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -63418,7 +65001,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -63432,11 +65015,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win8-Clang-Golo-CPU-AVX512-x86-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win8\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"f16\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"abnormal.wbmp\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Win8-Clang-Golo-CPU-AVX512-x86-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-Win8-Clang-Golo-CPU-AVX512-x86-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win8\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"f16\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"abnormal.wbmp\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Win8-Clang-Golo-CPU-AVX512-x86-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": [ - "Build-Win-Clang-x86-Release", + "Build-Win-Clang-x86-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -63464,18 +65047,18 @@ "cache/vpython" ] }, - "execution_timeout_ns": 14400000000000, + "execution_timeout_ns": 21600000000000, "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 14400000000000, + "io_timeout_ns": 21600000000000, "max_attempts": 2, "outputs": [ "test" ] }, - "Test-Win8-Clang-Golo-CPU-AVX512-x86_64-Debug-All": { + "Test-Win8-Clang-Golo-CPU-AVX512-x86-Release-All": { "caches": [ { "name": "vpython", @@ -63487,7 +65070,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -63497,22 +65080,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -63522,7 +65105,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -63536,11 +65119,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win8-Clang-Golo-CPU-AVX512-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win8\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win8-Clang-Golo-CPU-AVX512-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-Win8-Clang-Golo-CPU-AVX512-x86-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win8\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--threads\\\",\\\"4\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"f16\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"abnormal.wbmp\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-Win8-Clang-Golo-CPU-AVX512-x86-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": [ - "Build-Win-Clang-x86_64-Debug", + "Build-Win-Clang-x86-Release", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -63579,7 +65162,7 @@ "test" ] }, - "Test-Win8-Clang-Golo-CPU-AVX512-x86_64-Release-All": { + "Test-Win8-Clang-Golo-CPU-AVX512-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -63591,7 +65174,7 @@ { "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/windows-amd64", @@ -63601,22 +65184,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/skimage", @@ -63626,7 +65209,7 @@ { "name": "skia/bots/skp", "path": "skp", - "version": "version:362" + "version": "version:373" }, { "name": "skia/bots/svg", @@ -63640,11 +65223,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win8-Clang-Golo-CPU-AVX512-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win8\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win8-Clang-Golo-CPU-AVX512-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-Win8-Clang-Golo-CPU-AVX512-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win8\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win8-Clang-Golo-CPU-AVX512-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": [ - "Build-Win-Clang-x86_64-Release", + "Build-Win-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -63681,215 +65264,9 @@ "max_attempts": 2, "outputs": [ "test" - ] - }, - "Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Debug-All": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "test", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/linux-arm64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "name": "infra/3pp/tools/cpython3/linux-arm64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" - }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/ios-dev-image-13.6", - "path": "ios-dev-image-13.6", - "version": "version:0" - } - ], - "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-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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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": [ - "Build-Mac-Clang-arm64-Debug-iOS", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" - ], - "dimensions": [ - "device_type:iPad6,3", - "os:iOS-13.6", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Debug-All-Metal": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "test", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython/linux-arm64", - "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" - }, - { - "name": "infra/3pp/tools/cpython3/linux-arm64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" - }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" - }, - { - "name": "skia/bots/ios-dev-image-13.6", - "path": "ios-dev-image-13.6", - "version": "version:0" - } - ], - "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-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPadPro-GPU-PowerVRGT7800-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-iOS_Metal", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" - ], - "dimensions": [ - "device_type:iPad6,3", - "os:iOS-13.6", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython", - "cipd_bin_packages/cpython/bin", - "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-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All": { + "Test-Win8-Clang-Golo-CPU-AVX512-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -63899,44 +65276,49 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-arm64", + "name": "infra/3pp/tools/cpython/windows-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-arm64", + "name": "infra/3pp/tools/cpython3/windows-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/gsutil", - "path": "cipd_bin_packages", - "version": "version:4.46" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ios-dev-image-13.6", - "path": "ios-dev-image-13.6", - "version": "version:0" + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:373" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" } ], "command": [ @@ -63945,19 +65327,16 @@ "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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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-Win8-Clang-Golo-CPU-AVX512-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX512\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win8\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"composeshader_bitmap\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win8-Clang-Golo-CPU-AVX512-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": [ - "Build-Mac-Clang-arm64-Release-iOS", - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateSKP", - "Housekeeper-PerCommit-IsolateSVG", - "Housekeeper-PerCommit-IsolateSkImage" + "Build-Win-Clang-x86_64-Release", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "device_type:iPad6,3", - "os:iOS-13.6", + "cpu:Intel64_Family_6_Model_85_Stepping_7__GenuineIntel", + "os:Windows-8.1-SP0", "pool:Skia" ], "environment": { @@ -63989,10 +65368,9 @@ "max_attempts": 2, "outputs": [ "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + ] }, - "Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal": { + "Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Debug-All": { "caches": [ { "name": "vpython", @@ -64004,7 +65382,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -64019,22 +65397,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ios-dev-image-13.6", @@ -64048,11 +65426,11 @@ "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-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPadPro-GPU-PowerVRGT7800-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)\"}", + "{\"$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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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": [ - "Build-Mac-Clang-arm64-Release-iOS_Metal", + "Build-Mac-Clang-arm64-Debug-iOS", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -64095,7 +65473,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Debug-All": { + "Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Debug-All-Metal": { "caches": [ { "name": "vpython", @@ -64107,7 +65485,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -64122,26 +65500,26 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ios-dev-image-13.3", - "path": "ios-dev-image-13.3", + "name": "skia/bots/ios-dev-image-13.6", + "path": "ios-dev-image-13.6", "version": "version:0" } ], @@ -64151,19 +65529,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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-iPadPro-GPU-PowerVRGT7800-arm64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPadPro-GPU-PowerVRGT7800-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-iOS", + "Build-Mac-Clang-arm64-Debug-iOS_Metal", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone9,1", - "os:iOS-13.3.1", + "device_type:iPad6,3", + "os:iOS-13.6", "pool:Skia" ], "environment": { @@ -64198,7 +65576,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Debug-All-Metal": { + "Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -64210,7 +65588,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -64225,26 +65603,26 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ios-dev-image-13.3", - "path": "ios-dev-image-13.3", + "name": "skia/bots/ios-dev-image-13.6", + "path": "ios-dev-image-13.6", "version": "version:0" } ], @@ -64254,19 +65632,19 @@ "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-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPhone7-GPU-PowerVRGT7600-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-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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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": [ - "Build-Mac-Clang-arm64-Debug-iOS_Metal", + "Build-Mac-Clang-arm64-Release-iOS", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone9,1", - "os:iOS-13.3.1", + "device_type:iPad6,3", + "os:iOS-13.6", "pool:Skia" ], "environment": { @@ -64301,7 +65679,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All": { + "Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -64313,7 +65691,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -64328,26 +65706,26 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ios-dev-image-13.3", - "path": "ios-dev-image-13.3", + "name": "skia/bots/ios-dev-image-13.6", + "path": "ios-dev-image-13.6", "version": "version:0" } ], @@ -64357,19 +65735,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPadPro-GPU-PowerVRGT7800-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-iOS", + "Build-Mac-Clang-arm64-Release-iOS_Metal", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone9,1", - "os:iOS-13.3.1", + "device_type:iPad6,3", + "os:iOS-13.6", "pool:Skia" ], "environment": { @@ -64404,7 +65782,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal": { + "Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Debug-All": { "caches": [ { "name": "vpython", @@ -64416,7 +65794,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -64431,22 +65809,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ios-dev-image-13.3", @@ -64460,11 +65838,11 @@ "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-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPhone7-GPU-PowerVRGT7600-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)\"}", + "{\"$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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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": [ - "Build-Mac-Clang-arm64-Release-iOS_Metal", + "Build-Mac-Clang-arm64-Debug-iOS", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -64507,7 +65885,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Debug-All": { + "Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Debug-All-Metal": { "caches": [ { "name": "vpython", @@ -64519,7 +65897,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -64534,22 +65912,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ios-dev-image-13.3", @@ -64563,18 +65941,18 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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-iPhone7-GPU-PowerVRGT7600-arm64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPhone7-GPU-PowerVRGT7600-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-iOS", + "Build-Mac-Clang-arm64-Debug-iOS_Metal", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone10,1", + "device_type:iPhone9,1", "os:iOS-13.3.1", "pool:Skia" ], @@ -64610,7 +65988,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Debug-All-Metal": { + "Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -64622,7 +66000,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -64637,22 +66015,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ios-dev-image-13.3", @@ -64666,18 +66044,18 @@ "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-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"mtltestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"circular_arcs_hairline\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dashcircle\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_1_-0.25\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_images\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"ovals\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"roundrects\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils_occl\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokedlines\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokerect\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokes3\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"texel_subset_linear_mipmap_nearest_down\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"texel_subset_linear_mipmap_linear_down\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"textblobmixedsizes_df\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"yuv420_odd_dim_repeat\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"A_large_blank_world_map_with_oceans_marked_in_blue.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Chalkboard.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Ghostscript_Tiger.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Seal_of_American_Samoa.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Seal_of_Illinois.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"desk_motionmark_paths.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"rg1024_green_grapes.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"shapes-intro-02-f.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"tiger-8.svg\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPhone8-GPU-AppleA11-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-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\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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": [ - "Build-Mac-Clang-arm64-Debug-iOS_Metal", + "Build-Mac-Clang-arm64-Release-iOS", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone10,1", + "device_type:iPhone9,1", "os:iOS-13.3.1", "pool:Skia" ], @@ -64713,7 +66091,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All": { + "Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -64725,7 +66103,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -64740,22 +66118,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ios-dev-image-13.3", @@ -64769,18 +66147,18 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPhone7-GPU-PowerVRGT7600-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-iOS", + "Build-Mac-Clang-arm64-Release-iOS_Metal", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone10,1", + "device_type:iPhone9,1", "os:iOS-13.3.1", "pool:Skia" ], @@ -64816,7 +66194,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal": { + "Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Debug-All": { "caches": [ { "name": "vpython", @@ -64828,7 +66206,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -64843,22 +66221,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ios-dev-image-13.3", @@ -64872,11 +66250,11 @@ "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-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"mtltestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"circular_arcs_hairline\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dashcircle\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_1_-0.25\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_images\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"ovals\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"roundrects\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils_occl\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokedlines\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokerect\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokes3\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"texel_subset_linear_mipmap_nearest_down\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"texel_subset_linear_mipmap_linear_down\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"textblobmixedsizes_df\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"yuv420_odd_dim_repeat\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"A_large_blank_world_map_with_oceans_marked_in_blue.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Chalkboard.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Ghostscript_Tiger.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Seal_of_American_Samoa.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Seal_of_Illinois.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"desk_motionmark_paths.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"rg1024_green_grapes.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"shapes-intro-02-f.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"tiger-8.svg\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPhone8-GPU-AppleA11-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)\"}", + "{\"$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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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": [ - "Build-Mac-Clang-arm64-Release-iOS_Metal", + "Build-Mac-Clang-arm64-Debug-iOS", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -64919,7 +66297,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Debug-All": { + "Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Debug-All-Metal": { "caches": [ { "name": "vpython", @@ -64931,7 +66309,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -64946,26 +66324,26 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ios-dev-image-13.6", - "path": "ios-dev-image-13.6", + "name": "skia/bots/ios-dev-image-13.3", + "path": "ios-dev-image-13.3", "version": "version:0" } ], @@ -64975,19 +66353,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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-Clang-iPhone8-GPU-AppleA11-arm64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"mtltestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"circular_arcs_hairline\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dashcircle\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_1_-0.25\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_images\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"ovals\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"roundrects\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils_occl\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokedlines\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokerect\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokes3\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"texel_subset_linear_mipmap_nearest_down\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"texel_subset_linear_mipmap_linear_down\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"textblobmixedsizes_df\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"yuv420_odd_dim_repeat\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"A_large_blank_world_map_with_oceans_marked_in_blue.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Chalkboard.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Ghostscript_Tiger.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Seal_of_American_Samoa.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Seal_of_Illinois.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"desk_motionmark_paths.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"rg1024_green_grapes.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"shapes-intro-02-f.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"tiger-8.svg\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPhone8-GPU-AppleA11-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-Xcode11.4.1-arm64-Debug-iOS", + "Build-Mac-Clang-arm64-Debug-iOS_Metal", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone12,1", - "os:iOS-13.6", + "device_type:iPhone10,1", + "os:iOS-13.3.1", "pool:Skia" ], "environment": { @@ -65022,7 +66400,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Debug-All-Metal": { + "Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -65034,7 +66412,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -65049,26 +66427,26 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ios-dev-image-13.6", - "path": "ios-dev-image-13.6", + "name": "skia/bots/ios-dev-image-13.3", + "path": "ios-dev-image-13.3", "version": "version:0" } ], @@ -65078,19 +66456,19 @@ "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-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"mtlreducedshaders\\\",\\\"--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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-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-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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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": [ - "Build-Mac-Xcode11.4.1-arm64-Debug-iOS_Metal", + "Build-Mac-Clang-arm64-Release-iOS", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone12,1", - "os:iOS-13.6", + "device_type:iPhone10,1", + "os:iOS-13.3.1", "pool:Skia" ], "environment": { @@ -65125,7 +66503,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All": { + "Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -65137,7 +66515,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -65152,26 +66530,26 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { - "name": "skia/bots/ios-dev-image-13.6", - "path": "ios-dev-image-13.6", + "name": "skia/bots/ios-dev-image-13.3", + "path": "ios-dev-image-13.3", "version": "version:0" } ], @@ -65181,19 +66559,19 @@ "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"mtltestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"circular_arcs_hairline\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dashcircle\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"fontmgr_bounds_1_-0.25\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"persp_images\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"ovals\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"roundrects\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"shadow_utils_occl\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokedlines\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokerect\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"strokes3\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"texel_subset_linear_mipmap_nearest_down\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"texel_subset_linear_mipmap_linear_down\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"textblobmixedsizes_df\\\",\\\"mtltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"yuv420_odd_dim_repeat\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"A_large_blank_world_map_with_oceans_marked_in_blue.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Chalkboard.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Ghostscript_Tiger.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Seal_of_American_Samoa.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"Seal_of_Illinois.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"desk_motionmark_paths.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"rg1024_green_grapes.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"shapes-intro-02-f.svg\\\",\\\"mtltestprecompile\\\",\\\"svg\\\",\\\"_\\\",\\\"tiger-8.svg\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Clang-iPhone8-GPU-AppleA11-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-Xcode11.4.1-arm64-Release-iOS", + "Build-Mac-Clang-arm64-Release-iOS_Metal", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "device_type:iPhone12,1", - "os:iOS-13.6", + "device_type:iPhone10,1", + "os:iOS-13.3.1", "pool:Skia" ], "environment": { @@ -65228,7 +66606,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All-Metal": { + "Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Debug-All": { "caches": [ { "name": "vpython", @@ -65240,7 +66618,7 @@ { "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-arm64", @@ -65255,22 +66633,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "skia/bots/ios-dev-image-13.6", @@ -65284,11 +66662,11 @@ "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-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"mtlreducedshaders\\\",\\\"--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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-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)\"}", + "{\"$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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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": [ - "Build-Mac-Xcode11.4.1-arm64-Release-iOS_Metal", + "Build-Mac-Xcode11.4.1-arm64-Debug-iOS", "Housekeeper-PerCommit-BundleRecipes", "Housekeeper-PerCommit-IsolateSKP", "Housekeeper-PerCommit-IsolateSVG", @@ -65331,22 +66709,22 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-BuildStats-Debian10-EMCC-asmjs-Release-PathKit": { + "Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Debug-All-Metal": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "run-recipe", + "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-amd64", + "name": "infra/3pp/tools/cpython3/linux-arm64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, @@ -65358,22 +66736,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/ios-dev-image-13.6", + "path": "ios-dev-image-13.6", + "version": "version:0" } ], "command": [ @@ -65381,19 +66764,20 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "upload_buildstats_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-asmjs-Release-PathKit\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "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-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"mtlreducedshaders\\\",\\\"--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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-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": [ - "BuildStats-Debian10-EMCC-asmjs-Release-PathKit", - "Housekeeper-PerCommit-BundleRecipes" + "Build-Mac-Xcode11.4.1-arm64-Debug-iOS_Metal", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highmem-2", - "os:Debian-10.3", + "device_type:iPhone12,1", + "os:iOS-13.6", "pool:Skia" ], "environment": { @@ -65416,30 +66800,34 @@ "cache/vpython" ] }, - "execution_timeout_ns": 3600000000000, + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 3600000000000, + "io_timeout_ns": 14400000000000, "max_attempts": 2, - "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" + "outputs": [ + "test" + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-BuildStats-Debian10-EMCC-wasm-Release-CanvasKit": { + "Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "run-recipe", + "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-amd64", + "name": "infra/3pp/tools/cpython3/linux-arm64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, @@ -65451,22 +66839,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/ios-dev-image-13.6", + "path": "ios-dev-image-13.6", + "version": "version:0" } ], "command": [ @@ -65474,19 +66867,20 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "upload_buildstats_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Release-CanvasKit\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "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\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-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": [ - "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit", - "Housekeeper-PerCommit-BundleRecipes" + "Build-Mac-Xcode11.4.1-arm64-Release-iOS", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highmem-2", - "os:Debian-10.3", + "device_type:iPhone12,1", + "os:iOS-13.6", "pool:Skia" ], "environment": { @@ -65509,30 +66903,34 @@ "cache/vpython" ] }, - "execution_timeout_ns": 3600000000000, + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 3600000000000, + "io_timeout_ns": 14400000000000, "max_attempts": 2, - "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" + "outputs": [ + "test" + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU": { + "Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", "path": "cache/vpython" } ], - "casSpec": "run-recipe", + "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython/linux-amd64", + "name": "infra/3pp/tools/cpython/linux-arm64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { - "name": "infra/3pp/tools/cpython3/linux-amd64", + "name": "infra/3pp/tools/cpython3/linux-arm64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, @@ -65544,22 +66942,27 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" + }, + { + "name": "skia/bots/ios-dev-image-13.6", + "path": "ios-dev-image-13.6", + "version": "version:0" } ], "command": [ @@ -65567,19 +66970,20 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "upload_buildstats_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "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-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"mtlreducedshaders\\\",\\\"--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\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-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": [ - "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU", - "Housekeeper-PerCommit-BundleRecipes" + "Build-Mac-Xcode11.4.1-arm64-Release-iOS_Metal", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP", + "Housekeeper-PerCommit-IsolateSVG", + "Housekeeper-PerCommit-IsolateSkImage" ], "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highmem-2", - "os:Debian-10.3", + "device_type:iPhone12,1", + "os:iOS-13.6", "pool:Skia" ], "environment": { @@ -65602,15 +67006,19 @@ "cache/vpython" ] }, - "execution_timeout_ns": 3600000000000, + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "io_timeout_ns": 3600000000000, + "io_timeout_ns": 14400000000000, "max_attempts": 2, - "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" + "outputs": [ + "test" + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-BuildStats-Debian10-EMCC-wasm-Release-PathKit": { + "Upload-BuildStats-Debian10-EMCC-asmjs-Release-PathKit": { "caches": [ { "name": "vpython", @@ -65622,7 +67030,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -65637,22 +67045,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -65661,11 +67069,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_buildstats_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Release-PathKit\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-asmjs-Release-PathKit\",\"gs_bucket\":\"skia-perf\",\"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": [ - "BuildStats-Debian10-EMCC-wasm-Release-PathKit", + "BuildStats-Debian10-EMCC-asmjs-Release-PathKit", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -65703,7 +67111,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-BuildStats-Debian9-Clang-arm-Release-Flutter_Android_Docker": { + "Upload-BuildStats-Debian10-EMCC-wasm-Release-CanvasKit": { "caches": [ { "name": "vpython", @@ -65715,7 +67123,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -65730,22 +67138,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -65754,11 +67162,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_buildstats_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian9-Clang-arm-Release-Flutter_Android_Docker\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Release-CanvasKit\",\"gs_bucket\":\"skia-perf\",\"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": [ - "BuildStats-Debian9-Clang-arm-Release-Flutter_Android_Docker", + "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -65796,7 +67204,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android": { + "Upload-BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU": { "caches": [ { "name": "vpython", @@ -65808,7 +67216,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -65823,22 +67231,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -65846,13 +67254,13 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "upload_buildstats_results", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android" + "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -65889,7 +67297,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing": { + "Upload-BuildStats-Debian10-EMCC-wasm-Release-PathKit": { "caches": [ { "name": "vpython", @@ -65901,7 +67309,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -65916,22 +67324,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -65939,13 +67347,13 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "upload_buildstats_results", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Release-PathKit\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing" + "BuildStats-Debian10-EMCC-wasm-Release-PathKit", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -65982,7 +67390,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android": { + "Upload-BuildStats-Debian9-Clang-arm-Release-Flutter_Android_Docker": { "caches": [ { "name": "vpython", @@ -65994,7 +67402,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -66009,22 +67417,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -66032,13 +67440,13 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "upload_buildstats_results", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian9-Clang-arm-Release-Flutter_Android_Docker\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android" + "BuildStats-Debian9-Clang-arm-Release-Flutter_Android_Docker", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -66075,7 +67483,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench": { + "Upload-Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android": { "caches": [ { "name": "vpython", @@ -66087,7 +67495,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -66102,22 +67510,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -66126,12 +67534,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench" + "Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -66168,7 +67576,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Mskp_Skpbench": { + "Upload-Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing": { "caches": [ { "name": "vpython", @@ -66180,7 +67588,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -66195,22 +67603,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -66219,12 +67627,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Mskp_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Mskp_Skpbench" + "Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -66261,7 +67669,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Skpbench": { + "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -66273,7 +67681,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -66288,22 +67696,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -66312,12 +67720,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Skpbench" + "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -66354,7 +67762,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan": { + "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", @@ -66366,7 +67774,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -66381,22 +67789,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -66405,12 +67813,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan" + "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_AllPathsVolatile_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -66447,7 +67855,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench": { + "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Skpbench": { "caches": [ { "name": "vpython", @@ -66459,7 +67867,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -66474,22 +67882,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -66498,12 +67906,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench" + "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -66540,7 +67948,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_Skpbench": { + "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -66552,7 +67960,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -66567,22 +67975,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -66591,12 +67999,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_Skpbench" + "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -66633,7 +68041,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android": { + "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", @@ -66645,7 +68053,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -66660,22 +68068,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -66684,12 +68092,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android" + "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -66726,7 +68134,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android_Vulkan": { + "Upload-Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_Skpbench": { "caches": [ { "name": "vpython", @@ -66738,7 +68146,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -66753,22 +68161,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -66777,12 +68185,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$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\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android_Vulkan" + "Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -66819,7 +68227,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android": { + "Upload-Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -66831,7 +68239,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -66846,22 +68254,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -66870,12 +68278,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android" + "Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -66912,7 +68320,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan": { + "Upload-Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -66924,7 +68332,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -66939,22 +68347,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -66963,12 +68371,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$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\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan" + "Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android_Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -67005,7 +68413,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-JioNext-CPU-SnapdragonQM215-arm-Release-All-Android": { + "Upload-Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -67017,7 +68425,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -67032,22 +68440,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -67056,12 +68464,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-JioNext-CPU-SnapdragonQM215-arm-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-JioNext-CPU-SnapdragonQM215-arm-Release-All-Android" + "Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -67098,7 +68506,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android": { + "Upload-Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -67110,7 +68518,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -67125,22 +68533,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -67149,12 +68557,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android" + "Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -67191,7 +68599,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android": { + "Upload-Perf-Android-Clang-JioNext-CPU-SnapdragonQM215-arm-Release-All-Android": { "caches": [ { "name": "vpython", @@ -67203,7 +68611,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -67218,22 +68626,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -67242,12 +68650,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-JioNext-CPU-SnapdragonQM215-arm-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android" + "Perf-Android-Clang-JioNext-CPU-SnapdragonQM215-arm-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -67284,7 +68692,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan": { + "Upload-Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android": { "caches": [ { "name": "vpython", @@ -67296,7 +68704,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -67311,22 +68719,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -67335,12 +68743,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan" + "Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -67377,7 +68785,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Mskp_Skpbench": { + "Upload-Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -67389,7 +68797,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -67404,22 +68812,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -67428,12 +68836,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Mskp_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Mskp_Skpbench" + "Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -67470,7 +68878,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Skpbench": { + "Upload-Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -67482,7 +68890,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -67497,22 +68905,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -67521,12 +68929,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Skpbench" + "Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -67563,7 +68971,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Vulkan_Skpbench": { + "Upload-Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -67575,7 +68983,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -67590,22 +68998,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -67614,12 +69022,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Vulkan_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel2XL-GPU-Adreno530-arm64-Release-All-Android_Vulkan_Skpbench" + "Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -67656,7 +69064,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android": { + "Upload-Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -67668,7 +69076,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -67683,22 +69091,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -67707,12 +69115,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android" + "Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -67749,7 +69157,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan": { + "Upload-Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -67761,7 +69169,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -67776,22 +69184,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -67800,12 +69208,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan" + "Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -67842,7 +69250,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android": { + "Upload-Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -67854,7 +69262,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -67869,22 +69277,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -67893,12 +69301,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android" + "Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -67935,7 +69343,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan": { + "Upload-Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -67947,7 +69355,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -67962,22 +69370,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -67986,12 +69394,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan" + "Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -68028,7 +69436,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android": { + "Upload-Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -68040,7 +69448,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -68055,22 +69463,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -68079,12 +69487,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android" + "Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -68121,7 +69529,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan": { + "Upload-Perf-Android-Clang-Pixel4-CPU-Snapdragon855-arm64-Release-All-Android_Wuffs": { "caches": [ { "name": "vpython", @@ -68133,7 +69541,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -68148,22 +69556,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -68172,12 +69580,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-CPU-Snapdragon855-arm64-Release-All-Android_Wuffs\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan" + "Perf-Android-Clang-Pixel4-CPU-Snapdragon855-arm64-Release-All-Android_Wuffs" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -68214,7 +69622,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel4-CPU-Snapdragon855-arm64-Release-All-Android_Wuffs": { + "Upload-Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -68226,7 +69634,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -68241,22 +69649,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -68265,12 +69673,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-CPU-Snapdragon855-arm64-Release-All-Android_Wuffs\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel4-CPU-Snapdragon855-arm64-Release-All-Android_Wuffs" + "Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -68307,7 +69715,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android": { + "Upload-Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -68319,7 +69727,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -68334,22 +69742,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -68358,12 +69766,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android" + "Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -68400,7 +69808,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { + "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -68412,7 +69820,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -68427,22 +69835,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -68451,12 +69859,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan" + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -68493,7 +69901,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android": { + "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", @@ -68505,7 +69913,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -68520,22 +69928,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -68544,12 +69952,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android" + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_AllPathsVolatile_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -68586,7 +69994,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_AllPathsVolatile_Skpbench": { + "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Skpbench": { "caches": [ { "name": "vpython", @@ -68598,7 +70006,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -68613,22 +70021,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -68637,12 +70045,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_AllPathsVolatile_Skpbench" + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -68679,7 +70087,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Skpbench": { + "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -68691,7 +70099,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -68706,22 +70114,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -68730,12 +70138,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Skpbench" + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -68772,7 +70180,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan": { + "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", @@ -68784,7 +70192,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -68799,22 +70207,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -68823,12 +70231,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan" + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -68865,7 +70273,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench": { + "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_Skpbench": { "caches": [ { "name": "vpython", @@ -68877,7 +70285,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -68892,22 +70300,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -68916,12 +70324,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_AllPathsVolatile_Skpbench" + "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -68958,7 +70366,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_Skpbench": { + "Upload-Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android": { "caches": [ { "name": "vpython", @@ -68970,7 +70378,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -68985,22 +70393,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -69009,12 +70417,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_Skpbench" + "Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -69051,7 +70459,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android": { + "Upload-Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -69063,7 +70471,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -69078,22 +70486,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -69102,12 +70510,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android" + "Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -69144,7 +70552,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan": { + "Upload-Perf-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan": { "caches": [ { "name": "vpython", @@ -69156,7 +70564,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -69171,22 +70579,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -69195,12 +70603,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan" + "Perf-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -69237,7 +70645,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan": { + "Upload-Perf-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android": { "caches": [ { "name": "vpython", @@ -69249,7 +70657,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -69264,22 +70672,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -69288,12 +70696,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan" + "Perf-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -69330,7 +70738,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android": { + "Upload-Perf-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All": { "caches": [ { "name": "vpython", @@ -69342,7 +70750,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -69357,22 +70765,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -69381,12 +70789,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android" + "Perf-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -69423,7 +70831,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All": { + "Upload-Perf-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -69435,7 +70843,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -69450,22 +70858,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -69474,12 +70882,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All" + "Perf-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -69516,7 +70924,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All": { + "Upload-Perf-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All": { "caches": [ { "name": "vpython", @@ -69528,7 +70936,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -69543,22 +70951,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -69567,12 +70975,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All" + "Perf-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -69609,7 +71017,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All": { + "Upload-Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -69621,7 +71029,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -69636,22 +71044,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -69660,12 +71068,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All" + "Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -69702,7 +71110,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All": { + "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -69714,7 +71122,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -69729,22 +71137,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -69753,12 +71161,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All" + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -69795,7 +71203,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All": { + "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs": { "caches": [ { "name": "vpython", @@ -69807,7 +71215,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -69822,22 +71230,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -69846,12 +71254,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All" + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -69888,7 +71296,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs": { + "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast": { "caches": [ { "name": "vpython", @@ -69900,7 +71308,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -69915,22 +71323,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -69939,12 +71347,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-BonusConfigs" + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -69981,7 +71389,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast": { + "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER": { "caches": [ { "name": "vpython", @@ -69993,7 +71401,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -70008,22 +71416,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -70032,12 +71440,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Fast" + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -70074,7 +71482,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER": { + "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkottieTracing": { "caches": [ { "name": "vpython", @@ -70086,7 +71494,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -70101,22 +71509,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -70125,12 +71533,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkottieTracing\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_FORCE_RASTER_PIPELINE_BLITTER" + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkottieTracing" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -70167,7 +71575,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkottieTracing": { + "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Wuffs": { "caches": [ { "name": "vpython", @@ -70179,7 +71587,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -70194,22 +71602,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -70218,12 +71626,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkottieTracing\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Wuffs\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkottieTracing" + "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Wuffs" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -70260,7 +71668,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Wuffs": { + "Upload-Perf-Debian10-Clang-GCE-CPU-AVX512-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -70272,7 +71680,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -70287,22 +71695,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -70311,12 +71719,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Wuffs\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX512-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Wuffs" + "Perf-Debian10-Clang-GCE-CPU-AVX512-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -70353,7 +71761,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-GCE-CPU-AVX512-x86_64-Release-All": { + "Upload-Perf-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader": { "caches": [ { "name": "vpython", @@ -70365,7 +71773,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -70380,22 +71788,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -70404,12 +71812,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-CPU-AVX512-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-GCE-CPU-AVX512-x86_64-Release-All" + "Perf-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -70446,7 +71854,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader": { + "Upload-Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -70458,7 +71866,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -70473,22 +71881,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -70497,12 +71905,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader" + "Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -70539,7 +71947,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All": { + "Upload-Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -70551,7 +71959,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -70566,22 +71974,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -70590,12 +71998,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All" + "Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -70632,7 +72040,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan": { + "Upload-Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -70644,7 +72052,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -70659,22 +72067,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -70683,12 +72091,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan" + "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -70725,7 +72133,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All": { + "Upload-Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing": { "caches": [ { "name": "vpython", @@ -70737,7 +72145,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -70752,22 +72160,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -70776,12 +72184,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All" + "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -70818,7 +72226,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing": { + "Upload-Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -70830,7 +72238,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -70845,22 +72253,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -70869,12 +72277,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-SkottieTracing" + "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -70911,7 +72319,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan": { + "Upload-Perf-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -70923,7 +72331,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -70938,22 +72346,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -70962,12 +72370,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Release-All-Vulkan" + "Perf-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -71004,7 +72412,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All": { + "Upload-Perf-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -71016,7 +72424,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -71031,22 +72439,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -71055,12 +72463,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All" + "Perf-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -71097,7 +72505,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All": { + "Upload-Perf-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit": { "caches": [ { "name": "vpython", @@ -71109,7 +72517,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -71124,22 +72532,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -71148,12 +72556,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All" + "Perf-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -71190,7 +72598,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit": { + "Upload-Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit": { "caches": [ { "name": "vpython", @@ -71202,7 +72610,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -71217,22 +72625,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -71241,12 +72649,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit" + "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -71283,7 +72691,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit": { + "Upload-Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_CanvasPerf": { "caches": [ { "name": "vpython", @@ -71295,7 +72703,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -71310,22 +72718,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -71334,12 +72742,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_CanvasPerf\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit" + "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_CanvasPerf" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -71376,7 +72784,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_CanvasPerf": { + "Upload-Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP": { "caches": [ { "name": "vpython", @@ -71388,7 +72796,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -71403,22 +72811,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -71427,12 +72835,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_CanvasPerf\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_CanvasPerf" + "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -71469,7 +72877,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP": { + "Upload-Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_SkottieFrames": { "caches": [ { "name": "vpython", @@ -71481,7 +72889,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -71496,22 +72904,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -71520,12 +72928,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_SkottieFrames\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP" + "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_SkottieFrames" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -71562,7 +72970,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_SkottieFrames": { + "Upload-Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb": { "caches": [ { "name": "vpython", @@ -71574,7 +72982,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -71589,22 +72997,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -71613,12 +73021,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_SkottieFrames\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_SkottieFrames" + "Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -71655,7 +73063,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb": { + "Upload-Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -71667,7 +73075,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -71682,22 +73090,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -71706,12 +73114,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Debian10-none-GCE-CPU-AVX2-x86_64-Release-All-LottieWeb" + "Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -71760,7 +73168,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -71775,22 +73183,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -71853,7 +73261,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -71868,22 +73276,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -71946,7 +73354,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -71961,22 +73369,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -72039,7 +73447,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -72054,22 +73462,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -72132,7 +73540,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -72147,22 +73555,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -72225,7 +73633,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -72240,22 +73648,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -72318,7 +73726,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -72333,22 +73741,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -72411,7 +73819,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -72426,22 +73834,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -72504,7 +73912,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -72519,22 +73927,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -72597,7 +74005,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -72612,22 +74020,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -72678,7 +74086,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal": { + "Upload-Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Graphite": { "caches": [ { "name": "vpython", @@ -72690,7 +74098,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -72705,22 +74113,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -72729,12 +74137,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$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\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$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\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal" + "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Graphite" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -72771,7 +74179,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All": { + "Upload-Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -72783,7 +74191,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -72798,22 +74206,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -72822,12 +74230,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$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\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All" + "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -72864,7 +74272,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench": { + "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -72876,7 +74284,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -72891,22 +74299,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -72915,12 +74323,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench" + "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -72957,7 +74365,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal_AllPathsVolatile_Skpbench": { + "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", @@ -72969,7 +74377,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -72984,22 +74392,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -73008,12 +74416,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal_AllPathsVolatile_Skpbench" + "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -73050,7 +74458,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Skpbench": { + "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite": { "caches": [ { "name": "vpython", @@ -73062,7 +74470,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -73077,22 +74485,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -73101,12 +74509,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Skpbench" + "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -73143,7 +74551,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { + "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal_AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", @@ -73155,7 +74563,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -73170,22 +74578,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -73194,12 +74602,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All" + "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal_AllPathsVolatile_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -73236,7 +74644,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DMSAAStats": { + "Upload-Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Skpbench": { "caches": [ { "name": "vpython", @@ -73248,7 +74656,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -73263,22 +74671,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -73287,12 +74695,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DMSAAStats\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DMSAAStats" + "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -73329,7 +74737,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { + "Upload-Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -73341,7 +74749,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -73356,22 +74764,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -73380,12 +74788,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan" + "Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -73422,7 +74830,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL1": { + "Upload-Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DMSAAStats": { "caches": [ { "name": "vpython", @@ -73434,7 +74842,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -73449,22 +74857,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -73473,12 +74881,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL1\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DMSAAStats\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL1" + "Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DMSAAStats" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -73515,7 +74923,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL2": { + "Upload-Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -73527,7 +74935,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -73542,22 +74950,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -73566,12 +74974,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL2\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL2" + "Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -73608,7 +75016,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL1": { + "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL1": { "caches": [ { "name": "vpython", @@ -73620,7 +75028,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -73635,22 +75043,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -73659,12 +75067,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL1\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL1\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL1" + "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL1" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -73701,7 +75109,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL2": { + "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL2": { "caches": [ { "name": "vpython", @@ -73713,7 +75121,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -73728,22 +75136,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -73752,12 +75160,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL2\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL2\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL2" + "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_CanvasPerf_WebGL2" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -73794,7 +75202,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL1": { + "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL1": { "caches": [ { "name": "vpython", @@ -73806,7 +75214,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -73821,22 +75229,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -73845,12 +75253,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL1\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL1\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL1" + "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL1" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -73887,7 +75295,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL2": { + "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL2": { "caches": [ { "name": "vpython", @@ -73899,7 +75307,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -73914,22 +75322,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -73938,12 +75346,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL2\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL2\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL2" + "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_RenderSKP_WebGL2" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -73980,7 +75388,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-SkottieWASM": { + "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL1": { "caches": [ { "name": "vpython", @@ -73992,7 +75400,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -74007,22 +75415,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -74031,12 +75439,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-SkottieWASM\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL1\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-SkottieWASM" + "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL1" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -74073,7 +75481,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Ubuntu18-none-Golo-GPU-QuadroP400-x86_64-Release-All-LottieWeb": { + "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL2": { "caches": [ { "name": "vpython", @@ -74085,7 +75493,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -74100,22 +75508,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -74124,12 +75532,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-none-Golo-GPU-QuadroP400-x86_64-Release-All-LottieWeb\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL2\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Ubuntu18-none-Golo-GPU-QuadroP400-x86_64-Release-All-LottieWeb" + "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-Puppeteer_SkottieFrames_WebGL2" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -74166,7 +75574,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All": { + "Upload-Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-SkottieWASM": { "caches": [ { "name": "vpython", @@ -74178,7 +75586,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -74193,22 +75601,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -74217,12 +75625,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-SkottieWASM\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All" + "Perf-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-SkottieWASM" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -74259,7 +75667,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE": { + "Upload-Perf-Ubuntu18-none-Golo-GPU-QuadroP400-x86_64-Release-All-LottieWeb": { "caches": [ { "name": "vpython", @@ -74271,7 +75679,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -74286,22 +75694,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -74310,12 +75718,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-none-Golo-GPU-QuadroP400-x86_64-Release-All-LottieWeb\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE" + "Perf-Ubuntu18-none-Golo-GPU-QuadroP400-x86_64-Release-All-LottieWeb" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -74352,7 +75760,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-AllPathsVolatile_Skpbench": { + "Upload-Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -74364,7 +75772,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -74379,22 +75787,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -74403,12 +75811,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-AllPathsVolatile_Skpbench" + "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -74445,7 +75853,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan": { + "Upload-Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -74457,7 +75865,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -74472,22 +75880,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -74496,12 +75904,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan" + "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -74538,7 +75946,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench": { + "Upload-Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", @@ -74550,7 +75958,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -74565,22 +75973,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -74589,12 +75997,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench" + "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-AllPathsVolatile_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -74631,7 +76039,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { + "Upload-Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -74643,7 +76051,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -74658,22 +76066,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -74682,12 +76090,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All" + "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -74724,7 +76132,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE": { + "Upload-Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", @@ -74736,7 +76144,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -74751,22 +76159,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -74775,12 +76183,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE" + "Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -74817,7 +76225,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-AllPathsVolatile_Skpbench": { + "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -74829,7 +76237,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -74844,22 +76252,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -74868,12 +76276,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-AllPathsVolatile_Skpbench" + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -74910,7 +76318,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { + "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -74922,7 +76330,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -74937,22 +76345,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -74961,12 +76369,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan" + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -75003,7 +76411,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench": { + "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", @@ -75015,7 +76423,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -75030,22 +76438,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -75054,12 +76462,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench" + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-AllPathsVolatile_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -75096,7 +76504,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench": { + "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -75108,7 +76516,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -75123,22 +76531,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -75147,12 +76555,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench" + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -75189,7 +76597,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench_DDLTotal_9x9": { + "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench": { "caches": [ { "name": "vpython", @@ -75201,7 +76609,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -75216,22 +76624,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -75240,12 +76648,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench_DDLTotal_9x9\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench_DDLTotal_9x9" + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_AllPathsVolatile_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -75282,7 +76690,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All": { + "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench": { "caches": [ { "name": "vpython", @@ -75294,7 +76702,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -75309,22 +76717,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -75333,12 +76741,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All" + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -75375,7 +76783,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE": { + "Upload-Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench_DDLTotal_9x9": { "caches": [ { "name": "vpython", @@ -75387,7 +76795,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -75402,22 +76810,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -75426,12 +76834,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench_DDLTotal_9x9\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE" + "Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_Skpbench_DDLTotal_9x9" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -75468,7 +76876,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All": { + "Upload-Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -75480,7 +76888,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -75495,22 +76903,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -75519,12 +76927,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All" + "Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -75561,7 +76969,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE": { + "Upload-Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -75573,7 +76981,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -75588,22 +76996,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -75612,12 +77020,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE" + "Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -75654,7 +77062,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan": { + "Upload-Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -75666,7 +77074,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -75681,22 +77089,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -75705,12 +77113,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan" + "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -75747,7 +77155,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All": { + "Upload-Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -75759,7 +77167,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -75774,22 +77182,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -75798,12 +77206,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All" + "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -75840,7 +77248,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE": { + "Upload-Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -75852,7 +77260,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -75867,22 +77275,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -75891,12 +77299,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE" + "Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -75933,7 +77341,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan": { + "Upload-Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -75945,7 +77353,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -75960,22 +77368,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -75984,12 +77392,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan" + "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -76026,7 +77434,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All": { + "Upload-Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -76038,7 +77446,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -76053,22 +77461,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -76077,12 +77485,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All" + "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -76119,7 +77527,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE": { + "Upload-Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -76131,7 +77539,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -76146,22 +77554,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -76170,12 +77578,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE" + "Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -76212,7 +77620,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All": { + "Upload-Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -76224,7 +77632,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -76239,22 +77647,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -76263,12 +77671,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All" + "Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -76305,7 +77713,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE": { + "Upload-Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -76317,7 +77725,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -76332,22 +77740,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -76356,12 +77764,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE" + "Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -76398,7 +77806,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan": { + "Upload-Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -76410,7 +77818,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -76425,22 +77833,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -76449,12 +77857,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan" + "Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -76491,7 +77899,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All": { + "Upload-Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -76503,7 +77911,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -76518,22 +77926,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -76542,12 +77950,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All" + "Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -76584,7 +77992,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE": { + "Upload-Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -76596,7 +78004,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -76611,22 +78019,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -76635,12 +78043,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE" + "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -76677,7 +78085,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan": { + "Upload-Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -76689,7 +78097,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -76704,22 +78112,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -76728,12 +78136,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan" + "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -76770,7 +78178,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All": { + "Upload-Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -76782,7 +78190,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -76797,22 +78205,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -76821,12 +78229,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All" + "Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -76863,7 +78271,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE": { + "Upload-Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -76875,7 +78283,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -76890,22 +78298,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -76914,12 +78322,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE" + "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -76956,7 +78364,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan": { + "Upload-Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -76968,7 +78376,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -76983,22 +78391,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -77007,12 +78415,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan" + "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -77049,7 +78457,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All": { + "Upload-Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -77061,7 +78469,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -77076,22 +78484,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -77100,12 +78508,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All" + "Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -77142,7 +78550,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { + "Upload-Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -77154,7 +78562,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -77169,22 +78577,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -77193,12 +78601,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan" + "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -77235,7 +78643,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All": { + "Upload-Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -77247,7 +78655,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -77262,22 +78670,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -77286,12 +78694,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All" + "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -77328,7 +78736,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All": { + "Upload-Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -77340,7 +78748,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -77355,22 +78763,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -77379,12 +78787,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All" + "Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -77421,7 +78829,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal": { + "Upload-Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -77433,7 +78841,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -77448,22 +78856,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -77472,12 +78880,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal" + "Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -77514,7 +78922,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All": { + "Upload-Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -77526,7 +78934,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -77541,22 +78949,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -77565,12 +78973,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All" + "Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -77607,7 +79015,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal": { + "Upload-Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -77619,7 +79027,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -77634,22 +79042,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -77658,12 +79066,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal" + "Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -77700,7 +79108,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All": { + "Upload-Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -77712,7 +79120,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -77727,22 +79135,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -77751,12 +79159,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All" + "Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -77793,7 +79201,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal": { + "Upload-Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -77805,7 +79213,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -77820,22 +79228,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -77844,12 +79252,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal" + "Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -77886,7 +79294,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All": { + "Upload-Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -77898,7 +79306,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -77913,22 +79321,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -77937,12 +79345,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All" + "Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -77979,7 +79387,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All-Metal": { + "Upload-Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -77991,7 +79399,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -78006,22 +79414,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -78030,12 +79438,12 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "upload_nano_results", - "{\"$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\",\"gs_bucket\":\"skia-perf\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal\",\"gs_bucket\":\"skia-perf\",\"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", - "Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All-Metal" + "Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -78072,7 +79480,7 @@ "max_attempts": 2, "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All": { + "Upload-Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -78084,7 +79492,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -78099,22 +79507,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -78122,13 +79530,13 @@ "-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-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All\",\"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)\"}", + "upload_nano_results", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All" + "Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -78163,9 +79571,9 @@ }, "io_timeout_ns": 3600000000000, "max_attempts": 2, - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE": { + "Upload-Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -78177,7 +79585,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -78192,22 +79600,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -78215,13 +79623,13 @@ "-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-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE\",\"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)\"}", + "upload_nano_results", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal\",\"gs_bucket\":\"skia-perf\",\"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-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE" + "Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -78256,9 +79664,9 @@ }, "io_timeout_ns": 3600000000000, "max_attempts": 2, - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-Vulkan": { + "Upload-Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All": { "caches": [ { "name": "vpython", @@ -78270,7 +79678,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -78285,22 +79693,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -78308,13 +79716,13 @@ "-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-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-Vulkan\",\"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)\"}", + "upload_nano_results", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All\",\"gs_bucket\":\"skia-perf\",\"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-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-Vulkan" + "Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -78349,9 +79757,9 @@ }, "io_timeout_ns": 3600000000000, "max_attempts": 2, - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All": { + "Upload-Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All-Metal": { "caches": [ { "name": "vpython", @@ -78363,7 +79771,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -78378,22 +79786,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -78401,13 +79809,13 @@ "-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-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All\",\"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)\"}", + "upload_nano_results", + "{\"$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\",\"gs_bucket\":\"skia-perf\",\"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-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All" + "Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All-Metal" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -78442,9 +79850,9 @@ }, "io_timeout_ns": 3600000000000, "max_attempts": 2, - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + "service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE": { + "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -78456,7 +79864,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -78471,22 +79879,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -78495,12 +79903,12 @@ "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-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All\",\"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-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE" + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -78537,7 +79945,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan": { + "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -78549,7 +79957,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -78564,22 +79972,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -78588,12 +79996,12 @@ "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-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE\",\"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-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan" + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -78630,7 +80038,7 @@ "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": { + "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -78642,7 +80050,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -78657,22 +80065,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -78681,12 +80089,12 @@ "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\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-Vulkan\",\"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" + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -78723,7 +80131,7 @@ "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-ANGLE": { + "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -78735,7 +80143,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -78750,22 +80158,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -78774,12 +80182,12 @@ "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-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All\",\"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-ANGLE" + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -78816,7 +80224,7 @@ "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-BonusConfigs": { + "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -78828,7 +80236,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -78843,22 +80251,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -78867,12 +80275,12 @@ "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-BonusConfigs\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\",\"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-BonusConfigs" + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -78909,7 +80317,7 @@ "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": { + "Upload-Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -78921,7 +80329,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -78936,22 +80344,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -78960,12 +80368,12 @@ "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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan\",\"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" + "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -79002,7 +80410,7 @@ "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": { + "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -79014,7 +80422,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -79029,22 +80437,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -79053,12 +80461,12 @@ "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-GpuTess\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All\",\"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-GpuTess" + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -79095,7 +80503,7 @@ "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-Vulkan": { + "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -79107,7 +80515,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -79122,22 +80530,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -79146,12 +80554,12 @@ "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-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\",\"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-Vulkan" + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -79188,7 +80596,7 @@ "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-Vulkan_ProcDump": { + "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs": { "caches": [ { "name": "vpython", @@ -79200,7 +80608,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -79215,22 +80623,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -79239,12 +80647,12 @@ "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-Vulkan_ProcDump\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs\",\"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-Vulkan_ProcDump" + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -79281,7 +80689,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { + "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn": { "caches": [ { "name": "vpython", @@ -79293,7 +80701,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -79308,22 +80716,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -79332,12 +80740,12 @@ "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-Release-All\",\"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)\"}", + "{\"$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-Release-All" + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -79374,7 +80782,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE": { + "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess": { "caches": [ { "name": "vpython", @@ -79386,7 +80794,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -79401,22 +80809,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -79425,12 +80833,12 @@ "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-Release-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess\",\"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-Release-All-ANGLE" + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -79467,7 +80875,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs": { + "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -79479,7 +80887,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -79494,22 +80902,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -79518,12 +80926,12 @@ "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-Release-All-BonusConfigs\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan\",\"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-Release-All-BonusConfigs" + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -79560,7 +80968,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { + "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -79572,7 +80980,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -79587,22 +80995,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -79611,12 +81019,12 @@ "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-Release-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"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-Release-All-Vulkan" + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -79653,7 +81061,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan_ProcDump": { + "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -79665,7 +81073,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -79680,22 +81088,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -79704,12 +81112,12 @@ "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-Release-All-Vulkan_ProcDump\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE\",\"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-Release-All-Vulkan_ProcDump" + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -79746,7 +81154,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts": { + "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs": { "caches": [ { "name": "vpython", @@ -79758,7 +81166,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -79773,22 +81181,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -79797,12 +81205,12 @@ "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-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs\",\"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-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts" + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -79839,7 +81247,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All": { + "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -79851,7 +81259,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -79866,22 +81274,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -79890,12 +81298,12 @@ "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-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"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-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All" + "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -79932,7 +81340,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE": { + "Upload-Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts": { "caches": [ { "name": "vpython", @@ -79944,7 +81352,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -79959,22 +81367,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -79983,12 +81391,12 @@ "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-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts\",\"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-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE" + "Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -80025,7 +81433,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All": { + "Upload-Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -80037,7 +81445,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -80052,22 +81460,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -80076,12 +81484,12 @@ "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-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All\",\"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-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All" + "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -80118,7 +81526,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE": { + "Upload-Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -80130,7 +81538,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -80145,22 +81553,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -80169,12 +81577,12 @@ "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-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE\",\"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-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE" + "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -80211,7 +81619,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All": { + "Upload-Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -80223,7 +81631,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -80238,22 +81646,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -80262,12 +81670,12 @@ "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-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All\",\"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-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All" + "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -80304,7 +81712,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE": { + "Upload-Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -80316,7 +81724,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -80331,22 +81739,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -80355,12 +81763,12 @@ "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-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE\",\"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-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE" + "Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -80397,7 +81805,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan": { + "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -80409,7 +81817,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -80424,22 +81832,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -80448,12 +81856,12 @@ "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-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All\",\"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-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan" + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -80490,7 +81898,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All": { + "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -80502,7 +81910,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -80517,22 +81925,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -80541,12 +81949,12 @@ "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-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE\",\"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-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All" + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -80583,7 +81991,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE": { + "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -80595,7 +82003,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -80610,22 +82018,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -80634,12 +82042,12 @@ "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-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan\",\"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-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE" + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -80676,7 +82084,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts": { + "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -80688,7 +82096,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -80703,22 +82111,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -80727,12 +82135,12 @@ "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-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All\",\"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-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts" + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -80769,7 +82177,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan": { + "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -80781,7 +82189,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -80796,22 +82204,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -80820,12 +82228,12 @@ "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-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\",\"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-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan" + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -80862,7 +82270,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All": { + "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts": { "caches": [ { "name": "vpython", @@ -80874,7 +82282,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -80889,22 +82297,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -80913,12 +82321,12 @@ "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-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts\",\"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-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All" + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -80955,7 +82363,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE": { + "Upload-Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -80967,7 +82375,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -80982,22 +82390,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -81006,12 +82414,12 @@ "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-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan\",\"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-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE" + "Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -81048,7 +82456,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D": { + "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -81060,7 +82468,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -81075,22 +82483,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -81099,12 +82507,12 @@ "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-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All\",\"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-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D" + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -81141,7 +82549,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan": { + "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -81153,7 +82561,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -81168,22 +82576,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -81192,12 +82600,12 @@ "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-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE\",\"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-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan" + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -81234,7 +82642,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All": { + "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D": { "caches": [ { "name": "vpython", @@ -81246,7 +82654,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -81261,22 +82669,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -81285,12 +82693,12 @@ "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-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D\",\"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-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All" + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -81327,7 +82735,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE": { + "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -81339,7 +82747,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -81354,22 +82762,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -81378,12 +82786,12 @@ "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-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan\",\"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-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE" + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -81420,7 +82828,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D": { + "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -81432,7 +82840,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -81447,22 +82855,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -81471,12 +82879,12 @@ "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-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All\",\"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-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D" + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -81513,7 +82921,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan": { + "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -81525,7 +82933,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -81540,22 +82948,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -81564,12 +82972,12 @@ "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-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\",\"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-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan" + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -81606,7 +83014,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All": { + "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D": { "caches": [ { "name": "vpython", @@ -81618,7 +83026,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -81633,22 +83041,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -81657,12 +83065,12 @@ "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-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D\",\"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-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All" + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -81699,7 +83107,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE": { + "Upload-Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -81711,7 +83119,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -81726,22 +83134,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -81750,12 +83158,12 @@ "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-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan\",\"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-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE" + "Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -81792,7 +83200,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All": { + "Upload-Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -81804,7 +83212,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -81819,22 +83227,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -81843,12 +83251,12 @@ "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-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All\",\"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-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All" + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -81885,7 +83293,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE": { + "Upload-Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -81897,7 +83305,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -81912,22 +83320,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -81936,12 +83344,12 @@ "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-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-Vulkan\",\"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-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE" + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -81978,7 +83386,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All": { + "Upload-Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -81990,7 +83398,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -82005,22 +83413,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -82029,12 +83437,12 @@ "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-ShuttleA-GPU-GTX660-x86_64-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\",\"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-ShuttleA-GPU-GTX660-x86_64-Debug-All" + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -82071,7 +83479,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE": { + "Upload-Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -82083,7 +83491,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -82098,22 +83506,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -82122,12 +83530,12 @@ "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-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan\",\"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-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE" + "Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -82164,7 +83572,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-Vulkan": { + "Upload-Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -82176,7 +83584,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -82191,22 +83599,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -82215,12 +83623,12 @@ "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-ShuttleA-GPU-GTX660-x86_64-Debug-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All\",\"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-ShuttleA-GPU-GTX660-x86_64-Debug-All-Vulkan" + "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -82257,7 +83665,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All": { + "Upload-Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -82269,7 +83677,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -82284,22 +83692,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -82308,12 +83716,12 @@ "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-ShuttleA-GPU-GTX660-x86_64-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE\",\"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-ShuttleA-GPU-GTX660-x86_64-Release-All" + "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -82350,7 +83758,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE": { + "Upload-Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -82362,7 +83770,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -82377,22 +83785,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -82401,12 +83809,12 @@ "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-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All\",\"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-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE" + "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -82443,7 +83851,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan": { + "Upload-Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -82455,7 +83863,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -82470,22 +83878,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -82494,12 +83902,12 @@ "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-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE\",\"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-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan" + "Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -82536,7 +83944,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -82548,7 +83956,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -82563,22 +83971,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -82587,12 +83995,12 @@ "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-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All\",\"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-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All" + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -82629,7 +84037,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -82641,7 +84049,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -82656,22 +84064,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -82680,12 +84088,12 @@ "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-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE\",\"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-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE" + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -82722,7 +84130,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -82734,7 +84142,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -82749,22 +84157,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -82773,12 +84181,12 @@ "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-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-Vulkan\",\"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-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D" + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -82815,7 +84223,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Vulkan": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -82827,7 +84235,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -82842,22 +84250,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -82866,12 +84274,12 @@ "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-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All\",\"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-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Vulkan" + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -82908,7 +84316,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -82920,7 +84328,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -82935,22 +84343,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -82959,12 +84367,12 @@ "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-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE\",\"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-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All" + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -83001,7 +84409,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -83013,7 +84421,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -83028,22 +84436,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -83052,12 +84460,12 @@ "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-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan\",\"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-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE" + "Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -83094,7 +84502,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -83106,7 +84514,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -83121,22 +84529,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -83145,12 +84553,12 @@ "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-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All\",\"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-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D" + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -83187,7 +84595,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -83199,7 +84607,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -83214,22 +84622,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -83238,12 +84646,12 @@ "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-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE\",\"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-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan" + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -83280,7 +84688,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D": { "caches": [ { "name": "vpython", @@ -83292,7 +84700,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -83307,22 +84715,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -83331,12 +84739,12 @@ "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-ShuttleC-GPU-GTX960-x86_64-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D\",\"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-ShuttleC-GPU-GTX960-x86_64-Debug-All" + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -83373,7 +84781,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -83385,7 +84793,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -83400,22 +84808,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -83424,12 +84832,12 @@ "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-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Vulkan\",\"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-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE" + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -83466,7 +84874,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-Vulkan": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -83478,7 +84886,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -83493,22 +84901,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -83517,12 +84925,12 @@ "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-ShuttleC-GPU-GTX960-x86_64-Debug-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All\",\"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-ShuttleC-GPU-GTX960-x86_64-Debug-All-Vulkan" + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -83559,7 +84967,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -83571,7 +84979,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -83586,22 +84994,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -83610,12 +85018,12 @@ "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-ShuttleC-GPU-GTX960-x86_64-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE\",\"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-ShuttleC-GPU-GTX960-x86_64-Release-All" + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -83652,7 +85060,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D": { "caches": [ { "name": "vpython", @@ -83664,7 +85072,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -83679,22 +85087,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -83703,12 +85111,12 @@ "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-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D\",\"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-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE" + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -83745,7 +85153,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan": { + "Upload-Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -83757,7 +85165,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -83772,22 +85180,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -83796,12 +85204,12 @@ "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-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan\",\"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-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan" + "Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -83838,7 +85246,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All": { + "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -83850,7 +85258,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -83865,22 +85273,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -83889,12 +85297,12 @@ "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-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All\",\"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-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All" + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -83931,7 +85339,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D": { + "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE": { "caches": [ { "name": "vpython", @@ -83943,7 +85351,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -83958,22 +85366,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -83982,12 +85390,12 @@ "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-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE\",\"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-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D" + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -84024,7 +85432,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": { + "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -84036,7 +85444,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -84051,22 +85459,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -84075,12 +85483,12 @@ "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-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-Vulkan\",\"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-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan" + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -84117,7 +85525,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All": { + "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -84129,7 +85537,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -84144,22 +85552,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -84168,12 +85576,12 @@ "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-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All\",\"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-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All" + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -84210,7 +85618,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D": { + "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE": { "caches": [ { "name": "vpython", @@ -84222,7 +85630,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -84237,22 +85645,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -84261,12 +85669,12 @@ "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-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE\",\"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-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D" + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -84303,7 +85711,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { + "Upload-Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -84315,7 +85723,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -84330,22 +85738,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -84354,12 +85762,12 @@ "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-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan\",\"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-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan" + "Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -84396,7 +85804,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86-Debug-All": { + "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -84408,7 +85816,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -84423,22 +85831,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -84447,12 +85855,12 @@ "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-Win2019-Clang-GCE-CPU-AVX2-x86-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All\",\"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-Win2019-Clang-GCE-CPU-AVX2-x86-Debug-All" + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -84489,7 +85897,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All": { + "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D": { "caches": [ { "name": "vpython", @@ -84501,7 +85909,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -84516,22 +85924,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -84540,12 +85948,12 @@ "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-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D\",\"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-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All" + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -84582,7 +85990,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM": { + "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": { "caches": [ { "name": "vpython", @@ -84594,7 +86002,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -84609,22 +86017,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -84633,12 +86041,12 @@ "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-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan\",\"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-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM" + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -84675,7 +86083,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All": { + "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -84687,7 +86095,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -84702,22 +86110,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -84726,12 +86134,12 @@ "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-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All\",\"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-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All" + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -84768,7 +86176,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM": { + "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D": { "caches": [ { "name": "vpython", @@ -84780,7 +86188,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -84795,22 +86203,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -84819,12 +86227,12 @@ "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-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D\",\"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-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM" + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -84861,7 +86269,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Debug-All": { + "Upload-Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan": { "caches": [ { "name": "vpython", @@ -84873,7 +86281,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -84888,22 +86296,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -84912,12 +86320,12 @@ "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-Win2019-MSVC-GCE-CPU-AVX2-x86-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"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-Win2019-MSVC-GCE-CPU-AVX2-x86-Debug-All" + "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -84954,7 +86362,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Release-All": { + "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86-Debug-All": { "caches": [ { "name": "vpython", @@ -84966,7 +86374,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -84981,22 +86389,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -85005,12 +86413,12 @@ "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-Win2019-MSVC-GCE-CPU-AVX2-x86-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-Clang-GCE-CPU-AVX2-x86-Debug-All\",\"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-Win2019-MSVC-GCE-CPU-AVX2-x86-Release-All" + "Test-Win2019-Clang-GCE-CPU-AVX2-x86-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -85047,7 +86455,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All": { + "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All": { "caches": [ { "name": "vpython", @@ -85059,7 +86467,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -85074,22 +86482,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -85098,12 +86506,12 @@ "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-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All\",\"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-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All" + "Test-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -85140,7 +86548,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM": { + "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM": { "caches": [ { "name": "vpython", @@ -85152,7 +86560,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -85167,22 +86575,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -85191,12 +86599,12 @@ "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-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\",\"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-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM" + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SkVM" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -85233,7 +86641,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All": { + "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -85245,7 +86653,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -85260,22 +86668,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -85284,12 +86692,12 @@ "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-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All\",\"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-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All" + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -85326,7 +86734,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM": { + "Upload-Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM": { "caches": [ { "name": "vpython", @@ -85338,7 +86746,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -85353,22 +86761,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -85377,12 +86785,12 @@ "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-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM\",\"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-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM" + "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All-SkVM" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -85419,7 +86827,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86-Debug-All": { + "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Debug-All": { "caches": [ { "name": "vpython", @@ -85431,7 +86839,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -85446,22 +86854,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -85470,12 +86878,12 @@ "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-Win7-Clang-Golo-CPU-AVX512-x86-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Debug-All\",\"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-Win7-Clang-Golo-CPU-AVX512-x86-Debug-All" + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -85512,7 +86920,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86-Release-All": { + "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Release-All": { "caches": [ { "name": "vpython", @@ -85524,7 +86932,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -85539,22 +86947,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -85563,12 +86971,12 @@ "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-Win7-Clang-Golo-CPU-AVX512-x86-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Release-All\",\"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-Win7-Clang-Golo-CPU-AVX512-x86-Release-All" + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -85605,7 +87013,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All": { + "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All": { "caches": [ { "name": "vpython", @@ -85617,7 +87025,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -85632,22 +87040,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -85656,12 +87064,12 @@ "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-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All\",\"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-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All" + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -85698,7 +87106,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts": { + "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM": { "caches": [ { "name": "vpython", @@ -85710,7 +87118,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -85725,22 +87133,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -85749,12 +87157,12 @@ "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-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM\",\"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-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts" + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All-SkVM" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -85791,7 +87199,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts_GDI": { + "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All": { "caches": [ { "name": "vpython", @@ -85803,7 +87211,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -85818,22 +87226,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -85842,12 +87250,12 @@ "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-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts_GDI\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All\",\"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-Win7-Clang-Golo-CPU-AVX512-x86_64-Debug-All-NativeFonts_GDI" + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -85884,7 +87292,7 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win7-Clang-Golo-CPU-AVX512-x86_64-Release-All": { + "Upload-Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM": { "caches": [ { "name": "vpython", @@ -85896,7 +87304,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -85911,22 +87319,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -85935,12 +87343,12 @@ "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-Win7-Clang-Golo-CPU-AVX512-x86_64-Release-All\",\"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)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM\",\"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-Win7-Clang-Golo-CPU-AVX512-x86_64-Release-All" + "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Release-All-SkVM" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", @@ -85989,7 +87397,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -86004,22 +87412,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -86082,7 +87490,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -86097,22 +87505,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -86175,7 +87583,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -86190,22 +87598,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -86268,7 +87676,7 @@ { "name": "infra/3pp/tools/cpython/linux-amd64", "path": "cipd_bin_packages/cpython", - "version": "version:2@2.7.18.chromium.39" + "version": "version:2@2.7.18.chromium.42" }, { "name": "infra/3pp/tools/cpython3/linux-amd64", @@ -86283,22 +87691,22 @@ { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" }, { "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", - "version": "git_revision:aa47e6be98046ddf930042773df0bd2b768e3d99" + "version": "git_revision:1dd91587f8907954cb84ccb7d309274b173fce17" } ], "command": [ @@ -86368,11 +87776,16 @@ "compile": { "root": "..", "paths": [ + "skia/.bazelrc", + "skia/.bazelversion", "skia/.clang-format", "skia/.clang-tidy", "skia/.gn", "skia/.vpython", + "skia/BUILD.bazel", "skia/BUILD.gn", + "skia/WORKSPACE.bazel", + "skia/bazel", "skia/bench", "skia/bin", "skia/build/fuchsia", @@ -86381,12 +87794,12 @@ "skia/client_utils/android", "skia/dm", "skia/docs/examples", - "skia/example/HelloWorld.cpp", - "skia/example/HelloWorld.h", + "skia/example", "skia/experimental", "skia/fuzz", "skia/gm", "skia/gn", + "skia/go_repositories.bzl", "skia/include", "skia/infra/bots/assets/android_ndk_darwin/VERSION", "skia/infra/bots/assets/android_ndk_linux/VERSION", @@ -86395,6 +87808,7 @@ "skia/infra/bots/assets/clang_linux/VERSION", "skia/infra/bots/assets/clang_win/VERSION", "skia/infra/bots/run_recipe.py", + "skia/infra/bots/task_drivers", "skia/infra/canvaskit", "skia/infra/pathkit", "skia/modules", @@ -86403,11 +87817,13 @@ "skia/platform_tools/android/vulkan/Skia_Vulkan_Android.h", "skia/platform_tools/ios/app/LaunchScreen.storyboard", "skia/platform_tools/libraries/include/arcore_c_api.h", + "skia/requirements.txt", "skia/resources", "skia/samplecode", "skia/src", "skia/tests", "skia/third_party", + "skia/toolchain", "skia/tools" ], "excludes": [ @@ -86543,11 +87959,16 @@ "task-drivers": { "root": "..", "paths": [ - "skia/.vpython", - "skia/go.mod", - "skia/go.sum", + "skia/.bazelrc", + "skia/.bazelversion", + "skia/BUILD.bazel", + "skia/WORKSPACE.bazel", + "skia/bazel", + "skia/go_repositories.bzl", + "skia/requirements.txt", + "skia/toolchain", + "skia/infra/bots/BUILD.bazel", "skia/infra/bots/build_task_drivers.sh", - "skia/infra/bots/run_recipe.py", "skia/infra/bots/task_drivers" ], "excludes": [ @@ -86590,6 +88011,13 @@ } }, "commit_queue": { + "Build-Debian10-BazelClang-x86_64-Release-IWYU": { + "location_regexes": [ + "src/sksl/*", + "src/svg/*", + "tools/debugger/*" + ] + }, "Build-Debian10-Clang-arm-Debug-Android": {}, "Build-Debian10-Clang-arm-Release-Android_API26": {}, "Build-Debian10-Clang-arm64-Debug-Android": {}, @@ -86605,9 +88033,39 @@ "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU": {}, "Build-Debian10-GCC-x86_64-Debug-NoGPU_Docker": {}, "Build-Debian10-GCC-x86_64-Release-Docker": {}, + "Build-Mac-Clang-arm64-Debug-ASAN_Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, "Build-Mac-Clang-arm64-Debug-Graphite": {}, "Build-Mac-Clang-arm64-Debug-Graphite_NoGpu": {}, + "Build-Mac-Clang-arm64-Debug-iOS_Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, + "Build-Mac-Clang-arm64-Release-Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, + "Build-Mac-Clang-arm64-Release-iOS_Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, + "Build-Mac-Clang-x86_64-Debug-Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, "Build-Mac-Clang-x86_64-Release": {}, + "Build-Mac-Clang-x86_64-Release-Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, "Build-Win-Clang-x86-Debug": {}, "Build-Win-Clang-x86_64-Release-Dawn": {}, "Build-Win-Clang-x86_64-Release-Direct3D": {}, @@ -86628,6 +88086,7 @@ "CodeSize-fm-Debian10-Clang-x86_64-Debug": {}, "CodeSize-fm-Debian10-Clang-x86_64-Release": {}, "Housekeeper-OnDemand-Presubmit": {}, + "Housekeeper-PerCommit-CheckGeneratedBazelFiles": {}, "Housekeeper-PerCommit-CheckGeneratedFiles": { "location_regexes": [ "src/gpu/effects/generated/.*", @@ -86636,6 +88095,16 @@ }, "Housekeeper-PerCommit-InfraTests_Linux": {}, "Housekeeper-PerCommit-RunGnToBp": {}, + "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, + "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, "Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan": {}, "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All": {}, "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs": {}, @@ -86652,12 +88121,32 @@ "modules/canvaskit/.*" ] }, + "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-ASAN": {}, "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal": {}, + "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, + "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, + "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, + "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite": { + "location_regexes": [ + "experimental/graphite/.*" + ] + }, "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-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All": {}, "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D": {}, "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All": {} } diff --git a/third_party/skia/infra/gcc/Debian10-x86/Dockerfile b/third_party/skia/infra/gcc/Debian10-x86/Dockerfile index ac63a72185af..e49c4b5f0df7 100644 --- a/third_party/skia/infra/gcc/Debian10-x86/Dockerfile +++ b/third_party/skia/infra/gcc/Debian10-x86/Dockerfile @@ -7,5 +7,6 @@ RUN dpkg --add-architecture i386 && \ g++-multilib \ libfontconfig-dev:i386 \ libglu-dev:i386 \ - python \ + python3 \ && rm -rf /var/lib/apt/lists/* +RUN ln -s /usr/bin/python3 /usr/bin/python diff --git a/third_party/skia/infra/gcc/Debian10/Dockerfile b/third_party/skia/infra/gcc/Debian10/Dockerfile index 2800ca585efb..babb22064749 100644 --- a/third_party/skia/infra/gcc/Debian10/Dockerfile +++ b/third_party/skia/infra/gcc/Debian10/Dockerfile @@ -5,5 +5,6 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y \ ca-certificates \ libfontconfig-dev \ libglu-dev \ - python \ + python3 \ && rm -rf /var/lib/apt/lists/* +RUN ln -s /usr/bin/python3 /usr/bin/python \ No newline at end of file diff --git a/third_party/skia/infra/skcq.json b/third_party/skia/infra/skcq.json deleted file mode 100644 index ad724f080dde..000000000000 --- a/third_party/skia/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" -} diff --git a/third_party/skia/modules/androidkit/src/Gradients.cpp b/third_party/skia/modules/androidkit/src/Gradients.cpp index cde4625798cc..a81b5864a8c0 100644 --- a/third_party/skia/modules/androidkit/src/Gradients.cpp +++ b/third_party/skia/modules/androidkit/src/Gradients.cpp @@ -7,6 +7,7 @@ #include +#include "include/core/SkColorSpace.h" #include "include/core/SkM44.h" #include "include/effects/SkGradientShader.h" #include "modules/androidkit/src/Utils.h" diff --git a/third_party/skia/modules/androidkit/src/Image.cpp b/third_party/skia/modules/androidkit/src/Image.cpp index 9304ddc5afa9..597f7e428c4a 100644 --- a/third_party/skia/modules/androidkit/src/Image.cpp +++ b/third_party/skia/modules/androidkit/src/Image.cpp @@ -7,9 +7,11 @@ #include +#include "include/core/SkData.h" #include "include/core/SkImage.h" #include "include/core/SkM44.h" #include "include/core/SkTileMode.h" +#include "include/private/SkTo.h" #include "modules/androidkit/src/Utils.h" namespace { diff --git a/third_party/skia/modules/canvaskit/BUILD.bazel b/third_party/skia/modules/canvaskit/BUILD.bazel index 68b91babb0ff..363d71bb2779 100644 --- a/third_party/skia/modules/canvaskit/BUILD.bazel +++ b/third_party/skia/modules/canvaskit/BUILD.bazel @@ -1,6 +1,9 @@ load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary") load("//bazel/common_config_settings:defs.bzl", "bool_flag") load("//bazel:cc_binary_with_flags.bzl", "cc_binary_with_flags") +load("//bazel:karma_test.bzl", "karma_test") + +licenses(["notice"]) package(default_visibility = ["//:__subpackages__"]) @@ -137,9 +140,6 @@ CK_DEFINES = [ }) + select({ ":enable_runtime_effect_true": ["CK_INCLUDE_RUNTIME_EFFECT=1"], ":enable_runtime_effect_false": [], -}) + select({ - ":enable_sksl_tracing_true": ["CK_INCLUDE_SKSL_TRACE=1"], - ":enable_sksl_tracing_false": [], }) CK_RELEASE_OPTS = [ @@ -350,6 +350,9 @@ cc_binary_with_flags( "use_icu": [ "True", ], + "enable_sksl_tracing": [ + "True", + ], "shaper_backend": [ "harfbuzz_shaper", ], @@ -422,10 +425,35 @@ bool_flag( bool_flag( default = True, - flag_name = "enable_sksl_tracing", + flag_name = "include_matrix_js", ) -bool_flag( - default = True, - flag_name = "include_matrix_js", +karma_test( + name = "canvaskit_js_wasms", + srcs = [ + ":canvaskit_wasm/canvaskit.js", + # We want to make sure the CanvasKit JS is loaded before the loader script + "tests/bazel/canvaskitinit.js", + "tests/bazel/util.js", + "tests/bazel/test_reporter.js", + # which is loaded before the tests... + "tests/bazel/smoke_test.js", + "tests/bazel/canvas_test.js", + "tests/bazel/canvas2d_test.js", + "tests/bazel/core_test.js", + "tests/bazel/font_test.js", + "tests/bazel/matrix_test.js", + "tests/bazel/paragraph_test.js", + "tests/bazel/path_test.js", + "tests/bazel/rtshader_test.js", + "tests/bazel/skottie_test.js", + ], + config_file = "karma.bazel.js", + # The tests need the Gold server to be up and running so they can make POST requests to + # exfiltrate the PNGs they create. + env = "//modules/canvaskit/go/gold_test_env:gold_test_env", + static_files = [ + ":canvaskit_wasm/canvaskit.wasm", + "//modules/canvaskit/tests/assets:test_assets", + ], ) diff --git a/third_party/skia/modules/canvaskit/BUILD.gn b/third_party/skia/modules/canvaskit/BUILD.gn index 58d06d5a3fef..5f4b14c91bf3 100644 --- a/third_party/skia/modules/canvaskit/BUILD.gn +++ b/third_party/skia/modules/canvaskit/BUILD.gn @@ -2,8 +2,8 @@ # # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//gn/skia.gni") -import("//gn/toolchain/wasm.gni") +import("../../gn/skia.gni") +import("../../gn/toolchain/wasm.gni") import("canvaskit.gni") # These targets depend on components that are only declared if @@ -61,6 +61,18 @@ if (skia_enable_tools) { } } +component("debugger") { + include_dirs = [ "../.." ] + sources = [ + "../../tools/SkSharingProc.cpp", + "../../tools/UrlDataManager.cpp", + "../../tools/debugger/DebugCanvas.cpp", + "../../tools/debugger/DebugLayerManager.cpp", + "../../tools/debugger/DrawCommand.cpp", + "../../tools/debugger/JsonWriteBuffer.cpp", + ] +} + action("create_notomono_cpp") { script = "../../tools/embed_resources.py" @@ -127,6 +139,11 @@ skia_wasm_lib("canvaskit") { } if (skia_canvaskit_include_viewer) { sources += [ "viewer_bindings.cpp" ] + # TODO(kjlubick): remove this + } + if (skia_canvaskit_enable_debugger) { + sources += [ "debugger_bindings.cpp" ] + deps += [ ":debugger" ] } if (skia_canvaskit_enable_embedded_font) { sources += [ @@ -253,6 +270,13 @@ skia_wasm_lib("canvaskit") { ] } + if (skia_canvaskit_enable_debugger) { + ldflags += [ + "--pre-js", + rebase_path("debugger.js"), + ] + } + if (skia_canvaskit_enable_canvas_bindings) { ldflags += [ "--pre-js", @@ -345,14 +369,17 @@ skia_wasm_lib("canvaskit") { if (skia_canvaskit_enable_rt_shader) { defines += [ "CK_INCLUDE_RUNTIME_EFFECT" ] } - if (skia_canvaskit_enable_sksl_trace) { - defines += [ "CK_INCLUDE_SKSL_TRACE" ] - } if (!skia_canvaskit_enable_alias_font) { defines += [ "CANVASKIT_NO_ALIAS_FONT" ] } - + if (skia_canvaskit_legacy_draw_vertices_blend_mode) { + # https://github.com/flutter/flutter/issues/98531 + defines += [ "SK_LEGACY_IGNORE_DRAW_VERTICES_BLEND_WITH_NO_SHADER" ] + } if (!skia_canvaskit_enable_font) { defines += [ "CK_NO_FONTS" ] } + if (skia_enable_sksl_tracing) { + defines += [ "SKSL_ENABLE_TRACING" ] + } } diff --git a/third_party/skia/modules/canvaskit/Makefile b/third_party/skia/modules/canvaskit/Makefile index a68d568e60bc..925ed9b4c3fc 100644 --- a/third_party/skia/modules/canvaskit/Makefile +++ b/third_party/skia/modules/canvaskit/Makefile @@ -30,7 +30,7 @@ release_viewer: debug: # Does an incremental build where possible. - ./compile.sh debug + ./compile.sh debug_build - rm -rf build/ mkdir build cp ../../out/canvaskit_wasm_debug/canvaskit.js ./build/ @@ -38,7 +38,7 @@ debug: debug_cpu: # Does an incremental build where possible. - ./compile.sh debug cpu_only + ./compile.sh debug_build cpu_only - rm -rf build/ mkdir build cp ../../out/canvaskit_wasm_debug/canvaskit.js ./build/ @@ -46,7 +46,7 @@ debug_cpu: debug_viewer: # Does an incremental build where possible. - ./compile.sh debug viewer + ./compile.sh debug_build viewer - rm -rf build/ mkdir build cp ../../out/canvaskit_wasm_debug/canvaskit.js ./build/ @@ -72,7 +72,7 @@ npm: # These features are turned off to keep code size smaller for the # general use case. ./compile.sh release no_skottie no_particles no_rt_shader no_sksl_trace no_alias_font \ - no_effects_deserialization no_encode_jpeg no_encode_webp + no_effects_deserialization no_encode_jpeg no_encode_webp legacy_draw_vertices cp ../../out/canvaskit_wasm/canvaskit.js ./npm_build/bin cp ../../out/canvaskit_wasm/canvaskit.wasm ./npm_build/bin @@ -157,3 +157,32 @@ bazel_canvaskit_release: cp ../../bazel-bin/modules/canvaskit/canvaskit_wasm/canvaskit.js build/canvaskit.js cp ../../bazel-bin/modules/canvaskit/canvaskit_wasm/canvaskit.wasm build/canvaskit.wasm ls -l build + +bazel_test_canvaskit: + bazelisk test :canvaskit_js_wasms --compilation_mode opt --spawn_strategy=local \ + --test_output=streamed + echo "test output in //bazel-testlogs/modules/canvaskit/canvaskit_js_wasms/test.outputs/" + ls ../../bazel-testlogs/modules/canvaskit/canvaskit_js_wasms/test.outputs/ + +with_debugger: + # Does an incremental build where possible. + ./compile.sh debug_build enable_debugger + - rm -rf build/ + mkdir build + cp ../../out/canvaskit_wasm_debug/canvaskit.js ./build/ + cp ../../out/canvaskit_wasm_debug/canvaskit.wasm ./build/ + - mkdir ${SKIA_INFRA_ROOT}/debugger-app/wasm_libs/local_build/ + cp ./build/canvaskit.js ${SKIA_INFRA_ROOT}/debugger-app/wasm_libs/local_build/ + cp ./build/canvaskit.wasm ${SKIA_INFRA_ROOT}/debugger-app/wasm_libs/local_build/ + cp ./npm_build/types/index.d.ts ${SKIA_INFRA_ROOT}/debugger-app/wasm_libs/local_build/canvaskit.d.ts + +with_debugger_release: + ./compile.sh enable_debugger + - rm -rf build/ + mkdir build + cp ../../out/canvaskit_wasm/canvaskit.js ./build/ + cp ../../out/canvaskit_wasm/canvaskit.wasm ./build/ + - mkdir ${SKIA_INFRA_ROOT}/debugger-app/wasm_libs/local_build/ + cp ./build/canvaskit.js ${SKIA_INFRA_ROOT}/debugger-app/wasm_libs/local_build/ + cp ./build/canvaskit.wasm ${SKIA_INFRA_ROOT}/debugger-app/wasm_libs/local_build/ + cp ./npm_build/types/index.d.ts ${SKIA_INFRA_ROOT}/debugger-app/wasm_libs/local_build/canvaskit.d.ts diff --git a/third_party/skia/modules/canvaskit/WasmCommon.h b/third_party/skia/modules/canvaskit/WasmCommon.h index 519fbecccc55..9dd89acc4b37 100644 --- a/third_party/skia/modules/canvaskit/WasmCommon.h +++ b/third_party/skia/modules/canvaskit/WasmCommon.h @@ -17,6 +17,7 @@ using namespace emscripten; // Self-documenting types +using JSColor = int32_t; using JSArray = emscripten::val; using JSObject = emscripten::val; using JSString = emscripten::val; diff --git a/third_party/skia/modules/canvaskit/canvaskit.gni b/third_party/skia/modules/canvaskit/canvaskit.gni index 7b5a844421c2..b04501f56bee 100644 --- a/third_party/skia/modules/canvaskit/canvaskit.gni +++ b/third_party/skia/modules/canvaskit/canvaskit.gni @@ -3,22 +3,24 @@ # found in the LICENSE file. declare_args() { + skia_canvaskit_enable_alias_font = true skia_canvaskit_enable_canvas_bindings = true - skia_canvaskit_enable_skottie = true - skia_canvaskit_enable_pathops = true + skia_canvaskit_enable_debugger = false + skia_canvaskit_enable_effects_deserialization = true + skia_canvaskit_enable_embedded_font = true + skia_canvaskit_enable_font = true + skia_canvaskit_enable_matrix_helper = true skia_canvaskit_enable_particles = true + skia_canvaskit_enable_pathops = true skia_canvaskit_enable_rt_shader = true - skia_canvaskit_enable_sksl_trace = true - skia_canvaskit_enable_alias_font = true + skia_canvaskit_enable_skottie = true skia_canvaskit_enable_skp_serialization = true - skia_canvaskit_enable_effects_deserialization = true - skia_canvaskit_enable_matrix_helper = true - skia_canvaskit_enable_font = true - skia_canvaskit_enable_embedded_font = true + skia_canvaskit_enable_sksl_trace = true skia_canvaskit_enable_paragraph = true skia_canvaskit_include_viewer = false skia_canvaskit_force_tracing = false skia_canvaskit_profile_build = false + skia_canvaskit_legacy_draw_vertices_blend_mode = false } # Assert that skia_canvaskit_profile_build implies release mode. diff --git a/third_party/skia/modules/canvaskit/canvaskit_bindings.cpp b/third_party/skia/modules/canvaskit/canvaskit_bindings.cpp index e0570f3afa51..54b6b561b243 100644 --- a/third_party/skia/modules/canvaskit/canvaskit_bindings.cpp +++ b/third_party/skia/modules/canvaskit/canvaskit_bindings.cpp @@ -27,6 +27,7 @@ #include "include/core/SkPathMeasure.h" #include "include/core/SkPicture.h" #include "include/core/SkPictureRecorder.h" +#include "include/core/SkPoint3.h" #include "include/core/SkRRect.h" #include "include/core/SkSamplingOptions.h" #include "include/core/SkScalar.h" @@ -66,9 +67,10 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/gl/GrGLInterface.h" #include "include/gpu/gl/GrGLTypes.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/gl/GrGLDefines.h" +#include "src/gpu/RefCntedCallback.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" #include #endif @@ -87,7 +89,7 @@ #include "include/pathops/SkPathOps.h" #endif -#if defined(CK_INCLUDE_RUNTIME_EFFECT) && defined(CK_INCLUDE_SKSL_TRACE) +#if defined(CK_INCLUDE_RUNTIME_EFFECT) && defined(SKSL_ENABLE_TRACING) #include "include/sksl/SkSLDebugTrace.h" #endif @@ -781,7 +783,7 @@ class WebGLTextureImageGenerator : public SkImageGenerator { uint32_t webGLCtx = emscripten_webgl_get_current_context(); auto releaseCtx = new TextureReleaseContext{webGLCtx, glInfo.fID}; - auto cleanupCallback = GrRefCntedCallback::Make(deleteJSTexture, releaseCtx); + auto cleanupCallback = skgpu::RefCntedCallback::Make(deleteJSTexture, releaseCtx); sk_sp proxy = ctx->priv().proxyProvider()->wrapBackendTexture( backendTexture, @@ -1800,7 +1802,7 @@ EMSCRIPTEN_BINDINGS(Skia) { }), allow_raw_pointers()); #ifdef CK_INCLUDE_RUNTIME_EFFECT -#ifdef CK_INCLUDE_SKSL_TRACE +#ifdef SKSL_ENABLE_TRACING class_("DebugTrace") .smart_ptr>("sk_sp") .function("writeTrace", optional_override([](SkSL::DebugTrace& self) -> std::string { @@ -1828,7 +1830,7 @@ EMSCRIPTEN_BINDINGS(Skia) { } return effect; })) -#ifdef CK_INCLUDE_SKSL_TRACE +#ifdef SKSL_ENABLE_TRACING .class_function("MakeTraced", optional_override([]( sk_sp shader, int traceCoordX, diff --git a/third_party/skia/modules/canvaskit/compile.sh b/third_party/skia/modules/canvaskit/compile.sh index c83bf7932aba..5bc9f3c0d5a3 100755 --- a/third_party/skia/modules/canvaskit/compile.sh +++ b/third_party/skia/modules/canvaskit/compile.sh @@ -21,7 +21,7 @@ if [[ $@ != *force_tracing* ]] ; then FORCE_TRACING="true" fi -if [[ $@ == *debug* ]]; then +if [[ $@ == *debug_build* ]]; then echo "Building a Debug build" IS_DEBUG="true" IS_OFFICIAL_BUILD="false" @@ -138,6 +138,16 @@ if [[ $@ == *no_alias_font* ]]; then ENABLE_ALIAS_FONT="false" fi +LEGACY_DRAW_VERTICES="false" +if [[ $@ == *legacy_draw_vertices* ]]; then + LEGACY_DRAW_VERTICES="true" +fi + +DEBUGGER_ENABLED="false" +if [[ $@ == *enable_debugger* ]]; then + DEBUGGER_ENABLED="true" +fi + GN_SHAPER="skia_use_icu=true skia_use_system_icu=false skia_use_harfbuzz=true skia_use_system_harfbuzz=false" if [[ $@ == *primitive_shaper* ]] || [[ $@ == *no_font* ]]; then echo "Using the primitive shaper instead of the harfbuzz/icu one" @@ -219,6 +229,8 @@ echo "Compiling" skia_use_wuffs=true \ skia_use_zlib=true \ skia_enable_gpu=${ENABLE_GPU} \ + skia_build_for_debugger=${DEBUGGER_ENABLED} \ + skia_enable_sksl_tracing=${ENABLE_SKSL_TRACE} \ \ ${GN_SHAPER} \ ${GN_FONT} \ @@ -236,12 +248,13 @@ echo "Compiling" skia_canvaskit_enable_particles=${ENABLE_PARTICLES} \ skia_canvaskit_enable_pathops=${ENABLE_PATHOPS} \ skia_canvaskit_enable_rt_shader=${ENABLE_RT_SHADER} \ - skia_canvaskit_enable_sksl_trace=${ENABLE_SKSL_TRACE} \ skia_canvaskit_enable_matrix_helper=${ENABLE_MATRIX} \ skia_canvaskit_enable_canvas_bindings=${ENABLE_CANVAS} \ skia_canvaskit_enable_font=${ENABLE_FONT} \ skia_canvaskit_enable_embedded_font=${ENABLE_EMBEDDED_FONT} \ skia_canvaskit_enable_alias_font=${ENABLE_ALIAS_FONT} \ + skia_canvaskit_legacy_draw_vertices_blend_mode=${LEGACY_DRAW_VERTICES} \ + skia_canvaskit_enable_debugger=${DEBUGGER_ENABLED} \ skia_canvaskit_enable_paragraph=${ENABLE_PARAGRAPH}" ${NINJA} -C ${BUILD_DIR} canvaskit.js diff --git a/third_party/skia/experimental/wasm-skp-debugger/helper.js b/third_party/skia/modules/canvaskit/debugger.js similarity index 78% rename from third_party/skia/experimental/wasm-skp-debugger/helper.js rename to third_party/skia/modules/canvaskit/debugger.js index 481378e5caaa..24a677a48396 100644 --- a/third_party/skia/experimental/wasm-skp-debugger/helper.js +++ b/third_party/skia/modules/canvaskit/debugger.js @@ -1,7 +1,6 @@ -// Adds compile-time JS functions to augment the DebuggerView interface. -(function(DebuggerView){ - DebuggerView.SkpFilePlayer = function(file_arraybuf) { +(function(CanvasKit){ + CanvasKit.SkpFilePlayer = function(file_arraybuf) { // Create the instance of SkpDebugPlayer var player = new this.SkpDebugPlayer(); // Convert file (an ArrayBuffer) into a typedarray, @@ -11,7 +10,7 @@ // Allocate memory in wasm to hold the skp file selected by the user. var fileMemPtr = this._malloc(size); // Make a typed array view of that memory - var fileMem = new Uint8Array(DebuggerView.HEAPU8.buffer, fileMemPtr, size); + var fileMem = new Uint8Array(CanvasKit.HEAPU8.buffer, fileMemPtr, size); // Copy the file into it fileMem.set(fileContents); // Hand off pointer to wasm diff --git a/third_party/skia/experimental/wasm-skp-debugger/debugger_bindings.cpp b/third_party/skia/modules/canvaskit/debugger_bindings.cpp similarity index 78% rename from third_party/skia/experimental/wasm-skp-debugger/debugger_bindings.cpp rename to third_party/skia/modules/canvaskit/debugger_bindings.cpp index 419f8bb9aff7..ae36a6cfb3a4 100644 --- a/third_party/skia/experimental/wasm-skp-debugger/debugger_bindings.cpp +++ b/third_party/skia/modules/canvaskit/debugger_bindings.cpp @@ -22,6 +22,7 @@ #include "tools/UrlDataManager.h" #include "tools/debugger/DebugCanvas.h" #include "tools/debugger/DebugLayerManager.h" +#include "tools/debugger/DrawCommand.h" #include #include @@ -41,31 +42,26 @@ #include #endif -using JSColor = int32_t; -using Uint8Array = emscripten::val; -using JSArray = emscripten::val; -using JSObject = emscripten::val; +#include "modules/canvaskit/WasmCommon.h" // file signature for SkMultiPictureDocument // TODO(nifong): make public and include from SkMultiPictureDocument.h static constexpr char kMultiMagic[] = "Skia Multi-Picture Doc\n\n"; -struct SimpleImageInfo { - int width; - int height; - SkColorType colorType; - SkAlphaType alphaType; -}; +uint32_t MinVersion() { return SkPicturePriv::kMin_Version; } -SkImageInfo toSkImageInfo(const SimpleImageInfo& sii) { - return SkImageInfo::Make(sii.width, sii.height, sii.colorType, sii.alphaType); -} +struct ImageInfoNoColorspace { + int width; + int height; + SkColorType colorType; + SkAlphaType alphaType; +}; -SimpleImageInfo toSimpleImageInfo(const SkImageInfo& ii) { - return (SimpleImageInfo){ii.width(), ii.height(), ii.colorType(), ii.alphaType()}; +// TODO(kjlubick) Should this handle colorspace +ImageInfoNoColorspace toImageInfoNoColorspace(const SkImageInfo& ii) { + return (ImageInfoNoColorspace){ii.width(), ii.height(), ii.colorType(), ii.alphaType()}; } -uint32_t MinVersion() { return SkPicturePriv::kMin_Version; } class SkpDebugPlayer { public: @@ -273,8 +269,8 @@ class SkpDebugPlayer { } // Get the image info of one of the resource images. - SimpleImageInfo getImageInfo(int index) { - return toSimpleImageInfo(fImages[index]->imageInfo()); + ImageInfoNoColorspace getImageInfo(int index) { + return toImageInfoNoColorspace(fImages[index]->imageInfo()); } // return data on which commands each image is used in. @@ -471,70 +467,6 @@ class SkpDebugPlayer { int fInspectedLayer = -1; }; -#ifdef SK_GL -sk_sp MakeGrContext(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context) -{ - EMSCRIPTEN_RESULT r = emscripten_webgl_make_context_current(context); - if (r < 0) { - SkDebugf("failed to make webgl context current %d\n", r); - return nullptr; - } - // setup interface - auto interface = GrGLMakeNativeInterface(); - if (!interface) { - SkDebugf("failed to make GrGLMakeNativeInterface\n"); - return nullptr; - } - // setup context - return GrDirectContext::MakeGL(interface); -} - -sk_sp MakeOnScreenGLSurface(sk_sp dContext, int width, int height) { - glClearColor(0, 0, 0, 0); - glClearStencil(0); - glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); - - - // Wrap the frame buffer object attached to the screen in a Skia render - // target so Skia can render to it - GrGLint buffer; - glGetIntegerv(GL_FRAMEBUFFER_BINDING, &buffer); - GrGLFramebufferInfo info; - info.fFBOID = (GrGLuint) buffer; - SkColorType colorType; - - info.fFormat = GL_RGBA8; - colorType = kRGBA_8888_SkColorType; - - GrBackendRenderTarget target(width, height, 0, 8, info); - - sk_sp surface(SkSurface::MakeFromBackendRenderTarget(dContext.get(), target, - kBottomLeft_GrSurfaceOrigin, - colorType, nullptr, nullptr)); - return surface; -} - -sk_sp MakeRenderTarget(sk_sp dContext, int width, int height) { - SkImageInfo info = SkImageInfo::MakeN32(width, height, SkAlphaType::kPremul_SkAlphaType); - - sk_sp surface(SkSurface::MakeRenderTarget(dContext.get(), - SkBudgeted::kYes, - info, 0, - kBottomLeft_GrSurfaceOrigin, - nullptr, true)); - return surface; -} - -sk_sp MakeRenderTarget(sk_sp dContext, SimpleImageInfo sii) { - sk_sp surface(SkSurface::MakeRenderTarget(dContext.get(), - SkBudgeted::kYes, - toSkImageInfo(sii), 0, - kBottomLeft_GrSurfaceOrigin, - nullptr, true)); - return surface; -} -#endif - using namespace emscripten; EMSCRIPTEN_BINDINGS(my_module) { @@ -574,6 +506,7 @@ EMSCRIPTEN_BINDINGS(my_module) { .function("setAndroidClipViz", &SkpDebugPlayer::setAndroidClipViz); // Structs used as arguments or returns to the functions above + // TODO(kjlubick) handle this rect like the ones in CanvasKit value_object("SkIRect") .field("fLeft", &SkIRect::fLeft) .field("fTop", &SkIRect::fTop) @@ -589,57 +522,9 @@ EMSCRIPTEN_BINDINGS(my_module) { .field("layerWidth", &DebugLayerManager::LayerSummary::layerWidth) .field("layerHeight", &DebugLayerManager::LayerSummary::layerHeight); - // Symbols needed by cpu.js to perform surface creation and flushing. - enum_("ColorType") - .value("RGBA_8888", SkColorType::kRGBA_8888_SkColorType); - enum_("AlphaType") - .value("Opaque", SkAlphaType::kOpaque_SkAlphaType) - .value("Premul", SkAlphaType::kPremul_SkAlphaType) - .value("Unpremul", SkAlphaType::kUnpremul_SkAlphaType); - value_object("SkImageInfo") - .field("width", &SimpleImageInfo::width) - .field("height", &SimpleImageInfo::height) - .field("colorType", &SimpleImageInfo::colorType) - .field("alphaType", &SimpleImageInfo::alphaType); - constant("TRANSPARENT", (JSColor) SK_ColorTRANSPARENT); - function("_getRasterDirectSurface", optional_override([](const SimpleImageInfo ii, - uintptr_t /* uint8_t* */ pPtr, - size_t rowBytes)->sk_sp { - uint8_t* pixels = reinterpret_cast(pPtr); - SkImageInfo imageInfo = toSkImageInfo(ii); - SkDebugf("Made raster direct surface.\n"); - return SkSurface::MakeRasterDirect(imageInfo, pixels, rowBytes, nullptr); - }), allow_raw_pointers()); - class_("SkSurface") - .smart_ptr>("sk_sp") - .function("width", &SkSurface::width) - .function("height", &SkSurface::height) - .function("_flush", optional_override([](SkSurface& self) { - self.flushAndSubmit(false); - })) - .function("clear", optional_override([](SkSurface& self, JSColor color)->void { - self.getCanvas()->clear(SkColor(color)); - })) - .function("getCanvas", &SkSurface::getCanvas, allow_raw_pointers()); - // TODO(nifong): remove - class_("SkCanvas") - .function("clear", optional_override([](SkCanvas& self, JSColor color)->void { - // JS side gives us a signed int instead of an unsigned int for color - // Add a optional_override to change it out. - self.clear(SkColor(color)); - })); - - #ifdef SK_GL - class_("GrDirectContext") - .smart_ptr>("sk_sp"); - function("currentContext", &emscripten_webgl_get_current_context); - function("setCurrentContext", &emscripten_webgl_make_context_current); - function("MakeGrContext", &MakeGrContext); - function("MakeOnScreenGLSurface", &MakeOnScreenGLSurface); - function("MakeRenderTarget", select_overload( - sk_sp, int, int)>(&MakeRenderTarget)); - function("MakeRenderTarget", select_overload( - sk_sp, SimpleImageInfo)>(&MakeRenderTarget)); - constant("gpu", true); - #endif + value_object("ImageInfoNoColorspace") + .field("width", &ImageInfoNoColorspace::width) + .field("height", &ImageInfoNoColorspace::height) + .field("colorType", &ImageInfoNoColorspace::colorType) + .field("alphaType", &ImageInfoNoColorspace::alphaType); } diff --git a/third_party/skia/modules/canvaskit/externs.js b/third_party/skia/modules/canvaskit/externs.js index dcb9efbde83e..02445243ee84 100644 --- a/third_party/skia/modules/canvaskit/externs.js +++ b/third_party/skia/modules/canvaskit/externs.js @@ -72,6 +72,10 @@ var CanvasKit = { // Defined by emscripten. createContext: function() {}, + // Added by debugger when it extends canvaskit + MinVersion: function() {}, + SkpFilePlayer: function() {}, + // private API (i.e. things declared in the bindings that we use // in the pre-js file) _MakeGrContext: function() {}, @@ -756,6 +760,11 @@ var CanvasKit = { TextStyle: function() {}, + SkpDebugPlayer: { + // public API (from C++ bindings) + loadSkp: function() {}, + }, + // Constants and Enums gpu: {}, skottie: {}, diff --git a/third_party/skia/modules/canvaskit/font.js b/third_party/skia/modules/canvaskit/font.js index 677b1b4d55f1..c5b98dd5358f 100644 --- a/third_party/skia/modules/canvaskit/font.js +++ b/third_party/skia/modules/canvaskit/font.js @@ -13,6 +13,20 @@ CanvasKit._extraInitializations.push(function() { CanvasKit._free(strPtr); }; + CanvasKit.Canvas.prototype.drawGlyphs = function(glyphs, positions, x, y, font, paint) { + if (!(glyphs.length*2 <= positions.length)) { + throw 'Not enough positions for the array of gyphs'; + } + CanvasKit.setCurrentContext(this._context); + const glyphs_ptr = copy1dArray(glyphs, 'HEAPU16'); + const positions_ptr = copy1dArray(positions, 'HEAPF32'); + + this._drawGlyphs(glyphs.length, glyphs_ptr, positions_ptr, x, y, font, paint); + + freeArraysThatAreNotMallocedByUsers(positions_ptr, positions); + freeArraysThatAreNotMallocedByUsers(glyphs_ptr, glyphs); + }; + // Glyphs should be a Uint16Array of glyph ids, e.g. provided by Font.getGlyphIDs. // If using a Malloc'd array, be sure to use CanvasKit.MallocGlyphIDs() to get the right type. // The return value will be a Float32Array that is 4 times as long as the input array. For each diff --git a/third_party/skia/modules/canvaskit/gm_bindings.cpp b/third_party/skia/modules/canvaskit/gm_bindings.cpp index 6ab6add51436..1133809cf6fe 100644 --- a/third_party/skia/modules/canvaskit/gm_bindings.cpp +++ b/third_party/skia/modules/canvaskit/gm_bindings.cpp @@ -26,6 +26,7 @@ #include "src/core/SkFontMgrPriv.h" #include "src/core/SkMD5.h" #include "tests/Test.h" +#include "tests/TestHarness.h" #include "tools/HashAndEncode.h" #include "tools/ResourceFactory.h" #include "tools/flags/CommandLineFlags.h" @@ -348,6 +349,10 @@ void Init() { gSkFontMgr_DefaultFactory = &ToolUtils::MakePortableFontMgr; } +TestHarness CurrentTestHarness() { + return TestHarness::kWasmGMTests; +} + EMSCRIPTEN_BINDINGS(GMs) { function("Init", &Init); function("ListGMs", &ListGMs); diff --git a/third_party/skia/modules/canvaskit/go/gold_test_env/BUILD.bazel b/third_party/skia/modules/canvaskit/go/gold_test_env/BUILD.bazel new file mode 100644 index 000000000000..85a18b9e25d6 --- /dev/null +++ b/third_party/skia/modules/canvaskit/go/gold_test_env/BUILD.bazel @@ -0,0 +1,16 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +licenses(["notice"]) + +go_library( + name = "gold_test_env_lib", + srcs = ["gold_test_env.go"], + importpath = "go.skia.org/skia/modules/canvaskit/go/gold_test_env", + visibility = ["//visibility:private"], +) + +go_binary( + name = "gold_test_env", + embed = [":gold_test_env_lib"], + visibility = ["//visibility:public"], +) diff --git a/third_party/skia/modules/canvaskit/go/gold_test_env/gold_test_env.go b/third_party/skia/modules/canvaskit/go/gold_test_env/gold_test_env.go new file mode 100644 index 000000000000..fd4420300fde --- /dev/null +++ b/third_party/skia/modules/canvaskit/go/gold_test_env/gold_test_env.go @@ -0,0 +1,194 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package main + +import ( + "encoding/base64" + "encoding/json" + "errors" + "fmt" + "io" + "io/ioutil" + "net" + "net/http" + "os" + "os/signal" + "path" + "path/filepath" + "strconv" + "syscall" +) + +const ( + envPortFileBaseName = "port" +) + +func main() { + envDir, envReadyFile := mustGetEnvironmentVariables() + + port, listener := mustGetUnusedNetworkPort() + + beginTestManagementLogic(listener) + + mustPrepareTestEnvironment(envDir, port) + + setupTerminationLogic() + + mustSignalTestsCanBegin(envReadyFile) + + select {} // Block until the termination handler calls os.Exit +} + +// mustGetEnvironmentVariables returns two file paths: a directory that can be used to communicate +// between this binary and the test binaries, and the file that needs to be created when this +// binary has finished setting things up. It panics if it cannot read the values from the +// set environment variables. +func mustGetEnvironmentVariables() (string, string) { + // Read in build paths to the ready and port files. + envDir := os.Getenv("ENV_DIR") + if envDir == "" { + panic("required environment variable ENV_DIR is unset") + } + envReadyFile := os.Getenv("ENV_READY_FILE") + if envReadyFile == "" { + panic("required environment variable ENV_READY_FILE is unset") + } + return envDir, envReadyFile +} + +// mustGetUnusedNetworkPort returns a network port chosen by the OS (and assumed to be previously +// unused) and a listener for that port. We choose a non-deterministic port instead of a fixed port +// because multiple tests may be running in parallel. +func mustGetUnusedNetworkPort() (int, net.Listener) { + // Listen on an unused port chosen by the OS. + listener, err := net.Listen("tcp", ":0") + if err != nil { + panic(err) + } + port := listener.Addr().(*net.TCPAddr).Port + fmt.Printf("Environment is ready to go!\nListening on port %d.\n", port) + return port, listener +} + +// beginTestManagementLogic sets up the server endpoints which allow the JS gm() tests to exfiltrate +// their PNG images by means of a POST request. +func beginTestManagementLogic(listener net.Listener) { + // The contents of this path go to //bazel-testlogs/path/to/test/test.outputs/ and are combined + // into outputs.zip. + // e.g. ls bazel-testlogs/modules/canvaskit/hello_world_test_with_env/test.outputs/ + // test_001 + // test_002 + // outputs.zip # contains test_001 and test_002 + // This environment var is documented in https://bazel.build/reference/test-encyclopedia + outPath := os.Getenv("TEST_UNDECLARED_OUTPUTS_DIR") + if outPath == "" { + panic("output directory was not configured") + } + + http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + }) + + http.HandleFunc("/report", func(w http.ResponseWriter, r *http.Request) { + payload, err := readPayload(r) + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + } + if payload.TestName == "" { + http.Error(w, "Must specify test name", http.StatusBadRequest) + return + } + // Write the data in the POST to the special Bazel output directory + fileContents, err := base64.StdEncoding.DecodeString(payload.Base64Data) + if err != nil { + fmt.Printf("Invalid base64 data: %s\n", err.Error()) + http.Error(w, "Invalid base64 data "+err.Error(), http.StatusBadRequest) + return + } + fp := filepath.Join(outPath, payload.TestName) + // Two newlines here makes the log stick out more. + fmt.Printf("Writing test data to %s\n\n", fp) + out, err := os.Create(fp) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + panic(err) + } + if _, err := out.Write(fileContents); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + panic(err) + } + + // Signal to the test that we have written the data to disk. Tests should be sure to wait + // for this response before signaling they are done to avoid a race condition. + w.WriteHeader(http.StatusCreated) + // We are not worried about an XSS reflection attack here on a local server only up + // when running tests. + if _, err := fmt.Fprintln(w, "Accepted for test "+payload.TestName); err != nil { + panic(err) + } + }) + go func() { + serveForever(listener) + }() +} + +type testPayload struct { + TestName string `json:"name"` + Base64Data string `json:"b64_data"` +} + +// readPayload reads the body of the given request as JSON and parses it into a testPayload struct. +func readPayload(r *http.Request) (testPayload, error) { + var payload testPayload + if r.Body == nil { + return payload, errors.New("no body received") + } + b, err := io.ReadAll(r.Body) + if err != nil { + return payload, err + } + _ = r.Body.Close() + if err := json.Unmarshal(b, &payload); err != nil { + return payload, errors.New("invalid JSON") + } + return payload, nil +} + +// serveForever serves the given listener and blocks. If it could not start serving, it will panic. +func serveForever(listener net.Listener) { + // If http.Serve returns, it is an error. + if err := http.Serve(listener, nil); err != nil { + panic(fmt.Sprintf("Finished serving due to error: %s\n", err)) + } +} + +// mustPrepareTestEnvironment writes any files to the temporary test directory. This is just a file +// that indicates which port the gold tests should make POST requests to. It panics if there are +// any errors. +func mustPrepareTestEnvironment(dirTestsCanRead string, port int) { + envPortFile := path.Join(dirTestsCanRead, envPortFileBaseName) + if err := ioutil.WriteFile(envPortFile, []byte(strconv.Itoa(port)), 0644); err != nil { + panic(err) + } +} + +// setupTerminationLogic creates a handler for SIGTERM which is what test_on_env will send the +// environment when the tests complete. There is currently nothing to do other than exit. +func setupTerminationLogic() { + c := make(chan os.Signal, 1) + go func() { + <-c + os.Exit(0) + }() + signal.Notify(c, syscall.SIGTERM) +} + +// mustSignalTestsCanBegin creates the agreed upon ENV_READY_FILE which signals the test binary can +// be executed by Bazel. See test_on_env.bzl for more. It panics if the file cannot be created. +func mustSignalTestsCanBegin(envReadyFile string) { + if err := ioutil.WriteFile(envReadyFile, []byte{}, 0644); err != nil { + panic(err) + } +} diff --git a/third_party/skia/modules/canvaskit/interface.js b/third_party/skia/modules/canvaskit/interface.js index bfb6753e039c..255067844eef 100644 --- a/third_party/skia/modules/canvaskit/interface.js +++ b/third_party/skia/modules/canvaskit/interface.js @@ -577,20 +577,6 @@ CanvasKit.onRuntimeInitialized = function() { this._drawDRRect(oPtr, iPtr, paint); }; - CanvasKit.Canvas.prototype.drawGlyphs = function(glyphs, positions, x, y, font, paint) { - if (!(glyphs.length*2 <= positions.length)) { - throw 'Not enough positions for the array of gyphs'; - } - CanvasKit.setCurrentContext(this._context); - const glyphs_ptr = copy1dArray(glyphs, 'HEAPU16'); - const positions_ptr = copy1dArray(positions, 'HEAPF32'); - - this._drawGlyphs(glyphs.length, glyphs_ptr, positions_ptr, x, y, font, paint); - - freeArraysThatAreNotMallocedByUsers(positions_ptr, positions); - freeArraysThatAreNotMallocedByUsers(glyphs_ptr, glyphs); - }; - CanvasKit.Canvas.prototype.drawImage = function(img, x, y, paint) { CanvasKit.setCurrentContext(this._context); this._drawImage(img, x, y, paint || null); diff --git a/third_party/skia/modules/canvaskit/karma.bazel.js b/third_party/skia/modules/canvaskit/karma.bazel.js new file mode 100644 index 000000000000..04c55bd79850 --- /dev/null +++ b/third_party/skia/modules/canvaskit/karma.bazel.js @@ -0,0 +1,47 @@ +const path = require('path'); +const fs = require('fs') +// This should be a file created by gold_test_env.go which contains the port number +// on which it is listening. For whatever reason, karma was not happy serving the +// port file directly, but reading it in and then adding it as a proxy seems to +// work fine. +const testOnEnvPortPath = path.join(process.env['ENV_DIR'], 'port'); +const port = fs.readFileSync(testOnEnvPortPath, 'utf8').toString(); +console.log('test_on_env PORT:', port); + +module.exports = function(config) { + // http://karma-runner.github.io/6.3/config/configuration-file.html + let cfg = { + // available frameworks: https://npmjs.org/browse/keyword/karma-adapter + frameworks: ['jasmine'], + + proxies: { + // The tests will make calls to /gold_rpc/whatever and they will be redirected + // to the correct location. + '/gold_rpc/': `http://localhost:${port}/`, + // This makes it more convenient for tests to load the test assets. + '/assets/': '/static/skia/modules/canvaskit/tests/assets/', + }, + + // possible values: 'dots', 'progress' + // available reporters: https://npmjs.org/browse/keyword/karma-reporter + reporters: ['progress'], + colors: true, + logLevel: config.LOG_INFO, + + browserDisconnectTimeout: 20000, + browserNoActivityTimeout: 20000, + + // How many browsers should be started simultaneous + concurrency: Infinity, + }; + + // Bazel will inject some code here to add/change the following items: + // - files + // - proxies + // - browsers + // - basePath + // - singleRun + BAZEL_APPLY_SETTINGS(cfg); + + config.set(cfg); +}; diff --git a/third_party/skia/modules/canvaskit/package-lock.json b/third_party/skia/modules/canvaskit/package-lock.json index 6e6bcf8d6dc2..257cf26cac07 100644 --- a/third_party/skia/modules/canvaskit/package-lock.json +++ b/third_party/skia/modules/canvaskit/package-lock.json @@ -11,7 +11,7 @@ "devDependencies": { "is-docker": "~1.1.0", "jasmine-core": "~3.6.0", - "karma": "^6.3.2", + "karma": "^6.3.16", "karma-chrome-launcher": "~3.1.0", "karma-coverage": "~2.0.3", "karma-jasmine": "~4.0.1", @@ -309,38 +309,47 @@ "node": ">=8" } }, + "node_modules/@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/@types/component-emitter": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", - "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", "dev": true }, "node_modules/@types/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", "dev": true }, "node_modules/@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", "dev": true }, "node_modules/@types/node": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.1.tgz", - "integrity": "sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==", + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", "dev": true }, "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" @@ -371,9 +380,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -389,15 +398,6 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "node_modules/base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", @@ -408,9 +408,9 @@ } }, "node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, "engines": { "node": ">=8" @@ -510,24 +510,30 @@ "dev": true }, "node_modules/chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { - "fsevents": "~2.1.2" + "fsevents": "~2.3.2" } }, "node_modules/cliui": { @@ -614,9 +620,9 @@ } }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, "engines": { "node": ">= 0.6" @@ -642,9 +648,9 @@ "dev": true }, "node_modules/date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", + "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", "dev": true, "engines": { "node": ">=4.0" @@ -708,39 +714,42 @@ } }, "node_modules/engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", + "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", "dev": true, "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" }, "engines": { "node": ">=10.0.0" } }, "node_modules/engine.io-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", - "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", "dev": true, "dependencies": { - "base64-arraybuffer": "0.1.4" + "@socket.io/base64-arraybuffer": "~1.0.2" }, "engines": { - "node": ">=8.0.0" + "node": ">=10.0.0" } }, "node_modules/engine.io/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -833,9 +842,9 @@ } }, "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "node_modules/follow-redirects": { @@ -859,17 +868,17 @@ } }, "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=12" } }, "node_modules/fs.realpath": { @@ -879,10 +888,11 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, + "hasInstallScript": true, "optional": true, "os": [ "darwin" @@ -910,9 +920,9 @@ } }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -924,12 +934,15 @@ }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" @@ -948,9 +961,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", "dev": true }, "node_modules/has-flag": { @@ -1066,9 +1079,9 @@ } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" @@ -1087,12 +1100,15 @@ } }, "node_modules/isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", "dev": true, "engines": { "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" } }, "node_modules/isexe": { @@ -1245,42 +1261,46 @@ } }, "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/karma": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.2.tgz", - "integrity": "sha512-fo4Wt0S99/8vylZMxNj4cBFyOBBnC1bewZ0QOlePij/2SZVWxqbyLeIddY13q6URa2EpLRW8ixvFRUMjkmo1bw==", + "version": "6.3.16", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.16.tgz", + "integrity": "sha512-nEU50jLvDe5yvXqkEJRf8IuvddUkOY2x5Xc4WXHz6dxINgGDrgD2uqQWeVrJs4hbfNaotn+HQ1LZJ4yOXrL7xQ==", "dev": true, "dependencies": { "body-parser": "^1.19.0", "braces": "^3.0.2", - "chokidar": "^3.4.2", - "colors": "^1.4.0", + "chokidar": "^3.5.1", + "colors": "1.4.0", "connect": "^3.7.0", "di": "^0.0.1", "dom-serialize": "^2.2.1", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.19", - "log4js": "^6.2.1", - "mime": "^2.4.5", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^3.1.0", + "socket.io": "^4.2.0", "source-map": "^0.6.1", - "tmp": "0.2.1", - "ua-parser-js": "^0.7.23", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", "yargs": "^16.1.1" }, "bin": { @@ -1335,31 +1355,36 @@ "dev": true }, "node_modules/log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", + "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", "dev": true, "dependencies": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" + "date-format": "^4.0.3", + "debug": "^4.3.3", + "flatted": "^3.2.4", + "rfdc": "^1.3.0", + "streamroller": "^3.0.2" }, "engines": { "node": ">=8.0" } }, "node_modules/log4js/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/log4js/node_modules/ms": { @@ -1390,9 +1415,9 @@ } }, "node_modules/mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, "bin": { "mime": "cli.js" @@ -1402,21 +1427,21 @@ } }, "node_modules/mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dev": true, "dependencies": { - "mime-db": "1.44.0" + "mime-db": "1.51.0" }, "engines": { "node": ">= 0.6" @@ -1440,6 +1465,18 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1447,9 +1484,9 @@ "dev": true }, "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, "engines": { "node": ">= 0.6" @@ -1513,12 +1550,15 @@ } }, "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/qjobs": { @@ -1564,9 +1604,9 @@ } }, "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { "picomatch": "^2.2.1" @@ -1604,9 +1644,9 @@ "dev": true }, "node_modules/rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, "node_modules/rimraf": { @@ -1649,29 +1689,26 @@ "dev": true }, "node_modules/socket.io": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", "dev": true, "dependencies": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" }, "engines": { "node": ">=10.0.0" } }, "node_modules/socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", "dev": true }, "node_modules/socket.io-parser": { @@ -1689,9 +1726,9 @@ } }, "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1712,9 +1749,9 @@ "dev": true }, "node_modules/socket.io/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1753,38 +1790,34 @@ } }, "node_modules/streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", + "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", "dev": true, "dependencies": { - "date-format": "^2.1.0", + "date-format": "^4.0.3", "debug": "^4.1.1", - "fs-extra": "^8.1.0" + "fs-extra": "^10.0.0" }, "engines": { "node": ">=8.0" } }, - "node_modules/streamroller/node_modules/date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/streamroller/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/streamroller/node_modules/ms": { @@ -1887,9 +1920,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", "dev": true, "funding": [ { @@ -1906,12 +1939,12 @@ } }, "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, "engines": { - "node": ">= 4.0.0" + "node": ">= 10.0.0" } }, "node_modules/unpipe": { @@ -1986,12 +2019,12 @@ "dev": true }, "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "dev": true, "engines": { - "node": ">=8.3.0" + "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", @@ -2314,38 +2347,44 @@ "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", "dev": true }, + "@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "dev": true + }, "@types/component-emitter": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", - "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", "dev": true }, "@types/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", "dev": true }, "@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", "dev": true }, "@types/node": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.1.tgz", - "integrity": "sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==", + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", "dev": true }, "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "ansi-regex": { @@ -2364,9 +2403,9 @@ } }, "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -2379,12 +2418,6 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", - "dev": true - }, "base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", @@ -2392,9 +2425,9 @@ "dev": true }, "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "body-parser": { @@ -2478,19 +2511,19 @@ } }, "chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" } }, "cliui": { @@ -2565,9 +2598,9 @@ } }, "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true }, "cors": { @@ -2587,9 +2620,9 @@ "dev": true }, "date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", + "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", "dev": true }, "debug": { @@ -2644,24 +2677,27 @@ "dev": true }, "engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", + "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", "dev": true, "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" @@ -2676,12 +2712,12 @@ } }, "engine.io-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", - "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", "dev": true, "requires": { - "base64-arraybuffer": "0.1.4" + "@socket.io/base64-arraybuffer": "~1.0.2" } }, "ent": { @@ -2745,9 +2781,9 @@ } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "follow-redirects": { @@ -2757,14 +2793,14 @@ "dev": true }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", "dev": true, "requires": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "fs.realpath": { @@ -2774,9 +2810,9 @@ "dev": true }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, @@ -2793,9 +2829,9 @@ "dev": true }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -2807,9 +2843,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -2822,9 +2858,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", "dev": true }, "has-flag": { @@ -2916,9 +2952,9 @@ "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -2931,9 +2967,9 @@ "dev": true }, "isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", "dev": true }, "isexe": { @@ -3054,42 +3090,44 @@ } }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, "karma": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.2.tgz", - "integrity": "sha512-fo4Wt0S99/8vylZMxNj4cBFyOBBnC1bewZ0QOlePij/2SZVWxqbyLeIddY13q6URa2EpLRW8ixvFRUMjkmo1bw==", + "version": "6.3.16", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.16.tgz", + "integrity": "sha512-nEU50jLvDe5yvXqkEJRf8IuvddUkOY2x5Xc4WXHz6dxINgGDrgD2uqQWeVrJs4hbfNaotn+HQ1LZJ4yOXrL7xQ==", "dev": true, "requires": { "body-parser": "^1.19.0", "braces": "^3.0.2", - "chokidar": "^3.4.2", - "colors": "^1.4.0", + "chokidar": "^3.5.1", + "colors": "1.4.0", "connect": "^3.7.0", "di": "^0.0.1", "dom-serialize": "^2.2.1", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.19", - "log4js": "^6.2.1", - "mime": "^2.4.5", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^3.1.0", + "socket.io": "^4.2.0", "source-map": "^0.6.1", - "tmp": "0.2.1", - "ua-parser-js": "^0.7.23", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", "yargs": "^16.1.1" } }, @@ -3132,22 +3170,22 @@ "dev": true }, "log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", + "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", "dev": true, "requires": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" + "date-format": "^4.0.3", + "debug": "^4.3.3", + "flatted": "^3.2.4", + "rfdc": "^1.3.0", + "streamroller": "^3.0.2" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" @@ -3177,24 +3215,24 @@ "dev": true }, "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true }, "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true }, "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dev": true, "requires": { - "mime-db": "1.44.0" + "mime-db": "1.51.0" } }, "minimatch": { @@ -3212,6 +3250,15 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -3219,9 +3266,9 @@ "dev": true }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true }, "normalize-path": { @@ -3267,9 +3314,9 @@ "dev": true }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "qjobs": { @@ -3303,9 +3350,9 @@ } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -3330,9 +3377,9 @@ "dev": true }, "rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, "rimraf": { @@ -3369,26 +3416,23 @@ "dev": true }, "socket.io": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", "dev": true, "requires": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" @@ -3403,9 +3447,9 @@ } }, "socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", "dev": true }, "socket.io-parser": { @@ -3420,9 +3464,9 @@ }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" @@ -3449,26 +3493,20 @@ "dev": true }, "streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", + "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", "dev": true, "requires": { - "date-format": "^2.1.0", + "date-format": "^4.0.3", "debug": "^4.1.1", - "fs-extra": "^8.1.0" + "fs-extra": "^10.0.0" }, "dependencies": { - "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true - }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" @@ -3552,15 +3590,15 @@ } }, "ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", "dev": true }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, "unpipe": { @@ -3614,9 +3652,9 @@ "dev": true }, "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "dev": true, "requires": {} }, diff --git a/third_party/skia/modules/canvaskit/package.json b/third_party/skia/modules/canvaskit/package.json index deff7d2a2424..a5cf7de8c1cc 100644 --- a/third_party/skia/modules/canvaskit/package.json +++ b/third_party/skia/modules/canvaskit/package.json @@ -7,7 +7,7 @@ "devDependencies": { "is-docker": "~1.1.0", "jasmine-core": "~3.6.0", - "karma": "^6.3.2", + "karma": "^6.3.16", "karma-chrome-launcher": "~3.1.0", "karma-coverage": "~2.0.3", "karma-jasmine": "~4.0.1", diff --git a/third_party/skia/modules/canvaskit/tests/assets/BUILD.bazel b/third_party/skia/modules/canvaskit/tests/assets/BUILD.bazel new file mode 100644 index 000000000000..79b6e6e242d3 --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/assets/BUILD.bazel @@ -0,0 +1,29 @@ +licenses(["notice"]) + +filegroup( + name = "test_assets", + srcs = [ + "Bungee-Regular.ttf", + "NotoColorEmoji.ttf", + "NotoSerif-BoldItalic.ttf", + "NotoSerif-Regular.ttf", + "Roboto-Regular.otf", + "Roboto-Regular.woff", + "Roboto-Regular.woff2", + "animated_gif.json", + "audio_external.json", + "brickwork-texture.jpg", + "color_wheel.gif", + "color_wheel.webp", + "exif_rotated_heart.jpg", + "flightAnim.gif", + "mandrill_16.png", + "mandrill_512.png", + "mandrill_h1v1.jpg", + "map-shield.json", + "more_samples-glyf_colr_1.ttf", + "red_line.skp", + "test.ttc", + ], + visibility = ["//:__subpackages__"], +) diff --git a/third_party/skia/modules/canvaskit/tests/assets/more_samples-glyf_colr_1.ttf b/third_party/skia/modules/canvaskit/tests/assets/more_samples-glyf_colr_1.ttf new file mode 100644 index 000000000000..850343c6881d Binary files /dev/null and b/third_party/skia/modules/canvaskit/tests/assets/more_samples-glyf_colr_1.ttf differ diff --git a/third_party/skia/modules/canvaskit/tests/bazel/canvas2d_test.js b/third_party/skia/modules/canvaskit/tests/bazel/canvas2d_test.js new file mode 100644 index 000000000000..c53a65c7f4eb --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/canvas2d_test.js @@ -0,0 +1,853 @@ +describe('Canvas 2D emulation', () => { + let container; + + beforeEach(async () => { + await EverythingLoaded; + container = document.createElement('div'); + container.innerHTML = ` + + `; + document.body.appendChild(container); + }); + + afterEach(() => { + document.body.removeChild(container); + }); + + const expectColorCloseTo = (a, b) => { + expect(a.length).toEqual(4); + expect(b.length).toEqual(4); + for (let i=0; i<4; i++) { + expect(a[i]).toBeCloseTo(b[i], 3); + } + } + + describe('color strings', () => { + const hex = (s) => { + return parseInt(s, 16); + } + + it('parses hex color strings', () => { + const parseColor = CanvasKit.parseColorString; + expectColorCloseTo(parseColor('#FED'), + CanvasKit.Color(hex('FF'), hex('EE'), hex('DD'), 1)); + expectColorCloseTo(parseColor('#FEDC'), + CanvasKit.Color(hex('FF'), hex('EE'), hex('DD'), hex('CC')/255)); + expectColorCloseTo(parseColor('#fed'), + CanvasKit.Color(hex('FF'), hex('EE'), hex('DD'), 1)); + expectColorCloseTo(parseColor('#fedc'), + CanvasKit.Color(hex('FF'), hex('EE'), hex('DD'), hex('CC')/255)); + }); + it('parses rgba color strings', () => { + const parseColor = CanvasKit.parseColorString; + expectColorCloseTo(parseColor('rgba(117, 33, 64, 0.75)'), + CanvasKit.Color(117, 33, 64, 0.75)); + expectColorCloseTo(parseColor('rgb(117, 33, 64, 0.75)'), + CanvasKit.Color(117, 33, 64, 0.75)); + expectColorCloseTo(parseColor('rgba(117,33,64)'), + CanvasKit.Color(117, 33, 64, 1.0)); + expectColorCloseTo(parseColor('rgb(117,33, 64)'), + CanvasKit.Color(117, 33, 64, 1.0)); + expectColorCloseTo(parseColor('rgb(117,33, 64, 32%)'), + CanvasKit.Color(117, 33, 64, 0.32)); + expectColorCloseTo(parseColor('rgb(117,33, 64, 0.001)'), + CanvasKit.Color(117, 33, 64, 0.001)); + expectColorCloseTo(parseColor('rgb(117,33,64,0)'), + CanvasKit.Color(117, 33, 64, 0.0)); + }); + it('parses named color strings', () => { + // Keep this one as the _testing version, because we don't include the large + // color map by default. + const parseColor = CanvasKit._testing.parseColor; + expectColorCloseTo(parseColor('grey'), + CanvasKit.Color(128, 128, 128, 1.0)); + expectColorCloseTo(parseColor('blanchedalmond'), + CanvasKit.Color(255, 235, 205, 1.0)); + expectColorCloseTo(parseColor('transparent'), + CanvasKit.Color(0, 0, 0, 0)); + }); + + it('properly produces color strings', () => { + const colorToString = CanvasKit._testing.colorToString; + + expect(colorToString(CanvasKit.Color(102, 51, 153, 1.0))).toEqual('#663399'); + + expect(colorToString(CanvasKit.Color(255, 235, 205, 0.5))).toEqual( + 'rgba(255, 235, 205, 0.50000000)'); + }); + + it('can multiply colors by alpha', () => { + const multiplyByAlpha = CanvasKit.multiplyByAlpha; + + const testCases = [ + { + inColor: CanvasKit.Color(102, 51, 153, 1.0), + inAlpha: 1.0, + outColor: CanvasKit.Color(102, 51, 153, 1.0), + }, + { + inColor: CanvasKit.Color(102, 51, 153, 1.0), + inAlpha: 0.8, + outColor: CanvasKit.Color(102, 51, 153, 0.8), + }, + { + inColor: CanvasKit.Color(102, 51, 153, 0.8), + inAlpha: 0.7, + outColor: CanvasKit.Color(102, 51, 153, 0.56), + }, + { + inColor: CanvasKit.Color(102, 51, 153, 0.8), + inAlpha: 1000, + outColor: CanvasKit.Color(102, 51, 153, 1.0), + }, + ]; + + for (const tc of testCases) { + // Print out the test case if the two don't match. + expect(multiplyByAlpha(tc.inColor, tc.inAlpha)) + .toEqual(tc.outColor, JSON.stringify(tc)); + } + }); + }); // end describe('color string parsing') + + describe('fonts', () => { + it('can parse font sizes', () => { + const parseFontString = CanvasKit._testing.parseFontString; + + const tests = [{ + 'input': '10px monospace', + 'output': { + 'style': '', + 'variant': '', + 'weight': '', + 'sizePx': 10, + 'family': 'monospace', + } + }, + { + 'input': '15pt Arial', + 'output': { + 'style': '', + 'variant': '', + 'weight': '', + 'sizePx': 20, + 'family': 'Arial', + } + }, + { + 'input': '1.5in Arial, san-serif ', + 'output': { + 'style': '', + 'variant': '', + 'weight': '', + 'sizePx': 144, + 'family': 'Arial, san-serif', + } + }, + { + 'input': '1.5em SuperFont', + 'output': { + 'style': '', + 'variant': '', + 'weight': '', + 'sizePx': 24, + 'family': 'SuperFont', + } + }, + ]; + + for (let i = 0; i < tests.length; i++) { + expect(parseFontString(tests[i].input)).toEqual(tests[i].output); + } + }); + + it('can parse font attributes', () => { + const parseFontString = CanvasKit._testing.parseFontString; + + const tests = [{ + 'input': 'bold 10px monospace', + 'output': { + 'style': '', + 'variant': '', + 'weight': 'bold', + 'sizePx': 10, + 'family': 'monospace', + } + }, + { + 'input': 'italic bold 10px monospace', + 'output': { + 'style': 'italic', + 'variant': '', + 'weight': 'bold', + 'sizePx': 10, + 'family': 'monospace', + } + }, + { + 'input': 'italic small-caps bold 10px monospace', + 'output': { + 'style': 'italic', + 'variant': 'small-caps', + 'weight': 'bold', + 'sizePx': 10, + 'family': 'monospace', + } + }, + { + 'input': 'small-caps bold 10px monospace', + 'output': { + 'style': '', + 'variant': 'small-caps', + 'weight': 'bold', + 'sizePx': 10, + 'family': 'monospace', + } + }, + { + 'input': 'italic 10px monospace', + 'output': { + 'style': 'italic', + 'variant': '', + 'weight': '', + 'sizePx': 10, + 'family': 'monospace', + } + }, + { + 'input': 'small-caps 10px monospace', + 'output': { + 'style': '', + 'variant': 'small-caps', + 'weight': '', + 'sizePx': 10, + 'family': 'monospace', + } + }, + { + 'input': 'normal bold 10px monospace', + 'output': { + 'style': 'normal', + 'variant': '', + 'weight': 'bold', + 'sizePx': 10, + 'family': 'monospace', + } + }, + ]; + + for (let i = 0; i < tests.length; i++) { + expect(parseFontString(tests[i].input)).toEqual(tests[i].output); + } + }); + }); + + const multipleCanvasTest = (testname, done, test) => { + const skcanvas = CanvasKit.MakeCanvas(CANVAS_WIDTH, CANVAS_HEIGHT); + skcanvas._config = 'software_canvas'; + const realCanvas = document.getElementById('test'); + realCanvas._config = 'html_canvas'; + realCanvas.width = CANVAS_WIDTH; + realCanvas.height = CANVAS_HEIGHT; + + if (!done) { + console.log('debugging canvaskit'); + test(realCanvas); + test(skcanvas); + const png = skcanvas.toDataURL(); + const img = document.createElement('img'); + document.body.appendChild(img); + img.src = png; + debugger; + return; + } + + let promises = []; + + for (let canvas of [skcanvas, realCanvas]) { + test(canvas); + // canvas has .toDataURL (even though skcanvas is not a real Canvas) + // so this will work. + promises.push(reportCanvas(canvas, testname, canvas._config)); + } + Promise.all(promises).then(() => { + skcanvas.dispose(); + done(); + }).catch(reportError(done)); + } + + describe('CanvasContext2D API', () => { + multipleCanvasGM('all_line_drawing_operations', (canvas) => { + const ctx = canvas.getContext('2d'); + ctx.scale(3.0, 3.0); + ctx.moveTo(20, 5); + ctx.lineTo(30, 20); + ctx.lineTo(40, 10); + ctx.lineTo(50, 20); + ctx.lineTo(60, 0); + ctx.lineTo(20, 5); + + ctx.moveTo(20, 80); + ctx.bezierCurveTo(90, 10, 160, 150, 190, 10); + + ctx.moveTo(36, 148); + ctx.quadraticCurveTo(66, 188, 120, 136); + ctx.lineTo(36, 148); + + ctx.rect(5, 170, 20, 25); + + ctx.moveTo(150, 180); + ctx.arcTo(150, 100, 50, 200, 20); + ctx.lineTo(160, 160); + + ctx.moveTo(20, 120); + ctx.arc(20, 120, 18, 0, 1.75 * Math.PI); + ctx.lineTo(20, 120); + + ctx.moveTo(150, 5); + ctx.ellipse(130, 25, 30, 10, -1*Math.PI/8, Math.PI/6, 1.5*Math.PI) + + ctx.lineWidth = 2; + ctx.stroke(); + + // Test edgecases and draw direction + ctx.beginPath(); + ctx.arc(50, 100, 10, Math.PI, -Math.PI/2); + ctx.stroke(); + ctx.beginPath(); + ctx.arc(75, 100, 10, Math.PI, -Math.PI/2, true); + ctx.stroke(); + ctx.beginPath(); + ctx.arc(100, 100, 10, Math.PI, 100.1 * Math.PI, true); + ctx.stroke(); + ctx.beginPath(); + ctx.arc(125, 100, 10, Math.PI, 100.1 * Math.PI, false); + ctx.stroke(); + ctx.beginPath(); + ctx.ellipse(155, 100, 10, 15, Math.PI/8, 100.1 * Math.PI, Math.PI, true); + ctx.stroke(); + ctx.beginPath(); + ctx.ellipse(180, 100, 10, 15, Math.PI/8, Math.PI, 100.1 * Math.PI, true); + ctx.stroke(); + }); + + multipleCanvasGM('all_matrix_operations', (canvas) => { + const ctx = canvas.getContext('2d'); + ctx.rect(10, 10, 20, 20); + + ctx.scale(2.0, 4.0); + ctx.rect(30, 10, 20, 20); + ctx.resetTransform(); + + ctx.rotate(Math.PI / 3); + ctx.rect(50, 10, 20, 20); + ctx.resetTransform(); + + ctx.translate(30, -2); + ctx.rect(70, 10, 20, 20); + ctx.resetTransform(); + + ctx.translate(60, 0); + ctx.rotate(Math.PI / 6); + ctx.transform(1.5, 0, 0, 0.5, 0, 0); // effectively scale + ctx.rect(90, 10, 20, 20); + ctx.resetTransform(); + + ctx.save(); + ctx.setTransform(2, 0, -.5, 2.5, -40, 120); + ctx.rect(110, 10, 20, 20); + ctx.lineTo(110, 0); + ctx.restore(); + ctx.lineTo(220, 120); + + ctx.scale(3.0, 3.0); + ctx.font = '6pt Noto Mono'; + ctx.fillText('This text should be huge', 10, 80); + ctx.resetTransform(); + + ctx.strokeStyle = 'black'; + ctx.lineWidth = 2; + ctx.stroke(); + + ctx.beginPath(); + ctx.moveTo(250, 30); + ctx.lineTo(250, 80); + ctx.scale(3.0, 3.0); + ctx.lineTo(280/3, 90/3); + ctx.closePath(); + ctx.strokeStyle = 'black'; + ctx.lineWidth = 5; + ctx.stroke(); + }); + + multipleCanvasGM('shadows_and_save_restore', (canvas) => { + const ctx = canvas.getContext('2d'); + ctx.strokeStyle = '#000'; + ctx.fillStyle = '#CCC'; + ctx.shadowColor = 'rebeccapurple'; + ctx.shadowBlur = 1; + ctx.shadowOffsetX = 3; + ctx.shadowOffsetY = -8; + ctx.rect(10, 10, 30, 30); + + ctx.save(); + ctx.strokeStyle = '#C00'; + ctx.fillStyle = '#00C'; + ctx.shadowBlur = 0; + ctx.shadowColor = 'transparent'; + + ctx.stroke(); + + ctx.restore(); + ctx.fill(); + + ctx.beginPath(); + ctx.moveTo(36, 148); + ctx.quadraticCurveTo(66, 188, 120, 136); + ctx.closePath(); + ctx.stroke(); + + ctx.beginPath(); + ctx.shadowColor = '#993366AA'; + ctx.shadowOffsetX = 8; + ctx.shadowBlur = 5; + ctx.setTransform(2, 0, -.5, 2.5, -40, 120); + ctx.rect(110, 10, 20, 20); + ctx.lineTo(110, 0); + ctx.resetTransform(); + ctx.lineTo(220, 120); + ctx.stroke(); + + ctx.fillStyle = 'green'; + ctx.font = '16pt Noto Mono'; + ctx.fillText('This should be shadowed', 20, 80); + + ctx.beginPath(); + ctx.lineWidth = 6; + ctx.ellipse(10, 290, 30, 30, 0, 0, Math.PI * 2); + ctx.scale(2, 1); + ctx.moveTo(10, 290) + ctx.ellipse(10, 290, 30, 60, 0, 0, Math.PI * 2); + ctx.resetTransform(); + ctx.shadowColor = '#993366AA'; + ctx.scale(3, 1); + ctx.moveTo(10, 290) + ctx.ellipse(10, 290, 30, 90, 0, 0, Math.PI * 2); + ctx.stroke(); + }); + + multipleCanvasGM('global_dashed_rects', (canvas) => { + const ctx = canvas.getContext('2d'); + ctx.scale(1.1, 1.1); + ctx.translate(10, 10); + // Shouldn't impact the fillRect calls + ctx.setLineDash([5, 3]); + + ctx.fillStyle = 'rgba(200, 0, 100, 0.81)'; + ctx.fillRect(20, 30, 100, 100); + + ctx.globalAlpha = 0.81; + ctx.fillStyle = 'rgba(200, 0, 100, 1.0)'; + ctx.fillRect(120, 30, 100, 100); + // This shouldn't do anything + ctx.globalAlpha = 0.1; + + ctx.fillStyle = 'rgba(200, 0, 100, 0.9)'; + ctx.globalAlpha = 0.9; + // Intentional no-op to check ordering + ctx.clearRect(220, 30, 100, 100); + ctx.fillRect(220, 30, 100, 100); + + ctx.fillRect(320, 30, 100, 100); + ctx.clearRect(330, 40, 80, 80); + + ctx.strokeStyle = 'blue'; + ctx.lineWidth = 3; + ctx.setLineDash([5, 3]); + ctx.strokeRect(20, 150, 100, 100); + ctx.setLineDash([50, 30]); + ctx.strokeRect(125, 150, 100, 100); + ctx.lineDashOffset = 25; + ctx.strokeRect(230, 150, 100, 100); + ctx.setLineDash([2, 5, 9]); + ctx.strokeRect(335, 150, 100, 100); + + ctx.setLineDash([5, 2]); + ctx.moveTo(336, 400); + ctx.quadraticCurveTo(366, 488, 120, 450); + ctx.lineTo(300, 400); + ctx.stroke(); + + ctx.font = '36pt Noto Mono'; + ctx.strokeText('Dashed', 20, 350); + ctx.fillText('Not Dashed', 20, 400); + }); + + multipleCanvasGM('gradients_clip', (canvas) => { + const ctx = canvas.getContext('2d'); + + const rgradient = ctx.createRadialGradient(200, 300, 10, 100, 100, 300); + + rgradient.addColorStop(0, 'red'); + rgradient.addColorStop(.7, 'white'); + rgradient.addColorStop(1, 'blue'); + + ctx.fillStyle = rgradient; + ctx.globalAlpha = 0.7; + ctx.fillRect(0,0,600,600); + ctx.globalAlpha = 0.95; + + ctx.beginPath(); + ctx.arc(300, 100, 90, 0, Math.PI*1.66); + ctx.closePath(); + ctx.strokeStyle = 'yellow'; + ctx.lineWidth = 5; + ctx.stroke(); + ctx.save(); + ctx.clip(); + + const lgradient = ctx.createLinearGradient(200, 20, 420, 40); + + lgradient.addColorStop(0, 'green'); + lgradient.addColorStop(.5, 'cyan'); + lgradient.addColorStop(1, 'orange'); + + ctx.fillStyle = lgradient; + + ctx.fillRect(200, 30, 200, 300); + + ctx.restore(); + ctx.fillRect(550, 550, 40, 40); + }); + + multipleCanvasGM('get_put_imagedata', (canvas) => { + const ctx = canvas.getContext('2d'); + // Make a gradient so we see if the pixels copying worked + const grad = ctx.createLinearGradient(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); + grad.addColorStop(0, 'yellow'); + grad.addColorStop(1, 'red'); + ctx.fillStyle = grad; + ctx.fillRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); + + const iData = ctx.getImageData(400, 100, 200, 150); + expect(iData.width).toBe(200); + expect(iData.height).toBe(150); + expect(iData.data.byteLength).toBe(200*150*4); + ctx.putImageData(iData, 10, 10); + ctx.putImageData(iData, 350, 350, 100, 75, 45, 40); + ctx.strokeRect(350, 350, 200, 150); + + const box = ctx.createImageData(20, 40); + ctx.putImageData(box, 10, 300); + const biggerBox = ctx.createImageData(iData); + ctx.putImageData(biggerBox, 10, 350); + expect(biggerBox.width).toBe(iData.width); + expect(biggerBox.height).toBe(iData.height); + }); + + multipleCanvasGM('shadows_with_rotate_skbug_9947', (canvas) => { + const ctx = canvas.getContext('2d'); + const angle = 240; + ctx.fillStyle = 'white'; + ctx.fillRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); + ctx.save(); + ctx.translate(80, 80); + ctx.rotate((angle * Math.PI) / 180); + ctx.shadowOffsetX = 10; + ctx.shadowOffsetY = 10; + ctx.shadowColor = 'rgba(100,100,100,0.5)'; + ctx.shadowBlur = 1; + ctx.fillStyle = 'black'; + ctx.strokeStyle = 'red'; + ctx.beginPath(); + ctx.rect(-20, -20, 40, 40); + ctx.fill(); + ctx.fillRect(30, 30, 40, 40); + ctx.strokeRect(30, -20, 40, 40); + ctx.fillText('text', -20, -30); + ctx.restore(); + }); + + describe('using images', () => { + let skImageData = null; + let htmlImage = null; + const skPromise = fetch('/assets/mandrill_512.png') + .then((response) => response.arrayBuffer()) + .then((buffer) => { + skImageData = buffer; + + }); + const realPromise = fetch('/assets/mandrill_512.png') + .then((response) => response.blob()) + .then((blob) => createImageBitmap(blob)) + .then((bitmap) => { + htmlImage = bitmap; + }); + + beforeEach(async () => { + await skPromise; + await realPromise; + }); + + multipleCanvasGM('draw_patterns', (canvas) => { + const ctx = canvas.getContext('2d'); + let img = htmlImage; + if (canvas._config === 'software_canvas') { + img = canvas.decodeImage(skImageData); + } + ctx.fillStyle = '#EEE'; + ctx.fillRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); + ctx.lineWidth = 20; + ctx.scale(0.2, 0.4); + + let pattern = ctx.createPattern(img, 'repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 1500, 750); + + pattern = ctx.createPattern(img, 'repeat-x'); + ctx.fillStyle = pattern; + ctx.fillRect(1500, 0, 3000, 750); + + ctx.globalAlpha = 0.7 + pattern = ctx.createPattern(img, 'repeat-y'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 750, 1500, 1500); + ctx.strokeRect(0, 750, 1500, 1500); + + pattern = ctx.createPattern(img, 'no-repeat'); + ctx.fillStyle = pattern; + pattern.setTransform({a: 1, b: -.1, c:.1, d: 0.5, e: 1800, f:800}); + ctx.fillRect(0, 0, 3000, 1500); + }); + + multipleCanvasGM('draw_image', (canvas) => { + let ctx = canvas.getContext('2d'); + let img = htmlImage; + if (canvas._config === 'software_canvas') { + img = canvas.decodeImage(skImageData); + } + ctx.drawImage(img, 30, -200); + + ctx.globalAlpha = 0.7 + ctx.rotate(.1); + ctx.imageSmoothingQuality = 'medium'; + ctx.drawImage(img, 200, 350, 150, 100); + ctx.rotate(-.2); + ctx.imageSmoothingEnabled = false; + ctx.drawImage(img, 100, 150, 400, 350, 10, 400, 150, 100); + }); + }); // end describe('using images') + + { + const drawPoint = (ctx, x, y, color) => { + ctx.fillStyle = color; + ctx.fillRect(x, y, 1, 1); + } + const IN = 'purple'; + const OUT = 'orange'; + const SCALE = 8; + + // Check to see if these points are in or out on each of the + // test configurations. + const pts = [[3, 3], [4, 4], [5, 5], [10, 10], [8, 10], [6, 10], + [6.5, 9], [15, 10], [17, 10], [17, 11], [24, 24], + [25, 25], [26, 26], [27, 27]]; + const tests = [ + { + xOffset: 0, + yOffset: 0, + fillType: 'nonzero', + strokeWidth: 0, + testFn: (ctx, x, y) => ctx.isPointInPath(x * SCALE, y * SCALE, 'nonzero'), + }, + { + xOffset: 30, + yOffset: 0, + fillType: 'evenodd', + strokeWidth: 0, + testFn: (ctx, x, y) => ctx.isPointInPath(x * SCALE, y * SCALE, 'evenodd'), + }, + { + xOffset: 0, + yOffset: 30, + fillType: null, + strokeWidth: 1, + testFn: (ctx, x, y) => ctx.isPointInStroke(x * SCALE, y * SCALE), + }, + { + xOffset: 30, + yOffset: 30, + fillType: null, + strokeWidth: 2, + testFn: (ctx, x, y) => ctx.isPointInStroke(x * SCALE, y * SCALE), + }, + ]; + multipleCanvasGM('points_in_path_stroke', (canvas) => { + const ctx = canvas.getContext('2d'); + ctx.font = '20px Noto Mono'; + // Draw some visual aids + ctx.fillText('path-nonzero', 60, 30); + ctx.fillText('path-evenodd', 300, 30); + ctx.fillText('stroke-1px-wide', 60, 260); + ctx.fillText('stroke-2px-wide', 300, 260); + ctx.fillText('purple is IN, orange is OUT', 20, 560); + + // Scale up to make single pixels easier to see + ctx.scale(SCALE, SCALE); + for (const test of tests) { + ctx.beginPath(); + const xOffset = test.xOffset; + const yOffset = test.yOffset; + + ctx.fillStyle = '#AAA'; + ctx.lineWidth = test.strokeWidth; + ctx.rect(5+xOffset, 5+yOffset, 20, 20); + ctx.arc(15+xOffset, 15+yOffset, 8, 0, Math.PI*2, false); + if (test.fillType) { + ctx.fill(test.fillType); + } else { + ctx.stroke(); + } + + for (const pt of pts) { + let [x, y] = pt; + x += xOffset; + y += yOffset; + // naively apply transform when querying because the points queried + // ignore the CTM. + if (test.testFn(ctx, x, y)) { + drawPoint(ctx, x, y, IN); + } else { + drawPoint(ctx, x, y, OUT); + } + } + } + }); + } + + describe('loading custom fonts', () => { + const realFontLoaded = new FontFace('BungeeNonSystem', 'url(/assets/Bungee-Regular.ttf)', { + 'family': 'BungeeNonSystem', // Make sure the canvas does not use the system font + 'style': 'normal', + 'weight': '400', + }).load().then((font) => { + document.fonts.add(font); + }); + + let fontBuffer = null; + const skFontLoaded = fetch('/assets/Bungee-Regular.ttf').then( + (response) => response.arrayBuffer()).then( + (buffer) => { + fontBuffer = buffer; + }); + + beforeEach(async () => { + await realFontLoaded; + await skFontLoaded; + }); + + multipleCanvasGM('custom_font', (canvas) => { + if (canvas.loadFont) { + canvas.loadFont(fontBuffer, { + 'family': 'BungeeNonSystem', + 'style': 'normal', + 'weight': '400', + }); + } + const ctx = canvas.getContext('2d'); + + ctx.font = '20px monospace'; + ctx.fillText('20 px monospace', 10, 30); + + ctx.font = '2.0em BungeeNonSystem'; + ctx.fillText('2.0em Bungee filled', 10, 80); + ctx.strokeText('2.0em Bungee stroked', 10, 130); + + const m = ctx.measureText('A phrase in English'); + expect(m).toBeTruthy(); + expect(m['width']).toBeTruthy(); + + ctx.font = '40pt monospace'; + ctx.strokeText('40pt monospace', 10, 200); + + // bold wasn't defined, so should fallback to just the 400 weight + ctx.font = 'bold 45px BungeeNonSystem'; + ctx.fillText('45px Bungee filled', 10, 260); + }); + }); // describe('loading custom fonts') + + it('can read default properties', () => { + const skcanvas = CanvasKit.MakeCanvas(CANVAS_WIDTH, CANVAS_HEIGHT); + const realCanvas = document.getElementById('test'); + realCanvas.width = CANVAS_WIDTH; + realCanvas.height = CANVAS_HEIGHT; + + const skcontext = skcanvas.getContext('2d'); + const realContext = realCanvas.getContext('2d'); + // The skia canvas only comes with a monospace font by default + // Set the html canvas to be monospace too. + realContext.font = '10px monospace'; + + const toTest = ['font', 'lineWidth', 'strokeStyle', 'lineCap', + 'lineJoin', 'miterLimit', 'shadowOffsetY', + 'shadowBlur', 'shadowColor', 'shadowOffsetX', + 'globalAlpha', 'globalCompositeOperation', + 'lineDashOffset', 'imageSmoothingEnabled', + 'imageFilterQuality']; + + // Compare all the default values of the properties of skcanvas + // to the default values on the properties of a real canvas. + for(let attr of toTest) { + expect(skcontext[attr]).toBe(realContext[attr], attr); + } + + skcanvas.dispose(); + }); + }); // end describe('CanvasContext2D API') + + describe('Path2D API', () => { + multipleCanvasGM('path2d_line_drawing_operations', (canvas) => { + const ctx = canvas.getContext('2d'); + let clock; + let path; + if (canvas.makePath2D) { + clock = canvas.makePath2D('M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z'); + path = canvas.makePath2D(); + } else { + clock = new Path2D('M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z') + path = new Path2D(); + } + path.moveTo(20, 5); + path.lineTo(30, 20); + path.lineTo(40, 10); + path.lineTo(50, 20); + path.lineTo(60, 0); + path.lineTo(20, 5); + + path.moveTo(20, 80); + path.bezierCurveTo(90, 10, 160, 150, 190, 10); + + path.moveTo(36, 148); + path.quadraticCurveTo(66, 188, 120, 136); + path.lineTo(36, 148); + + path.rect(5, 170, 20, 25); + + path.moveTo(150, 180); + path.arcTo(150, 100, 50, 200, 20); + path.lineTo(160, 160); + + path.moveTo(20, 120); + path.arc(20, 120, 18, 0, 1.75 * Math.PI); + path.lineTo(20, 120); + + path.moveTo(150, 5); + path.ellipse(130, 25, 30, 10, -1*Math.PI/8, Math.PI/6, 1.5*Math.PI) + + ctx.lineWidth = 2; + ctx.scale(3.0, 3.0); + ctx.stroke(path); + ctx.stroke(clock); + }); + }); // end describe('Path2D API') +}); diff --git a/third_party/skia/modules/canvaskit/tests/bazel/canvas_test.js b/third_party/skia/modules/canvaskit/tests/bazel/canvas_test.js new file mode 100644 index 000000000000..0d2e6380bdd9 --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/canvas_test.js @@ -0,0 +1,944 @@ +describe('Canvas Behavior', () => { + let container; + + beforeEach(async () => { + await EverythingLoaded; + container = document.createElement('div'); + container.innerHTML = ` + + `; + document.body.appendChild(container); + }); + + afterEach(() => { + document.body.removeChild(container); + }); + + gm('canvas_api_example', (canvas) => { + const paint = new CanvasKit.Paint(); + paint.setStrokeWidth(2.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(0, 0, 0, 1.0)); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + canvas.drawLine(3, 10, 30, 15, paint); + const rrect = CanvasKit.RRectXY([5, 35, 45, 80], 15, 10); + canvas.drawRRect(rrect, paint); + + canvas.drawOval(CanvasKit.LTRBRect(5, 35, 45, 80), paint); + + canvas.drawArc(CanvasKit.LTRBRect(55, 35, 95, 80), 15, 270, true, paint); + + const font = new CanvasKit.Font(null, 20); + canvas.drawText('this is ascii text', 5, 100, paint, font); + + const blob = CanvasKit.TextBlob.MakeFromText('Unicode chars 💩 é É ص', font); + canvas.drawTextBlob(blob, 5, 130, paint); + + font.delete(); + blob.delete(); + paint.delete(); + // See canvas2d for more API tests + }); + + gm('effect_and_text_example', (canvas) => { + const path = starPath(CanvasKit); + const paint = new CanvasKit.Paint(); + + const textPaint = new CanvasKit.Paint(); + textPaint.setColor(CanvasKit.Color(40, 0, 0, 1.0)); + textPaint.setAntiAlias(true); + + const textFont = new CanvasKit.Font(null, 30); + + const dpe = CanvasKit.PathEffect.MakeDash([15, 5, 5, 10], 1); + + paint.setPathEffect(dpe); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(5.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(66, 129, 164, 1.0)); + + canvas.clear(CanvasKit.Color(255, 255, 255, 1.0)); + + canvas.drawPath(path, paint); + canvas.drawText('This is text', 10, 280, textPaint, textFont); + + dpe.delete(); + path.delete(); + paint.delete(); + textFont.delete(); + textPaint.delete(); + }); + + gm('patheffects_canvas', (canvas) => { + canvas.clear(CanvasKit.WHITE); + const path = starPath(CanvasKit, 100, 100, 100); + const paint = new CanvasKit.Paint(); + + const cornerEffect = CanvasKit.PathEffect.MakeCorner(10); + const discreteEffect = CanvasKit.PathEffect.MakeDiscrete(5, 10, 0); + + paint.setPathEffect(cornerEffect); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(5.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(66, 129, 164, 1.0)); + canvas.drawPath(path, paint); + + canvas.translate(200, 0); + + paint.setPathEffect(discreteEffect); + canvas.drawPath(path, paint); + + cornerEffect.delete(); + path.delete(); + paint.delete(); + }); + + it('returns the depth of the save state stack', () => { + const canvas = new CanvasKit.Canvas(); + expect(canvas.getSaveCount()).toEqual(1); + canvas.save(); + canvas.save(); + canvas.restore(); + canvas.save(); + canvas.save(); + expect(canvas.getSaveCount()).toEqual(4); + // does nothing, by the SkCanvas API + canvas.restoreToCount(500); + expect(canvas.getSaveCount()).toEqual(4); + canvas.restore(); + expect(canvas.getSaveCount()).toEqual(3); + canvas.save(); + canvas.restoreToCount(2); + expect(canvas.getSaveCount()).toEqual(2); + }); + + gm('circle_canvas', (canvas) => { + const path = starPath(CanvasKit); + + const paint = new CanvasKit.Paint(); + + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(5.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.CYAN); + + canvas.clear(CanvasKit.WHITE); + + canvas.drawCircle(30, 50, 15, paint); + + paint.setStyle(CanvasKit.PaintStyle.Fill); + paint.setColor(CanvasKit.RED); + canvas.drawCircle(130, 80, 60, paint); + canvas.drawCircle(20, 150, 60, paint); + + path.delete(); + paint.delete(); + }); + + gm('rrect_canvas', (canvas) => { + const path = starPath(CanvasKit); + + const paint = new CanvasKit.Paint(); + + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(3.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.BLACK); + + canvas.clear(CanvasKit.WHITE); + + canvas.drawRRect(CanvasKit.RRectXY( + CanvasKit.LTRBRect(10, 10, 50, 50), 5, 10), paint); + + canvas.drawRRect(CanvasKit.RRectXY( + CanvasKit.LTRBRect(60, 10, 110, 50), 10, 5), paint); + + canvas.drawRRect(CanvasKit.RRectXY( + CanvasKit.LTRBRect(10, 60, 210, 260), 0, 30), paint); + + canvas.drawRRect(CanvasKit.RRectXY( + CanvasKit.LTRBRect(50, 90, 160, 210), 30, 30), paint); + + path.delete(); + paint.delete(); + }); + + gm('rrect_8corners_canvas', (canvas) => { + const path = starPath(CanvasKit); + + const paint = new CanvasKit.Paint(); + + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(3.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.BLACK); + + canvas.clear(CanvasKit.WHITE); + + canvas.drawRRect([10, 10, 210, 210, + // top left corner, going clockwise + 10, 30, + 30, 10, + 50, 75, + 120, 120, + ], paint); + + path.delete(); + paint.delete(); + }); + + // As above, except with the array passed in via malloc'd memory. + gm('rrect_8corners_malloc_canvas', (canvas) => { + const path = starPath(CanvasKit); + + const paint = new CanvasKit.Paint(); + + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(3.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.BLACK); + + canvas.clear(CanvasKit.WHITE); + + const rrect = CanvasKit.Malloc(Float32Array, 12); + rrect.toTypedArray().set([10, 10, 210, 210, + // top left corner, going clockwise + 10, 30, + 30, 10, + 50, 75, + 120, 120, + ]); + + canvas.drawRRect(rrect, paint); + + CanvasKit.Free(rrect); + path.delete(); + paint.delete(); + }); + + gm('drawDRRect_canvas', (canvas) => { + const path = starPath(CanvasKit); + + const paint = new CanvasKit.Paint(); + + paint.setStyle(CanvasKit.PaintStyle.Fill); + paint.setStrokeWidth(3.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.BLACK); + + canvas.clear(CanvasKit.WHITE); + + const outer = CanvasKit.RRectXY(CanvasKit.LTRBRect(10, 60, 210, 260), 10, 5); + const inner = CanvasKit.RRectXY(CanvasKit.LTRBRect(50, 90, 160, 210), 30, 30); + + canvas.drawDRRect(outer, inner, paint); + + path.delete(); + paint.delete(); + }); + + gm('colorfilters_canvas', (canvas) => { + const paint = new CanvasKit.Paint(); + + const blue = CanvasKit.ColorFilter.MakeBlend( + CanvasKit.BLUE, CanvasKit.BlendMode.SrcIn); + const red = CanvasKit.ColorFilter.MakeBlend( + CanvasKit.Color(255, 0, 0, 0.8), CanvasKit.BlendMode.SrcOver); + const lerp = CanvasKit.ColorFilter.MakeLerp(0.6, red, blue); + + paint.setStyle(CanvasKit.PaintStyle.Fill); + paint.setAntiAlias(true); + + canvas.clear(CanvasKit.Color(230, 230, 230)); + + paint.setColorFilter(blue) + canvas.drawRect(CanvasKit.LTRBRect(10, 10, 60, 60), paint); + paint.setColorFilter(lerp) + canvas.drawRect(CanvasKit.LTRBRect(50, 10, 100, 60), paint); + paint.setColorFilter(red) + canvas.drawRect4f(90, 10, 140, 60, paint); + + const r = CanvasKit.ColorMatrix.rotated(0, .707, -.707); + const b = CanvasKit.ColorMatrix.rotated(2, .5, .866); + const s = CanvasKit.ColorMatrix.scaled(0.9, 1.5, 0.8, 0.8); + let cm = CanvasKit.ColorMatrix.concat(r, s); + cm = CanvasKit.ColorMatrix.concat(cm, b); + CanvasKit.ColorMatrix.postTranslate(cm, 20, 0, -10, 0); + + const mat = CanvasKit.ColorFilter.MakeMatrix(cm); + const final = CanvasKit.ColorFilter.MakeCompose(mat, lerp); + + paint.setColorFilter(final) + canvas.drawRect(CanvasKit.LTRBRect(10, 70, 140, 120), paint); + + paint.delete(); + blue.delete(); + red.delete(); + lerp.delete(); + final.delete(); + }); + + gm('blendmodes_canvas', (canvas) => { + canvas.clear(CanvasKit.WHITE); + + const blendModeNames = Object.keys(CanvasKit.BlendMode).filter((key) => key !== 'values'); + + const PASTEL_MUSTARD_YELLOW = CanvasKit.Color(248, 213, 85, 1.0); + const PASTEL_SKY_BLUE = CanvasKit.Color(74, 174, 245, 1.0); + + const shapePaint = new CanvasKit.Paint(); + shapePaint.setColor(PASTEL_MUSTARD_YELLOW); + shapePaint.setAntiAlias(true); + + const textPaint = new CanvasKit.Paint(); + textPaint.setAntiAlias(true); + + const textFont = new CanvasKit.Font(null, 10); + + let x = 10; + let y = 20; + for (const blendModeName of blendModeNames) { + // Draw a checkerboard for each blend mode. + // Each checkerboard is labelled with a blendmode's name. + canvas.drawText(blendModeName, x, y - 5, textPaint, textFont); + drawCheckerboard(canvas, x, y, x + 80, y + 80); + + // A blue square is drawn on to each checkerboard with yellow circle. + // In each checkerboard the blue square is drawn using a different blendmode. + const blendMode = CanvasKit.BlendMode[blendModeName]; + canvas.drawOval(CanvasKit.LTRBRect(x + 5, y + 5, x + 55, y + 55), shapePaint); + drawRectangle(x + 30, y + 30, x + 70, y + 70, PASTEL_SKY_BLUE, blendMode); + + x += 90; + if (x > 500) { + x = 10; + y += 110; + } + } + + function drawCheckerboard(canvas, x1, y1, x2, y2) { + const CHECKERBOARD_SQUARE_SIZE = 5; + const GREY = CanvasKit.Color(220, 220, 220, 0.5); + // Draw black border and white background for checkerboard + drawRectangle(x1-1, y1-1, x2+1, y2+1, CanvasKit.BLACK); + drawRectangle(x1, y1, x2, y2, CanvasKit.WHITE); + + // Draw checkerboard squares + const numberOfColumns = (x2 - x1) / CHECKERBOARD_SQUARE_SIZE; + const numberOfRows = (y2 - y1) / CHECKERBOARD_SQUARE_SIZE + + for (let row = 0; row < numberOfRows; row++) { + for (let column = 0; column < numberOfColumns; column++) { + const rowIsEven = row % 2 === 0; + const columnIsEven = column % 2 === 0; + + if ((rowIsEven && !columnIsEven) || (!rowIsEven && columnIsEven)) { + drawRectangle( + x1 + CHECKERBOARD_SQUARE_SIZE * row, + y1 + CHECKERBOARD_SQUARE_SIZE * column, + Math.min(x1 + CHECKERBOARD_SQUARE_SIZE * row + CHECKERBOARD_SQUARE_SIZE, x2), + Math.min(y1 + CHECKERBOARD_SQUARE_SIZE * column + CHECKERBOARD_SQUARE_SIZE, y2), + GREY + ); + } + } + } + } + + function drawRectangle(x1, y1, x2, y2, color, blendMode=CanvasKit.BlendMode.srcOver) { + canvas.save(); + canvas.clipRect(CanvasKit.LTRBRect(x1, y1, x2, y2), CanvasKit.ClipOp.Intersect, true); + canvas.drawColor(color, blendMode); + canvas.restore(); + } + }); + + gm('colorfilters_malloc_canvas', (canvas) => { + const paint = new CanvasKit.Paint(); + + const src = [ + 0.8, 0.45, 2, 0, 20, + 0.53, -0.918, 0.566, 0, 0, + 0.53, -0.918, -0.566, 0, -10, + 0, 0, 0, 0.8, 0, + ] + const colorObj = new CanvasKit.Malloc(Float32Array, 20); + const cm = colorObj.toTypedArray(); + for (i in src) { + cm[i] = src[i]; + } + // MakeMatrix will free the malloc'd array when it is done with it. + const final = CanvasKit.ColorFilter.MakeMatrix(cm); + + paint.setColorFilter(final) + canvas.drawRect(CanvasKit.LTRBRect(10, 70, 140, 120), paint); + + CanvasKit.Free(colorObj); + paint.delete(); + final.delete(); + }); + + gm('clips_canvas', (canvas) => { + const path = starPath(CanvasKit); + const paint = new CanvasKit.Paint(); + paint.setColor(CanvasKit.BLUE); + const rrect = CanvasKit.RRectXY(CanvasKit.LTRBRect(300, 300, 500, 500), 40, 40); + + canvas.save(); + // draw magenta around the outside edge of an rrect. + canvas.clipRRect(rrect, CanvasKit.ClipOp.Difference, true); + canvas.drawColorComponents(250/255, 30/255, 240/255, 0.9, CanvasKit.BlendMode.SrcOver); + canvas.restore(); + + // draw grey inside of a star pattern, then the blue star on top + canvas.clipPath(path, CanvasKit.ClipOp.Intersect, false); + canvas.drawColorInt(CanvasKit.ColorAsInt(200, 200, 200, 255), CanvasKit.BlendMode.SrcOver); + canvas.drawPath(path, paint); + + path.delete(); + paint.delete(); + }); + + // inspired by https://fiddle.skia.org/c/feb2a08bb09ede5309678d6a0ab3f981 + gm('savelayer_rect_paint_canvas', (canvas) => { + canvas.clear(CanvasKit.WHITE); + const redPaint = new CanvasKit.Paint(); + redPaint.setColor(CanvasKit.RED); + const solidBluePaint = new CanvasKit.Paint(); + solidBluePaint.setColor(CanvasKit.BLUE); + + const thirtyBluePaint = new CanvasKit.Paint(); + thirtyBluePaint.setColor(CanvasKit.BLUE); + thirtyBluePaint.setAlphaf(0.3); + + const alpha = new CanvasKit.Paint(); + alpha.setAlphaf(0.3); + + // Draw 4 solid red rectangles on the 0th layer. + canvas.drawRect(CanvasKit.LTRBRect(10, 10, 60, 60), redPaint); + canvas.drawRect(CanvasKit.LTRBRect(150, 10, 200, 60), redPaint); + canvas.drawRect(CanvasKit.LTRBRect(10, 70, 60, 120), redPaint); + canvas.drawRect(CanvasKit.LTRBRect(150, 70, 200, 120), redPaint); + + // Draw 2 blue rectangles that overlap. One is solid, the other + // is 30% transparent. We should see purple from the right one, + // the left one overlaps the red because it is opaque. + canvas.drawRect(CanvasKit.LTRBRect(30, 10, 80, 60), solidBluePaint); + canvas.drawRect(CanvasKit.LTRBRect(170, 10, 220, 60), thirtyBluePaint); + + // Save a new layer. When the 1st layer gets merged onto the + // 0th layer (i.e. when restore() is called), it will use the provided + // paint to do so. The provided paint is set to have 30% opacity, but + // it could also have things set like blend modes or image filters. + // The rectangle is just a hint, so I've set it to be the area that + // we actually draw in before restore is called. It could also be omitted, + // see the test below. + canvas.saveLayer(alpha, CanvasKit.LTRBRect(10, 10, 220, 180)); + + // Draw the same blue overlapping rectangles as before. Notice in the + // final output, we have two different shades of purple instead of the + // solid blue overwriting the red. This proves the opacity was applied. + canvas.drawRect(CanvasKit.LTRBRect(30, 70, 80, 120), solidBluePaint); + canvas.drawRect(CanvasKit.LTRBRect(170, 70, 220, 120), thirtyBluePaint); + + // We draw two more sets of overlapping red and blue rectangles. Notice + // the solid blue overwrites the red. This proves that the opacity from + // the alpha paint isn't available when the drawing happens - it only + // matters when restore() is called. + canvas.drawRect(CanvasKit.LTRBRect(10, 130, 60, 180), redPaint); + canvas.drawRect(CanvasKit.LTRBRect(30, 130, 80, 180), solidBluePaint); + + canvas.drawRect(CanvasKit.LTRBRect(150, 130, 200, 180), redPaint); + canvas.drawRect(CanvasKit.LTRBRect(170, 130, 220, 180), thirtyBluePaint); + + canvas.restore(); + + redPaint.delete(); + solidBluePaint.delete(); + thirtyBluePaint.delete(); + alpha.delete(); + }); + + // identical to the test above, except the save layer only has the paint, not + // the rectangle. + gm('savelayer_paint_canvas', (canvas) => { + canvas.clear(CanvasKit.WHITE); + const redPaint = new CanvasKit.Paint(); + redPaint.setColor(CanvasKit.RED); + const solidBluePaint = new CanvasKit.Paint(); + solidBluePaint.setColor(CanvasKit.BLUE); + + const thirtyBluePaint = new CanvasKit.Paint(); + thirtyBluePaint.setColor(CanvasKit.BLUE); + thirtyBluePaint.setAlphaf(0.3); + + const alpha = new CanvasKit.Paint(); + alpha.setAlphaf(0.3); + + // Draw 4 solid red rectangles on the 0th layer. + canvas.drawRect(CanvasKit.LTRBRect(10, 10, 60, 60), redPaint); + canvas.drawRect(CanvasKit.LTRBRect(150, 10, 200, 60), redPaint); + canvas.drawRect(CanvasKit.LTRBRect(10, 70, 60, 120), redPaint); + canvas.drawRect(CanvasKit.LTRBRect(150, 70, 200, 120), redPaint); + + // Draw 2 blue rectangles that overlap. One is solid, the other + // is 30% transparent. We should see purple from the right one, + // the left one overlaps the red because it is opaque. + canvas.drawRect(CanvasKit.LTRBRect(30, 10, 80, 60), solidBluePaint); + canvas.drawRect(CanvasKit.LTRBRect(170, 10, 220, 60), thirtyBluePaint); + + // Save a new layer. When the 1st layer gets merged onto the + // 0th layer (i.e. when restore() is called), it will use the provided + // paint to do so. The provided paint is set to have 30% opacity, but + // it could also have things set like blend modes or image filters. + canvas.saveLayerPaint(alpha); + + // Draw the same blue overlapping rectangles as before. Notice in the + // final output, we have two different shades of purple instead of the + // solid blue overwriting the red. This proves the opacity was applied. + canvas.drawRect(CanvasKit.LTRBRect(30, 70, 80, 120), solidBluePaint); + canvas.drawRect(CanvasKit.LTRBRect(170, 70, 220, 120), thirtyBluePaint); + + // We draw two more sets of overlapping red and blue rectangles. Notice + // the solid blue overwrites the red. This proves that the opacity from + // the alpha paint isn't available when the drawing happens - it only + // matters when restore() is called. + canvas.drawRect(CanvasKit.LTRBRect(10, 130, 60, 180), redPaint); + canvas.drawRect(CanvasKit.LTRBRect(30, 130, 80, 180), solidBluePaint); + + canvas.drawRect(CanvasKit.LTRBRect(150, 130, 200, 180), redPaint); + canvas.drawRect(CanvasKit.LTRBRect(170, 130, 220, 180), thirtyBluePaint); + + canvas.restore(); + + redPaint.delete(); + solidBluePaint.delete(); + thirtyBluePaint.delete(); + alpha.delete(); + }); + + gm('savelayerrec_canvas', (canvas) => { + // Note: fiddle.skia.org quietly draws a white background before doing + // other things, which is noticed in cases like this where we use saveLayer + // with the rec struct. + canvas.clear(CanvasKit.WHITE); + canvas.scale(8, 8); + const redPaint = new CanvasKit.Paint(); + redPaint.setColor(CanvasKit.RED); + redPaint.setAntiAlias(true); + canvas.drawCircle(21, 21, 8, redPaint); + + const bluePaint = new CanvasKit.Paint(); + bluePaint.setColor(CanvasKit.BLUE); + canvas.drawCircle(31, 21, 8, bluePaint); + + const blurIF = CanvasKit.ImageFilter.MakeBlur(8, 0.2, CanvasKit.TileMode.Decal, null); + + const count = canvas.saveLayer(null, null, blurIF, 0); + expect(count).toEqual(1); + canvas.scale(1/4, 1/4); + canvas.drawCircle(125, 85, 8, redPaint); + canvas.restore(); + + blurIF.delete(); + redPaint.delete(); + bluePaint.delete(); + }); + + gm('drawpoints_canvas', (canvas) => { + canvas.clear(CanvasKit.WHITE); + const paint = new CanvasKit.Paint(); + paint.setAntiAlias(true); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(10); + paint.setColor(CanvasKit.Color(153, 204, 162, 0.82)); + + const points = [32, 16, 48, 48, 16, 32]; + + const caps = [CanvasKit.StrokeCap.Round, CanvasKit.StrokeCap.Square, + CanvasKit.StrokeCap.Butt]; + const joins = [CanvasKit.StrokeJoin.Round, CanvasKit.StrokeJoin.Miter, + CanvasKit.StrokeJoin.Bevel]; + const modes = [CanvasKit.PointMode.Points, CanvasKit.PointMode.Lines, + CanvasKit.PointMode.Polygon]; + + for (let i = 0; i < caps.length; i++) { + paint.setStrokeCap(caps[i]); + paint.setStrokeJoin(joins[i]); + + for (const m of modes) { + canvas.drawPoints(m, points, paint); + canvas.translate(64, 0); + } + // Try with the malloc approach. Note that the drawPoints + // will free the pointer when done. + const mPointsObj = CanvasKit.Malloc(Float32Array, 3*2); + const mPoints = mPointsObj.toTypedArray(); + mPoints.set([32, 16, 48, 48, 16, 32]); + + // The obj from Malloc can be passed in instead of the typed array. + canvas.drawPoints(CanvasKit.PointMode.Polygon, mPointsObj, paint); + canvas.translate(-192, 64); + CanvasKit.Free(mPointsObj); + } + + paint.delete(); + }); + + gm('drawPoints in different modes', (canvas) => { + canvas.clear(CanvasKit.WHITE); + // From https://bugs.chromium.org/p/skia/issues/detail?id=11012 + const boxPaint = new CanvasKit.Paint(); + boxPaint.setStyle(CanvasKit.PaintStyle.Stroke); + boxPaint.setStrokeWidth(1); + + const paint = new CanvasKit.Paint(); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(5); + paint.setStrokeCap(CanvasKit.StrokeCap.Round); + paint.setColorInt(0xFF0000FF); // Blue + paint.setAntiAlias(true); + + const points = Float32Array.of(40, 40, 80, 40, 120, 80, 160, 80); + + canvas.drawRect(CanvasKit.LTRBRect(35, 35, 165, 85), boxPaint); + canvas.drawPoints(CanvasKit.PointMode.Points, points, paint); + + canvas.translate(0, 50); + canvas.drawRect(CanvasKit.LTRBRect(35, 35, 165, 85), boxPaint); + canvas.drawPoints(CanvasKit.PointMode.Lines, points, paint); + + canvas.translate(0, 50); + canvas.drawRect(CanvasKit.LTRBRect(35, 35, 165, 85), boxPaint); + canvas.drawPoints(CanvasKit.PointMode.Polygon, points, paint); + + // The control version using drawPath + canvas.translate(0, 50); + canvas.drawRect(CanvasKit.LTRBRect(35, 35, 165, 85), boxPaint); + const path = new CanvasKit.Path(); + path.moveTo(40, 40); + path.lineTo(80, 40); + path.lineTo(120, 80); + path.lineTo(160, 80); + paint.setColorInt(0xFFFF0000); // RED + canvas.drawPath(path, paint); + + paint.delete(); + path.delete(); + boxPaint.delete(); + }); + + gm('drawImageNine_canvas', (canvas, fetchedByteBuffers) => { + const img = CanvasKit.MakeImageFromEncoded(fetchedByteBuffers[0]); + expect(img).toBeTruthy(); + + canvas.clear(CanvasKit.WHITE); + const paint = new CanvasKit.Paint(); + + canvas.drawImageNine(img, CanvasKit.LTRBiRect(40, 40, 400, 300), + CanvasKit.LTRBRect(5, 5, 300, 650), CanvasKit.FilterMode.Nearest, paint); + paint.delete(); + img.delete(); + }, '/assets/mandrill_512.png'); + + // This should be a nice, clear image. + gm('makeImageShaderCubic_canvas', (canvas, fetchedByteBuffers) => { + const img = CanvasKit.MakeImageFromEncoded(fetchedByteBuffers[0]); + expect(img).toBeTruthy(); + + canvas.clear(CanvasKit.WHITE); + const paint = new CanvasKit.Paint(); + const shader = img.makeShaderCubic(CanvasKit.TileMode.Decal, CanvasKit.TileMode.Clamp, + 1/3 /*B*/, 1/3 /*C*/, + CanvasKit.Matrix.rotated(0.1)); + paint.setShader(shader); + + canvas.drawPaint(paint); + paint.delete(); + shader.delete(); + img.delete(); + }, '/assets/mandrill_512.png'); + + // This will look more blocky than the version above. + gm('makeImageShaderOptions_canvas', (canvas, fetchedByteBuffers) => { + const img = CanvasKit.MakeImageFromEncoded(fetchedByteBuffers[0]); + expect(img).toBeTruthy(); + const imgWithMipMap = img.makeCopyWithDefaultMipmaps(); + + canvas.clear(CanvasKit.WHITE); + const paint = new CanvasKit.Paint(); + const shader = imgWithMipMap.makeShaderOptions(CanvasKit.TileMode.Decal, + CanvasKit.TileMode.Clamp, + CanvasKit.FilterMode.Nearest, + CanvasKit.MipmapMode.Linear, + CanvasKit.Matrix.rotated(0.1)); + paint.setShader(shader); + + canvas.drawPaint(paint); + paint.delete(); + shader.delete(); + img.delete(); + imgWithMipMap.delete(); + }, '/assets/mandrill_512.png'); + + gm('drawvertices_canvas', (canvas) => { + const paint = new CanvasKit.Paint(); + paint.setAntiAlias(true); + + const points = [0, 0, 250, 0, 100, 100, 0, 250]; + // 2d float color array + const colors = [CanvasKit.RED, CanvasKit.BLUE, + CanvasKit.YELLOW, CanvasKit.CYAN]; + const vertices = CanvasKit.MakeVertices(CanvasKit.VertexMode.TriangleFan, + points, null /*textureCoordinates*/, colors, false /*isVolatile*/); + + const bounds = vertices.bounds(); + expect(bounds).toEqual(CanvasKit.LTRBRect(0, 0, 250, 250)); + + canvas.drawVertices(vertices, CanvasKit.BlendMode.Dst, paint); + vertices.delete(); + paint.delete(); + }); + + gm('drawvertices_canvas_flat_floats', (canvas) => { + const paint = new CanvasKit.Paint(); + paint.setAntiAlias(true); + + const points = [0, 0, 250, 0, 100, 100, 0, 250]; + // 1d float color array + const colors = Float32Array.of(...CanvasKit.RED, ...CanvasKit.BLUE, + ...CanvasKit.YELLOW, ...CanvasKit.CYAN); + const vertices = CanvasKit.MakeVertices(CanvasKit.VertexMode.TriangleFan, + points, null /*textureCoordinates*/, colors, false /*isVolatile*/); + + const bounds = vertices.bounds(); + expect(bounds).toEqual(CanvasKit.LTRBRect(0, 0, 250, 250)); + + canvas.drawVertices(vertices, CanvasKit.BlendMode.Dst, paint); + vertices.delete(); + paint.delete(); + }); + + gm('drawvertices_texture_canvas', (canvas, fetchedByteBuffers) => { + const img = CanvasKit.MakeImageFromEncoded(fetchedByteBuffers[0]); + + const paint = new CanvasKit.Paint(); + paint.setAntiAlias(true); + + const points = [ + 70, 170, 40, 90, 130, 150, 100, 50, + 225, 150, 225, 60, 310, 180, 330, 100, + ]; + const textureCoordinates = [ + 0, 240, 0, 0, 80, 240, 80, 0, + 160, 240, 160, 0, 240, 240, 240, 0, + ]; + const vertices = CanvasKit.MakeVertices(CanvasKit.VertexMode.TrianglesStrip, + points, textureCoordinates, null /* colors */, false /*isVolatile*/); + + const shader = img.makeShaderCubic(CanvasKit.TileMode.Repeat, CanvasKit.TileMode.Mirror, + 1/3 /*B*/, 1/3 /*C*/,); + paint.setShader(shader); + canvas.drawVertices(vertices, CanvasKit.BlendMode.Src, paint); + + shader.delete(); + vertices.delete(); + paint.delete(); + img.delete(); + }, '/assets/brickwork-texture.jpg'); + + it('can change the 3x3 matrix on the canvas and read it back', () => { + const canvas = new CanvasKit.Canvas(); + + let matr = canvas.getTotalMatrix(); + expect(matr).toEqual(CanvasKit.Matrix.identity()); + + // This fills the internal _scratch4x4MatrixPtr with garbage (aka sentinel) values to + // make sure the 3x3 matrix properly sets these to 0 when it uses the same buffer. + canvas.save(); + const garbageMatrix = new Float32Array(16); + garbageMatrix.fill(-3); + canvas.concat(garbageMatrix); + canvas.restore(); + + canvas.concat(CanvasKit.Matrix.rotated(Math.PI/4)); + const d = new DOMMatrix().translate(20, 10); + canvas.concat(d); + + matr = canvas.getTotalMatrix(); + const expected = CanvasKit.Matrix.multiply( + CanvasKit.Matrix.rotated(Math.PI/4), + CanvasKit.Matrix.translated(20, 10) + ); + expect3x3MatricesToMatch(expected, matr); + + // The 3x3 should be expanded into a 4x4, with 0s in the 3rd row and column. + matr = canvas.getLocalToDevice(); + expect4x4MatricesToMatch([ + 0.707106, -0.707106, 0, 7.071067, + 0.707106, 0.707106, 0, 21.213203, + 0 , 0 , 0, 0 , + 0 , 0 , 0, 1 ], matr); + }); + + it('can accept a 3x2 matrix', () => { + const canvas = new CanvasKit.Canvas(); + + let matr = canvas.getTotalMatrix(); + expect(matr).toEqual(CanvasKit.Matrix.identity()); + + // This fills the internal _scratch4x4MatrixPtr with garbage (aka sentinel) values to + // make sure the 3x2 matrix properly sets these to 0 when it uses the same buffer. + canvas.save(); + const garbageMatrix = new Float32Array(16); + garbageMatrix.fill(-3); + canvas.concat(garbageMatrix); + canvas.restore(); + + canvas.concat([1.4, -0.2, 12, + 0.2, 1.4, 24]); + + matr = canvas.getTotalMatrix(); + const expected = [1.4, -0.2, 12, + 0.2, 1.4, 24, + 0, 0, 1]; + expect3x3MatricesToMatch(expected, matr); + + // The 3x2 should be expanded into a 4x4, with 0s in the 3rd row and column + // and the perspective filled in. + matr = canvas.getLocalToDevice(); + expect4x4MatricesToMatch([ + 1.4, -0.2, 0, 12, + 0.2, 1.4, 0, 24, + 0 , 0 , 0, 0, + 0 , 0 , 0, 1], matr); + }); + + it('can change the 4x4 matrix on the canvas and read it back', () => { + const canvas = new CanvasKit.Canvas(); + + let matr = canvas.getLocalToDevice(); + expect(matr).toEqual(CanvasKit.M44.identity()); + + canvas.concat(CanvasKit.M44.rotated([0, 1, 0], Math.PI/4)); + canvas.concat(CanvasKit.M44.rotated([1, 0, 1], Math.PI/8)); + + const expected = CanvasKit.M44.multiply( + CanvasKit.M44.rotated([0, 1, 0], Math.PI/4), + CanvasKit.M44.rotated([1, 0, 1], Math.PI/8), + ); + + expect4x4MatricesToMatch(expected, canvas.getLocalToDevice()); + // TODO(kjlubick) add test for DOMMatrix + // TODO(nifong) add more involved test for camera-related math. + }); + + gm('concat_with4x4_canvas', (canvas) => { + const path = starPath(CanvasKit, CANVAS_WIDTH/2, CANVAS_HEIGHT/2); + const paint = new CanvasKit.Paint(); + paint.setAntiAlias(true); + canvas.clear(CanvasKit.WHITE); + + // Rotate it a bit on all 3 major axis, centered on the screen. + // To play with rotations, see https://jsfiddle.skia.org/canvaskit/0525300405796aa87c3b84cc0d5748516fca0045d7d6d9c7840710ab771edcd4 + const turn = CanvasKit.M44.multiply( + CanvasKit.M44.translated([CANVAS_WIDTH/2, 0, 0]), + CanvasKit.M44.rotated([1, 0, 0], Math.PI/3), + CanvasKit.M44.rotated([0, 1, 0], Math.PI/4), + CanvasKit.M44.rotated([0, 0, 1], Math.PI/16), + CanvasKit.M44.translated([-CANVAS_WIDTH/2, 0, 0]), + ); + canvas.concat(turn); + + // Draw some stripes to help the eye detect the turn + const stripeWidth = 10; + paint.setColor(CanvasKit.BLACK); + for (let i = 0; i < CANVAS_WIDTH; i += 2*stripeWidth) { + canvas.drawRect(CanvasKit.LTRBRect(i, 0, i + stripeWidth, CANVAS_HEIGHT), paint); + } + + paint.setColor(CanvasKit.YELLOW); + canvas.drawPath(path, paint); + paint.delete(); + path.delete(); + }); + + gm('particles_canvas', (canvas) => { + const curveParticles = { + 'MaxCount': 1000, + 'Drawable': { + 'Type': 'SkCircleDrawable', + 'Radius': 2 + }, + 'Code': [ + `void effectSpawn(inout Effect effect) { + effect.rate = 200; + effect.color = float4(1, 0, 0, 1); + } + void spawn(inout Particle p) { + p.lifetime = 3 + rand(p.seed); + p.vel.y = -50; + } + + void update(inout Particle p) { + float w = mix(15, 3, p.age); + p.pos.x = sin(radians(p.age * 320)) * mix(25, 10, p.age) + mix(-w, w, rand(p.seed)); + if (rand(p.seed) < 0.5) { p.pos.x = -p.pos.x; } + + p.color.g = (mix(75, 220, p.age) + mix(-30, 30, rand(p.seed))) / 255; + }` + ], + 'Bindings': [] + }; + + const particles = CanvasKit.MakeParticles(JSON.stringify(curveParticles)); + particles.start(0, true); + particles.setPosition([0, 0]); + + const paint = new CanvasKit.Paint(); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.WHITE); + const font = new CanvasKit.Font(null, 12); + + canvas.clear(CanvasKit.BLACK); + + // Draw a 5x5 set of different times in the particle system + // like a filmstrip of motion of particles. + const LEFT_MARGIN = 90; + const TOP_MARGIN = 100; + for (let row = 0; row < 5; row++) { + for (let column = 0; column < 5; column++) { + canvas.save(); + canvas.translate(LEFT_MARGIN + column*100, TOP_MARGIN + row*100); + + // Time moves in row-major order in increments of 0.02. + const particleTime = row/10 + column/50; + + canvas.drawText('time ' + particleTime.toFixed(2), -30, 20, paint, font); + particles.update(particleTime); + + particles.draw(canvas); + canvas.restore(); + } + } + }); +}); + +const expect3x3MatricesToMatch = (expected, actual) => { + expect(expected.length).toEqual(9); + expect(actual.length).toEqual(9); + for (let i = 0; i < expected.length; i++) { + expect(expected[i]).toBeCloseTo(actual[i], 5); + } +}; + +const expect4x4MatricesToMatch = (expected, actual) => { + expect(expected.length).toEqual(16); + expect(actual.length).toEqual(16); + for (let i = 0; i < expected.length; i++) { + expect(expected[i]).toBeCloseTo(actual[i], 5); + } +}; diff --git a/third_party/skia/modules/canvaskit/tests/bazel/canvaskitinit.js b/third_party/skia/modules/canvaskit/tests/bazel/canvaskitinit.js new file mode 100644 index 000000000000..8d2f14a097a6 --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/canvaskitinit.js @@ -0,0 +1,34 @@ +// The increased timeout is especially needed with larger binaries +// like in the debug/gpu build +jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000; + +let CanvasKit = null; +const _LoadCanvasKit = new Promise((resolve, reject) => { + console.log('canvaskit loading', new Date()); + CanvasKitInit({ + locateFile: (file) => '/static/skia/modules/canvaskit/canvaskit_wasm/'+file, + }).then((loaded) => { + console.log('canvaskit loaded', new Date()); + CanvasKit = loaded; + resolve(); + }).catch((e) => { + console.error('canvaskit failed to load', new Date(), e); + reject(); + }); +}); + +const _TestReportServer = new Promise((resolve, reject) => { + fetch('/gold_rpc/healthz').then((resp) => { + if (resp.ok) { + resolve(); + return; + } + console.log('/healthz returned non 200 code') + reject(); + }).catch((e) => { + console.log('Server for reporting results was not up', e) + reject(); + }); +}); + +const EverythingLoaded = Promise.all([_LoadCanvasKit, _TestReportServer]); diff --git a/third_party/skia/modules/canvaskit/tests/bazel/core_test.js b/third_party/skia/modules/canvaskit/tests/bazel/core_test.js new file mode 100644 index 000000000000..694c47ae82ee --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/core_test.js @@ -0,0 +1,1605 @@ +describe('Core canvas behavior', () => { + let container; + + beforeEach(async () => { + await EverythingLoaded; + container = document.createElement('div'); + container.innerHTML = ` + + `; + document.body.appendChild(container); + }); + + afterEach(() => { + document.body.removeChild(container); + }); + + gm('picture_test', (canvas) => { + const spr = new CanvasKit.PictureRecorder(); + const bounds = CanvasKit.LTRBRect(0, 0, 400, 120); + const rcanvas = spr.beginRecording(bounds); + const paint = new CanvasKit.Paint(); + paint.setStrokeWidth(2.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(0, 0, 0, 1.0)); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + rcanvas.drawRRect(CanvasKit.RRectXY([5, 35, 45, 80], 15, 10), paint); + + const font = new CanvasKit.Font(null, 20); + rcanvas.drawText('this picture has a round rect', 5, 100, paint, font); + const pic = spr.finishRecordingAsPicture(); + spr.delete(); + paint.delete(); + + canvas.drawPicture(pic); + const paint2 = new CanvasKit.Paint(); + paint2.setColor(CanvasKit.RED); + paint2.setStyle(CanvasKit.PaintStyle.Stroke); + canvas.drawRect(bounds, paint2); + + const bytes = pic.serialize(); + expect(bytes).toBeTruthy(); + + + const matr = CanvasKit.Matrix.scaled(0.33, 0.33); + // Give a 5 pixel margin between the original content. + const tileRect = CanvasKit.LTRBRect(-5, -5, 405, 125); + const shader = pic.makeShader(CanvasKit.TileMode.Mirror, CanvasKit.TileMode.Mirror, + CanvasKit.FilterMode.Linear, matr, tileRect); + paint2.setStyle(CanvasKit.PaintStyle.Fill); + paint2.setShader(shader); + canvas.drawRect(CanvasKit.LTRBRect(0, 150, CANVAS_WIDTH, CANVAS_HEIGHT), paint2); + + paint2.delete(); + shader.delete(); + pic.delete(); + }); + + const uIntColorToCanvasKitColor = (c) => { + return CanvasKit.Color( + (c >> 16) & 0xFF, + (c >> 8) & 0xFF, + (c >> 0) & 0xFF, + ((c >> 24) & 0xFF) / 255 + ); + }; + + it('can compute tonal colors', () => { + const input = { + ambient: CanvasKit.BLUE, + spot: CanvasKit.RED, + }; + const out = CanvasKit.computeTonalColors(input); + expect(new Float32Array(out.ambient)).toEqual(CanvasKit.BLACK); + const expectedSpot = [0.173, 0, 0, 0.969]; + expect(out.spot.length).toEqual(4); + expect(out.spot[0]).toBeCloseTo(expectedSpot[0], 3); + expect(out.spot[1]).toBeCloseTo(expectedSpot[1], 3); + expect(out.spot[2]).toBeCloseTo(expectedSpot[2], 3); + expect(out.spot[3]).toBeCloseTo(expectedSpot[3], 3); + }); + + it('can compute tonal colors with malloced values', () => { + const ambientColor = CanvasKit.Malloc(Float32Array, 4); + ambientColor.toTypedArray().set(CanvasKit.BLUE); + const spotColor = CanvasKit.Malloc(Float32Array, 4); + spotColor.toTypedArray().set(CanvasKit.RED); + const input = { + ambient: ambientColor, + spot: spotColor, + }; + const out = CanvasKit.computeTonalColors(input); + expect(new Float32Array(out.ambient)).toEqual(CanvasKit.BLACK); + const expectedSpot = [0.173, 0, 0, 0.969]; + expect(out.spot.length).toEqual(4); + expect(out.spot[0]).toBeCloseTo(expectedSpot[0], 3); + expect(out.spot[1]).toBeCloseTo(expectedSpot[1], 3); + expect(out.spot[2]).toBeCloseTo(expectedSpot[2], 3); + expect(out.spot[3]).toBeCloseTo(expectedSpot[3], 3); + }); + + // This helper is used for all the MakeImageFromEncoded tests. + // TODO(kjlubick): rewrite this and callers to use gm + function decodeAndDrawSingleFrameImage(imgName, goldName, done) { + const imgPromise = fetch(imgName) + .then((response) => response.arrayBuffer()); + Promise.all([imgPromise, EverythingLoaded]).then((values) => { + const imgData = values[0]; + expect(imgData).toBeTruthy(); + catchException(done, () => { + let img = CanvasKit.MakeImageFromEncoded(imgData); + expect(img).toBeTruthy(); + const surface = CanvasKit.MakeCanvasSurface('test'); + expect(surface).toBeTruthy('Could not make surface'); + if (!surface) { + done(); + return; + } + const canvas = surface.getCanvas(); + let paint = new CanvasKit.Paint(); + canvas.drawImage(img, 0, 0, paint); + + paint.delete(); + img.delete(); + + reportSurface(surface, goldName, done); + })(); + }); + } + + it('can decode and draw a png', (done) => { + decodeAndDrawSingleFrameImage('/assets/mandrill_512.png', 'drawImage_png', done); + }); + + it('can decode and draw a jpg', (done) => { + decodeAndDrawSingleFrameImage('/assets/mandrill_h1v1.jpg', 'drawImage_jpg', done); + }); + + it('can decode and draw a (still) gif', (done) => { + decodeAndDrawSingleFrameImage('/assets/flightAnim.gif', 'drawImage_gif', done); + }); + + it('can decode and draw a still webp', (done) => { + decodeAndDrawSingleFrameImage('/assets/color_wheel.webp', 'drawImage_webp', done); + }); + + it('can readPixels from an Image', (done) => { + const imgPromise = fetch('/assets/mandrill_512.png') + .then((response) => response.arrayBuffer()); + Promise.all([imgPromise, EverythingLoaded]).then((values) => { + const imgData = values[0]; + expect(imgData).toBeTruthy(); + catchException(done, () => { + let img = CanvasKit.MakeImageFromEncoded(imgData); + expect(img).toBeTruthy(); + const imageInfo = { + alphaType: CanvasKit.AlphaType.Unpremul, + colorType: CanvasKit.ColorType.RGBA_8888, + colorSpace: CanvasKit.ColorSpace.SRGB, + width: img.width(), + height: img.height(), + }; + const rowBytes = 4 * img.width(); + + const pixels = img.readPixels(0, 0, imageInfo); + // We know the image is 512 by 512 pixels in size, each pixel + // requires 4 bytes (R, G, B, A). + expect(pixels.length).toEqual(512 * 512 * 4); + + // Make enough space for a 5x5 8888 surface (4 bytes for R, G, B, A) + const rdsData = CanvasKit.Malloc(Uint8Array, 512 * 5*512 * 4); + const pixels2 = rdsData.toTypedArray(); + pixels2[0] = 127; // sentinel value, should be overwritten by readPixels. + img.readPixels(0, 0, imageInfo, rdsData, rowBytes); + expect(rdsData.toTypedArray()[0]).toEqual(pixels[0]); + + img.delete(); + CanvasKit.Free(rdsData); + done(); + })(); + }); + }); + + gm('drawDrawable_animated_gif', (canvas, fetchedByteBuffers) => { + let aImg = CanvasKit.MakeAnimatedImageFromEncoded(fetchedByteBuffers[0]); + expect(aImg).toBeTruthy(); + expect(aImg.getRepetitionCount()).toEqual(-1); // infinite loop + expect(aImg.width()).toEqual(320); + expect(aImg.height()).toEqual(240); + expect(aImg.getFrameCount()).toEqual(60); + expect(aImg.currentFrameDuration()).toEqual(60); + + const drawCurrentFrame = function(x, y) { + let img = aImg.makeImageAtCurrentFrame(); + canvas.drawImage(img, x, y, null); + img.delete(); + } + + drawCurrentFrame(0, 0); + + let c = aImg.decodeNextFrame(); + expect(c).not.toEqual(-1); + drawCurrentFrame(300, 0); + for(let i = 0; i < 10; i++) { + c = aImg.decodeNextFrame(); + expect(c).not.toEqual(-1); + } + drawCurrentFrame(0, 300); + for(let i = 0; i < 10; i++) { + c = aImg.decodeNextFrame(); + expect(c).not.toEqual(-1); + } + drawCurrentFrame(300, 300); + + aImg.delete(); + }, '/assets/flightAnim.gif'); + + gm('exif_orientation', (canvas, fetchedByteBuffers) => { + canvas.clear(CanvasKit.WHITE); + const paint = new CanvasKit.Paint(); + const font = new CanvasKit.Font(null, 14); + canvas.drawText('The following heart should be rotated 90 CCW due to exif.', + 5, 25, paint, font); + + // TODO(kjlubick) it would be nice to also to test MakeAnimatedImageFromEncoded but + // I could not create a sample animated image that worked. + const img = CanvasKit.MakeImageFromEncoded(fetchedByteBuffers[0]); + expect(img).toBeTruthy(); + canvas.drawImage(img, 5, 35, null); + + img.delete(); + paint.delete(); + font.delete(); + }, '/assets/exif_rotated_heart.jpg'); + + gm('1x4_from_scratch', (canvas) => { + canvas.clear(CanvasKit.WHITE); + const paint = new CanvasKit.Paint(); + + // This creates and draws an Image that is 1 pixel wide, 4 pixels tall with + // the colors listed below. + const pixels = Uint8Array.from([ + 255, 0, 0, 255, // opaque red + 0, 255, 0, 255, // opaque green + 0, 0, 255, 255, // opaque blue + 255, 0, 255, 100, // transparent purple + ]); + const img = CanvasKit.MakeImage({ + 'width': 1, + 'height': 4, + 'alphaType': CanvasKit.AlphaType.Unpremul, + 'colorType': CanvasKit.ColorType.RGBA_8888, + 'colorSpace': CanvasKit.ColorSpace.SRGB + }, pixels, 4); + canvas.drawImage(img, 1, 1, paint); + + const info = img.getImageInfo(); + expect(info).toEqual({ + 'width': 1, + 'height': 4, + 'alphaType': CanvasKit.AlphaType.Unpremul, + 'colorType': CanvasKit.ColorType.RGBA_8888, + }); + const cs = img.getColorSpace(); + expect(CanvasKit.ColorSpace.Equals(cs, CanvasKit.ColorSpace.SRGB)).toBeTruthy(); + + cs.delete(); + img.delete(); + paint.delete(); + }); + + gm('draw_atlas_with_builders', (canvas, fetchedByteBuffers) => { + const atlas = CanvasKit.MakeImageFromEncoded(fetchedByteBuffers[0]); + expect(atlas).toBeTruthy(); + canvas.clear(CanvasKit.WHITE); + + const paint = new CanvasKit.Paint(); + paint.setColor(CanvasKit.Color(0, 0, 0, 0.8)); + + // Allocate space for 4 rectangles. + const srcs = CanvasKit.Malloc(Float32Array, 16); + srcs.toTypedArray().set([ + 0, 0, 256, 256, // LTRB + 256, 0, 512, 256, + 0, 256, 256, 512, + 256, 256, 512, 512 + ]); + + // Allocate space for 4 RSXForms. + const dsts = CanvasKit.Malloc(Float32Array, 16); + dsts.toTypedArray().set([ + 0.5, 0, 20, 20, // scos, ssin, tx, ty + 0.5, 0, 300, 20, + 0.5, 0, 20, 300, + 0.5, 0, 300, 300 + ]); + + // Allocate space for 4 colors. + const colors = new CanvasKit.Malloc(Uint32Array, 4); + colors.toTypedArray().set([ + CanvasKit.ColorAsInt( 85, 170, 10, 128), // light green + CanvasKit.ColorAsInt( 51, 51, 191, 128), // light blue + CanvasKit.ColorAsInt( 0, 0, 0, 128), + CanvasKit.ColorAsInt(256, 256, 256, 128), + ]); + + canvas.drawAtlas(atlas, srcs, dsts, paint, CanvasKit.BlendMode.Modulate, colors); + + atlas.delete(); + CanvasKit.Free(srcs); + CanvasKit.Free(dsts); + CanvasKit.Free(colors); + paint.delete(); + }, '/assets/mandrill_512.png'); + + gm('draw_atlas_with_arrays', (canvas, fetchedByteBuffers) => { + const atlas = CanvasKit.MakeImageFromEncoded(fetchedByteBuffers[0]); + expect(atlas).toBeTruthy(); + canvas.clear(CanvasKit.WHITE); + + const paint = new CanvasKit.Paint(); + paint.setColor(CanvasKit.Color(0, 0, 0, 0.8)); + + const srcs = [ + 0, 0, 8, 8, + 8, 0, 16, 8, + 0, 8, 8, 16, + 8, 8, 16, 16, + ]; + + const dsts = [ + 10, 0, 0, 0, + 10, 0, 100, 0, + 10, 0, 0, 100, + 10, 0, 100, 100, + ]; + + const colors = Uint32Array.of( + CanvasKit.ColorAsInt( 85, 170, 10, 128), // light green + CanvasKit.ColorAsInt( 51, 51, 191, 128), // light blue + CanvasKit.ColorAsInt( 0, 0, 0, 128), + CanvasKit.ColorAsInt(255, 255, 255, 128), + ); + + // sampling for each of the 4 instances + const sampling = [ + null, + {B: 0, C: 0.5}, + {filter: CanvasKit.FilterMode.Nearest, mipmap: CanvasKit.MipmapMode.None}, + {filter: CanvasKit.FilterMode.Linear, mipmap: CanvasKit.MipmapMode.Nearest}, + ]; + + // positioning for each of the 4 instances + const offset = [ + [0, 0], [256, 0], [0, 256], [256, 256] + ]; + + canvas.translate(20, 20); + for (let i = 0; i < 4; ++i) { + canvas.save(); + canvas.translate(offset[i][0], offset[i][1]); + canvas.drawAtlas(atlas, srcs, dsts, paint, CanvasKit.BlendMode.SrcOver, colors, + sampling[i]); + canvas.restore(); + } + + atlas.delete(); + paint.delete(); + }, '/assets/mandrill_16.png'); + + gm('draw_patch', (canvas, fetchedByteBuffers) => { + const image = CanvasKit.MakeImageFromEncoded(fetchedByteBuffers[0]); + expect(image).toBeTruthy(); + canvas.clear(CanvasKit.WHITE); + + const paint = new CanvasKit.Paint(); + const shader = image.makeShaderOptions(CanvasKit.TileMode.Clamp, + CanvasKit.TileMode.Clamp, + CanvasKit.FilterMode.Linear, + CanvasKit.MipmapMode.None); + const cubics = [0,0, 80,50, 160,50, + 240,0, 200,80, 200,160, + 240,240, 160,160, 80,240, + 0,240, 50,160, 0,80]; + const colors = [CanvasKit.RED, CanvasKit.BLUE, CanvasKit.YELLOW, CanvasKit.CYAN]; + const texs = [0,0, 16,0, 16,16, 0,16]; + + const params = [ + [ 0, 0, colors, null, null, CanvasKit.BlendMode.Dst], + [256, 0, null, texs, shader, null], + [ 0, 256, colors, texs, shader, null], + [256, 256, colors, texs, shader, CanvasKit.BlendMode.Screen], + ]; + for (const p of params) { + paint.setShader(p[4]); + canvas.save(); + canvas.translate(p[0], p[1]); + canvas.drawPatch(cubics, p[2], p[3], p[5], paint); + canvas.restore(); + } + paint.delete(); + }, '/assets/mandrill_16.png'); + + gm('draw_glyphs', (canvas, fetchedByteBuffers) => { + canvas.clear(CanvasKit.WHITE); + + const paint = new CanvasKit.Paint(); + const font = new CanvasKit.Font(null, 24); + paint.setAntiAlias(true); + + const DIM = 16; // row/col count for the grid + const GAP = 32; // spacing between each glyph + const glyphs = new Uint16Array(256); + const positions = new Float32Array(256*2); + for (let i = 0; i < 256; ++i) { + glyphs[i] = i; + positions[2*i+0] = (i%DIM) * GAP; + positions[2*i+1] = Math.round(i/DIM) * GAP; + } + canvas.drawGlyphs(glyphs, positions, 16, 20, font, paint); + + font.delete(); + paint.delete(); + }); + + gm('image_decoding_methods', async (canvas) => { + canvas.clear(CanvasKit.WHITE); + + const IMAGE_FILE_PATHS = [ + '/assets/brickwork-texture.jpg', + '/assets/mandrill_512.png', + '/assets/color_wheel.gif' + ]; + + let row = 1; + // Test 4 different methods of decoding an image for each of the three images in + // IMAGE_FILE_PATHS. + // Resulting Images are drawn to visually show that all methods decode correctly. + for (const imageFilePath of IMAGE_FILE_PATHS) { + const response = await fetch(imageFilePath); + const arrayBuffer = await response.arrayBuffer(); + // response.blob() is preferable when you don't need both a Blob *and* an ArrayBuffer. + const blob = new Blob([ arrayBuffer ]); + + // Method 1 - decode TypedArray using wasm codecs: + const skImage1 = CanvasKit.MakeImageFromEncoded(arrayBuffer); + + // Method 2 (slower and does not work in Safari) decode using ImageBitmap: + const imageBitmap = await createImageBitmap(blob); + // Testing showed that transferring an ImageBitmap to a canvas using the 'bitmaprenderer' + // context and passing that canvas to CanvasKit.MakeImageFromCanvasImageSource() is + // marginally faster than passing ImageBitmap to + // CanvasKit.MakeImageFromCanvasImageSource() directly. + const canvasBitmapElement = document.createElement('canvas'); + canvasBitmapElement.width = imageBitmap.width; + canvasBitmapElement.height = imageBitmap.height; + const ctxBitmap = canvasBitmapElement.getContext('bitmaprenderer'); + ctxBitmap.transferFromImageBitmap(imageBitmap); + const skImage2 = CanvasKit.MakeImageFromCanvasImageSource(canvasBitmapElement); + + // Method 3 (slowest) decode using HTMLImageElement directly: + const image = new Image(); + // Testing showed that waiting for a load event is faster than waiting on image.decode() + // HTMLImageElement.decode() reference: https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decode + const promise1 = new Promise((resolve) => image.addEventListener('load', resolve)); + image.src = imageFilePath; + await promise1; + const skImage3 = CanvasKit.MakeImageFromCanvasImageSource(image); + + // Method 4 (roundabout, but works if all you have is a Blob) decode from Blob using + // HTMLImageElement: + const imageObjectUrl = URL.createObjectURL( blob ); + const image2 = new Image(); + const promise2 = new Promise((resolve) => image2.addEventListener('load', resolve)); + image2.src = imageObjectUrl; + await promise2; + const skImage4 = CanvasKit.MakeImageFromCanvasImageSource(image2); + + // Draw decoded images + const sourceRect = CanvasKit.XYWHRect(0, 0, 150, 150); + canvas.drawImageRect(skImage1, sourceRect, CanvasKit.XYWHRect(0, row * 100, 90, 90), null, false); + canvas.drawImageRect(skImage2, sourceRect, CanvasKit.XYWHRect(100, row * 100, 90, 90), null, false); + canvas.drawImageRect(skImage3, sourceRect, CanvasKit.XYWHRect(200, row * 100, 90, 90), null, false); + canvas.drawImageRect(skImage4, sourceRect, CanvasKit.XYWHRect(300, row * 100, 90, 90), null, false); + + row++; + } + // Label images with the method used to decode them + const paint = new CanvasKit.Paint(); + const textFont = new CanvasKit.Font(null, 7); + canvas.drawText('WASM Decoding', 0, 90, paint, textFont); + canvas.drawText('ImageBitmap Decoding', 100, 90, paint, textFont); + canvas.drawText('HTMLImageEl Decoding', 200, 90, paint, textFont); + canvas.drawText('Blob Decoding', 300, 90, paint, textFont); + }); + + gm('sweep_gradient', (canvas) => { + const paint = new CanvasKit.Paint(); + const shader = CanvasKit.Shader.MakeSweepGradient( + 100, 100, // X, Y coordinates + [CanvasKit.GREEN, CanvasKit.BLUE], + [0.0, 1.0], + CanvasKit.TileMode.Clamp, + ); + expect(shader).toBeTruthy('Could not make shader'); + + paint.setShader(shader); + canvas.drawPaint(paint); + + paint.delete(); + shader.delete(); + }); + + // TODO(kjlubick): There's a lot of shared code between the gradient gms + // It would be best to deduplicate that in a nice DAMP way. + // Inspired by https://fiddle.skia.org/c/b29ce50a341510784ac7d5281586d076 + gm('linear_gradients', (canvas) => { + canvas.clear(CanvasKit.WHITE); + canvas.scale(2, 2); + const strokePaint = new CanvasKit.Paint(); + strokePaint.setStyle(CanvasKit.PaintStyle.Stroke); + strokePaint.setColor(CanvasKit.BLACK); + + const paint = new CanvasKit.Paint(); + paint.setStyle(CanvasKit.PaintStyle.Fill); + const transparentGreen = CanvasKit.Color(0, 255, 255, 0); + + const lgs = CanvasKit.Shader.MakeLinearGradient( + [0, 0], [50, 100], // start and stop points + [transparentGreen, CanvasKit.BLUE, CanvasKit.RED], + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror + ); + paint.setShader(lgs); + let r = CanvasKit.LTRBRect(0, 0, 100, 100); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + const lgsPremul = CanvasKit.Shader.MakeLinearGradient( + [100, 0], [150, 100], // start and stop points + Uint32Array.of( + CanvasKit.ColorAsInt(0, 255, 255, 0), + CanvasKit.ColorAsInt(0, 0, 255, 255), + CanvasKit.ColorAsInt(255, 0, 0, 255)), + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror, + null, // no local matrix + 1 // interpolate colors in premul + ); + paint.setShader(lgsPremul); + r = CanvasKit.LTRBRect(100, 0, 200, 100); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + const lgs45 = CanvasKit.Shader.MakeLinearGradient( + [0, 100], [50, 200], // start and stop points + Float32Array.of(...transparentGreen, ...CanvasKit.BLUE, ...CanvasKit.RED), + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror, + CanvasKit.Matrix.rotated(Math.PI/4, 0, 100), + ); + paint.setShader(lgs45); + r = CanvasKit.LTRBRect(0, 100, 100, 200); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + // malloc'd color array + const colors = CanvasKit.Malloc(Float32Array, 12); + const typedColorsArray = colors.toTypedArray(); + typedColorsArray.set(transparentGreen, 0); + typedColorsArray.set(CanvasKit.BLUE, 4); + typedColorsArray.set(CanvasKit.RED, 8); + const lgs45Premul = CanvasKit.Shader.MakeLinearGradient( + [100, 100], [150, 200], // start and stop points + typedColorsArray, + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror, + CanvasKit.Matrix.rotated(Math.PI/4, 100, 100), + 1 // interpolate colors in premul + ); + CanvasKit.Free(colors); + paint.setShader(lgs45Premul); + r = CanvasKit.LTRBRect(100, 100, 200, 200); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + lgs.delete(); + lgs45.delete(); + lgsPremul.delete(); + lgs45Premul.delete(); + strokePaint.delete(); + paint.delete(); + }); + + gm('radial_gradients', (canvas) => { + canvas.clear(CanvasKit.WHITE); + canvas.scale(2, 2); + const strokePaint = new CanvasKit.Paint(); + strokePaint.setStyle(CanvasKit.PaintStyle.Stroke); + strokePaint.setColor(CanvasKit.BLACK); + + const paint = new CanvasKit.Paint(); + paint.setStyle(CanvasKit.PaintStyle.Fill); + const transparentGreen = CanvasKit.Color(0, 255, 255, 0); + + const rgs = CanvasKit.Shader.MakeRadialGradient( + [50, 50], 50, // center, radius + [transparentGreen, CanvasKit.BLUE, CanvasKit.RED], + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror + ); + paint.setShader(rgs); + let r = CanvasKit.LTRBRect(0, 0, 100, 100); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + const rgsPremul = CanvasKit.Shader.MakeRadialGradient( + [150, 50], 50, // center, radius + [transparentGreen, CanvasKit.BLUE, CanvasKit.RED], + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror, + null, // no local matrix + 1 // interpolate colors in premul + ); + paint.setShader(rgsPremul); + r = CanvasKit.LTRBRect(100, 0, 200, 100); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + const rgsSkew = CanvasKit.Shader.MakeRadialGradient( + [50, 150], 50, // center, radius + [transparentGreen, CanvasKit.BLUE, CanvasKit.RED], + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror, + CanvasKit.Matrix.skewed(0.5, 0, 100, 100), + null, // color space + ); + paint.setShader(rgsSkew); + r = CanvasKit.LTRBRect(0, 100, 100, 200); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + const rgsSkewPremul = CanvasKit.Shader.MakeRadialGradient( + [150, 150], 50, // center, radius + [transparentGreen, CanvasKit.BLUE, CanvasKit.RED], + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror, + CanvasKit.Matrix.skewed(0.5, 0, 100, 100), + 1, // interpolate colors in premul + null, // color space + ); + paint.setShader(rgsSkewPremul); + r = CanvasKit.LTRBRect(100, 100, 200, 200); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + rgs.delete(); + rgsPremul.delete(); + rgsSkew.delete(); + rgsSkewPremul.delete(); + strokePaint.delete(); + paint.delete(); + }); + + gm('conical_gradients', (canvas) => { + canvas.clear(CanvasKit.WHITE); + canvas.scale(2, 2); + const strokePaint = new CanvasKit.Paint(); + strokePaint.setStyle(CanvasKit.PaintStyle.Stroke); + strokePaint.setColor(CanvasKit.BLACK); + + const paint = new CanvasKit.Paint(); + paint.setStyle(CanvasKit.PaintStyle.Fill); + paint.setAntiAlias(true); + const transparentGreen = CanvasKit.Color(0, 255, 255, 0); + + const cgs = CanvasKit.Shader.MakeTwoPointConicalGradient( + [80, 10], 15, // start, radius + [10, 110], 60, // end, radius + [transparentGreen, CanvasKit.BLUE, CanvasKit.RED], + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror, + null, // no local matrix + ); + paint.setShader(cgs); + let r = CanvasKit.LTRBRect(0, 0, 100, 100); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + const cgsPremul = CanvasKit.Shader.MakeTwoPointConicalGradient( + [180, 10], 15, // start, radius + [110, 110], 60, // end, radius + [transparentGreen, CanvasKit.BLUE, CanvasKit.RED], + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror, + null, // no local matrix + 1, // interpolate colors in premul + null, // color space + ); + paint.setShader(cgsPremul); + r = CanvasKit.LTRBRect(100, 0, 200, 100); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + const cgs45 = CanvasKit.Shader.MakeTwoPointConicalGradient( + [80, 110], 15, // start, radius + [10, 210], 60, // end, radius + [transparentGreen, CanvasKit.BLUE, CanvasKit.RED], + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror, + CanvasKit.Matrix.rotated(Math.PI/4, 0, 100), + null, // color space + ); + paint.setShader(cgs45); + r = CanvasKit.LTRBRect(0, 100, 100, 200); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + const cgs45Premul = CanvasKit.Shader.MakeTwoPointConicalGradient( + [180, 110], 15, // start, radius + [110, 210], 60, // end, radius + [transparentGreen, CanvasKit.BLUE, CanvasKit.RED], + [0, 0.65, 1.0], + CanvasKit.TileMode.Mirror, + CanvasKit.Matrix.rotated(Math.PI/4, 100, 100), + 1, // interpolate colors in premul + null, // color space + ); + paint.setShader(cgs45Premul); + r = CanvasKit.LTRBRect(100, 100, 200, 200); + canvas.drawRect(r, paint); + canvas.drawRect(r, strokePaint); + + cgs.delete(); + cgsPremul.delete(); + cgs45.delete(); + strokePaint.delete(); + paint.delete(); + }); + + gm('blur_filters', (canvas) => { + const pathUL = starPath(CanvasKit, 100, 100, 80); + const pathBR = starPath(CanvasKit, 400, 300, 80); + const paint = new CanvasKit.Paint(); + const textFont = new CanvasKit.Font(null, 24); + + canvas.drawText('Above: MaskFilter', 20, 220, paint, textFont); + canvas.drawText('Right: ImageFilter', 20, 260, paint, textFont); + + paint.setColor(CanvasKit.BLUE); + + const blurMask = CanvasKit.MaskFilter.MakeBlur(CanvasKit.BlurStyle.Normal, 5, true); + paint.setMaskFilter(blurMask); + canvas.drawPath(pathUL, paint); + + const blurIF = CanvasKit.ImageFilter.MakeBlur(8, 1, CanvasKit.TileMode.Decal, null); + paint.setImageFilter(blurIF); + canvas.drawPath(pathBR, paint); + + pathUL.delete(); + pathBR.delete(); + paint.delete(); + blurMask.delete(); + blurIF.delete(); + textFont.delete(); + }); + + gm('combined_filters', (canvas, fetchedByteBuffers) => { + const img = CanvasKit.MakeImageFromEncoded(fetchedByteBuffers[0]); + expect(img).toBeTruthy(); + + canvas.clear(CanvasKit.WHITE); + const paint = new CanvasKit.Paint(); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(0, 255, 0, 1.0)); + const redCF = CanvasKit.ColorFilter.MakeBlend( + CanvasKit.Color(255, 0, 0, 0.1), CanvasKit.BlendMode.SrcOver); + const redIF = CanvasKit.ImageFilter.MakeColorFilter(redCF, null); + const blurIF = CanvasKit.ImageFilter.MakeBlur(8, 0.2, CanvasKit.TileMode.Decal, null); + const combined = CanvasKit.ImageFilter.MakeCompose(redIF, blurIF); + + // rotate 10 degrees centered on 200, 200 + const m = CanvasKit.Matrix.rotated(Math.PI/18, 200, 200); + const filtering = { filter: CanvasKit.FilterMode.Linear }; + const rotated = CanvasKit.ImageFilter.MakeMatrixTransform(m, filtering, combined); + paint.setImageFilter(rotated); + + //canvas.rotate(10, 200, 200); + canvas.drawImage(img, 0, 0, paint); + canvas.drawRect(CanvasKit.LTRBRect(5, 35, 45, 80), paint); + + paint.delete(); + redIF.delete(); + redCF.delete(); + blurIF.delete(); + combined.delete(); + rotated.delete(); + img.delete(); + }, '/assets/mandrill_512.png'); + + gm('animated_filters', (canvas, fetchedByteBuffers) => { + const img = CanvasKit.MakeAnimatedImageFromEncoded(fetchedByteBuffers[0]); + expect(img).toBeTruthy(); + img.decodeNextFrame(); + img.decodeNextFrame(); + canvas.clear(CanvasKit.WHITE); + const paint = new CanvasKit.Paint(); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(0, 255, 0, 1.0)); + const redCF = CanvasKit.ColorFilter.MakeBlend( + CanvasKit.Color(255, 0, 0, 0.1), CanvasKit.BlendMode.SrcOver); + const redIF = CanvasKit.ImageFilter.MakeColorFilter(redCF, null); + const blurIF = CanvasKit.ImageFilter.MakeBlur(8, 0.2, CanvasKit.TileMode.Decal, null); + const combined = CanvasKit.ImageFilter.MakeCompose(redIF, blurIF); + paint.setImageFilter(combined); + + const frame = img.makeImageAtCurrentFrame(); + canvas.drawImage(frame, 100, 50, paint); + + paint.delete(); + redIF.delete(); + redCF.delete(); + blurIF.delete(); + combined.delete(); + frame.delete(); + img.delete(); + }, '/assets/flightAnim.gif'); + + gm('drawImageVariants', (canvas, fetchedByteBuffers) => { + const img = CanvasKit.MakeImageFromEncoded(fetchedByteBuffers[0]); + expect(img).toBeTruthy(); + + canvas.clear(CanvasKit.WHITE); + canvas.scale(2, 2); + const paint = new CanvasKit.Paint(); + const clipTo = (x, y) => { + canvas.save(); + canvas.clipRect(CanvasKit.XYWHRect(x, y, 128, 128), CanvasKit.ClipOp.Intersect); + }; + + clipTo(0, 0); + canvas.drawImage(img, 0, 0, paint); + canvas.restore(); + + clipTo(128, 0); + canvas.drawImageCubic(img, 128, 0, 1/3, 1/3, null); + canvas.restore(); + + clipTo(0, 128); + canvas.drawImageOptions(img, 0, 128, CanvasKit.FilterMode.Linear, CanvasKit.MipmapMode.None, null); + canvas.restore(); + + const mipImg = img.makeCopyWithDefaultMipmaps(); + clipTo(128, 128); + canvas.drawImageOptions(mipImg, 128, 128, + CanvasKit.FilterMode.Nearest, CanvasKit.MipmapMode.Nearest, null); + canvas.restore(); + + paint.delete(); + mipImg.delete(); + img.delete(); + }, '/assets/mandrill_512.png'); + + gm('drawImageRectVariants', (canvas, fetchedByteBuffers) => { + const img = CanvasKit.MakeImageFromEncoded(fetchedByteBuffers[0]); + expect(img).toBeTruthy(); + + canvas.clear(CanvasKit.WHITE); + const paint = new CanvasKit.Paint(); + const src = CanvasKit.XYWHRect(100, 100, 128, 128); + canvas.drawImageRect(img, src, CanvasKit.XYWHRect(0, 0, 256, 256), paint); + canvas.drawImageRectCubic(img, src, CanvasKit.XYWHRect(256, 0, 256, 256), 1/3, 1/3); + canvas.drawImageRectOptions(img, src, CanvasKit.XYWHRect(0, 256, 256, 256), + CanvasKit.FilterMode.Linear, CanvasKit.MipmapMode.None); + const mipImg = img.makeCopyWithDefaultMipmaps(); + canvas.drawImageRectOptions(mipImg, src, CanvasKit.XYWHRect(256, 256, 256, 256), + CanvasKit.FilterMode.Nearest, CanvasKit.MipmapMode.Nearest); + + paint.delete(); + mipImg.delete(); + img.delete(); + }, '/assets/mandrill_512.png'); + + gm('drawImage_skp', (canvas, fetchedByteBuffers) => { + const pic = CanvasKit.MakePicture(fetchedByteBuffers[0]); + canvas.clear(CanvasKit.TRANSPARENT); + canvas.drawPicture(pic); + // The asset below can be re-downloaded from + // https://fiddle.skia.org/c/cbb8dee39e9f1576cd97c2d504db8eee + }, '/assets/red_line.skp'); + + it('can draw once using drawOnce utility method', (done) => { + const surface = CanvasKit.MakeCanvasSurface('test'); + expect(surface).toBeTruthy('Could not make surface'); + if (!surface) { + done(); + return; + } + + const drawFrame = (canvas) => { + const paint = new CanvasKit.Paint(); + paint.setStrokeWidth(1.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(0, 0, 0, 1.0)); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + const path = new CanvasKit.Path(); + path.moveTo(20, 5); + path.lineTo(30, 20); + path.lineTo(40, 10); + canvas.drawPath(path, paint); + path.delete(); + paint.delete(); + // surface hasn't been flushed yet (nor should we call flush + // ourselves), so reportSurface would likely be blank if we + // were to call it. + done(); + }; + surface.drawOnce(drawFrame); + // Reminder: drawOnce is async. In this test, we are just making + // sure the drawOnce function is there and doesn't crash, so we can + // just call done() when the frame is rendered. + }); + + it('can draw client-supplied dirty rects', (done) => { + // dirty rects are only honored by software (CPU) canvases today. + const surface = CanvasKit.MakeSWCanvasSurface('test'); + expect(surface).toBeTruthy('Could not make surface'); + if (!surface) { + done(); + return; + } + + const drawFrame = (canvas) => { + const paint = new CanvasKit.Paint(); + paint.setStrokeWidth(1.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(0, 0, 0, 1.0)); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + const path = new CanvasKit.Path(); + path.moveTo(20, 5); + path.lineTo(30, 20); + path.lineTo(40, 10); + canvas.drawPath(path, paint); + path.delete(); + paint.delete(); + done(); + }; + const dirtyRect = CanvasKit.XYWHRect(10, 10, 15, 15); + surface.drawOnce(drawFrame, dirtyRect); + // We simply ensure that passing a dirty rect doesn't crash. + }); + + it('can use DecodeCache APIs', () => { + const initialLimit = CanvasKit.getDecodeCacheLimitBytes(); + expect(initialLimit).toBeGreaterThan(1024 * 1024); + + const newLimit = 42 * 1024 * 1024; + CanvasKit.setDecodeCacheLimitBytes(newLimit); + expect(CanvasKit.getDecodeCacheLimitBytes()).toEqual(newLimit); + + // We cannot make any assumptions about this value, + // so we just make sure it doesn't crash. + CanvasKit.getDecodeCacheUsedBytes(); + }); + + gm('combined_shaders', (canvas) => { + const rShader = CanvasKit.Shader.Color(CanvasKit.Color(255, 0, 0, 1.0)); // deprecated + const gShader = CanvasKit.Shader.MakeColor(CanvasKit.Color(0, 255, 0, 0.6)); + + const rgShader = CanvasKit.Shader.MakeBlend(CanvasKit.BlendMode.SrcOver, rShader, gShader); + + const p = new CanvasKit.Paint(); + p.setShader(rgShader); + canvas.drawPaint(p); + + rShader.delete(); + gShader.delete(); + rgShader.delete(); + p.delete(); + }); + + it('exports consts correctly', () => { + expect(CanvasKit.TRANSPARENT).toEqual(Float32Array.of(0, 0, 0, 0)); + expect(CanvasKit.RED).toEqual(Float32Array.of(1, 0, 0, 1)); + + expect(CanvasKit.QUAD_VERB).toEqual(2); + expect(CanvasKit.CONIC_VERB).toEqual(3); + + expect(CanvasKit.SaveLayerInitWithPrevious).toEqual(4); + expect(CanvasKit.SaveLayerF16ColorType).toEqual(16); + }); + + it('can set color on a paint and get it as four floats', () => { + const paint = new CanvasKit.Paint(); + paint.setColor(CanvasKit.Color4f(3.3, 2.2, 1.1, 0.5)); + expect(paint.getColor()).toEqual(Float32Array.of(3.3, 2.2, 1.1, 0.5)); + + paint.setColorComponents(0.5, 0.6, 0.7, 0.8); + expect(paint.getColor()).toEqual(Float32Array.of(0.5, 0.6, 0.7, 0.8)); + + paint.setColorInt(CanvasKit.ColorAsInt(50, 100, 150, 200)); + let color = paint.getColor(); + expect(color.length).toEqual(4); + expect(color[0]).toBeCloseTo(50/255, 5); // Red + expect(color[1]).toBeCloseTo(100/255, 5); // Green + expect(color[2]).toBeCloseTo(150/255, 5); // Blue + expect(color[3]).toBeCloseTo(200/255, 5); // Alpha + + paint.setColorInt(0xFF000000); + expect(paint.getColor()).toEqual(Float32Array.of(0, 0, 0, 1.0)); + }); + + gm('draw shadow', (canvas) => { + const lightRadius = 20; + const lightPos = [500,500,20]; + const zPlaneParams = [0,0,1]; + const path = starPath(CanvasKit); + const textFont = new CanvasKit.Font(null, 24); + const textPaint = new CanvasKit.Paint(); + + canvas.drawShadow(path, zPlaneParams, lightPos, lightRadius, + CanvasKit.BLACK, CanvasKit.MAGENTA, 0); + canvas.drawText('Default Flags', 5, 250, textPaint, textFont); + + let bounds = CanvasKit.getShadowLocalBounds(CanvasKit.Matrix.identity(), + path, zPlaneParams, lightPos, lightRadius, 0); + expectTypedArraysToEqual(bounds, Float32Array.of(-3.64462, -12.67541, 245.50, 242.59164)); + + bounds = CanvasKit.getShadowLocalBounds(CanvasKit.M44.identity(), + path, zPlaneParams, lightPos, lightRadius, 0); + expectTypedArraysToEqual(bounds, Float32Array.of(-3.64462, -12.67541, 245.50, 242.59164)); + + // Test that the APIs accept Malloc objs and the Malloced typearray + const mZPlane = CanvasKit.Malloc(Float32Array, 3); + mZPlane.toTypedArray().set(zPlaneParams); + const mLight = CanvasKit.Malloc(Float32Array, 3); + const lightTA = mLight.toTypedArray(); + lightTA.set(lightPos); + + canvas.translate(250, 250); + canvas.drawShadow(path, mZPlane, lightTA, lightRadius, + CanvasKit.BLACK, CanvasKit.MAGENTA, + CanvasKit.ShadowTransparentOccluder | CanvasKit.ShadowGeometricOnly | CanvasKit.ShadowDirectionalLight); + canvas.drawText('All Flags', 5, 250, textPaint, textFont); + + const outBounds = new Float32Array(4); + CanvasKit.getShadowLocalBounds(CanvasKit.Matrix.rotated(Math.PI / 6), + path, mZPlane, mLight, lightRadius, + CanvasKit.ShadowTransparentOccluder | CanvasKit.ShadowGeometricOnly | CanvasKit.ShadowDirectionalLight, + outBounds); + expectTypedArraysToEqual(outBounds, Float32Array.of(-31.6630249, -15.24227, 245.5, 252.94101)); + + CanvasKit.Free(mZPlane); + CanvasKit.Free(mLight); + + path.delete(); + textFont.delete(); + textPaint.delete(); + }); + + gm('fractal_noise_shader', (canvas) => { + const shader = CanvasKit.Shader.MakeFractalNoise(0.1, 0.05, 2, 0, 0, 0); + const paint = new CanvasKit.Paint(); + paint.setColor(CanvasKit.BLACK); + paint.setShader(shader); + canvas.drawPaint(paint); + paint.delete(); + shader.delete(); + }); + + gm('turbulance_shader', (canvas) => { + const shader = CanvasKit.Shader.MakeTurbulence(0.1, 0.05, 2, 117, 0, 0); + const paint = new CanvasKit.Paint(); + paint.setColor(CanvasKit.BLACK); + paint.setShader(shader); + canvas.drawPaint(paint); + paint.delete(); + shader.delete(); + }); + + gm('fractal_noise_tiled_shader', (canvas) => { + const shader = CanvasKit.Shader.MakeFractalNoise(0.1, 0.05, 2, 0, 80, 80); + const paint = new CanvasKit.Paint(); + paint.setColor(CanvasKit.BLACK); + paint.setShader(shader); + canvas.drawPaint(paint); + paint.delete(); + shader.delete(); + }); + + gm('turbulance_tiled_shader', (canvas) => { + const shader = CanvasKit.Shader.MakeTurbulence(0.1, 0.05, 2, 117, 80, 80); + const paint = new CanvasKit.Paint(); + paint.setColor(CanvasKit.BLACK); + paint.setShader(shader); + canvas.drawPaint(paint); + paint.delete(); + shader.delete(); + }); + + describe('ColorSpace Support', () => { + it('Creates an SRGB 8888 surface by default', () => { + const colorSpace = CanvasKit.ColorSpace.SRGB; + const surface = CanvasKit.MakeCanvasSurface('test'); + expect(surface).toBeTruthy('Could not make surface'); + let info = surface.imageInfo(); + expect(info.alphaType).toEqual(CanvasKit.AlphaType.Unpremul); + expect(info.colorType).toEqual(CanvasKit.ColorType.RGBA_8888); + expect(CanvasKit.ColorSpace.Equals(info.colorSpace, colorSpace)) + .toBeTruthy("Surface not created with correct color space."); + + const mObj = CanvasKit.Malloc(Uint8Array, CANVAS_WIDTH * CANVAS_HEIGHT * 4); + mObj.toTypedArray()[0] = 127; // sentinel value. Should be overwritten by readPixels. + const canvas = surface.getCanvas(); + canvas.clear(CanvasKit.TRANSPARENT); + const pixels = canvas.readPixels(0, 0, { + width: CANVAS_WIDTH, + height: CANVAS_HEIGHT, + colorType: CanvasKit.ColorType.RGBA_8888, + alphaType: CanvasKit.AlphaType.Unpremul, + colorSpace: colorSpace + }, mObj, 4 * CANVAS_WIDTH); + expect(pixels).toBeTruthy('Could not read pixels from surface'); + expect(pixels[0] !== 127).toBeTruthy(); + expect(pixels[0]).toEqual(mObj.toTypedArray()[0]); + CanvasKit.Free(mObj); + surface.delete(); + }); + it('Can create an SRGB 8888 surface', () => { + const colorSpace = CanvasKit.ColorSpace.SRGB; + const surface = CanvasKit.MakeCanvasSurface('test', CanvasKit.ColorSpace.SRGB); + expect(surface).toBeTruthy('Could not make surface'); + let info = surface.imageInfo(); + expect(info.alphaType).toEqual(CanvasKit.AlphaType.Unpremul); + expect(info.colorType).toEqual(CanvasKit.ColorType.RGBA_8888); + expect(CanvasKit.ColorSpace.Equals(info.colorSpace, colorSpace)) + .toBeTruthy("Surface not created with correct color space."); + + const mObj = CanvasKit.Malloc(Uint8Array, CANVAS_WIDTH * CANVAS_HEIGHT * 4); + mObj.toTypedArray()[0] = 127; // sentinel value. Should be overwritten by readPixels. + const canvas = surface.getCanvas(); + canvas.clear(CanvasKit.TRANSPARENT); + const pixels = canvas.readPixels(0, 0, { + width: CANVAS_WIDTH, + height: CANVAS_HEIGHT, + colorType: CanvasKit.ColorType.RGBA_8888, + alphaType: CanvasKit.AlphaType.Unpremul, + colorSpace: colorSpace + }, mObj, 4 * CANVAS_WIDTH); + expect(pixels).toBeTruthy('Could not read pixels from surface'); + expect(pixels[0] !== 127).toBeTruthy(); + expect(pixels[0]).toEqual(mObj.toTypedArray()[0]); + CanvasKit.Free(mObj); + surface.delete(); + }); + it('Can create a Display P3 surface', () => { + const colorSpace = CanvasKit.ColorSpace.DISPLAY_P3; + const surface = CanvasKit.MakeCanvasSurface('test', CanvasKit.ColorSpace.DISPLAY_P3); + expect(surface).toBeTruthy('Could not make surface'); + if (!surface.reportBackendTypeIsGPU()) { + console.log('Not expecting color space support in cpu backed suface.'); + return; + } + let info = surface.imageInfo(); + expect(info.alphaType).toEqual(CanvasKit.AlphaType.Unpremul); + expect(info.colorType).toEqual(CanvasKit.ColorType.RGBA_F16); + expect(CanvasKit.ColorSpace.Equals(info.colorSpace, colorSpace)) + .toBeTruthy("Surface not created with correct color space."); + + const pixels = surface.getCanvas().readPixels(0, 0, { + width: CANVAS_WIDTH, + height: CANVAS_HEIGHT, + colorType: CanvasKit.ColorType.RGBA_F16, + alphaType: CanvasKit.AlphaType.Unpremul, + colorSpace: colorSpace + }); + expect(pixels).toBeTruthy('Could not read pixels from surface'); + }); + it('Can create an Adobe RGB surface', () => { + const colorSpace = CanvasKit.ColorSpace.ADOBE_RGB; + const surface = CanvasKit.MakeCanvasSurface('test', CanvasKit.ColorSpace.ADOBE_RGB); + expect(surface).toBeTruthy('Could not make surface'); + if (!surface.reportBackendTypeIsGPU()) { + console.log('Not expecting color space support in cpu backed surface.'); + return; + } + let info = surface.imageInfo(); + expect(info.alphaType).toEqual(CanvasKit.AlphaType.Unpremul); + expect(info.colorType).toEqual(CanvasKit.ColorType.RGBA_F16); + expect(CanvasKit.ColorSpace.Equals(info.colorSpace, colorSpace)) + .toBeTruthy("Surface not created with correct color space."); + + const pixels = surface.getCanvas().readPixels(0, 0, { + width: CANVAS_WIDTH, + height: CANVAS_HEIGHT, + colorType: CanvasKit.ColorType.RGBA_F16, + alphaType: CanvasKit.AlphaType.Unpremul, + colorSpace: colorSpace + }); + expect(pixels).toBeTruthy('Could not read pixels from surface'); + }); + + it('combine draws from several color spaces', () => { + const surface = CanvasKit.MakeCanvasSurface('test', CanvasKit.ColorSpace.ADOBE_RGB); + expect(surface).toBeTruthy('Could not make surface'); + if (!surface.reportBackendTypeIsGPU()) { + console.log('Not expecting color space support in cpu backed suface.'); + return; + } + const canvas = surface.getCanvas(); + + let paint = new CanvasKit.Paint(); + paint.setColor(CanvasKit.RED, CanvasKit.ColorSpace.ADOBE_RGB); + canvas.drawPaint(paint); + paint.setColor(CanvasKit.RED, CanvasKit.ColorSpace.DISPLAY_P3); // 93.7 in adobeRGB + canvas.drawRect(CanvasKit.LTRBRect(200, 0, 400, 600), paint); + paint.setColor(CanvasKit.RED, CanvasKit.ColorSpace.SRGB); // 85.9 in adobeRGB + canvas.drawRect(CanvasKit.LTRBRect(400, 0, 600, 600), paint); + + // this test paints three bands of red, each the maximum red that a color space supports. + // They are each represented by skia by some color in the Adobe RGB space of the surface, + // as floats between 0 and 1. + + // TODO(nifong) readpixels and verify correctness after f32 readpixels bug is fixed + }); + }); // end describe('ColorSpace Support') + + describe('DOMMatrix support', () => { + gm('sweep_gradient_dommatrix', (canvas) => { + const paint = new CanvasKit.Paint(); + const shader = CanvasKit.Shader.MakeSweepGradient( + 100, 100, // x y coordinates + [CanvasKit.GREEN, CanvasKit.BLUE], + [0.0, 1.0], + CanvasKit.TileMode.Clamp, + new DOMMatrix().translate(-10, 100), + ); + expect(shader).toBeTruthy('Could not make shader'); + if (!shader) { + return; + } + + paint.setShader(shader); + canvas.drawPaint(paint); + + paint.delete(); + shader.delete(); + }); + + const radiansToDegrees = (rad) => { + return (rad / Math.PI) * 180; + }; + + // this should draw the same as concat_with4x4_canvas + gm('concat_dommatrix', (canvas) => { + const path = starPath(CanvasKit, CANVAS_WIDTH/2, CANVAS_HEIGHT/2); + const paint = new CanvasKit.Paint(); + paint.setAntiAlias(true); + canvas.clear(CanvasKit.WHITE); + canvas.concat(new DOMMatrix().translate(CANVAS_WIDTH/2, 0, 0)); + canvas.concat(new DOMMatrix().rotateAxisAngle(1, 0, 0, radiansToDegrees(Math.PI/3))); + canvas.concat(new DOMMatrix().rotateAxisAngle(0, 1, 0, radiansToDegrees(Math.PI/4))); + canvas.concat(new DOMMatrix().rotateAxisAngle(0, 0, 1, radiansToDegrees(Math.PI/16))); + canvas.concat(new DOMMatrix().translate(-CANVAS_WIDTH/2, 0, 0)); + + const localMatrix = canvas.getLocalToDevice(); + expect4x4MatricesToMatch([ + 0.693519, -0.137949, 0.707106, 91.944030, + 0.698150, 0.370924, -0.612372, -209.445297, + -0.177806, 0.918359, 0.353553, 53.342029, + 0 , 0 , 0 , 1 ], localMatrix); + + // Draw some stripes to help the eye detect the turn + const stripeWidth = 10; + paint.setColor(CanvasKit.BLACK); + for (let i = 0; i < CANVAS_WIDTH; i += 2*stripeWidth) { + canvas.drawRect(CanvasKit.LTRBRect(i, 0, i + stripeWidth, CANVAS_HEIGHT), paint); + } + + paint.setColor(CanvasKit.YELLOW); + canvas.drawPath(path, paint); + paint.delete(); + path.delete(); + }); + + it('throws if an invalid matrix is passed in', () => { + let threw; + try { + CanvasKit.ImageFilter.MakeMatrixTransform( + 'invalid matrix value', + { filter: CanvasKit.FilterMode.Linear }, + null + ) + threw = false; + } catch (e) { + threw = true; + } + expect(threw).toBeTrue(); + }); + }); // end describe('DOMMatrix support') + + it('can call subarray on a Malloced object', () => { + const mThings = CanvasKit.Malloc(Float32Array, 6); + mThings.toTypedArray().set([4, 5, 6, 7, 8, 9]); + expectTypedArraysToEqual(Float32Array.of(4, 5, 6, 7, 8, 9), mThings.toTypedArray()); + expectTypedArraysToEqual(Float32Array.of(4, 5, 6, 7, 8, 9), mThings.subarray(0)); + expectTypedArraysToEqual(Float32Array.of(7, 8, 9), mThings.subarray(3)); + expectTypedArraysToEqual(Float32Array.of(7), mThings.subarray(3, 4)); + expectTypedArraysToEqual(Float32Array.of(7, 8), mThings.subarray(3, 5)); + + // mutations on the subarray affect the entire array (because they are backed by the + // same memory) + mThings.subarray(3)[0] = 100.5; + expectTypedArraysToEqual(Float32Array.of(4, 5, 6, 100.5, 8, 9), mThings.toTypedArray()); + CanvasKit.Free(mThings); + }); + + function expectTypedArraysToEqual(expected, actual) { + expect(expected.constructor.name).toEqual(actual.constructor.name); + expect(expected.length).toEqual(actual.length); + for (let i = 0; i < expected.length; i++) { + expect(expected[i]).toBeCloseTo(actual[i], 5, `element ${i}`); + } + } + + it('can create a RasterDirectSurface', () => { + // Make enough space for a 5x5 8888 surface (4 bytes for R, G, B, A) + const rdsData = CanvasKit.Malloc(Uint8Array, 5 * 5 * 4); + const surface = CanvasKit.MakeRasterDirectSurface({ + 'width': 5, + 'height': 5, + 'colorType': CanvasKit.ColorType.RGBA_8888, + 'alphaType': CanvasKit.AlphaType.Premul, + 'colorSpace': CanvasKit.ColorSpace.SRGB, + }, rdsData, 5 * 4); + + surface.getCanvas().clear(CanvasKit.Color(200, 100, 0, 0.8)); + const pixels = rdsData.toTypedArray(); + // Check that the first pixels colors are right. + expect(pixels[0]).toEqual(160); // red (premul, 0.8 * 200) + expect(pixels[1]).toEqual(80); // green (premul, 0.8 * 100) + expect(pixels[2]).toEqual(0); // blue (premul, not that it matters) + expect(pixels[3]).toEqual(204); // alpha (0.8 * 255) + surface.delete(); + CanvasKit.Free(rdsData); + }); + + gm('makeImageFromTextureSource_TypedArray', (canvas, _, surface) => { + if (!CanvasKit.gpu) { + return; + } + // This creates and draws an Unpremul Image that is 1 pixel wide, 4 pixels tall with + // the colors listed below. + const pixels = Uint8Array.from([ + 255, 0, 0, 255, // opaque red + 0, 255, 0, 255, // opaque green + 0, 0, 255, 255, // opaque blue + 255, 0, 255, 100, // transparent purple + ]); + const img = surface.makeImageFromTextureSource(pixels, { + 'width': 1, + 'height': 4, + 'alphaType': CanvasKit.AlphaType.Unpremul, + 'colorType': CanvasKit.ColorType.RGBA_8888, + }); + canvas.drawImage(img, 1, 1, null); + + const info = img.getImageInfo(); + expect(info).toEqual({ + 'width': 1, + 'height': 4, + 'alphaType': CanvasKit.AlphaType.Unpremul, + 'colorType': CanvasKit.ColorType.RGBA_8888, + }); + const cs = img.getColorSpace(); + expect(CanvasKit.ColorSpace.Equals(cs, CanvasKit.ColorSpace.SRGB)).toBeTruthy(); + + cs.delete(); + img.delete(); + }); + + gm('makeImageFromTextureSource_PremulTypedArray', (canvas, _, surface) => { + if (!CanvasKit.gpu) { + return; + } + // This creates and draws an Unpremul Image that is 1 pixel wide, 4 pixels tall with + // the colors listed below. + const pixels = Uint8Array.from([ + 255, 0, 0, 255, // opaque red + 0, 255, 0, 255, // opaque green + 0, 0, 255, 255, // opaque blue + 100, 0, 100, 100, // transparent purple + ]); + const img = surface.makeImageFromTextureSource(pixels, { + 'width': 1, + 'height': 4, + 'alphaType': CanvasKit.AlphaType.Premul, + 'colorType': CanvasKit.ColorType.RGBA_8888, + }); + canvas.drawImage(img, 1, 1, null); + + const info = img.getImageInfo(); + expect(info).toEqual({ + 'width': 1, + 'height': 4, + 'alphaType': CanvasKit.AlphaType.Premul, + 'colorType': CanvasKit.ColorType.RGBA_8888, + }); + img.delete(); + }); + + gm('makeImageFromTextureSource_imgElement', (canvas, _, surface) => { + if (!CanvasKit.gpu) { + return; + } + // This makes an offscreen with the provided source. + const imageEle = new Image(); + imageEle.src = '/assets/mandrill_512.png'; + + // We need to wait until the image is loaded before the texture can use it. For good + // measure, we also wait for it to be decoded. + return imageEle.decode().then(() => { + const img = surface.makeImageFromTextureSource(imageEle); + // Make sure the texture is properly written to and Skia does not draw over it by + // by accident. + canvas.clear(CanvasKit.RED); + surface.updateTextureFromSource(img, imageEle); + canvas.drawImage(img, 0, 0, null); + + const info = img.getImageInfo(); + expect(info).toEqual({ + 'width': 512, // width and height should be derived from the image. + 'height': 512, + 'alphaType': CanvasKit.AlphaType.Unpremul, + 'colorType': CanvasKit.ColorType.RGBA_8888, + }); + img.delete(); + }); + }); + + gm('MakeLazyImageFromTextureSource_imgElement', (canvas) => { + if (!CanvasKit.gpu) { + return; + } + // This makes an offscreen with the provided source. + const imageEle = new Image(); + imageEle.src = '/assets/mandrill_512.png'; + + // We need to wait until the image is loaded before the texture can use it. For good + // measure, we also wait for it to be decoded. + return imageEle.decode().then(() => { + const img = CanvasKit.MakeLazyImageFromTextureSource(imageEle); + canvas.drawImage(img, 5, 5, null); + + const info = img.getImageInfo(); + expect(info).toEqual({ + 'width': 512, // width and height should be derived from the image. + 'height': 512, + 'alphaType': CanvasKit.AlphaType.Unpremul, + 'colorType': CanvasKit.ColorType.RGBA_8888, + }); + img.delete(); + }); + }); + + gm('MakeLazyImageFromTextureSource_imageInfo', (canvas) => { + if (!CanvasKit.gpu) { + return; + } + // This makes an offscreen with the provided source. + const imageEle = new Image(); + imageEle.src = '/assets/mandrill_512.png'; + + // We need to wait until the image is loaded before the texture can use it. For good + // measure, we also wait for it to be decoded. + return imageEle.decode().then(() => { + const img = CanvasKit.MakeLazyImageFromTextureSource(imageEle, { + 'width': 400, + 'height': 400, + 'alphaType': CanvasKit.AlphaType.Premul, + 'colorType': CanvasKit.ColorType.RGBA_8888, + }); + canvas.drawImage(img, 20, 20, null); + + img.delete(); + }); + }); + + it('encodes images in three different ways', () => { + // This creates and draws an Image that is 1 pixel wide, 4 pixels tall with + // the colors listed below. + const pixels = Uint8Array.from([ + 255, 0, 0, 255, // opaque red + 0, 255, 0, 255, // opaque green + 0, 0, 255, 255, // opaque blue + 255, 0, 255, 100, // transparent purple + ]); + const img = CanvasKit.MakeImage({ + 'width': 1, + 'height': 4, + 'alphaType': CanvasKit.AlphaType.Unpremul, + 'colorType': CanvasKit.ColorType.RGBA_8888, + 'colorSpace': CanvasKit.ColorSpace.SRGB + }, pixels, 4); + + let bytes = img.encodeToBytes(CanvasKit.ImageFormat.PNG, 100); + assertBytesDecodeToImage(bytes, 'png'); + bytes = img.encodeToBytes(CanvasKit.ImageFormat.JPEG, 90); + assertBytesDecodeToImage(bytes, 'jpeg'); + bytes = img.encodeToBytes(CanvasKit.ImageFormat.WEBP, 100); + assertBytesDecodeToImage(bytes, 'webp'); + + img.delete(); + }); + + function assertBytesDecodeToImage(bytes, format) { + expect(bytes).toBeTruthy('null output for ' + format); + const img = CanvasKit.MakeImageFromEncoded(bytes); + expect(img).toBeTruthy('Could not decode result from '+ format); + img && img.delete(); + } + + it('can make a render target', () => { + if (!CanvasKit.gpu) { + return; + } + const canvas = document.getElementById('test'); + const context = CanvasKit.GetWebGLContext(canvas); + const grContext = CanvasKit.MakeGrContext(context); + expect(grContext).toBeTruthy(); + const target = CanvasKit.MakeRenderTarget(grContext, 100, 100); + expect(target).toBeTruthy(); + target.delete(); + grContext.delete(); + }); + + gm('PathEffect_MakePath1D', (canvas) => { + // Based off //docs/examples/skpaint_path_1d_path_effect.cpp + canvas.clear(CanvasKit.WHITE); + + const path = new CanvasKit.Path(); + path.addOval(CanvasKit.XYWHRect(0, 0, 16, 6)); + + const paint = new CanvasKit.Paint(); + const effect = CanvasKit.PathEffect.MakePath1D( + path, 32, 0, CanvasKit.Path1DEffect.Rotate, + ); + paint.setColor(CanvasKit.Color(94, 53, 88, 1)); // deep purple + paint.setPathEffect(effect); + paint.setAntiAlias(true); + canvas.drawCircle(128, 128, 122, paint); + + path.delete(); + effect.delete(); + paint.delete(); + }); + + gm('PathEffect_MakePath2D', (canvas) => { + // Based off //docs/examples/skpaint_path_2d_path_effect.cpp + canvas.clear(CanvasKit.WHITE); + + const path = new CanvasKit.Path(); + path.moveTo(20, 30); + const points = [20, 20, 10, 30, 0, 30, 20, 10, 30, 10, 40, 0, 40, 10, + 50, 10, 40, 20, 40, 30, 20, 50, 20, 40, 30, 30, 20, 30]; + for (let i = 0; i < points.length; i += 2) { + path.lineTo(points[i], points[i+1]); + } + + const paint = new CanvasKit.Paint(); + const effect = CanvasKit.PathEffect.MakePath2D( + CanvasKit.Matrix.scaled(40, 40), path + ); + paint.setColor(CanvasKit.Color(53, 94, 59, 1)); // hunter green + paint.setPathEffect(effect); + paint.setAntiAlias(true); + canvas.drawRect(CanvasKit.LTRBRect(-20, -20, 300, 300), paint); + + path.delete(); + effect.delete(); + paint.delete(); + }); + + gm('PathEffect_MakeLine2D', (canvas) => { + // Based off //docs/examples/skpaint_line_2d_path_effect.cpp + canvas.clear(CanvasKit.WHITE); + + const lattice = CanvasKit.Matrix.multiply( + CanvasKit.Matrix.scaled(8, 8), + CanvasKit.Matrix.rotated(Math.PI / 6), + ); + + const paint = new CanvasKit.Paint(); + const effect = CanvasKit.PathEffect.MakeLine2D( + 2, lattice, + ); + paint.setColor(CanvasKit.Color(59, 53, 94, 1)); // dark blue + paint.setPathEffect(effect); + paint.setAntiAlias(true); + canvas.drawRect(CanvasKit.LTRBRect(20, 20, 300, 300), paint); + + effect.delete(); + paint.delete(); + }); +}); diff --git a/third_party/skia/modules/canvaskit/tests/bazel/font_test.js b/third_party/skia/modules/canvaskit/tests/bazel/font_test.js new file mode 100644 index 000000000000..88be1c866eb3 --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/font_test.js @@ -0,0 +1,470 @@ +describe('Font Behavior', () => { + let container; + + let notoSerifFontBuffer = null; + // This font is known to support kerning + const notoSerifFontLoaded = fetch('/assets/NotoSerif-Regular.ttf').then( + (response) => response.arrayBuffer()).then( + (buffer) => { + notoSerifFontBuffer = buffer; + }); + + let bungeeFontBuffer = null; + // This font has tofu for incorrect null terminators + // see https://bugs.chromium.org/p/skia/issues/detail?id=9314 + const bungeeFontLoaded = fetch('/assets/Bungee-Regular.ttf').then( + (response) => response.arrayBuffer()).then( + (buffer) => { + bungeeFontBuffer = buffer; + }); + + let colrv1FontBuffer = null; + // This font has glyphs for COLRv1. Also used in gms/colrv1.cpp + const colrv1FontLoaded = fetch('/assets/more_samples-glyf_colr_1.ttf').then( + (response) => response.arrayBuffer()).then( + (buffer) => { + colrv1FontBuffer = buffer; + }); + + beforeEach(async () => { + await EverythingLoaded; + await notoSerifFontLoaded; + await bungeeFontLoaded; + await colrv1FontLoaded; + container = document.createElement('div'); + container.innerHTML = ` + + `; + document.body.appendChild(container); + }); + + afterEach(() => { + document.body.removeChild(container); + }); + + gm('monospace_text_on_path', (canvas) => { + const paint = new CanvasKit.Paint(); + paint.setAntiAlias(true); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const font = new CanvasKit.Font(null, 24); + const fontPaint = new CanvasKit.Paint(); + fontPaint.setAntiAlias(true); + fontPaint.setStyle(CanvasKit.PaintStyle.Fill); + + + const arc = new CanvasKit.Path(); + arc.arcToOval(CanvasKit.LTRBRect(20, 40, 280, 300), -160, 140, true); + arc.lineTo(210, 140); + arc.arcToOval(CanvasKit.LTRBRect(20, 0, 280, 260), 160, -140, true); + + // Only 1 dot should show up in the image, because we run out of path. + const str = 'This téxt should follow the curve across contours...'; + const textBlob = CanvasKit.TextBlob.MakeOnPath(str, arc, font); + + canvas.drawPath(arc, paint); + canvas.drawTextBlob(textBlob, 0, 0, fontPaint); + + textBlob.delete(); + arc.delete(); + paint.delete(); + font.delete(); + fontPaint.delete(); + }); + + gm('serif_text_on_path', (canvas) => { + const notoSerif = CanvasKit.Typeface.MakeFreeTypeFaceFromData(notoSerifFontBuffer); + + const paint = new CanvasKit.Paint(); + paint.setAntiAlias(true); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const font = new CanvasKit.Font(notoSerif, 24); + const fontPaint = new CanvasKit.Paint(); + fontPaint.setAntiAlias(true); + fontPaint.setStyle(CanvasKit.PaintStyle.Fill); + + const arc = new CanvasKit.Path(); + arc.arcToOval(CanvasKit.LTRBRect(20, 40, 280, 300), -160, 140, true); + arc.lineTo(210, 140); + arc.arcToOval(CanvasKit.LTRBRect(20, 0, 280, 260), 160, -140, true); + + const str = 'This téxt should follow the curve across contours...'; + const textBlob = CanvasKit.TextBlob.MakeOnPath(str, arc, font, 60.5); + + canvas.drawPath(arc, paint); + canvas.drawTextBlob(textBlob, 0, 0, fontPaint); + + textBlob.delete(); + arc.delete(); + paint.delete(); + notoSerif.delete(); + font.delete(); + fontPaint.delete(); + }); + + // https://bugs.chromium.org/p/skia/issues/detail?id=9314 + gm('nullterminators_skbug_9314', (canvas) => { + const bungee = CanvasKit.Typeface.MakeFreeTypeFaceFromData(bungeeFontBuffer); + + // yellow, to make sure tofu is plainly visible + canvas.clear(CanvasKit.Color(255, 255, 0, 1)); + + const font = new CanvasKit.Font(bungee, 24); + const fontPaint = new CanvasKit.Paint(); + fontPaint.setAntiAlias(true); + fontPaint.setStyle(CanvasKit.PaintStyle.Fill); + + + const str = 'This is téxt'; + const textBlob = CanvasKit.TextBlob.MakeFromText(str + ' text blob', font); + + canvas.drawTextBlob(textBlob, 10, 50, fontPaint); + + canvas.drawText(str + ' normal', 10, 100, fontPaint, font); + + canvas.drawText('null terminator ->\u0000<- on purpose', 10, 150, fontPaint, font); + + textBlob.delete(); + bungee.delete(); + font.delete(); + fontPaint.delete(); + }); + + gm('textblobs_with_glyphs', (canvas) => { + canvas.clear(CanvasKit.WHITE); + const notoSerif = CanvasKit.Typeface.MakeFreeTypeFaceFromData(notoSerifFontBuffer); + + const font = new CanvasKit.Font(notoSerif, 24); + const bluePaint = new CanvasKit.Paint(); + bluePaint.setColor(CanvasKit.parseColorString('#04083f')); // arbitrary deep blue + bluePaint.setAntiAlias(true); + bluePaint.setStyle(CanvasKit.PaintStyle.Fill); + + const redPaint = new CanvasKit.Paint(); + redPaint.setColor(CanvasKit.parseColorString('#770b1e')); // arbitrary deep red + + const ids = notoSerif.getGlyphIDs('AEGIS ægis'); + expect(ids.length).toEqual(10); // one glyph id per glyph + expect(ids[0]).toEqual(36); // spot check this, should be consistent as long as the font is. + + const bounds = font.getGlyphBounds(ids, bluePaint); + expect(bounds.length).toEqual(40); // 4 measurements per glyph + expect(bounds[0]).toEqual(0); // again, spot check the measurements for the first glyph. + expect(bounds[1]).toEqual(-17); + expect(bounds[2]).toEqual(17); + expect(bounds[3]).toEqual(0); + + const widths = font.getGlyphWidths(ids, bluePaint); + expect(widths.length).toEqual(10); // 1 width per glyph + expect(widths[0]).toEqual(17); + + const topBlob = CanvasKit.TextBlob.MakeFromGlyphs(ids, font); + canvas.drawTextBlob(topBlob, 5, 30, bluePaint); + canvas.drawTextBlob(topBlob, 5, 60, redPaint); + topBlob.delete(); + + const mIDs = CanvasKit.MallocGlyphIDs(ids.length); + const mArr = mIDs.toTypedArray(); + mArr.set(ids); + + const mXforms = CanvasKit.Malloc(Float32Array, ids.length * 4); + const mXformsArr = mXforms.toTypedArray(); + // Draw each glyph rotated slightly and slightly lower than the glyph before it. + let currX = 0; + for (let i = 0; i < ids.length; i++) { + mXformsArr[i * 4] = Math.cos(-Math.PI / 16); // scos + mXformsArr[i * 4 + 1] = Math.sin(-Math.PI / 16); // ssin + mXformsArr[i * 4 + 2] = currX; // tx + mXformsArr[i * 4 + 3] = i*2; // ty + currX += widths[i]; + } + + const bottomBlob = CanvasKit.TextBlob.MakeFromRSXformGlyphs(mIDs, mXforms, font); + canvas.drawTextBlob(bottomBlob, 5, 110, bluePaint); + canvas.drawTextBlob(bottomBlob, 5, 140, redPaint); + bottomBlob.delete(); + + CanvasKit.Free(mIDs); + CanvasKit.Free(mXforms); + bluePaint.delete(); + redPaint.delete(); + notoSerif.delete(); + font.delete(); + }); + + it('can make a font mgr with passed in fonts', () => { + // CanvasKit.FontMgr.FromData([bungeeFontBuffer, notoSerifFontBuffer]) also works + const fontMgr = CanvasKit.FontMgr.FromData(bungeeFontBuffer, notoSerifFontBuffer); + expect(fontMgr).toBeTruthy(); + expect(fontMgr.countFamilies()).toBe(2); + // in debug mode, let's list them. + if (fontMgr.dumpFamilies) { + fontMgr.dumpFamilies(); + } + fontMgr.delete(); + }); + + it('can make a font provider with passed in fonts and aliases', () => { + const fontProvider = CanvasKit.TypefaceFontProvider.Make(); + fontProvider.registerFont(bungeeFontBuffer, "My Bungee Alias"); + fontProvider.registerFont(notoSerifFontBuffer, "My Noto Serif Alias"); + expect(fontProvider).toBeTruthy(); + expect(fontProvider.countFamilies()).toBe(2); + // in debug mode, let's list them. + if (fontProvider.dumpFamilies) { + fontProvider.dumpFamilies(); + } + fontProvider.delete(); + }); + + gm('various_font_formats', (canvas, fetchedByteBuffers) => { + const fontPaint = new CanvasKit.Paint(); + fontPaint.setAntiAlias(true); + fontPaint.setStyle(CanvasKit.PaintStyle.Fill); + const inputs = [{ + type: '.ttf font', + buffer: bungeeFontBuffer, + y: 60, + },{ + type: '.otf font', + buffer: fetchedByteBuffers[0], + y: 90, + },{ + type: '.woff font', + buffer: fetchedByteBuffers[1], + y: 120, + },{ + type: '.woff2 font', + buffer: fetchedByteBuffers[2], + y: 150, + }]; + + const defaultFont = new CanvasKit.Font(null, 24); + canvas.drawText(`The following should be ${inputs.length + 1} lines of text:`, 5, 30, fontPaint, defaultFont); + + for (const fontType of inputs) { + // smoke test that the font bytes loaded. + expect(fontType.buffer).toBeTruthy(fontType.type + ' did not load'); + + const typeface = CanvasKit.Typeface.MakeFreeTypeFaceFromData(fontType.buffer); + const font = new CanvasKit.Font(typeface, 24); + + if (font && typeface) { + canvas.drawText(fontType.type + ' loaded', 5, fontType.y, fontPaint, font); + } else { + canvas.drawText(fontType.type + ' *not* loaded', 5, fontType.y, fontPaint, defaultFont); + } + font && font.delete(); + typeface && typeface.delete(); + } + + // The only ttc font I could find was 14 MB big, so I'm using the smaller test font, + // which doesn't have very many glyphs in it, so we just check that we got a non-zero + // typeface for it. I was able to load NotoSansCJK-Regular.ttc just fine in a + // manual test. + const typeface = CanvasKit.Typeface.MakeFreeTypeFaceFromData(fetchedByteBuffers[3]); + expect(typeface).toBeTruthy('.ttc font'); + if (typeface) { + canvas.drawText('.ttc loaded', 5, 180, fontPaint, defaultFont); + typeface.delete(); + } else { + canvas.drawText('.ttc *not* loaded', 5, 180, fontPaint, defaultFont); + } + + defaultFont.delete(); + fontPaint.delete(); + }, '/assets/Roboto-Regular.otf', '/assets/Roboto-Regular.woff', '/assets/Roboto-Regular.woff2', '/assets/test.ttc'); + + it('can measure text very precisely with proper settings', () => { + const typeface = CanvasKit.Typeface.MakeFreeTypeFaceFromData(notoSerifFontBuffer); + const fontSizes = [257, 100, 11]; + // The point of these values is to let us know 1) we can measure to sub-pixel levels + // and 2) that measurements don't drastically change. If these change a little bit, + // just update them with the new values. For super-accurate readings, one could + // run a C++ snippet of code and compare the values, but that is likely unnecessary + // unless we suspect a bug with the bindings. + const expectedSizes = [241.06299, 93.79883, 10.31787]; + for (const idx in fontSizes) { + const font = new CanvasKit.Font(typeface, fontSizes[idx]); + font.setHinting(CanvasKit.FontHinting.None); + font.setLinearMetrics(true); + font.setSubpixel(true); + + const ids = font.getGlyphIDs('M'); + const widths = font.getGlyphWidths(ids); + expect(widths[0]).toBeCloseTo(expectedSizes[idx], 5); + font.delete(); + } + + typeface.delete(); + }); + + gm('font_edging', (canvas) => { + // Draw a small font scaled up to see the aliasing artifacts. + canvas.scale(8, 8); + canvas.clear(CanvasKit.WHITE); + const notoSerif = CanvasKit.Typeface.MakeFreeTypeFaceFromData(notoSerifFontBuffer); + + const textPaint = new CanvasKit.Paint(); + const annotationFont = new CanvasKit.Font(notoSerif, 6); + + canvas.drawText('Default', 5, 5, textPaint, annotationFont); + canvas.drawText('Alias', 5, 25, textPaint, annotationFont); + canvas.drawText('AntiAlias', 5, 45, textPaint, annotationFont); + canvas.drawText('Subpixel', 5, 65, textPaint, annotationFont); + + const testFont = new CanvasKit.Font(notoSerif, 20); + + canvas.drawText('SEA', 35, 15, textPaint, testFont); + testFont.setEdging(CanvasKit.FontEdging.Alias); + canvas.drawText('SEA', 35, 35, textPaint, testFont); + testFont.setEdging(CanvasKit.FontEdging.AntiAlias); + canvas.drawText('SEA', 35, 55, textPaint, testFont); + testFont.setEdging(CanvasKit.FontEdging.SubpixelAntiAlias); + canvas.drawText('SEA', 35, 75, textPaint, testFont); + + textPaint.delete(); + annotationFont.delete(); + testFont.delete(); + notoSerif.delete(); + }); + + it('can get the intercepts of glyphs', () => { + const font = new CanvasKit.Font(null, 100); + const ids = font.getGlyphIDs('I'); + expect(ids.length).toEqual(1); + + // aim for the middle of the I at 100 point, expecting a hit + let sects = font.getGlyphIntercepts(ids, [0, 0], -60, -40); + expect(sects.length).toEqual(2, "expected one pair of intercepts"); + expect(sects[0]).toBeCloseTo(25.39063, 5); + expect(sects[1]).toBeCloseTo(34.52148, 5); + + // aim below the baseline where we expect no intercepts + sects = font.getGlyphIntercepts(ids, [0, 0], 20, 30); + expect(sects.length).toEqual(0, "expected no intercepts"); + font.delete(); + }); + + it('can use mallocd and normal arrays', () => { + const font = new CanvasKit.Font(null, 100); + const ids = font.getGlyphIDs('I'); + expect(ids.length).toEqual(1); + const glyphID = ids[0]; + + // aim for the middle of the I at 100 point, expecting a hit + const sects = font.getGlyphIntercepts(Array.of(glyphID), Float32Array.of(0, 0), -60, -40); + expect(sects.length).toEqual(2); + expect(sects[0]).toBeLessThan(sects[1]); + // these values were recorded from the first time it was run + expect(sects[0]).toBeCloseTo(25.39063, 5); + expect(sects[1]).toBeCloseTo(34.52148, 5); + + const free_list = []; // will free CanvasKit.Malloc objects at the end + + // Want to exercise 4 different ways we can receive an array: + // 1. normal array + // 2. typed-array + // 3. CanvasKit.Malloc typeed-array + // 4. CavnasKit.Malloc (raw) + + const id_makers = [ + (id) => [ id ], + (id) => new Uint16Array([ id ]), + (id) => { + const a = CanvasKit.Malloc(Uint16Array, 1); + free_list.push(a); + const ta = a.toTypedArray(); + ta[0] = id; + return ta; // return typed-array + }, + (id) => { + const a = CanvasKit.Malloc(Uint16Array, 1); + free_list.push(a); + a.toTypedArray()[0] = id; + return a; // return raw obj + }, + ]; + const pos_makers = [ + (x, y) => [ x, y ], + (x, y) => new Float32Array([ x, y ]), + (x, y) => { + const a = CanvasKit.Malloc(Float32Array, 2); + free_list.push(a); + const ta = a.toTypedArray(); + ta[0] = x; + ta[1] = y; + return ta; // return typed-array + }, + (x, y) => { + const a = CanvasKit.Malloc(Float32Array, 2); + free_list.push(a); + const ta = a.toTypedArray(); + ta[0] = x; + ta[1] = y; + return a; // return raw obj + }, + ]; + + for (const idm of id_makers) { + for (const posm of pos_makers) { + const s = font.getGlyphIntercepts(idm(glyphID), posm(0, 0), -60, -40); + expect(s.length).toEqual(sects.length); + for (let i = 0; i < s.length; ++i) { + expect(s[i]).toEqual(sects[i]); + } + } + + } + + free_list.forEach(obj => CanvasKit.Free(obj)); + font.delete(); + }); + + gm('colrv1_gradients', (canvas) => { + // Inspired by gm/colrv1.cpp, specifically the kColorFontsRepoGradients one. + canvas.clear(CanvasKit.WHITE); + const colrFace = CanvasKit.Typeface.MakeFreeTypeFaceFromData(colrv1FontBuffer); + + const textPaint = new CanvasKit.Paint(); + const annotationFont = new CanvasKit.Font(null, 20); + + canvas.drawText('You should see 4 lines of gradient glyphs below', + 5, 25, textPaint, annotationFont); + + // These glyphIDs show off gradients in the COLRv1 font. + const glyphIDs = [2, 5, 6, 7, 8, 55]; + const testFont = new CanvasKit.Font(colrFace); + const sizes = [12, 18, 30, 100]; + let y = 30; + for (let i = 0; i < sizes.length; i++) { + const size = sizes[i]; + testFont.setSize(size); + const metrics = testFont.getMetrics(); + y -= metrics.ascent; + const positions = calculateRun(testFont, glyphIDs) + canvas.drawGlyphs(glyphIDs, positions, 5, y, testFont, textPaint); + y += metrics.descent + metrics.leading; + } + + textPaint.delete(); + annotationFont.delete(); + testFont.delete(); + colrFace.delete(); + }); + + function calculateRun(font, glyphIDs) { + const spacing = 5; // put 5 pixels between each glyph + const bounds = font.getGlyphBounds(glyphIDs); + const positions = [0, 0]; + let width = 0; + for (let i = 0; i < glyphIDs.length - 1; i++) { + // subtract the right bounds from the left bounds to get glyph width + const glyphWidth = bounds[2 + i*4] - bounds[i*4]; + width += glyphWidth + spacing + positions.push(width, 0); + } + return positions; + } +}); diff --git a/third_party/skia/modules/canvaskit/tests/bazel/matrix_test.js b/third_party/skia/modules/canvaskit/tests/bazel/matrix_test.js new file mode 100644 index 000000000000..bb6922378281 --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/matrix_test.js @@ -0,0 +1,210 @@ +describe('CanvasKit\'s Matrix Helpers', () => { + + beforeEach(async () => { + await EverythingLoaded; + }); + + const expectArrayCloseTo = (a, b, precision) => { + precision = precision || 14; // digits of precision in base 10 + expect(a.length).toEqual(b.length); + for (let i=0; i { + + it('can make a translated 3x3 matrix', () => { + expectArrayCloseTo( + CanvasKit.Matrix.translated(5, -1), + [1, 0, 5, + 0, 1, -1, + 0, 0, 1]); + }); + + it('can make a scaled 3x3 matrix', () => { + expectArrayCloseTo( + CanvasKit.Matrix.scaled(2, 3), + [2, 0, 0, + 0, 3, 0, + 0, 0, 1]); + }); + + it('can make a rotated 3x3 matrix', () => { + expectArrayCloseTo( + CanvasKit.Matrix.rotated(Math.PI, 9, 9), + [-1, 0, 18, + 0, -1, 18, + 0, 0, 1]); + }); + + it('can make a skewed 3x3 matrix', () => { + expectArrayCloseTo( + CanvasKit.Matrix.skewed(4, 3, 2, 1), + [1, 4, -8, + 3, 1, -3, + 0, 0, 1]); + }); + + it('can multiply 3x3 matrices', () => { + const a = [ + 0.1, 0.2, 0.3, + 0.0, 0.6, 0.7, + 0.9, -0.9, -0.8, + ]; + const b = [ + 2.0, 3.0, 4.0, + -3.0, -4.0, -5.0, + 7.0, 8.0, 9.0, + ]; + const expected = [ + 1.7, 1.9, 2.1, + 3.1, 3.2, 3.3, + -1.1, -0.1, 0.9, + ]; + expectArrayCloseTo( + CanvasKit.Matrix.multiply(a, b), + expected); + }); + + it('satisfies the inverse rule for 3x3 matrics', () => { + // a matrix times its inverse is the identity matrix. + const a = [ + 0.1, 0.2, 0.3, + 0.0, 0.6, 0.7, + 0.9, -0.9, -0.8, + ]; + const b = CanvasKit.Matrix.invert(a); + expectArrayCloseTo( + CanvasKit.Matrix.multiply(a, b), + CanvasKit.Matrix.identity()); + }); + + it('maps 2D points correctly with a 3x3 matrix', () => { + const a = [ + 3, 0, -4, + 0, 2, 4, + 0, 0, 1, + ]; + const points = [ + 0, 0, + 1, 1, + ]; + const expected = [ + -4, 4, + -1, 6, + ]; + expectArrayCloseTo( + CanvasKit.Matrix.mapPoints(a, points), + expected); + }); + + }); // describe 3x3 + describe('4x4 matrices', () => { + + it('can make a translated 4x4 matrix', () => { + expectArrayCloseTo( + CanvasKit.M44.translated([5, 6, 7]), + [1, 0, 0, 5, + 0, 1, 0, 6, + 0, 0, 1, 7, + 0, 0, 0, 1]); + }); + + it('can make a scaled 4x4 matrix', () => { + expectArrayCloseTo( + CanvasKit.M44.scaled([5, 6, 7]), + [5, 0, 0, 0, + 0, 6, 0, 0, + 0, 0, 7, 0, + 0, 0, 0, 1]); + }); + + it('can make a rotated 4x4 matrix', () => { + expectArrayCloseTo( + CanvasKit.M44.rotated([1,1,1], Math.PI), + [-1/3, 2/3, 2/3, 0, + 2/3, -1/3, 2/3, 0, + 2/3, 2/3, -1/3, 0, + 0, 0, 0, 1]); + }); + + it('can make a 4x4 matrix looking from eye to center', () => { + eye = [1, 0, 0]; + center = [1, 0, 1]; + up = [0, 1, 0] + expectArrayCloseTo( + CanvasKit.M44.lookat(eye, center, up), + [-1, 0, 0, 1, + 0, 1, 0, 0, + 0, 0, -1, 0, + 0, 0, 0, 1]); + }); + + it('can make a 4x4 prespective matrix', () => { + expectArrayCloseTo( + CanvasKit.M44.perspective(2, 10, Math.PI/2), + [1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1.5, 5, + 0, 0, -1, 1]); + }); + + it('can multiply 4x4 matrices', () => { + const a = [ + 0.1, 0.2, 0.3, 0.4, + 0.0, 0.6, 0.7, 0.8, + 0.9, -0.9, -0.8, -0.7, + -0.6, -0.5, -0.4, -0.3, + ]; + const b = [ + 2.0, 3.0, 4.0, 5.0, + -3.0, -4.0, -5.0, -6.0, + 7.0, 8.0, 9.0, 10.0, + -4.0, -3.0, -2.0, -1.0, + ]; + const expected = [ + 0.1, 0.7, 1.3, 1.9, + -0.1, 0.8, 1.7, 2.6, + 1.7, 2.0, 2.3, 2.6, + -1.3, -2.1, -2.9, -3.7, + ]; + expectArrayCloseTo( + CanvasKit.M44.multiply(a, b), + expected); + }); + + it('satisfies the identity rule for 4x4 matrices', () => { + const a = [ + 0.1, 0.2, 0.3, 0.4, + 0.0, 0.6, 0.7, 0.8, + 0.9, 0.9, -0.8, -0.7, + -0.6, -0.5, -0.4, -0.3, + ]; + const b = CanvasKit.M44.invert(a) + expectArrayCloseTo( + CanvasKit.M44.multiply(a, b), + CanvasKit.M44.identity()); + }); + + it('can create a camera setup matrix', () => { + const camAngle = Math.PI / 12; + const cam = { + 'eye' : [0, 0, 1 / Math.tan(camAngle/2) - 1], + 'coa' : [0, 0, 0], + 'up' : [0, 1, 0], + 'near' : 0.02, + 'far' : 4, + 'angle': camAngle, + }; + const mat = CanvasKit.M44.setupCamera(CanvasKit.LTRBRect(0, 0, 200, 200), 200, cam); + // these values came from an invocation of setupCamera visually inspected. + const expected = [ + 7.595754, 0, -0.5, 0, + 0, 7.595754, -0.5, 0, + 0, 0, 1.010050, -1324.368418, + 0, 0, -0.005, 7.595754]; + expectArrayCloseTo(mat, expected, 5); + }); + }); // describe 4x4 +}); diff --git a/third_party/skia/modules/canvaskit/tests/bazel/paragraph_test.js b/third_party/skia/modules/canvaskit/tests/bazel/paragraph_test.js new file mode 100644 index 000000000000..cb7442fdb5e1 --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/paragraph_test.js @@ -0,0 +1,1033 @@ +describe('Paragraph Behavior', function() { + let container; + + let notoSerifFontBuffer = null; + // This font is known to support kerning + const notoSerifFontLoaded = fetch('/assets/NotoSerif-Regular.ttf').then( + (response) => response.arrayBuffer()).then( + (buffer) => { + notoSerifFontBuffer = buffer; + }); + + let notoSerifBoldItalicFontBuffer = null; + const notoSerifBoldItalicFontLoaded = fetch('/assets/NotoSerif-BoldItalic.ttf').then( + (response) => response.arrayBuffer()).then( + (buffer) => { + notoSerifBoldItalicFontBuffer = buffer; + }); + + let emojiFontBuffer = null; + const emojiFontLoaded = fetch('/assets/NotoColorEmoji.ttf').then( + (response) => response.arrayBuffer()).then( + (buffer) => { + emojiFontBuffer = buffer; + }); + + let robotoFontBuffer = null; + const robotoFontLoaded = fetch('/assets/Roboto-Regular.otf').then( + (response) => response.arrayBuffer()).then( + (buffer) => { + robotoFontBuffer = buffer; + }); + + beforeEach(async () => { + await EverythingLoaded; + await notoSerifFontLoaded; + await notoSerifBoldItalicFontLoaded; + await emojiFontLoaded; + await robotoFontLoaded; + container = document.createElement('div'); + container.innerHTML = ` + + `; + document.body.appendChild(container); + }); + + afterEach(() => { + document.body.removeChild(container); + }); + + gm('paragraph_basic', (canvas) => { + const paint = new CanvasKit.Paint(); + + paint.setColor(CanvasKit.RED); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer); + expect(fontMgr.countFamilies()).toEqual(1); + expect(fontMgr.getFamilyName(0)).toEqual('Noto Serif'); + + const wrapTo = 200; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + color: CanvasKit.BLACK, + fontFamilies: ['Noto Serif'], + fontSize: 20, + }, + textAlign: CanvasKit.TextAlign.Center, + maxLines: 8, + ellipsis: '.._.', + }); + + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('VAVAVAVAVAVAVA\nVAVA\n'); + + const blueText = new CanvasKit.TextStyle({ + backgroundColor: CanvasKit.Color(234, 208, 232), // light pink + color: CanvasKit.Color(48, 37, 199), + fontFamilies: ['Noto Serif'], + decoration: CanvasKit.LineThroughDecoration, + decorationThickness: 1.5, // multiplier based on font size + fontSize: 24, + }); + builder.pushStyle(blueText); + builder.addText(`Gosh I hope this wraps at some point, it is such a long line.`) + builder.pop(); + builder.addText(` I'm done with the blue now. `) + builder.addText(`Now I hope we should stop before we get 8 lines tall. `); + const paragraph = builder.build(); + + paragraph.layout(wrapTo); + + expect(paragraph.didExceedMaxLines()).toBeTruthy(); + expect(paragraph.getAlphabeticBaseline()).toBeCloseTo(21.377, 3); + expect(paragraph.getHeight()).toEqual(240); + expect(paragraph.getIdeographicBaseline()).toBeCloseTo(27.236, 3); + expect(paragraph.getLongestLine()).toBeCloseTo(193.820, 3); + expect(paragraph.getMaxIntrinsicWidth()).toBeCloseTo(1444.250, 3); + expect(paragraph.getMaxWidth()).toEqual(200); + expect(paragraph.getMinIntrinsicWidth()).toBeCloseTo(172.360, 3); + expect(paragraph.getWordBoundary(8)).toEqual({ + start: 0, + end: 14, + }); + expect(paragraph.getWordBoundary(25)).toEqual({ + start: 25, + end: 26, + }); + + + const lineMetrics = paragraph.getLineMetrics(); + expect(lineMetrics.length).toEqual(8); // 8 lines worth of metrics + const flm = lineMetrics[0]; // First Line Metric + expect(flm.startIndex).toEqual(0); + expect(flm.endExcludingWhitespaces).toEqual(14) + expect(flm.endIndex).toEqual(14); // Including whitespaces but excluding newlines + expect(flm.endIncludingNewline).toEqual(15); + expect(flm.lineNumber).toEqual(0); + expect(flm.isHardBreak).toEqual(true); + expect(flm.ascent).toBeCloseTo(21.377, 3); + expect(flm.descent).toBeCloseTo(5.859, 3); + expect(flm.height).toBeCloseTo(27.000, 3); + expect(flm.width).toBeCloseTo(172.360, 3); + expect(flm.left).toBeCloseTo(13.818, 3); + expect(flm.baseline).toBeCloseTo(21.141, 3); + + canvas.clear(CanvasKit.WHITE); + canvas.drawRect(CanvasKit.LTRBRect(10, 10, wrapTo+10, 230), paint); + canvas.drawParagraph(paragraph, 10, 10); + + paint.delete(); + fontMgr.delete(); + paragraph.delete(); + builder.delete(); + }); + + gm('paragraph_foreground_and_background_color', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer); + expect(fontMgr.countFamilies()).toEqual(1); + expect(fontMgr.getFamilyName(0)).toEqual('Noto Serif'); + + const wrapTo = 200; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + foregroundColor: CanvasKit.Color4f(1.0, 0, 0, 0.8), + backgroundColor: CanvasKit.Color4f(0, 0, 1.0, 0.8), + // color should default to black + fontFamilies: ['Noto Serif'], + fontSize: 20, + }, + + textAlign: CanvasKit.TextAlign.Center, + }); + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText( + 'This text has a red foregroundColor and a blue backgroundColor.'); + const paragraph = builder.build(); + paragraph.layout(300); + + canvas.clear(CanvasKit.WHITE); + canvas.drawParagraph(paragraph, 10, 10); + + fontMgr.delete(); + paragraph.delete(); + builder.delete(); + }); + + gm('paragraph_foreground_stroke_paint', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer); + expect(fontMgr.countFamilies()).toEqual(1); + expect(fontMgr.getFamilyName(0)).toEqual('Noto Serif'); + + const wrapTo = 200; + + const textStyle = { + fontFamilies: ['Noto Serif'], + fontSize: 40, + }; + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: textStyle, + textAlign: CanvasKit.TextAlign.Center, + }); + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + + const fg = new CanvasKit.Paint(); + fg.setColor(CanvasKit.BLACK); + fg.setStyle(CanvasKit.PaintStyle.Stroke); + + const bg = new CanvasKit.Paint(); + bg.setColor(CanvasKit.TRANSPARENT); + + builder.pushPaintStyle(textStyle, fg, bg); + builder.addText( + 'This text is stroked in black and has no fill'); + const paragraph = builder.build(); + paragraph.layout(300); + + canvas.clear(CanvasKit.WHITE); + canvas.drawParagraph(paragraph, 10, 10); + // Again 5px to the right so you can tell the fill is transparent + canvas.drawParagraph(paragraph, 15, 10); + + fg.delete(); + bg.delete(); + fontMgr.delete(); + paragraph.delete(); + builder.delete(); + }); + + gm('paragraph_letter_word_spacing', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer); + expect(fontMgr.countFamilies()).toEqual(1); + expect(fontMgr.getFamilyName(0)).toEqual('Noto Serif'); + + const wrapTo = 200; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + // color should default to black + fontFamilies: ['Noto Serif'], + fontSize: 20, + letterSpacing: 5, + wordSpacing: 10, + }, + + textAlign: CanvasKit.TextAlign.Center, + }); + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText( + 'This text should have a lot of space between the letters and words.'); + const paragraph = builder.build(); + paragraph.layout(300); + + canvas.clear(CanvasKit.WHITE); + canvas.drawParagraph(paragraph, 10, 10); + + fontMgr.delete(); + paragraph.delete(); + builder.delete(); + }); + + gm('paragraph_shadows', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer); + expect(fontMgr.countFamilies()).toEqual(1); + expect(fontMgr.getFamilyName(0)).toEqual('Noto Serif'); + + const wrapTo = 200; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + color: CanvasKit.WHITE, + fontFamilies: ['Noto Serif'], + fontSize: 20, + shadows: [{color: CanvasKit.BLACK, blurRadius: 15}, + {color: CanvasKit.RED, blurRadius: 5, offset: [10, 10]}], + }, + + textAlign: CanvasKit.TextAlign.Center, + }); + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('This text should have a shadow behind it.'); + const paragraph = builder.build(); + paragraph.layout(300); + + canvas.clear(CanvasKit.WHITE); + canvas.drawParagraph(paragraph, 10, 10); + + fontMgr.delete(); + paragraph.delete(); + builder.delete(); + }); + + gm('paragraph_strut_style', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData(robotoFontBuffer); + expect(fontMgr.countFamilies()).toEqual(1); + expect(fontMgr.getFamilyName(0)).toEqual('Roboto'); + + // The lines in this paragraph should have the same height despite the third + // line having a larger font size. + const paraStrutStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + fontFamilies: ['Roboto'], + color: CanvasKit.BLACK, + }, + strutStyle: { + strutEnabled: true, + fontFamilies: ['Roboto'], + fontSize: 28, + heightMultiplier: 1.5, + forceStrutHeight: true, + }, + }); + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + fontFamilies: ['Roboto'], + color: CanvasKit.BLACK, + }, + }); + const roboto28Style = new CanvasKit.TextStyle({ + color: CanvasKit.BLACK, + fontFamilies: ['Roboto'], + fontSize: 28, + }); + const roboto32Style = new CanvasKit.TextStyle({ + color: CanvasKit.BLACK, + fontFamilies: ['Roboto'], + fontSize: 32, + }); + const builder = CanvasKit.ParagraphBuilder.Make(paraStrutStyle, fontMgr); + builder.pushStyle(roboto28Style); + builder.addText('This paragraph\n'); + builder.pushStyle(roboto32Style); + builder.addText('is using\n'); + builder.pop(); + builder.pushStyle(roboto28Style); + builder.addText('a strut style!\n'); + builder.pop(); + builder.pop(); + + const builder2 = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder2.pushStyle(roboto28Style); + builder2.addText('This paragraph\n'); + builder2.pushStyle(roboto32Style); + builder2.addText('is not using\n'); + builder2.pop(); + builder2.pushStyle(roboto28Style); + builder2.addText('a strut style!\n'); + builder2.pop(); + builder2.pop(); + + const paragraph = builder.build(); + paragraph.layout(300); + + const paragraph2 = builder2.build(); + paragraph2.layout(300); + + canvas.clear(CanvasKit.WHITE); + canvas.drawParagraph(paragraph, 10, 10); + canvas.drawParagraph(paragraph2, 220, 10); + + fontMgr.delete(); + paragraph.delete(); + builder.delete(); + }); + + gm('paragraph_font_features', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData(robotoFontBuffer); + expect(fontMgr.countFamilies()).toEqual(1); + expect(fontMgr.getFamilyName(0)).toEqual('Roboto'); + + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + color: CanvasKit.BLACK, + fontFamilies: ['Roboto'], + fontSize: 30, + fontFeatures: [{name: 'smcp', value: 1}] + }, + textAlign: CanvasKit.TextAlign.Center, + }); + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('This Text Should Be In Small Caps'); + const paragraph = builder.build(); + paragraph.layout(300); + + canvas.clear(CanvasKit.WHITE); + canvas.drawParagraph(paragraph, 10, 10); + + fontMgr.delete(); + paragraph.delete(); + builder.delete(); + }); + + gm('paragraph_placeholders', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData(robotoFontBuffer); + expect(fontMgr.countFamilies()).toEqual(1); + expect(fontMgr.getFamilyName(0)).toEqual('Roboto'); + + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + color: CanvasKit.BLACK, + fontFamilies: ['Roboto'], + fontSize: 20, + }, + textAlign: CanvasKit.TextAlign.Center, + }); + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('There should be '); + builder.addPlaceholder(10, 10, CanvasKit.PlaceholderAlignment.AboveBaseline, + CanvasKit.TextBaseline.Ideographic); + builder.addText('a space in this sentence.\n'); + + builder.addText('There should be '); + builder.addPlaceholder(10, 10, CanvasKit.PlaceholderAlignment.BelowBaseline, + CanvasKit.TextBaseline.Ideographic); + builder.addText('a dropped space in this sentence.\n'); + + builder.addText('There should be '); + builder.addPlaceholder(10, 10, null, null, 20); + builder.addText('an offset space in this sentence.\n'); + const paragraph = builder.build(); + paragraph.layout(300); + + let rects = paragraph.getRectsForPlaceholders(); + + canvas.clear(CanvasKit.WHITE); + canvas.drawParagraph(paragraph, 10, 10); + + for (const rect of rects) { + const p = new CanvasKit.Paint(); + p.setColor(CanvasKit.Color(0, 0, 255)); + p.setStyle(CanvasKit.PaintStyle.Stroke); + // Account for the (10, 10) offset when we painted the paragraph. + const placeholder = + CanvasKit.LTRBRect(rect[0]+10,rect[1]+10,rect[2]+10,rect[3]+10); + canvas.drawRect(placeholder, p); + p.delete(); + } + + fontMgr.delete(); + paragraph.delete(); + builder.delete(); + }); + + // loosely based on SkParagraph_GetRectsForRangeParagraph test in c++ code. + gm('paragraph_rects', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer); + + const wrapTo = 550; + const hStyle = CanvasKit.RectHeightStyle.Max; + const wStyle = CanvasKit.RectWidthStyle.Tight; + + const mallocedColor = CanvasKit.Malloc(Float32Array, 4); + mallocedColor.toTypedArray().set([0.9, 0.1, 0.1, 1.0]); + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + color: mallocedColor, + fontFamilies: ['Noto Serif'], + fontSize: 50, + }, + textAlign: CanvasKit.TextAlign.Left, + maxLines: 10, + }); + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('12345, \"67890\" 12345 67890 12345 67890 12345 67890 12345 67890 12345 67890 12345'); + const paragraph = builder.build(); + CanvasKit.Free(mallocedColor); + + paragraph.layout(wrapTo); + + const ranges = [ + { + start: 0, + end: 0, + expectedNum: 0, + }, + { + start: 0, + end: 1, + expectedNum: 1, + color: CanvasKit.Color(200, 0, 200), + }, + { + start: 2, + end: 8, + expectedNum: 1, + color: CanvasKit.Color(255, 0, 0), + }, + { + start: 8, + end: 21, + expectedNum: 1, + color: CanvasKit.Color(0, 255, 0), + }, + { + start: 30, + end: 100, + expectedNum: 4, + color: CanvasKit.Color(0, 0, 255), + }, + { + start: 19, + end: 22, + expectedNum: 1, + color: CanvasKit.Color(0, 200, 200), + } + ]; + canvas.clear(CanvasKit.WHITE); + // Move it down a bit so we can see the rects that go above 0,0 + canvas.translate(10, 10); + canvas.drawParagraph(paragraph, 0, 0); + + for (const test of ranges) { + let rects = paragraph.getRectsForRange(test.start, test.end, hStyle, wStyle); + expect(Array.isArray(rects)).toEqual(true); + expect(rects.length).toEqual(test.expectedNum); + + for (const rect of rects) { + expect(rect.direction.value).toEqual(CanvasKit.TextDirection.LTR.value); + const p = new CanvasKit.Paint(); + p.setColor(test.color); + p.setStyle(CanvasKit.PaintStyle.Stroke); + canvas.drawRect(rect, p); + p.delete(); + } + } + expect(CanvasKit.RectHeightStyle.Strut).toBeTruthy(); + + fontMgr.delete(); + paragraph.delete(); + builder.delete(); + }); + + gm('paragraph_emoji', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData([notoSerifFontBuffer, emojiFontBuffer]); + expect(fontMgr.countFamilies()).toEqual(2); + expect(fontMgr.getFamilyName(0)).toEqual('Noto Serif'); + expect(fontMgr.getFamilyName(1)).toEqual('Noto Color Emoji'); + + const wrapTo = 450; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + color: CanvasKit.BLACK, + // Put text first, otherwise the "emoji space" is used and that looks bad. + fontFamilies: ['Noto Serif', 'Noto Color Emoji'], + fontSize: 30, + }, + textAlign: CanvasKit.TextAlign.Left, + maxLines: 10, + }); + + const textStyle = new CanvasKit.TextStyle({ + color: CanvasKit.BLACK, + // The number 4 matches an emoji and looks strange w/o this additional style. + fontFamilies: ['Noto Serif'], + fontSize: 30, + }); + + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.pushStyle(textStyle); + builder.addText('4 flags on following line:\n'); + builder.pop(); + builder.addText(`🏳️‍🌈 🇮🇹 🇱🇷 🇺🇸\n`); + builder.addText('Rainbow Italy Liberia USA\n\n'); + builder.addText('Emoji below should wrap:\n'); + builder.addText(`🍕🍔🍟🥝🍱🕶🎩👩‍👩‍👦👩‍👩‍👧‍👧👩‍👩‍👦👩‍👩‍👧‍👧👩‍👩‍👦👩‍👩‍👧‍👧👩‍👩‍👦👩‍👩‍👧‍👧👩‍👩‍👦👩‍👩‍👧‍👧👩‍👩‍👦👩‍👩‍👧‍👧👩‍👩‍👦👩‍👩‍👧‍👧`); + const paragraph = builder.build(); + + paragraph.layout(wrapTo); + + canvas.clear(CanvasKit.WHITE); + canvas.drawParagraph(paragraph, 10, 10); + + const paint = new CanvasKit.Paint(); + paint.setColor(CanvasKit.RED); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + canvas.drawRect(CanvasKit.LTRBRect(10, 10, wrapTo+10, wrapTo+10), paint); + + fontMgr.delete(); + paint.delete(); + builder.delete(); + paragraph.delete(); + }); + + gm('paragraph_hits', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData([notoSerifFontBuffer]); + + const wrapTo = 300; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + color: CanvasKit.BLACK, + fontFamilies: ['Noto Serif'], + fontSize: 50, + }, + textAlign: CanvasKit.TextAlign.Left, + maxLines: 10, + }); + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('UNCOPYRIGHTABLE'); + const paragraph = builder.build(); + + paragraph.layout(wrapTo); + + canvas.clear(CanvasKit.WHITE); + canvas.translate(10, 10); + canvas.drawParagraph(paragraph, 0, 0); + + const paint = new CanvasKit.Paint(); + + paint.setColor(CanvasKit.Color(255, 0, 0)); + paint.setStyle(CanvasKit.PaintStyle.Fill); + canvas.drawCircle(20, 30, 3, paint); + + paint.setColor(CanvasKit.Color(0, 0, 255)); + canvas.drawCircle(80, 90, 3, paint); + + paint.setColor(CanvasKit.Color(0, 255, 0)); + canvas.drawCircle(280, 2, 3, paint); + + let posU = paragraph.getGlyphPositionAtCoordinate(20, 30); + expect(posU).toEqual({ + pos: 1, + affinity: CanvasKit.Affinity.Upstream + }); + let posA = paragraph.getGlyphPositionAtCoordinate(80, 90); + expect(posA).toEqual({ + pos: 11, + affinity: CanvasKit.Affinity.Downstream + }); + let posG = paragraph.getGlyphPositionAtCoordinate(280, 2); + expect(posG).toEqual({ + pos: 9, + affinity: CanvasKit.Affinity.Upstream + }); + + builder.delete(); + paragraph.delete(); + paint.delete(); + fontMgr.delete(); + }); + + gm('paragraph_styles', (canvas) => { + const paint = new CanvasKit.Paint(); + + paint.setColor(CanvasKit.RED); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer, notoSerifBoldItalicFontBuffer); + + const wrapTo = 250; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + fontFamilies: ['Noto Serif'], + fontSize: 20, + fontStyle: { + weight: CanvasKit.FontWeight.Light, + } + }, + textDirection: CanvasKit.TextDirection.RTL, + disableHinting: true, + }); + + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('Default text\n'); + + const boldItalic = new CanvasKit.TextStyle({ + color: CanvasKit.RED, + fontFamilies: ['Noto Serif'], + fontSize: 20, + fontStyle: { + weight: CanvasKit.FontWeight.Bold, + width: CanvasKit.FontWidth.Expanded, + slant: CanvasKit.FontSlant.Italic, + } + }); + builder.pushStyle(boldItalic); + builder.addText(`Bold, Expanded, Italic\n`); + builder.pop(); + builder.addText(`back to normal`); + const paragraph = builder.build(); + + paragraph.layout(wrapTo); + + canvas.clear(CanvasKit.WHITE); + + canvas.drawRect(CanvasKit.LTRBRect(10, 10, wrapTo+10, wrapTo+10), paint); + canvas.drawParagraph(paragraph, 10, 10); + + paint.delete(); + paragraph.delete(); + builder.delete(); + fontMgr.delete(); + }); + + gm('paragraph_font_provider', (canvas) => { + const paint = new CanvasKit.Paint(); + + paint.setColor(CanvasKit.RED); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + // Register Noto Serif as 'sans-serif'. + const fontSrc = CanvasKit.TypefaceFontProvider.Make(); + fontSrc.registerFont(notoSerifFontBuffer, 'sans-serif'); + fontSrc.registerFont(notoSerifBoldItalicFontBuffer, 'sans-serif'); + + const wrapTo = 250; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + fontFamilies: ['sans-serif'], + fontSize: 20, + fontStyle: { + weight: CanvasKit.FontWeight.Light, + } + }, + textDirection: CanvasKit.TextDirection.RTL, + disableHinting: true, + }); + + const builder = CanvasKit.ParagraphBuilder.MakeFromFontProvider(paraStyle, fontSrc); + builder.addText('Default text\n'); + + const boldItalic = new CanvasKit.TextStyle({ + color: CanvasKit.RED, + fontFamilies: ['sans-serif'], + fontSize: 20, + fontStyle: { + weight: CanvasKit.FontWeight.Bold, + width: CanvasKit.FontWidth.Expanded, + slant: CanvasKit.FontSlant.Italic, + } + }); + builder.pushStyle(boldItalic); + builder.addText(`Bold, Expanded, Italic\n`); + builder.pop(); + builder.addText(`back to normal`); + const paragraph = builder.build(); + + paragraph.layout(wrapTo); + + canvas.clear(CanvasKit.WHITE); + + canvas.drawRect(CanvasKit.LTRBRect(10, 10, wrapTo+10, wrapTo+10), paint); + canvas.drawParagraph(paragraph, 10, 10); + + paint.delete(); + paragraph.delete(); + builder.delete(); + fontSrc.delete(); + }); + + gm('paragraph_text_styles', (canvas) => { + const paint = new CanvasKit.Paint(); + + paint.setColor(CanvasKit.GREEN); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer); + expect(fontMgr.countFamilies()).toEqual(1); + expect(fontMgr.getFamilyName(0)).toEqual('Noto Serif'); + + const wrapTo = 200; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + color: CanvasKit.BLACK, + fontFamilies: ['Noto Serif'], + fontSize: 20, + decoration: CanvasKit.UnderlineDecoration, + decorationThickness: 1.5, // multiplier based on font size + decorationStyle: CanvasKit.DecorationStyle.Wavy, + }, + }); + + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('VAVAVAVAVAVAVA\nVAVA\n'); + + const blueText = new CanvasKit.TextStyle({ + backgroundColor: CanvasKit.Color(234, 208, 232), // light pink + color: CanvasKit.Color(48, 37, 199), + fontFamilies: ['Noto Serif'], + textBaseline: CanvasKit.TextBaseline.Ideographic, + decoration: CanvasKit.LineThroughDecoration, + decorationThickness: 1.5, // multiplier based on font size + }); + builder.pushStyle(blueText); + builder.addText(`Gosh I hope this wraps at some point, it is such a long line.`); + builder.pop(); + builder.addText(` I'm done with the blue now. `); + builder.addText(`Now I hope we should stop before we get 8 lines tall. `); + const paragraph = builder.build(); + + paragraph.layout(wrapTo); + + expect(paragraph.getAlphabeticBaseline()).toBeCloseTo(21.377, 3); + expect(paragraph.getHeight()).toEqual(227); + expect(paragraph.getIdeographicBaseline()).toBeCloseTo(27.236, 3); + expect(paragraph.getLongestLine()).toBeCloseTo(195.664, 3); + expect(paragraph.getMaxIntrinsicWidth()).toBeCloseTo(1167.140, 3); + expect(paragraph.getMaxWidth()).toEqual(200); + expect(paragraph.getMinIntrinsicWidth()).toBeCloseTo(172.360, 3); + // Check "VAVAVAVAVAVAVA" + expect(paragraph.getWordBoundary(8)).toEqual({ + start: 0, + end: 14, + }); + // Check "I" + expect(paragraph.getWordBoundary(25)).toEqual({ + start: 25, + end: 26, + }); + + canvas.clear(CanvasKit.WHITE); + canvas.drawRect(CanvasKit.LTRBRect(10, 10, wrapTo+10, 230), paint); + canvas.drawParagraph(paragraph, 10, 10); + + paint.delete(); + fontMgr.delete(); + paragraph.delete(); + builder.delete(); + }); + + gm('paragraph_text_styles_mixed_leading_distribution', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer); + expect(fontMgr.countFamilies()).toEqual(1); + expect(fontMgr.getFamilyName(0)).toEqual('Noto Serif'); + + const wrapTo = 200; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + color: CanvasKit.BLACK, + backgroundColor: CanvasKit.Color(234, 208, 232), // light pink + fontFamilies: ['Noto Serif'], + fontSize: 10, + heightMultiplier: 10, + }, + }); + + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('Not half leading'); + + const halfLeadingText = new CanvasKit.TextStyle({ + color: CanvasKit.Color(48, 37, 199), + backgroundColor: CanvasKit.Color(234, 208, 232), // light pink + fontFamilies: ['Noto Serif'], + fontSize: 10, + heightMultiplier: 10, + halfLeading: true, + }); + builder.pushStyle(halfLeadingText); + builder.addText('Half Leading Text'); + const paragraph = builder.build(); + + paragraph.layout(wrapTo); + canvas.clear(CanvasKit.WHITE); + canvas.drawParagraph(paragraph, 0, 0); + + fontMgr.delete(); + paragraph.delete(); + builder.delete(); + }); + + gm('paragraph_mixed_text_height_behavior', (canvas) => { + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer); + expect(fontMgr.countFamilies()).toEqual(1); + expect(fontMgr.getFamilyName(0)).toEqual('Noto Serif'); + canvas.clear(CanvasKit.WHITE); + const paint = new CanvasKit.Paint(); + paint.setColor(CanvasKit.RED); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const wrapTo = 220; + const behaviors = ["All", "DisableFirstAscent", "DisableLastDescent", "DisableAll"]; + + for (let i = 0; i < behaviors.length; i++) { + const style = new CanvasKit.ParagraphStyle({ + textStyle: { + color: CanvasKit.BLACK, + fontFamilies: ['Noto Serif'], + fontSize: 20, + heightMultiplier: 3, // make the difference more obvious + }, + textHeightBehavior: CanvasKit.TextHeightBehavior[behaviors[i]], + }); + const builder = CanvasKit.ParagraphBuilder.Make(style, fontMgr); + builder.addText('Text height behavior\nof '+behaviors[i]); + const paragraph = builder.build(); + paragraph.layout(wrapTo); + canvas.drawParagraph(paragraph, 0, 150 * i); + canvas.drawRect(CanvasKit.LTRBRect(0, 150 * i, wrapTo, 150 * i + 120), paint); + paragraph.delete(); + builder.delete(); + } + paint.delete(); + fontMgr.delete(); + }); + + it('should not crash if we omit font family on pushed textStyle', () => { + const surface = CanvasKit.MakeCanvasSurface('test'); + expect(surface).toBeTruthy('Could not make surface'); + + const canvas = surface.getCanvas(); + const paint = new CanvasKit.Paint(); + + paint.setColor(CanvasKit.RED); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer, notoSerifBoldItalicFontBuffer); + + const wrapTo = 250; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + fontFamilies: ['Noto Serif'], + fontSize: 20, + }, + textDirection: CanvasKit.TextDirection.RTL, + disableHinting: true, + }); + + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('Default text\n'); + + const boldItalic = new CanvasKit.TextStyle({ + fontStyle: { + weight: CanvasKit.FontWeight.Bold, + slant: CanvasKit.FontSlant.Italic, + } + }); + builder.pushStyle(boldItalic); + builder.addText(`Bold, Italic\n`); // doesn't show up, but we don't crash + builder.pop(); + builder.addText(`back to normal`); + const paragraph = builder.build(); + + paragraph.layout(wrapTo); + + canvas.clear(CanvasKit.WHITE); + canvas.drawRect(CanvasKit.LTRBRect(10, 10, wrapTo+10, wrapTo+10), paint); + canvas.drawParagraph(paragraph, 10, 10); + + surface.flush(); + + paragraph.delete(); + builder.delete(); + paint.delete(); + fontMgr.delete(); + }); + + it('should not crash if we omit font family on paragraph style', () => { + const surface = CanvasKit.MakeCanvasSurface('test'); + expect(surface).toBeTruthy('Could not make surface'); + + const canvas = surface.getCanvas(); + const paint = new CanvasKit.Paint(); + + paint.setColor(CanvasKit.RED); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer, notoSerifBoldItalicFontBuffer); + + const wrapTo = 250; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + fontSize: 20, + }, + textDirection: CanvasKit.TextDirection.RTL, + disableHinting: true, + }); + + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('Default text\n'); + + const boldItalic = new CanvasKit.TextStyle({ + fontStyle: { + weight: CanvasKit.FontWeight.Bold, + slant: CanvasKit.FontSlant.Italic, + } + }); + builder.pushStyle(boldItalic); + builder.addText(`Bold, Italic\n`); + builder.pop(); + builder.addText(`back to normal`); + const paragraph = builder.build(); + + paragraph.layout(wrapTo); + + canvas.clear(CanvasKit.WHITE); + canvas.drawRect(CanvasKit.LTRBRect(10, 10, wrapTo+10, wrapTo+10), paint); + canvas.drawParagraph(paragraph, 10, 10); + + surface.flush(); + + paragraph.delete(); + paint.delete(); + fontMgr.delete(); + builder.delete(); + }); + + gm('paragraph builder with reset', (canvas) => { + canvas.clear(CanvasKit.WHITE); + const fontMgr = CanvasKit.FontMgr.FromData(notoSerifFontBuffer, notoSerifBoldItalicFontBuffer); + + const wrapTo = 250; + + const paraStyle = new CanvasKit.ParagraphStyle({ + textStyle: { + fontSize: 20, + }, + }); + + const builder = CanvasKit.ParagraphBuilder.Make(paraStyle, fontMgr); + builder.addText('Default text\n'); + + const boldItalic = new CanvasKit.TextStyle({ + fontStyle: { + weight: CanvasKit.FontWeight.Bold, + slant: CanvasKit.FontSlant.Italic, + } + }); + builder.pushStyle(boldItalic); + builder.addText(`Bold, Italic\n`); + builder.pop(); + const paragraph = builder.build(); + paragraph.layout(wrapTo); + + builder.reset(); + builder.addText('This builder has been reused\n'); + + builder.pushStyle(boldItalic); + builder.addText(`2 Bold, Italic\n`); + builder.pop(); + builder.addText(`2 back to normal`); + const paragraph2 = builder.build(); + paragraph2.layout(wrapTo); + + canvas.drawParagraph(paragraph, 10, 10); + canvas.drawParagraph(paragraph2, 10, 100); + + paragraph.delete(); + paragraph2.delete(); + fontMgr.delete(); + builder.delete(); + }); +}); diff --git a/third_party/skia/modules/canvaskit/tests/bazel/path_test.js b/third_party/skia/modules/canvaskit/tests/bazel/path_test.js new file mode 100644 index 000000000000..d6c92cddad69 --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/path_test.js @@ -0,0 +1,580 @@ +describe('Path Behavior', () => { + let container; + + beforeEach(async () => { + await EverythingLoaded; + container = document.createElement('div'); + container.innerHTML = ` + + `; + document.body.appendChild(container); + }); + + afterEach(() => { + document.body.removeChild(container); + }); + + gm('path_api_example', (canvas) => { + const paint = new CanvasKit.Paint(); + paint.setStrokeWidth(1.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(0, 0, 0, 1.0)); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const path = new CanvasKit.Path(); + path.moveTo(20, 5); + path.lineTo(30, 20); + path.lineTo(40, 10); + path.lineTo(50, 20); + path.lineTo(60, 0); + path.lineTo(20, 5); + + path.moveTo(20, 80); + path.cubicTo(90, 10, 160, 150, 190, 10); + + path.moveTo(36, 148); + path.quadTo(66, 188, 120, 136); + path.lineTo(36, 148); + + path.moveTo(150, 180); + path.arcToTangent(150, 100, 50, 200, 20); + path.lineTo(160, 160); + + path.moveTo(20, 120); + path.lineTo(20, 120); + + path.transform([2, 0, 0, + 0, 2, 0, + 0, 0, 1 ]); + + canvas.drawPath(path, paint); + + const rrect = CanvasKit.RRectXY([100, 10, 140, 62], 10, 4); + + const rrectPath = new CanvasKit.Path().addRRect(rrect, true); + + canvas.drawPath(rrectPath, paint); + + rrectPath.delete(); + path.delete(); + paint.delete(); + // See PathKit for more tests, since they share implementation + }); + + it('can create a path from an SVG string', () => { + //.This is a parallelogram from + // https://upload.wikimedia.org/wikipedia/commons/e/e7/Simple_parallelogram.svg + const path = CanvasKit.Path.MakeFromSVGString( + 'M 205,5 L 795,5 L 595,295 L 5,295 L 205,5 z'); + + const cmds = path.toCmds(); + expect(cmds).toBeTruthy(); + // 1 move, 4 lines, 1 close + // each element in cmds is an array, with index 0 being the verb, and the rest being args + expect(cmds).toEqual(Float32Array.of( + CanvasKit.MOVE_VERB, 205, 5, + CanvasKit.LINE_VERB, 795, 5, + CanvasKit.LINE_VERB, 595, 295, + CanvasKit.LINE_VERB, 5, 295, + CanvasKit.LINE_VERB, 205, 5, + CanvasKit.CLOSE_VERB)); + path.delete(); + }); + + it('can create a path by combining two other paths', () => { + // Get the intersection of two overlapping squares and verify that it is the smaller square. + const pathOne = new CanvasKit.Path(); + pathOne.addRect([10, 10, 20, 20]); + + const pathTwo = new CanvasKit.Path(); + pathTwo.addRect([15, 15, 30, 30]); + + const path = CanvasKit.Path.MakeFromOp(pathOne, pathTwo, CanvasKit.PathOp.Intersect); + const cmds = path.toCmds(); + expect(cmds).toBeTruthy(); + expect(cmds).toEqual(Float32Array.of( + CanvasKit.MOVE_VERB, 15, 15, + CanvasKit.LINE_VERB, 20, 15, + CanvasKit.LINE_VERB, 20, 20, + CanvasKit.LINE_VERB, 15, 20, + CanvasKit.CLOSE_VERB)); + path.delete(); + pathOne.delete(); + pathTwo.delete(); + }); + + it('can create an SVG string from a path', () => { + const cmds = [CanvasKit.MOVE_VERB, 205, 5, + CanvasKit.LINE_VERB, 795, 5, + CanvasKit.LINE_VERB, 595, 295, + CanvasKit.LINE_VERB, 5, 295, + CanvasKit.LINE_VERB, 205, 5, + CanvasKit.CLOSE_VERB]; + const path = CanvasKit.Path.MakeFromCmds(cmds); + + const svgStr = path.toSVGString(); + // We output it in terse form, which is different than Wikipedia's version + expect(svgStr).toEqual('M205 5L795 5L595 295L5 295L205 5Z'); + path.delete(); + }); + + it('can create a path with malloced verbs, points, weights', () => { + const mVerbs = CanvasKit.Malloc(Uint8Array, 6); + const mPoints = CanvasKit.Malloc(Float32Array, 18); + const mWeights = CanvasKit.Malloc(Float32Array, 1); + mVerbs.toTypedArray().set([CanvasKit.MOVE_VERB, CanvasKit.LINE_VERB, + CanvasKit.QUAD_VERB, CanvasKit.CONIC_VERB, CanvasKit.CUBIC_VERB, CanvasKit.CLOSE_VERB + ]); + + mPoints.toTypedArray().set([ + 1,2, // moveTo + 3,4, // lineTo + 5,6,7,8, // quadTo + 9,10,11,12, // conicTo + 13,14,15,16,17,18, // cubicTo + ]); + + mWeights.toTypedArray().set([117]); + + let path = CanvasKit.Path.MakeFromVerbsPointsWeights(mVerbs, mPoints, mWeights); + + let cmds = path.toCmds(); + expect(cmds).toEqual(Float32Array.of( + CanvasKit.MOVE_VERB, 1, 2, + CanvasKit.LINE_VERB, 3, 4, + CanvasKit.QUAD_VERB, 5, 6, 7, 8, + CanvasKit.CONIC_VERB, 9, 10, 11, 12, 117, + CanvasKit.CUBIC_VERB, 13, 14, 15, 16, 17, 18, + CanvasKit.CLOSE_VERB, + )); + path.delete(); + + // If given insufficient points, it stops early (but doesn't read out of bounds). + path = CanvasKit.Path.MakeFromVerbsPointsWeights(mVerbs, mPoints.subarray(0, 10), mWeights); + + cmds = path.toCmds(); + expect(cmds).toEqual(Float32Array.of( + CanvasKit.MOVE_VERB, 1, 2, + CanvasKit.LINE_VERB, 3, 4, + CanvasKit.QUAD_VERB, 5, 6, 7, 8, + )); + path.delete(); + CanvasKit.Free(mVerbs); + CanvasKit.Free(mPoints); + CanvasKit.Free(mWeights); + }); + + it('can create and update a path with verbs and points (no weights)', () => { + const path = CanvasKit.Path.MakeFromVerbsPointsWeights( + [CanvasKit.MOVE_VERB, CanvasKit.LINE_VERB], + [1,2, 3,4]); + let cmds = path.toCmds(); + expect(cmds).toEqual(Float32Array.of( + CanvasKit.MOVE_VERB, 1, 2, + CanvasKit.LINE_VERB, 3, 4 + )); + + path.addVerbsPointsWeights( + [CanvasKit.QUAD_VERB, CanvasKit.CLOSE_VERB], + [5,6,7,8], + ); + + cmds = path.toCmds(); + expect(cmds).toEqual(Float32Array.of( + CanvasKit.MOVE_VERB, 1, 2, + CanvasKit.LINE_VERB, 3, 4, + CanvasKit.QUAD_VERB, 5, 6, 7, 8, + CanvasKit.CLOSE_VERB + )); + path.delete(); + }); + + + it('can add points to a path in bulk', () => { + const mVerbs = CanvasKit.Malloc(Uint8Array, 6); + const mPoints = CanvasKit.Malloc(Float32Array, 18); + const mWeights = CanvasKit.Malloc(Float32Array, 1); + mVerbs.toTypedArray().set([CanvasKit.MOVE_VERB, CanvasKit.LINE_VERB, + CanvasKit.QUAD_VERB, CanvasKit.CONIC_VERB, CanvasKit.CUBIC_VERB, CanvasKit.CLOSE_VERB + ]); + + mPoints.toTypedArray().set([ + 1,2, // moveTo + 3,4, // lineTo + 5,6,7,8, // quadTo + 9,10,11,12, // conicTo + 13,14,15,16,17,18, // cubicTo + ]); + + mWeights.toTypedArray().set([117]); + + const path = new CanvasKit.Path(); + path.lineTo(77, 88); + path.addVerbsPointsWeights(mVerbs, mPoints, mWeights); + + let cmds = path.toCmds(); + expect(cmds).toEqual(Float32Array.of( + CanvasKit.MOVE_VERB, 0, 0, + CanvasKit.LINE_VERB, 77, 88, + CanvasKit.MOVE_VERB, 1, 2, + CanvasKit.LINE_VERB, 3, 4, + CanvasKit.QUAD_VERB, 5, 6, 7, 8, + CanvasKit.CONIC_VERB, 9, 10, 11, 12, 117, + CanvasKit.CUBIC_VERB, 13, 14, 15, 16, 17, 18, + CanvasKit.CLOSE_VERB, + )); + + path.rewind(); + cmds = path.toCmds(); + expect(cmds).toEqual(new Float32Array(0)); + + path.delete(); + CanvasKit.Free(mVerbs); + CanvasKit.Free(mPoints); + CanvasKit.Free(mWeights); + }); + + it('can retrieve points from a path', () => { + const path = new CanvasKit.Path(); + path.addRect([10, 15, 20, 25]); + + let pt = path.getPoint(0); + expect(pt[0]).toEqual(10); + expect(pt[1]).toEqual(15); + + path.getPoint(2, pt); + expect(pt[0]).toEqual(20); + expect(pt[1]).toEqual(25); + + path.getPoint(1000, pt); // off the end returns (0, 0) as per the docs. + expect(pt[0]).toEqual(0); + expect(pt[1]).toEqual(0); + + path.delete(); + }); + + gm('offset_path', (canvas) => { + const path = starPath(CanvasKit); + + const paint = new CanvasKit.Paint(); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(5.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.BLACK); + + canvas.clear(CanvasKit.WHITE); + + canvas.drawPath(path, paint); + path.offset(80, 40); + canvas.drawPath(path, paint); + + path.delete(); + paint.delete(); + }); + + gm('oval_path', (canvas) => { + const paint = new CanvasKit.Paint(); + + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(5.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.BLACK); + + canvas.clear(CanvasKit.WHITE); + + const path = new CanvasKit.Path(); + path.moveTo(5, 5); + path.lineTo(10, 120); + path.addOval(CanvasKit.LTRBRect(10, 20, 100, 200), false, 3); + path.lineTo(300, 300); + + canvas.drawPath(path, paint); + + path.delete(); + paint.delete(); + }); + + gm('bounds_path', (canvas) => { + const paint = new CanvasKit.Paint(); + + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(5.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.BLACK); + + canvas.clear(CanvasKit.WHITE); + + const path = new CanvasKit.Path(); + // Arbitrary points to make an interesting curve. + path.moveTo(97, 225); + path.cubicTo(20, 400, 404, 75, 243, 271); + + canvas.drawPath(path, paint); + + const bounds = new Float32Array(4); + path.getBounds(bounds); + + paint.setColor(CanvasKit.BLUE); + paint.setStrokeWidth(3.0); + canvas.drawRect(bounds, paint); + + path.computeTightBounds(bounds); + paint.setColor(CanvasKit.RED); + paint.setStrokeWidth(3.0); + canvas.drawRect(bounds, paint); + + path.delete(); + paint.delete(); + }); + + gm('arcto_path', (canvas) => { + const paint = new CanvasKit.Paint(); + + paint.setStyle(CanvasKit.PaintStyle.Stroke); + paint.setStrokeWidth(5.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.BLACK); + + canvas.clear(CanvasKit.WHITE); + + const path = new CanvasKit.Path(); + + // - x1, y1, x2, y2, radius + path.arcToTangent(40, 0, 40, 40, 40); + // - oval (as Rect), startAngle, sweepAngle, forceMoveTo + path.arcToOval(CanvasKit.LTRBRect(90, 10, 120, 200), 30, 300, true); + // - rx, ry, xAxisRotate, useSmallArc, isCCW, x, y + path.moveTo(5, 105); + path.arcToRotated(24, 24, 45, true, false, 82, 156); + + canvas.drawPath(path, paint); + + path.delete(); + paint.delete(); + }); + + gm('path_relative', (canvas) => { + const paint = new CanvasKit.Paint(); + paint.setStrokeWidth(1.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(0, 0, 0, 1.0)); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const path = new CanvasKit.Path(); + path.rMoveTo(20, 5) + .rLineTo(10, 15) // 30, 20 + .rLineTo(10, -5); // 40, 10 + path.rLineTo(10, 10); // 50, 20 + path.rLineTo(10, -20); // 60, 0 + path.rLineTo(-40, 5); // 20, 5 + + path.moveTo(20, 80) + .rCubicTo(70, -70, 140, 70, 170, -70); // 90, 10, 160, 150, 190, 10 + + path.moveTo(36, 148) + .rQuadTo(30, 40, 84, -12) // 66, 188, 120, 136 + .lineTo(36, 148); + + path.moveTo(150, 180) + .rArcTo(24, 24, 45, true, false, -68, -24); // 82, 156 + path.lineTo(160, 160); + + canvas.drawPath(path, paint); + + path.delete(); + paint.delete(); + }); + + it('can measure the contours of a path', () => { + const path = new CanvasKit.Path(); + path.moveTo(10, 10) + .lineTo(40, 50); // should be length 50 because of the 3/4/5 triangle rule + + path.moveTo(80, 0) + .lineTo(80, 10) + .lineTo(100, 5) + .lineTo(80, 0); + + const meas = new CanvasKit.ContourMeasureIter(path, false, 1); + let cont = meas.next(); + expect(cont).toBeTruthy(); + + expect(cont.length()).toBeCloseTo(50.0, 3); + const pt = cont.getPosTan(28.7); // arbitrary point + expect(pt[0]).toBeCloseTo(27.22, 3); // x + expect(pt[1]).toBeCloseTo(32.96, 3); // y + expect(pt[2]).toBeCloseTo(0.6, 3); // dy + expect(pt[3]).toBeCloseTo(0.8, 3); // dy + + pt.set([-1, -1, -1, -1]); // fill with sentinel values. + cont.getPosTan(28.7, pt); // arbitrary point again, passing in an array to copy into. + expect(pt[0]).toBeCloseTo(27.22, 3); // x + expect(pt[1]).toBeCloseTo(32.96, 3); // y + expect(pt[2]).toBeCloseTo(0.6, 3); // dy + expect(pt[3]).toBeCloseTo(0.8, 3); // dy + + const subpath = cont.getSegment(20, 40, true); // make sure this doesn't crash + + cont.delete(); + cont = meas.next(); + expect(cont).toBeTruthy(); + expect(cont.length()).toBeCloseTo(51.231, 3); + + cont.delete(); + expect(meas.next()).toBeFalsy(); + + meas.delete(); + path.delete(); + }); + + gm('drawpoly_path', (canvas) => { + const paint = new CanvasKit.Paint(); + paint.setStrokeWidth(1.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(0, 0, 0, 1.0)); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const points = [5, 5, 30, 20, 55, 5, 55, 50, 30, 30, 5, 50]; + + const pointsObj = CanvasKit.Malloc(Float32Array, 6 * 2); + const mPoints = pointsObj.toTypedArray(); + mPoints.set([105, 105, 130, 120, 155, 105, 155, 150, 130, 130, 105, 150]); + + const path = new CanvasKit.Path(); + path.addPoly(points, true) + .moveTo(100, 0) + .addPoly(mPoints, true); + + canvas.drawPath(path, paint); + CanvasKit.Free(pointsObj); + + path.delete(); + paint.delete(); + }); + + // Test trim, adding paths to paths, and a bunch of other path methods. + gm('trim_path', (canvas) => { + canvas.clear(CanvasKit.WHITE); + + const paint = new CanvasKit.Paint(); + paint.setStrokeWidth(1.0); + paint.setAntiAlias(true); + paint.setColor(CanvasKit.Color(0, 0, 0, 1.0)); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + + const arcpath = new CanvasKit.Path(); + arcpath.arc(400, 400, 100, 0, -90, false) // x, y, radius, startAngle, endAngle, ccw + .dash(3, 1, 0) + .conicTo(10, 20, 30, 40, 5) + .rConicTo(60, 70, 80, 90, 5) + .trim(0.2, 1, false); + + const path = new CanvasKit.Path(); + path.addArc(CanvasKit.LTRBRect(10, 20, 100, 200), 30, 300) + .addRect(CanvasKit.LTRBRect(200, 200, 300, 300)) // test single arg, default cw + .addRect(CanvasKit.LTRBRect(240, 240, 260, 260), true) // test two arg, true means ccw + .addRect([260, 260, 290, 290], true) // test five arg, true means ccw + .addRRect([300, 10, 500, 290, // Rect in LTRB order + 60, 60, 60, 60, 60, 60, 60, 60], // all radii are the same + false) // ccw + .addRRect(CanvasKit.RRectXY([350, 60, 450, 240], 20, 80), true) // Rect, rx, ry, ccw + .addPath(arcpath) + .transform(0.54, -0.84, 390.35, + 0.84, 0.54, -114.53, + 0, 0, 1); + + canvas.drawPath(path, paint); + + path.delete(); + paint.delete(); + }); + + gm('winding_example', (canvas) => { + // Inspired by https://fiddle.skia.org/c/@Path_FillType_a + const path = new CanvasKit.Path(); + // Draw overlapping rects on top + path.addRect(CanvasKit.LTRBRect(10, 10, 30, 30), false); + path.addRect(CanvasKit.LTRBRect(20, 20, 40, 40), false); + // Draw overlapping rects on bottom, with different direction lines. + path.addRect(CanvasKit.LTRBRect(10, 60, 30, 80), false); + path.addRect(CanvasKit.LTRBRect(20, 70, 40, 90), true); + + expect(path.getFillType()).toEqual(CanvasKit.FillType.Winding); + + // Draw the two rectangles on the left side. + const paint = new CanvasKit.Paint(); + paint.setStyle(CanvasKit.PaintStyle.Stroke); + canvas.drawPath(path, paint); + + const clipRect = CanvasKit.LTRBRect(0, 0, 51, 100); + paint.setStyle(CanvasKit.PaintStyle.Fill); + + for (const fillType of [CanvasKit.FillType.Winding, CanvasKit.FillType.EvenOdd]) { + canvas.translate(51, 0); + canvas.save(); + canvas.clipRect(clipRect, CanvasKit.ClipOp.Intersect, false); + path.setFillType(fillType); + canvas.drawPath(path, paint); + canvas.restore(); + } + + path.delete(); + paint.delete(); + }); + + gm('as_winding', (canvas) => { + const evenOddPath = new CanvasKit.Path(); + // Draw overlapping rects + evenOddPath.addRect(CanvasKit.LTRBRect(10, 10, 70, 70), false); + evenOddPath.addRect(CanvasKit.LTRBRect(30, 30, 50, 50), false); + evenOddPath.setFillType(CanvasKit.FillType.EvenOdd); + + const evenOddCmds = evenOddPath.toCmds(); + expect(evenOddCmds).toEqual(Float32Array.of( + CanvasKit.MOVE_VERB, 10, 10, + CanvasKit.LINE_VERB, 70, 10, + CanvasKit.LINE_VERB, 70, 70, + CanvasKit.LINE_VERB, 10, 70, + CanvasKit.CLOSE_VERB, + CanvasKit.MOVE_VERB, 30, 30, // This contour is drawn + CanvasKit.LINE_VERB, 50, 30, // clockwise, as specified. + CanvasKit.LINE_VERB, 50, 50, + CanvasKit.LINE_VERB, 30, 50, + CanvasKit.CLOSE_VERB + )); + + const windingPath = evenOddPath.makeAsWinding(); + + expect(windingPath.getFillType()).toBe(CanvasKit.FillType.Winding); + const windingCmds = windingPath.toCmds(); + expect(windingCmds).toEqual(Float32Array.of( + CanvasKit.MOVE_VERB, 10, 10, + CanvasKit.LINE_VERB, 70, 10, + CanvasKit.LINE_VERB, 70, 70, + CanvasKit.LINE_VERB, 10, 70, + CanvasKit.CLOSE_VERB, + CanvasKit.MOVE_VERB, 30, 50, // This contour has been + CanvasKit.LINE_VERB, 50, 50, // re-drawn counter-clockwise + CanvasKit.LINE_VERB, 50, 30, // so that it covers the same + CanvasKit.LINE_VERB, 30, 30, // area, but with the winding fill type. + CanvasKit.CLOSE_VERB + )); + + const paint = new CanvasKit.Paint(); + paint.setStyle(CanvasKit.PaintStyle.Fill); + const font = new CanvasKit.Font(null, 20); + + canvas.drawText('Original path (even odd)', 5, 20, paint, font); + canvas.translate(0, 50); + canvas.drawPath(evenOddPath, paint); + + canvas.translate(300, 0); + canvas.drawPath(windingPath, paint); + + canvas.translate(0, -50); + canvas.drawText('makeAsWinding path', 5, 20, paint, font); + + evenOddPath.delete(); + windingPath.delete(); + }); +}); diff --git a/third_party/skia/modules/canvaskit/tests/bazel/rtshader_test.js b/third_party/skia/modules/canvaskit/tests/bazel/rtshader_test.js new file mode 100644 index 000000000000..dedd07c3fe17 --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/rtshader_test.js @@ -0,0 +1,247 @@ +describe('Runtime shader effects', () => { + let container; + + beforeEach(async () => { + await EverythingLoaded; + container = document.createElement('div'); + container.innerHTML = ` + + `; + document.body.appendChild(container); + }); + + afterEach(() => { + document.body.removeChild(container); + }); + + const spiralSkSL = ` +uniform float rad_scale; +uniform int2 in_center; +uniform float4 in_colors0; +uniform float4 in_colors1; + +half4 main(float2 p) { + float2 pp = p - float2(in_center); + float radius = sqrt(dot(pp, pp)); + radius = sqrt(radius); + float angle = atan(pp.y / pp.x); + float t = (angle + 3.1415926/2) / (3.1415926); + t += radius * rad_scale; + t = fract(t); + return half4(mix(in_colors0, in_colors1, t)); +}`; + + // TODO(kjlubick) rewrite testRTShader and callers to use gm. + const testRTShader = (name, done, localMatrix) => { + const surface = CanvasKit.MakeCanvasSurface('test'); + expect(surface).toBeTruthy('Could not make surface'); + if (!surface) { + return; + } + const spiral = CanvasKit.RuntimeEffect.Make(spiralSkSL); + expect(spiral).toBeTruthy('could not compile program'); + + expect(spiral.getUniformCount() ).toEqual(4); + expect(spiral.getUniformFloatCount()).toEqual(11); + const center = spiral.getUniform(1); + expect(center).toBeTruthy('could not fetch numbered uniform'); + expect(center.slot ).toEqual(1); + expect(center.columns ).toEqual(2); + expect(center.rows ).toEqual(1); + expect(center.isInteger).toEqual(true); + const color_0 = spiral.getUniform(2); + expect(color_0).toBeTruthy('could not fetch numbered uniform'); + expect(color_0.slot ).toEqual(3); + expect(color_0.columns ).toEqual(4); + expect(color_0.rows ).toEqual(1); + expect(color_0.isInteger).toEqual(false); + expect(spiral.getUniformName(2)).toEqual('in_colors0'); + + const canvas = surface.getCanvas(); + const paint = new CanvasKit.Paint(); + canvas.clear(CanvasKit.BLACK); // black should not be visible + const shader = spiral.makeShader([ + 0.3, + CANVAS_WIDTH/2, CANVAS_HEIGHT/2, + 1, 0, 0, 1, // solid red + 0, 1, 0, 1], // solid green + localMatrix); + paint.setShader(shader); + canvas.drawRect(CanvasKit.LTRBRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT), paint); + + paint.delete(); + shader.delete(); + spiral.delete(); + + reportSurface(surface, name, done); + }; + + it('can compile custom shader code', (done) => { + testRTShader('rtshader_spiral', done); + }); + + it('can apply a matrix to the shader', (done) => { + testRTShader('rtshader_spiral_translated', done, CanvasKit.Matrix.translated(-200, 100)); + }); + + it('can provide a error handler for compilation errors', () => { + let error = ''; + const spiral = CanvasKit.RuntimeEffect.Make(`invalid sksl code, I hope`, (e) => { + error = e; + }); + expect(spiral).toBeFalsy(); + expect(error).toContain('error'); + }); + + it('can generate a debug trace', () => { + // We don't support debug tracing on GPU, so we always request a software canvas here. + const surface = CanvasKit.MakeSWCanvasSurface('test'); + expect(surface).toBeTruthy('Could not make surface'); + if (!surface) { + return; + } + const spiral = CanvasKit.RuntimeEffect.Make(spiralSkSL); + expect(spiral).toBeTruthy('could not compile program'); + + const canvas = surface.getCanvas(); + const paint = new CanvasKit.Paint(); + const shader = spiral.makeShader([ + 0.3, + CANVAS_WIDTH/2, CANVAS_HEIGHT/2, + 1, 0, 0, 1, // solid red + 0, 1, 0, 1]); // solid green + + const traced = CanvasKit.RuntimeEffect.MakeTraced(shader, CANVAS_WIDTH/2, CANVAS_HEIGHT/2); + paint.setShader(traced.shader); + canvas.drawRect(CanvasKit.LTRBRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT), paint); + + const traceData = traced.debugTrace.writeTrace(); + paint.delete(); + shader.delete(); + spiral.delete(); + traced.shader.delete(); + traced.debugTrace.delete(); + surface.delete(); + + const parsedTrace = JSON.parse(traceData); + expect(parsedTrace).toBeTruthy('could not parse trace JSON'); + expect(parsedTrace.functions).toBeTruthy('debug trace does not include function list'); + expect(parsedTrace.slots).toBeTruthy('debug trace does not include slot list'); + expect(parsedTrace.trace).toBeTruthy('debug trace does not include trace data'); + expect(parsedTrace.nonsense).toBeFalsy('debug trace includes a nonsense key'); + expect(parsedTrace.mystery).toBeFalsy('debug trace includes a mystery key'); + expect(parsedTrace.source).toEqual([ + "", + "uniform float rad_scale;", + "uniform int2 in_center;", + "uniform float4 in_colors0;", + "uniform float4 in_colors1;", + "", + "half4 main(float2 p) {", + " float2 pp = p - float2(in_center);", + " float radius = sqrt(dot(pp, pp));", + " radius = sqrt(radius);", + " float angle = atan(pp.y / pp.x);", + " float t = (angle + 3.1415926/2) / (3.1415926);", + " t += radius * rad_scale;", + " t = fract(t);", + " return half4(mix(in_colors0, in_colors1, t));", + "}" + ]); + }); + + const loadBrick = fetch( + '/assets/brickwork-texture.jpg') + .then((response) => response.arrayBuffer()); + const loadMandrill = fetch( + '/assets/mandrill_512.png') + .then((response) => response.arrayBuffer()); + + const thresholdSkSL = ` +uniform shader before_map; +uniform shader after_map; +uniform shader threshold_map; + +uniform float cutoff; +uniform float slope; + +float smooth_cutoff(float x) { + x = x * slope + (0.5 - slope * cutoff); + return clamp(x, 0, 1); +} + +half4 main(float2 xy) { + half4 before = before_map.eval(xy); + half4 after = after_map.eval(xy); + + float m = smooth_cutoff(threshold_map.eval(xy).r); + return mix(before, after, half(m)); +}`; + + // TODO(kjlubick) rewrite testChildrenShader and callers to use gm. + const testChildrenShader = (name, done, localMatrix) => { + Promise.all([loadBrick, loadMandrill]).then((values) => { + catchException(done, () => { + const [brickData, mandrillData] = values; + const brickImg = CanvasKit.MakeImageFromEncoded(brickData); + expect(brickImg).toBeTruthy('brick image could not be loaded'); + const mandrillImg = CanvasKit.MakeImageFromEncoded(mandrillData); + expect(mandrillImg).toBeTruthy('mandrill image could not be loaded'); + + const thresholdEffect = CanvasKit.RuntimeEffect.Make(thresholdSkSL); + expect(thresholdEffect).toBeTruthy('threshold did not compile'); + const spiralEffect = CanvasKit.RuntimeEffect.Make(spiralSkSL); + expect(spiralEffect).toBeTruthy('spiral did not compile'); + + const brickShader = brickImg.makeShaderCubic( + CanvasKit.TileMode.Decal, CanvasKit.TileMode.Decal, + 1/3 /*B*/, 1/3 /*C*/, + CanvasKit.Matrix.scaled(CANVAS_WIDTH/brickImg.width(), + CANVAS_HEIGHT/brickImg.height())); + const mandrillShader = mandrillImg.makeShaderCubic( + CanvasKit.TileMode.Decal, CanvasKit.TileMode.Decal, + 1/3 /*B*/, 1/3 /*C*/, + CanvasKit.Matrix.scaled(CANVAS_WIDTH/mandrillImg.width(), + CANVAS_HEIGHT/mandrillImg.height())); + const spiralShader = spiralEffect.makeShader([ + 0.8, + CANVAS_WIDTH/2, CANVAS_HEIGHT/2, + 1, 1, 1, 1, + 0, 0, 0, 1]); + + const blendShader = thresholdEffect.makeShaderWithChildren( + [0.5, 5], + [brickShader, mandrillShader, spiralShader], localMatrix); + + const surface = CanvasKit.MakeCanvasSurface('test'); + expect(surface).toBeTruthy('Could not make surface'); + const canvas = surface.getCanvas(); + const paint = new CanvasKit.Paint(); + canvas.clear(CanvasKit.WHITE); + + paint.setShader(blendShader); + canvas.drawRect(CanvasKit.LTRBRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT), paint); + + brickImg.delete(); + mandrillImg.delete(); + thresholdEffect.delete(); + spiralEffect.delete(); + brickShader.delete(); + mandrillShader.delete(); + spiralShader.delete(); + blendShader.delete(); + paint.delete(); + + reportSurface(surface, name, done); + })(); + }); + } + + it('take other shaders as fragment processors', (done) => { + testChildrenShader('rtshader_children', done); + }); + + it('apply a local matrix to the children-based shader', (done) => { + testChildrenShader('rtshader_children_rotated', done, CanvasKit.Matrix.rotated(Math.PI/12)); + }); +}); diff --git a/third_party/skia/modules/canvaskit/tests/bazel/skottie_test.js b/third_party/skia/modules/canvaskit/tests/bazel/skottie_test.js new file mode 100644 index 000000000000..d62db76da108 --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/skottie_test.js @@ -0,0 +1,327 @@ +describe('Skottie behavior', () => { + let container; + + beforeEach(async () => { + await EverythingLoaded; + container = document.createElement('div'); + container.innerHTML = ` + + `; + document.body.appendChild(container); + }); + + afterEach(() => { + document.body.removeChild(container); + }); + + const expectArrayCloseTo = (a, b, precision) => { + precision = precision || 14; // digits of precision in base 10 + expect(a.length).toEqual(b.length); + for (let i=0; i response.arrayBuffer()); + const jsonPromise = fetch('/assets/animated_gif.json') + .then((response) => response.text()); + const washPromise = fetch('/assets/map-shield.json') + .then((response) => response.text()); + + gm('skottie_animgif', (canvas, promises) => { + if (!CanvasKit.skottie || !CanvasKit.managed_skottie) { + console.warn('Skipping test because not compiled with skottie'); + return; + } + expect(promises[1]).not.toBe('NOT FOUND'); + const animation = CanvasKit.MakeManagedAnimation(promises[1], { + 'flightAnim.gif': promises[0], + }); + expect(animation).toBeTruthy(); + const bounds = CanvasKit.LTRBRect(0, 0, 500, 500); + + const size = animation.size(); + expectArrayCloseTo(size, Float32Array.of(800, 600), 4); + + canvas.clear(CanvasKit.WHITE); + animation.render(canvas, bounds); + + // We intentionally make the length of this array 5 and add a sentinel value + // of 999 so we can make sure the bounds are copied into this rect and a new + // one is not allocated. + const damageRect = Float32Array.of(0, 0, 0, 0, 999); + + // There was a bug, fixed in https://skia-review.googlesource.com/c/skia/+/241757 + // that seeking again and drawing again revealed. + animation.seek(0.5, damageRect); + expectArrayCloseTo(damageRect, Float32Array.of(0, 0, 800, 600, 999), 4); + + canvas.clear(CanvasKit.WHITE); + animation.render(canvas, bounds); + animation.delete(); + }, imgPromise, jsonPromise); + + gm('skottie_setcolor', (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); + canvas.clear(CanvasKit.WHITE); + + const animation = CanvasKit.MakeManagedAnimation(promises[0]); + expect(animation).toBeTruthy(); + animation.setColor('$Icon Fill', CanvasKit.RED); + animation.seek(0.5); + animation.render(canvas, bounds); + animation.delete(); + }, washPromise); + + it('can load audio assets', (done) => { + if (!CanvasKit.skottie || !CanvasKit.managed_skottie) { + console.warn('Skipping test because not compiled with skottie'); + return; + } + const mockSoundMap = { + map : new Map(), + getPlayer : function(name) {return this.map.get(name)}, + setPlayer : function(name, player) {this.map.set(name, player)}, + }; + function mockPlayer(name) { + this.name = name; + this.wasPlayed = false, + this.seek = function(t) { + this.wasPlayed = true; + } + } + for (let i = 0; i < 20; i++) { + var name = 'audio_' + i; + mockSoundMap.setPlayer(name, new mockPlayer(name)); + } + fetch('/assets/audio_external.json') + .then((response) => response.text()) + .then((lottie) => { + const animation = CanvasKit.MakeManagedAnimation(lottie, null, null, mockSoundMap); + expect(animation).toBeTruthy(); + // 190 frames in sample lottie + for (let t = 0; t < 190; t++) { + animation.seekFrame(t); + } + animation.delete(); + for(const player of mockSoundMap.map.values()) { + expect(player.wasPlayed).toBeTrue(player.name + " was not played"); + } + done(); + }); + }); + + it('can get logs', (done) => { + if (!CanvasKit.skottie || !CanvasKit.managed_skottie) { + console.warn('Skipping test because not compiled with skottie'); + return; + } + + const logger = { + errors: [], + warnings: [], + + reset: function() { this.errors = []; this.warnings = []; }, + + // Logger API + onError: function(err) { this.errors.push(err) }, + onWarning: function(wrn) { this.warnings.push(wrn) } + }; + + { + const json = `{ + "v": "5.2.1", + "w": 100, + "h": 100, + "fr": 10, + "ip": 0, + "op": 100, + "layers": [{ + "ty": 3, + "nm": "null", + "ind": 0, + "ip": 0 + }] + }`; + const animation = CanvasKit.MakeManagedAnimation(json, null, null, null, logger); + expect(animation).toBeTruthy(); + expect(logger.errors.length).toEqual(0); + expect(logger.warnings.length).toEqual(0); + } + + { + const json = `{ + "v": "5.2.1", + "w": 100, + "h": 100, + "fr": 10, + "ip": 0, + "op": 100, + "layers": [{ + "ty": 2, + "nm": "image", + "ind": 0, + "ip": 0 + }] + }`; + const animation = CanvasKit.MakeManagedAnimation(json, null, null, null, logger); + expect(animation).toBeTruthy(); + expect(logger.errors.length).toEqual(1); + expect(logger.warnings.length).toEqual(0); + + // Image layer missing refID + expect(logger.errors[0].includes('missing ref')); + logger.reset(); + } + + { + const json = `{ + "v": "5.2.1", + "w": 100, + "h": 100, + "fr": 10, + "ip": 0, + "op": 100, + "layers": [{ + "ty": 1, + "nm": "solid", + "sw": 100, + "sh": 100, + "sc": "#aabbcc", + "ind": 0, + "ip": 0, + "ef": [{ + "mn": "FOO" + }] + }] + }`; + const animation = CanvasKit.MakeManagedAnimation(json, null, null, null, logger); + expect(animation).toBeTruthy(); + expect(logger.errors.length).toEqual(0); + expect(logger.warnings.length).toEqual(1); + + // Unsupported effect FOO + expect(logger.warnings[0].includes('FOO')); + logger.reset(); + } + + done(); + }); + + it('can access dynamic props', () => { + if (!CanvasKit.skottie || !CanvasKit.managed_skottie) { + console.warn('Skipping test because not compiled with skottie'); + return; + } + + const json = `{ + "v": "5.2.1", + "w": 100, + "h": 100, + "fr": 10, + "ip": 0, + "op": 100, + "fonts": { + "list": [{ + "fName": "test_font", + "fFamily": "test-family", + "fStyle": "TestFontStyle" + }] + }, + "layers": [ + { + "ty": 4, + "nm": "__shape_layer", + "ind": 0, + "ip": 0, + "shapes": [ + { + "ty": "el", + "p": { "a": 0, "k": [ 50, 50 ] }, + "s": { "a": 0, "k": [ 50, 50 ] } + },{ + "ty": "fl", + "nm": "__shape_fill", + "c": { "a": 0, "k": [ 1, 0, 0] } + },{ + "ty": "tr", + "nm": "__shape_opacity", + "o": { "a": 0, "k": 50 } + } + ] + },{ + "ty": 5, + "nm": "__text_layer", + "ip": 0, + "t": { + "d": { + "k": [{ + "t": 0, + "s": { + "f": "test_font", + "s": 100, + "t": "Foo Bar Baz", + "lh": 120, + "ls": 12 + } + }] + } + } + } + ] + }`; + + const animation = CanvasKit.MakeManagedAnimation(json, null, '__'); + expect(animation).toBeTruthy(); + + { + const colors = animation.getColorProps(); + expect(colors.length).toEqual(1); + expect(colors[0].key).toEqual('__shape_fill'); + expect(colors[0].value).toEqual(CanvasKit.ColorAsInt(255,0,0,255)); + + const opacities = animation.getOpacityProps(); + expect(opacities.length).toEqual(1); + expect(opacities[0].key).toEqual('__shape_opacity'); + expect(opacities[0].value).toEqual(50); + + const texts = animation.getTextProps(); + expect(texts.length).toEqual(1); + expect(texts[0].key).toEqual('__text_layer'); + expect(texts[0].value.text).toEqual('Foo Bar Baz'); + expect(texts[0].value.size).toEqual(100); + } + + expect(animation.setColor('__shape_fill', [0,1,0,1])).toEqual(true); + expect(animation.setOpacity('__shape_opacity', 100)).toEqual(true); + expect(animation.setText('__text_layer', 'baz bar foo', 10)).toEqual(true); + + { + const colors = animation.getColorProps(); + expect(colors.length).toEqual(1); + expect(colors[0].key).toEqual('__shape_fill'); + expect(colors[0].value).toEqual(CanvasKit.ColorAsInt(0,255,0,255)); + + const opacities = animation.getOpacityProps(); + expect(opacities.length).toEqual(1); + expect(opacities[0].key).toEqual('__shape_opacity'); + expect(opacities[0].value).toEqual(100); + + const texts = animation.getTextProps(); + expect(texts.length).toEqual(1); + expect(texts[0].key).toEqual('__text_layer'); + expect(texts[0].value.text).toEqual('baz bar foo'); + expect(texts[0].value.size).toEqual(10); + } + + expect(animation.setColor('INVALID_KEY', [0,1,0,1])).toEqual(false); + expect(animation.setOpacity('INVALID_KEY', 100)).toEqual(false); + expect(animation.setText('INVALID KEY', '', 10)).toEqual(false); + }); +}); diff --git a/third_party/skia/modules/canvaskit/tests/bazel/smoke_test.js b/third_party/skia/modules/canvaskit/tests/bazel/smoke_test.js new file mode 100644 index 000000000000..1baf0eac1bea --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/smoke_test.js @@ -0,0 +1,19 @@ +describe('The test harness', () => { + beforeEach(async () => { + await EverythingLoaded; + }); + + it('can do assertions', () => { + expect(2+3).toBe(5); + }); + + it('has access to CanvasKit', () => { + const r = CanvasKit.LTRBRect(1, 2, 3, 4); + expect(r.constructor.name).toEqual('Float32Array'); + }); + + it('can talk to the Gold server', async () => { + const resp = await fetch('/gold_rpc/healthz'); + expect(resp.status).toEqual(200); + }); +}) diff --git a/third_party/skia/modules/canvaskit/tests/bazel/test_reporter.js b/third_party/skia/modules/canvaskit/tests/bazel/test_reporter.js new file mode 100644 index 000000000000..b8b9e67a9c99 --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/test_reporter.js @@ -0,0 +1,51 @@ +const REPORT_URL = '/gold_rpc/report'; +const pngPrefx = 'data:image/png;base64,' + +function reportCanvas(canvas, testname) { + // toDataURL returns a base64 encoded string with a data prefix. We only + // want the PNG data itself, so we strip that off before submitting it. + const b64 = canvas.toDataURL('image/png') + .substring(pngPrefx.length); + return fetch(REPORT_URL, { + method: 'POST', + mode: 'no-cors', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + 'b64_data': b64, + 'name': testname, + }) + }).then((resp) => { + expect(resp.status).toEqual(201); // StatusCreated + console.log(`${testname}: ${resp.statusText}`); + }); +} + +function reportError(done) { + return (e) => { + fail(e); + done(); + }; +} + +// A wrapper to catch and print a stacktrace to the logs. +// Exceptions normally shows up in the browser console, +// but not in the logs that appear on the bots AND a thrown +// exception will normally cause a test to time out. +// This wrapper mitigates both those pain points. +function catchException(done, fn) { + return () => { + try { + fn() + } catch (e) { + console.log('Failed with the following error', e); + expect(e).toBeFalsy(); + debugger; + done(); + } + // We don't call done with finally because + // that would make the break the asynchronous nature + // of fn(). + } +} diff --git a/third_party/skia/modules/canvaskit/tests/bazel/util.js b/third_party/skia/modules/canvaskit/tests/bazel/util.js new file mode 100644 index 000000000000..b38f134c9bd6 --- /dev/null +++ b/third_party/skia/modules/canvaskit/tests/bazel/util.js @@ -0,0 +1,260 @@ +// The size of the golden images (DMs) +const CANVAS_WIDTH = 600; +const CANVAS_HEIGHT = 600; + +const _commonGM = (it, pause, name, callback, assetsToFetchOrPromisesToWaitOn) => { + const fetchPromises = []; + for (const assetOrPromise of assetsToFetchOrPromisesToWaitOn) { + // https://stackoverflow.com/a/9436948 + if (typeof assetOrPromise === 'string' || assetOrPromise instanceof String) { + const newPromise = fetchWithRetries(assetOrPromise) + .then((response) => response.arrayBuffer()) + .catch((err) => { + console.error(err); + throw err; + }); + fetchPromises.push(newPromise); + } else if (typeof assetOrPromise.then === 'function') { + fetchPromises.push(assetOrPromise); + } else { + throw 'Neither a string nor a promise ' + assetOrPromise; + } + } + it('draws gm '+name, (done) => { + const surface = CanvasKit.MakeCanvasSurface('test'); + expect(surface).toBeTruthy('Could not make surface'); + if (!surface) { + done(); + return; + } + // if fetchPromises is empty, the returned promise will + // resolve right away and just call the callback. + Promise.all(fetchPromises).then((values) => { + try { + // If callback returns a promise, the chained .then + // will wait for it. + return callback(surface.getCanvas(), values, surface); + } catch (e) { + console.log(`gm ${name} failed with error`, e); + expect(e).toBeFalsy(); + debugger; + done(); + } + }).then(() => { + surface.flush(); + if (pause) { + reportSurface(surface, name, null); + console.error('pausing due to pause_gm being invoked'); + } else { + reportSurface(surface, name, done); + } + }).catch((e) => { + console.log(`could not load assets for gm ${name}`, e); + debugger; + done(); + }); + }) +}; + +const fetchWithRetries = (url) => { + const MAX_ATTEMPTS = 3; + const DELAY_AFTER_FAILURE = 1000; + + return new Promise((resolve, reject) => { + let attempts = 0; + const attemptFetch = () => { + attempts++; + fetch(url).then((resp) => resolve(resp)) + .catch((err) => { + if (attempts < MAX_ATTEMPTS) { + console.warn(`got error in fetching ${url}, retrying`, err); + retryAfterDelay(); + } else { + console.error(`got error in fetching ${url} even after ${attempts} attempts`, err); + reject(err); + } + }); + }; + const retryAfterDelay = () => { + setTimeout(() => { + attemptFetch(); + }, DELAY_AFTER_FAILURE); + } + attemptFetch(); + }); + +} + +/** + * Takes a name, a callback, and any number of assets or promises. It executes the + * callback (presumably, the test) and reports the resulting surface to Gold. + * @param name {string} + * @param callback {Function}, has two params, the first is a CanvasKit.Canvas + * and the second is an array of results from the passed in assets or promises. + * If a given assetOrPromise was a string, the result will be an ArrayBuffer. + * @param assetsToFetchOrPromisesToWaitOn {string|Promise}. If a string, it will + * be treated as a url to fetch and return an ArrayBuffer with the contents as + * a result in the callback. Otherwise, the promise will be waited on and its + * result will be whatever the promise resolves to. + */ +const gm = (name, callback, ...assetsToFetchOrPromisesToWaitOn) => { + _commonGM(it, false, name, callback, assetsToFetchOrPromisesToWaitOn); +}; + +/** + * fgm is like gm, except only tests declared with fgm, force_gm, or fit will be + * executed. This mimics the behavior of Jasmine.js. + */ +const fgm = (name, callback, ...assetsToFetchOrPromisesToWaitOn) => { + _commonGM(fit, false, name, callback, assetsToFetchOrPromisesToWaitOn); +}; + +/** + * force_gm is like gm, except only tests declared with fgm, force_gm, or fit will be + * executed. This mimics the behavior of Jasmine.js. + */ +const force_gm = (name, callback, ...assetsToFetchOrPromisesToWaitOn) => { + fgm(name, callback, assetsToFetchOrPromisesToWaitOn); +}; + +/** + * skip_gm does nothing. It is a convenient way to skip a test temporarily. + */ +const skip_gm = (name, callback, ...assetsToFetchOrPromisesToWaitOn) => { + console.log(`Skipping gm ${name}`); + // do nothing, skip the test for now +}; + +/** + * pause_gm is like fgm, except the test will not finish right away and clear, + * making it ideal for a human to manually inspect the results. + */ +const pause_gm = (name, callback, ...assetsToFetchOrPromisesToWaitOn) => { + _commonGM(fit, true, name, callback, assetsToFetchOrPromisesToWaitOn); +}; + +const _commonMultipleCanvasGM = (it, pause, name, callback) => { + it(`draws gm ${name} on both CanvasKit and using Canvas2D`, (done) => { + const skcanvas = CanvasKit.MakeCanvas(CANVAS_WIDTH, CANVAS_HEIGHT); + skcanvas._config = 'software_canvas'; + const realCanvas = document.getElementById('test'); + realCanvas._config = 'html_canvas'; + realCanvas.width = CANVAS_WIDTH; + realCanvas.height = CANVAS_HEIGHT; + + if (pause) { + console.log('debugging canvaskit version'); + callback(realCanvas); + callback(skcanvas); + const png = skcanvas.toDataURL(); + const img = document.createElement('img'); + document.body.appendChild(img); + img.src = png; + debugger; + return; + } + + const promises = []; + + for (const canvas of [skcanvas, realCanvas]) { + callback(canvas); + // canvas has .toDataURL (even though skcanvas is not a real Canvas) + // so this will work. + promises.push(reportCanvas(canvas, name, canvas._config)); + } + Promise.all(promises).then(() => { + skcanvas.dispose(); + done(); + }).catch(reportError(done)); + }); +}; + +/** + * Takes a name and a callback. It executes the callback (presumably, the test) + * for both a CanvasKit.Canvas and a native Canvas2D. The result of both will be + * uploaded to Gold. + * @param name {string} + * @param callback {Function}, has one param, either a CanvasKit.Canvas or a native + * Canvas2D object. + */ +const multipleCanvasGM = (name, callback) => { + _commonMultipleCanvasGM(it, false, name, callback); +}; + +/** + * fmultipleCanvasGM is like multipleCanvasGM, except only tests declared with + * fmultipleCanvasGM, force_multipleCanvasGM, or fit will be executed. This + * mimics the behavior of Jasmine.js. + */ +const fmultipleCanvasGM = (name, callback) => { + _commonMultipleCanvasGM(fit, false, name, callback); +}; + +/** + * force_multipleCanvasGM is like multipleCanvasGM, except only tests declared + * with fmultipleCanvasGM, force_multipleCanvasGM, or fit will be executed. This + * mimics the behavior of Jasmine.js. + */ +const force_multipleCanvasGM = (name, callback) => { + fmultipleCanvasGM(name, callback); +}; + +/** + * pause_multipleCanvasGM is like fmultipleCanvasGM, except the test will not + * finish right away and clear, making it ideal for a human to manually inspect the results. + */ +const pause_multipleCanvasGM = (name, callback) => { + _commonMultipleCanvasGM(fit, true, name, callback); +}; + +/** + * skip_multipleCanvasGM does nothing. It is a convenient way to skip a test temporarily. + */ +const skip_multipleCanvasGM = (name, callback) => { + console.log(`Skipping multiple canvas gm ${name}`); +}; + + +function reportSurface(surface, testname, done) { + // Sometimes, the webgl canvas is blank, but the surface has the pixel + // data. So, we copy it out and draw it to a normal canvas to take a picture. + // To be consistent across CPU and GPU, we just do it for all configurations + // (even though the CPU canvas shows up after flush just fine). + let pixels = surface.getCanvas().readPixels(0, 0, { + width: CANVAS_WIDTH, + height: CANVAS_HEIGHT, + colorType: CanvasKit.ColorType.RGBA_8888, + alphaType: CanvasKit.AlphaType.Unpremul, + colorSpace: CanvasKit.ColorSpace.SRGB, + }); + if (!pixels) { + throw 'Could not get pixels for test '+testname; + } + pixels = new Uint8ClampedArray(pixels.buffer); + const imageData = new ImageData(pixels, CANVAS_WIDTH, CANVAS_HEIGHT); + + const reportingCanvas = document.getElementById('report'); + if (!reportingCanvas) { + throw 'Reporting canvas not found'; + } + reportingCanvas.getContext('2d').putImageData(imageData, 0, 0); + if (!done) { + return; + } + reportCanvas(reportingCanvas, testname).then(() => { + surface.delete(); + done(); + }).catch(reportError(done)); +} + + +function starPath(CanvasKit, X=128, Y=128, R=116) { + const p = new CanvasKit.Path(); + p.moveTo(X + R, Y); + for (let i = 1; i < 8; i++) { + let a = 2.6927937 * i; + p.lineTo(X + R * Math.cos(a), Y + R * Math.sin(a)); + } + p.close(); + return p; +} diff --git a/third_party/skia/modules/canvaskit/tests/font.spec.js b/third_party/skia/modules/canvaskit/tests/font.spec.js index cd8f7021854a..4f58753676c6 100644 --- a/third_party/skia/modules/canvaskit/tests/font.spec.js +++ b/third_party/skia/modules/canvaskit/tests/font.spec.js @@ -18,10 +18,19 @@ describe('Font Behavior', () => { bungeeFontBuffer = buffer; }); + let colrv1FontBuffer = null; + // This font has glyphs for COLRv1. Also used in gms/colrv1.cpp + const colrv1FontLoaded = fetch('/assets/more_samples-glyf_colr_1.ttf').then( + (response) => response.arrayBuffer()).then( + (buffer) => { + colrv1FontBuffer = buffer; + }); + beforeEach(async () => { await LoadCanvasKit; await notoSerifFontLoaded; await bungeeFontLoaded; + await colrv1FontLoaded; container = document.createElement('div'); container.innerHTML = ` @@ -413,4 +422,50 @@ describe('Font Behavior', () => { font.delete(); }); + gm('colrv1_gradients', (canvas) => { + // Inspired by gm/colrv1.cpp, specifically the kColorFontsRepoGradients one. + canvas.clear(CanvasKit.WHITE); + const colrFace = CanvasKit.Typeface.MakeFreeTypeFaceFromData(colrv1FontBuffer); + + const textPaint = new CanvasKit.Paint(); + const annotationFont = new CanvasKit.Font(null, 20); + + canvas.drawText('You should see 4 lines of gradient glyphs below', + 5, 25, textPaint, annotationFont); + + // These glyphIDs show off gradients in the COLRv1 font. + const glyphIDs = [2, 5, 6, 7, 8, 55]; + const testFont = new CanvasKit.Font(colrFace); + const sizes = [12, 18, 30, 100]; + let y = 30; + for (let i = 0; i < sizes.length; i++) { + const size = sizes[i]; + testFont.setSize(size); + const metrics = testFont.getMetrics(); + y -= metrics.ascent; + const positions = calculateRun(testFont, glyphIDs) + canvas.drawGlyphs(glyphIDs, positions, 5, y, testFont, textPaint); + y += metrics.descent + metrics.leading; + } + + textPaint.delete(); + annotationFont.delete(); + testFont.delete(); + colrFace.delete(); + }); + + function calculateRun(font, glyphIDs) { + const spacing = 5; // put 5 pixels between each glyph + const bounds = font.getGlyphBounds(glyphIDs); + const positions = [0, 0]; + let width = 0; + for (let i = 0; i < glyphIDs.length - 1; i++) { + // subtract the right bounds from the left bounds to get glyph width + const glyphWidth = bounds[2 + i*4] - bounds[i*4]; + width += glyphWidth + spacing + positions.push(width, 0); + } + return positions; + } + }); diff --git a/third_party/skia/modules/particles/BUILD.bazel b/third_party/skia/modules/particles/BUILD.bazel index b577f764403d..1fdba925d8e0 100644 --- a/third_party/skia/modules/particles/BUILD.bazel +++ b/third_party/skia/modules/particles/BUILD.bazel @@ -1,3 +1,5 @@ +licenses(["notice"]) + cc_library( name = "particles", hdrs = ["//modules/particles/include:hdrs"], diff --git a/third_party/skia/modules/particles/include/BUILD.bazel b/third_party/skia/modules/particles/include/BUILD.bazel index 728530d2b4a6..8c4e0aa19167 100644 --- a/third_party/skia/modules/particles/include/BUILD.bazel +++ b/third_party/skia/modules/particles/include/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + filegroup( name = "hdrs", srcs = [ diff --git a/third_party/skia/modules/particles/src/BUILD.bazel b/third_party/skia/modules/particles/src/BUILD.bazel index 9ec194a3f25a..478bb11bfb66 100644 --- a/third_party/skia/modules/particles/src/BUILD.bazel +++ b/third_party/skia/modules/particles/src/BUILD.bazel @@ -1,10 +1,13 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkParticleBinding_src", srcs = ["SkParticleBinding.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkColorSpace_hdr", "//include/core:SkContourMeasure_hdr", "//include/core:SkImage_hdr", "//include/core:SkPath_hdr", diff --git a/third_party/skia/modules/particles/src/SkParticleBinding.cpp b/third_party/skia/modules/particles/src/SkParticleBinding.cpp index 09b9a63ed266..7a4e36032746 100644 --- a/third_party/skia/modules/particles/src/SkParticleBinding.cpp +++ b/third_party/skia/modules/particles/src/SkParticleBinding.cpp @@ -7,6 +7,7 @@ #include "modules/particles/include/SkParticleBinding.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkContourMeasure.h" #include "include/core/SkImage.h" #include "include/core/SkPath.h" diff --git a/third_party/skia/modules/pathkit/package-lock.json b/third_party/skia/modules/pathkit/package-lock.json index 9890b4dcfab0..4f168f4b447a 100644 --- a/third_party/skia/modules/pathkit/package-lock.json +++ b/third_party/skia/modules/pathkit/package-lock.json @@ -299,9 +299,9 @@ "dev": true }, "@types/node": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", - "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==", + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", "dev": true }, "accepts": { @@ -358,20 +358,20 @@ "dev": true }, "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", "dev": true, "requires": { - "bytes": "3.1.1", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", + "qs": "6.9.7", + "raw-body": "2.4.3", "type-is": "~1.6.18" } }, @@ -395,9 +395,9 @@ } }, "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, "chalk": { @@ -604,9 +604,9 @@ "dev": true }, "engine.io": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz", - "integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", + "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", "dev": true, "requires": { "@types/cookie": "^0.4.1", @@ -617,7 +617,7 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.0.0", + "engine.io-parser": "~5.0.3", "ws": "~8.2.3" }, "dependencies": { @@ -714,15 +714,15 @@ "dev": true }, "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", "dev": true }, "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -1027,9 +1027,9 @@ } }, "karma": { - "version": "6.3.14", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.14.tgz", - "integrity": "sha512-SDFoU5F4LdosEiUVWUDRPCV/C1zQRNtIakx7rWkigf7R4sxGADlSEeOma4S1f/js7YAzvqLW92ByoiQptg+8oQ==", + "version": "6.3.16", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.16.tgz", + "integrity": "sha512-nEU50jLvDe5yvXqkEJRf8IuvddUkOY2x5Xc4WXHz6dxINgGDrgD2uqQWeVrJs4hbfNaotn+HQ1LZJ4yOXrL7xQ==", "dev": true, "requires": { "body-parser": "^1.19.0", @@ -1047,6 +1047,7 @@ "log4js": "^6.4.1", "mime": "^2.5.2", "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", @@ -1184,6 +1185,15 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1251,9 +1261,9 @@ "dev": true }, "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", "dev": true }, "range-parser": { @@ -1263,12 +1273,12 @@ "dev": true }, "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", "dev": true, "requires": { - "bytes": "3.1.1", + "bytes": "3.1.2", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "unpipe": "1.0.0" diff --git a/third_party/skia/modules/pathkit/package.json b/third_party/skia/modules/pathkit/package.json index 1b9d6bea51f6..d5025b1c3e56 100644 --- a/third_party/skia/modules/pathkit/package.json +++ b/third_party/skia/modules/pathkit/package.json @@ -8,7 +8,7 @@ "devDependencies": { "is-docker": "~1.1.0", "jasmine-core": "~3.6.0", - "karma": "~6.3.14", + "karma": "~6.3.16", "karma-chrome-launcher": "~3.1.0", "karma-coverage": "~2.0.3", "karma-jasmine": "~4.0.1", diff --git a/third_party/skia/modules/skottie/BUILD.bazel b/third_party/skia/modules/skottie/BUILD.bazel index 4f8734d1b80e..973a3d51ef59 100644 --- a/third_party/skia/modules/skottie/BUILD.bazel +++ b/third_party/skia/modules/skottie/BUILD.bazel @@ -1,3 +1,5 @@ +licenses(["notice"]) + cc_library( name = "skottie", hdrs = ["//modules/skottie/include:hdrs"], diff --git a/third_party/skia/modules/skottie/fuzz/BUILD.bazel b/third_party/skia/modules/skottie/fuzz/BUILD.bazel index 6982b725029a..a7920b9c483b 100644 --- a/third_party/skia/modules/skottie/fuzz/BUILD.bazel +++ b/third_party/skia/modules/skottie/fuzz/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "FuzzSkottieJSON_src", srcs = ["FuzzSkottieJSON.cpp"], diff --git a/third_party/skia/modules/skottie/gm/BUILD.bazel b/third_party/skia/modules/skottie/gm/BUILD.bazel index 522c47707cba..fc35e2169ad1 100644 --- a/third_party/skia/modules/skottie/gm/BUILD.bazel +++ b/third_party/skia/modules/skottie/gm/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "ExternalProperties_src", srcs = ["ExternalProperties.cpp"], diff --git a/third_party/skia/modules/skottie/include/BUILD.bazel b/third_party/skia/modules/skottie/include/BUILD.bazel index e31061df3ec9..d6c4b75a5c33 100644 --- a/third_party/skia/modules/skottie/include/BUILD.bazel +++ b/third_party/skia/modules/skottie/include/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + filegroup( name = "hdrs", srcs = [ @@ -23,6 +25,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/core:SkColor_hdr", + "//include/core:SkPaint_hdr", "//include/core:SkPoint_hdr", "//include/core:SkRefCnt_hdr", "//include/core:SkTypeface_hdr", diff --git a/third_party/skia/modules/skottie/include/SkottieProperty.h b/third_party/skia/modules/skottie/include/SkottieProperty.h index e1f5bf397025..b9ccbb491c70 100644 --- a/third_party/skia/modules/skottie/include/SkottieProperty.h +++ b/third_party/skia/modules/skottie/include/SkottieProperty.h @@ -9,6 +9,7 @@ #define SkottieProperty_DEFINED #include "include/core/SkColor.h" +#include "include/core/SkPaint.h" #include "include/core/SkPoint.h" #include "include/core/SkRefCnt.h" #include "include/core/SkTypeface.h" @@ -46,6 +47,7 @@ struct TextPropertyValue { fLineHeight = 0, fLineShift = 0, fAscent = 0; + size_t fMaxLines = 0; // when auto-sizing SkTextUtils::Align fHAlign = SkTextUtils::kLeft_Align; Shaper::VAlign fVAlign = Shaper::VAlign::kTop; Shaper::ResizePolicy fResize = Shaper::ResizePolicy::kNone; @@ -56,6 +58,7 @@ struct TextPropertyValue { SkColor fFillColor = SK_ColorTRANSPARENT, fStrokeColor = SK_ColorTRANSPARENT; TextPaintOrder fPaintOrder = TextPaintOrder::kFillStroke; + SkPaint::Join fStrokeJoin = SkPaint::Join::kMiter_Join; bool fHasFill = false, fHasStroke = false; diff --git a/third_party/skia/modules/skottie/src/BUILD.bazel b/third_party/skia/modules/skottie/src/BUILD.bazel index 1be2828376ad..64fae091e308 100644 --- a/third_party/skia/modules/skottie/src/BUILD.bazel +++ b/third_party/skia/modules/skottie/src/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "Adapter_hdr", hdrs = ["Adapter.h"], diff --git a/third_party/skia/modules/skottie/src/SkottieProperty.cpp b/third_party/skia/modules/skottie/src/SkottieProperty.cpp index 784f5cd89fd5..2dddc9a81501 100644 --- a/third_party/skia/modules/skottie/src/SkottieProperty.cpp +++ b/third_party/skia/modules/skottie/src/SkottieProperty.cpp @@ -22,6 +22,7 @@ bool TextPropertyValue::operator==(const TextPropertyValue& other) const { && fLineHeight == other.fLineHeight && fLineShift == other.fLineShift && fAscent == other.fAscent + && fMaxLines == other.fMaxLines && fHAlign == other.fHAlign && fVAlign == other.fVAlign && fResize == other.fResize @@ -31,6 +32,8 @@ bool TextPropertyValue::operator==(const TextPropertyValue& other) const { && fBox == other.fBox && fFillColor == other.fFillColor && fStrokeColor == other.fStrokeColor + && fPaintOrder == other.fPaintOrder + && fStrokeJoin == other.fStrokeJoin && fHasFill == other.fHasFill && fHasStroke == other.fHasStroke; } diff --git a/third_party/skia/modules/skottie/src/SkottieTest.cpp b/third_party/skia/modules/skottie/src/SkottieTest.cpp index d7a322a10fd8..5d7a40245811 100644 --- a/third_party/skia/modules/skottie/src/SkottieTest.cpp +++ b/third_party/skia/modules/skottie/src/SkottieTest.cpp @@ -321,6 +321,7 @@ DEF_TEST(Skottie_Properties, reporter) { 120, 12, 0, + 0, SkTextUtils::kLeft_Align, Shaper::VAlign::kTopBaseline, Shaper::ResizePolicy::kNone, @@ -331,6 +332,7 @@ DEF_TEST(Skottie_Properties, reporter) { SK_ColorTRANSPARENT, SK_ColorTRANSPARENT, TextPaintOrder::kFillStroke, + SkPaint::Join::kDefault_Join, false, false })); @@ -480,7 +482,6 @@ DEF_TEST(Skottie_Shaper_HAlign, reporter) { Shaper::LinebreakPolicy::kExplicit, Shaper::Direction::kLTR, Shaper::Capitalization::kNone, - Shaper::Flags::kNone }; const auto shape_result = Shaper::Shape(text, desc, text_point, @@ -551,7 +552,6 @@ DEF_TEST(Skottie_Shaper_VAlign, reporter) { Shaper::LinebreakPolicy::kParagraph, Shaper::Direction::kLTR, Shaper::Capitalization::kNone, - Shaper::Flags::kNone }; const auto shape_result = Shaper::Shape(text, desc, text_box, SkFontMgr::RefDefault()); @@ -592,7 +592,6 @@ DEF_TEST(Skottie_Shaper_FragmentGlyphs, reporter) { Shaper::LinebreakPolicy::kParagraph, Shaper::Direction::kLTR, Shaper::Capitalization::kNone, - Shaper::Flags::kNone }; const SkString text("Foo bar baz"); @@ -685,7 +684,6 @@ DEF_TEST(Skottie_Shaper_ExplicitFontMgr, reporter) { Shaper::LinebreakPolicy::kParagraph, Shaper::Direction::kLTR, Shaper::Capitalization::kNone, - Shaper::Flags::kNone }; const auto text_box = SkRect::MakeWH(100, 100); diff --git a/third_party/skia/modules/skottie/src/animator/BUILD.bazel b/third_party/skia/modules/skottie/src/animator/BUILD.bazel index 1c2a8131645c..6be939e37c58 100644 --- a/third_party/skia/modules/skottie/src/animator/BUILD.bazel +++ b/third_party/skia/modules/skottie/src/animator/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "Animator_hdr", hdrs = ["Animator.h"], diff --git a/third_party/skia/modules/skottie/src/effects/BUILD.bazel b/third_party/skia/modules/skottie/src/effects/BUILD.bazel index 25f2990ae956..6046a965dab3 100644 --- a/third_party/skia/modules/skottie/src/effects/BUILD.bazel +++ b/third_party/skia/modules/skottie/src/effects/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "BlackAndWhiteEffect_src", srcs = ["BlackAndWhiteEffect.cpp"], diff --git a/third_party/skia/modules/skottie/src/layers/BUILD.bazel b/third_party/skia/modules/skottie/src/layers/BUILD.bazel index a105299d47c9..4127949b7693 100644 --- a/third_party/skia/modules/skottie/src/layers/BUILD.bazel +++ b/third_party/skia/modules/skottie/src/layers/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "AudioLayer_src", srcs = ["AudioLayer.cpp"], diff --git a/third_party/skia/modules/skottie/src/layers/shapelayer/BUILD.bazel b/third_party/skia/modules/skottie/src/layers/shapelayer/BUILD.bazel index 13f76de9b752..15b1c99920be 100644 --- a/third_party/skia/modules/skottie/src/layers/shapelayer/BUILD.bazel +++ b/third_party/skia/modules/skottie/src/layers/shapelayer/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "Ellipse_src", srcs = ["Ellipse.cpp"], diff --git a/third_party/skia/modules/skottie/src/text/BUILD.bazel b/third_party/skia/modules/skottie/src/text/BUILD.bazel index 1b51f02bce33..20cf36b8465b 100644 --- a/third_party/skia/modules/skottie/src/text/BUILD.bazel +++ b/third_party/skia/modules/skottie/src/text/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "RangeSelector_hdr", hdrs = ["RangeSelector.h"], diff --git a/third_party/skia/modules/skottie/src/text/SkottieShaper.cpp b/third_party/skia/modules/skottie/src/text/SkottieShaper.cpp index 69165a86258a..752ba0cdbf20 100644 --- a/third_party/skia/modules/skottie/src/text/SkottieShaper.cpp +++ b/third_party/skia/modules/skottie/src/text/SkottieShaper.cpp @@ -18,7 +18,9 @@ #include "src/core/SkTextBlobPriv.h" #include "src/utils/SkUTF.h" +#include #include +#include namespace skottie { namespace { @@ -46,6 +48,12 @@ SkRect ComputeBlobBounds(const sk_sp& blob) { return bounds; } +static bool is_whitespace(char c) { + // TODO: we've been getting away with this simple heuristic, + // but ideally we should use SkUicode::isWhiteSpace(). + return c == ' ' || c == '\t' || c == '\r' || c == '\n'; +}; + // Helper for interfacing with SkShaper: buffers shaper-fed runs and performs // per-line position adjustments (for external line breaking, horizontal alignment, etc). class BlobMaker final : public SkShaper::RunHandler { @@ -116,7 +124,54 @@ class BlobMaker final : public SkShaper::RunHandler { void commitLine() override { fOffset.fY += fDesc.fLineHeight; - // TODO: justification adjustments + // Observed AE handling of whitespace, for alignment purposes: + // + // - leading whitespace contributes to alignment + // - trailing whitespace is ignored + // - auto line breaking retains all separating whitespace on the first line (no artificial + // leading WS is created). + auto adjust_trailing_whitespace = [this]() { + // For left-alignment, trailing WS doesn't make any difference. + if (fLineRuns.empty() || fDesc.fHAlign == SkTextUtils::Align::kLeft_Align) { + return; + } + + // Technically, trailing whitespace could span multiple runs, but realistically, + // SkShaper has no reason to split it. Hence we're only checking the last run. + size_t ws_count = 0; + for (size_t i = 0; i < fLineRuns.back().fGlyphCount; ++i) { + if (is_whitespace(fUTF8[fLineClusters[SkToInt(fLineGlyphCount - i - 1)]])) { + ++ws_count; + } else { + break; + } + } + + // No trailing whitespace. + if (!ws_count) { + return; + } + + // Compute the cumulative whitespace advance. + fAdvanceBuffer.resize(ws_count); + fLineRuns.back().fFont.getWidths(fLineGlyphs.data() + fLineGlyphCount - ws_count, + SkToInt(ws_count), fAdvanceBuffer.data(), nullptr); + + const auto ws_advance = std::accumulate(fAdvanceBuffer.begin(), + fAdvanceBuffer.end(), + 0.0f); + + // Offset needed to compensate for whitespace. + const auto offset = ws_advance*-fHAlignFactor; + + // Shift the whole line horizontally by the computed offset. + std::transform(fLinePos.data(), + fLinePos.data() + fLineGlyphCount, + fLinePos.data(), + [&offset](SkPoint pos) { return SkPoint{pos.fX + offset, pos.fY}; }); + }; + + adjust_trailing_whitespace(); const auto commit_proc = (fDesc.fFlags & Shaper::Flags::kFragmentGlyphs) ? &BlobMaker::commitFragementedRun @@ -258,11 +313,6 @@ class BlobMaker final : public SkShaper::RunHandler { const SkPoint* pos, const uint32_t* clusters, uint32_t line_index) { - - static const auto is_whitespace = [](char c) { - return c == ' ' || c == '\t' || c == '\r' || c == '\n'; - }; - float ascent = 0; if (fDesc.fFlags & Shaper::Flags::kTrackFragmentAdvanceAscent) { @@ -313,7 +363,7 @@ class BlobMaker final : public SkShaper::RunHandler { blob_buffer.glyphs[i] = glyphs[i]; fResult.fMissingGlyphCount += (glyphs[i] == kMissingGlyphID); } - sk_careful_memcpy(blob_buffer.pos , pos , rec.fGlyphCount * sizeof(SkPoint)); + sk_careful_memcpy(blob_buffer.pos, pos, rec.fGlyphCount * sizeof(SkPoint)); } static float HAlignFactor(SkTextUtils::Align align) { @@ -385,6 +435,22 @@ Shaper::Result ShapeImpl(const SkString& txt, const Shaper::TextDesc& desc, return blobMaker.finalize(shaped_size); } +bool result_fits(const Shaper::Result& res, const SkSize& res_size, + const SkRect& box, const Shaper::TextDesc& desc) { + // optional max line count constraint + if (desc.fMaxLines) { + const auto line_count = res.fFragments.empty() + ? 0 + : res.fFragments.back().fLineIndex + 1; + if (line_count > desc.fMaxLines) { + return false; + } + } + + // geometric constraint + return res_size.width() <= box.width() && res_size.height() <= box.height(); +} + Shaper::Result ShapeToFit(const SkString& txt, const Shaper::TextDesc& orig_desc, const SkRect& box, const sk_sp& fontmgr) { Shaper::Result best_result; @@ -419,7 +485,7 @@ Shaper::Result ShapeToFit(const SkString& txt, const Shaper::TextDesc& orig_desc auto res = ShapeImpl(txt, desc, box, fontmgr, &res_size); const auto prev_scale = try_scale; - if (res_size.width() > box.width() || res_size.height() > box.height()) { + if (!result_fits(res, res_size, box, desc)) { out_scale = try_scale; try_scale = (in_scale == min_scale) // initial in_scale not found yet - search exponentially @@ -429,6 +495,7 @@ Shaper::Result ShapeToFit(const SkString& txt, const Shaper::TextDesc& orig_desc } else { // It fits - so it's a candidate. best_result = std::move(res); + best_result.fScale = try_scale; in_scale = try_scale; try_scale = (out_scale == max_scale) @@ -497,7 +564,7 @@ Shaper::Result Shaper::Shape(const SkString& orig_txt, const TextDesc& desc, con SkSize size; auto result = ShapeImpl(txt, desc, box, fontmgr, &size); - return (size.width() <= box.width() && size.height() <= box.height()) + return result_fits(result, size, box, desc) ? result : ShapeToFit(txt, desc, box, fontmgr); } diff --git a/third_party/skia/modules/skottie/src/text/SkottieShaper.h b/third_party/skia/modules/skottie/src/text/SkottieShaper.h index cd9fbe72fa7e..82d3e7d103d2 100644 --- a/third_party/skia/modules/skottie/src/text/SkottieShaper.h +++ b/third_party/skia/modules/skottie/src/text/SkottieShaper.h @@ -37,6 +37,10 @@ class Shaper final { struct Result { std::vector fFragments; size_t fMissingGlyphCount = 0; + // Relative text size scale, when using an auto-scaling ResizePolicy + // (otherwise 1.0). This is informative of the final text size, and is + // not required to render the Result. + float fScale = 1.0f; SkRect computeVisualBounds() const; }; @@ -104,19 +108,20 @@ class Shaper final { struct TextDesc { const sk_sp& fTypeface; - SkScalar fTextSize, - fMinTextSize, - fMaxTextSize, - fLineHeight, - fLineShift, - fAscent; - SkTextUtils::Align fHAlign; - VAlign fVAlign; - ResizePolicy fResize; - LinebreakPolicy fLinebreak; - Direction fDirection; - Capitalization fCapitalization; - uint32_t fFlags; + SkScalar fTextSize = 0, + fMinTextSize = 0, // when auto-sizing + fMaxTextSize = 0, // when auto-sizing + fLineHeight = 0, + fLineShift = 0, + fAscent = 0; + SkTextUtils::Align fHAlign = SkTextUtils::kLeft_Align; + VAlign fVAlign = Shaper::VAlign::kTop; + ResizePolicy fResize = Shaper::ResizePolicy::kNone; + LinebreakPolicy fLinebreak = Shaper::LinebreakPolicy::kExplicit; + Direction fDirection = Shaper::Direction::kLTR ; + Capitalization fCapitalization = Shaper::Capitalization::kNone; + size_t fMaxLines = 0; // when auto-sizing, 0 -> no max + uint32_t fFlags = 0; }; // Performs text layout along an infinite horizontal line, starting at |textPoint|. diff --git a/third_party/skia/modules/skottie/src/text/TextAdapter.cpp b/third_party/skia/modules/skottie/src/text/TextAdapter.cpp index f8dd41997dee..57c1d86b62ed 100644 --- a/third_party/skia/modules/skottie/src/text/TextAdapter.cpp +++ b/third_party/skia/modules/skottie/src/text/TextAdapter.cpp @@ -234,8 +234,9 @@ sk_sp TextAdapter::Make(const skjson::ObjectValue& jlayer, for (const skjson::ObjectValue* janimator : *janimators) { if (auto animator = TextAnimator::Make(janimator, abuilder, adapter.get())) { - adapter->fHasBlurAnimator |= animator->hasBlur(); - adapter->fRequiresAnchorPoint |= animator->requiresAnchorPoint(); + adapter->fHasBlurAnimator |= animator->hasBlur(); + adapter->fRequiresAnchorPoint |= animator->requiresAnchorPoint(); + adapter->fRequiresLineAdjustments |= animator->requiresLineAdjustments(); adapter->fAnimators.push_back(std::move(animator)); } @@ -294,11 +295,12 @@ TextAdapter::TextAdapter(sk_sp fontmgr, sk_sp logger, AnchorP , fLogger(std::move(logger)) , fAnchorPointGrouping(apg) , fHasBlurAnimator(false) - , fRequiresAnchorPoint(false) {} + , fRequiresAnchorPoint(false) + , fRequiresLineAdjustments(false) {} TextAdapter::~TextAdapter() = default; -void TextAdapter::addFragment(const Shaper::Fragment& frag) { +void TextAdapter::addFragment(const Shaper::Fragment& frag, float scale) { // For a given shaped fragment, build a corresponding SG fragment: // // [TransformEffect] -> [Transform] @@ -333,7 +335,8 @@ void TextAdapter::addFragment(const Shaper::Fragment& frag) { rec.fStrokeColorNode = sksg::Color::Make(fText->fStrokeColor); rec.fStrokeColorNode->setAntiAlias(true); rec.fStrokeColorNode->setStyle(SkPaint::kStroke_Style); - rec.fStrokeColorNode->setStrokeWidth(fText->fStrokeWidth); + rec.fStrokeColorNode->setStrokeWidth(fText->fStrokeWidth * scale); + rec.fStrokeColorNode->setStrokeJoin(fText->fStrokeJoin); draws.push_back(sksg::Draw::Make(blob_node, rec.fStrokeColorNode)); } }; @@ -440,10 +443,17 @@ void TextAdapter::setText(const TextValue& txt) { uint32_t TextAdapter::shaperFlags() const { uint32_t flags = Shaper::Flags::kNone; - // We need granular fragments (as opposed to consolidated blobs) when animating, or when - // positioning on a path. - if (!fAnimators.empty() || fPathInfo) flags |= Shaper::Flags::kFragmentGlyphs; - if (fRequiresAnchorPoint) flags |= Shaper::Flags::kTrackFragmentAdvanceAscent; + // We need granular fragments (as opposed to consolidated blobs): + // - when animating + // - when positioning on a path + // - when clamping the number or lines (for accurate line count) + if (!fAnimators.empty() || fPathInfo || fText->fMaxLines) { + flags |= Shaper::Flags::kFragmentGlyphs; + } + + if (fRequiresAnchorPoint) { + flags |= Shaper::Flags::kTrackFragmentAdvanceAscent; + } return flags; } @@ -463,6 +473,7 @@ void TextAdapter::reshape() { fText->fLineBreak, fText->fDirection, fText->fCapitalization, + fText->fMaxLines, this->shaperFlags(), }; const auto shape_result = Shaper::Shape(fText->fText, text_desc, fText->fBox, fFontMgr); @@ -494,7 +505,7 @@ void TextAdapter::reshape() { fFragments.clear(); for (const auto& frag : shape_result.fFragments) { - this->addFragment(frag); + this->addFragment(frag, shape_result.fScale); } if (!fAnimators.empty() || fPathInfo) { @@ -572,16 +583,43 @@ void TextAdapter::onSync() { } size_t grouping_span_index = 0; - SkV2 line_offset = { 0, 0 }; // cumulative line spacing + SkV2 current_line_offset = { 0, 0 }; // cumulative line spacing + + auto compute_linewide_props = [this](const TextAnimator::ModulatorBuffer& buf, + const TextAnimator::DomainSpan& line_span) { + SkV2 total_spacing = {0,0}; + float total_tracking = 0; + + // Only compute these when needed. + if (fRequiresLineAdjustments) { + for (size_t i = line_span.fOffset; i < line_span.fOffset + line_span.fCount; ++i) { + const auto& props = buf[i].props; + total_spacing += props.line_spacing; + total_tracking += props.tracking; + } + + // The first glyph does not contribute |before| tracking, and the last one does not + // contribute |after| tracking. + total_tracking -= 0.5f * (buf[line_span.fOffset].props.tracking + + buf[line_span.fOffset + line_span.fCount - 1].props.tracking); + } + + return std::make_tuple(total_spacing, total_tracking); + }; // Finally, push all props to their corresponding fragment. for (const auto& line_span : fMaps.fLinesMap) { - SkV2 line_spacing = { 0, 0 }; - float line_tracking = 0; - bool line_has_tracking = false; + const auto [line_spacing, line_tracking] = compute_linewide_props(buf, line_span); + const auto align_offset = -line_tracking * align_factor(fText->fHAlign); - // Tracking requires special treatment: unlike other props, its effect is not localized - // to a single fragment, but requires re-alignment of the whole line. + // line spacing of the first line is ignored (nothing to "space" against) + if (&line_span != &fMaps.fLinesMap.front() && line_span.fCount) { + // For each line, the actual spacing is an average of individual fragment spacing + // (to preserve the "line"). + current_line_offset += line_spacing / line_span.fCount; + } + + float tracking_acc = 0; for (size_t i = line_span.fOffset; i < line_span.fOffset + line_span.fCount; ++i) { // Track the grouping domain span in parallel. if (grouping_domain && i >= (*grouping_domain)[grouping_span_index].fOffset + @@ -593,27 +631,28 @@ void TextAdapter::onSync() { const auto& props = buf[i].props; const auto& frag = fFragments[i]; - this->pushPropsToFragment(props, frag, fGroupingAlignment * .01f, // percentage - grouping_domain ? &(*grouping_domain)[grouping_span_index] - : nullptr); - line_tracking += props.tracking; - line_has_tracking |= !SkScalarNearlyZero(props.tracking); + // AE tracking is defined per glyph, based on two components: |before| and |after|. + // BodyMovin only exports "balanced" tracking values, where before = after = tracking/2. + // + // Tracking is applied as a local glyph offset, and contributes to the line width for + // alignment purposes. + // + // No |before| tracking for the first glyph, nor |after| tracking for the last one. + const auto track_before = i > line_span.fOffset + ? props.tracking * 0.5f : 0.0f, + track_after = i < line_span.fOffset + line_span.fCount - 1 + ? props.tracking * 0.5f : 0.0f; - line_spacing += props.line_spacing; - } + const auto frag_offset = current_line_offset + + SkV2{align_offset + tracking_acc + track_before, 0}; - // line spacing of the first line is ignored (nothing to "space" against) - if (&line_span != &fMaps.fLinesMap.front()) { - // For each line, the actual spacing is an average of individual fragment spacing - // (to preserve the "line"). - line_offset += line_spacing / line_span.fCount; - } + tracking_acc += track_before + track_after; - if (line_offset != SkV2{0, 0} || line_has_tracking) { - this->adjustLineProps(buf, line_span, line_offset, line_tracking); + this->pushPropsToFragment(props, frag, frag_offset, fGroupingAlignment * .01f, // % + grouping_domain ? &(*grouping_domain)[grouping_span_index] + : nullptr); } - } } @@ -674,10 +713,10 @@ SkV2 TextAdapter::fragmentAnchorPoint(const FragmentRec& rec, } SkM44 TextAdapter::fragmentMatrix(const TextAnimator::ResolvedProps& props, - const FragmentRec& rec, const SkV2& anchor_point) const { + const FragmentRec& rec, const SkV2& frag_offset) const { const SkV3 pos = { - props.position.x + rec.fOrigin.fX + anchor_point.x, - props.position.y + rec.fOrigin.fY + anchor_point.y, + props.position.x + rec.fOrigin.fX + frag_offset.x, + props.position.y + rec.fOrigin.fY + frag_offset.y, props.position.z }; @@ -707,12 +746,13 @@ SkM44 TextAdapter::fragmentMatrix(const TextAnimator::ResolvedProps& props, void TextAdapter::pushPropsToFragment(const TextAnimator::ResolvedProps& props, const FragmentRec& rec, + const SkV2& frag_offset, const SkV2& grouping_alignment, const TextAnimator::DomainSpan* grouping_span) const { const auto anchor_point = this->fragmentAnchorPoint(rec, grouping_alignment, grouping_span); rec.fMatrixNode->setMatrix( - this->fragmentMatrix(props, rec, anchor_point) + this->fragmentMatrix(props, rec, anchor_point + frag_offset) * SkM44::Rotate({ 1, 0, 0 }, SkDegreesToRadians(props.rotation.x)) * SkM44::Rotate({ 0, 1, 0 }, SkDegreesToRadians(props.rotation.y)) * SkM44::Rotate({ 0, 0, 1 }, SkDegreesToRadians(props.rotation.z)) @@ -735,44 +775,4 @@ void TextAdapter::pushPropsToFragment(const TextAnimator::ResolvedProps& props, } } -void TextAdapter::adjustLineProps(const TextAnimator::ModulatorBuffer& buf, - const TextAnimator::DomainSpan& line_span, - const SkV2& line_offset, - float total_tracking) const { - SkASSERT(line_span.fCount > 0); - - // AE tracking is defined per glyph, based on two components: |before| and |after|. - // BodyMovin only exports "balanced" tracking values, where before == after == tracking / 2. - // - // Tracking is applied as a local glyph offset, and contributes to the line width for alignment - // purposes. - - // The first glyph does not contribute |before| tracking, and the last one does not contribute - // |after| tracking. Rather than spill this logic into applyAnimators, post-adjust here. - total_tracking -= 0.5f * (buf[line_span.fOffset].props.tracking + - buf[line_span.fOffset + line_span.fCount - 1].props.tracking); - - const auto align_offset = -total_tracking * align_factor(fText->fHAlign); - - float tracking_acc = 0; - for (size_t i = line_span.fOffset; i < line_span.fOffset + line_span.fCount; ++i) { - const auto& props = buf[i].props; - - // No |before| tracking for the first glyph, nor |after| tracking for the last one. - const auto track_before = i > line_span.fOffset - ? props.tracking * 0.5f : 0.0f, - track_after = i < line_span.fOffset + line_span.fCount - 1 - ? props.tracking * 0.5f : 0.0f, - fragment_offset = align_offset + tracking_acc + track_before; - - const auto& frag = fFragments[i]; - const auto m = SkM44::Translate(line_offset.x + fragment_offset, - line_offset.y) * - frag.fMatrixNode->getMatrix(); - frag.fMatrixNode->setMatrix(m); - - tracking_acc += track_before + track_after; - } -} - } // namespace skottie::internal diff --git a/third_party/skia/modules/skottie/src/text/TextAdapter.h b/third_party/skia/modules/skottie/src/text/TextAdapter.h index 200c0ebc097e..1a4ad942e637 100644 --- a/third_party/skia/modules/skottie/src/text/TextAdapter.h +++ b/third_party/skia/modules/skottie/src/text/TextAdapter.h @@ -65,16 +65,12 @@ class TextAdapter final : public AnimatablePropertyContainer { }; void reshape(); - void addFragment(const Shaper::Fragment&); + void addFragment(const Shaper::Fragment&, float scale); void buildDomainMaps(const Shaper::Result&); void pushPropsToFragment(const TextAnimator::ResolvedProps&, const FragmentRec&, - const SkV2&, const TextAnimator::DomainSpan*) const; - - void adjustLineProps(const TextAnimator::ModulatorBuffer&, - const TextAnimator::DomainSpan&, - const SkV2& line_offset, - float line_tracking) const; + const SkV2& frag_offset, const SkV2& grouping_alignment, + const TextAnimator::DomainSpan*) const; SkV2 fragmentAnchorPoint(const FragmentRec&, const SkV2&, const TextAnimator::DomainSpan*) const; @@ -116,8 +112,9 @@ class TextAdapter final : public AnimatablePropertyContainer { struct PathInfo; std::unique_ptr fPathInfo; - bool fHasBlurAnimator : 1, - fRequiresAnchorPoint : 1; + bool fHasBlurAnimator : 1, + fRequiresAnchorPoint : 1, + fRequiresLineAdjustments : 1; }; } // namespace internal diff --git a/third_party/skia/modules/skottie/src/text/TextAnimator.cpp b/third_party/skia/modules/skottie/src/text/TextAnimator.cpp index 06c8216fb856..e629d1353464 100644 --- a/third_party/skia/modules/skottie/src/text/TextAnimator.cpp +++ b/third_party/skia/modules/skottie/src/text/TextAnimator.cpp @@ -182,11 +182,14 @@ TextAnimator::TextAnimator(std::vector>&& selectors, const AnimationBuilder* abuilder, AnimatablePropertyContainer* acontainer) : fSelectors(std::move(selectors)) - , fRequiresAnchorPoint(false) { + , fRequiresAnchorPoint(false) + , fRequiresLineAdjustments(false) { acontainer->bind(*abuilder, jprops["p" ], fTextProps.position); - acontainer->bind(*abuilder, jprops["t" ], fTextProps.tracking); - acontainer->bind(*abuilder, jprops["ls"], fTextProps.line_spacing); + + // Tracking and line spacing affect all line fragments. + fRequiresLineAdjustments |= acontainer->bind(*abuilder, jprops["t" ], fTextProps.tracking); + fRequiresLineAdjustments |= acontainer->bind(*abuilder, jprops["ls"], fTextProps.line_spacing); // Scale and rotation are anchor-point-dependent. fRequiresAnchorPoint |= acontainer->bind(*abuilder, jprops["s"], fTextProps.scale); diff --git a/third_party/skia/modules/skottie/src/text/TextAnimator.h b/third_party/skia/modules/skottie/src/text/TextAnimator.h index 5180a3457057..068465b92155 100644 --- a/third_party/skia/modules/skottie/src/text/TextAnimator.h +++ b/third_party/skia/modules/skottie/src/text/TextAnimator.h @@ -87,7 +87,8 @@ class TextAnimator final : public SkNVRefCnt { bool hasBlur() const { return fHasBlur; } - bool requiresAnchorPoint() const { return fRequiresAnchorPoint; } + bool requiresAnchorPoint() const { return fRequiresAnchorPoint; } + bool requiresLineAdjustments() const { return fRequiresLineAdjustments; } private: TextAnimator(std::vector>&&, @@ -100,13 +101,14 @@ class TextAnimator final : public SkNVRefCnt { const std::vector> fSelectors; AnimatedProps fTextProps; - bool fHasFillColor : 1, - fHasStrokeColor : 1, - fHasFillOpacity : 1, - fHasStrokeOpacity : 1, - fHasOpacity : 1, - fHasBlur : 1, - fRequiresAnchorPoint : 1; // animator sensitive to transform origin? + bool fHasFillColor : 1, + fHasStrokeColor : 1, + fHasFillOpacity : 1, + fHasStrokeOpacity : 1, + fHasOpacity : 1, + fHasBlur : 1, + fRequiresAnchorPoint : 1, // animator sensitive to transform origin? + fRequiresLineAdjustments : 1; // animator effects line-wide fragment adjustments }; } // namespace internal diff --git a/third_party/skia/modules/skottie/src/text/TextValue.cpp b/third_party/skia/modules/skottie/src/text/TextValue.cpp index f92514e6201f..5db03cf22118 100644 --- a/third_party/skia/modules/skottie/src/text/TextValue.cpp +++ b/third_party/skia/modules/skottie/src/text/TextValue.cpp @@ -74,9 +74,10 @@ bool Parse(const skjson::Value& jv, const internal::AnimationBuilder& abuilder, ParseDefault((*jtxt)["sk_rs"], 0)), SK_ARRAY_COUNT(gResizeMap) - 1)]; - // Optional min/max font size (used when aute-resizing) + // Optional min/max font size and line count (used when aute-resizing) v->fMinTextSize = ParseDefault((*jtxt)["mf"], 0.0f); v->fMaxTextSize = ParseDefault((*jtxt)["xf"], std::numeric_limits::max()); + v->fMaxLines = ParseDefault ((*jtxt)["xl"], 0); // At the moment, BM uses the paragraph box to discriminate point mode vs. paragraph mode. v->fLineBreak = v->fBox.isEmpty() @@ -160,6 +161,14 @@ bool Parse(const skjson::Value& jv, const internal::AnimationBuilder& abuilder, v->fPaintOrder = ParseDefault((*jtxt)["of"], true) ? TextPaintOrder::kFillStroke : TextPaintOrder::kStrokeFill; + + static constexpr SkPaint::Join gJoins[] = { + SkPaint::kMiter_Join, // lj: 1 + SkPaint::kRound_Join, // lj: 2 + SkPaint::kBevel_Join, // lj: 3 + }; + v->fStrokeJoin = gJoins[std::min(ParseDefault((*jtxt)["lj"], 1) - 1, + SK_ARRAY_COUNT(gJoins) - 1)]; } return true; diff --git a/third_party/skia/modules/skottie/tests/AudioLayer.cpp b/third_party/skia/modules/skottie/tests/AudioLayer.cpp index 080f37bcf401..36355bd70c51 100644 --- a/third_party/skia/modules/skottie/tests/AudioLayer.cpp +++ b/third_party/skia/modules/skottie/tests/AudioLayer.cpp @@ -5,8 +5,8 @@ * found in the LICENSE file. */ +#include "include/core/SkStream.h" #include "modules/skottie/include/Skottie.h" - #include "tests/Test.h" using namespace skottie; diff --git a/third_party/skia/modules/skottie/tests/BUILD.bazel b/third_party/skia/modules/skottie/tests/BUILD.bazel index 7b252a0b76bb..a4ca48fc60e2 100644 --- a/third_party/skia/modules/skottie/tests/BUILD.bazel +++ b/third_party/skia/modules/skottie/tests/BUILD.bazel @@ -1,10 +1,13 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "AudioLayer_src", srcs = ["AudioLayer.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkStream_hdr", "//modules/skottie/include:Skottie_hdr", "//tests:Test_hdr", ], @@ -15,6 +18,7 @@ generated_cc_atom( srcs = ["Expression.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkStream_hdr", "//modules/skottie/include:SkottieProperty_hdr", "//modules/skottie/include:Skottie_hdr", "//tests:Test_hdr", @@ -26,6 +30,7 @@ generated_cc_atom( srcs = ["Image.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkStream_hdr", "//include/core:SkSurface_hdr", "//modules/skottie/include:Skottie_hdr", "//tests:Test_hdr", diff --git a/third_party/skia/modules/skottie/tests/Expression.cpp b/third_party/skia/modules/skottie/tests/Expression.cpp index 8df1886d4d12..35e837384351 100644 --- a/third_party/skia/modules/skottie/tests/Expression.cpp +++ b/third_party/skia/modules/skottie/tests/Expression.cpp @@ -6,6 +6,7 @@ */ #include +#include "include/core/SkStream.h" #include "modules/skottie/include/Skottie.h" #include "modules/skottie/include/SkottieProperty.h" #include "tests/Test.h" diff --git a/third_party/skia/modules/skottie/tests/Image.cpp b/third_party/skia/modules/skottie/tests/Image.cpp index 8299d7ea59de..18abc5e744dd 100644 --- a/third_party/skia/modules/skottie/tests/Image.cpp +++ b/third_party/skia/modules/skottie/tests/Image.cpp @@ -5,6 +5,7 @@ * found in the LICENSE file. */ +#include "include/core/SkStream.h" #include "include/core/SkSurface.h" #include "modules/skottie/include/Skottie.h" #include "tests/Test.h" diff --git a/third_party/skia/modules/skottie/utils/BUILD.bazel b/third_party/skia/modules/skottie/utils/BUILD.bazel index c26dda8fa552..0ae965370d27 100644 --- a/third_party/skia/modules/skottie/utils/BUILD.bazel +++ b/third_party/skia/modules/skottie/utils/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + filegroup( name = "hdrs", srcs = [ diff --git a/third_party/skia/modules/skottie/utils/SkottieUtils.cpp b/third_party/skia/modules/skottie/utils/SkottieUtils.cpp index 486ce0665a99..59eb458b59f4 100644 --- a/third_party/skia/modules/skottie/utils/SkottieUtils.cpp +++ b/third_party/skia/modules/skottie/utils/SkottieUtils.cpp @@ -210,8 +210,11 @@ class ExternalAnimationLayer final : public skottie::ExternalLayer { void render(SkCanvas* canvas, double t) override { fAnimation->seekFrameTime(t); + // The main animation will layer-isolate if needed - we don't want the nested animation + // to override that decision. + const auto flags = skottie::Animation::RenderFlag::kSkipTopLevelIsolation; const auto dst_rect = SkRect::MakeSize(fSize); - fAnimation->render(canvas, &dst_rect); + fAnimation->render(canvas, &dst_rect, flags); } const sk_sp fAnimation; @@ -241,6 +244,7 @@ sk_sp ExternalAnimationPrecompInterceptor::onLoadPrecomp auto anim = skottie::Animation::Builder() .setPrecompInterceptor(sk_ref_sp(this)) + .setResourceProvider(fResourceProvider) .make(static_cast(data->data()), data->size()); return anim ? sk_make_sp(std::move(anim), size) diff --git a/third_party/skia/modules/skparagraph/BUILD.bazel b/third_party/skia/modules/skparagraph/BUILD.bazel index c22784e4091b..23f26b6119d3 100644 --- a/third_party/skia/modules/skparagraph/BUILD.bazel +++ b/third_party/skia/modules/skparagraph/BUILD.bazel @@ -1,9 +1,12 @@ +licenses(["notice"]) + cc_library( name = "skparagraph", hdrs = ["//modules/skparagraph/include:hdrs"], visibility = ["//:__subpackages__"], deps = [ "//modules/skparagraph/src:Decorations_src", + "//modules/skparagraph/src:FontArguments_src", "//modules/skparagraph/src:FontCollection_src", "//modules/skparagraph/src:OneLineShaper_src", "//modules/skparagraph/src:ParagraphBuilderImpl_src", diff --git a/third_party/skia/modules/skparagraph/bench/BUILD.bazel b/third_party/skia/modules/skparagraph/bench/BUILD.bazel index 4b582cd6d8f0..e0793ddc3092 100644 --- a/third_party/skia/modules/skparagraph/bench/BUILD.bazel +++ b/third_party/skia/modules/skparagraph/bench/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "ParagraphBench_src", srcs = ["ParagraphBench.cpp"], diff --git a/third_party/skia/modules/skparagraph/gm/BUILD.bazel b/third_party/skia/modules/skparagraph/gm/BUILD.bazel index e137458fa7aa..b5782b764be4 100644 --- a/third_party/skia/modules/skparagraph/gm/BUILD.bazel +++ b/third_party/skia/modules/skparagraph/gm/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "simple_gm_src", srcs = ["simple_gm.cpp"], diff --git a/third_party/skia/modules/skparagraph/include/BUILD.bazel b/third_party/skia/modules/skparagraph/include/BUILD.bazel index dfa11417b59d..c9ffd77ec02c 100644 --- a/third_party/skia/modules/skparagraph/include/BUILD.bazel +++ b/third_party/skia/modules/skparagraph/include/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + filegroup( name = "hdrs", srcs = [ @@ -32,6 +34,7 @@ generated_cc_atom( hdrs = ["FontCollection.h"], visibility = ["//:__subpackages__"], deps = [ + ":FontArguments_hdr", ":ParagraphCache_hdr", ":TextStyle_hdr", "//include/core:SkFontMgr_hdr", @@ -110,6 +113,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":DartTypes_hdr", + ":FontArguments_hdr", ":TextShadow_hdr", "//include/core:SkColor_hdr", "//include/core:SkFontMetrics_hdr", @@ -132,3 +136,13 @@ generated_cc_atom( "//include/private:SkTHash_hdr", ], ) + +generated_cc_atom( + name = "FontArguments_hdr", + hdrs = ["FontArguments.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkFontArguments_hdr", + "//include/core:SkTypeface_hdr", + ], +) diff --git a/third_party/skia/modules/skparagraph/include/DartTypes.h b/third_party/skia/modules/skparagraph/include/DartTypes.h index 946694fd0bc3..415d5dfa722f 100644 --- a/third_party/skia/modules/skparagraph/include/DartTypes.h +++ b/third_party/skia/modules/skparagraph/include/DartTypes.h @@ -144,12 +144,6 @@ enum class LineMetricStyle : uint8_t { CSS }; -enum class DrawOptions { - kRecord, - kReplay, - kDirect -}; - } // namespace textlayout } // namespace skia diff --git a/third_party/skia/modules/skparagraph/include/FontArguments.h b/third_party/skia/modules/skparagraph/include/FontArguments.h new file mode 100644 index 000000000000..9560c0f18ca9 --- /dev/null +++ b/third_party/skia/modules/skparagraph/include/FontArguments.h @@ -0,0 +1,46 @@ +// Copyright 2019 Google LLC. +#ifndef FontArguments_DEFINED +#define FontArguments_DEFINED + +#include +#include +#include "include/core/SkFontArguments.h" +#include "include/core/SkTypeface.h" + +namespace skia { +namespace textlayout { + +class FontArguments { +public: + FontArguments(const SkFontArguments&); + FontArguments(const FontArguments&) = default; + FontArguments(FontArguments&&) = default; + + FontArguments& operator=(const FontArguments&) = default; + FontArguments& operator=(FontArguments&&) = default; + + sk_sp CloneTypeface(sk_sp typeface) const; + + friend bool operator==(const FontArguments& a, const FontArguments& b); + friend bool operator!=(const FontArguments& a, const FontArguments& b); + friend struct std::hash; + +private: + FontArguments() = delete; + + int fCollectionIndex; + std::vector fCoordinates; + int fPaletteIndex; + std::vector fPaletteOverrides; +}; + +} // namespace textlayout +} // namespace skia + +namespace std { + template<> struct hash { + size_t operator()(const skia::textlayout::FontArguments& args) const; + }; +} + +#endif // FontArguments_DEFINED diff --git a/third_party/skia/modules/skparagraph/include/FontCollection.h b/third_party/skia/modules/skparagraph/include/FontCollection.h index e654858510dd..a119e4b28d2c 100644 --- a/third_party/skia/modules/skparagraph/include/FontCollection.h +++ b/third_party/skia/modules/skparagraph/include/FontCollection.h @@ -3,10 +3,12 @@ #define FontCollection_DEFINED #include +#include #include #include "include/core/SkFontMgr.h" #include "include/core/SkRefCnt.h" #include "include/private/SkTHash.h" +#include "modules/skparagraph/include/FontArguments.h" #include "modules/skparagraph/include/ParagraphCache.h" #include "modules/skparagraph/include/TextStyle.h" @@ -31,6 +33,7 @@ class FontCollection : public SkRefCnt { sk_sp getFallbackManager() const { return fDefaultFontManager; } std::vector> findTypefaces(const std::vector& familyNames, SkFontStyle fontStyle); + std::vector> findTypefaces(const std::vector& familyNames, SkFontStyle fontStyle, const std::optional& fontArgs); sk_sp defaultFallback(SkUnichar unicode, SkFontStyle fontStyle, const SkString& locale); sk_sp defaultFallback(); @@ -49,13 +52,14 @@ class FontCollection : public SkRefCnt { sk_sp matchTypeface(const SkString& familyName, SkFontStyle fontStyle); struct FamilyKey { - FamilyKey(const std::vector& familyNames, SkFontStyle style) - : fFamilyNames(familyNames), fFontStyle(style) {} + FamilyKey(const std::vector& familyNames, SkFontStyle style, const std::optional& args) + : fFamilyNames(familyNames), fFontStyle(style), fFontArguments(args) {} FamilyKey() {} std::vector fFamilyNames; SkFontStyle fFontStyle; + std::optional fFontArguments; bool operator==(const FamilyKey& other) const; diff --git a/third_party/skia/modules/skparagraph/include/ParagraphStyle.h b/third_party/skia/modules/skparagraph/include/ParagraphStyle.h index 762e028c01a2..a76facddc1ee 100644 --- a/third_party/skia/modules/skparagraph/include/ParagraphStyle.h +++ b/third_party/skia/modules/skparagraph/include/ParagraphStyle.h @@ -119,8 +119,6 @@ struct ParagraphStyle { TextAlign effective_align() const; bool hintingIsOn() const { return fHintingIsOn; } void turnHintingOff() { fHintingIsOn = false; } - DrawOptions getDrawOptions() { return fDrawingOptions; } - void setDrawOptions(DrawOptions value) { fDrawingOptions = value; } private: StrutStyle fStrutStyle; @@ -133,7 +131,6 @@ struct ParagraphStyle { SkScalar fHeight; TextHeightBehavior fTextHeightBehavior; bool fHintingIsOn; - DrawOptions fDrawingOptions = DrawOptions::kDirect; }; } // namespace textlayout } // namespace skia diff --git a/third_party/skia/modules/skparagraph/include/TextStyle.h b/third_party/skia/modules/skparagraph/include/TextStyle.h index 00487c7d8509..19220eba1826 100644 --- a/third_party/skia/modules/skparagraph/include/TextStyle.h +++ b/third_party/skia/modules/skparagraph/include/TextStyle.h @@ -2,6 +2,7 @@ #ifndef TextStyle_DEFINED #define TextStyle_DEFINED +#include #include #include "include/core/SkColor.h" #include "include/core/SkFont.h" @@ -10,6 +11,7 @@ #include "include/core/SkPaint.h" #include "include/core/SkScalar.h" #include "modules/skparagraph/include/DartTypes.h" +#include "modules/skparagraph/include/FontArguments.h" #include "modules/skparagraph/include/TextShadow.h" // TODO: Make it external so the other platforms (Android) could use it @@ -148,7 +150,10 @@ struct PlaceholderStyle { class TextStyle { public: TextStyle() = default; - TextStyle(const TextStyle& other, bool placeholder); + TextStyle(const TextStyle& other) = default; + TextStyle& operator=(const TextStyle& other) = default; + + TextStyle cloneForPlaceholder(); bool equals(const TextStyle& other) const; bool equalsByFonts(const TextStyle& that) const; @@ -207,6 +212,12 @@ class TextStyle { { fFontFeatures.emplace_back(fontFeature, value); } void resetFontFeatures() { fFontFeatures.clear(); } + // Font arguments + const std::optional& getFontArguments() const { return fFontArguments; } + // The contents of the SkFontArguments will be copied into the TextStyle, + // and the SkFontArguments can be safely deleted after setFontArguments returns. + void setFontArguments(const std::optional& args); + SkScalar getFontSize() const { return fFontSize; } void setFontSize(SkScalar size) { fFontSize = size; } @@ -290,6 +301,8 @@ class TextStyle { bool fIsPlaceholder = false; std::vector fFontFeatures; + + std::optional fFontArguments; }; typedef size_t TextIndex; diff --git a/third_party/skia/modules/skparagraph/samples/BUILD.bazel b/third_party/skia/modules/skparagraph/samples/BUILD.bazel index 9ad740b66cf8..d90799f85d5f 100644 --- a/third_party/skia/modules/skparagraph/samples/BUILD.bazel +++ b/third_party/skia/modules/skparagraph/samples/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SampleParagraph_src", srcs = ["SampleParagraph.cpp"], diff --git a/third_party/skia/modules/skparagraph/samples/SampleParagraph.cpp b/third_party/skia/modules/skparagraph/samples/SampleParagraph.cpp index 73d90d954fdf..a0e823d44cec 100644 --- a/third_party/skia/modules/skparagraph/samples/SampleParagraph.cpp +++ b/third_party/skia/modules/skparagraph/samples/SampleParagraph.cpp @@ -2076,8 +2076,8 @@ class ParagraphView27 : public ParagraphView_Base { auto impl = static_cast(paragraph.get()); for (auto& line : impl->lines()) { if (this->isVerbose()) { - SkDebugf("line[%d]: %f + %f\n", (int)(&line - impl->lines().begin()), - line.offset().fX, line.shift()); + SkDebugf("line[%d]: %f\n", (int)(&line - impl->lines().begin()), + line.offset().fX); } line.iterateThroughVisualRuns(true, [&](const Run* run, SkScalar runOffset, TextRange textRange, SkScalar* width) { @@ -2932,8 +2932,7 @@ class ParagraphView46 : public ParagraphView_Base { ParagraphStyle paragraph_style; auto column = width()/3; - auto draw = [&](DrawOptions options, SkScalar x) { - paragraph_style.setDrawOptions(options); + auto draw = [&](SkScalar x) { ParagraphBuilderImpl builder(paragraph_style, fontCollection); TextStyle text_style; text_style.setColor(SK_ColorBLACK); @@ -2948,9 +2947,7 @@ class ParagraphView46 : public ParagraphView_Base { paragraph->paint(canvas, x, 400); }; - draw(DrawOptions::kReplay, column*0); - draw(DrawOptions::kRecord, column*1); - draw(DrawOptions::kDirect, column*2); + draw(column*0); } private: @@ -3620,37 +3617,27 @@ class ParagraphView63 : public ParagraphView_Base { void onDrawContent(SkCanvas* canvas) override { canvas->drawColor(SK_ColorWHITE); - auto fontCollection = sk_make_sp(GetResourcePath("fonts").c_str(), true, true); + auto fontCollection = sk_make_sp(); + fontCollection->setDefaultFontManager(SkFontMgr::RefDefault()); TextStyle text_style; - text_style.setFontFamilies({SkString("Ahem")}); - text_style.setFontSize(10); - SkPaint black; black.setColor(SK_ColorBLACK); + text_style.setFontFamilies({SkString("Roboto")}); + text_style.setFontSize(100); + SkPaint black; + black.setColor(SK_ColorBLACK); text_style.setForegroundColor(black); + SkPaint red; + red.setColor(SK_ColorRED); + text_style.setBackgroundColor(red); ParagraphStyle paragraph_style; paragraph_style.setTextStyle(text_style); - paragraph_style.setTextDirection(TextDirection::kLtr); - StrutStyle strut_style; - strut_style.setStrutEnabled(true); - strut_style.setFontFamilies({SkString("Ahem")}); - strut_style.setFontSize(16); - strut_style.setHeight(4.0f); - strut_style.setHeightOverride(true); - strut_style.setLeading(-1.0f); - strut_style.setForceStrutHeight(true); - paragraph_style.setStrutStyle(strut_style); ParagraphBuilderImpl builder(paragraph_style, fontCollection); builder.pushStyle(text_style); - builder.addText(u"Atwater Peel Sherbrooke Bonaventure\nhi\nwasssup!"); + builder.addText("."); auto paragraph = builder.Build(); - paragraph->layout(797); + paragraph->layout(SK_ScalarInfinity); paragraph->paint(canvas, 0, 0); - auto boxes = paragraph->getRectsForRange(0, 60, - RectHeightStyle::kIncludeLineSpacingTop, RectWidthStyle::kMax); - for (auto& box : boxes) { - SkDebugf("[%f, %f, %f, %f]: %s\n", box.rect.left(), box.rect.top(), box.rect.right(), box.rect.bottom(), box.direction == TextDirection::kLtr ? "left" : "right"); - } } private: diff --git a/third_party/skia/modules/skparagraph/skparagraph.gni b/third_party/skia/modules/skparagraph/skparagraph.gni index df0091cc8f52..14fc5fc7856a 100644 --- a/third_party/skia/modules/skparagraph/skparagraph.gni +++ b/third_party/skia/modules/skparagraph/skparagraph.gni @@ -9,6 +9,7 @@ skparagraph_public = [ "$_include/ParagraphStyle.h", "$_include/TextStyle.h", "$_include/TextShadow.h", + "$_include/FontArguments.h", "$_include/FontCollection.h", "$_include/Paragraph.h", "$_include/ParagraphBuilder.h", @@ -21,6 +22,7 @@ skparagraph_public = [ skparagraph_sources = [ "$_src/Decorations.cpp", "$_src/Decorations.h", + "$_src/FontArguments.cpp", "$_src/FontCollection.cpp", "$_src/Iterators.h", "$_src/OneLineShaper.cpp", diff --git a/third_party/skia/modules/skparagraph/src/BUILD.bazel b/third_party/skia/modules/skparagraph/src/BUILD.bazel index fd050c387629..7d2a3d0b7080 100644 --- a/third_party/skia/modules/skparagraph/src/BUILD.bazel +++ b/third_party/skia/modules/skparagraph/src/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "Decorations_hdr", hdrs = ["Decorations.h"], @@ -110,6 +112,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":ParagraphImpl_hdr", + "//modules/skparagraph/include:FontArguments_hdr", "//modules/skparagraph/include:ParagraphCache_hdr", ], ) @@ -320,3 +323,10 @@ generated_cc_atom( "//src/core:SkFontDescriptor_hdr", ], ) + +generated_cc_atom( + name = "FontArguments_src", + srcs = ["FontArguments.cpp"], + visibility = ["//:__subpackages__"], + deps = ["//modules/skparagraph/include:FontArguments_hdr"], +) diff --git a/third_party/skia/modules/skparagraph/src/FontArguments.cpp b/third_party/skia/modules/skparagraph/src/FontArguments.cpp new file mode 100644 index 000000000000..8e9c16180d21 --- /dev/null +++ b/third_party/skia/modules/skparagraph/src/FontArguments.cpp @@ -0,0 +1,79 @@ +// Copyright 2019 Google LLC. + +#include "modules/skparagraph/include/FontArguments.h" + +static bool operator==(const SkFontArguments::VariationPosition::Coordinate& a, + const SkFontArguments::VariationPosition::Coordinate& b) { + return a.axis == b.axis && a.value == b.value; +} + +static bool operator==(const SkFontArguments::Palette::Override& a, + const SkFontArguments::Palette::Override& b) { + return a.index == b.index && a.color == b.color; +} + +namespace std { + +size_t hash::operator()(const skia::textlayout::FontArguments& args) const { + size_t hash = 0; + hash ^= std::hash()(args.fCollectionIndex); + for (const auto& coord : args.fCoordinates) { + hash ^= std::hash()(coord.axis); + hash ^= std::hash()(coord.value); + } + hash ^= std::hash()(args.fPaletteIndex); + for (const auto& override : args.fPaletteOverrides) { + hash ^= std::hash()(override.index); + hash ^= std::hash()(override.color); + } + return hash; +} + +} // namespace std + +namespace skia { +namespace textlayout { + +FontArguments::FontArguments(const SkFontArguments& args) + : fCollectionIndex(args.getCollectionIndex()), + fCoordinates(args.getVariationDesignPosition().coordinates, + args.getVariationDesignPosition().coordinates + + args.getVariationDesignPosition().coordinateCount), + fPaletteIndex(args.getPalette().index), + fPaletteOverrides(args.getPalette().overrides, + args.getPalette().overrides + + args.getPalette().overrideCount) {} + +bool operator==(const FontArguments& a, const FontArguments& b) { + return a.fCollectionIndex == b.fCollectionIndex && + a.fCoordinates == b.fCoordinates && + a.fPaletteIndex == b.fPaletteIndex && + a.fPaletteOverrides == b.fPaletteOverrides; +} + +bool operator!=(const skia::textlayout::FontArguments& a, const skia::textlayout::FontArguments& b) { + return !(a == b); +} + +sk_sp FontArguments::CloneTypeface(sk_sp typeface) const { + SkFontArguments::VariationPosition position{ + fCoordinates.data(), + static_cast(fCoordinates.size()) + }; + + SkFontArguments::Palette palette{ + fPaletteIndex, + fPaletteOverrides.data(), + static_cast(fPaletteOverrides.size()) + }; + + SkFontArguments args; + args.setCollectionIndex(fCollectionIndex); + args.setVariationDesignPosition(position); + args.setPalette(palette); + + return typeface->makeClone(args); +} + +} // namespace textlayout +} // namespace skia diff --git a/third_party/skia/modules/skparagraph/src/FontCollection.cpp b/third_party/skia/modules/skparagraph/src/FontCollection.cpp index 9571afbb35c5..98ee74ab92a8 100644 --- a/third_party/skia/modules/skparagraph/src/FontCollection.cpp +++ b/third_party/skia/modules/skparagraph/src/FontCollection.cpp @@ -9,7 +9,9 @@ namespace skia { namespace textlayout { bool FontCollection::FamilyKey::operator==(const FontCollection::FamilyKey& other) const { - return fFamilyNames == other.fFamilyNames && fFontStyle == other.fFontStyle; + return fFamilyNames == other.fFamilyNames && + fFontStyle == other.fFontStyle && + fFontArguments == other.fFontArguments; } size_t FontCollection::FamilyKey::Hasher::operator()(const FontCollection::FamilyKey& key) const { @@ -19,7 +21,8 @@ size_t FontCollection::FamilyKey::Hasher::operator()(const FontCollection::Famil } return hash ^ std::hash()(key.fFontStyle.weight()) ^ - std::hash()(key.fFontStyle.slant()); + std::hash()(key.fFontStyle.slant()) ^ + std::hash>()(key.fFontArguments); } FontCollection::FontCollection() @@ -75,8 +78,12 @@ std::vector> FontCollection::getFontManagerOrder() const { } std::vector> FontCollection::findTypefaces(const std::vector& familyNames, SkFontStyle fontStyle) { + return findTypefaces(familyNames, fontStyle, std::nullopt); +} + +std::vector> FontCollection::findTypefaces(const std::vector& familyNames, SkFontStyle fontStyle, const std::optional& fontArgs) { // Look inside the font collections cache first - FamilyKey familyKey(familyNames, fontStyle); + FamilyKey familyKey(familyNames, fontStyle, fontArgs); auto found = fTypefaces.find(familyKey); if (found) { return *found; @@ -85,6 +92,9 @@ std::vector> FontCollection::findTypefaces(const std::vector> typefaces; for (const SkString& familyName : familyNames) { sk_sp match = matchTypeface(familyName, fontStyle); + if (match && fontArgs) { + match = fontArgs->CloneTypeface(match); + } if (match) { typefaces.emplace_back(std::move(match)); } diff --git a/third_party/skia/modules/skparagraph/src/OneLineShaper.cpp b/third_party/skia/modules/skparagraph/src/OneLineShaper.cpp index b2a12798a2b4..5100efddb52c 100644 --- a/third_party/skia/modules/skparagraph/src/OneLineShaper.cpp +++ b/third_party/skia/modules/skparagraph/src/OneLineShaper.cpp @@ -223,7 +223,6 @@ void OneLineShaper::finish(const Block& block, SkScalar height, SkScalar& advanc auto index = i - glyphs.start; if (i < glyphs.end) { piece->fGlyphs[index] = run->fGlyphs[i]; - piece->fBounds[index] = run->fBounds[i]; } piece->fClusterIndexes[index] = run->fClusterIndexes[i]; piece->fPositions[index] = run->fPositions[i] - zero; @@ -477,7 +476,7 @@ void OneLineShaper::iterateThroughFontStyles(TextRange textRange, void OneLineShaper::matchResolvedFonts(const TextStyle& textStyle, const TypefaceVisitor& visitor) { - std::vector> typefaces = fParagraph->fFontCollection->findTypefaces(textStyle.getFontFamilies(), textStyle.getFontStyle()); + std::vector> typefaces = fParagraph->fFontCollection->findTypefaces(textStyle.getFontFamilies(), textStyle.getFontStyle(), textStyle.getFontArguments()); for (const auto& typeface : typefaces) { if (visitor(typeface) == Resolved::Everything) { @@ -591,7 +590,8 @@ bool OneLineShaper::iterateThroughShapingRegions(const ShapeVisitor& shape) { // Get the placeholder font std::vector> typefaces = fParagraph->fFontCollection->findTypefaces( placeholder.fTextStyle.getFontFamilies(), - placeholder.fTextStyle.getFontStyle()); + placeholder.fTextStyle.getFontStyle(), + placeholder.fTextStyle.getFontArguments()); sk_sp typeface = typefaces.size() ? typefaces.front() : nullptr; SkFont font(typeface, placeholder.fTextStyle.getFontSize()); @@ -650,7 +650,7 @@ bool OneLineShaper::shape() { fCurrentText = block.fRange; fUnresolvedBlocks.emplace_back(RunBlock(block.fRange)); - matchResolvedFonts(block.fStyle, [&](sk_sp typeface) { + this->matchResolvedFonts(block.fStyle, [&](sk_sp typeface) { // Create one more font to try SkFont font(std::move(typeface), block.fStyle.getFontSize()); diff --git a/third_party/skia/modules/skparagraph/src/ParagraphBuilderImpl.cpp b/third_party/skia/modules/skparagraph/src/ParagraphBuilderImpl.cpp index 7647097ab890..8c5f836abe26 100644 --- a/third_party/skia/modules/skparagraph/src/ParagraphBuilderImpl.cpp +++ b/third_party/skia/modules/skparagraph/src/ParagraphBuilderImpl.cpp @@ -129,7 +129,7 @@ void ParagraphBuilderImpl::addPlaceholder(const PlaceholderStyle& placeholderSty auto start = fUtf8.size(); auto topStyle = fTextStyles.top(); if (!lastOne) { - pushStyle(TextStyle(topStyle, true)); + pushStyle(topStyle.cloneForPlaceholder()); addText(std::u16string(1ull, 0xFFFC)); pop(); } diff --git a/third_party/skia/modules/skparagraph/src/ParagraphCache.cpp b/third_party/skia/modules/skparagraph/src/ParagraphCache.cpp index 10af870b3b20..9b20f0d51269 100644 --- a/third_party/skia/modules/skparagraph/src/ParagraphCache.cpp +++ b/third_party/skia/modules/skparagraph/src/ParagraphCache.cpp @@ -1,6 +1,7 @@ // Copyright 2019 Google LLC. #include +#include "modules/skparagraph/include/FontArguments.h" #include "modules/skparagraph/include/ParagraphCache.h" #include "modules/skparagraph/src/ParagraphImpl.h" @@ -66,6 +67,8 @@ class ParagraphCacheValue { ParagraphCacheValue(ParagraphCacheKey&& key, const ParagraphImpl* paragraph) : fKey(std::move(key)) , fRuns(paragraph->fRuns) + , fClusters(paragraph->fClusters) + , fClustersIndexFromCodeUnit(paragraph->fClustersIndexFromCodeUnit) , fCodeUnitProperties(paragraph->fCodeUnitProperties) , fWords(paragraph->fWords) , fBidiRegions(paragraph->fBidiRegions) @@ -77,6 +80,8 @@ class ParagraphCacheValue { // Shaped results SkTArray fRuns; + SkTArray fClusters; + SkTArray fClustersIndexFromCodeUnit; // ICU results SkTArray fCodeUnitProperties; std::vector fWords; @@ -125,6 +130,7 @@ uint32_t ParagraphCacheKey::computeHash() const { hash = mix(hash, SkGoodHash()(ff.fValue)); hash = mix(hash, SkGoodHash()(ff.fName)); } + hash = mix(hash, std::hash>()(ts.fStyle.getFontArguments())); hash = mix(hash, SkGoodHash()(ts.fStyle.getFontStyle())); hash = mix(hash, SkGoodHash()(relax(ts.fStyle.getFontSize()))); hash = mix(hash, SkGoodHash()(ts.fRange)); @@ -240,13 +246,18 @@ void ParagraphCache::updateTo(ParagraphImpl* paragraph, const Entry* entry) { paragraph->fRuns.reset(); paragraph->fRuns = entry->fValue->fRuns; + paragraph->fClusters = entry->fValue->fClusters; + paragraph->fClustersIndexFromCodeUnit = entry->fValue->fClustersIndexFromCodeUnit; paragraph->fCodeUnitProperties = entry->fValue->fCodeUnitProperties; paragraph->fWords = entry->fValue->fWords; paragraph->fBidiRegions = entry->fValue->fBidiRegions; paragraph->fUTF8IndexForUTF16Index = entry->fValue->fUTF8IndexForUTF16Index; paragraph->fUTF16IndexForUTF8Index = entry->fValue->fUTF16IndexForUTF8Index; for (auto& run : paragraph->fRuns) { - run.setOwner(paragraph); + run.setOwner(paragraph); + } + for (auto& cluster : paragraph->fClusters) { + cluster.setOwner(paragraph); } } diff --git a/third_party/skia/modules/skparagraph/src/ParagraphImpl.cpp b/third_party/skia/modules/skparagraph/src/ParagraphImpl.cpp index c4fd2d923424..723133d22395 100644 --- a/third_party/skia/modules/skparagraph/src/ParagraphImpl.cpp +++ b/third_party/skia/modules/skparagraph/src/ParagraphImpl.cpp @@ -136,6 +136,9 @@ void ParagraphImpl::layout(SkScalar rawWidth) { this->fUTF8IndexForUTF16Index.reset(); this->fUTF16IndexForUTF8Index.reset(); this->fRuns.reset(); + this->fClusters.reset(); + this->fClustersIndexFromCodeUnit.reset(); + this->fClustersIndexFromCodeUnit.push_back_n(fText.size() + 1, EMPTY_INDEX); if (!this->shapeTextIntoEndlessLine()) { this->resetContext(); // TODO: merge the two next calls - they always come together @@ -160,17 +163,6 @@ void ParagraphImpl::layout(SkScalar rawWidth) { return; } - fState = kShaped; - } - - if (fState < kMarked) { - this->fClusters.reset(); - this->resetShifts(); - this->fClustersIndexFromCodeUnit.reset(); - this->fClustersIndexFromCodeUnit.push_back_n(fText.size() + 1, EMPTY_INDEX); - this->buildClusterTable(); - fState = kClusterized; - this->spaceGlyphs(); fState = kMarked; } @@ -185,6 +177,7 @@ void ParagraphImpl::layout(SkScalar rawWidth) { if (fState < kFormatted) { // Build the picture lazily not until we actually have to paint (or never) + this->resetShifts(); this->formatLines(fWidth); fState = kFormatted; } @@ -212,29 +205,8 @@ void ParagraphImpl::layout(SkScalar rawWidth) { } void ParagraphImpl::paint(SkCanvas* canvas, SkScalar x, SkScalar y) { - - if (fParagraphStyle.getDrawOptions() == DrawOptions::kDirect) { - // Paint the text without recording it - this->paintLines(canvas, x, y); - return; - } - - if (fState < kDrawn) { - // Record the picture anyway (but if we have some pieces in the cache they will be used) - this->paintLinesIntoPicture(0, 0); - fState = kDrawn; - } - - if (fParagraphStyle.getDrawOptions() == DrawOptions::kReplay) { - // Replay the recorded picture - canvas->save(); - canvas->translate(x, y); - fPicture->playback(canvas); - canvas->restore(); - } else { - // Draw the picture - SkMatrix matrix = SkMatrix::Translate(x, y); - canvas->drawPicture(fPicture, &matrix, nullptr); + for (auto& line : fLines) { + line.paint(canvas, x, y); } } @@ -337,7 +309,6 @@ Cluster::Cluster(ParagraphImpl* owner, , fStart(start) , fEnd(end) , fWidth(width) - , fSpacing(0) , fHeight(height) , fHalfLetterSpacing(0.0) { size_t whiteSpacesBreakLen = 0; @@ -368,66 +339,55 @@ Cluster::Cluster(ParagraphImpl* owner, SkScalar Run::calculateWidth(size_t start, size_t end, bool clip) const { SkASSERT(start <= end); // clip |= end == size(); // Clip at the end of the run? - SkScalar shift = 0; - if (fSpaced && end > start) { - shift = fShifts[clip ? end - 1 : end] - fShifts[start]; - } auto correction = 0.0f; if (end > start && !fJustificationShifts.empty()) { // This is not a typo: we are using Point as a pair of SkScalars correction = fJustificationShifts[end - 1].fX - fJustificationShifts[start].fY; } - return posX(end) - posX(start) + shift + correction; + return posX(end) - posX(start) + correction; } -// Clusters in the order of the input text -void ParagraphImpl::buildClusterTable() { - int cluster_count = 1; - for (auto& run : fRuns) { - cluster_count += run.isPlaceholder() ? 1 : run.size(); - } - fClusters.reserve_back(cluster_count); - - // Walk through all the run in the direction of input text - for (auto& run : fRuns) { - auto runIndex = run.index(); - auto runStart = fClusters.size(); - if (run.isPlaceholder()) { - // Add info to cluster indexes table (text -> cluster) - for (auto i = run.textRange().start; i < run.textRange().end; ++i) { - fClustersIndexFromCodeUnit[i] = fClusters.size(); +// In some cases we apply spacing to glyphs first and then build the cluster table, in some we do +// the opposite - just to optimize the most common case. +void ParagraphImpl::applySpacingAndBuildClusterTable() { + + // Check all text styles to see what we have to do (if anything) + size_t letterSpacingStyles = 0; + bool hasWordSpacing = false; + for (auto& block : fTextStyles) { + if (block.fRange.width() > 0) { + if (!SkScalarNearlyZero(block.fStyle.getLetterSpacing())) { + ++letterSpacingStyles; + } + if (!SkScalarNearlyZero(block.fStyle.getWordSpacing())) { + hasWordSpacing = true; } - // There are no glyphs but we want to have one cluster - fClusters.emplace_back(this, runIndex, 0ul, 1ul, this->text(run.textRange()), run.advance().fX, run.advance().fY); - fCodeUnitProperties[run.textRange().start] |= CodeUnitFlags::kSoftLineBreakBefore; - fCodeUnitProperties[run.textRange().end] |= CodeUnitFlags::kSoftLineBreakBefore; - } else { - // Walk through the glyph in the direction of input text - run.iterateThroughClustersInTextOrder([runIndex, this](size_t glyphStart, - size_t glyphEnd, - size_t charStart, - size_t charEnd, - SkScalar width, - SkScalar height) { - SkASSERT(charEnd >= charStart); - // Add info to cluster indexes table (text -> cluster) - for (auto i = charStart; i < charEnd; ++i) { - fClustersIndexFromCodeUnit[i] = fClusters.size(); - } - SkSpan text(fText.c_str() + charStart, charEnd - charStart); - fClusters.emplace_back(this, runIndex, glyphStart, glyphEnd, text, width, height); - }); } + } - run.setClusterRange(runStart, fClusters.size()); - fMaxIntrinsicWidth += run.advance().fX; + if (letterSpacingStyles == 0 && !hasWordSpacing) { + // We don't have to do anything about spacing (most common case) + this->buildClusterTable(); + return; } - fClustersIndexFromCodeUnit[fText.size()] = fClusters.size(); - fClusters.emplace_back(this, EMPTY_RUN, 0, 0, this->text({fText.size(), fText.size()}), 0, 0); -} -void ParagraphImpl::spaceGlyphs() { + if (letterSpacingStyles == 1 && !hasWordSpacing && fTextStyles.size() == 1 && + fTextStyles[0].fRange.width() == fText.size() && fRuns.size() == 1) { + // We have to letter space the entire paragraph (second most common case) + auto& run = fRuns[0]; + auto& style = fTextStyles[0].fStyle; + run.addSpacesEvenly(style.getLetterSpacing()); + this->buildClusterTable(); + // This is something Flutter requires + for (auto& cluster : fClusters) { + cluster.setHalfLetterSpacing(fTextStyles[0].fStyle.getLetterSpacing()/2); + } + return; + } + + // The complex case: many text styles with spacing (possibly not adjusted to glyphs) + this->buildClusterTable(); // Walk through all the clusters in the direction of shaped text // (we have to walk through the styles in the same order, too) @@ -438,17 +398,16 @@ void ParagraphImpl::spaceGlyphs() { if (run.isPlaceholder()) { continue; } - bool soFarWhitespacesOnly = true; run.iterateThroughClusters([this, &run, &shift, &soFarWhitespacesOnly](Cluster* cluster) { // Shift the cluster (shift collected from the previous clusters) run.shift(cluster, shift); // Synchronize styles (one cluster can be covered by few styles) - Block* currentStyle = this->fTextStyles.begin(); + Block* currentStyle = fTextStyles.begin(); while (!cluster->startsIn(currentStyle->fRange)) { currentStyle++; - SkASSERT(currentStyle != this->fTextStyles.end()); + SkASSERT(currentStyle != fTextStyles.end()); } SkASSERT(!currentStyle->fStyle.isPlaceholder()); @@ -473,6 +432,56 @@ void ParagraphImpl::spaceGlyphs() { } } +// Clusters in the order of the input text +void ParagraphImpl::buildClusterTable() { + // It's possible that one grapheme includes few runs; we cannot handle it + // so we break graphemes by the runs instead + // It's not the ideal solution and has to be revisited later + int cluster_count = 1; + for (auto& run : fRuns) { + cluster_count += run.isPlaceholder() ? 1 : run.size(); + fCodeUnitProperties[run.fTextRange.start] |= CodeUnitFlags::kGraphemeStart; + } + fClusters.reserve_back(cluster_count); + + // Walk through all the run in the direction of input text + for (auto& run : fRuns) { + auto runIndex = run.index(); + auto runStart = fClusters.size(); + if (run.isPlaceholder()) { + // Add info to cluster indexes table (text -> cluster) + for (auto i = run.textRange().start; i < run.textRange().end; ++i) { + fClustersIndexFromCodeUnit[i] = fClusters.size(); + } + // There are no glyphs but we want to have one cluster + fClusters.emplace_back(this, runIndex, 0ul, 1ul, this->text(run.textRange()), run.advance().fX, run.advance().fY); + fCodeUnitProperties[run.textRange().start] |= CodeUnitFlags::kSoftLineBreakBefore; + fCodeUnitProperties[run.textRange().end] |= CodeUnitFlags::kSoftLineBreakBefore; + } else { + // Walk through the glyph in the direction of input text + run.iterateThroughClustersInTextOrder([runIndex, this](size_t glyphStart, + size_t glyphEnd, + size_t charStart, + size_t charEnd, + SkScalar width, + SkScalar height) { + SkASSERT(charEnd >= charStart); + // Add info to cluster indexes table (text -> cluster) + for (auto i = charStart; i < charEnd; ++i) { + fClustersIndexFromCodeUnit[i] = fClusters.size(); + } + SkSpan text(fText.c_str() + charStart, charEnd - charStart); + fClusters.emplace_back(this, runIndex, glyphStart, glyphEnd, text, width, height); + }); + } + + run.setClusterRange(runStart, fClusters.size()); + fMaxIntrinsicWidth += run.advance().fX; + } + fClustersIndexFromCodeUnit[fText.size()] = fClusters.size(); + fClusters.emplace_back(this, EMPTY_RUN, 0, 0, this->text({fText.size(), fText.size()}), 0, 0); +} + bool ParagraphImpl::shapeTextIntoEndlessLine() { if (fText.size() == 0) { @@ -494,12 +503,7 @@ bool ParagraphImpl::shapeTextIntoEndlessLine() { auto result = oneLineShaper.shape(); fUnresolvedGlyphs = oneLineShaper.unresolvedGlyphs(); - // It's possible that one grapheme includes few runs; we cannot handle it - // so we break graphemes by the runs instead - // It's not the ideal solution and has to be revisited later - for (auto& run : fRuns) { - fCodeUnitProperties[run.fTextRange.start] |= CodeUnitFlags::kGraphemeStart; - } + this->applySpacingAndBuildClusterTable(); if (!result) { return false; @@ -560,32 +564,13 @@ void ParagraphImpl::formatLines(SkScalar maxWidth) { } } -void ParagraphImpl::paintLinesIntoPicture(SkScalar x, SkScalar y) { - SkPictureRecorder recorder; - SkCanvas* textCanvas = recorder.beginRecording(this->getMaxWidth(), this->getHeight()); - - auto bounds = SkRect::MakeEmpty(); - for (auto& line : fLines) { - auto boundaries = line.paint(textCanvas, x, y); - bounds.joinPossiblyEmptyRect(boundaries); - } - - fPicture = recorder.finishRecordingAsPictureWithCull(bounds); -} - -void ParagraphImpl::paintLines(SkCanvas* canvas, SkScalar x, SkScalar y) { - for (auto& line : fLines) { - line.paint(canvas, x, y); - } -} - void ParagraphImpl::resolveStrut() { auto strutStyle = this->paragraphStyle().getStrutStyle(); if (!strutStyle.getStrutEnabled() || strutStyle.getFontSize() < 0) { return; } - std::vector> typefaces = fFontCollection->findTypefaces(strutStyle.getFontFamilies(), strutStyle.getFontStyle()); + std::vector> typefaces = fFontCollection->findTypefaces(strutStyle.getFontFamilies(), strutStyle.getFontStyle(), std::nullopt); if (typefaces.empty()) { SkDEBUGF("Could not resolve strut font\n"); return; @@ -901,7 +886,7 @@ void ParagraphImpl::computeEmptyMetrics() { } auto typefaces = fontCollection()->findTypefaces( - textStyle.getFontFamilies(), textStyle.getFontStyle()); + textStyle.getFontFamilies(), textStyle.getFontStyle(), textStyle.getFontArguments()); auto typeface = typefaces.empty() ? nullptr : typefaces.front(); SkFont font(typeface, textStyle.getFontSize()); diff --git a/third_party/skia/modules/skparagraph/src/ParagraphImpl.h b/third_party/skia/modules/skparagraph/src/ParagraphImpl.h index 111cf46649db..866db369daf1 100644 --- a/third_party/skia/modules/skparagraph/src/ParagraphImpl.h +++ b/third_party/skia/modules/skparagraph/src/ParagraphImpl.h @@ -193,13 +193,10 @@ class ParagraphImpl final : public Paragraph { void resolveStrut(); bool computeCodeUnitProperties(); - + void applySpacingAndBuildClusterTable(); void buildClusterTable(); - void spaceGlyphs(); bool shapeTextIntoEndlessLine(); void breakShapedTextIntoLines(SkScalar maxWidth); - void paintLinesIntoPicture(SkScalar x, SkScalar y); - void paintLines(SkCanvas* canvas, SkScalar x, SkScalar y); void updateTextAlign(TextAlign textAlign) override; void updateText(size_t from, SkString text) override; @@ -217,7 +214,6 @@ class ParagraphImpl final : public Paragraph { void resetShifts() { for (auto& run : fRuns) { run.resetJustificationShifts(); - run.resetShifts(); } } @@ -252,7 +248,7 @@ class ParagraphImpl final : public Paragraph { SkTArray fRuns; // kShaped SkTArray fClusters; // kClusterized (cached: text, word spacing, letter spacing, resolved fonts) SkTArray fCodeUnitProperties; - SkTArray fClustersIndexFromCodeUnit; + SkTArray fClustersIndexFromCodeUnit; std::vector fWords; std::vector fBidiRegions; // These two arrays are used in measuring methods (getRectsForRange, getGlyphPositionAtCoordinate) diff --git a/third_party/skia/modules/skparagraph/src/Run.cpp b/third_party/skia/modules/skparagraph/src/Run.cpp index 74fe3c5b4968..6edf1ecbd699 100644 --- a/third_party/skia/modules/skparagraph/src/Run.cpp +++ b/third_party/skia/modules/skparagraph/src/Run.cpp @@ -31,7 +31,6 @@ Run::Run(ParagraphImpl* owner, , fGlyphs(fGlyphData->glyphs) , fPositions(fGlyphData->positions) , fClusterIndexes(fGlyphData->clusterIndexes) - , fBounds(fGlyphData->bounds) , fHeightMultiplier(heightMultiplier) , fUseHalfLeading(useHalfLeading) , fBaselineShift(baselineShift) @@ -43,15 +42,12 @@ Run::Run(ParagraphImpl* owner, fOffset = SkVector::Make(offsetX, 0); fGlyphs.push_back_n(info.glyphCount); - fBounds.push_back_n(info.glyphCount); fPositions.push_back_n(info.glyphCount + 1); fClusterIndexes.push_back_n(info.glyphCount + 1); - fShifts.push_back_n(info.glyphCount + 1, 0.0); info.fFont.getMetrics(&fFontMetrics); this->calculateMetrics(); - fSpaced = false; // To make edge cases easier: fPositions[info.glyphCount] = fOffset + fAdvance; fClusterIndexes[info.glyphCount] = this->leftToRight() ? info.utf8Range.end() : info.utf8Range.begin(); @@ -86,26 +82,17 @@ SkShaper::RunHandler::Buffer Run::newRunBuffer() { return {fGlyphs.data(), fPositions.data(), nullptr, fClusterIndexes.data(), fOffset}; } -void Run::commit() { - fFont.getBounds(fGlyphs.data(), fGlyphs.size(), fBounds.data(), nullptr); -} - void Run::copyTo(SkTextBlobBuilder& builder, size_t pos, size_t size) const { SkASSERT(pos + size <= this->size()); const auto& blobBuffer = builder.allocRunPos(fFont, SkToInt(size)); sk_careful_memcpy(blobBuffer.glyphs, fGlyphs.data() + pos, size * sizeof(SkGlyphID)); - if (!fSpaced && fJustificationShifts.empty()) { + if (fJustificationShifts.empty()) { sk_careful_memcpy(blobBuffer.points(), fPositions.data() + pos, size * sizeof(SkPoint)); } else { for (size_t i = 0; i < size; ++i) { auto point = fPositions[i + pos]; - if (fSpaced) { - point.fX += fShifts[i + pos]; - } - if (!fJustificationShifts.empty()) { - point.fX += fJustificationShifts[i + pos].fX; - } + point.fX += fJustificationShifts[i + pos].fX; blobBuffer.points()[i] = point; } } @@ -155,9 +142,8 @@ SkScalar Run::addSpacesAtTheEnd(SkScalar space, Cluster* cluster) { return 0; } - fShifts[cluster->endPos() - 1] += space; + fPositions[cluster->endPos() - 1].fX += space; // Increment the run width - fSpaced = true; fAdvance.fX += space; // Increment the cluster width cluster->space(space, space); @@ -165,19 +151,29 @@ SkScalar Run::addSpacesAtTheEnd(SkScalar space, Cluster* cluster) { return space; } +SkScalar Run::addSpacesEvenly(SkScalar space) { + SkScalar shift = 0; + for (size_t i = 0; i < this->size(); ++i) { + fPositions[i].fX += shift; + shift += space; + } + fPositions[this->size()].fX += shift; + fAdvance.fX += shift; + return shift; +} + SkScalar Run::addSpacesEvenly(SkScalar space, Cluster* cluster) { // Offset all the glyphs in the cluster SkScalar shift = 0; for (size_t i = cluster->startPos(); i < cluster->endPos(); ++i) { - fShifts[i] += shift; + fPositions[i].fX += shift; shift += space; } if (this->size() == cluster->endPos()) { // To make calculations easier - fShifts[cluster->endPos()] += shift; + fPositions[cluster->endPos()].fX += shift; } // Increment the run width - fSpaced = true; fAdvance.fX += shift; // Increment the cluster width cluster->space(shift, space); @@ -191,13 +187,12 @@ void Run::shift(const Cluster* cluster, SkScalar offset) { return; } - fSpaced = true; for (size_t i = cluster->startPos(); i < cluster->endPos(); ++i) { - fShifts[i] += offset; + fPositions[i].fX += offset; } if (this->size() == cluster->endPos()) { // To make calculations easier - fShifts[cluster->endPos()] += offset; + fPositions[cluster->endPos()].fX += offset; } } @@ -290,8 +285,7 @@ SkScalar Cluster::trimmedWidth(size_t pos) const { } SkScalar Run::positionX(size_t pos) const { - return posX(pos) + fShifts[pos] + - (fJustificationShifts.empty() ? 0 : fJustificationShifts[pos].fY); + return posX(pos) + (fJustificationShifts.empty() ? 0 : fJustificationShifts[pos].fY); } PlaceholderStyle* Run::placeholderStyle() const { diff --git a/third_party/skia/modules/skparagraph/src/Run.h b/third_party/skia/modules/skparagraph/src/Run.h index a182e112892e..7aca8c525328 100644 --- a/third_party/skia/modules/skparagraph/src/Run.h +++ b/third_party/skia/modules/skparagraph/src/Run.h @@ -122,6 +122,7 @@ class Run { SkScalar addSpacesAtTheEnd(SkScalar space, Cluster* cluster); SkScalar addSpacesEvenly(SkScalar space, Cluster* cluster); + SkScalar addSpacesEvenly(SkScalar space); void shift(const Cluster* cluster, SkScalar offset); SkScalar calculateHeight(LineMetricStyle ascentStyle, LineMetricStyle descentStyle) const { @@ -152,16 +153,8 @@ class Run { SkSpan clusterIndexes() const { return SkSpan(fClusterIndexes.begin(), fClusterIndexes.size()); } - SkSpan shifts() const { return SkSpan(fShifts.begin(), fShifts.size()); } - void commit(); - - SkRect getBounds(size_t pos) const { return fBounds[pos]; } - - void resetShifts() { - for (auto& r: fShifts) { r = 0; } - fSpaced = false; - } + void commit() { } void resetJustificationShifts() { fJustificationShifts.reset(); @@ -188,19 +181,16 @@ class Run { // These fields are not modified after shaping completes and can safely be // shared among copies of the run that are held by different paragraphs. struct GlyphData { - SkSTArray<128, SkGlyphID, true> glyphs; - SkSTArray<128, SkPoint, true> positions; - SkSTArray<128, uint32_t, true> clusterIndexes; - SkSTArray<128, SkRect, true> bounds; + SkSTArray<64, SkGlyphID, true> glyphs; + SkSTArray<64, SkPoint, true> positions; + SkSTArray<64, uint32_t, true> clusterIndexes; }; std::shared_ptr fGlyphData; - SkSTArray<128, SkGlyphID, true>& fGlyphs; - SkSTArray<128, SkPoint, true>& fPositions; - SkSTArray<128, uint32_t, true>& fClusterIndexes; - SkSTArray<128, SkRect, true>& fBounds; + SkSTArray<64, SkGlyphID, true>& fGlyphs; + SkSTArray<64, SkPoint, true>& fPositions; + SkSTArray<64, uint32_t, true>& fClusterIndexes; - SkSTArray<128, SkScalar, true> fShifts; // For formatting (letter/word spacing) - SkSTArray<128, SkPoint, true> fJustificationShifts; // For justification (current and prev shifts) + SkSTArray<64, SkPoint, true> fJustificationShifts; // For justification (current and prev shifts) SkFontMetrics fFontMetrics; const SkScalar fHeightMultiplier; @@ -210,7 +200,6 @@ class Run { SkScalar fCorrectDescent; SkScalar fCorrectLeading; - bool fSpaced; bool fEllipsis; uint8_t fBidiLevel; }; @@ -278,7 +267,6 @@ class Cluster { , fStart(0) , fEnd() , fWidth() - , fSpacing(0) , fHeight() , fHalfLetterSpacing(0.0) {} @@ -301,10 +289,12 @@ class Cluster { size_t roundPos(SkScalar s) const; void space(SkScalar shift, SkScalar space) { - fSpacing += space; fWidth += shift; } + ParagraphImpl* getOwner() const { return fOwner; } + void setOwner(ParagraphImpl* owner) { fOwner = owner; } + bool isWhitespaceBreak() const { return fIsWhiteSpaceBreak; } bool isIntraWordBreak() const { return fIsIntraWordBreak; } bool isHardBreak() const { return fIsHardBreak; } @@ -354,7 +344,6 @@ class Cluster { size_t fStart; size_t fEnd; SkScalar fWidth; - SkScalar fSpacing; SkScalar fHeight; SkScalar fHalfLetterSpacing; diff --git a/third_party/skia/modules/skparagraph/src/TextLine.cpp b/third_party/skia/modules/skparagraph/src/TextLine.cpp index 41410c54ce94..d2d7fe4d7630 100644 --- a/third_party/skia/modules/skparagraph/src/TextLine.cpp +++ b/third_party/skia/modules/skparagraph/src/TextLine.cpp @@ -162,12 +162,7 @@ TextLine::TextLine(ParagraphImpl* owner, } } -SkRect TextLine::paint(SkCanvas* textCanvas, SkScalar x, SkScalar y) { - auto bounds = SkRect::MakeEmpty(); - if (this->empty()) { - return bounds; - } - +void TextLine::paint(SkCanvas* textCanvas, SkScalar x, SkScalar y) { if (fHasBackground) { this->iterateThroughVisualRuns(false, [textCanvas, x, y, this] @@ -183,13 +178,13 @@ SkRect TextLine::paint(SkCanvas* textCanvas, SkScalar x, SkScalar y) { if (fHasShadows) { this->iterateThroughVisualRuns(false, - [textCanvas, x, y, &bounds, this] + [textCanvas, x, y, this] (const Run* run, SkScalar runOffsetInLine, TextRange textRange, SkScalar* runWidthInLine) { *runWidthInLine = this->iterateThroughSingleRunByStyles( run, runOffsetInLine, textRange, StyleType::kShadow, - [textCanvas, x, y, &bounds, this](TextRange textRange, const TextStyle& style, const ClipContext& context) { - auto shadowBounds = this->paintShadow(textCanvas, x, y, textRange, style, context); - bounds.joinPossiblyEmptyRect(shadowBounds); + [textCanvas, x, y, this] + (TextRange textRange, const TextStyle& style, const ClipContext& context) { + this->paintShadow(textCanvas, x, y, textRange, style, context); }); return true; }); @@ -199,9 +194,6 @@ SkRect TextLine::paint(SkCanvas* textCanvas, SkScalar x, SkScalar y) { for (auto& record : fTextBlobCache) { record.paint(textCanvas, x, y); - SkRect recordBounds = record.fBounds; - recordBounds.offset(x + this->offset().fX, y + this->offset().fY); - bounds.joinPossiblyEmptyRect(recordBounds); } if (fHasDecorations) { @@ -210,34 +202,73 @@ SkRect TextLine::paint(SkCanvas* textCanvas, SkScalar x, SkScalar y) { (const Run* run, SkScalar runOffsetInLine, TextRange textRange, SkScalar* runWidthInLine) { *runWidthInLine = this->iterateThroughSingleRunByStyles( run, runOffsetInLine, textRange, StyleType::kDecorations, - [textCanvas, x, y, this](TextRange textRange, const TextStyle& style, const ClipContext& context) { + [textCanvas, x, y, this] + (TextRange textRange, const TextStyle& style, const ClipContext& context) { this->paintDecorations(textCanvas, x, y, textRange, style, context); }); return true; }); } - - return bounds; } void TextLine::ensureTextBlobCachePopulated() { if (fTextBlobCachePopulated) { return; } - this->iterateThroughVisualRuns(false, - [this] - (const Run* run, SkScalar runOffsetInLine, TextRange textRange, SkScalar* runWidthInLine) { - if (run->placeholderStyle() != nullptr) { - *runWidthInLine = run->advance().fX; - return true; - } - *runWidthInLine = this->iterateThroughSingleRunByStyles( - run, runOffsetInLine, textRange, StyleType::kForeground, - [this](TextRange textRange, const TextStyle& style, const ClipContext& context) { - this->buildTextBlob(textRange, style, context); - }); - return true; - }); + if (fBlockRange.width() == 1 && + fRunsInVisualOrder.size() == 1 && + fEllipsis == nullptr && + fOwner->run(fRunsInVisualOrder[0]).placeholderStyle() == nullptr) { + if (fClusterRange.width() == 0) { + return; + } + // Most common and most simple case + const auto& style = fOwner->block(fBlockRange.start).fStyle; + const auto& run = fOwner->run(fRunsInVisualOrder[0]); + auto clip = SkRect::MakeXYWH(0.0f, this->sizes().runTop(&run, this->fAscentStyle), + fAdvance.fX, + run.calculateHeight(this->fAscentStyle, this->fDescentStyle)); + + auto& start = fOwner->cluster(fClusterRange.start); + auto& end = fOwner->cluster(fClusterRange.end - 1); + SkASSERT(start.runIndex() == end.runIndex()); + GlyphRange glyphs; + if (run.leftToRight()) { + glyphs = GlyphRange(start.startPos(), + end.isHardBreak() ? end.startPos() : end.endPos()); + } else { + glyphs = GlyphRange(end.startPos(), + start.isHardBreak() ? start.startPos() : start.endPos()); + } + ClipContext context = {/*run=*/&run, + /*pos=*/glyphs.start, + /*size=*/glyphs.width(), + /*fTextShift=*/-run.positionX(glyphs.start), // starting position + /*clip=*/clip, // entire line + /*fExcludedTrailingSpaces=*/0.0f, // no need for that + /*clippingNeeded=*/false}; // no need for that + this->buildTextBlob(fTextExcludingSpaces, style, context); + } else { + this->iterateThroughVisualRuns(false, + [this](const Run* run, + SkScalar runOffsetInLine, + TextRange textRange, + SkScalar* runWidthInLine) { + if (run->placeholderStyle() != nullptr) { + *runWidthInLine = run->advance().fX; + return true; + } + *runWidthInLine = this->iterateThroughSingleRunByStyles( + run, + runOffsetInLine, + textRange, + StyleType::kForeground, + [this](TextRange textRange, const TextStyle& style, const ClipContext& context) { + this->buildTextBlob(textRange, style, context); + }); + return true; + }); + } fTextBlobCachePopulated = true; } @@ -359,16 +390,25 @@ void TextLine::TextBlobRecord::paint(SkCanvas* canvas, SkScalar x, SkScalar y) { } } -void TextLine::paintBackground(SkCanvas* canvas, SkScalar x, SkScalar y, TextRange textRange, const TextStyle& style, const ClipContext& context) const { +void TextLine::paintBackground(SkCanvas* canvas, + SkScalar x, + SkScalar y, + TextRange textRange, + const TextStyle& style, + const ClipContext& context) const { if (style.hasBackground()) { - canvas->drawRect(context.clip.makeOffset(this->offset() + SkPoint::Make(x, y)), style.getBackground()); + canvas->drawRect(context.clip.makeOffset(this->offset() + SkPoint::Make(x, y)), + style.getBackground()); } } -SkRect TextLine::paintShadow(SkCanvas* canvas, SkScalar x, SkScalar y, TextRange textRange, const TextStyle& style, const ClipContext& context) const { - +void TextLine::paintShadow(SkCanvas* canvas, + SkScalar x, + SkScalar y, + TextRange textRange, + const TextStyle& style, + const ClipContext& context) const { SkScalar correctedBaseline = SkScalarFloorToScalar(this->baseline() + style.getBaselineShift() + 0.5); - SkRect shadowBounds = SkRect::MakeEmpty(); for (TextShadow shadow : style.getShadows()) { if (!shadow.hasShadow()) continue; @@ -391,14 +431,6 @@ SkRect TextLine::paintShadow(SkCanvas* canvas, SkScalar x, SkScalar y, TextRange canvas->clipRect(clip); } auto blob = builder.make(); - if (blob != nullptr) { - auto bounds = blob->bounds(); - bounds.offset( - x + this->offset().fX + shadow.fOffset.x(), - y + this->offset().fY + shadow.fOffset.y() - ); - shadowBounds.joinPossiblyEmptyRect(bounds); - } canvas->drawTextBlob(blob, x + this->offset().fX + shadow.fOffset.x() + context.fTextShift, y + this->offset().fY + shadow.fOffset.y() + correctedBaseline, @@ -407,8 +439,6 @@ SkRect TextLine::paintShadow(SkCanvas* canvas, SkScalar x, SkScalar y, TextRange canvas->restore(); } } - - return shadowBounds; } void TextLine::paintDecorations(SkCanvas* canvas, SkScalar x, SkScalar y, TextRange textRange, const TextStyle& style, const ClipContext& context) const { @@ -507,35 +537,86 @@ void TextLine::createEllipsis(SkScalar maxWidth, const SkString& ellipsis, bool) // Go through the clusters in the reverse logical order // taking off cluster by cluster until the ellipsis fits SkScalar width = fAdvance.fX; - - auto attachEllipsis = [&](const Cluster* cluster){ - // Shape the ellipsis - std::unique_ptr run = shapeEllipsis(ellipsis, cluster->run()); - run->fClusterStart = cluster->textRange().start; - run->setOwner(fOwner); - - // See if it fits - if (width + run->advance().fX > maxWidth) { - width -= cluster->width(); - // Continue if it's not + // There is one case when we need to attach the ellipsis on the left: + // when the first few runs together wider than the ellipsis run are RTL + // In all the other cases we attach the ellipsis on the right + RunIndex leftRun = EMPTY_RUN; + std::unique_ptr ellipsisRun; + iterateThroughClustersInGlyphsOrder( + false, false, [&](const Cluster* cluster, bool ghost) { + if (cluster->run().leftToRight()) { + return false; + } + // Shape the ellipsis if the run has changed + if (leftRun != cluster->runIndex()) { + ellipsisRun = shapeEllipsis(ellipsis, cluster->run()); + if (ellipsisRun->advance().fX > maxWidth) { + // Ellipsis is bigger than the entire line + return false; + } + ellipsisRun->fClusterStart = cluster->textRange().start; + ellipsisRun->setOwner(fOwner); + leftRun = cluster->runIndex(); + } + // See if it fits + if (width + ellipsisRun->advance().fX > maxWidth) { + width -= cluster->width(); + // Continue if it's not + return true; + } + fEllipsis = std::move(ellipsisRun); + fEllipsis->fBidiLevel = 1; + fClusterRange.end = cluster - fOwner->clusters().data() + 1; + fGhostClusterRange.end = cluster - fOwner->clusters().data() + 1; + fText.end = cluster->textRange().end; + fTextIncludingNewlines.end = cluster->textRange().end; + fTextExcludingSpaces.end = cluster->textRange().end; + fAdvance.fX = width; return false; - } + }); - fEllipsis = std::move(run); - fEllipsis->shift(width, 0); - fAdvance.fX = width; - return true; - }; + if (fEllipsis) return; + RunIndex rightRun = EMPTY_RUN; iterateThroughClustersInGlyphsOrder( true, false, [&](const Cluster* cluster, bool ghost) { - return !attachEllipsis(cluster); + // Shape the ellipsis if the run has changed + if (rightRun != cluster->runIndex()) { + // Shape the ellipsis + ellipsisRun = shapeEllipsis(ellipsis, cluster->run()); + if (ellipsisRun->advance().fX > maxWidth) { + // Ellipsis is bigger than the entire line + return false; + } + ellipsisRun->fClusterStart = cluster->textRange().start; + ellipsisRun->setOwner(fOwner); + rightRun = cluster->runIndex(); + } + // See if it fits + if (width + ellipsisRun->advance().fX > maxWidth) { + width -= cluster->width(); + // Continue if it's not + return true; + } + fEllipsis = std::move(ellipsisRun); + fEllipsis->fBidiLevel = 0; + fClusterRange.end = cluster - fOwner->clusters().data() + 1; + fGhostClusterRange.end = fClusterRange.end; + fText.end = cluster->textRange().end; + fTextIncludingNewlines.end = cluster->textRange().end; + fTextExcludingSpaces.end = cluster->textRange().end; + fAdvance.fX = width; + return false; }); - - if (!fEllipsis) { - // Weird situation: just the ellipsis on the line (if it fits) - attachEllipsis(&fOwner->cluster(clusters().start)); - } + if (fEllipsis) return; + + // Weird situation: ellipsis does not fit; no ellipsis then + fClusterRange.end = fClusterRange.start; + fGhostClusterRange.end = fClusterRange.start; + fText.end = fText.start; + fTextIncludingNewlines.end = fTextIncludingNewlines.start; + fTextExcludingSpaces.end = fTextExcludingSpaces.start; + fAdvance.fX = 0; } std::unique_ptr TextLine::shapeEllipsis(const SkString& ellipsis, const Run& run) { @@ -596,7 +677,6 @@ TextLine::ClipContext TextLine::measureTextInsideOneRun(TextRange textRange, if (run->fEllipsis) { // Both ellipsis and placeholders can only be measured as one glyph - SkASSERT(textRange == run->textRange()); result.fTextShift = runOffsetInLine; result.clip = SkRect::MakeXYWH(runOffsetInLine, sizes().runTop(run, this->fAscentStyle), @@ -704,9 +784,9 @@ TextLine::ClipContext TextLine::measureTextInsideOneRun(TextRange textRange, if (run->leftToRight()) { // We only use this member for LTR result.fExcludedTrailingSpaces = std::max(result.clip.fRight - fAdvance.fX, 0.0f); + result.clippingNeeded = true; + result.clip.fRight = fAdvance.fX; } - result.clippingNeeded = true; - result.clip.fRight = fAdvance.fX; } if (result.clip.width() < 0) { @@ -760,12 +840,12 @@ SkScalar TextLine::iterateThroughSingleRunByStyles(const Run* run, // Extra efforts to get the ellipsis text style ClipContext clipContext = this->measureTextInsideOneRun(run->textRange(), run, runOffset, 0, false, true); - TextRange testRange(run->fClusterStart, run->fClusterStart + 1); + TextRange testRange(run->fClusterStart, run->fClusterStart + run->textRange().width()); for (BlockIndex index = fBlockRange.start; index < fBlockRange.end; ++index) { auto block = fOwner->styles().begin() + index; auto intersect = intersected(block->fRange, testRange); if (intersect.width() > 0) { - visitor(textRange, block->fStyle, clipContext); + visitor(testRange, block->fStyle, clipContext); return run->advance().fX; } } @@ -857,6 +937,13 @@ void TextLine::iterateThroughVisualRuns(bool includingGhostSpaces, const RunVisi SkScalar runOffset = 0; SkScalar totalWidth = 0; auto textRange = includingGhostSpaces ? this->textWithNewlines() : this->trimmedText(); + + if (this->ellipsis() != nullptr && !this->ellipsis()->leftToRight()) { + runOffset = this->ellipsis()->offset().fX; + if (visitor(ellipsis(), runOffset, ellipsis()->textRange(), &width)) { + } + } + for (auto& runIndex : fRunsInVisualOrder) { const auto run = &this->fOwner->run(runIndex); @@ -886,7 +973,7 @@ void TextLine::iterateThroughVisualRuns(bool includingGhostSpaces, const RunVisi runOffset += width; totalWidth += width; - if (this->ellipsis() != nullptr) { + if (this->ellipsis() != nullptr && this->ellipsis()->leftToRight()) { if (visitor(ellipsis(), runOffset, ellipsis()->textRange(), &width)) { totalWidth += width; } diff --git a/third_party/skia/modules/skparagraph/src/TextLine.h b/third_party/skia/modules/skparagraph/src/TextLine.h index d7f547eaaf1d..ed232dc33094 100644 --- a/third_party/skia/modules/skparagraph/src/TextLine.h +++ b/third_party/skia/modules/skparagraph/src/TextLine.h @@ -70,7 +70,6 @@ class TextLine { SkScalar width() const { return fAdvance.fX + (fEllipsis != nullptr ? fEllipsis->fAdvance.fX : 0); } - SkScalar shift() const { return fShift; } SkVector offset() const; SkScalar alphabeticBaseline() const { return fSizes.alphabeticBaseline(); } @@ -87,7 +86,7 @@ class TextLine { void iterateThroughClustersInGlyphsOrder(bool reverse, bool includeGhosts, const ClustersVisitor& visitor) const; void format(TextAlign align, SkScalar maxWidth); - SkRect paint(SkCanvas* canvas, SkScalar x, SkScalar y); + void paint(SkCanvas* canvas, SkScalar x, SkScalar y); void visit(SkScalar x, SkScalar y); void ensureTextBlobCachePopulated(); @@ -127,9 +126,24 @@ class TextLine { void justify(SkScalar maxWidth); void buildTextBlob(TextRange textRange, const TextStyle& style, const ClipContext& context); - void paintBackground(SkCanvas* canvas, SkScalar x, SkScalar y, TextRange textRange, const TextStyle& style, const ClipContext& context) const; - SkRect paintShadow(SkCanvas* canvas, SkScalar x, SkScalar y, TextRange textRange, const TextStyle& style, const ClipContext& context) const; - void paintDecorations(SkCanvas* canvas, SkScalar x, SkScalar y, TextRange textRange, const TextStyle& style, const ClipContext& context) const; + void paintBackground(SkCanvas* canvas, + SkScalar x, + SkScalar y, + TextRange textRange, + const TextStyle& style, + const ClipContext& context) const; + void paintShadow(SkCanvas* canvas, + SkScalar x, + SkScalar y, + TextRange textRange, + const TextStyle& style, + const ClipContext& context) const; + void paintDecorations(SkCanvas* canvas, + SkScalar x, + SkScalar y, + TextRange textRange, + const TextStyle& style, + const ClipContext& context) const; void shiftCluster(const Cluster* cluster, SkScalar shift, SkScalar prevShift); diff --git a/third_party/skia/modules/skparagraph/src/TextStyle.cpp b/third_party/skia/modules/skparagraph/src/TextStyle.cpp index 1f56733b3f51..03c77d099fc5 100644 --- a/third_party/skia/modules/skparagraph/src/TextStyle.cpp +++ b/third_party/skia/modules/skparagraph/src/TextStyle.cpp @@ -8,20 +8,23 @@ namespace textlayout { const std::vector TextStyle::kDefaultFontFamilies = { SkString(DEFAULT_FONT_FAMILY) }; -TextStyle::TextStyle(const TextStyle& other, bool placeholder) { - fColor = other.fColor; - fFontSize = other.fFontSize; - fFontFamilies = other.fFontFamilies; - fDecoration = other.fDecoration; - fHasBackground = other.fHasBackground; - fHasForeground = other.fHasForeground; - fBackground = other.fBackground; - fForeground = other.fForeground; - fHeightOverride = other.fHeightOverride; - fIsPlaceholder = placeholder; - fFontFeatures = other.fFontFeatures; - fHalfLeading = other.fHalfLeading; - fBaselineShift = other.fBaselineShift; +TextStyle TextStyle::cloneForPlaceholder() { + TextStyle result; + result.fColor = fColor; + result.fFontSize = fFontSize; + result.fFontFamilies = fFontFamilies; + result.fDecoration = fDecoration; + result.fHasBackground = fHasBackground; + result.fHasForeground = fHasForeground; + result.fBackground = fBackground; + result.fForeground = fForeground; + result.fHeightOverride = fHeightOverride; + result.fIsPlaceholder = true; + result.fFontFeatures = fFontFeatures; + result.fHalfLeading = fHalfLeading; + result.fBaselineShift = fBaselineShift; + result.fFontArguments = fFontArguments; + return result; } bool TextStyle::equals(const TextStyle& other) const { @@ -51,6 +54,9 @@ bool TextStyle::equals(const TextStyle& other) const { if (fHeight != other.fHeight) { return false; } + if (fHeightOverride != other.fHeightOverride) { + return false; + } if (fHalfLeading != other.fHalfLeading) { return false; } @@ -85,6 +91,9 @@ bool TextStyle::equals(const TextStyle& other) const { return false; } } + if (fFontArguments != other.fFontArguments) { + return false; + } return true; } @@ -95,6 +104,7 @@ bool TextStyle::equalsByFonts(const TextStyle& that) const { fFontStyle == that.fFontStyle && fFontFamilies == that.fFontFamilies && fFontFeatures == that.fFontFeatures && + fFontArguments == that.getFontArguments() && nearlyEqual(fLetterSpacing, that.fLetterSpacing) && nearlyEqual(fWordSpacing, that.fWordSpacing) && nearlyEqual(fHeight, that.fHeight) && @@ -144,9 +154,9 @@ bool TextStyle::matchOneAttribute(StyleType styleType, const TextStyle& other) c fFontFamilies == other.fFontFamilies && fFontSize == other.fFontSize && fHeight == other.fHeight && - fHeight == other.fHeight && fHalfLeading == other.fHalfLeading && - fBaselineShift == other.fBaselineShift; + fBaselineShift == other.fBaselineShift && + fFontArguments == other.fFontArguments; default: SkASSERT(false); return false; @@ -174,6 +184,15 @@ void TextStyle::getFontMetrics(SkFontMetrics* metrics) const { metrics->fDescent += fBaselineShift; } +void TextStyle::setFontArguments(const std::optional& args) { + if (!args) { + fFontArguments.reset(); + return; + } + + fFontArguments.emplace(*args); +} + bool PlaceholderStyle::equals(const PlaceholderStyle& other) const { return nearlyEqual(fWidth, other.fWidth) && nearlyEqual(fHeight, other.fHeight) && diff --git a/third_party/skia/modules/skparagraph/tests/BUILD.bazel b/third_party/skia/modules/skparagraph/tests/BUILD.bazel index f3e943653ca5..298ccbf3ba72 100644 --- a/third_party/skia/modules/skparagraph/tests/BUILD.bazel +++ b/third_party/skia/modules/skparagraph/tests/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkParagraphTest_src", srcs = ["SkParagraphTest.cpp"], diff --git a/third_party/skia/modules/skparagraph/tests/SkParagraphTest.cpp b/third_party/skia/modules/skparagraph/tests/SkParagraphTest.cpp index 6e2d643a0f30..9241826ca75e 100644 --- a/third_party/skia/modules/skparagraph/tests/SkParagraphTest.cpp +++ b/third_party/skia/modules/skparagraph/tests/SkParagraphTest.cpp @@ -5693,7 +5693,7 @@ UNIX_ONLY_TEST(SkParagraph_LineMetrics, reporter) { } }; -UNIX_ONLY_TEST(SkParagraph_PlaceholderHeightInf, reporter) { +DEF_TEST_DISABLED(SkParagraph_PlaceholderHeightInf, reporter) { TestCanvas canvas("SkParagraph_PlaceholderHeightInf.png"); sk_sp fontCollection = sk_make_sp(); @@ -5712,7 +5712,7 @@ UNIX_ONLY_TEST(SkParagraph_PlaceholderHeightInf, reporter) { placeholder_style.fBaselineOffset = SK_ScalarInfinity; ParagraphStyle paragraph_style; - paragraph_style.setDrawOptions(DrawOptions::kRecord); + //paragraph_style.setDrawOptions(DrawOptions::kRecord); ParagraphBuilderImpl builder(paragraph_style, fontCollection); builder.pushStyle(text_style); builder.addText("Limited by budget"); @@ -6746,3 +6746,47 @@ UNIX_ONLY_TEST(SkParagraph_SimpleParagraphReset, reporter) { } } } + +UNIX_ONLY_TEST(SkParagraph_EllipsisGetRectForRange, reporter) { + sk_sp fontCollection = sk_make_sp(); + if (!fontCollection->fontsFound()) return; + TestCanvas canvas("SkParagraph_EllipsisGetRectForRange.png"); + const char* text = + "This is a very long sentence to test if the text will properly wrap " + "around and go to the next line. Sometimes, short sentence. Longer " + "sentences are okay too because they are nessecary. Very short. "; + const size_t len = strlen(text); + + ParagraphStyle paragraph_style; + paragraph_style.setMaxLines(1); + std::u16string ellipsis = u"\u2026"; + paragraph_style.setEllipsis(ellipsis); + std::u16string e = paragraph_style.getEllipsisUtf16(); + paragraph_style.turnHintingOff(); + ParagraphBuilderImpl builder(paragraph_style, fontCollection); + + TextStyle text_style; + text_style.setFontFamilies({SkString("Roboto")}); + text_style.setColor(SK_ColorBLACK); + builder.pushStyle(text_style); + builder.addText(text, len); + builder.pop(); + + auto paragraph = builder.Build(); + paragraph->layout(TestCanvasWidth); + paragraph->paint(canvas.get(), 0, 0); + + auto impl = static_cast(paragraph.get()); + + // Check that the ellipsizer limited the text to one line and did not wrap to a second line. + REPORTER_ASSERT(reporter, impl->lines().size() == 1); + + auto boxes1 = impl->getRectsForRange(0, 2, RectHeightStyle::kTight, RectWidthStyle::kTight); + REPORTER_ASSERT(reporter, boxes1.size() == 1); + + auto boxes2 = impl->getRectsForRange(0, 3, RectHeightStyle::kTight, RectWidthStyle::kTight); + REPORTER_ASSERT(reporter, boxes2.size() == 1); + + canvas.drawRects(SK_ColorRED, boxes1); + canvas.drawRects(SK_ColorRED, boxes2); +} diff --git a/third_party/skia/modules/skparagraph/utils/BUILD.bazel b/third_party/skia/modules/skparagraph/utils/BUILD.bazel index f4efec88e53d..a17b0b60043d 100644 --- a/third_party/skia/modules/skparagraph/utils/BUILD.bazel +++ b/third_party/skia/modules/skparagraph/utils/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "TestFontCollection_hdr", hdrs = ["TestFontCollection.h"], diff --git a/third_party/skia/modules/skresources/BUILD.bazel b/third_party/skia/modules/skresources/BUILD.bazel index 156af07f7534..63059a4ddc14 100644 --- a/third_party/skia/modules/skresources/BUILD.bazel +++ b/third_party/skia/modules/skresources/BUILD.bazel @@ -1,3 +1,5 @@ +licenses(["notice"]) + cc_library( name = "skresources", hdrs = ["//modules/skresources/include:hdrs"], diff --git a/third_party/skia/modules/skresources/include/BUILD.bazel b/third_party/skia/modules/skresources/include/BUILD.bazel index 8963fdb436e8..95c77148e1d1 100644 --- a/third_party/skia/modules/skresources/include/BUILD.bazel +++ b/third_party/skia/modules/skresources/include/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + filegroup( name = "hdrs", srcs = ["SkResources.h"], diff --git a/third_party/skia/modules/skresources/src/BUILD.bazel b/third_party/skia/modules/skresources/src/BUILD.bazel index b26ddbdeb80a..3ee2d3794c75 100644 --- a/third_party/skia/modules/skresources/src/BUILD.bazel +++ b/third_party/skia/modules/skresources/src/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkResources_src", srcs = ["SkResources.cpp"], diff --git a/third_party/skia/modules/sksg/BUILD.bazel b/third_party/skia/modules/sksg/BUILD.bazel index 36b252846651..2ce3d49096db 100644 --- a/third_party/skia/modules/sksg/BUILD.bazel +++ b/third_party/skia/modules/sksg/BUILD.bazel @@ -1,3 +1,5 @@ +licenses(["notice"]) + cc_library( name = "sksg", hdrs = ["//modules/sksg/include:hdrs"], diff --git a/third_party/skia/modules/sksg/include/BUILD.bazel b/third_party/skia/modules/sksg/include/BUILD.bazel index 9af7e81b0753..984449c64976 100644 --- a/third_party/skia/modules/sksg/include/BUILD.bazel +++ b/third_party/skia/modules/sksg/include/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + filegroup( name = "hdrs", srcs = [ diff --git a/third_party/skia/modules/sksg/samples/BUILD.bazel b/third_party/skia/modules/sksg/samples/BUILD.bazel index a96eec08d4d2..a233084d9dae 100644 --- a/third_party/skia/modules/sksg/samples/BUILD.bazel +++ b/third_party/skia/modules/sksg/samples/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SampleSVGPong_src", srcs = ["SampleSVGPong.cpp"], diff --git a/third_party/skia/modules/sksg/src/BUILD.bazel b/third_party/skia/modules/sksg/src/BUILD.bazel index 6f6f52b643cf..81ffc6e9f90b 100644 --- a/third_party/skia/modules/sksg/src/BUILD.bazel +++ b/third_party/skia/modules/sksg/src/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkSGClipEffect_src", srcs = ["SkSGClipEffect.cpp"], @@ -80,6 +82,7 @@ generated_cc_atom( srcs = ["SkSGGradient.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkColorSpace_hdr", "//include/core:SkPaint_hdr", "//include/effects:SkGradientShader_hdr", "//include/private:SkTPin_hdr", diff --git a/third_party/skia/modules/sksg/src/SkSGGradient.cpp b/third_party/skia/modules/sksg/src/SkSGGradient.cpp index 70ab2cd58c3e..aba68db4e898 100644 --- a/third_party/skia/modules/sksg/src/SkSGGradient.cpp +++ b/third_party/skia/modules/sksg/src/SkSGGradient.cpp @@ -7,6 +7,7 @@ #include "modules/sksg/include/SkSGGradient.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkPaint.h" #include "include/effects/SkGradientShader.h" #include "include/private/SkTPin.h" diff --git a/third_party/skia/modules/sksg/tests/BUILD.bazel b/third_party/skia/modules/sksg/tests/BUILD.bazel index b8b958489b1d..e3c82789b8e3 100644 --- a/third_party/skia/modules/sksg/tests/BUILD.bazel +++ b/third_party/skia/modules/sksg/tests/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SGTest_src", srcs = ["SGTest.cpp"], diff --git a/third_party/skia/modules/skshaper/BUILD.bazel b/third_party/skia/modules/skshaper/BUILD.bazel index b0329a8ef9f2..c9085c67cc8e 100644 --- a/third_party/skia/modules/skshaper/BUILD.bazel +++ b/third_party/skia/modules/skshaper/BUILD.bazel @@ -1,3 +1,5 @@ +licenses(["notice"]) + cc_library( name = "skshaper", hdrs = ["//modules/skshaper/include:hdrs"], diff --git a/third_party/skia/modules/skshaper/include/BUILD.bazel b/third_party/skia/modules/skshaper/include/BUILD.bazel index d8627bb50424..95b75f34b291 100644 --- a/third_party/skia/modules/skshaper/include/BUILD.bazel +++ b/third_party/skia/modules/skshaper/include/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + filegroup( name = "hdrs", srcs = [ diff --git a/third_party/skia/modules/skshaper/src/BUILD.bazel b/third_party/skia/modules/skshaper/src/BUILD.bazel index 21dc42540953..35d5adf27239 100644 --- a/third_party/skia/modules/skshaper/src/BUILD.bazel +++ b/third_party/skia/modules/skshaper/src/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkShaper_coretext_src", srcs = ["SkShaper_coretext.cpp"], diff --git a/third_party/skia/modules/skshaper/src/SkShaper_harfbuzz.cpp b/third_party/skia/modules/skshaper/src/SkShaper_harfbuzz.cpp index dbc9d187ad0a..3d45a5ee881a 100644 --- a/third_party/skia/modules/skshaper/src/SkShaper_harfbuzz.cpp +++ b/third_party/skia/modules/skshaper/src/SkShaper_harfbuzz.cpp @@ -302,11 +302,11 @@ HBFace create_hb_face(const SkTypeface& typeface) { return face; } -HBFont create_hb_font(const SkFont& font, const HBFace& face) { - SkDEBUGCODE( - void* dataId = hb_face_get_user_data(face.get(), &gDataIdKey); - SkASSERT(dataId == font.getTypeface()); - ) +HBFont create_typeface_hb_font(const SkTypeface& typeface) { + HBFace face(create_hb_face(typeface)); + if (!face) { + return nullptr; + } HBFont otFont(hb_font_create(face.get())); SkASSERT(otFont); @@ -314,19 +314,29 @@ HBFont create_hb_font(const SkFont& font, const HBFace& face) { return nullptr; } hb_ot_font_set_funcs(otFont.get()); - int axis_count = font.getTypeface()->getVariationDesignPosition(nullptr, 0); + int axis_count = typeface.getVariationDesignPosition(nullptr, 0); if (axis_count > 0) { SkAutoSTMalloc<4, SkFontArguments::VariationPosition::Coordinate> axis_values(axis_count); - if (font.getTypeface()->getVariationDesignPosition(axis_values, axis_count) == axis_count) { + if (typeface.getVariationDesignPosition(axis_values, axis_count) == axis_count) { hb_font_set_variations(otFont.get(), reinterpret_cast(axis_values.get()), axis_count); } } + return otFont; +} + +HBFont create_sub_hb_font(const SkFont& font, const HBFont& typefaceFont) { + SkDEBUGCODE( + hb_face_t* face = hb_font_get_face(typefaceFont.get()); + void* dataId = hb_face_get_user_data(face, &gDataIdKey); + SkASSERT(dataId == font.getTypeface()); + ) + // Creating a sub font means that non-available functions // are found from the parent. - HBFont skFont(hb_font_create_sub_font(otFont.get())); + HBFont skFont(hb_font_create_sub_font(typefaceFont.get())); hb_font_set_funcs(skFont.get(), skhb_get_font_funcs(), reinterpret_cast(new SkFont(font)), [](void* user_data){ delete reinterpret_cast(user_data); }); @@ -1261,7 +1271,7 @@ void ShapeDontWrapOrReorder::wrap(char const * const utf8, size_t utf8Bytes, class HBLockedFaceCache { public: - HBLockedFaceCache(SkLRUCache& lruCache, SkMutex& mutex) + HBLockedFaceCache(SkLRUCache& lruCache, SkMutex& mutex) : fLRUCache(lruCache), fMutex(mutex) { fMutex.acquire(); @@ -1274,22 +1284,22 @@ class HBLockedFaceCache { fMutex.release(); } - HBFace* find(SkTypefaceID fontId) { + HBFont* find(SkTypefaceID fontId) { return fLRUCache.find(fontId); } - HBFace* insert(SkTypefaceID fontId, HBFace hbFace) { - return fLRUCache.insert(fontId, std::move(hbFace)); + HBFont* insert(SkTypefaceID fontId, HBFont hbFont) { + return fLRUCache.insert(fontId, std::move(hbFont)); } void reset() { fLRUCache.reset(); } private: - SkLRUCache& fLRUCache; + SkLRUCache& fLRUCache; SkMutex& fMutex; }; static HBLockedFaceCache get_hbFace_cache() { static SkMutex gHBFaceCacheMutex; - static SkLRUCache gHBFaceCache(100); + static SkLRUCache gHBFaceCache(100); return HBLockedFaceCache(gHBFaceCache, gHBFaceCacheMutex); } @@ -1353,12 +1363,12 @@ ShapedRun ShaperHarfBuzz::shape(char const * const utf8, { HBLockedFaceCache cache = get_hbFace_cache(); SkTypefaceID dataId = font.currentFont().getTypeface()->uniqueID(); - HBFace* hbFaceCached = cache.find(dataId); - if (!hbFaceCached) { - HBFace hbFace(create_hb_face(*font.currentFont().getTypeface())); - hbFaceCached = cache.insert(dataId, std::move(hbFace)); + HBFont* typefaceFontCached = cache.find(dataId); + if (!typefaceFontCached) { + HBFont typefaceFont(create_typeface_hb_font(*font.currentFont().getTypeface())); + typefaceFontCached = cache.insert(dataId, std::move(typefaceFont)); } - hbFont = create_hb_font(font.currentFont(), *hbFaceCached); + hbFont = create_sub_hb_font(font.currentFont(), *typefaceFontCached); } if (!hbFont) { return run; diff --git a/third_party/skia/modules/skunicode/BUILD.bazel b/third_party/skia/modules/skunicode/BUILD.bazel index 519e41c330c8..3a57cfd166ae 100644 --- a/third_party/skia/modules/skunicode/BUILD.bazel +++ b/third_party/skia/modules/skunicode/BUILD.bazel @@ -1,3 +1,5 @@ +licenses(["notice"]) + cc_library( name = "skunicode", hdrs = ["//modules/skunicode/include:hdrs"], diff --git a/third_party/skia/modules/skunicode/include/BUILD.bazel b/third_party/skia/modules/skunicode/include/BUILD.bazel index 212eb2d5eba8..dc1d234db682 100644 --- a/third_party/skia/modules/skunicode/include/BUILD.bazel +++ b/third_party/skia/modules/skunicode/include/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + filegroup( name = "hdrs", srcs = [ diff --git a/third_party/skia/modules/skunicode/src/BUILD.bazel b/third_party/skia/modules/skunicode/src/BUILD.bazel index a27855573070..d7530b1170ca 100644 --- a/third_party/skia/modules/skunicode/src/BUILD.bazel +++ b/third_party/skia/modules/skunicode/src/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkUnicode_icu_builtin_src", srcs = ["SkUnicode_icu_builtin.cpp"], diff --git a/third_party/skia/modules/svg/include/BUILD.bazel b/third_party/skia/modules/svg/include/BUILD.bazel index ead2f6c33d56..7bcb87e8dc49 100644 --- a/third_party/skia/modules/svg/include/BUILD.bazel +++ b/third_party/skia/modules/svg/include/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkSVGAttributeParser_hdr", hdrs = ["SkSVGAttributeParser.h"], diff --git a/third_party/skia/modules/svg/src/BUILD.bazel b/third_party/skia/modules/svg/src/BUILD.bazel index f9cdb72d81a2..0b60fcab8001 100644 --- a/third_party/skia/modules/svg/src/BUILD.bazel +++ b/third_party/skia/modules/svg/src/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkSVGAttributeParser_src", srcs = ["SkSVGAttributeParser.cpp"], @@ -373,6 +375,7 @@ generated_cc_atom( srcs = ["SkSVGLinearGradient.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkColorSpace_hdr", "//include/effects:SkGradientShader_hdr", "//modules/svg/include:SkSVGLinearGradient_hdr", "//modules/svg/include:SkSVGRenderContext_hdr", @@ -453,6 +456,7 @@ generated_cc_atom( srcs = ["SkSVGRadialGradient.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkColorSpace_hdr", "//include/effects:SkGradientShader_hdr", "//modules/svg/include:SkSVGRadialGradient_hdr", "//modules/svg/include:SkSVGRenderContext_hdr", @@ -466,6 +470,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/core:SkCanvas_hdr", + "//include/core:SkRRect_hdr", "//include/core:SkRect_hdr", "//modules/svg/include:SkSVGRect_hdr", "//modules/svg/include:SkSVGRenderContext_hdr", diff --git a/third_party/skia/modules/svg/src/SkSVGLinearGradient.cpp b/third_party/skia/modules/svg/src/SkSVGLinearGradient.cpp index f2a83faa0413..f7833b1dc4d1 100644 --- a/third_party/skia/modules/svg/src/SkSVGLinearGradient.cpp +++ b/third_party/skia/modules/svg/src/SkSVGLinearGradient.cpp @@ -5,6 +5,7 @@ * found in the LICENSE file. */ +#include "include/core/SkColorSpace.h" #include "include/effects/SkGradientShader.h" #include "modules/svg/include/SkSVGLinearGradient.h" #include "modules/svg/include/SkSVGRenderContext.h" diff --git a/third_party/skia/modules/svg/src/SkSVGRadialGradient.cpp b/third_party/skia/modules/svg/src/SkSVGRadialGradient.cpp index 7d7cd8ccc755..9a3411765e9c 100644 --- a/third_party/skia/modules/svg/src/SkSVGRadialGradient.cpp +++ b/third_party/skia/modules/svg/src/SkSVGRadialGradient.cpp @@ -5,6 +5,7 @@ * found in the LICENSE file. */ +#include "include/core/SkColorSpace.h" #include "include/effects/SkGradientShader.h" #include "modules/svg/include/SkSVGRadialGradient.h" #include "modules/svg/include/SkSVGRenderContext.h" diff --git a/third_party/skia/modules/svg/src/SkSVGRect.cpp b/third_party/skia/modules/svg/src/SkSVGRect.cpp index 0131e1e4f9ee..15790a9aa0e1 100644 --- a/third_party/skia/modules/svg/src/SkSVGRect.cpp +++ b/third_party/skia/modules/svg/src/SkSVGRect.cpp @@ -8,6 +8,7 @@ #include #include "include/core/SkCanvas.h" +#include "include/core/SkRRect.h" #include "include/core/SkRect.h" #include "modules/svg/include/SkSVGRect.h" #include "modules/svg/include/SkSVGRenderContext.h" diff --git a/third_party/skia/modules/svg/tests/BUILD.bazel b/third_party/skia/modules/svg/tests/BUILD.bazel index d527f3f8955e..7f5c73785cfc 100644 --- a/third_party/skia/modules/svg/tests/BUILD.bazel +++ b/third_party/skia/modules/svg/tests/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "Filters_src", srcs = ["Filters.cpp"], diff --git a/third_party/skia/modules/svg/utils/BUILD.bazel b/third_party/skia/modules/svg/utils/BUILD.bazel index fa123ff6edf0..a412ab3eaa2c 100644 --- a/third_party/skia/modules/svg/utils/BUILD.bazel +++ b/third_party/skia/modules/svg/utils/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SvgTool_src", srcs = ["SvgTool.cpp"], diff --git a/third_party/skia/package-lock.json b/third_party/skia/package-lock.json new file mode 100644 index 000000000000..f07b309037d8 --- /dev/null +++ b/third_party/skia/package-lock.json @@ -0,0 +1,3603 @@ +{ + "name": "skia", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "devDependencies": { + "jasmine-core": "3.10.1", + "karma": "6.3.15", + "karma-chrome-launcher": "3.1.0", + "karma-firefox-launcher": "2.1.2", + "karma-jasmine": "4.0.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.0", + "integrity": "sha512-d5RysTlJ7hmw5Tw4UxgxcY3lkMe92n8sXCcuLPAyIAHK6j8DefDwtGnVVDgOnv+RnEosulDJ9NPKQL27bDId0g==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.0", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.2", + "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.0.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@babel/generator": { + "version": "7.17.0", + "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.7", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.7", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.7", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.2", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.10", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.0", + "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.0", + "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.0", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.4", + "integrity": "sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.10", + "integrity": "sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.4", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/@types/component-emitter": { + "version": "1.2.11", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "10.17.60", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64id": { + "version": "2.0.0", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.19.1", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "dev": true, + "dependencies": { + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.19.1", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/bytes": { + "version": "3.1.1", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001311", + "integrity": "sha512-mleTFtFKfykEeW34EyfhGIFjGCqzhh38Y0LhdQ9aWF+HorZTtdgKV/1hEE0NlFkG2ubvisPV6l400tlbPys98A==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "3.2.1", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/color-convert": { + "version": "1.9.3", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/chalk/node_modules/color-name": { + "version": "1.1.3", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/connect": { + "version": "3.7.0", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cors": { + "version": "2.8.5", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "node_modules/date-format": { + "version": "4.0.3", + "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/di": { + "version": "0.0.1", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.68", + "integrity": "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/engine.io": { + "version": "6.1.2", + "integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.0", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.0.3", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", + "dev": true, + "dependencies": { + "@socket.io/base64-arraybuffer": "~1.0.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/node_modules/ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/ent": { + "version": "2.2.0", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.14.8", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fs-extra": { + "version": "10.0.0", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.8.1", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isbinaryfile": { + "version": "4.0.8", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.1.0", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/istanbul-reports": { + "version": "3.1.4", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jasmine-core": { + "version": "3.10.1", + "integrity": "sha512-ooZWSDVAdh79Rrj4/nnfklL3NQVra0BcuhcuWoAwwi+znLDoUeH87AFfeX8s+YeYi6xlv5nveRyaA1v7CintfA==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.0", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/karma": { + "version": "6.3.15", + "integrity": "sha512-4O5X6zVFdmwo/fgjRN84fPG3IvaiOxOjIeZBwBrQYz4nIyGqlF8Wm7C1Hr7idQ9NHgnvJM+LSjZwS1C+qALMGw==", + "dev": true, + "dependencies": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "colors": "1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.2.0", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.1.0", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.0", + "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-firefox-launcher": { + "version": "2.1.2", + "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==", + "dev": true, + "dependencies": { + "is-wsl": "^2.2.0", + "which": "^2.0.1" + } + }, + "node_modules/karma-firefox-launcher/node_modules/which": { + "version": "2.0.2", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/karma-jasmine": { + "version": "4.0.1", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "dependencies": { + "jasmine-core": "^3.6.0" + }, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "karma": "*" + } + }, + "node_modules/karma-requirejs": { + "version": "1.1.0", + "integrity": "sha1-/driy4fX68FvsCIok1ZNf+5Xh5g=", + "dev": true, + "peerDependencies": { + "karma": ">=0.9", + "requirejs": "^2.1.0" + } + }, + "node_modules/karma-sourcemap-loader": { + "version": "0.3.8", + "integrity": "sha512-zorxyAakYZuBcHRJE+vbrK2o2JXLFWK8VVjiT/6P+ltLBUGUvqTEkUiQ119MGdOrK7mrmxXHZF1/pfT6GgIZ6g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/log4js": { + "version": "6.4.1", + "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", + "dev": true, + "dependencies": { + "date-format": "^4.0.3", + "debug": "^4.3.3", + "flatted": "^3.2.4", + "rfdc": "^1.3.0", + "streamroller": "^3.0.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/log4js/node_modules/debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/log4js/node_modules/ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/make-dir": { + "version": "3.1.0", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.0.5", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-releases": { + "version": "2.0.2", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.9.6", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "dev": true, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.2", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "dev": true, + "dependencies": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requirejs": { + "version": "2.3.6", + "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "dev": true, + "peer": true, + "bin": { + "r_js": "bin/r.js", + "r.js": "bin/r.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/rfdc": { + "version": "1.3.0", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/semver": { + "version": "6.3.0", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/socket.io": { + "version": "4.4.1", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.3.3", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", + "dev": true + }, + "node_modules/socket.io-parser": { + "version": "4.0.4", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dev": true, + "dependencies": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/node_modules/ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamroller": { + "version": "3.0.2", + "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", + "dev": true, + "dependencies": { + "date-format": "^4.0.3", + "debug": "^4.1.1", + "fs-extra": "^10.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/streamroller/node_modules/ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.31", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/ws": { + "version": "8.2.3", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.1.0", + "integrity": "sha512-d5RysTlJ7hmw5Tw4UxgxcY3lkMe92n8sXCcuLPAyIAHK6j8DefDwtGnVVDgOnv+RnEosulDJ9NPKQL27bDId0g==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, + "@babel/code-frame": { + "version": "7.16.7", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.17.0", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "dev": true + }, + "@babel/core": { + "version": "7.17.2", + "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.0.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.17.0", + "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.16.7", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.16.7", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.16.7", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.16.7", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true + }, + "@babel/helpers": { + "version": "7.17.2", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" + } + }, + "@babel/highlight": { + "version": "7.16.10", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.17.0", + "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", + "dev": true + }, + "@babel/template": { + "version": "7.16.7", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.0", + "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.0", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.17.0", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.0.4", + "integrity": "sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.10", + "integrity": "sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.4", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "dev": true + }, + "@types/component-emitter": { + "version": "1.2.11", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true + }, + "@types/cookie": { + "version": "0.4.1", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/cors": { + "version": "2.8.12", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "@types/node": { + "version": "10.17.60", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "balanced-match": { + "version": "1.0.2", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64id": { + "version": "2.0.0", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "body-parser": { + "version": "1.19.1", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "dev": true, + "requires": { + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + } + }, + "brace-expansion": { + "version": "1.1.11", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.19.1", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + } + }, + "bytes": { + "version": "3.1.1", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001311", + "integrity": "sha512-mleTFtFKfykEeW34EyfhGIFjGCqzhh38Y0LhdQ9aWF+HorZTtdgKV/1hEE0NlFkG2ubvisPV6l400tlbPys98A==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, + "chokidar": { + "version": "3.5.3", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cliui": { + "version": "7.0.4", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "connect": { + "version": "3.7.0", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "content-type": { + "version": "1.0.4", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.2", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "cors": { + "version": "2.8.5", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "custom-event": { + "version": "1.0.1", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "date-format": { + "version": "4.0.3", + "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "di": { + "version": "0.0.1", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "dom-serialize": { + "version": "2.2.1", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "ee-first": { + "version": "1.1.1", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.68", + "integrity": "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "engine.io": { + "version": "6.1.2", + "integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.0", + "ws": "~8.2.3" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "5.0.3", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", + "dev": true, + "requires": { + "@socket.io/base64-arraybuffer": "~1.0.2" + } + }, + "ent": { + "version": "2.2.0", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "extend": { + "version": "3.0.2", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "flatted": { + "version": "3.2.5", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "follow-redirects": { + "version": "1.14.8", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "dev": true + }, + "fs-extra": { + "version": "10.0.0", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob": { + "version": "7.2.0", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.9", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-errors": { + "version": "1.8.1", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "http-proxy": { + "version": "1.18.1", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inflight": { + "version": "1.0.6", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isbinaryfile": { + "version": "4.0.8", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.1.0", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.4", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jasmine-core": { + "version": "3.10.1", + "integrity": "sha512-ooZWSDVAdh79Rrj4/nnfklL3NQVra0BcuhcuWoAwwi+znLDoUeH87AFfeX8s+YeYi6xlv5nveRyaA1v7CintfA==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.2.0", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "6.1.0", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "karma": { + "version": "6.3.15", + "integrity": "sha512-4O5X6zVFdmwo/fgjRN84fPG3IvaiOxOjIeZBwBrQYz4nIyGqlF8Wm7C1Hr7idQ9NHgnvJM+LSjZwS1C+qALMGw==", + "dev": true, + "requires": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "colors": "1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.2.0", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + } + }, + "karma-chrome-launcher": { + "version": "3.1.0", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "requires": { + "which": "^1.2.1" + } + }, + "karma-coverage": { + "version": "2.2.0", + "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + } + }, + "karma-firefox-launcher": { + "version": "2.1.2", + "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==", + "dev": true, + "requires": { + "is-wsl": "^2.2.0", + "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "karma-jasmine": { + "version": "4.0.1", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "requires": { + "jasmine-core": "^3.6.0" + } + }, + "karma-requirejs": { + "version": "1.1.0", + "integrity": "sha1-/driy4fX68FvsCIok1ZNf+5Xh5g=", + "dev": true, + "requires": {} + }, + "karma-sourcemap-loader": { + "version": "0.3.8", + "integrity": "sha512-zorxyAakYZuBcHRJE+vbrK2o2JXLFWK8VVjiT/6P+ltLBUGUvqTEkUiQ119MGdOrK7mrmxXHZF1/pfT6GgIZ6g==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "lodash": { + "version": "4.17.21", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "log4js": { + "version": "6.4.1", + "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", + "dev": true, + "requires": { + "date-format": "^4.0.3", + "debug": "^4.3.3", + "flatted": "^3.2.4", + "rfdc": "^1.3.0", + "streamroller": "^3.0.2" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "make-dir": { + "version": "3.1.0", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "media-typer": { + "version": "0.3.0", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mime": { + "version": "2.6.0", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "mime-db": { + "version": "1.51.0", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true + }, + "mime-types": { + "version": "2.1.34", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "requires": { + "mime-db": "1.51.0" + } + }, + "minimatch": { + "version": "3.0.5", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.0.0", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "node-releases": { + "version": "2.0.2", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "parseurl": { + "version": "1.3.3", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.9.6", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "dev": true + }, + "range-parser": { + "version": "1.2.1", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.2", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "dev": true, + "requires": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readdirp": { + "version": "3.6.0", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "require-directory": { + "version": "2.1.1", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "requirejs": { + "version": "2.3.6", + "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "dev": true, + "peer": true + }, + "requires-port": { + "version": "1.0.0", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "setprototypeof": { + "version": "1.2.0", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "socket.io": { + "version": "4.4.1", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "socket.io-adapter": { + "version": "2.3.3", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", + "dev": true + }, + "socket.io-parser": { + "version": "4.0.4", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dev": true, + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "streamroller": { + "version": "3.0.2", + "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", + "dev": true, + "requires": { + "date-format": "^4.0.3", + "debug": "^4.1.1", + "fs-extra": "^10.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "string-width": { + "version": "4.2.3", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "5.5.0", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tmp": { + "version": "0.2.1", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "ua-parser-js": { + "version": "0.7.31", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "vary": { + "version": "1.1.2", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "void-elements": { + "version": "2.0.1", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "which": { + "version": "1.3.1", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "8.2.3", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true, + "requires": {} + }, + "y18n": { + "version": "5.0.8", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } +} diff --git a/third_party/skia/package.json b/third_party/skia/package.json new file mode 100644 index 000000000000..276474154c82 --- /dev/null +++ b/third_party/skia/package.json @@ -0,0 +1,13 @@ +{ + "//": [ + "These versions of these were the latest version avaiable at the time of writing", + "with the exception of jasmine, which was version 3 because our tests currently use v3." + ], + "devDependencies": { + "jasmine-core": "3.10.1", + "karma": "6.3.15", + "karma-chrome-launcher": "3.1.0", + "karma-firefox-launcher": "2.1.2", + "karma-jasmine": "4.0.1" + } +} diff --git a/third_party/skia/platform_tools/android/apps/skottie/skottielib/src/main/cpp/native-lib.cpp b/third_party/skia/platform_tools/android/apps/skottie/skottielib/src/main/cpp/native-lib.cpp index 9291e28ca18b..9ba971f76a86 100644 --- a/third_party/skia/platform_tools/android/apps/skottie/skottielib/src/main/cpp/native-lib.cpp +++ b/third_party/skia/platform_tools/android/apps/skottie/skottielib/src/main/cpp/native-lib.cpp @@ -9,6 +9,8 @@ #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkColor.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkStream.h" #include "include/core/SkSurface.h" #include "include/core/SkTime.h" #include diff --git a/third_party/skia/platform_tools/android/apps/skottie/src/main/AndroidManifest.xml b/third_party/skia/platform_tools/android/apps/skottie/src/main/AndroidManifest.xml index 0ed697b98692..a992ded40b3f 100644 --- a/third_party/skia/platform_tools/android/apps/skottie/src/main/AndroidManifest.xml +++ b/third_party/skia/platform_tools/android/apps/skottie/src/main/AndroidManifest.xml @@ -8,10 +8,6 @@ android:allowBackup="false" android:label="Skottie" android:theme="@android:style/Theme.Holo.Light"> - - diff --git a/third_party/skia/platform_tools/android/apps/skottie/src/main/java/org/skia/skottie/CorrectnessActivity.java b/third_party/skia/platform_tools/android/apps/skottie/src/main/java/org/skia/skottie/CorrectnessActivity.java deleted file mode 100644 index 4226c9543a06..000000000000 --- a/third_party/skia/platform_tools/android/apps/skottie/src/main/java/org/skia/skottie/CorrectnessActivity.java +++ /dev/null @@ -1,160 +0,0 @@ -package org.skia.skottie; - -import android.app.Activity; -import android.graphics.Bitmap; -import android.graphics.Rect; -import android.os.Environment; -import android.os.Handler; -import android.os.HandlerThread; -import android.util.Log; -import android.view.PixelCopy; -import android.view.PixelCopy.OnPixelCopyFinishedListener; -import android.view.Window; -import android.view.WindowManager; -import android.os.Bundle; -import android.widget.GridLayout; -import android.widget.ImageView.ScaleType; -import com.airbnb.lottie.LottieAnimationView; -import java.io.File; -import java.io.FileOutputStream; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -public class CorrectnessActivity extends Activity implements OnPixelCopyFinishedListener{ - - private static final int OUTPUT_DIMS = 1000; - private static final int PADDING = 200; - - private Rect bounds = new Rect(0, PADDING, OUTPUT_DIMS, OUTPUT_DIMS+PADDING); - private GridLayout grid; - private List lottieViews = new ArrayList<>(); - private static Handler sHandler; - private int currAsset = 0; - private ArrayList rawAssets = getRawIDs(R.raw.class); - - - static { - HandlerThread thread = new HandlerThread("PixelCopyHelper"); - thread.start(); - sHandler = new Handler(thread.getLooper()); - } - - // Run activity with: - // adb shell am start -n org.skia.skottie/.CorrectnessActivity - // Correctness PNGs will be saves to download folder - @Override - protected void onCreate(Bundle savedInstanceState) { - //Remove title bar - this.requestWindowFeature(Window.FEATURE_NO_TITLE); - //Remove notification bar - this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, - WindowManager.LayoutParams.FLAG_FULLSCREEN); - - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_correctness); - grid = findViewById(R.id.correctness_grid); - grid.setPadding(0, PADDING, 0, 0); - for (int i = 0; i < 25; i++) { - GridLayout.Spec rowSpec = GridLayout.spec(i / 5, 1, GridLayout.CENTER); - GridLayout.Spec colSpec = GridLayout.spec(i % 5, 1, GridLayout.CENTER); - GridLayout.LayoutParams params = new GridLayout.LayoutParams(rowSpec, colSpec); - params.width = 200; - params.height = 200; - LottieAnimationView l = new LottieAnimationView(this); - l.setScaleType(ScaleType.CENTER_INSIDE); - lottieViews.add(l); - grid.addView(l, params); - } - setLotties(rawAssets.get(currAsset)); - runCorrectness(rawAssets.get(currAsset)); - } - - private void setLotties(int asset) { - for (int i = 0; i < lottieViews.size(); i++) { - LottieAnimationView view = lottieViews.get(i); - float progress = (float)i / (lottieViews.size() - 1); - view.setAnimation(asset); - view.setProgress(progress); - } - } - - private void saveAsPng(int asset, Bitmap bitmap) { - String lottieName = getResources().getResourceName(asset).replaceAll(".+/", ""); - String outDir = Environment.getExternalStorageDirectory().getPath() + - "/Download/" + lottieName + ".PNG"; - try { - FileOutputStream out = new FileOutputStream(outDir); - bitmap.compress(Bitmap.CompressFormat.PNG, /*quality ignored for PNG*/100, out); - out.close(); - } catch (Exception e) { - Log.e("PNG conversion", e.getMessage()); - return; - } - if (currAsset < (rawAssets.size() - 1)) { - currAsset++; - setLotties(rawAssets.get(currAsset)); - runCorrectness(rawAssets.get(currAsset)); - } else { - writeTerminatingFile(); - } - } - - private void writeTerminatingFile() { - String outDir = Environment.getExternalStorageDirectory().getPath() + "/Download/done.txt"; - try { - FileOutputStream out = new FileOutputStream(outDir); - out.write("done".getBytes()); - out.close(); - } catch (Exception e) { - Log.e("Terminating file", e.getMessage()); - } - } - - @Override - public void onPixelCopyFinished(int copyResult) { - synchronized (this) { - this.notify(); - } - } - - private void runCorrectness(int asset) { - Handler handler = new Handler(); - handler.postDelayed(new Runnable() { - @Override - public void run() { - Bitmap out = grabScreenshot(); - saveAsPng(asset, out); - } - }, 20000); - } - - private Bitmap grabScreenshot() { - Bitmap outBitmap = Bitmap.createBitmap(OUTPUT_DIMS, OUTPUT_DIMS, - Bitmap.Config.ARGB_8888); - synchronized (this) { - PixelCopy.request(this.getWindow(), bounds, outBitmap, this, sHandler); - try { - this.wait(250); - } catch (InterruptedException e) { - Log.e("PixelCopy", "PixelCopy request didn't complete within 250ms"); - } - } - return outBitmap; - } - - private ArrayList getRawIDs(Class clz) { - ArrayList out = new ArrayList<>(); - final Field[] fields = clz.getDeclaredFields(); - for (Field field : fields) { - final int drawableId; - try { - drawableId = field.getInt(clz); - } catch (Exception e) { - continue; - } - out.add(drawableId); - } - return out; - } -} diff --git a/third_party/skia/platform_tools/android/apps/skottie/src/main/res/layout/activity_correctness.xml b/third_party/skia/platform_tools/android/apps/skottie/src/main/res/layout/activity_correctness.xml deleted file mode 100644 index b43ab4a07300..000000000000 --- a/third_party/skia/platform_tools/android/apps/skottie/src/main/res/layout/activity_correctness.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/third_party/skia/platform_tools/android/apps/skqp/src/main/assets/skqp/unittests.txt b/third_party/skia/platform_tools/android/apps/skqp/src/main/assets/skqp/unittests.txt index 0fd9954c2ace..8b8a2a0ab067 100644 --- a/third_party/skia/platform_tools/android/apps/skqp/src/main/assets/skqp/unittests.txt +++ b/third_party/skia/platform_tools/android/apps/skqp/src/main/assets/skqp/unittests.txt @@ -1,7 +1,71 @@ +# This file is a list of regular expressions, one per line. +# Any test name matching an expression will be excluded from the set run by SKQP. +# Empty lines and comments starting with # are ignored. +# This is parsed by tools/skqp/src/skqp.cpp +# The sheet at go/skqp-cts-tests was the basis of this file. + # Exclude all unit tests that end with the ES3 suffix because Android does not # require ES3 support. .+ES3 -# These tests fail or crash on a Pixel 6 Pro + SkRemoteGlyphCache_.+ ApplyGamma -ResourceAllocatorTest \ No newline at end of file +ResourceAllocatorTest +ClipStack_SWMask +ComposedImageFilter.+ +DDL.+ +DSL.+ +GpuDrawPath +GpuRectanizer +ProcessorOptimizationValidationTest + +# Don't test Ganesh internals +GrContextDump +GrContextFactory_abandon +GrContextFactory_executorAndTaskGroup +GrThreadSafeCache.+ + +ImageFilter.+ +MorphologyFilterRadiusWithMirrorCTM_Gpu + +# Android doesn't use promise images +PromiseImage* + +SkipCopyTaskTest +SkipOpsTaskTest +SmallBoxBlurBug +SrcSrcOverBatchTest + +# Tests chaining/batching logic, not actual execution +TextureOpTest + +# These tests mostly stress the CPU-side math of triangulating, not the GPU drawing triangles, which hopefully we can trust to just work +TriangulatingPath.+ + +VkDRMModifierTest +VkImageLayoutTest +VkProtectedContext_AsyncReadFromProtectedSurface +VkProtectedContext_CreateNonprotectedContext +VkProtectedContext_CreateNonprotectedTextureInProtectedContext +VkProtectedContext_CreateProtectedContext +VkProtectedContext_CreateProtectedSkSurface +VkProtectedContext_CreateProtectedTextureInNonprotectedContext +VkProtectedContext_DDLMakeRenderTargetTest +VkProtectedContext_DDLSurfaceCharacterizationTest +VkProtectedContext_DrawProtectedImageOnProtectedSurface +VkProtectedContext_DrawRectangle +VkProtectedContext_DrawRectangleWithAntiAlias +VkProtectedContext_DrawRectangleWithBlendMode +VkProtectedContext_DrawRectangleWithFilter +VkProtectedContext_DrawThinPath +VkProtectedContext_ReadFromProtectedSurface +VkProtectedContext_SaveLayer +VkWrapTests + +XfermodeImageFilterCroppedInput_Gpu +skbug5221_GPU + +# Tests which don't pass on some Qualcomm devices without workarounds b/222736702 +DMSAA_dual_source_blend_disable +GLBackendAllocationTest +GrSurfaceRenderability \ No newline at end of file diff --git a/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQP.java b/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQP.java index f2252302105f..3b04344f06dd 100644 --- a/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQP.java +++ b/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQP.java @@ -15,14 +15,16 @@ used by both SkQPActivity (firebase interface) and SkQPRunner (JUnit interface). */ public class SkQP { protected native void nInit(AssetManager assetManager, String dataDir); - protected native long nExecuteGM(int gm, int backend) throws SkQPException; protected native String[] nExecuteUnitTest(int test); protected native void nMakeReport(); - protected String[] mGMs; - protected String[] mBackends; protected String[] mUnitTests; + // These arrays are intended to be a matching set. + // mSkSLErrorTestName[n] holds a name; mSkSLErrorTestShader[n] has the associated shader text. + protected String[] mSkSLErrorTestName; + protected String[] mSkSLErrorTestShader; + protected static final String kSkiaGM = "skqp_"; protected static final String kSkiaUnitTests = "skqp_unitTest"; protected static final String LOG_PREFIX = "org.skia.skqp"; diff --git a/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQPActivity.java b/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQPActivity.java index 89b8dfef0cd3..91e78203b2c7 100644 --- a/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQPActivity.java +++ b/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQPActivity.java @@ -34,35 +34,15 @@ public void run() { Log.i(SkQP.LOG_PREFIX, "Output Dir: " + outputDirPath); File outputDir = new File(outputDirPath); try { - SkQPActivity.ensureEmtpyDirectory(outputDir); + SkQPActivity.ensureEmptyDirectory(outputDir); } catch (IOException e) { - Log.e(SkQP.LOG_PREFIX, "ensureEmtpyDirectory:" + e.getMessage()); + Log.e(SkQP.LOG_PREFIX, "ensureEmptyDirectory:" + e.getMessage()); } - // Note: nInit will initialize the mGMs, mBackends and mUnitTests fields. + // Note: nInit will initialize the mUnitTests field. AssetManager assetManager = context.getResources().getAssets(); impl.nInit(assetManager, outputDirPath); - for (int backend = 0; backend < impl.mBackends.length; backend++) { - for (int gm = 0; gm < impl.mGMs.length; gm++) { - String testName = SkQP.kSkiaGM + impl.mBackends[backend] + "_" + impl.mGMs[gm]; - long value = java.lang.Long.MAX_VALUE; - String error = null; - Log.i(SkQP.LOG_PREFIX, "Running: " + testName); - try { - value = impl.nExecuteGM(gm, backend); - } catch (SkQPException exept) { - error = exept.getMessage(); - } - if (error != null) { - Log.w(SkQP.LOG_PREFIX, "Error: " + testName + " " + error); - } else if (value != 0) { - Log.w(SkQP.LOG_PREFIX, String.format("Fail: %s %d", testName, value)); - } else { - Log.i(SkQP.LOG_PREFIX, "Pass: " + testName); - } - } - } for (int unitTest = 0; unitTest < impl.mUnitTests.length; unitTest++) { String testName = SkQP.kSkiaUnitTests + "_" + impl.mUnitTests[unitTest]; Log.w(SkQP.LOG_PREFIX, "Running: " + testName); @@ -78,11 +58,10 @@ public void run() { Log.i(SkQP.LOG_PREFIX, "Finished running all tests."); impl.nMakeReport(); - finish(); } - private static void ensureEmtpyDirectory(File f) throws IOException { + private static void ensureEmptyDirectory(File f) throws IOException { if (f.exists()) { SkQPActivity.delete(f); } diff --git a/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQPRunner.java b/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQPRunner.java index e65d618d7d2d..c94d9326866b 100644 --- a/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQPRunner.java +++ b/third_party/skia/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQPRunner.java @@ -10,12 +10,14 @@ import android.content.Context; import android.content.res.AssetManager; import android.content.res.Resources; +import android.graphics.RuntimeShader; import android.util.Log; import androidx.test.InstrumentationRegistry; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.regex.Pattern; import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runner.Runner; @@ -27,14 +29,20 @@ @RunWith(SkQPRunner.class) public class SkQPRunner extends Runner implements Filterable { - private int mShouldRunTestCount; - private Description[] mTests; - private Description mDescription; - private boolean[] mShouldSkipTest; + private Description[] mUnitTestDesc; + private Description[] mSkSLErrorTestDesc; + private Description mSuiteDesc; private String mOutputDirectory; private SkQP mImpl; private static final String TAG = SkQP.LOG_PREFIX; + private interface TestExecutor { + public int numTests(); + public String name(int index); + public Description desc(int index); + public boolean run(RunNotifier notifier, int index); + } + private static void Fail(Description desc, RunNotifier notifier, String failure) { notifier.fireTestFailure(new Failure(desc, new SkQPFailure(failure))); } @@ -53,110 +61,158 @@ public SkQPRunner(Class testClass) { AssetManager assetManager = context.getResources().getAssets(); mImpl.nInit(assetManager, mOutputDirectory); - int totalCount = mImpl.mUnitTests.length + mImpl.mGMs.length * mImpl.mBackends.length; - mTests = new Description[totalCount]; - mShouldSkipTest = new boolean[totalCount]; // = {false, false, ....}; - int index = 0; - for (int backend = 0; backend < mImpl.mBackends.length; backend++) { - for (int gm = 0; gm < mImpl.mGMs.length; gm++) { - mTests[index++] = Description.createTestDescription(SkQPRunner.class, - mImpl.mBackends[backend] + "_" + mImpl.mGMs[gm]); - } + mUnitTestDesc = new Description[mImpl.mUnitTests.length]; + for (int index = 0; index < mUnitTestDesc.length; ++index) { + mUnitTestDesc[index] = Description.createTestDescription( + SkQPRunner.class, "UnitTest_" + mImpl.mUnitTests[index]); } - for (int unitTest = 0; unitTest < mImpl.mUnitTests.length; unitTest++) { - mTests[index++] = Description.createTestDescription(SkQPRunner.class, - "unitTest_" + mImpl.mUnitTests[unitTest]); + + mSkSLErrorTestDesc = new Description[mImpl.mSkSLErrorTestName.length]; + for (int index = 0; index < mSkSLErrorTestDesc.length; ++index) { + mSkSLErrorTestDesc[index] = Description.createTestDescription( + SkQPRunner.class, "SkSLErrorTest_" + mImpl.mSkSLErrorTestName[index]); } - assert(index == totalCount); - this.updateDescription(null); + + this.applyFilter(null); } - private void updateDescription(Filter filter) { - mShouldRunTestCount = 0; - mDescription = Description.createSuiteDescription(SkQP.class); - assert(mTests.length == mShouldSkipTest.length); - for (int i = 0; i < mTests.length; ++i) { - boolean doRunTest = filter != null ? filter.shouldRun(mTests[i]) : true; - mShouldSkipTest[i] = !doRunTest; - if (doRunTest) { - mDescription.addChild(mTests[i]); - ++mShouldRunTestCount; + private void applyFilter(Filter filter) { + mSuiteDesc = Description.createSuiteDescription(SkQP.class); + addFilteredTestsToSuite(mUnitTestDesc, filter); + addFilteredTestsToSuite(mSkSLErrorTestDesc, filter); + } + + private void addFilteredTestsToSuite(Description[] tests, Filter filter) { + for (int i = 0; i < tests.length; ++i) { + if (filter == null || filter.shouldRun(tests[i])) { + mSuiteDesc.addChild(tests[i]); + } else { + tests[i] = Description.EMPTY; } } } @Override public void filter(Filter filter) throws NoTestsRemainException { - this.updateDescription(filter); - if (0 == mShouldRunTestCount) { + this.applyFilter(filter); + if (mSuiteDesc.isEmpty()) { throw new NoTestsRemainException(); } } @Override public Description getDescription() { - return mDescription; + return mSuiteDesc; } @Override public void run(RunNotifier notifier) { - int testNumber = 0; // out of number of actually run tests. - int testIndex = 0; // out of potential tests. - for (int backend = 0; backend < mImpl.mBackends.length; backend++) { - for (int gm = 0; gm < mImpl.mGMs.length; gm++, testIndex++) { - Description desc = mTests[testIndex]; - String name = desc.getMethodName(); - if (mShouldSkipTest[testIndex]) { - continue; - } - ++testNumber; - notifier.fireTestStarted(desc); - long value = java.lang.Long.MAX_VALUE; - String error = null; - try { - value = mImpl.nExecuteGM(gm, backend); - } catch (SkQPException exept) { - error = exept.getMessage(); - } - String result = "pass"; - if (error != null) { - SkQPRunner.Fail(desc, notifier, String.format("Exception: %s", error)); - Log.w(TAG, String.format("[ERROR] '%s': %s", name, error)); - result = "ERROR"; - } else if (value != 0) { - SkQPRunner.Fail(desc, notifier, String.format( - "Image mismatch: max channel diff = %d", value)); - Log.w(TAG, String.format("[FAIL] '%s': %d > 0", name, value)); - result = "FAIL"; - } - notifier.fireTestFinished(desc); - Log.i(TAG, String.format("Rendering Test '%s' complete (%d/%d). [%s]", - name, testNumber, mShouldRunTestCount, result)); - } - } - for (int unitTest = 0; unitTest < mImpl.mUnitTests.length; unitTest++, testIndex++) { - Description desc = mTests[testIndex]; - String name = desc.getMethodName(); - if (mShouldSkipTest[testIndex]) { + int testNumber = 0; + testNumber = runTests(notifier, new SkSLErrorTestExecutor(), testNumber); + testNumber = runTests(notifier, new UnitTestExecutor(), testNumber); + + mImpl.nMakeReport(); + Log.i(TAG, String.format("output written to \"%s\"", mOutputDirectory)); + } + + private int runTests(RunNotifier notifier, TestExecutor executor, int testNumber) { + for (int index = 0; index < executor.numTests(); index++) { + Description desc = executor.desc(index); + if (desc.isEmpty()) { + // This test was filtered out and can be skipped. continue; } + ++testNumber; notifier.fireTestStarted(desc); - String[] errors = mImpl.nExecuteUnitTest(unitTest); - String result = "pass"; + + String result = executor.run(notifier, index) ? "pass" : "FAIL"; + + notifier.fireTestFinished(desc); + Log.i(TAG, String.format("Test '%s' complete (%d/%d). [%s]", executor.name(index), + testNumber, mSuiteDesc.testCount(), result)); + } + return testNumber; + } + + class UnitTestExecutor implements TestExecutor { + public int numTests() { + return mUnitTestDesc.length; + } + public String name(int index) { + return desc(index).getMethodName(); + } + public Description desc(int index) { + return mUnitTestDesc[index]; + } + public boolean run(RunNotifier notifier, int index) { + String[] errors = mImpl.nExecuteUnitTest(index); if (errors != null && errors.length > 0) { - Log.w(TAG, String.format("[FAIL] Test '%s' had %d failures.", name, errors.length)); + Log.w(TAG, String.format("[FAIL] Test '%s' had %d failures.", + name(index), errors.length)); for (String error : errors) { - SkQPRunner.Fail(desc, notifier, error); - Log.w(TAG, String.format("[FAIL] '%s': %s", name, error)); + SkQPRunner.Fail(desc(index), notifier, error); + Log.w(TAG, String.format("[FAIL] '%s': %s", name(index), error)); } - result = "FAIL"; + return false; } - notifier.fireTestFinished(desc); - Log.i(TAG, String.format("Test '%s' complete (%d/%d). [%s]", - name, testNumber, mShouldRunTestCount, result)); + + return true; + } + } + + class SkSLErrorTestExecutor implements TestExecutor { + public int numTests() { + return mSkSLErrorTestDesc.length; + } + public String name(int index) { + return mImpl.mSkSLErrorTestName[index]; + } + public Description desc(int index) { + return mSkSLErrorTestDesc[index]; + } + public boolean run(RunNotifier notifier, int index) { + String shaderText = mImpl.mSkSLErrorTestShader[index]; + try { + new RuntimeShader(shaderText); + // Because this is an error test, we expected an exception to be thrown. + // If we reach this point, no exception occurred; report this as an error. + SkQPRunner.Fail(desc(index), notifier, "Shader did not generate any errors."); + Log.w(TAG, String.format("[FAIL] '%s': Shader did not generate any errors", + name(index))); + return false; + } + catch (Exception ex) { + // Verify that RuntimeShader actually emitted the expected error messages. + // The list of expectations isn't necessarily exhaustive, though. + String errorText = ex.getMessage(); + String[] block = shaderText.split(Pattern.quote("*%%*")); + if (block.length >= 3) { + // We only intend to support a single /%**%/ section. + // Because we are splitting on *%%*, expectations should always be in block[1]. + String[] expectations = block[1].split("\n"); + for (String expectation : expectations) { + if (expectation.length() == 0) { + continue; + } + int errIndex = errorText.indexOf(expectation); + // If this error wasn't reported, trigger an error. + if (errIndex < 0) { + String failMessage = String.format("Expected error '%s', got '%s'", + expectation, ex.getMessage()); + SkQPRunner.Fail(desc(index), notifier, failMessage); + Log.w(TAG, String.format("[FAIL] '%s': %s", name(index), failMessage)); + return false; + } + // We found the error that we expected to have. Remove that error from our + // text, and everything preceding it as well. This ensures that we don't + // match the same error twice, and that errors are reported in the order + // we expect. + errorText = errorText.substring(errIndex + expectation.length()); + } + } + } + return true; } - mImpl.nMakeReport(); - Log.i(TAG, String.format("output written to \"%s\"", mOutputDirectory)); } } diff --git a/third_party/skia/public.bzl b/third_party/skia/public.bzl index 475162165878..36a98f8774f3 100644 --- a/third_party/skia/public.bzl +++ b/third_party/skia/public.bzl @@ -1,5 +1,5 @@ ################################################################################ -# Skylark macros +# Starlark macros ################################################################################ def skia_select(conditions, results): @@ -54,6 +54,8 @@ def skia_public_hdrs(): ["include/**/*.h"], exclude = [ "include/private/**/*", + # For now + "include/graphite/**/*", ], ) @@ -175,10 +177,10 @@ def skia_opts_deps(cpu): res = [":opts_rest"] if cpu == SKIA_CPU_ARM: - res += [":opts_neon"] + res.append(":opts_neon") if cpu == SKIA_CPU_ARM64: - res += [":opts_crc32"] + res.append(":opts_crc32") if cpu == SKIA_CPU_X86: res += [ @@ -209,13 +211,13 @@ BASE_SRCS_ALL = struct( "src/codec/*", "src/device/xps/*", # Windows-only. Move to ports? "src/doc/*_XPS.cpp", # Windows-only. Move to ports? - "src/gpu/gl/android/*", - "src/gpu/gl/egl/*", - "src/gpu/gl/glfw/*", - "src/gpu/gl/glx/*", - "src/gpu/gl/iOS/*", - "src/gpu/gl/mac/*", - "src/gpu/gl/win/*", + "src/gpu/ganesh/gl/android/*", + "src/gpu/ganesh/gl/egl/*", + "src/gpu/ganesh/gl/glfw/*", + "src/gpu/ganesh/gl/glx/*", + "src/gpu/ganesh/gl/iOS/*", + "src/gpu/ganesh/gl/mac/*", + "src/gpu/ganesh/gl/win/*", "src/opts/**/*", "src/ports/**/*", "src/utils/android/**/*", @@ -223,7 +225,7 @@ BASE_SRCS_ALL = struct( "src/utils/win/**/*", # Exclude multiple definitions. - "src/gpu/gl/GrGLMakeNativeInterface_none.cpp", + "src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp", "src/pdf/SkDocument_PDF_None.cpp", # We use src/pdf/SkPDFDocument.cpp. # Exclude files that don't compile everywhere. @@ -231,23 +233,26 @@ BASE_SRCS_ALL = struct( "src/xml/**/*", # Avoid dragging in expat when not needed. # Exclude all GL specific files - "src/gpu/gl/*", - "src/gpu/gl/builders/*", + "src/gpu/ganesh/gl/*", + "src/gpu/ganesh/gl/builders/*", # Exclude all WebGL specific files - "src/gpu/gl/webgl/*", + "src/gpu/ganesh/gl/webgl/*", # Currently exclude all vulkan specific files - "src/gpu/vk/*", + "src/gpu/ganesh/vk/*", # Currently exclude all Direct3D specific files - "src/gpu/d3d/*", + "src/gpu/ganesh/d3d/*", # Currently exclude all Dawn-specific files - "src/gpu/dawn/*", + "src/gpu/ganesh/dawn/*", + + # Currently exclude all Graphite specific files + "src/gpu/graphite/**/*", # Defines main. - "src/sksl/SkSLMain.cpp", + "tools/skslc/Main.cpp", # Only used to regenerate the lexer "src/sksl/lex/*", @@ -268,13 +273,26 @@ def codec_srcs(limited): GL_SRCS_UNIX = struct( include = [ - "src/gpu/gl/*.cpp", - "src/gpu/gl/*.h", - "src/gpu/gl/builders/*.cpp", - "src/gpu/gl/builders/*.h", + "src/gpu/ganesh/gl/*.cpp", + "src/gpu/ganesh/gl/*.h", + "src/gpu/ganesh/gl/builders/*.cpp", + "src/gpu/ganesh/gl/builders/*.h", ], exclude = [], ) +GL_SRCS_UNIX_EGL = struct( + include = [ + "src/gpu/ganesh/gl/*.cpp", + "src/gpu/ganesh/gl/*.h", + "src/gpu/ganesh/gl/builders/*.cpp", + "src/gpu/ganesh/gl/builders/*.h", + "src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp", + "src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp", + ], + exclude = [ + "src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp", + ], +) PORTS_SRCS_UNIX = struct( include = [ "src/ports/**/*.cpp", @@ -302,14 +320,14 @@ PORTS_SRCS_UNIX = struct( GL_SRCS_ANDROID = struct( include = [ - "src/gpu/gl/*.cpp", - "src/gpu/gl/*.h", - "src/gpu/gl/builders/*.cpp", - "src/gpu/gl/builders/*.h", - "src/gpu/gl/android/*.cpp", + "src/gpu/ganesh/gl/*.cpp", + "src/gpu/ganesh/gl/*.h", + "src/gpu/ganesh/gl/builders/*.cpp", + "src/gpu/ganesh/gl/builders/*.h", + "src/gpu/ganesh/gl/android/*.cpp", ], exclude = [ - "src/gpu/gl/GrGLMakeNativeInterface_none.cpp", + "src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp", ], ) PORTS_SRCS_ANDROID = struct( @@ -365,14 +383,14 @@ PORTS_SRCS_ANDROID_NO_FONT = struct( GL_SRCS_IOS = struct( include = [ - "src/gpu/gl/*.cpp", - "src/gpu/gl/*.h", - "src/gpu/gl/builders/*.cpp", - "src/gpu/gl/builders/*.h", - "src/gpu/gl/iOS/GrGLMakeNativeInterface_iOS.cpp", + "src/gpu/ganesh/gl/*.cpp", + "src/gpu/ganesh/gl/*.h", + "src/gpu/ganesh/gl/builders/*.cpp", + "src/gpu/ganesh/gl/builders/*.h", + "src/gpu/ganesh/gl/iOS/GrGLMakeNativeInterface_iOS.cpp", ], exclude = [ - "src/gpu/gl/GrGLMakeNativeInterface_none.cpp", + "src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp", ], ) PORTS_SRCS_IOS = struct( @@ -407,15 +425,15 @@ PORTS_SRCS_IOS = struct( GL_SRCS_WASM = struct( include = [ - "src/gpu/gl/*.cpp", - "src/gpu/gl/*.h", - "src/gpu/gl/builders/*.cpp", - "src/gpu/gl/builders/*.h", - "src/gpu/gl/egl/GrGLMakeEGLInterface.cpp", - "src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp", + "src/gpu/ganesh/gl/*.cpp", + "src/gpu/ganesh/gl/*.h", + "src/gpu/ganesh/gl/builders/*.cpp", + "src/gpu/ganesh/gl/builders/*.h", + "src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp", + "src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp", ], exclude = [ - "src/gpu/gl/GrGLMakeNativeInterface_none.cpp", + "src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp", ], ) PORTS_SRCS_WASM = struct( @@ -455,8 +473,8 @@ PORTS_SRCS_WASM = struct( GL_SRCS_FUCHSIA = struct( include = [ - "src/gpu/vk/*.cpp", - "src/gpu/vk/*.h", + "src/gpu/ganesh/vk/*.cpp", + "src/gpu/ganesh/vk/*.h", ], exclude = [], ) @@ -495,14 +513,14 @@ PORTS_SRCS_FUCHSIA = struct( GL_SRCS_MACOS = struct( include = [ - "src/gpu/gl/*.cpp", - "src/gpu/gl/*.h", - "src/gpu/gl/builders/*.cpp", - "src/gpu/gl/builders/*.h", - "src/gpu/gl/mac/GrGLMakeNativeInterface_mac.cpp", + "src/gpu/ganesh/gl/*.cpp", + "src/gpu/ganesh/gl/*.h", + "src/gpu/ganesh/gl/builders/*.cpp", + "src/gpu/ganesh/gl/builders/*.h", + "src/gpu/ganesh/gl/mac/GrGLMakeNativeInterface_mac.cpp", ], exclude = [ - "src/gpu/gl/GrGLMakeNativeInterface_none.cpp", + "src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp", ], ) PORTS_SRCS_MACOS = PORTS_SRCS_IOS @@ -521,6 +539,7 @@ def ports_srcs(os_conditions): skia_glob(PORTS_SRCS_FUCHSIA), skia_glob(PORTS_SRCS_MACOS), skia_glob(PORTS_SRCS_ANDROID_NO_FONT), + skia_glob(PORTS_SRCS_UNIX), ], ) @@ -535,6 +554,7 @@ def gl_srcs(os_conditions): skia_glob(GL_SRCS_FUCHSIA), skia_glob(GL_SRCS_MACOS), skia_glob(GL_SRCS_ANDROID), + skia_glob(GL_SRCS_UNIX_EGL), ], ) @@ -546,7 +566,7 @@ def metal_objc_srcs(): [ "include/**/*.h", "src/**/*.h", - "src/gpu/mtl/**/*.mm", + "src/gpu/ganesh/mtl/**/*.mm", "third_party/**/*.h", ], ) + [ @@ -1056,3 +1076,10 @@ SVG_TOOL_SRCS = [ "tools/flags/CommandLineFlags.cpp", "tools/flags/CommandLineFlags.h", ] + +################################################################################ +## EGL support +################################################################################ + +SKIA_EGL_HDRS = ["include/gpu/gl/egl/GrGLMakeEGLInterface.h"] +SKIA_EGL_SRCS = ["src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp"] diff --git a/third_party/skia/requirements.txt b/third_party/skia/requirements.txt new file mode 100644 index 000000000000..ee7bf380f89a --- /dev/null +++ b/third_party/skia/requirements.txt @@ -0,0 +1,10 @@ +# Pip checks downloaded package archives against local hashes to protect against remote tampering +# Read https://pip.pypa.io/en/stable/cli/pip_install/#hash-checking-mode for more information + +jinja2==2.11.3 --hash=sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419 +# https://github.com/pallets/markupsafe/issues/286 + +# Multiple hash entries are required for platform dependent distributions. +# Currently supported hashes by platform in order are: Linux, MacOS +MarkupSafe==2.0.1 --hash=sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6 \ + --hash=sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7 diff --git a/third_party/skia/resources/fonts/Variable.ttf b/third_party/skia/resources/fonts/Variable.ttf index be5cf90130ff..a249d8dc6d4f 100644 Binary files a/third_party/skia/resources/fonts/Variable.ttf and b/third_party/skia/resources/fonts/Variable.ttf differ diff --git a/third_party/skia/resources/fonts/more_samples-glyf_colr_1.ttf b/third_party/skia/resources/fonts/more_samples-glyf_colr_1.ttf index 850343c6881d..ce3d1974e02e 100644 Binary files a/third_party/skia/resources/fonts/more_samples-glyf_colr_1.ttf and b/third_party/skia/resources/fonts/more_samples-glyf_colr_1.ttf differ diff --git a/third_party/skia/resources/fonts/sbix_uncompressed_flags.ttf b/third_party/skia/resources/fonts/sbix_uncompressed_flags.ttf new file mode 100644 index 000000000000..21b0b4a9f17a Binary files /dev/null and b/third_party/skia/resources/fonts/sbix_uncompressed_flags.ttf differ diff --git a/third_party/skia/resources/skottie/skottie-text-scale-to-fit-maxlines.json b/third_party/skia/resources/skottie/skottie-text-scale-to-fit-maxlines.json new file mode 100644 index 000000000000..68c01c2c56b2 --- /dev/null +++ b/third_party/skia/resources/skottie/skottie-text-scale-to-fit-maxlines.json @@ -0,0 +1 @@ +{"assets":[],"chars":[{"ch":"T","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[35.4,0],[35.4,-63.135],[59.082,-63.135],[59.082,-71.582],[2.344,-71.582],[2.344,-63.135],[25.928,-63.135],[25.928,0]]}},"mn":"ADBE Vector Shape - Group","nm":"T","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"T","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":61.08},{"ch":"h","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[-0.977,2.312],[-2.295,1.351],[-2.605,0],[-1.904,-2.002],[0,-4.395],[0,0],[0,0],[0,0],[1.221,2.67],[2.832,1.514],[3.841,0],[4.102,-4.752],[0,0],[0,0],[0,0]],"o":[[0,0],[0,-4.069],[0.977,-2.311],[2.295,-1.35],[3.483,0],[1.904,2.002],[0,0],[0,0],[0,0],[0,-5.078],[-1.221,-2.669],[-2.832,-1.514],[-6.25,0],[0,0],[0,0],[0,0],[0,0]],"v":[[15.381,0],[15.381,-28.369],[16.846,-37.939],[21.753,-43.433],[29.102,-45.459],[37.183,-42.456],[40.039,-32.861],[40.039,0],[48.828,0],[48.828,-32.861],[46.997,-44.482],[40.918,-50.757],[30.908,-53.027],[15.381,-45.898],[15.381,-71.582],[6.592,-71.582],[6.592,0]]}},"mn":"ADBE Vector Shape - Group","nm":"h","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"h","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":55.62},{"ch":"e","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[2.278,-1.692],[3.223,0],[2.897,3.027],[0.325,5.697],[0,0],[0,0.521],[4.395,4.72],[6.934,0],[4.492,-4.817],[0,-8.723],[-4.443,-4.671],[-7.585,0],[-3.874,2.93],[-1.433,5.306],[0,0]],"o":[[-2.279,1.693],[-4.33,0],[-2.898,-3.027],[0,0],[0.032,-1.041],[0,-8.561],[-4.395,-4.72],[-7.162,0],[-4.492,4.818],[0,8.431],[4.443,4.671],[6.022,0],[3.873,-2.93],[0,0],[-1.335,3.711]],"v":[[36.67,-8.594],[28.418,-6.055],[17.578,-10.596],[12.744,-23.682],[51.416,-23.682],[51.465,-26.025],[44.873,-45.947],[27.881,-53.027],[10.4,-45.801],[3.662,-25.488],[10.327,-5.835],[28.369,1.172],[43.213,-3.223],[51.172,-15.576],[42.09,-16.699]]}},"mn":"ADBE Vector Shape - Group","nm":"e","ty":"sh"},{"hd":false,"ind":1,"ix":2,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-2.751,2.702],[-4.037,0],[-2.8,-3.385],[-0.391,-4.362],[0,0]],"o":[[2.75,-2.702],[4.459,0],[1.823,2.181],[0,0],[0.293,-4.524]],"v":[[17.798,-41.748],[27.979,-45.801],[38.867,-40.723],[42.188,-30.908],[13.232,-30.908]]}},"mn":"ADBE Vector Shape - Group","nm":"e","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"e","np":5,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":55.62},{"ch":" ","data":{},"fFamily":"Arial","size":40,"style":"Regular","w":27.78},{"ch":"q","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[6.413,0],[3.434,-2.132],[1.807,-4.134],[0,-5.208],[-4.443,-4.915],[-6.152,0],[-2.458,1.27],[-1.367,1.921],[0,0]],"o":[[0,0],[0,0],[0,0],[-3.679,-5.403],[-4.102,0],[-3.435,2.132],[-1.807,4.134],[0,8.562],[4.443,4.916],[2.766,0],[2.457,-1.27],[0,0],[0,0]],"v":[[48.438,19.873],[48.438,-51.855],[40.527,-51.855],[40.527,-44.922],[25.391,-53.027],[14.087,-49.829],[6.226,-40.43],[3.516,-26.416],[10.181,-6.201],[26.074,1.172],[33.911,-0.732],[39.648,-5.518],[39.648,19.873]]}},"mn":"ADBE Vector Shape - Group","nm":"q","ty":"sh"},{"hd":false,"ind":1,"ix":2,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-2.654,3.239],[-3.809,0],[-2.849,-3.483],[0,-6.901],[2.702,-3.174],[3.743,0],[2.799,3.337],[0,6.673]],"o":[[2.653,-3.239],[3.841,0],[2.848,3.484],[0,6.478],[-2.702,3.174],[-3.906,0],[-2.8,-3.336],[0,-6.868]],"v":[[16.528,-41.235],[26.221,-46.094],[36.255,-40.869],[40.527,-25.293],[36.475,-10.815],[26.807,-6.055],[16.748,-11.06],[12.549,-26.074]]}},"mn":"ADBE Vector Shape - Group","nm":"q","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"q","np":5,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":55.62},{"ch":"u","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0.96,-2.327],[2.311,-1.35],[2.637,0],[1.79,1.318],[0.553,2.312],[0,4.59],[0,0],[0,0],[0,0],[-0.359,-1.725],[-1.286,-1.774],[-2.654,-1.172],[-3.06,0],[-4.037,5.859],[0,0]],"o":[[0,0],[0,0],[0,0],[0,4.427],[-0.961,2.328],[-2.312,1.351],[-2.637,0],[-1.791,-1.318],[-0.359,-1.595],[0,0],[0,0],[0,0],[0,3.744],[0.52,2.572],[1.286,1.775],[2.653,1.172],[6.934,0],[0,0],[0,0]],"v":[[48.438,0],[48.438,-51.855],[39.648,-51.855],[39.648,-24.072],[38.208,-13.94],[33.301,-8.423],[25.879,-6.396],[19.238,-8.374],[15.723,-13.818],[15.186,-23.096],[15.186,-51.855],[6.396,-51.855],[6.396,-19.727],[6.934,-11.523],[9.644,-5.005],[15.552,-0.586],[24.121,1.172],[40.576,-7.617],[40.576,0]]}},"mn":"ADBE Vector Shape - Group","nm":"u","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"u","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":55.62},{"ch":"i","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.43,-61.475],[15.43,-71.582],[6.641,-71.582],[6.641,-61.475]]}},"mn":"ADBE Vector Shape - Group","nm":"i","ty":"sh"},{"hd":false,"ind":1,"ix":2,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.43,0],[15.43,-51.855],[6.641,-51.855],[6.641,0]]}},"mn":"ADBE Vector Shape - Group","nm":"i","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"i","np":5,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":22.22},{"ch":"c","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[2.311,-2.116],[3.45,0],[2.669,3.158],[0,6.966],[-2.767,3.174],[-4.427,0],[-2.068,-1.758],[-0.814,-3.483],[0,0],[3.58,2.849],[5.631,0],[3.792,-2.1],[1.855,-4.199],[0,-5.598],[-4.314,-4.639],[-7.097,0],[-3.89,3.369],[-0.945,5.957],[0,0]],"o":[[-2.312,2.116],[-4.297,0],[-2.67,-3.157],[0,-6.868],[2.766,-3.174],[2.93,0],[2.067,1.758],[0,0],[-1.009,-5.241],[-3.581,-2.848],[-4.46,0],[-3.793,2.1],[-1.855,4.199],[0,8.659],[4.313,4.639],[5.664,0],[3.889,-3.369],[0,0],[-0.619,4.395]],"v":[[36.035,-9.229],[27.393,-6.055],[16.943,-10.791],[12.939,-25.977],[17.09,-41.04],[27.881,-45.801],[35.376,-43.164],[39.697,-35.303],[48.242,-36.621],[41.357,-48.755],[27.539,-53.027],[15.161,-49.878],[6.689,-40.43],[3.906,-25.732],[10.376,-5.786],[27.49,1.172],[41.821,-3.882],[49.072,-17.871],[40.43,-18.994]]}},"mn":"ADBE Vector Shape - Group","nm":"c","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"c","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":50},{"ch":"k","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[15.43,0],[15.43,-20.557],[21.631,-26.514],[38.77,0],[49.609,0],[27.783,-32.617],[47.607,-51.855],[36.23,-51.855],[15.43,-30.762],[15.43,-71.582],[6.641,-71.582],[6.641,0]]}},"mn":"ADBE Vector Shape - Group","nm":"k","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"k","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":50},{"ch":"b","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[-6.12,0],[-4.395,4.851],[0,8.887],[1.041,3.288],[1.839,2.328],[2.848,1.286],[3.19,0],[3.711,-4.655],[0,0],[0,0],[0,0],[0,0]],"o":[[3.483,5.111],[6.152,0],[4.395,-4.85],[0,-3.743],[-1.042,-3.288],[-1.839,-2.327],[-2.849,-1.286],[-5.762,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[14.697,-6.494],[29.102,1.172],[44.922,-6.104],[51.514,-26.709],[49.951,-37.256],[45.63,-45.679],[38.599,-51.099],[29.541,-53.027],[15.332,-46.045],[15.332,-71.582],[6.543,-71.582],[6.543,0],[14.697,0]]}},"mn":"ADBE Vector Shape - Group","nm":"b","ty":"sh"},{"hd":false,"ind":1,"ix":2,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-2.8,3.337],[-3.841,0],[-2.686,-3.223],[0,-6.77],[2.799,-3.336],[3.841,0],[2.766,4.525],[0,6.218]],"o":[[2.799,-3.336],[3.809,0],[2.686,3.223],[0,6.609],[-2.8,3.337],[-4.72,0],[-1.693,-2.766],[0,-6.315]],"v":[[18.799,-40.796],[28.76,-45.801],[38.501,-40.967],[42.529,-25.977],[38.33,-11.06],[28.369,-6.055],[17.139,-12.842],[14.6,-26.318]]}},"mn":"ADBE Vector Shape - Group","nm":"b","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"b","np":5,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":55.62},{"ch":"r","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[-0.977,3.125],[-1.53,1.156],[-1.921,0],[-2.148,-1.27],[0,0],[2.962,0],[1.709,-1.172],[2.018,-3.678],[0,0],[0,0],[0,0]],"o":[[0,0],[0,-3.711],[0.651,-2.051],[1.53,-1.155],[2.148,0],[0,0],[-3.06,-1.888],[-2.051,0],[-1.709,1.172],[0,0],[0,0],[0,0],[0,0]],"v":[[15.283,0],[15.283,-27.148],[16.748,-37.402],[20.02,-42.212],[25.195,-43.945],[31.641,-42.041],[34.668,-50.195],[25.635,-53.027],[19.995,-51.27],[14.404,-43.994],[14.404,-51.855],[6.494,-51.855],[6.494,0]]}},"mn":"ADBE Vector Shape - Group","nm":"r","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"r","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":33.3},{"ch":"o","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-4.476,-4.655],[-7.259,0],[-3.825,2.116],[-2.002,3.825],[0,6.673],[4.524,4.671],[7.129,0],[4.459,-3.841],[0,-9.602]],"o":[[4.475,4.655],[4.524,0],[3.825,-2.116],[2.002,-3.825],[0,-8.235],[-4.525,-4.671],[-6.413,0],[-5.339,4.623],[0,8.757]],"v":[[10.034,-5.811],[27.637,1.172],[40.161,-2.002],[48.901,-10.913],[51.904,-26.66],[45.117,-46.021],[27.637,-53.027],[11.328,-47.266],[3.32,-25.928]]}},"mn":"ADBE Vector Shape - Group","nm":"o","ty":"sh"},{"hd":false,"ind":1,"ix":2,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-2.898,3.288],[-4.395,0],[-2.914,-3.304],[0,-6.413],[2.897,-3.32],[4.362,0],[2.897,3.304],[0,6.641]],"o":[[2.897,-3.288],[4.329,0],[2.913,3.304],[0,6.804],[-2.898,3.32],[-4.395,0],[-2.898,-3.304],[0,-6.641]],"v":[[16.699,-40.82],[27.637,-45.752],[38.501,-40.796],[42.871,-26.221],[38.525,-11.035],[27.637,-6.055],[16.699,-11.011],[12.354,-25.928]]}},"mn":"ADBE Vector Shape - Group","nm":"o","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"o","np":5,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":55.62},{"ch":"w","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[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.13,-0.553],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.66,6.576],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[25.342,0],[35.84,-39.893],[37.842,-31.055],[46.094,0],[55.225,0],[71.436,-51.855],[62.891,-51.855],[54.004,-21.875],[51.025,-11.865],[48.438,-21.777],[40.674,-51.855],[31.641,-51.855],[23.389,-21.484],[20.703,-10.791],[17.627,-21.924],[9.375,-51.855],[0.293,-51.855],[16.162,0]]}},"mn":"ADBE Vector Shape - Group","nm":"w","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"w","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":72.22},{"ch":"n","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[-2.718,2.377],[-3.744,0],[-1.742,-1.057],[-0.684,-1.774],[0,-3.58],[0,0],[0,0],[0,0],[0.325,1.628],[1.302,1.823],[2.62,1.123],[3.125,0],[3.809,-5.696],[0,0],[0,0],[0,0]],"o":[[0,0],[0,-6.641],[2.718,-2.376],[2.344,0],[1.741,1.058],[0.684,1.775],[0,0],[0,0],[0,0],[0,-4.069],[-0.521,-2.506],[-1.302,-1.823],[-2.621,-1.123],[-7.195,0],[0,0],[0,0],[0,0],[0,0]],"v":[[15.381,0],[15.381,-28.32],[19.458,-41.846],[29.15,-45.41],[35.278,-43.823],[38.916,-39.575],[39.941,-31.543],[39.941,0],[48.73,0],[48.73,-31.885],[48.242,-40.43],[45.508,-46.924],[39.624,-51.343],[31.006,-53.027],[14.502,-44.482],[14.502,-51.855],[6.592,-51.855],[6.592,0]]}},"mn":"ADBE Vector Shape - Group","nm":"n","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"n","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":55.62},{"ch":"f","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.107,1.14],[-2.67,0],[-1.823,-0.325],[0,0],[2.473,0],[2.132,-1.416],[0.846,-2.278],[0,-3.483],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,-3.125],[1.106,-1.139],[1.627,0],[0,0],[-2.995,-0.586],[-3.841,0],[-2.132,1.416],[-0.619,1.693],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[17.432,0],[17.432,-45.02],[27.539,-45.02],[27.539,-51.855],[17.432,-51.855],[17.432,-56.641],[19.092,-63.037],[24.756,-64.746],[29.932,-64.258],[31.25,-71.924],[23.047,-72.803],[14.087,-70.679],[9.619,-65.137],[8.691,-57.373],[8.691,-51.855],[0.928,-51.855],[0.928,-45.02],[8.691,-45.02],[8.691,0]]}},"mn":"ADBE Vector Shape - Group","nm":"f","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"f","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":25.98},{"ch":"x","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.432,-2.148],[1.497,2.312],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.205,1.66],[-0.912,-1.562],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[11.377,0],[25,-20.459],[27.832,-16.113],[38.477,0],[49.268,0],[29.98,-27.441],[47.9,-51.855],[37.402,-51.855],[28.662,-39.6],[24.707,-33.887],[21.094,-39.697],[13.135,-51.855],[2.148,-51.855],[19.678,-26.953],[0.732,0]]}},"mn":"ADBE Vector Shape - Group","nm":"x","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"x","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":50},{"ch":"j","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.332,-61.377],[15.332,-71.582],[6.543,-71.582],[6.543,-61.377]]}},"mn":"ADBE Vector Shape - Group","nm":"j","ty":"sh"},{"hd":false,"ind":1,"ix":2,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-2.376,0],[-2.116,3.255],[0,6.38],[0,0],[0,0],[0,0],[0.879,-1.189],[1.79,0],[1.758,0.455],[0,0]],"o":[[4.915,0],[1.66,-2.507],[0,0],[0,0],[0,0],[0,4.752],[-0.879,1.188],[-1.009,0],[0,0],[2.214,0.618]],"v":[[2.295,21.045],[12.842,16.162],[15.332,2.832],[15.332,-51.855],[6.543,-51.855],[6.543,2.637],[5.225,11.548],[1.221,13.33],[-2.93,12.646],[-4.59,20.117]]}},"mn":"ADBE Vector Shape - Group","nm":"j","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"j","np":5,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":22.22},{"ch":"m","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[-0.945,2.507],[-2.1,1.302],[-2.474,0],[-1.433,-1.953],[0,-3.906],[0,0],[0,0],[0,0],[-2.409,2.425],[-3.646,0],[-1.498,-0.944],[-0.57,-1.546],[0,-3.516],[0,0],[0,0],[0,0],[2.766,2.849],[5.143,0],[4.102,-6.055],[2.457,1.595],[3.841,0],[2.702,-1.546],[1.627,-2.539],[0,0],[0,0],[0,0]],"o":[[0,0],[0,-4.72],[0.944,-2.506],[2.1,-1.302],[3.255,0],[1.432,1.953],[0,0],[0,0],[0,0],[0,-5.338],[2.409,-2.425],[2.018,0],[1.497,0.945],[0.569,1.546],[0,0],[0,0],[0,0],[0,-5.924],[-2.767,-2.848],[-6.576,0],[-1.009,-2.864],[-2.458,-1.595],[-3.451,0],[-2.702,1.546],[0,0],[0,0],[0,0],[0,0]],"v":[[15.381,0],[15.381,-26.904],[16.797,-37.744],[21.362,-43.457],[28.223,-45.41],[35.254,-42.48],[37.402,-33.691],[37.402,0],[46.191,0],[46.191,-30.127],[49.805,-41.772],[58.887,-45.41],[64.16,-43.994],[67.261,-40.259],[68.115,-32.666],[68.115,0],[76.855,0],[76.855,-35.596],[72.705,-48.755],[60.84,-53.027],[44.824,-43.945],[39.624,-50.635],[30.176,-53.027],[20.947,-50.708],[14.453,-44.58],[14.453,-51.855],[6.592,-51.855],[6.592,0]]}},"mn":"ADBE Vector Shape - Group","nm":"m","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"m","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":83.3},{"ch":"p","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[-2.328,-1.237],[-2.93,0],[-3.63,2.262],[-1.904,4.248],[0,5.306],[1.725,4.15],[3.385,2.279],[4.427,0],[2.376,-1.318],[1.888,-2.637],[0,0],[0,0],[0,0]],"o":[[0,0],[1.497,1.888],[2.327,1.237],[4.004,0],[3.629,-2.262],[1.904,-4.248],[0,-4.948],[-1.726,-4.15],[-3.386,-2.278],[-3.386,0],[-2.377,1.318],[0,0],[0,0],[0,0],[0,0]],"v":[[15.381,19.873],[15.381,-5.371],[21.118,-0.684],[29.004,1.172],[40.454,-2.222],[48.755,-11.987],[51.611,-26.318],[49.023,-39.966],[41.357,-49.609],[29.639,-53.027],[20.996,-51.05],[14.6,-45.117],[14.6,-51.855],[6.592,-51.855],[6.592,19.873]]}},"mn":"ADBE Vector Shape - Group","nm":"p","ty":"sh"},{"hd":false,"ind":1,"ix":2,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-2.881,3.5],[-3.744,0],[-2.718,-3.288],[0,-6.608],[2.783,-3.304],[3.906,0],[2.702,3.191],[0,6.673]],"o":[[2.881,-3.499],[3.776,0],[2.718,3.288],[0,6.934],[-2.783,3.304],[-3.841,0],[-2.702,-3.19],[0,-6.673]],"v":[[18.872,-40.894],[28.809,-46.143],[38.55,-41.211],[42.627,-26.367],[38.452,-11.011],[28.418,-6.055],[18.604,-10.84],[14.551,-25.635]]}},"mn":"ADBE Vector Shape - Group","nm":"p","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"p","np":5,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":55.62},{"ch":"s","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-3.532,-2.799],[-6.738,0],[-3.223,1.416],[-1.709,2.588],[0,2.93],[1.399,2.019],[2.457,1.058],[6.217,1.66],[0.879,0.326],[0.716,0.945],[0,1.14],[-1.726,1.335],[-4.037,0],[-1.872,-1.497],[-0.391,-2.669],[0,0],[1.465,2.002],[3.076,1.172],[4.069,0],[2.36,-0.7],[1.367,-1.009],[1.057,-1.969],[0,-2.311],[-1.286,-2.1],[-2.49,-1.188],[-6.445,-1.627],[-1.205,-0.781],[0,-1.985],[1.953,-1.643],[4.036,0],[2.229,1.855],[0.488,3.484],[0,0]],"o":[[3.532,2.8],[4.069,0],[3.223,-1.416],[1.709,-2.588],[0,-2.995],[-1.4,-2.018],[-2.458,-1.057],[-4.297,-1.172],[-1.53,-0.618],[-0.716,-0.911],[0,-1.79],[1.725,-1.334],[3.418,0],[1.871,1.498],[0,0],[-0.554,-3.352],[-1.465,-2.002],[-3.076,-1.172],[-2.702,0],[-2.361,0.7],[-1.823,1.302],[-1.058,1.97],[0,2.539],[1.286,2.1],[2.49,1.189],[4.785,1.205],[1.725,1.14],[0,2.214],[-1.953,1.644],[-4.004,0],[-2.23,-1.855],[0,0],[0.977,5.502]],"v":[[9.839,-3.027],[25.244,1.172],[36.182,-0.952],[43.579,-6.958],[46.143,-15.234],[44.043,-22.754],[38.257,-27.368],[25.244,-31.445],[17.48,-33.691],[14.111,-36.035],[13.037,-39.111],[15.625,-43.799],[24.268,-45.801],[32.202,-43.555],[35.596,-37.305],[44.189,-38.477],[41.162,-46.509],[34.351,-51.27],[23.633,-53.027],[16.04,-51.978],[10.449,-49.414],[6.128,-44.507],[4.541,-38.086],[6.47,-31.128],[12.134,-26.196],[25.537,-21.973],[34.521,-18.994],[37.109,-14.307],[34.18,-8.521],[25.195,-6.055],[15.845,-8.838],[11.768,-16.846],[3.076,-15.479]]}},"mn":"ADBE Vector Shape - Group","nm":"s","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"s","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":50},{"ch":"v","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0.781,-2.734],[1.204,3.353],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-1.4,3.841],[-1.009,-3.613],[0,0],[0,0],[0,0],[0,0]],"v":[[29.199,0],[48.828,-51.855],[39.795,-51.855],[28.271,-20.215],[25,-10.352],[21.68,-20.801],[10.547,-51.855],[1.27,-51.855],[20.996,0]]}},"mn":"ADBE Vector Shape - Group","nm":"v","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"v","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":50},{"ch":"t","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0.977,0],[0.7,0.423],[0.309,0.716],[0,2.507],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.716,-1.643],[-1.758,-1.009],[-3.191,0],[-2.474,0.52],[0,0]],"o":[[-1.302,0],[-0.7,-0.423],[-0.31,-0.716],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,5.273],[0.716,1.644],[1.758,1.009],[1.953,0],[0,0],[-1.595,0.228]],"v":[[21.924,-7.52],[18.921,-8.154],[17.407,-9.863],[16.943,-14.697],[16.943,-45.02],[25.781,-45.02],[25.781,-51.855],[16.943,-51.855],[16.943,-69.971],[8.203,-64.697],[8.203,-51.855],[1.758,-51.855],[1.758,-45.02],[8.203,-45.02],[8.203,-15.186],[9.277,-4.81],[12.988,-0.83],[20.41,0.684],[27.051,-0.098],[25.781,-7.861]]}},"mn":"ADBE Vector Shape - Group","nm":"t","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"t","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":27.78},{"ch":"l","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[15.186,0],[15.186,-71.582],[6.396,-71.582],[6.396,0]]}},"mn":"ADBE Vector Shape - Group","nm":"l","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"l","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":22.22},{"ch":"a","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-0.912,-1.823],[0,0],[0.374,2.165],[0,8.171],[0,0],[0.293,1.498],[1.302,1.579],[2.766,1.042],[4.427,0],[3.385,-1.221],[1.79,-2.262],[0.781,-3.678],[0,0],[-1.97,1.449],[-4.134,0],[-2.246,-1.985],[0,-3.58],[0.032,-1.204],[7.096,-0.846],[1.725,-0.455],[1.871,-1.27],[1.155,-2.1],[0,-2.539],[-3.06,-2.783],[-5.697,0],[-3.011,1.139],[-3.255,2.767]],"o":[[0,0],[-1.107,-1.985],[-0.375,-2.164],[0,0],[0,-3.906],[-0.521,-2.409],[-1.302,-1.579],[-2.767,-1.041],[-4.46,0],[-3.386,1.221],[-1.791,2.263],[0,0],[0.944,-3.678],[1.969,-1.448],[4.427,0],[1.66,1.465],[0,0.326],[-3.353,1.172],[-3.484,0.423],[-2.344,0.652],[-1.872,1.27],[-1.156,2.1],[0,4.33],[3.059,2.783],[3.45,0],[3.011,-1.139],[0.26,2.441]],"v":[[42.188,0],[51.367,0],[49.146,-6.226],[48.584,-21.729],[48.584,-33.447],[48.145,-41.553],[45.41,-47.534],[39.307,-51.465],[28.516,-53.027],[16.748,-51.196],[8.984,-45.972],[5.127,-37.061],[13.721,-35.889],[18.091,-43.579],[27.246,-45.752],[37.256,-42.773],[39.746,-35.205],[39.697,-32.91],[24.023,-29.883],[16.211,-28.564],[9.888,-25.684],[5.347,-20.63],[3.613,-13.672],[8.203,-3.003],[21.338,1.172],[31.03,-0.537],[40.43,-6.396]]}},"mn":"ADBE Vector Shape - Group","nm":"a","ty":"sh"},{"hd":false,"ind":1,"ix":2,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0.944,-1.985],[2.637,-1.481],[3.385,0],[1.774,1.562],[0,2.344],[-0.814,1.254],[-1.498,0.652],[-3.613,0.521],[-3.191,1.302]],"o":[[0,3.874],[-1.237,2.572],[-2.637,1.482],[-3.418,0],[-1.775,-1.562],[0,-1.53],[0.813,-1.253],[1.497,-0.651],[6.38,-0.911],[0,0]],"v":[[39.697,-22.803],[38.281,-14.014],[32.471,-7.935],[23.438,-5.713],[15.649,-8.057],[12.988,-13.916],[14.209,-18.091],[17.676,-20.947],[25.342,-22.705],[39.697,-26.025]]}},"mn":"ADBE Vector Shape - Group","nm":"a","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"a","np":5,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":55.62},{"ch":"z","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[3.938,-0.293],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-3.744,0.195],[0,0],[0,0]],"o":[[0,0],[0,0],[-3.451,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[2.864,0],[0,0],[0,0],[0,0]],"v":[[47.852,0],[47.852,-7.568],[23.877,-7.568],[12.793,-7.129],[18.213,-13.135],[46.289,-46.045],[46.289,-51.855],[3.906,-51.855],[3.906,-44.727],[25.049,-44.727],[34.961,-45.02],[1.953,-7.129],[1.953,0]]}},"mn":"ADBE Vector Shape - Group","nm":"z","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"z","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":50},{"ch":"y","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-1.693,0],[-2.019,1.35],[-1.562,2.897],[-2.116,5.696],[0,0],[0,0],[0,0],[1.009,-4.036],[1.399,3.809],[0,0],[0,0],[0,0],[0.163,-0.488],[0.553,-0.879],[1.172,-0.652],[1.953,0],[1.92,0.52],[0,0]],"o":[[2.799,0],[2.018,-1.351],[1.172,-2.148],[0,0],[0,0],[0,0],[-1.4,3.841],[-1.107,-4.199],[0,0],[0,0],[0,0],[-0.359,0.944],[-1.237,3.483],[-0.749,1.172],[-1.172,0.651],[-1.433,0],[0,0],[2.083,0.716]],"v":[[11.865,21.045],[19.092,19.019],[24.463,12.646],[29.395,0.879],[49.121,-51.855],[40.332,-51.855],[29.248,-21.631],[25.635,-9.814],[21.875,-21.826],[11.084,-51.855],[1.611,-51.855],[21.289,0.098],[20.508,2.246],[17.822,8.789],[14.941,11.523],[10.254,12.5],[5.225,11.719],[6.201,19.971]]}},"mn":"ADBE Vector Shape - Group","nm":"y","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"y","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":50},{"ch":"d","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[2.441,1.318],[3.125,0],[3.45,-2.246],[1.725,-4.215],[0,-5.176],[-1.904,-4.085],[-3.467,-2.278],[-4.134,0],[-3.288,5.144],[0,0]],"o":[[0,0],[0,0],[0,0],[-1.53,-2.116],[-2.441,-1.318],[-4.265,0],[-3.451,2.246],[-1.726,4.216],[0,5.306],[1.904,4.086],[3.467,2.278],[6.38,0],[0,0],[0,0]],"v":[[48.389,0],[48.389,-71.582],[39.648,-71.582],[39.648,-45.898],[33.691,-51.05],[25.342,-53.027],[13.77,-49.658],[6.006,-39.966],[3.418,-25.879],[6.274,-11.792],[14.331,-2.246],[25.732,1.172],[40.234,-6.543],[40.234,0]]}},"mn":"ADBE Vector Shape - Group","nm":"d","ty":"sh"},{"hd":false,"ind":1,"ix":2,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-2.621,3.191],[-3.906,0],[-2.734,-3.32],[0,-7.096],[2.686,-3.141],[3.841,0],[2.799,3.288],[0,6.641]],"o":[[2.62,-3.19],[4.004,0],[2.734,3.32],[0,6.445],[-2.686,3.142],[-3.809,0],[-2.8,-3.288],[0,-6.868]],"v":[[16.382,-40.967],[26.172,-45.752],[36.279,-40.771],[40.381,-25.146],[36.353,-10.767],[26.562,-6.055],[16.65,-10.986],[12.451,-25.879]]}},"mn":"ADBE Vector Shape - Group","nm":"d","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"d","np":5,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":55.62},{"ch":"g","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-3.809,-2.783],[-6.185,0],[-3.564,1.953],[-1.644,3.369],[0,8.073],[0,0],[0,0],[0,0],[6.12,0],[3.401,-2.278],[1.79,-4.182],[0,-4.948],[-3.906,-5.143],[-7.129,0],[-3.841,4.525],[0.455,-1.791],[2.213,-1.628],[4.069,0],[2.18,1.627],[0.358,2.637],[0,0]],"o":[[3.809,2.783],[5.208,0],[3.564,-1.953],[1.643,-3.369],[0,0],[0,0],[0,0],[-3.972,-4.948],[-4.59,0],[-3.402,2.279],[-1.791,4.183],[0,7.195],[3.906,5.144],[5.729,0],[0.032,5.73],[-0.781,2.93],[-2.214,1.627],[-3.777,0],[-1.628,-1.205],[0,0],[-0.13,5.598]],"v":[[10.498,16.87],[25.488,21.045],[38.647,18.115],[46.46,10.132],[48.926,-7.031],[48.926,-51.855],[40.82,-51.855],[40.82,-45.605],[25.684,-53.027],[13.696,-49.609],[5.908,-39.917],[3.223,-26.221],[9.082,-7.715],[25.635,0],[39.99,-6.787],[39.355,4.492],[34.863,11.328],[25.439,13.77],[16.504,11.328],[13.525,5.566],[4.98,4.297]]}},"mn":"ADBE Vector Shape - Group","nm":"g","ty":"sh"},{"hd":false,"ind":1,"ix":2,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[-2.734,3.174],[-3.906,0],[-2.816,-3.223],[0,-6.348],[2.734,-3.108],[4.036,0],[2.702,3.125],[0,6.804]],"o":[[2.734,-3.174],[3.971,0],[2.815,3.223],[0,6.641],[-2.734,3.109],[-4.07,0],[-2.702,-3.125],[0,-6.25]],"v":[[16.357,-40.991],[26.318,-45.752],[36.499,-40.918],[40.723,-26.562],[36.621,-11.938],[26.465,-7.275],[16.309,-11.963],[12.256,-26.855]]}},"mn":"ADBE Vector Shape - Group","nm":"g","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":"g","np":5,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":55.62},{"ch":".","data":{"shapes":[{"bm":0,"cix":2,"hd":false,"it":[{"hd":false,"ind":0,"ix":1,"ks":{"a":0,"ix":2,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[19.092,0],[19.092,-10.01],[9.082,-10.01],[9.082,0]]}},"mn":"ADBE Vector Shape - Group","nm":".","ty":"sh"}],"ix":1,"mn":"ADBE Vector Group","nm":".","np":3,"ty":"gr"}]},"fFamily":"Arial","size":40,"style":"Regular","w":27.78}],"ddd":0,"fonts":{"list":[{"ascent":75.6476929411292,"fFamily":"Arial","fName":"ArialMT","fStyle":"Regular"}]},"fr":60,"h":500,"ip":0,"layers":[{"ao":0,"bm":0,"ddd":0,"ind":1,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[0,0,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[97.5,109.5,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,100,100]}},"nm":"txt - left","op":300,"sr":1,"st":0,"t":{"a":[],"d":{"k":[{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":3,"lh":48,"ls":0,"ps":[-75.5,-80.5],"s":40,"sz":[198,121],"t":"The","tr":0},"t":0},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":3,"lh":48,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick","tr":0},"t":30},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown","tr":0},"t":60},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox","tr":0},"t":90},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps","tr":0},"t":120},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over","tr":0},"t":150},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the","tr":0},"t":180},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy","tr":0},"t":210},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy dog.","tr":0},"t":240}]},"m":{"a":{"a":0,"ix":2,"k":[0,0]},"g":1},"p":{}},"ty":5},{"ao":0,"bm":0,"ddd":0,"ind":2,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[100,75,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[122,90,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,81.333,100]}},"nm":"Gray Solid 1","op":300,"sc":"#666666","sh":150,"sr":1,"st":0,"sw":200,"ty":1},{"ao":0,"bm":0,"ddd":0,"ind":3,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[0,0,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[97.5,269.5,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,100,100]}},"nm":"txt - center","op":300,"sr":1,"st":0,"t":{"a":[],"d":{"k":[{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":3,"lh":48,"ls":0,"ps":[-75.5,-80.5],"s":40,"sz":[198,121],"t":"The","tr":0},"t":0},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":3,"lh":48,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick","tr":0},"t":30},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown","tr":0},"t":60},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox","tr":0},"t":90},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps","tr":0},"t":120},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over","tr":0},"t":150},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the","tr":0},"t":180},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy","tr":0},"t":210},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy dog.","tr":0},"t":240}]},"m":{"a":{"a":0,"ix":2,"k":[0,0]},"g":1},"p":{}},"ty":5},{"ao":0,"bm":0,"ddd":0,"ind":4,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[100,75,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[122,250,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,81.333,100]}},"nm":"Gray Solid 1","op":300,"sc":"#666666","sh":150,"sr":1,"st":0,"sw":200,"ty":1},{"ao":0,"bm":0,"ddd":0,"ind":5,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[0,0,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[97.5,429.5,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,100,100]}},"nm":"txt - right","op":300,"sr":1,"st":0,"t":{"a":[],"d":{"k":[{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":3,"lh":48,"ls":0,"ps":[-75.5,-80.5],"s":40,"sz":[198,121],"t":"The","tr":0},"t":0},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":3,"lh":48,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick","tr":0},"t":30},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown","tr":0},"t":60},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox","tr":0},"t":90},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps","tr":0},"t":120},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over","tr":0},"t":150},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the","tr":0},"t":180},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy","tr":0},"t":210},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":3,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy dog.","tr":0},"t":240}]},"m":{"a":{"a":0,"ix":2,"k":[0,0]},"g":1},"p":{}},"ty":5},{"ao":0,"bm":0,"ddd":0,"ind":6,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[100,75,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[122,410,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,81.333,100]}},"nm":"Gray Solid 1","op":300,"sc":"#666666","sh":150,"sr":1,"st":0,"sw":200,"ty":1},{"ao":0,"bm":0,"ddd":0,"ind":7,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[0,0,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[353.5,109.5,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,100,100]}},"nm":"txt - left 2","op":300,"sr":1,"st":0,"t":{"a":[],"d":{"k":[{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":4,"lh":48,"ls":0,"ps":[-75.5,-80.5],"s":40,"sz":[198,121],"t":"The","tr":0},"t":0},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":4,"lh":48,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick","tr":0},"t":30},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown","tr":0},"t":60},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox","tr":0},"t":90},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps","tr":0},"t":120},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over","tr":0},"t":150},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the","tr":0},"t":180},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy","tr":0},"t":210},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":0,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy dog.","tr":0},"t":240}]},"m":{"a":{"a":0,"ix":2,"k":[0,0]},"g":1},"p":{}},"ty":5},{"ao":0,"bm":0,"ddd":0,"ind":8,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[100,75,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[378,90,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,81.333,100]}},"nm":"Gray Solid 1","op":300,"sc":"#666666","sh":150,"sr":1,"st":0,"sw":200,"ty":1},{"ao":0,"bm":0,"ddd":0,"ind":9,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[0,0,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[353.5,269.5,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,100,100]}},"nm":"txt - center 2","op":300,"sr":1,"st":0,"t":{"a":[],"d":{"k":[{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":4,"lh":48,"ls":0,"ps":[-75.5,-80.5],"s":40,"sz":[198,121],"t":"The","tr":0},"t":0},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":4,"lh":48,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick","tr":0},"t":30},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown","tr":0},"t":60},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox","tr":0},"t":90},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps","tr":0},"t":120},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over","tr":0},"t":150},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the","tr":0},"t":180},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy","tr":0},"t":210},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":2,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy dog.","tr":0},"t":240}]},"m":{"a":{"a":0,"ix":2,"k":[0,0]},"g":1},"p":{}},"ty":5},{"ao":0,"bm":0,"ddd":0,"ind":10,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[100,75,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[378,250,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,81.333,100]}},"nm":"Gray Solid 1","op":300,"sc":"#666666","sh":150,"sr":1,"st":0,"sw":200,"ty":1},{"ao":0,"bm":0,"ddd":0,"ind":11,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[0,0,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[353.5,429.5,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,100,100]}},"nm":"txt - right 2","op":300,"sr":1,"st":0,"t":{"a":[],"d":{"k":[{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":4,"lh":48,"ls":0,"ps":[-75.5,-80.5],"s":40,"sz":[198,121],"t":"The","tr":0},"t":0},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":4,"lh":48,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick","tr":0},"t":30},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown","tr":0},"t":60},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox","tr":0},"t":90},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps","tr":0},"t":120},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over","tr":0},"t":150},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the","tr":0},"t":180},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy","tr":0},"t":210},{"s":{"f":"ArialMT","fc":[0,0.971,0.039],"j":1,"xl":2,"sk_vj":4,"lh":33,"ls":0,"ps":[-78.5,-80.5],"s":40,"sz":[205,115],"t":"The quick brown fox jumps over the lazy dog.","tr":0},"t":240}]},"m":{"a":{"a":0,"ix":2,"k":[0,0]},"g":1},"p":{}},"ty":5},{"ao":0,"bm":0,"ddd":0,"ind":12,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[100,75,0]},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[378,410,0]},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,81.333,100]}},"nm":"Gray Solid 1","op":300,"sc":"#666666","sh":150,"sr":1,"st":0,"sw":200,"ty":1}],"markers":[],"nm":"resize-to-fit","op":300,"v":"5.5.5","w":500} \ No newline at end of file diff --git a/third_party/skia/resources/skottie/skottie-text-strokejoin.json b/third_party/skia/resources/skottie/skottie-text-strokejoin.json new file mode 100644 index 000000000000..0dfe81379785 --- /dev/null +++ b/third_party/skia/resources/skottie/skottie-text-strokejoin.json @@ -0,0 +1 @@ +{"v":"5.8.1","fr":60,"ip":0,"op":301,"w":500,"h":500,"nm":"stroke-linejoin","ddd":0,"assets":[],"fonts":{"list":[{"origin":0,"fPath":"","fClass":"","fFamily":"Google Sans","fWeight":"","fStyle":"Bold","fName":"GoogleSans-Bold","ascent":95.6476929411292}]},"layers":[{"ddd":0,"ind":1,"ty":5,"nm":"bevel","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,380,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,"t":{"d":{"k":[{"s":{"s":72,"f":"GoogleSans-Bold","t":"Foo Bar Baz","lj":3,"ca":0,"j":2,"tr":0,"lh":96,"ls":0,"sc":[1,0,0],"sw":20},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":5,"nm":"round","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,"t":{"d":{"k":[{"s":{"s":72,"f":"GoogleSans-Bold","t":"Foo Bar Baz","lj":2,"ca":0,"j":2,"tr":0,"lh":96,"ls":0,"sc":[1,0,0],"sw":20},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":5,"nm":"miter","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,120,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,"t":{"d":{"k":[{"s":{"s":72,"f":"GoogleSans-Bold","t":"Foo Bar Baz","lj":1,"ca":0,"j":2,"tr":0,"lh":96,"ls":0,"sc":[1,0,0],"sw":20},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":1,"nm":"Black Solid 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":[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":"#000000","ip":0,"op":301,"st":0,"bm":0}],"markers":[]} diff --git a/third_party/skia/resources/skottie/skottie-text-strokescale.json b/third_party/skia/resources/skottie/skottie-text-strokescale.json new file mode 100644 index 000000000000..b1c591ab0996 --- /dev/null +++ b/third_party/skia/resources/skottie/skottie-text-strokescale.json @@ -0,0 +1 @@ +{"assets":[],"ddd":0,"fonts":{"list":[{"ascent":78.6476929411292,"fClass":"","fFamily":"Google Sans","fName":"GoogleSans-Bold","fPath":"","fStyle":"Bold","fWeight":"","origin":0}]},"fr":60,"h":500,"ip":0,"layers":[{"ao":0,"bm":0,"ddd":0,"ind":1,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[0,0,0],"l":2},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[250,250.323,0],"l":2},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,100,100],"l":2}},"nm":"The","op":301,"sr":1,"st":0,"t":{"a":[],"d":{"k":[{"s":{"ca":0,"f":"GoogleSans-Bold","fc":[0,1,0.933],"j":0,"lh":96,"ls":0,"mc":100,"mf":10,"of":true,"ps":[-199.547210693359,-199.22380065918],"rs":1,"s":64,"sc":[1,0,0],"sw":3,"sz":[399.094421386719,398.447601318359],"t":"The","tr":0,"vj":1,"xf":500},"t":0},{"s":{"ca":0,"f":"GoogleSans-Bold","fc":[0,1,0.933],"j":0,"lh":96,"ls":0,"mc":100,"mf":10,"of":true,"ps":[-199.547210693359,-199.22380065918],"rs":1,"s":64,"sc":[1,0,0],"sw":3,"sz":[399.094421386719,398.447601318359],"t":"The quick","tr":0,"vj":1,"xf":500},"t":60},{"s":{"ca":0,"f":"GoogleSans-Bold","fc":[0,1,0.933],"j":0,"lh":96,"ls":0,"mc":100,"mf":10,"of":true,"ps":[-199.547210693359,-199.22380065918],"rs":1,"s":64,"sc":[1,0,0],"sw":3,"sz":[399.094421386719,398.447601318359],"t":"The quick brown","tr":0,"vj":1,"xf":500},"t":120},{"s":{"ca":0,"f":"GoogleSans-Bold","fc":[0,1,0.933],"j":0,"lh":96,"ls":0,"mc":100,"mf":10,"of":true,"ps":[-199.547210693359,-199.22380065918],"rs":1,"s":64,"sc":[1,0,0],"sw":3,"sz":[399.094421386719,398.447601318359],"t":"The quick brown fox","tr":0,"vj":1,"xf":500},"t":180},{"s":{"ca":0,"f":"GoogleSans-Bold","fc":[0,1,0.933],"j":0,"lh":96,"ls":0,"mc":100,"mf":10,"of":true,"ps":[-199.547210693359,-199.22380065918],"rs":1,"s":64,"sc":[1,0,0],"sw":3,"sz":[399.094421386719,398.447601318359],"t":"The quick brown fox can’t jump.","tr":0,"vj":1,"xf":500},"t":240}]},"m":{"a":{"a":0,"ix":2,"k":[0,0]},"g":1},"p":{}},"ty":5},{"ao":0,"bm":0,"ddd":0,"ind":2,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[0,0,0],"l":2},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[250,250,0],"l":2},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,100,100],"l":2}},"nm":"Shape Layer 1","op":301,"shapes":[{"d":1,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","p":{"a":0,"ix":3,"k":[0,0]},"r":{"a":0,"ix":4,"k":0},"s":{"a":0,"ix":2,"k":[400,400]},"ty":"rc"},{"bm":0,"c":{"a":0,"ix":4,"k":[0.501960813999,0.501960813999,0.501960813999,1]},"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","o":{"a":0,"ix":5,"k":100},"r":1,"ty":"fl"}],"sr":1,"st":0,"ty":4},{"ao":0,"bm":0,"ddd":0,"ind":3,"ip":0,"ks":{"a":{"a":0,"ix":1,"k":[256,256,0],"l":2},"o":{"a":0,"ix":11,"k":100},"p":{"a":0,"ix":2,"k":[250,250,0],"l":2},"r":{"a":0,"ix":10,"k":0},"s":{"a":0,"ix":6,"k":[100,100,100],"l":2}},"nm":"Black Solid 1","op":301,"sc":"#000000","sh":512,"sr":1,"st":0,"sw":512,"ty":1}],"markers":[],"nm":"stroke-scaling","op":301,"v":"5.8.1","w":500} \ No newline at end of file diff --git a/third_party/skia/resources/skottie/skottie-text-whitespace-align.json b/third_party/skia/resources/skottie/skottie-text-whitespace-align.json new file mode 100644 index 000000000000..90ac422ac173 --- /dev/null +++ b/third_party/skia/resources/skottie/skottie-text-whitespace-align.json @@ -0,0 +1 @@ +{"v":"5.8.3","fr":60,"ip":0,"op":301,"w":500,"h":500,"nm":"whitespace-align","ddd":0,"assets":[],"fonts":{"list":[{"origin":0,"fPath":"","fClass":"","fFamily":"Google Sans","fWeight":"","fStyle":"Bold","fName":"GoogleSans-Bold","ascent":75.6476929411292}]},"layers":[{"ddd":0,"ind":1,"ty":5,"nm":"L-noWS","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100,100,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,"t":{"d":{"k":[{"s":{"sz":[212.160446166992,91.8499298095703],"ps":[-83.1177368164062,-51.7464408874512],"s":38,"f":"GoogleSans-Bold","t":"Foo Bar Baz","ca":0,"j":0,"tr":0,"lh":45.6000022888184,"ls":0,"fc":[0,0.522,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"box","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[123.933,93.532,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[215,94.61,100],"ix":6,"l":2}},"ao":0,"shapes":[{"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":{"a":0,"k":[1,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.709803938866,0.827450990677,0.980392158031,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":301,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":5,"nm":"C-noWS","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100,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,"t":{"d":{"k":[{"s":{"sz":[212.160446166992,91.8499298095703],"ps":[-83.1177368164062,-51.7464408874512],"s":38,"f":"GoogleSans-Bold","t":"Foo Bar Baz","ca":0,"j":2,"tr":0,"lh":45.6000022888184,"ls":0,"fc":[0,0.522,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"box 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[123.933,243.532,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[215,94.61,100],"ix":6,"l":2}},"ao":0,"shapes":[{"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":{"a":0,"k":[1,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.709803938866,0.827450990677,0.980392158031,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":301,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":5,"nm":"R-noWS","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100,400,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,"t":{"d":{"k":[{"s":{"sz":[212.160446166992,91.8499298095703],"ps":[-83.1177368164062,-51.7464408874512],"s":38,"f":"GoogleSans-Bold","t":"Foo Bar Baz","ca":0,"j":1,"tr":0,"lh":45.6000022888184,"ls":0,"fc":[0,0.522,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"box 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[123.933,393.532,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[215,94.61,100],"ix":6,"l":2}},"ao":0,"shapes":[{"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":{"a":0,"k":[1,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.709803938866,0.827450990677,0.980392158031,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":301,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":5,"nm":"L-WS","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[350,100.5,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,"t":{"d":{"k":[{"s":{"sz":[212.160446166992,91.8499298095703],"ps":[-83.1177368164062,-51.7464408874512],"s":38,"f":"GoogleSans-Bold","t":" Foo Bar Baz ","ca":0,"j":0,"tr":0,"lh":45.6000022888184,"ls":0,"fc":[0,0.522,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"box 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[373.933,93.532,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[215,94.61,100],"ix":6,"l":2}},"ao":0,"shapes":[{"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":{"a":0,"k":[1,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.709803938866,0.827450990677,0.980392158031,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":301,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":5,"nm":"C-WS","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[350,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,"t":{"d":{"k":[{"s":{"sz":[212.160446166992,91.8499298095703],"ps":[-83.1177368164062,-51.7464408874512],"s":38,"f":"GoogleSans-Bold","t":" Foo Bar Baz ","ca":0,"j":2,"tr":0,"lh":45.6000022888184,"ls":0,"fc":[0,0.522,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"box 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[373.933,243.532,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[215,94.61,100],"ix":6,"l":2}},"ao":0,"shapes":[{"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":{"a":0,"k":[1,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.709803938866,0.827450990677,0.980392158031,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":301,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":5,"nm":"R-WS","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[350,400,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,"t":{"d":{"k":[{"s":{"sz":[212.160446166992,91.8499298095703],"ps":[-83.1177368164062,-51.7464408874512],"s":38,"f":"GoogleSans-Bold","t":" Foo Bar Baz ","ca":0,"j":1,"tr":0,"lh":45.6000022888184,"ls":0,"fc":[0,0.522,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"box 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[373.933,393.532,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[215,94.61,100],"ix":6,"l":2}},"ao":0,"shapes":[{"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":{"a":0,"k":[1,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.709803938866,0.827450990677,0.980392158031,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":301,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/third_party/skia/resources/skottie/skottie-textpath-tracking.json b/third_party/skia/resources/skottie/skottie-textpath-tracking.json new file mode 100644 index 000000000000..d41bb22fdbfd --- /dev/null +++ b/third_party/skia/resources/skottie/skottie-textpath-tracking.json @@ -0,0 +1 @@ +{"v":"5.8.3","fr":60,"ip":0,"op":301,"w":500,"h":500,"nm":"tpath tracking","ddd":0,"assets":[],"fonts":{"list":[{"origin":0,"fPath":"","fClass":"","fFamily":"Google Sans","fWeight":"","fStyle":"Bold","fName":"GoogleSans-Bold","ascent":75.6476929411292}]},"layers":[{"ddd":0,"ind":1,"ty":5,"nm":"Foo Bar Baz","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,"hasMask":true,"masksProperties":[{"inv":false,"mode":"n","pt":{"a":0,"k":{"i":[[66.274,0],[0,-66.274],[-66.274,0],[0,66.274]],"o":[[-66.274,0],[0,66.274],[66.274,0],[0,-66.274]],"v":[[0,-120],[-120,0],[0,120],[120,0]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"t":{"d":{"k":[{"s":{"s":72,"f":"GoogleSans-Bold","t":"Foo Bar Baz","ca":0,"j":2,"tr":0,"lh":96,"ls":0,"fc":[0,0.522,0]},"t":0}]},"p":{"m":0,"f":{"a":0,"k":377,"ix":5},"l":{"a":0,"k":0,"ix":6},"a":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":1,"ix":3},"r":{"a":0,"k":1,"ix":2}},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[{"nm":"Animator 1","s":{"t":0,"xe":{"a":0,"k":0,"ix":7},"ne":{"a":0,"k":0,"ix":8},"a":{"a":0,"k":100,"ix":4},"b":1,"rn":0,"sh":1,"sm":{"a":0,"k":100,"ix":6},"r":1},"a":{"t":{"a":1,"k":[{"i":{"x":[0.336],"y":[0.999]},"o":{"x":[0.669],"y":[0.001]},"t":0,"s":[-35]},{"i":{"x":[0.336],"y":[0.997]},"o":{"x":[0.665],"y":[-0.001]},"t":150,"s":[50]},{"t":300,"s":[-35]}],"ix":89}}}]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":2,"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":[{"d":1,"ty":"el","s":{"a":0,"k":[240,240],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":1,"nm":"Medium Yellow Solid 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":[600,600,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"sw":1200,"sh":1200,"sc":"#ffffbd","ip":0,"op":301,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/third_party/skia/resources/sksl/errors/ArgumentCountMismatch.sksl b/third_party/skia/resources/sksl/errors/ArgumentCountMismatch.rts similarity index 88% rename from third_party/skia/resources/sksl/errors/ArgumentCountMismatch.sksl rename to third_party/skia/resources/sksl/errors/ArgumentCountMismatch.rts index 9034e975f0d1..d4aa858fbe45 100644 --- a/third_party/skia/resources/sksl/errors/ArgumentCountMismatch.sksl +++ b/third_party/skia/resources/sksl/errors/ArgumentCountMismatch.rts @@ -2,7 +2,7 @@ float foo(float x) { return x * x; } -void main() { +void caller() { float x = foo(1, 2); } diff --git a/third_party/skia/resources/sksl/errors/ArgumentMismatch.sksl b/third_party/skia/resources/sksl/errors/ArgumentMismatch.rts similarity index 87% rename from third_party/skia/resources/sksl/errors/ArgumentMismatch.sksl rename to third_party/skia/resources/sksl/errors/ArgumentMismatch.rts index 6a000ccaace3..c11d451b582f 100644 --- a/third_party/skia/resources/sksl/errors/ArgumentMismatch.sksl +++ b/third_party/skia/resources/sksl/errors/ArgumentMismatch.rts @@ -2,7 +2,7 @@ float foo(float x) { return x * x; } -void main() { +void caller() { float x = foo(true); } diff --git a/third_party/skia/resources/sksl/errors/ArgumentModifiers.sksl b/third_party/skia/resources/sksl/errors/ArgumentModifiers.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArgumentModifiers.sksl rename to third_party/skia/resources/sksl/errors/ArgumentModifiers.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayIndexOutOfRange.sksl b/third_party/skia/resources/sksl/errors/ArrayIndexOutOfRange.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayIndexOutOfRange.sksl rename to third_party/skia/resources/sksl/errors/ArrayIndexOutOfRange.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayNegation.sksl b/third_party/skia/resources/sksl/errors/ArrayNegation.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayNegation.sksl rename to third_party/skia/resources/sksl/errors/ArrayNegation.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayOfInvalidSize.sksl b/third_party/skia/resources/sksl/errors/ArrayOfInvalidSize.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayOfInvalidSize.sksl rename to third_party/skia/resources/sksl/errors/ArrayOfInvalidSize.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayOfVoid.sksl b/third_party/skia/resources/sksl/errors/ArrayOfVoid.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayOfVoid.sksl rename to third_party/skia/resources/sksl/errors/ArrayOfVoid.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayPlus.sksl b/third_party/skia/resources/sksl/errors/ArrayPlus.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayPlus.sksl rename to third_party/skia/resources/sksl/errors/ArrayPlus.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayReturnTypes.sksl b/third_party/skia/resources/sksl/errors/ArrayReturnTypes.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayReturnTypes.sksl rename to third_party/skia/resources/sksl/errors/ArrayReturnTypes.rts diff --git a/third_party/skia/resources/sksl/errors/ArraySplitDimensions.sksl b/third_party/skia/resources/sksl/errors/ArraySplitDimensions.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArraySplitDimensions.sksl rename to third_party/skia/resources/sksl/errors/ArraySplitDimensions.rts diff --git a/third_party/skia/resources/sksl/errors/ArraySplitDimensionsInFuncBody.sksl b/third_party/skia/resources/sksl/errors/ArraySplitDimensionsInFuncBody.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArraySplitDimensionsInFuncBody.sksl rename to third_party/skia/resources/sksl/errors/ArraySplitDimensionsInFuncBody.rts diff --git a/third_party/skia/resources/sksl/errors/ArraySplitDimensionsInFuncDecl.sksl b/third_party/skia/resources/sksl/errors/ArraySplitDimensionsInFuncDecl.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArraySplitDimensionsInFuncDecl.sksl rename to third_party/skia/resources/sksl/errors/ArraySplitDimensionsInFuncDecl.rts diff --git a/third_party/skia/resources/sksl/errors/ArraySplitDimensionsInStruct.sksl b/third_party/skia/resources/sksl/errors/ArraySplitDimensionsInStruct.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArraySplitDimensionsInStruct.sksl rename to third_party/skia/resources/sksl/errors/ArraySplitDimensionsInStruct.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayTooManyDimensions.sksl b/third_party/skia/resources/sksl/errors/ArrayTooManyDimensions.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayTooManyDimensions.sksl rename to third_party/skia/resources/sksl/errors/ArrayTooManyDimensions.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInFuncBody.sksl b/third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInFuncBody.rts similarity index 64% rename from third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInFuncBody.sksl rename to third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInFuncBody.rts index 8cd0683200c4..f2595287fe64 100644 --- a/third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInFuncBody.sksl +++ b/third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInFuncBody.rts @@ -1,4 +1,4 @@ -void main() { float x[2][2]; } +void func() { float x[2][2]; } /*%%* multi-dimensional arrays are not supported diff --git a/third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInFuncDecl.sksl b/third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInFuncDecl.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInFuncDecl.sksl rename to third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInFuncDecl.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInStruct.sksl b/third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInStruct.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInStruct.sksl rename to third_party/skia/resources/sksl/errors/ArrayTooManyDimensionsInStruct.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensions.sksl b/third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensions.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensions.sksl rename to third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensions.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.sksl b/third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.rts similarity index 64% rename from third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.sksl rename to third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.rts index a609cefebd81..7c9901fe5e3c 100644 --- a/third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.sksl +++ b/third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.rts @@ -1,4 +1,4 @@ -void main() { float[2][2] x; } +void func() { float[2][2] x; } /*%%* multi-dimensional arrays are not supported diff --git a/third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInFuncDecl.sksl b/third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInFuncDecl.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInFuncDecl.sksl rename to third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInFuncDecl.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInStruct.sksl b/third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInStruct.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInStruct.sksl rename to third_party/skia/resources/sksl/errors/ArrayTypeTooManyDimensionsInStruct.rts diff --git a/third_party/skia/resources/sksl/errors/ArrayUnspecifiedDimensions.sksl b/third_party/skia/resources/sksl/errors/ArrayUnspecifiedDimensions.rts similarity index 72% rename from third_party/skia/resources/sksl/errors/ArrayUnspecifiedDimensions.sksl rename to third_party/skia/resources/sksl/errors/ArrayUnspecifiedDimensions.rts index 16b84d144259..e87d22a12c4e 100644 --- a/third_party/skia/resources/sksl/errors/ArrayUnspecifiedDimensions.sksl +++ b/third_party/skia/resources/sksl/errors/ArrayUnspecifiedDimensions.rts @@ -1,6 +1,6 @@ -in int arrUnsized[]; -in int arrFloat[1.]; -in int arrBool[true]; +int arrUnsized[]; +int arrFloat[1.]; +int arrBool[true]; int unsized_in_expression() { return int[](0)[0]; } diff --git a/third_party/skia/resources/sksl/errors/AssignmentTypeMismatch.sksl b/third_party/skia/resources/sksl/errors/AssignmentTypeMismatch.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/AssignmentTypeMismatch.sksl rename to third_party/skia/resources/sksl/errors/AssignmentTypeMismatch.rts diff --git a/third_party/skia/resources/sksl/errors/BadConstInitializers.sksl b/third_party/skia/resources/sksl/errors/BadConstInitializers.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/BadConstInitializers.sksl rename to third_party/skia/resources/sksl/errors/BadConstInitializers.rts diff --git a/third_party/skia/resources/sksl/errors/BadFieldAccess.sksl b/third_party/skia/resources/sksl/errors/BadFieldAccess.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/BadFieldAccess.sksl rename to third_party/skia/resources/sksl/errors/BadFieldAccess.rts diff --git a/third_party/skia/resources/sksl/errors/BadIndex.sksl b/third_party/skia/resources/sksl/errors/BadIndex.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/BadIndex.sksl rename to third_party/skia/resources/sksl/errors/BadIndex.rts diff --git a/third_party/skia/resources/sksl/errors/BadOctal.sksl b/third_party/skia/resources/sksl/errors/BadOctal.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/BadOctal.sksl rename to third_party/skia/resources/sksl/errors/BadOctal.rts diff --git a/third_party/skia/resources/sksl/errors/BinaryInvalidType.sksl b/third_party/skia/resources/sksl/errors/BinaryInvalidType.rts similarity index 75% rename from third_party/skia/resources/sksl/errors/BinaryInvalidType.sksl rename to third_party/skia/resources/sksl/errors/BinaryInvalidType.rts index 86b4a48a2d40..627bce861989 100644 --- a/third_party/skia/resources/sksl/errors/BinaryInvalidType.sksl +++ b/third_party/skia/resources/sksl/errors/BinaryInvalidType.rts @@ -26,18 +26,18 @@ void structBoth() { float x = s * s; } -sampler2D smp; +uniform shader shad; -void samplerLeft() { - float x = smp * 2; +void shaderLeft() { + float x = shad * 2; } -void samplerRight() { - float x = 2 * smp; +void shaderRight() { + float x = 2 * shad; } -void samplerBoth() { - float x = smp * smp; +void shaderBoth() { + float x = shad * shad; } int array[1]; @@ -61,9 +61,9 @@ type mismatch: '*' cannot operate on '', '' type mismatch: '*' cannot operate on 'S', 'int' type mismatch: '*' cannot operate on 'int', 'S' type mismatch: '*' cannot operate on 'S', 'S' -type mismatch: '*' cannot operate on 'sampler2D', 'int' -type mismatch: '*' cannot operate on 'int', 'sampler2D' -type mismatch: '*' cannot operate on 'sampler2D', 'sampler2D' +type mismatch: '*' cannot operate on 'shader', 'int' +type mismatch: '*' cannot operate on 'int', 'shader' +type mismatch: '*' cannot operate on 'shader', 'shader' type mismatch: '*' cannot operate on 'int[1]', 'int' type mismatch: '*' cannot operate on 'int', 'int[1]' type mismatch: '*' cannot operate on 'int[1]', 'int[1]' diff --git a/third_party/skia/resources/sksl/errors/BinaryTypeMismatch.rts b/third_party/skia/resources/sksl/errors/BinaryTypeMismatch.rts new file mode 100644 index 000000000000..10e02d2b8038 --- /dev/null +++ b/third_party/skia/resources/sksl/errors/BinaryTypeMismatch.rts @@ -0,0 +1,21 @@ +void int_times_bool() { float x = 3 * true; } +void int_or_float() { bool x = 1 || 2.0; } +void float2_eq_int() { bool x = float2(0) == 0; } +void float2_neq_int() { bool x = float2(0) != 0; } +void int_logicalxor_int() { bool x = 8 ^^ 6; } + +void float2_lt_float2() { bool x = float2(0) < float2(1); } +void float2_lt_float() { bool x = float2(0) < 0.0; } +void float_lt_float2() { bool x = 0.0 < float2(0); } + + +/*%%* +type mismatch: '*' cannot operate on 'int', 'bool' +type mismatch: '||' cannot operate on 'int', 'float' +type mismatch: '==' cannot operate on 'float2', 'int' +type mismatch: '!=' cannot operate on 'float2', 'int' +type mismatch: '^^' cannot operate on 'int', 'int' +type mismatch: '<' cannot operate on 'float2', 'float2' +type mismatch: '<' cannot operate on 'float2', 'float' +type mismatch: '<' cannot operate on 'float', 'float2' +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/BinaryTypeMismatch.sksl b/third_party/skia/resources/sksl/errors/BinaryTypeMismatch.sksl deleted file mode 100644 index 4a3eb5525366..000000000000 --- a/third_party/skia/resources/sksl/errors/BinaryTypeMismatch.sksl +++ /dev/null @@ -1,18 +0,0 @@ -void int_times_bool() { float x = 3 * true; } -void int_or_float() { bool x = 1 || 2.0; } -void float2_eq_int() { bool x = float2(0) == 0; } -void float2_neq_int() { bool x = float2(0) != 0; } - -void float2_lt_float2() { bool x = float2(0) < float2(1); } -void float2_lt_float() { bool x = float2(0) < 0.0; } -void float_lt_float2() { bool x = 0.0 < float2(0); } - -/*%%* -type mismatch: '*' cannot operate on 'int', 'bool' -type mismatch: '||' cannot operate on 'int', 'float' -type mismatch: '==' cannot operate on 'float2', 'int' -type mismatch: '!=' cannot operate on 'float2', 'int' -type mismatch: '<' cannot operate on 'float2', 'float2' -type mismatch: '<' cannot operate on 'float2', 'float' -type mismatch: '<' cannot operate on 'float', 'float2' -*%%*/ diff --git a/third_party/skia/resources/sksl/errors/BitShiftFloat.sksl b/third_party/skia/resources/sksl/errors/BitShiftFloat.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/BitShiftFloat.sksl rename to third_party/skia/resources/sksl/errors/BitShiftFloat.rts diff --git a/third_party/skia/resources/sksl/errors/BitShiftFloatMatrix.sksl b/third_party/skia/resources/sksl/errors/BitShiftFloatMatrix.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/BitShiftFloatMatrix.sksl rename to third_party/skia/resources/sksl/errors/BitShiftFloatMatrix.rts diff --git a/third_party/skia/resources/sksl/errors/BitShiftFloatVector.sksl b/third_party/skia/resources/sksl/errors/BitShiftFloatVector.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/BitShiftFloatVector.sksl rename to third_party/skia/resources/sksl/errors/BitShiftFloatVector.rts diff --git a/third_party/skia/resources/sksl/errors/BreakOutsideLoop.rts b/third_party/skia/resources/sksl/errors/BreakOutsideLoop.rts new file mode 100644 index 000000000000..8dbbb92ebf20 --- /dev/null +++ b/third_party/skia/resources/sksl/errors/BreakOutsideLoop.rts @@ -0,0 +1,8 @@ +void outside_loop() { + for (int x=0; x<10; ++x) {} + if (true) break; +} + +/*%%* +break statement must be inside a loop or switch +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/BreakOutsideLoop.sksl b/third_party/skia/resources/sksl/errors/BreakOutsideLoop.sksl deleted file mode 100644 index 4da67ccc8864..000000000000 --- a/third_party/skia/resources/sksl/errors/BreakOutsideLoop.sksl +++ /dev/null @@ -1,5 +0,0 @@ -void outside_while() { while(true) {} if (true) break; } - -/*%%* -break statement must be inside a loop or switch -*%%*/ diff --git a/third_party/skia/resources/sksl/errors/CallNonFunction.sksl b/third_party/skia/resources/sksl/errors/CallNonFunction.rts similarity index 80% rename from third_party/skia/resources/sksl/errors/CallNonFunction.sksl rename to third_party/skia/resources/sksl/errors/CallNonFunction.rts index 0ce09c60222e..0d4af2cbe65a 100644 --- a/third_party/skia/resources/sksl/errors/CallNonFunction.sksl +++ b/third_party/skia/resources/sksl/errors/CallNonFunction.rts @@ -1,4 +1,4 @@ -void main() { +void func() { float x = 3; x(); } diff --git a/third_party/skia/resources/sksl/errors/ComparisonDimensional.sksl b/third_party/skia/resources/sksl/errors/ComparisonDimensional.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ComparisonDimensional.sksl rename to third_party/skia/resources/sksl/errors/ComparisonDimensional.rts diff --git a/third_party/skia/resources/sksl/errors/ConstructorArgumentCount.sksl b/third_party/skia/resources/sksl/errors/ConstructorArgumentCount.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ConstructorArgumentCount.sksl rename to third_party/skia/resources/sksl/errors/ConstructorArgumentCount.rts diff --git a/third_party/skia/resources/sksl/errors/ConstructorTypeMismatch.sksl b/third_party/skia/resources/sksl/errors/ConstructorTypeMismatch.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ConstructorTypeMismatch.sksl rename to third_party/skia/resources/sksl/errors/ConstructorTypeMismatch.rts diff --git a/third_party/skia/resources/sksl/errors/ContinueOutsideLoop.rts b/third_party/skia/resources/sksl/errors/ContinueOutsideLoop.rts new file mode 100644 index 000000000000..6e557fa9ccc8 --- /dev/null +++ b/third_party/skia/resources/sksl/errors/ContinueOutsideLoop.rts @@ -0,0 +1,15 @@ +void outside_for() { + for (int x=0; x<10; ++x) {} + continue; +} + +void inside_switch() { + switch (1) { + default: continue; + } +} + +/*%%* +continue statement must be inside a loop +continue statement must be inside a loop +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/ContinueOutsideLoop.sksl b/third_party/skia/resources/sksl/errors/ContinueOutsideLoop.sksl deleted file mode 100644 index e4b98f2a7c4c..000000000000 --- a/third_party/skia/resources/sksl/errors/ContinueOutsideLoop.sksl +++ /dev/null @@ -1,7 +0,0 @@ -void outside_for() { for (;;) {} continue; } -void inside_switch() { switch (1) { default: continue; } } - -/*%%* -continue statement must be inside a loop -continue statement must be inside a loop -*%%*/ diff --git a/third_party/skia/resources/sksl/errors/DivideByZero.sksl b/third_party/skia/resources/sksl/errors/DivideByZero.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/DivideByZero.sksl rename to third_party/skia/resources/sksl/errors/DivideByZero.rts diff --git a/third_party/skia/resources/sksl/errors/DuplicateFunction.rts b/third_party/skia/resources/sksl/errors/DuplicateFunction.rts new file mode 100644 index 000000000000..1acf05c6068f --- /dev/null +++ b/third_party/skia/resources/sksl/errors/DuplicateFunction.rts @@ -0,0 +1,6 @@ +void func() {} +void func() {} + +/*%%* +duplicate definition of void func() +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/DuplicateFunction.sksl b/third_party/skia/resources/sksl/errors/DuplicateFunction.sksl deleted file mode 100644 index 4125e2cad100..000000000000 --- a/third_party/skia/resources/sksl/errors/DuplicateFunction.sksl +++ /dev/null @@ -1,6 +0,0 @@ -void main() {} -void main() {} - -/*%%* -duplicate definition of void main() -*%%*/ diff --git a/third_party/skia/resources/sksl/errors/DuplicateSymbol.sksl b/third_party/skia/resources/sksl/errors/DuplicateSymbol.rts similarity index 64% rename from third_party/skia/resources/sksl/errors/DuplicateSymbol.sksl rename to third_party/skia/resources/sksl/errors/DuplicateSymbol.rts index 8785fcc646e7..ddf82b178ddf 100644 --- a/third_party/skia/resources/sksl/errors/DuplicateSymbol.sksl +++ b/third_party/skia/resources/sksl/errors/DuplicateSymbol.rts @@ -1,13 +1,13 @@ int x; int x; -int main; -void main() { +int func; +void func() { int y,y; } /*%%* symbol 'x' was already defined -symbol 'main' was already defined +symbol 'func' was already defined symbol 'y' was already defined *%%*/ diff --git a/third_party/skia/resources/sksl/errors/EmptyArray.sksl b/third_party/skia/resources/sksl/errors/EmptyArray.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/EmptyArray.sksl rename to third_party/skia/resources/sksl/errors/EmptyArray.rts diff --git a/third_party/skia/resources/sksl/errors/EmptyStruct.sksl b/third_party/skia/resources/sksl/errors/EmptyStruct.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/EmptyStruct.sksl rename to third_party/skia/resources/sksl/errors/EmptyStruct.rts diff --git a/third_party/skia/resources/sksl/errors/ErrorsInDeadCode.sksl b/third_party/skia/resources/sksl/errors/ErrorsInDeadCode.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ErrorsInDeadCode.sksl rename to third_party/skia/resources/sksl/errors/ErrorsInDeadCode.rts diff --git a/third_party/skia/resources/sksl/errors/FloatRemainder.sksl b/third_party/skia/resources/sksl/errors/FloatRemainder.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/FloatRemainder.sksl rename to third_party/skia/resources/sksl/errors/FloatRemainder.rts diff --git a/third_party/skia/resources/sksl/errors/ForTypeMismatch.sksl b/third_party/skia/resources/sksl/errors/ForTypeMismatch.rts similarity index 84% rename from third_party/skia/resources/sksl/errors/ForTypeMismatch.sksl rename to third_party/skia/resources/sksl/errors/ForTypeMismatch.rts index 590027e57ff0..82ea19a41f26 100644 --- a/third_party/skia/resources/sksl/errors/ForTypeMismatch.sksl +++ b/third_party/skia/resources/sksl/errors/ForTypeMismatch.rts @@ -1,4 +1,4 @@ -void main() { +void func() { for (int x = 0; x; x++) {} } diff --git a/third_party/skia/resources/sksl/errors/FunctionParameterOfVoid.sksl b/third_party/skia/resources/sksl/errors/FunctionParameterOfVoid.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/FunctionParameterOfVoid.sksl rename to third_party/skia/resources/sksl/errors/FunctionParameterOfVoid.rts diff --git a/third_party/skia/resources/sksl/errors/GenericArgumentMismatch.sksl b/third_party/skia/resources/sksl/errors/GenericArgumentMismatch.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/GenericArgumentMismatch.sksl rename to third_party/skia/resources/sksl/errors/GenericArgumentMismatch.rts diff --git a/third_party/skia/resources/sksl/errors/IfTypeMismatch.sksl b/third_party/skia/resources/sksl/errors/IfTypeMismatch.rts similarity index 81% rename from third_party/skia/resources/sksl/errors/IfTypeMismatch.sksl rename to third_party/skia/resources/sksl/errors/IfTypeMismatch.rts index b612fa99baf8..0dc454084c63 100644 --- a/third_party/skia/resources/sksl/errors/IfTypeMismatch.sksl +++ b/third_party/skia/resources/sksl/errors/IfTypeMismatch.rts @@ -1,4 +1,4 @@ -void main() { +void func() { if (3) {} } diff --git a/third_party/skia/resources/sksl/errors/IncompleteExpression.sksl b/third_party/skia/resources/sksl/errors/IncompleteExpression.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/IncompleteExpression.sksl rename to third_party/skia/resources/sksl/errors/IncompleteExpression.rts diff --git a/third_party/skia/resources/sksl/errors/IncompleteFunctionCall.sksl b/third_party/skia/resources/sksl/errors/IncompleteFunctionCall.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/IncompleteFunctionCall.sksl rename to third_party/skia/resources/sksl/errors/IncompleteFunctionCall.rts diff --git a/third_party/skia/resources/sksl/errors/InterfaceBlockPrivateType.sksl b/third_party/skia/resources/sksl/errors/InterfaceBlockPrivateType.sksl new file mode 100644 index 000000000000..892a947873aa --- /dev/null +++ b/third_party/skia/resources/sksl/errors/InterfaceBlockPrivateType.sksl @@ -0,0 +1,7 @@ +InterfaceBlock { + $mat g; +}; + +/*%%* +type '$mat' is private +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/InvalidAssignment.sksl b/third_party/skia/resources/sksl/errors/InvalidAssignment.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/InvalidAssignment.sksl rename to third_party/skia/resources/sksl/errors/InvalidAssignment.rts diff --git a/third_party/skia/resources/sksl/errors/InvalidOutParams.sksl b/third_party/skia/resources/sksl/errors/InvalidOutParams.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/InvalidOutParams.sksl rename to third_party/skia/resources/sksl/errors/InvalidOutParams.rts diff --git a/third_party/skia/resources/sksl/errors/InvalidToken.sksl b/third_party/skia/resources/sksl/errors/InvalidToken.rts similarity index 68% rename from third_party/skia/resources/sksl/errors/InvalidToken.sksl rename to third_party/skia/resources/sksl/errors/InvalidToken.rts index 5ec472d9d972..27e4404db7f1 100644 --- a/third_party/skia/resources/sksl/errors/InvalidToken.sksl +++ b/third_party/skia/resources/sksl/errors/InvalidToken.rts @@ -1,5 +1,5 @@ 💩 -void main() {} +void func() {} /*%%* invalid token diff --git a/third_party/skia/resources/sksl/errors/InvalidUnary.sksl b/third_party/skia/resources/sksl/errors/InvalidUnary.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/InvalidUnary.sksl rename to third_party/skia/resources/sksl/errors/InvalidUnary.rts diff --git a/third_party/skia/resources/sksl/errors/MatrixIndexOutOfRange.rts b/third_party/skia/resources/sksl/errors/MatrixIndexOutOfRange.rts new file mode 100644 index 000000000000..0c28aa04dc3d --- /dev/null +++ b/third_party/skia/resources/sksl/errors/MatrixIndexOutOfRange.rts @@ -0,0 +1,26 @@ +void half3x3_neg1() { half3x3 m; half3 v = m[-1]; } +void half3x3_0() { half3x3 m; half3 v = m[0]; } +void half3x3_1() { half3x3 m; half3 v = m[1]; } +void half3x3_2() { half3x3 m; half3 v = m[2]; } +void half3x3_3() { half3x3 m; half3 v = m[3]; } +void half3x3_4() { half3x3 m; half3 v = m[4]; } +void half3x3_huge() { half3x3 m; half3 v = m[1000000000]; } + +void half3x3_neg1_constidx() { half3x3 m; const int INDEX = -1; half3 v = m[INDEX]; } +void half3x3_0_constidx() { half3x3 m; const int INDEX = 0; half3 v = m[INDEX]; } +void half3x3_1_constidx() { half3x3 m; const int INDEX = 1; half3 v = m[INDEX]; } +void half3x3_2_constidx() { half3x3 m; const int INDEX = 2; half3 v = m[INDEX]; } +void half3x3_3_constidx() { half3x3 m; const int INDEX = 3; half3 v = m[INDEX]; } +void half3x3_4_constidx() { half3x3 m; const int INDEX = 4; half3 v = m[INDEX]; } +void half3x3_huge_constidx() { half3x3 m; const int INDEX = 1000000000; half3 v = m[INDEX]; } + +/*%%* +index -1 out of range for 'half3x3' +index 3 out of range for 'half3x3' +index 4 out of range for 'half3x3' +index 1000000000 out of range for 'half3x3' +index -1 out of range for 'half3x3' +index 3 out of range for 'half3x3' +index 4 out of range for 'half3x3' +index 1000000000 out of range for 'half3x3' +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/MatrixIndexOutOfRange.sksl b/third_party/skia/resources/sksl/errors/MatrixIndexOutOfRange.sksl deleted file mode 100644 index ecdfc6e934be..000000000000 --- a/third_party/skia/resources/sksl/errors/MatrixIndexOutOfRange.sksl +++ /dev/null @@ -1,50 +0,0 @@ -void half2x4_neg1() { half2x4 m; half4 v = m[-1]; } -void half2x4_0() { half2x4 m; half4 v = m[0]; } -void half2x4_1() { half2x4 m; half4 v = m[1]; } -void half2x4_2() { half2x4 m; half4 v = m[2]; } -void half2x4_3() { half2x4 m; half4 v = m[3]; } -void half2x4_4() { half2x4 m; half4 v = m[4]; } -void half2x4_huge() { half2x4 m; half4 v = m[1000000000]; } - -void half3x3_neg1() { half3x3 m; half3 v = m[-1]; } -void half3x3_0() { half3x3 m; half3 v = m[0]; } -void half3x3_1() { half3x3 m; half3 v = m[1]; } -void half3x3_2() { half3x3 m; half3 v = m[2]; } -void half3x3_3() { half3x3 m; half3 v = m[3]; } -void half3x3_4() { half3x3 m; half3 v = m[4]; } -void half3x3_huge() { half3x3 m; half3 v = m[1000000000]; } - -void half4x2_neg1() { half4x2 m; half2 v = m[-1]; } -void half4x2_0() { half4x2 m; half2 v = m[0]; } -void half4x2_1() { half4x2 m; half2 v = m[1]; } -void half4x2_2() { half4x2 m; half2 v = m[2]; } -void half4x2_3() { half4x2 m; half2 v = m[3]; } -void half4x2_4() { half4x2 m; half2 v = m[4]; } -void half4x2_huge() { half4x2 m; half2 v = m[1000000000]; } - -void half4_neg1_constidx() { half3x3 m; const int INDEX = -1; half3 v = m[INDEX]; } -void half4_0_constidx() { half3x3 m; const int INDEX = 0; half3 v = m[INDEX]; } -void half4_1_constidx() { half3x3 m; const int INDEX = 1; half3 v = m[INDEX]; } -void half4_2_constidx() { half3x3 m; const int INDEX = 2; half3 v = m[INDEX]; } -void half4_3_constidx() { half3x3 m; const int INDEX = 3; half3 v = m[INDEX]; } -void half4_4_constidx() { half3x3 m; const int INDEX = 4; half3 v = m[INDEX]; } -void half4_huge_constidx() { half3x3 m; const int INDEX = 1000000000; half3 v = m[INDEX]; } - -/*%%* -index -1 out of range for 'half2x4' -index 2 out of range for 'half2x4' -index 3 out of range for 'half2x4' -index 4 out of range for 'half2x4' -index 1000000000 out of range for 'half2x4' -index -1 out of range for 'half3x3' -index 3 out of range for 'half3x3' -index 4 out of range for 'half3x3' -index 1000000000 out of range for 'half3x3' -index -1 out of range for 'half4x2' -index 4 out of range for 'half4x2' -index 1000000000 out of range for 'half4x2' -index -1 out of range for 'half3x3' -index 3 out of range for 'half3x3' -index 4 out of range for 'half3x3' -index 1000000000 out of range for 'half3x3' -*%%*/ diff --git a/third_party/skia/resources/sksl/errors/MatrixIndexOutOfRangeES3.sksl b/third_party/skia/resources/sksl/errors/MatrixIndexOutOfRangeES3.sksl new file mode 100644 index 000000000000..da8a0910e66c --- /dev/null +++ b/third_party/skia/resources/sksl/errors/MatrixIndexOutOfRangeES3.sksl @@ -0,0 +1,26 @@ +void half2x4_neg1() { half2x4 m; half4 v = m[-1]; } +void half2x4_0() { half2x4 m; half4 v = m[0]; } +void half2x4_1() { half2x4 m; half4 v = m[1]; } +void half2x4_2() { half2x4 m; half4 v = m[2]; } +void half2x4_3() { half2x4 m; half4 v = m[3]; } +void half2x4_4() { half2x4 m; half4 v = m[4]; } +void half2x4_huge() { half2x4 m; half4 v = m[1000000000]; } + +void half4x2_neg1() { half4x2 m; half2 v = m[-1]; } +void half4x2_0() { half4x2 m; half2 v = m[0]; } +void half4x2_1() { half4x2 m; half2 v = m[1]; } +void half4x2_2() { half4x2 m; half2 v = m[2]; } +void half4x2_3() { half4x2 m; half2 v = m[3]; } +void half4x2_4() { half4x2 m; half2 v = m[4]; } +void half4x2_huge() { half4x2 m; half2 v = m[1000000000]; } + +/*%%* +index -1 out of range for 'half2x4' +index 2 out of range for 'half2x4' +index 3 out of range for 'half2x4' +index 4 out of range for 'half2x4' +index 1000000000 out of range for 'half2x4' +index -1 out of range for 'half4x2' +index 4 out of range for 'half4x2' +index 1000000000 out of range for 'half4x2' +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/MatrixToVectorCast3x3.sksl b/third_party/skia/resources/sksl/errors/MatrixToVectorCast3x3.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/MatrixToVectorCast3x3.sksl rename to third_party/skia/resources/sksl/errors/MatrixToVectorCast3x3.rts diff --git a/third_party/skia/resources/sksl/errors/MatrixToVectorCastBoolean.sksl b/third_party/skia/resources/sksl/errors/MatrixToVectorCastBoolean.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/MatrixToVectorCastBoolean.sksl rename to third_party/skia/resources/sksl/errors/MatrixToVectorCastBoolean.rts diff --git a/third_party/skia/resources/sksl/errors/MatrixToVectorCastInteger.sksl b/third_party/skia/resources/sksl/errors/MatrixToVectorCastInteger.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/MatrixToVectorCastInteger.sksl rename to third_party/skia/resources/sksl/errors/MatrixToVectorCastInteger.rts diff --git a/third_party/skia/resources/sksl/errors/MatrixToVectorCastTooSmall.sksl b/third_party/skia/resources/sksl/errors/MatrixToVectorCastTooSmall.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/MatrixToVectorCastTooSmall.sksl rename to third_party/skia/resources/sksl/errors/MatrixToVectorCastTooSmall.rts diff --git a/third_party/skia/resources/sksl/errors/MismatchedNumbers.rts b/third_party/skia/resources/sksl/errors/MismatchedNumbers.rts new file mode 100644 index 000000000000..dd31a76d30fa --- /dev/null +++ b/third_party/skia/resources/sksl/errors/MismatchedNumbers.rts @@ -0,0 +1,64 @@ +int i = 1; +float f = 1.0; + +// SkSL allows `float op ` and ` op float`, unlike GLSL. +void f_eq_int_literal_ok() { f = 1; } +void f_plus_int_literal_ok() { f + 1; } +void f_minus_int_literal_ok() { f - 1; } +void f_mul_int_literal_ok() { f * 1; } +void f_div_int_literal_ok() { f / 1; } +void int_literal_plus_f_ok() { 1 + f; } +void int_literal_minus_f_ok() { 1 - f; } +void int_literal_mul_f_ok() { 1 * f; } +void int_literal_div_f_ok() { 1 / f; } + +// Other than that, mixing scalar types without a cast is disallowed. +void i_eq_float_literal_disallowed() { i = 1.0; } +void i_eq_f_disallowed() { i = f; } +void f_eq_i_disallowed() { f = i; } +void i_plus_float_literal_disallowed() { i + 1.0; } +void i_minus_float_literal_disallowed() { i - 1.0; } +void i_mul_float_literal_disallowed() { i * 1.0; } +void i_div_float_literal_disallowed() { i / 1.0; } +void float_literal_plus_i_disallowed() { 1.0 + i; } +void float_literal_minus_i_disallowed() { 1.0 - i; } +void float_literal_mul_i_disallowed() { 1.0 * i; } +void float_literal_div_i_disallowed() { 1.0 / i; } +void i_plus_f_disallowed() { i + f; } +void i_minus_f_disallowed() { i - f; } +void i_mul_f_disallowed() { i * f; } +void i_div_f_disallowed() { i / f; } +void f_plus_i_disallowed() { f + i; } +void f_minus_i_disallowed() { f - i; } +void f_mul_i_disallowed() { f * i; } +void f_div_i_disallowed() { f / i; } +void f_plus_u_disallowed() { f + u; } +void f_minus_u_disallowed() { f - u; } +void f_mul_u_disallowed() { f * u; } +void f_div_u_disallowed() { f / u; } +void i_plus_u_disallowed() { i + u; } +void i_minus_u_disallowed() { i - u; } +void i_mul_u_disallowed() { i * u; } +void i_div_u_disallowed() { i / u; } + +/*%%* +type mismatch: '=' cannot operate on 'int', 'float' +type mismatch: '=' cannot operate on 'int', 'float' +type mismatch: '=' cannot operate on 'float', 'int' +type mismatch: '+' cannot operate on 'int', 'float' +type mismatch: '-' cannot operate on 'int', 'float' +type mismatch: '*' cannot operate on 'int', 'float' +type mismatch: '/' cannot operate on 'int', 'float' +type mismatch: '+' cannot operate on 'float', 'int' +type mismatch: '-' cannot operate on 'float', 'int' +type mismatch: '*' cannot operate on 'float', 'int' +type mismatch: '/' cannot operate on 'float', 'int' +type mismatch: '+' cannot operate on 'int', 'float' +type mismatch: '-' cannot operate on 'int', 'float' +type mismatch: '*' cannot operate on 'int', 'float' +type mismatch: '/' cannot operate on 'int', 'float' +type mismatch: '+' cannot operate on 'float', 'int' +type mismatch: '-' cannot operate on 'float', 'int' +type mismatch: '*' cannot operate on 'float', 'int' +type mismatch: '/' cannot operate on 'float', 'int' +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/MismatchedNumbers.sksl b/third_party/skia/resources/sksl/errors/MismatchedNumbersES3.sksl similarity index 57% rename from third_party/skia/resources/sksl/errors/MismatchedNumbers.sksl rename to third_party/skia/resources/sksl/errors/MismatchedNumbersES3.sksl index ea3615f9db65..bdc89171382b 100644 --- a/third_party/skia/resources/sksl/errors/MismatchedNumbers.sksl +++ b/third_party/skia/resources/sksl/errors/MismatchedNumbersES3.sksl @@ -2,17 +2,6 @@ int i = 1; uint u = 1; float f = 1.0; -// SkSL allows `float op ` and ` op float`, unlike GLSL. -void f_eq_int_literal_ok() { f = 1; } -void f_plus_int_literal_ok() { f + 1; } -void f_minus_int_literal_ok() { f - 1; } -void f_mul_int_literal_ok() { f * 1; } -void f_div_int_literal_ok() { f / 1; } -void int_literal_plus_f_ok() { 1 + f; } -void int_literal_minus_f_ok() { 1 - f; } -void int_literal_mul_f_ok() { 1 * f; } -void int_literal_div_f_ok() { 1 / f; } - // SkSL also allows `uint op ` and ` op uint` without the `u` suffix. void u_eq_int_literal_ok() { u = 1; } void u_plus_int_literal_ok() { u + 1; } @@ -25,22 +14,11 @@ void int_literal_mul_u_ok() { 1 * u; } void int_literal_div_u_ok() { 1 / u; } // Other than that, mixing scalar types without a cast is disallowed. -void i_eq_float_literal_disallowed() { i = 1.0; } void u_eq_float_literal_disallowed() { u = 1.0; } void i_eq_u_disallowed() { i = u; } -void i_eq_f_disallowed() { i = f; } -float f_eq_i_disallowed() { f = i; } -float f_eq_u_disallowed() { f = u; } +void f_eq_u_disallowed() { f = u; } void u_eq_i_disallowed() { u = i; } void u_eq_f_disallowed() { u = f; } -void i_plus_float_literal_disallowed() { i + 1.0; } -void i_minus_float_literal_disallowed() { i - 1.0; } -void i_mul_float_literal_disallowed() { i * 1.0; } -void i_div_float_literal_disallowed() { i / 1.0; } -void float_literal_plus_i_disallowed() { 1.0 + i; } -void float_literal_minus_i_disallowed() { 1.0 - i; } -void float_literal_mul_i_disallowed() { 1.0 * i; } -void float_literal_div_i_disallowed() { 1.0 / i; } void u_plus_float_literal_disallowed() { u + 1.0; } void u_minus_float_literal_disallowed() { u - 1.0; } void u_mul_float_literal_disallowed() { u * 1.0; } @@ -49,14 +27,6 @@ void float_literal_plus_u_disallowed() { 1.0 + u; } void float_literal_minus_u_disallowed() { 1.0 - u; } void float_literal_mul_u_disallowed() { 1.0 * u; } void float_literal_div_u_disallowed() { 1.0 / u; } -void i_plus_f_disallowed() { i + f; } -void i_minus_f_disallowed() { i - f; } -void i_mul_f_disallowed() { i * f; } -void i_div_f_disallowed() { i / f; } -void f_plus_i_disallowed() { f + i; } -void f_minus_i_disallowed() { f - i; } -void f_mul_i_disallowed() { f * i; } -void f_div_i_disallowed() { f / i; } void u_plus_f_disallowed() { u + f; } void u_minus_f_disallowed() { u - f; } void u_mul_f_disallowed() { u * f; } @@ -75,24 +45,11 @@ void u_mul_i_disallowed() { u * i; } void u_div_i_disallowed() { u / i; } /*%%* -type mismatch: '=' cannot operate on 'int', 'float' type mismatch: '=' cannot operate on 'uint', 'float' type mismatch: '=' cannot operate on 'int', 'uint' -type mismatch: '=' cannot operate on 'int', 'float' -type mismatch: '=' cannot operate on 'float', 'int' -function 'f_eq_i_disallowed' can exit without returning a value type mismatch: '=' cannot operate on 'float', 'uint' -function 'f_eq_u_disallowed' can exit without returning a value type mismatch: '=' cannot operate on 'uint', 'int' type mismatch: '=' cannot operate on 'uint', 'float' -type mismatch: '+' cannot operate on 'int', 'float' -type mismatch: '-' cannot operate on 'int', 'float' -type mismatch: '*' cannot operate on 'int', 'float' -type mismatch: '/' cannot operate on 'int', 'float' -type mismatch: '+' cannot operate on 'float', 'int' -type mismatch: '-' cannot operate on 'float', 'int' -type mismatch: '*' cannot operate on 'float', 'int' -type mismatch: '/' cannot operate on 'float', 'int' type mismatch: '+' cannot operate on 'uint', 'float' type mismatch: '-' cannot operate on 'uint', 'float' type mismatch: '*' cannot operate on 'uint', 'float' @@ -101,14 +58,6 @@ type mismatch: '+' cannot operate on 'float', 'uint' type mismatch: '-' cannot operate on 'float', 'uint' type mismatch: '*' cannot operate on 'float', 'uint' type mismatch: '/' cannot operate on 'float', 'uint' -type mismatch: '+' cannot operate on 'int', 'float' -type mismatch: '-' cannot operate on 'int', 'float' -type mismatch: '*' cannot operate on 'int', 'float' -type mismatch: '/' cannot operate on 'int', 'float' -type mismatch: '+' cannot operate on 'float', 'int' -type mismatch: '-' cannot operate on 'float', 'int' -type mismatch: '*' cannot operate on 'float', 'int' -type mismatch: '/' cannot operate on 'float', 'int' type mismatch: '+' cannot operate on 'uint', 'float' type mismatch: '-' cannot operate on 'uint', 'float' type mismatch: '*' cannot operate on 'uint', 'float' diff --git a/third_party/skia/resources/sksl/errors/ModifiersInStruct.sksl b/third_party/skia/resources/sksl/errors/ModifiersInStruct.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ModifiersInStruct.sksl rename to third_party/skia/resources/sksl/errors/ModifiersInStruct.rts diff --git a/third_party/skia/resources/sksl/errors/MultipleFields.sksl b/third_party/skia/resources/sksl/errors/MultipleFields.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/MultipleFields.sksl rename to third_party/skia/resources/sksl/errors/MultipleFields.rts diff --git a/third_party/skia/resources/sksl/errors/OpenArray.rts b/third_party/skia/resources/sksl/errors/OpenArray.rts new file mode 100644 index 000000000000..11c2c8804e15 --- /dev/null +++ b/third_party/skia/resources/sksl/errors/OpenArray.rts @@ -0,0 +1,7 @@ +half4 main(float2 coords) { + coords.r[ = ( coords.g ); +} + +/*%%* +expected expression, but found '=' +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/OpenArray.sksl b/third_party/skia/resources/sksl/errors/OpenArray.sksl deleted file mode 100644 index 63de3bb43dae..000000000000 --- a/third_party/skia/resources/sksl/errors/OpenArray.sksl +++ /dev/null @@ -1,9 +0,0 @@ -void main(inout float4 color) { - color.r[ = ( color.g ); -} - -/*%%* -shader 'main' must be main() or main(float2) -unknown identifier 'color' -expected expression, but found '=' -*%%*/ diff --git a/third_party/skia/resources/sksl/errors/Ossfuzz40479.sksl b/third_party/skia/resources/sksl/errors/Ossfuzz40479.sksl index ad7ccb33400a..f6cdd854e7f5 100644 --- a/third_party/skia/resources/sksl/errors/Ossfuzz40479.sksl +++ b/third_party/skia/resources/sksl/errors/Ossfuzz40479.sksl @@ -3,7 +3,7 @@ void[4016112253 .r1r /*%%* integer is out of range for type 'int': 4016112253 array size must be an integer -type 'void' may not be used in an array expected ']', but found '' +type 'void' may not be used in an array expected an identifier, but found '' *%%*/ diff --git a/third_party/skia/resources/sksl/errors/OverflowFloatLiteral.sksl b/third_party/skia/resources/sksl/errors/OverflowFloatLiteral.rts similarity index 50% rename from third_party/skia/resources/sksl/errors/OverflowFloatLiteral.sksl rename to third_party/skia/resources/sksl/errors/OverflowFloatLiteral.rts index 3015135ffa42..2d4571f4d44f 100644 --- a/third_party/skia/resources/sksl/errors/OverflowFloatLiteral.sksl +++ b/third_party/skia/resources/sksl/errors/OverflowFloatLiteral.rts @@ -1,5 +1,5 @@ -void main() { - sk_FragColor = half4(3.41e+38); +void func() { + float x = 3.41e+38; } /*%%* diff --git a/third_party/skia/resources/sksl/errors/OverflowInt64Literal.sksl b/third_party/skia/resources/sksl/errors/OverflowInt64Literal.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/OverflowInt64Literal.sksl rename to third_party/skia/resources/sksl/errors/OverflowInt64Literal.rts diff --git a/third_party/skia/resources/sksl/errors/OverflowIntLiteral.sksl b/third_party/skia/resources/sksl/errors/OverflowIntLiteral.rts similarity index 54% rename from third_party/skia/resources/sksl/errors/OverflowIntLiteral.sksl rename to third_party/skia/resources/sksl/errors/OverflowIntLiteral.rts index ba27e6056b67..d8a99a0a2a85 100644 --- a/third_party/skia/resources/sksl/errors/OverflowIntLiteral.sksl +++ b/third_party/skia/resources/sksl/errors/OverflowIntLiteral.rts @@ -1,21 +1,11 @@ -// Expect 6 errors - const int intMin = -2147483648; const int intMinMinusOne = -2147483649; // error const int intMax = 2147483647; const int intMaxPlusOne = 2147483648; // error - -short4 s4_neg = short4(-32766, -32767, -32769, -32768); // error -32769 -short4 s4_pos = short4(32765, 32768, 32766, 32767); // error 32768 - int cast_int = int(2147483648.); // error -short cast_short = short(32768.); // error /*%%* integer is out of range for type 'int': -2147483649 integer is out of range for type 'int': 2147483648 -integer is out of range for type 'short': -32769 -integer is out of range for type 'short': 32768 integer is out of range for type 'int': 2147483648 -integer is out of range for type 'short': 32768 *%%*/ diff --git a/third_party/skia/resources/sksl/errors/OverflowParamArraySize.sksl b/third_party/skia/resources/sksl/errors/OverflowParamArraySize.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/OverflowParamArraySize.sksl rename to third_party/skia/resources/sksl/errors/OverflowParamArraySize.rts diff --git a/third_party/skia/resources/sksl/errors/OverflowShortLiteral.sksl b/third_party/skia/resources/sksl/errors/OverflowShortLiteral.sksl new file mode 100644 index 000000000000..159e4d241e3a --- /dev/null +++ b/third_party/skia/resources/sksl/errors/OverflowShortLiteral.sksl @@ -0,0 +1,9 @@ +short4 s4_neg = short4(-32766, -32767, -32769, -32768); // error -32769 +short4 s4_pos = short4(32765, 32768, 32766, 32767); // error 32768 +short cast_short = short(32768.); // error + +/*%%* +integer is out of range for type 'short': -32769 +integer is out of range for type 'short': 32768 +integer is out of range for type 'short': 32768 +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/PrivateTypes.sksl b/third_party/skia/resources/sksl/errors/PrivateTypes.rts similarity index 85% rename from third_party/skia/resources/sksl/errors/PrivateTypes.sksl rename to third_party/skia/resources/sksl/errors/PrivateTypes.rts index 93a35d7e1363..ed6275e9b112 100644 --- a/third_party/skia/resources/sksl/errors/PrivateTypes.sksl +++ b/third_party/skia/resources/sksl/errors/PrivateTypes.rts @@ -1,7 +1,3 @@ -InterfaceBlock { - $mat g; -}; - struct S { $bvec bv; }; @@ -12,7 +8,6 @@ void ctor_mat_private() { $mat(0); } void ctor_literal_private() { $floatLiteral(0); } /*%%* -type '$mat' is private type '$bvec' is private type '$ivec' is private type '$genType' is private diff --git a/third_party/skia/resources/sksl/errors/PrivateVariables.sksl b/third_party/skia/resources/sksl/errors/PrivateVariables.rts similarity index 86% rename from third_party/skia/resources/sksl/errors/PrivateVariables.sksl rename to third_party/skia/resources/sksl/errors/PrivateVariables.rts index 00bd28b875cb..0c9b17611b1c 100644 --- a/third_party/skia/resources/sksl/errors/PrivateVariables.sksl +++ b/third_party/skia/resources/sksl/errors/PrivateVariables.rts @@ -1,5 +1,5 @@ int $a; -void main(float2 $b) { +void func(float2 $b) { float $c[2]; bool4 $d; } diff --git a/third_party/skia/resources/sksl/errors/ProgramTooLarge_Globals.sksl b/third_party/skia/resources/sksl/errors/ProgramTooLarge_Globals.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ProgramTooLarge_Globals.sksl rename to third_party/skia/resources/sksl/errors/ProgramTooLarge_Globals.rts diff --git a/third_party/skia/resources/sksl/errors/ProgramTooLarge_Stack.sksl b/third_party/skia/resources/sksl/errors/ProgramTooLarge_Stack.rts similarity index 94% rename from third_party/skia/resources/sksl/errors/ProgramTooLarge_Stack.sksl rename to third_party/skia/resources/sksl/errors/ProgramTooLarge_Stack.rts index 127f0564e07c..4f004368a17b 100644 --- a/third_party/skia/resources/sksl/errors/ProgramTooLarge_Stack.sksl +++ b/third_party/skia/resources/sksl/errors/ProgramTooLarge_Stack.rts @@ -5,7 +5,7 @@ struct S { half h; }; -void main() { +void func() { int small; S big_chungus; S no_report; // we don't need to report overflows past the first diff --git a/third_party/skia/resources/sksl/errors/PrototypeInFuncBody.sksl b/third_party/skia/resources/sksl/errors/PrototypeInFuncBody.rts similarity index 80% rename from third_party/skia/resources/sksl/errors/PrototypeInFuncBody.sksl rename to third_party/skia/resources/sksl/errors/PrototypeInFuncBody.rts index b440ad2a2aee..6d58b3399ed1 100644 --- a/third_party/skia/resources/sksl/errors/PrototypeInFuncBody.sksl +++ b/third_party/skia/resources/sksl/errors/PrototypeInFuncBody.rts @@ -1,4 +1,4 @@ -void main() { +void func() { float x(); } diff --git a/third_party/skia/resources/sksl/errors/RedeclareBasicType.sksl b/third_party/skia/resources/sksl/errors/RedeclareBasicType.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/RedeclareBasicType.sksl rename to third_party/skia/resources/sksl/errors/RedeclareBasicType.rts diff --git a/third_party/skia/resources/sksl/errors/RedeclareShaderType.rts b/third_party/skia/resources/sksl/errors/RedeclareShaderType.rts new file mode 100644 index 000000000000..76d006b0cbf0 --- /dev/null +++ b/third_party/skia/resources/sksl/errors/RedeclareShaderType.rts @@ -0,0 +1,5 @@ +uniform shader shader; + +/*%%* +expected an identifier, but found type 'shader' +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/RedeclareStruct.sksl b/third_party/skia/resources/sksl/errors/RedeclareStruct.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/RedeclareStruct.sksl rename to third_party/skia/resources/sksl/errors/RedeclareStruct.rts diff --git a/third_party/skia/resources/sksl/errors/RedeclareStructTypeWithName.sksl b/third_party/skia/resources/sksl/errors/RedeclareStructTypeWithName.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/RedeclareStructTypeWithName.sksl rename to third_party/skia/resources/sksl/errors/RedeclareStructTypeWithName.rts diff --git a/third_party/skia/resources/sksl/errors/RedeclareUserType.sksl b/third_party/skia/resources/sksl/errors/RedeclareUserType.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/RedeclareUserType.sksl rename to third_party/skia/resources/sksl/errors/RedeclareUserType.rts diff --git a/third_party/skia/resources/sksl/errors/RedeclareVariable.sksl b/third_party/skia/resources/sksl/errors/RedeclareVariable.rts similarity index 96% rename from third_party/skia/resources/sksl/errors/RedeclareVariable.sksl rename to third_party/skia/resources/sksl/errors/RedeclareVariable.rts index e5ef434b5562..0160aa9b6ac5 100644 --- a/third_party/skia/resources/sksl/errors/RedeclareVariable.sksl +++ b/third_party/skia/resources/sksl/errors/RedeclareVariable.rts @@ -6,7 +6,7 @@ float4x4 x; bool2 x[2]; S x; -void main() { +void func() { float2 y; float2 y; int y; diff --git a/third_party/skia/resources/sksl/errors/ReservedNameAsm.sksl b/third_party/skia/resources/sksl/errors/ReservedNameAsm.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameAsm.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameAsm.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameAttribute.sksl b/third_party/skia/resources/sksl/errors/ReservedNameAttribute.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameAttribute.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameAttribute.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameCast.sksl b/third_party/skia/resources/sksl/errors/ReservedNameCast.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameCast.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameCast.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameDouble.sksl b/third_party/skia/resources/sksl/errors/ReservedNameDouble.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameDouble.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameDouble.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameDvec2.sksl b/third_party/skia/resources/sksl/errors/ReservedNameDvec2.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameDvec2.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameDvec2.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameDvec3.sksl b/third_party/skia/resources/sksl/errors/ReservedNameDvec3.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameDvec3.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameDvec3.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameDvec4.sksl b/third_party/skia/resources/sksl/errors/ReservedNameDvec4.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameDvec4.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameDvec4.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameEnum.sksl b/third_party/skia/resources/sksl/errors/ReservedNameEnum.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameEnum.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameEnum.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameExtern.sksl b/third_party/skia/resources/sksl/errors/ReservedNameExtern.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameExtern.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameExtern.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameExternal.sksl b/third_party/skia/resources/sksl/errors/ReservedNameExternal.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameExternal.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameExternal.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameFixed.sksl b/third_party/skia/resources/sksl/errors/ReservedNameFixed.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameFixed.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameFixed.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameFvec2.sksl b/third_party/skia/resources/sksl/errors/ReservedNameFvec2.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameFvec2.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameFvec2.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameFvec3.sksl b/third_party/skia/resources/sksl/errors/ReservedNameFvec3.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameFvec3.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameFvec3.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameFvec4.sksl b/third_party/skia/resources/sksl/errors/ReservedNameFvec4.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameFvec4.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameFvec4.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameGoto.sksl b/third_party/skia/resources/sksl/errors/ReservedNameGoto.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameGoto.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameGoto.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameHvec2.sksl b/third_party/skia/resources/sksl/errors/ReservedNameHvec2.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameHvec2.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameHvec2.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameHvec3.sksl b/third_party/skia/resources/sksl/errors/ReservedNameHvec3.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameHvec3.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameHvec3.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameHvec4.sksl b/third_party/skia/resources/sksl/errors/ReservedNameHvec4.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameHvec4.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameHvec4.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameInput.sksl b/third_party/skia/resources/sksl/errors/ReservedNameInput.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameInput.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameInput.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameInterface.sksl b/third_party/skia/resources/sksl/errors/ReservedNameInterface.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameInterface.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameInterface.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameInvariant.sksl b/third_party/skia/resources/sksl/errors/ReservedNameInvariant.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameInvariant.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameInvariant.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameLong.sksl b/third_party/skia/resources/sksl/errors/ReservedNameLong.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameLong.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameLong.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameNamespace.sksl b/third_party/skia/resources/sksl/errors/ReservedNameNamespace.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameNamespace.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameNamespace.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameOutput.sksl b/third_party/skia/resources/sksl/errors/ReservedNameOutput.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameOutput.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameOutput.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNamePacked.sksl b/third_party/skia/resources/sksl/errors/ReservedNamePacked.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNamePacked.sksl rename to third_party/skia/resources/sksl/errors/ReservedNamePacked.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNamePrecision.sksl b/third_party/skia/resources/sksl/errors/ReservedNamePrecision.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNamePrecision.sksl rename to third_party/skia/resources/sksl/errors/ReservedNamePrecision.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNamePublic.sksl b/third_party/skia/resources/sksl/errors/ReservedNamePublic.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNamePublic.sksl rename to third_party/skia/resources/sksl/errors/ReservedNamePublic.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameSampler1DShadow.sksl b/third_party/skia/resources/sksl/errors/ReservedNameSampler1DShadow.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameSampler1DShadow.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameSampler1DShadow.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameSampler2DRectShadow.sksl b/third_party/skia/resources/sksl/errors/ReservedNameSampler2DRectShadow.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameSampler2DRectShadow.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameSampler2DRectShadow.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameSampler2DShadow.sksl b/third_party/skia/resources/sksl/errors/ReservedNameSampler2DShadow.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameSampler2DShadow.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameSampler2DShadow.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameSampler3DRect.sksl b/third_party/skia/resources/sksl/errors/ReservedNameSampler3DRect.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameSampler3DRect.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameSampler3DRect.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameSamplerCube.sksl b/third_party/skia/resources/sksl/errors/ReservedNameSamplerCube.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameSamplerCube.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameSamplerCube.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameSizeof.sksl b/third_party/skia/resources/sksl/errors/ReservedNameSizeof.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameSizeof.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameSizeof.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameStatic.sksl b/third_party/skia/resources/sksl/errors/ReservedNameStatic.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameStatic.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameStatic.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameSuperp.sksl b/third_party/skia/resources/sksl/errors/ReservedNameSuperp.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameSuperp.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameSuperp.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameTemplate.sksl b/third_party/skia/resources/sksl/errors/ReservedNameTemplate.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameTemplate.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameTemplate.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameThis.sksl b/third_party/skia/resources/sksl/errors/ReservedNameThis.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameThis.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameThis.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameTypedef.sksl b/third_party/skia/resources/sksl/errors/ReservedNameTypedef.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameTypedef.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameTypedef.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameUnion.sksl b/third_party/skia/resources/sksl/errors/ReservedNameUnion.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameUnion.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameUnion.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameUnsigned.sksl b/third_party/skia/resources/sksl/errors/ReservedNameUnsigned.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameUnsigned.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameUnsigned.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameUsing.sksl b/third_party/skia/resources/sksl/errors/ReservedNameUsing.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameUsing.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameUsing.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameVarying.sksl b/third_party/skia/resources/sksl/errors/ReservedNameVarying.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameVarying.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameVarying.rts diff --git a/third_party/skia/resources/sksl/errors/ReservedNameVolatile.sksl b/third_party/skia/resources/sksl/errors/ReservedNameVolatile.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReservedNameVolatile.sksl rename to third_party/skia/resources/sksl/errors/ReservedNameVolatile.rts diff --git a/third_party/skia/resources/sksl/errors/ReturnDifferentType.rts b/third_party/skia/resources/sksl/errors/ReturnDifferentType.rts new file mode 100644 index 000000000000..6650cf2906a8 --- /dev/null +++ b/third_party/skia/resources/sksl/errors/ReturnDifferentType.rts @@ -0,0 +1,6 @@ +int func() { return 1; } +void func() {} + +/*%%* +functions 'void func()' and 'int func()' differ only in return type +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/ReturnDifferentType.sksl b/third_party/skia/resources/sksl/errors/ReturnDifferentType.sksl deleted file mode 100644 index ffd0ed9b136e..000000000000 --- a/third_party/skia/resources/sksl/errors/ReturnDifferentType.sksl +++ /dev/null @@ -1,6 +0,0 @@ -int main() { return 1; } -void main() {} - -/*%%* -functions 'void main()' and 'int main()' differ only in return type -*%%*/ diff --git a/third_party/skia/resources/sksl/errors/ReturnFromVoid.sksl b/third_party/skia/resources/sksl/errors/ReturnFromVoid.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReturnFromVoid.sksl rename to third_party/skia/resources/sksl/errors/ReturnFromVoid.rts diff --git a/third_party/skia/resources/sksl/errors/ReturnMissingValue.sksl b/third_party/skia/resources/sksl/errors/ReturnMissingValue.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReturnMissingValue.sksl rename to third_party/skia/resources/sksl/errors/ReturnMissingValue.rts diff --git a/third_party/skia/resources/sksl/errors/ReturnTypeMismatch.sksl b/third_party/skia/resources/sksl/errors/ReturnTypeMismatch.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/ReturnTypeMismatch.sksl rename to third_party/skia/resources/sksl/errors/ReturnTypeMismatch.rts diff --git a/third_party/skia/resources/sksl/errors/SelfReferentialInitializerExpression.sksl b/third_party/skia/resources/sksl/errors/SelfReferentialInitializerExpression.rts similarity index 66% rename from third_party/skia/resources/sksl/errors/SelfReferentialInitializerExpression.sksl rename to third_party/skia/resources/sksl/errors/SelfReferentialInitializerExpression.rts index 0fec0a009adb..cd6d574fcf74 100644 --- a/third_party/skia/resources/sksl/errors/SelfReferentialInitializerExpression.sksl +++ b/third_party/skia/resources/sksl/errors/SelfReferentialInitializerExpression.rts @@ -1,5 +1,5 @@ float foo(float v) { return v; } -void main() { float x = foo(x); } +void func() { float x = foo(x); } /*%%* unknown identifier 'x' diff --git a/third_party/skia/resources/sksl/errors/SpuriousFloat.sksl b/third_party/skia/resources/sksl/errors/SpuriousFloat.rts similarity index 84% rename from third_party/skia/resources/sksl/errors/SpuriousFloat.sksl rename to third_party/skia/resources/sksl/errors/SpuriousFloat.rts index 488ec76b3720..625cbbc772da 100644 --- a/third_party/skia/resources/sksl/errors/SpuriousFloat.sksl +++ b/third_party/skia/resources/sksl/errors/SpuriousFloat.rts @@ -1,4 +1,4 @@ -void main() { +void func() { float x; x = 1.5 2.5; } diff --git a/third_party/skia/resources/sksl/errors/StructMemberReservedName.sksl b/third_party/skia/resources/sksl/errors/StructMemberReservedName.rts similarity index 88% rename from third_party/skia/resources/sksl/errors/StructMemberReservedName.sksl rename to third_party/skia/resources/sksl/errors/StructMemberReservedName.rts index 030d05f80d42..76dc6eb40497 100644 --- a/third_party/skia/resources/sksl/errors/StructMemberReservedName.sksl +++ b/third_party/skia/resources/sksl/errors/StructMemberReservedName.rts @@ -2,7 +2,7 @@ struct S { float float; } s; -float4 main() { +float4 func() { return s.float.xxxx; } diff --git a/third_party/skia/resources/sksl/errors/StructNameWithoutIdentifier.sksl b/third_party/skia/resources/sksl/errors/StructNameWithoutIdentifier.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/StructNameWithoutIdentifier.sksl rename to third_party/skia/resources/sksl/errors/StructNameWithoutIdentifier.rts diff --git a/third_party/skia/resources/sksl/errors/StructTooDeeplyNested.sksl b/third_party/skia/resources/sksl/errors/StructTooDeeplyNested.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/StructTooDeeplyNested.sksl rename to third_party/skia/resources/sksl/errors/StructTooDeeplyNested.rts diff --git a/third_party/skia/resources/sksl/errors/StructVariableReservedName.sksl b/third_party/skia/resources/sksl/errors/StructVariableReservedName.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/StructVariableReservedName.sksl rename to third_party/skia/resources/sksl/errors/StructVariableReservedName.rts diff --git a/third_party/skia/resources/sksl/errors/SwitchDuplicateCase.sksl b/third_party/skia/resources/sksl/errors/SwitchDuplicateCase.rts similarity index 90% rename from third_party/skia/resources/sksl/errors/SwitchDuplicateCase.sksl rename to third_party/skia/resources/sksl/errors/SwitchDuplicateCase.rts index 30be7cd063e7..3338d5962dd9 100644 --- a/third_party/skia/resources/sksl/errors/SwitchDuplicateCase.sksl +++ b/third_party/skia/resources/sksl/errors/SwitchDuplicateCase.rts @@ -1,4 +1,4 @@ -void main() { +void func() { switch (1) { case 0: case 1: diff --git a/third_party/skia/resources/sksl/errors/SwitchDuplicateDefault.sksl b/third_party/skia/resources/sksl/errors/SwitchDuplicateDefault.rts similarity index 90% rename from third_party/skia/resources/sksl/errors/SwitchDuplicateDefault.sksl rename to third_party/skia/resources/sksl/errors/SwitchDuplicateDefault.rts index c18a033c2f61..d557fbd9ff53 100644 --- a/third_party/skia/resources/sksl/errors/SwitchDuplicateDefault.sksl +++ b/third_party/skia/resources/sksl/errors/SwitchDuplicateDefault.rts @@ -1,4 +1,4 @@ -void main() { +void func() { switch (1) { default: default: diff --git a/third_party/skia/resources/sksl/errors/SwitchTypes.sksl b/third_party/skia/resources/sksl/errors/SwitchTypes.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/SwitchTypes.sksl rename to third_party/skia/resources/sksl/errors/SwitchTypes.rts diff --git a/third_party/skia/resources/sksl/errors/SwizzleConstantOutput.sksl b/third_party/skia/resources/sksl/errors/SwizzleConstantOutput.rts similarity index 88% rename from third_party/skia/resources/sksl/errors/SwizzleConstantOutput.sksl rename to third_party/skia/resources/sksl/errors/SwizzleConstantOutput.rts index d9d31fffcb50..9304c98ac179 100644 --- a/third_party/skia/resources/sksl/errors/SwizzleConstantOutput.sksl +++ b/third_party/skia/resources/sksl/errors/SwizzleConstantOutput.rts @@ -1,4 +1,4 @@ -void main() { +void func() { float4 test = float4(1); test.xyz0 = float4(1); } diff --git a/third_party/skia/resources/sksl/errors/SwizzleDomain.sksl b/third_party/skia/resources/sksl/errors/SwizzleDomain.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/SwizzleDomain.sksl rename to third_party/skia/resources/sksl/errors/SwizzleDomain.rts diff --git a/third_party/skia/resources/sksl/errors/SwizzleMatrix.sksl b/third_party/skia/resources/sksl/errors/SwizzleMatrix.rts similarity index 88% rename from third_party/skia/resources/sksl/errors/SwizzleMatrix.sksl rename to third_party/skia/resources/sksl/errors/SwizzleMatrix.rts index efd90f1f0d6f..4c6e0d528d76 100644 --- a/third_party/skia/resources/sksl/errors/SwizzleMatrix.sksl +++ b/third_party/skia/resources/sksl/errors/SwizzleMatrix.rts @@ -1,4 +1,4 @@ -void main() { +void func() { float2x2 x = float2x2(1); float y = x.y; } diff --git a/third_party/skia/resources/sksl/errors/SwizzleOnlyLiterals.sksl b/third_party/skia/resources/sksl/errors/SwizzleOnlyLiterals.rts similarity index 56% rename from third_party/skia/resources/sksl/errors/SwizzleOnlyLiterals.sksl rename to third_party/skia/resources/sksl/errors/SwizzleOnlyLiterals.rts index 3f82bed5e02d..a2bd6d2f26e1 100644 --- a/third_party/skia/resources/sksl/errors/SwizzleOnlyLiterals.sksl +++ b/third_party/skia/resources/sksl/errors/SwizzleOnlyLiterals.rts @@ -1,4 +1,4 @@ -void main() { float x = 1.0; x = x.0; } +void func() { float x = 1.0; x = x.0; } /*%%* swizzle must refer to base expression diff --git a/third_party/skia/resources/sksl/errors/SwizzleOutOfBounds.rts b/third_party/skia/resources/sksl/errors/SwizzleOutOfBounds.rts new file mode 100644 index 000000000000..2d26c1e82f84 --- /dev/null +++ b/third_party/skia/resources/sksl/errors/SwizzleOutOfBounds.rts @@ -0,0 +1,5 @@ +void func() { float3 test = float2(1).xyz; } + +/*%%* +invalid swizzle component 'z' +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/SwizzleOutOfBounds.sksl b/third_party/skia/resources/sksl/errors/SwizzleOutOfBounds.sksl deleted file mode 100644 index c21e99219169..000000000000 --- a/third_party/skia/resources/sksl/errors/SwizzleOutOfBounds.sksl +++ /dev/null @@ -1,5 +0,0 @@ -void main() { float3 test = float2(1).xyz; } - -/*%%* -invalid swizzle component 'z' -*%%*/ diff --git a/third_party/skia/resources/sksl/errors/SwizzleTooManyComponents.sksl b/third_party/skia/resources/sksl/errors/SwizzleTooManyComponents.rts similarity index 51% rename from third_party/skia/resources/sksl/errors/SwizzleTooManyComponents.sksl rename to third_party/skia/resources/sksl/errors/SwizzleTooManyComponents.rts index f5f1cad3f018..b7991b46e9b5 100644 --- a/third_party/skia/resources/sksl/errors/SwizzleTooManyComponents.sksl +++ b/third_party/skia/resources/sksl/errors/SwizzleTooManyComponents.rts @@ -1,4 +1,4 @@ -void main() { float4 test = float2(1).xxxxx; } +void func() { float4 test = float2(1).xxxxx; } /*%%* too many components in swizzle mask diff --git a/third_party/skia/resources/sksl/errors/TernaryMismatch.sksl b/third_party/skia/resources/sksl/errors/TernaryMismatch.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/TernaryMismatch.sksl rename to third_party/skia/resources/sksl/errors/TernaryMismatch.rts diff --git a/third_party/skia/resources/sksl/errors/UnassignedOutParameter.sksl b/third_party/skia/resources/sksl/errors/UnassignedOutParameter.rts similarity index 95% rename from third_party/skia/resources/sksl/errors/UnassignedOutParameter.sksl rename to third_party/skia/resources/sksl/errors/UnassignedOutParameter.rts index 55e548117d3d..6730dcf1d79e 100644 --- a/third_party/skia/resources/sksl/errors/UnassignedOutParameter.sksl +++ b/third_party/skia/resources/sksl/errors/UnassignedOutParameter.rts @@ -4,7 +4,7 @@ void testIn(in float2 a, in float2 b, in float2 c) { a = float2(1); void testOut(out float2 a, out float2 b, out float2 c) { a = float2(1); } void testInout(inout float2 a, inout float2 b, inout float2 c) { a = float2(1); } -void main(float2 p) { +void func(float2 p) { testIn(p, p, p); testOut(p, p, p); testInout(p, p, p); diff --git a/third_party/skia/resources/sksl/errors/UndeclaredFunction.sksl b/third_party/skia/resources/sksl/errors/UndeclaredFunction.rts similarity index 54% rename from third_party/skia/resources/sksl/errors/UndeclaredFunction.sksl rename to third_party/skia/resources/sksl/errors/UndeclaredFunction.rts index 4ee08a19c355..5b4fa372e1b7 100644 --- a/third_party/skia/resources/sksl/errors/UndeclaredFunction.sksl +++ b/third_party/skia/resources/sksl/errors/UndeclaredFunction.rts @@ -1,4 +1,4 @@ -void main() { int x = foo(1); } +void func() { int x = foo(1); } /*%%* unknown identifier 'foo' diff --git a/third_party/skia/resources/sksl/errors/UndefinedFunction.sksl b/third_party/skia/resources/sksl/errors/UndefinedFunction.rts similarity index 68% rename from third_party/skia/resources/sksl/errors/UndefinedFunction.sksl rename to third_party/skia/resources/sksl/errors/UndefinedFunction.rts index d41d8861bdb8..5de828ee9881 100644 --- a/third_party/skia/resources/sksl/errors/UndefinedFunction.sksl +++ b/third_party/skia/resources/sksl/errors/UndefinedFunction.rts @@ -1,6 +1,6 @@ int foo(int x); -void main() { int x = foo(1); } +void func() { int x = foo(1); } /*%%* function 'int foo(int x)' is not defined diff --git a/third_party/skia/resources/sksl/errors/UndefinedSymbol.sksl b/third_party/skia/resources/sksl/errors/UndefinedSymbol.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/UndefinedSymbol.sksl rename to third_party/skia/resources/sksl/errors/UndefinedSymbol.rts diff --git a/third_party/skia/resources/sksl/errors/UniformVarWithInitializerExpression.sksl b/third_party/skia/resources/sksl/errors/UniformVarWithInitializerExpression.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/UniformVarWithInitializerExpression.sksl rename to third_party/skia/resources/sksl/errors/UniformVarWithInitializerExpression.rts diff --git a/third_party/skia/resources/sksl/errors/UnscopedVariableInDoWhile.sksl b/third_party/skia/resources/sksl/errors/UnscopedVariableInDoWhile.sksl index fa169e7c78fd..14cff35e67ca 100644 --- a/third_party/skia/resources/sksl/errors/UnscopedVariableInDoWhile.sksl +++ b/third_party/skia/resources/sksl/errors/UnscopedVariableInDoWhile.sksl @@ -1,5 +1,7 @@ void main() { - do int foo = 1, bar = foo; while (false); + do + int foo = 1, bar = foo; + while (false); } /*%%* diff --git a/third_party/skia/resources/sksl/errors/UnscopedVariableInElse.rts b/third_party/skia/resources/sksl/errors/UnscopedVariableInElse.rts new file mode 100644 index 000000000000..bb5925beceb6 --- /dev/null +++ b/third_party/skia/resources/sksl/errors/UnscopedVariableInElse.rts @@ -0,0 +1,7 @@ +void func() { + if (true) ; else half x = 1; +} + +/*%%* +variable 'x' must be created in a scope +*%%*/ diff --git a/third_party/skia/resources/sksl/errors/UnscopedVariableInElse.sksl b/third_party/skia/resources/sksl/errors/UnscopedVariableInElse.sksl deleted file mode 100644 index 877bc6cb12da..000000000000 --- a/third_party/skia/resources/sksl/errors/UnscopedVariableInElse.sksl +++ /dev/null @@ -1,7 +0,0 @@ -void main() { - if (true) ; else half4 color = sk_FragColor; -} - -/*%%* -variable 'color' must be created in a scope -*%%*/ diff --git a/third_party/skia/resources/sksl/errors/UnscopedVariableInFor.sksl b/third_party/skia/resources/sksl/errors/UnscopedVariableInFor.rts similarity index 88% rename from third_party/skia/resources/sksl/errors/UnscopedVariableInFor.sksl rename to third_party/skia/resources/sksl/errors/UnscopedVariableInFor.rts index 88be1c10a344..59904aa41584 100644 --- a/third_party/skia/resources/sksl/errors/UnscopedVariableInFor.sksl +++ b/third_party/skia/resources/sksl/errors/UnscopedVariableInFor.rts @@ -1,4 +1,4 @@ -void main() { +void func() { for (int x=0; x<10; ++x) float s = sqrt(4); } diff --git a/third_party/skia/resources/sksl/errors/UnscopedVariableInIf.sksl b/third_party/skia/resources/sksl/errors/UnscopedVariableInIf.rts similarity index 84% rename from third_party/skia/resources/sksl/errors/UnscopedVariableInIf.sksl rename to third_party/skia/resources/sksl/errors/UnscopedVariableInIf.rts index 89cef37eead7..86c964b1fe5d 100644 --- a/third_party/skia/resources/sksl/errors/UnscopedVariableInIf.sksl +++ b/third_party/skia/resources/sksl/errors/UnscopedVariableInIf.rts @@ -1,4 +1,4 @@ -void main() { +void func() { if (true) half4 x; } diff --git a/third_party/skia/resources/sksl/errors/UnsupportedGLSLIdentifiers.sksl b/third_party/skia/resources/sksl/errors/UnsupportedGLSLIdentifiers.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/UnsupportedGLSLIdentifiers.sksl rename to third_party/skia/resources/sksl/errors/UnsupportedGLSLIdentifiers.rts diff --git a/third_party/skia/resources/sksl/errors/UsingInvalidValue.sksl b/third_party/skia/resources/sksl/errors/UsingInvalidValue.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/UsingInvalidValue.sksl rename to third_party/skia/resources/sksl/errors/UsingInvalidValue.rts diff --git a/third_party/skia/resources/sksl/errors/VectorIndexOutOfRange.sksl b/third_party/skia/resources/sksl/errors/VectorIndexOutOfRange.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/VectorIndexOutOfRange.sksl rename to third_party/skia/resources/sksl/errors/VectorIndexOutOfRange.rts diff --git a/third_party/skia/resources/sksl/errors/VectorSlice.sksl b/third_party/skia/resources/sksl/errors/VectorSlice.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/VectorSlice.sksl rename to third_party/skia/resources/sksl/errors/VectorSlice.rts diff --git a/third_party/skia/resources/sksl/errors/VoidConstructor.sksl b/third_party/skia/resources/sksl/errors/VoidConstructor.rts similarity index 78% rename from third_party/skia/resources/sksl/errors/VoidConstructor.sksl rename to third_party/skia/resources/sksl/errors/VoidConstructor.rts index 94df380cf001..4739bea3257e 100644 --- a/third_party/skia/resources/sksl/errors/VoidConstructor.sksl +++ b/third_party/skia/resources/sksl/errors/VoidConstructor.rts @@ -1,4 +1,4 @@ -void main() { +void func() { void(); } diff --git a/third_party/skia/resources/sksl/errors/VoidInStruct.sksl b/third_party/skia/resources/sksl/errors/VoidInStruct.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/VoidInStruct.sksl rename to third_party/skia/resources/sksl/errors/VoidInStruct.rts diff --git a/third_party/skia/resources/sksl/errors/VoidVariable.sksl b/third_party/skia/resources/sksl/errors/VoidVariable.rts similarity index 100% rename from third_party/skia/resources/sksl/errors/VoidVariable.sksl rename to third_party/skia/resources/sksl/errors/VoidVariable.rts diff --git a/third_party/skia/resources/sksl/folding/BoolFolding.sksl b/third_party/skia/resources/sksl/folding/BoolFolding.sksl index 5bd19ba84a1f..b0db8dcafe2a 100644 --- a/third_party/skia/resources/sksl/folding/BoolFolding.sksl +++ b/third_party/skia/resources/sksl/folding/BoolFolding.sksl @@ -26,8 +26,11 @@ bool test() { bool s = bool4(true, true, true, true) == bool4(true); bool t = bool4(true, true, true, false) == bool4(true); + bool u = (!a == !a); + bool v = (!a != !a); + return a && !b && c && !d && e && !f && g && !h && i && !j && k && !l && m && !n && o && !p - && q && !r && s && !t; + && q && !r && s && !t && u && !v; } half4 main(float2 coords) { diff --git a/third_party/skia/resources/sksl/folding/MatrixFoldingES2.sksl b/third_party/skia/resources/sksl/folding/MatrixFoldingES2.sksl index ae1f1ed397c2..f38374b313f1 100644 --- a/third_party/skia/resources/sksl/folding/MatrixFoldingES2.sksl +++ b/third_party/skia/resources/sksl/folding/MatrixFoldingES2.sksl @@ -83,13 +83,6 @@ bool test_eq() { ok = ok && (float3x3(1, 2, 3, 4, five, 6, 7, 8, 9)[1] == float3(4, five, 6)); ok = ok && (float3x3(1, 2, 3, 4, five, 6, 7, 8, 9)[2] == float3(7, 8, 9)); } - { - // Side-effecting expressions should never be folded away. - float num = 6.0; - ok = ok && (float3x3(1, 2, 3, 4, 5, num++, 7, 8, 9)[0] == float3(1, 2, 3)); - ok = ok && (float3x3(1, 2, 3, 4, 5, 6, num++, 8, 9)[1] == float3(4, 5, 6)); - ok = ok && (float3x3(1, 2, 3, 4, 5, 6, 7, num++, 9)[2] == float3(7, 8, 9)); - } { // The upper-left 2x2 of the matrix is unknown, but the bottom two rows are still foldable. ok = ok && float4x4(half3x3(testMatrix2x2))[0] == float4(1, 2, 0, 0); @@ -195,10 +188,54 @@ bool test_matrix_op_matrix_half() { return ok; } +bool test_vector_op_matrix_float() { + bool ok = true; + + ok = ok && (float2(1, 2) * float2x2(3, 4, 5, 6) == float2(11, 17)); + ok = ok && (float3(1, 2, 3) * float3x3(-1, 0, 1, 0, 1, 0, 2, 0, 1) == float3(2, 2, 5)); + ok = ok && (float4(1, 2, 3, 4) * float4x4(1, 0, 3, 0, 0, 2, 0, 0, 1, 0, 2, 1, 0, 2, 0, 1) == + float4(10, 4, 11, 8)); + return ok; +} + +bool test_vector_op_matrix_half() { + bool ok = true; + + ok = ok && (half2(1, 2) * half2x2(3, 4, 5, 6) == half2(11, 17)); + ok = ok && (half3(1, 2, 3) * half3x3(-1, 0, 1, 0, 1, 0, 2, 0, 1) == half3(2, 2, 5)); + ok = ok && (half4(1, 2, 3, 4) * half4x4(1, 0, 3, 0, 0, 2, 0, 0, 1, 0, 2, 1, 0, 2, 0, 1) == + half4(10, 4, 11, 8)); + return ok; +} + +bool test_matrix_op_vector_float() { + bool ok = true; + + ok = ok && (float2x2(3, 4, 5, 6) * float2(1, 2) == float2(13, 16)); + ok = ok && (float3x3(-1, 0, 1, 0, 1, 0, 2, 0, 1) * float3(1, 2, 3) == float3(5, 2, 4)); + ok = ok && (float4x4(1, 0, 3, 0, 0, 2, 0, 0, 1, 0, 2, 1, 0, 2, 0, 1) * float4(1, 2, 3, 4) == + float4(4, 12, 9, 7)); + return ok; +} + +bool test_matrix_op_vector_half() { + bool ok = true; + + ok = ok && (half2x2(3, 4, 5, 6) * half2(1, 2) == half2(13, 16)); + ok = ok && (half3x3(-1, 0, 1, 0, 1, 0, 2, 0, 1) * half3(1, 2, 3) == half3(5, 2, 4)); + ok = ok && (half4x4(1, 0, 3, 0, 0, 2, 0, 0, 1, 0, 2, 1, 0, 2, 0, 1) * half4(1, 2, 3, 4) == + half4(4, 12, 9, 7)); + return ok; +} + half4 main(float2 coords) { return (test_eq() && test_matrix_op_scalar_float() && test_matrix_op_scalar_half() && test_matrix_op_matrix_float() && - test_matrix_op_matrix_half()) ? colorGreen : colorRed; + test_matrix_op_matrix_half() && + test_vector_op_matrix_float() && + test_vector_op_matrix_half() && + test_matrix_op_vector_float() && + test_matrix_op_vector_half())? colorGreen : colorRed; } diff --git a/third_party/skia/resources/sksl/folding/MatrixFoldingES3.sksl b/third_party/skia/resources/sksl/folding/MatrixFoldingES3.sksl index ef83bf45867d..f1fb935f15f4 100644 --- a/third_party/skia/resources/sksl/folding/MatrixFoldingES3.sksl +++ b/third_party/skia/resources/sksl/folding/MatrixFoldingES3.sksl @@ -88,9 +88,53 @@ bool test_matrix_op_matrix_half() { return ok; } +bool test_vector_op_matrix_float() { + bool ok = true; + + ok = ok && (float2(1, 2) * float4x2(3, 4, 5, 6, 7, 8, 9, 10) == float4(11, 17, 23, 29)); + ok = ok && (float3(1, 2, 3) * float2x3(-1, 0, 0, 1, 2, 0) == float2(-1, 5)); + ok = ok && (float4(1, 2, 3, 4) * float3x4(1,0,2, 3,-1,0, 0,1,2, 0,1,0) == float3(19, 3, 5)); + + return ok; +} + +bool test_vector_op_matrix_half() { + bool ok = true; + + ok = ok && (half2(1, 2) * half4x2(3, 4, 5, 6, 7, 8, 9, 10) == half4(11, 17, 23, 29)); + ok = ok && (half3(1, 2, 3) * half2x3(-1, 0, 0, 1, 2, 0) == half2(-1, 5)); + ok = ok && (half4(1, 2, 3, 4) * half3x4(1,0,2, 3,-1,0, 0,1,2, 0,1,0) == half3(19, 3, 5)); + + return ok; +} + +bool test_matrix_op_vector_float() { + bool ok = true; + + ok = ok && (float2x4(1, 0, 2, 3, -1, 0, 0, 1) * float2(1, 2) == float4(-1, 0, 2, 5)); + ok = ok && (float3x2(-1, 0, 0, 1, 2, 0) * float3(1, 2, 3) == float2(5, 2)); + ok = ok && (float4x3(3,4,5,6, 7,8,9,10, 11,12,13,14) * float4(1,2,3,4) == float3(90, 100, 110)); + + return ok; +} + +bool test_matrix_op_vector_half() { + bool ok = true; + + ok = ok && (half2x4(1, 0, 2, 3, -1, 0, 0, 1) * half2(1, 2) == half4(-1, 0, 2, 5)); + ok = ok && (half3x2(-1, 0, 0, 1, 2, 0) * half3(1, 2, 3) == half2(5, 2)); + ok = ok && (half4x3(3,4,5,6, 7,8,9,10, 11,12,13,14) * half4(1,2,3,4) == half3(90, 100, 110)); + + return ok; +} + half4 main(float2 coords) { return (test_eq_float() && test_eq_half() && test_matrix_op_matrix_float() && - test_matrix_op_matrix_half()) ? colorGreen : colorRed; + test_matrix_op_matrix_half() && + test_vector_op_matrix_float() && + test_vector_op_matrix_half() && + test_matrix_op_vector_float() && + test_matrix_op_vector_half()) ? colorGreen : colorRed; } diff --git a/third_party/skia/resources/sksl/shared/Negation.sksl b/third_party/skia/resources/sksl/folding/Negation.sksl similarity index 87% rename from third_party/skia/resources/sksl/shared/Negation.sksl rename to third_party/skia/resources/sksl/folding/Negation.sksl index 86f1238aa127..3a5245341e4d 100644 --- a/third_party/skia/resources/sksl/shared/Negation.sksl +++ b/third_party/skia/resources/sksl/folding/Negation.sksl @@ -20,6 +20,10 @@ bool test_fvec() { ok = ok && (half4(1) != -half4(1)); ok = ok && (-half4(two) == half4(-two, half3(-two))); ok = ok && (-half2(-one, one + one) == -half2(one - two, two)); + ok = ok && (-1 * one == -one); + ok = ok && (-two == -1 * two); + ok = ok && (colorGreen.g * -1 == -colorGreen.g); + ok = ok && (-colorGreen == -1 * colorGreen); return ok; } @@ -42,6 +46,10 @@ bool test_ivec() { ok = ok && (int4(1) != -int4(1)); ok = ok && (-int4(two) == int4(-two, int3(-two))); ok = ok && (-int2(-one, one + one) == -int2(one - two, two)); + ok = ok && (-1 * one == -one); + ok = ok && (-two == -1 * two); + ok = ok && (-int(colorGreen.g) == -1 * int(colorGreen.g)); + ok = ok && (int4(colorGreen) * -1 == -int4(colorGreen)); return ok; } diff --git a/third_party/skia/resources/sksl/folding/PreserveSideEffects.sksl b/third_party/skia/resources/sksl/folding/PreserveSideEffects.sksl new file mode 100644 index 000000000000..3bfe27e43d09 --- /dev/null +++ b/third_party/skia/resources/sksl/folding/PreserveSideEffects.sksl @@ -0,0 +1,55 @@ +uniform half4 colorGreen, colorRed; + +// These tests verify that constructor expressions with side-effects do not get folded away. + +bool test_vector() { + bool ok = true; + + float num = 0.0; + ok = ok && float2(++num, 0).y == 0.0; // num => 1 + ok = ok && float2(0, ++num).x == 0.0; // num => 2 + + ok = ok && float3(++num, float2(1, 0)).yz == float2(1, 0); // num => 3 + ok = ok && float3(float2(1, 0), ++num).xy == float2(1, 0); // num => 4 + ok = ok && float3(float2(++num, 1), 0).yz == float2(1, 0); // num => 5 + + ok = ok && float4(++num, float3(1, 0, 0)).yzw == float3(1, 0, 0); // num => 6 + ok = ok && float4(1, ++num, float2(1, 0)).x == 1.0; // num => 7 + ok = ok && float4(float2(1, 0), ++num, 1).w == 1.0; // num => 8 + ok = ok && float4(float2(1, 0), float2(1, ++num)).xyz == float3(1, 0, 1); // num => 9 + + return ok && num == 9.0; +} + +bool test_matrix() { + bool ok = true; + + float num = 0.0; + ok = ok && float2x2(1, 2, 3, ++num)[0] == float2(1, 2); // num => 1 + ok = ok && float2x2(float2(++num), 3, 4)[1] == float2(3, 4); // num => 2 + + ok = ok && float3x3(float3(1), float3(++num), float3(0))[0] == float3(1); // num => 3 + ok = ok && float3x3(float3(1), float3(++num), float3(0))[2] == float3(0); // num => 4 + ok = ok && float3x3(float3(++num), float3(1), float3(0))[1] == float3(1); // num => 5 + + ok = ok && float3x3(1, 2, 3, 4, 5, ++num, 7, 8, 9)[0] == float3(1, 2, 3); // num => 6 + ok = ok && float3x3(1, 2, 3, 4, 5, 6, num++, 8, 9)[1] == float3(4, 5, 6); // num => 7 + + // num => 8 + ok = ok && float4x4(float4(++num), float4(1), float4(2), float4(3))[1] == float4(1); + // num => 9 + ok = ok && float4x4(float4(1), float4(++num), float4(2), float4(3))[2] == float4(2); + // num => 10 + ok = ok && float4x4(float4(1), float4(1), float4(++num), float4(3))[3] == float4(3); + + ok = ok && float4x4(1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12, + 13, 14, ++num, 16)[3].xy == float2(13, 14); // num => 11 + + return ok && num == 11.0; +} + +half4 main(float2 coords) { + return test_vector() && test_matrix() ? colorGreen : colorRed; +} diff --git a/third_party/skia/resources/sksl/folding/TernaryFolding.sksl b/third_party/skia/resources/sksl/folding/TernaryFolding.sksl new file mode 100644 index 000000000000..22ef9a276fea --- /dev/null +++ b/third_party/skia/resources/sksl/folding/TernaryFolding.sksl @@ -0,0 +1,29 @@ +uniform half4 colorRed, colorGreen; + +bool do_side_effect(out bool x) { + x = true; + return false; +} + +const bool TRUE = true; +const bool FALSE = false; + +half4 main(float2 coords) { + bool ok; + + ok = (colorRed == colorGreen) ? true : true; + + ok = ok && (colorGreen.g == 1 ? true : true); + ok = ok && (colorGreen.g == 0 ? TRUE : true); + ok = ok || (colorGreen.g == 1 ? false : false); + ok = ok || (colorGreen.g == 0 ? false : FALSE); + + half4 green = coords.x == coords.y ? colorGreen : colorGreen; + half4 red = coords.x != coords.y ? colorRed : colorRed; + + // Make sure side effects are honored. + bool param = false; + bool call = do_side_effect(param) ? true : true; + + return (ok && param && call) ? green : red; +} diff --git a/third_party/skia/resources/sksl/runtime/LoopInt.rts b/third_party/skia/resources/sksl/runtime/LoopInt.rts index 849b6915a2c0..4eaa9584b500 100644 --- a/third_party/skia/resources/sksl/runtime/LoopInt.rts +++ b/third_party/skia/resources/sksl/runtime/LoopInt.rts @@ -105,7 +105,10 @@ bool loop_operator_eq() { half4 main(float2 pos) { int five = int(clamp(pos.x, colorGreen.g, colorGreen.a)) * 5; - return (return_loop(five) == 5 && continue_loop(five) == 35 && break_loop(five) == 15 && + + // We pass a literal 5 into `break_loop` instead of the variable `five` as a workaround for + // a Metal crash bug in macOS 12. (skia:13005; Apple FB9937818) + return (return_loop(five) == 5 && continue_loop(five) == 35 && break_loop(5) == 15 && loop_operator_le() && loop_operator_lt() && loop_operator_ge() && loop_operator_gt() && loop_operator_eq() && loop_operator_ne()) ? colorGreen : colorRed; diff --git a/third_party/skia/resources/sksl/runtime/MultipleCallsInOneStatement.rts b/third_party/skia/resources/sksl/runtime/MultipleCallsInOneStatement.rts new file mode 100644 index 000000000000..6b4ac141b326 --- /dev/null +++ b/third_party/skia/resources/sksl/runtime/MultipleCallsInOneStatement.rts @@ -0,0 +1,13 @@ +/*#pragma settings SkVMDebugTrace*/ + +uniform half4 colorRed, colorGreen; + +int get(int x) { + return x; +} + +half4 main(float2 pos) { + // We should have three separate slots for `[get].result` here. + int ten = get(5) + get(3) + get(2); + return (ten == 10) ? colorGreen : colorRed; +} diff --git a/third_party/skia/resources/sksl/runtime_errors/IllegalShaderUse.rts b/third_party/skia/resources/sksl/runtime_errors/IllegalShaderUse.rts index 58e85e503a68..8d2883f30d6d 100644 --- a/third_party/skia/resources/sksl/runtime_errors/IllegalShaderUse.rts +++ b/third_party/skia/resources/sksl/runtime_errors/IllegalShaderUse.rts @@ -9,8 +9,21 @@ uniform float2 xy; // Incorrect shader declarations (they must be uniform) shader s3; in shader s4; +// Incorrect shader declarations (no opaque types in structs or arrays) +struct S { shader sh; }; +uniform S s5; +uniform shader s6[2]; // Various places that shaders should not be allowed: +bool equality() { return s1 == s2; } +bool comparison() { return s1 < s2; } +bool unary_not() { return !s1; } +void unary_neg() { -s1; } +void unary_pos() { +s1; } +void arithmetic() { s1 * s2; } +void index() { s1[0]; } +void swizzle() { s1.xyz; } +void assignment() { s1 = s2; } half4 local() { shader s; return s.eval(xy); } half4 parameter(shader s) { return s.eval(xy); } shader returned() { return s1; } @@ -22,6 +35,17 @@ half4 dangling_eval() { s1.eval; } variables of type 'shader' must be uniform 'in' variables not permitted in runtime effects variables of type 'shader' must be uniform +opaque type 'shader' is not permitted in a struct +opaque type 'shader' may not be used in an array +type mismatch: '==' cannot operate on 'shader', 'shader' +type mismatch: '<' cannot operate on 'shader', 'shader' +'!' cannot operate on 'shader' +'-' cannot operate on 'shader' +'+' cannot operate on 'shader' +type mismatch: '*' cannot operate on 'shader', 'shader' +expected array, but found 'shader' +type 'shader' has no method named 'xyz' +cannot modify immutable variable 's1' variables of type 'shader' must be global variables of type 'shader' must be uniform parameters of type 'shader' not allowed diff --git a/third_party/skia/resources/sksl/runtime_errors/Ossfuzz45279.rts b/third_party/skia/resources/sksl/runtime_errors/Ossfuzz45279.rts new file mode 100644 index 000000000000..a387ee583428 --- /dev/null +++ b/third_party/skia/resources/sksl/runtime_errors/Ossfuzz45279.rts @@ -0,0 +1,8 @@ +void c(int) {} +void b(int i) { c(i)==c(i); } +void a(int) { b(0); } +half4 main(float2) { int i; a(i); return half4(0); } + +/*%%* +type mismatch: '==' cannot operate on 'void', 'void' +*%%*/ diff --git a/third_party/skia/resources/sksl/shared/DoubleNegation.sksl b/third_party/skia/resources/sksl/shared/DoubleNegation.sksl new file mode 100644 index 000000000000..d587d83720e1 --- /dev/null +++ b/third_party/skia/resources/sksl/shared/DoubleNegation.sksl @@ -0,0 +1,5 @@ +uniform half4 colorGreen; + +half4 main(float2 coords) { + return half4(half(-(-int(colorGreen.r))), -(-colorGreen.g), -(-(colorGreen.ba))); +} diff --git a/third_party/skia/resources/sksl/shared/InoutParamsAreDistinct.sksl b/third_party/skia/resources/sksl/shared/InoutParamsAreDistinct.sksl new file mode 100644 index 000000000000..9b426246ca86 --- /dev/null +++ b/third_party/skia/resources/sksl/shared/InoutParamsAreDistinct.sksl @@ -0,0 +1,12 @@ +uniform half4 colorGreen, colorRed; + +bool inout_params_are_distinct(inout half x, inout half y) { + x = 1; + y = 2; + return x == 1 && y == 2; +} + +half4 main(float2 coords) { + half x = 0; + return inout_params_are_distinct(x, x) ? colorGreen : colorRed; +} diff --git a/third_party/skia/resources/sksl/shared/OutParamsAreDistinctFromGlobal.sksl b/third_party/skia/resources/sksl/shared/OutParamsAreDistinctFromGlobal.sksl new file mode 100644 index 000000000000..f583847fc18c --- /dev/null +++ b/third_party/skia/resources/sksl/shared/OutParamsAreDistinctFromGlobal.sksl @@ -0,0 +1,11 @@ +uniform half4 colorGreen, colorRed; + +half x = 1; +bool out_params_are_distinct_from_global(out half y) { + y = 2; + return x == 1 && y == 2; +} + +half4 main(float2 coords) { + return out_params_are_distinct_from_global(x) ? colorGreen : colorRed; +} diff --git a/third_party/skia/resources/sksl/shared/UnaryPositiveNegative.sksl b/third_party/skia/resources/sksl/shared/UnaryPositiveNegative.sksl index 3f122c0804b7..8580af9b2b57 100644 --- a/third_party/skia/resources/sksl/shared/UnaryPositiveNegative.sksl +++ b/third_party/skia/resources/sksl/shared/UnaryPositiveNegative.sksl @@ -1,8 +1,72 @@ uniform half4 colorWhite, colorGreen, colorRed; +uniform float2x2 testMatrix2x2; +uniform float3x3 testMatrix3x3; +uniform float4x4 testMatrix4x4; -half4 main(float2 coords) { +bool test_fscalar() { + float x = colorWhite.r; + x = +x; + x = -x; + return x == -1; +} + +bool test_iscalar() { + int x = int(colorWhite.r); + x = +x; + x = -x; + return x == -1; +} + +bool test_fvec() { half2 x = colorWhite.rg; x = +x; x = -x; - return x == half2(-1) ? colorGreen : colorRed; + return x == half2(-1); +} + +bool test_ivec() { + int2 x = int2(colorWhite.r); + x = +x; + x = -x; + return x == int2(-1); +} + +bool test_mat2() { + const float2x2 negated = float2x2(-1, -2, + -3, -4); + float2x2 x = testMatrix2x2; + x = +x; + x = -x; + return x == negated; +} + +bool test_mat3() { + const float3x3 negated = float3x3(-1, -2, -3, + -4, -5, -6, + -7, -8, -9); + float3x3 x = testMatrix3x3; + x = +x; + x = -x; + return x == negated; +} + +bool test_mat4() { + const float4x4 negated = float4x4(-1, -2, -3, -4, + -5, -6, -7, -8, + -9, -10, -11, -12, + -13, -14, -15, -16); + float4x4 x = testMatrix4x4; + x = +x; + x = -x; + return x == negated; +} + +half4 main(float2 coords) { + return test_fscalar() + && test_iscalar() + && test_fvec() + && test_ivec() + && test_mat2() + && test_mat3() + && test_mat4() ? colorGreen : colorRed; } diff --git a/third_party/skia/resources/sksl/spirv/ConstantVectorize.sksl b/third_party/skia/resources/sksl/spirv/ConstantVectorize.sksl new file mode 100644 index 000000000000..c9f2a91ea28f --- /dev/null +++ b/third_party/skia/resources/sksl/spirv/ConstantVectorize.sksl @@ -0,0 +1,9 @@ +uniform half4 colorGreen; + +half4 main(float2 coords) { + // We should see only one `OpConstantComposite %v2float %float_3 %float_3` in the output. + float2 a = max(coords, 3.0); + float2 b = min(coords, 3.0); + a = b; + return colorGreen; +} diff --git a/third_party/skia/samplecode/Sample.cpp b/third_party/skia/samplecode/Sample.cpp index a69de8e63827..b075d789f0d8 100644 --- a/third_party/skia/samplecode/Sample.cpp +++ b/third_party/skia/samplecode/Sample.cpp @@ -59,6 +59,13 @@ void Sample::draw(SkCanvas* canvas) { } } +bool Sample::animate(double nanos) { + if (!fHaveCalledOnceBeforeDraw) { + fHaveCalledOnceBeforeDraw = true; + this->onOnceBeforeDraw(); + } + return this->onAnimate(nanos); +} //////////////////////////////////////////////////////////////////////////// bool Sample::mouse(SkPoint point, skui::InputState clickState, skui::ModifierKey modifierKeys) { diff --git a/third_party/skia/samplecode/Sample.h b/third_party/skia/samplecode/Sample.h index f1026bddcb00..0314d629e08c 100644 --- a/third_party/skia/samplecode/Sample.h +++ b/third_party/skia/samplecode/Sample.h @@ -74,7 +74,7 @@ class Sample { bool mouse(SkPoint point, skui::InputState clickState, skui::ModifierKey modifierKeys); void setBGColor(SkColor color) { fBGColor = color; } - bool animate(double nanos) { return this->onAnimate(nanos); } + bool animate(double nanos); virtual SkString name() = 0; diff --git a/third_party/skia/samplecode/Sample3D.cpp b/third_party/skia/samplecode/Sample3D.cpp index 7e958bc1b7c1..ec1fa627fdc7 100644 --- a/third_party/skia/samplecode/Sample3D.cpp +++ b/third_party/skia/samplecode/Sample3D.cpp @@ -9,6 +9,7 @@ #include "include/core/SkM44.h" #include "include/core/SkPaint.h" #include "include/core/SkRRect.h" +#include "include/core/SkStream.h" #include "include/core/SkVertices.h" #include "include/utils/SkRandom.h" #include "samplecode/Sample.h" @@ -118,7 +119,7 @@ struct Face { } }; -static bool front(const SkM44& m) { +static bool isFrontFacing(const SkM44& m) { SkM44 m2(SkM44::kUninitialized_Constructor); if (!m.invert(&m2)) { m2.setIdentity(); @@ -264,8 +265,7 @@ class SampleCubeBase : public Sample3DView { return this->Sample3DView::onChar(uni); } - virtual void drawContent( - SkCanvas* canvas, SkColor, int index, bool drawFront, const SkM44& localToWorld) = 0; + virtual void drawFace(SkCanvas*, SkColor, int face, bool front, const SkM44& localToWorld) = 0; void onDrawContent(SkCanvas* canvas) override { if (!canvas->recordingContext() && !(fFlags & kCanRunOnCPU)) { @@ -277,21 +277,21 @@ class SampleCubeBase : public Sample3DView { this->concatCamera(canvas, {0, 0, 400, 400}, 200); - for (bool drawFront : {false, true}) { + SkM44 m = fRotateAnimator.rotation() * fRotation; + for (bool front : {false, true}) { int index = 0; for (auto f : faces) { SkAutoCanvasRestore acr(canvas, true); SkM44 trans = SkM44::Translate(200, 200, 0); // center of the rotation - SkM44 m = fRotateAnimator.rotation() * fRotation * f.asM44(200); canvas->concat(trans); // "World" space - content is centered at the origin, in device scale (+-200) - SkM44 localToWorld = m * inv(trans); + SkM44 localToWorld = m * f.asM44(200) * inv(trans); canvas->concat(localToWorld); - this->drawContent(canvas, f.fColor, index++, drawFront, localToWorld); + this->drawFace(canvas, f.fColor, index++, front, localToWorld); } } @@ -409,12 +409,9 @@ class SampleBump3D : public SampleCubeBase { fEffect = effect; } - void drawContent(SkCanvas* canvas, - SkColor color, - int index, - bool drawFront, - const SkM44& localToWorld) override { - if (!drawFront || !front(canvas->getLocalToDevice())) { + void drawFace(SkCanvas* canvas, SkColor color, int face, bool front, + const SkM44& localToWorld) override { + if (!front || !isFrontFacing(canvas->getLocalToDevice())) { return; } @@ -462,9 +459,8 @@ class SampleSkottieCube : public SampleCubeBase { } } - void drawContent( - SkCanvas* canvas, SkColor color, int index, bool drawFront, const SkM44&) override { - if (!drawFront || !front(canvas->getLocalToDevice())) { + void drawFace(SkCanvas* canvas, SkColor color, int face, bool front, const SkM44&) override { + if (!front || !isFrontFacing(canvas->getLocalToDevice())) { return; } @@ -472,7 +468,7 @@ class SampleSkottieCube : public SampleCubeBase { paint.setColor(color); SkRect r = {0, 0, 400, 400}; canvas->drawRect(r, paint); - fAnim[index]->render(canvas, &r); + fAnim[face]->render(canvas, &r); } bool onAnimate(double nanos) override { diff --git a/third_party/skia/samplecode/SampleAnimatedText.cpp b/third_party/skia/samplecode/SampleAnimatedText.cpp index 80aafdc85ec2..d452d08696e7 100644 --- a/third_party/skia/samplecode/SampleAnimatedText.cpp +++ b/third_party/skia/samplecode/SampleAnimatedText.cpp @@ -18,7 +18,7 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #endif SkRandom gRand; diff --git a/third_party/skia/samplecode/SampleChineseFling.cpp b/third_party/skia/samplecode/SampleChineseFling.cpp index 0e62725f25b8..529c279b63d8 100644 --- a/third_party/skia/samplecode/SampleChineseFling.cpp +++ b/third_party/skia/samplecode/SampleChineseFling.cpp @@ -18,7 +18,7 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #endif static sk_sp chinese_typeface() { diff --git a/third_party/skia/samplecode/SampleClip.cpp b/third_party/skia/samplecode/SampleClip.cpp index 358e3f805e91..2d0fdfdc9831 100644 --- a/third_party/skia/samplecode/SampleClip.cpp +++ b/third_party/skia/samplecode/SampleClip.cpp @@ -10,6 +10,7 @@ #include "include/core/SkFont.h" #include "include/core/SkPaint.h" #include "include/core/SkPathBuilder.h" +#include "include/core/SkRRect.h" #include "include/utils/SkRandom.h" #include "samplecode/Sample.h" #include "src/core/SkPathPriv.h" diff --git a/third_party/skia/samplecode/SampleDegenerateQuads.cpp b/third_party/skia/samplecode/SampleDegenerateQuads.cpp index e3ab138632ab..da1e47c22b34 100644 --- a/third_party/skia/samplecode/SampleDegenerateQuads.cpp +++ b/third_party/skia/samplecode/SampleDegenerateQuads.cpp @@ -7,8 +7,8 @@ #include "samplecode/Sample.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/ops/QuadPerEdgeAA.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/ops/QuadPerEdgeAA.h" #include "include/core/SkCanvas.h" #include "include/core/SkPaint.h" diff --git a/third_party/skia/samplecode/SamplePathTessellators.cpp b/third_party/skia/samplecode/SamplePathTessellators.cpp index 30f43833a230..72a28086da0e 100644 --- a/third_party/skia/samplecode/SamplePathTessellators.cpp +++ b/third_party/skia/samplecode/SamplePathTessellators.cpp @@ -12,19 +12,18 @@ #if SK_SUPPORT_GPU #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" -#include "src/gpu/ops/TessellationPathRenderer.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/ops/PathTessellator.h" +#include "src/gpu/ganesh/ops/TessellationPathRenderer.h" +#include "src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "src/gpu/tessellate/AffineMatrix.h" #include "src/gpu/tessellate/MiddleOutPolygonTriangulator.h" -#include "src/gpu/tessellate/PathCurveTessellator.h" -#include "src/gpu/tessellate/PathWedgeTessellator.h" -#include "src/gpu/tessellate/shaders/GrPathTessellationShader.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" -namespace skgpu { +namespace skgpu::v1 { namespace { @@ -87,32 +86,8 @@ class SamplePathTessellatorOp : public GrDrawOp { int numVerbsToGetTessellation = caps.minPathVerbsForHwTessellation(); auto pipeline = GrSimpleMeshDrawOpHelper::CreatePipeline(flushState, std::move(fProcessors), fPipelineFlags); - int numVerbs; - bool needsInnerFan; - switch (fMode) { - case Mode::kWedgeMiddleOut: - fTessellator = PathWedgeTessellator::Make(alloc, shaderCaps.infinitySupport()); - numVerbs = numVerbsToGetMiddleOut; - needsInnerFan = false; - break; - case Mode::kCurveMiddleOut: - fTessellator = PathCurveTessellator::Make(alloc, - shaderCaps.infinitySupport()); - numVerbs = numVerbsToGetMiddleOut; - needsInnerFan = true; - break; - case Mode::kWedgeTessellate: - fTessellator = PathWedgeTessellator::Make(alloc, shaderCaps.infinitySupport()); - numVerbs = numVerbsToGetTessellation; - needsInnerFan = false; - break; - case Mode::kCurveTessellate: - fTessellator = PathCurveTessellator::Make(alloc, - shaderCaps.infinitySupport()); - numVerbs = numVerbsToGetTessellation; - needsInnerFan = true; - break; - } + int numVerbs = (fMode == Mode::kWedgeMiddleOut || fMode == Mode::kCurveMiddleOut) ? + numVerbsToGetMiddleOut : numVerbsToGetTessellation; auto* tessShader = GrPathTessellationShader::Make(alloc, shaderMatrix, kCyan, @@ -130,35 +105,38 @@ class SamplePathTessellatorOp : public GrDrawOp { &GrUserStencilSettings::kUnused); - int patchPreallocCount = fTessellator->patchPreallocCount(fPath.countVerbs()); - if (needsInnerFan) { - patchPreallocCount += fPath.countVerbs() - 1; - } - PatchWriter patchWriter(flushState, - fTessellator, - tessShader->maxTessellationSegments(*caps.shaderCaps()), - patchPreallocCount); - - if (needsInnerFan) { - // Write out inner fan triangles. - AffineMatrix m(pathMatrix); + int maxSegments = tessShader->maxTessellationSegments(*caps.shaderCaps()); + PathTessellator::PathDrawList pathList{pathMatrix, fPath, kCyan}; + + if (fMode == Mode::kCurveTessellate || fMode == Mode::kCurveMiddleOut) { + // This emulates what PathStencilCoverOp does when using curves, except we include the + // middle-out triangles directly in the written patches for convenience (normally they + // use a simple triangle pipeline). But PathCurveTessellator only knows how to read + // extra triangles from BreadcrumbTriangleList, so build on from the middle-out stack. + SkArenaAlloc storage{256}; + GrInnerFanTriangulator::BreadcrumbTriangleList triangles; for (PathMiddleOutFanIter it(fPath); !it.done();) { for (auto [p0, p1, p2] : it.nextStack()) { - auto [mp0, mp1] = m.map2Points(p0, p1); - auto mp2 = m.map1Point(&p2); - patchWriter.writeTriangle(mp0, mp1, mp2); + triangles.append(&storage, + pathMatrix.mapPoint(p0), + pathMatrix.mapPoint(p1), + pathMatrix.mapPoint(p2), + /*winding=*/1); } } - } - - // Write out the curves. - fTessellator->writePatches(patchWriter, shaderMatrix, {pathMatrix, fPath, kCyan}); - if (!tessShader->willUseTessellationShaders()) { - fTessellator->prepareFixedCountBuffers(flushState); + auto* tess = PathCurveTessellator::Make(alloc, shaderCaps.infinitySupport()); + tess->prepareWithTriangles(flushState, maxSegments, shaderMatrix, &triangles, pathList, + fPath.countVerbs(),tessShader->willUseTessellationShaders()); + fTessellator = tess; + } else { + // This emulates what PathStencilCoverOp does when using wedges. + fTessellator = PathWedgeTessellator::Make(alloc, shaderCaps.infinitySupport()); + fTessellator->prepare(flushState, maxSegments, shaderMatrix, pathList, + fPath.countVerbs(), tessShader->willUseTessellationShaders()); } - } + void onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) override { flushState->bindPipeline(*fProgram, chainBounds); fTessellator->draw(flushState, fProgram->geomProc().willUseTessellationShaders()); @@ -362,6 +340,6 @@ bool SamplePathTessellators::onChar(SkUnichar unichar) { Sample* MakeTessellatedPathSample() { return new SamplePathTessellators; } static SampleRegistry gTessellatedPathSample(MakeTessellatedPathSample); -} // namespace skgpu +} // namespace skgpu::v1 #endif // SK_SUPPORT_GPU diff --git a/third_party/skia/samplecode/SampleRectanizer.cpp b/third_party/skia/samplecode/SampleRectanizer.cpp index 2b81079973b4..09e8f4e37199 100644 --- a/third_party/skia/samplecode/SampleRectanizer.cpp +++ b/third_party/skia/samplecode/SampleRectanizer.cpp @@ -12,8 +12,8 @@ #include "samplecode/Sample.h" #include "src/utils/SkUTF.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrRectanizerPow2.h" -#include "src/gpu/GrRectanizerSkyline.h" +#include "src/gpu/ganesh/GrRectanizerPow2.h" +#include "src/gpu/ganesh/GrRectanizerSkyline.h" // This slide visualizes the various GrRectanizer-derived classes behavior // for various input sets diff --git a/third_party/skia/samplecode/SampleSBIX.cpp b/third_party/skia/samplecode/SampleSBIX.cpp new file mode 100644 index 000000000000..21bf2d040af7 --- /dev/null +++ b/third_party/skia/samplecode/SampleSBIX.cpp @@ -0,0 +1,374 @@ +/* + * Copyright 2022 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/SkCanvas.h" +#include "include/core/SkColor.h" +#include "include/core/SkFont.h" +#include "include/core/SkFontMgr.h" +#include "include/core/SkGraphics.h" +#include "include/core/SkTime.h" +#include "include/core/SkTypeface.h" +#include "include/ports/SkFontMgr_empty.h" +#include "samplecode/Sample.h" +#include "src/sfnt/SkOTTable_glyf.h" +#include "src/sfnt/SkOTTable_head.h" +#include "src/sfnt/SkOTTable_hhea.h" +#include "src/sfnt/SkOTTable_hmtx.h" +#include "src/sfnt/SkOTTable_loca.h" +#include "src/sfnt/SkOTTable_maxp.h" +#include "src/sfnt/SkSFNTHeader.h" +#include "tools/Resources.h" +#include "tools/timer/TimeUtils.h" + +namespace { + +constexpr SkScalar DX = 100; +constexpr SkScalar DY = 300; +constexpr int kPointSize = 5; +constexpr SkScalar kFontSize = 200; + +constexpr char kFontFile[] = "fonts/sbix_uncompressed_flags.ttf"; +constexpr SkGlyphID kGlyphID = 2; + +//constexpr char kFontFile[] = "fonts/HangingS.ttf"; +//constexpr SkGlyphID kGlyphID = 4; + +/** + * Return the closest int for the given float. Returns SK_MaxS32FitsInFloat for NaN. + */ +static inline int16_t sk_float_saturate2int16(float x) { + x = x < SK_MaxS16 ? x : SK_MaxS16; + x = x > SK_MinS16 ? x : SK_MinS16; + return (int16_t)x; +} + +struct ShortCoordinate { bool negative; uint8_t magnitude; }; +static inline ShortCoordinate sk_float_saturate2sm8(float x) { + bool negative = x < 0; + x = x < 255 ? x : 255; + x = x > -255 ? x : -255; + return ShortCoordinate{ negative, negative ? (uint8_t)-x : (uint8_t)x }; +} + +struct SBIXView : public Sample { + SkString name() override { return SkString("SBIX"); } + + SkPoint fPts[12] = { + {0, 0}, // min + {0, 0}, // max + {0, 20}, // lsb + {0, 0}, // point + }; + std::vector> fFontMgr; + std::vector fFonts; + sk_sp fSBIXData; + bool fInputChanged = false; + bool fDirty = true; + + sk_sp updateSBIXData(SkData* originalData, bool setPts) { + // Lots of unlikely to be aligned pointers in here, which is UB. Total hack. + + sk_sp dataCopy = SkData::MakeWithCopy(originalData->data(), originalData->size()); + + SkSFNTHeader* sfntHeader = static_cast(dataCopy->writable_data()); + + SkASSERT_RELEASE(memcmp(sfntHeader, originalData->data(), originalData->size()) == 0); + + SkSFNTHeader::TableDirectoryEntry* tableEntry = + SkTAfter(sfntHeader); + SkSFNTHeader::TableDirectoryEntry* glyfTableEntry = nullptr; + SkSFNTHeader::TableDirectoryEntry* headTableEntry = nullptr; + SkSFNTHeader::TableDirectoryEntry* hheaTableEntry = nullptr; + SkSFNTHeader::TableDirectoryEntry* hmtxTableEntry = nullptr; + SkSFNTHeader::TableDirectoryEntry* locaTableEntry = nullptr; + SkSFNTHeader::TableDirectoryEntry* maxpTableEntry = nullptr; + int numTables = SkEndian_SwapBE16(sfntHeader->numTables); + for (int tableEntryIndex = 0; tableEntryIndex < numTables; ++tableEntryIndex) { + if (SkOTTableGlyph::TAG == tableEntry[tableEntryIndex].tag) { + glyfTableEntry = tableEntry + tableEntryIndex; + } + if (SkOTTableHead::TAG == tableEntry[tableEntryIndex].tag) { + headTableEntry = tableEntry + tableEntryIndex; + } + if (SkOTTableHorizontalHeader::TAG == tableEntry[tableEntryIndex].tag) { + hheaTableEntry = tableEntry + tableEntryIndex; + } + if (SkOTTableHorizontalMetrics::TAG == tableEntry[tableEntryIndex].tag) { + hmtxTableEntry = tableEntry + tableEntryIndex; + } + if (SkOTTableIndexToLocation::TAG == tableEntry[tableEntryIndex].tag) { + locaTableEntry = tableEntry + tableEntryIndex; + } + if (SkOTTableMaximumProfile::TAG == tableEntry[tableEntryIndex].tag) { + maxpTableEntry = tableEntry + tableEntryIndex; + } + } + SkASSERT_RELEASE(glyfTableEntry); + SkASSERT_RELEASE(headTableEntry); + SkASSERT_RELEASE(hheaTableEntry); + SkASSERT_RELEASE(hmtxTableEntry); + SkASSERT_RELEASE(locaTableEntry); + SkASSERT_RELEASE(maxpTableEntry); + + size_t glyfTableOffset = SkEndian_SwapBE32(glyfTableEntry->offset); + SkOTTableGlyph* glyfTable = + SkTAddOffset(sfntHeader, glyfTableOffset); + + size_t headTableOffset = SkEndian_SwapBE32(headTableEntry->offset); + SkOTTableHead* headTable = + SkTAddOffset(sfntHeader, headTableOffset); + + size_t hheaTableOffset = SkEndian_SwapBE32(hheaTableEntry->offset); + SkOTTableHorizontalHeader* hheaTable = + SkTAddOffset(sfntHeader, hheaTableOffset); + + size_t hmtxTableOffset = SkEndian_SwapBE32(hmtxTableEntry->offset); + SkOTTableHorizontalMetrics* hmtxTable = + SkTAddOffset(sfntHeader, hmtxTableOffset); + + size_t locaTableOffset = SkEndian_SwapBE32(locaTableEntry->offset); + SkOTTableIndexToLocation* locaTable = + SkTAddOffset(sfntHeader, locaTableOffset); + + size_t maxpTableOffset = SkEndian_SwapBE32(maxpTableEntry->offset); + SkOTTableMaximumProfile* maxpTable = + SkTAddOffset(sfntHeader, maxpTableOffset); + + SkASSERT_RELEASE(SkEndian_SwapBE32(maxpTable->version.version) == 0x00010000); + int numGlyphs = SkEndian_SwapBE16(maxpTable->version.tt.numGlyphs); + SkASSERT_RELEASE(kGlyphID < numGlyphs); + + int emSize = SkEndian_SwapBE16(headTable->unitsPerEm); + SkScalar toEm = emSize / kFontSize; + + SkOTTableGlyph::Iterator glyphIter(*glyfTable, *locaTable, headTable->indexToLocFormat); + glyphIter.advance(kGlyphID); + SkOTTableGlyphData* glyphData = glyphIter.next(); + if (glyphData) { + if (setPts) { + fPts[0].set((int16_t)SkEndian_SwapBE16(glyphData->xMin) / toEm, + (int16_t)SkEndian_SwapBE16(glyphData->yMin) / -toEm); + fPts[1].set((int16_t)SkEndian_SwapBE16(glyphData->xMax) / toEm, + (int16_t)SkEndian_SwapBE16(glyphData->yMax) / -toEm); + } else { + glyphData->xMin = SkEndian_SwapBE16(sk_float_saturate2int16( fPts[0].x()*toEm)); + glyphData->yMin = SkEndian_SwapBE16(sk_float_saturate2int16(-fPts[0].y()*toEm)); + glyphData->xMax = SkEndian_SwapBE16(sk_float_saturate2int16( fPts[1].x()*toEm)); + glyphData->yMax = SkEndian_SwapBE16(sk_float_saturate2int16(-fPts[1].y()*toEm)); + } + + int contourCount = SkEndian_SwapBE16(glyphData->numberOfContours); + if (contourCount > 0) { + SK_OT_USHORT* endPtsOfContours = SkTAfter(glyphData); + SK_OT_USHORT* numInstructions = SkTAfter(endPtsOfContours, + contourCount); + SK_OT_BYTE* instructions = SkTAfter(numInstructions); + SkOTTableGlyphData::Simple::Flags* flags = + SkTAfter( + instructions, SkEndian_SwapBE16(*numInstructions)); + + int numResultPoints = SkEndian_SwapBE16(endPtsOfContours[contourCount-1]) + 1; + struct Coordinate { + SkOTTableGlyphData::Simple::Flags* flags; + size_t offsetToXDelta; + size_t xDeltaSize; + size_t offsetToYDelta; + size_t yDeltaSize; + }; + std::vector coordinates(numResultPoints); + + size_t offsetToXDelta = 0; + size_t offsetToYDelta = 0; + SkOTTableGlyphData::Simple::Flags* currentFlags = flags; + for (int i = 0; i < numResultPoints; ++i) { + SkOTTableGlyphData::Simple::Flags* nextFlags; + int times = 1; + if (currentFlags->field.Repeat) { + SK_OT_BYTE* repeat = SkTAfter(currentFlags); + times += *repeat; + nextFlags = SkTAfter(repeat); + } else { + nextFlags = SkTAfter(currentFlags); + } + + --i; + for (int time = 0; time < times; ++time) { + ++i; + coordinates[i].flags = currentFlags; + coordinates[i].offsetToXDelta = offsetToXDelta; + coordinates[i].offsetToYDelta = offsetToYDelta; + + if (currentFlags->field.xShortVector) { + offsetToXDelta += 1; + coordinates[i].xDeltaSize = 1; + } else if (currentFlags->field.xIsSame_xShortVectorPositive) { + offsetToXDelta += 0; + if (i == 0) { + coordinates[i].xDeltaSize = 0; + } else { + coordinates[i].xDeltaSize = coordinates[i-1].xDeltaSize; + } + } else { + offsetToXDelta += 2; + coordinates[i].xDeltaSize = 2; + } + + if (currentFlags->field.yShortVector) { + offsetToYDelta += 1; + coordinates[i].yDeltaSize = 1; + } else if (currentFlags->field.yIsSame_yShortVectorPositive) { + offsetToYDelta += 0; + if (i == 0) { + coordinates[i].yDeltaSize = 0; + } else { + coordinates[i].yDeltaSize = coordinates[i-1].yDeltaSize; + } + } else { + offsetToYDelta += 2; + coordinates[i].yDeltaSize = 2; + } + } + currentFlags = nextFlags; + } + SK_OT_BYTE* xCoordinates = reinterpret_cast(currentFlags); + SK_OT_BYTE* yCoordinates = xCoordinates + offsetToXDelta; + + int pointIndex = 0; + if (coordinates[pointIndex].xDeltaSize == 0) { + // Zero delta relative to the origin. There is no data to modify. + SkDebugf("Failed to move point in X at all.\n"); + } else if (coordinates[pointIndex].xDeltaSize == 1) { + ShortCoordinate x = sk_float_saturate2sm8(fPts[3].x()*toEm); + xCoordinates[coordinates[pointIndex].offsetToXDelta] = x.magnitude; + coordinates[pointIndex].flags->field.xIsSame_xShortVectorPositive = !x.negative; + } else { + *reinterpret_cast(xCoordinates + coordinates[pointIndex].offsetToXDelta) = + SkEndian_SwapBE16(sk_float_saturate2int16(fPts[3].x()*toEm)); + } + + if (coordinates[pointIndex].yDeltaSize == 0) { + // Zero delta relative to the origin. There is no data to modify. + SkDebugf("Failed to move point in Y at all.\n"); + } else if (coordinates[pointIndex].yDeltaSize == 1) { + ShortCoordinate y = sk_float_saturate2sm8(-fPts[3].y()*toEm); + yCoordinates[coordinates[pointIndex].offsetToYDelta] = y.magnitude; + coordinates[pointIndex].flags->field.yIsSame_yShortVectorPositive = !y.negative; + } else { + *reinterpret_cast(yCoordinates + coordinates[pointIndex].offsetToYDelta) = + SkEndian_SwapBE16(sk_float_saturate2int16(-fPts[3].y()*toEm)); + } + } + } + + int numberOfFullMetrics = SkEndian_SwapBE16(hheaTable->numberOfHMetrics); + SkOTTableHorizontalMetrics::FullMetric* fullMetrics = hmtxTable->longHorMetric; + SK_OT_SHORT lsb = SkEndian_SwapBE16(sk_float_saturate2int16(fPts[2].x()*toEm)); + if (kGlyphID < numberOfFullMetrics) { + if (setPts) { + fPts[2].fX = (int16_t)SkEndian_SwapBE16(fullMetrics[kGlyphID].lsb) / toEm; + } else { + fullMetrics[kGlyphID].lsb = lsb; + } + } else { + SkOTTableHorizontalMetrics::ShortMetric* shortMetrics = + SkTAfter(fullMetrics, numberOfFullMetrics); + int shortMetricIndex = kGlyphID - numberOfFullMetrics; + if (setPts) { + fPts[2].fX = (int16_t)SkEndian_SwapBE16(shortMetrics[shortMetricIndex].lsb) / toEm; + } else { + shortMetrics[shortMetricIndex].lsb = lsb; + } + } + + headTable->flags.field.LeftSidebearingAtX0 = false; + return dataCopy; + } + + void onOnceBeforeDraw() override { + fFontMgr.emplace_back(SkFontMgr::RefDefault()); + //fFontMgr.emplace_back(SkFontMgr_New_Custom_Empty()); + // GetResourceAsData may be backed by a read only file mapping. + // For sanity always make a copy. + fSBIXData = GetResourceAsData(kFontFile); + this->setBGColor(SK_ColorGRAY); + + updateSBIXData(fSBIXData.get(), true); + } + + void onDrawContent(SkCanvas* canvas) override { + canvas->translate(DX, DY); + + SkPaint paint; + SkPoint position{0, 0}; + SkPoint origin{0, 0}; + + if (fDirty) { + sk_sp data(updateSBIXData(fSBIXData.get(), false)); + fFonts.clear(); + for (auto&& fontmgr : fFontMgr) { + fFonts.emplace_back(fontmgr->makeFromData(data), kFontSize); + } + fDirty = false; + } + for (auto&& font : fFonts) { + paint.setStyle(SkPaint::kFill_Style); + paint.setColor(SK_ColorBLACK); + canvas->drawGlyphs(1, &kGlyphID, &position, origin, font, paint); + + paint.setStrokeWidth(SkIntToScalar(kPointSize / 2)); + paint.setStyle(SkPaint::kStroke_Style); + SkScalar advance; + SkRect rect; + font.getWidthsBounds(&kGlyphID, 1, &advance, &rect, &paint); + + paint.setColor(SK_ColorRED); + canvas->drawRect(rect, paint); + paint.setColor(SK_ColorGREEN); + canvas->drawLine(0, 0, advance, 0, paint); + paint.setColor(SK_ColorRED); + canvas->drawPoint(0, 0, paint); + canvas->drawPoint(advance, 0, paint); + + paint.setStrokeWidth(SkIntToScalar(kPointSize)); + canvas->drawPoints(SkCanvas::kPoints_PointMode, SK_ARRAY_COUNT(fPts), fPts, paint); + + canvas->translate(kFontSize, 0); + } + } + + class PtClick : public Click { + public: + int fIndex; + PtClick(int index) : fIndex(index) {} + }; + + static bool hittest(const SkPoint& pt, SkScalar x, SkScalar y) { + return SkPoint::Length(pt.fX - x, pt.fY - y) < SkIntToScalar(kPointSize); + } + + Sample::Click* onFindClickHandler(SkScalar x, SkScalar y, skui::ModifierKey modi) override { + x -= DX; + y -= DY; + for (size_t i = 0; i < SK_ARRAY_COUNT(fPts); i++) { + if (hittest(fPts[i], x, y)) { + return new PtClick((int)i); + } + } + return nullptr; + } + + bool onClick(Click* click) override { + fPts[((PtClick*)click)->fIndex].set(click->fCurr.fX - DX, click->fCurr.fY - DY); + fDirty = true; + return true; + } + +private: + using INHERITED = Sample; +}; +} // namespace +DEF_SAMPLE( return new SBIXView(); ) diff --git a/third_party/skia/samplecode/SampleSG.cpp b/third_party/skia/samplecode/SampleSG.cpp index 1fa899467a87..376a296416ae 100644 --- a/third_party/skia/samplecode/SampleSG.cpp +++ b/third_party/skia/samplecode/SampleSG.cpp @@ -9,6 +9,7 @@ #include "include/core/SkFont.h" #include "include/core/SkFontMetrics.h" #include "include/core/SkPath.h" +#include "include/private/SkTDArray.h" #include "samplecode/Sample.h" #include "modules/sksg/include/SkSGDraw.h" @@ -27,6 +28,7 @@ struct PerNodeInfo { }; class SampleSG : public Sample { + // TODO(kjlubick) use a vector instead of our private SkTDArray SkTDArray fSideCar; sk_sp fGroup; std::unique_ptr fScene; diff --git a/third_party/skia/samplecode/SampleShadowReference.cpp b/third_party/skia/samplecode/SampleShadowReference.cpp index 76439fb7f26b..7227dbd0d58e 100644 --- a/third_party/skia/samplecode/SampleShadowReference.cpp +++ b/third_party/skia/samplecode/SampleShadowReference.cpp @@ -9,6 +9,7 @@ #include "include/core/SkImage.h" #include "include/core/SkPath.h" #include "include/core/SkPoint3.h" +#include "include/core/SkRRect.h" #include "include/utils/SkShadowUtils.h" #include "samplecode/Sample.h" #include "tools/Resources.h" diff --git a/third_party/skia/site/docs/dev/contrib/submit.md b/third_party/skia/site/docs/dev/contrib/submit.md index bebb94606a0f..e5f12453231b 100644 --- a/third_party/skia/site/docs/dev/contrib/submit.md +++ b/third_party/skia/site/docs/dev/contrib/submit.md @@ -48,6 +48,35 @@ your change is in the GPU code, you may not be able to write it as part of the standard unit test suite, but there are GPU-specific testing paths you can extend. +## Updating BUILD.bazel files + +If you added or removed files, or changed #includes, you will need to regenerate the BUILD.bazel +files. These files contain a mixture of autogenerated rules (`generated_cc_atom`) and hand-crafted +rules (everything else). + +To do so, be sure you [installed bazelisk](https://github.com/bazelbuild/bazelisk#installation) +and run `make -C bazel generate` from the top of the Skia checkout. The first time you run this, +it may take a few minutes to download and compile the dependencies, but subsequent times should +complete in 5 - 20 seconds. + +The `Housekeeper-PerCommit-CheckGeneratedBazelFiles` presubmit job will fail if it detects that +the BUILD.bazel files need to be regenerated as a result of source code file changes. + +Sometimes, rules will need to be manually changed as well. For example, if you add a new file +`//src/core/SkDrawRabbit.cpp`, only regenerating the rules is not enough. You need to specify +that your new file is part of `//src/core:core_srcs`, defined near the top of +`//src/core/BUILD.bazel`. You would need to add `":SkDrawRabbit_src"` to the deps of the `core_srcs` +`cc_library` rule. + +If the smoke test portion of `Housekeeper-PerCommit-CheckGeneratedBazelFiles` or other Build jobs +are failing to link, this is indicative of a change being needed to one or more `cc_library` rules +in a BUILD.bazel file. Start looking in the same directory of the file and then go up one directory +at a time until you find an appropriate location. + +Likewise, if you deleted the hypothetical `//src/core/SkDrawRabbit.cpp`, you need to manually +remove the corresponding `":SkDrawRabbit_src"` or `//src/core:SkDrawRabbit_src` from wherever +it was referred to in a BUILD.bazel file. + ## Submitting a patch For your code to be accepted into the codebase, you must complete the diff --git a/third_party/skia/site/docs/dev/testing/swarmingbots.md b/third_party/skia/site/docs/dev/testing/swarmingbots.md index 0a3a1b505d91..2d1a97856a39 100644 --- a/third_party/skia/site/docs/dev/testing/swarmingbots.md +++ b/third_party/skia/site/docs/dev/testing/swarmingbots.md @@ -22,9 +22,7 @@ Skia's Swarming bots are hosted in three places: [go/skbl](https://goto.google.com/skbl) lists all Skia Swarming bots. - Connecting to Swarming Bots - ---- +### Connecting to Swarming Bots If you need to make changes on a bot/device, please check with the Infra Gardener or another Infra team member. Most bots/devices can be flashed/imaged @@ -53,7 +51,8 @@ back to a clean state, but others can not. instructed to install the Chrome RDP Extension for GCP if it hasn't already been installed.) -- Machine name ends with “a9”, “m3”, "m5" -> Chrome Golo/Labs +- Machine name ends with “a9”, “m3”, "m5". Or name matches the pattern {lin, mac, win}-NNN-g580 -> + Chrome Golo/Labs - To log in to Golo bots, see [go/chrome-infra-build-access](https://goto.google.com/chrome-infra-build-access). diff --git a/third_party/skia/site/docs/user/build.md b/third_party/skia/site/docs/user/build.md index 178ea2700f6a..8b1f4772d0c9 100644 --- a/third_party/skia/site/docs/user/build.md +++ b/third_party/skia/site/docs/user/build.md @@ -258,12 +258,16 @@ project. ## iOS Run GN to generate your build files. Set `target_os="ios"` to build for iOS. -This defaults to `target_cpu="arm64"`. Choosing `x64` targets the iOS simulator. +This defaults to `target_cpu="arm64"`. To use the iOS simulator, set +`ios_use_simulator=true` and set `target_cpu` to your Mac's architecture. +On an Intel Mac, setting `target_cpu="x64"` alone will also target the iOS +simulator. ``` bin/gn gen out/ios64 --args='target_os="ios"' bin/gn gen out/ios32 --args='target_os="ios" target_cpu="arm"' -bin/gn gen out/iossim --args='target_os="ios" target_cpu="x64"' +bin/gn gen out/iossim-apple --args='target_os="ios" target_cpu="arm64" ios_use_simulator=true' +bin/gn gen out/iossim-intel --args='target_os="ios" target_cpu="x64"' ``` This will also package (and for devices, sign) iOS test binaries. This defaults diff --git a/third_party/skia/site/docs/user/download.md b/third_party/skia/site/docs/user/download.md index ae199079ccb1..5f69213ae243 100644 --- a/third_party/skia/site/docs/user/download.md +++ b/third_party/skia/site/docs/user/download.md @@ -23,6 +23,12 @@ Below is a summary of the necessary steps. `depot_tools` will also install Git on your system, if it wasn't installed already. +### Install `bazelisk` +If you intend to add or remove files, or change #includes, you will need to use Bazel to +regenerate parts of the BUILD.bazel files. Instead of installing Bazel manually, we recommend +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). + ## Clone the Skia repository Skia can either be cloned using `git` or the `fetch` tool that is @@ -34,7 +40,7 @@ installed with `depot_tools`. # or # fetch skia cd skia - python2 tools/git-sync-deps + python3 tools/git-sync-deps ## Getting started with Skia diff --git a/third_party/skia/site/docs/user/modules/canvaskit.md b/third_party/skia/site/docs/user/modules/canvaskit.md index 205aa0025b40..38aaa2896c14 100644 --- a/third_party/skia/site/docs/user/modules/canvaskit.md +++ b/third_party/skia/site/docs/user/modules/canvaskit.md @@ -63,7 +63,7 @@ Skia's [Lottie animation](https://skia.org/docs/user/modules/skottie) support.

- Shader JSFiddle
@@ -71,7 +71,7 @@ Skia's [Lottie animation](https://skia.org/docs/user/modules/skottie) support.
- 3D Cube JSFiddle
diff --git a/third_party/skia/src/android/BUILD.bazel b/third_party/skia/src/android/BUILD.bazel index bd36bb593db0..8c853dbb4af4 100644 --- a/third_party/skia/src/android/BUILD.bazel +++ b/third_party/skia/src/android/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "srcs", visibility = ["//:__subpackages__"], diff --git a/third_party/skia/src/android/SkAnimatedImage.cpp b/third_party/skia/src/android/SkAnimatedImage.cpp index 4c87596b7efd..8c32eab21133 100644 --- a/third_party/skia/src/android/SkAnimatedImage.cpp +++ b/third_party/skia/src/android/SkAnimatedImage.cpp @@ -303,7 +303,8 @@ int SkAnimatedImage::decodeNextFrame() { auto result = fCodec->getAndroidPixels(dst->info(), dst->getPixels(), dst->rowBytes(), &options); if (result != SkCodec::kSuccess) { - SkCodecPrintf("error %i, frame %i of %i\n", result, frameToDecode, fFrameCount); + SkCodecPrintf("%s, frame %i of %i\n", SkCodec::ResultToString(result), + frameToDecode, fFrameCount); return this->finish(); } diff --git a/third_party/skia/src/c/BUILD.bazel b/third_party/skia/src/c/BUILD.bazel index b2c164b0bbd5..39a52e73cb9e 100644 --- a/third_party/skia/src/c/BUILD.bazel +++ b/third_party/skia/src/c/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "sk_c_from_to_hdr", hdrs = ["sk_c_from_to.h"], diff --git a/third_party/skia/src/codec/BUILD.bazel b/third_party/skia/src/codec/BUILD.bazel index a827417fcd02..57af424c412c 100644 --- a/third_party/skia/src/codec/BUILD.bazel +++ b/third_party/skia/src/codec/BUILD.bazel @@ -1,6 +1,6 @@ -# https://github.com/bazelbuild/bazel-skylib -load("@bazel_skylib//lib:selects.bzl", "selects") -load("//bazel:macros.bzl", "generated_cc_atom", "select_multi") +load("//bazel:macros.bzl", "generated_cc_atom", "select_multi", "selects") + +licenses(["notice"]) cc_library( name = "androidcodec_srcs", diff --git a/third_party/skia/src/codec/SkAndroidCodec.cpp b/third_party/skia/src/codec/SkAndroidCodec.cpp index 17c4ff8350d8..e955b9aeb9f2 100644 --- a/third_party/skia/src/codec/SkAndroidCodec.cpp +++ b/third_party/skia/src/codec/SkAndroidCodec.cpp @@ -114,6 +114,7 @@ std::unique_ptr SkAndroidCodec::MakeFromData(sk_sp data, SkColorType SkAndroidCodec::computeOutputColorType(SkColorType requestedColorType) { bool highPrecision = fCodec->getEncodedInfo().bitsPerComponent() > 8; + uint8_t colorDepth = fCodec->getEncodedInfo().getColorDepth(); switch (requestedColorType) { case kARGB_4444_SkColorType: return kN32_SkColorType; @@ -134,7 +135,10 @@ SkColorType SkAndroidCodec::computeOutputColorType(SkColorType requestedColorTyp } break; case kRGBA_1010102_SkColorType: - return kRGBA_1010102_SkColorType; + if (colorDepth == 10) { + return kRGBA_1010102_SkColorType; + } + break; case kRGBA_F16_SkColorType: return kRGBA_F16_SkColorType; default: @@ -142,10 +146,8 @@ SkColorType SkAndroidCodec::computeOutputColorType(SkColorType requestedColorTyp } // F16 is the Android default for high precision images. - // TODO: b/217378990, b/217378477 - // Check the bit-depth of the input source. For 10-bit color input sources, change - // default to kRGBA_1010102_SkColorType instead of kN32_SkColorType. - return highPrecision ? kRGBA_F16_SkColorType : kN32_SkColorType; + return highPrecision ? kRGBA_F16_SkColorType : + (colorDepth == 10 ? kRGBA_1010102_SkColorType : kN32_SkColorType); } SkAlphaType SkAndroidCodec::computeOutputAlphaType(bool requestedUnpremul) { diff --git a/third_party/skia/src/codec/SkHeifCodec.cpp b/third_party/skia/src/codec/SkHeifCodec.cpp index 78339d3a2b06..ca57633b83d5 100644 --- a/third_party/skia/src/codec/SkHeifCodec.cpp +++ b/third_party/skia/src/codec/SkHeifCodec.cpp @@ -176,8 +176,11 @@ std::unique_ptr SkHeifCodec::MakeFromStream(std::unique_ptr s profile = nullptr; } + uint8_t colorDepth = heifDecoder->getColorDepth(); + SkEncodedInfo info = SkEncodedInfo::Make(heifInfo.mWidth, heifInfo.mHeight, - SkEncodedInfo::kYUV_Color, SkEncodedInfo::kOpaque_Alpha, 8, std::move(profile)); + SkEncodedInfo::kYUV_Color, SkEncodedInfo::kOpaque_Alpha, + /*bitsPerComponent*/ 8, std::move(profile), colorDepth); SkEncodedOrigin orientation = get_orientation(heifInfo); *result = kSuccess; @@ -212,6 +215,7 @@ bool SkHeifCodec::conversionSupported(const SkImageInfo& dstInfo, bool srcIsOpaq "- it is being decoded as non-opaque, which will draw slower\n"); } + uint8_t colorDepth = fHeifDecoder->getColorDepth(); switch (dstInfo.colorType()) { case kRGBA_8888_SkColorType: this->setSrcXformFormat(skcms_PixelFormat_RGBA_8888); @@ -235,8 +239,13 @@ bool SkHeifCodec::conversionSupported(const SkImageInfo& dstInfo, bool srcIsOpaq case kRGBA_F16_SkColorType: SkASSERT(needsColorXform); - this->setSrcXformFormat(skcms_PixelFormat_RGBA_8888); - return fHeifDecoder->setOutputColor(kHeifColorFormat_RGBA_8888); + if (srcIsOpaque && colorDepth == 10) { + this->setSrcXformFormat(skcms_PixelFormat_RGBA_1010102); + return fHeifDecoder->setOutputColor(kHeifColorFormat_RGBA_1010102); + } else { + this->setSrcXformFormat(skcms_PixelFormat_RGBA_8888); + return fHeifDecoder->setOutputColor(kHeifColorFormat_RGBA_8888); + } default: return false; @@ -433,13 +442,15 @@ void SkHeifCodec::allocateStorage(const SkImageInfo& dstInfo) { void SkHeifCodec::initializeSwizzler( const SkImageInfo& dstInfo, const Options& options) { SkImageInfo swizzlerDstInfo = dstInfo; - if (this->colorXform()) { - // Aligned with conversionSupported() - if (dstInfo.colorType() == kRGBA_1010102_SkColorType) { - swizzlerDstInfo = swizzlerDstInfo.makeColorType(kRGBA_1010102_SkColorType); - } else { + switch (this->getSrcXformFormat()) { + case skcms_PixelFormat_RGBA_8888: swizzlerDstInfo = swizzlerDstInfo.makeColorType(kRGBA_8888_SkColorType); - } + break; + case skcms_PixelFormat_RGBA_1010102: + swizzlerDstInfo = swizzlerDstInfo.makeColorType(kRGBA_1010102_SkColorType); + break; + default: + SkASSERT(false); } int srcBPP = 4; diff --git a/third_party/skia/src/codec/SkStubHeifDecoderAPI.h b/third_party/skia/src/codec/SkStubHeifDecoderAPI.h index bcacc3054f22..3fcdc94a9c19 100644 --- a/third_party/skia/src/codec/SkStubHeifDecoderAPI.h +++ b/third_party/skia/src/codec/SkStubHeifDecoderAPI.h @@ -70,6 +70,10 @@ struct HeifDecoder { int skipScanlines(int) { return 0; } + + uint32_t getColorDepth() { + return 0; + } }; static inline HeifDecoder* createHeifDecoder() { return new HeifDecoder; } diff --git a/third_party/skia/src/core/BUILD.bazel b/third_party/skia/src/core/BUILD.bazel index a9f343e5cc40..0d9068c19704 100644 --- a/third_party/skia/src/core/BUILD.bazel +++ b/third_party/skia/src/core/BUILD.bazel @@ -1,7 +1,7 @@ -# https://github.com/bazelbuild/bazel-skylib -load("@bazel_skylib//lib:selects.bzl", "selects") load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "core_srcs", deps = [ @@ -94,7 +94,6 @@ cc_library( ":SkImageFilter_src", ":SkImageGenerator_src", ":SkImageInfo_src", - ":SkKeyHelpers_src", ":SkLatticeIter_src", ":SkLineClipper_src", ":SkLocalMatrixImageFilter_src", @@ -210,18 +209,22 @@ cc_library( ], ) +# These are sources that are only needed if SkSL is enabled (GPU backend or SkVM). cc_library( name = "sksl_srcs", deps = [ + ":SkKeyHelpers_src", + ":SkPaintParamsKey_src", ":SkRuntimeEffect_src", + ":SkShaderCodeDictionary_src", ], ) cc_library( name = "srcs", visibility = ["//:__subpackages__"], - deps = [":core_srcs"] + selects.with_or({ - ("//bazel/common_config_settings:gl_backend", "//bazel/common_config_settings:vulkan_backend"): [ + deps = [":core_srcs"] + select({ + "//bazel/common_config_settings:has_gpu_backend": [ ":sksl_srcs", ], "//conditions:default": [], @@ -266,6 +269,7 @@ generated_cc_atom( "//include/core:SkPath_hdr", "//include/private:SkColorData_hdr", "//include/private:SkMacros_hdr", + "//include/private:SkTDArray_hdr", "//include/private:SkTo_hdr", ], ) @@ -616,6 +620,7 @@ generated_cc_atom( ":SkWriteBuffer_hdr", ":SkWritePixelsRec_hdr", "//include/core:SkBitmap_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkData_hdr", "//include/core:SkMallocPixelRef_hdr", "//include/core:SkMaskFilter_hdr", @@ -650,8 +655,8 @@ generated_cc_atom( ":SkKeyHelpers_hdr", ":SkReadBuffer_hdr", ":SkWriteBuffer_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", ], ) @@ -663,7 +668,7 @@ generated_cc_atom( "//include/core:SkBlendMode_hdr", "//include/core:SkColor_hdr", "//include/private:SkColorData_hdr", - "//src/gpu:GrXferProcessor_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", ], ) @@ -685,7 +690,6 @@ generated_cc_atom( ":SkArenaAlloc_hdr", ":SkVM_hdr", "//include/core:SkBlender_hdr", - "//include/core:SkColorSpace_hdr", ], ) @@ -867,22 +871,22 @@ generated_cc_atom( "//include/core:SkStrokeRec_hdr", "//include/core:SkVertices_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrThreadSafeCache_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrMatrixEffect_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrThreadSafeCache_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrMatrixEffect_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -979,7 +983,7 @@ generated_cc_atom( ":SkDevice_hdr", ":SkReadBuffer_hdr", ":SkWriter32_hdr", - "//src/gpu:BaseDevice_hdr", + "//src/gpu/ganesh:BaseDevice_hdr", ], ) @@ -1027,13 +1031,15 @@ generated_cc_atom( "//include/private:SkTo_hdr", "//include/private/chromium:GrSlug_hdr", "//include/utils:SkNoDrawCanvas_hdr", - "//src/gpu:BaseDevice_hdr", - "//src/gpu:GrRenderTargetProxy_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:BaseDevice_hdr", + "//src/gpu/ganesh:GrRenderTargetProxy_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/graphite:Device_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkSurface_Base_hdr", "//src/utils:SkPatchUtils_hdr", + "//src/utils:SkTestCanvas_hdr", ], ) @@ -1085,7 +1091,7 @@ generated_cc_atom( ":SkRectPriv_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkPath_hdr", - "//src/gpu:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", "//src/shaders:SkShaderBase_hdr", ], ) @@ -1134,7 +1140,7 @@ generated_cc_atom( "//include/effects:SkRuntimeEffect_hdr", "//include/private:SkColorData_hdr", "//include/private:SkNx_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", ], ) @@ -1161,9 +1167,10 @@ generated_cc_atom( "//include/effects:SkRuntimeEffect_hdr", "//include/private:SkNx_hdr", "//include/private:SkTDArray_hdr", - "//src/gpu:GrColorInfo_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//include/third_party/skcms:skcms_hdr", + "//src/gpu/ganesh:GrColorInfo_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", ], ) @@ -1181,24 +1188,28 @@ generated_cc_atom( generated_cc_atom( name = "SkColorSpaceXformSteps_hdr", hdrs = ["SkColorSpaceXformSteps.h"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ - ":SkVM_fwd_hdr", - "//include/core:SkColorSpace_hdr", - "//include/core:SkImageInfo_hdr", - "//include/private:SkImageInfoPriv_hdr", + ":SkVM_hdr", + "//include/core:SkAlphaType_hdr", + "//include/third_party/skcms:skcms_hdr", ], ) generated_cc_atom( name = "SkColorSpaceXformSteps_src", srcs = ["SkColorSpaceXformSteps.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":SkColorSpacePriv_hdr", ":SkColorSpaceXformSteps_hdr", ":SkRasterPipeline_hdr", ":SkVM_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkFloatingPoint_hdr", "//include/third_party/skcms:skcms_hdr", ], ) @@ -1425,10 +1436,10 @@ generated_cc_atom( "//include/core:SkSurface_hdr", "//include/gpu:GrRecordingContext_hdr", "//include/gpu:GrYUVABackendTextures_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", "//src/image:SkImage_GpuYUVA_hdr", "//src/image:SkImage_Gpu_hdr", "//src/image:SkSurface_Gpu_hdr", @@ -1444,8 +1455,8 @@ generated_cc_atom( "//include/core:SkDeferredDisplayList_hdr", "//include/core:SkRefCnt_hdr", "//include/core:SkTypes_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrRenderTask_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrRenderTask_hdr", ], ) @@ -1484,7 +1495,7 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/private:SkTo_hdr", "//include/private/chromium:SkChromeRemoteGlyphCache_hdr", - "//src/gpu:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", ], ) @@ -1531,6 +1542,7 @@ generated_cc_atom( ":SkTextBlobPriv_hdr", ":SkUtils_hdr", "//include/core:SkColorFilter_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkDrawable_hdr", "//include/core:SkImageFilter_hdr", "//include/core:SkPathMeasure_hdr", @@ -1753,6 +1765,7 @@ generated_cc_atom( ":SkVM_hdr", ":SkVertState_hdr", ":SkVerticesPriv_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkString_hdr", "//include/private:SkNx_hdr", "//src/shaders:SkColorShader_hdr", @@ -2112,7 +2125,7 @@ generated_cc_atom( ":SkScalerContext_hdr", ":SkTextBlobPriv_hdr", "//include/core:SkSurfaceProps_hdr", - "//src/gpu/text:GrSDFTControl_hdr", + "//src/gpu/ganesh/text:GrSDFTControl_hdr", ], ) @@ -2133,19 +2146,21 @@ generated_cc_atom( ":SkStrikeForGPU_hdr", ":SkStrikeSpec_hdr", ":SkTraceEvent_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkColorFilter_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkMaskFilter_hdr", "//include/core:SkPathEffect_hdr", "//include/gpu:GrRecordingContext_hdr", "//include/private:SkTDArray_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColorInfo_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/text:GrSDFTControl_hdr", - "//src/gpu/text:GrTextBlobRedrawCoordinator_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColorInfo_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/text:GrSDFTControl_hdr", + "//src/gpu/ganesh/text:GrTextBlobRedrawCoordinator_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -2212,6 +2227,7 @@ generated_cc_atom( ":SkGlyph_hdr", ":SkScalerContext_hdr", "//include/core:SkDrawable_hdr", + "//include/core:SkScalar_hdr", "//src/pathops:SkPathOpsCubic_hdr", "//src/pathops:SkPathOpsQuad_hdr", ], @@ -2224,7 +2240,7 @@ generated_cc_atom( deps = [ "//include/core:SkRefCnt_hdr", "//include/core:SkTypes_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -2236,15 +2252,16 @@ generated_cc_atom( ":SkGpuBlurUtils_hdr", ":SkMathPriv_hdr", "//include/core:SkBitmap_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkRect_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrGaussianConvolutionFragmentProcessor_hdr", - "//src/gpu/effects:GrMatrixConvolutionEffect_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrGaussianConvolutionFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrMatrixConvolutionEffect_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -2365,6 +2382,7 @@ generated_cc_atom( deps = [ ":SkSpecialImage_hdr", ":SkSpecialSurface_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkMatrix_hdr", ], ) @@ -2415,12 +2433,12 @@ generated_cc_atom( "//include/core:SkRect_hdr", "//include/gpu:GrRecordingContext_hdr", "//include/private:SkSafe32_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", ], ) @@ -2435,7 +2453,7 @@ generated_cc_atom( "//include/core:SkImageGenerator_hdr", "//include/core:SkImage_hdr", "//src/codec:SkColorTable_hdr", - "//src/gpu:GrSurfaceProxyView_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", ], ) @@ -2448,6 +2466,8 @@ generated_cc_atom( ":SkSafeMath_hdr", ":SkWriteBuffer_hdr", ":SkWritePixelsRec_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkImageInfo_hdr", "//include/private:SkImageInfoPriv_hdr", "//src/image:SkReadPixelsRec_hdr", ], @@ -2664,8 +2684,8 @@ generated_cc_atom( "//include/core:SkMaskFilter_hdr", "//include/core:SkPaint_hdr", "//include/core:SkStrokeRec_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkNoncopyable_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -2685,10 +2705,10 @@ generated_cc_atom( ":SkWriteBuffer_hdr", "//include/core:SkPath_hdr", "//include/core:SkRRect_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrSurfaceProxyView_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu/text:GrSDFMaskFilter_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh/text:GrSDFMaskFilter_hdr", ], ) @@ -3005,10 +3025,10 @@ generated_cc_atom( "//include/core:SkString_hdr", "//include/private:SkColorData_hdr", "//include/utils:SkRandom_hdr", - "//src/gpu:GrBlend_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu:Blend_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", ], ) @@ -3126,8 +3146,6 @@ generated_cc_atom( ":SkBlenderBase_hdr", ":SkColorFilterBase_hdr", ":SkColorSpacePriv_hdr", - ":SkKeyHelpers_hdr", - ":SkPaintParamsKey_hdr", ":SkPaintPriv_hdr", ":SkXfermodePriv_hdr", "//include/core:SkPaint_hdr", @@ -3253,7 +3271,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/core:SkPathBuilder_hdr", + "//include/core:SkRefCnt_hdr", "//include/private:SkIDChangeListener_hdr", + "//include/private:SkPathRef_hdr", ], ) @@ -3266,6 +3286,7 @@ generated_cc_atom( ":SkPathPriv_hdr", ":SkSafeMath_hdr", "//include/core:SkPath_hdr", + "//include/core:SkRRect_hdr", "//include/private:SkNx_hdr", "//include/private:SkOnce_hdr", "//include/private:SkPathRef_hdr", @@ -3363,6 +3384,7 @@ generated_cc_atom( "//include/core:SkStream_hdr", "//include/core:SkTypeface_hdr", "//include/private:SkTo_hdr", + "//include/private/chromium:GrSlug_hdr", ], ) @@ -3403,14 +3425,15 @@ generated_cc_atom( deps = [ ":SkTLazy_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImageGenerator_hdr", "//include/core:SkMatrix_hdr", "//include/core:SkPaint_hdr", "//include/core:SkPicture_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", "//src/image:SkImage_Base_hdr", ], ) @@ -3432,6 +3455,7 @@ generated_cc_atom( ":SkFontPriv_hdr", ":SkPaintPriv_hdr", ":SkPictureData_hdr", + ":SkPictureFlat_hdr", ":SkPicturePlayback_hdr", ":SkPictureRecord_hdr", ":SkReadBuffer_hdr", @@ -3443,6 +3467,7 @@ generated_cc_atom( "//include/core:SkTextBlob_hdr", "//include/core:SkTypes_hdr", "//include/private:SkTDArray_hdr", + "//include/private/chromium:GrSlug_hdr", "//src/utils:SkPatchUtils_hdr", ], ) @@ -3488,6 +3513,7 @@ generated_cc_atom( "//include/core:SkRSXform_hdr", "//include/core:SkTextBlob_hdr", "//include/private:SkTo_hdr", + "//include/private/chromium:GrSlug_hdr", "//src/image:SkImage_Base_hdr", "//src/utils:SkPatchUtils_hdr", ], @@ -3530,6 +3556,7 @@ generated_cc_atom( "//include/core:SkPicture_hdr", "//include/core:SkSerialProcs_hdr", "//include/private:SkTo_hdr", + "//include/private/chromium:GrSlug_hdr", ], ) @@ -3577,6 +3604,7 @@ generated_cc_atom( ":SkRasterClip_hdr", ":SkUtils_hdr", "//include/core:SkBitmap_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkData_hdr", "//include/core:SkPixmap_hdr", "//include/core:SkSurface_hdr", @@ -3761,6 +3789,7 @@ generated_cc_atom( "//include/core:SkShader_hdr", "//include/private:SkTo_hdr", "//src/shaders:SkShaderBase_hdr", + "//src/utils:SkBlitterTrace_hdr", ], ) @@ -3791,6 +3820,7 @@ generated_cc_atom( "//include/private:SkImageInfoPriv_hdr", "//include/private:SkNx_hdr", "//include/private:SkTemplates_hdr", + "//include/third_party/skcms:skcms_hdr", ], ) @@ -3865,6 +3895,7 @@ generated_cc_atom( ":SkRecordDraw_hdr", "//include/core:SkBBHFactory_hdr", "//include/core:SkImage_hdr", + "//include/private:SkTDArray_hdr", "//src/utils:SkPatchUtils_hdr", ], ) @@ -3944,6 +3975,7 @@ generated_cc_atom( ":SkRecordedDrawable_hdr", "//include/core:SkMatrix_hdr", "//include/core:SkPictureRecorder_hdr", + "//include/private/chromium:GrSlug_hdr", ], ) @@ -3975,6 +4007,7 @@ generated_cc_atom( "//include/core:SkPicture_hdr", "//include/core:SkSurface_hdr", "//include/private:SkTo_hdr", + "//include/private/chromium:GrSlug_hdr", "//src/utils:SkPatchUtils_hdr", ], ) @@ -4001,6 +4034,7 @@ generated_cc_atom( "//include/core:SkString_hdr", "//include/core:SkTextBlob_hdr", "//include/core:SkVertices_hdr", + "//include/private/chromium:GrSlug_hdr", ], ) @@ -4148,13 +4182,13 @@ generated_cc_atom( "//include/gpu:GrRecordingContext_hdr", "//include/private:SkMutex_hdr", "//include/sksl:DSLCore_hdr", - "//src/gpu:GrColorInfo_hdr", - "//src/gpu:GrFPArgs_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrMatrixEffect_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh:GrColorInfo_hdr", + "//src/gpu/ganesh:GrFPArgs_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrMatrixEffect_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", "//src/image:SkImage_Gpu_hdr", "//src/sksl:SkSLAnalysis_hdr", "//src/sksl:SkSLCompiler_hdr", @@ -4485,8 +4519,8 @@ generated_cc_atom( "//include/core:SkRefCnt_hdr", "//include/core:SkSamplingOptions_hdr", "//include/core:SkSurfaceProps_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrSurfaceProxyView_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", ], ) @@ -4500,15 +4534,16 @@ generated_cc_atom( ":SkSurfacePriv_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", "//include/core:SkMatrix_hdr", "//include/core:SkTileMode_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkImage_Gpu_hdr", "//src/shaders:SkImageShader_hdr", @@ -4523,7 +4558,7 @@ generated_cc_atom( "//include/core:SkImageInfo_hdr", "//include/core:SkRefCnt_hdr", "//include/core:SkSurfaceProps_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -4536,9 +4571,10 @@ generated_cc_atom( ":SkSpecialSurface_hdr", ":SkSurfacePriv_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkMallocPixelRef_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", ], ) @@ -4654,7 +4690,7 @@ generated_cc_atom( "//include/core:SkTypeface_hdr", "//include/private:SkMutex_hdr", "//include/private:SkTemplates_hdr", - "//src/gpu/text:GrStrikeCache_hdr", + "//src/gpu/ganesh/text:GrStrikeCache_hdr", ], ) @@ -4689,7 +4725,7 @@ generated_cc_atom( ":SkStrikeForGPU_hdr", "//include/core:SkMaskFilter_hdr", "//include/core:SkPathEffect_hdr", - "//src/gpu/text:GrSDFTControl_hdr", + "//src/gpu/ganesh/text:GrSDFTControl_hdr", ], ) @@ -4704,9 +4740,9 @@ generated_cc_atom( ":SkStrikeSpec_hdr", ":SkTLazy_hdr", "//include/core:SkGraphics_hdr", - "//src/gpu/text:GrSDFMaskFilter_hdr", - "//src/gpu/text:GrSDFTControl_hdr", - "//src/gpu/text:GrStrikeCache_hdr", + "//src/gpu/ganesh/text:GrSDFMaskFilter_hdr", + "//src/gpu/ganesh/text:GrSDFTControl_hdr", + "//src/gpu/ganesh/text:GrStrikeCache_hdr", ], ) @@ -4806,8 +4842,8 @@ generated_cc_atom( deps = [ "//include/core:SkSurfaceCharacterization_hdr", "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrContextThreadSafeProxyPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrContextThreadSafeProxyPriv_hdr", ], ) @@ -4987,7 +5023,7 @@ generated_cc_atom( "//include/core:SkRSXform_hdr", "//include/core:SkTextBlob_hdr", "//include/core:SkTypeface_hdr", - "//src/gpu/text:GrTextBlobRedrawCoordinator_hdr", + "//src/gpu/ganesh/text:GrTextBlobRedrawCoordinator_hdr", ], ) @@ -5185,6 +5221,8 @@ generated_cc_atom( "//include/private:SkImageInfoPriv_hdr", "//include/private:SkMacros_hdr", "//src/shaders:SkColorFilterShader_hdr", + "//src/shaders:SkColorShader_hdr", + "//src/utils:SkBlitterTrace_hdr", ], ) @@ -5201,6 +5239,7 @@ generated_cc_atom( deps = [ ":SkVM_fwd_hdr", "//include/core:SkBlendMode_hdr", + "//include/core:SkColorType_hdr", "//include/core:SkColor_hdr", "//include/core:SkSpan_hdr", "//include/private:SkMacros_hdr", @@ -5353,6 +5392,7 @@ generated_cc_atom( deps = [ ":SkMatrixPriv_hdr", ":SkWriter32_hdr", + "//include/core:SkSamplingOptions_hdr", "//include/private:SkTo_hdr", ], ) @@ -5399,9 +5439,9 @@ generated_cc_atom( "//include/core:SkString_hdr", "//include/private:SkColorData_hdr", "//include/private:SkOnce_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu/effects:GrCustomXfermode_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrCustomXfermode_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", ], ) @@ -5434,8 +5474,8 @@ generated_cc_atom( ":SkConvertPixels_hdr", ":SkYUVAInfoLocation_hdr", "//include/core:SkYUVAPixmaps_hdr", - "//include/private:GrImageContext_hdr", "//include/private:SkImageInfoPriv_hdr", + "//include/private/gpu/ganesh:GrImageContext_hdr", ], ) @@ -5511,9 +5551,9 @@ generated_cc_atom( "//include/private:SkChecksum_hdr", "//include/private:SkTHash_hdr", "//include/private/chromium:SkChromeRemoteGlyphCache_hdr", - "//src/gpu:GrDrawOpAtlas_hdr", - "//src/gpu/text:GrSDFTControl_hdr", - "//src/gpu/text:GrTextBlob_hdr", + "//src/gpu/ganesh:GrDrawOpAtlas_hdr", + "//src/gpu/ganesh/text:GrSDFTControl_hdr", + "//src/gpu/ganesh/text:GrTextBlob_hdr", ], ) @@ -5524,7 +5564,7 @@ generated_cc_atom( deps = [ ":SkSLTypeShared_hdr", "//include/core:SkCustomMesh_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -5538,16 +5578,25 @@ generated_cc_atom( generated_cc_atom( name = "SkCustomMesh_src", srcs = ["SkCustomMesh.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":SkCustomMeshPriv_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkCustomMesh_hdr", - "//src/gpu:GrShaderCaps_hdr", + "//include/core:SkMath_hdr", + "//include/private:SkOpts_spi_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLProgramKind_hdr", + "//src/sksl:SkSLAnalysis_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", "//src/sksl:SkSLCompiler_hdr", "//src/sksl:SkSLSharedCompiler_hdr", + "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", "//src/sksl/ir:SkSLProgram_hdr", - "//src/sksl/ir:SkSLVarDeclarations_hdr", + "//src/sksl/ir:SkSLType_hdr", + "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -5563,10 +5612,12 @@ generated_cc_atom( hdrs = ["SkKeyHelpers.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include:Context_hdr", "//include/core:SkBlendMode_hdr", + "//include/core:SkSamplingOptions_hdr", "//include/core:SkShader_hdr", "//include/core:SkTileMode_hdr", + "//include/gpu/graphite:Context_hdr", + "//include/private:SkColorData_hdr", ], ) @@ -5576,12 +5627,16 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkDebugUtils_hdr", + ":SkKeyContext_hdr", ":SkKeyHelpers_hdr", ":SkPaintParamsKey_hdr", + ":SkPipelineData_hdr", ":SkShaderCodeDictionary_hdr", - ":SkUniformData_hdr", ":SkUniform_hdr", - "//experimental/graphite/src:UniformManager_hdr", + "//src/gpu:Blend_hdr", + "//src/gpu/graphite:TextureProxy_hdr", + "//src/gpu/graphite:Texture_hdr", + "//src/gpu/graphite:UniformManager_hdr", "//src/shaders:SkShaderBase_hdr", ], ) @@ -5615,27 +5670,6 @@ generated_cc_atom( deps = ["//include/core:SkTypes_hdr"], ) -generated_cc_atom( - name = "SkUniformData_hdr", - hdrs = ["SkUniformData.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":SkUniform_hdr", - "//include/core:SkRefCnt_hdr", - "//include/core:SkSpan_hdr", - ], -) - -generated_cc_atom( - name = "SkUniformData_src", - srcs = ["SkUniformData.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":SkOpts_hdr", - ":SkUniformData_hdr", - ], -) - generated_cc_atom( name = "SkUniform_hdr", hdrs = ["SkUniform.h"], @@ -5656,7 +5690,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkBuiltInCodeSnippetID_hdr", + "//include/core:SkSpan_hdr", "//include/core:SkTypes_hdr", + "//include/private:SkTDArray_hdr", ], ) @@ -5667,9 +5703,57 @@ generated_cc_atom( deps = [ ":SkArenaAlloc_hdr", ":SkPaintParamsKey_hdr", + ":SkPipelineData_hdr", ":SkUniform_hdr", "//include/core:SkSpan_hdr", "//include/private:SkSpinlock_hdr", "//include/private:SkUniquePaintParamsID_hdr", ], ) + +generated_cc_atom( + name = "SkPipelineData_hdr", + hdrs = ["SkPipelineData.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkPoint_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkSamplingOptions_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkTileMode_hdr", + "//include/private:SkColorData_hdr", + "//src/gpu:Blend_hdr", + "//src/gpu/graphite:TextureProxy_hdr", + "//src/gpu/graphite:UniformManager_hdr", + "//src/gpu/graphite/geom:VectorTypes_hdr", + ], +) + +generated_cc_atom( + name = "SkPipelineData_src", + srcs = ["SkPipelineData.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":SkOpts_hdr", + ":SkPipelineData_hdr", + ], +) + +generated_cc_atom( + name = "SkKeyContext_hdr", + hdrs = ["SkKeyContext.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/gpu:GrTypes_hdr"], +) + +generated_cc_atom( + name = "SkKeyContext_src", + srcs = ["SkKeyContext.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":SkKeyContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/gpu/graphite:RecorderPriv_hdr", + "//src/gpu/graphite:ResourceProvider_hdr", + ], +) diff --git a/third_party/skia/src/core/SkAAClip.cpp b/third_party/skia/src/core/SkAAClip.cpp index d336fa401e9a..265955a5eb30 100644 --- a/third_party/skia/src/core/SkAAClip.cpp +++ b/third_party/skia/src/core/SkAAClip.cpp @@ -10,6 +10,7 @@ #include "include/core/SkPath.h" #include "include/private/SkColorData.h" #include "include/private/SkMacros.h" +#include "include/private/SkTDArray.h" #include "include/private/SkTo.h" #include "src/core/SkBlitter.h" #include "src/core/SkRectPriv.h" diff --git a/third_party/skia/src/core/SkArenaAlloc.cpp b/third_party/skia/src/core/SkArenaAlloc.cpp index ba4390cb7a0b..764d4c263e5c 100644 --- a/third_party/skia/src/core/SkArenaAlloc.cpp +++ b/third_party/skia/src/core/SkArenaAlloc.cpp @@ -144,8 +144,11 @@ SkArenaAllocWithReset::SkArenaAllocWithReset(char* block, , fFirstHeapAllocationSize{SkToU32(firstHeapAllocation)} {} void SkArenaAllocWithReset::reset() { + char* const firstBlock = fFirstBlock; + const uint32_t firstSize = fFirstSize; + const uint32_t firstHeapAllocationSize = fFirstHeapAllocationSize; this->~SkArenaAllocWithReset(); - new (this) SkArenaAllocWithReset{fFirstBlock, fFirstSize, fFirstHeapAllocationSize}; + new (this) SkArenaAllocWithReset{firstBlock, firstSize, firstHeapAllocationSize}; } // SkFibonacci47 is the first 47 Fibonacci numbers. Fib(47) is the largest value less than 2 ^ 32. diff --git a/third_party/skia/src/core/SkBitmap.cpp b/third_party/skia/src/core/SkBitmap.cpp index ff134a197133..4c98a92cb283 100644 --- a/third_party/skia/src/core/SkBitmap.cpp +++ b/third_party/skia/src/core/SkBitmap.cpp @@ -7,6 +7,7 @@ #include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkData.h" #include "include/core/SkMallocPixelRef.h" #include "include/core/SkMath.h" @@ -102,6 +103,10 @@ void SkBitmap::getBounds(SkIRect* bounds) const { *bounds = fPixmap.bounds(); } +SkColorSpace* SkBitmap::colorSpace() const { return fPixmap.colorSpace(); } + +sk_sp SkBitmap::refColorSpace() const { return fPixmap.info().refColorSpace(); } + /////////////////////////////////////////////////////////////////////////////// bool SkBitmap::setInfo(const SkImageInfo& info, size_t rowBytes) { diff --git a/third_party/skia/src/core/SkBitmapDevice.cpp b/third_party/skia/src/core/SkBitmapDevice.cpp index eecf9e097a10..a574b15acba1 100644 --- a/third_party/skia/src/core/SkBitmapDevice.cpp +++ b/third_party/skia/src/core/SkBitmapDevice.cpp @@ -530,13 +530,14 @@ void SkBitmapDevice::onDrawGlyphRunList(SkCanvas* canvas, void SkBitmapDevice::drawVertices(const SkVertices* vertices, sk_sp blender, - const SkPaint& paint) { + const SkPaint& paint, + bool skipColorXform) { #ifdef SK_LEGACY_IGNORE_DRAW_VERTICES_BLEND_WITH_NO_SHADER if (!paint.getShader()) { blender = SkBlender::Mode(SkBlendMode::kDst); } #endif - BDDraw(this).drawVertices(vertices, std::move(blender), paint); + BDDraw(this).drawVertices(vertices, std::move(blender), paint, skipColorXform); } #ifdef SK_ENABLE_SKSL diff --git a/third_party/skia/src/core/SkBitmapDevice.h b/third_party/skia/src/core/SkBitmapDevice.h index 14a89b3139c8..c23ecc3a0d6d 100644 --- a/third_party/skia/src/core/SkBitmapDevice.h +++ b/third_party/skia/src/core/SkBitmapDevice.h @@ -86,7 +86,7 @@ class SkBitmapDevice : public SkBaseDevice { const SkSamplingOptions&, const SkPaint&, SkCanvas::SrcRectConstraint) override; - void drawVertices(const SkVertices*, sk_sp, const SkPaint&) override; + void drawVertices(const SkVertices*, sk_sp, const SkPaint&, bool) override; #ifdef SK_ENABLE_SKSL void drawCustomMesh(SkCustomMesh, sk_sp, const SkPaint&) override; #endif diff --git a/third_party/skia/src/core/SkBlendModeBlender.cpp b/third_party/skia/src/core/SkBlendModeBlender.cpp index ea95b908aaea..872ac13d5d10 100644 --- a/third_party/skia/src/core/SkBlendModeBlender.cpp +++ b/third_party/skia/src/core/SkBlendModeBlender.cpp @@ -6,13 +6,16 @@ */ #include "src/core/SkBlendModeBlender.h" -#include "src/core/SkKeyHelpers.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkWriteBuffer.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" +#endif + +#ifdef SK_ENABLE_SKSL +#include "src/core/SkKeyHelpers.h" #endif sk_sp SkBlender::Mode(SkBlendMode mode) { @@ -60,17 +63,18 @@ sk_sp SkBlender::Mode(SkBlendMode mode) { #undef RETURN_SINGLETON_BLENDER } -void SkBlenderBase::addToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +#ifdef SK_ENABLE_SKSL +void SkBlenderBase::addToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const { + SkPipelineDataGatherer* gatherer) const { if (std::optional bm = as_BB(this)->asBlendMode(); bm.has_value()) { - BlendModeBlock::AddToKey(dict, backend, builder, uniformBlock, bm.value()); + BlendModeBlock::AddToKey(keyContext, builder, gatherer, bm.value()); } else { - BlendModeBlock::AddToKey(dict, backend, builder, uniformBlock, SkBlendMode::kSrcOver); + BlendModeBlock::AddToKey(keyContext, builder, gatherer, SkBlendMode::kSrcOver); } } +#endif sk_sp SkBlendModeBlender::CreateProc(SkReadBuffer& buffer) { SkBlendMode mode = buffer.read32LE(SkBlendMode::kLastMode); diff --git a/third_party/skia/src/core/SkBlendModePriv.h b/third_party/skia/src/core/SkBlendModePriv.h index f24c8ca982cb..5df436aab345 100644 --- a/third_party/skia/src/core/SkBlendModePriv.h +++ b/third_party/skia/src/core/SkBlendModePriv.h @@ -33,7 +33,7 @@ void SkBlendMode_AppendStages(SkBlendMode, SkRasterPipeline*); SkPMColor4f SkBlendMode_Apply(SkBlendMode, const SkPMColor4f& src, const SkPMColor4f& dst); #if SK_SUPPORT_GPU -#include "src/gpu/GrXferProcessor.h" +#include "src/gpu/ganesh/GrXferProcessor.h" const GrXPFactory* SkBlendMode_AsXPFactory(SkBlendMode); #endif diff --git a/third_party/skia/src/core/SkBlenderBase.h b/third_party/skia/src/core/SkBlenderBase.h index 092ecc68aa25..f8716c6108c9 100644 --- a/third_party/skia/src/core/SkBlenderBase.h +++ b/third_party/skia/src/core/SkBlenderBase.h @@ -9,7 +9,6 @@ #define SkBlenderBase_DEFINED #include "include/core/SkBlender.h" -#include "include/core/SkColorSpace.h" #include "src/core/SkArenaAlloc.h" #include "src/core/SkVM.h" @@ -18,10 +17,11 @@ enum class SkBackend : uint8_t; struct GrFPArgs; class GrFragmentProcessor; +class SkColorInfo; class SkPaintParamsKeyBuilder; +class SkPipelineDataGatherer; class SkRuntimeEffect; -class SkShaderCodeDictionary; -class SkUniformBlock; +class SkKeyContext; /** * Encapsulates a blend function, including non-public APIs. @@ -57,11 +57,12 @@ class SkBlenderBase : public SkBlender { virtual SkRuntimeEffect* asRuntimeEffect() const { return nullptr; } +#ifdef SK_ENABLE_SKSL // TODO: make pure virtual - virtual void addToKey(SkShaderCodeDictionary*, - SkBackend, + virtual void addToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*) const; + SkPipelineDataGatherer*) const; +#endif static SkFlattenable::Type GetFlattenableType() { return kSkBlender_Type; } Type getFlattenableType() const override { return GetFlattenableType(); } diff --git a/third_party/skia/src/core/SkBlitter.cpp b/third_party/skia/src/core/SkBlitter.cpp index c44659a31f5b..141435f8db22 100644 --- a/third_party/skia/src/core/SkBlitter.cpp +++ b/third_party/skia/src/core/SkBlitter.cpp @@ -737,16 +737,25 @@ SkBlitter* SkBlitter::Choose(const SkPixmap& device, // Same basic idea used a few times: try SkRP, then try SkVM, then give up with a null-blitter. // (Setting gUseSkVMBlitter is the only way we prefer SkVM over SkRP at the moment.) auto create_SkRP_or_SkVMBlitter = [&]() -> SkBlitter* { - if (!gUseSkVMBlitter) { - if (auto blitter = SkCreateRasterPipelineBlitter( - device, *paint, matrixProvider, alloc, clipShader)) { + + // We need to make sure that in case RP blitter cannot be created we use VM and + // when VM blitter cannot be created we use RP + if (gUseSkVMBlitter) { + if (auto blitter = + SkVMBlitter::Make(device, *paint, matrixProvider, alloc, clipShader)) { return blitter; } } - if (auto blitter = SkVMBlitter::Make(device, *paint, matrixProvider, - alloc, clipShader)) { + if (auto blitter = SkCreateRasterPipelineBlitter( + device, *paint, matrixProvider, alloc, clipShader)) { return blitter; } + if (!gUseSkVMBlitter) { + if (auto blitter = SkVMBlitter::Make(device, *paint, matrixProvider, + alloc, clipShader)) { + return blitter; + } + } return alloc->make(); }; diff --git a/third_party/skia/src/core/SkBlockAllocator.cpp b/third_party/skia/src/core/SkBlockAllocator.cpp index 0cd608044df6..f163a3582948 100644 --- a/third_party/skia/src/core/SkBlockAllocator.cpp +++ b/third_party/skia/src/core/SkBlockAllocator.cpp @@ -16,8 +16,9 @@ SkBlockAllocator::SkBlockAllocator(GrowthPolicy policy, size_t blockIncrementByt : fTail(&fHead) // Round up to the nearest max-aligned value, and then divide so that fBlockSizeIncrement // can effectively fit higher byte counts in its 16 bits of storage - , fBlockIncrement(SkTo(SkAlignTo(blockIncrementBytes, kAddressAlign) - / kAddressAlign)) + , fBlockIncrement(SkTo( + std::min(SkAlignTo(blockIncrementBytes, kAddressAlign) / kAddressAlign, + (size_t) std::numeric_limits::max()))) , fGrowthPolicy(static_cast(policy)) , fN0((policy == GrowthPolicy::kLinear || policy == GrowthPolicy::kExponential) ? 1 : 0) , fN1(1) diff --git a/third_party/skia/src/core/SkBlurMF.cpp b/third_party/skia/src/core/SkBlurMF.cpp index 54216973bb90..4d464fbe45d2 100644 --- a/third_party/skia/src/core/SkBlurMF.cpp +++ b/third_party/skia/src/core/SkBlurMF.cpp @@ -24,23 +24,23 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" #include "src/core/SkRuntimeEffectPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/GrThreadSafeCache.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrMatrixEffect.h" -#include "src/gpu/effects/GrSkSLFP.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/GrThreadSafeCache.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrMatrixEffect.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" #if SK_GPU_V1 -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #endif // SK_GPU_V1 #endif // SK_SUPPORT_GPU diff --git a/third_party/skia/src/core/SkBuiltInCodeSnippetID.h b/third_party/skia/src/core/SkBuiltInCodeSnippetID.h index 5de608fa502e..46f649a5b4b8 100644 --- a/third_party/skia/src/core/SkBuiltInCodeSnippetID.h +++ b/third_party/skia/src/core/SkBuiltInCodeSnippetID.h @@ -16,6 +16,9 @@ enum class SkBuiltInCodeSnippetID : uint8_t { // draw that originated from a PaintParams. kDepthStencilOnlyDraw, + // This isn't just a signal for a failure during paintparams key creation. It also actually + // implements the default behavior for an erroneous draw. Currently it just draws solid + // magenta. kError, // SkShader code snippets @@ -29,9 +32,10 @@ enum class SkBuiltInCodeSnippetID : uint8_t { kBlendShader, // aka ComposeShader // BlendMode code snippets - kSimpleBlendMode, + kFixedFunctionBlender, + kShaderBasedBlender, - kLast = kSimpleBlendMode + kLast = kShaderBasedBlender }; static constexpr int kBuiltInCodeSnippetIDCount = static_cast(SkBuiltInCodeSnippetID::kLast)+1; diff --git a/third_party/skia/src/core/SkCanvas.cpp b/third_party/skia/src/core/SkCanvas.cpp index 95b9c6a9d8ea..c617a160f8f5 100644 --- a/third_party/skia/src/core/SkCanvas.cpp +++ b/third_party/skia/src/core/SkCanvas.cpp @@ -54,14 +54,19 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrDirectContext.h" #include "include/private/chromium/GrSlug.h" -#include "src/gpu/BaseDevice.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/BaseDevice.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/utils/SkTestCanvas.h" #if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) -# include "src/gpu/GrRenderTarget.h" -# include "src/gpu/GrRenderTargetProxy.h" +# include "src/gpu/ganesh/GrRenderTarget.h" +# include "src/gpu/ganesh/GrRenderTargetProxy.h" #endif #endif +#ifdef SK_GRAPHITE_ENABLED +#include "src/gpu/graphite/Device.h" +#endif + #define RETURN_ON_NULL(ptr) do { if (nullptr == (ptr)) return; } while (0) #define RETURN_ON_FALSE(pred) do { if (!(pred)) return; } while (0) @@ -1706,7 +1711,7 @@ GrBackendRenderTarget SkCanvas::topLayerBackendRenderTarget() const { GrRecordingContext* SkCanvas::recordingContext() { #if SK_SUPPORT_GPU - if (auto gpuDevice = this->topDevice()->asGpuDevice()) { + if (auto gpuDevice = this->topDevice()->asGaneshDevice()) { return gpuDevice->recordingContext(); } #endif @@ -1714,6 +1719,17 @@ GrRecordingContext* SkCanvas::recordingContext() { return nullptr; } +skgpu::graphite::Recorder* SkCanvas::recorder() { +#ifdef SK_GRAPHITE_ENABLED + if (auto graphiteDevice = this->topDevice()->asGraphiteDevice()) { + return graphiteDevice->recorder(); + } +#endif + + return nullptr; +} + + #ifdef STARBOARD intptr_t SkCanvas::getRenderTargetHandle() const { if (fSurfaceBase) { @@ -2251,14 +2267,40 @@ void SkCanvas::onDrawImage2(const SkImage* image, SkScalar x, SkScalar y, auto layer = this->aboutToDraw(this, realPaint, &bounds); if (layer) { this->topDevice()->drawImageRect(image, nullptr, bounds, sampling, - layer->paint(), kStrict_SrcRectConstraint); + layer->paint(), kFast_SrcRectConstraint); } } +static SkSamplingOptions clean_sampling_for_constraint( + const SkSamplingOptions& sampling, + SkCanvas::SrcRectConstraint constraint) { +#if !defined(SK_LEGACY_ALLOW_STRICT_CONSTRAINT_MIPMAPPING) + if (constraint == SkCanvas::kStrict_SrcRectConstraint && + sampling.mipmap != SkMipmapMode::kNone) { + return SkSamplingOptions(sampling.filter); + } +#endif + return sampling; +} + +static SkCanvas::SrcRectConstraint clean_constraint_for_image_bounds( + SkCanvas::SrcRectConstraint constraint, + const SkRect& src, + const SkImage* image) { +#if defined(SK_DISABLE_STRICT_CONSTRAINT_FOR_ENTIRE_IMAGE) + if (constraint == SkCanvas::kStrict_SrcRectConstraint && src.contains(image->bounds())) { + return SkCanvas::kFast_SrcRectConstraint; + } +#endif + return constraint; +} + void SkCanvas::onDrawImageRect2(const SkImage* image, const SkRect& src, const SkRect& dst, const SkSamplingOptions& sampling, const SkPaint* paint, SrcRectConstraint constraint) { SkPaint realPaint = clean_paint_for_drawImage(paint); + constraint = clean_constraint_for_image_bounds(constraint, src, image); + SkSamplingOptions realSampling = clean_sampling_for_constraint(sampling, constraint); if (this->internalQuickReject(dst, realPaint)) { return; @@ -2268,7 +2310,7 @@ void SkCanvas::onDrawImageRect2(const SkImage* image, const SkRect& src, const S image->isOpaque() ? kOpaque_ShaderOverrideOpacity : kNotOpaque_ShaderOverrideOpacity); if (layer) { - this->topDevice()->drawImageRect(image, &src, dst, sampling, layer->paint(), constraint); + this->topDevice()->drawImageRect(image, &src, dst, realSampling, layer->paint(), constraint); } } @@ -2331,13 +2373,12 @@ void SkCanvas::onDrawGlyphRunList(const SkGlyphRunList& glyphRunList, const SkPa sk_sp SkCanvas::convertBlobToSlug( const SkTextBlob& blob, SkPoint origin, const SkPaint& paint) { TRACE_EVENT0("skia", TRACE_FUNC); - - return this->doConvertBlobToSlug(blob, origin, paint); + auto glyphRunList = fScratchGlyphRunBuilder->blobToGlyphRunList(blob, origin); + return this->onConvertGlyphRunListToSlug(glyphRunList, paint); } sk_sp -SkCanvas::doConvertBlobToSlug(const SkTextBlob& blob, SkPoint origin, const SkPaint& paint) { - auto glyphRunList = fScratchGlyphRunBuilder->blobToGlyphRunList(blob, origin); +SkCanvas::onConvertGlyphRunListToSlug(const SkGlyphRunList& glyphRunList, const SkPaint& paint) { SkRect bounds = glyphRunList.sourceBounds(); if (bounds.isEmpty() || !bounds.isFinite() || paint.nothingToDraw()) { return nullptr; @@ -2349,14 +2390,14 @@ SkCanvas::doConvertBlobToSlug(const SkTextBlob& blob, SkPoint origin, const SkPa return nullptr; } -void SkCanvas::drawSlug(GrSlug* slug) { +void SkCanvas::drawSlug(const GrSlug* slug) { TRACE_EVENT0("skia", TRACE_FUNC); if (slug) { - this->doDrawSlug(slug); + this->onDrawSlug(slug); } } -void SkCanvas::doDrawSlug(GrSlug* slug) { +void SkCanvas::onDrawSlug(const GrSlug* slug) { SkRect bounds = slug->sourceBounds(); if (this->internalQuickReject(bounds, slug->paint())) { return; @@ -2445,6 +2486,10 @@ void SkCanvas::drawGlyphs(int count, const SkGlyphID glyphs[], const SkRSXform x this->onDrawGlyphRunList(glyphRunList, paint); } +#if SK_SUPPORT_GPU && GR_TEST_UTILS +bool gSkBlobAsSlugTesting = false; +#endif + void SkCanvas::drawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, const SkPaint& paint) { TRACE_EVENT0("skia", TRACE_FUNC); @@ -2463,7 +2508,23 @@ void SkCanvas::drawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, RETURN_ON_FALSE(r.fGlyphCount <= glyphsLeft); totalGlyphCount += r.fGlyphCount; } - this->onDrawTextBlob(blob, x, y, paint); + +#if SK_SUPPORT_GPU && GR_TEST_UTILS + // Draw using text blob normally or if the blob has RSX form because slugs can't convert that + // form. + if (!gSkBlobAsSlugTesting || + this->topDevice()->asGaneshDevice() == nullptr || + SkTextBlobPriv::HasRSXForm(*blob)) +#endif + { + this->onDrawTextBlob(blob, x, y, paint); + } +#if SK_SUPPORT_GPU && GR_TEST_UTILS + else { + auto slug = GrSlug::ConvertBlob(this, *blob, {x, y}, paint); + slug->draw(this); + } +#endif } void SkCanvas::onDrawVerticesObject(const SkVertices* vertices, SkBlendMode bmode, @@ -2612,6 +2673,7 @@ void SkCanvas::onDrawEdgeAAImageSet2(const ImageSetEntry imageSet[], int count, } SkPaint realPaint = clean_paint_for_drawImage(paint); + SkSamplingOptions realSampling = clean_sampling_for_constraint(sampling, constraint); // We could calculate the set's dstRect union to always check quickReject(), but we can't reject // individual entries and Chromium's occlusion culling already makes it likely that at least one @@ -2641,8 +2703,8 @@ void SkCanvas::onDrawEdgeAAImageSet2(const ImageSetEntry imageSet[], int count, auto layer = this->aboutToDraw(this, realPaint, setBoundsValid ? &setBounds : nullptr); if (layer) { - this->topDevice()->drawEdgeAAImageSet(imageSet, count, dstClips, preViewMatrices, sampling, - layer->paint(), constraint); + this->topDevice()->drawEdgeAAImageSet(imageSet, count, dstClips, preViewMatrices, + realSampling, layer->paint(), constraint); } } @@ -2854,4 +2916,27 @@ SkRasterHandleAllocator::MakeCanvas(std::unique_ptr all return hndl ? std::unique_ptr(new SkCanvas(bm, std::move(alloc), hndl)) : nullptr; } -/////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// +#if SK_SUPPORT_GPU && GR_TEST_UTILS +SkTestCanvas::SkTestCanvas(SkCanvas* canvas) + : SkCanvas(sk_ref_sp(canvas->baseDevice())) {} + +void SkTestCanvas::onDrawGlyphRunList( + const SkGlyphRunList& glyphRunList, const SkPaint& paint) { + SkRect bounds = glyphRunList.sourceBounds(); + if (this->internalQuickReject(bounds, paint)) { + return; + } + auto layer = this->aboutToDraw(this, paint, &bounds); + if (layer) { + if (glyphRunList.hasRSXForm()) { + this->SkCanvas::onDrawGlyphRunList(glyphRunList, layer->paint()); + } else { + auto slug = this->onConvertGlyphRunListToSlug(glyphRunList, layer->paint()); + this->drawSlug(slug.get()); + } + } +} +#endif + +//////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/core/SkCanvasPriv.cpp b/third_party/skia/src/core/SkCanvasPriv.cpp index b11e9a392ae1..786c7de3ab89 100644 --- a/third_party/skia/src/core/SkCanvasPriv.cpp +++ b/third_party/skia/src/core/SkCanvasPriv.cpp @@ -113,11 +113,11 @@ void SkCanvasPriv::DrawCustomMesh(SkCanvas* canvas, #if GR_TEST_UTILS #if SK_SUPPORT_GPU -#include "src/gpu/BaseDevice.h" +#include "src/gpu/ganesh/BaseDevice.h" #if SK_GPU_V1 skgpu::v1::SurfaceDrawContext* SkCanvasPriv::TopDeviceSurfaceDrawContext(SkCanvas* canvas) { - if (auto gpuDevice = canvas->topDevice()->asGpuDevice()) { + if (auto gpuDevice = canvas->topDevice()->asGaneshDevice()) { return gpuDevice->surfaceDrawContext(); } @@ -126,7 +126,7 @@ skgpu::v1::SurfaceDrawContext* SkCanvasPriv::TopDeviceSurfaceDrawContext(SkCanva #endif // SK_GPU_V1 skgpu::SurfaceFillContext* SkCanvasPriv::TopDeviceSurfaceFillContext(SkCanvas* canvas) { - if (auto gpuDevice = canvas->topDevice()->asGpuDevice()) { + if (auto gpuDevice = canvas->topDevice()->asGaneshDevice()) { return gpuDevice->surfaceFillContext(); } @@ -150,10 +150,10 @@ skgpu::SurfaceFillContext* SkCanvasPriv::TopDeviceSurfaceFillContext(SkCanvas* c #endif // GR_TEST_UTILS #if SK_SUPPORT_GPU -#include "src/gpu/BaseDevice.h" +#include "src/gpu/ganesh/BaseDevice.h" GrRenderTargetProxy* SkCanvasPriv::TopDeviceTargetProxy(SkCanvas* canvas) { - if (auto gpuDevice = canvas->topDevice()->asGpuDevice()) { + if (auto gpuDevice = canvas->topDevice()->asGaneshDevice()) { return gpuDevice->targetProxy(); } diff --git a/third_party/skia/src/core/SkChromeRemoteGlyphCache.cpp b/third_party/skia/src/core/SkChromeRemoteGlyphCache.cpp index f9f244f6f10e..7b748ed2b148 100644 --- a/third_party/skia/src/core/SkChromeRemoteGlyphCache.cpp +++ b/third_party/skia/src/core/SkChromeRemoteGlyphCache.cpp @@ -33,9 +33,9 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrContextOptions.h" -#include "src/gpu/GrDrawOpAtlas.h" -#include "src/gpu/text/GrSDFTControl.h" -#include "src/gpu/text/GrTextBlob.h" +#include "src/gpu/ganesh/GrDrawOpAtlas.h" +#include "src/gpu/ganesh/text/GrSDFTControl.h" +#include "src/gpu/ganesh/text/GrTextBlob.h" #endif namespace { @@ -291,7 +291,7 @@ class RemoteStrike final : public SkStrikeForGPU { LowerRangeBitVector fSentLowGlyphIDs; // The masks and paths that currently reside in the GPU process. - SkTHashTable fSentGlyphs; + SkTHashMap fSentGlyphs; SkTHashTable fSentPaths; SkTHashTable fSentDrawables; @@ -319,8 +319,7 @@ RemoteStrike::RemoteStrike( SkASSERT(fContext != nullptr); } -// No need to write fForceBW because it is a flag private to SkScalerContext_DW, which will never -// be called on the GPU side. +// No need to write fScalerContextBits because any needed image is already generated. void write_glyph(const SkGlyph& glyph, Serializer* serializer) { serializer->write(glyph.getPackedID()); serializer->write(glyph.advanceX()); @@ -438,7 +437,7 @@ void RemoteStrike::commonMaskLoop( SkDrawableGlyphBuffer* accepted, SkSourceGlyphBuffer* rejected, Rejector&& reject) { accepted->forEachInput( [&](size_t i, SkPackedGlyphID packedID, SkPoint position) { - SkGlyphDigest* digest = fSentGlyphs.find(packedID.value()); + SkGlyphDigest* digest = fSentGlyphs.find(packedID); if (digest == nullptr) { // Put the new SkGlyph in the glyphs to send. this->ensureScalerContext(); @@ -446,7 +445,7 @@ void RemoteStrike::commonMaskLoop( SkGlyph* glyph = &fMasksToSend.back(); SkGlyphDigest newDigest{0, *glyph}; - digest = fSentGlyphs.set(newDigest); + digest = fSentGlyphs.set(packedID, newDigest); } // Reject things that are too big. @@ -462,14 +461,14 @@ void RemoteStrike::prepareForMaskDrawing( SkPackedGlyphID packedID = variant.packedID(); if (fSentLowGlyphIDs.test(packedID)) { #ifdef SK_DEBUG - SkGlyphDigest* digest = fSentGlyphs.find(packedID.value()); + SkGlyphDigest* digest = fSentGlyphs.find(packedID); SkASSERT(digest != nullptr); SkASSERT(digest->canDrawAsMask() && digest->canDrawAsSDFT()); #endif continue; } - SkGlyphDigest* digest = fSentGlyphs.find(packedID.value()); + SkGlyphDigest* digest = fSentGlyphs.find(packedID); if (digest == nullptr) { // Put the new SkGlyph in the glyphs to send. @@ -479,7 +478,7 @@ void RemoteStrike::prepareForMaskDrawing( SkGlyphDigest newDigest{0, *glyph}; - digest = fSentGlyphs.set(newDigest); + digest = fSentGlyphs.set(packedID, newDigest); if (digest->canDrawAsMask() && digest->canDrawAsSDFT()) { fSentLowGlyphIDs.setIfLower(packedID); @@ -846,10 +845,9 @@ class GlyphTrackingDevice final : public SkNoPixelsDevice { ctxOptions.fMinDistanceFieldFontSize, ctxOptions.fGlyphsAsPathsFontSize}; - SkMatrix drawMatrix = this->localToDevice(); - - // Run to fill the cache with the right strike transfer information. - drawMatrix.preTranslate(glyphRunList.origin().x(), glyphRunList.origin().y()); + // Full matrix for placing glyphs. + SkMatrix positionMatrix = this->localToDevice(); + positionMatrix.preTranslate(glyphRunList.origin().x(), glyphRunList.origin().y()); // TODO these two passes can be converted into one when the SkRemoteGlyphCache's strike // cache is fortified with enough information for supporting slug creation. @@ -859,14 +857,15 @@ class GlyphTrackingDevice final : public SkNoPixelsDevice { for (auto& glyphRun : glyphRunList) { fPainter.processGlyphRun(nullptr, glyphRun, - drawMatrix, + positionMatrix, paint, control, "Convert Slug Analysis"); } // Use the glyph strike cache to get actual glyph information. - return skgpu::v1::MakeSlug(drawMatrix, glyphRunList, paint, control, &fConvertPainter); + return skgpu::v1::MakeSlug( + this->localToDevice(), glyphRunList, paint, control, &fConvertPainter); } #endif // SK_SUPPORT_GPU @@ -969,8 +968,7 @@ SkStrikeClientImpl::SkStrikeClientImpl( fStrikeCache{strikeCache ? strikeCache : SkStrikeCache::GlobalStrikeCache()}, fIsLogging{isLogging} {} -// No need to read fForceBW because it is a flag private to SkScalerContext_DW, which will never -// be called on the GPU side. +// No need to write fScalerContextBits because any needed image is already generated. bool SkStrikeClientImpl::ReadGlyph(SkTLazy& glyph, Deserializer* deserializer) { SkPackedGlyphID glyphID; if (!deserializer->read(&glyphID)) return false; @@ -1208,7 +1206,7 @@ bool SkStrikeClient::translateTypefaceID(SkAutoDescriptor* descriptor) const { } #if SK_SUPPORT_GPU -sk_sp SkStrikeClient::makeSlugFromBuffer(SkReadBuffer& buffer) const { - return GrSlug::MakeFromBuffer(buffer, this); +sk_sp SkStrikeClient::deserializeSlug(const void* data, size_t size) const { + return GrSlug::Deserialize(data, size, this); } #endif // SK_SUPPORT_GPU diff --git a/third_party/skia/src/core/SkClipStack.cpp b/third_party/skia/src/core/SkClipStack.cpp index af0d1a7dfc56..a1016a4729dd 100644 --- a/third_party/skia/src/core/SkClipStack.cpp +++ b/third_party/skia/src/core/SkClipStack.cpp @@ -15,7 +15,7 @@ #include #if SK_SUPPORT_GPU -#include "src/gpu/GrProxyProvider.h" +#include "src/gpu/ganesh/GrProxyProvider.h" #endif SkClipStack::Element::Element(const Element& that) { diff --git a/third_party/skia/src/core/SkColorFilter.cpp b/third_party/skia/src/core/SkColorFilter.cpp index cfb5f954d678..c77b38f7e8bb 100644 --- a/third_party/skia/src/core/SkColorFilter.cpp +++ b/third_party/skia/src/core/SkColorFilter.cpp @@ -11,6 +11,7 @@ #include "include/effects/SkRuntimeEffect.h" #include "include/private/SkNx.h" #include "include/private/SkTDArray.h" +#include "include/third_party/skcms/skcms.h" #include "src/core/SkArenaAlloc.h" #include "src/core/SkColorFilterBase.h" #include "src/core/SkColorFilterPriv.h" @@ -24,9 +25,9 @@ #include "src/core/SkWriteBuffer.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrColorInfo.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" #endif bool SkColorFilter::asAColorMode(SkColor* color, SkBlendMode* mode) const { diff --git a/third_party/skia/src/core/SkColorFilterPriv.h b/third_party/skia/src/core/SkColorFilterPriv.h index 2273dcfc35fe..b580bb45a4f7 100644 --- a/third_party/skia/src/core/SkColorFilterPriv.h +++ b/third_party/skia/src/core/SkColorFilterPriv.h @@ -10,6 +10,9 @@ #include "include/core/SkColorFilter.h" +struct skcms_Matrix3x3; +struct skcms_TransferFunction; + class SkColorFilterPriv { public: static sk_sp MakeGaussian(); diff --git a/third_party/skia/src/core/SkColorFilter_Matrix.cpp b/third_party/skia/src/core/SkColorFilter_Matrix.cpp index a0a047c3452b..b59a6b644090 100644 --- a/third_party/skia/src/core/SkColorFilter_Matrix.cpp +++ b/third_party/skia/src/core/SkColorFilter_Matrix.cpp @@ -120,7 +120,7 @@ skvm::Color SkColorFilter_Matrix::onProgram(skvm::Builder* p, skvm::Color c, } #if SK_SUPPORT_GPU -#include "src/gpu/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" // Convert RGBA -> HSLA (including unpremul). // diff --git a/third_party/skia/src/core/SkColorSpaceXformSteps.cpp b/third_party/skia/src/core/SkColorSpaceXformSteps.cpp index 501f8b4e34d0..f61b0f266ee8 100644 --- a/third_party/skia/src/core/SkColorSpaceXformSteps.cpp +++ b/third_party/skia/src/core/SkColorSpaceXformSteps.cpp @@ -5,9 +5,13 @@ * found in the LICENSE file. */ +#include "src/core/SkColorSpaceXformSteps.h" + +#include "include/core/SkColorSpace.h" +#include "include/core/SkTypes.h" +#include "include/private/SkFloatingPoint.h" #include "include/third_party/skcms/skcms.h" #include "src/core/SkColorSpacePriv.h" -#include "src/core/SkColorSpaceXformSteps.h" #include "src/core/SkRasterPipeline.h" #include "src/core/SkVM.h" diff --git a/third_party/skia/src/core/SkColorSpaceXformSteps.h b/third_party/skia/src/core/SkColorSpaceXformSteps.h index 03c9aab638d9..e9d5d74eb9e1 100644 --- a/third_party/skia/src/core/SkColorSpaceXformSteps.h +++ b/third_party/skia/src/core/SkColorSpaceXformSteps.h @@ -8,11 +8,12 @@ #ifndef SkColorSpaceXformSteps_DEFINED #define SkColorSpaceXformSteps_DEFINED -#include "include/core/SkColorSpace.h" -#include "include/core/SkImageInfo.h" -#include "include/private/SkImageInfoPriv.h" -#include "src/core/SkVM_fwd.h" +#include "include/core/SkAlphaType.h" +#include "include/third_party/skcms/skcms.h" +#include "src/core/SkVM.h" +#include +class SkColorSpace; class SkRasterPipeline; struct SkColorSpaceXformSteps { diff --git a/third_party/skia/src/core/SkCustomMesh.cpp b/third_party/skia/src/core/SkCustomMesh.cpp index 3920ccd24e37..68439828a282 100644 --- a/third_party/skia/src/core/SkCustomMesh.cpp +++ b/third_party/skia/src/core/SkCustomMesh.cpp @@ -8,16 +8,27 @@ #include "include/core/SkCustomMesh.h" #ifdef SK_ENABLE_SKSL - +#include "include/core/SkColorSpace.h" +#include "include/core/SkMath.h" +#include "include/private/SkOpts_spi.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLProgramKind.h" #include "src/core/SkCustomMeshPriv.h" -#include "src/gpu/GrShaderCaps.h" +#include "src/sksl/SkSLAnalysis.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/SkSLSharedCompiler.h" +#include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" #include "src/sksl/ir/SkSLProgram.h" -#include "src/sksl/ir/SkSLVarDeclarations.h" +#include "src/sksl/ir/SkSLType.h" +#include "src/sksl/ir/SkSLVariable.h" #include +#include +#include +#include +#include using Attribute = SkCustomMeshSpecification::Attribute; using Varying = SkCustomMeshSpecification::Varying; @@ -170,6 +181,27 @@ check_vertex_offsets_and_stride(SkSpan attributes, RETURN_SUCCESS; } +SkCustomMeshSpecification::Result SkCustomMeshSpecification::Make( + SkSpan attributes, + size_t vertexStride, + SkSpan varyings, + const SkString& vs, + const SkString& fs) { + return Make(attributes, vertexStride, varyings, vs, fs, + SkColorSpace::MakeSRGB(), kPremul_SkAlphaType); +} + +SkCustomMeshSpecification::Result SkCustomMeshSpecification::Make( + SkSpan attributes, + size_t vertexStride, + SkSpan varyings, + const SkString& vs, + const SkString& fs, + sk_sp cs) { + return Make(attributes, vertexStride, varyings, vs, fs, + std::move(cs), kPremul_SkAlphaType); +} + SkCustomMeshSpecification::Result SkCustomMeshSpecification::Make( SkSpan attributes, size_t vertexStride, diff --git a/third_party/skia/src/core/SkCustomMeshPriv.h b/third_party/skia/src/core/SkCustomMeshPriv.h index 2a8da99d3573..ac4abd49dacd 100644 --- a/third_party/skia/src/core/SkCustomMeshPriv.h +++ b/third_party/skia/src/core/SkCustomMeshPriv.h @@ -11,7 +11,7 @@ #include "include/core/SkCustomMesh.h" #ifdef SK_ENABLE_SKSL -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkSLTypeShared.h" struct SkCustomMeshSpecificationPriv { diff --git a/third_party/skia/src/core/SkDeferredDisplayList.cpp b/third_party/skia/src/core/SkDeferredDisplayList.cpp index 56ed63a7a4db..de7669385c6a 100644 --- a/third_party/skia/src/core/SkDeferredDisplayList.cpp +++ b/third_party/skia/src/core/SkDeferredDisplayList.cpp @@ -14,8 +14,8 @@ class SkSurfaceCharacterization; #if SK_SUPPORT_GPU -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrRenderTask.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrRenderTask.h" #endif SkDeferredDisplayList::SkDeferredDisplayList(const SkSurfaceCharacterization& characterization, diff --git a/third_party/skia/src/core/SkDeferredDisplayListRecorder.cpp b/third_party/skia/src/core/SkDeferredDisplayListRecorder.cpp index 365104534056..d067b17d943a 100644 --- a/third_party/skia/src/core/SkDeferredDisplayListRecorder.cpp +++ b/third_party/skia/src/core/SkDeferredDisplayListRecorder.cpp @@ -28,10 +28,10 @@ sk_sp SkDeferredDisplayListRecorder::detach() { return nu #include "include/core/SkPromiseImageTexture.h" #include "include/gpu/GrRecordingContext.h" #include "include/gpu/GrYUVABackendTextures.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/SkGr.h" #include "src/image/SkImage_Gpu.h" #include "src/image/SkImage_GpuYUVA.h" #include "src/image/SkSurface_Gpu.h" diff --git a/third_party/skia/src/core/SkDescriptor.cpp b/third_party/skia/src/core/SkDescriptor.cpp index 9ffce8999cc6..545fddd715e9 100644 --- a/third_party/skia/src/core/SkDescriptor.cpp +++ b/third_party/skia/src/core/SkDescriptor.cpp @@ -16,7 +16,7 @@ #include "src/core/SkOpts.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkWriteBuffer.h" -#include "src/gpu/GrResourceProvider.h" +#include "src/gpu/ganesh/GrResourceProvider.h" std::unique_ptr SkDescriptor::Alloc(size_t length) { SkASSERT(length >= sizeof(SkDescriptor) && SkAlign4(length) == length); @@ -193,7 +193,14 @@ std::optional SkAutoDescriptor::MakeFromBuffer(SkReadBuffer& b return {}; } +// If the fuzzer produces data but the checksum does not match, let it continue. This will boost +// fuzzing speed. We leave the actual checksum computation in for fuzzing builds to make sure +// the ComputeChecksum function is covered. +#if defined(SK_BUILD_FOR_FUZZER) + SkDescriptor::ComputeChecksum(ad.getDesc()); +#else if (SkDescriptor::ComputeChecksum(ad.getDesc()) != ad.getDesc()->fChecksum) { return {}; } +#endif if (!ad.getDesc()->isValid()) { return {}; } return {ad}; diff --git a/third_party/skia/src/core/SkDescriptor.h b/third_party/skia/src/core/SkDescriptor.h index 9e535afdc267..1e99ab834b4d 100644 --- a/third_party/skia/src/core/SkDescriptor.h +++ b/third_party/skia/src/core/SkDescriptor.h @@ -63,9 +63,7 @@ class SkDescriptor : SkNoncopyable { uint32_t fLen; }; -#ifdef SK_DEBUG uint32_t getCount() const { return fCount; } -#endif SkString dumpRec() const; diff --git a/third_party/skia/src/core/SkDevice.cpp b/third_party/skia/src/core/SkDevice.cpp index 5d4018bccf3c..8201c5531396 100644 --- a/third_party/skia/src/core/SkDevice.cpp +++ b/third_party/skia/src/core/SkDevice.cpp @@ -8,6 +8,7 @@ #include "src/core/SkDevice.h" #include "include/core/SkColorFilter.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkDrawable.h" #include "include/core/SkImageFilter.h" #include "include/core/SkPathMeasure.h" @@ -62,6 +63,7 @@ bool SkBaseDevice::setDeviceCoordinateSystem(const SkM44& deviceToGlobal, fLocalToDevice.postTranslate(-bufferOriginX, -bufferOriginY); } fLocalToDevice33 = fLocalToDevice.asM33(); + fLocalToDeviceDirty = true; return true; } @@ -71,6 +73,7 @@ void SkBaseDevice::setGlobalCTM(const SkM44& ctm) { // Map from the global CTM state to this device's coordinate system. fLocalToDevice.postConcat(fGlobalToDevice); fLocalToDevice33 = fLocalToDevice.asM33(); + fLocalToDeviceDirty = true; } bool SkBaseDevice::isPixelAlignedToGlobal() const { @@ -486,7 +489,7 @@ sk_sp SkBaseDevice::convertGlyphRunListToSlug( return nullptr; } -void SkBaseDevice::drawSlug(SkCanvas*, GrSlug*) { +void SkBaseDevice::drawSlug(SkCanvas*, const GrSlug*) { SK_ABORT("GrSlug drawing not supported."); } #endif @@ -499,6 +502,20 @@ sk_sp SkBaseDevice::makeSurface(SkImageInfo const&, SkSurfaceProps co ////////////////////////////////////////////////////////////////////////////////////////// +SkNoPixelsDevice::SkNoPixelsDevice(const SkIRect& bounds, const SkSurfaceProps& props) + : SkNoPixelsDevice(bounds, props, nullptr) {} + +SkNoPixelsDevice::SkNoPixelsDevice(const SkIRect& bounds, const SkSurfaceProps& props, + sk_sp colorSpace) + : SkBaseDevice(SkImageInfo::Make(bounds.size(), kUnknown_SkColorType, kUnknown_SkAlphaType, + std::move(colorSpace)), props) { + // this fails if we enable this assert: DiscardableImageMapTest.GetDiscardableImagesInRectMaxImage + //SkASSERT(bounds.width() >= 0 && bounds.height() >= 0); + + this->setOrigin(SkM44(), bounds.left(), bounds.top()); + this->resetClipStack(); +} + void SkNoPixelsDevice::onSave() { SkASSERT(!fClipStack.empty()); fClipStack.back().fDeferredSaveCount++; diff --git a/third_party/skia/src/core/SkDevice.h b/third_party/skia/src/core/SkDevice.h index 2b2fac23814d..8ce52790c397 100644 --- a/third_party/skia/src/core/SkDevice.h +++ b/third_party/skia/src/core/SkDevice.h @@ -23,6 +23,7 @@ #include "src/shaders/SkShaderBase.h" class SkBitmap; +class SkColorSpace; struct SkDrawShadowRec; class SkGlyphRun; class SkGlyphRunList; @@ -33,7 +34,12 @@ class SkRasterHandleAllocator; class SkSpecialImage; namespace skif { class Mapping; } -namespace skgpu { class BaseDevice; } +namespace skgpu { +class BaseDevice; +} +namespace skgpu::graphite { +class Device; +} class SkBaseDevice : public SkRefCnt, public SkMatrixProvider { public: @@ -182,13 +188,15 @@ class SkBaseDevice : public SkRefCnt, public SkMatrixProvider { void setLocalToDevice(const SkM44& localToDevice) { fLocalToDevice = localToDevice; fLocalToDevice33 = fLocalToDevice.asM33(); + fLocalToDeviceDirty = true; } void setGlobalCTM(const SkM44& ctm); virtual void validateDevBounds(const SkIRect&) {} virtual bool android_utils_clipWithStencil() { return false; } - virtual skgpu::BaseDevice* asGpuDevice() { return nullptr; } + virtual skgpu::BaseDevice* asGaneshDevice() { return nullptr; } + virtual skgpu::graphite::Device* asGraphiteDevice() { return nullptr; } // Ensure that non-RSXForm runs are passed to onDrawGlyphRunList. void drawGlyphRunList(SkCanvas*, const SkGlyphRunList& glyphRunList, const SkPaint& paint); @@ -264,7 +272,14 @@ class SkBaseDevice : public SkRefCnt, public SkMatrixProvider { virtual void drawImageLattice(const SkImage*, const SkCanvas::Lattice&, const SkRect& dst, SkFilterMode, const SkPaint&); - virtual void drawVertices(const SkVertices*, sk_sp, const SkPaint&) = 0; + /** + * If skipColorXform is true, then the implementation should assume that the provided + * vertex colors are already in the destination color space. + */ + virtual void drawVertices(const SkVertices*, + sk_sp, + const SkPaint&, + bool skipColorXform = false) = 0; #ifdef SK_ENABLE_SKSL virtual void drawCustomMesh(SkCustomMesh cm, sk_sp, const SkPaint&) = 0; #endif @@ -303,7 +318,7 @@ class SkBaseDevice : public SkRefCnt, public SkMatrixProvider { virtual sk_sp convertGlyphRunListToSlug( const SkGlyphRunList& glyphRunList, const SkPaint& paint); - virtual void drawSlug(SkCanvas*, GrSlug* slug); + virtual void drawSlug(SkCanvas*, const GrSlug* slug); #endif /** @@ -407,6 +422,13 @@ class SkBaseDevice : public SkRefCnt, public SkMatrixProvider { // inspect a layer's device to know if calling drawDevice() later is allowed. virtual bool isNoPixelsDevice() const { return false; } + // Returns whether or not localToDevice() has changed since the last call to this function. + bool checkLocalToDeviceDirty() { + bool wasDirty = fLocalToDeviceDirty; + fLocalToDeviceDirty = false; + return wasDirty; + } + private: friend class SkAndroidFrameworkUtils; friend class SkCanvas; @@ -462,23 +484,20 @@ class SkBaseDevice : public SkRefCnt, public SkMatrixProvider { // fLocalToDevice (inherited from SkMatrixProvider) is the device CTM, not the global CTM // It maps from local space to the device's coordinate space. // fDeviceToGlobal * fLocalToDevice will match the canvas' CTM. + // + // setGlobalCTM and setLocalToDevice are intentionally not virtual for performance reasons. + // However, track a dirty bit for subclasses that want to defer local-to-device dependent + // calculations until needed for a clip or draw. + bool fLocalToDeviceDirty = true; using INHERITED = SkRefCnt; }; class SkNoPixelsDevice : public SkBaseDevice { public: + SkNoPixelsDevice(const SkIRect& bounds, const SkSurfaceProps& props); SkNoPixelsDevice(const SkIRect& bounds, const SkSurfaceProps& props, - sk_sp colorSpace = nullptr) - : SkBaseDevice(SkImageInfo::Make(bounds.size(), kUnknown_SkColorType, - kUnknown_SkAlphaType, std::move(colorSpace)), - props) { - // this fails if we enable this assert: DiscardableImageMapTest.GetDiscardableImagesInRectMaxImage - //SkASSERT(bounds.width() >= 0 && bounds.height() >= 0); - - this->setOrigin(SkM44(), bounds.left(), bounds.top()); - this->resetClipStack(); - } + sk_sp colorSpace); void resetForNextPicture(const SkIRect& bounds) { //SkASSERT(bounds.width() >= 0 && bounds.height() >= 0); @@ -519,7 +538,7 @@ class SkNoPixelsDevice : public SkBaseDevice { void drawRRect(const SkRRect&, const SkPaint&) override {} void drawPath(const SkPath&, const SkPaint&, bool) override {} void drawDevice(SkBaseDevice*, const SkSamplingOptions&, const SkPaint&) override {} - void drawVertices(const SkVertices*, sk_sp, const SkPaint&) override {} + void drawVertices(const SkVertices*, sk_sp, const SkPaint&, bool) override {} #ifdef SK_ENABLE_SKSL void drawCustomMesh(SkCustomMesh, sk_sp, const SkPaint&) override {} #endif diff --git a/third_party/skia/src/core/SkDraw.h b/third_party/skia/src/core/SkDraw.h index dc5fe8ede985..fa8f2e86fefa 100644 --- a/third_party/skia/src/core/SkDraw.h +++ b/third_party/skia/src/core/SkDraw.h @@ -65,7 +65,11 @@ class SkDraw : public SkGlyphRunListPainter::BitmapDevicePainter { SkGlyphRunListPainter* glyphPainter, const SkGlyphRunList& glyphRunList, const SkPaint& paint) const; - void drawVertices(const SkVertices*, sk_sp, const SkPaint&) const; + /* If skipColorXform, skips color conversion when assigning per-vertex colors */ + void drawVertices(const SkVertices*, + sk_sp, + const SkPaint&, + bool skipColorXform) const; void drawAtlas(const SkRSXform[], const SkRect[], const SkColor[], int count, sk_sp, const SkPaint&); @@ -123,7 +127,8 @@ class SkDraw : public SkGlyphRunListPainter::BitmapDevicePainter { const SkMatrix& ctmInverse, const SkPoint* dev2, const SkPoint3* dev3, - SkArenaAlloc* outerAlloc) const; + SkArenaAlloc* outerAlloc, + bool skipColorXform) const; void drawPath(const SkPath&, const SkPaint&, diff --git a/third_party/skia/src/core/SkDraw_vertices.cpp b/third_party/skia/src/core/SkDraw_vertices.cpp index 36a8ea15a751..a6e3584b1aa5 100644 --- a/third_party/skia/src/core/SkDraw_vertices.cpp +++ b/third_party/skia/src/core/SkDraw_vertices.cpp @@ -5,6 +5,7 @@ * found in the LICENSE file. */ +#include "include/core/SkColorSpace.h" #include "include/core/SkString.h" #include "include/private/SkNx.h" #include "src/core/SkArenaAlloc.h" @@ -196,13 +197,19 @@ bool SkTriColorShader::update(const SkMatrix& ctmInv, const SkPoint pts[], // - convert colors into dst colorspace before interpolation (matches gradients) // - apply per-color alpha before interpolation (matches old version of vertices) // -static SkPMColor4f* convert_colors(const SkColor src[], int count, SkColorSpace* deviceCS, - SkArenaAlloc* alloc) { +static SkPMColor4f* convert_colors(const SkColor src[], + int count, + SkColorSpace* deviceCS, + SkArenaAlloc* alloc, + bool skipColorXform) { SkPMColor4f* dst = alloc->makeArray(count); - SkImageInfo srcInfo = SkImageInfo::Make(count, 1, kBGRA_8888_SkColorType, - kUnpremul_SkAlphaType, SkColorSpace::MakeSRGB()); - SkImageInfo dstInfo = SkImageInfo::Make(count, 1, kRGBA_F32_SkColorType, - kPremul_SkAlphaType, sk_ref_sp(deviceCS)); + + // Passing `nullptr` for the destination CS effectively disables color conversion. + auto dstCS = skipColorXform ? nullptr : sk_ref_sp(deviceCS); + SkImageInfo srcInfo = SkImageInfo::Make( + count, 1, kBGRA_8888_SkColorType, kUnpremul_SkAlphaType, SkColorSpace::MakeSRGB()); + SkImageInfo dstInfo = + SkImageInfo::Make(count, 1, kRGBA_F32_SkColorType, kPremul_SkAlphaType, dstCS); SkAssertResult(SkConvertPixels(dstInfo, dst, 0, srcInfo, src, 0)); return dst; } @@ -312,7 +319,8 @@ void SkDraw::drawFixedVertices(const SkVertices* vertices, const SkMatrix& ctmInverse, const SkPoint* dev2, const SkPoint3* dev3, - SkArenaAlloc* outerAlloc) const { + SkArenaAlloc* outerAlloc, + bool skipColorXform) const { SkVerticesPriv info(vertices->priv()); const int vertexCount = info.vertexCount(); @@ -358,7 +366,8 @@ void SkDraw::drawFixedVertices(const SkVertices* vertices, SkTriColorShader* triColorShader = nullptr; SkPMColor4f* dstColors = nullptr; if (colors) { - dstColors = convert_colors(colors, vertexCount, fDst.colorSpace(), outerAlloc); + dstColors = + convert_colors(colors, vertexCount, fDst.colorSpace(), outerAlloc, skipColorXform); triColorShader = outerAlloc->make(compute_is_opaque(colors, vertexCount), usePerspective); } @@ -516,7 +525,8 @@ void SkDraw::drawFixedVertices(const SkVertices* vertices, void SkDraw::drawVertices(const SkVertices* vertices, sk_sp blender, - const SkPaint& paint) const { + const SkPaint& paint, + bool skipColorXform) const { SkVerticesPriv info(vertices->priv()); const int vertexCount = info.vertexCount(); const int indexCount = info.indexCount(); @@ -559,5 +569,6 @@ void SkDraw::drawVertices(const SkVertices* vertices, } } - this->drawFixedVertices(vertices, std::move(blender), paint, ctmInv, dev2, dev3, &outerAlloc); + this->drawFixedVertices( + vertices, std::move(blender), paint, ctmInv, dev2, dev3, &outerAlloc, skipColorXform); } diff --git a/third_party/skia/src/core/SkFontDescriptor.cpp b/third_party/skia/src/core/SkFontDescriptor.cpp index 5774c624805e..bee7f0e36370 100644 --- a/third_party/skia/src/core/SkFontDescriptor.cpp +++ b/third_party/skia/src/core/SkFontDescriptor.cpp @@ -206,24 +206,32 @@ void SkFontDescriptor::serialize(SkWStream* stream) const { write_scalar(stream, fStyle.slant() == SkFontStyle::kUpright_Slant ? 0 : 14, kSlant); write_scalar(stream, fStyle.slant() == SkFontStyle::kItalic_Slant ? 1 : 0, kItalic); - if (fCollectionIndex) { + if (fCollectionIndex > 0) { write_uint(stream, fCollectionIndex, kFontIndex); } - if (fPaletteIndex) { + if (fPaletteIndex > 0) { write_uint(stream, fPaletteIndex, kPaletteIndex); } - if (fCoordinateCount) { + if (fCoordinateCount > 0) { write_uint(stream, fCoordinateCount, kFontVariation); for (int i = 0; i < fCoordinateCount; ++i) { stream->write32(fVariation[i].axis); stream->writeScalar(fVariation[i].value); } } - if (fPaletteEntryOverrideCount) { - write_uint(stream, fPaletteEntryOverrideCount, kPaletteEntryOverrides); + if (fPaletteEntryOverrideCount > 0) { + int nonNegativePaletteOverrideIndexes = 0; for (int i = 0; i < fPaletteEntryOverrideCount; ++i) { - stream->writePackedUInt(fPaletteEntryOverrides[i].index); - stream->write32(fPaletteEntryOverrides[i].color); + if (0 <= fPaletteEntryOverrides[i].index) { + ++nonNegativePaletteOverrideIndexes; + } + } + write_uint(stream, nonNegativePaletteOverrideIndexes, kPaletteEntryOverrides); + for (int i = 0; i < fPaletteEntryOverrideCount; ++i) { + if (0 <= fPaletteEntryOverrides[i].index) { + stream->writePackedUInt(fPaletteEntryOverrides[i].index); + stream->write32(fPaletteEntryOverrides[i].color); + } } } diff --git a/third_party/skia/src/core/SkFontDescriptor.h b/third_party/skia/src/core/SkFontDescriptor.h index f00560ef9e96..b8dc34df31ed 100644 --- a/third_party/skia/src/core/SkFontDescriptor.h +++ b/third_party/skia/src/core/SkFontDescriptor.h @@ -111,7 +111,7 @@ class SkFontDescriptor : SkNoncopyable { std::unique_ptr detachStream() { return std::move(fStream); } void setStream(std::unique_ptr stream) { fStream = std::move(stream); } void setCollectionIndex(int collectionIndex) { fCollectionIndex = collectionIndex; } - void setPaleteIndex(int paletteIndex) { fPaletteIndex = paletteIndex; } + void setPaletteIndex(int paletteIndex) { fPaletteIndex = paletteIndex; } SkFontArguments::VariationPosition::Coordinate* setVariationCoordinates(int coordinateCount) { fCoordinateCount = coordinateCount; return fVariation.reset(coordinateCount); diff --git a/third_party/skia/src/core/SkGlyph.cpp b/third_party/skia/src/core/SkGlyph.cpp index 8eb0f5ed47f0..d61cc5e417e0 100644 --- a/third_party/skia/src/core/SkGlyph.cpp +++ b/third_party/skia/src/core/SkGlyph.cpp @@ -8,6 +8,7 @@ #include "src/core/SkGlyph.h" #include "include/core/SkDrawable.h" +#include "include/core/SkScalar.h" #include "src/core/SkArenaAlloc.h" #include "src/core/SkScalerContext.h" #include "src/pathops/SkPathOpsCubic.h" @@ -29,6 +30,7 @@ SkMask SkGlyph::mask() const { } SkMask SkGlyph::mask(SkPoint position) const { + SkASSERT(SkScalarIsInt(position.x()) && SkScalarIsInt(position.y())); SkMask answer = this->mask(); answer.fBounds.offset(SkScalarFloorToInt(position.x()), SkScalarFloorToInt(position.y())); return answer; @@ -117,7 +119,7 @@ size_t SkGlyph::setMetricsAndImage(SkArenaAlloc* alloc, const SkGlyph& from) { fHeight = from.fHeight; fTop = from.fTop; fLeft = from.fLeft; - fForceBW = from.fForceBW; + fScalerContextBits = from.fScalerContextBits; fMaskFormat = from.fMaskFormat; // From glyph may not have an image because the glyph is too large. @@ -395,10 +397,12 @@ void SkGlyph::ensureIntercepts(const SkScalar* bounds, SkScalar scale, SkScalar } SkGlyphDigest::SkGlyphDigest(size_t index, const SkGlyph& glyph) - : fPackedGlyphID{glyph.getPackedID().value()} - , fIndex{SkTo(index)} + : fIndex{SkTo(index)} , fIsEmpty(glyph.isEmpty()) , fIsColor(glyph.isColor()) , fCanDrawAsMask{SkStrikeForGPU::CanDrawAsMask(glyph)} , fCanDrawAsSDFT{SkStrikeForGPU::CanDrawAsSDFT(glyph)} - , fMaxDimension{(uint16_t)glyph.maxDimension()} {} + , fLeft{SkTo(glyph.left())} + , fTop{SkTo(glyph.top())} + , fWidth{SkTo(glyph.width())} + , fHeight{SkTo(glyph.height())} {} diff --git a/third_party/skia/src/core/SkGlyph.h b/third_party/skia/src/core/SkGlyph.h index d725511756d1..8f7be8a538fb 100644 --- a/third_party/skia/src/core/SkGlyph.h +++ b/third_party/skia/src/core/SkGlyph.h @@ -46,11 +46,17 @@ struct SkPackedGlyphID { kFixedPointSubPixelPosBits = kFixedPointBinaryPointPos - kSubPixelPosLen, }; - inline static constexpr SkScalar kSubpixelRound = + inline static const constexpr SkScalar kSubpixelRound = 1.f / (1u << (SkPackedGlyphID::kSubPixelPosLen + 1)); - inline static constexpr SkIPoint kXYFieldMask{kSubPixelPosMask << kSubPixelX, - kSubPixelPosMask << kSubPixelY}; + inline static const constexpr SkIPoint kXYFieldMask{kSubPixelPosMask << kSubPixelX, + kSubPixelPosMask << kSubPixelY}; + + struct Hash { + uint32_t operator() (SkPackedGlyphID packedID) const { + return packedID.hash(); + } + }; constexpr explicit SkPackedGlyphID(SkGlyphID glyphID) : fID{(uint32_t)glyphID << kGlyphID} { } @@ -198,27 +204,30 @@ class SkGlyphRect { public: SkGlyphRect() = default; SkGlyphRect(int16_t left, int16_t top, int16_t right, int16_t bottom) - : fRect{left, top, (int16_t)-right, (int16_t)-bottom} { + : fRect{(int16_t)-left, (int16_t)-top, right, bottom} { SkDEBUGCODE(const int32_t min = std::numeric_limits::min()); SkASSERT(left != min && top != min && right != min && bottom != min); } bool empty() const { - return fRect[0] >= -fRect[2] || fRect[1] >= -fRect[3]; + return -fRect[0] >= fRect[2] || -fRect[1] >= fRect[3]; } SkRect rect() const { - return SkRect::MakeLTRB(fRect[0], fRect[1], -fRect[2], -fRect[3]); + return SkRect::MakeLTRB(-fRect[0], -fRect[1], fRect[2], fRect[3]); } SkIRect iRect() const { - return SkIRect::MakeLTRB(fRect[0], fRect[1], -fRect[2], -fRect[3]); + return SkIRect::MakeLTRB(-fRect[0], -fRect[1], fRect[2], fRect[3]); } SkGlyphRect offset(int16_t x, int16_t y) const { - return SkGlyphRect{fRect + Storage{x, y, SkTo(-x), SkTo(-y)}}; + return SkGlyphRect{fRect + Storage{SkTo(-x), SkTo(-y), x, y}}; } - skvx::Vec<2, int16_t> topLeft() const { return {fRect[0], fRect[1]}; } + skvx::Vec<2, int16_t> leftTop() const { return -this->negLeftTop(); } + skvx::Vec<2, int16_t> rightBottom() const { return {fRect[2], fRect[3]}; } + skvx::Vec<2, int16_t> widthHeight() const { return this->rightBottom() + negLeftTop(); } friend SkGlyphRect skglyph::rect_union(SkGlyphRect, SkGlyphRect); friend SkGlyphRect skglyph::rect_intersection(SkGlyphRect, SkGlyphRect); private: + skvx::Vec<2, int16_t> negLeftTop() const { return {fRect[0], fRect[1]}; } using Storage = skvx::Vec<4, int16_t>; SkGlyphRect(Storage rect) : fRect{rect} { } Storage fRect; @@ -227,17 +236,17 @@ class SkGlyphRect { namespace skglyph { inline SkGlyphRect empty_rect() { constexpr int16_t max = std::numeric_limits::max(); - return {max, max, -max, -max}; + return {max, max, -max, -max}; } inline SkGlyphRect full_rect() { constexpr int16_t max = std::numeric_limits::max(); - return {-max, -max, max, max}; + return {-max, -max, max, max}; } inline SkGlyphRect rect_union(SkGlyphRect a, SkGlyphRect b) { - return skvx::min(a.fRect, b.fRect); + return skvx::max(a.fRect, b.fRect); } inline SkGlyphRect rect_intersection(SkGlyphRect a, SkGlyphRect b) { - return skvx::max(a.fRect, b.fRect); + return skvx::min(a.fRect, b.fRect); } } // namespace skglyph @@ -251,31 +260,26 @@ class SkGlyphDigest { // Default ctor is only needed for the hash table. SkGlyphDigest() = default; SkGlyphDigest(size_t index, const SkGlyph& glyph); - int index() const {return fIndex; } - bool isEmpty() const {return fIsEmpty; } - bool isColor() const {return fIsColor; } - bool canDrawAsMask() const {return fCanDrawAsMask;} - bool canDrawAsSDFT() const {return fCanDrawAsSDFT;} - uint32_t packedGlyphID() const {return fPackedGlyphID;} - uint16_t maxDimension() const {return fMaxDimension; } - - // Support mapping from SkPackedGlyphID stored in the digest. - static uint32_t GetKey(SkGlyphDigest digest) { - return digest.packedGlyphID(); - } - static uint32_t Hash(uint32_t packedGlyphID) { - return SkGoodHash()(packedGlyphID); + int index() const { return fIndex; } + bool isEmpty() const { return fIsEmpty; } + bool isColor() const { return fIsColor; } + bool canDrawAsMask() const { return fCanDrawAsMask; } + bool canDrawAsSDFT() const { return fCanDrawAsSDFT; } + uint16_t maxDimension() const { + return std::max(fWidth, fHeight); } private: static_assert(SkPackedGlyphID::kEndData == 20); - uint64_t fPackedGlyphID : SkPackedGlyphID::kEndData; - uint64_t fIndex : SkPackedGlyphID::kEndData; - uint64_t fIsEmpty : 1; - uint64_t fIsColor : 1; - uint64_t fCanDrawAsMask : 1; - uint64_t fCanDrawAsSDFT : 1; - uint64_t fMaxDimension : 16; + struct { + uint32_t fIndex : SkPackedGlyphID::kEndData; + uint32_t fIsEmpty : 1; + uint32_t fIsColor : 1; + uint32_t fCanDrawAsMask : 1; + uint32_t fCanDrawAsSDFT : 1; + }; + int16_t fLeft, fTop; + uint16_t fWidth, fHeight; }; class SkGlyph { @@ -477,8 +481,9 @@ class SkGlyph { SkMask::Format fMaskFormat{SkMask::kBW_Format}; - // Used by the DirectWrite scaler to track state. - int8_t fForceBW = 0; + // Used by the SkScalerContext to pass state from generateMetrics to generateImage. + // Usually specifies which glyph representation was used to generate the metrics. + uint16_t fScalerContextBits = 0; // An SkGlyph can be created with just a packedID, but generally speaking some glyph factory // needs to actually fill out the glyph before it can be used as part of that system. diff --git a/third_party/skia/src/core/SkGlyphBuffer.cpp b/third_party/skia/src/core/SkGlyphBuffer.cpp index 0c3a0b807ca9..2b385c6bbaa4 100644 --- a/third_party/skia/src/core/SkGlyphBuffer.cpp +++ b/third_party/skia/src/core/SkGlyphBuffer.cpp @@ -40,49 +40,21 @@ void SkDrawableGlyphBuffer::startSource(const SkZip& source, - SkPoint origin, const SkMatrix& viewMatrix, - const SkGlyphPositionRoundingSpec& roundingSpec) { - fInputSize = source.size(); - fAcceptedSize = 0; - - // Map the positions including subpixel position. - auto positions = source.get<1>(); - SkMatrix matrix = viewMatrix; - matrix.preTranslate(origin.x(), origin.y()); - SkPoint halfSampleFreq = roundingSpec.halfAxisSampleFreq; - matrix.postTranslate(halfSampleFreq.x(), halfSampleFreq.y()); - matrix.mapPoints(fPositions, positions.data(), positions.size()); - - // Mask for controlling axis alignment. - SkIPoint mask = roundingSpec.ignorePositionFieldMask; - - // Convert glyph ids and positions to packed glyph ids. - SkZip withMappedPos = - SkMakeZip(source.get<0>(), fPositions.get()); - SkGlyphVariant* packedIDCursor = fMultiBuffer.get(); - for (auto [glyphID, pos] : withMappedPos) { - *packedIDCursor++ = SkPackedGlyphID{glyphID, pos, mask}; - } - SkDEBUGCODE(fPhase = kInput); -} - -void SkDrawableGlyphBuffer::startGPUDevice( - const SkZip& source, - const SkMatrix& drawMatrix, + const SkMatrix& positionMatrix, const SkGlyphPositionRoundingSpec& roundingSpec) { fInputSize = source.size(); fAcceptedSize = 0; // Build up the mapping from source space to device space. Add the rounding constant - // halfSampleFreq so we just need to floor to get the device result. - SkMatrix device = drawMatrix; + // halfSampleFreq, so we just need to floor to get the device result. + SkMatrix positionMatrixWithRounding = positionMatrix; SkPoint halfSampleFreq = roundingSpec.halfAxisSampleFreq; - device.postTranslate(halfSampleFreq.x(), halfSampleFreq.y()); + positionMatrixWithRounding.postTranslate(halfSampleFreq.x(), halfSampleFreq.y()); auto positions = source.get<1>(); - device.mapPoints(fPositions, positions.data(), positions.size()); + positionMatrixWithRounding.mapPoints(fPositions, positions.data(), positions.size()); auto floor = [](SkPoint pt) -> SkPoint { return {SkScalarFloorToScalar(pt.x()), SkScalarFloorToScalar(pt.y())}; diff --git a/third_party/skia/src/core/SkGlyphBuffer.h b/third_party/skia/src/core/SkGlyphBuffer.h index f660aa7320a6..bce39632f174 100644 --- a/third_party/skia/src/core/SkGlyphBuffer.h +++ b/third_party/skia/src/core/SkGlyphBuffer.h @@ -105,31 +105,12 @@ class SkGlyphVariant { fV.glyph = glyph; SkDEBUGCODE(fTag = kGlyph); return *this; - - } - SkGlyphVariant& operator= (const SkPath* path) { - fV.path = path; - SkDEBUGCODE(fTag = kPath); - return *this; - } - SkGlyphVariant& operator= (SkDrawable* drawable) { - fV.drawable = drawable; - SkDEBUGCODE(fTag = kDrawable); - return *this; } const SkGlyph* glyph() const { SkASSERT(fTag == kGlyph); return fV.glyph; } - const SkPath* path() const { - SkASSERT(fTag == kPath); - return fV.path; - } - SkDrawable* drawable() const { - SkASSERT(fTag == kDrawable); - return fV.drawable; - } SkPackedGlyphID packedID() const { SkASSERT(fTag == kPackedID); return fV.packedID; @@ -137,14 +118,10 @@ class SkGlyphVariant { operator SkPackedGlyphID() const { return this->packedID(); } operator const SkGlyph*() const { return this->glyph(); } - operator const SkPath*() const { return this->path(); } - operator const SkDrawable*()const { return this->drawable(); } private: union { const SkGlyph* glyph; - const SkPath* path; - SkDrawable* drawable; SkPackedGlyphID packedID; } fV; @@ -153,14 +130,12 @@ class SkGlyphVariant { kEmpty, kPackedID, kGlyph, - kPath, - kDrawable, } fTag{kEmpty}; #endif }; -// A buffer for converting SkPackedGlyph to SkGlyph* or SkPath*. Initially the buffer contains -// SkPackedGlyphIDs, but those are used to lookup SkGlyph*/SkPath* which are then copied over the +// A buffer for converting SkPackedGlyph to SkGlyph*s. Initially the buffer contains +// SkPackedGlyphIDs, but those are used to lookup SkGlyph*s which are then copied over the // SkPackedGlyphIDs. class SkDrawableGlyphBuffer { public: @@ -170,17 +145,11 @@ class SkDrawableGlyphBuffer { // during drawing. void startSource(const SkZip& source); - // Load the buffer with SkPackedGlyphIDs and positions using the device transform. - void startBitmapDevice( - const SkZip& source, - SkPoint origin, const SkMatrix& viewMatrix, - const SkGlyphPositionRoundingSpec& roundingSpec); - - // Load the buffer with SkPackedGlyphIDs, calculating positions so they can be constant. + // Load the buffer with SkPackedGlyphIDs, calculating positions, so they can be constant. // - // The positions are calculated integer positions in devices space, and the mapping of the + // The positions are calculated integer positions in devices space, and the mapping of // the source origin through the initial matrix is returned. It is given that these positions - // are only reused when the blob is translated by an integral amount. Thus the shifted + // are only reused when the blob is translated by an integral amount. Thus, the shifted // positions are given by the following equation where (ix, iy) is the integer positions of // the glyph, initialMappedOrigin is (0,0) in source mapped to the device using the initial // matrix, and newMappedOrigin is (0,0) in source mapped to the device using the current @@ -190,9 +159,11 @@ class SkDrawableGlyphBuffer { // // In theory, newMappedOrigin - initialMappedOrigin should be integer, but the vagaries of // floating point don't guarantee that, so force it to integer. - void startGPUDevice( + // + // N.B. The positionMatrix is already translated by the origin of the glyph run list. + void startDevicePositioning( const SkZip& source, - const SkMatrix& drawMatrix, + const SkMatrix& positionMatrix, const SkGlyphPositionRoundingSpec& roundingSpec); SkString dumpInput() const; @@ -213,24 +184,6 @@ class SkDrawableGlyphBuffer { fAcceptedSize++; } - // Store the path in the next slot, using the position information located at index from. - void accept(const SkPath* path, size_t from) { - SkASSERT(fPhase == kProcess); - SkASSERT(fAcceptedSize <= from); - fPositions[fAcceptedSize] = fPositions[from]; - fMultiBuffer[fAcceptedSize] = path; - fAcceptedSize++; - } - - // Store drawable in the next slot, using the position information located at index from. - void accept(SkDrawable* drawable, size_t from) { - SkASSERT(fPhase == kProcess); - SkASSERT(fAcceptedSize <= from); - fPositions[fAcceptedSize] = fPositions[from]; - fMultiBuffer[fAcceptedSize] = drawable; - fAcceptedSize++; - } - // The result after a series of `accept` of accepted SkGlyph* or SkPath*. SkZip accepted() { SkASSERT(fPhase == kProcess); diff --git a/third_party/skia/src/core/SkGlyphRunPainter.cpp b/third_party/skia/src/core/SkGlyphRunPainter.cpp index 437729d50e0f..da2d380b16ec 100644 --- a/third_party/skia/src/core/SkGlyphRunPainter.cpp +++ b/third_party/skia/src/core/SkGlyphRunPainter.cpp @@ -9,17 +9,19 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColorInfo.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/text/GrSDFTControl.h" -#include "src/gpu/text/GrTextBlobRedrawCoordinator.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/text/GrSDFTControl.h" +#include "src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #endif // SK_SUPPORT_GPU +#include "include/core/SkBitmap.h" #include "include/core/SkColorFilter.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkMaskFilter.h" #include "include/core/SkPathEffect.h" #include "include/private/SkTDArray.h" @@ -80,7 +82,7 @@ SkGlyphRunListPainter::SkGlyphRunListPainter(const skgpu::v1::SurfaceDrawContext void SkGlyphRunListPainter::drawForBitmapDevice( SkCanvas* canvas, const BitmapDevicePainter* bitmapDevice, - const SkGlyphRunList& glyphRunList, const SkPaint& paint, const SkMatrix& deviceMatrix) { + const SkGlyphRunList& glyphRunList, const SkPaint& paint, const SkMatrix& drawMatrix) { ScopedBuffers _ = this->ensureBuffers(glyphRunList); // TODO: fStrikeCache is only used for GPU, and some compilers complain about it during the no @@ -94,12 +96,14 @@ void SkGlyphRunListPainter::drawForBitmapDevice( : fBitmapFallbackProps; SkPoint drawOrigin = glyphRunList.origin(); + SkMatrix positionMatrix{drawMatrix}; + positionMatrix.preTranslate(drawOrigin.x(), drawOrigin.y()); for (auto& glyphRun : glyphRunList) { const SkFont& runFont = glyphRun.font(); fRejected.setSource(glyphRun.source()); - if (SkStrikeSpec::ShouldDrawAsPath(paint, runFont, deviceMatrix)) { + if (SkStrikeSpec::ShouldDrawAsPath(paint, runFont, positionMatrix)) { auto [strikeSpec, strikeToSourceScale] = SkStrikeSpec::MakePath(runFont, paint, props, fScalerContextFlags); @@ -123,7 +127,7 @@ void SkGlyphRunListPainter::drawForBitmapDevice( || (stroking && !hairline); if (!needsExactCTM) { for (auto [variant, pos] : fAccepted.accepted()) { - const SkPath* path = variant.path(); + const SkPath* path = variant.glyph()->path(); SkMatrix m; SkPoint translate = drawOrigin + pos; m.setScaleTranslate(strikeToSourceScale, strikeToSourceScale, @@ -134,7 +138,7 @@ void SkGlyphRunListPainter::drawForBitmapDevice( } } else { for (auto [variant, pos] : fAccepted.accepted()) { - const SkPath* path = variant.path(); + const SkPath* path = variant.glyph()->path(); SkMatrix m; SkPoint translate = drawOrigin + pos; m.setScaleTranslate(strikeToSourceScale, strikeToSourceScale, @@ -153,7 +157,7 @@ void SkGlyphRunListPainter::drawForBitmapDevice( fRejected.flipRejectsToSource(); for (auto [variant, pos] : fAccepted.accepted()) { - SkDrawable* drawable = variant.drawable(); + SkDrawable* drawable = variant.glyph()->drawable(); SkMatrix m; SkPoint translate = drawOrigin + pos; m.setScaleTranslate(strikeToSourceScale, strikeToSourceScale, @@ -166,21 +170,20 @@ void SkGlyphRunListPainter::drawForBitmapDevice( } } } - if (!fRejected.source().empty() && !deviceMatrix.hasPerspective()) { + if (!fRejected.source().empty() && !positionMatrix.hasPerspective()) { SkStrikeSpec strikeSpec = SkStrikeSpec::MakeMask( - runFont, paint, props, fScalerContextFlags, deviceMatrix); + runFont, paint, props, fScalerContextFlags, positionMatrix); auto strike = strikeSpec.findOrCreateStrike(); - fAccepted.startBitmapDevice( - fRejected.source(), drawOrigin, deviceMatrix, strike->roundingSpec()); + fAccepted.startDevicePositioning( + fRejected.source(), positionMatrix, strike->roundingSpec()); + strike->prepareForDrawingMasksCPU(&fAccepted); fRejected.flipRejectsToSource(); bitmapDevice->paintMasks(&fAccepted, paint); } if (!fRejected.source().empty()) { - SkMatrix runMatrix = deviceMatrix; - runMatrix.preTranslate(drawOrigin.x(), drawOrigin.y()); std::vector sourcePositions; // Create a strike is source space to calculate scale information. @@ -201,7 +204,7 @@ void SkGlyphRunListPainter::drawForBitmapDevice( sourcePositions.push_back(srcPos); SkRect rect = glyph->rect(); rect.makeOffset(srcPos); - runMatrix.mapRectToQuad(corners, rect); + positionMatrix.mapRectToQuad(corners, rect); // left top -> right top SkScalar scale = (corners[1] - corners[0]).length() / rect.width(); maxScale = std::max(maxScale, scale); @@ -227,8 +230,8 @@ void SkGlyphRunListPainter::drawForBitmapDevice( auto strike = strikeSpec.findOrCreateStrike(); // Figure out all the positions and packed glyphIDs based on the device matrix. - fAccepted.startBitmapDevice( - fRejected.source(), drawOrigin, deviceMatrix, strike->roundingSpec()); + fAccepted.startDevicePositioning( + fRejected.source(), positionMatrix, strike->roundingSpec()); strike->prepareForDrawingMasksCPU(&fAccepted); auto variants = fAccepted.accepted().get<0>(); @@ -275,7 +278,7 @@ void SkGlyphRunListPainter::drawForBitmapDevice( #if SK_SUPPORT_GPU void SkGlyphRunListPainter::processGlyphRun(SkGlyphRunPainterInterface* process, const SkGlyphRun& glyphRun, - const SkMatrix& drawMatrix, + const SkMatrix& positionMatrix, const SkPaint& runPaint, const GrSDFTControl& control, const char* tag, @@ -291,8 +294,8 @@ void SkGlyphRunListPainter::processGlyphRun(SkGlyphRunPainterInterface* process, } msg.appendf("\n matrix\n"); msg.appendf(" %7.3g %7.3g %7.3g\n %7.3g %7.3g %7.3g\n", - drawMatrix[0], drawMatrix[1], drawMatrix[2], - drawMatrix[3], drawMatrix[4], drawMatrix[5]); + positionMatrix[0], positionMatrix[1], positionMatrix[2], + positionMatrix[3], positionMatrix[4], positionMatrix[5]); #endif ScopedBuffers _ = this->ensureBuffers(glyphRun); fRejected.setSource(glyphRun.source()); @@ -300,14 +303,14 @@ void SkGlyphRunListPainter::processGlyphRun(SkGlyphRunPainterInterface* process, // Only consider using direct or SDFT drawing if not drawing hairlines and not perspective. if ((runPaint.getStyle() != SkPaint::kStroke_Style || runPaint.getStrokeWidth() != 0) - && !drawMatrix.hasPerspective()) { + && !positionMatrix.hasPerspective()) { SkScalar approximateDeviceTextSize = - SkFontPriv::ApproximateTransformedTextSize(runFont, drawMatrix); + SkFontPriv::ApproximateTransformedTextSize(runFont, positionMatrix); if (control.isSDFT(approximateDeviceTextSize, runPaint)) { // Process SDFT - This should be the .009% case. const auto& [strikeSpec, strikeToSourceScale, matrixRange] = - SkStrikeSpec::MakeSDFT(runFont, runPaint, fDeviceProps, drawMatrix, control); + SkStrikeSpec::MakeSDFT(runFont, runPaint, fDeviceProps, positionMatrix, control); #if defined(SK_TRACE_GLYPH_RUN_PROCESS) msg.appendf(" SDFT case:\n%s", strikeSpec.dump().c_str()); @@ -340,7 +343,7 @@ void SkGlyphRunListPainter::processGlyphRun(SkGlyphRunPainterInterface* process, // This will handle medium size emoji that are sharing the run with SDFT drawn text. // If things are too big they will be passed along to the drawing of last resort below. SkStrikeSpec strikeSpec = SkStrikeSpec::MakeMask( - runFont, runPaint, fDeviceProps, fScalerContextFlags, drawMatrix); + runFont, runPaint, fDeviceProps, fScalerContextFlags, positionMatrix); #if defined(SK_TRACE_GLYPH_RUN_PROCESS) msg.appendf(" Mask case:\n%s", strikeSpec.dump().c_str()); @@ -348,7 +351,8 @@ void SkGlyphRunListPainter::processGlyphRun(SkGlyphRunPainterInterface* process, SkScopedStrikeForGPU strike = strikeSpec.findOrCreateScopedStrike(fStrikeCache); - fAccepted.startGPUDevice(fRejected.source(), drawMatrix, strike->roundingSpec()); + fAccepted.startDevicePositioning( + fRejected.source(), positionMatrix, strike->roundingSpec()); #if defined(SK_TRACE_GLYPH_RUN_PROCESS) msg.appendf(" glyphs:(x,y):\n %s\n", fAccepted.dumpInput().c_str()); #endif @@ -392,7 +396,10 @@ void SkGlyphRunListPainter::processGlyphRun(SkGlyphRunPainterInterface* process, if (process && !fAccepted.empty()) { // processSourceDrawables must be called even if there are no glyphs to make sure // runs are set correctly. - process->processSourceDrawables(fAccepted.accepted(), runFont, strikeToSourceScale); + process->processSourceDrawables(fAccepted.accepted(), + strike->getUnderlyingStrike(), + strikeSpec.descriptor(), + strikeToSourceScale); } } } @@ -420,7 +427,10 @@ void SkGlyphRunListPainter::processGlyphRun(SkGlyphRunPainterInterface* process, if (process && !fAccepted.empty()) { // processSourcePaths must be called even if there are no glyphs to make sure // runs are set correctly. - process->processSourcePaths(fAccepted.accepted(), runFont, strikeToSourceScale); + process->processSourcePaths(fAccepted.accepted(), + runFont, + strikeSpec.descriptor(), + strikeToSourceScale); } } } @@ -490,11 +500,11 @@ SkVector SkGlyphPositionRoundingSpec::HalfAxisSampleFreq( return {SK_ScalarHalf, SK_ScalarHalf}; } else { switch (axisAlignment) { - case kX_SkAxisAlignment: + case SkAxisAlignment::kX: return {SkPackedGlyphID::kSubpixelRound, SK_ScalarHalf}; - case kY_SkAxisAlignment: + case SkAxisAlignment::kY: return {SK_ScalarHalf, SkPackedGlyphID::kSubpixelRound}; - case kNone_SkAxisAlignment: + case SkAxisAlignment::kNone: return {SkPackedGlyphID::kSubpixelRound, SkPackedGlyphID::kSubpixelRound}; } } @@ -505,8 +515,8 @@ SkVector SkGlyphPositionRoundingSpec::HalfAxisSampleFreq( SkIPoint SkGlyphPositionRoundingSpec::IgnorePositionMask( bool isSubpixel, SkAxisAlignment axisAlignment) { - return SkIPoint::Make((!isSubpixel || axisAlignment == kY_SkAxisAlignment) ? 0 : ~0, - (!isSubpixel || axisAlignment == kX_SkAxisAlignment) ? 0 : ~0); + return SkIPoint::Make((!isSubpixel || axisAlignment == SkAxisAlignment::kY) ? 0 : ~0, + (!isSubpixel || axisAlignment == SkAxisAlignment::kX) ? 0 : ~0); } SkIPoint SkGlyphPositionRoundingSpec::IgnorePositionFieldMask(bool isSubpixel, diff --git a/third_party/skia/src/core/SkGlyphRunPainter.h b/third_party/skia/src/core/SkGlyphRunPainter.h index bbc6ae45458b..cb300a94d318 100644 --- a/third_party/skia/src/core/SkGlyphRunPainter.h +++ b/third_party/skia/src/core/SkGlyphRunPainter.h @@ -16,7 +16,7 @@ #include "src/core/SkTextBlobPriv.h" #if SK_SUPPORT_GPU -#include "src/gpu/text/GrSDFTControl.h" +#include "src/gpu/ganesh/text/GrSDFTControl.h" class GrColorInfo; namespace skgpu { namespace v1 { class SurfaceDrawContext; }} #endif @@ -79,14 +79,15 @@ class SkGlyphRunListPainter { void drawForBitmapDevice( SkCanvas* canvas, const BitmapDevicePainter* bitmapDevice, - const SkGlyphRunList& glyphRunList, const SkPaint& paint, const SkMatrix& deviceMatrix); + const SkGlyphRunList& glyphRunList, const SkPaint& paint, const SkMatrix& drawMatrix); #if SK_SUPPORT_GPU // A nullptr for process means that the calls to the cache will be performed, but none of the // callbacks will be called. + // N.B. The positionMatrix has already been translated to the glyph run list origin. void processGlyphRun(SkGlyphRunPainterInterface* process, const SkGlyphRun& glyphRun, - const SkMatrix& drawMatrix, + const SkMatrix& positionMatrix, const SkPaint& drawPaint, const GrSDFTControl& control, const char* tag = nullptr, @@ -144,10 +145,12 @@ class SkGlyphRunPainterInterface { virtual void processSourcePaths(const SkZip& accepted, const SkFont& runFont, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) = 0; virtual void processSourceDrawables(const SkZip& accepted, - const SkFont& runFont, + sk_sp&& strike, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) = 0; virtual void processSourceSDFT(const SkZip& accepted, diff --git a/third_party/skia/src/core/SkGpuBlurUtils.cpp b/third_party/skia/src/core/SkGpuBlurUtils.cpp index 81800c9ef714..cf3f6d000c1b 100644 --- a/third_party/skia/src/core/SkGpuBlurUtils.cpp +++ b/third_party/skia/src/core/SkGpuBlurUtils.cpp @@ -12,16 +12,17 @@ #include "src/core/SkMathPriv.h" #if SK_SUPPORT_GPU +#include "include/core/SkColorSpace.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h" -#include "src/gpu/effects/GrMatrixConvolutionEffect.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #if SK_GPU_V1 -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" using Direction = GrGaussianConvolutionFragmentProcessor::Direction; @@ -646,7 +647,6 @@ std::unique_ptr GaussianBlur(GrRecordingContext* SK_PMColor4fWHITE, SkRect::Make(srcRect), SkRect::Make(dstRect), - GrAA::kNo, GrQuadAAFlags::kNone, SkCanvas::SrcRectConstraint::kFast_SrcRectConstraint, SkMatrix::I(), diff --git a/third_party/skia/src/core/SkGpuBlurUtils.h b/third_party/skia/src/core/SkGpuBlurUtils.h index 01dd12133e49..cd8e49a97edd 100644 --- a/third_party/skia/src/core/SkGpuBlurUtils.h +++ b/third_party/skia/src/core/SkGpuBlurUtils.h @@ -12,7 +12,7 @@ #if SK_SUPPORT_GPU #include "include/core/SkRefCnt.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" class GrRecordingContext; namespace skgpu { namespace v1 { class SurfaceDrawContext; }} diff --git a/third_party/skia/src/core/SkImageFilter.cpp b/third_party/skia/src/core/SkImageFilter.cpp index b3214a98516d..7fa655238a24 100644 --- a/third_party/skia/src/core/SkImageFilter.cpp +++ b/third_party/skia/src/core/SkImageFilter.cpp @@ -22,12 +22,12 @@ #include "src/core/SkWriteBuffer.h" #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" #endif #include diff --git a/third_party/skia/src/core/SkImageFilterTypes.h b/third_party/skia/src/core/SkImageFilterTypes.h index bbfb80e653f5..318b23ea9f76 100644 --- a/third_party/skia/src/core/SkImageFilterTypes.h +++ b/third_party/skia/src/core/SkImageFilterTypes.h @@ -8,6 +8,7 @@ #ifndef SkImageFilterTypes_DEFINED #define SkImageFilterTypes_DEFINED +#include "include/core/SkColorSpace.h" #include "include/core/SkMatrix.h" #include "src/core/SkSpecialImage.h" #include "src/core/SkSpecialSurface.h" @@ -401,8 +402,12 @@ class LayerSpace { } LayerSpace round() const { return LayerSpace(fData.round()); } - LayerSpace roundIn() const { return LayerSpace(fData.roundIn()); } - LayerSpace roundOut() const { return LayerSpace(fData.roundOut()); } + LayerSpace roundIn() const { + return LayerSpace(fData.makeOutset(kRoundEpsilon, kRoundEpsilon).roundIn()); + } + LayerSpace roundOut() const { + return LayerSpace(fData.makeInset(kRoundEpsilon, kRoundEpsilon).roundOut()); + } bool intersect(const LayerSpace& r) { return fData.intersect(r.fData); } void join(const LayerSpace& r) { fData.join(r.fData); } @@ -410,6 +415,17 @@ class LayerSpace { void outset(const LayerSpace& delta) { fData.outset(delta.width(), delta.height()); } private: + // This exists to cover up issues where infinite precision would produce integers but float + // math produces values just larger/smaller than an int and roundOut/In on bounds would produce + // nearly a full pixel error. One such case is crbug.com/1313579 where the caller has produced + // near integer CTM and uses integer crop rects that would grab an extra row/column of the + // input image when using a strict roundOut. +#if defined(SK_DISABLE_SKIF_TOLERANCE_ROUND) + static constexpr float kRoundEpsilon = 0; +#else + static constexpr float kRoundEpsilon = 1e-3f; +#endif + SkRect fData; }; diff --git a/third_party/skia/src/core/SkImageGenerator.cpp b/third_party/skia/src/core/SkImageGenerator.cpp index f0f5c2323f83..6baa1dcf91a4 100644 --- a/third_party/skia/src/core/SkImageGenerator.cpp +++ b/third_party/skia/src/core/SkImageGenerator.cpp @@ -43,7 +43,7 @@ bool SkImageGenerator::getYUVAPlanes(const SkYUVAPixmaps& yuvaPixmaps) { } #if SK_SUPPORT_GPU -#include "src/gpu/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" GrSurfaceProxyView SkImageGenerator::generateTexture(GrRecordingContext* ctx, const SkImageInfo& info, diff --git a/third_party/skia/src/core/SkImageInfo.cpp b/third_party/skia/src/core/SkImageInfo.cpp index d4bb8899595e..11599afbed3f 100644 --- a/third_party/skia/src/core/SkImageInfo.cpp +++ b/third_party/skia/src/core/SkImageInfo.cpp @@ -5,6 +5,9 @@ * found in the LICENSE file. */ +#include "include/core/SkImageInfo.h" + +#include "include/core/SkColorSpace.h" #include "include/private/SkImageInfoPriv.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkSafeMath.h" @@ -45,8 +48,46 @@ bool SkColorTypeIsAlwaysOpaque(SkColorType ct) { /////////////////////////////////////////////////////////////////////////////////////////////////// +SkColorInfo::SkColorInfo() = default; +SkColorInfo::~SkColorInfo() = default; + +SkColorInfo::SkColorInfo(SkColorType ct, SkAlphaType at, sk_sp cs) + : fColorSpace(std::move(cs)), fColorType(ct), fAlphaType(at) {} + +SkColorInfo::SkColorInfo(const SkColorInfo&) = default; +SkColorInfo::SkColorInfo(SkColorInfo&&) = default; + +SkColorInfo& SkColorInfo::operator=(const SkColorInfo&) = default; +SkColorInfo& SkColorInfo::operator=(SkColorInfo&&) = default; + +SkColorSpace* SkColorInfo::colorSpace() const { return fColorSpace.get(); } +sk_sp SkColorInfo::refColorSpace() const { return fColorSpace; } + +bool SkColorInfo::operator==(const SkColorInfo& other) const { + return fColorType == other.fColorType && fAlphaType == other.fAlphaType && + SkColorSpace::Equals(fColorSpace.get(), other.fColorSpace.get()); +} + +bool SkColorInfo::operator!=(const SkColorInfo& other) const { return !(*this == other); } + +SkColorInfo SkColorInfo::makeAlphaType(SkAlphaType newAlphaType) const { + return SkColorInfo(this->colorType(), newAlphaType, this->refColorSpace()); +} + +SkColorInfo SkColorInfo::makeColorType(SkColorType newColorType) const { + return SkColorInfo(newColorType, this->alphaType(), this->refColorSpace()); +} + +SkColorInfo SkColorInfo::makeColorSpace(sk_sp cs) const { + return SkColorInfo(this->colorType(), this->alphaType(), std::move(cs)); +} + int SkColorInfo::bytesPerPixel() const { return SkColorTypeBytesPerPixel(fColorType); } +bool SkColorInfo::gammaCloseToSRGB() const { + return fColorSpace && fColorSpace->gammaCloseToSRGB(); +} + int SkColorInfo::shiftPerPixel() const { return SkColorTypeShiftPerPixel(fColorType); } /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -72,10 +113,72 @@ size_t SkImageInfo::computeByteSize(size_t rowBytes) const { return (safe.ok() && (bytes <= kMaxSigned32BitSize)) ? bytes : SIZE_MAX; } +SkColorSpace* SkImageInfo::colorSpace() const { return fColorInfo.colorSpace(); } + +sk_sp SkImageInfo::refColorSpace() const { return fColorInfo.refColorSpace(); } + +SkImageInfo SkImageInfo::makeColorSpace(sk_sp cs) const { + return Make(fDimensions, fColorInfo.makeColorSpace(std::move(cs))); +} + +SkImageInfo SkImageInfo::Make(int width, int height, SkColorType ct, SkAlphaType at) { + return Make(width, height, ct, at, nullptr); +} + +SkImageInfo SkImageInfo::Make(int width, int height, SkColorType ct, SkAlphaType at, + sk_sp cs) { + return SkImageInfo({width, height}, {ct, at, std::move(cs)}); +} + +SkImageInfo SkImageInfo::Make(SkISize dimensions, SkColorType ct, SkAlphaType at) { + return Make(dimensions, ct, at, nullptr); +} + +SkImageInfo SkImageInfo::Make(SkISize dimensions, SkColorType ct, SkAlphaType at, + sk_sp cs) { + return SkImageInfo(dimensions, {ct, at, std::move(cs)}); +} + +SkImageInfo SkImageInfo::MakeN32(int width, int height, SkAlphaType at) { + return MakeN32(width, height, at, nullptr); +} + +SkImageInfo SkImageInfo::MakeN32(int width, int height, SkAlphaType at, sk_sp cs) { + return Make({width, height}, kN32_SkColorType, at, std::move(cs)); +} + SkImageInfo SkImageInfo::MakeS32(int width, int height, SkAlphaType at) { return SkImageInfo({width, height}, {kN32_SkColorType, at, SkColorSpace::MakeSRGB()}); } +SkImageInfo SkImageInfo::MakeN32Premul(int width, int height) { + return MakeN32Premul(width, height, nullptr); +} + +SkImageInfo SkImageInfo::MakeN32Premul(int width, int height, sk_sp cs) { + return Make({width, height}, kN32_SkColorType, kPremul_SkAlphaType, std::move(cs)); +} + +SkImageInfo SkImageInfo::MakeN32Premul(SkISize dimensions) { + return MakeN32Premul(dimensions, nullptr); +} + +SkImageInfo SkImageInfo::MakeN32Premul(SkISize dimensions, sk_sp cs) { + return Make(dimensions, kN32_SkColorType, kPremul_SkAlphaType, std::move(cs)); +} + +SkImageInfo SkImageInfo::MakeA8(int width, int height) { + return Make({width, height}, kAlpha_8_SkColorType, kPremul_SkAlphaType, nullptr); +} + +SkImageInfo SkImageInfo::MakeA8(SkISize dimensions) { + return Make(dimensions, kAlpha_8_SkColorType, kPremul_SkAlphaType, nullptr); +} + +SkImageInfo SkImageInfo::MakeUnknown(int width, int height) { + return Make({width, height}, kUnknown_SkColorType, kUnknown_SkAlphaType, nullptr); +} + #ifdef SK_DEBUG void SkImageInfo::validate() const { SkASSERT(fDimensions.width() >= 0); diff --git a/third_party/skia/src/core/SkKeyContext.cpp b/third_party/skia/src/core/SkKeyContext.cpp new file mode 100644 index 000000000000..05b9b81c337f --- /dev/null +++ b/third_party/skia/src/core/SkKeyContext.cpp @@ -0,0 +1,26 @@ +/* + * 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/core/SkKeyContext.h" + +#ifdef SK_GRAPHITE_ENABLED +#include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/ResourceProvider.h" + +SkKeyContext::SkKeyContext(skgpu::graphite::Recorder* recorder) : fRecorder(recorder) { + fDictionary = fRecorder->priv().resourceProvider()->shaderCodeDictionary(); +} +#endif + +#if SK_SUPPORT_GPU +#include "include/gpu/GrRecordingContext.h" + +SkKeyContext::SkKeyContext(GrRecordingContext* rContext) : fRecordingContext(rContext) { + // TODO: fill this out for Ganesh + fDictionary = nullptr; +} +#endif diff --git a/third_party/skia/src/core/SkKeyContext.h b/third_party/skia/src/core/SkKeyContext.h new file mode 100644 index 000000000000..f8c1314193c5 --- /dev/null +++ b/third_party/skia/src/core/SkKeyContext.h @@ -0,0 +1,53 @@ +/* + * 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 SkKeyContext_DEFINED +#define SkKeyContext_DEFINED + +#include "include/gpu/GrTypes.h" + +#ifdef SK_GRAPHITE_ENABLED +namespace skgpu::graphite { class Recorder; } +#endif + +#if SK_SUPPORT_GPU +class GrRecordingContext; +#endif + +class SkShaderCodeDictionary; + +// The key context must always be able to provide a valid SkShaderCodeDictionary. Depending +// on the calling context it can also supply a backend-specific resource providing +// object (e.g., a Recorder). +class SkKeyContext { +public: + // Constructor for the pre-compile code path + SkKeyContext(SkShaderCodeDictionary* dict) : fDictionary(dict) {} +#ifdef SK_GRAPHITE_ENABLED + SkKeyContext(skgpu::graphite::Recorder*); + skgpu::graphite::Recorder* recorder() const { return fRecorder; } +#endif +#if SK_SUPPORT_GPU + SkKeyContext(GrRecordingContext*); + GrRecordingContext* recordingContext() const { return fRecordingContext; } +#endif + + SkShaderCodeDictionary* dict() const { return fDictionary; } + +private: +#ifdef SK_GRAPHITE_ENABLED + skgpu::graphite::Recorder* fRecorder = nullptr; +#endif + +#if SK_SUPPORT_GPU + GrRecordingContext* fRecordingContext = nullptr; +#endif + + SkShaderCodeDictionary* fDictionary; +}; + +#endif // SkKeyContext_DEFINED diff --git a/third_party/skia/src/core/SkKeyHelpers.cpp b/third_party/skia/src/core/SkKeyHelpers.cpp index b001eae461e5..3046980e1a1d 100644 --- a/third_party/skia/src/core/SkKeyHelpers.cpp +++ b/third_party/skia/src/core/SkKeyHelpers.cpp @@ -8,36 +8,27 @@ #include "src/core/SkKeyHelpers.h" #include "src/core/SkDebugUtils.h" +#include "src/core/SkKeyContext.h" #include "src/core/SkPaintParamsKey.h" +#include "src/core/SkPipelineData.h" #include "src/core/SkShaderCodeDictionary.h" #include "src/core/SkUniform.h" -#include "src/core/SkUniformData.h" #include "src/shaders/SkShaderBase.h" #ifdef SK_GRAPHITE_ENABLED -#include "experimental/graphite/src/UniformManager.h" +#include "src/gpu/Blend.h" +#include "src/gpu/graphite/Texture.h" +#include "src/gpu/graphite/TextureProxy.h" +#include "src/gpu/graphite/UniformManager.h" #endif -namespace { - -#if defined(SK_DEBUG) && defined(SK_GRAPHITE_ENABLED) -SkBuiltInCodeSnippetID read_code_snippet_id(const SkPaintParamsKey& key, int headerOffset) { - uint8_t byte = key.byte(headerOffset); +#define VALIDATE_UNIFORMS(gatherer, dict, codeSnippetID) \ + SkDEBUGCODE(UniformExpectationsValidator uev( \ + gatherer, dict->getUniforms(SkBuiltInCodeSnippetID::codeSnippetID));) - SkASSERT(byte <= static_cast(SkBuiltInCodeSnippetID::kLast)); +constexpr SkPMColor4f kErrorColor = { 1, 0, 0, 1 }; - return static_cast(byte); -} - -void validate_block_header_key(const SkPaintParamsKey& key, - int headerOffset, - SkBuiltInCodeSnippetID codeSnippetID, - int blockDataSize) { - SkASSERT(key.byte(headerOffset) == static_cast(codeSnippetID)); - SkASSERT(key.byte(headerOffset+SkPaintParamsKey::kBlockSizeOffsetInBytes) == - SkPaintParamsKey::kBlockHeaderSizeInBytes + blockDataSize); -} -#endif +namespace { // This can be used to catch errors in blocks that have a fixed, known block data size void validate_block_header(const SkPaintParamsKeyBuilder* builder, @@ -52,22 +43,10 @@ void validate_block_header(const SkPaintParamsKeyBuilder* builder, #ifdef SK_GRAPHITE_ENABLED void add_blendmode_to_key(SkPaintParamsKeyBuilder* builder, SkBlendMode bm) { - SkASSERT(static_cast(bm) <= std::numeric_limits::max()); + static_assert(SkTFitsIn(static_cast(SkBlendMode::kLastMode))); builder->addByte(static_cast(bm)); } -#ifdef SK_DEBUG -SkBlendMode to_blendmode(uint8_t data) { - SkASSERT(data <= static_cast(SkBlendMode::kLastMode)); - return static_cast(data); -} - -SkTileMode to_tilemode(uint8_t data) { - SkASSERT(data <= static_cast(SkTileMode::kLastTileMode)); - return static_cast(data); -} -#endif // SK_DEBUG - #endif // SK_GRAPHITE_ENABLED } // anonymous namespace @@ -77,10 +56,9 @@ namespace DepthStencilOnlyBlock { static const int kBlockDataSize = 0; -void AddToKey(SkShaderCodeDictionary* /* dict */, - SkBackend /* backend */, +void AddToKey(const SkKeyContext& /* keyContext */, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* /* uniformBlock */) { + SkPipelineDataGatherer* /* gatherer */) { builder->beginBlock(SkBuiltInCodeSnippetID::kDepthStencilOnlyDraw); builder->endBlock(); @@ -89,19 +67,6 @@ void AddToKey(SkShaderCodeDictionary* /* dict */, kBlockDataSize); } -#ifdef SK_DEBUG -void Dump(const SkPaintParamsKey& key, int headerOffset) { -#ifdef SK_GRAPHITE_ENABLED - validate_block_header_key(key, - headerOffset, - SkBuiltInCodeSnippetID::kDepthStencilOnlyDraw, - kBlockDataSize); - - SkDebugf("kDepthStencilOnlyDraw\n"); -#endif // SK_GRAPHITE_ENABLED -} -#endif // SK_DEBUG - } // namespace DepthStencilOnlyBlock //-------------------------------------------------------------------------------------------------- @@ -112,35 +77,25 @@ namespace { #ifdef SK_GRAPHITE_ENABLED static const int kBlockDataSize = 0; -sk_sp make_solid_uniform_data(SkShaderCodeDictionary* dict, SkColor4f color) { - static constexpr size_t kExpectedNumUniforms = 1; - - SkSpan uniforms = dict->getUniforms(SkBuiltInCodeSnippetID::kSolidColorShader); - SkASSERT(uniforms.size() == kExpectedNumUniforms); - - skgpu::UniformManager mgr(skgpu::Layout::kMetal); - - size_t dataSize = mgr.writeUniforms(uniforms, nullptr, nullptr, nullptr); - - sk_sp result = SkUniformData::Make(uniforms, dataSize); - - const void* srcs[kExpectedNumUniforms] = { &color }; - - mgr.writeUniforms(result->uniforms(), srcs, result->offsets(), result->data()); - return result; +void add_solid_uniform_data(const SkShaderCodeDictionary* dict, + const SkPMColor4f& premulColor, + SkPipelineDataGatherer* gatherer) { + VALIDATE_UNIFORMS(gatherer, dict, kSolidColorShader) + gatherer->write(premulColor); } #endif // SK_GRAPHITE_ENABLED } // anonymous namespace -void AddToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +void AddToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock, - const SkColor4f& color) { + SkPipelineDataGatherer* gatherer, + const SkPMColor4f& premulColor) { #ifdef SK_GRAPHITE_ENABLED - if (backend == SkBackend::kGraphite) { + if (builder->backend() == SkBackend::kGraphite) { + auto dict = keyContext.dict(); + builder->beginBlock(SkBuiltInCodeSnippetID::kSolidColorShader); builder->endBlock(); @@ -148,34 +103,19 @@ void AddToKey(SkShaderCodeDictionary* dict, SkBuiltInCodeSnippetID::kSolidColorShader, kBlockDataSize); - if (uniformBlock) { - uniformBlock->add(make_solid_uniform_data(dict, color)); + if (gatherer) { + add_solid_uniform_data(dict, premulColor, gatherer); } return; } #endif // SK_GRAPHITE_ENABLED - if (backend == SkBackend::kSkVM || backend == SkBackend::kGanesh) { + if (builder->backend() == SkBackend::kSkVM || builder->backend() == SkBackend::kGanesh) { // TODO: add implementation of other backends } } -#ifdef SK_DEBUG -void Dump(const SkPaintParamsKey& key, int headerOffset) { - -#ifdef SK_GRAPHITE_ENABLED - validate_block_header_key(key, - headerOffset, - SkBuiltInCodeSnippetID::kSolidColorShader, - kBlockDataSize); - - SkDebugf("kSolidColorShader\n"); -#endif - -} -#endif - } // namespace SolidColorShaderBlock //-------------------------------------------------------------------------------------------------- @@ -185,101 +125,57 @@ namespace { #ifdef SK_GRAPHITE_ENABLED static const int kBlockDataSize = 1; -static const int kExpectedNumGradientUniforms = 7; - -sk_sp make_gradient_uniform_data_common( - SkSpan uniforms, - const void* srcs[kExpectedNumGradientUniforms]) { - skgpu::UniformManager mgr(skgpu::Layout::kMetal); - - // TODO: Given that, for the sprint, we always know the uniforms we could cache 'dataSize' - // for each layout and skip the first call. - size_t dataSize = mgr.writeUniforms(uniforms, nullptr, nullptr, nullptr); - - sk_sp result = SkUniformData::Make(uniforms, dataSize); - - mgr.writeUniforms(result->uniforms(), srcs, result->offsets(), result->data()); - return result; -} -sk_sp make_linear_gradient_uniform_data(SkShaderCodeDictionary* dict, - const GradientData& gradData) { - - auto uniforms = dict->getUniforms(SkBuiltInCodeSnippetID::kLinearGradientShader); - SkASSERT(uniforms.size() == kExpectedNumGradientUniforms); - - SkPoint padding{0, 0}; - const void* srcs[kExpectedNumGradientUniforms] = { - gradData.fColor4fs, - gradData.fOffsets, - &gradData.fPoints[0], - &gradData.fPoints[1], - &gradData.fRadii[0], // unused - &gradData.fRadii[1], // unused - &padding - }; - - return make_gradient_uniform_data_common(uniforms, srcs); +void add_linear_gradient_uniform_data(const SkShaderCodeDictionary* dict, + const GradientData& gradData, + SkPipelineDataGatherer* gatherer) { + VALIDATE_UNIFORMS(gatherer, dict, kLinearGradientShader) + gatherer->write(gradData.fColor4fs, GradientData::kMaxStops); + gatherer->write(gradData.fOffsets, GradientData::kMaxStops); + gatherer->write(gradData.fPoints[0]); + gatherer->write(gradData.fPoints[1]); + gatherer->write(gradData.fRadii[0]); // unused + gatherer->write(gradData.fRadii[1]); // unused + gatherer->write(SkPoint::Make(0.0f, 0.0f)); // padding }; -sk_sp make_radial_gradient_uniform_data(SkShaderCodeDictionary* dict, - const GradientData& gradData) { - - auto uniforms = dict->getUniforms(SkBuiltInCodeSnippetID::kRadialGradientShader); - SkASSERT(uniforms.size() == kExpectedNumGradientUniforms); - - SkPoint padding{0, 0}; - const void* srcs[kExpectedNumGradientUniforms] = { - gradData.fColor4fs, - gradData.fOffsets, - &gradData.fPoints[0], - &gradData.fPoints[1], // unused - &gradData.fRadii[0], - &gradData.fRadii[1], // unused - &padding - }; - - return make_gradient_uniform_data_common(uniforms, srcs); +void add_radial_gradient_uniform_data(const SkShaderCodeDictionary* dict, + const GradientData& gradData, + SkPipelineDataGatherer* gatherer) { + VALIDATE_UNIFORMS(gatherer, dict, kRadialGradientShader) + gatherer->write(gradData.fColor4fs, GradientData::kMaxStops); + gatherer->write(gradData.fOffsets, GradientData::kMaxStops); + gatherer->write(gradData.fPoints[0]); + gatherer->write(gradData.fPoints[1]); // unused + gatherer->write(gradData.fRadii[0]); + gatherer->write(gradData.fRadii[1]); // unused + gatherer->write(SkPoint::Make(0.0f, 0.0f)); // padding }; -sk_sp make_sweep_gradient_uniform_data(SkShaderCodeDictionary* dict, - const GradientData& gradData) { - - auto uniforms = dict->getUniforms(SkBuiltInCodeSnippetID::kSweepGradientShader); - SkASSERT(uniforms.size() == kExpectedNumGradientUniforms); - - SkPoint padding{0, 0}; - const void* srcs[kExpectedNumGradientUniforms] = { - gradData.fColor4fs, - gradData.fOffsets, - &gradData.fPoints[0], - &gradData.fPoints[1], // unused - &gradData.fRadii[0], // unused - &gradData.fRadii[1], // unused - &padding - }; - - return make_gradient_uniform_data_common(uniforms, srcs); +void add_sweep_gradient_uniform_data(const SkShaderCodeDictionary* dict, + const GradientData& gradData, + SkPipelineDataGatherer* gatherer) { + VALIDATE_UNIFORMS(gatherer, dict, kSweepGradientShader) + gatherer->write(gradData.fColor4fs, GradientData::kMaxStops); + gatherer->write(gradData.fOffsets, GradientData::kMaxStops); + gatherer->write(gradData.fPoints[0]); + gatherer->write(gradData.fPoints[1]); // unused + gatherer->write(gradData.fRadii[0]); // unused + gatherer->write(gradData.fRadii[1]); // unused + gatherer->write(SkPoint::Make(0.0f, 0.0f)); // padding }; -sk_sp make_conical_gradient_uniform_data(SkShaderCodeDictionary* dict, - const GradientData& gradData) { - - auto uniforms = dict->getUniforms(SkBuiltInCodeSnippetID::kConicalGradientShader); - SkASSERT(uniforms.size() == kExpectedNumGradientUniforms); - - SkPoint padding{0, 0}; - const void* srcs[kExpectedNumGradientUniforms] = { - gradData.fColor4fs, - gradData.fOffsets, - &gradData.fPoints[0], - &gradData.fPoints[1], - &gradData.fRadii[0], - &gradData.fRadii[1], - &padding, - }; - - return make_gradient_uniform_data_common(uniforms, srcs); +void add_conical_gradient_uniform_data(const SkShaderCodeDictionary* dict, + const GradientData& gradData, + SkPipelineDataGatherer* gatherer) { + VALIDATE_UNIFORMS(gatherer, dict, kConicalGradientShader) + gatherer->write(gradData.fColor4fs, GradientData::kMaxStops); + gatherer->write(gradData.fOffsets, GradientData::kMaxStops); + gatherer->write(gradData.fPoints[0]); + gatherer->write(gradData.fPoints[1]); + gatherer->write(gradData.fRadii[0]); + gatherer->write(gradData.fRadii[1]); + gatherer->write(SkPoint::Make(0.0f, 0.0f)); // padding }; #endif // SK_GRAPHITE_ENABLED @@ -331,38 +227,38 @@ GradientData::GradientData(SkShader::GradientType type, } } -void AddToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +void AddToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder *builder, - SkUniformBlock* uniformBlock, + SkPipelineDataGatherer* gatherer, const GradientData& gradData) { #ifdef SK_GRAPHITE_ENABLED - if (backend == SkBackend::kGraphite) { + if (builder->backend() == SkBackend::kGraphite) { + auto dict = keyContext.dict(); SkBuiltInCodeSnippetID codeSnippetID = SkBuiltInCodeSnippetID::kSolidColorShader; switch (gradData.fType) { case SkShader::kLinear_GradientType: codeSnippetID = SkBuiltInCodeSnippetID::kLinearGradientShader; - if (uniformBlock) { - uniformBlock->add(make_linear_gradient_uniform_data(dict, gradData)); + if (gatherer) { + add_linear_gradient_uniform_data(dict, gradData, gatherer); } break; case SkShader::kRadial_GradientType: codeSnippetID = SkBuiltInCodeSnippetID::kRadialGradientShader; - if (uniformBlock) { - uniformBlock->add(make_radial_gradient_uniform_data(dict, gradData)); + if (gatherer) { + add_radial_gradient_uniform_data(dict, gradData, gatherer); } break; case SkShader::kSweep_GradientType: codeSnippetID = SkBuiltInCodeSnippetID::kSweepGradientShader; - if (uniformBlock) { - uniformBlock->add(make_sweep_gradient_uniform_data(dict, gradData)); + if (gatherer) { + add_sweep_gradient_uniform_data(dict, gradData, gatherer); } break; case SkShader::GradientType::kConical_GradientType: codeSnippetID = SkBuiltInCodeSnippetID::kConicalGradientShader; - if (uniformBlock) { - uniformBlock->add(make_conical_gradient_uniform_data(dict, gradData)); + if (gatherer) { + add_conical_gradient_uniform_data(dict, gradData, gatherer); } break; case SkShader::GradientType::kColor_GradientType: @@ -384,61 +280,11 @@ void AddToKey(SkShaderCodeDictionary* dict, } #endif // SK_GRAPHITE_ENABLED - if (backend == SkBackend::kSkVM || backend == SkBackend::kGanesh) { + if (builder->backend() == SkBackend::kSkVM || builder->backend() == SkBackend::kGanesh) { // TODO: add implementation of other backends - SolidColorShaderBlock::AddToKey(dict, backend, builder, uniformBlock, SkColors::kRed); - } -} - -#ifdef SK_DEBUG - -#ifdef SK_GRAPHITE_ENABLED - -std::pair ExtractFromKey(const SkPaintParamsKey& key, - uint32_t headerOffset) { - SkBuiltInCodeSnippetID id = read_code_snippet_id(key, headerOffset); - - SkASSERT(id == SkBuiltInCodeSnippetID::kLinearGradientShader || - id == SkBuiltInCodeSnippetID::kRadialGradientShader || - id == SkBuiltInCodeSnippetID::kSweepGradientShader || - id == SkBuiltInCodeSnippetID::kConicalGradientShader); - SkASSERT(key.byte(headerOffset+SkPaintParamsKey::kBlockSizeOffsetInBytes) == - SkPaintParamsKey::kBlockHeaderSizeInBytes+kBlockDataSize); - - uint8_t data = key.byte(headerOffset + SkPaintParamsKey::kBlockHeaderSizeInBytes); - SkTileMode tm = to_tilemode(data); - - return { id, tm }; -} - -#endif // SK_GRAPHITE_ENABLED - -void Dump(const SkPaintParamsKey& key, int headerOffset) { - -#ifdef SK_GRAPHITE_ENABLED - auto [id, tm] = ExtractFromKey(key, headerOffset); - - switch (id) { - case SkBuiltInCodeSnippetID::kLinearGradientShader: - SkDebugf("kLinearGradientShader: %s\n", SkTileModeToStr(tm)); - break; - case SkBuiltInCodeSnippetID::kRadialGradientShader: - SkDebugf("kRadialGradientShader: %s\n", SkTileModeToStr(tm)); - break; - case SkBuiltInCodeSnippetID::kSweepGradientShader: - SkDebugf("kSweepGradientShader: %s\n", SkTileModeToStr(tm)); - break; - case SkBuiltInCodeSnippetID::kConicalGradientShader: - SkDebugf("kConicalGradientShader: %s\n", SkTileModeToStr(tm)); - break; - default: - SkDebugf("Unknown!!\n"); - break; + SolidColorShaderBlock::AddToKey(keyContext, builder, gatherer, kErrorColor); } -#endif // SK_GRAPHITE_ENABLED - } -#endif } // namespace GradientShaderBlocks @@ -449,130 +295,126 @@ namespace { #ifdef SK_GRAPHITE_ENABLED -inline static constexpr int kTileModeBits = 2; - -static const int kXTileModeShift = 0; -static const int kYTileModeShift = kTileModeBits; - -#ifdef SK_DEBUG -static const int kBlockDataSize = 1; - -inline static constexpr int kTileModeMask = 0x3; - -ImageData ExtractFromKey(const SkPaintParamsKey& key, uint32_t headerOffset) { - validate_block_header_key(key, - headerOffset, - SkBuiltInCodeSnippetID::kImageShader, - kBlockDataSize); - - uint8_t data = key.byte(headerOffset+SkPaintParamsKey::kBlockHeaderSizeInBytes); - - SkTileMode tmX = to_tilemode(((data) >> kXTileModeShift) & kTileModeMask); - SkTileMode tmY = to_tilemode(((data) >> kYTileModeShift) & kTileModeMask); - - return { tmX, tmY }; -} -#endif // SK_DEBUG - -sk_sp make_image_uniform_data(SkShaderCodeDictionary* dict, - const ImageData& imgData) { - SkDEBUGCODE(static constexpr size_t kExpectedNumUniforms = 0;) - - SkSpan uniforms = dict->getUniforms(SkBuiltInCodeSnippetID::kImageShader); - SkASSERT(uniforms.size() == kExpectedNumUniforms); - - skgpu::UniformManager mgr(skgpu::Layout::kMetal); - - size_t dataSize = mgr.writeUniforms(uniforms, nullptr, nullptr, nullptr); - - sk_sp result = SkUniformData::Make(uniforms, dataSize); - - // TODO: add the required data to ImageData and assemble the uniforms here - - mgr.writeUniforms(result->uniforms(), nullptr, result->offsets(), result->data()); - return result; +void add_image_uniform_data(const SkShaderCodeDictionary* dict, + const ImageData& imgData, + SkPipelineDataGatherer* gatherer) { + VALIDATE_UNIFORMS(gatherer, dict, kImageShader) + gatherer->write(imgData.fSubset); } #endif // SK_GRAPHITE_ENABLED } // anonymous namespace -void AddToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +ImageData::ImageData(const SkSamplingOptions& sampling, + SkTileMode tileModeX, + SkTileMode tileModeY, + SkRect subset) + : fSampling(sampling) + , fTileModes{tileModeX, tileModeY} + , fSubset(subset) { +} + +void AddToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock, + SkPipelineDataGatherer* gatherer, const ImageData& imgData) { #ifdef SK_GRAPHITE_ENABLED - if (backend == SkBackend::kGraphite) { - - uint8_t data = (static_cast(imgData.fTileModes[0]) << kXTileModeShift) | - (static_cast(imgData.fTileModes[1]) << kYTileModeShift); + if (builder->backend() == SkBackend::kGraphite) { + // TODO: allow through lazy proxies + if (gatherer && !imgData.fTextureProxy) { + // We're dropping the ImageShader here. This could be an instance of trying to draw + // a raster-backed image w/ a Graphite-backed canvas. + // TODO: At some point the pre-compile path should also be creating a texture + // proxy (i.e., we can remove the 'pipelineData' in the above test). + SolidColorShaderBlock::AddToKey(keyContext, builder, gatherer, kErrorColor); + return; + } + auto dict = keyContext.dict(); builder->beginBlock(SkBuiltInCodeSnippetID::kImageShader); - builder->addByte(data); + // TODO: bytes are overkill for just tilemodes. We could add smaller/bit-width + // types. + static_assert(SkTFitsIn(SkTileMode::kLastTileMode)); + builder->addByte(static_cast(imgData.fTileModes[0])); + builder->addByte(static_cast(imgData.fTileModes[1])); builder->endBlock(); - if (uniformBlock) { - uniformBlock->add(make_image_uniform_data(dict, imgData)); + if (gatherer) { + gatherer->add(imgData.fSampling, + imgData.fTileModes, + std::move(imgData.fTextureProxy)); + + add_image_uniform_data(dict, imgData, gatherer); } + return; } #endif // SK_GRAPHITE_ENABLED - if (backend == SkBackend::kSkVM || backend == SkBackend::kGanesh) { + if (builder->backend() == SkBackend::kSkVM || builder->backend() == SkBackend::kGanesh) { // TODO: add implementation for other backends - SolidColorShaderBlock::AddToKey(dict, backend, builder, uniformBlock, SkColors::kRed); + SolidColorShaderBlock::AddToKey(keyContext, builder, gatherer, kErrorColor); } } -#ifdef SK_DEBUG -void Dump(const SkPaintParamsKey& key, int headerOffset) { +} // namespace ImageShaderBlock -#ifdef SK_GRAPHITE_ENABLED - ImageData imgData = ExtractFromKey(key, headerOffset); +//-------------------------------------------------------------------------------------------------- +namespace BlendShaderBlock { - SkDebugf("kImageShader: tileModes(%s, %s) ", - SkTileModeToStr(imgData.fTileModes[0]), - SkTileModeToStr(imgData.fTileModes[1])); -#endif // SK_GRAPHITE_ENABLED +namespace { + +#ifdef SK_GRAPHITE_ENABLED +void add_blendshader_uniform_data(const SkShaderCodeDictionary* dict, + SkBlendMode bm, + SkPipelineDataGatherer* gatherer) { + VALIDATE_UNIFORMS(gatherer, dict, kBlendShader) + gatherer->write(SkTo(bm)); + gatherer->write(0); // padding - remove + gatherer->write(0); // padding - remove + gatherer->write(0); // padding - remove } -#endif // SK_DEBUG -} // namespace ImageShaderBlock +#endif // SK_GRAPHITE_ENABLED -//-------------------------------------------------------------------------------------------------- -namespace BlendShaderBlock { +} // anonymous namespace -void AddToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +void AddToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder *builder, - SkUniformBlock* uniformBlock, + SkPipelineDataGatherer* gatherer, const BlendData& blendData) { #ifdef SK_GRAPHITE_ENABLED - if (backend == SkBackend::kGraphite) { + if (builder->backend() == SkBackend::kGraphite) { + auto dict = keyContext.dict(); + // When extracted into SkShaderInfo::SnippetEntries the children will appear after their + // parent. Thus, the parent's uniform data must appear in the uniform block before the + // uniform data of the children. + if (gatherer) { + add_blendshader_uniform_data(dict, blendData.fBM, gatherer); + } + builder->beginBlock(SkBuiltInCodeSnippetID::kBlendShader); // Child blocks always go right after the parent block's header // TODO: add startChild/endChild entry points to SkPaintParamsKeyBuilder. They could be // used to compute and store the number of children w/in a block's header. int start = builder->sizeInBytes(); - as_SB(blendData.fDst)->addToKey(dict, backend, builder, uniformBlock); + as_SB(blendData.fDst)->addToKey(keyContext, builder, gatherer); int firstShaderSize = builder->sizeInBytes() - start; start = builder->sizeInBytes(); - as_SB(blendData.fSrc)->addToKey(dict, backend, builder, uniformBlock); + as_SB(blendData.fSrc)->addToKey(keyContext, builder, gatherer); int secondShaderSize = builder->sizeInBytes() - start; - add_blendmode_to_key(builder, blendData.fBM); - builder->endBlock(); - int expectedBlockSize = 1 + firstShaderSize + secondShaderSize; + int expectedBlockSize = firstShaderSize + secondShaderSize; validate_block_header(builder, SkBuiltInCodeSnippetID::kBlendShader, expectedBlockSize); @@ -580,137 +422,153 @@ void AddToKey(SkShaderCodeDictionary* dict, } #endif // SK_GRAPHITE_ENABLED - if (backend == SkBackend::kSkVM || backend == SkBackend::kGanesh) { + if (builder->backend() == SkBackend::kSkVM || builder->backend() == SkBackend::kGanesh) { // TODO: add implementation for other backends - SolidColorShaderBlock::AddToKey(dict, backend, builder, uniformBlock, SkColors::kRed); + SolidColorShaderBlock::AddToKey(keyContext, builder, gatherer, kErrorColor); } } -#ifdef SK_DEBUG -void Dump(const SkPaintParamsKey& key, int headerOffset) { -#ifdef SK_GRAPHITE_ENABLED - auto [id, storedBlockSize] = key.readCodeSnippetID(headerOffset); - SkASSERT(id == SkBuiltInCodeSnippetID::kBlendShader); - - int runningOffset = headerOffset + SkPaintParamsKey::kBlockHeaderSizeInBytes; +} // namespace BlendShaderBlock - SkDebugf("\nDst: "); - int firstBlockSize = SkPaintParamsKey::DumpBlock(key, runningOffset); - runningOffset += firstBlockSize; +//-------------------------------------------------------------------------------------------------- +#ifdef SK_GRAPHITE_ENABLED +namespace { - SkDebugf("Src: "); - int secondBlockSize = SkPaintParamsKey::DumpBlock(key, runningOffset); - runningOffset += secondBlockSize; +constexpr SkPipelineDataGatherer::BlendInfo make_simple_blendInfo(skgpu::BlendCoeff srcCoeff, + skgpu::BlendCoeff dstCoeff) { + return { skgpu::BlendEquation::kAdd, + srcCoeff, + dstCoeff, + SK_PMColor4fTRANSPARENT, + skgpu::BlendModifiesDst(skgpu::BlendEquation::kAdd, srcCoeff, dstCoeff) }; +} - uint8_t data = key.byte(runningOffset); - SkBlendMode bm = to_blendmode(data); +static constexpr int kNumCoeffModes = (int)SkBlendMode::kLastCoeffMode + 1; +/*>> No coverage, input color unknown <<*/ +static constexpr SkPipelineDataGatherer::BlendInfo gBlendTable[kNumCoeffModes] = { + /* clear */ make_simple_blendInfo(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kZero), + /* src */ make_simple_blendInfo(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kZero), + /* dst */ make_simple_blendInfo(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kOne), + /* src-over */ make_simple_blendInfo(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kISA), + /* dst-over */ make_simple_blendInfo(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kOne), + /* src-in */ make_simple_blendInfo(skgpu::BlendCoeff::kDA, skgpu::BlendCoeff::kZero), + /* dst-in */ make_simple_blendInfo(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kSA), + /* src-out */ make_simple_blendInfo(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kZero), + /* dst-out */ make_simple_blendInfo(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kISA), + /* src-atop */ make_simple_blendInfo(skgpu::BlendCoeff::kDA, skgpu::BlendCoeff::kISA), + /* dst-atop */ make_simple_blendInfo(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kSA), + /* xor */ make_simple_blendInfo(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kISA), + /* plus */ make_simple_blendInfo(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kOne), + /* modulate */ make_simple_blendInfo(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kSC), + /* screen */ make_simple_blendInfo(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kISC) +}; - SkDebugf("BlendMode: %s\n", SkBlendMode_Name(bm)); - runningOffset += 1; // 1 byte for blendmode +const SkPipelineDataGatherer::BlendInfo& get_blend_info(SkBlendMode bm) { + if (bm <= SkBlendMode::kLastCoeffMode) { + return gBlendTable[(int) bm]; + } - int calculatedBlockSize = SkPaintParamsKey::kBlockHeaderSizeInBytes + - firstBlockSize + secondBlockSize + 1; - SkASSERT(calculatedBlockSize == storedBlockSize); -#endif// SK_GRAPHITE_ENABLED + return gBlendTable[(int) SkBlendMode::kSrc]; } -#endif -} // namespace BlendShaderBlock +} // anonymous namespace +#endif // SK_GRAPHITE_ENABLED -//-------------------------------------------------------------------------------------------------- namespace BlendModeBlock { #ifdef SK_GRAPHITE_ENABLED -static const int kBlockDataSize = 1; +static const int kFixedFunctionBlockDataSize = 1; +static const int kShaderBasedBlockDataSize = 1; #endif -void AddToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +void AddToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder *builder, - SkUniformBlock* uniformBlock, + SkPipelineDataGatherer* gatherer, SkBlendMode bm) { #ifdef SK_GRAPHITE_ENABLED - if (backend == SkBackend::kGraphite) { - builder->beginBlock(SkBuiltInCodeSnippetID::kSimpleBlendMode); - add_blendmode_to_key(builder, bm); - builder->endBlock(); - - validate_block_header(builder, - SkBuiltInCodeSnippetID::kSimpleBlendMode, - kBlockDataSize); + if (builder->backend() == SkBackend::kGraphite) { + if (bm <= SkBlendMode::kLastCoeffMode) { + builder->beginBlock(SkBuiltInCodeSnippetID::kFixedFunctionBlender); + add_blendmode_to_key(builder, bm); + builder->endBlock(); + + validate_block_header(builder, + SkBuiltInCodeSnippetID::kFixedFunctionBlender, + kFixedFunctionBlockDataSize); + + if (gatherer) { + gatherer->setBlendInfo(get_blend_info(bm)); + } + } else { + builder->beginBlock(SkBuiltInCodeSnippetID::kShaderBasedBlender); + add_blendmode_to_key(builder, bm); + builder->endBlock(); + + validate_block_header(builder, + SkBuiltInCodeSnippetID::kShaderBasedBlender, + kShaderBasedBlockDataSize); + + if (gatherer) { + // TODO: set up the correct blend info + gatherer->setBlendInfo(SkPipelineDataGatherer::BlendInfo()); + } + } return; } #endif// SK_GRAPHITE_ENABLED - if (backend == SkBackend::kSkVM || backend == SkBackend::kGanesh) { + if (builder->backend() == SkBackend::kSkVM || builder->backend() == SkBackend::kGanesh) { // TODO: add implementation for other backends - SolidColorShaderBlock::AddToKey(dict, backend, builder, uniformBlock, SkColors::kRed); + SolidColorShaderBlock::AddToKey(keyContext, builder, gatherer, kErrorColor); } } -#ifdef SK_DEBUG - -#ifdef SK_GRAPHITE_ENABLED -SkBlendMode ExtractFromKey(const SkPaintParamsKey& key, uint32_t headerOffset) { - validate_block_header_key(key, - headerOffset, - SkBuiltInCodeSnippetID::kSimpleBlendMode, - kBlockDataSize); - - uint8_t data = key.byte(headerOffset + SkPaintParamsKey::kBlockHeaderSizeInBytes); - return to_blendmode(data); -} -#endif // SK_GRAPHITE_ENABLED - -void Dump(const SkPaintParamsKey& key, int headerOffset) { - -#ifdef SK_GRAPHITE_ENABLED - SkBlendMode bm = ExtractFromKey(key, headerOffset); - - SkDebugf("kSimpleBlendMode: %s\n", SkBlendMode_Name(bm)); -#endif - -} -#endif - } // namespace BlendModeBlock //-------------------------------------------------------------------------------------------------- #ifdef SK_GRAPHITE_ENABLED -std::unique_ptr CreateKey(SkShaderCodeDictionary* dict, - SkBackend backend, - skgpu::ShaderCombo::ShaderType s, - SkTileMode tm, - SkBlendMode bm) { - SkPaintParamsKeyBuilder builder(dict); +SkUniquePaintParamsID CreateKey(const SkKeyContext& keyContext, + SkPaintParamsKeyBuilder* builder, + skgpu::graphite::ShaderCombo::ShaderType s, + SkTileMode tm, + SkBlendMode bm) { + SkDEBUGCODE(builder->checkReset()); switch (s) { - case skgpu::ShaderCombo::ShaderType::kNone: - DepthStencilOnlyBlock::AddToKey(dict, backend, &builder, nullptr); + case skgpu::graphite::ShaderCombo::ShaderType::kNone: + DepthStencilOnlyBlock::AddToKey(keyContext, builder, nullptr); break; - case skgpu::ShaderCombo::ShaderType::kSolidColor: - SolidColorShaderBlock::AddToKey(dict, backend, &builder, nullptr, SkColors::kRed); + case skgpu::graphite::ShaderCombo::ShaderType::kSolidColor: + SolidColorShaderBlock::AddToKey(keyContext, builder, nullptr, kErrorColor); break; - case skgpu::ShaderCombo::ShaderType::kLinearGradient: - GradientShaderBlocks::AddToKey(dict, backend, &builder, nullptr, + case skgpu::graphite::ShaderCombo::ShaderType::kLinearGradient: + GradientShaderBlocks::AddToKey(keyContext, builder, nullptr, { SkShader::kLinear_GradientType, tm, 0 }); break; - case skgpu::ShaderCombo::ShaderType::kRadialGradient: - GradientShaderBlocks::AddToKey(dict, backend, &builder, nullptr, + case skgpu::graphite::ShaderCombo::ShaderType::kRadialGradient: + GradientShaderBlocks::AddToKey(keyContext, builder, nullptr, { SkShader::kRadial_GradientType, tm, 0 }); break; - case skgpu::ShaderCombo::ShaderType::kSweepGradient: - GradientShaderBlocks::AddToKey(dict, backend, &builder, nullptr, + case skgpu::graphite::ShaderCombo::ShaderType::kSweepGradient: + GradientShaderBlocks::AddToKey(keyContext, builder, nullptr, { SkShader::kSweep_GradientType, tm, 0 }); break; - case skgpu::ShaderCombo::ShaderType::kConicalGradient: - GradientShaderBlocks::AddToKey(dict, backend, &builder, nullptr, + case skgpu::graphite::ShaderCombo::ShaderType::kConicalGradient: + GradientShaderBlocks::AddToKey(keyContext, builder, nullptr, { SkShader::kConical_GradientType, tm, 0 }); break; } - BlendModeBlock::AddToKey(dict, backend, &builder, nullptr, bm); - return builder.snap(); + // TODO: the blendInfo should be filled in by BlendModeBlock::AddToKey + SkPipelineDataGatherer::BlendInfo blendInfo = get_blend_info(bm); + BlendModeBlock::AddToKey(keyContext, builder, /* pipelineData*/ nullptr, bm); + SkPaintParamsKey key = builder->lockAsKey(); + + auto dict = keyContext.dict(); + + auto entry = dict->findOrCreate(key, blendInfo); + + return entry->uniqueID(); } #endif diff --git a/third_party/skia/src/core/SkKeyHelpers.h b/third_party/skia/src/core/SkKeyHelpers.h index da9dcac7f2b9..19d3a64f1f0c 100644 --- a/third_party/skia/src/core/SkKeyHelpers.h +++ b/third_party/skia/src/core/SkKeyHelpers.h @@ -9,43 +9,39 @@ #define SkKeyHelpers_DEFINED #ifdef SK_GRAPHITE_ENABLED -#include "experimental/graphite/include/Context.h" +#include "include/gpu/graphite/Context.h" #endif #include "include/core/SkBlendMode.h" +#include "include/core/SkSamplingOptions.h" #include "include/core/SkShader.h" #include "include/core/SkTileMode.h" +#include "include/private/SkColorData.h" enum class SkBackend : uint8_t; -class SkPaintParamsKey; class SkPaintParamsKeyBuilder; -class SkShaderCodeDictionary; -class SkUniformBlock; +class SkPipelineDataGatherer; +class SkUniquePaintParamsID; +class SkKeyContext; + +namespace skgpu::graphite { class TextureProxy; } // The KeyHelpers can be used to manually construct an SkPaintParamsKey namespace DepthStencilOnlyBlock { - void AddToKey(SkShaderCodeDictionary*, - SkBackend, + void AddToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*); -#ifdef SK_DEBUG - void Dump(const SkPaintParamsKey&, int headerOffset); -#endif + SkPipelineDataGatherer*); } // namespace DepthStencilOnlyBlock namespace SolidColorShaderBlock { - void AddToKey(SkShaderCodeDictionary*, - SkBackend, + void AddToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*, - const SkColor4f&); -#ifdef SK_DEBUG - void Dump(const SkPaintParamsKey&, int headerOffset); -#endif + SkPipelineDataGatherer*, + const SkPMColor4f&); } // namespace SolidColorShaderBlock @@ -95,39 +91,37 @@ namespace GradientShaderBlocks { float fOffsets[kMaxStops]; }; - void AddToKey(SkShaderCodeDictionary*, - SkBackend, + void AddToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*, + SkPipelineDataGatherer*, const GradientData&); -#ifdef SK_DEBUG - void Dump(const SkPaintParamsKey&, int headerOffset); -#endif } // namespace GradientShaderBlocks namespace ImageShaderBlock { struct ImageData { - bool operator==(const ImageData& rhs) const { - return fTileModes[0] == rhs.fTileModes[0] && - fTileModes[1] == rhs.fTileModes[1]; - } - bool operator!=(const ImageData& rhs) const { return !(*this == rhs); } + ImageData(const SkSamplingOptions& sampling, + SkTileMode tileModeX, + SkTileMode tileModeY, + SkRect subset); - // TODO: add the other image shader parameters that could impact code snippet selection - // (e.g., sampling options, subsetting, etc.) + SkSamplingOptions fSampling; SkTileMode fTileModes[2]; + SkRect fSubset; + +#ifdef SK_GRAPHITE_ENABLED + // TODO: Currently this is only filled in when we're generating the key from an actual + // SkImageShader. In the pre-compile case we will need to create a Graphite promise + // image which holds the appropriate data. + sk_sp fTextureProxy; +#endif }; - void AddToKey(SkShaderCodeDictionary*, - SkBackend, + void AddToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*, + SkPipelineDataGatherer*, const ImageData&); -#ifdef SK_DEBUG - void Dump(const SkPaintParamsKey&, int headerOffset); -#endif } // namespace ImageShaderBlock @@ -140,37 +134,29 @@ namespace BlendShaderBlock { SkBlendMode fBM; }; - void AddToKey(SkShaderCodeDictionary*, - SkBackend, + void AddToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*, + SkPipelineDataGatherer*, const BlendData&); -#ifdef SK_DEBUG - void Dump(const SkPaintParamsKey&, int headerOffset); -#endif } // namespace BlendShaderBlock namespace BlendModeBlock { - void AddToKey(SkShaderCodeDictionary*, - SkBackend, + void AddToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*, + SkPipelineDataGatherer*, SkBlendMode); -#ifdef SK_DEBUG - void Dump(const SkPaintParamsKey&, int headerOffset); -#endif } // namespace BlendModeBlock #ifdef SK_GRAPHITE_ENABLED // Bridge between the combinations system and the SkPaintParamsKey -std::unique_ptr CreateKey(SkShaderCodeDictionary*, - SkBackend, - skgpu::ShaderCombo::ShaderType, - SkTileMode, - SkBlendMode); +SkUniquePaintParamsID CreateKey(const SkKeyContext&, + SkPaintParamsKeyBuilder*, + skgpu::graphite::ShaderCombo::ShaderType, + SkTileMode, + SkBlendMode); #endif #endif // SkKeyHelpers_DEFINED diff --git a/third_party/skia/src/core/SkMaskFilter.cpp b/third_party/skia/src/core/SkMaskFilter.cpp index ba4efb4b9c54..8388a1b19436 100644 --- a/third_party/skia/src/core/SkMaskFilter.cpp +++ b/third_party/skia/src/core/SkMaskFilter.cpp @@ -19,10 +19,10 @@ #include "src/core/SkWriteBuffer.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/text/GrSDFMaskFilter.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/text/GrSDFMaskFilter.h" #endif SkMaskFilterBase::NinePatch::~NinePatch() { diff --git a/third_party/skia/src/core/SkMaskFilterBase.h b/third_party/skia/src/core/SkMaskFilterBase.h index 622eccb43e20..5f930fc27642 100644 --- a/third_party/skia/src/core/SkMaskFilterBase.h +++ b/third_party/skia/src/core/SkMaskFilterBase.h @@ -17,7 +17,7 @@ #include "src/core/SkMask.h" #if SK_SUPPORT_GPU -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #endif class GrClip; diff --git a/third_party/skia/src/core/SkMatrix.cpp b/third_party/skia/src/core/SkMatrix.cpp index f2e35fe59ca9..31607481895a 100644 --- a/third_party/skia/src/core/SkMatrix.cpp +++ b/third_party/skia/src/core/SkMatrix.cpp @@ -1660,9 +1660,7 @@ bool SkTreatAsSprite(const SkMatrix& mat, const SkISize& size, const SkSamplingO if (!SkSamplingPriv::NoChangeWithIdentityMatrix(sampling)) { return false; } - if (paint.isDither()) { - return false; - } + // Our path aa is 2-bits, and our rect aa is 8, so we could use 8, // but in practice 4 seems enough (still looks smooth) and allows // more slightly fractional cases to fall into the fast (sprite) case. diff --git a/third_party/skia/src/core/SkMatrixImageFilter.cpp b/third_party/skia/src/core/SkMatrixImageFilter.cpp index 665dcd4e6e6f..a7f6d2d02e65 100644 --- a/third_party/skia/src/core/SkMatrixImageFilter.cpp +++ b/third_party/skia/src/core/SkMatrixImageFilter.cpp @@ -48,7 +48,7 @@ sk_sp SkMatrixImageFilter::CreateProc(SkReadBuffer& buffer) { if (buffer.isVersionLT(SkPicturePriv::kMatrixImageFilterSampling_Version)) { return SkSamplingPriv::FromFQ(buffer.read32LE(kLast_SkLegacyFQ), kLinear_SkMediumAs); } else { - return SkSamplingPriv::Read(buffer); + return buffer.readSampling(); } }(); return Make(matrix, sampling, common.getInput(0)); @@ -57,7 +57,7 @@ sk_sp SkMatrixImageFilter::CreateProc(SkReadBuffer& buffer) { void SkMatrixImageFilter::flatten(SkWriteBuffer& buffer) const { this->INHERITED::flatten(buffer); buffer.writeMatrix(fTransform); - SkSamplingPriv::Write(buffer, fSampling); + buffer.writeSampling(fSampling); } /////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/core/SkMipmap.cpp b/third_party/skia/src/core/SkMipmap.cpp index 70c2c713b117..5f5f7da839ee 100644 --- a/third_party/skia/src/core/SkMipmap.cpp +++ b/third_party/skia/src/core/SkMipmap.cpp @@ -384,6 +384,11 @@ template void downsample_3_3(void* dst, const void* src, size_t src /////////////////////////////////////////////////////////////////////////////////////////////////// +SkMipmap::SkMipmap(void* malloc, size_t size) : SkCachedData(malloc, size) {} +SkMipmap::SkMipmap(size_t size, SkDiscardableMemory* dm) : SkCachedData(size, dm) {} + +SkMipmap::~SkMipmap() = default; + size_t SkMipmap::AllocLevelsSize(int levelCount, size_t pixelSize) { if (levelCount < 0) { return 0; @@ -723,23 +728,23 @@ float SkMipmap::ComputeLevel(SkSize scaleSize) { #ifndef SK_SUPPORT_LEGACY_ANISOTROPIC_MIPMAP_SCALE // Use the smallest scale to match the GPU impl. - const SkScalar scale = std::min(scaleSize.width(), scaleSize.height()); + const float scale = std::min(scaleSize.width(), scaleSize.height()); #else // Ideally we'd pick the smaller scale, to match Ganesh. But ignoring one of the // scales can produce some atrocious results, so for now we use the geometric mean. // (https://bugs.chromium.org/p/skia/issues/detail?id=4863) - const SkScalar scale = SkScalarSqrt(scaleSize.width() * scaleSize.height()); + const float scale = sk_float_sqrt(scaleSize.width() * scaleSize.height()); #endif if (scale >= SK_Scalar1 || scale <= 0 || !SkScalarIsFinite(scale)) { return -1; } - SkScalar L = -SkScalarLog2(scale); + // The -0.5 bias here is to emulate GPU's sharpen mipmap option. + float L = std::max(-SkScalarLog2(scale) - 0.5f, 0.f); if (!SkScalarIsFinite(L)) { return -1; } - SkASSERT(L >= 0); return L; } @@ -749,7 +754,7 @@ bool SkMipmap::extractLevel(SkSize scaleSize, Level* levelPtr) const { } float L = ComputeLevel(scaleSize); - int level = SkScalarFloorToInt(L); + int level = sk_float_round2int(L); if (level <= 0) { return false; } diff --git a/third_party/skia/src/core/SkMipmap.h b/third_party/skia/src/core/SkMipmap.h index d24488ddaa82..4ef5cee70de8 100644 --- a/third_party/skia/src/core/SkMipmap.h +++ b/third_party/skia/src/core/SkMipmap.h @@ -31,6 +31,7 @@ typedef SkDiscardableMemory* (*SkDiscardableFactoryProc)(size_t bytes); */ class SkMipmap : public SkCachedData { public: + ~SkMipmap() override; // Allocate and fill-in a mipmap. If computeContents is false, we just allocated // and compute the sizes/rowbytes, but leave the pixel-data uninitialized. static SkMipmap* Build(const SkPixmap& src, SkDiscardableFactoryProc, @@ -86,12 +87,10 @@ class SkMipmap : public SkCachedData { Level* fLevels; // managed by the baseclass, may be null due to onDataChanged. int fCount; - SkMipmap(void* malloc, size_t size) : INHERITED(malloc, size) {} - SkMipmap(size_t size, SkDiscardableMemory* dm) : INHERITED(size, dm) {} + SkMipmap(void* malloc, size_t size); + SkMipmap(size_t size, SkDiscardableMemory* dm); static size_t AllocLevelsSize(int levelCount, size_t pixelSize); - - using INHERITED = SkCachedData; }; #endif diff --git a/third_party/skia/src/core/SkMipmapAccessor.cpp b/third_party/skia/src/core/SkMipmapAccessor.cpp index 6b94a5e1365f..6d8c6166c860 100644 --- a/third_party/skia/src/core/SkMipmapAccessor.cpp +++ b/third_party/skia/src/core/SkMipmapAccessor.cpp @@ -59,7 +59,10 @@ SkMipmapAccessor::SkMipmapAccessor(const SkImage_Base* image, const SkMatrix& in SkIntToScalar(pm.height()) / image->height()) * inv; }; - int levelNum = sk_float_floor2int(level); + // Nearest mode uses this level, so we round to pick the nearest. In linear mode we use this + // level as the lower of the two to interpolate between, so we take the floor. + int levelNum = resolvedMode == SkMipmapMode::kNearest ? sk_float_round2int(level) + : sk_float_floor2int(level); float lowerWeight = level - levelNum; // fract(level) SkASSERT(levelNum >= 0); diff --git a/third_party/skia/src/core/SkModeColorFilter.cpp b/third_party/skia/src/core/SkModeColorFilter.cpp index 3be25972a7df..bfe3db23463a 100644 --- a/third_party/skia/src/core/SkModeColorFilter.cpp +++ b/third_party/skia/src/core/SkModeColorFilter.cpp @@ -83,10 +83,10 @@ skvm::Color SkModeColorFilter::onProgram(skvm::Builder* p, skvm::Color c, /////////////////////////////////////////////////////////////////////////////// #if SK_SUPPORT_GPU -#include "src/gpu/GrBlend.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/Blend.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" GrFPResult SkModeColorFilter::asFragmentProcessor(std::unique_ptr inputFP, GrRecordingContext*, diff --git a/third_party/skia/src/core/SkPaint.cpp b/third_party/skia/src/core/SkPaint.cpp index d4c468a158b2..e2b55a6df707 100644 --- a/third_party/skia/src/core/SkPaint.cpp +++ b/third_party/skia/src/core/SkPaint.cpp @@ -425,6 +425,24 @@ bool SkPaint::canComputeFastBounds() const { return true; } +const SkRect& SkPaint::computeFastBounds(const SkRect& orig, SkRect* storage) const { + // Things like stroking, etc... will do math on the bounds rect, assuming that it's sorted. + SkASSERT(orig.isSorted()); + SkPaint::Style style = this->getStyle(); + // ultra fast-case: filling with no effects that affect geometry + if (kFill_Style == style) { + uintptr_t effects = 0; + effects |= reinterpret_cast(this->getMaskFilter()); + effects |= reinterpret_cast(this->getPathEffect()); + effects |= reinterpret_cast(this->getImageFilter()); + if (!effects) { + return orig; + } + } + + return this->doComputeFastBounds(orig, storage, style); +} + const SkRect& SkPaint::doComputeFastBounds(const SkRect& origSrc, SkRect* storage, Style style) const { diff --git a/third_party/skia/src/core/SkPaintParamsKey.cpp b/third_party/skia/src/core/SkPaintParamsKey.cpp index ef8ce6453c35..0e5f4a64bad4 100644 --- a/third_party/skia/src/core/SkPaintParamsKey.cpp +++ b/third_party/skia/src/core/SkPaintParamsKey.cpp @@ -12,10 +12,21 @@ #include "src/core/SkShaderCodeDictionary.h" //-------------------------------------------------------------------------------------------------- -SkPaintParamsKeyBuilder::SkPaintParamsKeyBuilder(const SkShaderCodeDictionary* dict) - : fDict(dict) { +SkPaintParamsKeyBuilder::SkPaintParamsKeyBuilder(const SkShaderCodeDictionary* dict, + SkBackend backend) + : fDict(dict) + , fBackend(backend) { } +#ifdef SK_DEBUG +void SkPaintParamsKeyBuilder::checkReset() { + SkASSERT(!this->isLocked()); + SkASSERT(this->sizeInBytes() == 0); + SkASSERT(fIsValid); + SkASSERT(fStack.empty()); +} +#endif + // Block headers have the following structure: // 1st byte: codeSnippetID // 2nd byte: total blockSize in bytes @@ -26,15 +37,37 @@ void SkPaintParamsKeyBuilder::beginBlock(int codeSnippetID) { } if (codeSnippetID < 0 || codeSnippetID > fDict->maxCodeSnippetID()) { + // SKGPU_LOG_W("Unknown code snippet ID."); this->makeInvalid(); return; } - fData.reserve_back(SkPaintParamsKey::kBlockHeaderSizeInBytes); - fStack.push_back({ codeSnippetID, this->sizeInBytes() }); +#ifdef SK_DEBUG + if (!fStack.empty()) { + // The children of a block should appear before any of the parent's data + SkASSERT(fStack.back().fCurDataPayloadEntry == 0); + } + + static const SkPaintParamsKey::DataPayloadField kHeader[2] = { + {"snippetID", SkPaintParamsKey::DataPayloadType::kByte, 1}, + {"blockSize", SkPaintParamsKey::DataPayloadType::kByte, 1}, + }; + + static const SkSpan kHeaderExpectations(kHeader, 2); +#endif + + SkASSERT(!this->isLocked()); + + fStack.push_back({ codeSnippetID, this->sizeInBytes(), + SkDEBUGCODE(kHeaderExpectations, 0) }); this->addByte(SkTo(codeSnippetID)); this->addByte(0); // this needs to be patched up with a call to endBlock + +#ifdef SK_DEBUG + fStack.back().fDataPayloadExpectations = fDict->dataPayloadExpectations(codeSnippetID); + fStack.back().fCurDataPayloadEntry = 0; +#endif } // Update the size byte of a block header @@ -44,11 +77,16 @@ void SkPaintParamsKeyBuilder::endBlock() { } if (fStack.empty()) { - SkASSERT(0); + // SKGPU_LOG_W("Mismatched beginBlock/endBlocks."); this->makeInvalid(); return; } + // All the expected fields should be filled in at this point + SkASSERT(fStack.back().fCurDataPayloadEntry == + SkTo(fStack.back().fDataPayloadExpectations.size())); + SkASSERT(!this->isLocked()); + int headerOffset = fStack.back().fHeaderOffset; SkASSERT(fData[headerOffset] == fStack.back().fCodeSnippetID); @@ -56,13 +94,21 @@ void SkPaintParamsKeyBuilder::endBlock() { int blockSize = this->sizeInBytes() - headerOffset; if (blockSize > SkPaintParamsKey::kMaxBlockSize) { + // SKGPU_LOG_W("Key's data payload is too large."); this->makeInvalid(); return; } fData[headerOffset+SkPaintParamsKey::kBlockSizeOffsetInBytes] = blockSize; - fStack.pop_back(); + fStack.pop(); + +#ifdef SK_DEBUG + if (!fStack.empty()) { + // The children of a block should appear before any of the parent's data + SkASSERT(fStack.back().fCurDataPayloadEntry == 0); + } +#endif } void SkPaintParamsKeyBuilder::addBytes(uint32_t numBytes, const uint8_t* data) { @@ -70,28 +116,54 @@ void SkPaintParamsKeyBuilder::addBytes(uint32_t numBytes, const uint8_t* data) { return; } - fData.push_back_n(numBytes, data); + if (fStack.empty()) { + // SKGPU_LOG_W("Missing call to 'beginBlock'."); + this->makeInvalid(); + return; + } + +#ifdef SK_DEBUG + const StackFrame& frame = fStack.back(); + const auto& expectations = frame.fDataPayloadExpectations; + + // TODO: right now we reject writing 'n' bytes one at a time. We could allow it by tracking + // the number of bytes written in the stack frame. + SkASSERT(frame.fCurDataPayloadEntry < SkTo(expectations.size()) && + expectations.data() && + expectations[frame.fCurDataPayloadEntry].fType == + SkPaintParamsKey::DataPayloadType::kByte && + expectations[frame.fCurDataPayloadEntry].fCount == numBytes); + + fStack.back().fCurDataPayloadEntry++; +#endif + + SkASSERT(!this->isLocked()); + + fData.append(numBytes, data); } -std::unique_ptr SkPaintParamsKeyBuilder::snap() { +SkPaintParamsKey SkPaintParamsKeyBuilder::lockAsKey() { if (!fStack.empty()) { + // SKGPU_LOG_W("Mismatched beginBlock/endBlocks."); this->makeInvalid(); // fall through } - auto key = std::unique_ptr(new SkPaintParamsKey(std::move(fData))); + SkASSERT(!this->isLocked()); - // Reset for reuse + // Partially reset for reuse. Note that the key resulting from this call will be holding a lock + // on this builder and must be deleted before this builder is fully reset. fIsValid = true; - fStack.clear(); + fStack.rewind(); - return key; + return SkPaintParamsKey(SkMakeSpan(fData.begin(), fData.count()), this); } void SkPaintParamsKeyBuilder::makeInvalid() { SkASSERT(fIsValid); + SkASSERT(!this->isLocked()); - fStack.clear(); - fData.reset(); + fStack.rewind(); + fData.rewind(); this->beginBlock(SkBuiltInCodeSnippetID::kError); this->endBlock(); @@ -100,103 +172,201 @@ void SkPaintParamsKeyBuilder::makeInvalid() { } //-------------------------------------------------------------------------------------------------- -SkPaintParamsKey::SkPaintParamsKey(SkTArray&& data) : fData(std::move(data)) {} +SkPaintParamsKey::SkPaintParamsKey(SkSpan span, + SkPaintParamsKeyBuilder* originatingBuilder) + : fData(span) + , fOriginatingBuilder(originatingBuilder) { + fOriginatingBuilder->lock(); +} + +SkPaintParamsKey::SkPaintParamsKey(SkSpan rawData) + : fData(rawData) + , fOriginatingBuilder(nullptr) { +} + +SkPaintParamsKey::~SkPaintParamsKey() { + if (fOriginatingBuilder) { + fOriginatingBuilder->unlock(); + } +} bool SkPaintParamsKey::operator==(const SkPaintParamsKey& that) const { - return fData == that.fData; + return fData.size() == that.fData.size() && + !memcmp(fData.data(), that.fData.data(), fData.size()); +} + +SkPaintParamsKey::BlockReader SkPaintParamsKey::reader(const SkShaderCodeDictionary* dict, + int headerOffset) const { + return BlockReader(dict, fData, headerOffset); } #ifdef SK_DEBUG -typedef void (*DumpMethod)(const SkPaintParamsKey&, int headerOffset); -namespace { +// This just iterates over the top-level blocks calling block-specific dump methods. +void SkPaintParamsKey::dump(const SkShaderCodeDictionary* dict) const { + SkDebugf("--------------------------------------\n"); + SkDebugf("SkPaintParamsKey (%dB):\n", this->sizeInBytes()); + + int curHeaderOffset = 0; + while (curHeaderOffset < this->sizeInBytes()) { + BlockReader reader = this->reader(dict, curHeaderOffset); + reader.dump(dict, /* indent */ 0); + curHeaderOffset += reader.blockSize(); + } +} +#endif // SK_DEBUG + +void SkPaintParamsKey::AddBlockToShaderInfo(SkShaderCodeDictionary* dict, + const SkPaintParamsKey::BlockReader& reader, + SkShaderInfo* result) { + + result->add(reader); -void dump_unknown_block(const SkPaintParamsKey& key, int headerOffset) { - uint8_t id = key.byte(headerOffset); - uint8_t blockSize = key.byte(headerOffset+1); - SkASSERT(blockSize >= 2 && headerOffset+blockSize <= key.sizeInBytes()); + // The child blocks appear right after the parent block's header in the key and go + // right after the parent's SnippetEntry in the shader info + for (int i = 0; i < reader.numChildren(); ++i) { + SkPaintParamsKey::BlockReader childReader = reader.child(dict, i); - SkDebugf("Unknown block - id: %d size: %dB\n", id, blockSize); + AddBlockToShaderInfo(dict, childReader, result); + } } -DumpMethod get_dump_method(SkBuiltInCodeSnippetID id) { - switch (id) { - case SkBuiltInCodeSnippetID::kDepthStencilOnlyDraw: return DepthStencilOnlyBlock::Dump; +void SkPaintParamsKey::toShaderInfo(SkShaderCodeDictionary* dict, SkShaderInfo* result) const { - // SkShader code snippets - case SkBuiltInCodeSnippetID::kSolidColorShader: return SolidColorShaderBlock::Dump; + int curHeaderOffset = 0; + while (curHeaderOffset < this->sizeInBytes()) { + SkPaintParamsKey::BlockReader reader = this->reader(dict, curHeaderOffset); + AddBlockToShaderInfo(dict, reader, result); + curHeaderOffset += reader.blockSize(); + } +} - case SkBuiltInCodeSnippetID::kLinearGradientShader: [[fallthrough]]; - case SkBuiltInCodeSnippetID::kRadialGradientShader: [[fallthrough]]; - case SkBuiltInCodeSnippetID::kSweepGradientShader: [[fallthrough]]; - case SkBuiltInCodeSnippetID::kConicalGradientShader: return GradientShaderBlocks::Dump; +#if GR_TEST_UTILS +bool SkPaintParamsKey::isErrorKey() const { + return this->sizeInBytes() == SkPaintParamsKey::kBlockHeaderSizeInBytes && + fData[0] == static_cast(SkBuiltInCodeSnippetID::kError) && + fData[1] == SkPaintParamsKey::kBlockHeaderSizeInBytes; +} +#endif - case SkBuiltInCodeSnippetID::kImageShader: return ImageShaderBlock::Dump; - case SkBuiltInCodeSnippetID::kBlendShader: return BlendShaderBlock::Dump; +//////////////////////////////////////////////////////////////////////////////////////////////////// - // BlendMode code snippets - case SkBuiltInCodeSnippetID::kSimpleBlendMode: return BlendModeBlock::Dump; +namespace { - default: return dump_unknown_block; +#ifdef SK_DEBUG +void output_indent(int indent) { + for (int i = 0; i < indent; ++i) { + SkDebugf(" "); } } +#endif -} // anonymous namespace +std::pair read_header(SkSpan parentSpan, + int headerOffset) { + SkASSERT(headerOffset + SkPaintParamsKey::kBlockHeaderSizeInBytes <= + SkTo(parentSpan.size())); -int SkPaintParamsKey::DumpBlock(const SkPaintParamsKey& key, int headerOffset) { - auto [codeSnippetID, blockSize] = key.readCodeSnippetID(headerOffset); + SkBuiltInCodeSnippetID id = static_cast(parentSpan[headerOffset]); + uint8_t blockSize = parentSpan[headerOffset+SkPaintParamsKey::kBlockSizeOffsetInBytes]; + SkASSERT(blockSize >= SkPaintParamsKey::kBlockHeaderSizeInBytes); + SkASSERT(headerOffset + blockSize <= static_cast(parentSpan.size())); - get_dump_method(codeSnippetID)(key, headerOffset); + return { id, blockSize }; +} + +} // anonymous namespace - return blockSize; +SkPaintParamsKey::BlockReader::BlockReader(const SkShaderCodeDictionary* dict, + SkSpan parentSpan, + int offsetInParent) { + auto [codeSnippetID, blockSize] = read_header(parentSpan, offsetInParent); + + fBlock = parentSpan.subspan(offsetInParent, blockSize); + fEntry = dict->getEntry(codeSnippetID); + SkASSERT(fEntry); } -// This just iterates over the top-level blocks calling block-specific dump methods. -void SkPaintParamsKey::dump() const { - SkDebugf("SkPaintParamsKey %dB:\n", this->sizeInBytes()); +int SkPaintParamsKey::BlockReader::numChildren() const { return fEntry->fNumChildren; } - int curHeaderOffset = 0; - while (curHeaderOffset < this->sizeInBytes()) { - int blockSize = DumpBlock(*this, curHeaderOffset); - curHeaderOffset += blockSize; +SkPaintParamsKey::BlockReader SkPaintParamsKey::BlockReader::child( + const SkShaderCodeDictionary* dict, + int childIndex) const { + SkASSERT(childIndex < fEntry->fNumChildren); + + int childOffset = kBlockHeaderSizeInBytes; + for (int i = 0; i < childIndex; ++i) { + auto [_, childBlockSize] = read_header(fBlock, childOffset); + childOffset += childBlockSize; } + + return BlockReader(dict, fBlock, childOffset); } -#endif -int SkPaintParamsKey::AddBlockToShaderInfo(SkShaderCodeDictionary* dict, - const SkPaintParamsKey& key, - int headerOffset, - SkShaderInfo* result) { - auto [codeSnippetID, blockSize] = key.readCodeSnippetID(headerOffset); +SkSpan SkPaintParamsKey::BlockReader::dataPayload() const { + int payloadOffset = kBlockHeaderSizeInBytes; + for (int i = 0; i < fEntry->fNumChildren; ++i) { + auto [_, childBlockSize] = read_header(fBlock, payloadOffset); + payloadOffset += childBlockSize; + } - if (codeSnippetID != SkBuiltInCodeSnippetID::kSimpleBlendMode) { - auto entry = dict->getEntry(codeSnippetID); + int payloadSize = this->blockSize() - payloadOffset; + return fBlock.subspan(payloadOffset, payloadSize); +} - result->add(*entry); +SkSpan SkPaintParamsKey::BlockReader::bytes(int fieldIndex) const { + SkASSERT(fEntry->fDataPayloadExpectations[fieldIndex].fType == DataPayloadType::kByte); - // The child blocks appear right after the parent block's header in the key and go - // right after the parent's SnippetEntry in the shader info - int childOffset = headerOffset + kBlockHeaderSizeInBytes; - for (int i = 0; i < entry->fNumChildren; ++i) { - SkASSERT(childOffset < headerOffset + blockSize); + int byteOffsetInPayload = 0; + for (int i = 0; i < fieldIndex; ++i) { + SkASSERT(fEntry->fDataPayloadExpectations[i].fType == DataPayloadType::kByte); + byteOffsetInPayload += fEntry->fDataPayloadExpectations[i].fCount; + } - int childBlockSize = AddBlockToShaderInfo(dict, key, childOffset, result); - childOffset += childBlockSize; - } + SkSpan dataPayload = this->dataPayload(); + return dataPayload.subspan(byteOffsetInPayload, + fEntry->fDataPayloadExpectations[fieldIndex].fCount); +} - if (codeSnippetID != SkBuiltInCodeSnippetID::kDepthStencilOnlyDraw) { - result->setWritesColor(); - } - } +#ifdef SK_DEBUG - return blockSize; +int SkPaintParamsKey::BlockReader::numDataPayloadFields() const { + return fEntry->fDataPayloadExpectations.size(); } -void SkPaintParamsKey::toShaderInfo(SkShaderCodeDictionary* dict, SkShaderInfo* result) const { +void SkPaintParamsKey::BlockReader::dump(const SkShaderCodeDictionary* dict, int indent) const { + uint8_t id = static_cast(this->codeSnippetId()); + uint8_t blockSize = this->blockSize(); - int curHeaderOffset = 0; - while (curHeaderOffset < this->sizeInBytes()) { - int blockSize = AddBlockToShaderInfo(dict, *this, curHeaderOffset, result); - curHeaderOffset += blockSize; + auto entry = dict->getEntry(id); + if (!entry) { + output_indent(indent); + SkDebugf("unknown block! (%dB)\n", blockSize); + } + + output_indent(indent); + SkDebugf("%s block (%dB)\n", entry->fStaticFunctionName, blockSize); + + for (int i = 0; i < this->numChildren(); ++i) { + output_indent(indent); + // TODO: it would be nice if the names of the children were also stored (i.e., "src"/"dst") + SkDebugf("child %d:\n", i); + + SkPaintParamsKey::BlockReader childReader = this->child(dict, i); + childReader.dump(dict, indent+1); + } + + for (int i = 0; i < (int) fEntry->fDataPayloadExpectations.size(); ++i) { + output_indent(indent); + SkDebugf("%s[%d]: ", + fEntry->fDataPayloadExpectations[i].fName, + fEntry->fDataPayloadExpectations[i].fCount); + SkSpan bytes = this->bytes(i); + for (uint8_t b : bytes) { + SkDebugf("%d,", b); + } + + SkDebugf("\n"); } } + +#endif // SK_DEBUG diff --git a/third_party/skia/src/core/SkPaintParamsKey.h b/third_party/skia/src/core/SkPaintParamsKey.h index 17fbecde468d..f244d70a76a3 100644 --- a/third_party/skia/src/core/SkPaintParamsKey.h +++ b/third_party/skia/src/core/SkPaintParamsKey.h @@ -8,26 +8,163 @@ #ifndef SkPaintParamsKey_DEFINED #define SkPaintParamsKey_DEFINED +#include "include/core/SkSpan.h" #include "include/core/SkTypes.h" -#include "include/private/SkTArray.h" +#include "include/private/SkTDArray.h" #include "src/core/SkBuiltInCodeSnippetID.h" #include #include -#include enum class SkBackend : uint8_t { kGanesh, kGraphite, kSkVM }; -class SkPaintParamsKey; +class SkPaintParamsKeyBuilder; class SkShaderCodeDictionary; class SkShaderInfo; +struct SkShaderSnippet; +// This class is a compact representation of the shader needed to implement a given +// PaintParams. Its structure is a series of blocks where each block has a +// header that consists of 2-bytes: +// a 1-byte code-snippet ID +// a 1-byte number-of-bytes-in-the-block field (incl. the space for the header) +// The rest of the data in the block is dependent on the individual code snippet. +// If a given block has child blocks, they appear in the key right after their +// parent block's header. +class SkPaintParamsKey { +public: + static const int kBlockHeaderSizeInBytes = 2; + static const int kBlockSizeOffsetInBytes = 1; // offset to the block size w/in the header + static const int kMaxBlockSize = std::numeric_limits::max(); + + enum class DataPayloadType { + kByte, + }; + + // A given snippet's data payload is stored as an SkSpan of DataPayloadFields in the + // SkShaderCodeDictionary. That span just defines the structure of the data payload. The actual + // data is stored in the paint params key. + struct DataPayloadField { + const char* fName; + DataPayloadType fType; + uint32_t fCount; + }; + + ~SkPaintParamsKey(); + + class BlockReader { + public: + uint8_t blockSize() const { + SkASSERT(fBlock[kBlockSizeOffsetInBytes] == fBlock.size()); + return SkTo(fBlock.size()); + } + + int numChildren() const; + + // Return the childIndex-th child's BlockReader + BlockReader child(const SkShaderCodeDictionary*, int childIndex) const; + + // Retrieve the fieldIndex-th field in the data payload as a span of bytes. The type + // being read (bytes in this case) is checked against the data payload's structure. + SkSpan bytes(int fieldIndex) const; + // TODO: add more types (as needed) and their corresponding access methods + + const SkShaderSnippet* entry() const { return fEntry; } + +#ifdef SK_DEBUG + int numDataPayloadFields() const; + void dump(const SkShaderCodeDictionary*, int indent) const; +#endif + + private: + friend class SkPaintParamsKey; // for ctor + + BlockReader(const SkShaderCodeDictionary*, + SkSpan parentSpan, + int offsetInParent); + + SkBuiltInCodeSnippetID codeSnippetId() const { + return static_cast(fBlock[0]); + } + + // The data payload appears after any children and occupies the remainder of the + // block's space. + SkSpan dataPayload() const; + + SkSpan fBlock; + const SkShaderSnippet* fEntry; + }; + + BlockReader reader(const SkShaderCodeDictionary*, int headerOffset) const; + +#ifdef SK_DEBUG + uint8_t byte(int offset) const { + SkASSERT(offset < this->sizeInBytes()); + return fData[offset]; + } + void dump(const SkShaderCodeDictionary*) const; +#endif + void toShaderInfo(SkShaderCodeDictionary*, SkShaderInfo*) const; + + SkSpan asSpan() const { return fData; } + const uint8_t* data() const { return fData.data(); } + int sizeInBytes() const { return SkTo(fData.size()); } + + bool operator==(const SkPaintParamsKey& that) const; + bool operator!=(const SkPaintParamsKey& that) const { return !(*this == that); } + +#if GR_TEST_UTILS + bool isErrorKey() const; +#endif + +private: + friend class SkPaintParamsKeyBuilder; // for the parented-data ctor + friend class SkShaderCodeDictionary; // for the raw-data ctor + + // This ctor is to be used when paintparams keys are being consecutively generated + // by a key builder. The memory backing this key's span is shared between the + // builder and its keys. + SkPaintParamsKey(SkSpan span, SkPaintParamsKeyBuilder* originatingBuilder); + + // This ctor is used when this key isn't being created by a builder (i.e., when the key + // is in the dictionary). In this case the dictionary will own the memory backing the span. + SkPaintParamsKey(SkSpan rawData); + + static void AddBlockToShaderInfo(SkShaderCodeDictionary*, + const SkPaintParamsKey::BlockReader&, + SkShaderInfo*); + + // The memory referenced in 'fData' is always owned by someone else. + // If 'fOriginatingBuilder' is null, the dictionary's SkArena owns the memory and no explicit + // freeing is required. + // If 'fOriginatingBuilder' is non-null then the memory must be explicitly locked (in the ctor) + // and unlocked (in the dtor) on the 'fOriginatingBuilder' object. + SkSpan fData; + // This class should only ever access the 'lock' and 'unlock' calls on 'fOriginatingBuilder' + SkPaintParamsKeyBuilder* fOriginatingBuilder; +}; + +// The SkPaintParamsKeyBuilder and the SkPaintParamsKeys snapped from it share the same +// underlying block of memory. When an SkPaintParamsKey is snapped from the builder it 'locks' +// the memory and 'unlocks' it in its destructor. Because of this relationship, the builder +// can only have one extant key and that key must be destroyed before the builder can be reused +// to create another one. +// +// This arrangement is intended to improve performance in the expected case, where a builder is +// being used in a tight loop to generate keys which can be recycled once they've been used to +// find the dictionary's matching uniqueID. We don't expect the cost of copying the key's memory +// into the dictionary to be prohibitive since that should be infrequent. class SkPaintParamsKeyBuilder { public: - SkPaintParamsKeyBuilder(const SkShaderCodeDictionary*); + SkPaintParamsKeyBuilder(const SkShaderCodeDictionary*, SkBackend); + ~SkPaintParamsKeyBuilder() { + SkASSERT(!this->isLocked()); + } + + SkBackend backend() const { return fBackend; } void beginBlock(int codeSnippetID); void beginBlock(SkBuiltInCodeSnippetID id) { this->beginBlock(static_cast(id)); } @@ -39,83 +176,56 @@ class SkPaintParamsKeyBuilder { } #ifdef SK_DEBUG + // Check that the builder has been reset to its initial state prior to creating a new key. + void checkReset(); uint8_t byte(int offset) const { return fData[offset]; } #endif - std::unique_ptr snap(); + SkPaintParamsKey lockAsKey(); int sizeInBytes() const { return fData.count(); } bool isValid() const { return fIsValid; } + void lock() { + SkASSERT(!fLocked); + SkDEBUGCODE(fLocked = true;) + } + + void unlock() { + SkASSERT(fLocked); + fData.rewind(); + SkDEBUGCODE(fLocked = false;) + SkDEBUGCODE(this->checkReset();) + } + + SkDEBUGCODE(bool isLocked() const { return fLocked; }) + private: void makeInvalid(); + // Information about the current block being written struct StackFrame { int fCodeSnippetID; int fHeaderOffset; +#ifdef SK_DEBUG + SkSpan fDataPayloadExpectations; + int fCurDataPayloadEntry = 0; +#endif }; - bool fIsValid = true; const SkShaderCodeDictionary* fDict; - std::vector fStack; - // TODO: It is probably overkill but we could encode the SkBackend in the first byte of // the key. - SkTArray fData; -}; + const SkBackend fBackend; -// This class is a compact representation of the shader needed to implement a given -// PaintParams. Its structure is a series of blocks where each block has a -// header that consists of 2-bytes: -// a 1-byte code-snippet ID -// a 1-byte number-of-bytes-in-the-block field (incl. the space for the header) -// The rest of the data in the block is dependent on the individual code snippet. -// If a given block has child blocks, they appear in the key right after their -// parent block's header. -class SkPaintParamsKey { -public: - static const int kBlockHeaderSizeInBytes = 2; - static const int kBlockSizeOffsetInBytes = 1; // offset to the block size w/in the header - static const int kMaxBlockSize = std::numeric_limits::max(); - - std::pair readCodeSnippetID(int headerOffset) const { - SkASSERT(headerOffset < this->sizeInBytes() - kBlockHeaderSizeInBytes); - - SkBuiltInCodeSnippetID id = static_cast(fData[headerOffset]); - uint8_t blockSize = fData[headerOffset+1]; - SkASSERT(headerOffset + blockSize <= this->sizeInBytes()); - - return { id, blockSize }; - } - -#ifdef SK_DEBUG - uint8_t byte(int offset) const { - SkASSERT(offset < this->sizeInBytes()); - return fData[offset]; - } - static int DumpBlock(const SkPaintParamsKey&, int headerOffset); - void dump() const; -#endif - void toShaderInfo(SkShaderCodeDictionary*, SkShaderInfo*) const; - - const void* data() const { return fData.data(); } - int sizeInBytes() const { return fData.count(); } - - bool operator==(const SkPaintParamsKey& that) const; - bool operator!=(const SkPaintParamsKey& that) const { return !(*this == that); } - -private: - friend class SkPaintParamsKeyBuilder; - - SkPaintParamsKey(SkTArray&&); - - static int AddBlockToShaderInfo(SkShaderCodeDictionary*, - const SkPaintParamsKey&, - int headerOffset, - SkShaderInfo*); + bool fIsValid = true; + SkDEBUGCODE(bool fLocked = false;) - SkTArray fData; + // Use SkTDArray so that we can guarantee that rewind() preserves the underlying storage and + // repeated use of the builder will hit a high-water mark and avoid lots of allocations. + SkTDArray fStack; + SkTDArray fData; }; #endif // SkPaintParamsKey_DEFINED diff --git a/third_party/skia/src/core/SkPaintPriv.cpp b/third_party/skia/src/core/SkPaintPriv.cpp index 17bde60a27e0..501ddb665cf0 100644 --- a/third_party/skia/src/core/SkPaintPriv.cpp +++ b/third_party/skia/src/core/SkPaintPriv.cpp @@ -9,8 +9,6 @@ #include "src/core/SkBlenderBase.h" #include "src/core/SkColorFilterBase.h" #include "src/core/SkColorSpacePriv.h" -#include "src/core/SkKeyHelpers.h" -#include "src/core/SkPaintParamsKey.h" #include "src/core/SkPaintPriv.h" #include "src/core/SkXfermodePriv.h" #include "src/shaders/SkColorFilterShader.h" @@ -52,7 +50,7 @@ bool SkPaintPriv::Overwrites(const SkPaint* paint, ShaderOverrideOpacity overrid return SkXfermode::IsOpaque(bm.value(), opacityType); } -bool SkPaintPriv::ShouldDither(const SkPaint& p, SkColorType dstCT, bool shaderOverride) { +bool SkPaintPriv::ShouldDither(const SkPaint& p, SkColorType dstCT) { // The paint dither flag can veto. if (!p.isDither()) { return false; @@ -65,8 +63,7 @@ bool SkPaintPriv::ShouldDither(const SkPaint& p, SkColorType dstCT, bool shaderO // Otherwise, dither is only needed for non-const paints. return p.getImageFilter() || p.getMaskFilter() || - (p.getShader() && !as_SB(p.getShader())->isConstant()) || - shaderOverride; + (p.getShader() && !as_SB(p.getShader())->isConstant()); } // return true if the paint is just a single color (i.e. not a shader). If its @@ -123,35 +120,3 @@ SkScalar SkPaintPriv::ComputeResScaleForStroking(const SkMatrix& matrix) { } return 1; } - -std::vector> SkPaintPriv::ToKeys(const SkPaint& paint, - SkShaderCodeDictionary* dict, - SkBackend backend) { - std::vector> keys; - - // TODO: actually split the SkPaint into multiple PaintParams and generate the keys - // for them separately. - // TODO: actually collect and return the SkUniformData vector for each PaintParams derived - // from the SkPaint - { - SkPaintParamsKeyBuilder builder(dict); - - if (paint.getShader()) { - as_SB(paint.getShader())->addToKey(dict, backend, &builder, nullptr); - } else { - SolidColorShaderBlock::AddToKey(dict, backend, &builder, nullptr, paint.getColor4f()); - } - - if (paint.getBlender()) { - as_BB(paint.getBlender())->addToKey(dict, backend, &builder, nullptr); - } else { - BlendModeBlock::AddToKey(dict, backend, &builder, nullptr, SkBlendMode::kSrcOver); - } - - SkASSERT(builder.sizeInBytes() > 0); - - keys.push_back(builder.snap()); - } - - return keys; -} diff --git a/third_party/skia/src/core/SkPaintPriv.h b/third_party/skia/src/core/SkPaintPriv.h index bf80c174f9e4..3addf321bf38 100644 --- a/third_party/skia/src/core/SkPaintPriv.h +++ b/third_party/skia/src/core/SkPaintPriv.h @@ -10,13 +10,9 @@ #include "include/core/SkPaint.h" -#include - -enum class SkBackend : uint8_t; -class SkPaintParamsKey; class SkReadBuffer; -class SkShaderCodeDictionary; class SkWriteBuffer; +enum SkColorType : int; class SkPaintPriv { public: @@ -34,7 +30,7 @@ class SkPaintPriv { */ static bool Overwrites(const SkPaint* paint, ShaderOverrideOpacity); - static bool ShouldDither(const SkPaint&, SkColorType, bool shaderOverride=false); + static bool ShouldDither(const SkPaint&, SkColorType); /* * The luminance color is used to determine which Gamma Canonical color to map to. This is @@ -63,18 +59,6 @@ class SkPaintPriv { static void RemoveColorFilter(SkPaint*, SkColorSpace* dstCS); static SkScalar ComputeResScaleForStroking(const SkMatrix&); - - /** - Return the SkPaintParamsKeys that would be needed to draw the provided paint. - - @param paint the paint to be decomposed - @param dictionary dictionary of code fragments available to be used in the SkPaintParamKeys - @param backend the backend that would be carrying out the drawing - @return the SkPaintParamsKeys that would be needed to draw this paint - */ - static std::vector> ToKeys(const SkPaint& paint, - SkShaderCodeDictionary* dictionary, - SkBackend backend); }; #endif diff --git a/third_party/skia/src/core/SkPath.cpp b/third_party/skia/src/core/SkPath.cpp index 0f51db92b04b..675158534090 100644 --- a/third_party/skia/src/core/SkPath.cpp +++ b/third_party/skia/src/core/SkPath.cpp @@ -398,6 +398,56 @@ bool SkPath::isLine(SkPoint line[2]) const { return false; } +bool SkPath::isEmpty() const { + SkDEBUGCODE(this->validate();) + return 0 == fPathRef->countVerbs(); +} + +bool SkPath::isFinite() const { + SkDEBUGCODE(this->validate();) + return fPathRef->isFinite(); +} + +bool SkPath::isConvex() const { + return SkPathConvexity::kConvex == this->getConvexity(); +} + +const SkRect& SkPath::getBounds() const { + return fPathRef->getBounds(); +} + +uint32_t SkPath::getSegmentMasks() const { + return fPathRef->getSegmentMasks(); +} + +bool SkPath::isValid() const { + return this->isValidImpl() && fPathRef->isValid(); +} + +bool SkPath::hasComputedBounds() const { + SkDEBUGCODE(this->validate();) + return fPathRef->hasComputedBounds(); +} + +void SkPath::setBounds(const SkRect& rect) { + SkPathRef::Editor ed(&fPathRef); + ed.setBounds(rect); +} + +SkPathConvexity SkPath::getConvexityOrUnknown() const { + return (SkPathConvexity)fConvexity.load(std::memory_order_relaxed); +} + +#ifdef SK_DEBUG +void SkPath::validate() const { + SkASSERT(this->isValidImpl()); +} + +void SkPath::validateRef() const { + // This will SkASSERT if not valid. + fPathRef->validate(); +} +#endif /* Determines if path is a rect by keeping track of changes in direction and looking for a loop either clockwise or counterclockwise. diff --git a/third_party/skia/src/core/SkPathBuilder.cpp b/third_party/skia/src/core/SkPathBuilder.cpp index 0085bca63600..65b1b7c8e361 100644 --- a/third_party/skia/src/core/SkPathBuilder.cpp +++ b/third_party/skia/src/core/SkPathBuilder.cpp @@ -44,9 +44,6 @@ SkPathBuilder& SkPathBuilder::reset() { fLastMoveIndex = -1; // illegal fNeedsMoveVerb = true; - // testing - fOverrideConvexity = SkPathConvexity::kUnknown; - return *this; } @@ -202,10 +199,6 @@ SkPath SkPathBuilder::make(sk_sp pr) const { default: break; } - if (fOverrideConvexity != SkPathConvexity::kUnknown) { - convexity = fOverrideConvexity; - } - // Wonder if we can combine convexity and dir internally... // unknown, convex_cw, convex_ccw, concave // Do we ever have direction w/o convexity, or viceversa (inside path)? diff --git a/third_party/skia/src/core/SkPathPriv.h b/third_party/skia/src/core/SkPathPriv.h index efddfbe4b699..813613f828d6 100644 --- a/third_party/skia/src/core/SkPathPriv.h +++ b/third_party/skia/src/core/SkPathPriv.h @@ -9,7 +9,9 @@ #define SkPathPriv_DEFINED #include "include/core/SkPathBuilder.h" +#include "include/core/SkRefCnt.h" #include "include/private/SkIDChangeListener.h" +#include "include/private/SkPathRef.h" static_assert(0 == static_cast(SkPathFillType::kWinding), "fill_type_mismatch"); static_assert(1 == static_cast(SkPathFillType::kEvenOdd), "fill_type_mismatch"); @@ -402,9 +404,6 @@ class SkPathPriv { static void SetConvexity(const SkPath& path, SkPathConvexity c) { path.setConvexity(c); } - static void SetConvexity(SkPathBuilder* builder, SkPathConvexity c) { - builder->privateSetConvexity(c); - } static void ForceComputeConvexity(const SkPath& path) { path.setConvexity(SkPathConvexity::kUnknown); (void)path.isConvex(); diff --git a/third_party/skia/src/core/SkPathRef.cpp b/third_party/skia/src/core/SkPathRef.cpp index 12448018fcc4..7427972ec96f 100644 --- a/third_party/skia/src/core/SkPathRef.cpp +++ b/third_party/skia/src/core/SkPathRef.cpp @@ -8,6 +8,7 @@ #include "include/private/SkPathRef.h" #include "include/core/SkPath.h" +#include "include/core/SkRRect.h" #include "include/private/SkNx.h" #include "include/private/SkOnce.h" #include "include/private/SkTo.h" @@ -541,6 +542,21 @@ SkRRect SkPathRef::getRRect() const { return rrect; } +bool SkPathRef::isRRect(SkRRect* rrect, bool* isCCW, unsigned* start) const { + if (fIsRRect) { + if (rrect) { + *rrect = this->getRRect(); + } + if (isCCW) { + *isCCW = SkToBool(fRRectOrOvalIsCCW); + } + if (start) { + *start = fRRectOrOvalStartIdx; + } + } + return SkToBool(fIsRRect); + } + /////////////////////////////////////////////////////////////////////////////// SkPathRef::Iter::Iter() { diff --git a/third_party/skia/src/core/SkPicture.cpp b/third_party/skia/src/core/SkPicture.cpp index b504de8a1675..fe086e1321dc 100644 --- a/third_party/skia/src/core/SkPicture.cpp +++ b/third_party/skia/src/core/SkPicture.cpp @@ -21,6 +21,10 @@ #include "src/core/SkResourceCache.h" #include +#if SK_SUPPORT_GPU +#include "include/private/chromium/GrSlug.h" +#endif + // When we read/write the SkPictInfo via a stream, we have a sentinel byte right after the info. // Note: in the read/write buffer versions, we have a slightly different convention: // We have a sentinel int32_t: diff --git a/third_party/skia/src/core/SkPictureData.cpp b/third_party/skia/src/core/SkPictureData.cpp index 2513cd013e3a..7084f44eb713 100644 --- a/third_party/skia/src/core/SkPictureData.cpp +++ b/third_party/skia/src/core/SkPictureData.cpp @@ -20,6 +20,10 @@ #include +#if SK_SUPPORT_GPU +#include "include/private/chromium/GrSlug.h" +#endif + template int SafeCount(const T* obj) { return obj ? obj->count() : 0; } @@ -41,6 +45,9 @@ SkPictureData::SkPictureData(const SkPictureRecord& record, , fTextBlobs(record.getTextBlobs()) , fVertices(record.getVertices()) , fImages(record.getImages()) +#if SK_SUPPORT_GPU + , fSlugs(record.getSlugs()) +#endif , fInfo(info) { fOpData = record.opData(); @@ -167,6 +174,15 @@ void SkPictureData::flattenToBuffer(SkWriteBuffer& buffer, bool textBlobsOnly) c } } +#if SK_SUPPORT_GPU + if (!textBlobsOnly) { + write_tag_size(buffer, SK_PICT_SLUG_BUFFER_TAG, fSlugs.count()); + for (const auto& slug : fSlugs) { + slug->doFlatten(buffer); + } + } +#endif + if (!textBlobsOnly) { if (!fVertices.empty()) { write_tag_size(buffer, SK_PICT_VERTICES_BUFFER_TAG, fVertices.count()); @@ -437,6 +453,11 @@ void SkPictureData::parseBufferTag(SkReadBuffer& buffer, uint32_t tag, uint32_t case SK_PICT_TEXTBLOB_BUFFER_TAG: new_array_from_buffer(buffer, size, fTextBlobs, SkTextBlobPriv::MakeFromBuffer); break; + case SK_PICT_SLUG_BUFFER_TAG: +#if SK_SUPPORT_GPU + new_array_from_buffer(buffer, size, fSlugs, GrSlug::MakeFromBuffer); +#endif + break; case SK_PICT_VERTICES_BUFFER_TAG: new_array_from_buffer(buffer, size, fVertices, SkVerticesPriv::Decode); break; diff --git a/third_party/skia/src/core/SkPictureData.h b/third_party/skia/src/core/SkPictureData.h index f1d4d3c93827..2eb571fdb5ba 100644 --- a/third_party/skia/src/core/SkPictureData.h +++ b/third_party/skia/src/core/SkPictureData.h @@ -61,6 +61,7 @@ struct SkPictInfo { #define SK_PICT_PAINT_BUFFER_TAG SkSetFourByteTag('p', 'n', 't', ' ') #define SK_PICT_PATH_BUFFER_TAG SkSetFourByteTag('p', 't', 'h', ' ') #define SK_PICT_TEXTBLOB_BUFFER_TAG SkSetFourByteTag('b', 'l', 'o', 'b') +#define SK_PICT_SLUG_BUFFER_TAG SkSetFourByteTag('s', 'l', 'u', 'g') #define SK_PICT_VERTICES_BUFFER_TAG SkSetFourByteTag('v', 'e', 'r', 't') #define SK_PICT_IMAGE_BUFFER_TAG SkSetFourByteTag('i', 'm', 'a', 'g') @@ -127,6 +128,12 @@ class SkPictureData { return read_index_base_1_or_null(reader, fTextBlobs); } +#if SK_SUPPORT_GPU + const GrSlug* getSlug(SkReadBuffer* reader) const { + return read_index_base_1_or_null(reader, fSlugs); + } +#endif + const SkVertices* getVertices(SkReadBuffer* reader) const { return read_index_base_1_or_null(reader, fVertices); } @@ -152,6 +159,10 @@ class SkPictureData { SkTArray> fTextBlobs; SkTArray> fVertices; SkTArray> fImages; +#if SK_SUPPORT_GPU + SkTArray> fSlugs; +#endif + SkTypefacePlayback fTFPlayback; std::unique_ptr fFactoryPlayback; diff --git a/third_party/skia/src/core/SkPictureFlat.h b/third_party/skia/src/core/SkPictureFlat.h index 2a99b5b4fe64..36cb274bda97 100644 --- a/third_party/skia/src/core/SkPictureFlat.h +++ b/third_party/skia/src/core/SkPictureFlat.h @@ -116,7 +116,9 @@ enum DrawType { RESET_CLIP, - LAST_DRAWTYPE_ENUM = RESET_CLIP, + DRAW_SLUG, + + LAST_DRAWTYPE_ENUM = DRAW_SLUG, }; enum DrawVertexFlags { diff --git a/third_party/skia/src/core/SkPictureImageGenerator.cpp b/third_party/skia/src/core/SkPictureImageGenerator.cpp index 845971e72a33..3aba369bc68a 100644 --- a/third_party/skia/src/core/SkPictureImageGenerator.cpp +++ b/third_party/skia/src/core/SkPictureImageGenerator.cpp @@ -6,6 +6,7 @@ */ #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImageGenerator.h" #include "include/core/SkMatrix.h" #include "include/core/SkPaint.h" @@ -91,8 +92,8 @@ bool SkPictureImageGenerator::onGetPixels(const SkImageInfo& info, void* pixels, #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" GrSurfaceProxyView SkPictureImageGenerator::onGenerateTexture(GrRecordingContext* ctx, const SkImageInfo& info, diff --git a/third_party/skia/src/core/SkPicturePlayback.cpp b/third_party/skia/src/core/SkPicturePlayback.cpp index dae74f689bbf..75d2fa9e05c9 100644 --- a/third_party/skia/src/core/SkPicturePlayback.cpp +++ b/third_party/skia/src/core/SkPicturePlayback.cpp @@ -10,11 +10,13 @@ #include "include/core/SkTextBlob.h" #include "include/core/SkTypes.h" #include "include/private/SkTDArray.h" +#include "include/private/chromium/GrSlug.h" #include "src/core/SkCanvasPriv.h" #include "src/core/SkDrawShadowInfo.h" #include "src/core/SkFontPriv.h" #include "src/core/SkPaintPriv.h" #include "src/core/SkPictureData.h" +#include "src/core/SkPictureFlat.h" #include "src/core/SkPicturePlayback.h" #include "src/core/SkPictureRecord.h" #include "src/core/SkReadBuffer.h" @@ -601,6 +603,14 @@ void SkPicturePlayback::handleOp(SkReadBuffer* reader, canvas->drawTextBlob(blob, x, y, paint); } break; + case DRAW_SLUG: { +#if SK_SUPPORT_GPU + const GrSlug* slug = fPictureData->getSlug(reader); + BREAK_ON_READ_ERROR(reader); + + slug->draw(canvas); +#endif + } break; case DRAW_VERTICES_OBJECT: { const SkPaint& paint = fPictureData->requiredPaint(reader); const SkVertices* vertices = fPictureData->getVertices(reader); diff --git a/third_party/skia/src/core/SkPictureRecord.cpp b/third_party/skia/src/core/SkPictureRecord.cpp index 9916e332e72f..55681e7bccb0 100644 --- a/third_party/skia/src/core/SkPictureRecord.cpp +++ b/third_party/skia/src/core/SkPictureRecord.cpp @@ -19,6 +19,10 @@ #include "src/image/SkImage_Base.h" #include "src/utils/SkPatchUtils.h" +#if SK_SUPPORT_GPU +#include "include/private/chromium/GrSlug.h" +#endif + #define HEAP_BLOCK_SIZE 4096 enum { @@ -575,6 +579,17 @@ void SkPictureRecord::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScala this->validate(initialOffset, size); } +#if SK_SUPPORT_GPU +void SkPictureRecord::onDrawSlug(const GrSlug* slug) { + // op + slug id + size_t size = 2 * kUInt32Size; + size_t initialOffset = this->addDraw(DRAW_SLUG, &size); + + this->addSlug(slug); + this->validate(initialOffset, size); +} +#endif + void SkPictureRecord::onDrawPicture(const SkPicture* picture, const SkMatrix* matrix, const SkPaint* paint) { // op + picture index @@ -906,14 +921,7 @@ void SkPictureRecord::addRegion(const SkRegion& region) { } void SkPictureRecord::addSampling(const SkSamplingOptions& sampling) { - fWriter.writeBool(sampling.useCubic); - if (sampling.useCubic) { - fWriter.writeScalar(sampling.cubic.B); - fWriter.writeScalar(sampling.cubic.C); - } else { - fWriter.writeInt(static_cast(sampling.filter)); - fWriter.writeInt(static_cast(sampling.mipmap)); - } + fWriter.writeSampling(sampling); } void SkPictureRecord::addText(const void* text, size_t byteLength) { @@ -926,6 +934,13 @@ void SkPictureRecord::addTextBlob(const SkTextBlob* blob) { this->addInt(find_or_append(fTextBlobs, blob) + 1); } +#if SK_SUPPORT_GPU +void SkPictureRecord::addSlug(const GrSlug* slug) { + // follow the convention of recording a 1-based index + this->addInt(find_or_append(fSlugs, slug) + 1); +} +#endif + void SkPictureRecord::addVertices(const SkVertices* vertices) { // follow the convention of recording a 1-based index this->addInt(find_or_append(fVertices, vertices) + 1); diff --git a/third_party/skia/src/core/SkPictureRecord.h b/third_party/skia/src/core/SkPictureRecord.h index d3e0c9f3a682..8d035b31cd75 100644 --- a/third_party/skia/src/core/SkPictureRecord.h +++ b/third_party/skia/src/core/SkPictureRecord.h @@ -47,6 +47,12 @@ class SkPictureRecord : public SkCanvasVirtualEnforcer { return fTextBlobs; } +#if SK_SUPPORT_GPU + const SkTArray>& getSlugs() const { + return fSlugs; + } +#endif + const SkTArray>& getVertices() const { return fVertices; } @@ -144,6 +150,7 @@ class SkPictureRecord : public SkCanvasVirtualEnforcer { void addSampling(const SkSamplingOptions&); void addText(const void* text, size_t byteLength); void addTextBlob(const SkTextBlob* blob); + void addSlug(const GrSlug* slug); void addVertices(const SkVertices*); int find(const SkBitmap& bitmap); @@ -172,7 +179,9 @@ class SkPictureRecord : public SkCanvasVirtualEnforcer { void onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, const SkPaint& paint) override; - +#if SK_SUPPORT_GPU + void onDrawSlug(const GrSlug* slug) override; +#endif void onDrawPatch(const SkPoint cubics[12], const SkColor colors[4], const SkPoint texCoords[4], SkBlendMode, const SkPaint& paint) override; @@ -246,6 +255,9 @@ class SkPictureRecord : public SkCanvasVirtualEnforcer { SkTArray> fDrawables; SkTArray> fTextBlobs; SkTArray> fVertices; +#if SK_SUPPORT_GPU + SkTArray> fSlugs; +#endif uint32_t fRecordFlags; int fInitialSaveCount; diff --git a/third_party/skia/src/core/SkPipelineData.cpp b/third_party/skia/src/core/SkPipelineData.cpp new file mode 100644 index 000000000000..dad8978f30cd --- /dev/null +++ b/third_party/skia/src/core/SkPipelineData.cpp @@ -0,0 +1,101 @@ +/* + * 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/core/SkOpts.h" +#include "src/core/SkPipelineData.h" + +void SkPipelineDataGatherer::reset() { +#ifdef SK_GRAPHITE_ENABLED + fTextureDataBlock.reset(); + fBlendInfo = BlendInfo(); + fUniformManager.reset(); +#endif +} + +#ifdef SK_DEBUG +void SkPipelineDataGatherer::checkReset() { +#ifdef SK_GRAPHITE_ENABLED + SkASSERT(fTextureDataBlock.empty()); + SkASSERT(fBlendInfo == BlendInfo()); + SkDEBUGCODE(fUniformManager.checkReset()); +#endif +} +#endif // SK_DEBUG + +//////////////////////////////////////////////////////////////////////////////////////////////////// +SkUniformDataBlock* SkUniformDataBlock::Make(const SkUniformDataBlock& other, + SkArenaAlloc* arena) { + static constexpr size_t kUniformAlignment = alignof(void*); + char* mem = static_cast(arena->makeBytesAlignedTo(other.size(), kUniformAlignment)); + memcpy(mem, other.data(), other.size()); + + return arena->make([&](void* ptr) { + return new (ptr) SkUniformDataBlock(SkSpan(mem, other.size())); + }); +} + +uint32_t SkUniformDataBlock::hash() const { + return SkOpts::hash_fn(fData.data(), fData.size(), 0); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// +#ifdef SK_GRAPHITE_ENABLED +static constexpr int kSkFilterModeCount = static_cast(SkFilterMode::kLast) + 1; + +std::unique_ptr SkTextureDataBlock::Make(const SkTextureDataBlock& other, + SkArenaAlloc* /* arena */) { + return std::make_unique(other); +} + +bool SkTextureDataBlock::TextureInfo::operator==(const TextureInfo& other) const { + return fProxy == other.fProxy && + fSamplingOptions == other.fSamplingOptions && + fTileModes[0] == other.fTileModes[0] && + fTileModes[1] == other.fTileModes[1]; +} + +uint32_t SkTextureDataBlock::TextureInfo::samplerKey() const { + static_assert(kSkTileModeCount <= 4 && kSkFilterModeCount <= 2); + return (static_cast(fTileModes[0]) << 0) | + (static_cast(fTileModes[1]) << 2) | + (static_cast(fSamplingOptions.filter) << 4) | + (static_cast(fSamplingOptions.mipmap) << 5); +} + +bool SkTextureDataBlock::operator==(const SkTextureDataBlock& other) const { + if (fTextureData.size() != other.fTextureData.size()) { + return false; + } + + for (size_t i = 0; i < fTextureData.size(); ++i) { + if (fTextureData[i] != other.fTextureData[i]) { + return false; + } + } + + return true; +} + +uint32_t SkTextureDataBlock::hash() const { + uint32_t hash = 0; + + for (auto& d : fTextureData) { + uint32_t samplerKey = d.samplerKey(); + hash = SkOpts::hash_fn(&samplerKey, sizeof(samplerKey), hash); + + // Because the lifetime of the TextureDataCache is for just one Recording and the + // TextureDataBlocks hold refs on their proxies, we can just use the proxy's pointer + // for the hash here. This is a bit sloppy though in that it would be nice if proxies backed + // by the same scratch texture hashed the same (it is tough to see how we could do that + // at DrawPass creation time though). + hash = SkOpts::hash_fn(d.fProxy.get(), sizeof(skgpu::graphite::TextureProxy*), hash); + } + + return hash; +} + +#endif diff --git a/third_party/skia/src/core/SkPipelineData.h b/third_party/skia/src/core/SkPipelineData.h new file mode 100644 index 000000000000..a24328d50c5d --- /dev/null +++ b/third_party/skia/src/core/SkPipelineData.h @@ -0,0 +1,211 @@ +/* + * 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 SkPipelineData_DEFINED +#define SkPipelineData_DEFINED + +#include +#include "include/core/SkPoint.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkSamplingOptions.h" +#include "include/core/SkSpan.h" +#include "include/core/SkTileMode.h" +#include "include/private/SkColorData.h" + +#ifdef SK_GRAPHITE_ENABLED +#include "src/gpu/Blend.h" +#include "src/gpu/graphite/TextureProxy.h" +#include "src/gpu/graphite/UniformManager.h" +#include "src/gpu/graphite/geom/VectorTypes.h" +#endif + +class SkArenaAlloc; +class SkUniform; + +class SkUniformDataBlock { +public: + static SkUniformDataBlock* Make(const SkUniformDataBlock&, SkArenaAlloc*); + + SkUniformDataBlock(SkSpan data) : fData(data) {} + SkUniformDataBlock() = default; + + const char* data() const { return fData.data(); } + size_t size() const { return fData.size(); } + + uint32_t hash() const; + + bool operator==(const SkUniformDataBlock& that) const { + return fData.size() == that.fData.size() && + !memcmp(fData.data(), that.fData.data(), fData.size()); + } + bool operator!=(const SkUniformDataBlock& that) const { return !(*this == that); } + +private: + SkSpan fData; +}; + +// We would like to store just a "const SkUniformDataBlock*" in the UniformDataCache but, until +// the TextureDataCache is switched over to storing its data in an arena, whatever is held in +// the cache must interoperate w/ std::unique_ptr (i.e., have a get() function). +// TODO: remove this class +class SkUniformDataBlockPassThrough { +public: + SkUniformDataBlockPassThrough() = default; + SkUniformDataBlockPassThrough(SkUniformDataBlock* udb) : fUDB(udb) {} + + SkUniformDataBlock* get() const { return fUDB; } + +private: + SkUniformDataBlock* fUDB = nullptr; +}; + +#ifdef SK_GRAPHITE_ENABLED +class SkTextureDataBlock { +public: + struct TextureInfo { + bool operator==(const TextureInfo&) const; + bool operator!=(const TextureInfo& other) const { return !(*this == other); } + + uint32_t samplerKey() const; + + sk_sp fProxy; + SkSamplingOptions fSamplingOptions; + SkTileMode fTileModes[2]; + }; + + static std::unique_ptr Make(const SkTextureDataBlock&, SkArenaAlloc*); + SkTextureDataBlock() = default; + + bool empty() const { return fTextureData.empty(); } + int numTextures() const { return SkTo(fTextureData.size()); } + const TextureInfo& texture(int index) const { return fTextureData[index]; } + + bool operator==(const SkTextureDataBlock&) const; + bool operator!=(const SkTextureDataBlock& other) const { return !(*this == other); } + uint32_t hash() const; + + void add(const SkSamplingOptions& sampling, + const SkTileMode tileModes[2], + sk_sp proxy) { + fTextureData.push_back({std::move(proxy), sampling, {tileModes[0], tileModes[1]}}); + } + + void reset() { + fTextureData.clear(); + } + +private: + std::vector fTextureData; +}; +#endif // SK_GRAPHITE_ENABLED + +// The PipelineDataGatherer is just used to collect information for a given PaintParams object. +// The UniformData is added to a cache and uniquified. Only that unique ID is passed around. +// The TextureData is also added to a cache and uniquified. Only that ID is passed around. +// The BlendInfo is ultimately stored in the SkShaderCodeDictionary next to its associated +// PaintParamsKey + +// TODO: The current plan for fixing uniform padding is for the SkPipelineDataGatherer to hold a +// persistent uniformManager. A stretch goal for this system would be for this combination +// to accumulate all the uniforms and then rearrange them to minimize padding. This would, +// obviously, vastly complicate uniform accumulation. +class SkPipelineDataGatherer { +public: +#ifdef SK_GRAPHITE_ENABLED + struct BlendInfo { + bool operator==(const BlendInfo& other) const { + return fEquation == other.fEquation && + fSrcBlend == other.fSrcBlend && + fDstBlend == other.fDstBlend && + fBlendConstant == other.fBlendConstant && + fWritesColor == other.fWritesColor; + } + + skgpu::BlendEquation fEquation = skgpu::BlendEquation::kAdd; + skgpu::BlendCoeff fSrcBlend = skgpu::BlendCoeff::kOne; + skgpu::BlendCoeff fDstBlend = skgpu::BlendCoeff::kZero; + SkPMColor4f fBlendConstant = SK_PMColor4fTRANSPARENT; + bool fWritesColor = true; + }; +#endif + +#ifdef SK_GRAPHITE_ENABLED + SkPipelineDataGatherer(skgpu::graphite::Layout layout) : fUniformManager(layout) {} +#endif + + void reset(); + // Check that the gatherer has been reset to its initial state prior to collecting new data. + SkDEBUGCODE(void checkReset();) + +#ifdef SK_GRAPHITE_ENABLED + void setBlendInfo(const SkPipelineDataGatherer::BlendInfo& blendInfo) { + fBlendInfo = blendInfo; + } + const BlendInfo& blendInfo() const { return fBlendInfo; } + + void add(const SkSamplingOptions& sampling, + const SkTileMode tileModes[2], + sk_sp proxy) { + fTextureDataBlock.add(sampling, tileModes, std::move(proxy)); + } + bool hasTextures() const { return !fTextureDataBlock.empty(); } + + const SkTextureDataBlock& textureDataBlock() { return fTextureDataBlock; } + + void write(const SkColor4f* colors, int numColors) { fUniformManager.write(colors, numColors); } + void write(const SkPMColor4f& premulColor) { fUniformManager.write(&premulColor, 1); } + void write(const SkRect& rect) { fUniformManager.write(rect); } + void write(SkPoint point) { fUniformManager.write(point); } + void write(const float* floats, int count) { fUniformManager.write(floats, count); } + void write(float f) { fUniformManager.write(&f, 1); } + void write(int i) { fUniformManager.write(i); } + void write(skgpu::graphite::float2 v) { fUniformManager.write(v); } + + bool hasUniforms() const { return fUniformManager.size(); } + + SkUniformDataBlock peekUniformData() const { return fUniformManager.peekData(); } + +private: +#ifdef SK_DEBUG + friend class UniformExpectationsValidator; + + void setExpectedUniforms(SkSpan expectedUniforms) { + fUniformManager.setExpectedUniforms(expectedUniforms); + } + void doneWithExpectedUniforms() { fUniformManager.doneWithExpectedUniforms(); } +#endif // SK_DEBUG + + SkTextureDataBlock fTextureDataBlock; + BlendInfo fBlendInfo; + skgpu::graphite::UniformManager fUniformManager; +#endif // SK_GRAPHITE_ENABLED +}; + +#if defined(SK_DEBUG) && defined(SK_GRAPHITE_ENABLED) +class UniformExpectationsValidator { +public: + UniformExpectationsValidator(SkPipelineDataGatherer *gatherer, + SkSpan expectedUniforms) + : fGatherer(gatherer) { + fGatherer->setExpectedUniforms(expectedUniforms); + } + + ~UniformExpectationsValidator() { + fGatherer->doneWithExpectedUniforms(); + } + +private: + SkPipelineDataGatherer *fGatherer; + + UniformExpectationsValidator(UniformExpectationsValidator &&) = delete; + UniformExpectationsValidator(const UniformExpectationsValidator &) = delete; + UniformExpectationsValidator &operator=(UniformExpectationsValidator &&) = delete; + UniformExpectationsValidator &operator=(const UniformExpectationsValidator &) = delete; +}; +#endif // SK_DEBUG && SK_GRAPHITE_ENABLED + +#endif // SkPipelineData_DEFINED diff --git a/third_party/skia/src/core/SkPixmap.cpp b/third_party/skia/src/core/SkPixmap.cpp index fb30856dc04c..108dac36b609 100644 --- a/third_party/skia/src/core/SkPixmap.cpp +++ b/third_party/skia/src/core/SkPixmap.cpp @@ -8,6 +8,7 @@ #include "include/core/SkPixmap.h" #include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkData.h" #include "include/core/SkSurface.h" #include "include/core/SkUnPreMultiply.h" @@ -61,6 +62,10 @@ void SkPixmap::setColorSpace(sk_sp cs) { fInfo = fInfo.makeColorSpace(std::move(cs)); } +SkColorSpace* SkPixmap::colorSpace() const { return fInfo.colorSpace(); } + +sk_sp SkPixmap::refColorSpace() const { return fInfo.refColorSpace(); } + bool SkPixmap::extractSubset(SkPixmap* result, const SkIRect& subset) const { SkIRect srcRect, r; srcRect.setWH(this->width(), this->height()); diff --git a/third_party/skia/src/core/SkRasterPipeline.cpp b/third_party/skia/src/core/SkRasterPipeline.cpp index 74c29eee96fd..7177d19d82af 100644 --- a/third_party/skia/src/core/SkRasterPipeline.cpp +++ b/third_party/skia/src/core/SkRasterPipeline.cpp @@ -8,9 +8,11 @@ #include "include/private/SkImageInfoPriv.h" #include "include/private/SkNx.h" #include "include/private/SkTemplates.h" +#include "include/third_party/skcms/skcms.h" #include "src/core/SkColorSpacePriv.h" #include "src/core/SkOpts.h" #include "src/core/SkRasterPipeline.h" + #include bool gForceHighPrecisionRasterPipeline; diff --git a/third_party/skia/src/core/SkRasterPipeline.h b/third_party/skia/src/core/SkRasterPipeline.h index c5bb1373ca8a..3fcf99b5266d 100644 --- a/third_party/skia/src/core/SkRasterPipeline.h +++ b/third_party/skia/src/core/SkRasterPipeline.h @@ -16,10 +16,11 @@ #include "include/core/SkTypes.h" #include "include/private/SkTArray.h" #include "src/core/SkArenaAlloc.h" + #include -#include // TODO: unused class SkData; +struct skcms_TransferFunction; /** * SkRasterPipeline provides a cheap way to chain together a pixel processing pipeline. @@ -31,7 +32,7 @@ class SkData; * at runtime, so we can scale this problem linearly rather than combinatorically. * * Each stage is represented by a function conforming to a common interface and by an - * arbitrary context pointer. The stage funciton arguments and calling convention are + * arbitrary context pointer. The stage function arguments and calling convention are * designed to maximize the amount of data we can pass along the pipeline cheaply, and * vary depending on CPU feature detection. */ @@ -126,6 +127,8 @@ struct SkRasterPipeline_GatherCtx { int stride; float width; float height; + + float weights[16]; // for bicubic and bicubic_clamp_8888 }; // State shared by save_xy, accumulate, and bilinear_* / bicubic_*. @@ -136,6 +139,8 @@ struct SkRasterPipeline_SamplerCtx { float fy[SkRasterPipeline_kMaxStride]; float scalex[SkRasterPipeline_kMaxStride]; float scaley[SkRasterPipeline_kMaxStride]; + + float weights[16]; // for bicubic_[np][13][xy] }; struct SkRasterPipeline_TileCtx { diff --git a/third_party/skia/src/core/SkRasterPipelineBlitter.cpp b/third_party/skia/src/core/SkRasterPipelineBlitter.cpp index 6f4e496aa229..4668573db748 100644 --- a/third_party/skia/src/core/SkRasterPipelineBlitter.cpp +++ b/third_party/skia/src/core/SkRasterPipelineBlitter.cpp @@ -21,6 +21,9 @@ #include "src/core/SkUtils.h" #include "src/shaders/SkShaderBase.h" +#define SK_BLITTER_TRACE_IS_RASTER_PIPELINE +#include "src/utils/SkBlitterTrace.h" + class SkRasterPipelineBlitter final : public SkBlitter { public: // This is our common entrypoint for creating the blitter once we've sorted out shaders. @@ -47,6 +50,7 @@ class SkRasterPipelineBlitter final : public SkBlitter { void blitV (int x, int y, int height, SkAlpha alpha) override; private: + void blitRectWithTrace(int x, int y, int w, int h, bool trace); void append_load_dst (SkRasterPipeline*) const; void append_store (SkRasterPipeline*) const; @@ -339,7 +343,15 @@ void SkRasterPipelineBlitter::blitH(int x, int y, int w) { } void SkRasterPipelineBlitter::blitRect(int x, int y, int w, int h) { + this->blitRectWithTrace(x, y, w, h, true); +} + +void SkRasterPipelineBlitter::blitRectWithTrace(int x, int y, int w, int h, bool trace) { if (fMemset2D) { + SK_BLITTER_TRACE_STEP(blitRectByMemset, + trace, + /*scanlines=*/h, + /*pixels=*/w * h); fMemset2D(&fDst, x,y, w,h, fMemsetColor); return; } @@ -373,6 +385,7 @@ void SkRasterPipelineBlitter::blitRect(int x, int y, int w, int h) { fBlitRect = p.compile(); } + SK_BLITTER_TRACE_STEP(blitRect, trace, /*scanlines=*/h, /*pixels=*/w * h); fBlitRect(x,y,w,h); } @@ -397,10 +410,12 @@ void SkRasterPipelineBlitter::blitAntiH(int x, int y, const SkAlpha aa[], const fBlitAntiH = p.compile(); } + SK_BLITTER_TRACE_STEP(blitAntiH, true, /*scanlines=*/1ul, /*pixels=*/0ul); for (int16_t run = *runs; run > 0; run = *runs) { + SK_BLITTER_TRACE_STEP_ACCUMULATE(blitAntiH, /*pixels=*/run); switch (*aa) { - case 0x00: break; - case 0xff: this->blitH(x,y,run); break; + case 0x00: break; + case 0xff:this->blitRectWithTrace(x,y,run, 1, false); break; default: fCurrentCoverage = *aa * (1/255.0f); fBlitAntiH(x,y,run,1); @@ -554,5 +569,9 @@ void SkRasterPipelineBlitter::blitMask(const SkMask& mask, const SkIRect& clip) } SkASSERT(blitter); + SK_BLITTER_TRACE_STEP(blitMask, + true, + /*scanlines=*/clip.height(), + /*pixels=*/clip.width() * clip.height()); (*blitter)(clip.left(),clip.top(), clip.width(),clip.height()); } diff --git a/third_party/skia/src/core/SkReadBuffer.cpp b/third_party/skia/src/core/SkReadBuffer.cpp index 88f7a925d74d..786c16584a64 100644 --- a/third_party/skia/src/core/SkReadBuffer.cpp +++ b/third_party/skia/src/core/SkReadBuffer.cpp @@ -393,7 +393,7 @@ sk_sp SkReadBuffer::readTypeface() { } } -SkFlattenable* SkReadBuffer::readFlattenable(SkFlattenable::Type ft) { +SkFlattenable* SkReadBuffer::readRawFlattenable() { SkFlattenable::Factory factory = nullptr; if (fFactoryCount > 0) { @@ -401,6 +401,10 @@ SkFlattenable* SkReadBuffer::readFlattenable(SkFlattenable::Type ft) { if (0 == index || !this->isValid()) { return nullptr; // writer failed to give us the flattenable } + if (index < 0) { + this->validate(false); + return nullptr; + } index -= 1; // we stored the index-base-1 if ((unsigned)index >= (unsigned)fFactoryCount) { this->validate(false); @@ -446,10 +450,6 @@ SkFlattenable* SkReadBuffer::readFlattenable(SkFlattenable::Type ft) { this->validate(false); return nullptr; } - if (obj && obj->getFlattenableType() != ft) { - this->validate(false); - return nullptr; - } } else { // we must skip the remaining data this->skip(sizeRecorded); @@ -460,6 +460,16 @@ SkFlattenable* SkReadBuffer::readFlattenable(SkFlattenable::Type ft) { return obj.release(); } +SkFlattenable* SkReadBuffer::readFlattenable(SkFlattenable::Type ft) { + SkFlattenable* obj = this->readRawFlattenable(); + if (obj && obj->getFlattenableType() != ft) { + this->validate(false); + obj->unref(); + return nullptr; + } + return obj; +} + /////////////////////////////////////////////////////////////////////////////////////////////////// int32_t SkReadBuffer::checkInt(int32_t min, int32_t max) { diff --git a/third_party/skia/src/core/SkReadBuffer.h b/third_party/skia/src/core/SkReadBuffer.h index 08338ca018c4..700fad49e419 100644 --- a/third_party/skia/src/core/SkReadBuffer.h +++ b/third_party/skia/src/core/SkReadBuffer.h @@ -112,6 +112,7 @@ class SkReadBuffer { return SkPaintPriv::Unflatten(*this); } + SkFlattenable* readRawFlattenable(); SkFlattenable* readFlattenable(SkFlattenable::Type); template sk_sp readFlattenable() { return sk_sp((T*)this->readFlattenable(T::GetFlattenableType())); diff --git a/third_party/skia/src/core/SkRecordDraw.cpp b/third_party/skia/src/core/SkRecordDraw.cpp index 2e6e8970852e..a9227d3e0afa 100644 --- a/third_party/skia/src/core/SkRecordDraw.cpp +++ b/third_party/skia/src/core/SkRecordDraw.cpp @@ -7,6 +7,7 @@ #include "include/core/SkBBHFactory.h" #include "include/core/SkImage.h" +#include "include/private/SkTDArray.h" #include "src/core/SkCanvasPriv.h" #include "src/core/SkColorFilterBase.h" #include "src/core/SkImageFilter_Base.h" @@ -138,6 +139,12 @@ DRAW(DrawRRect, drawRRect(r.rrect, r.paint)); DRAW(DrawRect, drawRect(r.rect, r.paint)); DRAW(DrawRegion, drawRegion(r.region, r.paint)); DRAW(DrawTextBlob, drawTextBlob(r.blob.get(), r.x, r.y, r.paint)); +#if SK_SUPPORT_GPU +DRAW(DrawSlug, drawSlug(r.slug.get())); +#else +// Turn draw into a nop. +template <> void Draw::draw(const DrawSlug&) {} +#endif 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)); @@ -469,6 +476,17 @@ class FillBounds : SkNoncopyable { return this->adjustAndMap(dst, &op.paint); } +#if SK_SUPPORT_GPU + Bounds bounds(const DrawSlug& op) const { + SkRect dst = op.slug->sourceBounds(); + return this->adjustAndMap(dst, &op.slug->paint()); + } +#else + Bounds bounds(const DrawSlug& op) const { + return SkRect::MakeEmpty(); + } +#endif + Bounds bounds(const DrawDrawable& op) const { return this->adjustAndMap(op.worstCaseBounds, nullptr); } diff --git a/third_party/skia/src/core/SkRecordedDrawable.cpp b/third_party/skia/src/core/SkRecordedDrawable.cpp index bb5732e711da..20cd08514fde 100644 --- a/third_party/skia/src/core/SkRecordedDrawable.cpp +++ b/third_party/skia/src/core/SkRecordedDrawable.cpp @@ -13,6 +13,10 @@ #include "src/core/SkRecordDraw.h" #include "src/core/SkRecordedDrawable.h" +#if SK_SUPPORT_GPU +#include "include/private/chromium/GrSlug.h" +#endif + size_t SkRecordedDrawable::onApproximateBytesUsed() { size_t drawablesSize = 0; if (fDrawableList) { diff --git a/third_party/skia/src/core/SkRecorder.cpp b/third_party/skia/src/core/SkRecorder.cpp index 48322da6e983..ede5c215b3fb 100644 --- a/third_party/skia/src/core/SkRecorder.cpp +++ b/third_party/skia/src/core/SkRecorder.cpp @@ -11,6 +11,7 @@ #include "include/core/SkPicture.h" #include "include/core/SkSurface.h" #include "include/private/SkTo.h" +#include "include/private/chromium/GrSlug.h" #include "src/core/SkBigPicture.h" #include "src/core/SkCanvasPriv.h" #include "src/core/SkGlyphRun.h" @@ -234,6 +235,12 @@ void SkRecorder::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, this->append(paint, sk_ref_sp(blob), x, y); } +#if SK_SUPPORT_GPU +void SkRecorder::onDrawSlug(const GrSlug* slug) { + this->append(sk_ref_sp(slug)); +} +#endif + void SkRecorder::onDrawGlyphRunList(const SkGlyphRunList& glyphRunList, const SkPaint& paint) { sk_sp blob = sk_ref_sp(glyphRunList.blob()); if (glyphRunList.blob() == nullptr) { diff --git a/third_party/skia/src/core/SkRecorder.h b/third_party/skia/src/core/SkRecorder.h index 1bd8996e2f30..1a96d1d518b2 100644 --- a/third_party/skia/src/core/SkRecorder.h +++ b/third_party/skia/src/core/SkRecorder.h @@ -73,6 +73,9 @@ class SkRecorder final : public SkCanvasVirtualEnforcer { SkScalar x, SkScalar y, const SkPaint& paint) override; +#if SK_SUPPORT_GPU + void onDrawSlug(const GrSlug* slug) override; +#endif void onDrawGlyphRunList(const SkGlyphRunList& glyphRunList, const SkPaint& paint) override; void onDrawPatch(const SkPoint cubics[12], const SkColor colors[4], const SkPoint texCoords[4], SkBlendMode, diff --git a/third_party/skia/src/core/SkRecords.h b/third_party/skia/src/core/SkRecords.h index 8e3879b21056..0ce2f7a54641 100644 --- a/third_party/skia/src/core/SkRecords.h +++ b/third_party/skia/src/core/SkRecords.h @@ -26,6 +26,10 @@ #include "include/core/SkVertices.h" #include "src/core/SkDrawShadowInfo.h" +#if SK_SUPPORT_GPU +#include "include/private/chromium/GrSlug.h" +#endif + namespace SkRecords { // A list of all the types of canvas calls we can record. @@ -74,6 +78,7 @@ namespace SkRecords { M(DrawRect) \ M(DrawRegion) \ M(DrawTextBlob) \ + M(DrawSlug) \ M(DrawAtlas) \ M(DrawVertices) \ M(DrawShadowRec) \ @@ -293,6 +298,12 @@ RECORD(DrawTextBlob, kDraw_Tag|kHasText_Tag|kHasPaint_Tag, sk_sp blob; SkScalar x; SkScalar y); +#if SK_SUPPORT_GPU +RECORD(DrawSlug, kDraw_Tag|kHasText_Tag, + sk_sp slug); +#else +RECORD(DrawSlug, 0) +#endif RECORD(DrawPatch, kDraw_Tag|kHasPaint_Tag, SkPaint paint; PODArray cubics; diff --git a/third_party/skia/src/core/SkRuntimeEffect.cpp b/third_party/skia/src/core/SkRuntimeEffect.cpp index 3e5543cad1eb..6e3a05e5264a 100644 --- a/third_party/skia/src/core/SkRuntimeEffect.cpp +++ b/third_party/skia/src/core/SkRuntimeEffect.cpp @@ -37,22 +37,44 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrColorInfo.h" -#include "src/gpu/GrFPArgs.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrMatrixEffect.h" -#include "src/gpu/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/GrFPArgs.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrMatrixEffect.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" #include "src/image/SkImage_Gpu.h" #endif #include +#if defined(SK_BUILD_FOR_DEBUGGER) + #define SK_LENIENT_SKSL_DESERIALIZATION 1 +#else + #define SK_LENIENT_SKSL_DESERIALIZATION 0 +#endif + using ChildType = SkRuntimeEffect::ChildType; #ifdef SK_ENABLE_SKSL +static bool flattenable_is_valid_as_child(const SkFlattenable* f) { + if (!f) { return true; } + switch (f->getFlattenableType()) { + case SkFlattenable::kSkShader_Type: + case SkFlattenable::kSkColorFilter_Type: + case SkFlattenable::kSkBlender_Type: + return true; + default: + return false; + } +} + +SkRuntimeEffect::ChildPtr::ChildPtr(sk_sp f) : fChild(std::move(f)) { + SkASSERT(flattenable_is_valid_as_child(fChild.get())); +} + static sk_sp make_skvm_debug_trace(SkRuntimeEffect* effect, const SkIPoint& coord) { auto debugTrace = sk_make_sp(); @@ -114,27 +136,41 @@ static bool verify_child_effects(const std::vector& refl return true; } +/** + * If `effect` is specified, then the number and type of child objects are validated against the + * children() of `effect`. If it's nullptr, this is skipped, allowing deserialization of children, + * even when the effect could not be constructed (ie, due to malformed SkSL). + */ static bool read_child_effects(SkReadBuffer& buffer, const SkRuntimeEffect* effect, SkTArray* children) { size_t childCount = buffer.read32(); - if (!buffer.validate(childCount == effect->children().size())) { + if (effect && !buffer.validate(childCount == effect->children().size())) { return false; } children->reset(); children->reserve_back(childCount); - for (const auto& child : effect->children()) { - if (child.type == ChildType::kShader) { - children->emplace_back(buffer.readShader()); - } else if (child.type == ChildType::kColorFilter) { - children->emplace_back(buffer.readColorFilter()); - } else if (child.type == ChildType::kBlender) { - children->emplace_back(buffer.readBlender()); - } else { + for (size_t i = 0; i < childCount; i++) { + sk_sp obj(buffer.readRawFlattenable()); + if (!flattenable_is_valid_as_child(obj.get())) { + buffer.validate(false); return false; } + children->push_back(std::move(obj)); + } + + // If we are validating against an effect, make sure any (non-null) children are the right type + if (effect) { + auto childInfo = effect->children(); + SkASSERT(childInfo.size() == children->size()); + for (size_t i = 0; i < childCount; i++) { + std::optional ct = (*children)[i].type(); + if (ct.has_value() && (*ct) != childInfo[i].type) { + buffer.validate(false); + } + } } return buffer.isValid(); @@ -214,7 +250,7 @@ sk_sp SkRuntimeEffect::MakeFromDSL(std::unique_ptrerror(result.errorText.c_str(), SkSL::PositionInfo(nullptr, -1)); + errors->error(result.errorText.c_str(), SkSL::Position()); } return std::move(result.effect); } @@ -1084,15 +1120,24 @@ sk_sp SkRuntimeColorFilter::CreateProc(SkReadBuffer& buffer) { sk_sp uniforms = buffer.readByteArrayAsData(); auto effect = SkMakeCachedRuntimeEffect(SkRuntimeEffect::MakeForColorFilter, std::move(sksl)); +#if !SK_LENIENT_SKSL_DESERIALIZATION if (!buffer.validate(effect != nullptr)) { return nullptr; } +#endif SkSTArray<4, SkRuntimeEffect::ChildPtr> children; if (!read_child_effects(buffer, effect.get(), &children)) { return nullptr; } +#if SK_LENIENT_SKSL_DESERIALIZATION + if (!effect) { + SkDebugf("Serialized SkSL failed to compile. Ignoring/dropping SkSL color filter.\n"); + return nullptr; + } +#endif + return effect->makeColorFilter(std::move(uniforms), SkMakeSpan(children)); } @@ -1219,15 +1264,33 @@ sk_sp SkRTShader::CreateProc(SkReadBuffer& buffer) { } auto effect = SkMakeCachedRuntimeEffect(SkRuntimeEffect::MakeForShader, std::move(sksl)); +#if !SK_LENIENT_SKSL_DESERIALIZATION if (!buffer.validate(effect != nullptr)) { return nullptr; } +#endif SkSTArray<4, SkRuntimeEffect::ChildPtr> children; if (!read_child_effects(buffer, effect.get(), &children)) { return nullptr; } +#if SK_LENIENT_SKSL_DESERIALIZATION + if (!effect) { + // If any children were SkShaders, return the first one. This is a reasonable fallback. + for (int i = 0; i < children.count(); i++) { + if (children[i].shader()) { + SkDebugf("Serialized SkSL failed to compile. Replacing shader with child %d.\n", i); + return sk_ref_sp(children[i].shader()); + } + } + + // We don't know what to do, so just return nullptr (but *don't* poison the buffer). + SkDebugf("Serialized SkSL failed to compile. Ignoring/dropping SkSL shader.\n"); + return nullptr; + } +#endif + return effect->makeShader(std::move(uniforms), SkMakeSpan(children), localMPtr); } @@ -1304,15 +1367,24 @@ sk_sp SkRuntimeBlender::CreateProc(SkReadBuffer& buffer) { sk_sp uniforms = buffer.readByteArrayAsData(); auto effect = SkMakeCachedRuntimeEffect(SkRuntimeEffect::MakeForBlender, std::move(sksl)); +#if !SK_LENIENT_SKSL_DESERIALIZATION if (!buffer.validate(effect != nullptr)) { return nullptr; } +#endif SkSTArray<4, SkRuntimeEffect::ChildPtr> children; if (!read_child_effects(buffer, effect.get(), &children)) { return nullptr; } +#if SK_LENIENT_SKSL_DESERIALIZATION + if (!effect) { + SkDebugf("Serialized SkSL failed to compile. Ignoring/dropping SkSL blender.\n"); + return nullptr; + } +#endif + return effect->makeBlender(std::move(uniforms), SkMakeSpan(children)); } diff --git a/third_party/skia/src/core/SkSamplingPriv.h b/third_party/skia/src/core/SkSamplingPriv.h index e42d2df6dc9c..ae8385cc01f4 100644 --- a/third_party/skia/src/core/SkSamplingPriv.h +++ b/third_party/skia/src/core/SkSamplingPriv.h @@ -43,9 +43,6 @@ class SkSamplingPriv { return !sampling.useCubic || sampling.cubic.B == 0; } - static SkSamplingOptions Read(SkReadBuffer&); - static void Write(SkWriteBuffer&, const SkSamplingOptions&); - static SkSamplingOptions FromFQ(SkLegacyFQ, SkMediumAs = kNearest_SkMediumAs); }; diff --git a/third_party/skia/src/core/SkScalerCache.cpp b/third_party/skia/src/core/SkScalerCache.cpp index f239c590f90f..030ee2300828 100644 --- a/third_party/skia/src/core/SkScalerCache.cpp +++ b/third_party/skia/src/core/SkScalerCache.cpp @@ -41,7 +41,7 @@ std::tuple SkScalerCache::glyph(SkPackedGlyphID packedGlyphID) } std::tuple SkScalerCache::digest(SkPackedGlyphID packedGlyphID) { - SkGlyphDigest* digest = fDigestForPackedGlyphID.find(packedGlyphID.value()); + SkGlyphDigest* digest = fDigestForPackedGlyphID.find(packedGlyphID); if (digest != nullptr) { return {*digest, 0}; @@ -54,17 +54,17 @@ std::tuple SkScalerCache::digest(SkPackedGlyphID packedGl SkGlyphDigest SkScalerCache::addGlyph(SkGlyph* glyph) { size_t index = fGlyphForIndex.size(); SkGlyphDigest digest = SkGlyphDigest{index, *glyph}; - fDigestForPackedGlyphID.set(digest); + fDigestForPackedGlyphID.set(glyph->getPackedID(), digest); fGlyphForIndex.push_back(glyph); return digest; } -std::tuple SkScalerCache::preparePath(SkGlyph* glyph) { +size_t SkScalerCache::preparePath(SkGlyph* glyph) { size_t delta = 0; if (glyph->setPath(&fAlloc, fScalerContext.get())) { delta = glyph->path()->approximateBytesUsed(); } - return {glyph->path(), delta}; + return delta; } std::tuple SkScalerCache::mergePath( @@ -80,13 +80,13 @@ std::tuple SkScalerCache::mergePath( return {glyph->path(), pathDelta}; } -std::tuple SkScalerCache::prepareDrawable(SkGlyph* glyph) { +size_t SkScalerCache::prepareDrawable(SkGlyph* glyph) { size_t delta = 0; if (glyph->setDrawable(&fAlloc, fScalerContext.get())) { delta = glyph->drawable()->approximateBytesUsed(); SkASSERT(delta > 0); } - return {glyph->drawable(), delta}; + return delta; } std::tuple SkScalerCache::mergeDrawable(SkGlyph* glyph, @@ -116,7 +116,7 @@ std::tuple, size_t> SkScalerCache::internalPrepare( auto [glyph, size] = this->glyph(SkPackedGlyphID{glyphID}); delta += size; if (pathDetail == kMetricsAndPath) { - auto [_, pathSize] = this->preparePath(glyph); + size_t pathSize = this->preparePath(glyph); delta += pathSize; } *cursor++ = glyph; @@ -137,7 +137,7 @@ std::tuple SkScalerCache::mergeGlyphAndImage( SkPackedGlyphID toID, const SkGlyph& from) { SkAutoMutexExclusive lock{fMu}; // TODO(herb): remove finding the glyph when setting the metrics and image are separated - SkGlyphDigest* digest = fDigestForPackedGlyphID.find(toID.value()); + SkGlyphDigest* digest = fDigestForPackedGlyphID.find(toID); if (digest != nullptr) { SkGlyph* to = fGlyphForIndex[digest->index()]; size_t delta = 0; @@ -187,6 +187,21 @@ std::tuple, size_t> SkScalerCache::prepareImages( return {{results, glyphIDs.size()}, delta}; } +std::tuple, size_t> SkScalerCache::prepareDrawables( + SkSpan glyphIDs, const SkGlyph* results[]) { + const SkGlyph** cursor = results; + SkAutoMutexExclusive lock{fMu}; + size_t delta = 0; + for (auto glyphID : glyphIDs) { + auto[glyph, glyphSize] = this->glyph(SkPackedGlyphID{glyphID}); + size_t drawableSize = this->prepareDrawable(glyph); + delta += glyphSize + drawableSize; + *cursor++ = glyph; + } + + return {{results, glyphIDs.size()}, delta}; +} + template size_t SkScalerCache::commonFilterLoop(SkDrawableGlyphBuffer* accepted, Fn&& fn) { size_t total = 0; @@ -259,11 +274,11 @@ size_t SkScalerCache::prepareForPathDrawing( size_t delta = this->commonFilterLoop(accepted, [&](size_t i, SkGlyphDigest digest, SkPoint pos) SK_REQUIRES(fMu) { SkGlyph* glyph = fGlyphForIndex[digest.index()]; - auto [path, pathSize] = this->preparePath(glyph); + auto pathSize = this->preparePath(glyph); pathDelta += pathSize; - if (path != nullptr) { + if (glyph->path() != nullptr) { // Save off the path to draw later. - accepted->accept(path, i); + accepted->accept(glyph, i); } else { // Glyph does not have a path. rejected->reject(i, digest.maxDimension()); @@ -280,11 +295,11 @@ size_t SkScalerCache::prepareForDrawableDrawing( size_t delta = this->commonFilterLoop(accepted, [&](size_t i, SkGlyphDigest digest, SkPoint pos) SK_REQUIRES(fMu) { SkGlyph* glyph = fGlyphForIndex[digest.index()]; - auto [drawable, drawableSize] = this->prepareDrawable(glyph); + size_t drawableSize = this->prepareDrawable(glyph); drawableDelta += drawableSize; - if (drawable != nullptr) { + if (glyph->drawable() != nullptr) { // Save off the drawable to draw later. - accepted->accept(drawable, i); + accepted->accept(glyph, i); } else { // Glyph does not have a drawable. rejected->reject(i, glyph->maxDimension()); diff --git a/third_party/skia/src/core/SkScalerCache.h b/third_party/skia/src/core/SkScalerCache.h index 0bfd5c3cb1e1..ba538c81fc8e 100644 --- a/third_party/skia/src/core/SkScalerCache.h +++ b/third_party/skia/src/core/SkScalerCache.h @@ -65,6 +65,9 @@ class SkScalerCache { std::tuple, size_t> prepareImages( SkSpan glyphIDs, const SkGlyph* results[]) SK_EXCLUDES(fMu); + std::tuple, size_t> prepareDrawables( + SkSpan glyphIDs, const SkGlyph* results[]) SK_EXCLUDES(fMu); + size_t prepareForDrawingMasksCPU(SkDrawableGlyphBuffer* accepted) SK_EXCLUDES(fMu); // SkStrikeForGPU APIs @@ -104,10 +107,10 @@ class SkScalerCache { std::tuple prepareImage(SkGlyph* glyph) SK_REQUIRES(fMu); // If the path has never been set, then use the scaler context to add the glyph. - std::tuple preparePath(SkGlyph*) SK_REQUIRES(fMu); + size_t preparePath(SkGlyph*) SK_REQUIRES(fMu); // If the drawable has never been set, then use the scaler context to add the glyph. - std::tuple prepareDrawable(SkGlyph*) SK_REQUIRES(fMu); + size_t prepareDrawable(SkGlyph*) SK_REQUIRES(fMu); enum PathDetail { kMetricsOnly, @@ -131,7 +134,8 @@ class SkScalerCache { // SkGlyphDigest's fIndex field stores the index. This pointer provides an unchanging // reference to the SkGlyph as long as the strike is alive, and fGlyphForIndex // provides a dense index for glyphs. - SkTHashTable fDigestForPackedGlyphID SK_GUARDED_BY(fMu); + SkTHashMap + fDigestForPackedGlyphID SK_GUARDED_BY(fMu); std::vector fGlyphForIndex SK_GUARDED_BY(fMu); // so we don't grow our arrays a lot diff --git a/third_party/skia/src/core/SkScalerContext.cpp b/third_party/skia/src/core/SkScalerContext.cpp index b13e96ebd868..0879e4b75d37 100644 --- a/third_party/skia/src/core/SkScalerContext.cpp +++ b/third_party/skia/src/core/SkScalerContext.cpp @@ -37,9 +37,10 @@ /////////////////////////////////////////////////////////////////////////////// -#ifdef SK_DEBUG - #define DUMP_RECx -#endif +namespace { +static inline const constexpr bool kSkShowTextBlitCoverage = false; +static inline const constexpr bool kSkScalerContextDumpRec = false; +} SkScalerContextRec SkScalerContext::PreprocessRec(const SkTypeface& typeface, const SkScalerContextEffects& effects, @@ -84,12 +85,12 @@ SkScalerContext::SkScalerContext(sk_sp typeface, const SkScalerConte , fPreBlend(fMaskFilter ? SkMaskGamma::PreBlend() : SkScalerContext::GetMaskPreBlend(fRec)) { -#ifdef DUMP_REC - SkDebugf("SkScalerContext checksum %x count %d length %d\n", - desc->getChecksum(), desc->getCount(), desc->getLength()); - SkDebugf("%s", fRec.dump().c_str()); - SkDebugf(" effects %x\n", desc->findEntry(kEffects_SkDescriptorTag, nullptr)); -#endif + if constexpr (kSkScalerContextDumpRec) { + SkDebugf("SkScalerContext checksum %x count %d length %d\n", + desc->getChecksum(), desc->getCount(), desc->getLength()); + SkDebugf("%s", fRec.dump().c_str()); + SkDebugf(" effects %p\n", desc->findEntry(kEffects_SkDescriptorTag, nullptr)); + } } SkScalerContext::~SkScalerContext() {} @@ -275,8 +276,6 @@ SkGlyph SkScalerContext::internalMakeGlyph(SkPackedGlyphID packedID, SkMask::For return glyph; } -#define SK_SHOW_TEXT_BLIT_COVERAGE 0 - static void applyLUTToA8Mask(const SkMask& mask, const uint8_t* lut) { uint8_t* SK_RESTRICT dst = (uint8_t*)mask.fImage; unsigned rowBytes = mask.fRowBytes; @@ -385,9 +384,11 @@ static void pack4xHToMask(const SkPixmap& src, const SkMask& dst, g = fir[1]; b = fir[2]; } -#if SK_SHOW_TEXT_BLIT_COVERAGE - r = std::max(r, 10); g = std::max(g, 10); b = std::max(b, 10); -#endif + if constexpr (kSkShowTextBlitCoverage) { + r = std::max(r, 10u); + g = std::max(g, 10u); + b = std::max(b, 10u); + } if (toA8) { U8CPU a = (r + g + b) / 3; if (maskPreBlend.isApplicable()) { @@ -875,17 +876,17 @@ bool SkScalerContextRec::computeMatrices(PreMatrixScale preMatrixScale, SkVector // At this point, given GA, create s. switch (preMatrixScale) { - case kFull_PreMatrixScale: + case PreMatrixScale::kFull: s->fX = SkScalarAbs(GA.get(SkMatrix::kMScaleX)); s->fY = SkScalarAbs(GA.get(SkMatrix::kMScaleY)); break; - case kVertical_PreMatrixScale: { + case PreMatrixScale::kVertical: { SkScalar yScale = SkScalarAbs(GA.get(SkMatrix::kMScaleY)); s->fX = yScale; s->fY = yScale; break; } - case kVerticalInteger_PreMatrixScale: { + case PreMatrixScale::kVerticalInteger: { SkScalar realYScale = SkScalarAbs(GA.get(SkMatrix::kMScaleY)); SkScalar intYScale = SkScalarRoundToScalar(realYScale); if (intYScale == 0) { @@ -899,18 +900,18 @@ bool SkScalerContextRec::computeMatrices(PreMatrixScale preMatrixScale, SkVector // The 'remaining' matrix sA is the total matrix A without the scale. if (!skewedOrFlipped && ( - (kFull_PreMatrixScale == preMatrixScale) || - (kVertical_PreMatrixScale == preMatrixScale && A.getScaleX() == A.getScaleY()))) + (PreMatrixScale::kFull == preMatrixScale) || + (PreMatrixScale::kVertical == preMatrixScale && A.getScaleX() == A.getScaleY()))) { - // If GA == A and kFull_PreMatrixScale, sA is identity. - // If GA == A and kVertical_PreMatrixScale and A.scaleX == A.scaleY, sA is identity. + // If GA == A and kFull, sA is identity. + // If GA == A and kVertical and A.scaleX == A.scaleY, sA is identity. sA->reset(); - } else if (!skewedOrFlipped && kVertical_PreMatrixScale == preMatrixScale) { - // If GA == A and kVertical_PreMatrixScale, sA.scaleY is SK_Scalar1. + } else if (!skewedOrFlipped && PreMatrixScale::kVertical == preMatrixScale) { + // If GA == A and kVertical, sA.scaleY is SK_Scalar1. sA->reset(); sA->setScaleX(A.getScaleX() / s->fY); } else { - // TODO: like kVertical_PreMatrixScale, kVerticalInteger_PreMatrixScale with int scales. + // TODO: like kVertical, kVerticalInteger with int scales. *sA = A; sA->preScale(SkScalarInvert(s->fX), SkScalarInvert(s->fY)); } @@ -938,18 +939,18 @@ SkAxisAlignment SkScalerContextRec::computeAxisAlignmentForHText() const { // In other words, making the text bigger, stretching it along the // horizontal axis, or fake italicizing it does not move the baseline. if (!SkToBool(fFlags & SkScalerContext::kBaselineSnap_Flag)) { - return kNone_SkAxisAlignment; + return SkAxisAlignment::kNone; } if (0 == fPost2x2[1][0]) { // The x axis is mapped onto the x axis. - return kX_SkAxisAlignment; + return SkAxisAlignment::kX; } if (0 == fPost2x2[0][0]) { // The x axis is mapped onto the y axis. - return kY_SkAxisAlignment; + return SkAxisAlignment::kY; } - return kNone_SkAxisAlignment; + return SkAxisAlignment::kNone; } void SkScalerContextRec::setLuminanceColor(SkColor c) { diff --git a/third_party/skia/src/core/SkScalerContext.h b/third_party/skia/src/core/SkScalerContext.h index bd9494e0d5b7..15134a3e75f0 100644 --- a/third_party/skia/src/core/SkScalerContext.h +++ b/third_party/skia/src/core/SkScalerContext.h @@ -31,17 +31,18 @@ class SkPathEffect; class SkScalerContext; class SkScalerContext_DW; -enum SkScalerContextFlags : uint32_t { +enum class SkScalerContextFlags : uint32_t { kNone = 0, kFakeGamma = 1 << 0, kBoostContrast = 1 << 1, kFakeGammaAndBoostContrast = kFakeGamma | kBoostContrast, }; +SK_MAKE_BITFIELD_OPS(SkScalerContextFlags) -enum SkAxisAlignment : uint32_t { - kNone_SkAxisAlignment, - kX_SkAxisAlignment, - kY_SkAxisAlignment +enum class SkAxisAlignment : uint32_t { + kNone, + kX, + kY, }; /* @@ -150,10 +151,10 @@ struct SkScalerContextRec { void getSingleMatrix(SkMatrix*) const; /** The kind of scale which will be applied by the underlying port (pre-matrix). */ - enum PreMatrixScale { - kFull_PreMatrixScale, // The underlying port can apply both x and y scale. - kVertical_PreMatrixScale, // The underlying port can only apply a y scale. - kVerticalInteger_PreMatrixScale // The underlying port can only apply an integer y scale. + enum class PreMatrixScale { + kFull, // The underlying port can apply both x and y scale. + kVertical, // The underlying port can only apply a y scale. + kVerticalInteger // The underlying port can only apply an integer y scale. }; /** * Compute useful matrices for use with sizing in underlying libraries. @@ -356,7 +357,7 @@ class SkScalerContext { /** * Return the axis (if any) that the baseline for horizontal text should land on. - * As an example, the identity matrix will return kX_SkAxisAlignment + * As an example, the identity matrix will return SkAxisAlignment::kX. */ SkAxisAlignment computeAxisAlignmentForHText() const; diff --git a/third_party/skia/src/core/SkShaderCodeDictionary.cpp b/third_party/skia/src/core/SkShaderCodeDictionary.cpp index 63cc2c633f60..441980094e35 100644 --- a/third_party/skia/src/core/SkShaderCodeDictionary.cpp +++ b/third_party/skia/src/core/SkShaderCodeDictionary.cpp @@ -18,6 +18,13 @@ void add_indent(std::string* result, int indent) { } // anonymous namespace + +std::string SkShaderSnippet::getMangledUniformName(int uniformIndex, int mangleId) const { + std::string result; + result = fUniforms[uniformIndex].name() + std::string("_") + std::to_string(mangleId); + return result; +} + // TODO: SkShaderInfo::toSkSL needs to work outside of both just graphite and metal. To do // so we'll need to switch over to using SkSL's uniform capabilities. #if SK_SUPPORT_GPU && defined(SK_GRAPHITE_ENABLED) && defined(SK_METAL) @@ -25,11 +32,13 @@ void add_indent(std::string* result, int indent) { #include // TODO: switch this over to using SkSL's uniform system -namespace skgpu::mtl { +namespace skgpu::graphite { std::string GetMtlUniforms(int bufferID, const char* name, - const std::vector&); -} // namespace skgpu::mtl + const std::vector&); +std::string GetMtlTexturesAndSamplers(const std::vector&, + int* binding); +} // namespace skgpu::graphite // Emit the glue code needed to invoke a single static helper isolated w/in its own scope. // The structure of this will be: @@ -45,9 +54,10 @@ std::string GetMtlUniforms(int bufferID, // } // Where the %d is filled in with 'entryIndex'. std::string SkShaderInfo::emitGlueCodeForEntry(int* entryIndex, + const std::string& priorStageOutputName, std::string* result, int indent) const { - const SkShaderInfo::SnippetEntry& entry = fEntries[*entryIndex]; + const SkPaintParamsKey::BlockReader& reader = fBlockReaders[*entryIndex]; int curEntryIndex = *entryIndex; std::string scopeOutputVar(std::string("outColor") + std::to_string(curEntryIndex)); @@ -60,14 +70,15 @@ std::string SkShaderInfo::emitGlueCodeForEntry(int* entryIndex, // Although the children appear after the parent in the shader info they are emitted // before the parent std::vector childNames; - for (int j = 0; j < entry.fNumChildren; ++j) { + for (int j = 0; j < reader.numChildren(); ++j) { *entryIndex += 1; - std::string childOutputVar = this->emitGlueCodeForEntry(entryIndex, result, indent+1); + std::string childOutputVar = this->emitGlueCodeForEntry(entryIndex, priorStageOutputName, + result, indent+1); childNames.push_back(childOutputVar); } - *result += (entry.fGlueCodeGenerator)(scopeOutputVar, curEntryIndex, - entry, childNames, indent+1); + *result += (reader.entry()->fGlueCodeGenerator)(scopeOutputVar, curEntryIndex, reader, + priorStageOutputName, childNames, indent+1); add_indent(result, indent); *result += "}\n"; @@ -85,25 +96,32 @@ std::string SkShaderInfo::emitGlueCodeForEntry(int* entryIndex, // in the 'fStaticSkSL' field. std::string SkShaderInfo::toSkSL() const { // The uniforms are mangled by having their index in 'fEntries' as a suffix (i.e., "_%d") - std::string result = skgpu::mtl::GetMtlUniforms(2, "FS", fEntries); + std::string result = skgpu::graphite::GetMtlUniforms(2, "FS", fBlockReaders); + + int binding = 0; + result += skgpu::graphite::GetMtlTexturesAndSamplers(fBlockReaders, &binding); std::set emittedStaticSnippets; - for (auto c : fEntries) { - if (emittedStaticSnippets.find(c.fStaticFunctionName) == emittedStaticSnippets.end()) { - result += c.fStaticSkSL; - emittedStaticSnippets.insert(c.fStaticFunctionName); + for (const auto& reader : fBlockReaders) { + const SkShaderSnippet* e = reader.entry(); + if (emittedStaticSnippets.find(e->fStaticFunctionName) == emittedStaticSnippets.end()) { + result += e->fStaticSkSL; + emittedStaticSnippets.insert(e->fStaticFunctionName); } } result += "layout(location = 0, index = 0) out half4 sk_FragColor;\n"; result += "void main() {\n"; - // TODO: for some effects (e.g., SW blending) we will need to feed the output variable - // name from the prior step into the current step's glue code (and deal with the - // initial color issue). - std::string lastOutputVar; - for (int entryIndex = 0; entryIndex < (int) fEntries.size(); ++entryIndex) { - lastOutputVar = this->emitGlueCodeForEntry(&entryIndex, &result, 1); + std::string lastOutputVar = "initialColor"; + + // TODO: what is the correct initial color to feed in? + add_indent(&result, 1); + SkSL::String::appendf(&result, "half4 %s = half4(0.0, 0.0, 0.0, 0.0);", + lastOutputVar.c_str()); + + for (int entryIndex = 0; entryIndex < (int) fBlockReaders.size(); ++entryIndex) { + lastOutputVar = this->emitGlueCodeForEntry(&entryIndex, lastOutputVar, &result, 1); } SkSL::String::appendf(&result, " sk_FragColor = %s;\n", lastOutputVar.c_str()); @@ -114,8 +132,20 @@ std::string SkShaderInfo::toSkSL() const { #endif SkShaderCodeDictionary::Entry* SkShaderCodeDictionary::makeEntry( - std::unique_ptr key) { - return fArena.make([&](void *ptr) { return new(ptr) Entry(std::move(key)); }); + const SkPaintParamsKey& key +#ifdef SK_GRAPHITE_ENABLED + , const SkPipelineDataGatherer::BlendInfo& blendInfo +#endif + ) { + uint8_t* newKeyData = fArena.makeArray(key.sizeInBytes()); + memcpy(newKeyData, key.data(), key.sizeInBytes()); + + SkSpan newKeyAsSpan = SkMakeSpan(newKeyData, key.sizeInBytes()); +#ifdef SK_GRAPHITE_ENABLED + return fArena.make([&](void *ptr) { return new(ptr) Entry(newKeyAsSpan, blendInfo); }); +#else + return fArena.make([&](void *ptr) { return new(ptr) Entry(newKeyAsSpan); }); +#endif } size_t SkShaderCodeDictionary::Hash::operator()(const SkPaintParamsKey* key) const { @@ -123,18 +153,26 @@ size_t SkShaderCodeDictionary::Hash::operator()(const SkPaintParamsKey* key) con } const SkShaderCodeDictionary::Entry* SkShaderCodeDictionary::findOrCreate( - std::unique_ptr key) { + const SkPaintParamsKey& key +#ifdef SK_GRAPHITE_ENABLED + , const SkPipelineDataGatherer::BlendInfo& blendInfo +#endif + ) { SkAutoSpinlock lock{fSpinLock}; - auto iter = fHash.find(key.get()); + auto iter = fHash.find(&key); if (iter != fHash.end()) { SkASSERT(fEntryVector[iter->second->uniqueID().asUInt()] == iter->second); return iter->second; } - Entry* newEntry = this->makeEntry(std::move(key)); +#ifdef SK_GRAPHITE_ENABLED + Entry* newEntry = this->makeEntry(key, blendInfo); +#else + Entry* newEntry = this->makeEntry(key); +#endif newEntry->setUniqueID(fEntryVector.size()); - fHash.insert(std::make_pair(newEntry->paintParamsKey(), newEntry)); + fHash.insert(std::make_pair(&newEntry->paintParamsKey(), newEntry)); fEntryVector.push_back(newEntry); return newEntry; @@ -158,30 +196,49 @@ SkSpan SkShaderCodeDictionary::getUniforms(SkBuiltInCodeSnippet return fBuiltInCodeSnippets[(int) id].fUniforms; } -const SkShaderInfo::SnippetEntry* SkShaderCodeDictionary::getEntry(SkBuiltInCodeSnippetID id) const { - return &fBuiltInCodeSnippets[(int) id]; +SkSpan SkShaderCodeDictionary::dataPayloadExpectations( + int codeSnippetID) const { + // All callers of this entry point should already have ensured that 'codeSnippetID' is valid + return this->getEntry(codeSnippetID)->fDataPayloadExpectations; +} + +const SkShaderSnippet* SkShaderCodeDictionary::getEntry(int codeSnippetID) const { + SkASSERT(codeSnippetID >= 0 && codeSnippetID <= this->maxCodeSnippetID()); + + if (codeSnippetID < kBuiltInCodeSnippetIDCount) { + return &fBuiltInCodeSnippets[codeSnippetID]; + } + + int userDefinedCodeSnippetID = codeSnippetID - kBuiltInCodeSnippetIDCount; + if (userDefinedCodeSnippetID < SkTo(fUserDefinedCodeSnippets.size())) { + return fUserDefinedCodeSnippets[userDefinedCodeSnippetID].get(); + } + + return nullptr; } void SkShaderCodeDictionary::getShaderInfo(SkUniquePaintParamsID uniqueID, SkShaderInfo* info) { auto entry = this->lookup(uniqueID); - entry->paintParamsKey()->toShaderInfo(this, info); -} + entry->paintParamsKey().toShaderInfo(this, info); -int SkShaderCodeDictionary::addUserDefinedSnippet() { - fUserDefinedCodeSnippets.push_back({}); - return kBuiltInCodeSnippetIDCount + fUserDefinedCodeSnippets.size() - 1; +#ifdef SK_GRAPHITE_ENABLED + info->setBlendInfo(entry->blendInfo()); +#endif } //-------------------------------------------------------------------------------------------------- namespace { +using DataPayloadField = SkPaintParamsKey::DataPayloadField; + // The default glue code just calls a helper function with the signature: // half4 fStaticFunctionName(/* all uniforms as parameters */); // and stores the result in a variable named "resultName". std::string GenerateDefaultGlueCode(const std::string& resultName, int entryIndex, - const SkShaderInfo::SnippetEntry& entry, + const SkPaintParamsKey::BlockReader& reader, + const std::string& priorStageOutputName, const std::vector& childNames, int indent) { SkASSERT(childNames.empty()); @@ -189,12 +246,13 @@ std::string GenerateDefaultGlueCode(const std::string& resultName, std::string result; add_indent(&result, indent); - SkSL::String::appendf(&result, "%s = %s(", resultName.c_str(), entry.fStaticFunctionName); - for (size_t i = 0; i < entry.fUniforms.size(); ++i) { + SkSL::String::appendf(&result, + "%s = %s(", resultName.c_str(), + reader.entry()->fStaticFunctionName); + for (size_t i = 0; i < reader.entry()->fUniforms.size(); ++i) { // The uniform names are mangled w/ the entry's index as a suffix - result += entry.fUniforms[i].name() + std::string("_") + std::to_string(entryIndex); - - if (i+1 < entry.fUniforms.size()) { + result += reader.entry()->getMangledUniformName(i, entryIndex); + if (i+1 < reader.entry()->fUniforms.size()) { result += ", "; } } @@ -204,6 +262,11 @@ std::string GenerateDefaultGlueCode(const std::string& resultName, } //-------------------------------------------------------------------------------------------------- +static constexpr int kNumLinearGrad4Fields = 1; +static constexpr DataPayloadField kLinearGrad4Fields[kNumLinearGrad4Fields] = { + { "tilemode", SkPaintParamsKey::DataPayloadType::kByte, 1 } +}; + static constexpr int kFourStopGradient = 4; // TODO: For the sprint we unify all the gradient uniforms into a standard set of 6: @@ -262,23 +325,73 @@ static const char* kSolidShaderSkSL = "}\n"; //-------------------------------------------------------------------------------------------------- -static constexpr int kNumImageShaderUniforms = 0; +static constexpr int kNumImageShaderUniforms = 1; +static constexpr SkUniform kImageShaderUniforms[kNumImageShaderUniforms] = { + { "subset", SkSLType::kFloat4 }, +}; + +static constexpr int kNumImageShaderTexturesAndSamplers = 1; +static constexpr SkTextureAndSampler kISTexturesAndSamplers[kNumImageShaderTexturesAndSamplers] = { + { "sampler" }, +}; static const char* kImageShaderName = "image_shader"; static const char* kImageShaderSkSL = - "half4 image_shader() {\n" - " float c = fract(abs(sk_FragCoord.x/10.0));\n" - " return half4(c, c, c, 1.0);\n" + "half4 image_shader(float4 subset) {\n" + " return half4(1, 0, 0, 1);\n" "}\n"; +static constexpr int kNumImageShaderFields = 2; +static constexpr DataPayloadField kImageShaderFields[kNumImageShaderFields] = { + { "tilemodeX", SkPaintParamsKey::DataPayloadType::kByte, 1 }, + { "tilemodeY", SkPaintParamsKey::DataPayloadType::kByte, 1 } +}; + +// This is _not_ what we want to do. +// Ideally the "image_shader" code snippet could just take texture and +// sampler references. That is going to take more time to figure out though so, +// for the sake of expediency, we're generating custom code. +std::string GenerateImageShaderGlueCode(const std::string& resultName, + int entryIndex, + const SkPaintParamsKey::BlockReader& reader, + const std::string& priorStageOutputName, + const std::vector& childNames, + int indent) { + SkASSERT(childNames.empty()); + + std::string samplerName = std::string("sampler_") + std::to_string(entryIndex) + "_0"; + + std::string result; + add_indent(&result, indent); + result += "float2 coords = float2(sk_FragCoord.x/128.0, sk_FragCoord.y/128.0);\n"; + add_indent(&result, indent); + result += "coords = clamp(coords, float2(0.0, 0.0), float2(1.0, 1.0));\n"; + + add_indent(&result, indent); + SkSL::String::appendf(&result, + "%s = sample(%s, coords);\n", + resultName.c_str(), + samplerName.c_str()); + + + return result; +} + //-------------------------------------------------------------------------------------------------- -static constexpr int kNumBlendShaderUniforms = 0; +static constexpr int kNumBlendShaderUniforms = 4; +static constexpr SkUniform kBlendShaderUniforms[kNumBlendShaderUniforms] = { + { "blendMode", SkSLType::kInt }, + { "padding1", SkSLType::kInt }, // TODO: add automatic uniform padding + { "padding2", SkSLType::kInt }, + { "padding3", SkSLType::kInt }, +}; + static constexpr int kNumBlendShaderChildren = 2; // Note: we're counting on the compiler to inline this code and trim it down to just the used -// branch(es). -static const char* kBlendShaderName = "blend_shader"; -static const char* kBlendShaderSkSL = +// branch(es) in the blend-mode case. In the blend-shader case it should remain un-inlined. +static const char* kBlendHelperName = "blend"; +static const char* kBlendHelperSkSL = "const int kClear = 0;\n" "const int kSrc = 1;\n" "const int kDst = 2;\n" @@ -346,18 +459,22 @@ static const char* kBlendShaderSkSL = std::string GenerateBlendShaderGlueCode(const std::string& resultName, int entryIndex, - const SkShaderInfo::SnippetEntry& entry, + const SkPaintParamsKey::BlockReader& reader, + const std::string& priorStageOutputName, const std::vector& childNames, int indent) { SkASSERT(childNames.size() == kNumBlendShaderChildren); + SkASSERT(reader.entry()->fUniforms.size() == 4); // actual blend uniform + 3 padding int + + std::string uniformName = reader.entry()->getMangledUniformName(0, entryIndex); std::string result; add_indent(&result, indent); - // TODO: actually feed in the blend mode either through a uniform or, somehow, from the - // SkPaintParamsKey - SkSL::String::appendf(&result, "%s = blend(kModulate, %s, %s);\n", + SkSL::String::appendf(&result, "%s = %s(%s, %s, %s);\n", resultName.c_str(), + reader.entry()->fStaticFunctionName, + uniformName.c_str(), childNames[1].c_str(), childNames[0].c_str()); @@ -365,80 +482,198 @@ std::string GenerateBlendShaderGlueCode(const std::string& resultName, } //-------------------------------------------------------------------------------------------------- -static constexpr int kNumErrorUniforms = 0; static const char* kErrorName = "error"; static const char* kErrorSkSL = "half4 error() {\n" " return half4(1.0, 0.0, 1.0, 1.0);\n" "}\n"; +//-------------------------------------------------------------------------------------------------- +static constexpr int kNumFixedFunctionBlenderFields = 1; +static constexpr DataPayloadField kFixedFunctionBlenderFields[kNumFixedFunctionBlenderFields] = { + { "blendmode", SkPaintParamsKey::DataPayloadType::kByte, 1 } +}; + +// This method generates the glue code for the case where the SkBlendMode-based blending is +// handled with fixed function blending. +std::string GenerateFixedFunctionBlenderGlueCode(const std::string& resultName, + int entryIndex, + const SkPaintParamsKey::BlockReader& reader, + const std::string& priorStageOutputName, + const std::vector& childNames, + int indent) { + SkASSERT(childNames.empty()); + SkASSERT(reader.entry()->fUniforms.empty()); + SkASSERT(reader.numDataPayloadFields() == 1); + + // The actual blending is set up via the fixed function pipeline so we don't actually + // need to access the blend mode in the glue code. + + std::string result; + add_indent(&result, indent); + result += "// Fixed-function blending\n"; + add_indent(&result, indent); + SkSL::String::appendf(&result, "%s = %s;", resultName.c_str(), priorStageOutputName.c_str()); + + return result; +} + +//-------------------------------------------------------------------------------------------------- +static constexpr int kNumShaderBasedBlenderFields = 1; +static constexpr DataPayloadField kShaderBasedBlenderFields[kNumShaderBasedBlenderFields] = { + { "blendmode", SkPaintParamsKey::DataPayloadType::kByte, 1 } +}; + +// This method generates the glue code for the case where the SkBlendMode-based blending must occur +// in the shader (i.e., fixed function blending isn't possible). +std::string GenerateShaderBasedBlenderGlueCode(const std::string& resultName, + int entryIndex, + const SkPaintParamsKey::BlockReader& reader, + const std::string& priorStageOutputName, + const std::vector& childNames, + int indent) { + SkASSERT(childNames.empty()); + SkASSERT(reader.entry()->fUniforms.empty()); + SkASSERT(reader.numDataPayloadFields() == 1); + + SkSpan blendMode = reader.bytes(0); + SkASSERT(blendMode.size() == 1); + SkASSERT(blendMode[0] <= static_cast(SkBlendMode::kLastMode)); + + std::string result; + + add_indent(&result, indent); + result += "// Shader-based blending\n"; + // TODO: emit code to perform dest read + add_indent(&result, indent); + result += "half4 dummyDst = half4(1.0, 1.0, 1.0, 1.0);\n"; + + add_indent(&result, indent); + SkSL::String::appendf(&result, "%s = %s(%d, %s, dummyDst);", + resultName.c_str(), + reader.entry()->fStaticFunctionName, + blendMode[0], + priorStageOutputName.c_str()); + + return result; +} + +//-------------------------------------------------------------------------------------------------- + } // anonymous namespace static constexpr int kNoChildren = 0; +int SkShaderCodeDictionary::addUserDefinedSnippet( + const char* name, + SkSpan dataPayloadExpectations) { + + std::unique_ptr entry(new SkShaderSnippet({}, // no uniforms + {}, // no samplers + name, + ";", + GenerateDefaultGlueCode, + kNoChildren, + dataPayloadExpectations)); + + // TODO: the memory for user-defined entries could go in the dictionary's arena but that + // would have to be a thread safe allocation since the arena also stores entries for + // 'fHash' and 'fEntryVector' + fUserDefinedCodeSnippets.push_back(std::move(entry)); + + return kBuiltInCodeSnippetIDCount + fUserDefinedCodeSnippets.size() - 1; +} + SkShaderCodeDictionary::SkShaderCodeDictionary() { // The 0th index is reserved as invalid fEntryVector.push_back(nullptr); fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kDepthStencilOnlyDraw] = { - { nullptr, kNumErrorUniforms }, + { }, // no uniforms + { }, // no samplers kErrorName, kErrorSkSL, GenerateDefaultGlueCode, - kNoChildren + kNoChildren, + {} }; fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kError] = { - { nullptr, kNumErrorUniforms }, + { }, // no uniforms + { }, // no samplers kErrorName, kErrorSkSL, GenerateDefaultGlueCode, - kNoChildren + kNoChildren, + {} }; fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kSolidColorShader] = { SkMakeSpan(kSolidShaderUniforms, kNumSolidShaderUniforms), + { }, // no samplers kSolidShaderName, kSolidShaderSkSL, GenerateDefaultGlueCode, - kNoChildren + kNoChildren, + {} }; fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kLinearGradientShader] = { SkMakeSpan(kGradientUniforms, kNumGradientUniforms), + { }, // no samplers kLinearGradient4Name, kLinearGradient4SkSL, GenerateDefaultGlueCode, - kNoChildren + kNoChildren, + { kLinearGrad4Fields, kNumLinearGrad4Fields } }; fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kRadialGradientShader] = { SkMakeSpan(kGradientUniforms, kNumGradientUniforms), + { }, // no samplers kLinearGradient4Name, kLinearGradient4SkSL, GenerateDefaultGlueCode, - kNoChildren + kNoChildren, + { kLinearGrad4Fields, kNumLinearGrad4Fields } }; fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kSweepGradientShader] = { SkMakeSpan(kGradientUniforms, kNumGradientUniforms), + { }, // no samplers kLinearGradient4Name, kLinearGradient4SkSL, GenerateDefaultGlueCode, - kNoChildren + kNoChildren, + { kLinearGrad4Fields, kNumLinearGrad4Fields } }; fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kConicalGradientShader] = { SkMakeSpan(kGradientUniforms, kNumGradientUniforms), + { }, // no samplers kLinearGradient4Name, kLinearGradient4SkSL, GenerateDefaultGlueCode, - kNoChildren + kNoChildren, + { kLinearGrad4Fields, kNumLinearGrad4Fields } }; - fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kImageShader] = { - { nullptr, kNumImageShaderUniforms }, + SkMakeSpan(kImageShaderUniforms, kNumImageShaderUniforms), + SkMakeSpan(kISTexturesAndSamplers, kNumImageShaderTexturesAndSamplers), kImageShaderName, kImageShaderSkSL, - GenerateDefaultGlueCode, - kNoChildren + GenerateImageShaderGlueCode, + kNoChildren, + { kImageShaderFields, kNumImageShaderFields } }; fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kBlendShader] = { - { nullptr, kNumBlendShaderUniforms }, - kBlendShaderName, kBlendShaderSkSL, + { kBlendShaderUniforms, kNumBlendShaderUniforms }, + { }, // no samplers + kBlendHelperName, kBlendHelperSkSL, GenerateBlendShaderGlueCode, - kNumBlendShaderChildren + kNumBlendShaderChildren, + {} }; - fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kSimpleBlendMode] = { - { nullptr, kNumErrorUniforms }, - kErrorName, kErrorSkSL, - GenerateDefaultGlueCode, - kNoChildren + fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kFixedFunctionBlender] = { + { }, // no uniforms + { }, // no samplers + "FF-blending", "", // fixed function blending doesn't have any static SkSL + GenerateFixedFunctionBlenderGlueCode, + kNoChildren, + { kFixedFunctionBlenderFields, kNumFixedFunctionBlenderFields } + }; + fBuiltInCodeSnippets[(int) SkBuiltInCodeSnippetID::kShaderBasedBlender] = { + { }, // no uniforms + { }, // no samplers + kBlendHelperName, kBlendHelperSkSL, + GenerateShaderBasedBlenderGlueCode, + kNoChildren, + { kShaderBasedBlenderFields, kNumShaderBasedBlenderFields } }; } diff --git a/third_party/skia/src/core/SkShaderCodeDictionary.h b/third_party/skia/src/core/SkShaderCodeDictionary.h index c16a5933e877..12f8dced4804 100644 --- a/third_party/skia/src/core/SkShaderCodeDictionary.h +++ b/third_party/skia/src/core/SkShaderCodeDictionary.h @@ -17,43 +17,88 @@ #include "include/private/SkUniquePaintParamsID.h" #include "src/core/SkArenaAlloc.h" #include "src/core/SkPaintParamsKey.h" +#include "src/core/SkPipelineData.h" #include "src/core/SkUniform.h" -class SkShaderInfo { +// TODO: How to represent the type (e.g., 2D) of texture being sampled? +class SkTextureAndSampler { public: - struct SnippetEntry; + constexpr SkTextureAndSampler(const char* name) : fName(name) {} + + const char* name() const { return fName; } + +private: + const char* fName; +}; + +struct SkShaderSnippet { using GenerateGlueCodeForEntry = std::string (*)(const std::string& resultName, int entryIndex, // for uniform name mangling - const SnippetEntry&, + const SkPaintParamsKey::BlockReader&, + const std::string& priorStageOutputName, const std::vector& childNames, int indent); - struct SnippetEntry { - SkSpan fUniforms; - const char* fStaticFunctionName; - const char* fStaticSkSL; - GenerateGlueCodeForEntry fGlueCodeGenerator; - int fNumChildren; - }; - - void add(const SnippetEntry& entry) { - fEntries.push_back(entry); + SkShaderSnippet() = default; + + SkShaderSnippet(SkSpan uniforms, + SkSpan texturesAndSamplers, + const char* functionName, + const char* code, + GenerateGlueCodeForEntry glueCodeGenerator, + int numChildren, + SkSpan dataPayloadExpectations) + : fUniforms(uniforms) + , fTexturesAndSamplers(texturesAndSamplers) + , fStaticFunctionName(functionName) + , fStaticSkSL(code) + , fGlueCodeGenerator(glueCodeGenerator) + , fNumChildren(numChildren) + , fDataPayloadExpectations(dataPayloadExpectations) { } - // TODO: writing to color should be a property of the SnippetEntries and accumulated as the - // entries are added. _Not_ set manually via 'setWritesColor'. - void setWritesColor() { fWritesColor = true; } - bool writesColor() const { return fWritesColor; } + std::string getMangledUniformName(int uniformIndex, int mangleId) const; + + SkSpan fUniforms; + SkSpan fTexturesAndSamplers; + const char* fStaticFunctionName = nullptr; + const char* fStaticSkSL = nullptr; + GenerateGlueCodeForEntry fGlueCodeGenerator = nullptr; + int fNumChildren = 0; + SkSpan fDataPayloadExpectations; +}; + +// This is just a simple collection object that gathers together all the information needed +// for program creation and its invocation. +class SkShaderInfo { +public: + void add(const SkPaintParamsKey::BlockReader& reader) { + fBlockReaders.push_back(reader); + } +#ifdef SK_GRAPHITE_ENABLED + void setBlendInfo(const SkPipelineDataGatherer::BlendInfo& blendInfo) { + fBlendInfo = blendInfo; + } + const SkPipelineDataGatherer::BlendInfo& blendInfo() const { return fBlendInfo; } +#endif #if SK_SUPPORT_GPU && defined(SK_GRAPHITE_ENABLED) && defined(SK_METAL) std::string toSkSL() const; #endif private: - std::string emitGlueCodeForEntry(int* entryIndex, std::string* result, int indent) const; + std::string emitGlueCodeForEntry(int* entryIndex, + const std::string& priorStageOutputName, + std::string* result, + int indent) const; + + std::vector fBlockReaders; - std::vector fEntries; - bool fWritesColor = false; +#ifdef SK_GRAPHITE_ENABLED + // The blendInfo doesn't actually contribute to the program's creation but, it contains the + // matching fixed-function settings that the program's caller needs to set up. + SkPipelineDataGatherer::BlendInfo fBlendInfo; +#endif }; class SkShaderCodeDictionary { @@ -66,12 +111,22 @@ class SkShaderCodeDictionary { SkASSERT(fUniqueID.isValid()); return fUniqueID; } - const SkPaintParamsKey* paintParamsKey() const { return fKey.get(); } + const SkPaintParamsKey& paintParamsKey() const { return fKey; } +#ifdef SK_GRAPHITE_ENABLED + const SkPipelineDataGatherer::BlendInfo& blendInfo() const { return fBlendInfo; } +#endif private: friend class SkShaderCodeDictionary; - Entry(std::unique_ptr key) : fKey(std::move(key)) {} +#ifdef SK_GRAPHITE_ENABLED + Entry(const SkPaintParamsKey& key, const SkPipelineDataGatherer::BlendInfo& blendInfo) + : fKey(key.asSpan()) + , fBlendInfo(blendInfo) { + } +#else + Entry(const SkPaintParamsKey& key) : fKey(key.asSpan()) {} +#endif void setUniqueID(uint32_t newID) { SkASSERT(!fUniqueID.isValid()); @@ -79,15 +134,34 @@ class SkShaderCodeDictionary { } SkUniquePaintParamsID fUniqueID; // fixed-size (uint32_t) unique ID assigned to a key - std::unique_ptr fKey; // variable-length paint key descriptor + SkPaintParamsKey fKey; // variable-length paint key descriptor + +#ifdef SK_GRAPHITE_ENABLED + // The BlendInfo isn't used in the hash (that is the key's job) but it does directly vary + // with the key. It could, theoretically, be recreated from the key but that would add + // extra complexity. + SkPipelineDataGatherer::BlendInfo fBlendInfo; +#endif }; - const Entry* findOrCreate(std::unique_ptr) SK_EXCLUDES(fSpinLock); +#ifdef SK_GRAPHITE_ENABLED + const Entry* findOrCreate(const SkPaintParamsKey&, + const SkPipelineDataGatherer::BlendInfo&) SK_EXCLUDES(fSpinLock); +#else + const Entry* findOrCreate(const SkPaintParamsKey&) SK_EXCLUDES(fSpinLock); +#endif const Entry* lookup(SkUniquePaintParamsID) const SK_EXCLUDES(fSpinLock); SkSpan getUniforms(SkBuiltInCodeSnippetID) const; - const SkShaderInfo::SnippetEntry* getEntry(SkBuiltInCodeSnippetID) const; + + SkSpan dataPayloadExpectations(int snippetID) const; + + // This method can return nullptr + const SkShaderSnippet* getEntry(int codeSnippetID) const; + const SkShaderSnippet* getEntry(SkBuiltInCodeSnippetID codeSnippetID) const { + return this->getEntry(SkTo(codeSnippetID)); + } void getShaderInfo(SkUniquePaintParamsID, SkShaderInfo*); @@ -98,24 +172,42 @@ class SkShaderCodeDictionary { // TODO: this is still experimental but, most likely, it will need to be made thread-safe // It returns the code snippet ID to use to identify the supplied user-defined code // TODO: add hooks for user to actually provide code. - int addUserDefinedSnippet(); + int addUserDefinedSnippet(const char* name, + SkSpan expectations); private: - Entry* makeEntry(std::unique_ptr); +#ifdef SK_GRAPHITE_ENABLED + Entry* makeEntry(const SkPaintParamsKey&, const SkPipelineDataGatherer::BlendInfo&); +#else + Entry* makeEntry(const SkPaintParamsKey&); +#endif struct Hash { size_t operator()(const SkPaintParamsKey*) const; }; - std::array fBuiltInCodeSnippets; - std::vector fUserDefinedCodeSnippets; + struct KeyEqual { + bool operator()(const SkPaintParamsKey* k1, const SkPaintParamsKey* k2) const { + return k1->operator==(*k2); + } + }; + + std::array fBuiltInCodeSnippets; + + // The value returned from 'getEntry' must be stable so, hold the user-defined code snippet + // entries as pointers. + std::vector> fUserDefinedCodeSnippets; // TODO: can we do something better given this should have write-seldom/read-often behavior? mutable SkSpinlock fSpinLock; - std::unordered_map fHash SK_GUARDED_BY(fSpinLock); + using PaintHashMap = std::unordered_map; + + PaintHashMap fHash SK_GUARDED_BY(fSpinLock); std::vector fEntryVector SK_GUARDED_BY(fSpinLock); + // This arena holds: + // the Entries held in 'fHash' and 'fEntryVector' - thus, guarded by 'fSpinLock' SkArenaAlloc fArena{256}; }; diff --git a/third_party/skia/src/core/SkSpecialImage.cpp b/third_party/skia/src/core/SkSpecialImage.cpp index 5515fbf7ca15..5e6ba7a21466 100644 --- a/third_party/skia/src/core/SkSpecialImage.cpp +++ b/third_party/skia/src/core/SkSpecialImage.cpp @@ -9,6 +9,7 @@ #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkMatrix.h" #include "include/core/SkTileMode.h" @@ -19,10 +20,10 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTextureProxy.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTextureProxy.h" #include "src/image/SkImage_Gpu.h" #include "src/shaders/SkImageShader.h" #endif diff --git a/third_party/skia/src/core/SkSpecialImage.h b/third_party/skia/src/core/SkSpecialImage.h index fa1bbf776a88..5fcbce24d764 100644 --- a/third_party/skia/src/core/SkSpecialImage.h +++ b/third_party/skia/src/core/SkSpecialImage.h @@ -15,8 +15,8 @@ #include "src/core/SkNextID.h" #if SK_SUPPORT_GPU -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" #endif class GrRecordingContext; diff --git a/third_party/skia/src/core/SkSpecialSurface.cpp b/third_party/skia/src/core/SkSpecialSurface.cpp index 3aed94ca27b0..154519719044 100644 --- a/third_party/skia/src/core/SkSpecialSurface.cpp +++ b/third_party/skia/src/core/SkSpecialSurface.cpp @@ -10,6 +10,7 @@ #include #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "src/core/SkSpecialImage.h" #include "src/core/SkSurfacePriv.h" @@ -119,7 +120,7 @@ sk_sp SkSpecialSurface::MakeRaster(const SkImageInfo& info, #if SK_SUPPORT_GPU /////////////////////////////////////////////////////////////////////////////// #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" class SkSpecialSurface_Gpu : public SkSpecialSurface_Base { public: diff --git a/third_party/skia/src/core/SkSpecialSurface.h b/third_party/skia/src/core/SkSpecialSurface.h index cb929b8e82d3..ccdf8b550915 100644 --- a/third_party/skia/src/core/SkSpecialSurface.h +++ b/third_party/skia/src/core/SkSpecialSurface.h @@ -13,7 +13,7 @@ #include "include/core/SkSurfaceProps.h" #if SK_SUPPORT_GPU -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #endif class GrBackendFormat; diff --git a/third_party/skia/src/core/SkStrikeCache.cpp b/third_party/skia/src/core/SkStrikeCache.cpp index af0928f80c86..dffcbc2a0f80 100644 --- a/third_party/skia/src/core/SkStrikeCache.cpp +++ b/third_party/skia/src/core/SkStrikeCache.cpp @@ -19,7 +19,7 @@ #include "src/core/SkScalerCache.h" #if SK_SUPPORT_GPU -#include "src/gpu/text/GrStrikeCache.h" +#include "src/gpu/ganesh/text/GrStrikeCache.h" #endif bool gSkUseThreadLocalStrikeCaches_IAcknowledgeThisIsIncrediblyExperimental = false; diff --git a/third_party/skia/src/core/SkStrikeCache.h b/third_party/skia/src/core/SkStrikeCache.h index 2de0d00d47cf..b2afd7a593c4 100644 --- a/third_party/skia/src/core/SkStrikeCache.h +++ b/third_party/skia/src/core/SkStrikeCache.h @@ -103,6 +103,13 @@ class SkStrike final : public SkRefCnt, public SkStrikeForGPU { return glyphs; } + SkSpan prepareDrawables(SkSpan glyphIDs, + const SkGlyph* results[]) { + auto [glyphs, increase] = fScalerCache.prepareDrawables(glyphIDs, results); + this->updateDelta(increase); + return glyphs; + } + void prepareForDrawingMasksCPU(SkDrawableGlyphBuffer* accepted) { size_t increase = fScalerCache.prepareForDrawingMasksCPU(accepted); this->updateDelta(increase); @@ -120,6 +127,10 @@ class SkStrike final : public SkRefCnt, public SkStrikeForGPU { return fStrikeSpec; } + void verifyPinnedStrike() const { + SkASSERT_RELEASE(fPinner == nullptr || !fPinner->canDelete()); + } + #if SK_SUPPORT_GPU sk_sp findOrCreateGrStrike(GrStrikeCache* grStrikeCache) const; #endif diff --git a/third_party/skia/src/core/SkStrikeSpec.cpp b/third_party/skia/src/core/SkStrikeSpec.cpp index 6147cf36811c..b854f19e879c 100644 --- a/third_party/skia/src/core/SkStrikeSpec.cpp +++ b/third_party/skia/src/core/SkStrikeSpec.cpp @@ -14,9 +14,9 @@ #include "src/core/SkTLazy.h" #if SK_SUPPORT_GPU -#include "src/gpu/text/GrSDFMaskFilter.h" -#include "src/gpu/text/GrSDFTControl.h" -#include "src/gpu/text/GrStrikeCache.h" +#include "src/gpu/ganesh/text/GrSDFMaskFilter.h" +#include "src/gpu/ganesh/text/GrSDFTControl.h" +#include "src/gpu/ganesh/text/GrStrikeCache.h" #endif SkStrikeSpec::SkStrikeSpec(const SkDescriptor& descriptor, sk_sp typeface) @@ -102,8 +102,8 @@ std::tuple SkStrikeSpec::MakeCanonicalized( canonicalizedPaint.reset(); } - return {SkStrikeSpec(*canonicalizedFont, canonicalizedPaint, - SkSurfaceProps(), kFakeGammaAndBoostContrast, SkMatrix::I()), + return {SkStrikeSpec(*canonicalizedFont, canonicalizedPaint, SkSurfaceProps(), + SkScalerContextFlags::kFakeGammaAndBoostContrast, SkMatrix::I()), strikeToSourceScale}; } @@ -113,8 +113,8 @@ SkStrikeSpec SkStrikeSpec::MakeWithNoDevice(const SkFont& font, const SkPaint* p setupPaint = *paint; } - return SkStrikeSpec( - font, setupPaint, SkSurfaceProps(), kFakeGammaAndBoostContrast, SkMatrix::I()); + return SkStrikeSpec(font, setupPaint, SkSurfaceProps(), + SkScalerContextFlags::kFakeGammaAndBoostContrast, SkMatrix::I()); } bool SkStrikeSpec::ShouldDrawAsPath( @@ -166,7 +166,7 @@ SkStrikeSpec SkStrikeSpec::MakePDFVector(const SkTypeface& typeface, int* size) return SkStrikeSpec(font, SkPaint(), SkSurfaceProps(0, kUnknown_SkPixelGeometry), - kFakeGammaAndBoostContrast, + SkScalerContextFlags::kFakeGammaAndBoostContrast, SkMatrix::I()); } @@ -261,6 +261,23 @@ void SkBulkGlyphMetricsAndPaths::findIntercepts( fStrike->findIntercepts(bounds, scale, xPos, const_cast(glyph), array, count); } +SkBulkGlyphMetricsAndDrawables::SkBulkGlyphMetricsAndDrawables(const SkStrikeSpec& spec) + : fStrike{spec.findOrCreateStrike()} { } + +SkBulkGlyphMetricsAndDrawables::SkBulkGlyphMetricsAndDrawables(sk_sp&& strike) + : fStrike{std::move(strike)} { } + +SkBulkGlyphMetricsAndDrawables::~SkBulkGlyphMetricsAndDrawables() = default; + +SkSpan SkBulkGlyphMetricsAndDrawables::glyphs(SkSpan glyphIDs) { + fGlyphs.reset(glyphIDs.size()); + return fStrike->prepareDrawables(glyphIDs, fGlyphs.get()); +} + +const SkGlyph* SkBulkGlyphMetricsAndDrawables::glyph(SkGlyphID glyphID) { + return this->glyphs(SkSpan{&glyphID, 1})[0]; +} + SkBulkGlyphMetricsAndImages::SkBulkGlyphMetricsAndImages(const SkStrikeSpec& spec) : fStrike{spec.findOrCreateStrike()} { } diff --git a/third_party/skia/src/core/SkStrikeSpec.h b/third_party/skia/src/core/SkStrikeSpec.h index 530eb1bb6d4e..18a04490b9a1 100644 --- a/third_party/skia/src/core/SkStrikeSpec.h +++ b/third_party/skia/src/core/SkStrikeSpec.h @@ -16,7 +16,7 @@ #include #if SK_SUPPORT_GPU -#include "src/gpu/text/GrSDFTControl.h" +#include "src/gpu/ganesh/text/GrSDFTControl.h" class GrStrikeCache; class GrTextStrike; #endif @@ -139,6 +139,20 @@ class SkBulkGlyphMetricsAndPaths { sk_sp fStrike; }; +class SkBulkGlyphMetricsAndDrawables { +public: + explicit SkBulkGlyphMetricsAndDrawables(const SkStrikeSpec& spec); + explicit SkBulkGlyphMetricsAndDrawables(sk_sp&& strike); + ~SkBulkGlyphMetricsAndDrawables(); + SkSpan glyphs(SkSpan glyphIDs); + const SkGlyph* glyph(SkGlyphID glyphID); + +private: + inline static constexpr int kTypicalGlyphCount = 20; + SkAutoSTArray fGlyphs; + sk_sp fStrike; +}; + class SkBulkGlyphMetricsAndImages { public: explicit SkBulkGlyphMetricsAndImages(const SkStrikeSpec& spec); diff --git a/third_party/skia/src/core/SkStringUtils.cpp b/third_party/skia/src/core/SkStringUtils.cpp index efb9d13096d3..94172b3494fd 100644 --- a/third_party/skia/src/core/SkStringUtils.cpp +++ b/third_party/skia/src/core/SkStringUtils.cpp @@ -16,7 +16,7 @@ void SkAppendScalar(SkString* str, SkScalar value, SkScalarAsStringType asType) break; case kDec_SkScalarAsStringType: { SkString tmp; - tmp.printf("%g", value); + tmp.printf("%.9g", value); if (tmp.contains('.')) { tmp.appendUnichar('f'); } diff --git a/third_party/skia/src/core/SkSurfaceCharacterization.cpp b/third_party/skia/src/core/SkSurfaceCharacterization.cpp index cd226f3ec39f..e84a1385c932 100644 --- a/third_party/skia/src/core/SkSurfaceCharacterization.cpp +++ b/third_party/skia/src/core/SkSurfaceCharacterization.cpp @@ -8,8 +8,8 @@ #include "include/core/SkSurfaceCharacterization.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" #ifdef SK_VULKAN #include "include/gpu/vk/GrVkTypes.h" diff --git a/third_party/skia/src/core/SkTLazy.h b/third_party/skia/src/core/SkTLazy.h index eadddc63f7e9..8a31d0658554 100644 --- a/third_party/skia/src/core/SkTLazy.h +++ b/third_party/skia/src/core/SkTLazy.h @@ -110,7 +110,7 @@ template class SkTLazy { }; /** - * A helper built on top of SkTLazy to do copy-on-first-write. The object is initialized + * A helper built on top of std::optional to do copy-on-first-write. The object is initialized * with a const pointer but provides a non-const pointer accessor. The first time the * accessor is called (if ever) the object is cloned. * @@ -147,29 +147,29 @@ class SkTCopyOnFirstWrite { SkTCopyOnFirstWrite& operator=(const SkTCopyOnFirstWrite& that) { fLazy = that.fLazy; - fObj = fLazy.isValid() ? fLazy.get() : that.fObj; + fObj = fLazy.has_value() ? &fLazy.value() : that.fObj; return *this; } SkTCopyOnFirstWrite& operator=(SkTCopyOnFirstWrite&& that) { fLazy = std::move(that.fLazy); - fObj = fLazy.isValid() ? fLazy.get() : that.fObj; + fObj = fLazy.has_value() ? &fLazy.value() : that.fObj; return *this; } // Should only be called once, and only if the default constructor was used. void init(const T& initial) { - SkASSERT(nullptr == fObj); - SkASSERT(!fLazy.isValid()); + SkASSERT(!fObj); + SkASSERT(!fLazy.has_value()); fObj = &initial; } // If not already initialized, in-place instantiates the writable object template void initIfNeeded(Args&&... args) { - if (nullptr == fObj) { - SkASSERT(!fLazy.isValid()); - fObj = fLazy.init(std::forward(args)...); + if (!fObj) { + SkASSERT(!fLazy.has_value()); + fObj = fLazy.emplace(std::forward(args)...); } } @@ -178,11 +178,11 @@ class SkTCopyOnFirstWrite { */ T* writable() { SkASSERT(fObj); - if (!fLazy.isValid()) { - fLazy.set(*fObj); - fObj = fLazy.get(); + if (!fLazy.has_value()) { + fLazy = *fObj; + fObj = &fLazy.value(); } - return const_cast(fObj); + return &fLazy.value(); } const T* get() const { return fObj; } @@ -198,8 +198,8 @@ class SkTCopyOnFirstWrite { const T& operator *() const { return *fObj; } private: - const T* fObj; - SkTLazy fLazy; + const T* fObj; + std::optional fLazy; }; #endif diff --git a/third_party/skia/src/core/SkTextBlob.cpp b/third_party/skia/src/core/SkTextBlob.cpp index f40d64571b6c..9df13a082dfc 100644 --- a/third_party/skia/src/core/SkTextBlob.cpp +++ b/third_party/skia/src/core/SkTextBlob.cpp @@ -23,7 +23,7 @@ #include #if SK_SUPPORT_GPU -#include "src/gpu/text/GrTextBlobRedrawCoordinator.h" +#include "src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h" #endif namespace { diff --git a/third_party/skia/src/core/SkTextBlobPriv.h b/third_party/skia/src/core/SkTextBlobPriv.h index db2a99406eee..8cee89bb7953 100644 --- a/third_party/skia/src/core/SkTextBlobPriv.h +++ b/third_party/skia/src/core/SkTextBlobPriv.h @@ -37,6 +37,8 @@ class SkTextBlobPriv { * invalid. */ static sk_sp MakeFromBuffer(SkReadBuffer&); + + static bool HasRSXForm(const SkTextBlob& blob); }; // @@ -247,4 +249,13 @@ class SkTextBlobRunIterator { SkDEBUGCODE(uint8_t* fStorageTop;) }; +inline bool SkTextBlobPriv::HasRSXForm(const SkTextBlob& blob) { + for (SkTextBlobRunIterator i{&blob}; !i.done(); i.next()) { + if (i.positioning() == SkTextBlobRunIterator::kRSXform_Positioning) { + return true; + } + } + return false; +} + #endif // SkTextBlobPriv_DEFINED diff --git a/third_party/skia/src/core/SkUniformData.cpp b/third_party/skia/src/core/SkUniformData.cpp deleted file mode 100644 index 83460e809080..000000000000 --- a/third_party/skia/src/core/SkUniformData.cpp +++ /dev/null @@ -1,80 +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/core/SkUniformData.h" - -#include "src/core/SkOpts.h" - -sk_sp SkUniformData::Make(SkSpan uniforms, size_t dataSize) { - // TODO: the offsets and data should just be allocated right after UniformData in an arena - uint32_t* offsets = new uint32_t[uniforms.size()]; - char* data = new char[dataSize]; - - return sk_sp(new SkUniformData(uniforms, offsets, data, dataSize)); -} - -bool SkUniformData::operator==(const SkUniformData& other) const { - if (this->uniforms().size() != other.uniforms().size() || - this->dataSize() != other.dataSize()) { - return false; - } - - return !memcmp(this->uniforms().data(), other.uniforms().data(), - this->uniforms().size_bytes()) && - !memcmp(this->data(), other.data(), this->dataSize()) && - !memcmp(this->offsets(), other.offsets(), this->count()*sizeof(uint32_t)); -} - -//////////////////////////////////////////////////////////////////////////////////////////////////// -void SkUniformBlock::add(sk_sp uniforms) { - fUniformData.push_back(std::move(uniforms)); -} - -size_t SkUniformBlock::totalSize() const { - size_t total = 0; - - // TODO: It seems like we need to worry about alignment between the separate sets of uniforms - for (auto& u : fUniformData) { - total += u->dataSize(); - } - - return total; -} - -int SkUniformBlock::count() const { - int total = 0; - - for (auto& u : fUniformData) { - total += u->count(); - } - - return total; -} - -bool SkUniformBlock::operator==(const SkUniformBlock& other) const { - if (fUniformData.size() != other.fUniformData.size()) { - return false; - } - - for (size_t i = 0; i < fUniformData.size(); ++i) { - if (*fUniformData[i] != *other.fUniformData[i]) { - return false; - } - } - - return true; -} - -size_t SkUniformBlock::hash() const { - int32_t hash = 0; - - for (auto& u : fUniformData) { - hash = SkOpts::hash_fn(u->data(), u->dataSize(), hash); - } - - return hash; -} diff --git a/third_party/skia/src/core/SkUniformData.h b/third_party/skia/src/core/SkUniformData.h deleted file mode 100644 index 152bf9ed7807..000000000000 --- a/third_party/skia/src/core/SkUniformData.h +++ /dev/null @@ -1,107 +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 SkUniformData_DEFINED -#define SkUniformData_DEFINED - -#include "include/core/SkRefCnt.h" -#include "include/core/SkSpan.h" -#include "src/core/SkUniform.h" -#include - -/* - * TODO: Here is the plan of record for SkUniformData - * allocate them (and their ancillary data (offsets & data)) in an arena - and rm SkRefCnt - * remove the offsets - these should be recomputable as/if needed - * allow a scratch buffer to be used to collect the uniform data when processing a PaintParams - * - this can be reset for each draw and be copied into a cache if it needs to be preserved - * if possible, clear out the cache (and delete the arena) once the DrawPass is created/the - * uniforms are copied into a buffer - * - this will mean we'll get w/in DrawPass reuse but not cross-DrawPass reuse - * - we could also explore getting w/in a Recording (i.e. cross-DrawPass) and w/in a - * Recorder reuse (i.e., cross-Recordings, but single-threaded) - * have the SkUniformData's data layout match what is required by the DrawList so we can just - * copy it into the buffer - */ - -class SkUniformData : public SkRefCnt { -public: - - // TODO: should we require a name (e.g., "gradient_uniforms") for each uniform block so - // we can better name the Metal FS uniform struct? - static sk_sp Make(SkSpan, size_t dataSize); - - ~SkUniformData() override { - // TODO: fOffsets and fData should just be allocated right after UniformData in an arena - delete [] fOffsets; - delete [] fData; - } - - int count() const { return static_cast(fUniforms.size()); } - SkSpan uniforms() const { return fUniforms; } - uint32_t* offsets() { return fOffsets; } - const uint32_t* offsets() const { return fOffsets; } - uint32_t offset(int index) { - SkASSERT(index >= 0 && static_cast(index) < fUniforms.size()); - return fOffsets[index]; - } - char* data() { return fData; } - const char* data() const { return fData; } - size_t dataSize() const { return fDataSize; } - - bool operator==(const SkUniformData&) const; - bool operator!=(const SkUniformData& other) const { return !(*this == other); } - -private: - SkUniformData(SkSpan uniforms, - uint32_t* offsets, - char* data, - size_t dataSize) - : fUniforms(uniforms) - , fOffsets(offsets) - , fData(data) - , fDataSize(dataSize) { - } - - SkSpan fUniforms; - uint32_t* fOffsets; // offset of each uniform in 'fData' - char* fData; - const size_t fDataSize; -}; - -class SkUniformBlock { -public: - SkUniformBlock() = default; - SkUniformBlock(sk_sp initial) { - fUniformData.push_back(std::move(initial)); - } - - void add(sk_sp); - - bool empty() const { return fUniformData.empty(); } - size_t totalSize() const; // TODO: cache this? - int count() const; // TODO: cache this? - - bool operator==(const SkUniformBlock&) const; - bool operator!=(const SkUniformBlock& other) const { return !(*this == other); } - size_t hash() const; - - using container = std::vector>; - using iterator = container::iterator; - using const_iterator = container::const_iterator; - - inline iterator begin() noexcept { return fUniformData.begin(); } - inline const_iterator cbegin() const noexcept { return fUniformData.cbegin(); } - inline iterator end() noexcept { return fUniformData.end(); } - inline const_iterator cend() const noexcept { return fUniformData.cend(); } - -private: - // TODO: SkUniformData should be held uniquely - std::vector> fUniformData; -}; - -#endif // SkUniformData_DEFINED diff --git a/third_party/skia/src/core/SkVM.cpp b/third_party/skia/src/core/SkVM.cpp index 75b1e2e21511..888205b0a289 100644 --- a/third_party/skia/src/core/SkVM.cpp +++ b/third_party/skia/src/core/SkVM.cpp @@ -763,6 +763,23 @@ namespace skvm { I32 Builder::splat(int n) { return {this, push(Op::splat, NA,NA,NA,NA, n) }; } + template + void Builder::canonicalizeIdOrder(F32_or_I32& x, F32_or_I32& y) { + bool immX = fProgram[x.id].op == Op::splat; + bool immY = fProgram[y.id].op == Op::splat; + if (immX != immY) { + if (immX) { + // Prefer (val, imm) over (imm, val). + std::swap(x, y); + } + return; + } + if (x.id > y.id) { + // Prefer (lower-ID, higher-ID) over (higher-ID, lower-ID). + std::swap(x, y); + } + } + // Be careful peepholing float math! Transformations you might expect to // be legal can fail in the face of NaN/Inf, e.g. 0*x is not always 0. // Float peepholes must pass this equivalence test for all ~4B floats: @@ -780,8 +797,8 @@ namespace skvm { F32 Builder::add(F32 x, F32 y) { if (float X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X+Y); } + this->canonicalizeIdOrder(x, y); if (this->isImm(y.id, 0.0f)) { return x; } // x+0 == x - if (this->isImm(x.id, 0.0f)) { return y; } // 0+y == y if (fFeatures.fma) { if (fProgram[x.id].op == Op::mul_f32) { @@ -791,7 +808,7 @@ namespace skvm { return {this, this->push(Op::fma_f32, fProgram[y.id].x, fProgram[y.id].y, x.id)}; } } - return {this, this->push(Op::add_f32, std::min(x.id, y.id), std::max(x.id, y.id))}; + return {this, this->push(Op::add_f32, x.id, y.id)}; } F32 Builder::sub(F32 x, F32 y) { @@ -810,9 +827,9 @@ namespace skvm { F32 Builder::mul(F32 x, F32 y) { if (float X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X*Y); } + this->canonicalizeIdOrder(x, y); if (this->isImm(y.id, 1.0f)) { return x; } // x*1 == x - if (this->isImm(x.id, 1.0f)) { return y; } // 1*y == y - return {this, this->push(Op::mul_f32, std::min(x.id, y.id), std::max(x.id, y.id))}; + return {this, this->push(Op::mul_f32, x.id, y.id)}; } F32 Builder::fast_mul(F32 x, F32 y) { @@ -1011,9 +1028,9 @@ namespace skvm { SK_ATTRIBUTE(no_sanitize("signed-integer-overflow")) I32 Builder::add(I32 x, I32 y) { if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X+Y); } - if (this->isImm(x.id, 0)) { return y; } - if (this->isImm(y.id, 0)) { return x; } - return {this, this->push(Op::add_i32, std::min(x.id, y.id), std::max(x.id, y.id))}; + this->canonicalizeIdOrder(x, y); + if (this->isImm(y.id, 0)) { return x; } // x+0 == x + return {this, this->push(Op::add_i32, x.id, y.id)}; } SK_ATTRIBUTE(no_sanitize("signed-integer-overflow")) I32 Builder::sub(I32 x, I32 y) { @@ -1024,11 +1041,10 @@ namespace skvm { SK_ATTRIBUTE(no_sanitize("signed-integer-overflow")) I32 Builder::mul(I32 x, I32 y) { if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X*Y); } - if (this->isImm(x.id, 0)) { return splat(0); } - if (this->isImm(y.id, 0)) { return splat(0); } - if (this->isImm(x.id, 1)) { return y; } - if (this->isImm(y.id, 1)) { return x; } - return {this, this->push(Op::mul_i32, std::min(x.id, y.id), std::max(x.id, y.id))}; + this->canonicalizeIdOrder(x, y); + if (this->isImm(y.id, 0)) { return splat(0); } // x*0 == 0 + if (this->isImm(y.id, 1)) { return x; } // x*1 == x + return {this, this->push(Op::mul_i32, x.id, y.id)}; } SK_ATTRIBUTE(no_sanitize("shift")) @@ -1050,11 +1066,13 @@ namespace skvm { I32 Builder:: eq(F32 x, F32 y) { if (float X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X==Y ? ~0 : 0); } - return {this, this->push(Op::eq_f32, std::min(x.id, y.id), std::max(x.id, y.id))}; + this->canonicalizeIdOrder(x, y); + return {this, this->push(Op::eq_f32, x.id, y.id)}; } I32 Builder::neq(F32 x, F32 y) { if (float X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X!=Y ? ~0 : 0); } - return {this, this->push(Op::neq_f32, std::min(x.id, y.id), std::max(x.id, y.id))}; + this->canonicalizeIdOrder(x, y); + return {this, this->push(Op::neq_f32, x.id, y.id)}; } I32 Builder::lt(F32 x, F32 y) { if (float X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(Y> X ? ~0 : 0); } @@ -1076,7 +1094,8 @@ namespace skvm { I32 Builder:: eq(I32 x, I32 y) { if (x.id == y.id) { return splat(~0); } if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X==Y ? ~0 : 0); } - return {this, this->push(Op:: eq_i32, std::min(x.id, y.id), std::max(x.id, y.id))}; + this->canonicalizeIdOrder(x, y); + return {this, this->push(Op:: eq_i32, x.id, y.id)}; } I32 Builder::neq(I32 x, I32 y) { if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X!=Y ? ~0 : 0); } @@ -1094,30 +1113,42 @@ namespace skvm { I32 Builder:: lt(I32 x, I32 y) { return y>x; } I32 Builder::lte(I32 x, I32 y) { return y>=x; } + Val Builder::holdsBitNot(Val id) { + // We represent `~x` as `x ^ ~0`. + if (fProgram[id].op == Op::bit_xor && this->isImm(fProgram[id].y, ~0)) { + return fProgram[id].x; + } + return NA; + } + I32 Builder::bit_and(I32 x, I32 y) { if (x.id == y.id) { return x; } if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X&Y); } - if (this->isImm(y.id, 0)) { return splat(0); } // (x & false) == false - if (this->isImm(x.id, 0)) { return splat(0); } // (false & y) == false - if (this->isImm(y.id,~0)) { return x; } // (x & true) == x - if (this->isImm(x.id,~0)) { return y; } // (true & y) == y - return {this, this->push(Op::bit_and, std::min(x.id, y.id), std::max(x.id, y.id))}; + this->canonicalizeIdOrder(x, y); + if (this->isImm(y.id, 0)) { return splat(0); } // (x & false) == false + if (this->isImm(y.id,~0)) { return x; } // (x & true) == x + if (Val notX = this->holdsBitNot(x.id); notX != NA) { // (~x & y) == bit_clear(y, ~x) + return bit_clear(y, {this, notX}); + } + if (Val notY = this->holdsBitNot(y.id); notY != NA) { // (x & ~y) == bit_clear(x, ~y) + return bit_clear(x, {this, notY}); + } + return {this, this->push(Op::bit_and, x.id, y.id)}; } I32 Builder::bit_or(I32 x, I32 y) { if (x.id == y.id) { return x; } if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X|Y); } + this->canonicalizeIdOrder(x, y); if (this->isImm(y.id, 0)) { return x; } // (x | false) == x - if (this->isImm(x.id, 0)) { return y; } // (false | y) == y if (this->isImm(y.id,~0)) { return splat(~0); } // (x | true) == true - if (this->isImm(x.id,~0)) { return splat(~0); } // (true | y) == true - return {this, this->push(Op::bit_or, std::min(x.id, y.id), std::max(x.id, y.id))}; + return {this, this->push(Op::bit_or, x.id, y.id)}; } I32 Builder::bit_xor(I32 x, I32 y) { if (x.id == y.id) { return splat(0); } if (int X,Y; this->allImm(x.id,&X, y.id,&Y)) { return splat(X^Y); } + this->canonicalizeIdOrder(x, y); if (this->isImm(y.id, 0)) { return x; } // (x ^ false) == x - if (this->isImm(x.id, 0)) { return y; } // (false ^ y) == y - return {this, this->push(Op::bit_xor, std::min(x.id, y.id), std::max(x.id, y.id))}; + return {this, this->push(Op::bit_xor, x.id, y.id)}; } I32 Builder::bit_clear(I32 x, I32 y) { @@ -1132,10 +1163,14 @@ namespace skvm { I32 Builder::select(I32 x, I32 y, I32 z) { if (y.id == z.id) { return y; } if (int X,Y,Z; this->allImm(x.id,&X, y.id,&Y, z.id,&Z)) { return splat(X?Y:Z); } - if (this->isImm(x.id,~0)) { return y; } // true ? y : z == y - if (this->isImm(x.id, 0)) { return z; } // false ? y : z == z - if (this->isImm(y.id, 0)) { return bit_clear(z,x); } // x ? 0 : z == ~x&z - if (this->isImm(z.id, 0)) { return bit_and (y,x); } // x ? y : 0 == x&y + if (this->isImm(x.id,~0)) { return y; } // (true ? y : z) == y + if (this->isImm(x.id, 0)) { return z; } // (false ? y : z) == z + if (this->isImm(y.id, 0)) { return bit_clear(z,x); } // (x ? 0 : z) == ~x&z + if (this->isImm(z.id, 0)) { return bit_and (y,x); } // (x ? y : 0) == x&y + if (Val notX = this->holdsBitNot(x.id); notX != NA) { // (!x ? y : z) == (x ? z : y) + x.id = notX; + std::swap(y, z); + } return {this, this->push(Op::select, x.id, y.id, z.id)}; } diff --git a/third_party/skia/src/core/SkVM.h b/third_party/skia/src/core/SkVM.h index 166a0573a33b..f14689976f9f 100644 --- a/third_party/skia/src/core/SkVM.h +++ b/third_party/skia/src/core/SkVM.h @@ -10,6 +10,7 @@ #include "include/core/SkBlendMode.h" #include "include/core/SkColor.h" +#include "include/core/SkColorType.h" #include "include/core/SkSpan.h" #include "include/private/SkMacros.h" #include "include/private/SkTArray.h" @@ -484,7 +485,7 @@ namespace skvm { } using Val = int; - // We reserve an impossibe Val ID as a sentinel + // We reserve an impossible Val ID as a sentinel // NA meaning none, n/a, null, nil, etc. static const Val NA = -1; @@ -1007,6 +1008,17 @@ namespace skvm { return this->allImm(id, &imm) && imm == want; } + // `canonicalizeIdOrder` and has two rules: + // - Immediate values go last; that is, `x + 1` is preferred over `1 + x`. + // - If both/neither of x and y are immediate, lower IDs go before higher IDs. + // Canonicalizing the IDs helps with opcode deduplication. Putting immediates in a + // consistent position makes it easier to detect no-op arithmetic like `x + 0`. + template + void canonicalizeIdOrder(F32_or_I32& x, F32_or_I32& y); + + // If the passed in ID is a bit-not, return the value being bit-notted. Otherwise, NA. + Val holdsBitNot(Val id); + SkTHashMap fIndex; std::vector fProgram; std::vector fTraceHooks; diff --git a/third_party/skia/src/core/SkVMBlitter.cpp b/third_party/skia/src/core/SkVMBlitter.cpp index 5b7b31ebc18c..50e730ae2c7a 100644 --- a/third_party/skia/src/core/SkVMBlitter.cpp +++ b/third_party/skia/src/core/SkVMBlitter.cpp @@ -21,9 +21,13 @@ #include "src/core/SkVM.h" #include "src/core/SkVMBlitter.h" #include "src/shaders/SkColorFilterShader.h" +#include "src/shaders/SkColorShader.h" #include +#define SK_BLITTER_TRACE_IS_SKVM +#include "src/utils/SkBlitterTrace.h" + namespace { // Uniforms set by the Blitter itself, @@ -179,29 +183,6 @@ namespace { return c; } }; - - // This is similar to using SkShaders::Color(paint.getColor4f(), nullptr), - // but uses the blitter-provided paint color uniforms instead of pushing its own. - struct PaintColorShader : public SkShaderBase { - explicit PaintColorShader(bool isOpaque) : fIsOpaque(isOpaque) {} - - const bool fIsOpaque; - - // Only created here temporarily... never serialized. - Factory getFactory() const override { return nullptr; } - const char* getTypeName() const override { return "PaintColorShader"; } - - bool isOpaque() const override { return fIsOpaque; } - - skvm::Color onProgram(skvm::Builder*, - skvm::Coord, skvm::Coord, skvm::Color paint, - const SkMatrixProvider&, const SkMatrix*, const SkColorInfo&, - skvm::Uniforms*, SkArenaAlloc*) const override { - // Incoming `paint` is unpremul in the destination color space, - // so we just need to premul it. - return premul(paint); - } - }; } // namespace bool SkVMBlitter::Key::operator==(const Key& that) const { @@ -243,11 +224,11 @@ SkVMBlitter::Params SkVMBlitter::EffectiveParams(const SkPixmap& device, } SkASSERT(!paint.getColorFilter()); - // If there's no explicit shader, the paint color is the shader, + // If there's no explicit shader, SkColorShader is the shader, // but if there is a shader, it's modulated by the paint alpha. sk_sp shader = paint.refShader(); if (!shader) { - shader = sk_make_sp(paint.getColor4f().isOpaque()); + shader = sk_make_sp(paint.getColor4f(), nullptr); } else if (paint.getAlphaf() < 1.0f) { shader = sk_make_sp(std::move(shader), paint.getAlphaf(), @@ -667,8 +648,10 @@ void SkVMBlitter::blitH(int x, int y, int w) { skvm::Program* blit_h = this->buildProgram(Coverage::Full); this->updateUniforms(x+w, y); if (const void* sprite = this->isSprite(x,y)) { + SK_BLITTER_TRACE_STEP(blitH1, true, /*scanlines=*/1, /*pixels=*/w); blit_h->eval(w, fUniforms.buf.data(), fDevice.addr(x,y), sprite); } else { + SK_BLITTER_TRACE_STEP(blitH2, true, /*scanlines=*/1, /*pixels=*/w); blit_h->eval(w, fUniforms.buf.data(), fDevice.addr(x,y)); } } @@ -677,7 +660,9 @@ void SkVMBlitter::blitAntiH(int x, int y, const SkAlpha cov[], const int16_t run skvm::Program* blit_anti_h = this->buildProgram(Coverage::UniformF); skvm::Program* blit_h = this->buildProgram(Coverage::Full); + SK_BLITTER_TRACE_STEP(blitAntiH, true, /*scanlines=*/1ul, /*pixels=*/0ul); for (int16_t run = *runs; run > 0; run = *runs) { + SK_BLITTER_TRACE_STEP_ACCUMULATE(blitAntiH, /*pixels=*/run); const SkAlpha coverage = *cov; if (coverage != 0x00) { this->updateUniforms(x+run, y); @@ -727,6 +712,11 @@ void SkVMBlitter::blitMask(const SkMask& mask, const SkIRect& clip) { SkASSERT(program); if (program) { + SK_BLITTER_TRACE_STEP(blitMask, + true, + /*scanlines=*/clip.height(), + /*pixels=*/clip.width() * clip.height()); + for (int y = clip.top(); y < clip.bottom(); y++) { int x = clip.left(), w = clip.width(); diff --git a/third_party/skia/src/core/SkVMBlitter.h b/third_party/skia/src/core/SkVMBlitter.h index 647916cb7c05..68767254380a 100644 --- a/third_party/skia/src/core/SkVMBlitter.h +++ b/third_party/skia/src/core/SkVMBlitter.h @@ -91,6 +91,8 @@ class SkVMBlitter final : public SkBlitter { void blitH(int x, int y, int w) override; void blitAntiH(int x, int y, const SkAlpha cov[], const int16_t runs[]) override; + +private: void blitMask(const SkMask& mask, const SkIRect& clip) override; SkPixmap fDevice; diff --git a/third_party/skia/src/core/SkWriteBuffer.cpp b/third_party/skia/src/core/SkWriteBuffer.cpp index eb10f71a7470..c942ef7532da 100644 --- a/third_party/skia/src/core/SkWriteBuffer.cpp +++ b/third_party/skia/src/core/SkWriteBuffer.cpp @@ -124,6 +124,10 @@ void SkBinaryWriteBuffer::writeRegion(const SkRegion& region) { fWriter.writeRegion(region); } +void SkBinaryWriteBuffer::writeSampling(const SkSamplingOptions& sampling) { + fWriter.writeSampling(sampling); +} + void SkBinaryWriteBuffer::writePath(const SkPath& path) { fWriter.writePath(path); } diff --git a/third_party/skia/src/core/SkWriteBuffer.h b/third_party/skia/src/core/SkWriteBuffer.h index ac1fcdde64f2..b942733bd163 100644 --- a/third_party/skia/src/core/SkWriteBuffer.h +++ b/third_party/skia/src/core/SkWriteBuffer.h @@ -60,6 +60,7 @@ class SkWriteBuffer { virtual void writeIRect(const SkIRect& rect) = 0; virtual void writeRect(const SkRect& rect) = 0; virtual void writeRegion(const SkRegion& region) = 0; + virtual void writeSampling(const SkSamplingOptions&) = 0; virtual void writePath(const SkPath& path) = 0; virtual size_t writeStream(SkStream* stream, size_t length) = 0; virtual void writeImage(const SkImage*) = 0; @@ -122,6 +123,7 @@ class SkBinaryWriteBuffer : public SkWriteBuffer { void writeIRect(const SkIRect& rect) override; void writeRect(const SkRect& rect) override; void writeRegion(const SkRegion& region) override; + void writeSampling(const SkSamplingOptions&) override; void writePath(const SkPath& path) override; size_t writeStream(SkStream* stream, size_t length) override; void writeImage(const SkImage*) override; diff --git a/third_party/skia/src/core/SkWriter32.cpp b/third_party/skia/src/core/SkWriter32.cpp index aa96531dfcdb..363245774ffb 100644 --- a/third_party/skia/src/core/SkWriter32.cpp +++ b/third_party/skia/src/core/SkWriter32.cpp @@ -5,9 +5,11 @@ * found in the LICENSE file. */ +#include "src/core/SkWriter32.h" + +#include "include/core/SkSamplingOptions.h" #include "include/private/SkTo.h" #include "src/core/SkMatrixPriv.h" -#include "src/core/SkWriter32.h" void SkWriter32::writeMatrix(const SkMatrix& matrix) { size_t size = SkMatrixPriv::WriteToMemory(matrix, nullptr); @@ -15,6 +17,17 @@ void SkWriter32::writeMatrix(const SkMatrix& matrix) { SkMatrixPriv::WriteToMemory(matrix, this->reserve(size)); } +void SkWriter32::writeSampling(const SkSamplingOptions& sampling) { + this->writeBool(sampling.useCubic); + if (sampling.useCubic) { + this->writeScalar(sampling.cubic.B); + this->writeScalar(sampling.cubic.C); + } else { + this->write32((unsigned)sampling.filter); + this->write32((unsigned)sampling.mipmap); + } +} + void SkWriter32::writeString(const char str[], size_t len) { if (nullptr == str) { str = ""; diff --git a/third_party/skia/src/core/SkWriter32.h b/third_party/skia/src/core/SkWriter32.h index 54b06b7324f2..e7198252d250 100644 --- a/third_party/skia/src/core/SkWriter32.h +++ b/third_party/skia/src/core/SkWriter32.h @@ -23,6 +23,8 @@ #include "include/private/SkTemplates.h" #include "include/private/SkTo.h" +struct SkSamplingOptions; + class SkWriter32 : SkNoncopyable { public: /** @@ -148,6 +150,8 @@ class SkWriter32 : SkNoncopyable { rgn.writeToMemory(this->reserve(size)); } + void writeSampling(const SkSamplingOptions& sampling); + // write count bytes (must be a multiple of 4) void writeMul4(const void* values, size_t size) { this->write(values, size); diff --git a/third_party/skia/src/core/SkXfermode.cpp b/third_party/skia/src/core/SkXfermode.cpp index 9b1a9a1eff49..25c356056ec6 100644 --- a/third_party/skia/src/core/SkXfermode.cpp +++ b/third_party/skia/src/core/SkXfermode.cpp @@ -17,9 +17,9 @@ #include "src/core/SkXfermodePriv.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/effects/GrCustomXfermode.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrCustomXfermode.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" #endif /////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/core/SkYUVAPixmaps.cpp b/third_party/skia/src/core/SkYUVAPixmaps.cpp index c956596ed67a..d77c8b5dad10 100644 --- a/third_party/skia/src/core/SkYUVAPixmaps.cpp +++ b/third_party/skia/src/core/SkYUVAPixmaps.cpp @@ -12,7 +12,7 @@ #include "src/core/SkYUVAInfoLocation.h" #if SK_SUPPORT_GPU -#include "include/private/GrImageContext.h" +#include "include/private/gpu/ganesh/GrImageContext.h" #endif diff --git a/third_party/skia/src/effects/BUILD.bazel b/third_party/skia/src/effects/BUILD.bazel index c6302ad405ad..b6aedaf12a0f 100644 --- a/third_party/skia/src/effects/BUILD.bazel +++ b/third_party/skia/src/effects/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "srcs", visibility = ["//:__subpackages__"], @@ -204,6 +206,7 @@ generated_cc_atom( srcs = ["SkHighContrastFilter.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkColorSpace_hdr", "//include/core:SkString_hdr", "//include/effects:SkHighContrastFilter_hdr", "//include/effects:SkRuntimeEffect_hdr", @@ -298,7 +301,7 @@ generated_cc_atom( "//include/effects:SkShaderMaskFilter_hdr", "//src/core:SkMaskFilterBase_hdr", "//src/core:SkReadBuffer_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", "//src/shaders:SkShaderBase_hdr", ], ) @@ -321,12 +324,12 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkVM_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrColorInfo_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh:GrColorInfo_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", ], ) diff --git a/third_party/skia/src/effects/SkHighContrastFilter.cpp b/third_party/skia/src/effects/SkHighContrastFilter.cpp index ccaea67f0c52..4504ff19a70c 100644 --- a/third_party/skia/src/effects/SkHighContrastFilter.cpp +++ b/third_party/skia/src/effects/SkHighContrastFilter.cpp @@ -5,6 +5,7 @@ * found in the LICENSE file. */ +#include "include/core/SkColorSpace.h" #include "include/core/SkString.h" #include "include/effects/SkHighContrastFilter.h" #include "include/effects/SkRuntimeEffect.h" diff --git a/third_party/skia/src/effects/SkShaderMaskFilter.cpp b/third_party/skia/src/effects/SkShaderMaskFilter.cpp index b9a361741bb6..9eacf91cfef8 100644 --- a/third_party/skia/src/effects/SkShaderMaskFilter.cpp +++ b/third_party/skia/src/effects/SkShaderMaskFilter.cpp @@ -111,7 +111,7 @@ bool SkShaderMF::filterMask(SkMask* dst, const SkMask& src, const SkMatrix& ctm, /////////////////////////////////////////////////////////////////////////////////////////////////// #if SK_SUPPORT_GPU -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" std::unique_ptr SkShaderMF::onAsFragmentProcessor(const GrFPArgs& args) const { return GrFragmentProcessor::MulInputByChildAlpha(as_SB(fShader)->asFragmentProcessor(args)); diff --git a/third_party/skia/src/effects/SkTableColorFilter.cpp b/third_party/skia/src/effects/SkTableColorFilter.cpp index 343ee957fe50..a5130032c28e 100644 --- a/third_party/skia/src/effects/SkTableColorFilter.cpp +++ b/third_party/skia/src/effects/SkTableColorFilter.cpp @@ -103,12 +103,12 @@ sk_sp SkTable_ColorFilter::CreateProc(SkReadBuffer& buffer) { #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrColorInfo.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" class ColorTableEffect : public GrFragmentProcessor { public: diff --git a/third_party/skia/src/effects/imagefilters/BUILD.bazel b/third_party/skia/src/effects/imagefilters/BUILD.bazel index 93a695102843..246c1df19063 100644 --- a/third_party/skia/src/effects/imagefilters/BUILD.bazel +++ b/third_party/skia/src/effects/imagefilters/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkAlphaThresholdImageFilter_src", srcs = ["SkAlphaThresholdImageFilter.cpp"], @@ -15,13 +17,13 @@ generated_cc_atom( "//src/core:SkRuntimeEffectPriv_hdr", "//src/core:SkSpecialImage_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -41,13 +43,13 @@ generated_cc_atom( "//src/core:SkSpecialImage_hdr", "//src/core:SkSpecialSurface_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", ], ) @@ -68,14 +70,14 @@ generated_cc_atom( "//src/core:SkSpecialImage_hdr", "//src/core:SkSpecialSurface_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", ], ) @@ -99,9 +101,9 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkSpecialImage_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -168,19 +170,19 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkSpecialImage_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -233,19 +235,19 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkSpecialImage_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -264,9 +266,9 @@ generated_cc_atom( "//src/core:SkSpecialImage_hdr", "//src/core:SkValidationUtils_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", ], ) @@ -286,10 +288,10 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkSpecialImage_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrMatrixConvolutionEffect_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrMatrixConvolutionEffect_hdr", ], ) @@ -324,18 +326,18 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkSpecialImage_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) diff --git a/third_party/skia/src/effects/imagefilters/SkAlphaThresholdImageFilter.cpp b/third_party/skia/src/effects/imagefilters/SkAlphaThresholdImageFilter.cpp index 7adb7763863c..69ff5f34df65 100644 --- a/third_party/skia/src/effects/imagefilters/SkAlphaThresholdImageFilter.cpp +++ b/third_party/skia/src/effects/imagefilters/SkAlphaThresholdImageFilter.cpp @@ -17,14 +17,14 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" #include "src/core/SkRuntimeEffectPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/effects/GrSkSLFP.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #if SK_GPU_V1 -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #endif // SK_GPU_V1 #endif // SK_SUPPORT_GPU diff --git a/third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp b/third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp index 3dcebc4b45be..d718a0677de1 100644 --- a/third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp +++ b/third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp @@ -18,13 +18,13 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" #include "src/core/SkRuntimeEffectPriv.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrSkSLFP.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #endif namespace { diff --git a/third_party/skia/src/effects/imagefilters/SkBlendImageFilter.cpp b/third_party/skia/src/effects/imagefilters/SkBlendImageFilter.cpp index 0b7fcf271198..a4b3e714dc31 100644 --- a/third_party/skia/src/effects/imagefilters/SkBlendImageFilter.cpp +++ b/third_party/skia/src/effects/imagefilters/SkBlendImageFilter.cpp @@ -19,13 +19,13 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #endif namespace { @@ -252,7 +252,7 @@ void SkBlendImageFilter::drawForeground(SkCanvas* canvas, SkSpecialImage* img, #if SK_SUPPORT_GPU -#include "src/gpu/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" sk_sp SkBlendImageFilter::filterImageGPU(const Context& ctx, sk_sp background, diff --git a/third_party/skia/src/effects/imagefilters/SkBlurImageFilter.cpp b/third_party/skia/src/effects/imagefilters/SkBlurImageFilter.cpp index e8f20bb3f39b..5be28320bd05 100644 --- a/third_party/skia/src/effects/imagefilters/SkBlurImageFilter.cpp +++ b/third_party/skia/src/effects/imagefilters/SkBlurImageFilter.cpp @@ -24,10 +24,10 @@ #include "src/core/SkWriteBuffer.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" #if SK_GPU_V1 -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #endif // SK_GPU_V1 #endif // SK_SUPPORT_GPU diff --git a/third_party/skia/src/effects/imagefilters/SkDisplacementMapImageFilter.cpp b/third_party/skia/src/effects/imagefilters/SkDisplacementMapImageFilter.cpp index eae2d53c77e1..e97fa8dbac5a 100644 --- a/third_party/skia/src/effects/imagefilters/SkDisplacementMapImageFilter.cpp +++ b/third_party/skia/src/effects/imagefilters/SkDisplacementMapImageFilter.cpp @@ -16,19 +16,19 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.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" #endif namespace { diff --git a/third_party/skia/src/effects/imagefilters/SkImageImageFilter.cpp b/third_party/skia/src/effects/imagefilters/SkImageImageFilter.cpp index f71009ec7220..16b10f824915 100644 --- a/third_party/skia/src/effects/imagefilters/SkImageImageFilter.cpp +++ b/third_party/skia/src/effects/imagefilters/SkImageImageFilter.cpp @@ -92,7 +92,7 @@ sk_sp SkImageImageFilter::CreateProc(SkReadBuffer& buffer) { } void SkImageImageFilter::flatten(SkWriteBuffer& buffer) const { - SkSamplingPriv::Write(buffer, fSampling); + buffer.writeSampling(fSampling); buffer.writeRect(fSrcRect); buffer.writeRect(fDstRect); buffer.writeImage(fImage.get()); diff --git a/third_party/skia/src/effects/imagefilters/SkLightingImageFilter.cpp b/third_party/skia/src/effects/imagefilters/SkLightingImageFilter.cpp index 7ada217ed0f8..d46538fa303c 100644 --- a/third_party/skia/src/effects/imagefilters/SkLightingImageFilter.cpp +++ b/third_party/skia/src/effects/imagefilters/SkLightingImageFilter.cpp @@ -18,19 +18,19 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.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" // For brevity typedef GrGLSLProgramDataManager::UniformHandle UniformHandle; diff --git a/third_party/skia/src/effects/imagefilters/SkMagnifierImageFilter.cpp b/third_party/skia/src/effects/imagefilters/SkMagnifierImageFilter.cpp index 2175b225ed96..af6855d2d0b7 100644 --- a/third_party/skia/src/effects/imagefilters/SkMagnifierImageFilter.cpp +++ b/third_party/skia/src/effects/imagefilters/SkMagnifierImageFilter.cpp @@ -18,9 +18,9 @@ //////////////////////////////////////////////////////////////////////////////// #if SK_SUPPORT_GPU #include "src/core/SkRuntimeEffectPriv.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/effects/GrSkSLFP.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #endif namespace { diff --git a/third_party/skia/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp b/third_party/skia/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp index eb400a5ad07e..b6f10afe3dba 100644 --- a/third_party/skia/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp +++ b/third_party/skia/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp @@ -18,10 +18,10 @@ #include "src/core/SkWriteBuffer.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrMatrixConvolutionEffect.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h" #endif namespace { diff --git a/third_party/skia/src/effects/imagefilters/SkMergeImageFilter.cpp b/third_party/skia/src/effects/imagefilters/SkMergeImageFilter.cpp index 2645a2e96869..c403418081b1 100644 --- a/third_party/skia/src/effects/imagefilters/SkMergeImageFilter.cpp +++ b/third_party/skia/src/effects/imagefilters/SkMergeImageFilter.cpp @@ -114,7 +114,7 @@ sk_sp SkMergeImageFilter::onFilterImage(const Context& ctx, } inputs[i]->draw(canvas, - SkIntToScalar(offsets[i].x() - x0), SkIntToScalar(offsets[i].y() - y0)); + SkIntToScalar(offsets[i].x()) - x0, SkIntToScalar(offsets[i].y()) - y0); } offset->fX = bounds.left(); diff --git a/third_party/skia/src/effects/imagefilters/SkMorphologyImageFilter.cpp b/third_party/skia/src/effects/imagefilters/SkMorphologyImageFilter.cpp index 7eed813790cf..559328febec6 100644 --- a/third_party/skia/src/effects/imagefilters/SkMorphologyImageFilter.cpp +++ b/third_party/skia/src/effects/imagefilters/SkMorphologyImageFilter.cpp @@ -17,18 +17,18 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.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" #endif #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 diff --git a/third_party/skia/src/fonts/BUILD.bazel b/third_party/skia/src/fonts/BUILD.bazel index 55288f56cc65..a2d64451c218 100644 --- a/third_party/skia/src/fonts/BUILD.bazel +++ b/third_party/skia/src/fonts/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkFontMgr_indirect_src", srcs = ["SkFontMgr_indirect.cpp"], diff --git a/third_party/skia/src/gpu/BUILD.bazel b/third_party/skia/src/gpu/BUILD.bazel index 32dd1c193bba..8ba817d53609 100644 --- a/third_party/skia/src/gpu/BUILD.bazel +++ b/third_party/skia/src/gpu/BUILD.bazel @@ -1,335 +1,29 @@ -# https://github.com/bazelbuild/bazel-skylib -load("@bazel_skylib//lib:selects.bzl", "selects") load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "core_srcs", deps = [ - ":BaseDevice_src", - ":GrAHardwareBufferImageGenerator_src", - ":GrAHardwareBufferUtils_src", - ":GrAttachment_src", - ":GrAuditTrail_src", - ":GrBackendSemaphore_src", - ":GrBackendSurfaceMutableState_src", - ":GrBackendSurface_src", - ":GrBackendTextureImageGenerator_src", - ":GrBackendUtils_src", - ":GrBlurUtils_src", - ":GrBufferAllocPool_src", - ":GrCaps_src", - ":GrClientMappedBufferManager_src", - ":GrColorInfo_src", - ":GrColorSpaceXform_src", - ":GrContextThreadSafeProxy_src", - ":GrContext_Base_src", - ":GrCopyRenderTask_src", - ":GrDDLContext_src", - ":GrDDLTask_src", - ":GrDataUtils_src", - ":GrDefaultGeoProcFactory_src", - ":GrDirectContextPriv_src", - ":GrDirectContext_src", - ":GrDistanceFieldGenFromVector_src", - ":GrDrawOpAtlas_src", - ":GrDrawOpTest_src", - ":GrDrawingManager_src", - ":GrDriverBugWorkarounds_src", - ":GrDynamicAtlas_src", - ":GrEagerVertexAllocator_src", - ":GrFinishCallbacks_src", - ":GrFixedClip_src", - ":GrFragmentProcessor_src", - ":GrGeometryProcessor_src", - ":GrGpuBuffer_src", - ":GrGpuResource_src", - ":GrGpu_src", - ":GrImageContext_src", - ":GrManagedResource_src", - ":GrMemoryPool_src", - ":GrMeshDrawTarget_src", - ":GrOnFlushResourceProvider_src", - ":GrOpFlushState_src", - ":GrOpsRenderPass_src", - ":GrPaint_src", - ":GrPersistentCacheUtils_src", - ":GrPipeline_src", - ":GrProcessorAnalysis_src", - ":GrProcessorSet_src", - ":GrProcessorUnitTest_src", - ":GrProcessor_src", - ":GrProgramDesc_src", - ":GrProgramInfo_src", - ":GrProxyProvider_src", - ":GrRecordingContextPriv_src", - ":GrRecordingContext_src", - ":GrRectanizerPow2_src", - ":GrRectanizerSkyline_src", - ":GrRenderTargetProxy_src", - ":GrRenderTarget_src", - ":GrRenderTaskCluster_src", - ":GrRenderTask_src", - ":GrResourceAllocator_src", - ":GrResourceCache_src", - ":GrResourceProvider_src", - ":GrRingBuffer_src", - ":GrSPIRVUniformHandler_src", - ":GrSPIRVVaryingHandler_src", - ":GrSWMaskHelper_src", - ":GrShaderCaps_src", - ":GrShaderVar_src", - ":GrStagingBufferManager_src", - ":GrStencilSettings_src", - ":GrStyle_src", - ":GrSubRunAllocator_src", - ":GrSurfaceInfo_src", - ":GrSurfaceProxy_src", - ":GrSurface_src", - ":GrSwizzle_src", - ":GrTestUtils_src", - ":GrTextureProxy_src", - ":GrTextureRenderTargetProxy_src", - ":GrTextureResolveRenderTask_src", - ":GrTexture_src", - ":GrThreadSafeCache_src", - ":GrThreadSafePipelineBuilder_src", - ":GrTransferFromRenderTask_src", - ":GrUniformDataManager_src", - ":GrUtil_src", - ":GrVertexChunkArray_src", - ":GrWaitRenderTask_src", - ":GrWritePixelsRenderTask_src", - ":GrXferProcessor_src", - ":GrYUVABackendTextures_src", - ":GrYUVATextureProxies_src", ":ResourceKey_src", ":ShaderErrorHandler_src", - ":SkGr_src", - ":SurfaceContext_src", - ":SurfaceFillContext_src", - "//src/gpu/effects:GrBezierEffect_src", - "//src/gpu/effects:GrBicubicEffect_src", - "//src/gpu/effects:GrBitmapTextGeoProc_src", - "//src/gpu/effects:GrBlendFragmentProcessor_src", - "//src/gpu/effects:GrConvexPolyEffect_src", - "//src/gpu/effects:GrCoverageSetOpXP_src", - "//src/gpu/effects:GrCustomXfermode_src", - "//src/gpu/effects:GrDisableColorXP_src", - "//src/gpu/effects:GrDistanceFieldGeoProc_src", - "//src/gpu/effects:GrGaussianConvolutionFragmentProcessor_src", - "//src/gpu/effects:GrMatrixConvolutionEffect_src", - "//src/gpu/effects:GrMatrixEffect_src", - "//src/gpu/effects:GrModulateAtlasCoverageEffect_src", - "//src/gpu/effects:GrOvalEffect_src", - "//src/gpu/effects:GrPorterDuffXferProcessor_src", - "//src/gpu/effects:GrRRectEffect_src", - "//src/gpu/effects:GrShadowGeoProc_src", - "//src/gpu/effects:GrSkSLFP_src", - "//src/gpu/effects:GrTextureEffect_src", - "//src/gpu/effects:GrYUVtoRGBEffect_src", - "//src/gpu/geometry:GrAAConvexTessellator_src", - "//src/gpu/geometry:GrAATriangulator_src", - "//src/gpu/geometry:GrPathUtils_src", - "//src/gpu/geometry:GrQuadUtils_src", - "//src/gpu/geometry:GrQuad_src", - "//src/gpu/geometry:GrShape_src", - "//src/gpu/geometry:GrStyledShape_src", - "//src/gpu/geometry:GrTriangulator_src", - "//src/gpu/gradients:GrGradientBitmapCache_src", - "//src/gpu/gradients:GrGradientShader_src", - "//src/gpu/ops:AAConvexPathRenderer_src", - "//src/gpu/ops:AAHairLinePathRenderer_src", - "//src/gpu/ops:AALinearizingConvexPathRenderer_src", - "//src/gpu/ops:AtlasInstancedHelper_src", - "//src/gpu/ops:AtlasPathRenderer_src", - "//src/gpu/ops:AtlasRenderTask_src", - "//src/gpu/ops:AtlasTextOp_src", - "//src/gpu/ops:ClearOp_src", - "//src/gpu/ops:DashLinePathRenderer_src", - "//src/gpu/ops:DashOp_src", - "//src/gpu/ops:DefaultPathRenderer_src", - "//src/gpu/ops:DrawAtlasOp_src", - "//src/gpu/ops:DrawAtlasPathOp_src", - "//src/gpu/ops:DrawCustomMeshOp_src", - "//src/gpu/ops:DrawableOp_src", - "//src/gpu/ops:FillRRectOp_src", - "//src/gpu/ops:FillRectOp_src", - "//src/gpu/ops:GrMeshDrawOp_src", - "//src/gpu/ops:GrOp_src", - "//src/gpu/ops:GrOvalOpFactory_src", - "//src/gpu/ops:GrSimpleMeshDrawOpHelperWithStencil_src", - "//src/gpu/ops:GrSimpleMeshDrawOpHelper_src", - "//src/gpu/ops:LatticeOp_src", - "//src/gpu/ops:OpsTask_src", - "//src/gpu/ops:PathInnerTriangulateOp_src", - "//src/gpu/ops:PathStencilCoverOp_src", - "//src/gpu/ops:PathTessellateOp_src", - "//src/gpu/ops:QuadPerEdgeAA_src", - "//src/gpu/ops:RegionOp_src", - "//src/gpu/ops:ShadowRRectOp_src", - "//src/gpu/ops:SmallPathAtlasMgr_src", - "//src/gpu/ops:SmallPathRenderer_src", - "//src/gpu/ops:SmallPathShapeData_src", - "//src/gpu/ops:SoftwarePathRenderer_src", - "//src/gpu/ops:StrokeRectOp_src", - "//src/gpu/ops:StrokeTessellateOp_src", - "//src/gpu/ops:TessellationPathRenderer_src", - "//src/gpu/ops:TextureOp_src", - "//src/gpu/ops:TriangulatingPathRenderer_src", - "//src/gpu/tessellate:PatchWriter_src", - "//src/gpu/tessellate:PathCurveTessellator_src", - "//src/gpu/tessellate:PathWedgeTessellator_src", - "//src/gpu/tessellate:StrokeFixedCountTessellator_src", - "//src/gpu/tessellate:StrokeHardwareTessellator_src", + ":Swizzle_src", + "//src/gpu/tessellate:FixedCountBufferUtils_src", "//src/gpu/tessellate:Tessellation_src", - "//src/gpu/tessellate/shaders:GrPathTessellationShader_Hardware_src", - "//src/gpu/tessellate/shaders:GrPathTessellationShader_MiddleOut_src", - "//src/gpu/tessellate/shaders:GrPathTessellationShader_src", - "//src/gpu/tessellate/shaders:GrStrokeTessellationShader_HardwareImpl_src", - "//src/gpu/tessellate/shaders:GrStrokeTessellationShader_InstancedImpl_src", - "//src/gpu/tessellate/shaders:GrStrokeTessellationShader_src", - "//src/gpu/tessellate/shaders:GrTessellationShader_src", - "//src/gpu/text:GrAtlasManager_src", - "//src/gpu/text:GrDistanceFieldAdjustTable_src", - "//src/gpu/text:GrGlyphVector_src", - "//src/gpu/text:GrSDFMaskFilter_src", - "//src/gpu/text:GrSDFTControl_src", - "//src/gpu/text:GrSlug_src", - "//src/gpu/text:GrStrikeCache_src", - "//src/gpu/text:GrTextBlobRedrawCoordinator_src", - "//src/gpu/text:GrTextBlob_src", - ], -) - -cc_library( - name = "gl_srcs", - deps = [ - "//src/gpu/gl:GrGLAssembleGLESInterfaceAutogen_src", - "//src/gpu/gl:GrGLAssembleGLInterfaceAutogen_src", - "//src/gpu/gl:GrGLAssembleHelpers_src", - "//src/gpu/gl:GrGLAssembleInterface_src", - "//src/gpu/gl:GrGLAssembleWebGLInterfaceAutogen_src", - "//src/gpu/gl:GrGLAttachment_src", - "//src/gpu/gl:GrGLBuffer_src", - "//src/gpu/gl:GrGLCaps_src", - "//src/gpu/gl:GrGLContext_src", - "//src/gpu/gl:GrGLExtensions_src", - "//src/gpu/gl:GrGLGLSL_src", - "//src/gpu/gl:GrGLGpuProgramCache_src", - "//src/gpu/gl:GrGLGpu_src", - "//src/gpu/gl:GrGLInterfaceAutogen_src", - "//src/gpu/gl:GrGLOpsRenderPass_src", - "//src/gpu/gl:GrGLProgramDataManager_src", - "//src/gpu/gl:GrGLProgram_src", - "//src/gpu/gl:GrGLRenderTarget_src", - "//src/gpu/gl:GrGLSemaphore_src", - "//src/gpu/gl:GrGLTextureRenderTarget_src", - "//src/gpu/gl:GrGLTexture_src", - "//src/gpu/gl:GrGLTypesPriv_src", - "//src/gpu/gl:GrGLUniformHandler_src", - "//src/gpu/gl:GrGLUtil_src", - "//src/gpu/gl:GrGLVertexArray_src", - "//src/gpu/gl/builders:GrGLProgramBuilder_src", - "//src/gpu/gl/builders:GrGLShaderStringBuilder_src", - "//src/gpu/glsl:GrGLSLBlend_src", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_src", - "//src/gpu/glsl:GrGLSLProgramBuilder_src", - "//src/gpu/glsl:GrGLSLProgramDataManager_src", - "//src/gpu/glsl:GrGLSLShaderBuilder_src", - "//src/gpu/glsl:GrGLSLUniformHandler_src", - "//src/gpu/glsl:GrGLSLVarying_src", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_src", - "//src/gpu/glsl:GrGLSL_src", - ], -) - -cc_library( - name = "v1_srcs", - deps = [ - "//src/gpu/v1:ClipStack_src", - "//src/gpu/v1:Device_drawTexture_src", - "//src/gpu/v1:Device_src", - "//src/gpu/v1:PathRendererChain_src", - "//src/gpu/v1:PathRenderer_src", - "//src/gpu/v1:StencilMaskHelper_src", - "//src/gpu/v1:SurfaceDrawContext_src", - "//src/gpu/v1:SurfaceFillContext_v1_src", - ], -) - -cc_library( - name = "glx_srcs", - deps = [ - "//src/gpu/gl/glx:GrGLMakeGLXInterface_src", - "//src/gpu/gl/glx:GrGLMakeNativeInterface_glx_src", - ], -) - -cc_library( - name = "webgl_srcs", - deps = [ - "//src/gpu/gl/webgl:GrGLMakeNativeInterface_webgl_src", - ], -) - -cc_library( - name = "mock_srcs", - visibility = ["//:__subpackages__"], - deps = [ - "//src/gpu/mock:GrMockCaps_src", - "//src/gpu/mock:GrMockGpu_src", - "//src/gpu/mock:GrMockTypes_src", - ], -) - -selects.config_setting_group( - name = "gl_and_linux", - match_all = [ - "//bazel/common_config_settings:gl_standard", - "//bazel/common_config_settings:linux_x64", ], ) cc_library( name = "srcs", visibility = ["//:__subpackages__"], - deps = [":core_srcs"] + select({ - "//bazel/common_config_settings:gl_backend": [ - ":gl_srcs", - ":v1_srcs", - ], - "//conditions:default": [], - }) + select({ - ":gl_and_linux": [":glx_srcs"], - "//bazel/common_config_settings:webgl_standard": [":webgl_srcs"], - "//conditions:default": [], - }), -) - -generated_cc_atom( - name = "BaseDevice_hdr", - hdrs = ["BaseDevice.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkImage_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/core:SkDevice_hdr", - ], + deps = [":core_srcs"], ) generated_cc_atom( - name = "BaseDevice_src", - srcs = ["BaseDevice.cpp"], + name = "Blend_hdr", + hdrs = ["Blend.h"], visibility = ["//:__subpackages__"], - deps = [ - ":BaseDevice_hdr", - ":GrProxyProvider_hdr", - ":GrRecordingContextPriv_hdr", - ":GrSurfaceProxyView_hdr", - ":SurfaceContext_hdr", - ":SurfaceFillContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - ], + deps = ["//include/core:SkTypes_hdr"], ) generated_cc_atom( @@ -344,3151 +38,89 @@ generated_cc_atom( ], ) -generated_cc_atom( - name = "GrAHardwareBufferImageGenerator_hdr", - hdrs = ["GrAHardwareBufferImageGenerator.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkImageGenerator_hdr", - "//include/private:GrTypesPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrAHardwareBufferImageGenerator_src", - srcs = ["GrAHardwareBufferImageGenerator.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAHardwareBufferImageGenerator_hdr", - ":GrAHardwareBufferUtils_hdr", - ":GrDirectContextPriv_hdr", - ":GrProxyProvider_hdr", - ":GrRecordingContextPriv_hdr", - ":GrResourceCache_hdr", - ":GrResourceProviderPriv_hdr", - ":GrResourceProvider_hdr", - ":GrTextureProxy_hdr", - ":GrTexture_hdr", - ":SkGr_hdr", - "//include/core:SkTypes_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//include/gpu/gl:GrGLTypes_hdr", - "//include/gpu/vk:GrVkExtensions_hdr", - "//src/core:SkMessageBus_hdr", - "//src/gpu/gl:GrGLDefines_hdr", - "//src/gpu/vk:GrVkGpu_hdr", - ], -) - generated_cc_atom( name = "GrAHardwareBufferUtils_hdr", hdrs = ["GrAHardwareBufferUtils.h"], visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkTypes_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu:GrTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrAHardwareBufferUtils_src", - srcs = ["GrAHardwareBufferUtils.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAHardwareBufferUtils_hdr", - ":GrDirectContextPriv_hdr", - "//include/core:SkTypes_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu/gl:GrGLTypes_hdr", - "//src/gpu/gl:GrGLDefines_hdr", - "//src/gpu/gl:GrGLUtil_hdr", - "//src/gpu/vk:GrVkCaps_hdr", - "//src/gpu/vk:GrVkGpu_hdr", - ], -) - -generated_cc_atom( - name = "GrAppliedClip_hdr", - hdrs = ["GrAppliedClip.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrFragmentProcessor_hdr", - ":GrScissorState_hdr", - ":GrWindowRectsState_hdr", - "//src/core:SkClipStack_hdr", - ], -) - -generated_cc_atom( - name = "GrAttachment_hdr", - hdrs = ["GrAttachment.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSurface_hdr", - "//src/core:SkClipStack_hdr", - ], -) - -generated_cc_atom( - name = "GrAttachment_src", - srcs = ["GrAttachment.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAttachment_hdr", - ":GrBackendUtils_hdr", - ":GrCaps_hdr", - ":GrDataUtils_hdr", - ":GrGpu_hdr", - ], + deps = ["//src/gpu/ganesh:GrAHardwareBufferUtils_impl_hdr"], ) generated_cc_atom( - name = "GrAuditTrail_hdr", - hdrs = ["GrAuditTrail.h"], + name = "KeyBuilder_hdr", + hdrs = ["KeyBuilder.h"], visibility = ["//:__subpackages__"], deps = [ - ":GrRenderTargetProxy_hdr", - "//include/core:SkRect_hdr", "//include/core:SkString_hdr", - "//include/gpu:GrConfig_hdr", - "//include/gpu:GrTypes_hdr", "//include/private:SkTArray_hdr", - "//include/private:SkTHash_hdr", - ], -) - -generated_cc_atom( - name = "GrAuditTrail_src", - srcs = ["GrAuditTrail.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAuditTrail_hdr", - "//src/gpu/ops:GrOp_hdr", - "//src/utils:SkJSONWriter_hdr", - ], -) - -generated_cc_atom( - name = "GrAutoLocaleSetter_hdr", - hdrs = ["GrAutoLocaleSetter.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkString_hdr", - "//include/gpu:GrTypes_hdr", - "//include/private:SkNoncopyable_hdr", - ], -) - -generated_cc_atom( - name = "GrBackendSemaphore_src", - srcs = ["GrBackendSemaphore.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu:GrBackendSemaphore_hdr", - "//include/gpu/d3d:GrD3DTypes_hdr", ], ) generated_cc_atom( - name = "GrBackendSurfaceMutableStateImpl_hdr", - hdrs = ["GrBackendSurfaceMutableStateImpl.h"], + name = "RefCntedCallback_hdr", + hdrs = ["RefCntedCallback.h"], visibility = ["//:__subpackages__"], deps = [ "//include/core:SkRefCnt_hdr", - "//include/gpu:GrBackendSurfaceMutableState_hdr", + "//include/gpu:GpuTypes_hdr", ], ) generated_cc_atom( - name = "GrBackendSurfaceMutableState_src", - srcs = ["GrBackendSurfaceMutableState.cpp"], - visibility = ["//:__subpackages__"], - deps = ["//include/gpu:GrBackendSurfaceMutableState_hdr"], -) - -generated_cc_atom( - name = "GrBackendSurface_src", - srcs = ["GrBackendSurface.cpp"], + name = "ResourceKey_hdr", + hdrs = ["ResourceKey.h"], visibility = ["//:__subpackages__"], deps = [ - ":GrBackendSurfaceMutableStateImpl_hdr", + "//include/core:SkData_hdr", "//include/core:SkString_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu/d3d:GrD3DTypes_hdr", - "//include/gpu/dawn:GrDawnTypes_hdr", - "//include/gpu/mtl:GrMtlTypes_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu/d3d:GrD3DResourceState_hdr", - "//src/gpu/d3d:GrD3DUtil_hdr", - "//src/gpu/dawn:GrDawnUtil_hdr", - "//src/gpu/gl:GrGLUtil_hdr", - "//src/gpu/mtl:GrMtlCppUtil_hdr", - "//src/gpu/vk:GrVkImageLayout_hdr", - "//src/gpu/vk:GrVkUtil_hdr", + "//include/private:SkOnce_hdr", + "//include/private:SkTemplates_hdr", + "//include/private:SkTo_hdr", ], ) generated_cc_atom( - name = "GrBackendTextureImageGenerator_hdr", - hdrs = ["GrBackendTextureImageGenerator.h"], + name = "ResourceKey_src", + srcs = ["ResourceKey.cpp"], visibility = ["//:__subpackages__"], deps = [ - ":GrTexture_hdr", ":ResourceKey_hdr", - "//include/core:SkImageGenerator_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/private:SkMutex_hdr", - ], -) - -generated_cc_atom( - name = "GrBackendTextureImageGenerator_src", - srcs = ["GrBackendTextureImageGenerator.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBackendTextureImageGenerator_hdr", - ":GrDirectContextPriv_hdr", - ":GrGpu_hdr", - ":GrProxyProvider_hdr", - ":GrRecordingContextPriv_hdr", - ":GrResourceCache_hdr", - ":GrResourceProviderPriv_hdr", - ":GrResourceProvider_hdr", - ":GrSemaphore_hdr", - ":GrTextureProxyPriv_hdr", - ":GrTexture_hdr", - ":SkGr_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//src/core:SkMessageBus_hdr", - "//src/gpu/gl:GrGLTexture_hdr", - ], -) - -generated_cc_atom( - name = "GrBackendUtils_hdr", - hdrs = ["GrBackendUtils.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkImage_hdr", - "//include/gpu:GrBackendSurface_hdr", - ], -) - -generated_cc_atom( - name = "GrBackendUtils_src", - srcs = ["GrBackendUtils.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBackendUtils_hdr", - ":GrDataUtils_hdr", - "//src/gpu/d3d:GrD3DUtil_hdr", - "//src/gpu/dawn:GrDawnUtil_hdr", - "//src/gpu/gl:GrGLUtil_hdr", - "//src/gpu/mtl:GrMtlCppUtil_hdr", - "//src/gpu/vk:GrVkUtil_hdr", - ], -) - -generated_cc_atom( - name = "GrBaseContextPriv_hdr", - hdrs = ["GrBaseContextPriv.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu:GrContextOptions_hdr", - "//include/private:GrContext_Base_hdr", - ], -) - -generated_cc_atom( - name = "GrBlend_hdr", - hdrs = ["GrBlend.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/core:SkTypes_hdr"], -) - -generated_cc_atom( - name = "GrBlurUtils_hdr", - hdrs = ["GrBlurUtils.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/private:GrTypesPriv_hdr"], -) - -generated_cc_atom( - name = "GrBlurUtils_src", - srcs = ["GrBlurUtils.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBlurUtils_hdr", - ":GrCaps_hdr", - ":GrDirectContextPriv_hdr", - ":GrFixedClip_hdr", - ":GrProxyProvider_hdr", - ":GrRecordingContextPriv_hdr", - ":GrResourceProvider_hdr", - ":GrStyle_hdr", - ":GrTextureProxy_hdr", - ":GrThreadSafeCache_hdr", - ":GrUtil_hdr", - ":SkGr_hdr", - "//include/core:SkPaint_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//src/core:SkDraw_hdr", - "//src/core:SkMaskFilterBase_hdr", - "//src/core:SkMatrixProvider_hdr", - "//src/core:SkTLazy_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", - ], -) - -generated_cc_atom( - name = "GrBufferAllocPool_hdr", - hdrs = ["GrBufferAllocPool.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCpuBuffer_hdr", - ":GrDrawIndirectCommand_hdr", - ":GrNonAtomicRef_hdr", - "//include/core:SkTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:SkNoncopyable_hdr", - "//include/private:SkTArray_hdr", - "//include/private:SkTDArray_hdr", + "//src/core:SkOpts_hdr", ], ) generated_cc_atom( - name = "GrBufferAllocPool_src", - srcs = ["GrBufferAllocPool.cpp"], + name = "ShaderErrorHandler_src", + srcs = ["ShaderErrorHandler.cpp"], visibility = ["//:__subpackages__"], deps = [ - ":GrBufferAllocPool_hdr", - ":GrCaps_hdr", - ":GrCpuBuffer_hdr", - ":GrDirectContextPriv_hdr", - ":GrGpuBuffer_hdr", - ":GrGpu_hdr", - ":GrResourceProvider_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrTypes_hdr", - "//include/private:SkMacros_hdr", - "//src/core:SkSafeMath_hdr", - "//src/core:SkTraceEvent_hdr", + "//include/gpu:ShaderErrorHandler_hdr", + "//src/utils:SkShaderUtils_hdr", ], ) generated_cc_atom( - name = "GrBuffer_hdr", - hdrs = ["GrBuffer.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/gpu:GrTypes_hdr"], -) - -generated_cc_atom( - name = "GrCaps_hdr", - hdrs = ["GrCaps.h"], + name = "Swizzle_hdr", + hdrs = ["Swizzle.h"], visibility = ["//:__subpackages__"], deps = [ - ":GrBlend_hdr", - ":GrSamplerState_hdr", - ":GrShaderCaps_hdr", - ":GrSurfaceProxy_hdr", - ":GrSwizzle_hdr", - "//include/core:SkImageInfo_hdr", - "//include/core:SkRefCnt_hdr", "//include/core:SkString_hdr", - "//include/gpu:GrDriverBugWorkarounds_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/core:SkCompressedDataUtils_hdr", - ], -) - -generated_cc_atom( - name = "GrCaps_src", - srcs = ["GrCaps.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBackendUtils_hdr", - ":GrCaps_hdr", - ":GrRenderTargetProxy_hdr", - ":GrSurfaceProxy_hdr", - ":GrSurface_hdr", - ":GrTestUtils_hdr", - ":GrWindowRectangles_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu:GrContextOptions_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/utils:SkJSONWriter_hdr", - ], -) - -generated_cc_atom( - name = "GrClientMappedBufferManager_hdr", - hdrs = ["GrClientMappedBufferManager.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpuBuffer_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/private:SkTArray_hdr", - "//src/core:SkMessageBus_hdr", - ], -) - -generated_cc_atom( - name = "GrClientMappedBufferManager_src", - srcs = ["GrClientMappedBufferManager.cpp"], - visibility = ["//:__subpackages__"], - deps = [":GrClientMappedBufferManager_hdr"], -) - -generated_cc_atom( - name = "GrClip_hdr", - hdrs = ["GrClip.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAppliedClip_hdr", - "//include/core:SkRRect_hdr", - "//include/core:SkRect_hdr", - ], -) - -generated_cc_atom( - name = "GrColorInfo_hdr", - hdrs = ["GrColorInfo.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColorSpaceXform_hdr", - "//include/core:SkColorSpace_hdr", - "//include/core:SkRefCnt_hdr", - "//include/gpu:GrTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrColorInfo_src", - srcs = ["GrColorInfo.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColorInfo_hdr", - "//src/core:SkColorSpacePriv_hdr", - ], -) - -generated_cc_atom( - name = "GrColorSpaceXform_hdr", - hdrs = ["GrColorSpaceXform.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrFragmentProcessor_hdr", - "//include/core:SkRefCnt_hdr", - "//src/core:SkColorSpacePriv_hdr", - "//src/core:SkColorSpaceXformSteps_hdr", - ], -) - -generated_cc_atom( - name = "GrColorSpaceXform_src", - srcs = ["GrColorSpaceXform.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColorInfo_hdr", - ":GrColorSpaceXform_hdr", - ":KeyBuilder_hdr", - "//include/core:SkColorSpace_hdr", - "//src/core:SkColorSpacePriv_hdr", - "//src/gpu/glsl:GrGLSLColorSpaceXformHelper_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - ], -) - -generated_cc_atom( - name = "GrColor_hdr", - hdrs = ["GrColor.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":BufferWriter_hdr", - "//include/core:SkColorPriv_hdr", - "//include/core:SkColor_hdr", - "//include/gpu:GrTypes_hdr", "//include/private:SkColorData_hdr", - "//include/private:SkHalf_hdr", - ], -) - -generated_cc_atom( - name = "GrContextThreadSafeProxyPriv_hdr", - hdrs = ["GrContextThreadSafeProxyPriv.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - "//include/gpu:GrContextThreadSafeProxy_hdr", - "//include/private:GrContext_Base_hdr", - "//src/gpu/text:GrTextBlobRedrawCoordinator_hdr", - ], -) - -generated_cc_atom( - name = "GrContextThreadSafeProxy_src", - srcs = ["GrContextThreadSafeProxy.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBaseContextPriv_hdr", - ":GrCaps_hdr", - ":GrContextThreadSafeProxyPriv_hdr", - ":GrThreadSafeCache_hdr", - ":GrThreadSafePipelineBuilder_hdr", - "//include/core:SkSurfaceCharacterization_hdr", - "//include/gpu:GrContextThreadSafeProxy_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/vk:GrVkCaps_hdr", - "//src/image:SkSurface_Gpu_hdr", - ], -) - -generated_cc_atom( - name = "GrContext_Base_src", - srcs = ["GrContext_Base.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBaseContextPriv_hdr", - ":GrCaps_hdr", - ":GrContextThreadSafeProxyPriv_hdr", - "//include/gpu:ShaderErrorHandler_hdr", - "//include/private:GrContext_Base_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - ], -) - -generated_cc_atom( - name = "GrCopyRenderTask_hdr", - hdrs = ["GrCopyRenderTask.h"], - visibility = ["//:__subpackages__"], - deps = [":GrRenderTask_hdr"], -) - -generated_cc_atom( - name = "GrCopyRenderTask_src", - srcs = ["GrCopyRenderTask.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCopyRenderTask_hdr", - ":GrGpu_hdr", - ":GrOpFlushState_hdr", - ":GrResourceAllocator_hdr", - "//src/gpu/geometry:GrRect_hdr", ], ) generated_cc_atom( - name = "GrCpuBuffer_hdr", - hdrs = ["GrCpuBuffer.h"], + name = "Swizzle_src", + srcs = ["Swizzle.cpp"], visibility = ["//:__subpackages__"], deps = [ - ":GrBuffer_hdr", - ":GrNonAtomicRef_hdr", - "//src/core:SkSafeMath_hdr", + ":Swizzle_hdr", + "//src/core:SkRasterPipeline_hdr", ], ) generated_cc_atom( - name = "GrDDLContext_src", - srcs = ["GrDDLContext.cpp"], + name = "GrRectanizer_hdr", + hdrs = ["GrRectanizer.h"], visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrContextThreadSafeProxyPriv_hdr", - ":GrProgramDesc_hdr", - ":GrProgramInfo_hdr", - ":GrRecordingContextPriv_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//src/core:SkLRUCache_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - ], -) - -generated_cc_atom( - name = "GrDDLTask_hdr", - hdrs = ["GrDDLTask.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrRenderTask_hdr", - "//include/core:SkPoint_hdr", - ], -) - -generated_cc_atom( - name = "GrDDLTask_src", - srcs = ["GrDDLTask.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDDLTask_hdr", - ":GrResourceAllocator_hdr", - "//include/core:SkDeferredDisplayList_hdr", - "//src/core:SkDeferredDisplayListPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrDataUtils_hdr", - hdrs = ["GrDataUtils.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkColor_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:SkTArray_hdr", - ], -) - -generated_cc_atom( - name = "GrDataUtils_src", - srcs = ["GrDataUtils.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrColor_hdr", - ":GrDataUtils_hdr", - ":GrImageInfo_hdr", - ":GrPixmap_hdr", - ":GrSwizzle_hdr", - "//include/private:SkTPin_hdr", - "//include/third_party/skcms:skcms_hdr", - "//src/core:SkColorSpaceXformSteps_hdr", - "//src/core:SkCompressedDataUtils_hdr", - "//src/core:SkConvertPixels_hdr", - "//src/core:SkMathPriv_hdr", - "//src/core:SkMipmap_hdr", - "//src/core:SkRasterPipeline_hdr", - "//src/core:SkTLazy_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/core:SkUtils_hdr", - ], -) - -generated_cc_atom( - name = "GrDefaultGeoProcFactory_hdr", - hdrs = ["GrDefaultGeoProcFactory.h"], - visibility = ["//:__subpackages__"], - deps = [":GrGeometryProcessor_hdr"], -) - -generated_cc_atom( - name = "GrDefaultGeoProcFactory_src", - srcs = ["GrDefaultGeoProcFactory.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrDefaultGeoProcFactory_hdr", - ":GrGeometryProcessor_hdr", - ":KeyBuilder_hdr", - "//include/core:SkRefCnt_hdr", - "//src/core:SkArenaAlloc_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - ], -) - -generated_cc_atom( - name = "GrDeferredProxyUploader_hdr", - hdrs = ["GrDeferredProxyUploader.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrOpFlushState_hdr", - ":GrTextureProxyPriv_hdr", - "//include/core:SkRefCnt_hdr", - "//include/private:SkSemaphore_hdr", - "//src/core:SkAutoPixmapStorage_hdr", - ], -) - -generated_cc_atom( - name = "GrDeferredUpload_hdr", - hdrs = ["GrDeferredUpload.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrDirectContextPriv_hdr", - hdrs = ["GrDirectContextPriv.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":BaseDevice_hdr", - ":GrRecordingContextPriv_hdr", - "//include/core:SkSpan_hdr", - "//include/core:SkSurface_hdr", - "//include/gpu:GrDirectContext_hdr", - ], -) - -generated_cc_atom( - name = "GrDirectContextPriv_src", - srcs = ["GrDirectContextPriv.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrContextThreadSafeProxyPriv_hdr", - ":GrDirectContextPriv_hdr", - ":GrDrawingManager_hdr", - ":GrGpu_hdr", - ":GrMemoryPool_hdr", - ":GrRecordingContextPriv_hdr", - ":GrTexture_hdr", - ":GrThreadSafePipelineBuilder_hdr", - ":GrTracing_hdr", - ":SkGr_hdr", - ":SurfaceContext_hdr", - ":SurfaceFillContext_hdr", - "//include/gpu:GrContextThreadSafeProxy_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/core:SkRuntimeEffectPriv_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/text:GrAtlasManager_hdr", - "//src/gpu/text:GrTextBlobRedrawCoordinator_hdr", - "//src/image:SkImage_Base_hdr", - "//src/image:SkImage_Gpu_hdr", - ], -) - -generated_cc_atom( - name = "GrDirectContext_src", - srcs = ["GrDirectContext.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBackendUtils_hdr", - ":GrClientMappedBufferManager_hdr", - ":GrContextThreadSafeProxyPriv_hdr", - ":GrDirectContextPriv_hdr", - ":GrDrawingManager_hdr", - ":GrGpu_hdr", - ":GrResourceProvider_hdr", - ":GrSemaphore_hdr", - ":GrThreadSafePipelineBuilder_hdr", - ":SurfaceContext_hdr", - "//include/core:SkString_hdr", - "//include/core:SkTraceMemoryDump_hdr", - "//include/gpu:GrBackendSemaphore_hdr", - "//include/gpu:GrContextThreadSafeProxy_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu/mtl:GrMtlBackendContext_hdr", - "//include/utils:SkRandom_hdr", - "//src/core:SkAutoMalloc_hdr", - "//src/core:SkTaskGroup_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu/d3d:GrD3DGpu_hdr", - "//src/gpu/dawn:GrDawnGpu_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/gl:GrGLGpu_hdr", - "//src/gpu/mock:GrMockGpu_hdr", - "//src/gpu/mtl:GrMtlTrampoline_hdr", - "//src/gpu/ops:SmallPathAtlasMgr_hdr", - "//src/gpu/text:GrAtlasManager_hdr", - "//src/gpu/text:GrStrikeCache_hdr", - "//src/gpu/vk:GrVkGpu_hdr", - "//src/image:SkImage_GpuBase_hdr", - "//src/utils:SkJSONWriter_hdr", - "//src/utils:SkShaderUtils_hdr", - ], -) - -generated_cc_atom( - name = "GrDistanceFieldGenFromVector_hdr", - hdrs = ["GrDistanceFieldGenFromVector.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/core:SkPath_hdr"], -) - -generated_cc_atom( - name = "GrDistanceFieldGenFromVector_src", - srcs = ["GrDistanceFieldGenFromVector.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDistanceFieldGenFromVector_hdr", - "//include/core:SkMatrix_hdr", - "//include/gpu:GrConfig_hdr", - "//include/private:SkTPin_hdr", - "//src/core:SkAutoMalloc_hdr", - "//src/core:SkDistanceFieldGen_hdr", - "//src/core:SkGeometry_hdr", - "//src/core:SkPointPriv_hdr", - "//src/core:SkRectPriv_hdr", - "//src/gpu/geometry:GrPathUtils_hdr", - ], -) - -generated_cc_atom( - name = "GrDrawIndirectCommand_hdr", - hdrs = ["GrDrawIndirectCommand.h"], - visibility = ["//:__subpackages__"], -) - -generated_cc_atom( - name = "GrDrawOpAtlas_hdr", - hdrs = ["GrDrawOpAtlas.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDeferredUpload_hdr", - ":GrRectanizerSkyline_hdr", - ":GrSurfaceProxyView_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/private:SkTArray_hdr", - "//src/core:SkIPoint16_hdr", - "//src/core:SkTInternalLList_hdr", - "//src/gpu/geometry:GrRect_hdr", - ], -) - -generated_cc_atom( - name = "GrDrawOpAtlas_src", - srcs = ["GrDrawOpAtlas.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBackendUtils_hdr", - ":GrDrawOpAtlas_hdr", - ":GrOnFlushResourceProvider_hdr", - ":GrOpFlushState_hdr", - ":GrProxyProvider_hdr", - ":GrResourceProviderPriv_hdr", - ":GrResourceProvider_hdr", - ":GrSurfaceProxyPriv_hdr", - ":GrTexture_hdr", - ":GrTracing_hdr", - "//include/private:SkTPin_hdr", - "//src/core:SkOpts_hdr", - ], -) - -generated_cc_atom( - name = "GrDrawOpTest_hdr", - hdrs = ["GrDrawOpTest.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrTestUtils_hdr", - "//include/core:SkRefCnt_hdr", - ], -) - -generated_cc_atom( - name = "GrDrawOpTest_src", - srcs = ["GrDrawOpTest.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBaseContextPriv_hdr", - ":GrCaps_hdr", - ":GrDrawOpTest_hdr", - ":GrUserStencilSettings_hdr", - "//include/core:SkTypes_hdr", - "//include/private:GrContext_Base_hdr", - "//include/utils:SkRandom_hdr", - ], -) - -generated_cc_atom( - name = "GrDrawingManager_hdr", - hdrs = ["GrDrawingManager.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBufferAllocPool_hdr", - ":GrDeferredUpload_hdr", - ":GrHashMapWithCache_hdr", - ":GrResourceCache_hdr", - ":GrSurfaceProxy_hdr", - "//include/core:SkSpan_hdr", - "//include/core:SkSurface_hdr", - "//include/private:SkTArray_hdr", - "//include/private:SkTHash_hdr", - "//src/gpu/v1:PathRendererChain_hdr", - "//src/gpu/v1:PathRenderer_hdr", - ], -) - -generated_cc_atom( - name = "GrDrawingManager_src", - srcs = ["GrDrawingManager.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrClientMappedBufferManager_hdr", - ":GrCopyRenderTask_hdr", - ":GrDDLTask_hdr", - ":GrDirectContextPriv_hdr", - ":GrDrawingManager_hdr", - ":GrGpu_hdr", - ":GrMemoryPool_hdr", - ":GrOnFlushResourceProvider_hdr", - ":GrOpFlushState_hdr", - ":GrRecordingContextPriv_hdr", - ":GrRenderTargetProxy_hdr", - ":GrRenderTaskCluster_hdr", - ":GrRenderTask_hdr", - ":GrResourceAllocator_hdr", - ":GrResourceProvider_hdr", - ":GrSurfaceProxyPriv_hdr", - ":GrTTopoSort_hdr", - ":GrTextureProxyPriv_hdr", - ":GrTextureProxy_hdr", - ":GrTextureResolveRenderTask_hdr", - ":GrTexture_hdr", - ":GrTracing_hdr", - ":GrTransferFromRenderTask_hdr", - ":GrWaitRenderTask_hdr", - ":GrWritePixelsRenderTask_hdr", - "//include/core:SkDeferredDisplayList_hdr", - "//include/gpu:GrBackendSemaphore_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//src/core:SkDeferredDisplayListPriv_hdr", - "//src/core:SkTInternalLList_hdr", - "//src/gpu/ops:OpsTask_hdr", - "//src/gpu/ops:SoftwarePathRenderer_hdr", - "//src/gpu/text:GrSDFTControl_hdr", - "//src/image:SkSurface_Gpu_hdr", - ], -) - -generated_cc_atom( - name = "GrDriverBugWorkarounds_src", - srcs = ["GrDriverBugWorkarounds.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkTypes_hdr", - "//include/gpu:GrDriverBugWorkarounds_hdr", - ], -) - -generated_cc_atom( - name = "GrDstProxyView_hdr", - hdrs = ["GrDstProxyView.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSurfaceProxyView_hdr", - "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrDynamicAtlas_hdr", - hdrs = ["GrDynamicAtlas.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrTextureProxy_hdr", - "//src/core:SkArenaAlloc_hdr", - ], -) - -generated_cc_atom( - name = "GrDynamicAtlas_src", - srcs = ["GrDynamicAtlas.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrDynamicAtlas_hdr", - ":GrOnFlushResourceProvider_hdr", - ":GrProxyProvider_hdr", - ":GrRectanizerPow2_hdr", - ":GrRectanizerSkyline_hdr", - ":GrRenderTarget_hdr", - ":GrResourceProvider_hdr", - ":GrSurfaceProxyPriv_hdr", - ":GrSurfaceProxyView_hdr", - "//src/core:SkIPoint16_hdr", - ], -) - -generated_cc_atom( - name = "GrEagerVertexAllocator_hdr", - hdrs = ["GrEagerVertexAllocator.h"], - visibility = ["//:__subpackages__"], - deps = [":GrThreadSafeCache_hdr"], -) - -generated_cc_atom( - name = "GrEagerVertexAllocator_src", - srcs = ["GrEagerVertexAllocator.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrEagerVertexAllocator_hdr", - ":GrMeshDrawTarget_hdr", - ], -) - -generated_cc_atom( - name = "GrFPArgs_hdr", - hdrs = ["GrFPArgs.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/core:SkMatrix_hdr"], -) - -generated_cc_atom( - name = "GrFinishCallbacks_hdr", - hdrs = ["GrFinishCallbacks.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrFinishCallbacks_src", - srcs = ["GrFinishCallbacks.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrFinishCallbacks_hdr", - ":GrGpu_hdr", - ], -) - -generated_cc_atom( - name = "GrFixedClip_hdr", - hdrs = ["GrFixedClip.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrClip_hdr", - ":GrScissorState_hdr", - ":GrWindowRectsState_hdr", - ], -) - -generated_cc_atom( - name = "GrFixedClip_src", - srcs = ["GrFixedClip.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAppliedClip_hdr", - ":GrFixedClip_hdr", - ], -) - -generated_cc_atom( - name = "GrFragmentProcessor_hdr", - hdrs = ["GrFragmentProcessor.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrProcessor_hdr", - "//include/private:SkMacros_hdr", - "//include/private:SkSLSampleUsage_hdr", - "//include/private:SkSLString_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - ], -) - -generated_cc_atom( - name = "GrFragmentProcessor_src", - srcs = ["GrFragmentProcessor.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrFragmentProcessor_hdr", - ":GrPipeline_hdr", - ":GrProcessorAnalysis_hdr", - ":GrShaderCaps_hdr", - ":KeyBuilder_hdr", - "//src/core:SkRuntimeEffectPriv_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - ], -) - -generated_cc_atom( - name = "GrGeometryProcessor_hdr", - hdrs = ["GrGeometryProcessor.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColor_hdr", - ":GrFragmentProcessor_hdr", - ":GrProcessor_hdr", - ":GrShaderCaps_hdr", - ":GrShaderVar_hdr", - ":GrSwizzle_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - ], -) - -generated_cc_atom( - name = "GrGeometryProcessor_src", - srcs = ["GrGeometryProcessor.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGeometryProcessor_hdr", - ":GrPipeline_hdr", - ":KeyBuilder_hdr", - "//src/core:SkMatrixPriv_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - ], -) - -generated_cc_atom( - name = "GrGlyph_hdr", - hdrs = ["GrGlyph.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDrawOpAtlas_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/core:SkGlyph_hdr", - "//src/core:SkMask_hdr", - ], -) - -generated_cc_atom( - name = "GrGpuBuffer_hdr", - hdrs = ["GrGpuBuffer.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBuffer_hdr", - ":GrGpuResource_hdr", - ], -) - -generated_cc_atom( - name = "GrGpuBuffer_src", - srcs = ["GrGpuBuffer.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrGpuBuffer_hdr", - ":GrGpu_hdr", - ], -) - -generated_cc_atom( - name = "GrGpuResourceCacheAccess_hdr", - hdrs = ["GrGpuResourceCacheAccess.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpuResourcePriv_hdr", - ":GrGpuResource_hdr", - ], -) - -generated_cc_atom( - name = "GrGpuResourcePriv_hdr", - hdrs = ["GrGpuResourcePriv.h"], - visibility = ["//:__subpackages__"], - deps = [":GrGpuResource_hdr"], -) - -generated_cc_atom( - name = "GrGpuResource_hdr", - hdrs = ["GrGpuResource.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":ResourceKey_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:SkNoncopyable_hdr", - ], -) - -generated_cc_atom( - name = "GrGpuResource_src", - srcs = ["GrGpuResource.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDirectContextPriv_hdr", - ":GrGpuResourcePriv_hdr", - ":GrGpuResource_hdr", - ":GrGpu_hdr", - ":GrResourceCache_hdr", - "//include/core:SkTraceMemoryDump_hdr", - "//include/gpu:GrDirectContext_hdr", - ], -) - -generated_cc_atom( - name = "GrGpu_hdr", - hdrs = ["GrGpu.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAttachment_hdr", - ":GrCaps_hdr", - ":GrOpsRenderPass_hdr", - ":GrPixmap_hdr", - ":GrSwizzle_hdr", - ":GrXferProcessor_hdr", - "//include/core:SkPath_hdr", - "//include/core:SkSpan_hdr", - "//include/core:SkSurface_hdr", - "//include/gpu:GrTypes_hdr", - "//include/private:SkTArray_hdr", - "//src/core:SkTInternalLList_hdr", - ], -) - -generated_cc_atom( - name = "GrGpu_src", - srcs = ["GrGpu.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAttachment_hdr", - ":GrBackendUtils_hdr", - ":GrCaps_hdr", - ":GrDataUtils_hdr", - ":GrDirectContextPriv_hdr", - ":GrGpuResourcePriv_hdr", - ":GrGpu_hdr", - ":GrNativeRect_hdr", - ":GrPipeline_hdr", - ":GrRenderTarget_hdr", - ":GrResourceCache_hdr", - ":GrResourceProvider_hdr", - ":GrRingBuffer_hdr", - ":GrSemaphore_hdr", - ":GrStagingBufferManager_hdr", - ":GrStencilSettings_hdr", - ":GrTextureProxyPriv_hdr", - ":GrTracing_hdr", - "//include/gpu:GrBackendSemaphore_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/core:SkCompressedDataUtils_hdr", - "//src/core:SkMathPriv_hdr", - "//src/core:SkMipmap_hdr", - "//src/sksl:SkSLCompiler_hdr", - "//src/utils:SkJSONWriter_hdr", - ], -) - -generated_cc_atom( - name = "GrHashMapWithCache_hdr", - hdrs = ["GrHashMapWithCache.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/private:SkChecksum_hdr", - "//include/private:SkNoncopyable_hdr", - "//include/private:SkTHash_hdr", - ], -) - -generated_cc_atom( - name = "GrImageContextPriv_hdr", - hdrs = ["GrImageContextPriv.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBaseContextPriv_hdr", - "//include/gpu:GrContextThreadSafeProxy_hdr", - "//include/private:GrImageContext_hdr", - ], -) - -generated_cc_atom( - name = "GrImageContext_src", - srcs = ["GrImageContext.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrContextThreadSafeProxyPriv_hdr", - ":GrImageContextPriv_hdr", - ":GrProxyProvider_hdr", - "//include/private:GrImageContext_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - ], -) - -generated_cc_atom( - name = "GrImageInfo_hdr", - hdrs = ["GrImageInfo.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColorInfo_hdr", - "//include/core:SkImageInfo_hdr", - "//include/private:GrTypesPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrManagedResource_hdr", - hdrs = ["GrManagedResource.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/private:GrTypesPriv_hdr", - "//include/private:SkMutex_hdr", - "//include/private:SkTHash_hdr", - "//include/utils:SkRandom_hdr", - ], -) - -generated_cc_atom( - name = "GrManagedResource_src", - srcs = ["GrManagedResource.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpuResourcePriv_hdr", - ":GrManagedResource_hdr", - ":GrTexture_hdr", - ], -) - -generated_cc_atom( - name = "GrMemoryPool_hdr", - hdrs = ["GrMemoryPool.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/private:SkTHash_hdr", - "//src/core:SkBlockAllocator_hdr", - ], -) - -generated_cc_atom( - name = "GrMemoryPool_src", - srcs = ["GrMemoryPool.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrMemoryPool_hdr", - "//include/private:SkTPin_hdr", - "//src/core:SkASAN_hdr", - ], -) - -generated_cc_atom( - name = "GrMeshDrawTarget_hdr", - hdrs = ["GrMeshDrawTarget.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDrawIndirectCommand_hdr", - ":GrSimpleMesh_hdr", - ], -) - -generated_cc_atom( - name = "GrMeshDrawTarget_src", - srcs = ["GrMeshDrawTarget.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":BufferWriter_hdr", - ":GrMeshDrawTarget_hdr", - ":GrResourceProvider_hdr", - ], -) - -generated_cc_atom( - name = "GrNativeRect_hdr", - hdrs = ["GrNativeRect.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRect_hdr", - "//include/gpu:GrTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrNonAtomicRef_hdr", - hdrs = ["GrNonAtomicRef.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/private:SkNoncopyable_hdr", - "//include/private:SkTArray_hdr", - ], -) - -generated_cc_atom( - name = "GrOnFlushResourceProvider_hdr", - hdrs = ["GrOnFlushResourceProvider.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDeferredUpload_hdr", - "//include/core:SkSpan_hdr", - ], -) - -generated_cc_atom( - name = "GrOnFlushResourceProvider_src", - srcs = ["GrOnFlushResourceProvider.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDirectContextPriv_hdr", - ":GrDrawingManager_hdr", - ":GrOnFlushResourceProvider_hdr", - ":GrProxyProvider_hdr", - ":GrRecordingContextPriv_hdr", - ":GrResourceProvider_hdr", - ":GrSurfaceProxyPriv_hdr", - ":GrSurfaceProxy_hdr", - ":GrTextureResolveRenderTask_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - ], -) - -generated_cc_atom( - name = "GrOpFlushState_hdr", - hdrs = ["GrOpFlushState.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAppliedClip_hdr", - ":GrBufferAllocPool_hdr", - ":GrDeferredUpload_hdr", - ":GrMeshDrawTarget_hdr", - ":GrProgramInfo_hdr", - ":GrRenderTargetProxy_hdr", - ":GrSurfaceProxyView_hdr", - "//src/core:SkArenaAllocList_hdr", - "//src/core:SkArenaAlloc_hdr", - ], -) - -generated_cc_atom( - name = "GrOpFlushState_src", - srcs = ["GrOpFlushState.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDataUtils_hdr", - ":GrDirectContextPriv_hdr", - ":GrDrawOpAtlas_hdr", - ":GrGpu_hdr", - ":GrImageInfo_hdr", - ":GrOpFlushState_hdr", - ":GrProgramInfo_hdr", - ":GrResourceProvider_hdr", - ":GrTexture_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/core:SkConvertPixels_hdr", - ], -) - -generated_cc_atom( - name = "GrOpsRenderPass_hdr", - hdrs = ["GrOpsRenderPass.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDeferredUpload_hdr", - ":GrPipeline_hdr", - "//include/core:SkDrawable_hdr", - ], -) - -generated_cc_atom( - name = "GrOpsRenderPass_src", - srcs = ["GrOpsRenderPass.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrCpuBuffer_hdr", - ":GrDrawIndirectCommand_hdr", - ":GrGeometryProcessor_hdr", - ":GrGpu_hdr", - ":GrOpsRenderPass_hdr", - ":GrProgramInfo_hdr", - ":GrRenderTarget_hdr", - ":GrScissorState_hdr", - ":GrSimpleMesh_hdr", - ":GrTexture_hdr", - "//include/core:SkRect_hdr", - ], -) - -generated_cc_atom( - name = "GrOpsTypes_hdr", - hdrs = ["GrOpsTypes.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSurfaceProxyView_hdr", - "//include/core:SkMatrix_hdr", - "//include/core:SkRect_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:SkColorData_hdr", - ], -) - -generated_cc_atom( - name = "GrPaint_hdr", - hdrs = ["GrPaint.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColor_hdr", - ":GrFragmentProcessor_hdr", - "//include/core:SkBlendMode_hdr", - "//include/core:SkRefCnt_hdr", - "//include/core:SkRegion_hdr", - "//src/core:SkTLazy_hdr", - ], -) - -generated_cc_atom( - name = "GrPaint_src", - srcs = ["GrPaint.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrPaint_hdr", - ":GrXferProcessor_hdr", - "//src/gpu/effects:GrCoverageSetOpXP_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - ], -) - -generated_cc_atom( - name = "GrPersistentCacheUtils_hdr", - hdrs = ["GrPersistentCacheUtils.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkData_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/sksl/ir:SkSLProgram_hdr", - ], -) - -generated_cc_atom( - name = "GrPersistentCacheUtils_src", - srcs = ["GrPersistentCacheUtils.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrPersistentCacheUtils_hdr", - "//include/private:SkSLString_hdr", - "//src/core:SkReadBuffer_hdr", - "//src/core:SkWriteBuffer_hdr", - ], -) - -generated_cc_atom( - name = "GrPipeline_hdr", - hdrs = ["GrPipeline.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColor_hdr", - ":GrDstProxyView_hdr", - ":GrFragmentProcessor_hdr", - ":GrProcessorSet_hdr", - ":GrScissorState_hdr", - ":GrSurfaceProxyView_hdr", - ":GrUserStencilSettings_hdr", - ":GrWindowRectsState_hdr", - "//include/core:SkRefCnt_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - ], -) - -generated_cc_atom( - name = "GrPipeline_src", - srcs = ["GrPipeline.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAppliedClip_hdr", - ":GrCaps_hdr", - ":GrPipeline_hdr", - ":GrXferProcessor_hdr", - ":KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - ], -) - -generated_cc_atom( - name = "GrPixmap_hdr", - hdrs = ["GrPixmap.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrImageInfo_hdr", - "//include/core:SkData_hdr", - "//include/core:SkPixmap_hdr", - ], -) - -generated_cc_atom( - name = "GrProcessorAnalysis_hdr", - hdrs = ["GrProcessorAnalysis.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/private:SkColorData_hdr"], -) - -generated_cc_atom( - name = "GrProcessorAnalysis_src", - srcs = ["GrProcessorAnalysis.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrFragmentProcessor_hdr", - ":GrGeometryProcessor_hdr", - ":GrProcessorAnalysis_hdr", - ], -) - -generated_cc_atom( - name = "GrProcessorSet_hdr", - hdrs = ["GrProcessorSet.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrFragmentProcessor_hdr", - ":GrPaint_hdr", - ":GrProcessorAnalysis_hdr", - ":GrXferProcessor_hdr", - "//include/private:SkTemplates_hdr", - ], -) - -generated_cc_atom( - name = "GrProcessorSet_src", - srcs = ["GrProcessorSet.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAppliedClip_hdr", - ":GrCaps_hdr", - ":GrProcessorSet_hdr", - ":GrUserStencilSettings_hdr", - ":GrXferProcessor_hdr", - "//src/core:SkBlendModePriv_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - ], -) - -generated_cc_atom( - name = "GrProcessorUnitTest_hdr", - hdrs = ["GrProcessorUnitTest.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrTestUtils_hdr", - ":GrTextureProxy_hdr", - "//include/core:SkTypes_hdr", - "//include/private:SkTArray_hdr", - "//src/core:SkArenaAlloc_hdr", - ], -) - -generated_cc_atom( - name = "GrProcessorUnitTest_src", - srcs = ["GrProcessorUnitTest.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrFragmentProcessor_hdr", - ":GrProcessorUnitTest_hdr", - ":GrRecordingContextPriv_hdr", - ":GrSurfaceProxyView_hdr", - "//include/gpu:GrRecordingContext_hdr", - ], -) - -generated_cc_atom( - name = "GrProcessor_hdr", - hdrs = ["GrProcessor.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColor_hdr", - ":GrGpuBuffer_hdr", - ":GrProcessorUnitTest_hdr", - ":GrProgramDesc_hdr", - ":GrSamplerState_hdr", - ":GrShaderVar_hdr", - ":GrSurfaceProxyPriv_hdr", - ":GrTextureProxy_hdr", - "//include/core:SkMath_hdr", - "//include/core:SkString_hdr", - ], -) - -generated_cc_atom( - name = "GrProcessor_src", - srcs = ["GrProcessor.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGeometryProcessor_hdr", - ":GrMemoryPool_hdr", - ":GrProcessor_hdr", - ":GrSamplerState_hdr", - ":GrTextureProxy_hdr", - ":GrXferProcessor_hdr", - "//include/private:SkSpinlock_hdr", - ], -) - -generated_cc_atom( - name = "GrProgramDesc_hdr", - hdrs = ["GrProgramDesc.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkString_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:SkTArray_hdr", - "//include/private:SkTo_hdr", - ], -) - -generated_cc_atom( - name = "GrProgramDesc_src", - srcs = ["GrProgramDesc.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrFragmentProcessor_hdr", - ":GrGeometryProcessor_hdr", - ":GrPipeline_hdr", - ":GrProcessor_hdr", - ":GrProgramDesc_hdr", - ":GrProgramInfo_hdr", - ":GrRenderTarget_hdr", - ":GrShaderCaps_hdr", - ":GrTexture_hdr", - ":KeyBuilder_hdr", - "//include/private:SkChecksum_hdr", - "//include/private:SkTo_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - ], -) - -generated_cc_atom( - name = "GrProgramInfo_hdr", - hdrs = ["GrProgramInfo.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGeometryProcessor_hdr", - ":GrPipeline_hdr", - "//include/gpu:GrTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrProgramInfo_src", - srcs = ["GrProgramInfo.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrProgramInfo_hdr", - ":GrStencilSettings_hdr", - ":GrTexture_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - ], -) - -generated_cc_atom( - name = "GrProxyProvider_hdr", - hdrs = ["GrProxyProvider.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrTextureProxy_hdr", - ":ResourceKey_hdr", - "//include/gpu:GrTypes_hdr", - "//src/core:SkTDynamicHash_hdr", - ], -) - -generated_cc_atom( - name = "GrProxyProvider_src", - srcs = ["GrProxyProvider.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrContextThreadSafeProxyPriv_hdr", - ":GrDirectContextPriv_hdr", - ":GrImageContextPriv_hdr", - ":GrProxyProvider_hdr", - ":GrRenderTarget_hdr", - ":GrResourceProvider_hdr", - ":GrSurfaceProxyPriv_hdr", - ":GrSurfaceProxy_hdr", - ":GrTextureProxyCacheAccess_hdr", - ":GrTextureRenderTargetProxy_hdr", - ":GrTexture_hdr", - ":SkGr_hdr", - "//include/core:SkBitmap_hdr", - "//include/core:SkImage_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:GrImageContext_hdr", - "//include/private:SingleOwner_hdr", - "//include/private:SkImageInfoPriv_hdr", - "//src/core:SkAutoPixmapStorage_hdr", - "//src/core:SkCompressedDataUtils_hdr", - "//src/core:SkImagePriv_hdr", - "//src/core:SkMipmap_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/image:SkImage_Base_hdr", - ], -) - -generated_cc_atom( - name = "GrRecordingContextPriv_hdr", - hdrs = ["GrRecordingContextPriv.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":BaseDevice_hdr", - ":GrImageContextPriv_hdr", - "//include/core:SkPaint_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//src/gpu/text:GrSDFTControl_hdr", - ], -) - -generated_cc_atom( - name = "GrRecordingContextPriv_src", - srcs = ["GrRecordingContextPriv.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrDrawingManager_hdr", - ":GrProxyProvider_hdr", - ":GrRecordingContextPriv_hdr", - ":GrRenderTargetProxy_hdr", - ":GrSurfaceProxyView_hdr", - "//src/gpu/v1:Device_v1_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", - "//src/gpu/v1:SurfaceFillContext_v1_hdr", - ], -) - -generated_cc_atom( - name = "GrRecordingContext_src", - srcs = ["GrRecordingContext.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAuditTrail_hdr", - ":GrCaps_hdr", - ":GrContextThreadSafeProxyPriv_hdr", - ":GrDrawingManager_hdr", - ":GrMemoryPool_hdr", - ":GrProgramDesc_hdr", - ":GrProxyProvider_hdr", - ":GrRecordingContextPriv_hdr", - ":SkGr_hdr", - ":SurfaceContext_hdr", - "//include/gpu:GrContextThreadSafeProxy_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//src/core:SkArenaAlloc_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/ops:AtlasTextOp_hdr", - "//src/gpu/text:GrTextBlobRedrawCoordinator_hdr", - "//src/gpu/text:GrTextBlob_hdr", - "//src/utils:SkJSONWriter_hdr", - ], -) - -generated_cc_atom( - name = "GrRectanizerPow2_hdr", - hdrs = ["GrRectanizerPow2.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrRectanizer_hdr", - "//include/private:SkMalloc_hdr", - "//src/core:SkIPoint16_hdr", - "//src/core:SkMathPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrRectanizerPow2_src", - srcs = ["GrRectanizerPow2.cpp"], - visibility = ["//:__subpackages__"], - deps = [":GrRectanizerPow2_hdr"], -) - -generated_cc_atom( - name = "GrRectanizerSkyline_hdr", - hdrs = ["GrRectanizerSkyline.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrRectanizer_hdr", - "//include/private:SkTDArray_hdr", - ], -) - -generated_cc_atom( - name = "GrRectanizerSkyline_src", - srcs = ["GrRectanizerSkyline.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrRectanizerSkyline_hdr", - "//src/core:SkIPoint16_hdr", - ], -) - -generated_cc_atom( - name = "GrRectanizer_hdr", - hdrs = ["GrRectanizer.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/gpu:GrTypes_hdr"], -) - -generated_cc_atom( - name = "GrRefCnt_hdr", - hdrs = ["GrRefCnt.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpuResource_hdr", - ":GrManagedResource_hdr", - "//include/core:SkRefCnt_hdr", - ], -) - -generated_cc_atom( - name = "GrRenderTargetContext_hdr", - hdrs = ["GrRenderTargetContext.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkTypes_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", - ], -) - -generated_cc_atom( - name = "GrRenderTargetProxy_hdr", - hdrs = ["GrRenderTargetProxy.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrNativeRect_hdr", - ":GrSubRunAllocator_hdr", - ":GrSurfaceProxy_hdr", - ":GrSwizzle_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/core:SkArenaAlloc_hdr", - ], -) - -generated_cc_atom( - name = "GrRenderTargetProxy_src", - srcs = ["GrRenderTargetProxy.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrDirectContextPriv_hdr", - ":GrGpuResourcePriv_hdr", - ":GrRenderTargetProxy_hdr", - ":GrRenderTarget_hdr", - ":GrResourceProvider_hdr", - ":GrSurfaceProxyPriv_hdr", - ":GrSurface_hdr", - ":GrTextureRenderTargetProxy_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/core:SkMathPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrRenderTarget_hdr", - hdrs = ["GrRenderTarget.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSurface_hdr", - "//include/core:SkRect_hdr", - ], -) - -generated_cc_atom( - name = "GrRenderTarget_src", - srcs = ["GrRenderTarget.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAttachment_hdr", - ":GrBackendUtils_hdr", - ":GrGpu_hdr", - ":GrRenderTarget_hdr", - ":GrStencilSettings_hdr", - "//src/core:SkRectPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrRenderTaskCluster_hdr", - hdrs = ["GrRenderTaskCluster.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/core:SkSpan_hdr", - "//src/core:SkTInternalLList_hdr", - ], -) - -generated_cc_atom( - name = "GrRenderTaskCluster_src", - srcs = ["GrRenderTaskCluster.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrRenderTaskCluster_hdr", - ":GrRenderTask_hdr", - "//include/private:SkTHash_hdr", - ], -) - -generated_cc_atom( - name = "GrRenderTask_hdr", - hdrs = ["GrRenderTask.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSurfaceProxyView_hdr", - ":GrTextureProxy_hdr", - ":GrTextureResolveManager_hdr", - "//include/core:SkRefCnt_hdr", - "//include/private:SkTArray_hdr", - "//src/core:SkTInternalLList_hdr", - ], -) - -generated_cc_atom( - name = "GrRenderTask_src", - srcs = ["GrRenderTask.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAttachment_hdr", - ":GrRenderTarget_hdr", - ":GrRenderTask_hdr", - ":GrTextureProxyPriv_hdr", - ":GrTextureResolveRenderTask_hdr", - ], -) - -generated_cc_atom( - name = "GrResourceAllocator_hdr", - hdrs = ["GrResourceAllocator.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrHashMapWithCache_hdr", - ":GrSurfaceProxy_hdr", - ":GrSurface_hdr", - "//include/private:SkTHash_hdr", - "//src/core:SkArenaAlloc_hdr", - "//src/core:SkTMultiMap_hdr", - ], -) - -generated_cc_atom( - name = "GrResourceAllocator_src", - srcs = ["GrResourceAllocator.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDirectContextPriv_hdr", - ":GrGpuResourcePriv_hdr", - ":GrRenderTargetProxy_hdr", - ":GrResourceAllocator_hdr", - ":GrResourceProvider_hdr", - ":GrSurfaceProxyPriv_hdr", - ":GrSurfaceProxy_hdr", - ], -) - -generated_cc_atom( - name = "GrResourceCache_hdr", - hdrs = ["GrResourceCache.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpuResourceCacheAccess_hdr", - ":GrGpuResourcePriv_hdr", - ":GrGpuResource_hdr", - ":ResourceKey_hdr", - "//include/core:SkRefCnt_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/private:SkTArray_hdr", - "//include/private:SkTHash_hdr", - "//src/core:SkMessageBus_hdr", - "//src/core:SkTDPQueue_hdr", - "//src/core:SkTInternalLList_hdr", - "//src/core:SkTMultiMap_hdr", - ], -) - -generated_cc_atom( - name = "GrResourceCache_src", - srcs = ["GrResourceCache.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrDirectContextPriv_hdr", - ":GrGpuResourceCacheAccess_hdr", - ":GrProxyProvider_hdr", - ":GrResourceCache_hdr", - ":GrTextureProxyCacheAccess_hdr", - ":GrTexture_hdr", - ":GrThreadSafeCache_hdr", - ":GrTracing_hdr", - ":SkGr_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/private:SingleOwner_hdr", - "//include/private:SkTo_hdr", - "//include/utils:SkRandom_hdr", - "//src/core:SkMessageBus_hdr", - "//src/core:SkOpts_hdr", - "//src/core:SkScopeExit_hdr", - "//src/core:SkTSort_hdr", - ], -) - -generated_cc_atom( - name = "GrResourceHandle_hdr", - hdrs = ["GrResourceHandle.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/core:SkTypes_hdr"], -) - -generated_cc_atom( - name = "GrResourceProviderPriv_hdr", - hdrs = ["GrResourceProviderPriv.h"], - visibility = ["//:__subpackages__"], - deps = [":GrResourceProvider_hdr"], -) - -generated_cc_atom( - name = "GrResourceProvider_hdr", - hdrs = ["GrResourceProvider.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpuBuffer_hdr", - ":GrResourceCache_hdr", - "//include/gpu:GrContextOptions_hdr", - "//include/private:SkImageInfoPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrResourceProvider_src", - srcs = ["GrResourceProvider.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":BufferWriter_hdr", - ":GrAttachment_hdr", - ":GrCaps_hdr", - ":GrDataUtils_hdr", - ":GrGpuBuffer_hdr", - ":GrGpu_hdr", - ":GrImageInfo_hdr", - ":GrProxyProvider_hdr", - ":GrRenderTarget_hdr", - ":GrResourceCache_hdr", - ":GrResourceProvider_hdr", - ":GrSemaphore_hdr", - ":GrTexture_hdr", - ":ResourceKey_hdr", - ":SkGr_hdr", - "//include/gpu:GrBackendSemaphore_hdr", - "//include/private:SingleOwner_hdr", - "//src/core:SkConvertPixels_hdr", - "//src/core:SkMathPriv_hdr", - "//src/core:SkMipmap_hdr", - ], -) - -generated_cc_atom( - name = "GrRingBuffer_hdr", - hdrs = ["GrRingBuffer.h"], - visibility = ["//:__subpackages__"], - deps = [":GrGpuBuffer_hdr"], -) - -generated_cc_atom( - name = "GrRingBuffer_src", - srcs = ["GrRingBuffer.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDirectContextPriv_hdr", - ":GrGpu_hdr", - ":GrResourceProvider_hdr", - ":GrRingBuffer_hdr", - ], -) - -generated_cc_atom( - name = "GrSPIRVUniformHandler_hdr", - hdrs = ["GrSPIRVUniformHandler.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//src/core:SkTBlockList_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - ], -) - -generated_cc_atom( - name = "GrSPIRVUniformHandler_src", - srcs = ["GrSPIRVUniformHandler.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSPIRVUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", - ], -) - -generated_cc_atom( - name = "GrSPIRVVaryingHandler_hdr", - hdrs = ["GrSPIRVVaryingHandler.h"], - visibility = ["//:__subpackages__"], - deps = ["//src/gpu/glsl:GrGLSLVarying_hdr"], -) - -generated_cc_atom( - name = "GrSPIRVVaryingHandler_src", - srcs = ["GrSPIRVVaryingHandler.cpp"], - visibility = ["//:__subpackages__"], - deps = [":GrSPIRVVaryingHandler_hdr"], -) - -generated_cc_atom( - name = "GrSWMaskHelper_hdr", - hdrs = ["GrSWMaskHelper.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSurfaceProxyView_hdr", - "//include/core:SkMatrix_hdr", - "//include/core:SkRegion_hdr", - "//include/core:SkTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/core:SkAutoPixmapStorage_hdr", - "//src/core:SkDraw_hdr", - "//src/core:SkRasterClip_hdr", - ], -) - -generated_cc_atom( - name = "GrSWMaskHelper_src", - srcs = ["GrSWMaskHelper.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrProxyProvider_hdr", - ":GrRecordingContextPriv_hdr", - ":GrSWMaskHelper_hdr", - ":GrTextureProxy_hdr", - ":SkGr_hdr", - ":SurfaceContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//src/core:SkMatrixProvider_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - ], -) - -generated_cc_atom( - name = "GrSamplerState_hdr", - hdrs = ["GrSamplerState.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkSamplingOptions_hdr", - "//include/gpu:GrTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrScissorState_hdr", - hdrs = ["GrScissorState.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/core:SkRect_hdr"], -) - -generated_cc_atom( - name = "GrSemaphore_hdr", - hdrs = ["GrSemaphore.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/gpu:GrBackendSemaphore_hdr"], -) - -generated_cc_atom( - name = "GrShaderCaps_hdr", - hdrs = ["GrShaderCaps.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//src/gpu/glsl:GrGLSL_hdr", - "//src/sksl:SkSLUtil_hdr", - ], -) - -generated_cc_atom( - name = "GrShaderCaps_src", - srcs = ["GrShaderCaps.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrShaderCaps_hdr", - "//include/gpu:GrContextOptions_hdr", - "//src/utils:SkJSONWriter_hdr", - ], -) - -generated_cc_atom( - name = "GrShaderVar_hdr", - hdrs = ["GrShaderVar.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkString_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/core:SkSLTypeShared_hdr", - ], -) - -generated_cc_atom( - name = "GrShaderVar_src", - srcs = ["GrShaderVar.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrShaderCaps_hdr", - ":GrShaderVar_hdr", - ], -) - -generated_cc_atom( - name = "GrSimpleMesh_hdr", - hdrs = ["GrSimpleMesh.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBuffer_hdr", - ":GrGpuBuffer_hdr", - ":GrOpsRenderPass_hdr", - ], -) - -generated_cc_atom( - name = "GrStagingBufferManager_hdr", - hdrs = ["GrStagingBufferManager.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpuBuffer_hdr", - "//include/core:SkRefCnt_hdr", - ], -) - -generated_cc_atom( - name = "GrStagingBufferManager_src", - srcs = ["GrStagingBufferManager.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDirectContextPriv_hdr", - ":GrGpu_hdr", - ":GrResourceProvider_hdr", - ":GrStagingBufferManager_hdr", - "//include/gpu:GrDirectContext_hdr", - ], -) - -generated_cc_atom( - name = "GrStencilSettings_hdr", - hdrs = ["GrStencilSettings.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrUserStencilSettings_hdr", - "//include/core:SkRegion_hdr", - ], -) - -generated_cc_atom( - name = "GrStencilSettings_src", - srcs = ["GrStencilSettings.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrProcessor_hdr", - ":GrStencilSettings_hdr", - ":KeyBuilder_hdr", - ], -) - -generated_cc_atom( - name = "GrStyle_hdr", - hdrs = ["GrStyle.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkMatrix_hdr", - "//include/core:SkStrokeRec_hdr", - "//include/gpu:GrTypes_hdr", - "//include/private:SkTemplates_hdr", - "//src/core:SkPathEffectBase_hdr", - ], -) - -generated_cc_atom( - name = "GrStyle_src", - srcs = ["GrStyle.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrStyle_hdr", - "//src/utils:SkDashPathPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrSubRunAllocator_hdr", - hdrs = ["GrSubRunAllocator.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkMath_hdr", - "//include/core:SkSpan_hdr", - "//src/core:SkArenaAlloc_hdr", - ], -) - -generated_cc_atom( - name = "GrSubRunAllocator_src", - srcs = ["GrSubRunAllocator.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSubRunAllocator_hdr", - "//include/core:SkMath_hdr", - ], -) - -generated_cc_atom( - name = "GrSurfaceInfo_src", - srcs = ["GrSurfaceInfo.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu:GrSurfaceInfo_hdr", - "//include/gpu/d3d:GrD3DTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrSurfaceProxyPriv_hdr", - hdrs = ["GrSurfaceProxyPriv.h"], - visibility = ["//:__subpackages__"], - deps = [":GrSurfaceProxy_hdr"], -) - -generated_cc_atom( - name = "GrSurfaceProxyView_hdr", - hdrs = ["GrSurfaceProxyView.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrRenderTargetProxy_hdr", - ":GrSurfaceProxy_hdr", - ":GrSwizzle_hdr", - ":GrTextureProxy_hdr", - "//include/core:SkRefCnt_hdr", - "//include/gpu:GrTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrSurfaceProxy_hdr", - hdrs = ["GrSurfaceProxy.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpuResource_hdr", - ":GrSurface_hdr", - ":GrTexture_hdr", - "//include/core:SkRect_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/private:SkNoncopyable_hdr", - ], -) - -generated_cc_atom( - name = "GrSurfaceProxy_src", - srcs = ["GrSurfaceProxy.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAttachment_hdr", - ":GrCaps_hdr", - ":GrDirectContextPriv_hdr", - ":GrGpuResourcePriv_hdr", - ":GrImageInfo_hdr", - ":GrRecordingContextPriv_hdr", - ":GrRenderTarget_hdr", - ":GrResourceProvider_hdr", - ":GrSurfaceProxyPriv_hdr", - ":GrSurfaceProxy_hdr", - ":GrSurface_hdr", - ":GrTextureRenderTargetProxy_hdr", - ":GrTexture_hdr", - ":SurfaceFillContext_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//src/core:SkMathPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrSurface_hdr", - hdrs = ["GrSurface.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpuResource_hdr", - "//include/core:SkImageInfo_hdr", - "//include/core:SkRect_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu:GrTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrSurface_src", - srcs = ["GrSurface.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBackendUtils_hdr", - ":GrRenderTarget_hdr", - ":GrResourceProvider_hdr", - ":GrSurface_hdr", - ":GrTexture_hdr", - ":SkGr_hdr", - "//src/core:SkCompressedDataUtils_hdr", - "//src/core:SkMathPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrSwizzle_hdr", - hdrs = ["GrSwizzle.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColor_hdr", - "//include/core:SkString_hdr", - "//include/private:SkColorData_hdr", - ], -) - -generated_cc_atom( - name = "GrSwizzle_src", - srcs = ["GrSwizzle.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSwizzle_hdr", - "//src/core:SkRasterPipeline_hdr", - ], -) - -generated_cc_atom( - name = "GrTTopoSort_hdr", - hdrs = ["GrTTopoSort.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/private:SkTArray_hdr", - ], -) - -generated_cc_atom( - name = "GrTestUtils_hdr", - hdrs = ["GrTestUtils.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColor_hdr", - ":GrFPArgs_hdr", - ":GrSamplerState_hdr", - "//include/core:SkStrokeRec_hdr", - "//include/core:SkTypes_hdr", - "//include/private:SkMacros_hdr", - "//include/private:SkTemplates_hdr", - "//include/utils:SkRandom_hdr", - "//src/core:SkMatrixProvider_hdr", - "//src/core:SkPathEffectBase_hdr", - "//src/shaders:SkShaderBase_hdr", - ], -) - -generated_cc_atom( - name = "GrTestUtils_src", - srcs = ["GrTestUtils.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColorInfo_hdr", - ":GrProcessorUnitTest_hdr", - ":GrStyle_hdr", - ":GrTestUtils_hdr", - "//include/core:SkMatrix_hdr", - "//include/core:SkPathBuilder_hdr", - "//include/core:SkRRect_hdr", - "//src/core:SkRectPriv_hdr", - "//src/utils:SkDashPathPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrTextureProxyCacheAccess_hdr", - hdrs = ["GrTextureProxyCacheAccess.h"], - visibility = ["//:__subpackages__"], - deps = [":GrTextureProxy_hdr"], -) - -generated_cc_atom( - name = "GrTextureProxyPriv_hdr", - hdrs = ["GrTextureProxyPriv.h"], - visibility = ["//:__subpackages__"], - deps = [":GrTextureProxy_hdr"], -) - -generated_cc_atom( - name = "GrTextureProxy_hdr", - hdrs = ["GrTextureProxy.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSamplerState_hdr", - ":GrSurfaceProxy_hdr", - "//include/gpu:GrBackendSurface_hdr", - ], -) - -generated_cc_atom( - name = "GrTextureProxy_src", - srcs = ["GrTextureProxy.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDeferredProxyUploader_hdr", - ":GrDirectContextPriv_hdr", - ":GrGpuResourcePriv_hdr", - ":GrProxyProvider_hdr", - ":GrSurface_hdr", - ":GrTextureProxyPriv_hdr", - ":GrTextureProxy_hdr", - ":GrTexture_hdr", - "//include/gpu:GrDirectContext_hdr", - ], -) - -generated_cc_atom( - name = "GrTextureRenderTargetProxy_hdr", - hdrs = ["GrTextureRenderTargetProxy.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrRenderTargetProxy_hdr", - ":GrTextureProxy_hdr", - ], -) - -generated_cc_atom( - name = "GrTextureRenderTargetProxy_src", - srcs = ["GrTextureRenderTargetProxy.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrDirectContextPriv_hdr", - ":GrRenderTarget_hdr", - ":GrSurfaceProxyPriv_hdr", - ":GrSurface_hdr", - ":GrTextureProxyPriv_hdr", - ":GrTextureRenderTargetProxy_hdr", - ":GrTexture_hdr", - "//include/gpu:GrDirectContext_hdr", - ], -) - -generated_cc_atom( - name = "GrTextureResolveManager_hdr", - hdrs = ["GrTextureResolveManager.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDrawingManager_hdr", - "//include/core:SkRefCnt_hdr", - ], -) - -generated_cc_atom( - name = "GrTextureResolveRenderTask_hdr", - hdrs = ["GrTextureResolveRenderTask.h"], - visibility = ["//:__subpackages__"], - deps = [":GrRenderTask_hdr"], -) - -generated_cc_atom( - name = "GrTextureResolveRenderTask_src", - srcs = ["GrTextureResolveRenderTask.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpu_hdr", - ":GrMemoryPool_hdr", - ":GrOpFlushState_hdr", - ":GrRenderTarget_hdr", - ":GrResourceAllocator_hdr", - ":GrTextureResolveRenderTask_hdr", - ":GrTexture_hdr", - ], -) - -generated_cc_atom( - name = "GrTexture_hdr", - hdrs = ["GrTexture.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSurface_hdr", - "//include/core:SkImage_hdr", - "//include/core:SkPoint_hdr", - "//include/core:SkRefCnt_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/private:GrTypesPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrTexture_src", - srcs = ["GrTexture.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrDirectContextPriv_hdr", - ":GrGpu_hdr", - ":GrRenderTarget_hdr", - ":GrResourceCache_hdr", - ":GrTexture_hdr", - "//include/core:SkMath_hdr", - "//include/core:SkTypes_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrTypes_hdr", - "//src/core:SkMipmap_hdr", - ], -) - -generated_cc_atom( - name = "GrThreadSafeCache_hdr", - hdrs = ["GrThreadSafeCache.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpuBuffer_hdr", - ":GrSurfaceProxyView_hdr", - "//include/core:SkRefCnt_hdr", - "//include/private:SkSpinlock_hdr", - "//src/core:SkArenaAlloc_hdr", - "//src/core:SkTDynamicHash_hdr", - "//src/core:SkTInternalLList_hdr", - ], -) - -generated_cc_atom( - name = "GrThreadSafeCache_src", - srcs = ["GrThreadSafeCache.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrDirectContextPriv_hdr", - ":GrGpuBuffer_hdr", - ":GrProxyProvider_hdr", - ":GrResourceCache_hdr", - ":GrThreadSafeCache_hdr", - "//include/gpu:GrDirectContext_hdr", - ], -) - -generated_cc_atom( - name = "GrThreadSafePipelineBuilder_hdr", - hdrs = ["GrThreadSafePipelineBuilder.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/gpu:GrConfig_hdr", - "//include/private:SkTArray_hdr", - ], -) - -generated_cc_atom( - name = "GrThreadSafePipelineBuilder_src", - srcs = ["GrThreadSafePipelineBuilder.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrThreadSafePipelineBuilder_hdr", - "//include/core:SkString_hdr", - ], -) - -generated_cc_atom( - name = "GrTracing_hdr", - hdrs = ["GrTracing.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrAuditTrail_hdr", - "//src/core:SkTraceEvent_hdr", - ], -) - -generated_cc_atom( - name = "GrTransferFromRenderTask_hdr", - hdrs = ["GrTransferFromRenderTask.h"], - visibility = ["//:__subpackages__"], - deps = [":GrRenderTask_hdr"], -) - -generated_cc_atom( - name = "GrTransferFromRenderTask_src", - srcs = ["GrTransferFromRenderTask.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpu_hdr", - ":GrOpFlushState_hdr", - ":GrResourceAllocator_hdr", - ":GrResourceProvider_hdr", - ":GrTransferFromRenderTask_hdr", - ], -) - -generated_cc_atom( - name = "GrUniformDataManager_hdr", - hdrs = ["GrUniformDataManager.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/private:GrTypesPriv_hdr", - "//include/private:SkTArray_hdr", - "//src/core:SkAutoMalloc_hdr", - "//src/core:SkSLTypeShared_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - ], -) - -generated_cc_atom( - name = "GrUniformDataManager_src", - srcs = ["GrUniformDataManager.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrShaderVar_hdr", - ":GrUniformDataManager_hdr", - "//include/private:SkHalf_hdr", - ], -) - -generated_cc_atom( - name = "GrUserStencilSettings_hdr", - hdrs = ["GrUserStencilSettings.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/gpu:GrTypes_hdr"], -) - -generated_cc_atom( - name = "GrUtil_hdr", - hdrs = ["GrUtil.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkScalar_hdr", - "//include/core:SkTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/core:SkSLTypeShared_hdr", - ], -) - -generated_cc_atom( - name = "GrUtil_src", - srcs = ["GrUtil.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrStyle_hdr", - ":GrUtil_hdr", - "//src/core:SkDrawProcs_hdr", - ], -) - -generated_cc_atom( - name = "GrVertexChunkArray_hdr", - hdrs = ["GrVertexChunkArray.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":BufferWriter_hdr", - ":GrBuffer_hdr", - "//include/core:SkRefCnt_hdr", - "//include/private:SkNoncopyable_hdr", - "//include/private:SkTArray_hdr", - ], -) - -generated_cc_atom( - name = "GrVertexChunkArray_src", - srcs = ["GrVertexChunkArray.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrMeshDrawTarget_hdr", - ":GrVertexChunkArray_hdr", - ], -) - -generated_cc_atom( - name = "GrVx_hdr", - hdrs = ["GrVx.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkTypes_hdr", - "//include/private:SkVx_hdr", - ], -) - -generated_cc_atom( - name = "GrWaitRenderTask_hdr", - hdrs = ["GrWaitRenderTask.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrRenderTask_hdr", - ":GrSemaphore_hdr", - ], -) - -generated_cc_atom( - name = "GrWaitRenderTask_src", - srcs = ["GrWaitRenderTask.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpu_hdr", - ":GrOpFlushState_hdr", - ":GrResourceAllocator_hdr", - ":GrWaitRenderTask_hdr", - ], -) - -generated_cc_atom( - name = "GrWindowRectangles_hdr", - hdrs = ["GrWindowRectangles.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrNonAtomicRef_hdr", - "//include/core:SkRect_hdr", - ], -) - -generated_cc_atom( - name = "GrWindowRectsState_hdr", - hdrs = ["GrWindowRectsState.h"], - visibility = ["//:__subpackages__"], - deps = [":GrWindowRectangles_hdr"], -) - -generated_cc_atom( - name = "GrWritePixelsRenderTask_hdr", - hdrs = ["GrWritePixelsRenderTask.h"], - visibility = ["//:__subpackages__"], - deps = [":GrRenderTask_hdr"], -) - -generated_cc_atom( - name = "GrWritePixelsRenderTask_src", - srcs = ["GrWritePixelsRenderTask.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGpu_hdr", - ":GrOpFlushState_hdr", - ":GrResourceAllocator_hdr", - ":GrWritePixelsRenderTask_hdr", - ], -) - -generated_cc_atom( - name = "GrXferProcessor_hdr", - hdrs = ["GrXferProcessor.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBlend_hdr", - ":GrNonAtomicRef_hdr", - ":GrProcessorAnalysis_hdr", - ":GrProcessor_hdr", - ":GrSurfaceProxyView_hdr", - "//include/gpu:GrTypes_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - ], -) - -generated_cc_atom( - name = "GrXferProcessor_src", - srcs = ["GrXferProcessor.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrPipeline_hdr", - ":GrXferProcessor_hdr", - ":KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - ], -) - -generated_cc_atom( - name = "GrYUVABackendTextures_src", - srcs = ["GrYUVABackendTextures.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu:GrYUVABackendTextures_hdr", - "//src/core:SkYUVAInfoLocation_hdr", - ], -) - -generated_cc_atom( - name = "GrYUVATextureProxies_hdr", - hdrs = ["GrYUVATextureProxies.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrSurfaceProxyView_hdr", - ":GrSurfaceProxy_hdr", - "//include/core:SkYUVAInfo_hdr", - "//src/core:SkYUVAInfoLocation_hdr", - ], -) - -generated_cc_atom( - name = "GrYUVATextureProxies_src", - srcs = ["GrYUVATextureProxies.cpp"], - visibility = ["//:__subpackages__"], - deps = [":GrYUVATextureProxies_hdr"], -) - -generated_cc_atom( - name = "SkGr_hdr", - hdrs = ["SkGr.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrBlend_hdr", - ":GrCaps_hdr", - ":GrColor_hdr", - ":GrSamplerState_hdr", - "//include/core:SkBlender_hdr", - "//include/core:SkCanvas_hdr", - "//include/core:SkColor_hdr", - "//include/core:SkImageInfo_hdr", - "//include/core:SkSamplingOptions_hdr", - "//include/gpu:GrTypes_hdr", - "//include/private:SkColorData_hdr", - "//src/core:SkBlendModePriv_hdr", - ], -) - -generated_cc_atom( - name = "SkGr_src", - srcs = ["SkGr.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrCaps_hdr", - ":GrColorInfo_hdr", - ":GrColorSpaceXform_hdr", - ":GrGpuResourcePriv_hdr", - ":GrPaint_hdr", - ":GrProxyProvider_hdr", - ":GrRecordingContextPriv_hdr", - ":GrTextureProxy_hdr", - ":GrXferProcessor_hdr", - ":SkGr_hdr", - "//include/core:SkCanvas_hdr", - "//include/core:SkColorFilter_hdr", - "//include/core:SkData_hdr", - "//include/core:SkPixelRef_hdr", - "//include/effects:SkRuntimeEffect_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//include/private:SkIDChangeListener_hdr", - "//include/private:SkImageInfoPriv_hdr", - "//include/private:SkTPin_hdr", - "//include/private:SkTemplates_hdr", - "//src/core:SkAutoMalloc_hdr", - "//src/core:SkBlendModePriv_hdr", - "//src/core:SkBlenderBase_hdr", - "//src/core:SkColorFilterBase_hdr", - "//src/core:SkColorSpacePriv_hdr", - "//src/core:SkImagePriv_hdr", - "//src/core:SkMaskFilterBase_hdr", - "//src/core:SkMessageBus_hdr", - "//src/core:SkMipmap_hdr", - "//src/core:SkPaintPriv_hdr", - "//src/core:SkResourceCache_hdr", - "//src/core:SkRuntimeEffectPriv_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu/effects:GrBicubicEffect_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/image:SkImage_Base_hdr", - "//src/shaders:SkShaderBase_hdr", - ], -) - -generated_cc_atom( - name = "SurfaceContext_hdr", - hdrs = ["SurfaceContext.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrColorInfo_hdr", - ":GrDataUtils_hdr", - ":GrImageInfo_hdr", - ":GrPixmap_hdr", - ":GrRenderTask_hdr", - ":GrSurfaceProxyView_hdr", - ":GrSurfaceProxy_hdr", - "//include/core:SkImage_hdr", - "//include/core:SkRect_hdr", - "//include/core:SkRefCnt_hdr", - "//include/core:SkSamplingOptions_hdr", - "//include/core:SkSurface_hdr", - ], -) - -generated_cc_atom( - name = "SurfaceContext_src", - srcs = ["SurfaceContext.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrClientMappedBufferManager_hdr", - ":GrColorSpaceXform_hdr", - ":GrDataUtils_hdr", - ":GrDirectContextPriv_hdr", - ":GrDrawingManager_hdr", - ":GrGpu_hdr", - ":GrImageInfo_hdr", - ":GrProxyProvider_hdr", - ":GrRecordingContextPriv_hdr", - ":GrResourceProvider_hdr", - ":GrTracing_hdr", - ":SkGr_hdr", - ":SurfaceContext_hdr", - ":SurfaceFillContext_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//src/core:SkAutoPixmapStorage_hdr", - "//src/core:SkMipmap_hdr", - "//src/core:SkYUVMath_hdr", - "//src/gpu/effects:GrBicubicEffect_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - ], -) - -generated_cc_atom( - name = "SurfaceFillContext_hdr", - hdrs = ["SurfaceFillContext.h"], - visibility = ["//:__subpackages__"], - deps = [":SurfaceContext_hdr"], -) - -generated_cc_atom( - name = "SurfaceFillContext_src", - srcs = ["SurfaceFillContext.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":SurfaceFillContext_hdr", - "//src/gpu/effects:GrMatrixEffect_hdr", - ], -) - -generated_cc_atom( - name = "KeyBuilder_hdr", - hdrs = ["KeyBuilder.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkString_hdr", - "//include/private:SkTArray_hdr", - ], -) - -generated_cc_atom( - name = "ResourceKey_hdr", - hdrs = ["ResourceKey.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkData_hdr", - "//include/core:SkString_hdr", - "//include/private:SkOnce_hdr", - "//include/private:SkTemplates_hdr", - "//include/private:SkTo_hdr", - ], -) - -generated_cc_atom( - name = "ResourceKey_src", - srcs = ["ResourceKey.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":ResourceKey_hdr", - "//src/core:SkOpts_hdr", - ], -) - -generated_cc_atom( - name = "ShaderErrorHandler_src", - srcs = ["ShaderErrorHandler.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu:ShaderErrorHandler_hdr", - "//src/utils:SkShaderUtils_hdr", - ], -) - -generated_cc_atom( - name = "SkRenderEngineAbortf_hdr", - hdrs = ["SkRenderEngineAbortf.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/core:SkTypes_hdr"], + deps = ["//src/gpu/ganesh:GrRectanizer_impl_hdr"], ) diff --git a/third_party/skia/src/gpu/Blend.h b/third_party/skia/src/gpu/Blend.h new file mode 100644 index 000000000000..7fd212f600f4 --- /dev/null +++ b/third_party/skia/src/gpu/Blend.h @@ -0,0 +1,168 @@ + +/* + * Copyright 2013 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef skgpu_Blend_DEFINED +#define skgpu_Blend_DEFINED + +#include "include/core/SkTypes.h" + +namespace skgpu { + +/** + * Equations for alpha-blending. + */ +enum class BlendEquation : uint8_t { + // Basic blend equations. + kAdd, //(BlendEquation::kLast) + 1; + + +/** + * Coefficients for alpha-blending. + */ +enum class BlendCoeff : uint8_t { + kZero, //(BlendCoeff::kLast) + 1; + +static constexpr bool BlendCoeffRefsSrc(const BlendCoeff coeff) { + return BlendCoeff::kSC == coeff || BlendCoeff::kISC == coeff || BlendCoeff::kSA == coeff || + BlendCoeff::kISA == coeff; +} + +static constexpr bool BlendCoeffRefsDst(const BlendCoeff coeff) { + return BlendCoeff::kDC == coeff || BlendCoeff::kIDC == coeff || BlendCoeff::kDA == coeff || + BlendCoeff::kIDA == coeff; +} + +static constexpr bool BlendCoeffRefsSrc2(const BlendCoeff coeff) { + return BlendCoeff::kS2C == coeff || BlendCoeff::kIS2C == coeff || + BlendCoeff::kS2A == coeff || BlendCoeff::kIS2A == coeff; +} + +static constexpr bool BlendCoeffsUseSrcColor(BlendCoeff srcCoeff, BlendCoeff dstCoeff) { + return BlendCoeff::kZero != srcCoeff || BlendCoeffRefsSrc(dstCoeff); +} + +static constexpr bool BlendCoeffsUseDstColor(BlendCoeff srcCoeff, + BlendCoeff dstCoeff, + bool srcColorIsOpaque) { + return BlendCoeffRefsDst(srcCoeff) || + (dstCoeff != BlendCoeff::kZero && !(dstCoeff == BlendCoeff::kISA && srcColorIsOpaque)); +} + +static constexpr bool BlendEquationIsAdvanced(BlendEquation equation) { + return equation >= BlendEquation::kFirstAdvanced && + equation != BlendEquation::kIllegal; +} + +static constexpr bool BlendModifiesDst(BlendEquation equation, + BlendCoeff srcCoeff, + BlendCoeff dstCoeff) { + return (BlendEquation::kAdd != equation && BlendEquation::kReverseSubtract != equation) || + BlendCoeff::kZero != srcCoeff || BlendCoeff::kOne != dstCoeff; +} + +static constexpr bool BlendCoeffRefsConstant(const BlendCoeff coeff) { + return coeff == BlendCoeff::kConstC || coeff == BlendCoeff::kIConstC; +} + +static constexpr bool BlendShouldDisable(BlendEquation equation, + BlendCoeff srcCoeff, + BlendCoeff dstCoeff) { + return (BlendEquation::kAdd == equation || BlendEquation::kSubtract == equation) && + BlendCoeff::kOne == srcCoeff && BlendCoeff::kZero == dstCoeff; +} + +/** + * Advanced blend equations can always tweak alpha for coverage. (See GrCustomXfermode.cpp) + * + * For "add" and "reverse subtract" the blend equation with f=coverage is: + * + * D' = f * (S * srcCoeff + D * dstCoeff) + (1-f) * D + * = f * S * srcCoeff + D * (f * dstCoeff + (1 - f)) + * + * (Let srcCoeff be negative for reverse subtract.) We can tweak alpha for coverage when the + * following relationship holds: + * + * (f*S) * srcCoeff' + D * dstCoeff' == f * S * srcCoeff + D * (f * dstCoeff + (1 - f)) + * + * (Where srcCoeff' and dstCoeff' have any reference to S pre-multiplied by f.) + * + * It's easy to see this works for the src term as long as srcCoeff' == srcCoeff (meaning srcCoeff + * does not reference S). For the dst term, this will work as long as the following is true: + *| + * dstCoeff' == f * dstCoeff + (1 - f) + * dstCoeff' == 1 - f * (1 - dstCoeff) + * + * By inspection we can see this will work as long as dstCoeff has a 1, and any other term in + * dstCoeff references S. + * + * Moreover, if the blend doesn't modify the dst at all then it is ok to arbitrarily modify the src + * color so folding in coverage is allowed. + */ +static constexpr bool BlendAllowsCoverageAsAlpha(BlendEquation equation, + BlendCoeff srcCoeff, + BlendCoeff dstCoeff) { + return BlendEquationIsAdvanced(equation) || + !BlendModifiesDst(equation, srcCoeff, dstCoeff) || + ((BlendEquation::kAdd == equation || BlendEquation::kReverseSubtract == equation) && + !BlendCoeffRefsSrc(srcCoeff) && + (BlendCoeff::kOne == dstCoeff || BlendCoeff::kISC == dstCoeff || + BlendCoeff::kISA == dstCoeff)); +} + +} // namespace skgpu + +#endif // skgpu_Blend_DEFINED diff --git a/third_party/skia/src/gpu/GrAHardwareBufferUtils.h b/third_party/skia/src/gpu/GrAHardwareBufferUtils.h index 7f2a6527e7f4..740a95258f0c 100644 --- a/third_party/skia/src/gpu/GrAHardwareBufferUtils.h +++ b/third_party/skia/src/gpu/GrAHardwareBufferUtils.h @@ -4,67 +4,8 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ -#ifndef GrAHardwareBufferUtils_DEFINED -#define GrAHardwareBufferUtils_DEFINED -#include "include/core/SkTypes.h" +// TODO: Once we can get Android to use the ganesh version of the file we can remove this one. At +// that time we should also rename the ganesh file to drop the _impl. +#include "src/gpu/ganesh/GrAHardwareBufferUtils_impl.h" -#if defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26 - -#include "include/gpu/GrBackendSurface.h" -#include "include/gpu/GrTypes.h" - -class GrDirectContext; - -extern "C" { - typedef struct AHardwareBuffer AHardwareBuffer; -} - -namespace GrAHardwareBufferUtils { - -SkColorType GetSkColorTypeFromBufferFormat(uint32_t bufferFormat); - -GrBackendFormat GetBackendFormat(GrDirectContext* context, AHardwareBuffer* hardwareBuffer, - uint32_t bufferFormat, bool requireKnownFormat); - -typedef void* TexImageCtx; -typedef void (*DeleteImageProc)(TexImageCtx); -typedef void (*UpdateImageProc)(TexImageCtx, GrDirectContext*); - -/** - * Create a GrBackendTexture from AHardwareBuffer - * - * @param context GPU context - * @param hardwareBuffer AHB - * @param width texture width - * @param height texture height - * @param deleteProc returns a function that deletes the texture and - * other GPU resources. Must be invoked on the same - * thread as MakeBackendTexture - * @param updateProc returns a function, that needs to be invoked, when - * AHB buffer content has changed. Must be invoked on - * the same thread as MakeBackendTexture - * @param imageCtx returns an opaque image context, that is passed as - * first argument to deleteProc and updateProc - * @param isProtectedContent if true, GL backend uses EXT_protected_content - * @param backendFormat backend format, usually created with helper - * function GetBackendFormat - * @param isRenderable true if GrBackendTexture can be used as a color - * attachment - * @return valid GrBackendTexture object on success - */ -GrBackendTexture MakeBackendTexture(GrDirectContext* context, AHardwareBuffer* hardwareBuffer, - int width, int height, - DeleteImageProc* deleteProc, - UpdateImageProc* updateProc, - TexImageCtx* imageCtx, - bool isProtectedContent, - const GrBackendFormat& backendFormat, - bool isRenderable, - bool fromAndroidWindow = false); - -} // GrAHardwareBufferUtils - - -#endif -#endif diff --git a/third_party/skia/src/gpu/GrBlend.h b/third_party/skia/src/gpu/GrBlend.h deleted file mode 100644 index ad11be366806..000000000000 --- a/third_party/skia/src/gpu/GrBlend.h +++ /dev/null @@ -1,161 +0,0 @@ - -/* - * Copyright 2013 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrBlend_DEFINED -#define GrBlend_DEFINED - -#include "include/core/SkTypes.h" - -/** - * Equations for alpha-blending. - */ -enum GrBlendEquation { - // Basic blend equations. - kAdd_GrBlendEquation, //= kFirstAdvancedGrBlendEquation - && equation != kIllegal_GrBlendEquation; -} - -static constexpr bool GrBlendModifiesDst(GrBlendEquation equation, GrBlendCoeff srcCoeff, - GrBlendCoeff dstCoeff) { - return (kAdd_GrBlendEquation != equation && kReverseSubtract_GrBlendEquation != equation) || - kZero_GrBlendCoeff != srcCoeff || kOne_GrBlendCoeff != dstCoeff; -} - -static constexpr bool GrBlendCoeffRefsConstant(const GrBlendCoeff coeff) { - return coeff == kConstC_GrBlendCoeff || coeff == kIConstC_GrBlendCoeff; -} - -static constexpr bool GrBlendShouldDisable(GrBlendEquation equation, GrBlendCoeff srcCoeff, - GrBlendCoeff dstCoeff) { - return (kAdd_GrBlendEquation == equation || kSubtract_GrBlendEquation == equation) && - kOne_GrBlendCoeff == srcCoeff && kZero_GrBlendCoeff == dstCoeff; -} - -/** - * Advanced blend equations can always tweak alpha for coverage. (See GrCustomXfermode.cpp) - * - * For "add" and "reverse subtract" the blend equation with f=coverage is: - * - * D' = f * (S * srcCoeff + D * dstCoeff) + (1-f) * D - * = f * S * srcCoeff + D * (f * dstCoeff + (1 - f)) - * - * (Let srcCoeff be negative for reverse subtract.) We can tweak alpha for coverage when the - * following relationship holds: - * - * (f*S) * srcCoeff' + D * dstCoeff' == f * S * srcCoeff + D * (f * dstCoeff + (1 - f)) - * - * (Where srcCoeff' and dstCoeff' have any reference to S pre-multiplied by f.) - * - * It's easy to see this works for the src term as long as srcCoeff' == srcCoeff (meaning srcCoeff - * does not reference S). For the dst term, this will work as long as the following is true: - *| - * dstCoeff' == f * dstCoeff + (1 - f) - * dstCoeff' == 1 - f * (1 - dstCoeff) - * - * By inspection we can see this will work as long as dstCoeff has a 1, and any other term in - * dstCoeff references S. - * - * Moreover, if the blend doesn't modify the dst at all then it is ok to arbitrarily modify the src - * color so folding in coverage is allowed. - */ -static constexpr bool GrBlendAllowsCoverageAsAlpha(GrBlendEquation equation, - GrBlendCoeff srcCoeff, - GrBlendCoeff dstCoeff) { - return GrBlendEquationIsAdvanced(equation) || - !GrBlendModifiesDst(equation, srcCoeff, dstCoeff) || - ((kAdd_GrBlendEquation == equation || kReverseSubtract_GrBlendEquation == equation) && - !GrBlendCoeffRefsSrc(srcCoeff) && - (kOne_GrBlendCoeff == dstCoeff || kISC_GrBlendCoeff == dstCoeff || - kISA_GrBlendCoeff == dstCoeff)); -} - -#endif diff --git a/third_party/skia/src/gpu/GrImageInfo.h b/third_party/skia/src/gpu/GrImageInfo.h deleted file mode 100644 index 8acea12a7605..000000000000 --- a/third_party/skia/src/gpu/GrImageInfo.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2019 Google LLC - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrImageInfo_DEFINED -#define GrImageInfo_DEFINED - -#include "include/core/SkImageInfo.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrColorInfo.h" - -class GrImageInfo { -public: - GrImageInfo() = default; - - /* implicit */ GrImageInfo(const SkImageInfo& info) - : fColorInfo(info.colorInfo()), fDimensions(info.dimensions()) {} - - GrImageInfo(GrColorType ct, SkAlphaType at, sk_sp cs, int w, int h) - : fColorInfo(ct, at, std::move(cs)), fDimensions{w,h} {} - - GrImageInfo(GrColorType ct, SkAlphaType at, sk_sp cs, const SkISize& dimensions) - : fColorInfo(ct, at, std::move(cs)), fDimensions(dimensions) {} - - GrImageInfo(const GrColorInfo& info, const SkISize& dimensions) - : fColorInfo(info), fDimensions(dimensions) {} - - GrImageInfo(GrColorInfo&& info, const SkISize& dimensions) - : fColorInfo(std::move(info)), fDimensions(dimensions) {} - - GrImageInfo(const GrImageInfo&) = default; - GrImageInfo(GrImageInfo&&) = default; - GrImageInfo& operator=(const GrImageInfo&) = default; - GrImageInfo& operator=(GrImageInfo&&) = default; - - GrImageInfo makeColorType(GrColorType ct) const { - return {this->colorInfo().makeColorType(ct), this->dimensions()}; - } - - GrImageInfo makeAlphaType(SkAlphaType at) const { - return {this->colorType(), at, this->refColorSpace(), this->width(), this->height()}; - } - - GrImageInfo makeColorSpace(sk_sp cs) const { - return {this->colorType(), this->alphaType(), std::move(cs), this->width(), this->height()}; - } - - GrImageInfo makeDimensions(SkISize dimensions) const { - return {this->colorType(), this->alphaType(), this->refColorSpace(), dimensions}; - } - - GrImageInfo makeWH(int width, int height) const { - return {this->colorType(), this->alphaType(), this->refColorSpace(), width, height}; - } - - const GrColorInfo& colorInfo() const { return fColorInfo; } - - GrColorType colorType() const { return fColorInfo.colorType(); } - - SkAlphaType alphaType() const { return fColorInfo.alphaType(); } - - SkColorSpace* colorSpace() const { return fColorInfo.colorSpace(); } - - sk_sp refColorSpace() const { return fColorInfo.refColorSpace(); } - - SkISize dimensions() const { return fDimensions; } - - int width() const { return fDimensions.width(); } - - int height() const { return fDimensions.height(); } - - size_t bpp() const { return GrColorTypeBytesPerPixel(this->colorType()); } - - size_t minRowBytes() const { return this->bpp() * this->width(); } - - bool isValid() const { return fColorInfo.isValid() && this->width() > 0 && this->height() > 0; } - -private: - GrColorInfo fColorInfo = {}; - SkISize fDimensions; -}; - -#endif diff --git a/third_party/skia/src/gpu/GrRectanizer.h b/third_party/skia/src/gpu/GrRectanizer.h index 0b1fff533489..e00064d226ad 100644 --- a/third_party/skia/src/gpu/GrRectanizer.h +++ b/third_party/skia/src/gpu/GrRectanizer.h @@ -5,40 +5,7 @@ * found in the LICENSE file. */ -#ifndef GrRectanizer_DEFINED -#define GrRectanizer_DEFINED +// TODO: Once we can get Flutter to use the ganesh version of the file we can remove this one. At +// that time we should also rename the ganesh file to drop the _impl. +#include "src/gpu/ganesh/GrRectanizer_impl.h" -#include "include/gpu/GrTypes.h" - -struct SkIPoint16; - -class GrRectanizer { -public: - GrRectanizer(int width, int height) : fWidth(width), fHeight(height) { - SkASSERT(width >= 0); - SkASSERT(height >= 0); - } - - virtual ~GrRectanizer() {} - - virtual void reset() = 0; - - int width() const { return fWidth; } - int height() const { return fHeight; } - - // Attempt to add a rect. Return true on success; false on failure. If - // successful the position in the atlas is returned in 'loc'. - virtual bool addRect(int width, int height, SkIPoint16* loc) = 0; - virtual float percentFull() const = 0; - - /** - * Our factory, which returns the subclass du jour - */ - static GrRectanizer* Factory(int width, int height); - -private: - const int fWidth; - const int fHeight; -}; - -#endif diff --git a/third_party/skia/src/gpu/GrSamplerState.h b/third_party/skia/src/gpu/GrSamplerState.h deleted file mode 100644 index 8f65507b3b2b..000000000000 --- a/third_party/skia/src/gpu/GrSamplerState.h +++ /dev/null @@ -1,124 +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. - */ - -#ifndef GrSamplerState_DEFINED -#define GrSamplerState_DEFINED - -#include "include/core/SkSamplingOptions.h" -#include "include/gpu/GrTypes.h" -#include - -/** - * Represents the filtering and tile modes used to access a texture. - */ -class GrSamplerState { -public: - using Filter = SkFilterMode; - using MipmapMode = SkMipmapMode; - - enum class WrapMode : uint8_t { - kClamp, - kRepeat, - kMirrorRepeat, - kClampToBorder, - kLast = kClampToBorder - }; - - inline static constexpr int kFilterCount = static_cast(Filter::kLast) + 1; - inline static constexpr int kWrapModeCount = static_cast(WrapMode::kLast) + 1; - - constexpr GrSamplerState() = default; - - constexpr GrSamplerState(WrapMode wrapXAndY, Filter filter, MipmapMode mm = MipmapMode::kNone) - : fWrapModes{wrapXAndY, wrapXAndY}, fFilter(filter), fMipmapMode(mm) {} - - constexpr GrSamplerState(WrapMode wrapX, - WrapMode wrapY, - Filter filter, - MipmapMode mm = MipmapMode::kNone) - : fWrapModes{wrapX, wrapY}, fFilter(filter), fMipmapMode(mm) {} - - constexpr GrSamplerState(const WrapMode wrapModes[2], - Filter filter, - MipmapMode mm = MipmapMode::kNone) - : fWrapModes{wrapModes[0], wrapModes[1]}, fFilter(filter), fMipmapMode(mm) {} - - constexpr /*explicit*/ GrSamplerState(Filter filter) : fFilter(filter) {} - constexpr GrSamplerState(Filter filter, MipmapMode mm) : fFilter(filter), fMipmapMode(mm) {} - - constexpr GrSamplerState(const GrSamplerState&) = default; - - constexpr GrSamplerState& operator=(const GrSamplerState&) = default; - - constexpr WrapMode wrapModeX() const { return fWrapModes[0]; } - - constexpr WrapMode wrapModeY() const { return fWrapModes[1]; } - - constexpr bool isRepeatedX() const { - return fWrapModes[0] == WrapMode::kRepeat || fWrapModes[0] == WrapMode::kMirrorRepeat; - } - - constexpr bool isRepeatedY() const { - return fWrapModes[1] == WrapMode::kRepeat || fWrapModes[1] == WrapMode::kMirrorRepeat; - } - - constexpr bool isRepeated() const { - return this->isRepeatedX() || this->isRepeatedY(); - } - - constexpr Filter filter() const { return fFilter; } - - constexpr MipmapMode mipmapMode() const { return fMipmapMode; } - - constexpr GrMipmapped mipmapped() const { - return GrMipmapped(fMipmapMode != MipmapMode::kNone); - } - - constexpr void setFilterMode(Filter filterMode) { fFilter = filterMode; } - - constexpr void setMipmapMode(MipmapMode mm) { fMipmapMode = mm; } - - constexpr void setWrapModeX(const WrapMode wrap) { fWrapModes[0] = wrap; } - - constexpr void setWrapModeY(const WrapMode wrap) { fWrapModes[1] = wrap; } - - constexpr bool operator==(GrSamplerState that) const { - return fWrapModes[0] == that.fWrapModes[0] && fWrapModes[1] == that.fWrapModes[1] && - fFilter == that.fFilter && fMipmapMode == that.fMipmapMode; - } - - constexpr bool operator!=(const GrSamplerState& that) const { return !(*this == that); } - - /** - * Turn the sampler state into an integer from a tightly packed range for use as an index - * (or key) - */ - constexpr uint8_t asIndex() const { - constexpr int kNumWraps = static_cast(WrapMode::kLast) + 1; - constexpr int kNumFilters = static_cast(Filter::kLast ) + 1; - int result = static_cast(fWrapModes[0])*1 - + static_cast(fWrapModes[1])*kNumWraps - + static_cast(fFilter) *kNumWraps*kNumWraps - + static_cast(fMipmapMode) *kNumWraps*kNumWraps*kNumFilters; - SkASSERT(result <= kNumUniqueSamplers); - return static_cast(result); - } - - inline static constexpr int kNumUniqueSamplers = (static_cast(WrapMode::kLast ) + 1) - * (static_cast(WrapMode::kLast ) + 1) - * (static_cast(Filter::kLast ) + 1) - * (static_cast(MipmapMode::kLast) + 1); -private: - WrapMode fWrapModes[2] = {WrapMode::kClamp, WrapMode::kClamp}; - Filter fFilter = GrSamplerState::Filter::kNearest; - MipmapMode fMipmapMode = GrSamplerState::MipmapMode::kNone; -}; - -static_assert(GrSamplerState::kNumUniqueSamplers <= - std::numeric_limits::max()); - -#endif diff --git a/third_party/skia/src/gpu/RefCntedCallback.h b/third_party/skia/src/gpu/RefCntedCallback.h new file mode 100644 index 000000000000..081df0ffd417 --- /dev/null +++ b/third_party/skia/src/gpu/RefCntedCallback.h @@ -0,0 +1,75 @@ +/* + * 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_RefCntedCallback_DEFINED +#define skgpu_RefCntedCallback_DEFINED + +#include "include/core/SkRefCnt.h" +#include "include/gpu/GpuTypes.h" + +namespace skgpu { +/** + * Ref-counted object that calls a callback from its destructor. + */ +class RefCntedCallback : public SkNVRefCnt { +public: + using Context = void*; + using Callback = void (*)(Context); + using ResultCallback = void (*)(Context, CallbackResult); + + static sk_sp Make(Callback proc, Context ctx) { + if (!proc) { + return nullptr; + } + return sk_sp(new RefCntedCallback(proc, ctx)); + } + + static sk_sp Make(ResultCallback proc, Context ctx) { + if (!proc) { + return nullptr; + } + return sk_sp(new RefCntedCallback(proc, ctx)); + } + + ~RefCntedCallback() { + if (fReleaseProc) { + SkASSERT(!fResultReleaseProc); + fReleaseProc(fReleaseCtx); + } else { + SkASSERT(fResultReleaseProc); + fResultReleaseProc(fReleaseCtx, fResult); + } + } + + Context context() const { return fReleaseCtx; } + + void setFailureResult() { + SkASSERT(fResultReleaseProc); + // Shouldn't really be calling this multiple times. + SkASSERT(fResult == CallbackResult::kSuccess); + fResult = CallbackResult::kFailed; + } + +private: + RefCntedCallback(Callback proc, Context ctx) : fReleaseProc(proc), fReleaseCtx(ctx) {} + RefCntedCallback(ResultCallback proc, Context ctx) + : fResultReleaseProc(proc), fReleaseCtx(ctx) {} + RefCntedCallback(const RefCntedCallback&) = delete; + RefCntedCallback(RefCntedCallback&&) = delete; + RefCntedCallback& operator=(const RefCntedCallback&) = delete; + RefCntedCallback& operator=(RefCntedCallback&&) = delete; + + Callback fReleaseProc = nullptr; + ResultCallback fResultReleaseProc = nullptr; + Context fReleaseCtx; + CallbackResult fResult = CallbackResult::kSuccess; +}; + +} // namespace skgpu + +#endif // skgpu_RefCntedCallback_DEFINED + diff --git a/third_party/skia/src/gpu/ResourceKey.h b/third_party/skia/src/gpu/ResourceKey.h index 42ee7f496159..202c039c3322 100644 --- a/third_party/skia/src/gpu/ResourceKey.h +++ b/third_party/skia/src/gpu/ResourceKey.h @@ -39,6 +39,15 @@ class ResourceKey { return this->internalSize(); } + /** Reset to an invalid key. */ + void reset() { + fKey.reset(kMetaDataCnt); + fKey[kHash_MetaDataIdx] = 0; + fKey[kDomainAndSize_MetaDataIdx] = kInvalidDomain; + } + + bool isValid() const { return kInvalidDomain != this->domain(); } + /** Used to initialize a key. */ class Builder { public: @@ -81,13 +90,6 @@ class ResourceKey { ResourceKey() { this->reset(); } - /** Reset to an invalid key. */ - void reset() { - fKey.reset(kMetaDataCnt); - fKey[kHash_MetaDataIdx] = 0; - fKey[kDomainAndSize_MetaDataIdx] = kInvalidDomain; - } - bool operator==(const ResourceKey& that) const { // Both keys should be sized to at least contain the meta data. The metadata contains each // key's length. So the second memcmp should only run if the keys have the same length. @@ -110,8 +112,6 @@ class ResourceKey { return *this; } - bool isValid() const { return kInvalidDomain != this->domain(); } - uint32_t domain() const { return fKey[kDomainAndSize_MetaDataIdx] & 0xffff; } /** size of the key data, excluding meta-data (hash, domain, etc). */ @@ -200,11 +200,6 @@ class ScratchKey : public ResourceKey { ScratchKey(const ScratchKey& that) { *this = that; } - /** reset() returns the key to the invalid state. */ - using ResourceKey::reset; - - using ResourceKey::isValid; - ResourceType resourceType() const { return this->domain(); } ScratchKey& operator=(const ScratchKey& that) { @@ -247,11 +242,6 @@ class UniqueKey : public ResourceKey { UniqueKey(const UniqueKey& that) { *this = that; } - /** reset() returns the key to the invalid state. */ - using ResourceKey::reset; - - using ResourceKey::isValid; - UniqueKey& operator=(const UniqueKey& that) { this->ResourceKey::operator=(that); this->setCustomData(sk_ref_sp(that.getCustomData())); diff --git a/third_party/skia/src/gpu/SkRenderEngineAbortf.h b/third_party/skia/src/gpu/SkRenderEngineAbortf.h deleted file mode 100644 index 10cb491128a0..000000000000 --- a/third_party/skia/src/gpu/SkRenderEngineAbortf.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 SkRenderEngineAbortf_DEFINED -#define SkRenderEngineAbortf_DEFINED - -#include "include/core/SkTypes.h" - -#ifdef SK_IN_RENDERENGINE - #include "log/log_main.h" - - #ifdef LOG_TAG - #undef LOG_TAG - #endif - #define LOG_TAG "Skia_in_RenderEngine" - - #define RENDERENGINE_ABORTF(...) LOG_ALWAYS_FATAL(__VA_ARGS__) -#else - #define RENDERENGINE_ABORTF(...) -#endif - -#endif// SkRenderEngineAbortf_DEFINED diff --git a/third_party/skia/src/gpu/effects/GrBlendFragmentProcessor.h b/third_party/skia/src/gpu/effects/GrBlendFragmentProcessor.h deleted file mode 100644 index aa7a55069cc9..000000000000 --- a/third_party/skia/src/gpu/effects/GrBlendFragmentProcessor.h +++ /dev/null @@ -1,28 +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. - */ - -#ifndef GrBlendFragmentProcessor_DEFINED -#define GrBlendFragmentProcessor_DEFINED - -#include "include/core/SkBlendMode.h" -#include "include/core/SkRefCnt.h" - -class GrFragmentProcessor; - -namespace GrBlendFragmentProcessor { - -/** - * Blends src and dst inputs according to the blend mode. If either input is null, fInputColor is - * used instead. - */ -std::unique_ptr Make(std::unique_ptr src, - std::unique_ptr dst, - SkBlendMode mode); - -} // namespace GrBlendFragmentProcessor - -#endif diff --git a/third_party/skia/src/gpu/ganesh/BUILD.bazel b/third_party/skia/src/gpu/ganesh/BUILD.bazel new file mode 100644 index 000000000000..9fe2780bd8a1 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/BUILD.bazel @@ -0,0 +1,3517 @@ +load("//bazel:macros.bzl", "generated_cc_atom", "selects") + +licenses(["notice"]) + +cc_library( + name = "core_srcs", + deps = [ + ":BaseDevice_src", + ":GrAHardwareBufferImageGenerator_src", + ":GrAHardwareBufferUtils_src", + ":GrAttachment_src", + ":GrAuditTrail_src", + ":GrBackendSemaphore_src", + ":GrBackendSurfaceMutableState_src", + ":GrBackendSurface_src", + ":GrBackendTextureImageGenerator_src", + ":GrBackendUtils_src", + ":GrBlurUtils_src", + ":GrBufferAllocPool_src", + ":GrCaps_src", + ":GrClientMappedBufferManager_src", + ":GrColorInfo_src", + ":GrColorSpaceXform_src", + ":GrContextThreadSafeProxy_src", + ":GrContext_Base_src", + ":GrCopyRenderTask_src", + ":GrDDLContext_src", + ":GrDDLTask_src", + ":GrDataUtils_src", + ":GrDefaultGeoProcFactory_src", + ":GrDirectContextPriv_src", + ":GrDirectContext_src", + ":GrDistanceFieldGenFromVector_src", + ":GrDrawOpAtlas_src", + ":GrDrawOpTest_src", + ":GrDrawingManager_src", + ":GrDriverBugWorkarounds_src", + ":GrDynamicAtlas_src", + ":GrEagerVertexAllocator_src", + ":GrFinishCallbacks_src", + ":GrFixedClip_src", + ":GrFragmentProcessor_src", + ":GrGeometryProcessor_src", + ":GrGpuBuffer_src", + ":GrGpuResource_src", + ":GrGpu_src", + ":GrImageContext_src", + ":GrImageInfo_src", + ":GrManagedResource_src", + ":GrMemoryPool_src", + ":GrMeshDrawTarget_src", + ":GrOnFlushResourceProvider_src", + ":GrOpFlushState_src", + ":GrOpsRenderPass_src", + ":GrPaint_src", + ":GrPersistentCacheUtils_src", + ":GrPipeline_src", + ":GrProcessorAnalysis_src", + ":GrProcessorSet_src", + ":GrProcessorUnitTest_src", + ":GrProcessor_src", + ":GrProgramDesc_src", + ":GrProgramInfo_src", + ":GrProxyProvider_src", + ":GrRecordingContextPriv_src", + ":GrRecordingContext_src", + ":GrRectanizerPow2_src", + ":GrRectanizerSkyline_src", + ":GrRenderTargetProxy_src", + ":GrRenderTarget_src", + ":GrRenderTaskCluster_src", + ":GrRenderTask_src", + ":GrResourceAllocator_src", + ":GrResourceCache_src", + ":GrResourceProvider_src", + ":GrRingBuffer_src", + ":GrSPIRVUniformHandler_src", + ":GrSPIRVVaryingHandler_src", + ":GrSWMaskHelper_src", + ":GrShaderCaps_src", + ":GrShaderVar_src", + ":GrStagingBufferManager_src", + ":GrStencilSettings_src", + ":GrStyle_src", + ":GrSubRunAllocator_src", + ":GrSurfaceInfo_src", + ":GrSurfaceProxy_src", + ":GrSurface_src", + ":GrTestUtils_src", + ":GrTextureProxy_src", + ":GrTextureRenderTargetProxy_src", + ":GrTextureResolveRenderTask_src", + ":GrTexture_src", + ":GrThreadSafeCache_src", + ":GrThreadSafePipelineBuilder_src", + ":GrTransferFromRenderTask_src", + ":GrUniformDataManager_src", + ":GrUtil_src", + ":GrVertexChunkArray_src", + ":GrWaitRenderTask_src", + ":GrWritePixelsRenderTask_src", + ":GrXferProcessor_src", + ":GrYUVABackendTextures_src", + ":GrYUVATextureProxies_src", + ":SkGr_src", + ":SurfaceContext_src", + ":SurfaceFillContext_src", + "//src/gpu/ganesh/effects:GrBezierEffect_src", + "//src/gpu/ganesh/effects:GrBicubicEffect_src", + "//src/gpu/ganesh/effects:GrBitmapTextGeoProc_src", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_src", + "//src/gpu/ganesh/effects:GrConvexPolyEffect_src", + "//src/gpu/ganesh/effects:GrCoverageSetOpXP_src", + "//src/gpu/ganesh/effects:GrCustomXfermode_src", + "//src/gpu/ganesh/effects:GrDisableColorXP_src", + "//src/gpu/ganesh/effects:GrDistanceFieldGeoProc_src", + "//src/gpu/ganesh/effects:GrGaussianConvolutionFragmentProcessor_src", + "//src/gpu/ganesh/effects:GrMatrixConvolutionEffect_src", + "//src/gpu/ganesh/effects:GrMatrixEffect_src", + "//src/gpu/ganesh/effects:GrModulateAtlasCoverageEffect_src", + "//src/gpu/ganesh/effects:GrOvalEffect_src", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_src", + "//src/gpu/ganesh/effects:GrRRectEffect_src", + "//src/gpu/ganesh/effects:GrShadowGeoProc_src", + "//src/gpu/ganesh/effects:GrSkSLFP_src", + "//src/gpu/ganesh/effects:GrTextureEffect_src", + "//src/gpu/ganesh/effects:GrYUVtoRGBEffect_src", + "//src/gpu/ganesh/geometry:GrAAConvexTessellator_src", + "//src/gpu/ganesh/geometry:GrAATriangulator_src", + "//src/gpu/ganesh/geometry:GrPathUtils_src", + "//src/gpu/ganesh/geometry:GrQuadUtils_src", + "//src/gpu/ganesh/geometry:GrQuad_src", + "//src/gpu/ganesh/geometry:GrShape_src", + "//src/gpu/ganesh/geometry:GrStyledShape_src", + "//src/gpu/ganesh/geometry:GrTriangulator_src", + "//src/gpu/ganesh/glsl:GrGLSLBlend_src", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_src", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_src", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_src", + "//src/gpu/ganesh/glsl:GrGLSLShaderBuilder_src", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_src", + "//src/gpu/ganesh/glsl:GrGLSLVarying_src", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_src", + "//src/gpu/ganesh/glsl:GrGLSL_src", + "//src/gpu/ganesh/gradients:GrGradientBitmapCache_src", + "//src/gpu/ganesh/gradients:GrGradientShader_src", + "//src/gpu/ganesh/ops:AAConvexPathRenderer_src", + "//src/gpu/ganesh/ops:AAHairLinePathRenderer_src", + "//src/gpu/ganesh/ops:AALinearizingConvexPathRenderer_src", + "//src/gpu/ganesh/ops:AtlasInstancedHelper_src", + "//src/gpu/ganesh/ops:AtlasPathRenderer_src", + "//src/gpu/ganesh/ops:AtlasRenderTask_src", + "//src/gpu/ganesh/ops:AtlasTextOp_src", + "//src/gpu/ganesh/ops:ClearOp_src", + "//src/gpu/ganesh/ops:DashLinePathRenderer_src", + "//src/gpu/ganesh/ops:DashOp_src", + "//src/gpu/ganesh/ops:DefaultPathRenderer_src", + "//src/gpu/ganesh/ops:DrawAtlasOp_src", + "//src/gpu/ganesh/ops:DrawAtlasPathOp_src", + "//src/gpu/ganesh/ops:DrawCustomMeshOp_src", + "//src/gpu/ganesh/ops:DrawableOp_src", + "//src/gpu/ganesh/ops:FillRRectOp_src", + "//src/gpu/ganesh/ops:FillRectOp_src", + "//src/gpu/ganesh/ops:GrMeshDrawOp_src", + "//src/gpu/ganesh/ops:GrOp_src", + "//src/gpu/ganesh/ops:GrOvalOpFactory_src", + "//src/gpu/ganesh/ops:GrSimpleMeshDrawOpHelperWithStencil_src", + "//src/gpu/ganesh/ops:GrSimpleMeshDrawOpHelper_src", + "//src/gpu/ganesh/ops:LatticeOp_src", + "//src/gpu/ganesh/ops:OpsTask_src", + "//src/gpu/ganesh/ops:PathInnerTriangulateOp_src", + "//src/gpu/ganesh/ops:PathStencilCoverOp_src", + "//src/gpu/ganesh/ops:PathTessellateOp_src", + "//src/gpu/ganesh/ops:PathTessellator_src", + "//src/gpu/ganesh/ops:QuadPerEdgeAA_src", + "//src/gpu/ganesh/ops:RegionOp_src", + "//src/gpu/ganesh/ops:ShadowRRectOp_src", + "//src/gpu/ganesh/ops:SmallPathAtlasMgr_src", + "//src/gpu/ganesh/ops:SmallPathRenderer_src", + "//src/gpu/ganesh/ops:SmallPathShapeData_src", + "//src/gpu/ganesh/ops:SoftwarePathRenderer_src", + "//src/gpu/ganesh/ops:StrokeRectOp_src", + "//src/gpu/ganesh/ops:StrokeTessellateOp_src", + "//src/gpu/ganesh/ops:StrokeTessellator_src", + "//src/gpu/ganesh/ops:TessellationPathRenderer_src", + "//src/gpu/ganesh/ops:TextureOp_src", + "//src/gpu/ganesh/ops:TriangulatingPathRenderer_src", + "//src/gpu/ganesh/tessellate/shaders:GrPathTessellationShader_Hardware_src", + "//src/gpu/ganesh/tessellate/shaders:GrPathTessellationShader_MiddleOut_src", + "//src/gpu/ganesh/tessellate/shaders:GrPathTessellationShader_src", + "//src/gpu/ganesh/tessellate/shaders:GrStrokeTessellationShader_HardwareImpl_src", + "//src/gpu/ganesh/tessellate/shaders:GrStrokeTessellationShader_InstancedImpl_src", + "//src/gpu/ganesh/tessellate/shaders:GrStrokeTessellationShader_src", + "//src/gpu/ganesh/tessellate/shaders:GrTessellationShader_src", + "//src/gpu/ganesh/text:GrAtlasManager_src", + "//src/gpu/ganesh/text:GrDistanceFieldAdjustTable_src", + "//src/gpu/ganesh/text:GrGlyphVector_src", + "//src/gpu/ganesh/text:GrSDFMaskFilter_src", + "//src/gpu/ganesh/text:GrSDFTControl_src", + "//src/gpu/ganesh/text:GrSlug_src", + "//src/gpu/ganesh/text:GrStrikeCache_src", + "//src/gpu/ganesh/text:GrTextBlobRedrawCoordinator_src", + "//src/gpu/ganesh/text:GrTextBlob_src", + ], +) + +cc_library( + name = "dawn_srcs", + deps = [ + "//src/gpu/ganesh/dawn:GrDawnAttachment_src", + "//src/gpu/ganesh/dawn:GrDawnBuffer_src", + "//src/gpu/ganesh/dawn:GrDawnCaps_src", + "//src/gpu/ganesh/dawn:GrDawnGpu_src", + "//src/gpu/ganesh/dawn:GrDawnOpsRenderPass_src", + "//src/gpu/ganesh/dawn:GrDawnProgramBuilder_src", + "//src/gpu/ganesh/dawn:GrDawnProgramDataManager_src", + "//src/gpu/ganesh/dawn:GrDawnRenderTarget_src", + "//src/gpu/ganesh/dawn:GrDawnRingBuffer_src", + "//src/gpu/ganesh/dawn:GrDawnTextureRenderTarget_src", + "//src/gpu/ganesh/dawn:GrDawnTexture_src", + "//src/gpu/ganesh/dawn:GrDawnTypesPriv_src", + "//src/gpu/ganesh/dawn:GrDawnUtil_src", + ], +) + +cc_library( + name = "gl_srcs", + deps = [ + "//src/gpu/ganesh/gl:GrGLAssembleGLESInterfaceAutogen_src", + "//src/gpu/ganesh/gl:GrGLAssembleGLInterfaceAutogen_src", + "//src/gpu/ganesh/gl:GrGLAssembleHelpers_src", + "//src/gpu/ganesh/gl:GrGLAssembleInterface_src", + "//src/gpu/ganesh/gl:GrGLAssembleWebGLInterfaceAutogen_src", + "//src/gpu/ganesh/gl:GrGLAttachment_src", + "//src/gpu/ganesh/gl:GrGLBuffer_src", + "//src/gpu/ganesh/gl:GrGLCaps_src", + "//src/gpu/ganesh/gl:GrGLContext_src", + "//src/gpu/ganesh/gl:GrGLExtensions_src", + "//src/gpu/ganesh/gl:GrGLGLSL_src", + "//src/gpu/ganesh/gl:GrGLGpuProgramCache_src", + "//src/gpu/ganesh/gl:GrGLGpu_src", + "//src/gpu/ganesh/gl:GrGLInterfaceAutogen_src", + "//src/gpu/ganesh/gl:GrGLOpsRenderPass_src", + "//src/gpu/ganesh/gl:GrGLProgramDataManager_src", + "//src/gpu/ganesh/gl:GrGLProgram_src", + "//src/gpu/ganesh/gl:GrGLRenderTarget_src", + "//src/gpu/ganesh/gl:GrGLSemaphore_src", + "//src/gpu/ganesh/gl:GrGLTextureRenderTarget_src", + "//src/gpu/ganesh/gl:GrGLTexture_src", + "//src/gpu/ganesh/gl:GrGLTypesPriv_src", + "//src/gpu/ganesh/gl:GrGLUniformHandler_src", + "//src/gpu/ganesh/gl:GrGLUtil_src", + "//src/gpu/ganesh/gl:GrGLVertexArray_src", + "//src/gpu/ganesh/gl/builders:GrGLProgramBuilder_src", + "//src/gpu/ganesh/gl/builders:GrGLShaderStringBuilder_src", + ], +) + +cc_library( + name = "vulkan_srcs", + deps = [ + "//src/gpu/ganesh/vk:GrVkAMDMemoryAllocator_src", + "//src/gpu/ganesh/vk:GrVkBuffer_src", + "//src/gpu/ganesh/vk:GrVkCaps_src", + "//src/gpu/ganesh/vk:GrVkCommandBuffer_src", + "//src/gpu/ganesh/vk:GrVkCommandPool_src", + "//src/gpu/ganesh/vk:GrVkDescriptorPool_src", + "//src/gpu/ganesh/vk:GrVkDescriptorSetManager_src", + "//src/gpu/ganesh/vk:GrVkDescriptorSet_src", + "//src/gpu/ganesh/vk:GrVkExtensions_src", + "//src/gpu/ganesh/vk:GrVkFramebuffer_src", + "//src/gpu/ganesh/vk:GrVkGpu_src", + "//src/gpu/ganesh/vk:GrVkImageView_src", + "//src/gpu/ganesh/vk:GrVkImage_src", + "//src/gpu/ganesh/vk:GrVkInterface_src", + "//src/gpu/ganesh/vk:GrVkMSAALoadManager_src", + "//src/gpu/ganesh/vk:GrVkMemory_src", + "//src/gpu/ganesh/vk:GrVkOpsRenderPass_src", + "//src/gpu/ganesh/vk:GrVkPipelineStateBuilder_src", + "//src/gpu/ganesh/vk:GrVkPipelineStateCache_src", + "//src/gpu/ganesh/vk:GrVkPipelineStateDataManager_src", + "//src/gpu/ganesh/vk:GrVkPipelineState_src", + "//src/gpu/ganesh/vk:GrVkPipeline_src", + "//src/gpu/ganesh/vk:GrVkRenderPass_src", + "//src/gpu/ganesh/vk:GrVkRenderTarget_src", + "//src/gpu/ganesh/vk:GrVkResourceProvider_src", + "//src/gpu/ganesh/vk:GrVkSamplerYcbcrConversion_src", + "//src/gpu/ganesh/vk:GrVkSampler_src", + "//src/gpu/ganesh/vk:GrVkSecondaryCBDrawContext_src", + "//src/gpu/ganesh/vk:GrVkSemaphore_src", + "//src/gpu/ganesh/vk:GrVkTextureRenderTarget_src", + "//src/gpu/ganesh/vk:GrVkTexture_src", + "//src/gpu/ganesh/vk:GrVkTypesPriv_src", + "//src/gpu/ganesh/vk:GrVkUniformHandler_src", + "//src/gpu/ganesh/vk:GrVkUtil_src", + "//src/gpu/ganesh/vk:GrVkVaryingHandler_src", + ], +) + +cc_library( + name = "v1_srcs", + deps = [ + "//src/gpu/ganesh/v1:ClipStack_src", + "//src/gpu/ganesh/v1:Device_drawTexture_src", + "//src/gpu/ganesh/v1:Device_src", + "//src/gpu/ganesh/v1:PathRendererChain_src", + "//src/gpu/ganesh/v1:PathRenderer_src", + "//src/gpu/ganesh/v1:StencilMaskHelper_src", + "//src/gpu/ganesh/v1:SurfaceDrawContext_src", + "//src/gpu/ganesh/v1:SurfaceFillContext_v1_src", + ], +) + +cc_library( + name = "glx_srcs", + deps = [ + "//src/gpu/ganesh/gl/glx:GrGLMakeGLXInterface_src", + "//src/gpu/ganesh/gl/glx:GrGLMakeNativeInterface_glx_src", + ], +) + +cc_library( + name = "webgl_srcs", + deps = [ + "//src/gpu/ganesh/gl/webgl:GrGLMakeNativeInterface_webgl_src", + ], +) + +cc_library( + name = "mock_srcs", + visibility = ["//:__subpackages__"], + deps = [ + "//src/gpu/ganesh/mock:GrMockCaps_src", + "//src/gpu/ganesh/mock:GrMockGpu_src", + "//src/gpu/ganesh/mock:GrMockTypes_src", + ], +) + +selects.config_setting_group( + name = "gl_and_linux", + match_all = [ + "//bazel/common_config_settings:gl_standard", + "//bazel/common_config_settings:linux_x64", + ], +) + +cc_library( + name = "srcs", + linkopts = select({ + "//bazel/common_config_settings:gl_backend": ["-lGL"], + "//conditions:default": [], + }), + visibility = ["//:__subpackages__"], + deps = [ + ":core_srcs", + "//src/gpu:srcs", + ] + select({ + "//bazel/common_config_settings:dawn_backend": [ + ":dawn_srcs", + ":v1_srcs", + ], + "//bazel/common_config_settings:gl_backend": [ + ":gl_srcs", + ":v1_srcs", + ], + "//bazel/common_config_settings:vulkan_backend": [ + ":vulkan_srcs", + ":v1_srcs", + ], + "//conditions:default": [], + }) + select({ + ":gl_and_linux": [":glx_srcs"], + "//bazel/common_config_settings:webgl_standard": [":webgl_srcs"], + "//conditions:default": [], + }) + select({ + "//bazel/common_config_settings:vulkan_with_vma": ["//third_party:vulkanmemoryallocator"], + "//conditions:default": [], + }), +) + +generated_cc_atom( + name = "BaseDevice_hdr", + hdrs = ["BaseDevice.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkImage_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/core:SkDevice_hdr", + ], +) + +generated_cc_atom( + name = "BaseDevice_src", + srcs = ["BaseDevice.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":BaseDevice_hdr", + ":GrProxyProvider_hdr", + ":GrRecordingContextPriv_hdr", + ":GrSurfaceProxyView_hdr", + ":SurfaceContext_hdr", + ":SurfaceFillContext_hdr", + "//include/core:SkColorSpace_hdr", + "//include/gpu:GrRecordingContext_hdr", + ], +) + +generated_cc_atom( + name = "GrAHardwareBufferImageGenerator_hdr", + hdrs = ["GrAHardwareBufferImageGenerator.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkImageGenerator_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrAHardwareBufferImageGenerator_src", + srcs = ["GrAHardwareBufferImageGenerator.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAHardwareBufferImageGenerator_hdr", + ":GrAHardwareBufferUtils_impl_hdr", + ":GrDirectContextPriv_hdr", + ":GrProxyProvider_hdr", + ":GrRecordingContextPriv_hdr", + ":GrResourceCache_hdr", + ":GrResourceProviderPriv_hdr", + ":GrResourceProvider_hdr", + ":GrTextureProxy_hdr", + ":GrTexture_hdr", + ":SkGr_hdr", + "//include/core:SkTypes_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//include/gpu/gl:GrGLTypes_hdr", + "//include/gpu/vk:GrVkExtensions_hdr", + "//src/core:SkMessageBus_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", + "//src/gpu/ganesh/vk:GrVkGpu_hdr", + ], +) + +generated_cc_atom( + name = "GrAHardwareBufferUtils_src", + srcs = ["GrAHardwareBufferUtils.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAHardwareBufferUtils_impl_hdr", + ":GrDirectContextPriv_hdr", + "//include/core:SkTypes_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu/gl:GrGLTypes_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/vk:GrVkCaps_hdr", + "//src/gpu/ganesh/vk:GrVkGpu_hdr", + ], +) + +generated_cc_atom( + name = "GrAppliedClip_hdr", + hdrs = ["GrAppliedClip.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrFragmentProcessor_hdr", + ":GrScissorState_hdr", + ":GrWindowRectsState_hdr", + "//src/core:SkClipStack_hdr", + ], +) + +generated_cc_atom( + name = "GrAttachment_hdr", + hdrs = ["GrAttachment.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSurface_hdr", + "//src/core:SkClipStack_hdr", + ], +) + +generated_cc_atom( + name = "GrAttachment_src", + srcs = ["GrAttachment.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAttachment_hdr", + ":GrBackendUtils_hdr", + ":GrCaps_hdr", + ":GrDataUtils_hdr", + ":GrGpu_hdr", + ], +) + +generated_cc_atom( + name = "GrAuditTrail_hdr", + hdrs = ["GrAuditTrail.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrRenderTargetProxy_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkString_hdr", + "//include/gpu:GrConfig_hdr", + "//include/gpu:GrTypes_hdr", + "//include/private:SkTArray_hdr", + "//include/private:SkTHash_hdr", + ], +) + +generated_cc_atom( + name = "GrAuditTrail_src", + srcs = ["GrAuditTrail.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAuditTrail_hdr", + "//src/gpu/ganesh/ops:GrOp_hdr", + "//src/utils:SkJSONWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrAutoLocaleSetter_hdr", + hdrs = ["GrAutoLocaleSetter.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkString_hdr", + "//include/gpu:GrTypes_hdr", + "//include/private:SkNoncopyable_hdr", + ], +) + +generated_cc_atom( + name = "GrBackendSemaphore_src", + srcs = ["GrBackendSemaphore.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu:GrBackendSemaphore_hdr", + "//include/gpu/d3d:GrD3DTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrBackendSurfaceMutableStateImpl_hdr", + hdrs = ["GrBackendSurfaceMutableStateImpl.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/gpu:GrBackendSurfaceMutableState_hdr", + ], +) + +generated_cc_atom( + name = "GrBackendSurfaceMutableState_src", + srcs = ["GrBackendSurfaceMutableState.cpp"], + visibility = ["//:__subpackages__"], + deps = ["//include/gpu:GrBackendSurfaceMutableState_hdr"], +) + +generated_cc_atom( + name = "GrBackendSurface_src", + srcs = ["GrBackendSurface.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBackendSurfaceMutableStateImpl_hdr", + "//include/core:SkString_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu/d3d:GrD3DTypes_hdr", + "//include/gpu/dawn:GrDawnTypes_hdr", + "//include/gpu/mtl:GrMtlTypes_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh/d3d:GrD3DResourceState_hdr", + "//src/gpu/ganesh/d3d:GrD3DUtil_hdr", + "//src/gpu/ganesh/dawn:GrDawnUtil_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/mtl:GrMtlCppUtil_hdr", + "//src/gpu/ganesh/vk:GrVkImageLayout_hdr", + "//src/gpu/ganesh/vk:GrVkUtil_hdr", + ], +) + +generated_cc_atom( + name = "GrBackendTextureImageGenerator_hdr", + hdrs = ["GrBackendTextureImageGenerator.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrTexture_hdr", + "//include/core:SkImageGenerator_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/private:SkMutex_hdr", + "//src/gpu:ResourceKey_hdr", + ], +) + +generated_cc_atom( + name = "GrBackendTextureImageGenerator_src", + srcs = ["GrBackendTextureImageGenerator.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBackendTextureImageGenerator_hdr", + ":GrDirectContextPriv_hdr", + ":GrGpu_hdr", + ":GrProxyProvider_hdr", + ":GrRecordingContextPriv_hdr", + ":GrResourceCache_hdr", + ":GrResourceProviderPriv_hdr", + ":GrResourceProvider_hdr", + ":GrSemaphore_hdr", + ":GrTextureProxyPriv_hdr", + ":GrTexture_hdr", + ":SkGr_hdr", + "//include/core:SkColorSpace_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/core:SkMessageBus_hdr", + "//src/gpu/ganesh/gl:GrGLTexture_hdr", + ], +) + +generated_cc_atom( + name = "GrBackendUtils_hdr", + hdrs = ["GrBackendUtils.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkImage_hdr", + "//include/gpu:GrBackendSurface_hdr", + ], +) + +generated_cc_atom( + name = "GrBackendUtils_src", + srcs = ["GrBackendUtils.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBackendUtils_hdr", + ":GrDataUtils_hdr", + "//src/gpu/ganesh/d3d:GrD3DUtil_hdr", + "//src/gpu/ganesh/dawn:GrDawnUtil_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/mtl:GrMtlCppUtil_hdr", + "//src/gpu/ganesh/vk:GrVkUtil_hdr", + ], +) + +generated_cc_atom( + name = "GrBaseContextPriv_hdr", + hdrs = ["GrBaseContextPriv.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu:GrContextOptions_hdr", + "//include/private/gpu/ganesh:GrContext_Base_hdr", + ], +) + +generated_cc_atom( + name = "GrBlurUtils_hdr", + hdrs = ["GrBlurUtils.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/private/gpu/ganesh:GrTypesPriv_hdr"], +) + +generated_cc_atom( + name = "GrBlurUtils_src", + srcs = ["GrBlurUtils.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBlurUtils_hdr", + ":GrCaps_hdr", + ":GrDirectContextPriv_hdr", + ":GrFixedClip_hdr", + ":GrProxyProvider_hdr", + ":GrRecordingContextPriv_hdr", + ":GrResourceProvider_hdr", + ":GrStyle_hdr", + ":GrTextureProxy_hdr", + ":GrThreadSafeCache_hdr", + ":GrUtil_hdr", + ":SkGr_hdr", + "//include/core:SkBitmap_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkPaint_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/core:SkDraw_hdr", + "//src/core:SkMaskFilterBase_hdr", + "//src/core:SkMatrixProvider_hdr", + "//src/core:SkTLazy_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", + ], +) + +generated_cc_atom( + name = "GrBufferAllocPool_hdr", + hdrs = ["GrBufferAllocPool.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCpuBuffer_hdr", + ":GrDrawIndirectCommand_hdr", + ":GrNonAtomicRef_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkNoncopyable_hdr", + "//include/private:SkTArray_hdr", + "//include/private:SkTDArray_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrBufferAllocPool_src", + srcs = ["GrBufferAllocPool.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBufferAllocPool_hdr", + ":GrCaps_hdr", + ":GrCpuBuffer_hdr", + ":GrDirectContextPriv_hdr", + ":GrGpuBuffer_hdr", + ":GrGpu_hdr", + ":GrResourceProvider_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrTypes_hdr", + "//include/private:SkMacros_hdr", + "//src/core:SkSafeMath_hdr", + "//src/core:SkTraceEvent_hdr", + ], +) + +generated_cc_atom( + name = "GrBuffer_hdr", + hdrs = ["GrBuffer.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/gpu:GrTypes_hdr"], +) + +generated_cc_atom( + name = "GrCaps_hdr", + hdrs = ["GrCaps.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSamplerState_hdr", + ":GrShaderCaps_hdr", + ":GrSurfaceProxy_hdr", + "//include/core:SkImageInfo_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkString_hdr", + "//include/gpu:GrDriverBugWorkarounds_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/core:SkCompressedDataUtils_hdr", + "//src/gpu:Blend_hdr", + "//src/gpu:Swizzle_hdr", + ], +) + +generated_cc_atom( + name = "GrCaps_src", + srcs = ["GrCaps.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBackendUtils_hdr", + ":GrCaps_hdr", + ":GrRenderTargetProxy_hdr", + ":GrSurfaceProxy_hdr", + ":GrSurface_hdr", + ":GrTestUtils_hdr", + ":GrWindowRectangles_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu:GrContextOptions_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/utils:SkJSONWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrClientMappedBufferManager_hdr", + hdrs = ["GrClientMappedBufferManager.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpuBuffer_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/private:SkTArray_hdr", + "//src/core:SkMessageBus_hdr", + ], +) + +generated_cc_atom( + name = "GrClientMappedBufferManager_src", + srcs = ["GrClientMappedBufferManager.cpp"], + visibility = ["//:__subpackages__"], + deps = [":GrClientMappedBufferManager_hdr"], +) + +generated_cc_atom( + name = "GrClip_hdr", + hdrs = ["GrClip.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAppliedClip_hdr", + "//include/core:SkRRect_hdr", + "//include/core:SkRect_hdr", + ], +) + +generated_cc_atom( + name = "GrColorInfo_hdr", + hdrs = ["GrColorInfo.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrColorSpaceXform_hdr", + "//include/core:SkAlphaType_hdr", + "//include/core:SkRefCnt_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrColorInfo_src", + srcs = ["GrColorInfo.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrColorInfo_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkImageInfo_hdr", + "//src/core:SkColorSpacePriv_hdr", + ], +) + +generated_cc_atom( + name = "GrColorSpaceXform_hdr", + hdrs = ["GrColorSpaceXform.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrFragmentProcessor_hdr", + "//include/core:SkAlphaType_hdr", + "//include/core:SkColor_hdr", + "//include/core:SkRefCnt_hdr", + "//include/private:SkColorData_hdr", + "//src/core:SkColorSpaceXformSteps_hdr", + ], +) + +generated_cc_atom( + name = "GrColorSpaceXform_src", + srcs = ["GrColorSpaceXform.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrColorInfo_hdr", + ":GrColorSpaceXform_hdr", + ":GrProcessor_hdr", + "//include/core:SkString_hdr", + "//include/third_party/skcms:skcms_hdr", + "//src/core:SkColorSpacePriv_hdr", + "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLColorSpaceXformHelper_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + ], +) + +generated_cc_atom( + name = "GrColor_hdr", + hdrs = ["GrColor.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkColorPriv_hdr", + "//include/core:SkColor_hdr", + "//include/gpu:GrTypes_hdr", + "//include/private:SkColorData_hdr", + "//include/private:SkHalf_hdr", + "//src/gpu:BufferWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrContextThreadSafeProxyPriv_hdr", + hdrs = ["GrContextThreadSafeProxyPriv.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + "//include/gpu:GrContextThreadSafeProxy_hdr", + "//include/private/gpu/ganesh:GrContext_Base_hdr", + "//src/gpu/ganesh/text:GrTextBlobRedrawCoordinator_hdr", + ], +) + +generated_cc_atom( + name = "GrContextThreadSafeProxy_src", + srcs = ["GrContextThreadSafeProxy.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBaseContextPriv_hdr", + ":GrCaps_hdr", + ":GrContextThreadSafeProxyPriv_hdr", + ":GrThreadSafeCache_hdr", + ":GrThreadSafePipelineBuilder_hdr", + "//include/core:SkSurfaceCharacterization_hdr", + "//include/gpu:GrContextThreadSafeProxy_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/vk:GrVkCaps_hdr", + "//src/image:SkSurface_Gpu_hdr", + ], +) + +generated_cc_atom( + name = "GrContext_Base_src", + srcs = ["GrContext_Base.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBaseContextPriv_hdr", + ":GrCaps_hdr", + ":GrContextThreadSafeProxyPriv_hdr", + "//include/gpu:ShaderErrorHandler_hdr", + "//include/private/gpu/ganesh:GrContext_Base_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + ], +) + +generated_cc_atom( + name = "GrCopyRenderTask_hdr", + hdrs = ["GrCopyRenderTask.h"], + visibility = ["//:__subpackages__"], + deps = [":GrRenderTask_hdr"], +) + +generated_cc_atom( + name = "GrCopyRenderTask_src", + srcs = ["GrCopyRenderTask.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCopyRenderTask_hdr", + ":GrGpu_hdr", + ":GrOpFlushState_hdr", + ":GrResourceAllocator_hdr", + "//src/gpu/ganesh/geometry:GrRect_hdr", + ], +) + +generated_cc_atom( + name = "GrCpuBuffer_hdr", + hdrs = ["GrCpuBuffer.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBuffer_hdr", + ":GrNonAtomicRef_hdr", + "//src/core:SkSafeMath_hdr", + ], +) + +generated_cc_atom( + name = "GrDDLContext_src", + srcs = ["GrDDLContext.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrContextThreadSafeProxyPriv_hdr", + ":GrProgramDesc_hdr", + ":GrProgramInfo_hdr", + ":GrRecordingContextPriv_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/core:SkLRUCache_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + ], +) + +generated_cc_atom( + name = "GrDDLTask_hdr", + hdrs = ["GrDDLTask.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrRenderTask_hdr", + "//include/core:SkPoint_hdr", + ], +) + +generated_cc_atom( + name = "GrDDLTask_src", + srcs = ["GrDDLTask.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDDLTask_hdr", + ":GrResourceAllocator_hdr", + "//include/core:SkDeferredDisplayList_hdr", + "//src/core:SkDeferredDisplayListPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrDataUtils_hdr", + hdrs = ["GrDataUtils.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkColor_hdr", + "//include/private:SkTArray_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrDataUtils_src", + srcs = ["GrDataUtils.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrColor_hdr", + ":GrDataUtils_hdr", + ":GrImageInfo_hdr", + ":GrPixmap_hdr", + "//include/core:SkColorSpace_hdr", + "//include/private:SkTPin_hdr", + "//include/third_party/skcms:skcms_hdr", + "//src/core:SkColorSpaceXformSteps_hdr", + "//src/core:SkCompressedDataUtils_hdr", + "//src/core:SkConvertPixels_hdr", + "//src/core:SkMathPriv_hdr", + "//src/core:SkMipmap_hdr", + "//src/core:SkRasterPipeline_hdr", + "//src/core:SkTLazy_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/core:SkUtils_hdr", + "//src/gpu:Swizzle_hdr", + ], +) + +generated_cc_atom( + name = "GrDefaultGeoProcFactory_hdr", + hdrs = ["GrDefaultGeoProcFactory.h"], + visibility = ["//:__subpackages__"], + deps = [":GrGeometryProcessor_hdr"], +) + +generated_cc_atom( + name = "GrDefaultGeoProcFactory_src", + srcs = ["GrDefaultGeoProcFactory.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrDefaultGeoProcFactory_hdr", + ":GrGeometryProcessor_hdr", + "//include/core:SkRefCnt_hdr", + "//src/core:SkArenaAlloc_hdr", + "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + ], +) + +generated_cc_atom( + name = "GrDeferredProxyUploader_hdr", + hdrs = ["GrDeferredProxyUploader.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrOpFlushState_hdr", + ":GrTextureProxyPriv_hdr", + "//include/core:SkRefCnt_hdr", + "//include/private:SkSemaphore_hdr", + "//src/core:SkAutoPixmapStorage_hdr", + ], +) + +generated_cc_atom( + name = "GrDeferredUpload_hdr", + hdrs = ["GrDeferredUpload.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu:GrTypes_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrDirectContextPriv_hdr", + hdrs = ["GrDirectContextPriv.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":BaseDevice_hdr", + ":GrRecordingContextPriv_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkSurface_hdr", + "//include/gpu:GrDirectContext_hdr", + ], +) + +generated_cc_atom( + name = "GrDirectContextPriv_src", + srcs = ["GrDirectContextPriv.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrContextThreadSafeProxyPriv_hdr", + ":GrDirectContextPriv_hdr", + ":GrDrawingManager_hdr", + ":GrGpu_hdr", + ":GrMemoryPool_hdr", + ":GrRecordingContextPriv_hdr", + ":GrTexture_hdr", + ":GrThreadSafePipelineBuilder_hdr", + ":GrTracing_hdr", + ":SkGr_hdr", + ":SurfaceContext_hdr", + ":SurfaceFillContext_hdr", + "//include/core:SkBitmap_hdr", + "//include/gpu:GrContextThreadSafeProxy_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/core:SkRuntimeEffectPriv_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/text:GrAtlasManager_hdr", + "//src/gpu/ganesh/text:GrTextBlobRedrawCoordinator_hdr", + "//src/image:SkImage_Base_hdr", + "//src/image:SkImage_Gpu_hdr", + ], +) + +generated_cc_atom( + name = "GrDirectContext_src", + srcs = ["GrDirectContext.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBackendUtils_hdr", + ":GrClientMappedBufferManager_hdr", + ":GrContextThreadSafeProxyPriv_hdr", + ":GrDirectContextPriv_hdr", + ":GrDrawingManager_hdr", + ":GrGpu_hdr", + ":GrResourceProvider_hdr", + ":GrSemaphore_hdr", + ":GrThreadSafePipelineBuilder_hdr", + ":SurfaceContext_hdr", + "//include/core:SkString_hdr", + "//include/core:SkTraceMemoryDump_hdr", + "//include/gpu:GrBackendSemaphore_hdr", + "//include/gpu:GrContextThreadSafeProxy_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu/mtl:GrMtlBackendContext_hdr", + "//include/utils:SkRandom_hdr", + "//src/core:SkAutoMalloc_hdr", + "//src/core:SkTaskGroup_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh/d3d:GrD3DGpu_hdr", + "//src/gpu/ganesh/dawn:GrDawnGpu_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/gl:GrGLGpu_hdr", + "//src/gpu/ganesh/mock:GrMockGpu_hdr", + "//src/gpu/ganesh/mtl:GrMtlTrampoline_hdr", + "//src/gpu/ganesh/ops:SmallPathAtlasMgr_hdr", + "//src/gpu/ganesh/text:GrAtlasManager_hdr", + "//src/gpu/ganesh/text:GrStrikeCache_hdr", + "//src/gpu/ganesh/vk:GrVkGpu_hdr", + "//src/image:SkImage_GpuBase_hdr", + "//src/utils:SkJSONWriter_hdr", + "//src/utils:SkShaderUtils_hdr", + ], +) + +generated_cc_atom( + name = "GrDistanceFieldGenFromVector_hdr", + hdrs = ["GrDistanceFieldGenFromVector.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/core:SkPath_hdr"], +) + +generated_cc_atom( + name = "GrDistanceFieldGenFromVector_src", + srcs = ["GrDistanceFieldGenFromVector.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDistanceFieldGenFromVector_hdr", + "//include/core:SkMatrix_hdr", + "//include/gpu:GrConfig_hdr", + "//include/private:SkTPin_hdr", + "//src/core:SkAutoMalloc_hdr", + "//src/core:SkDistanceFieldGen_hdr", + "//src/core:SkGeometry_hdr", + "//src/core:SkPointPriv_hdr", + "//src/core:SkRectPriv_hdr", + "//src/gpu/ganesh/geometry:GrPathUtils_hdr", + ], +) + +generated_cc_atom( + name = "GrDrawIndirectCommand_hdr", + hdrs = ["GrDrawIndirectCommand.h"], + visibility = ["//:__subpackages__"], +) + +generated_cc_atom( + name = "GrDrawOpAtlas_hdr", + hdrs = ["GrDrawOpAtlas.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDeferredUpload_hdr", + ":GrRectanizerSkyline_hdr", + ":GrSurfaceProxyView_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/private:SkTArray_hdr", + "//src/core:SkIPoint16_hdr", + "//src/core:SkTInternalLList_hdr", + "//src/gpu/ganesh/geometry:GrRect_hdr", + ], +) + +generated_cc_atom( + name = "GrDrawOpAtlas_src", + srcs = ["GrDrawOpAtlas.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBackendUtils_hdr", + ":GrDrawOpAtlas_hdr", + ":GrOnFlushResourceProvider_hdr", + ":GrOpFlushState_hdr", + ":GrProxyProvider_hdr", + ":GrResourceProviderPriv_hdr", + ":GrResourceProvider_hdr", + ":GrSurfaceProxyPriv_hdr", + ":GrTexture_hdr", + ":GrTracing_hdr", + "//include/private:SkTPin_hdr", + "//src/core:SkOpts_hdr", + ], +) + +generated_cc_atom( + name = "GrDrawOpTest_hdr", + hdrs = ["GrDrawOpTest.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrTestUtils_hdr", + "//include/core:SkRefCnt_hdr", + ], +) + +generated_cc_atom( + name = "GrDrawOpTest_src", + srcs = ["GrDrawOpTest.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBaseContextPriv_hdr", + ":GrCaps_hdr", + ":GrDrawOpTest_hdr", + ":GrUserStencilSettings_hdr", + "//include/core:SkTypes_hdr", + "//include/private/gpu/ganesh:GrContext_Base_hdr", + "//include/utils:SkRandom_hdr", + ], +) + +generated_cc_atom( + name = "GrDrawingManager_hdr", + hdrs = ["GrDrawingManager.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBufferAllocPool_hdr", + ":GrDeferredUpload_hdr", + ":GrHashMapWithCache_hdr", + ":GrResourceCache_hdr", + ":GrSurfaceProxy_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkSurface_hdr", + "//include/private:SkTArray_hdr", + "//include/private:SkTHash_hdr", + "//src/gpu/ganesh/v1:PathRendererChain_hdr", + "//src/gpu/ganesh/v1:PathRenderer_hdr", + ], +) + +generated_cc_atom( + name = "GrDrawingManager_src", + srcs = ["GrDrawingManager.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrClientMappedBufferManager_hdr", + ":GrCopyRenderTask_hdr", + ":GrDDLTask_hdr", + ":GrDirectContextPriv_hdr", + ":GrDrawingManager_hdr", + ":GrGpu_hdr", + ":GrMemoryPool_hdr", + ":GrOnFlushResourceProvider_hdr", + ":GrOpFlushState_hdr", + ":GrRecordingContextPriv_hdr", + ":GrRenderTargetProxy_hdr", + ":GrRenderTaskCluster_hdr", + ":GrRenderTask_hdr", + ":GrResourceAllocator_hdr", + ":GrResourceProvider_hdr", + ":GrSurfaceProxyPriv_hdr", + ":GrTTopoSort_hdr", + ":GrTextureProxyPriv_hdr", + ":GrTextureProxy_hdr", + ":GrTextureResolveRenderTask_hdr", + ":GrTexture_hdr", + ":GrTracing_hdr", + ":GrTransferFromRenderTask_hdr", + ":GrWaitRenderTask_hdr", + ":GrWritePixelsRenderTask_hdr", + "//include/core:SkDeferredDisplayList_hdr", + "//include/gpu:GrBackendSemaphore_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/core:SkDeferredDisplayListPriv_hdr", + "//src/core:SkTInternalLList_hdr", + "//src/gpu/ganesh/ops:OpsTask_hdr", + "//src/gpu/ganesh/ops:SoftwarePathRenderer_hdr", + "//src/gpu/ganesh/text:GrSDFTControl_hdr", + "//src/image:SkSurface_Gpu_hdr", + ], +) + +generated_cc_atom( + name = "GrDriverBugWorkarounds_src", + srcs = ["GrDriverBugWorkarounds.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkTypes_hdr", + "//include/gpu:GrDriverBugWorkarounds_hdr", + ], +) + +generated_cc_atom( + name = "GrDstProxyView_hdr", + hdrs = ["GrDstProxyView.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSurfaceProxyView_hdr", + "//include/gpu:GrTypes_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrDynamicAtlas_hdr", + hdrs = ["GrDynamicAtlas.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrTextureProxy_hdr", + "//src/core:SkArenaAlloc_hdr", + ], +) + +generated_cc_atom( + name = "GrDynamicAtlas_src", + srcs = ["GrDynamicAtlas.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrDynamicAtlas_hdr", + ":GrOnFlushResourceProvider_hdr", + ":GrProxyProvider_hdr", + ":GrRectanizerPow2_hdr", + ":GrRectanizerSkyline_hdr", + ":GrRenderTarget_hdr", + ":GrResourceProvider_hdr", + ":GrSurfaceProxyPriv_hdr", + ":GrSurfaceProxyView_hdr", + "//src/core:SkIPoint16_hdr", + ], +) + +generated_cc_atom( + name = "GrEagerVertexAllocator_hdr", + hdrs = ["GrEagerVertexAllocator.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrThreadSafeCache_hdr", + "//src/gpu:BufferWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrEagerVertexAllocator_src", + srcs = ["GrEagerVertexAllocator.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrEagerVertexAllocator_hdr", + ":GrMeshDrawTarget_hdr", + ], +) + +generated_cc_atom( + name = "GrFPArgs_hdr", + hdrs = ["GrFPArgs.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/core:SkMatrix_hdr"], +) + +generated_cc_atom( + name = "GrFinishCallbacks_hdr", + hdrs = ["GrFinishCallbacks.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu:GrTypes_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrFinishCallbacks_src", + srcs = ["GrFinishCallbacks.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrFinishCallbacks_hdr", + ":GrGpu_hdr", + ], +) + +generated_cc_atom( + name = "GrFixedClip_hdr", + hdrs = ["GrFixedClip.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrClip_hdr", + ":GrScissorState_hdr", + ":GrWindowRectsState_hdr", + ], +) + +generated_cc_atom( + name = "GrFixedClip_src", + srcs = ["GrFixedClip.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAppliedClip_hdr", + ":GrFixedClip_hdr", + ], +) + +generated_cc_atom( + name = "GrFragmentProcessor_hdr", + hdrs = ["GrFragmentProcessor.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrProcessor_hdr", + "//include/private:SkMacros_hdr", + "//include/private:SkSLSampleUsage_hdr", + "//include/private:SkSLString_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + ], +) + +generated_cc_atom( + name = "GrFragmentProcessor_src", + srcs = ["GrFragmentProcessor.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrFragmentProcessor_hdr", + ":GrPipeline_hdr", + ":GrProcessorAnalysis_hdr", + ":GrShaderCaps_hdr", + "//src/core:SkRuntimeEffectPriv_hdr", + "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + ], +) + +generated_cc_atom( + name = "GrGeometryProcessor_hdr", + hdrs = ["GrGeometryProcessor.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrColor_hdr", + ":GrFragmentProcessor_hdr", + ":GrProcessor_hdr", + ":GrShaderCaps_hdr", + ":GrShaderVar_hdr", + "//src/gpu:Swizzle_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + ], +) + +generated_cc_atom( + name = "GrGeometryProcessor_src", + srcs = ["GrGeometryProcessor.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGeometryProcessor_hdr", + ":GrPipeline_hdr", + "//src/core:SkMatrixPriv_hdr", + "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + ], +) + +generated_cc_atom( + name = "GrGlyph_hdr", + hdrs = ["GrGlyph.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDrawOpAtlas_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/core:SkGlyph_hdr", + "//src/core:SkMask_hdr", + ], +) + +generated_cc_atom( + name = "GrGpuBuffer_hdr", + hdrs = ["GrGpuBuffer.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBuffer_hdr", + ":GrGpuResource_hdr", + ], +) + +generated_cc_atom( + name = "GrGpuBuffer_src", + srcs = ["GrGpuBuffer.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrGpuBuffer_hdr", + ":GrGpu_hdr", + ], +) + +generated_cc_atom( + name = "GrGpuResourceCacheAccess_hdr", + hdrs = ["GrGpuResourceCacheAccess.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpuResourcePriv_hdr", + ":GrGpuResource_hdr", + ], +) + +generated_cc_atom( + name = "GrGpuResourcePriv_hdr", + hdrs = ["GrGpuResourcePriv.h"], + visibility = ["//:__subpackages__"], + deps = [":GrGpuResource_hdr"], +) + +generated_cc_atom( + name = "GrGpuResource_hdr", + hdrs = ["GrGpuResource.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/private:SkNoncopyable_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu:ResourceKey_hdr", + ], +) + +generated_cc_atom( + name = "GrGpuResource_src", + srcs = ["GrGpuResource.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDirectContextPriv_hdr", + ":GrGpuResourcePriv_hdr", + ":GrGpuResource_hdr", + ":GrGpu_hdr", + ":GrResourceCache_hdr", + "//include/core:SkTraceMemoryDump_hdr", + "//include/gpu:GrDirectContext_hdr", + ], +) + +generated_cc_atom( + name = "GrGpu_hdr", + hdrs = ["GrGpu.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAttachment_hdr", + ":GrCaps_hdr", + ":GrOpsRenderPass_hdr", + ":GrPixmap_hdr", + ":GrXferProcessor_hdr", + "//include/core:SkPath_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkSurface_hdr", + "//include/gpu:GrTypes_hdr", + "//include/private:SkTArray_hdr", + "//src/core:SkTInternalLList_hdr", + "//src/gpu:RefCntedCallback_hdr", + "//src/gpu:Swizzle_hdr", + ], +) + +generated_cc_atom( + name = "GrGpu_src", + srcs = ["GrGpu.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAttachment_hdr", + ":GrBackendUtils_hdr", + ":GrCaps_hdr", + ":GrDataUtils_hdr", + ":GrDirectContextPriv_hdr", + ":GrGpuResourcePriv_hdr", + ":GrGpu_hdr", + ":GrNativeRect_hdr", + ":GrPipeline_hdr", + ":GrRenderTarget_hdr", + ":GrResourceCache_hdr", + ":GrResourceProvider_hdr", + ":GrRingBuffer_hdr", + ":GrSemaphore_hdr", + ":GrStagingBufferManager_hdr", + ":GrStencilSettings_hdr", + ":GrTextureProxyPriv_hdr", + ":GrTracing_hdr", + "//include/gpu:GrBackendSemaphore_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/core:SkCompressedDataUtils_hdr", + "//src/core:SkMathPriv_hdr", + "//src/core:SkMipmap_hdr", + "//src/sksl:SkSLCompiler_hdr", + "//src/utils:SkJSONWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrHashMapWithCache_hdr", + hdrs = ["GrHashMapWithCache.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/private:SkChecksum_hdr", + "//include/private:SkNoncopyable_hdr", + "//include/private:SkTHash_hdr", + ], +) + +generated_cc_atom( + name = "GrImageContextPriv_hdr", + hdrs = ["GrImageContextPriv.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBaseContextPriv_hdr", + "//include/gpu:GrContextThreadSafeProxy_hdr", + "//include/private/gpu/ganesh:GrImageContext_hdr", + ], +) + +generated_cc_atom( + name = "GrImageContext_src", + srcs = ["GrImageContext.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrContextThreadSafeProxyPriv_hdr", + ":GrImageContextPriv_hdr", + ":GrProxyProvider_hdr", + "//include/private/gpu/ganesh:GrImageContext_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + ], +) + +generated_cc_atom( + name = "GrImageInfo_hdr", + hdrs = ["GrImageInfo.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrColorInfo_hdr", + "//include/core:SkAlphaType_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkSize_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrManagedResource_hdr", + hdrs = ["GrManagedResource.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/private:SkMutex_hdr", + "//include/private:SkTHash_hdr", + "//include/utils:SkRandom_hdr", + "//src/gpu:RefCntedCallback_hdr", + ], +) + +generated_cc_atom( + name = "GrManagedResource_src", + srcs = ["GrManagedResource.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpuResourcePriv_hdr", + ":GrManagedResource_hdr", + ":GrTexture_hdr", + ], +) + +generated_cc_atom( + name = "GrMemoryPool_hdr", + hdrs = ["GrMemoryPool.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/private:SkTHash_hdr", + "//src/core:SkBlockAllocator_hdr", + ], +) + +generated_cc_atom( + name = "GrMemoryPool_src", + srcs = ["GrMemoryPool.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrMemoryPool_hdr", + "//include/private:SkTPin_hdr", + "//src/core:SkASAN_hdr", + ], +) + +generated_cc_atom( + name = "GrMeshDrawTarget_hdr", + hdrs = ["GrMeshDrawTarget.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDrawIndirectCommand_hdr", + ":GrSimpleMesh_hdr", + ], +) + +generated_cc_atom( + name = "GrMeshDrawTarget_src", + srcs = ["GrMeshDrawTarget.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrMeshDrawTarget_hdr", + ":GrResourceProvider_hdr", + "//src/gpu:BufferWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrNativeRect_hdr", + hdrs = ["GrNativeRect.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRect_hdr", + "//include/gpu:GrTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrNonAtomicRef_hdr", + hdrs = ["GrNonAtomicRef.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/private:SkNoncopyable_hdr", + "//include/private:SkTArray_hdr", + ], +) + +generated_cc_atom( + name = "GrOnFlushResourceProvider_hdr", + hdrs = ["GrOnFlushResourceProvider.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDeferredUpload_hdr", + "//include/core:SkSpan_hdr", + ], +) + +generated_cc_atom( + name = "GrOnFlushResourceProvider_src", + srcs = ["GrOnFlushResourceProvider.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDirectContextPriv_hdr", + ":GrDrawingManager_hdr", + ":GrOnFlushResourceProvider_hdr", + ":GrProxyProvider_hdr", + ":GrRecordingContextPriv_hdr", + ":GrResourceProvider_hdr", + ":GrSurfaceProxyPriv_hdr", + ":GrSurfaceProxy_hdr", + ":GrTextureResolveRenderTask_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + ], +) + +generated_cc_atom( + name = "GrOpFlushState_hdr", + hdrs = ["GrOpFlushState.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAppliedClip_hdr", + ":GrBufferAllocPool_hdr", + ":GrDeferredUpload_hdr", + ":GrMeshDrawTarget_hdr", + ":GrProgramInfo_hdr", + ":GrRenderTargetProxy_hdr", + ":GrSurfaceProxyView_hdr", + "//src/core:SkArenaAllocList_hdr", + "//src/core:SkArenaAlloc_hdr", + ], +) + +generated_cc_atom( + name = "GrOpFlushState_src", + srcs = ["GrOpFlushState.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDataUtils_hdr", + ":GrDirectContextPriv_hdr", + ":GrDrawOpAtlas_hdr", + ":GrGpu_hdr", + ":GrImageInfo_hdr", + ":GrOpFlushState_hdr", + ":GrProgramInfo_hdr", + ":GrResourceProvider_hdr", + ":GrTexture_hdr", + "//include/core:SkColorSpace_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/core:SkConvertPixels_hdr", + ], +) + +generated_cc_atom( + name = "GrOpsRenderPass_hdr", + hdrs = ["GrOpsRenderPass.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDeferredUpload_hdr", + ":GrPipeline_hdr", + "//include/core:SkDrawable_hdr", + ], +) + +generated_cc_atom( + name = "GrOpsRenderPass_src", + srcs = ["GrOpsRenderPass.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrCpuBuffer_hdr", + ":GrDrawIndirectCommand_hdr", + ":GrGeometryProcessor_hdr", + ":GrGpu_hdr", + ":GrOpsRenderPass_hdr", + ":GrProgramInfo_hdr", + ":GrRenderTarget_hdr", + ":GrScissorState_hdr", + ":GrSimpleMesh_hdr", + ":GrTexture_hdr", + "//include/core:SkRect_hdr", + ], +) + +generated_cc_atom( + name = "GrOpsTypes_hdr", + hdrs = ["GrOpsTypes.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSurfaceProxyView_hdr", + "//include/core:SkMatrix_hdr", + "//include/core:SkRect_hdr", + "//include/private:SkColorData_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrPaint_hdr", + hdrs = ["GrPaint.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrColor_hdr", + ":GrFragmentProcessor_hdr", + "//include/core:SkBlendMode_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkRegion_hdr", + "//src/core:SkTLazy_hdr", + ], +) + +generated_cc_atom( + name = "GrPaint_src", + srcs = ["GrPaint.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrPaint_hdr", + ":GrXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrCoverageSetOpXP_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + ], +) + +generated_cc_atom( + name = "GrPersistentCacheUtils_hdr", + hdrs = ["GrPersistentCacheUtils.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkData_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/sksl/ir:SkSLProgram_hdr", + ], +) + +generated_cc_atom( + name = "GrPersistentCacheUtils_src", + srcs = ["GrPersistentCacheUtils.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrPersistentCacheUtils_hdr", + "//include/private:SkSLString_hdr", + "//src/core:SkReadBuffer_hdr", + "//src/core:SkWriteBuffer_hdr", + ], +) + +generated_cc_atom( + name = "GrPipeline_hdr", + hdrs = ["GrPipeline.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrColor_hdr", + ":GrDstProxyView_hdr", + ":GrFragmentProcessor_hdr", + ":GrProcessorSet_hdr", + ":GrScissorState_hdr", + ":GrSurfaceProxyView_hdr", + ":GrUserStencilSettings_hdr", + ":GrWindowRectsState_hdr", + "//include/core:SkRefCnt_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + ], +) + +generated_cc_atom( + name = "GrPipeline_src", + srcs = ["GrPipeline.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAppliedClip_hdr", + ":GrCaps_hdr", + ":GrPipeline_hdr", + ":GrXferProcessor_hdr", + "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + ], +) + +generated_cc_atom( + name = "GrPixmap_hdr", + hdrs = ["GrPixmap.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrImageInfo_hdr", + "//include/core:SkData_hdr", + "//include/core:SkPixmap_hdr", + ], +) + +generated_cc_atom( + name = "GrProcessorAnalysis_hdr", + hdrs = ["GrProcessorAnalysis.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/private:SkColorData_hdr"], +) + +generated_cc_atom( + name = "GrProcessorAnalysis_src", + srcs = ["GrProcessorAnalysis.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrFragmentProcessor_hdr", + ":GrGeometryProcessor_hdr", + ":GrProcessorAnalysis_hdr", + ], +) + +generated_cc_atom( + name = "GrProcessorSet_hdr", + hdrs = ["GrProcessorSet.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrFragmentProcessor_hdr", + ":GrPaint_hdr", + ":GrProcessorAnalysis_hdr", + ":GrXferProcessor_hdr", + "//include/private:SkTemplates_hdr", + ], +) + +generated_cc_atom( + name = "GrProcessorSet_src", + srcs = ["GrProcessorSet.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAppliedClip_hdr", + ":GrCaps_hdr", + ":GrProcessorSet_hdr", + ":GrUserStencilSettings_hdr", + ":GrXferProcessor_hdr", + "//src/core:SkBlendModePriv_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + ], +) + +generated_cc_atom( + name = "GrProcessorUnitTest_hdr", + hdrs = ["GrProcessorUnitTest.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrTestUtils_hdr", + ":GrTextureProxy_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkTArray_hdr", + "//src/core:SkArenaAlloc_hdr", + ], +) + +generated_cc_atom( + name = "GrProcessorUnitTest_src", + srcs = ["GrProcessorUnitTest.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrFragmentProcessor_hdr", + ":GrProcessorUnitTest_hdr", + ":GrRecordingContextPriv_hdr", + ":GrSurfaceProxyView_hdr", + "//include/gpu:GrRecordingContext_hdr", + ], +) + +generated_cc_atom( + name = "GrProcessor_hdr", + hdrs = ["GrProcessor.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrColor_hdr", + ":GrGpuBuffer_hdr", + ":GrProcessorUnitTest_hdr", + ":GrProgramDesc_hdr", + ":GrSamplerState_hdr", + ":GrShaderVar_hdr", + ":GrSurfaceProxyPriv_hdr", + ":GrTextureProxy_hdr", + "//include/core:SkMath_hdr", + "//include/core:SkString_hdr", + ], +) + +generated_cc_atom( + name = "GrProcessor_src", + srcs = ["GrProcessor.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGeometryProcessor_hdr", + ":GrMemoryPool_hdr", + ":GrProcessor_hdr", + ":GrSamplerState_hdr", + ":GrTextureProxy_hdr", + ":GrXferProcessor_hdr", + "//include/private:SkSpinlock_hdr", + ], +) + +generated_cc_atom( + name = "GrProgramDesc_hdr", + hdrs = ["GrProgramDesc.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkString_hdr", + "//include/private:SkTArray_hdr", + "//include/private:SkTo_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrProgramDesc_src", + srcs = ["GrProgramDesc.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrFragmentProcessor_hdr", + ":GrGeometryProcessor_hdr", + ":GrPipeline_hdr", + ":GrProcessor_hdr", + ":GrProgramDesc_hdr", + ":GrProgramInfo_hdr", + ":GrRenderTarget_hdr", + ":GrShaderCaps_hdr", + ":GrTexture_hdr", + "//include/private:SkChecksum_hdr", + "//include/private:SkTo_hdr", + "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + ], +) + +generated_cc_atom( + name = "GrProgramInfo_hdr", + hdrs = ["GrProgramInfo.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGeometryProcessor_hdr", + ":GrPipeline_hdr", + "//include/gpu:GrTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrProgramInfo_src", + srcs = ["GrProgramInfo.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrProgramInfo_hdr", + ":GrStencilSettings_hdr", + ":GrTexture_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + ], +) + +generated_cc_atom( + name = "GrProxyProvider_hdr", + hdrs = ["GrProxyProvider.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrTextureProxy_hdr", + "//include/gpu:GrTypes_hdr", + "//src/core:SkTDynamicHash_hdr", + "//src/gpu:ResourceKey_hdr", + ], +) + +generated_cc_atom( + name = "GrProxyProvider_src", + srcs = ["GrProxyProvider.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrContextThreadSafeProxyPriv_hdr", + ":GrDirectContextPriv_hdr", + ":GrImageContextPriv_hdr", + ":GrProxyProvider_hdr", + ":GrRenderTarget_hdr", + ":GrResourceProvider_hdr", + ":GrSurfaceProxyPriv_hdr", + ":GrSurfaceProxy_hdr", + ":GrTextureProxyCacheAccess_hdr", + ":GrTextureRenderTargetProxy_hdr", + ":GrTexture_hdr", + ":SkGr_hdr", + "//include/core:SkBitmap_hdr", + "//include/core:SkImage_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private:SingleOwner_hdr", + "//include/private:SkImageInfoPriv_hdr", + "//include/private/gpu/ganesh:GrImageContext_hdr", + "//src/core:SkAutoPixmapStorage_hdr", + "//src/core:SkCompressedDataUtils_hdr", + "//src/core:SkImagePriv_hdr", + "//src/core:SkMipmap_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/image:SkImage_Base_hdr", + ], +) + +generated_cc_atom( + name = "GrRecordingContextPriv_hdr", + hdrs = ["GrRecordingContextPriv.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":BaseDevice_hdr", + ":GrImageContextPriv_hdr", + "//include/core:SkPaint_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/gpu:RefCntedCallback_hdr", + "//src/gpu/ganesh/text:GrSDFTControl_hdr", + ], +) + +generated_cc_atom( + name = "GrRecordingContextPriv_src", + srcs = ["GrRecordingContextPriv.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrDrawingManager_hdr", + ":GrProxyProvider_hdr", + ":GrRecordingContextPriv_hdr", + ":GrRenderTargetProxy_hdr", + ":GrSurfaceProxyView_hdr", + "//include/core:SkColorSpace_hdr", + "//src/gpu/ganesh/v1:Device_v1_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh/v1:SurfaceFillContext_v1_hdr", + ], +) + +generated_cc_atom( + name = "GrRecordingContext_src", + srcs = ["GrRecordingContext.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAuditTrail_hdr", + ":GrCaps_hdr", + ":GrContextThreadSafeProxyPriv_hdr", + ":GrDrawingManager_hdr", + ":GrMemoryPool_hdr", + ":GrProgramDesc_hdr", + ":GrProxyProvider_hdr", + ":GrRecordingContextPriv_hdr", + ":SkGr_hdr", + ":SurfaceContext_hdr", + "//include/gpu:GrContextThreadSafeProxy_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/core:SkArenaAlloc_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/ops:AtlasTextOp_hdr", + "//src/gpu/ganesh/text:GrTextBlobRedrawCoordinator_hdr", + "//src/gpu/ganesh/text:GrTextBlob_hdr", + "//src/utils:SkJSONWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrRectanizerPow2_hdr", + hdrs = ["GrRectanizerPow2.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrRectanizer_impl_hdr", + "//include/private:SkMalloc_hdr", + "//src/core:SkIPoint16_hdr", + "//src/core:SkMathPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrRectanizerPow2_src", + srcs = ["GrRectanizerPow2.cpp"], + visibility = ["//:__subpackages__"], + deps = [":GrRectanizerPow2_hdr"], +) + +generated_cc_atom( + name = "GrRectanizerSkyline_hdr", + hdrs = ["GrRectanizerSkyline.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrRectanizer_impl_hdr", + "//include/private:SkTDArray_hdr", + ], +) + +generated_cc_atom( + name = "GrRectanizerSkyline_src", + srcs = ["GrRectanizerSkyline.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrRectanizerSkyline_hdr", + "//src/core:SkIPoint16_hdr", + ], +) + +generated_cc_atom( + name = "GrRefCnt_hdr", + hdrs = ["GrRefCnt.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpuResource_hdr", + ":GrManagedResource_hdr", + "//include/core:SkRefCnt_hdr", + ], +) + +generated_cc_atom( + name = "GrRenderTargetContext_hdr", + hdrs = ["GrRenderTargetContext.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkTypes_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", + ], +) + +generated_cc_atom( + name = "GrRenderTargetProxy_hdr", + hdrs = ["GrRenderTargetProxy.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrNativeRect_hdr", + ":GrSubRunAllocator_hdr", + ":GrSurfaceProxy_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/core:SkArenaAlloc_hdr", + "//src/gpu:Swizzle_hdr", + ], +) + +generated_cc_atom( + name = "GrRenderTargetProxy_src", + srcs = ["GrRenderTargetProxy.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrDirectContextPriv_hdr", + ":GrGpuResourcePriv_hdr", + ":GrRenderTargetProxy_hdr", + ":GrRenderTarget_hdr", + ":GrResourceProvider_hdr", + ":GrSurfaceProxyPriv_hdr", + ":GrSurface_hdr", + ":GrTextureRenderTargetProxy_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/core:SkMathPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrRenderTarget_hdr", + hdrs = ["GrRenderTarget.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSurface_hdr", + "//include/core:SkRect_hdr", + ], +) + +generated_cc_atom( + name = "GrRenderTarget_src", + srcs = ["GrRenderTarget.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAttachment_hdr", + ":GrBackendUtils_hdr", + ":GrGpu_hdr", + ":GrRenderTarget_hdr", + ":GrStencilSettings_hdr", + "//src/core:SkRectPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrRenderTaskCluster_hdr", + hdrs = ["GrRenderTaskCluster.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/core:SkSpan_hdr", + "//src/core:SkTInternalLList_hdr", + ], +) + +generated_cc_atom( + name = "GrRenderTaskCluster_src", + srcs = ["GrRenderTaskCluster.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrRenderTaskCluster_hdr", + ":GrRenderTask_hdr", + "//include/private:SkTHash_hdr", + ], +) + +generated_cc_atom( + name = "GrRenderTask_hdr", + hdrs = ["GrRenderTask.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSurfaceProxyView_hdr", + ":GrTextureProxy_hdr", + ":GrTextureResolveManager_hdr", + "//include/core:SkRefCnt_hdr", + "//include/private:SkTArray_hdr", + "//src/core:SkTInternalLList_hdr", + ], +) + +generated_cc_atom( + name = "GrRenderTask_src", + srcs = ["GrRenderTask.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAttachment_hdr", + ":GrRenderTarget_hdr", + ":GrRenderTask_hdr", + ":GrTextureProxyPriv_hdr", + ":GrTextureResolveRenderTask_hdr", + ], +) + +generated_cc_atom( + name = "GrResourceAllocator_hdr", + hdrs = ["GrResourceAllocator.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrHashMapWithCache_hdr", + ":GrSurfaceProxy_hdr", + ":GrSurface_hdr", + "//include/private:SkTHash_hdr", + "//src/core:SkArenaAlloc_hdr", + "//src/core:SkTMultiMap_hdr", + ], +) + +generated_cc_atom( + name = "GrResourceAllocator_src", + srcs = ["GrResourceAllocator.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDirectContextPriv_hdr", + ":GrGpuResourcePriv_hdr", + ":GrRenderTargetProxy_hdr", + ":GrResourceAllocator_hdr", + ":GrResourceProvider_hdr", + ":GrSurfaceProxyPriv_hdr", + ":GrSurfaceProxy_hdr", + ], +) + +generated_cc_atom( + name = "GrResourceCache_hdr", + hdrs = ["GrResourceCache.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpuResourceCacheAccess_hdr", + ":GrGpuResourcePriv_hdr", + ":GrGpuResource_hdr", + "//include/core:SkRefCnt_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/private:SkTArray_hdr", + "//include/private:SkTHash_hdr", + "//src/core:SkMessageBus_hdr", + "//src/core:SkTDPQueue_hdr", + "//src/core:SkTInternalLList_hdr", + "//src/core:SkTMultiMap_hdr", + "//src/gpu:ResourceKey_hdr", + ], +) + +generated_cc_atom( + name = "GrResourceCache_src", + srcs = ["GrResourceCache.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrDirectContextPriv_hdr", + ":GrGpuResourceCacheAccess_hdr", + ":GrProxyProvider_hdr", + ":GrResourceCache_hdr", + ":GrTextureProxyCacheAccess_hdr", + ":GrTexture_hdr", + ":GrThreadSafeCache_hdr", + ":GrTracing_hdr", + ":SkGr_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/private:SingleOwner_hdr", + "//include/private:SkTo_hdr", + "//include/utils:SkRandom_hdr", + "//src/core:SkMessageBus_hdr", + "//src/core:SkOpts_hdr", + "//src/core:SkScopeExit_hdr", + "//src/core:SkTSort_hdr", + ], +) + +generated_cc_atom( + name = "GrResourceHandle_hdr", + hdrs = ["GrResourceHandle.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/core:SkTypes_hdr"], +) + +generated_cc_atom( + name = "GrResourceProviderPriv_hdr", + hdrs = ["GrResourceProviderPriv.h"], + visibility = ["//:__subpackages__"], + deps = [":GrResourceProvider_hdr"], +) + +generated_cc_atom( + name = "GrResourceProvider_hdr", + hdrs = ["GrResourceProvider.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpuBuffer_hdr", + ":GrResourceCache_hdr", + "//include/gpu:GrContextOptions_hdr", + "//include/private:SkImageInfoPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrResourceProvider_src", + srcs = ["GrResourceProvider.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAttachment_hdr", + ":GrCaps_hdr", + ":GrDataUtils_hdr", + ":GrGpuBuffer_hdr", + ":GrGpu_hdr", + ":GrImageInfo_hdr", + ":GrProxyProvider_hdr", + ":GrRenderTarget_hdr", + ":GrResourceCache_hdr", + ":GrResourceProvider_hdr", + ":GrSemaphore_hdr", + ":GrTexture_hdr", + ":SkGr_hdr", + "//include/core:SkColorSpace_hdr", + "//include/gpu:GrBackendSemaphore_hdr", + "//include/private:SingleOwner_hdr", + "//src/core:SkConvertPixels_hdr", + "//src/core:SkMathPriv_hdr", + "//src/core:SkMipmap_hdr", + "//src/gpu:BufferWriter_hdr", + "//src/gpu:ResourceKey_hdr", + ], +) + +generated_cc_atom( + name = "GrRingBuffer_hdr", + hdrs = ["GrRingBuffer.h"], + visibility = ["//:__subpackages__"], + deps = [":GrGpuBuffer_hdr"], +) + +generated_cc_atom( + name = "GrRingBuffer_src", + srcs = ["GrRingBuffer.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDirectContextPriv_hdr", + ":GrGpu_hdr", + ":GrResourceProvider_hdr", + ":GrRingBuffer_hdr", + ], +) + +generated_cc_atom( + name = "GrSPIRVUniformHandler_hdr", + hdrs = ["GrSPIRVUniformHandler.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//src/core:SkTBlockList_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + ], +) + +generated_cc_atom( + name = "GrSPIRVUniformHandler_src", + srcs = ["GrSPIRVUniformHandler.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSPIRVUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", + ], +) + +generated_cc_atom( + name = "GrSPIRVVaryingHandler_hdr", + hdrs = ["GrSPIRVVaryingHandler.h"], + visibility = ["//:__subpackages__"], + deps = ["//src/gpu/ganesh/glsl:GrGLSLVarying_hdr"], +) + +generated_cc_atom( + name = "GrSPIRVVaryingHandler_src", + srcs = ["GrSPIRVVaryingHandler.cpp"], + visibility = ["//:__subpackages__"], + deps = [":GrSPIRVVaryingHandler_hdr"], +) + +generated_cc_atom( + name = "GrSWMaskHelper_hdr", + hdrs = ["GrSWMaskHelper.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSurfaceProxyView_hdr", + "//include/core:SkMatrix_hdr", + "//include/core:SkRegion_hdr", + "//include/core:SkTypes_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/core:SkAutoPixmapStorage_hdr", + "//src/core:SkDraw_hdr", + "//src/core:SkRasterClip_hdr", + ], +) + +generated_cc_atom( + name = "GrSWMaskHelper_src", + srcs = ["GrSWMaskHelper.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrProxyProvider_hdr", + ":GrRecordingContextPriv_hdr", + ":GrSWMaskHelper_hdr", + ":GrTextureProxy_hdr", + ":SkGr_hdr", + ":SurfaceContext_hdr", + "//include/core:SkBitmap_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/core:SkMatrixProvider_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + ], +) + +generated_cc_atom( + name = "GrSamplerState_hdr", + hdrs = ["GrSamplerState.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkSamplingOptions_hdr", + "//include/gpu:GrTypes_hdr", + "//include/private:SkTPin_hdr", + "//include/private:SkTo_hdr", + "//src/core:SkMathPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrScissorState_hdr", + hdrs = ["GrScissorState.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/core:SkRect_hdr"], +) + +generated_cc_atom( + name = "GrSemaphore_hdr", + hdrs = ["GrSemaphore.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/gpu:GrBackendSemaphore_hdr"], +) + +generated_cc_atom( + name = "GrShaderCaps_hdr", + hdrs = ["GrShaderCaps.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//src/gpu/ganesh/glsl:GrGLSL_hdr", + "//src/sksl:SkSLUtil_hdr", + ], +) + +generated_cc_atom( + name = "GrShaderCaps_src", + srcs = ["GrShaderCaps.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrShaderCaps_hdr", + "//include/gpu:GrContextOptions_hdr", + "//src/utils:SkJSONWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrShaderVar_hdr", + hdrs = ["GrShaderVar.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkString_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/core:SkSLTypeShared_hdr", + ], +) + +generated_cc_atom( + name = "GrShaderVar_src", + srcs = ["GrShaderVar.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrShaderCaps_hdr", + ":GrShaderVar_hdr", + ], +) + +generated_cc_atom( + name = "GrSimpleMesh_hdr", + hdrs = ["GrSimpleMesh.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBuffer_hdr", + ":GrGpuBuffer_hdr", + ":GrOpsRenderPass_hdr", + ], +) + +generated_cc_atom( + name = "GrStagingBufferManager_hdr", + hdrs = ["GrStagingBufferManager.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpuBuffer_hdr", + "//include/core:SkRefCnt_hdr", + ], +) + +generated_cc_atom( + name = "GrStagingBufferManager_src", + srcs = ["GrStagingBufferManager.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDirectContextPriv_hdr", + ":GrGpu_hdr", + ":GrResourceProvider_hdr", + ":GrStagingBufferManager_hdr", + "//include/gpu:GrDirectContext_hdr", + ], +) + +generated_cc_atom( + name = "GrStencilSettings_hdr", + hdrs = ["GrStencilSettings.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrUserStencilSettings_hdr", + "//include/core:SkRegion_hdr", + ], +) + +generated_cc_atom( + name = "GrStencilSettings_src", + srcs = ["GrStencilSettings.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrProcessor_hdr", + ":GrStencilSettings_hdr", + "//src/gpu:KeyBuilder_hdr", + ], +) + +generated_cc_atom( + name = "GrStyle_hdr", + hdrs = ["GrStyle.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkMatrix_hdr", + "//include/core:SkStrokeRec_hdr", + "//include/gpu:GrTypes_hdr", + "//include/private:SkTemplates_hdr", + "//src/core:SkPathEffectBase_hdr", + ], +) + +generated_cc_atom( + name = "GrStyle_src", + srcs = ["GrStyle.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrStyle_hdr", + "//src/utils:SkDashPathPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrSubRunAllocator_hdr", + hdrs = ["GrSubRunAllocator.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkMath_hdr", + "//include/core:SkSpan_hdr", + "//src/core:SkArenaAlloc_hdr", + ], +) + +generated_cc_atom( + name = "GrSubRunAllocator_src", + srcs = ["GrSubRunAllocator.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSubRunAllocator_hdr", + "//include/core:SkMath_hdr", + ], +) + +generated_cc_atom( + name = "GrSurfaceInfo_src", + srcs = ["GrSurfaceInfo.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu:GrSurfaceInfo_hdr", + "//include/gpu/d3d:GrD3DTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrSurfaceProxyPriv_hdr", + hdrs = ["GrSurfaceProxyPriv.h"], + visibility = ["//:__subpackages__"], + deps = [":GrSurfaceProxy_hdr"], +) + +generated_cc_atom( + name = "GrSurfaceProxyView_hdr", + hdrs = ["GrSurfaceProxyView.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrRenderTargetProxy_hdr", + ":GrSurfaceProxy_hdr", + ":GrTextureProxy_hdr", + "//include/core:SkRefCnt_hdr", + "//include/gpu:GrTypes_hdr", + "//src/gpu:Swizzle_hdr", + ], +) + +generated_cc_atom( + name = "GrSurfaceProxy_hdr", + hdrs = ["GrSurfaceProxy.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpuResource_hdr", + ":GrSurface_hdr", + ":GrTexture_hdr", + "//include/core:SkRect_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/private:SkNoncopyable_hdr", + ], +) + +generated_cc_atom( + name = "GrSurfaceProxy_src", + srcs = ["GrSurfaceProxy.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAttachment_hdr", + ":GrCaps_hdr", + ":GrDirectContextPriv_hdr", + ":GrGpuResourcePriv_hdr", + ":GrImageInfo_hdr", + ":GrRecordingContextPriv_hdr", + ":GrRenderTarget_hdr", + ":GrResourceProvider_hdr", + ":GrSurfaceProxyPriv_hdr", + ":GrSurfaceProxy_hdr", + ":GrSurface_hdr", + ":GrTextureRenderTargetProxy_hdr", + ":GrTexture_hdr", + ":SurfaceFillContext_hdr", + "//include/core:SkColorSpace_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/core:SkMathPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrSurface_hdr", + hdrs = ["GrSurface.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpuResource_hdr", + "//include/core:SkImageInfo_hdr", + "//include/core:SkRect_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu:GrTypes_hdr", + "//src/gpu:RefCntedCallback_hdr", + ], +) + +generated_cc_atom( + name = "GrSurface_src", + srcs = ["GrSurface.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBackendUtils_hdr", + ":GrRenderTarget_hdr", + ":GrResourceProvider_hdr", + ":GrSurface_hdr", + ":GrTexture_hdr", + ":SkGr_hdr", + "//src/core:SkCompressedDataUtils_hdr", + "//src/core:SkMathPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrTTopoSort_hdr", + hdrs = ["GrTTopoSort.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/private:SkTArray_hdr", + ], +) + +generated_cc_atom( + name = "GrTestUtils_hdr", + hdrs = ["GrTestUtils.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrColor_hdr", + ":GrFPArgs_hdr", + ":GrSamplerState_hdr", + "//include/core:SkStrokeRec_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkMacros_hdr", + "//include/private:SkTemplates_hdr", + "//include/utils:SkRandom_hdr", + "//src/core:SkMatrixProvider_hdr", + "//src/core:SkPathEffectBase_hdr", + "//src/shaders:SkShaderBase_hdr", + ], +) + +generated_cc_atom( + name = "GrTestUtils_src", + srcs = ["GrTestUtils.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrColorInfo_hdr", + ":GrProcessorUnitTest_hdr", + ":GrStyle_hdr", + ":GrTestUtils_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkMatrix_hdr", + "//include/core:SkPathBuilder_hdr", + "//include/core:SkRRect_hdr", + "//src/core:SkRectPriv_hdr", + "//src/utils:SkDashPathPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrTextureProxyCacheAccess_hdr", + hdrs = ["GrTextureProxyCacheAccess.h"], + visibility = ["//:__subpackages__"], + deps = [":GrTextureProxy_hdr"], +) + +generated_cc_atom( + name = "GrTextureProxyPriv_hdr", + hdrs = ["GrTextureProxyPriv.h"], + visibility = ["//:__subpackages__"], + deps = [":GrTextureProxy_hdr"], +) + +generated_cc_atom( + name = "GrTextureProxy_hdr", + hdrs = ["GrTextureProxy.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSamplerState_hdr", + ":GrSurfaceProxy_hdr", + "//include/gpu:GrBackendSurface_hdr", + ], +) + +generated_cc_atom( + name = "GrTextureProxy_src", + srcs = ["GrTextureProxy.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDeferredProxyUploader_hdr", + ":GrDirectContextPriv_hdr", + ":GrGpuResourcePriv_hdr", + ":GrProxyProvider_hdr", + ":GrSurface_hdr", + ":GrTextureProxyPriv_hdr", + ":GrTextureProxy_hdr", + ":GrTexture_hdr", + "//include/gpu:GrDirectContext_hdr", + ], +) + +generated_cc_atom( + name = "GrTextureRenderTargetProxy_hdr", + hdrs = ["GrTextureRenderTargetProxy.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrRenderTargetProxy_hdr", + ":GrTextureProxy_hdr", + ], +) + +generated_cc_atom( + name = "GrTextureRenderTargetProxy_src", + srcs = ["GrTextureRenderTargetProxy.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrDirectContextPriv_hdr", + ":GrRenderTarget_hdr", + ":GrSurfaceProxyPriv_hdr", + ":GrSurface_hdr", + ":GrTextureProxyPriv_hdr", + ":GrTextureRenderTargetProxy_hdr", + ":GrTexture_hdr", + "//include/gpu:GrDirectContext_hdr", + ], +) + +generated_cc_atom( + name = "GrTextureResolveManager_hdr", + hdrs = ["GrTextureResolveManager.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDrawingManager_hdr", + "//include/core:SkRefCnt_hdr", + ], +) + +generated_cc_atom( + name = "GrTextureResolveRenderTask_hdr", + hdrs = ["GrTextureResolveRenderTask.h"], + visibility = ["//:__subpackages__"], + deps = [":GrRenderTask_hdr"], +) + +generated_cc_atom( + name = "GrTextureResolveRenderTask_src", + srcs = ["GrTextureResolveRenderTask.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpu_hdr", + ":GrMemoryPool_hdr", + ":GrOpFlushState_hdr", + ":GrRenderTarget_hdr", + ":GrResourceAllocator_hdr", + ":GrTextureResolveRenderTask_hdr", + ":GrTexture_hdr", + ], +) + +generated_cc_atom( + name = "GrTexture_hdr", + hdrs = ["GrTexture.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSurface_hdr", + "//include/core:SkImage_hdr", + "//include/core:SkPoint_hdr", + "//include/core:SkRefCnt_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrTexture_src", + srcs = ["GrTexture.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrDirectContextPriv_hdr", + ":GrGpu_hdr", + ":GrRenderTarget_hdr", + ":GrResourceCache_hdr", + ":GrTexture_hdr", + "//include/core:SkMath_hdr", + "//include/core:SkTypes_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrTypes_hdr", + "//src/core:SkMipmap_hdr", + ], +) + +generated_cc_atom( + name = "GrThreadSafeCache_hdr", + hdrs = ["GrThreadSafeCache.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpuBuffer_hdr", + ":GrSurfaceProxyView_hdr", + "//include/core:SkRefCnt_hdr", + "//include/private:SkSpinlock_hdr", + "//src/core:SkArenaAlloc_hdr", + "//src/core:SkTDynamicHash_hdr", + "//src/core:SkTInternalLList_hdr", + ], +) + +generated_cc_atom( + name = "GrThreadSafeCache_src", + srcs = ["GrThreadSafeCache.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrDirectContextPriv_hdr", + ":GrGpuBuffer_hdr", + ":GrProxyProvider_hdr", + ":GrResourceCache_hdr", + ":GrThreadSafeCache_hdr", + "//include/gpu:GrDirectContext_hdr", + ], +) + +generated_cc_atom( + name = "GrThreadSafePipelineBuilder_hdr", + hdrs = ["GrThreadSafePipelineBuilder.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/gpu:GrConfig_hdr", + "//include/private:SkTArray_hdr", + ], +) + +generated_cc_atom( + name = "GrThreadSafePipelineBuilder_src", + srcs = ["GrThreadSafePipelineBuilder.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrThreadSafePipelineBuilder_hdr", + "//include/core:SkString_hdr", + ], +) + +generated_cc_atom( + name = "GrTracing_hdr", + hdrs = ["GrTracing.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrAuditTrail_hdr", + "//src/core:SkTraceEvent_hdr", + ], +) + +generated_cc_atom( + name = "GrTransferFromRenderTask_hdr", + hdrs = ["GrTransferFromRenderTask.h"], + visibility = ["//:__subpackages__"], + deps = [":GrRenderTask_hdr"], +) + +generated_cc_atom( + name = "GrTransferFromRenderTask_src", + srcs = ["GrTransferFromRenderTask.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpu_hdr", + ":GrOpFlushState_hdr", + ":GrResourceAllocator_hdr", + ":GrResourceProvider_hdr", + ":GrTransferFromRenderTask_hdr", + ], +) + +generated_cc_atom( + name = "GrUniformDataManager_hdr", + hdrs = ["GrUniformDataManager.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/private:SkTArray_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/core:SkAutoMalloc_hdr", + "//src/core:SkSLTypeShared_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + ], +) + +generated_cc_atom( + name = "GrUniformDataManager_src", + srcs = ["GrUniformDataManager.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrShaderVar_hdr", + ":GrUniformDataManager_hdr", + "//include/private:SkHalf_hdr", + ], +) + +generated_cc_atom( + name = "GrUserStencilSettings_hdr", + hdrs = ["GrUserStencilSettings.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/gpu:GrTypes_hdr"], +) + +generated_cc_atom( + name = "GrUtil_hdr", + hdrs = ["GrUtil.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkScalar_hdr", + "//include/core:SkTypes_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/core:SkSLTypeShared_hdr", + ], +) + +generated_cc_atom( + name = "GrUtil_src", + srcs = ["GrUtil.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrStyle_hdr", + ":GrUtil_hdr", + "//src/core:SkDrawProcs_hdr", + ], +) + +generated_cc_atom( + name = "GrVertexChunkArray_hdr", + hdrs = ["GrVertexChunkArray.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrBuffer_hdr", + "//include/core:SkRefCnt_hdr", + "//include/private:SkNoncopyable_hdr", + "//include/private:SkTArray_hdr", + "//src/gpu:BufferWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrVertexChunkArray_src", + srcs = ["GrVertexChunkArray.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrMeshDrawTarget_hdr", + ":GrVertexChunkArray_hdr", + ], +) + +generated_cc_atom( + name = "GrVx_hdr", + hdrs = ["GrVx.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkTypes_hdr", + "//include/private:SkVx_hdr", + ], +) + +generated_cc_atom( + name = "GrWaitRenderTask_hdr", + hdrs = ["GrWaitRenderTask.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrRenderTask_hdr", + ":GrSemaphore_hdr", + ], +) + +generated_cc_atom( + name = "GrWaitRenderTask_src", + srcs = ["GrWaitRenderTask.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpu_hdr", + ":GrOpFlushState_hdr", + ":GrResourceAllocator_hdr", + ":GrWaitRenderTask_hdr", + ], +) + +generated_cc_atom( + name = "GrWindowRectangles_hdr", + hdrs = ["GrWindowRectangles.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrNonAtomicRef_hdr", + "//include/core:SkRect_hdr", + ], +) + +generated_cc_atom( + name = "GrWindowRectsState_hdr", + hdrs = ["GrWindowRectsState.h"], + visibility = ["//:__subpackages__"], + deps = [":GrWindowRectangles_hdr"], +) + +generated_cc_atom( + name = "GrWritePixelsRenderTask_hdr", + hdrs = ["GrWritePixelsRenderTask.h"], + visibility = ["//:__subpackages__"], + deps = [":GrRenderTask_hdr"], +) + +generated_cc_atom( + name = "GrWritePixelsRenderTask_src", + srcs = ["GrWritePixelsRenderTask.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGpu_hdr", + ":GrOpFlushState_hdr", + ":GrResourceAllocator_hdr", + ":GrWritePixelsRenderTask_hdr", + ], +) + +generated_cc_atom( + name = "GrXferProcessor_hdr", + hdrs = ["GrXferProcessor.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrNonAtomicRef_hdr", + ":GrProcessorAnalysis_hdr", + ":GrProcessor_hdr", + ":GrSurfaceProxyView_hdr", + "//include/gpu:GrTypes_hdr", + "//src/gpu:Blend_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + ], +) + +generated_cc_atom( + name = "GrXferProcessor_src", + srcs = ["GrXferProcessor.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrPipeline_hdr", + ":GrXferProcessor_hdr", + "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + ], +) + +generated_cc_atom( + name = "GrYUVABackendTextures_src", + srcs = ["GrYUVABackendTextures.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu:GrYUVABackendTextures_hdr", + "//src/core:SkYUVAInfoLocation_hdr", + ], +) + +generated_cc_atom( + name = "GrYUVATextureProxies_hdr", + hdrs = ["GrYUVATextureProxies.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrSurfaceProxyView_hdr", + ":GrSurfaceProxy_hdr", + "//include/core:SkYUVAInfo_hdr", + "//src/core:SkYUVAInfoLocation_hdr", + ], +) + +generated_cc_atom( + name = "GrYUVATextureProxies_src", + srcs = ["GrYUVATextureProxies.cpp"], + visibility = ["//:__subpackages__"], + deps = [":GrYUVATextureProxies_hdr"], +) + +generated_cc_atom( + name = "SkGr_hdr", + hdrs = ["SkGr.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrColor_hdr", + ":GrSamplerState_hdr", + "//include/core:SkBlender_hdr", + "//include/core:SkCanvas_hdr", + "//include/core:SkColor_hdr", + "//include/core:SkImageInfo_hdr", + "//include/core:SkSamplingOptions_hdr", + "//include/gpu:GrTypes_hdr", + "//include/private:SkColorData_hdr", + "//src/core:SkBlendModePriv_hdr", + "//src/gpu:Blend_hdr", + ], +) + +generated_cc_atom( + name = "SkGr_src", + srcs = ["SkGr.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrCaps_hdr", + ":GrColorInfo_hdr", + ":GrColorSpaceXform_hdr", + ":GrGpuResourcePriv_hdr", + ":GrPaint_hdr", + ":GrProxyProvider_hdr", + ":GrRecordingContextPriv_hdr", + ":GrTextureProxy_hdr", + ":GrXferProcessor_hdr", + ":SkGr_hdr", + "//include/core:SkCanvas_hdr", + "//include/core:SkColorFilter_hdr", + "//include/core:SkData_hdr", + "//include/core:SkPixelRef_hdr", + "//include/effects:SkRuntimeEffect_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//include/private:SkIDChangeListener_hdr", + "//include/private:SkImageInfoPriv_hdr", + "//include/private:SkTPin_hdr", + "//include/private:SkTemplates_hdr", + "//src/core:SkAutoMalloc_hdr", + "//src/core:SkBlendModePriv_hdr", + "//src/core:SkBlenderBase_hdr", + "//src/core:SkColorFilterBase_hdr", + "//src/core:SkColorSpacePriv_hdr", + "//src/core:SkImagePriv_hdr", + "//src/core:SkMaskFilterBase_hdr", + "//src/core:SkMessageBus_hdr", + "//src/core:SkMipmap_hdr", + "//src/core:SkPaintPriv_hdr", + "//src/core:SkResourceCache_hdr", + "//src/core:SkRuntimeEffectPriv_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh/effects:GrBicubicEffect_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/image:SkImage_Base_hdr", + "//src/shaders:SkShaderBase_hdr", + ], +) + +generated_cc_atom( + name = "SurfaceContext_hdr", + hdrs = ["SurfaceContext.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrColorInfo_hdr", + ":GrDataUtils_hdr", + ":GrImageInfo_hdr", + ":GrPixmap_hdr", + ":GrRenderTask_hdr", + ":GrSurfaceProxyView_hdr", + ":GrSurfaceProxy_hdr", + "//include/core:SkImage_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkSamplingOptions_hdr", + "//include/core:SkSurface_hdr", + ], +) + +generated_cc_atom( + name = "SurfaceContext_src", + srcs = ["SurfaceContext.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrClientMappedBufferManager_hdr", + ":GrColorSpaceXform_hdr", + ":GrDataUtils_hdr", + ":GrDirectContextPriv_hdr", + ":GrDrawingManager_hdr", + ":GrGpu_hdr", + ":GrImageInfo_hdr", + ":GrProxyProvider_hdr", + ":GrRecordingContextPriv_hdr", + ":GrResourceProvider_hdr", + ":GrTracing_hdr", + ":SkGr_hdr", + ":SurfaceContext_hdr", + ":SurfaceFillContext_hdr", + "//include/core:SkColorSpace_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/core:SkAutoPixmapStorage_hdr", + "//src/core:SkMipmap_hdr", + "//src/core:SkYUVMath_hdr", + "//src/gpu/ganesh/effects:GrBicubicEffect_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + ], +) + +generated_cc_atom( + name = "SurfaceFillContext_hdr", + hdrs = ["SurfaceFillContext.h"], + visibility = ["//:__subpackages__"], + deps = [":SurfaceContext_hdr"], +) + +generated_cc_atom( + name = "SurfaceFillContext_src", + srcs = ["SurfaceFillContext.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrMatrixEffect_hdr", + ], +) + +generated_cc_atom( + name = "GrAHardwareBufferUtils_impl_hdr", + hdrs = ["GrAHardwareBufferUtils_impl.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkTypes_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu:GrTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrImageInfo_src", + srcs = ["GrImageInfo.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrImageInfo_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkImageInfo_hdr", + ], +) + +generated_cc_atom( + name = "GrRectanizer_impl_hdr", + hdrs = ["GrRectanizer_impl.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/gpu:GrTypes_hdr"], +) diff --git a/third_party/skia/src/gpu/BaseDevice.cpp b/third_party/skia/src/gpu/ganesh/BaseDevice.cpp similarity index 91% rename from third_party/skia/src/gpu/BaseDevice.cpp rename to third_party/skia/src/gpu/ganesh/BaseDevice.cpp index 90f422251d93..cb898b554407 100644 --- a/third_party/skia/src/gpu/BaseDevice.cpp +++ b/third_party/skia/src/gpu/ganesh/BaseDevice.cpp @@ -5,14 +5,15 @@ * found in the LICENSE file. */ -#include "src/gpu/BaseDevice.h" +#include "src/gpu/ganesh/BaseDevice.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/SurfaceContext.h" -#include "src/gpu/SurfaceFillContext.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/SurfaceContext.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" #define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(fContext->priv().singleOwner()) diff --git a/third_party/skia/src/gpu/BaseDevice.h b/third_party/skia/src/gpu/ganesh/BaseDevice.h similarity index 97% rename from third_party/skia/src/gpu/BaseDevice.h rename to third_party/skia/src/gpu/ganesh/BaseDevice.h index 7c9e2c3492dc..24477a227bd4 100644 --- a/third_party/skia/src/gpu/BaseDevice.h +++ b/third_party/skia/src/gpu/ganesh/BaseDevice.h @@ -9,7 +9,7 @@ #define BaseDevice_DEFINED #include "include/core/SkImage.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkDevice.h" class GrRenderTargetProxy; @@ -44,7 +44,7 @@ class BaseDevice : public SkBaseDevice { GrSurfaceProxyView readSurfaceView(); - BaseDevice* asGpuDevice() override { return this; } + BaseDevice* asGaneshDevice() override { return this; } #if SK_GPU_V1 virtual v1::SurfaceDrawContext* surfaceDrawContext() { return nullptr; } diff --git a/third_party/skia/src/gpu/GrAHardwareBufferImageGenerator.cpp b/third_party/skia/src/gpu/ganesh/GrAHardwareBufferImageGenerator.cpp similarity index 93% rename from third_party/skia/src/gpu/GrAHardwareBufferImageGenerator.cpp rename to third_party/skia/src/gpu/ganesh/GrAHardwareBufferImageGenerator.cpp index f220b597122d..a2be6ef7e55a 100644 --- a/third_party/skia/src/gpu/GrAHardwareBufferImageGenerator.cpp +++ b/third_party/skia/src/gpu/ganesh/GrAHardwareBufferImageGenerator.cpp @@ -12,7 +12,7 @@ #define EGL_EGLEXT_PROTOTYPES -#include "src/gpu/GrAHardwareBufferImageGenerator.h" +#include "src/gpu/ganesh/GrAHardwareBufferImageGenerator.h" #include @@ -21,17 +21,17 @@ #include "include/gpu/GrRecordingContext.h" #include "include/gpu/gl/GrGLTypes.h" #include "src/core/SkMessageBus.h" -#include "src/gpu/GrAHardwareBufferUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrResourceProviderPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/gl/GrGLDefines.h" +#include "src/gpu/ganesh/GrAHardwareBufferUtils_impl.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrResourceProviderPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" #include #include @@ -40,7 +40,7 @@ #ifdef SK_VULKAN #include "include/gpu/vk/GrVkExtensions.h" -#include "src/gpu/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" #endif #define PROT_CONTENT_EXT_STR "EGL_EXT_protected_content" diff --git a/third_party/skia/src/gpu/GrAHardwareBufferImageGenerator.h b/third_party/skia/src/gpu/ganesh/GrAHardwareBufferImageGenerator.h similarity index 97% rename from third_party/skia/src/gpu/GrAHardwareBufferImageGenerator.h rename to third_party/skia/src/gpu/ganesh/GrAHardwareBufferImageGenerator.h index 01cc8cf3fedd..474b670f36c5 100644 --- a/third_party/skia/src/gpu/GrAHardwareBufferImageGenerator.h +++ b/third_party/skia/src/gpu/ganesh/GrAHardwareBufferImageGenerator.h @@ -9,7 +9,7 @@ #include "include/core/SkImageGenerator.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" class GrGpuResource; class GrSurfaceProxyView; diff --git a/third_party/skia/src/gpu/GrAHardwareBufferUtils.cpp b/third_party/skia/src/gpu/ganesh/GrAHardwareBufferUtils.cpp similarity index 98% rename from third_party/skia/src/gpu/GrAHardwareBufferUtils.cpp rename to third_party/skia/src/gpu/ganesh/GrAHardwareBufferUtils.cpp index 2d8430f8350c..23a4bedbbccf 100644 --- a/third_party/skia/src/gpu/GrAHardwareBufferUtils.cpp +++ b/third_party/skia/src/gpu/ganesh/GrAHardwareBufferUtils.cpp @@ -11,7 +11,7 @@ #define GL_GLEXT_PROTOTYPES #define EGL_EGLEXT_PROTOTYPES -#include "src/gpu/GrAHardwareBufferUtils.h" +#include "src/gpu/ganesh/GrAHardwareBufferUtils_impl.h" #include #include @@ -21,13 +21,13 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/gl/GrGLTypes.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/gl/GrGLDefines.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #ifdef SK_VULKAN -#include "src/gpu/vk/GrVkCaps.h" -#include "src/gpu/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkCaps.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" #endif #define PROT_CONTENT_EXT_STR "EGL_EXT_protected_content" diff --git a/third_party/skia/src/gpu/ganesh/GrAHardwareBufferUtils_impl.h b/third_party/skia/src/gpu/ganesh/GrAHardwareBufferUtils_impl.h new file mode 100644 index 000000000000..7f2a6527e7f4 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/GrAHardwareBufferUtils_impl.h @@ -0,0 +1,70 @@ +/* + * 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 GrAHardwareBufferUtils_DEFINED +#define GrAHardwareBufferUtils_DEFINED + +#include "include/core/SkTypes.h" + +#if defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26 + +#include "include/gpu/GrBackendSurface.h" +#include "include/gpu/GrTypes.h" + +class GrDirectContext; + +extern "C" { + typedef struct AHardwareBuffer AHardwareBuffer; +} + +namespace GrAHardwareBufferUtils { + +SkColorType GetSkColorTypeFromBufferFormat(uint32_t bufferFormat); + +GrBackendFormat GetBackendFormat(GrDirectContext* context, AHardwareBuffer* hardwareBuffer, + uint32_t bufferFormat, bool requireKnownFormat); + +typedef void* TexImageCtx; +typedef void (*DeleteImageProc)(TexImageCtx); +typedef void (*UpdateImageProc)(TexImageCtx, GrDirectContext*); + +/** + * Create a GrBackendTexture from AHardwareBuffer + * + * @param context GPU context + * @param hardwareBuffer AHB + * @param width texture width + * @param height texture height + * @param deleteProc returns a function that deletes the texture and + * other GPU resources. Must be invoked on the same + * thread as MakeBackendTexture + * @param updateProc returns a function, that needs to be invoked, when + * AHB buffer content has changed. Must be invoked on + * the same thread as MakeBackendTexture + * @param imageCtx returns an opaque image context, that is passed as + * first argument to deleteProc and updateProc + * @param isProtectedContent if true, GL backend uses EXT_protected_content + * @param backendFormat backend format, usually created with helper + * function GetBackendFormat + * @param isRenderable true if GrBackendTexture can be used as a color + * attachment + * @return valid GrBackendTexture object on success + */ +GrBackendTexture MakeBackendTexture(GrDirectContext* context, AHardwareBuffer* hardwareBuffer, + int width, int height, + DeleteImageProc* deleteProc, + UpdateImageProc* updateProc, + TexImageCtx* imageCtx, + bool isProtectedContent, + const GrBackendFormat& backendFormat, + bool isRenderable, + bool fromAndroidWindow = false); + +} // GrAHardwareBufferUtils + + +#endif +#endif diff --git a/third_party/skia/src/gpu/GrAppliedClip.h b/third_party/skia/src/gpu/ganesh/GrAppliedClip.h similarity index 97% rename from third_party/skia/src/gpu/GrAppliedClip.h rename to third_party/skia/src/gpu/ganesh/GrAppliedClip.h index 8004b0eb91a9..b876d1dc43b4 100644 --- a/third_party/skia/src/gpu/GrAppliedClip.h +++ b/third_party/skia/src/gpu/ganesh/GrAppliedClip.h @@ -8,9 +8,9 @@ #ifndef GrAppliedClip_DEFINED #define GrAppliedClip_DEFINED -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrScissorState.h" -#include "src/gpu/GrWindowRectsState.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrScissorState.h" +#include "src/gpu/ganesh/GrWindowRectsState.h" #include "src/core/SkClipStack.h" diff --git a/third_party/skia/src/gpu/GrAttachment.cpp b/third_party/skia/src/gpu/ganesh/GrAttachment.cpp similarity index 96% rename from third_party/skia/src/gpu/GrAttachment.cpp rename to third_party/skia/src/gpu/ganesh/GrAttachment.cpp index cece935612e3..94ac6c25b3b3 100644 --- a/third_party/skia/src/gpu/GrAttachment.cpp +++ b/third_party/skia/src/gpu/ganesh/GrAttachment.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/GrAttachment.h" +#include "src/gpu/ganesh/GrAttachment.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrGpu.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrGpu.h" size_t GrAttachment::onGpuMemorySize() const { // The GrTexture[RenderTarget] is built up by a bunch of attachments each of which are their diff --git a/third_party/skia/src/gpu/GrAttachment.h b/third_party/skia/src/gpu/ganesh/GrAttachment.h similarity index 97% rename from third_party/skia/src/gpu/GrAttachment.h rename to third_party/skia/src/gpu/ganesh/GrAttachment.h index 72345c67fec4..49738a2f73dd 100644 --- a/third_party/skia/src/gpu/GrAttachment.h +++ b/third_party/skia/src/gpu/ganesh/GrAttachment.h @@ -9,7 +9,7 @@ #define GrAttachment_DEFINED #include "src/core/SkClipStack.h" -#include "src/gpu/GrSurface.h" +#include "src/gpu/ganesh/GrSurface.h" class GrRenderTarget; @@ -70,9 +70,9 @@ class GrAttachment : public GrSurface { protected: GrAttachment(GrGpu* gpu, SkISize dimensions, UsageFlags supportedUsages, int sampleCnt, - GrMipmapped mipmapped, GrProtected isProtected, + GrMipmapped mipmapped, GrProtected isProtected, std::string_view label, GrMemoryless memoryless = GrMemoryless::kNo) - : INHERITED(gpu, dimensions, isProtected) + : INHERITED(gpu, dimensions, isProtected, label) , fSupportedUsages(supportedUsages) , fSampleCnt(sampleCnt) , fMipmapped(mipmapped) diff --git a/third_party/skia/src/gpu/GrAuditTrail.cpp b/third_party/skia/src/gpu/ganesh/GrAuditTrail.cpp similarity index 98% rename from third_party/skia/src/gpu/GrAuditTrail.cpp rename to third_party/skia/src/gpu/ganesh/GrAuditTrail.cpp index d8512578ed8d..972e301d140e 100644 --- a/third_party/skia/src/gpu/GrAuditTrail.cpp +++ b/third_party/skia/src/gpu/ganesh/GrAuditTrail.cpp @@ -5,8 +5,8 @@ * found in the LICENSE file. */ -#include "src/gpu/GrAuditTrail.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/GrAuditTrail.h" +#include "src/gpu/ganesh/ops/GrOp.h" const int GrAuditTrail::kGrAuditTrailInvalidID = -1; diff --git a/third_party/skia/src/gpu/GrAuditTrail.h b/third_party/skia/src/gpu/ganesh/GrAuditTrail.h similarity index 99% rename from third_party/skia/src/gpu/GrAuditTrail.h rename to third_party/skia/src/gpu/ganesh/GrAuditTrail.h index f2d78dcb1059..c4616d0b64aa 100644 --- a/third_party/skia/src/gpu/GrAuditTrail.h +++ b/third_party/skia/src/gpu/ganesh/GrAuditTrail.h @@ -17,7 +17,7 @@ #include "include/gpu/GrConfig.h" #include "include/private/SkTArray.h" #include "include/private/SkTHash.h" -#include "src/gpu/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" class GrOp; class SkJSONWriter; diff --git a/third_party/skia/src/gpu/GrAutoLocaleSetter.h b/third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h similarity index 100% rename from third_party/skia/src/gpu/GrAutoLocaleSetter.h rename to third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h diff --git a/third_party/skia/src/gpu/GrBackendSemaphore.cpp b/third_party/skia/src/gpu/ganesh/GrBackendSemaphore.cpp similarity index 100% rename from third_party/skia/src/gpu/GrBackendSemaphore.cpp rename to third_party/skia/src/gpu/ganesh/GrBackendSemaphore.cpp diff --git a/third_party/skia/src/gpu/GrBackendSurface.cpp b/third_party/skia/src/gpu/ganesh/GrBackendSurface.cpp similarity index 98% rename from third_party/skia/src/gpu/GrBackendSurface.cpp rename to third_party/skia/src/gpu/ganesh/GrBackendSurface.cpp index 6ce6a00b4886..2b5ad8e7f92d 100644 --- a/third_party/skia/src/gpu/GrBackendSurface.cpp +++ b/third_party/skia/src/gpu/ganesh/GrBackendSurface.cpp @@ -7,28 +7,28 @@ #include "include/gpu/GrBackendSurface.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrBackendSurfaceMutableStateImpl.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrBackendSurfaceMutableStateImpl.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #ifdef SK_DAWN #include "include/gpu/dawn/GrDawnTypes.h" -#include "src/gpu/dawn/GrDawnUtil.h" +#include "src/gpu/ganesh/dawn/GrDawnUtil.h" #endif #ifdef SK_VULKAN #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/vk/GrVkImageLayout.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkImageLayout.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #endif #ifdef SK_METAL #include "include/gpu/mtl/GrMtlTypes.h" -#include "src/gpu/mtl/GrMtlCppUtil.h" +#include "src/gpu/ganesh/mtl/GrMtlCppUtil.h" #endif #ifdef SK_DIRECT3D #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/d3d/GrD3DResourceState.h" -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/d3d/GrD3DResourceState.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" #endif GrBackendFormat::GrBackendFormat(const GrBackendFormat& that) @@ -110,6 +110,13 @@ GrGLFormat GrBackendFormat::asGLFormat() const { } return GrGLFormat::kUnknown; } + +GrGLenum GrBackendFormat::asGLFormatEnum() const { + if (this->isValid() && GrBackendApi::kOpenGL == fBackend) { + return fGLFormat; + } + return 0; +} #endif #ifdef SK_VULKAN @@ -393,10 +400,10 @@ bool GrBackendFormat::operator==(const GrBackendFormat& that) const { #include "include/core/SkString.h" #ifdef SK_GL -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #endif #ifdef SK_VULKAN -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #endif SkString GrBackendFormat::toStr() const { diff --git a/third_party/skia/src/gpu/GrBackendSurfaceMutableState.cpp b/third_party/skia/src/gpu/ganesh/GrBackendSurfaceMutableState.cpp similarity index 100% rename from third_party/skia/src/gpu/GrBackendSurfaceMutableState.cpp rename to third_party/skia/src/gpu/ganesh/GrBackendSurfaceMutableState.cpp diff --git a/third_party/skia/src/gpu/GrBackendSurfaceMutableStateImpl.h b/third_party/skia/src/gpu/ganesh/GrBackendSurfaceMutableStateImpl.h similarity index 100% rename from third_party/skia/src/gpu/GrBackendSurfaceMutableStateImpl.h rename to third_party/skia/src/gpu/ganesh/GrBackendSurfaceMutableStateImpl.h diff --git a/third_party/skia/src/gpu/GrBackendTextureImageGenerator.cpp b/third_party/skia/src/gpu/ganesh/GrBackendTextureImageGenerator.cpp similarity index 93% rename from third_party/skia/src/gpu/GrBackendTextureImageGenerator.cpp rename to third_party/skia/src/gpu/ganesh/GrBackendTextureImageGenerator.cpp index 7dd91c51fc1e..e96c7b12752e 100644 --- a/third_party/skia/src/gpu/GrBackendTextureImageGenerator.cpp +++ b/third_party/skia/src/gpu/ganesh/GrBackendTextureImageGenerator.cpp @@ -5,22 +5,23 @@ * found in the LICENSE file. */ +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkMessageBus.h" -#include "src/gpu/GrBackendTextureImageGenerator.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrResourceProviderPriv.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxyPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/gl/GrGLTexture.h" +#include "src/gpu/ganesh/GrBackendTextureImageGenerator.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrResourceProviderPriv.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxyPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/gl/GrGLTexture.h" GrBackendTextureImageGenerator::RefHelper::RefHelper( GrTexture* texture, @@ -119,7 +120,7 @@ GrSurfaceProxyView GrBackendTextureImageGenerator::onGenerateTexture( auto proxyProvider = dContext->priv().proxyProvider(); fBorrowingMutex.acquire(); - sk_sp releaseProcHelper; + sk_sp releaseProcHelper; if (fRefHelper->fBorrowingContextID.isValid()) { if (fRefHelper->fBorrowingContextID != dContext->directContextID()) { fBorrowingMutex.release(); @@ -134,10 +135,10 @@ GrSurfaceProxyView GrBackendTextureImageGenerator::onGenerateTexture( } else { SkASSERT(!fRefHelper->fBorrowingContextReleaseProc); // The ref we add to fRefHelper here will be passed into and owned by the - // GrRefCntedCallback. + // skgpu::RefCntedCallback. fRefHelper->ref(); releaseProcHelper = - GrRefCntedCallback::Make(ReleaseRefHelper_TextureReleaseProc, fRefHelper); + skgpu::RefCntedCallback::Make(ReleaseRefHelper_TextureReleaseProc, fRefHelper); fRefHelper->fBorrowingContextReleaseProc = releaseProcHelper.get(); } fRefHelper->fBorrowingContextID = dContext->directContextID(); diff --git a/third_party/skia/src/gpu/GrBackendTextureImageGenerator.h b/third_party/skia/src/gpu/ganesh/GrBackendTextureImageGenerator.h similarity index 97% rename from third_party/skia/src/gpu/GrBackendTextureImageGenerator.h rename to third_party/skia/src/gpu/ganesh/GrBackendTextureImageGenerator.h index 8e7e745013e3..0f7135a616ee 100644 --- a/third_party/skia/src/gpu/GrBackendTextureImageGenerator.h +++ b/third_party/skia/src/gpu/ganesh/GrBackendTextureImageGenerator.h @@ -11,8 +11,8 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" #include "include/private/SkMutex.h" -#include "src/gpu/GrTexture.h" #include "src/gpu/ResourceKey.h" +#include "src/gpu/ganesh/GrTexture.h" class GrSemaphore; @@ -76,7 +76,7 @@ class GrBackendTextureImageGenerator : public SkImageGenerator { // all uses of the wrapped texture are finished on the borrowing context before we open // this back up to other contexts. In general a ref to this release proc is owned by all // proxies and gpu uses of the backend texture. - GrRefCntedCallback* fBorrowingContextReleaseProc; + skgpu::RefCntedCallback* fBorrowingContextReleaseProc; GrDirectContext::DirectContextID fBorrowingContextID; std::unique_ptr fSemaphore; diff --git a/third_party/skia/src/gpu/GrBackendUtils.cpp b/third_party/skia/src/gpu/ganesh/GrBackendUtils.cpp similarity index 95% rename from third_party/skia/src/gpu/GrBackendUtils.cpp rename to third_party/skia/src/gpu/ganesh/GrBackendUtils.cpp index 5b06ea3b62a0..13013dc86b59 100644 --- a/third_party/skia/src/gpu/GrBackendUtils.cpp +++ b/third_party/skia/src/gpu/ganesh/GrBackendUtils.cpp @@ -5,28 +5,28 @@ * found in the LICENSE file. */ -#include "src/gpu/GrBackendUtils.h" +#include "src/gpu/ganesh/GrBackendUtils.h" -#include "src/gpu/GrDataUtils.h" +#include "src/gpu/ganesh/GrDataUtils.h" #ifdef SK_GL -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #endif #ifdef SK_VULKAN -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #endif #ifdef SK_DIRECT3D -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" #endif #ifdef SK_METAL -#include "src/gpu/mtl/GrMtlCppUtil.h" +#include "src/gpu/ganesh/mtl/GrMtlCppUtil.h" #endif #ifdef SK_DAWN -#include "src/gpu/dawn/GrDawnUtil.h" +#include "src/gpu/ganesh/dawn/GrDawnUtil.h" #endif SkImage::CompressionType GrBackendFormatToCompressionType(const GrBackendFormat& format) { diff --git a/third_party/skia/src/gpu/GrBackendUtils.h b/third_party/skia/src/gpu/ganesh/GrBackendUtils.h similarity index 100% rename from third_party/skia/src/gpu/GrBackendUtils.h rename to third_party/skia/src/gpu/ganesh/GrBackendUtils.h diff --git a/third_party/skia/src/gpu/GrBaseContextPriv.h b/third_party/skia/src/gpu/ganesh/GrBaseContextPriv.h similarity index 97% rename from third_party/skia/src/gpu/GrBaseContextPriv.h rename to third_party/skia/src/gpu/ganesh/GrBaseContextPriv.h index cde8661ad26a..7a9545f305f1 100644 --- a/third_party/skia/src/gpu/GrBaseContextPriv.h +++ b/third_party/skia/src/gpu/ganesh/GrBaseContextPriv.h @@ -9,7 +9,7 @@ #define GrBaseContextPriv_DEFINED #include "include/gpu/GrContextOptions.h" -#include "include/private/GrContext_Base.h" +#include "include/private/gpu/ganesh/GrContext_Base.h" /** Class that exposes methods on GrContext_Base that are only intended for use internal to Skia. This class is purely a privileged window into GrContext_Base. It should never have diff --git a/third_party/skia/src/gpu/GrBlurUtils.cpp b/third_party/skia/src/gpu/ganesh/GrBlurUtils.cpp similarity index 97% rename from third_party/skia/src/gpu/GrBlurUtils.cpp rename to third_party/skia/src/gpu/ganesh/GrBlurUtils.cpp index 4ed0971527bb..0ed44b0c7dbe 100644 --- a/third_party/skia/src/gpu/GrBlurUtils.cpp +++ b/third_party/skia/src/gpu/ganesh/GrBlurUtils.cpp @@ -5,33 +5,33 @@ * found in the LICENSE file. */ -#include "src/gpu/GrBlurUtils.h" +#include "src/gpu/ganesh/GrBlurUtils.h" #if SK_GPU_V1 +#include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkPaint.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFixedClip.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/GrThreadSafeCache.h" -#include "src/gpu/GrUtil.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" - -#include "include/core/SkPaint.h" #include "src/core/SkDraw.h" #include "src/core/SkMaskFilterBase.h" #include "src/core/SkMatrixProvider.h" #include "src/core/SkTLazy.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFixedClip.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/GrThreadSafeCache.h" +#include "src/gpu/ganesh/GrUtil.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" static bool clip_bounds_quick_reject(const SkIRect& clipBounds, const SkIRect& rect) { return clipBounds.isEmpty() || rect.isEmpty() || !SkIRect::Intersects(clipBounds, rect); diff --git a/third_party/skia/src/gpu/GrBlurUtils.h b/third_party/skia/src/gpu/ganesh/GrBlurUtils.h similarity index 96% rename from third_party/skia/src/gpu/GrBlurUtils.h rename to third_party/skia/src/gpu/ganesh/GrBlurUtils.h index f0e7c869093f..46953db6f837 100644 --- a/third_party/skia/src/gpu/GrBlurUtils.h +++ b/third_party/skia/src/gpu/ganesh/GrBlurUtils.h @@ -8,7 +8,7 @@ #ifndef GrBlurUtils_DEFINED #define GrBlurUtils_DEFINED -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" class GrClip; class GrPaint; diff --git a/third_party/skia/src/gpu/GrBuffer.h b/third_party/skia/src/gpu/ganesh/GrBuffer.h similarity index 100% rename from third_party/skia/src/gpu/GrBuffer.h rename to third_party/skia/src/gpu/ganesh/GrBuffer.h diff --git a/third_party/skia/src/gpu/GrBufferAllocPool.cpp b/third_party/skia/src/gpu/ganesh/GrBufferAllocPool.cpp similarity index 98% rename from third_party/skia/src/gpu/GrBufferAllocPool.cpp rename to third_party/skia/src/gpu/ganesh/GrBufferAllocPool.cpp index 4ec84c1d8e5c..ca02ea047219 100644 --- a/third_party/skia/src/gpu/GrBufferAllocPool.cpp +++ b/third_party/skia/src/gpu/ganesh/GrBufferAllocPool.cpp @@ -10,15 +10,15 @@ #include "include/private/SkMacros.h" #include "src/core/SkSafeMath.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrBufferAllocPool.h" +#include "src/gpu/ganesh/GrBufferAllocPool.h" #include -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrCpuBuffer.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrResourceProvider.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrCpuBuffer.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrResourceProvider.h" sk_sp GrBufferAllocPool::CpuBufferCache::Make( int maxBuffersToCache) { diff --git a/third_party/skia/src/gpu/GrBufferAllocPool.h b/third_party/skia/src/gpu/ganesh/GrBufferAllocPool.h similarity index 98% rename from third_party/skia/src/gpu/GrBufferAllocPool.h rename to third_party/skia/src/gpu/ganesh/GrBufferAllocPool.h index ecb9006ae52f..1204ecc36518 100644 --- a/third_party/skia/src/gpu/GrBufferAllocPool.h +++ b/third_party/skia/src/gpu/ganesh/GrBufferAllocPool.h @@ -9,13 +9,13 @@ #define GrBufferAllocPool_DEFINED #include "include/core/SkTypes.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkNoncopyable.h" #include "include/private/SkTArray.h" #include "include/private/SkTDArray.h" -#include "src/gpu/GrCpuBuffer.h" -#include "src/gpu/GrDrawIndirectCommand.h" -#include "src/gpu/GrNonAtomicRef.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrCpuBuffer.h" +#include "src/gpu/ganesh/GrDrawIndirectCommand.h" +#include "src/gpu/ganesh/GrNonAtomicRef.h" class GrGpu; diff --git a/third_party/skia/src/gpu/GrCaps.cpp b/third_party/skia/src/gpu/ganesh/GrCaps.cpp similarity index 97% rename from third_party/skia/src/gpu/GrCaps.cpp rename to third_party/skia/src/gpu/ganesh/GrCaps.cpp index 23cb03709838..ee8bd1e02669 100644 --- a/third_party/skia/src/gpu/GrCaps.cpp +++ b/third_party/skia/src/gpu/ganesh/GrCaps.cpp @@ -5,20 +5,21 @@ * found in the LICENSE file. */ -#include "src/gpu/GrCaps.h" +#include "src/gpu/ganesh/GrCaps.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrContextOptions.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrSurface.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrWindowRectangles.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrWindowRectangles.h" GrCaps::GrCaps(const GrContextOptions& options) { - fMipmapSupport = false; fNPOTTextureTileSupport = false; + fMipmapSupport = false; + fAnisoSupport = false; fReuseScratchTextures = true; fReuseScratchBuffers = true; fGpuTracingSupport = false; @@ -165,7 +166,7 @@ void GrCaps::applyOptionsOverrides(const GrContextOptions& options) { #ifdef SK_ENABLE_DUMP_GPU -#include "src/gpu/GrTestUtils.h" +#include "src/gpu/ganesh/GrTestUtils.h" #include "src/utils/SkJSONWriter.h" static SkString map_flags_to_string(uint32_t flags) { @@ -197,8 +198,9 @@ static SkString map_flags_to_string(uint32_t flags) { void GrCaps::dumpJSON(SkJSONWriter* writer) const { writer->beginObject(); - writer->appendBool("MIP Map Support", fMipmapSupport); writer->appendBool("NPOT Texture Tile Support", fNPOTTextureTileSupport); + writer->appendBool("MIP Map Support", fMipmapSupport); + writer->appendBool("Aniso Support", fAnisoSupport); writer->appendBool("Reuse Scratch Textures", fReuseScratchTextures); writer->appendBool("Reuse Scratch Buffers", fReuseScratchBuffers); writer->appendBool("Gpu Tracing Support", fGpuTracingSupport); diff --git a/third_party/skia/src/gpu/GrCaps.h b/third_party/skia/src/gpu/ganesh/GrCaps.h similarity index 97% rename from third_party/skia/src/gpu/GrCaps.h rename to third_party/skia/src/gpu/ganesh/GrCaps.h index bb9e301a3faf..684c5500565f 100644 --- a/third_party/skia/src/gpu/GrCaps.h +++ b/third_party/skia/src/gpu/ganesh/GrCaps.h @@ -12,13 +12,13 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkString.h" #include "include/gpu/GrDriverBugWorkarounds.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkCompressedDataUtils.h" -#include "src/gpu/GrBlend.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrSurfaceProxy.h" +#include "src/gpu/Blend.h" #include "src/gpu/Swizzle.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" class GrBackendFormat; class GrBackendRenderTarget; @@ -49,6 +49,8 @@ class GrCaps : public SkRefCnt { /** To avoid as-yet-unnecessary complexity we don't allow any partial support of MIP Maps (e.g. only for POT textures) */ bool mipmapSupport() const { return fMipmapSupport; } + /** Is anisotropic filtering supported. */ + bool anisoSupport() const { return fAnisoSupport; } bool gpuTracingSupport() const { return fGpuTracingSupport; } bool oversizedStencilSupport() const { return fOversizedStencilSupport; } @@ -149,10 +151,10 @@ class GrCaps : public SkRefCnt { return kAdvancedCoherent_BlendEquationSupport == fBlendEquationSupport; } - bool isAdvancedBlendEquationDisabled(GrBlendEquation equation) const { - SkASSERT(GrBlendEquationIsAdvanced(equation)); + bool isAdvancedBlendEquationDisabled(skgpu::BlendEquation equation) const { + SkASSERT(skgpu::BlendEquationIsAdvanced(equation)); SkASSERT(this->advancedBlendEquationSupport()); - return SkToBool(fAdvBlendEqDisableFlags & (1 << equation)); + return SkToBool(fAdvBlendEqDisableFlags & (1 << static_cast(equation))); } // On some GPUs it is a performance win to disable blending instead of doing src-over with a src @@ -539,6 +541,7 @@ class GrCaps : public SkRefCnt { bool fNPOTTextureTileSupport : 1; bool fMipmapSupport : 1; + bool fAnisoSupport : 1; bool fReuseScratchTextures : 1; bool fReuseScratchBuffers : 1; bool fGpuTracingSupport : 1; @@ -597,7 +600,7 @@ class GrCaps : public SkRefCnt { BlendEquationSupport fBlendEquationSupport; uint32_t fAdvBlendEqDisableFlags; - static_assert(kLast_GrBlendEquation < 32); + static_assert(static_cast(skgpu::BlendEquation::kLast) < 32); uint32_t fMapBufferFlags; int fBufferMapThreshold; diff --git a/third_party/skia/src/gpu/GrClientMappedBufferManager.cpp b/third_party/skia/src/gpu/ganesh/GrClientMappedBufferManager.cpp similarity index 97% rename from third_party/skia/src/gpu/GrClientMappedBufferManager.cpp rename to third_party/skia/src/gpu/ganesh/GrClientMappedBufferManager.cpp index 316e47e2c667..c3cbf933ab39 100644 --- a/third_party/skia/src/gpu/GrClientMappedBufferManager.cpp +++ b/third_party/skia/src/gpu/ganesh/GrClientMappedBufferManager.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrClientMappedBufferManager.h" +#include "src/gpu/ganesh/GrClientMappedBufferManager.h" #include diff --git a/third_party/skia/src/gpu/GrClientMappedBufferManager.h b/third_party/skia/src/gpu/ganesh/GrClientMappedBufferManager.h similarity index 98% rename from third_party/skia/src/gpu/GrClientMappedBufferManager.h rename to third_party/skia/src/gpu/ganesh/GrClientMappedBufferManager.h index a77e5982c040..92d632fe8e79 100644 --- a/third_party/skia/src/gpu/GrClientMappedBufferManager.h +++ b/third_party/skia/src/gpu/ganesh/GrClientMappedBufferManager.h @@ -11,7 +11,7 @@ #include "include/gpu/GrDirectContext.h" #include "include/private/SkTArray.h" #include "src/core/SkMessageBus.h" -#include "src/gpu/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" #include /** diff --git a/third_party/skia/src/gpu/GrClip.h b/third_party/skia/src/gpu/ganesh/GrClip.h similarity index 99% rename from third_party/skia/src/gpu/GrClip.h rename to third_party/skia/src/gpu/ganesh/GrClip.h index c319aaec8b58..777c56ca2a61 100644 --- a/third_party/skia/src/gpu/GrClip.h +++ b/third_party/skia/src/gpu/ganesh/GrClip.h @@ -10,7 +10,7 @@ #include "include/core/SkRRect.h" #include "include/core/SkRect.h" -#include "src/gpu/GrAppliedClip.h" +#include "src/gpu/ganesh/GrAppliedClip.h" class GrDrawOp; namespace skgpu { namespace v1 { class SurfaceDrawContext; }} diff --git a/third_party/skia/src/gpu/GrColor.h b/third_party/skia/src/gpu/ganesh/GrColor.h similarity index 100% rename from third_party/skia/src/gpu/GrColor.h rename to third_party/skia/src/gpu/ganesh/GrColor.h diff --git a/third_party/skia/src/gpu/GrColorInfo.cpp b/third_party/skia/src/gpu/ganesh/GrColorInfo.cpp similarity index 54% rename from third_party/skia/src/gpu/GrColorInfo.cpp rename to third_party/skia/src/gpu/ganesh/GrColorInfo.cpp index 22bdc98678c2..aff8f7353733 100644 --- a/third_party/skia/src/gpu/GrColorInfo.cpp +++ b/third_party/skia/src/gpu/ganesh/GrColorInfo.cpp @@ -5,10 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/GrColorInfo.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkImageInfo.h" #include "src/core/SkColorSpacePriv.h" +#include + GrColorInfo::GrColorInfo( GrColorType colorType, SkAlphaType alphaType, sk_sp colorSpace) : fColorSpace(std::move(colorSpace)), fColorType(colorType), fAlphaType(alphaType) { @@ -22,5 +26,24 @@ GrColorInfo::GrColorInfo(const SkColorInfo& ci) ci.alphaType(), ci.refColorSpace()) {} +GrColorInfo::GrColorInfo() = default; GrColorInfo::GrColorInfo(const GrColorInfo&) = default; GrColorInfo& GrColorInfo::operator=(const GrColorInfo&) = default; +GrColorInfo::~GrColorInfo() = default; + +bool GrColorInfo::operator==(const GrColorInfo& that) const { + return fColorType == that.fColorType && + fAlphaType == that.fAlphaType && + SkColorSpace::Equals(fColorSpace.get(), that.fColorSpace.get()); +} + +GrColorInfo GrColorInfo::makeColorType(GrColorType ct) const { + return GrColorInfo(ct, fAlphaType, this->refColorSpace()); +} + +bool GrColorInfo::isLinearlyBlended() const { + return fColorSpace && fColorSpace->gammaIsLinear(); +} + +SkColorSpace* GrColorInfo::colorSpace() const { return fColorSpace.get(); } +sk_sp GrColorInfo::refColorSpace() const { return fColorSpace; } diff --git a/third_party/skia/src/gpu/GrColorInfo.h b/third_party/skia/src/gpu/ganesh/GrColorInfo.h similarity index 65% rename from third_party/skia/src/gpu/GrColorInfo.h rename to third_party/skia/src/gpu/ganesh/GrColorInfo.h index 0a8aaa00600d..6fd174eba054 100644 --- a/third_party/skia/src/gpu/GrColorInfo.h +++ b/third_party/skia/src/gpu/ganesh/GrColorInfo.h @@ -8,37 +8,34 @@ #ifndef GrColorInfo_DEFINED #define GrColorInfo_DEFINED -#include "include/core/SkColorSpace.h" +#include "include/core/SkAlphaType.h" #include "include/core/SkRefCnt.h" -#include "include/gpu/GrTypes.h" -#include "src/gpu/GrColorSpaceXform.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +class SkColorInfo; +class SkColorSpace; /** * All the info needed to interpret a color: Color type + alpha type + color space. Also caches * the GrColorSpaceXform from sRGB. */ class GrColorInfo { public: - GrColorInfo() = default; + GrColorInfo(); GrColorInfo(const GrColorInfo&); GrColorInfo& operator=(const GrColorInfo&); GrColorInfo(GrColorType, SkAlphaType, sk_sp); /* implicit */ GrColorInfo(const SkColorInfo&); + ~GrColorInfo(); - bool operator==(const GrColorInfo& that) const { - return fColorType == that.fColorType && - fAlphaType == that.fAlphaType && - SkColorSpace::Equals(fColorSpace.get(), that.fColorSpace.get()); - } + bool operator==(const GrColorInfo& that) const; bool operator!=(const GrColorInfo& that) const { return !(*this == that); } - GrColorInfo makeColorType(GrColorType ct) const { - return GrColorInfo(ct, fAlphaType, this->refColorSpace()); - } + GrColorInfo makeColorType(GrColorType ct) const; - bool isLinearlyBlended() const { return fColorSpace && fColorSpace->gammaIsLinear(); } + bool isLinearlyBlended() const; - SkColorSpace* colorSpace() const { return fColorSpace.get(); } - sk_sp refColorSpace() const { return fColorSpace; } + SkColorSpace* colorSpace() const; + sk_sp refColorSpace() const; GrColorSpaceXform* colorSpaceXformFromSRGB() const { return fColorXformFromSRGB.get(); } sk_sp refColorSpaceXformFromSRGB() const { return fColorXformFromSRGB; } diff --git a/third_party/skia/src/gpu/GrColorSpaceXform.cpp b/third_party/skia/src/gpu/ganesh/GrColorSpaceXform.cpp similarity index 85% rename from third_party/skia/src/gpu/GrColorSpaceXform.cpp rename to third_party/skia/src/gpu/ganesh/GrColorSpaceXform.cpp index 72d55c58ef8a..c5de82f007c1 100644 --- a/third_party/skia/src/gpu/GrColorSpaceXform.cpp +++ b/third_party/skia/src/gpu/ganesh/GrColorSpaceXform.cpp @@ -5,14 +5,22 @@ * found in the LICENSE file. */ -#include "src/gpu/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" -#include "include/core/SkColorSpace.h" +#include "include/core/SkString.h" +#include "include/third_party/skcms/skcms.h" #include "src/core/SkColorSpacePriv.h" -#include "src/gpu/GrColorInfo.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include +#include + +class GrGLSLProgramDataManager; +class GrGLSLUniformHandler; +struct GrShaderCaps; sk_sp GrColorSpaceXform::Make(SkColorSpace* src, SkAlphaType srcAT, SkColorSpace* dst, SkAlphaType dstAT) { @@ -27,6 +35,22 @@ sk_sp GrColorSpaceXform::Make(const GrColorInfo& srcInfo, dstInfo.colorSpace(), dstInfo.alphaType()); } +uint32_t GrColorSpaceXform::XformKey(const GrColorSpaceXform* xform) { + // Code generation depends on which steps we apply, + // and the kinds of transfer functions (if we're applying those). + if (!xform) { return 0; } + + const SkColorSpaceXformSteps& steps(xform->fSteps); + uint32_t key = steps.flags.mask(); + if (steps.flags.linearize) { + key |= classify_transfer_fn(steps.srcTF) << 8; + } + if (steps.flags.encode) { + key |= classify_transfer_fn(steps.dstTFInv) << 16; + } + return key; +} + bool GrColorSpaceXform::Equals(const GrColorSpaceXform* a, const GrColorSpaceXform* b) { if (a == b) { return true; diff --git a/third_party/skia/src/gpu/GrColorSpaceXform.h b/third_party/skia/src/gpu/ganesh/GrColorSpaceXform.h similarity index 83% rename from third_party/skia/src/gpu/GrColorSpaceXform.h rename to third_party/skia/src/gpu/ganesh/GrColorSpaceXform.h index 6f0929939070..35df50e0a4d2 100644 --- a/third_party/skia/src/gpu/GrColorSpaceXform.h +++ b/third_party/skia/src/gpu/ganesh/GrColorSpaceXform.h @@ -8,13 +8,21 @@ #ifndef GrColorSpaceXform_DEFINED #define GrColorSpaceXform_DEFINED +#include "include/core/SkAlphaType.h" +#include "include/core/SkColor.h" #include "include/core/SkRefCnt.h" -#include "src/core/SkColorSpacePriv.h" +#include "include/private/SkColorData.h" #include "src/core/SkColorSpaceXformSteps.h" -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" + +#include +#include class GrColorInfo; class SkColorSpace; +struct GrShaderCaps; + +namespace skgpu { class KeyBuilder; } /** * Represents a color space transformation @@ -34,21 +42,7 @@ class GrColorSpaceXform : public SkRefCnt { * GrFragmentProcessor::addToKey() must call this and include the returned value in its * computed key. */ - static uint32_t XformKey(const GrColorSpaceXform* xform) { - // Code generation depends on which steps we apply, - // and the kinds of transfer functions (if we're applying those). - if (!xform) { return 0; } - - const SkColorSpaceXformSteps& steps(xform->fSteps); - uint32_t key = steps.flags.mask(); - if (steps.flags.linearize) { - key |= classify_transfer_fn(steps.srcTF) << 8; - } - if (steps.flags.encode) { - key |= classify_transfer_fn(steps.dstTFInv) << 16; - } - return key; - } + static uint32_t XformKey(const GrColorSpaceXform* xform); static bool Equals(const GrColorSpaceXform* a, const GrColorSpaceXform* b); diff --git a/third_party/skia/src/gpu/GrContextThreadSafeProxy.cpp b/third_party/skia/src/gpu/ganesh/GrContextThreadSafeProxy.cpp similarity index 90% rename from third_party/skia/src/gpu/GrContextThreadSafeProxy.cpp rename to third_party/skia/src/gpu/ganesh/GrContextThreadSafeProxy.cpp index 161aaba02457..2ec8c8ff48c1 100644 --- a/third_party/skia/src/gpu/GrContextThreadSafeProxy.cpp +++ b/third_party/skia/src/gpu/ganesh/GrContextThreadSafeProxy.cpp @@ -8,18 +8,18 @@ #include #include "include/gpu/GrContextThreadSafeProxy.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" #include "include/core/SkSurfaceCharacterization.h" -#include "src/gpu/GrBaseContextPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrThreadSafeCache.h" -#include "src/gpu/GrThreadSafePipelineBuilder.h" -#include "src/gpu/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/GrBaseContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrThreadSafeCache.h" +#include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" #include "src/image/SkSurface_Gpu.h" #ifdef SK_VULKAN -#include "src/gpu/vk/GrVkCaps.h" +#include "src/gpu/ganesh/vk/GrVkCaps.h" #endif static int32_t next_id() { @@ -162,6 +162,14 @@ GrBackendFormat GrContextThreadSafeProxy::compressedBackendFormat(SkImage::Compr return format; } +int GrContextThreadSafeProxy::maxSurfaceSampleCountForColorType(SkColorType colorType) const { + SkASSERT(fCaps); + + GrBackendFormat format = fCaps->getDefaultBackendFormat(SkColorTypeToGrColorType(colorType), + GrRenderable::kYes); + return fCaps->maxRenderTargetSampleCount(format); +} + void GrContextThreadSafeProxy::abandonContext() { if (!fAbandoned.exchange(true)) { fTextBlobRedrawCoordinator->freeAll(); @@ -183,4 +191,3 @@ void GrContextThreadSafeProxyPriv::init(sk_sp caps, sk_sp builder) const { fProxy->init(std::move(caps), std::move(builder)); } - diff --git a/third_party/skia/src/gpu/GrContextThreadSafeProxyPriv.h b/third_party/skia/src/gpu/ganesh/GrContextThreadSafeProxyPriv.h similarity index 94% rename from third_party/skia/src/gpu/GrContextThreadSafeProxyPriv.h rename to third_party/skia/src/gpu/ganesh/GrContextThreadSafeProxyPriv.h index 36335603c99f..60bcca7624e7 100644 --- a/third_party/skia/src/gpu/GrContextThreadSafeProxyPriv.h +++ b/third_party/skia/src/gpu/ganesh/GrContextThreadSafeProxyPriv.h @@ -9,10 +9,10 @@ #define GrContextThreadSafeProxyPriv_DEFINED #include "include/gpu/GrContextThreadSafeProxy.h" -#include "include/private/GrContext_Base.h" +#include "include/private/gpu/ganesh/GrContext_Base.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/text/GrTextBlobRedrawCoordinator.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h" /** * Class that adds methods to GrContextThreadSafeProxy that are only intended for use internal to diff --git a/third_party/skia/src/gpu/GrContext_Base.cpp b/third_party/skia/src/gpu/ganesh/GrContext_Base.cpp similarity index 82% rename from third_party/skia/src/gpu/GrContext_Base.cpp rename to third_party/skia/src/gpu/ganesh/GrContext_Base.cpp index 9a9c541707c4..d52e2c76577f 100644 --- a/third_party/skia/src/gpu/GrContext_Base.cpp +++ b/third_party/skia/src/gpu/ganesh/GrContext_Base.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "include/private/GrContext_Base.h" +#include "include/private/gpu/ganesh/GrContext_Base.h" #include "include/gpu/ShaderErrorHandler.h" -#include "src/gpu/GrBaseContextPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" -#include "src/gpu/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/GrBaseContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" GrContext_Base::GrContext_Base(sk_sp proxy) : fThreadSafeProxy(std::move(proxy)) { @@ -44,6 +44,10 @@ GrBackendFormat GrContext_Base::compressedBackendFormat(SkImage::CompressionType return fThreadSafeProxy->compressedBackendFormat(c); } +int GrContext_Base::maxSurfaceSampleCountForColorType(SkColorType colorType) const { + return fThreadSafeProxy->maxSurfaceSampleCountForColorType(colorType); +} + sk_sp GrContext_Base::threadSafeProxy() { return fThreadSafeProxy; } /////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/gpu/GrCopyRenderTask.cpp b/third_party/skia/src/gpu/ganesh/GrCopyRenderTask.cpp similarity index 94% rename from third_party/skia/src/gpu/GrCopyRenderTask.cpp rename to third_party/skia/src/gpu/ganesh/GrCopyRenderTask.cpp index 0a8fbdd3b09f..098b80d66008 100644 --- a/third_party/skia/src/gpu/GrCopyRenderTask.cpp +++ b/third_party/skia/src/gpu/ganesh/GrCopyRenderTask.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/GrCopyRenderTask.h" +#include "src/gpu/ganesh/GrCopyRenderTask.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrResourceAllocator.h" -#include "src/gpu/geometry/GrRect.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrResourceAllocator.h" +#include "src/gpu/ganesh/geometry/GrRect.h" sk_sp GrCopyRenderTask::Make(GrDrawingManager* drawingMgr, sk_sp src, diff --git a/third_party/skia/src/gpu/GrCopyRenderTask.h b/third_party/skia/src/gpu/ganesh/GrCopyRenderTask.h similarity index 97% rename from third_party/skia/src/gpu/GrCopyRenderTask.h rename to third_party/skia/src/gpu/ganesh/GrCopyRenderTask.h index 6bfb4db62ff8..716d46730b03 100644 --- a/third_party/skia/src/gpu/GrCopyRenderTask.h +++ b/third_party/skia/src/gpu/ganesh/GrCopyRenderTask.h @@ -8,7 +8,7 @@ #ifndef GrCopyRenderTask_DEFINED #define GrCopyRenderTask_DEFINED -#include "src/gpu/GrRenderTask.h" +#include "src/gpu/ganesh/GrRenderTask.h" class GrCopyRenderTask final : public GrRenderTask { public: diff --git a/third_party/skia/src/gpu/GrCpuBuffer.h b/third_party/skia/src/gpu/ganesh/GrCpuBuffer.h similarity index 94% rename from third_party/skia/src/gpu/GrCpuBuffer.h rename to third_party/skia/src/gpu/ganesh/GrCpuBuffer.h index 514976667631..810714e1f70d 100644 --- a/third_party/skia/src/gpu/GrCpuBuffer.h +++ b/third_party/skia/src/gpu/ganesh/GrCpuBuffer.h @@ -9,8 +9,8 @@ #define GrCpuBuffer_DEFINED #include "src/core/SkSafeMath.h" -#include "src/gpu/GrBuffer.h" -#include "src/gpu/GrNonAtomicRef.h" +#include "src/gpu/ganesh/GrBuffer.h" +#include "src/gpu/ganesh/GrNonAtomicRef.h" class GrCpuBuffer final : public GrNonAtomicRef, public GrBuffer { public: diff --git a/third_party/skia/src/gpu/GrDDLContext.cpp b/third_party/skia/src/gpu/ganesh/GrDDLContext.cpp similarity index 92% rename from third_party/skia/src/gpu/GrDDLContext.cpp rename to third_party/skia/src/gpu/ganesh/GrDDLContext.cpp index e3bb42fa1fd2..82725c23f561 100644 --- a/third_party/skia/src/gpu/GrDDLContext.cpp +++ b/third_party/skia/src/gpu/ganesh/GrDDLContext.cpp @@ -7,12 +7,12 @@ #include "include/gpu/GrRecordingContext.h" #include "src/core/SkLRUCache.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" /** * The DDL Context is the one in effect during DDL Recording. It isn't backed by a GrGPU and diff --git a/third_party/skia/src/gpu/GrDDLTask.cpp b/third_party/skia/src/gpu/ganesh/GrDDLTask.cpp similarity index 97% rename from third_party/skia/src/gpu/GrDDLTask.cpp rename to third_party/skia/src/gpu/ganesh/GrDDLTask.cpp index aeefd5a2ca4e..df6e95cbd622 100644 --- a/third_party/skia/src/gpu/GrDDLTask.cpp +++ b/third_party/skia/src/gpu/ganesh/GrDDLTask.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/GrDDLTask.h" +#include "src/gpu/ganesh/GrDDLTask.h" #include "include/core/SkDeferredDisplayList.h" #include "src/core/SkDeferredDisplayListPriv.h" -#include "src/gpu/GrResourceAllocator.h" +#include "src/gpu/ganesh/GrResourceAllocator.h" GrDDLTask::GrDDLTask(GrDrawingManager* drawingMgr, sk_sp ddlTarget, diff --git a/third_party/skia/src/gpu/GrDDLTask.h b/third_party/skia/src/gpu/ganesh/GrDDLTask.h similarity index 98% rename from third_party/skia/src/gpu/GrDDLTask.h rename to third_party/skia/src/gpu/ganesh/GrDDLTask.h index ba121e4e841f..4b492529f220 100644 --- a/third_party/skia/src/gpu/GrDDLTask.h +++ b/third_party/skia/src/gpu/ganesh/GrDDLTask.h @@ -9,7 +9,7 @@ #define GrDDLTask_DEFINED #include "include/core/SkPoint.h" -#include "src/gpu/GrRenderTask.h" +#include "src/gpu/ganesh/GrRenderTask.h" class GrRenderTargetProxy; diff --git a/third_party/skia/src/gpu/GrDataUtils.cpp b/third_party/skia/src/gpu/ganesh/GrDataUtils.cpp similarity index 99% rename from third_party/skia/src/gpu/GrDataUtils.cpp rename to third_party/skia/src/gpu/ganesh/GrDataUtils.cpp index af836eac0f9d..709ad5433f37 100644 --- a/third_party/skia/src/gpu/GrDataUtils.cpp +++ b/third_party/skia/src/gpu/ganesh/GrDataUtils.cpp @@ -5,8 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/GrDataUtils.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "include/core/SkColorSpace.h" #include "include/private/SkTPin.h" #include "include/third_party/skcms/skcms.h" #include "src/core/SkColorSpaceXformSteps.h" @@ -18,11 +19,11 @@ #include "src/core/SkTLazy.h" #include "src/core/SkTraceEvent.h" #include "src/core/SkUtils.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrPixmap.h" #include "src/gpu/Swizzle.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrPixmap.h" struct ETC1Block { uint32_t fHigh; diff --git a/third_party/skia/src/gpu/GrDataUtils.h b/third_party/skia/src/gpu/ganesh/GrDataUtils.h similarity index 97% rename from third_party/skia/src/gpu/GrDataUtils.h rename to third_party/skia/src/gpu/ganesh/GrDataUtils.h index ff58246d35c2..a033a6856fef 100644 --- a/third_party/skia/src/gpu/GrDataUtils.h +++ b/third_party/skia/src/gpu/ganesh/GrDataUtils.h @@ -9,8 +9,8 @@ #define GrDataUtils_DEFINED #include "include/core/SkColor.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkTArray.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" class GrImageInfo; class GrCPixmap; diff --git a/third_party/skia/src/gpu/GrDefaultGeoProcFactory.cpp b/third_party/skia/src/gpu/ganesh/GrDefaultGeoProcFactory.cpp similarity index 97% rename from third_party/skia/src/gpu/GrDefaultGeoProcFactory.cpp rename to third_party/skia/src/gpu/ganesh/GrDefaultGeoProcFactory.cpp index b2918e5581c6..13a449ead6bc 100644 --- a/third_party/skia/src/gpu/GrDefaultGeoProcFactory.cpp +++ b/third_party/skia/src/gpu/ganesh/GrDefaultGeoProcFactory.cpp @@ -5,17 +5,17 @@ * found in the LICENSE file. */ -#include "src/gpu/GrDefaultGeoProcFactory.h" +#include "src/gpu/ganesh/GrDefaultGeoProcFactory.h" #include "include/core/SkRefCnt.h" #include "src/core/SkArenaAlloc.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrGeometryProcessor.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" /* * The default Geometry Processor simply takes position and multiplies it by the uniform view diff --git a/third_party/skia/src/gpu/GrDefaultGeoProcFactory.h b/third_party/skia/src/gpu/ganesh/GrDefaultGeoProcFactory.h similarity index 98% rename from third_party/skia/src/gpu/GrDefaultGeoProcFactory.h rename to third_party/skia/src/gpu/ganesh/GrDefaultGeoProcFactory.h index e7c2247ab7de..44d8f79dc355 100644 --- a/third_party/skia/src/gpu/GrDefaultGeoProcFactory.h +++ b/third_party/skia/src/gpu/ganesh/GrDefaultGeoProcFactory.h @@ -8,7 +8,7 @@ #ifndef GrDefaultGeoProcFactory_DEFINED #define GrDefaultGeoProcFactory_DEFINED -#include "src/gpu/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" /* * A factory for creating default Geometry Processors which simply multiply position by the uniform diff --git a/third_party/skia/src/gpu/GrDeferredProxyUploader.h b/third_party/skia/src/gpu/ganesh/GrDeferredProxyUploader.h similarity index 98% rename from third_party/skia/src/gpu/GrDeferredProxyUploader.h rename to third_party/skia/src/gpu/ganesh/GrDeferredProxyUploader.h index 34f077c76aec..fbdc5035899e 100644 --- a/third_party/skia/src/gpu/GrDeferredProxyUploader.h +++ b/third_party/skia/src/gpu/ganesh/GrDeferredProxyUploader.h @@ -12,8 +12,8 @@ #include "include/private/SkSemaphore.h" #include "src/core/SkAutoPixmapStorage.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrTextureProxyPriv.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrTextureProxyPriv.h" /** * GrDeferredProxyUploader assists with threaded generation of textures. Currently used by both diff --git a/third_party/skia/src/gpu/GrDeferredUpload.h b/third_party/skia/src/gpu/ganesh/GrDeferredUpload.h similarity index 99% rename from third_party/skia/src/gpu/GrDeferredUpload.h rename to third_party/skia/src/gpu/ganesh/GrDeferredUpload.h index 8c4f668933ab..e0ca4a911e48 100644 --- a/third_party/skia/src/gpu/GrDeferredUpload.h +++ b/third_party/skia/src/gpu/ganesh/GrDeferredUpload.h @@ -10,7 +10,7 @@ #include #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" class GrTextureProxy; diff --git a/third_party/skia/src/gpu/GrDirectContext.cpp b/third_party/skia/src/gpu/ganesh/GrDirectContext.cpp similarity index 94% rename from third_party/skia/src/gpu/GrDirectContext.cpp rename to third_party/skia/src/gpu/ganesh/GrDirectContext.cpp index 32bf707e10da..abec1a933ee2 100644 --- a/third_party/skia/src/gpu/GrDirectContext.cpp +++ b/third_party/skia/src/gpu/ganesh/GrDirectContext.cpp @@ -14,24 +14,24 @@ #include "src/core/SkAutoMalloc.h" #include "src/core/SkTaskGroup.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrClientMappedBufferManager.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrThreadSafePipelineBuilder.h" -#include "src/gpu/SurfaceContext.h" -#include "src/gpu/effects/GrSkSLFP.h" -#include "src/gpu/mock/GrMockGpu.h" -#include "src/gpu/text/GrAtlasManager.h" -#include "src/gpu/text/GrStrikeCache.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrClientMappedBufferManager.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" +#include "src/gpu/ganesh/SurfaceContext.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/mock/GrMockGpu.h" +#include "src/gpu/ganesh/text/GrAtlasManager.h" +#include "src/gpu/ganesh/text/GrStrikeCache.h" #include "src/image/SkImage_GpuBase.h" #include "src/utils/SkShaderUtils.h" #if SK_GPU_V1 -#include "src/gpu/ops/SmallPathAtlasMgr.h" +#include "src/gpu/ganesh/ops/SmallPathAtlasMgr.h" #else // A vestigial definition for v2 that will never be instantiated namespace skgpu::v1 { @@ -43,20 +43,20 @@ class SmallPathAtlasMgr { } #endif #ifdef SK_GL -#include "src/gpu/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" #endif #ifdef SK_METAL #include "include/gpu/mtl/GrMtlBackendContext.h" -#include "src/gpu/mtl/GrMtlTrampoline.h" +#include "src/gpu/ganesh/mtl/GrMtlTrampoline.h" #endif #ifdef SK_VULKAN -#include "src/gpu/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" #endif #ifdef SK_DIRECT3D -#include "src/gpu/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" #endif #ifdef SK_DAWN -#include "src/gpu/dawn/GrDawnGpu.h" +#include "src/gpu/ganesh/dawn/GrDawnGpu.h" #endif #include @@ -494,14 +494,15 @@ GrBackendTexture GrDirectContext::createBackendTexture(int width, int height, return this->createBackendTexture(width, height, format, mipMapped, renderable, isProtected); } -static GrBackendTexture create_and_clear_backend_texture(GrDirectContext* dContext, - SkISize dimensions, - const GrBackendFormat& backendFormat, - GrMipmapped mipMapped, - GrRenderable renderable, - GrProtected isProtected, - sk_sp finishedCallback, - std::array color) { +static GrBackendTexture create_and_clear_backend_texture( + GrDirectContext* dContext, + SkISize dimensions, + const GrBackendFormat& backendFormat, + GrMipmapped mipMapped, + GrRenderable renderable, + GrProtected isProtected, + sk_sp finishedCallback, + std::array color) { GrGpu* gpu = dContext->priv().getGpu(); GrBackendTexture beTex = gpu->createBackendTexture(dimensions, backendFormat, renderable, mipMapped, isProtected); @@ -523,7 +524,7 @@ static bool update_texture_with_pixmaps(GrDirectContext* context, int numLevels, const GrBackendTexture& backendTexture, GrSurfaceOrigin textureOrigin, - sk_sp finishedCallback) { + sk_sp finishedCallback) { GrColorType ct = SkColorTypeToGrColorType(src[0].colorType()); const GrBackendFormat& format = backendTexture.getBackendFormat(); @@ -568,7 +569,7 @@ GrBackendTexture GrDirectContext::createBackendTexture(int width, int height, GrProtected isProtected, GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { - auto finishedCallback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto finishedCallback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); TRACE_EVENT0("skia.gpu", TRACE_FUNC); if (this->abandoned()) { @@ -593,7 +594,7 @@ GrBackendTexture GrDirectContext::createBackendTexture(int width, int height, GrProtected isProtected, GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { - auto finishedCallback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto finishedCallback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); if (this->abandoned()) { return {}; @@ -626,7 +627,7 @@ GrBackendTexture GrDirectContext::createBackendTexture(const SkPixmap srcData[], GrGpuFinishedContext finishedContext) { TRACE_EVENT0("skia.gpu", TRACE_FUNC); - auto finishedCallback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto finishedCallback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); if (this->abandoned()) { return {}; @@ -669,7 +670,7 @@ bool GrDirectContext::updateBackendTexture(const GrBackendTexture& backendTextur const SkColor4f& color, GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { - auto finishedCallback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto finishedCallback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); if (this->abandoned()) { return false; @@ -683,7 +684,7 @@ bool GrDirectContext::updateBackendTexture(const GrBackendTexture& backendTextur const SkColor4f& color, GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { - auto finishedCallback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto finishedCallback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); if (this->abandoned()) { return false; @@ -710,7 +711,7 @@ bool GrDirectContext::updateBackendTexture(const GrBackendTexture& backendTextur GrSurfaceOrigin textureOrigin, GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { - auto finishedCallback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto finishedCallback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); if (this->abandoned()) { return false; @@ -745,7 +746,7 @@ static GrBackendTexture create_and_update_compressed_backend_texture( const GrBackendFormat& backendFormat, GrMipmapped mipMapped, GrProtected isProtected, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t size) { GrGpu* gpu = dContext->priv().getGpu(); @@ -773,7 +774,7 @@ GrBackendTexture GrDirectContext::createCompressedBackendTexture( GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { TRACE_EVENT0("skia.gpu", TRACE_FUNC); - auto finishedCallback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto finishedCallback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); if (this->abandoned()) { return {}; @@ -825,7 +826,7 @@ GrBackendTexture GrDirectContext::createCompressedBackendTexture( GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { TRACE_EVENT0("skia.gpu", TRACE_FUNC); - auto finishedCallback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto finishedCallback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); if (this->abandoned()) { return {}; @@ -859,7 +860,7 @@ bool GrDirectContext::updateCompressedBackendTexture(const GrBackendTexture& bac const SkColor4f& color, GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { - auto finishedCallback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto finishedCallback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); if (this->abandoned()) { return false; @@ -891,7 +892,7 @@ bool GrDirectContext::updateCompressedBackendTexture(const GrBackendTexture& bac size_t dataSize, GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { - auto finishedCallback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto finishedCallback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); if (this->abandoned()) { return false; @@ -914,7 +915,7 @@ bool GrDirectContext::setBackendTextureState(const GrBackendTexture& backendText GrBackendSurfaceMutableState* previousState, GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { - auto callback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto callback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); if (this->abandoned()) { return false; @@ -929,7 +930,7 @@ bool GrDirectContext::setBackendRenderTargetState(const GrBackendRenderTarget& b GrBackendSurfaceMutableState* previousState, GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { - auto callback = GrRefCntedCallback::Make(finishedProc, finishedContext); + auto callback = skgpu::RefCntedCallback::Make(finishedProc, finishedContext); if (this->abandoned()) { return false; diff --git a/third_party/skia/src/gpu/GrDirectContextPriv.cpp b/third_party/skia/src/gpu/ganesh/GrDirectContextPriv.cpp similarity index 93% rename from third_party/skia/src/gpu/GrDirectContextPriv.cpp rename to third_party/skia/src/gpu/ganesh/GrDirectContextPriv.cpp index 163d250e56e3..fa0c2bcbdedb 100644 --- a/third_party/skia/src/gpu/GrDirectContextPriv.cpp +++ b/third_party/skia/src/gpu/ganesh/GrDirectContextPriv.cpp @@ -5,26 +5,27 @@ * found in the LICENSE file. */ -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "include/core/SkBitmap.h" #include "include/gpu/GrContextThreadSafeProxy.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkRuntimeEffectPriv.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrThreadSafePipelineBuilder.h" -#include "src/gpu/GrTracing.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceContext.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrSkSLFP.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/text/GrAtlasManager.h" -#include "src/gpu/text/GrTextBlobRedrawCoordinator.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" +#include "src/gpu/ganesh/GrTracing.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceContext.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/text/GrAtlasManager.h" +#include "src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_Gpu.h" diff --git a/third_party/skia/src/gpu/GrDirectContextPriv.h b/third_party/skia/src/gpu/ganesh/GrDirectContextPriv.h similarity index 98% rename from third_party/skia/src/gpu/GrDirectContextPriv.h rename to third_party/skia/src/gpu/ganesh/GrDirectContextPriv.h index 523527c067a9..97defa671b82 100644 --- a/third_party/skia/src/gpu/GrDirectContextPriv.h +++ b/third_party/skia/src/gpu/ganesh/GrDirectContextPriv.h @@ -11,8 +11,8 @@ #include "include/core/SkSpan.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/BaseDevice.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/BaseDevice.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" class GrAtlasManager; class GrBackendFormat; diff --git a/third_party/skia/src/gpu/GrDistanceFieldGenFromVector.cpp b/third_party/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector.cpp similarity index 99% rename from third_party/skia/src/gpu/GrDistanceFieldGenFromVector.cpp rename to third_party/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector.cpp index d6ed1cf34c7b..f97618aaff5e 100644 --- a/third_party/skia/src/gpu/GrDistanceFieldGenFromVector.cpp +++ b/third_party/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector.cpp @@ -6,7 +6,7 @@ */ #include "src/core/SkDistanceFieldGen.h" -#include "src/gpu/GrDistanceFieldGenFromVector.h" +#include "src/gpu/ganesh/GrDistanceFieldGenFromVector.h" #include "include/core/SkMatrix.h" #include "include/gpu/GrConfig.h" @@ -15,7 +15,7 @@ #include "src/core/SkGeometry.h" #include "src/core/SkPointPriv.h" #include "src/core/SkRectPriv.h" -#include "src/gpu/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" namespace { // TODO: should we make this real (i.e. src/core) and distinguish it from diff --git a/third_party/skia/src/gpu/GrDistanceFieldGenFromVector.h b/third_party/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector.h similarity index 100% rename from third_party/skia/src/gpu/GrDistanceFieldGenFromVector.h rename to third_party/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector.h diff --git a/third_party/skia/src/gpu/GrDrawIndirectCommand.h b/third_party/skia/src/gpu/ganesh/GrDrawIndirectCommand.h similarity index 100% rename from third_party/skia/src/gpu/GrDrawIndirectCommand.h rename to third_party/skia/src/gpu/ganesh/GrDrawIndirectCommand.h diff --git a/third_party/skia/src/gpu/GrDrawOpAtlas.cpp b/third_party/skia/src/gpu/ganesh/GrDrawOpAtlas.cpp similarity index 98% rename from third_party/skia/src/gpu/GrDrawOpAtlas.cpp rename to third_party/skia/src/gpu/ganesh/GrDrawOpAtlas.cpp index 37f2183ab366..067ca2894e74 100644 --- a/third_party/skia/src/gpu/GrDrawOpAtlas.cpp +++ b/third_party/skia/src/gpu/ganesh/GrDrawOpAtlas.cpp @@ -5,21 +5,21 @@ * found in the LICENSE file. */ -#include "src/gpu/GrDrawOpAtlas.h" +#include "src/gpu/ganesh/GrDrawOpAtlas.h" #include #include "include/private/SkTPin.h" #include "src/core/SkOpts.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrOnFlushResourceProvider.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrResourceProviderPriv.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTracing.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrOnFlushResourceProvider.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrResourceProviderPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTracing.h" #ifdef DUMP_ATLAS_DATA static bool gDumpAtlasData = false; diff --git a/third_party/skia/src/gpu/GrDrawOpAtlas.h b/third_party/skia/src/gpu/ganesh/GrDrawOpAtlas.h similarity index 99% rename from third_party/skia/src/gpu/GrDrawOpAtlas.h rename to third_party/skia/src/gpu/ganesh/GrDrawOpAtlas.h index 20eadb63fefd..1df057a4ec56 100644 --- a/third_party/skia/src/gpu/GrDrawOpAtlas.h +++ b/third_party/skia/src/gpu/ganesh/GrDrawOpAtlas.h @@ -15,10 +15,10 @@ #include "include/private/SkTArray.h" #include "src/core/SkIPoint16.h" #include "src/core/SkTInternalLList.h" -#include "src/gpu/GrDeferredUpload.h" -#include "src/gpu/GrRectanizerSkyline.h" -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/geometry/GrRect.h" +#include "src/gpu/ganesh/GrDeferredUpload.h" +#include "src/gpu/ganesh/GrRectanizerSkyline.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/geometry/GrRect.h" class GrOnFlushResourceProvider; class GrProxyProvider; diff --git a/third_party/skia/src/gpu/GrDrawOpTest.cpp b/third_party/skia/src/gpu/ganesh/GrDrawOpTest.cpp similarity index 87% rename from third_party/skia/src/gpu/GrDrawOpTest.cpp rename to third_party/skia/src/gpu/ganesh/GrDrawOpTest.cpp index 2c2e313b4fb6..77cf8eae10ac 100644 --- a/third_party/skia/src/gpu/GrDrawOpTest.cpp +++ b/third_party/skia/src/gpu/ganesh/GrDrawOpTest.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" #include "include/core/SkTypes.h" -#include "include/private/GrContext_Base.h" +#include "include/private/gpu/ganesh/GrContext_Base.h" #include "include/utils/SkRandom.h" -#include "src/gpu/GrBaseContextPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrUserStencilSettings.h" +#include "src/gpu/ganesh/GrBaseContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrUserStencilSettings.h" #if GR_TEST_UTILS diff --git a/third_party/skia/src/gpu/GrDrawOpTest.h b/third_party/skia/src/gpu/ganesh/GrDrawOpTest.h similarity index 97% rename from third_party/skia/src/gpu/GrDrawOpTest.h rename to third_party/skia/src/gpu/ganesh/GrDrawOpTest.h index 9d1fdeb05c97..4c54f3a1e008 100644 --- a/third_party/skia/src/gpu/GrDrawOpTest.h +++ b/third_party/skia/src/gpu/ganesh/GrDrawOpTest.h @@ -9,7 +9,7 @@ #define GrDrawOpTest_DEFINED #include "include/core/SkRefCnt.h" -#include "src/gpu/GrTestUtils.h" +#include "src/gpu/ganesh/GrTestUtils.h" #if GR_TEST_UTILS diff --git a/third_party/skia/src/gpu/GrDrawingManager.cpp b/third_party/skia/src/gpu/ganesh/GrDrawingManager.cpp similarity index 96% rename from third_party/skia/src/gpu/GrDrawingManager.cpp rename to third_party/skia/src/gpu/ganesh/GrDrawingManager.cpp index 20663fea368e..b728eb470e3a 100644 --- a/third_party/skia/src/gpu/GrDrawingManager.cpp +++ b/third_party/skia/src/gpu/ganesh/GrDrawingManager.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrDrawingManager.h" +#include "src/gpu/ganesh/GrDrawingManager.h" #include #include @@ -16,36 +16,36 @@ #include "include/gpu/GrRecordingContext.h" #include "src/core/SkDeferredDisplayListPriv.h" #include "src/core/SkTInternalLList.h" -#include "src/gpu/GrClientMappedBufferManager.h" -#include "src/gpu/GrCopyRenderTask.h" -#include "src/gpu/GrDDLTask.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOnFlushResourceProvider.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrRenderTask.h" -#include "src/gpu/GrRenderTaskCluster.h" -#include "src/gpu/GrResourceAllocator.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTTopoSort.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/GrTextureProxyPriv.h" -#include "src/gpu/GrTextureResolveRenderTask.h" -#include "src/gpu/GrTracing.h" -#include "src/gpu/GrTransferFromRenderTask.h" -#include "src/gpu/GrWaitRenderTask.h" -#include "src/gpu/GrWritePixelsRenderTask.h" -#include "src/gpu/text/GrSDFTControl.h" +#include "src/gpu/ganesh/GrClientMappedBufferManager.h" +#include "src/gpu/ganesh/GrCopyRenderTask.h" +#include "src/gpu/ganesh/GrDDLTask.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOnFlushResourceProvider.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrRenderTask.h" +#include "src/gpu/ganesh/GrRenderTaskCluster.h" +#include "src/gpu/ganesh/GrResourceAllocator.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTTopoSort.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/GrTextureProxyPriv.h" +#include "src/gpu/ganesh/GrTextureResolveRenderTask.h" +#include "src/gpu/ganesh/GrTracing.h" +#include "src/gpu/ganesh/GrTransferFromRenderTask.h" +#include "src/gpu/ganesh/GrWaitRenderTask.h" +#include "src/gpu/ganesh/GrWritePixelsRenderTask.h" +#include "src/gpu/ganesh/text/GrSDFTControl.h" #include "src/image/SkSurface_Gpu.h" #if SK_GPU_V1 -#include "src/gpu/ops/OpsTask.h" -#include "src/gpu/ops/SoftwarePathRenderer.h" +#include "src/gpu/ganesh/ops/OpsTask.h" +#include "src/gpu/ganesh/ops/SoftwarePathRenderer.h" #endif /////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/gpu/GrDrawingManager.h b/third_party/skia/src/gpu/ganesh/GrDrawingManager.h similarity index 97% rename from third_party/skia/src/gpu/GrDrawingManager.h rename to third_party/skia/src/gpu/ganesh/GrDrawingManager.h index 39510160a867..97390651c028 100644 --- a/third_party/skia/src/gpu/GrDrawingManager.h +++ b/third_party/skia/src/gpu/ganesh/GrDrawingManager.h @@ -12,15 +12,15 @@ #include "include/core/SkSurface.h" #include "include/private/SkTArray.h" #include "include/private/SkTHash.h" -#include "src/gpu/GrBufferAllocPool.h" -#include "src/gpu/GrDeferredUpload.h" -#include "src/gpu/GrHashMapWithCache.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrBufferAllocPool.h" +#include "src/gpu/ganesh/GrDeferredUpload.h" +#include "src/gpu/ganesh/GrHashMapWithCache.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" #if SK_GPU_V1 -#include "src/gpu/v1/PathRenderer.h" -#include "src/gpu/v1/PathRendererChain.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" +#include "src/gpu/ganesh/v1/PathRendererChain.h" #endif // Enabling this will print out which path renderers are being chosen diff --git a/third_party/skia/src/gpu/GrDriverBugWorkarounds.cpp b/third_party/skia/src/gpu/ganesh/GrDriverBugWorkarounds.cpp similarity index 100% rename from third_party/skia/src/gpu/GrDriverBugWorkarounds.cpp rename to third_party/skia/src/gpu/ganesh/GrDriverBugWorkarounds.cpp diff --git a/third_party/skia/src/gpu/GrDstProxyView.h b/third_party/skia/src/gpu/ganesh/GrDstProxyView.h similarity index 95% rename from third_party/skia/src/gpu/GrDstProxyView.h rename to third_party/skia/src/gpu/ganesh/GrDstProxyView.h index 93f9c4a336d2..e1dcb1647fbc 100644 --- a/third_party/skia/src/gpu/GrDstProxyView.h +++ b/third_party/skia/src/gpu/ganesh/GrDstProxyView.h @@ -9,8 +9,8 @@ #define GrDstProxyView_DEFINED #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" /** * GrDstProxyView holds a texture containing the destination pixel values, and an integer-coordinate diff --git a/third_party/skia/src/gpu/GrDynamicAtlas.cpp b/third_party/skia/src/gpu/ganesh/GrDynamicAtlas.cpp similarity index 94% rename from third_party/skia/src/gpu/GrDynamicAtlas.cpp rename to third_party/skia/src/gpu/ganesh/GrDynamicAtlas.cpp index 6422d581d2eb..fb712b600e82 100644 --- a/third_party/skia/src/gpu/GrDynamicAtlas.cpp +++ b/third_party/skia/src/gpu/ganesh/GrDynamicAtlas.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/GrDynamicAtlas.h" +#include "src/gpu/ganesh/GrDynamicAtlas.h" #include "src/core/SkIPoint16.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrOnFlushResourceProvider.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRectanizerPow2.h" -#include "src/gpu/GrRectanizerSkyline.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrOnFlushResourceProvider.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRectanizerPow2.h" +#include "src/gpu/ganesh/GrRectanizerSkyline.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" // Each Node covers a sub-rectangle of the final atlas. When a GrDynamicAtlas runs out of room, we // create a new Node the same size as all combined nodes in the atlas as-is, and then place the new diff --git a/third_party/skia/src/gpu/GrDynamicAtlas.h b/third_party/skia/src/gpu/ganesh/GrDynamicAtlas.h similarity index 98% rename from third_party/skia/src/gpu/GrDynamicAtlas.h rename to third_party/skia/src/gpu/ganesh/GrDynamicAtlas.h index 2b076a26ce18..c6523f604001 100644 --- a/third_party/skia/src/gpu/GrDynamicAtlas.h +++ b/third_party/skia/src/gpu/ganesh/GrDynamicAtlas.h @@ -9,7 +9,7 @@ #define GrDynamicAtlas_DEFINED #include "src/core/SkArenaAlloc.h" -#include "src/gpu/GrTextureProxy.h" +#include "src/gpu/ganesh/GrTextureProxy.h" class GrOnFlushResourceProvider; class GrResourceProvider; diff --git a/third_party/skia/src/gpu/GrEagerVertexAllocator.cpp b/third_party/skia/src/gpu/ganesh/GrEagerVertexAllocator.cpp similarity index 94% rename from third_party/skia/src/gpu/GrEagerVertexAllocator.cpp rename to third_party/skia/src/gpu/ganesh/GrEagerVertexAllocator.cpp index 86eaf90c7c4f..4195059ffde8 100644 --- a/third_party/skia/src/gpu/GrEagerVertexAllocator.cpp +++ b/third_party/skia/src/gpu/ganesh/GrEagerVertexAllocator.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/GrEagerVertexAllocator.h" +#include "src/gpu/ganesh/GrEagerVertexAllocator.h" -#include "src/gpu/GrMeshDrawTarget.h" +#include "src/gpu/ganesh/GrMeshDrawTarget.h" //------------------------------------------------------------------------------------------------- void* GrEagerDynamicVertexAllocator::lock(size_t stride, int eagerCount) { diff --git a/third_party/skia/src/gpu/GrEagerVertexAllocator.h b/third_party/skia/src/gpu/ganesh/GrEagerVertexAllocator.h similarity index 98% rename from third_party/skia/src/gpu/GrEagerVertexAllocator.h rename to third_party/skia/src/gpu/ganesh/GrEagerVertexAllocator.h index b6cba664a668..29be9cce22e2 100644 --- a/third_party/skia/src/gpu/GrEagerVertexAllocator.h +++ b/third_party/skia/src/gpu/ganesh/GrEagerVertexAllocator.h @@ -9,7 +9,7 @@ #define GrEagerVertexAllocator_DEFINED #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrThreadSafeCache.h" +#include "src/gpu/ganesh/GrThreadSafeCache.h" class GrMeshDrawTarget; diff --git a/third_party/skia/src/gpu/GrFPArgs.h b/third_party/skia/src/gpu/ganesh/GrFPArgs.h similarity index 100% rename from third_party/skia/src/gpu/GrFPArgs.h rename to third_party/skia/src/gpu/ganesh/GrFPArgs.h diff --git a/third_party/skia/src/gpu/GrFinishCallbacks.cpp b/third_party/skia/src/gpu/ganesh/GrFinishCallbacks.cpp similarity index 94% rename from third_party/skia/src/gpu/GrFinishCallbacks.cpp rename to third_party/skia/src/gpu/ganesh/GrFinishCallbacks.cpp index 4c0abf9d3bad..5519d2ca639d 100644 --- a/third_party/skia/src/gpu/GrFinishCallbacks.cpp +++ b/third_party/skia/src/gpu/ganesh/GrFinishCallbacks.cpp @@ -5,8 +5,8 @@ * found in the LICENSE file. */ -#include "src/gpu/GrFinishCallbacks.h" -#include "src/gpu/GrGpu.h" +#include "src/gpu/ganesh/GrFinishCallbacks.h" +#include "src/gpu/ganesh/GrGpu.h" GrFinishCallbacks::GrFinishCallbacks(GrGpu* gpu) : fGpu(gpu) {} diff --git a/third_party/skia/src/gpu/GrFinishCallbacks.h b/third_party/skia/src/gpu/ganesh/GrFinishCallbacks.h similarity index 96% rename from third_party/skia/src/gpu/GrFinishCallbacks.h rename to third_party/skia/src/gpu/ganesh/GrFinishCallbacks.h index a0708ed4216d..c0a4db94d3c4 100644 --- a/third_party/skia/src/gpu/GrFinishCallbacks.h +++ b/third_party/skia/src/gpu/ganesh/GrFinishCallbacks.h @@ -9,7 +9,7 @@ #define GrFinishCallbacks_DEFINED #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include diff --git a/third_party/skia/src/gpu/GrFixedClip.cpp b/third_party/skia/src/gpu/ganesh/GrFixedClip.cpp similarity index 95% rename from third_party/skia/src/gpu/GrFixedClip.cpp rename to third_party/skia/src/gpu/ganesh/GrFixedClip.cpp index d16f52a946f8..81ca241ad8c7 100644 --- a/third_party/skia/src/gpu/GrFixedClip.cpp +++ b/third_party/skia/src/gpu/ganesh/GrFixedClip.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/GrFixedClip.h" +#include "src/gpu/ganesh/GrFixedClip.h" -#include "src/gpu/GrAppliedClip.h" +#include "src/gpu/ganesh/GrAppliedClip.h" SkIRect GrFixedClip::getConservativeBounds() const { return fScissorState.rect(); diff --git a/third_party/skia/src/gpu/GrFixedClip.h b/third_party/skia/src/gpu/ganesh/GrFixedClip.h similarity index 93% rename from third_party/skia/src/gpu/GrFixedClip.h rename to third_party/skia/src/gpu/ganesh/GrFixedClip.h index d682bee8e507..68341b7fb71e 100644 --- a/third_party/skia/src/gpu/GrFixedClip.h +++ b/third_party/skia/src/gpu/ganesh/GrFixedClip.h @@ -8,9 +8,9 @@ #ifndef GrFixedClip_DEFINED #define GrFixedClip_DEFINED -#include "src/gpu/GrClip.h" -#include "src/gpu/GrScissorState.h" -#include "src/gpu/GrWindowRectsState.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrScissorState.h" +#include "src/gpu/ganesh/GrWindowRectsState.h" /** * Implements GrHardClip with scissor and window rectangles. diff --git a/third_party/skia/src/gpu/GrFragmentProcessor.cpp b/third_party/skia/src/gpu/ganesh/GrFragmentProcessor.cpp similarity index 97% rename from third_party/skia/src/gpu/GrFragmentProcessor.cpp rename to third_party/skia/src/gpu/ganesh/GrFragmentProcessor.cpp index f78339c4458a..e230ff143111 100644 --- a/third_party/skia/src/gpu/GrFragmentProcessor.cpp +++ b/third_party/skia/src/gpu/ganesh/GrFragmentProcessor.cpp @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" #include "src/core/SkRuntimeEffectPriv.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrProcessorAnalysis.h" -#include "src/gpu/GrShaderCaps.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" -#include "src/gpu/effects/GrSkSLFP.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrProcessorAnalysis.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" bool GrFragmentProcessor::isEqual(const GrFragmentProcessor& that) const { if (this->classID() != that.classID()) { @@ -206,7 +206,7 @@ std::unique_ptr GrFragmentProcessor::MulInputByChildAlpha( if (!fp) { return nullptr; } - return GrBlendFragmentProcessor::Make(/*src=*/nullptr, std::move(fp), SkBlendMode::kSrcIn); + return GrBlendFragmentProcessor::Make(/*src=*/nullptr, std::move(fp)); } std::unique_ptr GrFragmentProcessor::ApplyPaintAlpha( @@ -227,9 +227,8 @@ std::unique_ptr GrFragmentProcessor::ApplyPaintAlpha( std::unique_ptr GrFragmentProcessor::ModulateRGBA( std::unique_ptr inputFP, const SkPMColor4f& color) { auto colorFP = MakeColor(color); - return GrBlendFragmentProcessor::Make(std::move(colorFP), - std::move(inputFP), - SkBlendMode::kModulate); + return GrBlendFragmentProcessor::Make(std::move(colorFP), + std::move(inputFP)); } std::unique_ptr GrFragmentProcessor::ClampOutput( diff --git a/third_party/skia/src/gpu/GrFragmentProcessor.h b/third_party/skia/src/gpu/ganesh/GrFragmentProcessor.h similarity index 99% rename from third_party/skia/src/gpu/GrFragmentProcessor.h rename to third_party/skia/src/gpu/ganesh/GrFragmentProcessor.h index c191e2f5cc74..0f087f020fa4 100644 --- a/third_party/skia/src/gpu/GrFragmentProcessor.h +++ b/third_party/skia/src/gpu/ganesh/GrFragmentProcessor.h @@ -11,8 +11,8 @@ #include "include/private/SkMacros.h" #include "include/private/SkSLSampleUsage.h" #include "include/private/SkSLString.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" #include diff --git a/third_party/skia/src/gpu/GrGeometryProcessor.cpp b/third_party/skia/src/gpu/ganesh/GrGeometryProcessor.cpp similarity index 97% rename from third_party/skia/src/gpu/GrGeometryProcessor.cpp rename to third_party/skia/src/gpu/ganesh/GrGeometryProcessor.cpp index 63fcfdaeba5a..a5843c1f307b 100644 --- a/third_party/skia/src/gpu/GrGeometryProcessor.cpp +++ b/third_party/skia/src/gpu/ganesh/GrGeometryProcessor.cpp @@ -5,15 +5,15 @@ * found in the LICENSE file. */ -#include "src/gpu/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" #include "src/core/SkMatrixPriv.h" -#include "src/gpu/GrPipeline.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" #include @@ -61,7 +61,10 @@ void GrGeometryProcessor::TextureSampler::reset(GrSamplerState samplerState, const GrBackendFormat& backendFormat, const skgpu::Swizzle& swizzle) { fSamplerState = samplerState; - fSamplerState.setFilterMode(clamp_filter(backendFormat.textureType(), samplerState.filter())); + fSamplerState = GrSamplerState(samplerState.wrapModeX(), + samplerState.wrapModeY(), + clamp_filter(backendFormat.textureType(), samplerState.filter()), + samplerState.mipmapMode()); fBackendFormat = backendFormat; fSwizzle = swizzle; fIsInitialized = true; diff --git a/third_party/skia/src/gpu/GrGeometryProcessor.h b/third_party/skia/src/gpu/ganesh/GrGeometryProcessor.h similarity index 98% rename from third_party/skia/src/gpu/GrGeometryProcessor.h rename to third_party/skia/src/gpu/ganesh/GrGeometryProcessor.h index 9acca894b3ac..a284a8be6bd3 100644 --- a/third_party/skia/src/gpu/GrGeometryProcessor.h +++ b/third_party/skia/src/gpu/ganesh/GrGeometryProcessor.h @@ -8,15 +8,15 @@ #ifndef GrGeometryProcessor_DEFINED #define GrGeometryProcessor_DEFINED -#include "src/gpu/GrColor.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrShaderVar.h" #include "src/gpu/Swizzle.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" #include @@ -531,7 +531,7 @@ const GrGeometryProcessor::TextureSampler& GrGeometryProcessor::IthTextureSample /** * Returns the size of the attrib type in bytes. - * This was moved from include/private/GrTypesPriv.h in service of Skia dependents that build + * This was moved from include/private/gpu/ganesh/GrTypesPriv.h in service of Skia dependents that build * with C++11. */ static constexpr inline size_t GrVertexAttribTypeSize(GrVertexAttribType type) { diff --git a/third_party/skia/src/gpu/GrGlyph.h b/third_party/skia/src/gpu/ganesh/GrGlyph.h similarity index 92% rename from third_party/skia/src/gpu/GrGlyph.h rename to third_party/skia/src/gpu/ganesh/GrGlyph.h index b50b27daeece..f885571e9a22 100644 --- a/third_party/skia/src/gpu/GrGlyph.h +++ b/third_party/skia/src/gpu/ganesh/GrGlyph.h @@ -8,10 +8,10 @@ #ifndef GrGlyph_DEFINED #define GrGlyph_DEFINED -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkGlyph.h" #include "src/core/SkMask.h" -#include "src/gpu/GrDrawOpAtlas.h" +#include "src/gpu/ganesh/GrDrawOpAtlas.h" class GrGlyph { public: diff --git a/third_party/skia/src/gpu/GrGpu.cpp b/third_party/skia/src/gpu/ganesh/GrGpu.cpp similarity index 97% rename from third_party/skia/src/gpu/GrGpu.cpp rename to third_party/skia/src/gpu/ganesh/GrGpu.cpp index 7fa78099808e..aaf2f2c8c418 100644 --- a/third_party/skia/src/gpu/GrGpu.cpp +++ b/third_party/skia/src/gpu/ganesh/GrGpu.cpp @@ -6,7 +6,7 @@ */ -#include "src/gpu/GrGpu.h" +#include "src/gpu/ganesh/GrGpu.h" #include "include/gpu/GrBackendSemaphore.h" #include "include/gpu/GrBackendSurface.h" @@ -14,23 +14,23 @@ #include "src/core/SkCompressedDataUtils.h" #include "src/core/SkMathPriv.h" #include "src/core/SkMipmap.h" -#include "src/gpu/GrAttachment.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrNativeRect.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrRingBuffer.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrStagingBufferManager.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/GrTextureProxyPriv.h" -#include "src/gpu/GrTracing.h" +#include "src/gpu/ganesh/GrAttachment.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrNativeRect.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrRingBuffer.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrStagingBufferManager.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/GrTextureProxyPriv.h" +#include "src/gpu/ganesh/GrTracing.h" #include "src/sksl/SkSLCompiler.h" //////////////////////////////////////////////////////////////////////////////// @@ -843,7 +843,7 @@ GrBackendTexture GrGpu::createBackendTexture(SkISize dimensions, } bool GrGpu::clearBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) { if (!backendTexture.isValid()) { return false; @@ -886,7 +886,7 @@ GrBackendTexture GrGpu::createCompressedBackendTexture(SkISize dimensions, } bool GrGpu::updateCompressedBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t length) { SkASSERT(data); diff --git a/third_party/skia/src/gpu/GrGpu.h b/third_party/skia/src/gpu/ganesh/GrGpu.h similarity index 98% rename from third_party/skia/src/gpu/GrGpu.h rename to third_party/skia/src/gpu/ganesh/GrGpu.h index 0698a4df8c72..53147df974f7 100644 --- a/third_party/skia/src/gpu/GrGpu.h +++ b/third_party/skia/src/gpu/ganesh/GrGpu.h @@ -14,12 +14,13 @@ #include "include/gpu/GrTypes.h" #include "include/private/SkTArray.h" #include "src/core/SkTInternalLList.h" -#include "src/gpu/GrAttachment.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrPixmap.h" -#include "src/gpu/GrXferProcessor.h" +#include "src/gpu/RefCntedCallback.h" #include "src/gpu/Swizzle.h" +#include "src/gpu/ganesh/GrAttachment.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrPixmap.h" +#include "src/gpu/ganesh/GrXferProcessor.h" class GrAttachment; class GrBackendRenderTarget; @@ -534,7 +535,7 @@ class GrGpu : public SkRefCnt { GrProtected); bool clearBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color); /** @@ -547,21 +548,21 @@ class GrGpu : public SkRefCnt { GrProtected); bool updateCompressedBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t length); virtual bool setBackendTextureState(const GrBackendTexture&, const GrBackendSurfaceMutableState&, GrBackendSurfaceMutableState* previousState, - sk_sp finishedCallback) { + sk_sp finishedCallback) { return false; } virtual bool setBackendRenderTargetState(const GrBackendRenderTarget&, const GrBackendSurfaceMutableState&, GrBackendSurfaceMutableState* previousState, - sk_sp finishedCallback) { + sk_sp finishedCallback) { return false; } @@ -678,11 +679,11 @@ class GrGpu : public SkRefCnt { SkISize dimensions, const GrBackendFormat&, GrMipmapped, GrProtected) = 0; virtual bool onClearBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) = 0; virtual bool onUpdateCompressedBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t length) = 0; diff --git a/third_party/skia/src/gpu/GrGpuBuffer.cpp b/third_party/skia/src/gpu/ganesh/GrGpuBuffer.cpp similarity index 89% rename from third_party/skia/src/gpu/GrGpuBuffer.cpp rename to third_party/skia/src/gpu/ganesh/GrGpuBuffer.cpp index 285260b0f770..852d260c3fdf 100644 --- a/third_party/skia/src/gpu/GrGpuBuffer.cpp +++ b/third_party/skia/src/gpu/ganesh/GrGpuBuffer.cpp @@ -5,13 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" GrGpuBuffer::GrGpuBuffer(GrGpu* gpu, size_t sizeInBytes, GrGpuBufferType type, - GrAccessPattern pattern) - : GrGpuResource(gpu) + GrAccessPattern pattern, + std::string_view label) + : GrGpuResource(gpu, label) , fMapPtr(nullptr) , fSizeInBytes(sizeInBytes) , fAccessPattern(pattern) diff --git a/third_party/skia/src/gpu/GrGpuBuffer.h b/third_party/skia/src/gpu/ganesh/GrGpuBuffer.h similarity index 93% rename from third_party/skia/src/gpu/GrGpuBuffer.h rename to third_party/skia/src/gpu/ganesh/GrGpuBuffer.h index c69699a25b8b..c936bd57d24a 100644 --- a/third_party/skia/src/gpu/GrGpuBuffer.h +++ b/third_party/skia/src/gpu/ganesh/GrGpuBuffer.h @@ -8,8 +8,8 @@ #ifndef GrGpuBuffer_DEFINED #define GrGpuBuffer_DEFINED -#include "src/gpu/GrBuffer.h" -#include "src/gpu/GrGpuResource.h" +#include "src/gpu/ganesh/GrBuffer.h" +#include "src/gpu/ganesh/GrGpuResource.h" class GrGpu; @@ -81,7 +81,11 @@ class GrGpuBuffer : public GrGpuResource, public GrBuffer { bool updateData(const void* src, size_t srcSizeInBytes); protected: - GrGpuBuffer(GrGpu*, size_t sizeInBytes, GrGpuBufferType, GrAccessPattern); + GrGpuBuffer(GrGpu*, + size_t sizeInBytes, + GrGpuBufferType, + GrAccessPattern, + std::string_view label); GrGpuBufferType intendedType() const { return fIntendedType; } void* fMapPtr; diff --git a/third_party/skia/src/gpu/GrGpuResource.cpp b/third_party/skia/src/gpu/ganesh/GrGpuResource.cpp similarity index 95% rename from third_party/skia/src/gpu/GrGpuResource.cpp rename to third_party/skia/src/gpu/ganesh/GrGpuResource.cpp index cea182b7e8cc..9679921f91c2 100644 --- a/third_party/skia/src/gpu/GrGpuResource.cpp +++ b/third_party/skia/src/gpu/ganesh/GrGpuResource.cpp @@ -7,11 +7,11 @@ #include "include/core/SkTraceMemoryDump.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrGpuResource.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrResourceCache.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrGpuResource.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrResourceCache.h" #include static inline GrResourceCache* get_resource_cache(GrGpu* gpu) { @@ -21,7 +21,8 @@ static inline GrResourceCache* get_resource_cache(GrGpu* gpu) { return gpu->getContext()->priv().getResourceCache(); } -GrGpuResource::GrGpuResource(GrGpu* gpu) : fGpu(gpu), fUniqueID(CreateUniqueID()) { +GrGpuResource::GrGpuResource(GrGpu* gpu, std::string_view label) + : fGpu(gpu), fUniqueID(CreateUniqueID()), fLabel(label) { SkDEBUGCODE(fCacheArrayIndex = -1); } diff --git a/third_party/skia/src/gpu/GrGpuResource.h b/third_party/skia/src/gpu/ganesh/GrGpuResource.h similarity index 98% rename from third_party/skia/src/gpu/GrGpuResource.h rename to third_party/skia/src/gpu/ganesh/GrGpuResource.h index a152a38adf6a..38c69e4fdba4 100644 --- a/third_party/skia/src/gpu/GrGpuResource.h +++ b/third_party/skia/src/gpu/ganesh/GrGpuResource.h @@ -8,8 +8,8 @@ #ifndef GrGpuResource_DEFINED #define GrGpuResource_DEFINED -#include "include/private/GrTypesPriv.h" #include "include/private/SkNoncopyable.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/gpu/ResourceKey.h" class GrGpu; @@ -174,6 +174,8 @@ class GrGpuResource : public GrIORef { associated unique key. */ const skgpu::UniqueKey& getUniqueKey() const { return fUniqueKey; } + std::string_view getLabel() const { return fLabel; } + /** * Internal-only helper class used for manipulations of the resource by the cache. */ @@ -222,7 +224,7 @@ class GrGpuResource : public GrIORef { // final class). void registerWithCacheWrapped(GrWrapCacheable); - GrGpuResource(GrGpu*); + GrGpuResource(GrGpu*, std::string_view label); virtual ~GrGpuResource(); GrGpu* getGpu() const { return fGpu; } @@ -311,6 +313,7 @@ class GrGpuResource : public GrIORef { GrBudgetedType fBudgetedType = GrBudgetedType::kUnbudgetedUncacheable; bool fRefsWrappedObjects = false; const UniqueID fUniqueID; + const std::string fLabel; using INHERITED = GrIORef; friend class GrIORef; // to access notifyRefCntWillBeZero and diff --git a/third_party/skia/src/gpu/GrGpuResourceCacheAccess.h b/third_party/skia/src/gpu/ganesh/GrGpuResourceCacheAccess.h similarity index 97% rename from third_party/skia/src/gpu/GrGpuResourceCacheAccess.h rename to third_party/skia/src/gpu/ganesh/GrGpuResourceCacheAccess.h index dcb580ad0b94..4feffa836a29 100644 --- a/third_party/skia/src/gpu/GrGpuResourceCacheAccess.h +++ b/third_party/skia/src/gpu/ganesh/GrGpuResourceCacheAccess.h @@ -8,8 +8,8 @@ #ifndef GrGpuResourceCacheAccess_DEFINED #define GrGpuResourceCacheAccess_DEFINED -#include "src/gpu/GrGpuResource.h" -#include "src/gpu/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrGpuResource.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" namespace skiatest { class Reporter; diff --git a/third_party/skia/src/gpu/GrGpuResourcePriv.h b/third_party/skia/src/gpu/ganesh/GrGpuResourcePriv.h similarity index 98% rename from third_party/skia/src/gpu/GrGpuResourcePriv.h rename to third_party/skia/src/gpu/ganesh/GrGpuResourcePriv.h index 466e1da2e5fa..c3278f5b69f0 100644 --- a/third_party/skia/src/gpu/GrGpuResourcePriv.h +++ b/third_party/skia/src/gpu/ganesh/GrGpuResourcePriv.h @@ -8,7 +8,7 @@ #ifndef GrGpuResourcePriv_DEFINED #define GrGpuResourcePriv_DEFINED -#include "src/gpu/GrGpuResource.h" +#include "src/gpu/ganesh/GrGpuResource.h" /** * This class allows code internal to Skia privileged access to manage the cache keys and budget diff --git a/third_party/skia/src/gpu/GrHashMapWithCache.h b/third_party/skia/src/gpu/ganesh/GrHashMapWithCache.h similarity index 100% rename from third_party/skia/src/gpu/GrHashMapWithCache.h rename to third_party/skia/src/gpu/ganesh/GrHashMapWithCache.h diff --git a/third_party/skia/src/gpu/GrImageContext.cpp b/third_party/skia/src/gpu/ganesh/GrImageContext.cpp similarity index 70% rename from third_party/skia/src/gpu/GrImageContext.cpp rename to third_party/skia/src/gpu/ganesh/GrImageContext.cpp index dbbf1e66e8cf..7782be0616a7 100644 --- a/third_party/skia/src/gpu/GrImageContext.cpp +++ b/third_party/skia/src/gpu/ganesh/GrImageContext.cpp @@ -7,13 +7,13 @@ #include -#include "include/private/GrImageContext.h" +#include "include/private/gpu/ganesh/GrImageContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" GrImageContext::GrImageContext(sk_sp proxy) : INHERITED(std::move(proxy)) { diff --git a/third_party/skia/src/gpu/GrImageContextPriv.h b/third_party/skia/src/gpu/ganesh/GrImageContextPriv.h similarity index 94% rename from third_party/skia/src/gpu/GrImageContextPriv.h rename to third_party/skia/src/gpu/ganesh/GrImageContextPriv.h index 272a858908b9..050ee3e2935f 100644 --- a/third_party/skia/src/gpu/GrImageContextPriv.h +++ b/third_party/skia/src/gpu/ganesh/GrImageContextPriv.h @@ -8,10 +8,10 @@ #ifndef GrImageContextPriv_DEFINED #define GrImageContextPriv_DEFINED -#include "include/private/GrImageContext.h" +#include "include/private/gpu/ganesh/GrImageContext.h" #include "include/gpu/GrContextThreadSafeProxy.h" -#include "src/gpu/GrBaseContextPriv.h" +#include "src/gpu/ganesh/GrBaseContextPriv.h" /** Class that exposes methods on GrImageContext that are only intended for use internal to Skia. This class is purely a privileged window into GrImageContext. It should never have diff --git a/third_party/skia/src/gpu/ganesh/GrImageInfo.cpp b/third_party/skia/src/gpu/ganesh/GrImageInfo.cpp new file mode 100644 index 000000000000..768b024b302c --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/GrImageInfo.cpp @@ -0,0 +1,58 @@ +/* + * 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/GrImageInfo.h" + +#include "include/core/SkColorSpace.h" +#include "include/core/SkImageInfo.h" + +#include + +GrImageInfo::GrImageInfo() = default; + +GrImageInfo::GrImageInfo(const SkImageInfo& info) + : fColorInfo(info.colorInfo()), fDimensions(info.dimensions()) {} + +GrImageInfo::GrImageInfo(GrColorType ct, SkAlphaType at, sk_sp cs, int w, int h) + : fColorInfo(ct, at, std::move(cs)), fDimensions{w,h} {} + +GrImageInfo::GrImageInfo(GrColorType ct, SkAlphaType at, sk_sp cs, + const SkISize& dimensions) + : fColorInfo(ct, at, std::move(cs)), fDimensions(dimensions) {} + +GrImageInfo::GrImageInfo(const GrColorInfo& info, const SkISize& dimensions) + : fColorInfo(info), fDimensions(dimensions) {} + +GrImageInfo::GrImageInfo(GrColorInfo&& info, const SkISize& dimensions) + : fColorInfo(std::move(info)), fDimensions(dimensions) {} + +GrImageInfo::GrImageInfo(const GrImageInfo&) = default; +GrImageInfo::GrImageInfo(GrImageInfo&&) = default; +GrImageInfo& GrImageInfo::operator=(const GrImageInfo&) = default; +GrImageInfo& GrImageInfo::operator=(GrImageInfo&&) = default; + +GrImageInfo GrImageInfo::makeColorType(GrColorType ct) const { + return {this->colorInfo().makeColorType(ct), this->dimensions()}; +} + +GrImageInfo GrImageInfo::makeAlphaType(SkAlphaType at) const { + return {this->colorType(), at, this->refColorSpace(), this->width(), this->height()}; +} + +GrImageInfo GrImageInfo::makeColorSpace(sk_sp cs) const { + return {this->colorType(), this->alphaType(), std::move(cs), this->width(), this->height()}; +} + +GrImageInfo GrImageInfo::makeDimensions(SkISize dimensions) const { + return {this->colorType(), this->alphaType(), this->refColorSpace(), dimensions}; +} + +GrImageInfo GrImageInfo::makeWH(int width, int height) const { + return {this->colorType(), this->alphaType(), this->refColorSpace(), width, height}; +} + +sk_sp GrImageInfo::refColorSpace() const { return fColorInfo.refColorSpace(); } diff --git a/third_party/skia/src/gpu/ganesh/GrImageInfo.h b/third_party/skia/src/gpu/ganesh/GrImageInfo.h new file mode 100644 index 000000000000..17b8f7f97da2 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/GrImageInfo.h @@ -0,0 +1,69 @@ +/* + * Copyright 2019 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrImageInfo_DEFINED +#define GrImageInfo_DEFINED + +#include "include/core/SkAlphaType.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkSize.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrColorInfo.h" + +#include + +class SkColorSpace; +struct SkImageInfo; + +class GrImageInfo { +public: + GrImageInfo(); + GrImageInfo(const SkImageInfo& info); + GrImageInfo(GrColorType ct, SkAlphaType at, sk_sp cs, int w, int h); + GrImageInfo(GrColorType ct, SkAlphaType at, sk_sp cs, const SkISize& dimensions); + GrImageInfo(const GrColorInfo& info, const SkISize& dimensions); + GrImageInfo(GrColorInfo&& info, const SkISize& dimensions); + + GrImageInfo(const GrImageInfo&); + GrImageInfo(GrImageInfo&&); + GrImageInfo& operator=(const GrImageInfo&); + GrImageInfo& operator=(GrImageInfo&&); + + GrImageInfo makeColorType(GrColorType ct) const; + GrImageInfo makeAlphaType(SkAlphaType at) const; + GrImageInfo makeColorSpace(sk_sp cs) const; + GrImageInfo makeDimensions(SkISize dimensions) const ; + GrImageInfo makeWH(int width, int height) const; + + const GrColorInfo& colorInfo() const { return fColorInfo; } + + GrColorType colorType() const { return fColorInfo.colorType(); } + + SkAlphaType alphaType() const { return fColorInfo.alphaType(); } + + SkColorSpace* colorSpace() const { return fColorInfo.colorSpace(); } + + sk_sp refColorSpace() const; + + SkISize dimensions() const { return fDimensions; } + + int width() const { return fDimensions.width(); } + + int height() const { return fDimensions.height(); } + + size_t bpp() const { return GrColorTypeBytesPerPixel(this->colorType()); } + + size_t minRowBytes() const { return this->bpp() * this->width(); } + + bool isValid() const { return fColorInfo.isValid() && this->width() > 0 && this->height() > 0; } + +private: + GrColorInfo fColorInfo = {}; + SkISize fDimensions; +}; + +#endif diff --git a/third_party/skia/src/gpu/GrManagedResource.cpp b/third_party/skia/src/gpu/ganesh/GrManagedResource.cpp similarity index 65% rename from third_party/skia/src/gpu/GrManagedResource.cpp rename to third_party/skia/src/gpu/ganesh/GrManagedResource.cpp index c88728bff4ef..d6e656f5b2d3 100644 --- a/third_party/skia/src/gpu/GrManagedResource.cpp +++ b/third_party/skia/src/gpu/ganesh/GrManagedResource.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/GrManagedResource.h" +#include "src/gpu/ganesh/GrManagedResource.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrTexture.h" #ifdef SK_TRACE_MANAGED_RESOURCES diff --git a/third_party/skia/src/gpu/GrManagedResource.h b/third_party/skia/src/gpu/ganesh/GrManagedResource.h similarity index 97% rename from third_party/skia/src/gpu/GrManagedResource.h rename to third_party/skia/src/gpu/ganesh/GrManagedResource.h index 897f2c90613f..7d511e92e457 100644 --- a/third_party/skia/src/gpu/GrManagedResource.h +++ b/third_party/skia/src/gpu/ganesh/GrManagedResource.h @@ -8,10 +8,10 @@ #ifndef GrManagedResource_DEFINED #define GrManagedResource_DEFINED -#include "include/private/GrTypesPriv.h" #include "include/private/SkMutex.h" #include "include/private/SkTHash.h" #include "include/utils/SkRandom.h" +#include "src/gpu/RefCntedCallback.h" #include class GrTexture; @@ -221,12 +221,12 @@ class GrTextureResource : public GrManagedResource { SkASSERT(!fReleaseHelper); } - void setRelease(sk_sp releaseHelper) { + void setRelease(sk_sp releaseHelper) { fReleaseHelper = std::move(releaseHelper); } protected: - mutable sk_sp fReleaseHelper; + mutable sk_sp fReleaseHelper; void invokeReleaseProc() const { if (fReleaseHelper) { diff --git a/third_party/skia/src/gpu/GrMemoryPool.cpp b/third_party/skia/src/gpu/ganesh/GrMemoryPool.cpp similarity index 99% rename from third_party/skia/src/gpu/GrMemoryPool.cpp rename to third_party/skia/src/gpu/ganesh/GrMemoryPool.cpp index 60b531673874..f96af5f46056 100644 --- a/third_party/skia/src/gpu/GrMemoryPool.cpp +++ b/third_party/skia/src/gpu/ganesh/GrMemoryPool.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrMemoryPool.h" +#include "src/gpu/ganesh/GrMemoryPool.h" #include "include/private/SkTPin.h" #include "src/core/SkASAN.h" diff --git a/third_party/skia/src/gpu/GrMemoryPool.h b/third_party/skia/src/gpu/ganesh/GrMemoryPool.h similarity index 100% rename from third_party/skia/src/gpu/GrMemoryPool.h rename to third_party/skia/src/gpu/ganesh/GrMemoryPool.h diff --git a/third_party/skia/src/gpu/GrMeshDrawTarget.cpp b/third_party/skia/src/gpu/ganesh/GrMeshDrawTarget.cpp similarity index 95% rename from third_party/skia/src/gpu/GrMeshDrawTarget.cpp rename to third_party/skia/src/gpu/ganesh/GrMeshDrawTarget.cpp index 3a2491b29676..5ede60485901 100644 --- a/third_party/skia/src/gpu/GrMeshDrawTarget.cpp +++ b/third_party/skia/src/gpu/ganesh/GrMeshDrawTarget.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/GrMeshDrawTarget.h" +#include "src/gpu/ganesh/GrMeshDrawTarget.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrResourceProvider.h" +#include "src/gpu/ganesh/GrResourceProvider.h" uint32_t GrMeshDrawTarget::contextUniqueID() const { return this->resourceProvider()->contextUniqueID(); diff --git a/third_party/skia/src/gpu/GrMeshDrawTarget.h b/third_party/skia/src/gpu/ganesh/GrMeshDrawTarget.h similarity index 98% rename from third_party/skia/src/gpu/GrMeshDrawTarget.h rename to third_party/skia/src/gpu/ganesh/GrMeshDrawTarget.h index 9ba4389b0dc5..a5da44bd42c5 100644 --- a/third_party/skia/src/gpu/GrMeshDrawTarget.h +++ b/third_party/skia/src/gpu/ganesh/GrMeshDrawTarget.h @@ -8,8 +8,8 @@ #ifndef GrMeshDrawTarget_DEFINED #define GrMeshDrawTarget_DEFINED -#include "src/gpu/GrDrawIndirectCommand.h" -#include "src/gpu/GrSimpleMesh.h" +#include "src/gpu/ganesh/GrDrawIndirectCommand.h" +#include "src/gpu/ganesh/GrSimpleMesh.h" class GrAtlasManager; class GrStrikeCache; diff --git a/third_party/skia/src/gpu/GrNativeRect.h b/third_party/skia/src/gpu/ganesh/GrNativeRect.h similarity index 100% rename from third_party/skia/src/gpu/GrNativeRect.h rename to third_party/skia/src/gpu/ganesh/GrNativeRect.h diff --git a/third_party/skia/src/gpu/GrNonAtomicRef.h b/third_party/skia/src/gpu/ganesh/GrNonAtomicRef.h similarity index 100% rename from third_party/skia/src/gpu/GrNonAtomicRef.h rename to third_party/skia/src/gpu/ganesh/GrNonAtomicRef.h diff --git a/third_party/skia/src/gpu/GrOnFlushResourceProvider.cpp b/third_party/skia/src/gpu/ganesh/GrOnFlushResourceProvider.cpp similarity index 66% rename from third_party/skia/src/gpu/GrOnFlushResourceProvider.cpp rename to third_party/skia/src/gpu/ganesh/GrOnFlushResourceProvider.cpp index b5ff040db0d5..d4317475ecb5 100644 --- a/third_party/skia/src/gpu/GrOnFlushResourceProvider.cpp +++ b/third_party/skia/src/gpu/ganesh/GrOnFlushResourceProvider.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/GrOnFlushResourceProvider.h" +#include "src/gpu/ganesh/GrOnFlushResourceProvider.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTextureResolveRenderTask.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTextureResolveRenderTask.h" bool GrOnFlushResourceProvider::instatiateProxy(GrSurfaceProxy* proxy) { SkASSERT(proxy->canSkipResourceAllocator()); diff --git a/third_party/skia/src/gpu/GrOnFlushResourceProvider.h b/third_party/skia/src/gpu/ganesh/GrOnFlushResourceProvider.h similarity index 97% rename from third_party/skia/src/gpu/GrOnFlushResourceProvider.h rename to third_party/skia/src/gpu/ganesh/GrOnFlushResourceProvider.h index 0a5ab31474db..ce6f6cb2feba 100644 --- a/third_party/skia/src/gpu/GrOnFlushResourceProvider.h +++ b/third_party/skia/src/gpu/ganesh/GrOnFlushResourceProvider.h @@ -9,7 +9,7 @@ #define GrOnFlushResourceProvider_DEFINED #include "include/core/SkSpan.h" -#include "src/gpu/GrDeferredUpload.h" +#include "src/gpu/ganesh/GrDeferredUpload.h" class GrCaps; class GrDrawingManager; diff --git a/third_party/skia/src/gpu/GrOpFlushState.cpp b/third_party/skia/src/gpu/ganesh/GrOpFlushState.cpp similarity index 96% rename from third_party/skia/src/gpu/GrOpFlushState.cpp rename to third_party/skia/src/gpu/ganesh/GrOpFlushState.cpp index ee1a7eb43f1b..1e825e417f1a 100644 --- a/third_party/skia/src/gpu/GrOpFlushState.cpp +++ b/third_party/skia/src/gpu/ganesh/GrOpFlushState.cpp @@ -5,18 +5,19 @@ * found in the LICENSE file. */ -#include "src/gpu/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkConvertPixels.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawOpAtlas.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawOpAtlas.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrTexture.h" ////////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/gpu/GrOpFlushState.h b/third_party/skia/src/gpu/ganesh/GrOpFlushState.h similarity index 97% rename from third_party/skia/src/gpu/GrOpFlushState.h rename to third_party/skia/src/gpu/ganesh/GrOpFlushState.h index 5a0dc2993040..1914aaacb2b4 100644 --- a/third_party/skia/src/gpu/GrOpFlushState.h +++ b/third_party/skia/src/gpu/ganesh/GrOpFlushState.h @@ -11,13 +11,13 @@ #include #include "src/core/SkArenaAlloc.h" #include "src/core/SkArenaAllocList.h" -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrBufferAllocPool.h" -#include "src/gpu/GrDeferredUpload.h" -#include "src/gpu/GrMeshDrawTarget.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrBufferAllocPool.h" +#include "src/gpu/ganesh/GrDeferredUpload.h" +#include "src/gpu/ganesh/GrMeshDrawTarget.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" class GrGpu; class GrOpsRenderPass; diff --git a/third_party/skia/src/gpu/GrOpsRenderPass.cpp b/third_party/skia/src/gpu/ganesh/GrOpsRenderPass.cpp similarity index 96% rename from third_party/skia/src/gpu/GrOpsRenderPass.cpp rename to third_party/skia/src/gpu/ganesh/GrOpsRenderPass.cpp index f408b3fff056..7b757de1e0f0 100644 --- a/third_party/skia/src/gpu/GrOpsRenderPass.cpp +++ b/third_party/skia/src/gpu/ganesh/GrOpsRenderPass.cpp @@ -5,19 +5,19 @@ * found in the LICENSE file. */ -#include "src/gpu/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" #include "include/core/SkRect.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrCpuBuffer.h" -#include "src/gpu/GrDrawIndirectCommand.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrScissorState.h" -#include "src/gpu/GrSimpleMesh.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrCpuBuffer.h" +#include "src/gpu/ganesh/GrDrawIndirectCommand.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrScissorState.h" +#include "src/gpu/ganesh/GrSimpleMesh.h" +#include "src/gpu/ganesh/GrTexture.h" void GrOpsRenderPass::begin() { fDrawPipelineStatus = DrawPipelineStatus::kNotConfigured; diff --git a/third_party/skia/src/gpu/GrOpsRenderPass.h b/third_party/skia/src/gpu/ganesh/GrOpsRenderPass.h similarity index 99% rename from third_party/skia/src/gpu/GrOpsRenderPass.h rename to third_party/skia/src/gpu/ganesh/GrOpsRenderPass.h index 523b76c9febf..924a0c5d979a 100644 --- a/third_party/skia/src/gpu/GrOpsRenderPass.h +++ b/third_party/skia/src/gpu/ganesh/GrOpsRenderPass.h @@ -9,8 +9,8 @@ #define GrOpsRenderPass_DEFINED #include "include/core/SkDrawable.h" -#include "src/gpu/GrDeferredUpload.h" -#include "src/gpu/GrPipeline.h" +#include "src/gpu/ganesh/GrDeferredUpload.h" +#include "src/gpu/ganesh/GrPipeline.h" class GrOpFlushState; class GrGpu; diff --git a/third_party/skia/src/gpu/GrOpsTypes.h b/third_party/skia/src/gpu/ganesh/GrOpsTypes.h similarity index 91% rename from third_party/skia/src/gpu/GrOpsTypes.h rename to third_party/skia/src/gpu/ganesh/GrOpsTypes.h index f692841f5177..d2dc86b1b208 100644 --- a/third_party/skia/src/gpu/GrOpsTypes.h +++ b/third_party/skia/src/gpu/ganesh/GrOpsTypes.h @@ -10,9 +10,9 @@ #include "include/core/SkMatrix.h" #include "include/core/SkRect.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkColorData.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" /** Used by SDC::drawQuadSet and FillRectOp */ struct GrQuadSetEntry { diff --git a/third_party/skia/src/gpu/GrPaint.cpp b/third_party/skia/src/gpu/ganesh/GrPaint.cpp similarity index 86% rename from third_party/skia/src/gpu/GrPaint.cpp rename to third_party/skia/src/gpu/ganesh/GrPaint.cpp index 424954349108..a1290d9965f7 100644 --- a/third_party/skia/src/gpu/GrPaint.cpp +++ b/third_party/skia/src/gpu/ganesh/GrPaint.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/GrPaint.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/effects/GrCoverageSetOpXP.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/effects/GrCoverageSetOpXP.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" GrPaint::GrPaint(const GrPaint& that) : fXPFactory(that.fXPFactory) diff --git a/third_party/skia/src/gpu/GrPaint.h b/third_party/skia/src/gpu/ganesh/GrPaint.h similarity index 98% rename from third_party/skia/src/gpu/GrPaint.h rename to third_party/skia/src/gpu/ganesh/GrPaint.h index 9c247c901c9e..070f7af69854 100644 --- a/third_party/skia/src/gpu/GrPaint.h +++ b/third_party/skia/src/gpu/ganesh/GrPaint.h @@ -14,8 +14,8 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkRegion.h" #include "src/core/SkTLazy.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" class GrTextureProxy; class GrXPFactory; diff --git a/third_party/skia/src/gpu/GrPersistentCacheUtils.cpp b/third_party/skia/src/gpu/ganesh/GrPersistentCacheUtils.cpp similarity index 95% rename from third_party/skia/src/gpu/GrPersistentCacheUtils.cpp rename to third_party/skia/src/gpu/ganesh/GrPersistentCacheUtils.cpp index 5750226f7c88..cf7dc9531fac 100644 --- a/third_party/skia/src/gpu/GrPersistentCacheUtils.cpp +++ b/third_party/skia/src/gpu/ganesh/GrPersistentCacheUtils.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrPersistentCacheUtils.h" +#include "src/gpu/ganesh/GrPersistentCacheUtils.h" #include "include/private/SkSLString.h" #include "src/core/SkReadBuffer.h" @@ -13,7 +13,7 @@ namespace GrPersistentCacheUtils { -static constexpr int kCurrentVersion = 8; +static constexpr int kCurrentVersion = 9; int GetCurrentVersion() { // The persistent cache stores a copy of the SkSL::Program::Inputs struct. If you alter the @@ -46,6 +46,7 @@ sk_sp PackCachedShaders(SkFourByteTag shaderType, if (meta) { writer.writeBool(SkToBool(meta->fSettings)); if (meta->fSettings) { + writer.writeBool(meta->fSettings->fForceNoRTFlip); writer.writeBool(meta->fSettings->fFragColorIsInOut); writer.writeBool(meta->fSettings->fForceHighPrecision); writer.writeBool(meta->fSettings->fUsePushConstants); @@ -96,6 +97,7 @@ bool UnpackCachedShaders(SkReadBuffer* reader, SkASSERT(meta->fSettings != nullptr); if (reader->readBool()) { + meta->fSettings->fForceNoRTFlip = reader->readBool(); meta->fSettings->fFragColorIsInOut = reader->readBool(); meta->fSettings->fForceHighPrecision = reader->readBool(); meta->fSettings->fUsePushConstants = reader->readBool(); diff --git a/third_party/skia/src/gpu/GrPersistentCacheUtils.h b/third_party/skia/src/gpu/ganesh/GrPersistentCacheUtils.h similarity index 96% rename from third_party/skia/src/gpu/GrPersistentCacheUtils.h rename to third_party/skia/src/gpu/ganesh/GrPersistentCacheUtils.h index 5fdb20090931..49eb9b1177f6 100644 --- a/third_party/skia/src/gpu/GrPersistentCacheUtils.h +++ b/third_party/skia/src/gpu/ganesh/GrPersistentCacheUtils.h @@ -9,7 +9,7 @@ #define GrPersistentCacheEntry_DEFINED #include "include/core/SkData.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/sksl/ir/SkSLProgram.h" class SkReadBuffer; diff --git a/third_party/skia/src/gpu/GrPipeline.cpp b/third_party/skia/src/gpu/ganesh/GrPipeline.cpp similarity index 86% rename from third_party/skia/src/gpu/GrPipeline.cpp rename to third_party/skia/src/gpu/ganesh/GrPipeline.cpp index f850312b7b62..23f741a253ac 100644 --- a/third_party/skia/src/gpu/GrPipeline.cpp +++ b/third_party/skia/src/gpu/ganesh/GrPipeline.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/GrPipeline.h" +#include "src/gpu/ganesh/GrPipeline.h" -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrXferProcessor.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" GrPipeline::GrPipeline(const InitArgs& args, sk_sp xferProcessor, @@ -84,13 +84,13 @@ void GrPipeline::genKey(skgpu::KeyBuilder* b, const GrCaps& caps) const { static constexpr uint32_t kBlendCoeffSize = 5; static constexpr uint32_t kBlendEquationSize = 5; - static_assert(kLast_GrBlendCoeff < (1 << kBlendCoeffSize)); - static_assert(kLast_GrBlendEquation < (1 << kBlendEquationSize)); + static_assert(static_cast(skgpu::BlendCoeff::kLast) < (1 << kBlendCoeffSize)); + static_assert(static_cast(skgpu::BlendEquation::kLast) < (1 << kBlendEquationSize)); b->addBool(blendInfo.fWriteColor, "writeColor"); - b->addBits(kBlendCoeffSize, blendInfo.fSrcBlend, "srcBlend"); - b->addBits(kBlendCoeffSize, blendInfo.fDstBlend, "dstBlend"); - b->addBits(kBlendEquationSize, blendInfo.fEquation, "equation"); + b->addBits(kBlendCoeffSize, static_cast(blendInfo.fSrcBlend), "srcBlend"); + b->addBits(kBlendCoeffSize, static_cast(blendInfo.fDstBlend), "dstBlend"); + b->addBits(kBlendEquationSize, static_cast(blendInfo.fEquation), "equation"); b->addBool(this->usesDstInputAttachment(), "inputAttach"); } diff --git a/third_party/skia/src/gpu/GrPipeline.h b/third_party/skia/src/gpu/ganesh/GrPipeline.h similarity index 95% rename from third_party/skia/src/gpu/GrPipeline.h rename to third_party/skia/src/gpu/ganesh/GrPipeline.h index 085b90260fa1..7957d6852f38 100644 --- a/third_party/skia/src/gpu/GrPipeline.h +++ b/third_party/skia/src/gpu/ganesh/GrPipeline.h @@ -9,15 +9,15 @@ #define GrPipeline_DEFINED #include "include/core/SkRefCnt.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrDstProxyView.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrProcessorSet.h" -#include "src/gpu/GrScissorState.h" -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/GrUserStencilSettings.h" -#include "src/gpu/GrWindowRectsState.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrDstProxyView.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrProcessorSet.h" +#include "src/gpu/ganesh/GrScissorState.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrUserStencilSettings.h" +#include "src/gpu/ganesh/GrWindowRectsState.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" class GrAppliedClip; class GrAppliedHardClip; diff --git a/third_party/skia/src/gpu/GrPixmap.h b/third_party/skia/src/gpu/ganesh/GrPixmap.h similarity index 99% rename from third_party/skia/src/gpu/GrPixmap.h rename to third_party/skia/src/gpu/ganesh/GrPixmap.h index ff49b06d5282..87d0d07867aa 100644 --- a/third_party/skia/src/gpu/GrPixmap.h +++ b/third_party/skia/src/gpu/ganesh/GrPixmap.h @@ -10,7 +10,7 @@ #include "include/core/SkData.h" #include "include/core/SkPixmap.h" -#include "src/gpu/GrImageInfo.h" +#include "src/gpu/ganesh/GrImageInfo.h" template class GrPixmapBase { public: diff --git a/third_party/skia/src/gpu/GrProcessor.cpp b/third_party/skia/src/gpu/ganesh/GrProcessor.cpp similarity index 86% rename from third_party/skia/src/gpu/GrProcessor.cpp rename to third_party/skia/src/gpu/ganesh/GrProcessor.cpp index 2dd6a500c61f..64409b0bc373 100644 --- a/third_party/skia/src/gpu/GrProcessor.cpp +++ b/third_party/skia/src/gpu/ganesh/GrProcessor.cpp @@ -6,12 +6,12 @@ */ #include "include/private/SkSpinlock.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/GrXferProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/GrXferProcessor.h" // We use a global pool protected by a mutex(spinlock). Chrome may use the same GrContext on // different threads. The GrContext is not used concurrently on different threads and there is a diff --git a/third_party/skia/src/gpu/GrProcessor.h b/third_party/skia/src/gpu/ganesh/GrProcessor.h similarity index 93% rename from third_party/skia/src/gpu/GrProcessor.h rename to third_party/skia/src/gpu/ganesh/GrProcessor.h index 861764433778..f00a7fe513df 100644 --- a/third_party/skia/src/gpu/GrProcessor.h +++ b/third_party/skia/src/gpu/ganesh/GrProcessor.h @@ -10,14 +10,14 @@ #include "include/core/SkMath.h" #include "include/core/SkString.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrProcessorUnitTest.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrShaderVar.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTextureProxy.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrProcessorUnitTest.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTextureProxy.h" class GrResourceProvider; diff --git a/third_party/skia/src/gpu/GrProcessorAnalysis.cpp b/third_party/skia/src/gpu/ganesh/GrProcessorAnalysis.cpp similarity index 91% rename from third_party/skia/src/gpu/GrProcessorAnalysis.cpp rename to third_party/skia/src/gpu/ganesh/GrProcessorAnalysis.cpp index a1624bd44908..7e1c84560a8a 100644 --- a/third_party/skia/src/gpu/GrProcessorAnalysis.cpp +++ b/third_party/skia/src/gpu/ganesh/GrProcessorAnalysis.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrProcessorAnalysis.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrProcessorAnalysis.h" GrColorFragmentProcessorAnalysis::GrColorFragmentProcessorAnalysis( const GrProcessorAnalysisColor& input, diff --git a/third_party/skia/src/gpu/GrProcessorAnalysis.h b/third_party/skia/src/gpu/ganesh/GrProcessorAnalysis.h similarity index 100% rename from third_party/skia/src/gpu/GrProcessorAnalysis.h rename to third_party/skia/src/gpu/ganesh/GrProcessorAnalysis.h diff --git a/third_party/skia/src/gpu/GrProcessorSet.cpp b/third_party/skia/src/gpu/ganesh/GrProcessorSet.cpp similarity index 96% rename from third_party/skia/src/gpu/GrProcessorSet.cpp rename to third_party/skia/src/gpu/ganesh/GrProcessorSet.cpp index e2726b2870e9..9554a00604af 100644 --- a/third_party/skia/src/gpu/GrProcessorSet.cpp +++ b/third_party/skia/src/gpu/ganesh/GrProcessorSet.cpp @@ -6,12 +6,12 @@ */ #include "src/core/SkBlendModePriv.h" -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrProcessorSet.h" -#include "src/gpu/GrUserStencilSettings.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrProcessorSet.h" +#include "src/gpu/ganesh/GrUserStencilSettings.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" const GrProcessorSet& GrProcessorSet::EmptySet() { static GrProcessorSet gEmpty(GrProcessorSet::Empty::kEmpty); diff --git a/third_party/skia/src/gpu/GrProcessorSet.h b/third_party/skia/src/gpu/ganesh/GrProcessorSet.h similarity index 97% rename from third_party/skia/src/gpu/GrProcessorSet.h rename to third_party/skia/src/gpu/ganesh/GrProcessorSet.h index 7f29a588cfa3..5087d5189f27 100644 --- a/third_party/skia/src/gpu/GrProcessorSet.h +++ b/third_party/skia/src/gpu/ganesh/GrProcessorSet.h @@ -9,10 +9,10 @@ #define GrProcessorSet_DEFINED #include "include/private/SkTemplates.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/GrProcessorAnalysis.h" -#include "src/gpu/GrXferProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrProcessorAnalysis.h" +#include "src/gpu/ganesh/GrXferProcessor.h" struct GrUserStencilSettings; class GrAppliedClip; diff --git a/third_party/skia/src/gpu/GrProcessorUnitTest.cpp b/third_party/skia/src/gpu/ganesh/GrProcessorUnitTest.cpp similarity index 97% rename from third_party/skia/src/gpu/GrProcessorUnitTest.cpp rename to third_party/skia/src/gpu/ganesh/GrProcessorUnitTest.cpp index 5e1fe10d76d4..813918ae6b80 100644 --- a/third_party/skia/src/gpu/GrProcessorUnitTest.cpp +++ b/third_party/skia/src/gpu/ganesh/GrProcessorUnitTest.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/GrProcessorUnitTest.h" +#include "src/gpu/ganesh/GrProcessorUnitTest.h" #include #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" #if GR_TEST_UTILS diff --git a/third_party/skia/src/gpu/GrProcessorUnitTest.h b/third_party/skia/src/gpu/ganesh/GrProcessorUnitTest.h similarity index 98% rename from third_party/skia/src/gpu/GrProcessorUnitTest.h rename to third_party/skia/src/gpu/ganesh/GrProcessorUnitTest.h index 412fd9ed4580..d3c647220ac9 100644 --- a/third_party/skia/src/gpu/GrProcessorUnitTest.h +++ b/third_party/skia/src/gpu/ganesh/GrProcessorUnitTest.h @@ -14,8 +14,8 @@ #include "include/private/SkTArray.h" #include "src/core/SkArenaAlloc.h" -#include "src/gpu/GrTestUtils.h" -#include "src/gpu/GrTextureProxy.h" +#include "src/gpu/ganesh/GrTestUtils.h" +#include "src/gpu/ganesh/GrTextureProxy.h" #include diff --git a/third_party/skia/src/gpu/GrProgramDesc.cpp b/third_party/skia/src/gpu/ganesh/GrProgramDesc.cpp similarity index 92% rename from third_party/skia/src/gpu/GrProgramDesc.cpp rename to third_party/skia/src/gpu/ganesh/GrProgramDesc.cpp index a74c05c8c51e..992583be08e3 100644 --- a/third_party/skia/src/gpu/GrProgramDesc.cpp +++ b/third_party/skia/src/gpu/ganesh/GrProgramDesc.cpp @@ -5,21 +5,21 @@ * found in the LICENSE file. */ -#include "src/gpu/GrProgramDesc.h" +#include "src/gpu/ganesh/GrProgramDesc.h" #include "include/private/SkChecksum.h" #include "include/private/SkTo.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrTexture.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" enum { kSamplerOrImageTypeKeyBits = 4 diff --git a/third_party/skia/src/gpu/GrProgramDesc.h b/third_party/skia/src/gpu/ganesh/GrProgramDesc.h similarity index 98% rename from third_party/skia/src/gpu/GrProgramDesc.h rename to third_party/skia/src/gpu/ganesh/GrProgramDesc.h index 381fec3f4dc0..cfba3c2eba0b 100644 --- a/third_party/skia/src/gpu/GrProgramDesc.h +++ b/third_party/skia/src/gpu/ganesh/GrProgramDesc.h @@ -9,9 +9,9 @@ #define GrProgramDesc_DEFINED #include "include/core/SkString.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkTArray.h" #include "include/private/SkTo.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include diff --git a/third_party/skia/src/gpu/GrProgramInfo.cpp b/third_party/skia/src/gpu/ganesh/GrProgramInfo.cpp similarity index 88% rename from third_party/skia/src/gpu/GrProgramInfo.cpp rename to third_party/skia/src/gpu/ganesh/GrProgramInfo.cpp index 091d1133ee68..47c3b996185b 100644 --- a/third_party/skia/src/gpu/GrProgramInfo.cpp +++ b/third_party/skia/src/gpu/ganesh/GrProgramInfo.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/GrProgramInfo.h" +#include "src/gpu/ganesh/GrProgramInfo.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" GrStencilSettings GrProgramInfo::nonGLStencilSettings() const { GrStencilSettings stencil; @@ -21,7 +21,7 @@ GrStencilSettings GrProgramInfo::nonGLStencilSettings() const { } #ifdef SK_DEBUG -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrTexture.h" void GrProgramInfo::validate(bool flushTime) const { if (flushTime) { diff --git a/third_party/skia/src/gpu/GrProgramInfo.h b/third_party/skia/src/gpu/ganesh/GrProgramInfo.h similarity index 98% rename from third_party/skia/src/gpu/GrProgramInfo.h rename to third_party/skia/src/gpu/ganesh/GrProgramInfo.h index 9f1f602b5690..8ddc8d475998 100644 --- a/third_party/skia/src/gpu/GrProgramInfo.h +++ b/third_party/skia/src/gpu/ganesh/GrProgramInfo.h @@ -9,8 +9,8 @@ #define GrProgramInfo_DEFINED #include "include/gpu/GrTypes.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrPipeline.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrPipeline.h" class GrStencilSettings; diff --git a/third_party/skia/src/gpu/GrProxyProvider.cpp b/third_party/skia/src/gpu/ganesh/GrProxyProvider.cpp similarity index 82% rename from third_party/skia/src/gpu/GrProxyProvider.cpp rename to third_party/skia/src/gpu/ganesh/GrProxyProvider.cpp index 55efee9bbf3d..3dd5eb623d43 100644 --- a/third_party/skia/src/gpu/GrProxyProvider.cpp +++ b/third_party/skia/src/gpu/ganesh/GrProxyProvider.cpp @@ -5,31 +5,31 @@ * found in the LICENSE file. */ -#include "src/gpu/GrProxyProvider.h" +#include "src/gpu/ganesh/GrProxyProvider.h" #include "include/core/SkBitmap.h" #include "include/core/SkImage.h" #include "include/gpu/GrDirectContext.h" -#include "include/private/GrImageContext.h" #include "include/private/SingleOwner.h" #include "include/private/SkImageInfoPriv.h" +#include "include/private/gpu/ganesh/GrImageContext.h" #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkCompressedDataUtils.h" #include "src/core/SkImagePriv.h" #include "src/core/SkMipmap.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxyCacheAccess.h" -#include "src/gpu/GrTextureRenderTargetProxy.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxyCacheAccess.h" +#include "src/gpu/ganesh/GrTextureRenderTargetProxy.h" +#include "src/gpu/ganesh/SkGr.h" #include "src/image/SkImage_Base.h" #ifdef SK_VULKAN @@ -204,11 +204,11 @@ sk_sp GrProxyProvider::createWrapped(sk_sp tex, #endif if (tex->asRenderTarget()) { - return sk_sp(new GrTextureRenderTargetProxy(std::move(tex), useAllocator, - this->isDDLProvider())); + return sk_sp(new GrTextureRenderTargetProxy( + std::move(tex), useAllocator, this->isDDLProvider())); } else { - return sk_sp(new GrTextureProxy(std::move(tex), useAllocator, - this->isDDLProvider())); + return sk_sp( + new GrTextureProxy(std::move(tex), useAllocator, this->isDDLProvider())); } } @@ -467,15 +467,32 @@ sk_sp GrProxyProvider::createProxy(const GrBackendFormat& format GrInternalSurfaceFlags extraFlags = caps->getExtraSurfaceFlagsForDeferredRT(); // We know anything we instantiate later from this deferred path will be // both texturable and renderable - return sk_sp(new GrTextureRenderTargetProxy( - *caps, format, dimensions, renderTargetSampleCnt, mipMapped, mipmapStatus, fit, - budgeted, isProtected, surfaceFlags | extraFlags, useAllocator, - this->isDDLProvider())); - } - - return sk_sp(new GrTextureProxy(format, dimensions, mipMapped, mipmapStatus, - fit, budgeted, isProtected, surfaceFlags, - useAllocator, this->isDDLProvider())); + return sk_sp(new GrTextureRenderTargetProxy(*caps, + format, + dimensions, + renderTargetSampleCnt, + mipMapped, + mipmapStatus, + fit, + budgeted, + isProtected, + surfaceFlags | extraFlags, + useAllocator, + this->isDDLProvider(), + {})); + } + + return sk_sp(new GrTextureProxy(format, + dimensions, + mipMapped, + mipmapStatus, + fit, + budgeted, + isProtected, + surfaceFlags, + useAllocator, + this->isDDLProvider(), + {})); } sk_sp GrProxyProvider::createCompressedTextureProxy( @@ -520,11 +537,12 @@ sk_sp GrProxyProvider::createCompressedTextureProxy( return proxy; } -sk_sp GrProxyProvider::wrapBackendTexture(const GrBackendTexture& backendTex, - GrWrapOwnership ownership, - GrWrapCacheable cacheable, - GrIOType ioType, - sk_sp releaseHelper) { +sk_sp GrProxyProvider::wrapBackendTexture( + const GrBackendTexture& backendTex, + GrWrapOwnership ownership, + GrWrapCacheable cacheable, + GrIOType ioType, + sk_sp releaseHelper) { SkASSERT(ioType != kWrite_GrIOType); if (this->isAbandoned()) { @@ -553,15 +571,15 @@ sk_sp GrProxyProvider::wrapBackendTexture(const GrBackendTexture // Make sure we match how we created the proxy with SkBudgeted::kNo SkASSERT(GrBudgetedType::kBudgeted != tex->resourcePriv().budgetedType()); - return sk_sp(new GrTextureProxy(std::move(tex), UseAllocator::kNo, - this->isDDLProvider())); + return sk_sp( + new GrTextureProxy(std::move(tex), UseAllocator::kNo, this->isDDLProvider())); } sk_sp GrProxyProvider::wrapCompressedBackendTexture( const GrBackendTexture& beTex, GrWrapOwnership ownership, GrWrapCacheable cacheable, - sk_sp releaseHelper) { + sk_sp releaseHelper) { if (this->isAbandoned()) { return nullptr; } @@ -588,8 +606,8 @@ sk_sp GrProxyProvider::wrapCompressedBackendTexture( // Make sure we match how we created the proxy with SkBudgeted::kNo SkASSERT(GrBudgetedType::kBudgeted != tex->resourcePriv().budgetedType()); - return sk_sp(new GrTextureProxy(std::move(tex), UseAllocator::kNo, - this->isDDLProvider())); + return sk_sp( + new GrTextureProxy(std::move(tex), UseAllocator::kNo, this->isDDLProvider())); } sk_sp GrProxyProvider::wrapRenderableBackendTexture( @@ -597,7 +615,7 @@ sk_sp GrProxyProvider::wrapRenderableBackendTexture( int sampleCnt, GrWrapOwnership ownership, GrWrapCacheable cacheable, - sk_sp releaseHelper) { + sk_sp releaseHelper) { if (this->isAbandoned()) { return nullptr; } @@ -629,13 +647,13 @@ sk_sp GrProxyProvider::wrapRenderableBackendTexture( // Make sure we match how we created the proxy with SkBudgeted::kNo SkASSERT(GrBudgetedType::kBudgeted != tex->resourcePriv().budgetedType()); - return sk_sp(new GrTextureRenderTargetProxy(std::move(tex), UseAllocator::kNo, - this->isDDLProvider())); + return sk_sp(new GrTextureRenderTargetProxy( + std::move(tex), UseAllocator::kNo, this->isDDLProvider())); } sk_sp GrProxyProvider::wrapBackendRenderTarget( const GrBackendRenderTarget& backendRT, - sk_sp releaseHelper) { + sk_sp releaseHelper) { if (this->isAbandoned()) { return nullptr; } @@ -662,7 +680,8 @@ sk_sp GrProxyProvider::wrapBackendRenderTarget( // Make sure we match how we created the proxy with SkBudgeted::kNo SkASSERT(GrBudgetedType::kBudgeted != rt->resourcePriv().budgetedType()); - return sk_sp(new GrRenderTargetProxy(std::move(rt), UseAllocator::kNo)); + return sk_sp( + new GrRenderTargetProxy(std::move(rt), UseAllocator::kNo, {})); } #ifdef SK_VULKAN @@ -698,8 +717,10 @@ sk_sp GrProxyProvider::wrapVulkanSecondaryCBAsRenderTarget( return nullptr; } - return sk_sp(new GrRenderTargetProxy( - std::move(rt), UseAllocator::kNo, GrRenderTargetProxy::WrapsVkSecondaryCB::kYes)); + return sk_sp( + new GrRenderTargetProxy(std::move(rt), + UseAllocator::kNo, + GrRenderTargetProxy::WrapsVkSecondaryCB::kYes)); } #else sk_sp GrProxyProvider::wrapVulkanSecondaryCBAsRenderTarget( @@ -740,7 +761,8 @@ sk_sp GrProxyProvider::CreatePromiseProxy(GrContextThreadSafePro GrProtected::kNo, GrInternalSurfaceFlags::kReadOnly, GrSurfaceProxy::UseAllocator::kYes, - GrDDLProvider::kYes)); + GrDDLProvider::kYes, + /*label=*/{})); proxy->priv().setIsPromiseProxy(); return proxy; } @@ -781,7 +803,8 @@ sk_sp GrProxyProvider::createLazyProxy(LazyInstantiateCallback&& isProtected, surfaceFlags, useAllocator, - this->isDDLProvider())); + this->isDDLProvider(), + /*label=*/{})); } sk_sp GrProxyProvider::createLazyRenderTargetProxy( @@ -813,19 +836,37 @@ sk_sp GrProxyProvider::createLazyRenderTargetProxy( // Wrapped vulkan secondary command buffers don't support texturing since we won't have an // actual VkImage to texture from. SkASSERT(!wrapsVkSecondaryCB); - return sk_sp(new GrTextureRenderTargetProxy( - *this->caps(), std::move(callback), format, dimensions, sampleCnt, - textureInfo->fMipmapped, mipmapStatus, fit, budgeted, isProtected, surfaceFlags, - useAllocator, this->isDDLProvider())); + return sk_sp(new GrTextureRenderTargetProxy(*this->caps(), + std::move(callback), + format, + dimensions, + sampleCnt, + textureInfo->fMipmapped, + mipmapStatus, + fit, + budgeted, + isProtected, + surfaceFlags, + useAllocator, + this->isDDLProvider(), + /*label=*/{})); } GrRenderTargetProxy::WrapsVkSecondaryCB vkSCB = wrapsVkSecondaryCB ? GrRenderTargetProxy::WrapsVkSecondaryCB::kYes : GrRenderTargetProxy::WrapsVkSecondaryCB::kNo; - return sk_sp( - new GrRenderTargetProxy(std::move(callback), format, dimensions, sampleCnt, fit, - budgeted, isProtected, surfaceFlags, useAllocator, vkSCB)); + return sk_sp(new GrRenderTargetProxy(std::move(callback), + format, + dimensions, + sampleCnt, + fit, + budgeted, + isProtected, + surfaceFlags, + useAllocator, + vkSCB, + /*label=*/{})); } sk_sp GrProxyProvider::MakeFullyLazyProxy(LazyInstantiateCallback&& callback, @@ -849,16 +890,33 @@ sk_sp GrProxyProvider::MakeFullyLazyProxy(LazyInstantiateCallbac // not being created by a DDL provider. static constexpr SkISize kLazyDims = {-1, -1}; if (GrRenderable::kYes == renderable) { - return sk_sp(new GrTextureRenderTargetProxy( - caps, std::move(callback), format, kLazyDims, renderTargetSampleCnt, - GrMipmapped::kNo, GrMipmapStatus::kNotAllocated, SkBackingFit::kApprox, - SkBudgeted::kYes, isProtected, surfaceFlags, useAllocator, GrDDLProvider::kNo)); + return sk_sp(new GrTextureRenderTargetProxy(caps, + std::move(callback), + format, + kLazyDims, + renderTargetSampleCnt, + GrMipmapped::kNo, + GrMipmapStatus::kNotAllocated, + SkBackingFit::kApprox, + SkBudgeted::kYes, + isProtected, + surfaceFlags, + useAllocator, + GrDDLProvider::kNo, + /*label=*/{})); } else { - return sk_sp( - new GrTextureProxy(std::move(callback), format, kLazyDims, GrMipmapped::kNo, - GrMipmapStatus::kNotAllocated, SkBackingFit::kApprox, - SkBudgeted::kYes, isProtected, surfaceFlags, useAllocator, - GrDDLProvider::kNo)); + return sk_sp(new GrTextureProxy(std::move(callback), + format, + kLazyDims, + GrMipmapped::kNo, + GrMipmapStatus::kNotAllocated, + SkBackingFit::kApprox, + SkBudgeted::kYes, + isProtected, + surfaceFlags, + useAllocator, + GrDDLProvider::kNo, + /*label=*/{})); } } diff --git a/third_party/skia/src/gpu/GrProxyProvider.h b/third_party/skia/src/gpu/ganesh/GrProxyProvider.h similarity index 97% rename from third_party/skia/src/gpu/GrProxyProvider.h rename to third_party/skia/src/gpu/ganesh/GrProxyProvider.h index 83781e802a1e..ceab2bfd9410 100644 --- a/third_party/skia/src/gpu/GrProxyProvider.h +++ b/third_party/skia/src/gpu/ganesh/GrProxyProvider.h @@ -10,8 +10,8 @@ #include "include/gpu/GrTypes.h" #include "src/core/SkTDynamicHash.h" -#include "src/gpu/GrTextureProxy.h" #include "src/gpu/ResourceKey.h" +#include "src/gpu/ganesh/GrTextureProxy.h" class GrImageContext; class GrBackendRenderTarget; @@ -116,12 +116,12 @@ class GrProxyProvider { GrWrapOwnership, GrWrapCacheable, GrIOType, - sk_sp = nullptr); + sk_sp = nullptr); sk_sp wrapCompressedBackendTexture(const GrBackendTexture&, GrWrapOwnership, GrWrapCacheable, - sk_sp releaseHelper); + sk_sp); /* * Create a texture proxy that wraps a backend texture and is both texture-able and renderable @@ -130,13 +130,13 @@ class GrProxyProvider { int sampleCnt, GrWrapOwnership, GrWrapCacheable, - sk_sp releaseHelper); + sk_sp releaseHelper); /* * Create a render target proxy that wraps a backend render target */ sk_sp wrapBackendRenderTarget(const GrBackendRenderTarget&, - sk_sp releaseHelper); + sk_sp releaseHelper); sk_sp wrapVulkanSecondaryCBAsRenderTarget(const SkImageInfo&, const GrVkDrawableInfo&); diff --git a/third_party/skia/src/gpu/GrRecordingContext.cpp b/third_party/skia/src/gpu/ganesh/GrRecordingContext.cpp similarity index 90% rename from third_party/skia/src/gpu/GrRecordingContext.cpp rename to third_party/skia/src/gpu/ganesh/GrRecordingContext.cpp index b437eae1e5db..6a2ff648c0ba 100644 --- a/third_party/skia/src/gpu/GrRecordingContext.cpp +++ b/third_party/skia/src/gpu/ganesh/GrRecordingContext.cpp @@ -9,22 +9,22 @@ #include "include/gpu/GrContextThreadSafeProxy.h" #include "src/core/SkArenaAlloc.h" -#include "src/gpu/GrAuditTrail.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceContext.h" -#include "src/gpu/effects/GrSkSLFP.h" -#include "src/gpu/text/GrTextBlob.h" -#include "src/gpu/text/GrTextBlobRedrawCoordinator.h" +#include "src/gpu/ganesh/GrAuditTrail.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceContext.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/text/GrTextBlob.h" +#include "src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h" #if SK_GPU_V1 -#include "src/gpu/ops/AtlasTextOp.h" +#include "src/gpu/ganesh/ops/AtlasTextOp.h" #endif GrRecordingContext::ProgramData::ProgramData(std::unique_ptr desc, @@ -53,13 +53,6 @@ GrRecordingContext::~GrRecordingContext() { #endif } -int GrRecordingContext::maxSurfaceSampleCountForColorType(SkColorType colorType) const { - GrBackendFormat format = - this->caps()->getDefaultBackendFormat(SkColorTypeToGrColorType(colorType), - GrRenderable::kYes); - return this->caps()->maxRenderTargetSampleCount(format); -} - bool GrRecordingContext::init() { if (!INHERITED::init()) { return false; @@ -249,4 +242,3 @@ void GrRecordingContext::DMSAAStats::merge(const DMSAAStats& stats) { #endif // GR_GPU_STATS #endif // GR_TEST_UTILS - diff --git a/third_party/skia/src/gpu/GrRecordingContextPriv.cpp b/third_party/skia/src/gpu/ganesh/GrRecordingContextPriv.cpp similarity index 97% rename from third_party/skia/src/gpu/GrRecordingContextPriv.cpp rename to third_party/skia/src/gpu/ganesh/GrRecordingContextPriv.cpp index bc3dd725bb7d..5589aeece416 100644 --- a/third_party/skia/src/gpu/GrRecordingContextPriv.cpp +++ b/third_party/skia/src/gpu/ganesh/GrRecordingContextPriv.cpp @@ -5,18 +5,19 @@ * found in the LICENSE file. */ -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "include/core/SkColorSpace.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" #if SK_GPU_V1 -#include "src/gpu/v1/Device_v1.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" -#include "src/gpu/v1/SurfaceFillContext_v1.h" +#include "src/gpu/ganesh/v1/Device_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceFillContext_v1.h" #endif void GrRecordingContextPriv::addOnFlushCallbackObject(GrOnFlushCallbackObject* onFlushCBObject) { @@ -308,7 +309,7 @@ std::unique_ptr GrRecordingContextPriv::makeSFCFromBa const GrBackendTexture& tex, int sampleCount, GrSurfaceOrigin origin, - sk_sp releaseHelper) { + sk_sp releaseHelper) { #if SK_GPU_V1 SkASSERT(sampleCount > 0); diff --git a/third_party/skia/src/gpu/GrRecordingContextPriv.h b/third_party/skia/src/gpu/ganesh/GrRecordingContextPriv.h similarity index 97% rename from third_party/skia/src/gpu/GrRecordingContextPriv.h rename to third_party/skia/src/gpu/ganesh/GrRecordingContextPriv.h index 32384421347d..930f1053ce26 100644 --- a/third_party/skia/src/gpu/GrRecordingContextPriv.h +++ b/third_party/skia/src/gpu/ganesh/GrRecordingContextPriv.h @@ -10,9 +10,10 @@ #include "include/core/SkPaint.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/BaseDevice.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/text/GrSDFTControl.h" +#include "src/gpu/RefCntedCallback.h" +#include "src/gpu/ganesh/BaseDevice.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/text/GrSDFTControl.h" class GrImageInfo; class SkDeferredDisplayList; @@ -201,7 +202,7 @@ class GrRecordingContextPriv : public GrImageContextPriv { const GrBackendTexture&, int sampleCount, GrSurfaceOrigin, - sk_sp releaseHelper); + sk_sp releaseHelper); protected: explicit GrRecordingContextPriv(GrRecordingContext* rContext) : GrImageContextPriv(rContext) {} diff --git a/third_party/skia/src/gpu/GrRectanizerPow2.cpp b/third_party/skia/src/gpu/ganesh/GrRectanizerPow2.cpp similarity index 97% rename from third_party/skia/src/gpu/GrRectanizerPow2.cpp rename to third_party/skia/src/gpu/ganesh/GrRectanizerPow2.cpp index 9a35bf298d24..ced066c4b13e 100644 --- a/third_party/skia/src/gpu/GrRectanizerPow2.cpp +++ b/third_party/skia/src/gpu/ganesh/GrRectanizerPow2.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrRectanizerPow2.h" +#include "src/gpu/ganesh/GrRectanizerPow2.h" bool GrRectanizerPow2::addRect(int width, int height, SkIPoint16* loc) { if ((unsigned)width > (unsigned)this->width() || diff --git a/third_party/skia/src/gpu/GrRectanizerPow2.h b/third_party/skia/src/gpu/ganesh/GrRectanizerPow2.h similarity index 98% rename from third_party/skia/src/gpu/GrRectanizerPow2.h rename to third_party/skia/src/gpu/ganesh/GrRectanizerPow2.h index 76cf4c43f117..747ca75bec4c 100644 --- a/third_party/skia/src/gpu/GrRectanizerPow2.h +++ b/third_party/skia/src/gpu/ganesh/GrRectanizerPow2.h @@ -11,7 +11,7 @@ #include "include/private/SkMalloc.h" #include "src/core/SkIPoint16.h" #include "src/core/SkMathPriv.h" -#include "src/gpu/GrRectanizer.h" +#include "src/gpu/ganesh/GrRectanizer_impl.h" // This Rectanizer quantizes the incoming rects to powers of 2. Each power // of two can have, at most, one active row/shelf. Once a row/shelf for diff --git a/third_party/skia/src/gpu/GrRectanizerSkyline.cpp b/third_party/skia/src/gpu/ganesh/GrRectanizerSkyline.cpp similarity index 98% rename from third_party/skia/src/gpu/GrRectanizerSkyline.cpp rename to third_party/skia/src/gpu/ganesh/GrRectanizerSkyline.cpp index f36b733d1dcb..aa4828c64dd9 100644 --- a/third_party/skia/src/gpu/GrRectanizerSkyline.cpp +++ b/third_party/skia/src/gpu/ganesh/GrRectanizerSkyline.cpp @@ -6,7 +6,7 @@ */ #include "src/core/SkIPoint16.h" -#include "src/gpu/GrRectanizerSkyline.h" +#include "src/gpu/ganesh/GrRectanizerSkyline.h" #include diff --git a/third_party/skia/src/gpu/GrRectanizerSkyline.h b/third_party/skia/src/gpu/ganesh/GrRectanizerSkyline.h similarity index 97% rename from third_party/skia/src/gpu/GrRectanizerSkyline.h rename to third_party/skia/src/gpu/ganesh/GrRectanizerSkyline.h index fc629514b62d..c9d402015ad0 100644 --- a/third_party/skia/src/gpu/GrRectanizerSkyline.h +++ b/third_party/skia/src/gpu/ganesh/GrRectanizerSkyline.h @@ -9,7 +9,7 @@ #define GrRectanizerSkyline_DEFINED #include "include/private/SkTDArray.h" -#include "src/gpu/GrRectanizer.h" +#include "src/gpu/ganesh/GrRectanizer_impl.h" // Pack rectangles and track the current silhouette // Based, in part, on Jukka Jylanki's work at http://clb.demon.fi diff --git a/third_party/skia/src/gpu/ganesh/GrRectanizer_impl.h b/third_party/skia/src/gpu/ganesh/GrRectanizer_impl.h new file mode 100644 index 000000000000..0b1fff533489 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/GrRectanizer_impl.h @@ -0,0 +1,44 @@ +/* + * Copyright 2010 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrRectanizer_DEFINED +#define GrRectanizer_DEFINED + +#include "include/gpu/GrTypes.h" + +struct SkIPoint16; + +class GrRectanizer { +public: + GrRectanizer(int width, int height) : fWidth(width), fHeight(height) { + SkASSERT(width >= 0); + SkASSERT(height >= 0); + } + + virtual ~GrRectanizer() {} + + virtual void reset() = 0; + + int width() const { return fWidth; } + int height() const { return fHeight; } + + // Attempt to add a rect. Return true on success; false on failure. If + // successful the position in the atlas is returned in 'loc'. + virtual bool addRect(int width, int height, SkIPoint16* loc) = 0; + virtual float percentFull() const = 0; + + /** + * Our factory, which returns the subclass du jour + */ + static GrRectanizer* Factory(int width, int height); + +private: + const int fWidth; + const int fHeight; +}; + +#endif diff --git a/third_party/skia/src/gpu/GrRefCnt.h b/third_party/skia/src/gpu/ganesh/GrRefCnt.h similarity index 98% rename from third_party/skia/src/gpu/GrRefCnt.h rename to third_party/skia/src/gpu/ganesh/GrRefCnt.h index 8ef7814d04e0..bf8b6ed32928 100644 --- a/third_party/skia/src/gpu/GrRefCnt.h +++ b/third_party/skia/src/gpu/ganesh/GrRefCnt.h @@ -9,8 +9,8 @@ #define GrRefCnt_DEFINED #include "include/core/SkRefCnt.h" -#include "src/gpu/GrGpuResource.h" -#include "src/gpu/GrManagedResource.h" +#include "src/gpu/ganesh/GrGpuResource.h" +#include "src/gpu/ganesh/GrManagedResource.h" // We have to use auto for the function pointers here because if the actual functions live on the // base class of T we need the function here to be a pointer to a function of the base class and not diff --git a/third_party/skia/src/gpu/GrRenderTarget.cpp b/third_party/skia/src/gpu/ganesh/GrRenderTarget.cpp similarity index 84% rename from third_party/skia/src/gpu/GrRenderTarget.cpp rename to third_party/skia/src/gpu/ganesh/GrRenderTarget.cpp index a2f11dd0f0f3..d613287aeb3d 100644 --- a/third_party/skia/src/gpu/GrRenderTarget.cpp +++ b/third_party/skia/src/gpu/ganesh/GrRenderTarget.cpp @@ -6,20 +6,21 @@ */ -#include "src/gpu/GrRenderTarget.h" +#include "src/gpu/ganesh/GrRenderTarget.h" #include "src/core/SkRectPriv.h" -#include "src/gpu/GrAttachment.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrStencilSettings.h" +#include "src/gpu/ganesh/GrAttachment.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrStencilSettings.h" GrRenderTarget::GrRenderTarget(GrGpu* gpu, const SkISize& dimensions, int sampleCount, GrProtected isProtected, + std::string_view label, sk_sp stencil) - : INHERITED(gpu, dimensions, isProtected) + : INHERITED(gpu, dimensions, isProtected, label) , fSampleCnt(sampleCount) { if (this->numSamples() > 1) { fMSAAStencilAttachment = std::move(stencil); diff --git a/third_party/skia/src/gpu/GrRenderTarget.h b/third_party/skia/src/gpu/ganesh/GrRenderTarget.h similarity index 93% rename from third_party/skia/src/gpu/GrRenderTarget.h rename to third_party/skia/src/gpu/ganesh/GrRenderTarget.h index d778e876c654..ec73d8e85677 100644 --- a/third_party/skia/src/gpu/GrRenderTarget.h +++ b/third_party/skia/src/gpu/ganesh/GrRenderTarget.h @@ -9,7 +9,7 @@ #define GrRenderTarget_DEFINED #include "include/core/SkRect.h" -#include "src/gpu/GrSurface.h" +#include "src/gpu/ganesh/GrSurface.h" class GrCaps; class GrAttachment; @@ -70,7 +70,11 @@ class GrRenderTarget : virtual public GrSurface { const SkTArray& getSampleLocations(); protected: - GrRenderTarget(GrGpu*, const SkISize&, int sampleCount, GrProtected, + GrRenderTarget(GrGpu*, + const SkISize&, + int sampleCount, + GrProtected, + std::string_view label, sk_sp stenicl = nullptr); ~GrRenderTarget() override; diff --git a/third_party/skia/src/gpu/GrRenderTargetContext.h b/third_party/skia/src/gpu/ganesh/GrRenderTargetContext.h similarity index 90% rename from third_party/skia/src/gpu/GrRenderTargetContext.h rename to third_party/skia/src/gpu/ganesh/GrRenderTargetContext.h index 30764a6e12b6..ac224915ad74 100644 --- a/third_party/skia/src/gpu/GrRenderTargetContext.h +++ b/third_party/skia/src/gpu/ganesh/GrRenderTargetContext.h @@ -12,7 +12,7 @@ #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" // Android Framework is relying on this header existing and the old name // of skgpu::v1::SurfaceDrawContext. diff --git a/third_party/skia/src/gpu/GrRenderTargetProxy.cpp b/third_party/skia/src/gpu/ganesh/GrRenderTargetProxy.cpp similarity index 91% rename from third_party/skia/src/gpu/GrRenderTargetProxy.cpp rename to third_party/skia/src/gpu/ganesh/GrRenderTargetProxy.cpp index 8fd61e9603f5..c0269c8a3d2d 100644 --- a/third_party/skia/src/gpu/GrRenderTargetProxy.cpp +++ b/third_party/skia/src/gpu/ganesh/GrRenderTargetProxy.cpp @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "src/gpu/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" #include "src/core/SkMathPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurface.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTextureRenderTargetProxy.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTextureRenderTargetProxy.h" #ifdef SK_DEBUG #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #endif // Deferred version @@ -32,8 +32,10 @@ GrRenderTargetProxy::GrRenderTargetProxy(const GrCaps& caps, SkBudgeted budgeted, GrProtected isProtected, GrInternalSurfaceFlags surfaceFlags, - UseAllocator useAllocator) - : INHERITED(format, dimensions, fit, budgeted, isProtected, surfaceFlags, useAllocator) + UseAllocator useAllocator, + std::string_view label) + : INHERITED( + format, dimensions, fit, budgeted, isProtected, surfaceFlags, useAllocator, label) , fSampleCnt(sampleCount) , fWrapsVkSecondaryCB(WrapsVkSecondaryCB::kNo) {} @@ -47,9 +49,10 @@ GrRenderTargetProxy::GrRenderTargetProxy(LazyInstantiateCallback&& callback, GrProtected isProtected, GrInternalSurfaceFlags surfaceFlags, UseAllocator useAllocator, - WrapsVkSecondaryCB wrapsVkSecondaryCB) + WrapsVkSecondaryCB wrapsVkSecondaryCB, + std::string_view label) : INHERITED(std::move(callback), format, dimensions, fit, budgeted, isProtected, - surfaceFlags, useAllocator) + surfaceFlags, useAllocator, label) , fSampleCnt(sampleCount) , fWrapsVkSecondaryCB(wrapsVkSecondaryCB) {} diff --git a/third_party/skia/src/gpu/GrRenderTargetProxy.h b/third_party/skia/src/gpu/ganesh/GrRenderTargetProxy.h similarity index 94% rename from third_party/skia/src/gpu/GrRenderTargetProxy.h rename to third_party/skia/src/gpu/ganesh/GrRenderTargetProxy.h index 3f80846ad870..31e2b8a188bd 100644 --- a/third_party/skia/src/gpu/GrRenderTargetProxy.h +++ b/third_party/skia/src/gpu/ganesh/GrRenderTargetProxy.h @@ -8,13 +8,13 @@ #ifndef GrRenderTargetProxy_DEFINED #define GrRenderTargetProxy_DEFINED -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkArenaAlloc.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrNativeRect.h" -#include "src/gpu/GrSubRunAllocator.h" -#include "src/gpu/GrSurfaceProxy.h" #include "src/gpu/Swizzle.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrNativeRect.h" +#include "src/gpu/ganesh/GrSubRunAllocator.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" class GrResourceProvider; @@ -129,7 +129,8 @@ class GrRenderTargetProxy : virtual public GrSurfaceProxy { SkBudgeted, GrProtected, GrInternalSurfaceFlags, - UseAllocator); + UseAllocator, + std::string_view label); enum class WrapsVkSecondaryCB : bool { kNo = false, kYes = true }; @@ -152,7 +153,8 @@ class GrRenderTargetProxy : virtual public GrSurfaceProxy { GrProtected, GrInternalSurfaceFlags, UseAllocator, - WrapsVkSecondaryCB); + WrapsVkSecondaryCB, + std::string_view label); // Wrapped version GrRenderTargetProxy(sk_sp, diff --git a/third_party/skia/src/gpu/GrRenderTask.cpp b/third_party/skia/src/gpu/ganesh/GrRenderTask.cpp similarity index 98% rename from third_party/skia/src/gpu/GrRenderTask.cpp rename to third_party/skia/src/gpu/ganesh/GrRenderTask.cpp index 22a7604ffada..d8bbbfe12ba0 100644 --- a/third_party/skia/src/gpu/GrRenderTask.cpp +++ b/third_party/skia/src/gpu/ganesh/GrRenderTask.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/GrRenderTask.h" +#include "src/gpu/ganesh/GrRenderTask.h" -#include "src/gpu/GrAttachment.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrTextureProxyPriv.h" -#include "src/gpu/GrTextureResolveRenderTask.h" +#include "src/gpu/ganesh/GrAttachment.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrTextureProxyPriv.h" +#include "src/gpu/ganesh/GrTextureResolveRenderTask.h" uint32_t GrRenderTask::CreateUniqueID() { static std::atomic nextID{1}; diff --git a/third_party/skia/src/gpu/GrRenderTask.h b/third_party/skia/src/gpu/ganesh/GrRenderTask.h similarity index 98% rename from third_party/skia/src/gpu/GrRenderTask.h rename to third_party/skia/src/gpu/ganesh/GrRenderTask.h index f9b3825adda1..9c78ab297479 100644 --- a/third_party/skia/src/gpu/GrRenderTask.h +++ b/third_party/skia/src/gpu/ganesh/GrRenderTask.h @@ -11,9 +11,9 @@ #include "include/core/SkRefCnt.h" #include "include/private/SkTArray.h" #include "src/core/SkTInternalLList.h" -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/GrTextureResolveManager.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/GrTextureResolveManager.h" class GrMockRenderTask; class GrOpFlushState; diff --git a/third_party/skia/src/gpu/GrRenderTaskCluster.cpp b/third_party/skia/src/gpu/ganesh/GrRenderTaskCluster.cpp similarity index 98% rename from third_party/skia/src/gpu/GrRenderTaskCluster.cpp rename to third_party/skia/src/gpu/ganesh/GrRenderTaskCluster.cpp index b56364796e04..1f2c842b3c4f 100644 --- a/third_party/skia/src/gpu/GrRenderTaskCluster.cpp +++ b/third_party/skia/src/gpu/ganesh/GrRenderTaskCluster.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/GrRenderTaskCluster.h" +#include "src/gpu/ganesh/GrRenderTaskCluster.h" #include "include/private/SkTHash.h" -#include "src/gpu/GrRenderTask.h" +#include "src/gpu/ganesh/GrRenderTask.h" // Uncomment to get lots of logging. #define CLUSTER_DEBUGF(...) //SkDebugf(__VA_ARGS__) diff --git a/third_party/skia/src/gpu/GrRenderTaskCluster.h b/third_party/skia/src/gpu/ganesh/GrRenderTaskCluster.h similarity index 100% rename from third_party/skia/src/gpu/GrRenderTaskCluster.h rename to third_party/skia/src/gpu/ganesh/GrRenderTaskCluster.h diff --git a/third_party/skia/src/gpu/GrResourceAllocator.cpp b/third_party/skia/src/gpu/ganesh/GrResourceAllocator.cpp similarity index 98% rename from third_party/skia/src/gpu/GrResourceAllocator.cpp rename to third_party/skia/src/gpu/ganesh/GrResourceAllocator.cpp index 84b3bf7122d7..bf6272e488f2 100644 --- a/third_party/skia/src/gpu/GrResourceAllocator.cpp +++ b/third_party/skia/src/gpu/ganesh/GrResourceAllocator.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/GrResourceAllocator.h" - -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrResourceAllocator.h" + +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" #ifdef SK_DEBUG #include diff --git a/third_party/skia/src/gpu/GrResourceAllocator.h b/third_party/skia/src/gpu/ganesh/GrResourceAllocator.h similarity index 98% rename from third_party/skia/src/gpu/GrResourceAllocator.h rename to third_party/skia/src/gpu/ganesh/GrResourceAllocator.h index 5e3673c88c9b..254e21b62966 100644 --- a/third_party/skia/src/gpu/GrResourceAllocator.h +++ b/third_party/skia/src/gpu/ganesh/GrResourceAllocator.h @@ -10,9 +10,9 @@ #include "include/private/SkTHash.h" -#include "src/gpu/GrHashMapWithCache.h" -#include "src/gpu/GrSurface.h" -#include "src/gpu/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrHashMapWithCache.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" #include "src/core/SkArenaAlloc.h" #include "src/core/SkTMultiMap.h" diff --git a/third_party/skia/src/gpu/GrResourceCache.cpp b/third_party/skia/src/gpu/ganesh/GrResourceCache.cpp similarity index 98% rename from third_party/skia/src/gpu/GrResourceCache.cpp rename to third_party/skia/src/gpu/ganesh/GrResourceCache.cpp index a31b33528732..989c36574780 100644 --- a/third_party/skia/src/gpu/GrResourceCache.cpp +++ b/third_party/skia/src/gpu/ganesh/GrResourceCache.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrResourceCache.h" +#include "src/gpu/ganesh/GrResourceCache.h" #include #include #include "include/gpu/GrDirectContext.h" @@ -16,15 +16,15 @@ #include "src/core/SkOpts.h" #include "src/core/SkScopeExit.h" #include "src/core/SkTSort.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpuResourceCacheAccess.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxyCacheAccess.h" -#include "src/gpu/GrThreadSafeCache.h" -#include "src/gpu/GrTracing.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpuResourceCacheAccess.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxyCacheAccess.h" +#include "src/gpu/ganesh/GrThreadSafeCache.h" +#include "src/gpu/ganesh/GrTracing.h" +#include "src/gpu/ganesh/SkGr.h" DECLARE_SKMESSAGEBUS_MESSAGE(skgpu::UniqueKeyInvalidatedMessage, uint32_t, true); @@ -251,21 +251,10 @@ void GrResourceCache::refResource(GrGpuResource* resource) { this->validate(); } -class GrResourceCache::AvailableForScratchUse { -public: - AvailableForScratchUse() { } - - bool operator()(const GrGpuResource* resource) const { - // Everything that is in the scratch map should be usable as a - // scratch resource. - return true; - } -}; - GrGpuResource* GrResourceCache::findAndRefScratchResource(const skgpu::ScratchKey& scratchKey) { SkASSERT(scratchKey.isValid()); - GrGpuResource* resource = fScratchMap.find(scratchKey, AvailableForScratchUse()); + GrGpuResource* resource = fScratchMap.find(scratchKey); if (resource) { fScratchMap.remove(scratchKey, resource); this->refAndMakeResourceMRU(resource); diff --git a/third_party/skia/src/gpu/GrResourceCache.h b/third_party/skia/src/gpu/ganesh/GrResourceCache.h similarity index 99% rename from third_party/skia/src/gpu/GrResourceCache.h rename to third_party/skia/src/gpu/ganesh/GrResourceCache.h index 99f54f934efc..12ab4a9f7550 100644 --- a/third_party/skia/src/gpu/GrResourceCache.h +++ b/third_party/skia/src/gpu/ganesh/GrResourceCache.h @@ -16,10 +16,10 @@ #include "src/core/SkTDPQueue.h" #include "src/core/SkTInternalLList.h" #include "src/core/SkTMultiMap.h" -#include "src/gpu/GrGpuResource.h" -#include "src/gpu/GrGpuResourceCacheAccess.h" -#include "src/gpu/GrGpuResourcePriv.h" #include "src/gpu/ResourceKey.h" +#include "src/gpu/ganesh/GrGpuResource.h" +#include "src/gpu/ganesh/GrGpuResourceCacheAccess.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" class GrCaps; class GrProxyProvider; @@ -291,8 +291,6 @@ class GrResourceCache { class AutoValidate; - class AvailableForScratchUse; - struct ScratchMapTraits { static const skgpu::ScratchKey& GetKey(const GrGpuResource& r) { return r.resourcePriv().getScratchKey(); diff --git a/third_party/skia/src/gpu/GrResourceHandle.h b/third_party/skia/src/gpu/ganesh/GrResourceHandle.h similarity index 100% rename from third_party/skia/src/gpu/GrResourceHandle.h rename to third_party/skia/src/gpu/ganesh/GrResourceHandle.h diff --git a/third_party/skia/src/gpu/GrResourceProvider.cpp b/third_party/skia/src/gpu/ganesh/GrResourceProvider.cpp similarity index 98% rename from third_party/skia/src/gpu/GrResourceProvider.cpp rename to third_party/skia/src/gpu/ganesh/GrResourceProvider.cpp index 7a1b8da2b2fa..4163972aa313 100644 --- a/third_party/skia/src/gpu/GrResourceProvider.cpp +++ b/third_party/skia/src/gpu/ganesh/GrResourceProvider.cpp @@ -5,27 +5,28 @@ * found in the LICENSE file. */ -#include "src/gpu/GrResourceProvider.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrBackendSemaphore.h" #include "include/private/SingleOwner.h" #include "src/core/SkConvertPixels.h" #include "src/core/SkMathPriv.h" #include "src/core/SkMipmap.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrAttachment.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrTexture.h" #include "src/gpu/ResourceKey.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrAttachment.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/SkGr.h" const int GrResourceProvider::kMinScratchTextureSize = 16; diff --git a/third_party/skia/src/gpu/GrResourceProvider.h b/third_party/skia/src/gpu/ganesh/GrResourceProvider.h similarity index 99% rename from third_party/skia/src/gpu/GrResourceProvider.h rename to third_party/skia/src/gpu/ganesh/GrResourceProvider.h index c769a7a620dd..fdba804974d3 100644 --- a/third_party/skia/src/gpu/GrResourceProvider.h +++ b/third_party/skia/src/gpu/ganesh/GrResourceProvider.h @@ -10,8 +10,8 @@ #include "include/gpu/GrContextOptions.h" #include "include/private/SkImageInfoPriv.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrResourceCache.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrResourceCache.h" class GrAttachment; class GrBackendRenderTarget; diff --git a/third_party/skia/src/gpu/GrResourceProviderPriv.h b/third_party/skia/src/gpu/ganesh/GrResourceProviderPriv.h similarity index 96% rename from third_party/skia/src/gpu/GrResourceProviderPriv.h rename to third_party/skia/src/gpu/ganesh/GrResourceProviderPriv.h index 7800c20e81e2..012084e33ee8 100644 --- a/third_party/skia/src/gpu/GrResourceProviderPriv.h +++ b/third_party/skia/src/gpu/ganesh/GrResourceProviderPriv.h @@ -8,7 +8,7 @@ #ifndef GrResourceProviderPriv_DEFINED #define GrResourceProviderPriv_DEFINED -#include "src/gpu/GrResourceProvider.h" +#include "src/gpu/ganesh/GrResourceProvider.h" /** Class that adds methods to GrResourceProvider that are only intended for use internal to Skia. This class is purely a privileged window into GrResourceProvider. It should never have diff --git a/third_party/skia/src/gpu/GrRingBuffer.cpp b/third_party/skia/src/gpu/ganesh/GrRingBuffer.cpp similarity index 95% rename from third_party/skia/src/gpu/GrRingBuffer.cpp rename to third_party/skia/src/gpu/ganesh/GrRingBuffer.cpp index 8f1f6fd1a10d..1e2d32d187b0 100644 --- a/third_party/skia/src/gpu/GrRingBuffer.cpp +++ b/third_party/skia/src/gpu/ganesh/GrRingBuffer.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/GrRingBuffer.h" +#include "src/gpu/ganesh/GrRingBuffer.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrResourceProvider.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrResourceProvider.h" // Get offset into buffer that has enough space for size // Returns fTotalSize if no space diff --git a/third_party/skia/src/gpu/GrRingBuffer.h b/third_party/skia/src/gpu/ganesh/GrRingBuffer.h similarity index 97% rename from third_party/skia/src/gpu/GrRingBuffer.h rename to third_party/skia/src/gpu/ganesh/GrRingBuffer.h index 1b91bfeebc24..43934a383cb6 100644 --- a/third_party/skia/src/gpu/GrRingBuffer.h +++ b/third_party/skia/src/gpu/ganesh/GrRingBuffer.h @@ -8,7 +8,7 @@ #ifndef GrRingBuffer_DEFINED #define GrRingBuffer_DEFINED -#include "src/gpu/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" #include diff --git a/third_party/skia/src/gpu/GrSPIRVUniformHandler.cpp b/third_party/skia/src/gpu/ganesh/GrSPIRVUniformHandler.cpp similarity index 98% rename from third_party/skia/src/gpu/GrSPIRVUniformHandler.cpp rename to third_party/skia/src/gpu/ganesh/GrSPIRVUniformHandler.cpp index c7e48c690d11..71b4ee50e4db 100644 --- a/third_party/skia/src/gpu/GrSPIRVUniformHandler.cpp +++ b/third_party/skia/src/gpu/ganesh/GrSPIRVUniformHandler.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/GrSPIRVUniformHandler.h" +#include "src/gpu/ganesh/GrSPIRVUniformHandler.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" GrSPIRVUniformHandler::GrSPIRVUniformHandler(GrGLSLProgramBuilder* program) : INHERITED(program) @@ -186,7 +186,7 @@ uint32_t get_ubo_offset(uint32_t* currentOffset, SkSLType type, int arrayCount) } // namespace GrGLSLUniformHandler::UniformHandle GrSPIRVUniformHandler::internalAddUniformArray( - const GrFragmentProcessor* owner, + const GrProcessor* owner, uint32_t visibility, SkSLType type, const char* name, diff --git a/third_party/skia/src/gpu/GrSPIRVUniformHandler.h b/third_party/skia/src/gpu/ganesh/GrSPIRVUniformHandler.h similarity index 95% rename from third_party/skia/src/gpu/GrSPIRVUniformHandler.h rename to third_party/skia/src/gpu/ganesh/GrSPIRVUniformHandler.h index 410f2d8f24bc..7c5a388c6729 100644 --- a/third_party/skia/src/gpu/GrSPIRVUniformHandler.h +++ b/third_party/skia/src/gpu/ganesh/GrSPIRVUniformHandler.h @@ -9,7 +9,7 @@ #define GrSPIRVUniformHandler_DEFINED #include "src/core/SkTBlockList.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" /* * This class can be used for basic SPIR-V uniform handling. It will make a single uniform buffer @@ -54,7 +54,7 @@ class GrSPIRVUniformHandler : public GrGLSLUniformHandler { const char* samplerVariable(SamplerHandle handle) const override; skgpu::Swizzle samplerSwizzle(SamplerHandle handle) const override; void appendUniformDecls(GrShaderFlags visibility, SkString*) const override; - UniformHandle internalAddUniformArray(const GrFragmentProcessor* owner, + UniformHandle internalAddUniformArray(const GrProcessor* owner, uint32_t visibility, SkSLType type, const char* name, diff --git a/third_party/skia/src/gpu/GrSPIRVVaryingHandler.cpp b/third_party/skia/src/gpu/ganesh/GrSPIRVVaryingHandler.cpp similarity index 98% rename from third_party/skia/src/gpu/GrSPIRVVaryingHandler.cpp rename to third_party/skia/src/gpu/ganesh/GrSPIRVVaryingHandler.cpp index 3b942f252709..9f2cad166564 100644 --- a/third_party/skia/src/gpu/GrSPIRVVaryingHandler.cpp +++ b/third_party/skia/src/gpu/ganesh/GrSPIRVVaryingHandler.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrSPIRVVaryingHandler.h" +#include "src/gpu/ganesh/GrSPIRVVaryingHandler.h" /** Returns the number of locations take up by a given SkSLType. We assume that all scalar values are 32 bits. */ diff --git a/third_party/skia/src/gpu/GrSPIRVVaryingHandler.h b/third_party/skia/src/gpu/ganesh/GrSPIRVVaryingHandler.h similarity index 93% rename from third_party/skia/src/gpu/GrSPIRVVaryingHandler.h rename to third_party/skia/src/gpu/ganesh/GrSPIRVVaryingHandler.h index c96ec8b5cd0b..86899d927804 100644 --- a/third_party/skia/src/gpu/GrSPIRVVaryingHandler.h +++ b/third_party/skia/src/gpu/ganesh/GrSPIRVVaryingHandler.h @@ -8,7 +8,7 @@ #ifndef GrSPIRVVaryingHandler_DEFINED #define GrSPIRVVaryingHandler_DEFINED -#include "src/gpu/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" /* * This class can be used for basic SPIR-V varying handling. Each added varying just takes the diff --git a/third_party/skia/src/gpu/GrSWMaskHelper.cpp b/third_party/skia/src/gpu/ganesh/GrSWMaskHelper.cpp similarity index 93% rename from third_party/skia/src/gpu/GrSWMaskHelper.cpp rename to third_party/skia/src/gpu/ganesh/GrSWMaskHelper.cpp index 3501789ecf59..a04fa6823e85 100644 --- a/third_party/skia/src/gpu/GrSWMaskHelper.cpp +++ b/third_party/skia/src/gpu/ganesh/GrSWMaskHelper.cpp @@ -5,17 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/GrSWMaskHelper.h" +#include "src/gpu/ganesh/GrSWMaskHelper.h" +#include "include/core/SkBitmap.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkMatrixProvider.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceContext.h" -#include "src/gpu/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceContext.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" /* * Convert a boolean operation into a transfer mode code diff --git a/third_party/skia/src/gpu/GrSWMaskHelper.h b/third_party/skia/src/gpu/ganesh/GrSWMaskHelper.h similarity index 96% rename from third_party/skia/src/gpu/GrSWMaskHelper.h rename to third_party/skia/src/gpu/ganesh/GrSWMaskHelper.h index 502330018590..e1bb88c5bbd0 100644 --- a/third_party/skia/src/gpu/GrSWMaskHelper.h +++ b/third_party/skia/src/gpu/ganesh/GrSWMaskHelper.h @@ -11,11 +11,11 @@ #include "include/core/SkMatrix.h" #include "include/core/SkRegion.h" #include "include/core/SkTypes.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkDraw.h" #include "src/core/SkRasterClip.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" class GrShape; class GrStyledShape; diff --git a/third_party/skia/src/gpu/ganesh/GrSamplerState.h b/third_party/skia/src/gpu/ganesh/GrSamplerState.h new file mode 100644 index 000000000000..8c01d2e4a9d7 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/GrSamplerState.h @@ -0,0 +1,152 @@ +/* + * Copyright 2015 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrSamplerState_DEFINED +#define GrSamplerState_DEFINED + +#include "include/core/SkSamplingOptions.h" +#include "include/gpu/GrTypes.h" +#include "include/private/SkTPin.h" +#include "include/private/SkTo.h" +#include "src/core/SkMathPriv.h" + +#include + +/** + * Represents the filtering and tile modes used to access a texture. + */ +class GrSamplerState { +public: + using Filter = SkFilterMode; + using MipmapMode = SkMipmapMode; + + enum class WrapMode : uint8_t { + kClamp, + kRepeat, + kMirrorRepeat, + kClampToBorder, + kLast = kClampToBorder + }; + + static constexpr int kFilterCount = static_cast(Filter::kLast) + 1; + static constexpr int kWrapModeCount = static_cast(WrapMode::kLast) + 1; + static constexpr int kMipmapModeCount = static_cast(MipmapMode::kLast) + 1; + + constexpr GrSamplerState() = default; + + constexpr GrSamplerState(WrapMode wrapXAndY, Filter filter, MipmapMode mm = MipmapMode::kNone) + : fWrapModes{wrapXAndY, wrapXAndY}, fFilter(filter), fMipmapMode(mm) {} + + constexpr GrSamplerState(WrapMode wrapX, + WrapMode wrapY, + Filter filter, + MipmapMode mm = MipmapMode::kNone) + : fWrapModes{wrapX, wrapY}, fFilter(filter), fMipmapMode(mm) {} + + constexpr GrSamplerState(const WrapMode wrapModes[2], + Filter filter, + MipmapMode mm = MipmapMode::kNone) + : fWrapModes{wrapModes[0], wrapModes[1]}, fFilter(filter), fMipmapMode(mm) {} + + constexpr /*explicit*/ GrSamplerState(Filter filter) : fFilter(filter) {} + constexpr GrSamplerState(Filter filter, MipmapMode mm) : fFilter(filter), fMipmapMode(mm) {} + + // We require 'viewIsMipped' for APIs that allow MIP filtering to be specified orthogonally + // to aniso. + static constexpr GrSamplerState Aniso(WrapMode wrapX, + WrapMode wrapY, + int maxAniso, + GrMipmapped viewIsMipped) { + GrSamplerState sampler; + sampler.fWrapModes[0] = wrapX; + sampler.fWrapModes[1] = wrapY; + sampler.fMaxAniso = SkTPin(maxAniso, 1, kMaxMaxAniso); + sampler.fFilter = Filter::kLinear; + sampler.fMipmapMode = viewIsMipped == GrMipmapped::kYes ? MipmapMode::kLinear + : MipmapMode::kNearest; + return sampler; + } + + constexpr GrSamplerState(const GrSamplerState&) = default; + + constexpr GrSamplerState& operator=(const GrSamplerState&) = default; + + constexpr WrapMode wrapModeX() const { return fWrapModes[0]; } + + constexpr WrapMode wrapModeY() const { return fWrapModes[1]; } + + constexpr bool isRepeatedX() const { + return fWrapModes[0] == WrapMode::kRepeat || fWrapModes[0] == WrapMode::kMirrorRepeat; + } + + constexpr bool isRepeatedY() const { + return fWrapModes[1] == WrapMode::kRepeat || fWrapModes[1] == WrapMode::kMirrorRepeat; + } + + constexpr bool isRepeated() const { + return this->isRepeatedX() || this->isRepeatedY(); + } + + constexpr Filter filter() const { return fFilter; } + + constexpr MipmapMode mipmapMode() const { return fMipmapMode; } + + constexpr GrMipmapped mipmapped() const { + return GrMipmapped(fMipmapMode != MipmapMode::kNone); + } + + int maxAniso() const { return fMaxAniso; } + bool isAniso() const { return fMaxAniso > 1; } + + constexpr bool operator==(GrSamplerState that) const { + return fWrapModes[0] == that.fWrapModes[0] && fWrapModes[1] == that.fWrapModes[1] && + fFilter == that.fFilter && fMipmapMode == that.fMipmapMode; + } + + constexpr bool operator!=(const GrSamplerState& that) const { return !(*this == that); } + + /** + * Turn the sampler state into an integer for use as a key. How that works for aniso depends + * on whether the underlying API defines aniso as orthogonal to other filter settings or + * as a replacement for them. + */ + uint32_t asKey(bool anisoIsOrthogonal) const { + constexpr int kNumWrapBits = SkNextLog2_portable(kWrapModeCount); + constexpr int kNumMaxAnisoBits = SkNextLog2_portable(kMaxMaxAniso); + constexpr int kNumFilterBits = SkNextLog2_portable(kFilterCount); + constexpr int kNumMipmapModeBits = SkNextLog2_portable(kMipmapModeCount); + + constexpr int kWrapXShift = 0; + constexpr int kWrapYShift = kWrapXShift + kNumWrapBits; + constexpr int kMaxAnisoShift = kWrapYShift + kNumWrapBits; + constexpr int kFilterShift = kMaxAnisoShift + kNumMaxAnisoBits; + constexpr int kMipmapModeShift = kFilterShift + kNumFilterBits; + + static_assert(kMipmapModeShift + kNumMipmapModeBits <= 32); + + uint32_t key = (static_cast(fWrapModes[0]) << kWrapXShift) + | (static_cast(fWrapModes[1]) << kWrapYShift) + | (static_cast(fMaxAniso) << kMaxAnisoShift); + if (fMaxAniso == 1 || anisoIsOrthogonal) { + key |= (static_cast(fFilter) << kFilterShift) + | (static_cast(fMipmapMode) << kMipmapModeShift); + } + return key; + } + +private: + // This is here to support turning the sampler state into a key. Presumably this is way larger + // than any HW limits. Also, WebGPU accepts this as an unsigned short. + static constexpr int kMaxMaxAniso = 1024; + + WrapMode fWrapModes[2] = {WrapMode::kClamp, WrapMode::kClamp}; + Filter fFilter = GrSamplerState::Filter::kNearest; + MipmapMode fMipmapMode = GrSamplerState::MipmapMode::kNone; + int fMaxAniso = 1; +}; + +#endif diff --git a/third_party/skia/src/gpu/GrScissorState.h b/third_party/skia/src/gpu/ganesh/GrScissorState.h similarity index 100% rename from third_party/skia/src/gpu/GrScissorState.h rename to third_party/skia/src/gpu/ganesh/GrScissorState.h diff --git a/third_party/skia/src/gpu/GrSemaphore.h b/third_party/skia/src/gpu/ganesh/GrSemaphore.h similarity index 100% rename from third_party/skia/src/gpu/GrSemaphore.h rename to third_party/skia/src/gpu/ganesh/GrSemaphore.h diff --git a/third_party/skia/src/gpu/GrShaderCaps.cpp b/third_party/skia/src/gpu/ganesh/GrShaderCaps.cpp similarity index 99% rename from third_party/skia/src/gpu/GrShaderCaps.cpp rename to third_party/skia/src/gpu/ganesh/GrShaderCaps.cpp index fe9e092f5fbb..c6e1caa1e74b 100644 --- a/third_party/skia/src/gpu/GrShaderCaps.cpp +++ b/third_party/skia/src/gpu/ganesh/GrShaderCaps.cpp @@ -6,7 +6,7 @@ */ -#include "src/gpu/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderCaps.h" #include "include/gpu/GrContextOptions.h" diff --git a/third_party/skia/src/gpu/GrShaderCaps.h b/third_party/skia/src/gpu/ganesh/GrShaderCaps.h similarity index 99% rename from third_party/skia/src/gpu/GrShaderCaps.h rename to third_party/skia/src/gpu/ganesh/GrShaderCaps.h index 593121e39d48..795bab54719b 100644 --- a/third_party/skia/src/gpu/GrShaderCaps.h +++ b/third_party/skia/src/gpu/ganesh/GrShaderCaps.h @@ -9,7 +9,7 @@ #define GrShaderCaps_DEFINED #include "include/core/SkRefCnt.h" -#include "src/gpu/glsl/GrGLSL.h" +#include "src/gpu/ganesh/glsl/GrGLSL.h" #include "src/sksl/SkSLUtil.h" struct GrContextOptions; diff --git a/third_party/skia/src/gpu/GrShaderVar.cpp b/third_party/skia/src/gpu/ganesh/GrShaderVar.cpp similarity index 94% rename from third_party/skia/src/gpu/GrShaderVar.cpp rename to third_party/skia/src/gpu/ganesh/GrShaderVar.cpp index 271c13a3216b..a22c1731ebc6 100644 --- a/third_party/skia/src/gpu/GrShaderVar.cpp +++ b/third_party/skia/src/gpu/ganesh/GrShaderVar.cpp @@ -6,8 +6,8 @@ */ -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrShaderVar.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderVar.h" static const char* type_modifier_string(GrShaderVar::TypeModifier t) { switch (t) { diff --git a/third_party/skia/src/gpu/GrShaderVar.h b/third_party/skia/src/gpu/ganesh/GrShaderVar.h similarity index 98% rename from third_party/skia/src/gpu/GrShaderVar.h rename to third_party/skia/src/gpu/ganesh/GrShaderVar.h index 960b36c64db6..07bf42f4332f 100644 --- a/third_party/skia/src/gpu/GrShaderVar.h +++ b/third_party/skia/src/gpu/ganesh/GrShaderVar.h @@ -9,7 +9,7 @@ #define GrShaderVar_DEFINED #include "include/core/SkString.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkSLTypeShared.h" struct GrShaderCaps; diff --git a/third_party/skia/src/gpu/GrSimpleMesh.h b/third_party/skia/src/gpu/ganesh/GrSimpleMesh.h similarity index 96% rename from third_party/skia/src/gpu/GrSimpleMesh.h rename to third_party/skia/src/gpu/ganesh/GrSimpleMesh.h index cd246beccb20..c96efa4d074c 100644 --- a/third_party/skia/src/gpu/GrSimpleMesh.h +++ b/third_party/skia/src/gpu/ganesh/GrSimpleMesh.h @@ -8,9 +8,9 @@ #ifndef GrSimpleMesh_DEFINED #define GrSimpleMesh_DEFINED -#include "src/gpu/GrBuffer.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrBuffer.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" class GrGeometryProcessor; diff --git a/third_party/skia/src/gpu/GrStagingBufferManager.cpp b/third_party/skia/src/gpu/ganesh/GrStagingBufferManager.cpp similarity index 91% rename from third_party/skia/src/gpu/GrStagingBufferManager.cpp rename to third_party/skia/src/gpu/ganesh/GrStagingBufferManager.cpp index 4714a100514a..8d0c0b6a4426 100644 --- a/third_party/skia/src/gpu/GrStagingBufferManager.cpp +++ b/third_party/skia/src/gpu/ganesh/GrStagingBufferManager.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/GrStagingBufferManager.h" +#include "src/gpu/ganesh/GrStagingBufferManager.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrResourceProvider.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrResourceProvider.h" GrStagingBufferManager::Slice GrStagingBufferManager::allocateStagingBufferSlice( size_t size, size_t requiredAlignment) { diff --git a/third_party/skia/src/gpu/GrStagingBufferManager.h b/third_party/skia/src/gpu/ganesh/GrStagingBufferManager.h similarity index 97% rename from third_party/skia/src/gpu/GrStagingBufferManager.h rename to third_party/skia/src/gpu/ganesh/GrStagingBufferManager.h index ead901441ebf..315dbbca18d1 100644 --- a/third_party/skia/src/gpu/GrStagingBufferManager.h +++ b/third_party/skia/src/gpu/ganesh/GrStagingBufferManager.h @@ -9,7 +9,7 @@ #define GrStagingBufferManager_DEFINED #include "include/core/SkRefCnt.h" -#include "src/gpu/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" #include class GrGpu; diff --git a/third_party/skia/src/gpu/GrStencilSettings.cpp b/third_party/skia/src/gpu/ganesh/GrStencilSettings.cpp similarity index 99% rename from third_party/skia/src/gpu/GrStencilSettings.cpp rename to third_party/skia/src/gpu/ganesh/GrStencilSettings.cpp index c2572ae4dd9e..0b5fcfcf5f1d 100644 --- a/third_party/skia/src/gpu/GrStencilSettings.cpp +++ b/third_party/skia/src/gpu/ganesh/GrStencilSettings.cpp @@ -6,10 +6,10 @@ */ -#include "src/gpu/GrStencilSettings.h" +#include "src/gpu/ganesh/GrStencilSettings.h" -#include "src/gpu/GrProcessor.h" #include "src/gpu/KeyBuilder.h" +#include "src/gpu/ganesh/GrProcessor.h" constexpr const GrUserStencilSettings gUnused( GrUserStencilSettings::StaticInit< diff --git a/third_party/skia/src/gpu/GrStencilSettings.h b/third_party/skia/src/gpu/ganesh/GrStencilSettings.h similarity index 98% rename from third_party/skia/src/gpu/GrStencilSettings.h rename to third_party/skia/src/gpu/ganesh/GrStencilSettings.h index 6790f8fe33d1..a0b60385d21f 100644 --- a/third_party/skia/src/gpu/GrStencilSettings.h +++ b/third_party/skia/src/gpu/ganesh/GrStencilSettings.h @@ -10,7 +10,7 @@ #define GrStencilSettings_DEFINED #include "include/core/SkRegion.h" -#include "src/gpu/GrUserStencilSettings.h" +#include "src/gpu/ganesh/GrUserStencilSettings.h" namespace skgpu { class KeyBuilder; diff --git a/third_party/skia/src/gpu/GrStyle.cpp b/third_party/skia/src/gpu/ganesh/GrStyle.cpp similarity index 99% rename from third_party/skia/src/gpu/GrStyle.cpp rename to third_party/skia/src/gpu/ganesh/GrStyle.cpp index 1d5a48b8b41c..c034129b24b3 100644 --- a/third_party/skia/src/gpu/GrStyle.cpp +++ b/third_party/skia/src/gpu/ganesh/GrStyle.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrStyle.h" +#include "src/gpu/ganesh/GrStyle.h" #include "src/utils/SkDashPathPriv.h" int GrStyle::KeySize(const GrStyle &style, Apply apply, uint32_t flags) { diff --git a/third_party/skia/src/gpu/GrStyle.h b/third_party/skia/src/gpu/ganesh/GrStyle.h similarity index 100% rename from third_party/skia/src/gpu/GrStyle.h rename to third_party/skia/src/gpu/ganesh/GrStyle.h diff --git a/third_party/skia/src/gpu/GrSubRunAllocator.cpp b/third_party/skia/src/gpu/ganesh/GrSubRunAllocator.cpp similarity index 92% rename from third_party/skia/src/gpu/GrSubRunAllocator.cpp rename to third_party/skia/src/gpu/ganesh/GrSubRunAllocator.cpp index 83d0f7015b79..93cffd50abf8 100644 --- a/third_party/skia/src/gpu/GrSubRunAllocator.cpp +++ b/third_party/skia/src/gpu/ganesh/GrSubRunAllocator.cpp @@ -6,7 +6,7 @@ */ #include "include/core/SkMath.h" -#include "src/gpu/GrSubRunAllocator.h" +#include "src/gpu/ganesh/GrSubRunAllocator.h" #include #include @@ -77,10 +77,13 @@ void GrBagOfBytes::needMoreBytes(int requestedSize, int alignment) { // -- GrSubRunAllocator ---------------------------------------------------------------------------- GrSubRunAllocator::GrSubRunAllocator(char* bytes, int size, int firstHeapAllocation) - : fAlloc{bytes, SkTo(size), SkTo(firstHeapAllocation)} {} + : fAlloc{bytes, SkTo(size), SkTo(firstHeapAllocation)} { + SkASSERT_RELEASE(SkTFitsIn(size)); + SkASSERT_RELEASE(SkTFitsIn(firstHeapAllocation)); +} GrSubRunAllocator::GrSubRunAllocator(int firstHeapAllocation) - : GrSubRunAllocator(nullptr, 0, firstHeapAllocation) {} + : GrSubRunAllocator(nullptr, 0, firstHeapAllocation) { } void* GrSubRunAllocator::alignedBytes(int unsafeSize, int unsafeAlignment) { return fAlloc.alignedBytes(unsafeSize, unsafeAlignment); diff --git a/third_party/skia/src/gpu/GrSubRunAllocator.h b/third_party/skia/src/gpu/ganesh/GrSubRunAllocator.h similarity index 100% rename from third_party/skia/src/gpu/GrSubRunAllocator.h rename to third_party/skia/src/gpu/ganesh/GrSubRunAllocator.h diff --git a/third_party/skia/src/gpu/GrSurface.cpp b/third_party/skia/src/gpu/ganesh/GrSurface.cpp similarity index 88% rename from third_party/skia/src/gpu/GrSurface.cpp rename to third_party/skia/src/gpu/ganesh/GrSurface.cpp index 6a8bd3212daa..30b69411b418 100644 --- a/third_party/skia/src/gpu/GrSurface.cpp +++ b/third_party/skia/src/gpu/ganesh/GrSurface.cpp @@ -6,14 +6,14 @@ */ #include "src/core/SkCompressedDataUtils.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurface.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/GrTexture.h" #include "src/core/SkMathPriv.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/SkGr.h" size_t GrSurface::ComputeSize(const GrBackendFormat& format, SkISize dimensions, diff --git a/third_party/skia/src/gpu/GrSurface.h b/third_party/skia/src/gpu/ganesh/GrSurface.h similarity index 90% rename from third_party/skia/src/gpu/GrSurface.h rename to third_party/skia/src/gpu/ganesh/GrSurface.h index 0e50d6a0dcd7..7315517707b2 100644 --- a/third_party/skia/src/gpu/GrSurface.h +++ b/third_party/skia/src/gpu/ganesh/GrSurface.h @@ -12,7 +12,8 @@ #include "include/core/SkRect.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrTypes.h" -#include "src/gpu/GrGpuResource.h" +#include "src/gpu/RefCntedCallback.h" +#include "src/gpu/ganesh/GrGpuResource.h" class GrRenderTarget; class GrTexture; @@ -41,7 +42,7 @@ class GrSurface : public GrGpuResource { virtual GrBackendFormat backendFormat() const = 0; - void setRelease(sk_sp releaseHelper) { + void setRelease(sk_sp releaseHelper) { this->onSetRelease(releaseHelper); fReleaseHelper = std::move(releaseHelper); } @@ -51,7 +52,7 @@ class GrSurface : public GrGpuResource { typedef void* ReleaseCtx; typedef void (*ReleaseProc)(ReleaseCtx); void setRelease(ReleaseProc proc, ReleaseCtx ctx) { - this->setRelease(GrRefCntedCallback::Make(proc, ctx)); + this->setRelease(skgpu::RefCntedCallback::Make(proc, ctx)); } /** @@ -119,8 +120,11 @@ class GrSurface : public GrGpuResource { fSurfaceFlags |= GrInternalSurfaceFlags::kVkRTSupportsInputAttachment; } - GrSurface(GrGpu* gpu, const SkISize& dimensions, GrProtected isProtected) - : INHERITED(gpu) + GrSurface(GrGpu* gpu, + const SkISize& dimensions, + GrProtected isProtected, + std::string_view label) + : INHERITED(gpu, label) , fDimensions(dimensions) , fSurfaceFlags(GrInternalSurfaceFlags::kNone) , fIsProtected(isProtected) {} @@ -138,7 +142,7 @@ class GrSurface : public GrGpuResource { // Unmanaged backends (e.g. Vulkan) may want to specially handle the release proc in order to // ensure it isn't called until GPU work related to the resource is completed. - virtual void onSetRelease(sk_sp) {} + virtual void onSetRelease(sk_sp) {} void invokeReleaseProc() { // Depending on the ref count of fReleaseHelper this may or may not actually trigger the @@ -149,7 +153,7 @@ class GrSurface : public GrGpuResource { SkISize fDimensions; GrInternalSurfaceFlags fSurfaceFlags; GrProtected fIsProtected; - sk_sp fReleaseHelper; + sk_sp fReleaseHelper; using INHERITED = GrGpuResource; }; diff --git a/third_party/skia/src/gpu/GrSurfaceInfo.cpp b/third_party/skia/src/gpu/ganesh/GrSurfaceInfo.cpp similarity index 100% rename from third_party/skia/src/gpu/GrSurfaceInfo.cpp rename to third_party/skia/src/gpu/ganesh/GrSurfaceInfo.cpp diff --git a/third_party/skia/src/gpu/GrSurfaceProxy.cpp b/third_party/skia/src/gpu/ganesh/GrSurfaceProxy.cpp similarity index 94% rename from third_party/skia/src/gpu/GrSurfaceProxy.cpp rename to third_party/skia/src/gpu/ganesh/GrSurfaceProxy.cpp index 48db1b7b47b1..d6edcc750694 100644 --- a/third_party/skia/src/gpu/GrSurfaceProxy.cpp +++ b/third_party/skia/src/gpu/ganesh/GrSurfaceProxy.cpp @@ -5,26 +5,27 @@ * found in the LICENSE file. */ -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkMathPriv.h" -#include "src/gpu/GrAttachment.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurface.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureRenderTargetProxy.h" -#include "src/gpu/SurfaceFillContext.h" +#include "src/gpu/ganesh/GrAttachment.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureRenderTargetProxy.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" #ifdef SK_DEBUG #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrRenderTarget.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrRenderTarget.h" static bool is_valid_lazy(const SkISize& dimensions, SkBackingFit fit) { // A "fully" lazy proxy's width and height are not known until instantiation time. @@ -47,14 +48,16 @@ GrSurfaceProxy::GrSurfaceProxy(const GrBackendFormat& format, SkBudgeted budgeted, GrProtected isProtected, GrInternalSurfaceFlags surfaceFlags, - UseAllocator useAllocator) + UseAllocator useAllocator, + std::string_view label) : fSurfaceFlags(surfaceFlags) , fFormat(format) , fDimensions(dimensions) , fFit(fit) , fBudgeted(budgeted) , fUseAllocator(useAllocator) - , fIsProtected(isProtected) { + , fIsProtected(isProtected) + , fLabel(label) { SkASSERT(fFormat.isValid()); SkASSERT(is_valid_non_lazy(dimensions)); } @@ -67,7 +70,8 @@ GrSurfaceProxy::GrSurfaceProxy(LazyInstantiateCallback&& callback, SkBudgeted budgeted, GrProtected isProtected, GrInternalSurfaceFlags surfaceFlags, - UseAllocator useAllocator) + UseAllocator useAllocator, + std::string_view label) : fSurfaceFlags(surfaceFlags) , fFormat(format) , fDimensions(dimensions) @@ -75,7 +79,8 @@ GrSurfaceProxy::GrSurfaceProxy(LazyInstantiateCallback&& callback, , fBudgeted(budgeted) , fUseAllocator(useAllocator) , fLazyInstantiateCallback(std::move(callback)) - , fIsProtected(isProtected) { + , fIsProtected(isProtected) + , fLabel(label) { SkASSERT(fFormat.isValid()); SkASSERT(fLazyInstantiateCallback); SkASSERT(is_valid_lazy(dimensions, fit)); @@ -95,7 +100,8 @@ GrSurfaceProxy::GrSurfaceProxy(sk_sp surface, : SkBudgeted::kNo) , fUseAllocator(useAllocator) , fUniqueID(fTarget->uniqueID()) // Note: converting from unique resource ID to a proxy ID! - , fIsProtected(fTarget->isProtected() ? GrProtected::kYes : GrProtected::kNo) { + , fIsProtected(fTarget->isProtected() ? GrProtected::kYes : GrProtected::kNo) + , fLabel(fTarget->getLabel()) { SkASSERT(fFormat.isValid()); } diff --git a/third_party/skia/src/gpu/GrSurfaceProxy.h b/third_party/skia/src/gpu/ganesh/GrSurfaceProxy.h similarity index 98% rename from third_party/skia/src/gpu/GrSurfaceProxy.h rename to third_party/skia/src/gpu/ganesh/GrSurfaceProxy.h index 01a1d21efeea..8e8ecd2a6215 100644 --- a/third_party/skia/src/gpu/GrSurfaceProxy.h +++ b/third_party/skia/src/gpu/ganesh/GrSurfaceProxy.h @@ -11,9 +11,9 @@ #include "include/core/SkRect.h" #include "include/gpu/GrBackendSurface.h" #include "include/private/SkNoncopyable.h" -#include "src/gpu/GrGpuResource.h" -#include "src/gpu/GrSurface.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrGpuResource.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/GrTexture.h" class GrCaps; class GrContext_Base; @@ -366,7 +366,8 @@ class GrSurfaceProxy : public SkNVRefCnt { SkBudgeted, GrProtected, GrInternalSurfaceFlags, - UseAllocator); + UseAllocator, + std::string_view label); // Lazy-callback version - takes a new UniqueID from the shared resource/proxy pool. GrSurfaceProxy(LazyInstantiateCallback&&, const GrBackendFormat&, @@ -375,15 +376,14 @@ class GrSurfaceProxy : public SkNVRefCnt { SkBudgeted, GrProtected, GrInternalSurfaceFlags, - UseAllocator); + UseAllocator, + std::string_view label); // Wrapped version - shares the UniqueID of the passed surface. // Takes UseAllocator because even though this is already instantiated it still can participate // in allocation by having its backing resource recycled to other uninstantiated proxies or // not depending on UseAllocator. - GrSurfaceProxy(sk_sp, - SkBackingFit, - UseAllocator); + GrSurfaceProxy(sk_sp, SkBackingFit, UseAllocator); friend class GrSurfaceProxyPriv; @@ -459,6 +459,8 @@ class GrSurfaceProxy : public SkNVRefCnt { int fTaskTargetCount = 0; + const std::string fLabel; + // This entry is lazily evaluated so, when the proxy wraps a resource, the resource // will be called but, when the proxy is deferred, it will compute the answer itself. // If the proxy computes its own answer that answer is checked (in debug mode) in diff --git a/third_party/skia/src/gpu/GrSurfaceProxyPriv.h b/third_party/skia/src/gpu/ganesh/GrSurfaceProxyPriv.h similarity index 98% rename from third_party/skia/src/gpu/GrSurfaceProxyPriv.h rename to third_party/skia/src/gpu/ganesh/GrSurfaceProxyPriv.h index be57b701eb00..f715af761b2a 100644 --- a/third_party/skia/src/gpu/GrSurfaceProxyPriv.h +++ b/third_party/skia/src/gpu/ganesh/GrSurfaceProxyPriv.h @@ -8,7 +8,7 @@ #ifndef GrSurfaceProxyPriv_DEFINED #define GrSurfaceProxyPriv_DEFINED -#include "src/gpu/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" class GrResourceProvider; diff --git a/third_party/skia/src/gpu/GrSurfaceProxyView.h b/third_party/skia/src/gpu/ganesh/GrSurfaceProxyView.h similarity index 97% rename from third_party/skia/src/gpu/GrSurfaceProxyView.h rename to third_party/skia/src/gpu/ganesh/GrSurfaceProxyView.h index 98e2a052a43c..a9bff349722c 100644 --- a/third_party/skia/src/gpu/GrSurfaceProxyView.h +++ b/third_party/skia/src/gpu/ganesh/GrSurfaceProxyView.h @@ -10,10 +10,10 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/GrTypes.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrTextureProxy.h" #include "src/gpu/Swizzle.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrTextureProxy.h" class GrSurfaceProxyView { public: diff --git a/third_party/skia/src/gpu/GrTTopoSort.h b/third_party/skia/src/gpu/ganesh/GrTTopoSort.h similarity index 100% rename from third_party/skia/src/gpu/GrTTopoSort.h rename to third_party/skia/src/gpu/ganesh/GrTTopoSort.h diff --git a/third_party/skia/src/gpu/GrTestUtils.cpp b/third_party/skia/src/gpu/ganesh/GrTestUtils.cpp similarity index 98% rename from third_party/skia/src/gpu/GrTestUtils.cpp rename to third_party/skia/src/gpu/ganesh/GrTestUtils.cpp index f8822528dedc..a22d92656ea3 100644 --- a/third_party/skia/src/gpu/GrTestUtils.cpp +++ b/third_party/skia/src/gpu/ganesh/GrTestUtils.cpp @@ -5,15 +5,16 @@ * found in the LICENSE file. */ -#include "src/gpu/GrTestUtils.h" +#include "src/gpu/ganesh/GrTestUtils.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkMatrix.h" #include "include/core/SkPathBuilder.h" #include "include/core/SkRRect.h" #include "src/core/SkRectPriv.h" -#include "src/gpu/GrColorInfo.h" -#include "src/gpu/GrProcessorUnitTest.h" -#include "src/gpu/GrStyle.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/GrProcessorUnitTest.h" +#include "src/gpu/ganesh/GrStyle.h" #include "src/utils/SkDashPathPriv.h" #if GR_TEST_UTILS diff --git a/third_party/skia/src/gpu/GrTestUtils.h b/third_party/skia/src/gpu/ganesh/GrTestUtils.h similarity index 96% rename from third_party/skia/src/gpu/GrTestUtils.h rename to third_party/skia/src/gpu/ganesh/GrTestUtils.h index bc6e457a4093..bb18cae6033c 100644 --- a/third_party/skia/src/gpu/GrTestUtils.h +++ b/third_party/skia/src/gpu/ganesh/GrTestUtils.h @@ -18,9 +18,9 @@ #include "include/utils/SkRandom.h" #include "src/core/SkMatrixProvider.h" #include "src/core/SkPathEffectBase.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrFPArgs.h" -#include "src/gpu/GrSamplerState.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrFPArgs.h" +#include "src/gpu/ganesh/GrSamplerState.h" #include "src/shaders/SkShaderBase.h" class GrColorInfo; diff --git a/third_party/skia/src/gpu/GrTexture.cpp b/third_party/skia/src/gpu/ganesh/GrTexture.cpp similarity index 92% rename from third_party/skia/src/gpu/GrTexture.cpp rename to third_party/skia/src/gpu/ganesh/GrTexture.cpp index d36c551c7a6f..274ff194628b 100644 --- a/third_party/skia/src/gpu/GrTexture.cpp +++ b/third_party/skia/src/gpu/ganesh/GrTexture.cpp @@ -9,15 +9,15 @@ #include "include/core/SkTypes.h" #include "include/gpu/GrTypes.h" #include "src/core/SkMipmap.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrTexture.h" #ifdef SK_DEBUG #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #endif void GrTexture::markMipmapsDirty() { @@ -41,8 +41,9 @@ GrTexture::GrTexture(GrGpu* gpu, const SkISize& dimensions, GrProtected isProtected, GrTextureType textureType, - GrMipmapStatus mipmapStatus) - : INHERITED(gpu, dimensions, isProtected) + GrMipmapStatus mipmapStatus, + std::string_view label) + : INHERITED(gpu, dimensions, isProtected, label) , fTextureType(textureType) , fMipmapStatus(mipmapStatus) { if (fMipmapStatus == GrMipmapStatus::kNotAllocated) { diff --git a/third_party/skia/src/gpu/GrTexture.h b/third_party/skia/src/gpu/ganesh/GrTexture.h similarity index 91% rename from third_party/skia/src/gpu/GrTexture.h rename to third_party/skia/src/gpu/ganesh/GrTexture.h index 61049dc7f399..c14ea59dc436 100644 --- a/third_party/skia/src/gpu/GrTexture.h +++ b/third_party/skia/src/gpu/ganesh/GrTexture.h @@ -13,8 +13,8 @@ #include "include/core/SkPoint.h" #include "include/core/SkRefCnt.h" #include "include/gpu/GrBackendSurface.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrSurface.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrSurface.h" class GrTexture : virtual public GrSurface { public: @@ -64,7 +64,12 @@ class GrTexture : virtual public GrSurface { skgpu::ScratchKey* key); protected: - GrTexture(GrGpu*, const SkISize&, GrProtected, GrTextureType, GrMipmapStatus); + GrTexture(GrGpu*, + const SkISize&, + GrProtected, + GrTextureType, + GrMipmapStatus, + std::string_view label); virtual bool onStealBackendTexture(GrBackendTexture*, SkImage::BackendTextureReleaseProc*) = 0; diff --git a/third_party/skia/src/gpu/GrTextureProxy.cpp b/third_party/skia/src/gpu/ganesh/GrTextureProxy.cpp similarity index 92% rename from third_party/skia/src/gpu/GrTextureProxy.cpp rename to third_party/skia/src/gpu/ganesh/GrTextureProxy.cpp index 13095595474e..73c5f61a97c0 100644 --- a/third_party/skia/src/gpu/GrTextureProxy.cpp +++ b/third_party/skia/src/gpu/ganesh/GrTextureProxy.cpp @@ -5,16 +5,16 @@ * found in the LICENSE file. */ -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/GrTextureProxyPriv.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/GrTextureProxyPriv.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDeferredProxyUploader.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrSurface.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrDeferredProxyUploader.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/GrTexture.h" // Deferred version - no data GrTextureProxy::GrTextureProxy(const GrBackendFormat& format, @@ -26,8 +26,9 @@ GrTextureProxy::GrTextureProxy(const GrBackendFormat& format, GrProtected isProtected, GrInternalSurfaceFlags surfaceFlags, UseAllocator useAllocator, - GrDDLProvider creatingProvider) - : INHERITED(format, dimensions, fit, budgeted, isProtected, surfaceFlags, useAllocator) + GrDDLProvider creatingProvider, + std::string_view label) + : INHERITED(format, dimensions, fit, budgeted, isProtected, surfaceFlags, useAllocator, label) , fMipmapped(mipMapped) , fMipmapStatus(mipmapStatus) SkDEBUGCODE(, fInitialMipmapStatus(fMipmapStatus)) @@ -51,9 +52,10 @@ GrTextureProxy::GrTextureProxy(LazyInstantiateCallback&& callback, GrProtected isProtected, GrInternalSurfaceFlags surfaceFlags, UseAllocator useAllocator, - GrDDLProvider creatingProvider) + GrDDLProvider creatingProvider, + std::string_view label) : INHERITED(std::move(callback), format, dimensions, fit, budgeted, isProtected, - surfaceFlags, useAllocator) + surfaceFlags, useAllocator, label) , fMipmapped(mipMapped) , fMipmapStatus(mipmapStatus) SkDEBUGCODE(, fInitialMipmapStatus(fMipmapStatus)) diff --git a/third_party/skia/src/gpu/GrTextureProxy.h b/third_party/skia/src/gpu/ganesh/GrTextureProxy.h similarity index 96% rename from third_party/skia/src/gpu/GrTextureProxy.h rename to third_party/skia/src/gpu/ganesh/GrTextureProxy.h index 6879501bcf7e..008b7876d3dd 100644 --- a/third_party/skia/src/gpu/GrTextureProxy.h +++ b/third_party/skia/src/gpu/ganesh/GrTextureProxy.h @@ -9,8 +9,8 @@ #define GrTextureProxy_DEFINED #include "include/gpu/GrBackendSurface.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" class GrCaps; class GrDeferredProxyUploader; @@ -118,7 +118,8 @@ class GrTextureProxy : virtual public GrSurfaceProxy { GrProtected, GrInternalSurfaceFlags, UseAllocator, - GrDDLProvider creatingProvider); + GrDDLProvider creatingProvider, + std::string_view label); // Lazy-callback version // There are two main use cases for lazily-instantiated proxies: @@ -140,10 +141,13 @@ class GrTextureProxy : virtual public GrSurfaceProxy { GrProtected, GrInternalSurfaceFlags, UseAllocator, - GrDDLProvider creatingProvider); + GrDDLProvider creatingProvider, + std::string_view label); // Wrapped version - GrTextureProxy(sk_sp, UseAllocator, GrDDLProvider creatingProvider); + GrTextureProxy(sk_sp, + UseAllocator, + GrDDLProvider creatingProvider); ~GrTextureProxy() override; diff --git a/third_party/skia/src/gpu/GrTextureProxyCacheAccess.h b/third_party/skia/src/gpu/ganesh/GrTextureProxyCacheAccess.h similarity index 96% rename from third_party/skia/src/gpu/GrTextureProxyCacheAccess.h rename to third_party/skia/src/gpu/ganesh/GrTextureProxyCacheAccess.h index 2748b51b003a..fea713a1015c 100644 --- a/third_party/skia/src/gpu/GrTextureProxyCacheAccess.h +++ b/third_party/skia/src/gpu/ganesh/GrTextureProxyCacheAccess.h @@ -8,7 +8,7 @@ #ifndef GrTextureProxyCacheAccess_DEFINED #define GrTextureProxyCacheAccess_DEFINED -#include "src/gpu/GrTextureProxy.h" +#include "src/gpu/ganesh/GrTextureProxy.h" /** * This class allows GrResourceCache increased privileged access to GrTextureProxy objects. diff --git a/third_party/skia/src/gpu/GrTextureProxyPriv.h b/third_party/skia/src/gpu/ganesh/GrTextureProxyPriv.h similarity index 97% rename from third_party/skia/src/gpu/GrTextureProxyPriv.h rename to third_party/skia/src/gpu/ganesh/GrTextureProxyPriv.h index 6b48b1b66962..7b6fbcbef680 100644 --- a/third_party/skia/src/gpu/GrTextureProxyPriv.h +++ b/third_party/skia/src/gpu/ganesh/GrTextureProxyPriv.h @@ -8,7 +8,7 @@ #ifndef GrTextureProxyPriv_DEFINED #define GrTextureProxyPriv_DEFINED -#include "src/gpu/GrTextureProxy.h" +#include "src/gpu/ganesh/GrTextureProxy.h" class GrDeferredProxyUploader; class GrOpFlushState; diff --git a/third_party/skia/src/gpu/GrTextureRenderTargetProxy.cpp b/third_party/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.cpp similarity index 80% rename from third_party/skia/src/gpu/GrTextureRenderTargetProxy.cpp rename to third_party/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.cpp index f31ced578418..d398c0b25b62 100644 --- a/third_party/skia/src/gpu/GrTextureRenderTargetProxy.cpp +++ b/third_party/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/GrTextureRenderTargetProxy.h" +#include "src/gpu/ganesh/GrTextureRenderTargetProxy.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrSurface.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxyPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxyPriv.h" #ifdef SK_DEBUG #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #endif // Deferred version @@ -33,13 +33,15 @@ GrTextureRenderTargetProxy::GrTextureRenderTargetProxy(const GrCaps& caps, GrProtected isProtected, GrInternalSurfaceFlags surfaceFlags, UseAllocator useAllocator, - GrDDLProvider creatingProvider) - : GrSurfaceProxy(format, dimensions, fit, budgeted, isProtected, surfaceFlags, useAllocator) + GrDDLProvider creatingProvider, + std::string_view label) + : GrSurfaceProxy( + format, dimensions, fit, budgeted, isProtected, surfaceFlags, useAllocator, label) // for now textures w/ data are always wrapped , GrRenderTargetProxy(caps, format, dimensions, sampleCnt, fit, budgeted, isProtected, - surfaceFlags, useAllocator) + surfaceFlags, useAllocator, label) , GrTextureProxy(format, dimensions, mipMapped, mipmapStatus, fit, budgeted, isProtected, - surfaceFlags, useAllocator, creatingProvider) { + surfaceFlags, useAllocator, creatingProvider, label) { this->initSurfaceFlags(caps); } @@ -56,17 +58,42 @@ GrTextureRenderTargetProxy::GrTextureRenderTargetProxy(const GrCaps& caps, GrProtected isProtected, GrInternalSurfaceFlags surfaceFlags, UseAllocator useAllocator, - GrDDLProvider creatingProvider) - : GrSurfaceProxy(std::move(callback), format, dimensions, fit, budgeted, isProtected, - surfaceFlags, useAllocator) + GrDDLProvider creatingProvider, + std::string_view label) + : GrSurfaceProxy(std::move(callback), + format, + dimensions, + fit, + budgeted, + isProtected, + surfaceFlags, + useAllocator, + label) // Since we have virtual inheritance, we initialize GrSurfaceProxy directly. Send null // callbacks to the texture and RT proxies simply to route to the appropriate constructors. - , GrRenderTargetProxy(LazyInstantiateCallback(), format, dimensions, sampleCnt, fit, - budgeted, isProtected, surfaceFlags, useAllocator, - WrapsVkSecondaryCB::kNo) - , GrTextureProxy(LazyInstantiateCallback(), format, dimensions, mipMapped, mipmapStatus, - fit, budgeted, isProtected, surfaceFlags, useAllocator, - creatingProvider) { + , GrRenderTargetProxy(LazyInstantiateCallback(), + format, + dimensions, + sampleCnt, + fit, + budgeted, + isProtected, + surfaceFlags, + useAllocator, + WrapsVkSecondaryCB::kNo, + label) + , GrTextureProxy(LazyInstantiateCallback(), + format, + dimensions, + mipMapped, + mipmapStatus, + fit, + budgeted, + isProtected, + surfaceFlags, + useAllocator, + creatingProvider, + label) { this->initSurfaceFlags(caps); } diff --git a/third_party/skia/src/gpu/GrTextureRenderTargetProxy.h b/third_party/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.h similarity index 88% rename from third_party/skia/src/gpu/GrTextureRenderTargetProxy.h rename to third_party/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.h index 6cefe82c857d..ed6ce8fb758c 100644 --- a/third_party/skia/src/gpu/GrTextureRenderTargetProxy.h +++ b/third_party/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.h @@ -8,8 +8,8 @@ #ifndef GrTextureRenderTargetProxy_DEFINED #define GrTextureRenderTargetProxy_DEFINED -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrTextureProxy.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrTextureProxy.h" #ifdef SK_BUILD_FOR_WIN // Windows gives warnings about inheriting asTextureProxy/asRenderTargetProxy via dominance. @@ -39,7 +39,8 @@ class GrTextureRenderTargetProxy : public GrRenderTargetProxy, public GrTextureP GrProtected, GrInternalSurfaceFlags, UseAllocator, - GrDDLProvider creatingProvider); + GrDDLProvider creatingProvider, + std::string_view label); // Lazy-callback version GrTextureRenderTargetProxy(const GrCaps&, @@ -54,7 +55,8 @@ class GrTextureRenderTargetProxy : public GrRenderTargetProxy, public GrTextureP GrProtected, GrInternalSurfaceFlags, UseAllocator, - GrDDLProvider creatingProvider); + GrDDLProvider creatingProvider, + std::string_view label); // Wrapped version GrTextureRenderTargetProxy(sk_sp, diff --git a/third_party/skia/src/gpu/GrTextureResolveManager.h b/third_party/skia/src/gpu/ganesh/GrTextureResolveManager.h similarity index 95% rename from third_party/skia/src/gpu/GrTextureResolveManager.h rename to third_party/skia/src/gpu/ganesh/GrTextureResolveManager.h index 46d35ca6035c..86e57c9bf9ed 100644 --- a/third_party/skia/src/gpu/GrTextureResolveManager.h +++ b/third_party/skia/src/gpu/ganesh/GrTextureResolveManager.h @@ -9,7 +9,7 @@ #define GrTextureResolveManager_DEFINED #include "include/core/SkRefCnt.h" -#include "src/gpu/GrDrawingManager.h" +#include "src/gpu/ganesh/GrDrawingManager.h" class GrCaps; class GrDrawingManager; diff --git a/third_party/skia/src/gpu/GrTextureResolveRenderTask.cpp b/third_party/skia/src/gpu/ganesh/GrTextureResolveRenderTask.cpp similarity index 92% rename from third_party/skia/src/gpu/GrTextureResolveRenderTask.cpp rename to third_party/skia/src/gpu/ganesh/GrTextureResolveRenderTask.cpp index f07999427941..1b5dd1300cd5 100644 --- a/third_party/skia/src/gpu/GrTextureResolveRenderTask.cpp +++ b/third_party/skia/src/gpu/ganesh/GrTextureResolveRenderTask.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/GrTextureResolveRenderTask.h" +#include "src/gpu/ganesh/GrTextureResolveRenderTask.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceAllocator.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceAllocator.h" +#include "src/gpu/ganesh/GrTexture.h" void GrTextureResolveRenderTask::addProxy(GrDrawingManager* drawingMgr, sk_sp proxyRef, diff --git a/third_party/skia/src/gpu/GrTextureResolveRenderTask.h b/third_party/skia/src/gpu/ganesh/GrTextureResolveRenderTask.h similarity index 96% rename from third_party/skia/src/gpu/GrTextureResolveRenderTask.h rename to third_party/skia/src/gpu/ganesh/GrTextureResolveRenderTask.h index df2de81c3452..83cd4c1b4e4f 100644 --- a/third_party/skia/src/gpu/GrTextureResolveRenderTask.h +++ b/third_party/skia/src/gpu/ganesh/GrTextureResolveRenderTask.h @@ -8,7 +8,7 @@ #ifndef GrTextureResolveRenderTask_DEFINED #define GrTextureResolveRenderTask_DEFINED -#include "src/gpu/GrRenderTask.h" +#include "src/gpu/ganesh/GrRenderTask.h" class GrTextureResolveRenderTask final : public GrRenderTask { public: diff --git a/third_party/skia/src/gpu/GrThreadSafeCache.cpp b/third_party/skia/src/gpu/ganesh/GrThreadSafeCache.cpp similarity index 98% rename from third_party/skia/src/gpu/GrThreadSafeCache.cpp rename to third_party/skia/src/gpu/ganesh/GrThreadSafeCache.cpp index 03f54663bf41..4e503c455d4a 100644 --- a/third_party/skia/src/gpu/GrThreadSafeCache.cpp +++ b/third_party/skia/src/gpu/ganesh/GrThreadSafeCache.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/GrThreadSafeCache.h" +#include "src/gpu/ganesh/GrThreadSafeCache.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrResourceCache.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrResourceCache.h" GrThreadSafeCache::VertexData::~VertexData () { this->reset(); diff --git a/third_party/skia/src/gpu/GrThreadSafeCache.h b/third_party/skia/src/gpu/ganesh/GrThreadSafeCache.h similarity index 99% rename from third_party/skia/src/gpu/GrThreadSafeCache.h rename to third_party/skia/src/gpu/ganesh/GrThreadSafeCache.h index 61a8664ae197..da2788e2c71f 100644 --- a/third_party/skia/src/gpu/GrThreadSafeCache.h +++ b/third_party/skia/src/gpu/ganesh/GrThreadSafeCache.h @@ -13,8 +13,8 @@ #include "src/core/SkArenaAlloc.h" #include "src/core/SkTDynamicHash.h" #include "src/core/SkTInternalLList.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" // Ganesh creates a lot of utility textures (e.g., blurred-rrect masks) that need to be shared // between the direct context and all the DDL recording contexts. This thread-safe cache diff --git a/third_party/skia/src/gpu/GrThreadSafePipelineBuilder.cpp b/third_party/skia/src/gpu/ganesh/GrThreadSafePipelineBuilder.cpp similarity index 97% rename from third_party/skia/src/gpu/GrThreadSafePipelineBuilder.cpp rename to third_party/skia/src/gpu/ganesh/GrThreadSafePipelineBuilder.cpp index 1a522cefef20..4b4d3a811e45 100644 --- a/third_party/skia/src/gpu/GrThreadSafePipelineBuilder.cpp +++ b/third_party/skia/src/gpu/ganesh/GrThreadSafePipelineBuilder.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/GrThreadSafePipelineBuilder.h" +#include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" #if GR_GPU_STATS #if GR_TEST_UTILS diff --git a/third_party/skia/src/gpu/GrThreadSafePipelineBuilder.h b/third_party/skia/src/gpu/ganesh/GrThreadSafePipelineBuilder.h similarity index 100% rename from third_party/skia/src/gpu/GrThreadSafePipelineBuilder.h rename to third_party/skia/src/gpu/ganesh/GrThreadSafePipelineBuilder.h diff --git a/third_party/skia/src/gpu/GrTracing.h b/third_party/skia/src/gpu/ganesh/GrTracing.h similarity index 93% rename from third_party/skia/src/gpu/GrTracing.h rename to third_party/skia/src/gpu/ganesh/GrTracing.h index 8b5dbf114674..8b9f207b5fdc 100644 --- a/third_party/skia/src/gpu/GrTracing.h +++ b/third_party/skia/src/gpu/ganesh/GrTracing.h @@ -10,7 +10,7 @@ #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrAuditTrail.h" +#include "src/gpu/ganesh/GrAuditTrail.h" /** * Context level GrTracing macros, classname and op are const char*, context is GrContext diff --git a/third_party/skia/src/gpu/GrTransferFromRenderTask.cpp b/third_party/skia/src/gpu/ganesh/GrTransferFromRenderTask.cpp similarity index 83% rename from third_party/skia/src/gpu/GrTransferFromRenderTask.cpp rename to third_party/skia/src/gpu/ganesh/GrTransferFromRenderTask.cpp index ca44accd753b..6184e4087536 100644 --- a/third_party/skia/src/gpu/GrTransferFromRenderTask.cpp +++ b/third_party/skia/src/gpu/ganesh/GrTransferFromRenderTask.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/GrTransferFromRenderTask.h" +#include "src/gpu/ganesh/GrTransferFromRenderTask.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrResourceAllocator.h" -#include "src/gpu/GrResourceProvider.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrResourceAllocator.h" +#include "src/gpu/ganesh/GrResourceProvider.h" void GrTransferFromRenderTask::gatherProxyIntervals(GrResourceAllocator* alloc) const { // This renderTask doesn't have "normal" ops. In this case we still need to add an interval (so diff --git a/third_party/skia/src/gpu/GrTransferFromRenderTask.h b/third_party/skia/src/gpu/ganesh/GrTransferFromRenderTask.h similarity index 97% rename from third_party/skia/src/gpu/GrTransferFromRenderTask.h rename to third_party/skia/src/gpu/ganesh/GrTransferFromRenderTask.h index cdcdb29b746e..dba60ed0134c 100644 --- a/third_party/skia/src/gpu/GrTransferFromRenderTask.h +++ b/third_party/skia/src/gpu/ganesh/GrTransferFromRenderTask.h @@ -8,7 +8,7 @@ #ifndef GrTransferFromRenderTask_DEFINED #define GrTransferFromRenderTask_DEFINED -#include "src/gpu/GrRenderTask.h" +#include "src/gpu/ganesh/GrRenderTask.h" class GrTransferFromRenderTask final : public GrRenderTask { public: diff --git a/third_party/skia/src/gpu/GrUniformDataManager.cpp b/third_party/skia/src/gpu/ganesh/GrUniformDataManager.cpp similarity index 99% rename from third_party/skia/src/gpu/GrUniformDataManager.cpp rename to third_party/skia/src/gpu/ganesh/GrUniformDataManager.cpp index 19a7df530d20..04cfc7fb540a 100644 --- a/third_party/skia/src/gpu/GrUniformDataManager.cpp +++ b/third_party/skia/src/gpu/ganesh/GrUniformDataManager.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/GrUniformDataManager.h" +#include "src/gpu/ganesh/GrUniformDataManager.h" #include "include/private/SkHalf.h" -#include "src/gpu/GrShaderVar.h" +#include "src/gpu/ganesh/GrShaderVar.h" // ensure that these types are the sizes the uniform data is expecting static_assert(sizeof(int32_t) == 4); diff --git a/third_party/skia/src/gpu/GrUniformDataManager.h b/third_party/skia/src/gpu/ganesh/GrUniformDataManager.h similarity index 97% rename from third_party/skia/src/gpu/GrUniformDataManager.h rename to third_party/skia/src/gpu/ganesh/GrUniformDataManager.h index 69eb17b7c555..6d1984a13c34 100644 --- a/third_party/skia/src/gpu/GrUniformDataManager.h +++ b/third_party/skia/src/gpu/ganesh/GrUniformDataManager.h @@ -8,10 +8,10 @@ #ifndef GrUniformDataManager_DEFINED #define GrUniformDataManager_DEFINED -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkTArray.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkAutoMalloc.h" #include "src/core/SkSLTypeShared.h" diff --git a/third_party/skia/src/gpu/GrUserStencilSettings.h b/third_party/skia/src/gpu/ganesh/GrUserStencilSettings.h similarity index 100% rename from third_party/skia/src/gpu/GrUserStencilSettings.h rename to third_party/skia/src/gpu/ganesh/GrUserStencilSettings.h diff --git a/third_party/skia/src/gpu/GrUtil.cpp b/third_party/skia/src/gpu/ganesh/GrUtil.cpp similarity index 97% rename from third_party/skia/src/gpu/GrUtil.cpp rename to third_party/skia/src/gpu/ganesh/GrUtil.cpp index 3e35e84173cb..e24490a7b73c 100644 --- a/third_party/skia/src/gpu/GrUtil.cpp +++ b/third_party/skia/src/gpu/ganesh/GrUtil.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/GrUtil.h" +#include "src/gpu/ganesh/GrUtil.h" #include "src/core/SkDrawProcs.h" -#include "src/gpu/GrStyle.h" +#include "src/gpu/ganesh/GrStyle.h" GrIntelGpuFamily GrGetIntelGpuFamily(uint32_t deviceID) { // https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units diff --git a/third_party/skia/src/gpu/GrUtil.h b/third_party/skia/src/gpu/ganesh/GrUtil.h similarity index 96% rename from third_party/skia/src/gpu/GrUtil.h rename to third_party/skia/src/gpu/ganesh/GrUtil.h index f160f4ef21cb..cbe7168dfc8a 100644 --- a/third_party/skia/src/gpu/GrUtil.h +++ b/third_party/skia/src/gpu/ganesh/GrUtil.h @@ -9,7 +9,7 @@ #include "include/core/SkScalar.h" #include "include/core/SkTypes.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkSLTypeShared.h" class GrStyle; diff --git a/third_party/skia/src/gpu/GrVertexChunkArray.cpp b/third_party/skia/src/gpu/ganesh/GrVertexChunkArray.cpp similarity index 94% rename from third_party/skia/src/gpu/GrVertexChunkArray.cpp rename to third_party/skia/src/gpu/ganesh/GrVertexChunkArray.cpp index 5a43227eb2ff..d0a0dd6cfa80 100644 --- a/third_party/skia/src/gpu/GrVertexChunkArray.cpp +++ b/third_party/skia/src/gpu/ganesh/GrVertexChunkArray.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/GrVertexChunkArray.h" +#include "src/gpu/ganesh/GrVertexChunkArray.h" -#include "src/gpu/GrMeshDrawTarget.h" +#include "src/gpu/ganesh/GrMeshDrawTarget.h" GrVertexChunkBuilder::~GrVertexChunkBuilder() { if (!fChunks->empty()) { diff --git a/third_party/skia/src/gpu/GrVertexChunkArray.h b/third_party/skia/src/gpu/ganesh/GrVertexChunkArray.h similarity index 86% rename from third_party/skia/src/gpu/GrVertexChunkArray.h rename to third_party/skia/src/gpu/ganesh/GrVertexChunkArray.h index 5de51f3005bf..8e77eea9ff21 100644 --- a/third_party/skia/src/gpu/GrVertexChunkArray.h +++ b/third_party/skia/src/gpu/ganesh/GrVertexChunkArray.h @@ -12,7 +12,7 @@ #include "include/private/SkNoncopyable.h" #include "include/private/SkTArray.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrBuffer.h" +#include "src/gpu/ganesh/GrBuffer.h" class GrMeshDrawTarget; @@ -32,10 +32,12 @@ struct GrVertexChunk { using GrVertexChunkArray = SkSTArray<1, GrVertexChunk>; // Builds a GrVertexChunkArray. The provided Target must not be used externally throughout the -// entire lifetime of this object. +// entire lifetime of this object. GrVertexChunkBuilder is drop-in compatible for the PatchAllocator +// parameter to PatchWriter. class GrVertexChunkBuilder : SkNoncopyable { public: - GrVertexChunkBuilder(GrMeshDrawTarget* target, GrVertexChunkArray* chunks, size_t stride, + // Stride must come first to be compatible with PatchWriter's templating. + GrVertexChunkBuilder(size_t stride, GrMeshDrawTarget* target, GrVertexChunkArray* chunks, int minVerticesPerChunk) : fTarget(target) , fChunks(chunks) @@ -63,7 +65,8 @@ class GrVertexChunkBuilder : SkNoncopyable { fCurrChunkVertexWriter.makeOffset(fStride * count)); } - SK_ALWAYS_INLINE skgpu::VertexWriter appendVertex() { return this->appendVertices(1); } + // PatchWriter's allocator template requires an append() function + SK_ALWAYS_INLINE skgpu::VertexWriter append() { return this->appendVertices(1); } // Pops the most recent 'count' contiguous vertices. Since there is no guarantee of contiguity // between appends, 'count' may be no larger than the most recent call to appendVertices(). diff --git a/third_party/skia/src/gpu/GrVx.h b/third_party/skia/src/gpu/ganesh/GrVx.h similarity index 100% rename from third_party/skia/src/gpu/GrVx.h rename to third_party/skia/src/gpu/ganesh/GrVx.h diff --git a/third_party/skia/src/gpu/GrWaitRenderTask.cpp b/third_party/skia/src/gpu/ganesh/GrWaitRenderTask.cpp similarity index 87% rename from third_party/skia/src/gpu/GrWaitRenderTask.cpp rename to third_party/skia/src/gpu/ganesh/GrWaitRenderTask.cpp index 9eadd8923121..c11a5d108d3c 100644 --- a/third_party/skia/src/gpu/GrWaitRenderTask.cpp +++ b/third_party/skia/src/gpu/ganesh/GrWaitRenderTask.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/GrWaitRenderTask.h" +#include "src/gpu/ganesh/GrWaitRenderTask.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrResourceAllocator.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrResourceAllocator.h" void GrWaitRenderTask::gatherProxyIntervals(GrResourceAllocator* alloc) const { // This renderTask doesn't have "normal" ops. In this case we still need to add an interval (so diff --git a/third_party/skia/src/gpu/GrWaitRenderTask.h b/third_party/skia/src/gpu/ganesh/GrWaitRenderTask.h similarity index 95% rename from third_party/skia/src/gpu/GrWaitRenderTask.h rename to third_party/skia/src/gpu/ganesh/GrWaitRenderTask.h index ca89b7f627f0..cefeab6e1f96 100644 --- a/third_party/skia/src/gpu/GrWaitRenderTask.h +++ b/third_party/skia/src/gpu/ganesh/GrWaitRenderTask.h @@ -8,8 +8,8 @@ #ifndef GrWaitRenderTask_DEFINED #define GrWaitRenderTask_DEFINED -#include "src/gpu/GrRenderTask.h" -#include "src/gpu/GrSemaphore.h" +#include "src/gpu/ganesh/GrRenderTask.h" +#include "src/gpu/ganesh/GrSemaphore.h" class GrWaitRenderTask final : public GrRenderTask { public: diff --git a/third_party/skia/src/gpu/GrWindowRectangles.h b/third_party/skia/src/gpu/ganesh/GrWindowRectangles.h similarity index 98% rename from third_party/skia/src/gpu/GrWindowRectangles.h rename to third_party/skia/src/gpu/ganesh/GrWindowRectangles.h index 66581629915e..c45b96ee97e2 100644 --- a/third_party/skia/src/gpu/GrWindowRectangles.h +++ b/third_party/skia/src/gpu/ganesh/GrWindowRectangles.h @@ -9,7 +9,7 @@ #define GrWindowRectangles_DEFINED #include "include/core/SkRect.h" -#include "src/gpu/GrNonAtomicRef.h" +#include "src/gpu/ganesh/GrNonAtomicRef.h" class GrWindowRectangles { public: diff --git a/third_party/skia/src/gpu/GrWindowRectsState.h b/third_party/skia/src/gpu/ganesh/GrWindowRectsState.h similarity index 96% rename from third_party/skia/src/gpu/GrWindowRectsState.h rename to third_party/skia/src/gpu/ganesh/GrWindowRectsState.h index 59ff938bfdd5..46427c9cb6c7 100644 --- a/third_party/skia/src/gpu/GrWindowRectsState.h +++ b/third_party/skia/src/gpu/ganesh/GrWindowRectsState.h @@ -8,7 +8,7 @@ #ifndef GrWindowRectsState_DEFINED #define GrWindowRectsState_DEFINED -#include "src/gpu/GrWindowRectangles.h" +#include "src/gpu/ganesh/GrWindowRectangles.h" class GrWindowRectsState { public: diff --git a/third_party/skia/src/gpu/GrWritePixelsRenderTask.cpp b/third_party/skia/src/gpu/ganesh/GrWritePixelsRenderTask.cpp similarity index 93% rename from third_party/skia/src/gpu/GrWritePixelsRenderTask.cpp rename to third_party/skia/src/gpu/ganesh/GrWritePixelsRenderTask.cpp index 46e3d13f323e..64d28ff12358 100644 --- a/third_party/skia/src/gpu/GrWritePixelsRenderTask.cpp +++ b/third_party/skia/src/gpu/ganesh/GrWritePixelsRenderTask.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/GrWritePixelsRenderTask.h" +#include "src/gpu/ganesh/GrWritePixelsRenderTask.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrResourceAllocator.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrResourceAllocator.h" sk_sp GrWritePixelsTask::Make(GrDrawingManager* dm, sk_sp dst, diff --git a/third_party/skia/src/gpu/GrWritePixelsRenderTask.h b/third_party/skia/src/gpu/ganesh/GrWritePixelsRenderTask.h similarity index 97% rename from third_party/skia/src/gpu/GrWritePixelsRenderTask.h rename to third_party/skia/src/gpu/ganesh/GrWritePixelsRenderTask.h index 64a39544376c..16526ac12e42 100644 --- a/third_party/skia/src/gpu/GrWritePixelsRenderTask.h +++ b/third_party/skia/src/gpu/ganesh/GrWritePixelsRenderTask.h @@ -8,7 +8,7 @@ #ifndef GrWritePixelsTask_DEFINED #define GrWritePixelsTask_DEFINED -#include "src/gpu/GrRenderTask.h" +#include "src/gpu/ganesh/GrRenderTask.h" class GrWritePixelsTask final : public GrRenderTask { public: diff --git a/third_party/skia/src/gpu/GrXferProcessor.cpp b/third_party/skia/src/gpu/ganesh/GrXferProcessor.cpp similarity index 84% rename from third_party/skia/src/gpu/GrXferProcessor.cpp rename to third_party/skia/src/gpu/ganesh/GrXferProcessor.cpp index 85351d04633d..91c6f349427a 100644 --- a/third_party/skia/src/gpu/GrXferProcessor.cpp +++ b/third_party/skia/src/gpu/ganesh/GrXferProcessor.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/GrXferProcessor.h" +#include "src/gpu/ganesh/GrXferProcessor.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrPipeline.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" GrXferProcessor::GrXferProcessor(ClassID classID) : INHERITED(classID) @@ -55,86 +55,86 @@ void GrXferProcessor::addToKey(const GrShaderCaps& caps, } #ifdef SK_DEBUG -static const char* equation_string(GrBlendEquation eq) { +static const char* equation_string(skgpu::BlendEquation eq) { switch (eq) { - case kAdd_GrBlendEquation: + case skgpu::BlendEquation::kAdd: return "add"; - case kSubtract_GrBlendEquation: + case skgpu::BlendEquation::kSubtract: return "subtract"; - case kReverseSubtract_GrBlendEquation: + case skgpu::BlendEquation::kReverseSubtract: return "reverse_subtract"; - case kScreen_GrBlendEquation: + case skgpu::BlendEquation::kScreen: return "screen"; - case kOverlay_GrBlendEquation: + case skgpu::BlendEquation::kOverlay: return "overlay"; - case kDarken_GrBlendEquation: + case skgpu::BlendEquation::kDarken: return "darken"; - case kLighten_GrBlendEquation: + case skgpu::BlendEquation::kLighten: return "lighten"; - case kColorDodge_GrBlendEquation: + case skgpu::BlendEquation::kColorDodge: return "color_dodge"; - case kColorBurn_GrBlendEquation: + case skgpu::BlendEquation::kColorBurn: return "color_burn"; - case kHardLight_GrBlendEquation: + case skgpu::BlendEquation::kHardLight: return "hard_light"; - case kSoftLight_GrBlendEquation: + case skgpu::BlendEquation::kSoftLight: return "soft_light"; - case kDifference_GrBlendEquation: + case skgpu::BlendEquation::kDifference: return "difference"; - case kExclusion_GrBlendEquation: + case skgpu::BlendEquation::kExclusion: return "exclusion"; - case kMultiply_GrBlendEquation: + case skgpu::BlendEquation::kMultiply: return "multiply"; - case kHSLHue_GrBlendEquation: + case skgpu::BlendEquation::kHSLHue: return "hsl_hue"; - case kHSLSaturation_GrBlendEquation: + case skgpu::BlendEquation::kHSLSaturation: return "hsl_saturation"; - case kHSLColor_GrBlendEquation: + case skgpu::BlendEquation::kHSLColor: return "hsl_color"; - case kHSLLuminosity_GrBlendEquation: + case skgpu::BlendEquation::kHSLLuminosity: return "hsl_luminosity"; - case kIllegal_GrBlendEquation: + case skgpu::BlendEquation::kIllegal: SkASSERT(false); return ""; } return ""; } -static const char* coeff_string(GrBlendCoeff coeff) { +static const char* coeff_string(skgpu::BlendCoeff coeff) { switch (coeff) { - case kZero_GrBlendCoeff: + case skgpu::BlendCoeff::kZero: return "zero"; - case kOne_GrBlendCoeff: + case skgpu::BlendCoeff::kOne: return "one"; - case kSC_GrBlendCoeff: + case skgpu::BlendCoeff::kSC: return "src_color"; - case kISC_GrBlendCoeff: + case skgpu::BlendCoeff::kISC: return "inv_src_color"; - case kDC_GrBlendCoeff: + case skgpu::BlendCoeff::kDC: return "dst_color"; - case kIDC_GrBlendCoeff: + case skgpu::BlendCoeff::kIDC: return "inv_dst_color"; - case kSA_GrBlendCoeff: + case skgpu::BlendCoeff::kSA: return "src_alpha"; - case kISA_GrBlendCoeff: + case skgpu::BlendCoeff::kISA: return "inv_src_alpha"; - case kDA_GrBlendCoeff: + case skgpu::BlendCoeff::kDA: return "dst_alpha"; - case kIDA_GrBlendCoeff: + case skgpu::BlendCoeff::kIDA: return "inv_dst_alpha"; - case kConstC_GrBlendCoeff: + case skgpu::BlendCoeff::kConstC: return "const_color"; - case kIConstC_GrBlendCoeff: + case skgpu::BlendCoeff::kIConstC: return "inv_const_color"; - case kS2C_GrBlendCoeff: + case skgpu::BlendCoeff::kS2C: return "src2_color"; - case kIS2C_GrBlendCoeff: + case skgpu::BlendCoeff::kIS2C: return "inv_src2_color"; - case kS2A_GrBlendCoeff: + case skgpu::BlendCoeff::kS2A: return "src2_alpha"; - case kIS2A_GrBlendCoeff: + case skgpu::BlendCoeff::kIS2A: return "inv_src2_alpha"; - case kIllegal_GrBlendCoeff: + case skgpu::BlendCoeff::kIllegal: SkASSERT(false); return ""; } diff --git a/third_party/skia/src/gpu/GrXferProcessor.h b/third_party/skia/src/gpu/ganesh/GrXferProcessor.h similarity index 96% rename from third_party/skia/src/gpu/GrXferProcessor.h rename to third_party/skia/src/gpu/ganesh/GrXferProcessor.h index cebc4298dd62..18ab3b1af72e 100644 --- a/third_party/skia/src/gpu/GrXferProcessor.h +++ b/third_party/skia/src/gpu/ganesh/GrXferProcessor.h @@ -9,12 +9,12 @@ #define GrXferProcessor_DEFINED #include "include/gpu/GrTypes.h" -#include "src/gpu/GrBlend.h" -#include "src/gpu/GrNonAtomicRef.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProcessorAnalysis.h" -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/Blend.h" +#include "src/gpu/ganesh/GrNonAtomicRef.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProcessorAnalysis.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" class GrGLSLXPFragmentBuilder; class GrGLSLProgramDataManager; @@ -92,11 +92,11 @@ class GrXferProcessor : public GrProcessor, public GrNonAtomicRefpriv().caps()); diff --git a/third_party/skia/src/gpu/SkGr.h b/third_party/skia/src/gpu/ganesh/SkGr.h similarity index 89% rename from third_party/skia/src/gpu/SkGr.h rename to third_party/skia/src/gpu/ganesh/SkGr.h index d1fc5a7f7a5f..1ac6320c1ae3 100644 --- a/third_party/skia/src/gpu/SkGr.h +++ b/third_party/skia/src/gpu/ganesh/SkGr.h @@ -16,10 +16,10 @@ #include "include/gpu/GrTypes.h" #include "include/private/SkColorData.h" #include "src/core/SkBlendModePriv.h" -#include "src/gpu/GrBlend.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrSamplerState.h" +#include "src/gpu/Blend.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrSamplerState.h" class GrCaps; class GrColorInfo; @@ -32,6 +32,7 @@ class GrResourceProvider; class GrTextureProxy; class SkBitmap; class SkData; +class SkIDChangeListener; class SkMatrix; class SkMatrixProvider; class SkPaint; @@ -115,16 +116,16 @@ bool SkPaintToGrPaintWithBlend(GrRecordingContext* context, //////////////////////////////////////////////////////////////////////////////// // Misc Sk to Gr type conversions -static_assert((int)kZero_GrBlendCoeff == (int)SkBlendModeCoeff::kZero); -static_assert((int)kOne_GrBlendCoeff == (int)SkBlendModeCoeff::kOne); -static_assert((int)kSC_GrBlendCoeff == (int)SkBlendModeCoeff::kSC); -static_assert((int)kISC_GrBlendCoeff == (int)SkBlendModeCoeff::kISC); -static_assert((int)kDC_GrBlendCoeff == (int)SkBlendModeCoeff::kDC); -static_assert((int)kIDC_GrBlendCoeff == (int)SkBlendModeCoeff::kIDC); -static_assert((int)kSA_GrBlendCoeff == (int)SkBlendModeCoeff::kSA); -static_assert((int)kISA_GrBlendCoeff == (int)SkBlendModeCoeff::kISA); -static_assert((int)kDA_GrBlendCoeff == (int)SkBlendModeCoeff::kDA); -static_assert((int)kIDA_GrBlendCoeff == (int)SkBlendModeCoeff::kIDA); +static_assert((int)skgpu::BlendCoeff::kZero == (int)SkBlendModeCoeff::kZero); +static_assert((int)skgpu::BlendCoeff::kOne == (int)SkBlendModeCoeff::kOne); +static_assert((int)skgpu::BlendCoeff::kSC == (int)SkBlendModeCoeff::kSC); +static_assert((int)skgpu::BlendCoeff::kISC == (int)SkBlendModeCoeff::kISC); +static_assert((int)skgpu::BlendCoeff::kDC == (int)SkBlendModeCoeff::kDC); +static_assert((int)skgpu::BlendCoeff::kIDC == (int)SkBlendModeCoeff::kIDC); +static_assert((int)skgpu::BlendCoeff::kSA == (int)SkBlendModeCoeff::kSA); +static_assert((int)skgpu::BlendCoeff::kISA == (int)SkBlendModeCoeff::kISA); +static_assert((int)skgpu::BlendCoeff::kDA == (int)SkBlendModeCoeff::kDA); +static_assert((int)skgpu::BlendCoeff::kIDA == (int)SkBlendModeCoeff::kIDA); // static_assert(SkXfermode::kCoeffCount == 10); //////////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/gpu/SurfaceContext.cpp b/third_party/skia/src/gpu/ganesh/SurfaceContext.cpp similarity index 98% rename from third_party/skia/src/gpu/SurfaceContext.cpp rename to third_party/skia/src/gpu/ganesh/SurfaceContext.cpp index 8b2d621ab594..362227c8f0f7 100644 --- a/third_party/skia/src/gpu/SurfaceContext.cpp +++ b/third_party/skia/src/gpu/ganesh/SurfaceContext.cpp @@ -5,30 +5,31 @@ * found in the LICENSE file. */ -#include "src/gpu/SurfaceContext.h" - -#include +#include "src/gpu/ganesh/SurfaceContext.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkMipmap.h" #include "src/core/SkYUVMath.h" -#include "src/gpu/GrClientMappedBufferManager.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrTracing.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrBicubicEffect.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrClientMappedBufferManager.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrTracing.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrBicubicEffect.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" + +#include #define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(this->singleOwner()) #define RETURN_FALSE_IF_ABANDONED if (this->fContext->abandoned()) { return false; } diff --git a/third_party/skia/src/gpu/SurfaceContext.h b/third_party/skia/src/gpu/ganesh/SurfaceContext.h similarity index 97% rename from third_party/skia/src/gpu/SurfaceContext.h rename to third_party/skia/src/gpu/ganesh/SurfaceContext.h index a1e99e1ad116..90859895fdbe 100644 --- a/third_party/skia/src/gpu/SurfaceContext.h +++ b/third_party/skia/src/gpu/ganesh/SurfaceContext.h @@ -13,13 +13,13 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkSamplingOptions.h" #include "include/core/SkSurface.h" -#include "src/gpu/GrColorInfo.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrPixmap.h" -#include "src/gpu/GrRenderTask.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrPixmap.h" +#include "src/gpu/ganesh/GrRenderTask.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" class GrDrawingManager; class GrRecordingContext; diff --git a/third_party/skia/src/gpu/SurfaceFillContext.cpp b/third_party/skia/src/gpu/ganesh/SurfaceFillContext.cpp similarity index 83% rename from third_party/skia/src/gpu/SurfaceFillContext.cpp rename to third_party/skia/src/gpu/ganesh/SurfaceFillContext.cpp index eab314dfae47..a1655e7442dc 100644 --- a/third_party/skia/src/gpu/SurfaceFillContext.cpp +++ b/third_party/skia/src/gpu/ganesh/SurfaceFillContext.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/SurfaceFillContext.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" -#include "src/gpu/effects/GrMatrixEffect.h" +#include "src/gpu/ganesh/effects/GrMatrixEffect.h" namespace skgpu { diff --git a/third_party/skia/src/gpu/SurfaceFillContext.h b/third_party/skia/src/gpu/ganesh/SurfaceFillContext.h similarity index 99% rename from third_party/skia/src/gpu/SurfaceFillContext.h rename to third_party/skia/src/gpu/ganesh/SurfaceFillContext.h index c74c048942e0..021b55a968b5 100644 --- a/third_party/skia/src/gpu/SurfaceFillContext.h +++ b/third_party/skia/src/gpu/ganesh/SurfaceFillContext.h @@ -8,7 +8,7 @@ #ifndef SurfaceFillContext_DEFINED #define SurfaceFillContext_DEFINED -#include "src/gpu/SurfaceContext.h" +#include "src/gpu/ganesh/SurfaceContext.h" namespace skgpu { diff --git a/third_party/skia/src/gpu/d3d/BUILD.bazel b/third_party/skia/src/gpu/ganesh/d3d/BUILD.bazel similarity index 80% rename from third_party/skia/src/gpu/d3d/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/d3d/BUILD.bazel index d00a50648cee..e75e25ebb074 100644 --- a/third_party/skia/src/gpu/d3d/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/d3d/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrD3DAMDMemoryAllocator_hdr", hdrs = ["GrD3DAMDMemoryAllocator.h"], @@ -28,7 +30,7 @@ generated_cc_atom( ":GrD3DDescriptorHeap_hdr", ":GrD3DTextureResource_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrAttachment_hdr", + "//src/gpu/ganesh:GrAttachment_hdr", ], ) @@ -48,8 +50,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrGpuBuffer_hdr", - "//src/gpu:GrManagedResource_hdr", + "//src/gpu/ganesh:GrGpuBuffer_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", ], ) @@ -71,7 +73,7 @@ generated_cc_atom( deps = [ ":GrD3DAttachment_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrCaps_hdr", + "//src/gpu/ganesh:GrCaps_hdr", ], ) @@ -90,12 +92,12 @@ generated_cc_atom( "//include/gpu/d3d:GrD3DBackendContext_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", "//src/core:SkCompressedDataUtils_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrStencilSettings_hdr", "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", ], ) @@ -107,8 +109,8 @@ generated_cc_atom( ":GrD3DRootSignature_hdr", "//include/gpu:GrTypes_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrManagedResource_hdr", - "//src/gpu:GrRingBuffer_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", + "//src/gpu/ganesh:GrRingBuffer_hdr", ], ) @@ -128,7 +130,7 @@ generated_cc_atom( ":GrD3DTexture_hdr", ":GrD3DUtil_hdr", "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrScissorState_hdr", + "//src/gpu/ganesh:GrScissorState_hdr", ], ) @@ -138,7 +140,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrManagedResource_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", ], ) @@ -175,7 +177,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrManagedResource_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", "//src/utils:SkBitSet_hdr", ], ) @@ -216,10 +218,10 @@ generated_cc_atom( ":GrD3DCommandList_hdr", ":GrD3DResourceProvider_hdr", "//include/private:SkDeque_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrSemaphore_hdr", - "//src/gpu:GrStagingBufferManager_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", + "//src/gpu/ganesh:GrStagingBufferManager_hdr", ], ) @@ -242,10 +244,10 @@ generated_cc_atom( "//include/gpu/d3d:GrD3DBackendContext_hdr", "//src/core:SkConvertPixels_hdr", "//src/core:SkMipmap_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrDataUtils_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrThreadSafePipelineBuilder_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrThreadSafePipelineBuilder_hdr", "//src/sksl:SkSLCompiler_hdr", ], ) @@ -256,8 +258,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrOpsRenderPass_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", ], ) @@ -275,13 +277,13 @@ generated_cc_atom( ":GrD3DRenderTarget_hdr", ":GrD3DTexture_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrStencilSettings_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", ], ) @@ -291,10 +293,10 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrD3DPipelineState_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrSPIRVUniformHandler_hdr", - "//src/gpu:GrSPIRVVaryingHandler_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrSPIRVUniformHandler_hdr", + "//src/gpu/ganesh:GrSPIRVVaryingHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", "//src/sksl/ir:SkSLProgram_hdr", ], ) @@ -314,11 +316,11 @@ generated_cc_atom( "//include/gpu/d3d:GrD3DTypes_hdr", "//src/core:SkReadBuffer_hdr", "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrAutoLocaleSetter_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrPersistentCacheUtils_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrStencilSettings_hdr", + "//src/gpu/ganesh:GrAutoLocaleSetter_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrPersistentCacheUtils_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", "//src/sksl:SkSLCompiler_hdr", "//src/utils:SkShaderUtils_hdr", ], @@ -330,8 +332,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrSPIRVUniformHandler_hdr", - "//src/gpu:GrUniformDataManager_hdr", + "//src/gpu/ganesh:GrSPIRVUniformHandler_hdr", + "//src/gpu/ganesh:GrUniformDataManager_hdr", ], ) @@ -355,8 +357,8 @@ generated_cc_atom( "//include/core:SkRefCnt_hdr", "//include/gpu:GrTypes_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrManagedResource_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", ], ) @@ -372,12 +374,12 @@ generated_cc_atom( ":GrD3DRootSignature_hdr", ":GrD3DTexture_hdr", "//include/private:SkTemplates_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrStencilSettings_hdr", - "//src/gpu:GrXferProcessor_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", ], ) @@ -387,7 +389,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrManagedResource_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", ], ) @@ -400,8 +402,8 @@ generated_cc_atom( ":GrD3DResourceProvider_hdr", ":GrD3DTextureResource_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", ], ) @@ -417,8 +419,8 @@ generated_cc_atom( ":GrD3DUtil_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrRenderTarget_hdr", "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", ], ) @@ -437,8 +439,8 @@ generated_cc_atom( "//include/private:SkTArray_hdr", "//include/private:SkTHash_hdr", "//src/core:SkLRUCache_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu:GrRingBuffer_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrRingBuffer_hdr", ], ) @@ -457,7 +459,7 @@ generated_cc_atom( "//include/gpu:GrContextOptions_hdr", "//include/gpu:GrDirectContext_hdr", "//include/private:SkOpts_spi_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", ], ) @@ -477,7 +479,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrManagedResource_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", ], ) @@ -488,7 +490,7 @@ generated_cc_atom( deps = [ ":GrD3DGpu_hdr", ":GrD3DRootSignature_hdr", - "//src/gpu:GrSPIRVUniformHandler_hdr", + "//src/gpu/ganesh:GrSPIRVUniformHandler_hdr", ], ) @@ -499,8 +501,8 @@ generated_cc_atom( deps = [ "//include/gpu:GrBackendSemaphore_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrSemaphore_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", ], ) @@ -532,7 +534,7 @@ generated_cc_atom( deps = [ ":GrD3DGpu_hdr", ":GrD3DTextureRenderTarget_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) @@ -545,8 +547,8 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrManagedResource_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", ], ) @@ -558,7 +560,7 @@ generated_cc_atom( ":GrD3DAMDMemoryAllocator_hdr", ":GrD3DGpu_hdr", ":GrD3DTextureResource_hdr", - "//src/gpu:GrGpuResourcePriv_hdr", + "//src/gpu/ganesh:GrGpuResourcePriv_hdr", ], ) @@ -570,8 +572,8 @@ generated_cc_atom( ":GrD3DDescriptorHeap_hdr", ":GrD3DTextureResource_hdr", "//src/core:SkLRUCache_hdr", - "//src/gpu:GrSamplerState_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) @@ -584,7 +586,7 @@ generated_cc_atom( ":GrD3DTexture_hdr", ":GrD3DUtil_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) @@ -596,7 +598,7 @@ generated_cc_atom( ":GrD3DResourceState_hdr", ":GrD3DTypesPriv_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//include/private:GrD3DTypesMinimal_hdr", + "//include/private/gpu/ganesh:GrD3DTypesMinimal_hdr", ], ) @@ -622,7 +624,7 @@ generated_cc_atom( "//include/core:SkImage_hdr", "//include/gpu:GrTypes_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -633,8 +635,8 @@ generated_cc_atom( deps = [ ":GrD3DGpu_hdr", ":GrD3DUtil_hdr", - "//src/gpu:GrDataUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//src/sksl:SkSLCompiler_hdr", ], ) diff --git a/third_party/skia/src/gpu/d3d/GrD3DAMDMemoryAllocator.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.cpp similarity index 96% rename from third_party/skia/src/gpu/d3d/GrD3DAMDMemoryAllocator.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.cpp index 74bd2795a54f..1eabcfe3ebdb 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DAMDMemoryAllocator.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.cpp @@ -5,8 +5,8 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DAMDMemoryAllocator.h" -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" sk_sp GrD3DAMDMemoryAllocator::Make(IDXGIAdapter* adapter, ID3D12Device* device) { diff --git a/third_party/skia/src/gpu/d3d/GrD3DAMDMemoryAllocator.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.h similarity index 100% rename from third_party/skia/src/gpu/d3d/GrD3DAMDMemoryAllocator.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.h diff --git a/third_party/skia/src/gpu/d3d/GrD3DAttachment.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DAttachment.cpp similarity index 84% rename from third_party/skia/src/gpu/d3d/GrD3DAttachment.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DAttachment.cpp index ad514bb501fc..afb2bbd60839 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DAttachment.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DAttachment.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DAttachment.h" +#include "src/gpu/ganesh/d3d/GrD3DAttachment.h" -#include "src/gpu/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" GrD3DAttachment::GrD3DAttachment(GrD3DGpu* gpu, SkISize dimensions, @@ -16,9 +16,15 @@ GrD3DAttachment::GrD3DAttachment(GrD3DGpu* gpu, const D3D12_RESOURCE_DESC& desc, const GrD3DTextureResourceInfo& info, sk_sp state, - const GrD3DDescriptorHeap::CPUHandle& view) - : GrAttachment(gpu, dimensions, supportedUsages, desc.SampleDesc.Count, GrMipmapped::kNo, - GrProtected::kNo) + const GrD3DDescriptorHeap::CPUHandle& view, + std::string_view label) + : GrAttachment(gpu, + dimensions, + supportedUsages, + desc.SampleDesc.Count, + GrMipmapped::kNo, + GrProtected::kNo, + label) , GrD3DTextureResource(info, state) , fView(view) , fFormat(format) { @@ -61,7 +67,9 @@ sk_sp GrD3DAttachment::MakeStencil(GrD3DGpu* gpu, return sk_sp(new GrD3DAttachment(gpu, dimensions, UsageFlags::kStencilAttachment, format, resourceDesc, info, - std::move(state), view)); + std::move(state), + view, + /*label=*/{})); } void GrD3DAttachment::onRelease() { diff --git a/third_party/skia/src/gpu/d3d/GrD3DAttachment.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DAttachment.h similarity index 83% rename from third_party/skia/src/gpu/d3d/GrD3DAttachment.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DAttachment.h index 1f4194bcf461..07b0814521c4 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DAttachment.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DAttachment.h @@ -8,11 +8,11 @@ #ifndef GrD3DAttachment_DEFINED #define GrD3DAttachment_DEFINED -#include "src/gpu/GrAttachment.h" +#include "src/gpu/ganesh/GrAttachment.h" #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/d3d/GrD3DDescriptorHeap.h" -#include "src/gpu/d3d/GrD3DTextureResource.h" +#include "src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h" +#include "src/gpu/ganesh/d3d/GrD3DTextureResource.h" class GrD3DGpu; @@ -41,7 +41,8 @@ class GrD3DAttachment : public GrAttachment, public GrD3DTextureResource { const D3D12_RESOURCE_DESC&, const GrD3DTextureResourceInfo&, sk_sp, - const GrD3DDescriptorHeap::CPUHandle& view); + const GrD3DDescriptorHeap::CPUHandle& view, + std::string_view label); GrD3DGpu* getD3DGpu() const; diff --git a/third_party/skia/src/gpu/d3d/GrD3DBuffer.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DBuffer.cpp similarity index 94% rename from third_party/skia/src/gpu/d3d/GrD3DBuffer.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DBuffer.cpp index 3e1adf2452ff..ca10746891c9 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DBuffer.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DBuffer.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DBuffer.h" +#include "src/gpu/ganesh/d3d/GrD3DBuffer.h" -#include "src/gpu/d3d/GrD3DGpu.h" -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" #ifdef SK_DEBUG #define VALIDATE() this->validate() @@ -75,13 +75,16 @@ sk_sp GrD3DBuffer::Make(GrD3DGpu* gpu, size_t size, GrGpuBufferType return sk_sp(new GrD3DBuffer(gpu, size, intendedType, accessPattern, std::move(resource), std::move(alloc), - resourceState)); + resourceState, + /*label=*/{})); } GrD3DBuffer::GrD3DBuffer(GrD3DGpu* gpu, size_t size, GrGpuBufferType intendedType, GrAccessPattern accessPattern, gr_cp bufferResource, - sk_sp alloc, D3D12_RESOURCE_STATES resourceState) - : INHERITED(gpu, size, intendedType, accessPattern) + sk_sp alloc, + D3D12_RESOURCE_STATES resourceState, + std::string_view label) + : INHERITED(gpu, size, intendedType, accessPattern, label) , fResourceState(resourceState) , fD3DResource(std::move(bufferResource)) , fAlloc(std::move(alloc)) { diff --git a/third_party/skia/src/gpu/d3d/GrD3DBuffer.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DBuffer.h similarity index 89% rename from third_party/skia/src/gpu/d3d/GrD3DBuffer.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DBuffer.h index f69d8d05e3e1..2d8c3a478cec 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DBuffer.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DBuffer.h @@ -10,8 +10,8 @@ #define GrD3DBuffer_DEFINED #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrManagedResource.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrManagedResource.h" class GrD3DGpu; @@ -30,7 +30,7 @@ class GrD3DBuffer : public GrGpuBuffer { protected: GrD3DBuffer(GrD3DGpu*, size_t size, GrGpuBufferType, GrAccessPattern, gr_cp, - sk_sp, D3D12_RESOURCE_STATES); + sk_sp, D3D12_RESOURCE_STATES, std::string_view label); void onAbandon() override; void onRelease() override; diff --git a/third_party/skia/src/gpu/d3d/GrD3DCaps.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCaps.cpp similarity index 98% rename from third_party/skia/src/gpu/d3d/GrD3DCaps.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DCaps.cpp index 803dd5343fc5..34f792d2bf28 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DCaps.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCaps.cpp @@ -11,17 +11,17 @@ #include "include/gpu/d3d/GrD3DTypes.h" #include "src/core/SkCompressedDataUtils.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrStencilSettings.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/d3d/GrD3DCaps.h" -#include "src/gpu/d3d/GrD3DGpu.h" -#include "src/gpu/d3d/GrD3DRenderTarget.h" -#include "src/gpu/d3d/GrD3DTexture.h" -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/d3d/GrD3DCaps.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DRenderTarget.h" +#include "src/gpu/ganesh/d3d/GrD3DTexture.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" GrD3DCaps::GrD3DCaps(const GrContextOptions& contextOptions, IDXGIAdapter1* adapter, ID3D12Device* device) @@ -29,8 +29,9 @@ GrD3DCaps::GrD3DCaps(const GrContextOptions& contextOptions, IDXGIAdapter1* adap /************************************************************************** * GrCaps fields **************************************************************************/ - fMipmapSupport = true; // always available in Direct3D fNPOTTextureTileSupport = true; // available in feature level 10_0 and up + fMipmapSupport = true; // always available in Direct3D + fAnisoSupport = true; // always available in Direct3D fReuseScratchTextures = true; //TODO: figure this out fGpuTracingSupport = false; //TODO: figure this out fOversizedStencilSupport = false; //TODO: figure this out diff --git a/third_party/skia/src/gpu/d3d/GrD3DCaps.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCaps.h similarity index 98% rename from third_party/skia/src/gpu/d3d/GrD3DCaps.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DCaps.h index 8d6774943ae3..3a433ee6841b 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DCaps.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCaps.h @@ -9,10 +9,10 @@ #ifndef GrD3DCaps_DEFINED #define GrD3DCaps_DEFINED -#include "src/gpu/GrCaps.h" +#include "src/gpu/ganesh/GrCaps.h" #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/d3d/GrD3DAttachment.h" +#include "src/gpu/ganesh/d3d/GrD3DAttachment.h" /** * Stores some capabilities of a D3D backend. diff --git a/third_party/skia/src/gpu/d3d/GrD3DCommandList.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandList.cpp similarity index 97% rename from third_party/skia/src/gpu/d3d/GrD3DCommandList.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandList.cpp index 5187446179f8..4efac0e35b19 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DCommandList.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandList.cpp @@ -5,19 +5,19 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DCommandList.h" +#include "src/gpu/ganesh/d3d/GrD3DCommandList.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrScissorState.h" -#include "src/gpu/d3d/GrD3DAttachment.h" -#include "src/gpu/d3d/GrD3DBuffer.h" -#include "src/gpu/d3d/GrD3DCommandSignature.h" -#include "src/gpu/d3d/GrD3DGpu.h" -#include "src/gpu/d3d/GrD3DPipeline.h" -#include "src/gpu/d3d/GrD3DRenderTarget.h" -#include "src/gpu/d3d/GrD3DTexture.h" -#include "src/gpu/d3d/GrD3DTextureResource.h" -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/GrScissorState.h" +#include "src/gpu/ganesh/d3d/GrD3DAttachment.h" +#include "src/gpu/ganesh/d3d/GrD3DBuffer.h" +#include "src/gpu/ganesh/d3d/GrD3DCommandSignature.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DPipeline.h" +#include "src/gpu/ganesh/d3d/GrD3DRenderTarget.h" +#include "src/gpu/ganesh/d3d/GrD3DTexture.h" +#include "src/gpu/ganesh/d3d/GrD3DTextureResource.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" GrD3DCommandList::GrD3DCommandList(gr_cp allocator, gr_cp commandList) @@ -80,7 +80,7 @@ void GrD3DCommandList::releaseResources() { this->callFinishedCallbacks(); } -void GrD3DCommandList::addFinishedCallback(sk_sp callback) { +void GrD3DCommandList::addFinishedCallback(sk_sp callback) { fFinishedCallbacks.push_back(std::move(callback)); } diff --git a/third_party/skia/src/gpu/d3d/GrD3DCommandList.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandList.h similarity index 97% rename from third_party/skia/src/gpu/d3d/GrD3DCommandList.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandList.h index 3f08f6177ca5..4227dee9b14a 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DCommandList.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandList.h @@ -10,9 +10,9 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/GrManagedResource.h" -#include "src/gpu/GrRingBuffer.h" -#include "src/gpu/d3d/GrD3DRootSignature.h" +#include "src/gpu/ganesh/GrManagedResource.h" +#include "src/gpu/ganesh/GrRingBuffer.h" +#include "src/gpu/ganesh/d3d/GrD3DRootSignature.h" #include @@ -110,7 +110,7 @@ class GrD3DCommandList { bool hasWork() const { return fHasWork; } - void addFinishedCallback(sk_sp callback); + void addFinishedCallback(sk_sp callback); private: static const int kInitialTrackedResourcesCount = 32; @@ -149,7 +149,7 @@ class GrD3DCommandList { SkSTArray<4, D3D12_RESOURCE_BARRIER> fResourceBarriers; - SkTArray> fFinishedCallbacks; + SkTArray> fFinishedCallbacks; }; class GrD3DDirectCommandList : public GrD3DCommandList { diff --git a/third_party/skia/src/gpu/d3d/GrD3DCommandSignature.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandSignature.cpp similarity index 93% rename from third_party/skia/src/gpu/d3d/GrD3DCommandSignature.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandSignature.cpp index e874a49bf8aa..48708e91ad76 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DCommandSignature.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandSignature.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DCommandSignature.h" +#include "src/gpu/ganesh/d3d/GrD3DCommandSignature.h" -#include "src/gpu/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" sk_sp GrD3DCommandSignature::Make(GrD3DGpu* gpu, ForIndexed forIndexed, unsigned int slot) { diff --git a/third_party/skia/src/gpu/d3d/GrD3DCommandSignature.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandSignature.h similarity index 97% rename from third_party/skia/src/gpu/d3d/GrD3DCommandSignature.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandSignature.h index adb4954bd7dd..b118220ce8b7 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DCommandSignature.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCommandSignature.h @@ -9,7 +9,7 @@ #define GrD3DCommandSignature_DEFINED #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/GrManagedResource.h" +#include "src/gpu/ganesh/GrManagedResource.h" class GrD3DGpu; diff --git a/third_party/skia/src/gpu/d3d/GrD3DCpuDescriptorManager.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.cpp similarity index 98% rename from third_party/skia/src/gpu/d3d/GrD3DCpuDescriptorManager.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.cpp index 760a70f0fe7f..c9c33236c94f 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DCpuDescriptorManager.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DCpuDescriptorManager.h" +#include "src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.h" -#include "src/gpu/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" GrD3DCpuDescriptorManager::GrD3DCpuDescriptorManager(GrD3DGpu* gpu) : fRTVDescriptorPool(gpu, D3D12_DESCRIPTOR_HEAP_TYPE_RTV) diff --git a/third_party/skia/src/gpu/d3d/GrD3DCpuDescriptorManager.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.h similarity index 98% rename from third_party/skia/src/gpu/d3d/GrD3DCpuDescriptorManager.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.h index a100cea96efd..d1c0a84b5c82 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DCpuDescriptorManager.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.h @@ -8,7 +8,7 @@ #ifndef GrD3DCpuDescriptorManager_DEFINED #define GrD3DCpuDescriptorManager_DEFINED -#include "src/gpu/d3d/GrD3DDescriptorHeap.h" +#include "src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h" #include class GrD3DGpu; diff --git a/third_party/skia/src/gpu/d3d/GrD3DDescriptorHeap.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorHeap.cpp similarity index 95% rename from third_party/skia/src/gpu/d3d/GrD3DDescriptorHeap.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorHeap.cpp index 8d2569783bf2..9f9facfb9c05 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DDescriptorHeap.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorHeap.cpp @@ -5,8 +5,8 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DDescriptorHeap.h" -#include "src/gpu/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" std::unique_ptr GrD3DDescriptorHeap::Make(GrD3DGpu* gpu, D3D12_DESCRIPTOR_HEAP_TYPE type, diff --git a/third_party/skia/src/gpu/d3d/GrD3DDescriptorHeap.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h similarity index 98% rename from third_party/skia/src/gpu/d3d/GrD3DDescriptorHeap.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h index 30fdc1358eba..0d86db13d606 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DDescriptorHeap.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h @@ -9,7 +9,7 @@ #define GrD3DDescriptorHeap_DEFINED #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/GrManagedResource.h" +#include "src/gpu/ganesh/GrManagedResource.h" #include "src/utils/SkBitSet.h" class GrD3DGpu; diff --git a/third_party/skia/src/gpu/d3d/GrD3DDescriptorTableManager.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.cpp similarity index 98% rename from third_party/skia/src/gpu/d3d/GrD3DDescriptorTableManager.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.cpp index 56dcf6baa970..a1cfbb32f391 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DDescriptorTableManager.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DDescriptorTableManager.h" +#include "src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.h" -#include "src/gpu/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" GrD3DDescriptorTableManager::GrD3DDescriptorTableManager(GrD3DGpu* gpu) : fShaderViewDescriptorPool(gpu, D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV) diff --git a/third_party/skia/src/gpu/d3d/GrD3DDescriptorTableManager.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.h similarity index 98% rename from third_party/skia/src/gpu/d3d/GrD3DDescriptorTableManager.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.h index 14a2097c407b..b06def9f490e 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DDescriptorTableManager.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.h @@ -8,7 +8,7 @@ #ifndef GrD3DGpuDescriptorTableManager_DEFINED #define GrD3DGpuDescriptorTableManager_DEFINED -#include "src/gpu/d3d/GrD3DDescriptorHeap.h" +#include "src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h" #include class GrD3DCommandList; diff --git a/third_party/skia/src/gpu/d3d/GrD3DGpu.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DGpu.cpp similarity index 98% rename from third_party/skia/src/gpu/d3d/GrD3DGpu.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DGpu.cpp index c9c8e5bbe732..2be9648989d0 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DGpu.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DGpu.cpp @@ -5,25 +5,25 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/d3d/GrD3DBackendContext.h" #include "src/core/SkConvertPixels.h" #include "src/core/SkMipmap.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrThreadSafePipelineBuilder.h" -#include "src/gpu/d3d/GrD3DAMDMemoryAllocator.h" -#include "src/gpu/d3d/GrD3DAttachment.h" -#include "src/gpu/d3d/GrD3DBuffer.h" -#include "src/gpu/d3d/GrD3DCaps.h" -#include "src/gpu/d3d/GrD3DOpsRenderPass.h" -#include "src/gpu/d3d/GrD3DSemaphore.h" -#include "src/gpu/d3d/GrD3DTexture.h" -#include "src/gpu/d3d/GrD3DTextureRenderTarget.h" -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" +#include "src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.h" +#include "src/gpu/ganesh/d3d/GrD3DAttachment.h" +#include "src/gpu/ganesh/d3d/GrD3DBuffer.h" +#include "src/gpu/ganesh/d3d/GrD3DCaps.h" +#include "src/gpu/ganesh/d3d/GrD3DOpsRenderPass.h" +#include "src/gpu/ganesh/d3d/GrD3DSemaphore.h" +#include "src/gpu/ganesh/d3d/GrD3DTexture.h" +#include "src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" #include "src/sksl/SkSLCompiler.h" #if GR_TEST_UTILS @@ -233,10 +233,10 @@ void GrD3DGpu::endRenderPass(GrRenderTarget* target, GrSurfaceOrigin origin, void GrD3DGpu::addFinishedProc(GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { SkASSERT(finishedProc); - this->addFinishedCallback(GrRefCntedCallback::Make(finishedProc, finishedContext)); + this->addFinishedCallback(skgpu::RefCntedCallback::Make(finishedProc, finishedContext)); } -void GrD3DGpu::addFinishedCallback(sk_sp finishedCallback) { +void GrD3DGpu::addFinishedCallback(sk_sp finishedCallback) { SkASSERT(finishedCallback); // Besides the current command list, we also add the finishedCallback to the newest outstanding // command list. Our contract for calling the proc is that all previous submitted command lists @@ -1387,7 +1387,7 @@ static bool copy_color_data(const GrD3DCaps& caps, } bool GrD3DGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) { GrD3DTextureResourceInfo info; SkAssertResult(backendTexture.getD3DTextureResourceInfo(&info)); @@ -1488,7 +1488,7 @@ GrBackendTexture GrD3DGpu::onCreateCompressedBackendTexture( } bool GrD3DGpu::onUpdateCompressedBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t size) { GrD3DTextureResourceInfo info; diff --git a/third_party/skia/src/gpu/d3d/GrD3DGpu.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DGpu.h similarity index 95% rename from third_party/skia/src/gpu/d3d/GrD3DGpu.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DGpu.h index 519fe0144893..2692cc5095f3 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DGpu.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DGpu.h @@ -9,13 +9,13 @@ #define GrD3DGpu_DEFINED #include "include/private/SkDeque.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrStagingBufferManager.h" -#include "src/gpu/d3d/GrD3DCaps.h" -#include "src/gpu/d3d/GrD3DCommandList.h" -#include "src/gpu/d3d/GrD3DResourceProvider.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrStagingBufferManager.h" +#include "src/gpu/ganesh/d3d/GrD3DCaps.h" +#include "src/gpu/ganesh/d3d/GrD3DCommandList.h" +#include "src/gpu/ganesh/d3d/GrD3DResourceProvider.h" struct GrD3DBackendContext; class GrD3DOpsRenderPass; @@ -204,7 +204,7 @@ class GrD3DGpu : public GrGpu { void addFinishedProc(GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) override; - void addFinishedCallback(sk_sp finishedCallback); + void addFinishedCallback(sk_sp finishedCallback); GrOpsRenderPass* onGetOpsRenderPass(GrRenderTarget*, bool useMSAASurface, @@ -230,7 +230,7 @@ class GrD3DGpu : public GrGpu { GrProtected) override; bool onClearBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) override; GrBackendTexture onCreateCompressedBackendTexture(SkISize dimensions, @@ -239,7 +239,7 @@ class GrD3DGpu : public GrGpu { GrProtected) override; bool onUpdateCompressedBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t size) override; diff --git a/third_party/skia/src/gpu/d3d/GrD3DOpsRenderPass.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DOpsRenderPass.cpp similarity index 93% rename from third_party/skia/src/gpu/d3d/GrD3DOpsRenderPass.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DOpsRenderPass.cpp index f80e5678f39a..e00716f84864 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DOpsRenderPass.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DOpsRenderPass.cpp @@ -5,25 +5,25 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DOpsRenderPass.h" - -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/d3d/GrD3DBuffer.h" -#include "src/gpu/d3d/GrD3DCommandSignature.h" -#include "src/gpu/d3d/GrD3DGpu.h" -#include "src/gpu/d3d/GrD3DPipelineState.h" -#include "src/gpu/d3d/GrD3DPipelineStateBuilder.h" -#include "src/gpu/d3d/GrD3DRenderTarget.h" -#include "src/gpu/d3d/GrD3DTexture.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/d3d/GrD3DOpsRenderPass.h" + +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/d3d/GrD3DBuffer.h" +#include "src/gpu/ganesh/d3d/GrD3DCommandSignature.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DPipelineState.h" +#include "src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.h" +#include "src/gpu/ganesh/d3d/GrD3DRenderTarget.h" +#include "src/gpu/ganesh/d3d/GrD3DTexture.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #ifdef SK_DEBUG #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #endif GrD3DOpsRenderPass::GrD3DOpsRenderPass(GrD3DGpu* gpu) : fGpu(gpu) {} @@ -41,6 +41,7 @@ bool GrD3DOpsRenderPass::set(GrRenderTarget* rt, GrSurfaceOrigin origin, const S fColorLoadOp = colorInfo.fLoadOp; fClearColor = colorInfo.fClearColor; + fStencilLoadOp = stencilInfo.fLoadOp; // TODO @@ -94,10 +95,10 @@ void set_blend_factor(GrD3DGpu* gpu, const GrProgramInfo& info) { const GrXferProcessor& xferProcessor = info.pipeline().getXferProcessor(); const skgpu::Swizzle& swizzle = info.pipeline().writeSwizzle(); const GrXferProcessor::BlendInfo& blendInfo = xferProcessor.getBlendInfo(); - GrBlendCoeff srcCoeff = blendInfo.fSrcBlend; - GrBlendCoeff dstCoeff = blendInfo.fDstBlend; + skgpu::BlendCoeff srcCoeff = blendInfo.fSrcBlend; + skgpu::BlendCoeff dstCoeff = blendInfo.fDstBlend; float floatColors[4]; - if (GrBlendCoeffRefsConstant(srcCoeff) || GrBlendCoeffRefsConstant(dstCoeff)) { + if (skgpu::BlendCoeffRefsConstant(srcCoeff) || skgpu::BlendCoeffRefsConstant(dstCoeff)) { // Swizzle the blend to match what the shader will output. SkPMColor4f blendConst = swizzle.applyTo(blendInfo.fBlendConstant); floatColors[0] = blendConst.fR; diff --git a/third_party/skia/src/gpu/d3d/GrD3DOpsRenderPass.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DOpsRenderPass.h similarity index 96% rename from third_party/skia/src/gpu/d3d/GrD3DOpsRenderPass.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DOpsRenderPass.h index 02266b899133..a7ca09222bb5 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DOpsRenderPass.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DOpsRenderPass.h @@ -8,10 +8,10 @@ #ifndef GrD3DOpsRenderPass_DEFINED #define GrD3DOpsRenderPass_DEFINED -#include "src/gpu/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" class GrD3DGpu; class GrD3DPipelineState; diff --git a/third_party/skia/src/gpu/d3d/GrD3DPipeline.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipeline.h similarity index 96% rename from third_party/skia/src/gpu/d3d/GrD3DPipeline.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DPipeline.h index 5891abd00fb0..e757fa3a9be5 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DPipeline.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipeline.h @@ -9,7 +9,7 @@ #define GrD3DPipeline_DEFINED #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/GrManagedResource.h" +#include "src/gpu/ganesh/GrManagedResource.h" class GrD3DPipeline : public GrManagedResource { public: diff --git a/third_party/skia/src/gpu/d3d/GrD3DPipelineState.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineState.cpp similarity index 93% rename from third_party/skia/src/gpu/d3d/GrD3DPipelineState.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineState.cpp index 916df8a2bede..9b90e706a4cf 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DPipelineState.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineState.cpp @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DPipelineState.h" +#include "src/gpu/ganesh/d3d/GrD3DPipelineState.h" #include "include/private/SkTemplates.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/d3d/GrD3DBuffer.h" -#include "src/gpu/d3d/GrD3DGpu.h" -#include "src/gpu/d3d/GrD3DPipeline.h" -#include "src/gpu/d3d/GrD3DRootSignature.h" -#include "src/gpu/d3d/GrD3DTexture.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/d3d/GrD3DBuffer.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DPipeline.h" +#include "src/gpu/ganesh/d3d/GrD3DRootSignature.h" +#include "src/gpu/ganesh/d3d/GrD3DTexture.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" GrD3DPipelineState::GrD3DPipelineState( sk_sp pipeline, diff --git a/third_party/skia/src/gpu/d3d/GrD3DPipelineState.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineState.h similarity index 95% rename from third_party/skia/src/gpu/d3d/GrD3DPipelineState.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineState.h index 9cd9ca51ff2a..aa3dd1be6a08 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DPipelineState.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineState.h @@ -11,9 +11,9 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/GrTypes.h" #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/GrManagedResource.h" -#include "src/gpu/d3d/GrD3DPipelineStateDataManager.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/GrManagedResource.h" +#include "src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" #include diff --git a/third_party/skia/src/gpu/d3d/GrD3DPipelineStateBuilder.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp similarity index 92% rename from third_party/skia/src/gpu/d3d/GrD3DPipelineStateBuilder.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp index b5b61cd0d47f..cb674231b80c 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DPipelineStateBuilder.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp @@ -7,22 +7,22 @@ //#include -#include "src/gpu/d3d/GrD3DPipelineStateBuilder.h" +#include "src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/d3d/GrD3DTypes.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrAutoLocaleSetter.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrPersistentCacheUtils.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/d3d/GrD3DGpu.h" -#include "src/gpu/d3d/GrD3DPipeline.h" -#include "src/gpu/d3d/GrD3DRenderTarget.h" -#include "src/gpu/d3d/GrD3DRootSignature.h" -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/GrAutoLocaleSetter.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrPersistentCacheUtils.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DPipeline.h" +#include "src/gpu/ganesh/d3d/GrD3DRenderTarget.h" +#include "src/gpu/ganesh/d3d/GrD3DRootSignature.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" #include "src/sksl/SkSLCompiler.h" #include "src/utils/SkShaderUtils.h" @@ -267,60 +267,60 @@ static void setup_vertex_input_layout(const GrGeometryProcessor& geomProc, } } -static D3D12_BLEND blend_coeff_to_d3d_blend(GrBlendCoeff coeff) { +static D3D12_BLEND blend_coeff_to_d3d_blend(skgpu::BlendCoeff coeff) { switch (coeff) { - case kZero_GrBlendCoeff: + case skgpu::BlendCoeff::kZero: return D3D12_BLEND_ZERO; - case kOne_GrBlendCoeff: + case skgpu::BlendCoeff::kOne: return D3D12_BLEND_ONE; - case kSC_GrBlendCoeff: + case skgpu::BlendCoeff::kSC: return D3D12_BLEND_SRC_COLOR; - case kISC_GrBlendCoeff: + case skgpu::BlendCoeff::kISC: return D3D12_BLEND_INV_SRC_COLOR; - case kDC_GrBlendCoeff: + case skgpu::BlendCoeff::kDC: return D3D12_BLEND_DEST_COLOR; - case kIDC_GrBlendCoeff: + case skgpu::BlendCoeff::kIDC: return D3D12_BLEND_INV_DEST_COLOR; - case kSA_GrBlendCoeff: + case skgpu::BlendCoeff::kSA: return D3D12_BLEND_SRC_ALPHA; - case kISA_GrBlendCoeff: + case skgpu::BlendCoeff::kISA: return D3D12_BLEND_INV_SRC_ALPHA; - case kDA_GrBlendCoeff: + case skgpu::BlendCoeff::kDA: return D3D12_BLEND_DEST_ALPHA; - case kIDA_GrBlendCoeff: + case skgpu::BlendCoeff::kIDA: return D3D12_BLEND_INV_DEST_ALPHA; - case kConstC_GrBlendCoeff: + case skgpu::BlendCoeff::kConstC: return D3D12_BLEND_BLEND_FACTOR; - case kIConstC_GrBlendCoeff: + case skgpu::BlendCoeff::kIConstC: return D3D12_BLEND_INV_BLEND_FACTOR; - case kS2C_GrBlendCoeff: + case skgpu::BlendCoeff::kS2C: return D3D12_BLEND_SRC1_COLOR; - case kIS2C_GrBlendCoeff: + case skgpu::BlendCoeff::kIS2C: return D3D12_BLEND_INV_SRC1_COLOR; - case kS2A_GrBlendCoeff: + case skgpu::BlendCoeff::kS2A: return D3D12_BLEND_SRC1_ALPHA; - case kIS2A_GrBlendCoeff: + case skgpu::BlendCoeff::kIS2A: return D3D12_BLEND_INV_SRC1_ALPHA; - case kIllegal_GrBlendCoeff: + case skgpu::BlendCoeff::kIllegal: return D3D12_BLEND_ZERO; } SkUNREACHABLE; } -static D3D12_BLEND blend_coeff_to_d3d_blend_for_alpha(GrBlendCoeff coeff) { +static D3D12_BLEND blend_coeff_to_d3d_blend_for_alpha(skgpu::BlendCoeff coeff) { switch (coeff) { // Force all srcColor used in alpha slot to alpha version. - case kSC_GrBlendCoeff: + case skgpu::BlendCoeff::kSC: return D3D12_BLEND_SRC_ALPHA; - case kISC_GrBlendCoeff: + case skgpu::BlendCoeff::kISC: return D3D12_BLEND_INV_SRC_ALPHA; - case kDC_GrBlendCoeff: + case skgpu::BlendCoeff::kDC: return D3D12_BLEND_DEST_ALPHA; - case kIDC_GrBlendCoeff: + case skgpu::BlendCoeff::kIDC: return D3D12_BLEND_INV_DEST_ALPHA; - case kS2C_GrBlendCoeff: + case skgpu::BlendCoeff::kS2C: return D3D12_BLEND_SRC1_ALPHA; - case kIS2C_GrBlendCoeff: + case skgpu::BlendCoeff::kIS2C: return D3D12_BLEND_INV_SRC1_ALPHA; default: @@ -329,13 +329,13 @@ static D3D12_BLEND blend_coeff_to_d3d_blend_for_alpha(GrBlendCoeff coeff) { } -static D3D12_BLEND_OP blend_equation_to_d3d_op(GrBlendEquation equation) { +static D3D12_BLEND_OP blend_equation_to_d3d_op(skgpu::BlendEquation equation) { switch (equation) { - case kAdd_GrBlendEquation: + case skgpu::BlendEquation::kAdd: return D3D12_BLEND_OP_ADD; - case kSubtract_GrBlendEquation: + case skgpu::BlendEquation::kSubtract: return D3D12_BLEND_OP_SUBTRACT; - case kReverseSubtract_GrBlendEquation: + case skgpu::BlendEquation::kReverseSubtract: return D3D12_BLEND_OP_REV_SUBTRACT; default: SkUNREACHABLE; @@ -348,10 +348,10 @@ static void fill_in_blend_state(const GrPipeline& pipeline, D3D12_BLEND_DESC* bl const GrXferProcessor::BlendInfo& blendInfo = pipeline.getXferProcessor().getBlendInfo(); - GrBlendEquation equation = blendInfo.fEquation; - GrBlendCoeff srcCoeff = blendInfo.fSrcBlend; - GrBlendCoeff dstCoeff = blendInfo.fDstBlend; - bool blendOff = GrBlendShouldDisable(equation, srcCoeff, dstCoeff); + skgpu::BlendEquation equation = blendInfo.fEquation; + skgpu::BlendCoeff srcCoeff = blendInfo.fSrcBlend; + skgpu::BlendCoeff dstCoeff = blendInfo.fDstBlend; + bool blendOff = skgpu::BlendShouldDisable(equation, srcCoeff, dstCoeff); auto& rtBlend = blendDesc->RenderTarget[0]; rtBlend.BlendEnable = !blendOff; @@ -558,8 +558,7 @@ std::unique_ptr GrD3DPipelineStateBuilder::finalize() { this->finalizeShaders(); SkSL::Program::Settings settings; - settings.fSharpenTextures = - this->gpu()->getContext()->priv().options().fSharpenMipmappedTextures; + settings.fSharpenTextures = true; settings.fRTFlipOffset = fUniformHandler.getRTFlipOffset(); settings.fRTFlipBinding = 0; settings.fRTFlipSet = 0; @@ -704,4 +703,3 @@ sk_sp GrD3DPipelineStateBuilder::MakeComputePipeline(GrD3DGpu* gp return GrD3DPipeline::Make(std::move(pipelineState)); } - diff --git a/third_party/skia/src/gpu/d3d/GrD3DPipelineStateBuilder.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.h similarity index 91% rename from third_party/skia/src/gpu/d3d/GrD3DPipelineStateBuilder.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.h index d8025600daaf..bfd41cd57248 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DPipelineStateBuilder.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.h @@ -8,11 +8,11 @@ #ifndef GrD3DPipelineStateBuilder_DEFINED #define GrD3DPipelineStateBuilder_DEFINED -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrSPIRVUniformHandler.h" -#include "src/gpu/GrSPIRVVaryingHandler.h" -#include "src/gpu/d3d/GrD3DPipelineState.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrSPIRVUniformHandler.h" +#include "src/gpu/ganesh/GrSPIRVVaryingHandler.h" +#include "src/gpu/ganesh/d3d/GrD3DPipelineState.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" #include "src/sksl/ir/SkSLProgram.h" class GrProgramDesc; diff --git a/third_party/skia/src/gpu/d3d/GrD3DPipelineStateDataManager.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.cpp similarity index 89% rename from third_party/skia/src/gpu/d3d/GrD3DPipelineStateDataManager.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.cpp index a902bddc9a5c..8c4a27f072f2 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DPipelineStateDataManager.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DPipelineStateDataManager.h" +#include "src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.h" -#include "src/gpu/d3d/GrD3DGpu.h" -#include "src/gpu/d3d/GrD3DResourceProvider.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DResourceProvider.h" GrD3DPipelineStateDataManager::GrD3DPipelineStateDataManager(const UniformInfoArray& uniforms, uint32_t uniformSize) diff --git a/third_party/skia/src/gpu/d3d/GrD3DPipelineStateDataManager.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.h similarity index 88% rename from third_party/skia/src/gpu/d3d/GrD3DPipelineStateDataManager.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.h index 18e8278cd9e3..13580641642a 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DPipelineStateDataManager.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DPipelineStateDataManager.h @@ -8,10 +8,10 @@ #ifndef GrD3DPipelineStateDataManager_DEFINED #define GrD3DPipelineStateDataManager_DEFINED -#include "src/gpu/GrUniformDataManager.h" +#include "src/gpu/ganesh/GrUniformDataManager.h" #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/GrSPIRVUniformHandler.h" +#include "src/gpu/ganesh/GrSPIRVUniformHandler.h" class GrD3DConstantRingBuffer; class GrD3DGpu; diff --git a/third_party/skia/src/gpu/d3d/GrD3DRenderTarget.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DRenderTarget.cpp similarity index 86% rename from third_party/skia/src/gpu/d3d/GrD3DRenderTarget.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DRenderTarget.cpp index 3f6d0ada6916..926429b90e86 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DRenderTarget.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DRenderTarget.cpp @@ -5,16 +5,16 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DRenderTarget.h" +#include "src/gpu/ganesh/d3d/GrD3DRenderTarget.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/GrRenderTarget.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/d3d/GrD3DGpu.h" -#include "src/gpu/d3d/GrD3DResourceProvider.h" -#include "src/gpu/d3d/GrD3DTextureResource.h" -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DResourceProvider.h" +#include "src/gpu/ganesh/d3d/GrD3DTextureResource.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" // We're virtually derived from GrSurface (via GrRenderTarget) so its // constructor must be explicitly called. @@ -26,11 +26,12 @@ GrD3DRenderTarget::GrD3DRenderTarget(GrD3DGpu* gpu, sk_sp msaaState, const GrD3DDescriptorHeap::CPUHandle& colorRenderTargetView, const GrD3DDescriptorHeap::CPUHandle& resolveRenderTargetView, - Wrapped) - : GrSurface(gpu, dimensions, info.fProtected) + Wrapped, + std::string_view label) + : GrSurface(gpu, dimensions, info.fProtected, label) , GrD3DTextureResource(info, std::move(state)) // for the moment we only support 1:1 color to stencil - , GrRenderTarget(gpu, dimensions, msaaInfo.fSampleCount, info.fProtected) + , GrRenderTarget(gpu, dimensions, msaaInfo.fSampleCount, info.fProtected, label) , fMSAATextureResource(new GrD3DTextureResource(msaaInfo, std::move(msaaState))) , fColorRenderTargetView(colorRenderTargetView) , fResolveRenderTargetView(resolveRenderTargetView) { @@ -48,11 +49,12 @@ GrD3DRenderTarget::GrD3DRenderTarget(GrD3DGpu* gpu, const GrD3DTextureResourceInfo& msaaInfo, sk_sp msaaState, const GrD3DDescriptorHeap::CPUHandle& colorRenderTargetView, - const GrD3DDescriptorHeap::CPUHandle& resolveRenderTargetView) - : GrSurface(gpu, dimensions, info.fProtected) + const GrD3DDescriptorHeap::CPUHandle& resolveRenderTargetView, + std::string_view label) + : GrSurface(gpu, dimensions, info.fProtected, label) , GrD3DTextureResource(info, std::move(state)) // for the moment we only support 1:1 color to stencil - , GrRenderTarget(gpu, dimensions, msaaInfo.fSampleCount, info.fProtected) + , GrRenderTarget(gpu, dimensions, msaaInfo.fSampleCount, info.fProtected, label) , fMSAATextureResource(new GrD3DTextureResource(msaaInfo, std::move(msaaState))) , fColorRenderTargetView(colorRenderTargetView) , fResolveRenderTargetView(resolveRenderTargetView) { @@ -67,10 +69,11 @@ GrD3DRenderTarget::GrD3DRenderTarget(GrD3DGpu* gpu, const GrD3DTextureResourceInfo& info, sk_sp state, const GrD3DDescriptorHeap::CPUHandle& renderTargetView, - Wrapped) - : GrSurface(gpu, dimensions, info.fProtected) + Wrapped, + std::string_view label) + : GrSurface(gpu, dimensions, info.fProtected, label) , GrD3DTextureResource(info, std::move(state)) - , GrRenderTarget(gpu, dimensions, info.fSampleCount, info.fProtected) + , GrRenderTarget(gpu, dimensions, info.fSampleCount, info.fProtected, label) , fMSAATextureResource(nullptr) , fColorRenderTargetView(renderTargetView) { this->registerWithCacheWrapped(GrWrapCacheable::kNo); @@ -82,10 +85,11 @@ GrD3DRenderTarget::GrD3DRenderTarget(GrD3DGpu* gpu, SkISize dimensions, const GrD3DTextureResourceInfo& info, sk_sp state, - const GrD3DDescriptorHeap::CPUHandle& renderTargetView) - : GrSurface(gpu, dimensions, info.fProtected) + const GrD3DDescriptorHeap::CPUHandle& renderTargetView, + std::string_view label) + : GrSurface(gpu, dimensions, info.fProtected, label) , GrD3DTextureResource(info, std::move(state)) - , GrRenderTarget(gpu, dimensions, info.fSampleCount, info.fProtected) + , GrRenderTarget(gpu, dimensions, info.fSampleCount, info.fProtected, label) , fMSAATextureResource(nullptr) , fColorRenderTargetView(renderTargetView) {} @@ -119,10 +123,11 @@ sk_sp GrD3DRenderTarget::MakeWrappedRenderTarget( d3dRT = new GrD3DRenderTarget(gpu, dimensions, info, std::move(state), msInfo, std::move(msState), msaaRenderTargetView, renderTargetView, - kWrapped); + kWrapped, + /*label=*/{}); } else { - d3dRT = new GrD3DRenderTarget(gpu, dimensions, info, std::move(state), renderTargetView, - kWrapped); + d3dRT = new GrD3DRenderTarget( + gpu, dimensions, info, std::move(state), renderTargetView, kWrapped, /*label=*/{}); } return sk_sp(d3dRT); diff --git a/third_party/skia/src/gpu/d3d/GrD3DRenderTarget.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DRenderTarget.h similarity index 88% rename from third_party/skia/src/gpu/d3d/GrD3DRenderTarget.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DRenderTarget.h index f4477b0936ff..09b39b043de1 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DRenderTarget.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DRenderTarget.h @@ -9,13 +9,13 @@ #ifndef GrD3DRenderTarget_DEFINED #define GrD3DRenderTarget_DEFINED -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/d3d/GrD3DTextureResource.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/d3d/GrD3DTextureResource.h" #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/d3d/GrD3DDescriptorHeap.h" -#include "src/gpu/d3d/GrD3DResourceProvider.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h" +#include "src/gpu/ganesh/d3d/GrD3DResourceProvider.h" class GrD3DGpu; class GrD3DRenderTarget; @@ -63,13 +63,15 @@ class GrD3DRenderTarget: public GrRenderTarget, public virtual GrD3DTextureResou const GrD3DTextureResourceInfo& msaaInfo, sk_sp msaaState, const GrD3DDescriptorHeap::CPUHandle& colorRenderTargetView, - const GrD3DDescriptorHeap::CPUHandle& resolveRenderTargetView); + const GrD3DDescriptorHeap::CPUHandle& resolveRenderTargetView, + std::string_view label); GrD3DRenderTarget(GrD3DGpu* gpu, SkISize dimensions, const GrD3DTextureResourceInfo& info, sk_sp state, - const GrD3DDescriptorHeap::CPUHandle& renderTargetView); + const GrD3DDescriptorHeap::CPUHandle& renderTargetView, + std::string_view label); void onAbandon() override; void onRelease() override; @@ -96,14 +98,16 @@ class GrD3DRenderTarget: public GrRenderTarget, public virtual GrD3DTextureResou sk_sp msaaState, const GrD3DDescriptorHeap::CPUHandle& colorRenderTargetView, const GrD3DDescriptorHeap::CPUHandle& resolveRenderTargetView, - Wrapped); + Wrapped, + std::string_view label); GrD3DRenderTarget(GrD3DGpu* gpu, SkISize dimensions, const GrD3DTextureResourceInfo& info, sk_sp state, const GrD3DDescriptorHeap::CPUHandle& renderTargetView, - Wrapped); + Wrapped, + std::string_view label); GrD3DGpu* getD3DGpu() const; @@ -114,7 +118,7 @@ class GrD3DRenderTarget: public GrRenderTarget, public virtual GrD3DTextureResou // In Direct3D we call the release proc after we are finished with the underlying // GrD3DTextureResource::Resource object (which occurs after the GPU finishes all work on it). - void onSetRelease(sk_sp releaseHelper) override { + void onSetRelease(sk_sp releaseHelper) override { // Forward the release proc on to GrD3DTextureResource this->setResourceRelease(std::move(releaseHelper)); } diff --git a/third_party/skia/src/gpu/d3d/GrD3DResourceProvider.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceProvider.cpp similarity index 95% rename from third_party/skia/src/gpu/d3d/GrD3DResourceProvider.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceProvider.cpp index a460f9e5a79b..7f159b7e399b 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DResourceProvider.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceProvider.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DResourceProvider.h" +#include "src/gpu/ganesh/d3d/GrD3DResourceProvider.h" #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" #include "include/private/SkOpts_spi.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/d3d/GrD3DBuffer.h" -#include "src/gpu/d3d/GrD3DCommandList.h" -#include "src/gpu/d3d/GrD3DGpu.h" -#include "src/gpu/d3d/GrD3DPipelineState.h" -#include "src/gpu/d3d/GrD3DPipelineStateBuilder.h" -#include "src/gpu/d3d/GrD3DRenderTarget.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/d3d/GrD3DBuffer.h" +#include "src/gpu/ganesh/d3d/GrD3DCommandList.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DPipelineState.h" +#include "src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.h" +#include "src/gpu/ganesh/d3d/GrD3DRenderTarget.h" GrD3DResourceProvider::GrD3DResourceProvider(GrD3DGpu* gpu) : fGpu(gpu) @@ -136,6 +136,9 @@ static D3D12_TEXTURE_ADDRESS_MODE wrap_mode_to_d3d_address_mode(GrSamplerState:: } static D3D12_FILTER d3d_filter(GrSamplerState sampler) { + if (sampler.isAniso()) { + return D3D12_FILTER_ANISOTROPIC; + } switch (sampler.mipmapMode()) { // When the mode is kNone we disable filtering using maxLOD. case GrSamplerState::MipmapMode::kNone: @@ -157,7 +160,9 @@ static D3D12_FILTER d3d_filter(GrSamplerState sampler) { D3D12_CPU_DESCRIPTOR_HANDLE GrD3DResourceProvider::findOrCreateCompatibleSampler( const GrSamplerState& params) { - uint32_t key = params.asIndex(); + // In D3D anisotropic filtering uses the same field (D3D12_SAMPLER_DESC::Filter) as min/mag/mip + // settings and so is not orthogonal to them. + uint32_t key = params.asKey(/*anisoIsOrthogonal=*/false); D3D12_CPU_DESCRIPTOR_HANDLE* samplerPtr = fSamplers.find(key); if (samplerPtr) { return *samplerPtr; diff --git a/third_party/skia/src/gpu/d3d/GrD3DResourceProvider.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceProvider.h similarity index 93% rename from third_party/skia/src/gpu/d3d/GrD3DResourceProvider.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceProvider.h index 64e127b48949..480d07508642 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DResourceProvider.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceProvider.h @@ -12,14 +12,14 @@ #include "include/private/SkTArray.h" #include "include/private/SkTHash.h" #include "src/core/SkLRUCache.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrRingBuffer.h" -#include "src/gpu/d3d/GrD3DCommandSignature.h" -#include "src/gpu/d3d/GrD3DCpuDescriptorManager.h" -#include "src/gpu/d3d/GrD3DDescriptorTableManager.h" -#include "src/gpu/d3d/GrD3DPipeline.h" -#include "src/gpu/d3d/GrD3DRootSignature.h" -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrRingBuffer.h" +#include "src/gpu/ganesh/d3d/GrD3DCommandSignature.h" +#include "src/gpu/ganesh/d3d/GrD3DCpuDescriptorManager.h" +#include "src/gpu/ganesh/d3d/GrD3DDescriptorTableManager.h" +#include "src/gpu/ganesh/d3d/GrD3DPipeline.h" +#include "src/gpu/ganesh/d3d/GrD3DRootSignature.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" #include diff --git a/third_party/skia/src/gpu/d3d/GrD3DResourceState.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceState.h similarity index 100% rename from third_party/skia/src/gpu/d3d/GrD3DResourceState.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DResourceState.h diff --git a/third_party/skia/src/gpu/d3d/GrD3DRootSignature.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DRootSignature.cpp similarity index 97% rename from third_party/skia/src/gpu/d3d/GrD3DRootSignature.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DRootSignature.cpp index 7a13ae211fdd..4dbd17b6a2ea 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DRootSignature.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DRootSignature.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DRootSignature.h" +#include "src/gpu/ganesh/d3d/GrD3DRootSignature.h" -#include "src/gpu/GrSPIRVUniformHandler.h" -#include "src/gpu/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/GrSPIRVUniformHandler.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" sk_sp GrD3DRootSignature::Make(GrD3DGpu* gpu, int numTextureSamplers, int numUAVs) { diff --git a/third_party/skia/src/gpu/d3d/GrD3DRootSignature.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DRootSignature.h similarity index 97% rename from third_party/skia/src/gpu/d3d/GrD3DRootSignature.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DRootSignature.h index a56f8b5db29a..8f68172a1562 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DRootSignature.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DRootSignature.h @@ -9,7 +9,7 @@ #define GrD3DRootSignature_DEFINED #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/GrManagedResource.h" +#include "src/gpu/ganesh/GrManagedResource.h" class GrD3DGpu; diff --git a/third_party/skia/src/gpu/d3d/GrD3DSemaphore.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DSemaphore.cpp similarity index 90% rename from third_party/skia/src/gpu/d3d/GrD3DSemaphore.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DSemaphore.cpp index cd2cf54965d6..e7208e0554f1 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DSemaphore.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DSemaphore.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DSemaphore.h" +#include "src/gpu/ganesh/d3d/GrD3DSemaphore.h" -#include "src/gpu/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" std::unique_ptr GrD3DSemaphore::Make(GrD3DGpu* gpu) { diff --git a/third_party/skia/src/gpu/d3d/GrD3DSemaphore.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DSemaphore.h similarity index 90% rename from third_party/skia/src/gpu/d3d/GrD3DSemaphore.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DSemaphore.h index da1afdcf7b16..025286c2646f 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DSemaphore.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DSemaphore.h @@ -10,8 +10,8 @@ #include "include/gpu/GrBackendSemaphore.h" #include "include/gpu/d3d/GrD3DTypes.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrSemaphore.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrSemaphore.h" class GrD3DGpu; diff --git a/third_party/skia/src/gpu/d3d/GrD3DTexture.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTexture.cpp similarity index 85% rename from third_party/skia/src/gpu/d3d/GrD3DTexture.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DTexture.cpp index 4d40c390b457..6426633a8d68 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DTexture.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTexture.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DTexture.h" +#include "src/gpu/ganesh/d3d/GrD3DTexture.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/d3d/GrD3DGpu.h" -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" #include "include/gpu/d3d/GrD3DTypes.h" @@ -20,10 +20,11 @@ GrD3DTexture::GrD3DTexture(GrD3DGpu* gpu, const GrD3DTextureResourceInfo& info, sk_sp state, const GrD3DDescriptorHeap::CPUHandle& shaderResourceView, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, dimensions, info.fProtected) + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, dimensions, info.fProtected, label) , GrD3DTextureResource(info, std::move(state)) - , INHERITED(gpu, dimensions, info.fProtected, GrTextureType::k2D, mipmapStatus) + , INHERITED(gpu, dimensions, info.fProtected, GrTextureType::k2D, mipmapStatus, label) , fShaderResourceView(shaderResourceView) { SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == info.fLevelCount)); this->registerWithCache(budgeted); @@ -36,10 +37,11 @@ GrD3DTexture::GrD3DTexture(GrD3DGpu* gpu, SkISize dimensions, const GrD3DTexture sk_sp state, const GrD3DDescriptorHeap::CPUHandle& shaderResourceView, GrMipmapStatus mipmapStatus, GrWrapCacheable cacheable, - GrIOType ioType) - : GrSurface(gpu, dimensions, info.fProtected) + GrIOType ioType, + std::string_view label) + : GrSurface(gpu, dimensions, info.fProtected, label) , GrD3DTextureResource(info, std::move(state)) - , INHERITED(gpu, dimensions, info.fProtected, GrTextureType::k2D, mipmapStatus) + , INHERITED(gpu, dimensions, info.fProtected, GrTextureType::k2D, mipmapStatus, label) , fShaderResourceView(shaderResourceView) { SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == info.fLevelCount)); if (ioType == kRead_GrIOType) { @@ -54,10 +56,11 @@ GrD3DTexture::GrD3DTexture(GrD3DGpu* gpu, const GrD3DTextureResourceInfo& info, sk_sp state, const GrD3DDescriptorHeap::CPUHandle& shaderResourceView, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, dimensions, info.fProtected) + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, dimensions, info.fProtected, label) , GrD3DTextureResource(info, state) - , INHERITED(gpu, dimensions, info.fProtected, GrTextureType::k2D, mipmapStatus) + , INHERITED(gpu, dimensions, info.fProtected, GrTextureType::k2D, mipmapStatus, label) , fShaderResourceView(shaderResourceView) { SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == info.fLevelCount)); } @@ -81,7 +84,9 @@ sk_sp GrD3DTexture::MakeNewTexture(GrD3DGpu* gpu, SkBudgeted budge gpu->resourceProvider().createShaderResourceView(info.fResource.get()); GrD3DTexture* tex = new GrD3DTexture(gpu, budgeted, dimensions, info, std::move(state), - shaderResourceView, mipmapStatus); + shaderResourceView, + mipmapStatus, + /*label=*/{}); return sk_sp(tex); } @@ -105,7 +110,8 @@ sk_sp GrD3DTexture::MakeWrappedTexture(GrD3DGpu* gpu, return sk_sp(new GrD3DTexture(gpu, dimensions, info, std::move(state), shaderResourceView, mipmapStatus, cacheable, - ioType)); + ioType, + /*label=*/{})); } sk_sp GrD3DTexture::MakeAliasingTexture(GrD3DGpu* gpu, @@ -128,7 +134,8 @@ sk_sp GrD3DTexture::MakeAliasingTexture(GrD3DGpu* gpu, GrD3DTexture* tex = new GrD3DTexture(gpu, SkBudgeted::kNo, originalTexture->dimensions(), info, std::move(state), shaderResourceView, - originalTexture->mipmapStatus()); + originalTexture->mipmapStatus(), + /*label=*/{}); return sk_sp(tex); } diff --git a/third_party/skia/src/gpu/d3d/GrD3DTexture.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTexture.h similarity index 78% rename from third_party/skia/src/gpu/d3d/GrD3DTexture.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DTexture.h index 3810ed9e1f8c..6449de7befde 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DTexture.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTexture.h @@ -9,10 +9,10 @@ #define GrD3DTexture_DEFINED #include "src/core/SkLRUCache.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/d3d/GrD3DDescriptorHeap.h" -#include "src/gpu/d3d/GrD3DTextureResource.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/d3d/GrD3DDescriptorHeap.h" +#include "src/gpu/ganesh/d3d/GrD3DTextureResource.h" class GrD3DTexture : public GrTexture, public virtual GrD3DTextureResource { public: @@ -50,7 +50,8 @@ class GrD3DTexture : public GrTexture, public virtual GrD3DTextureResource { const GrD3DTextureResourceInfo&, sk_sp, const GrD3DDescriptorHeap::CPUHandle& shaderResourceView, - GrMipmapStatus); + GrMipmapStatus, + std::string_view label); GrD3DGpu* getD3DGpu() const; @@ -65,21 +66,29 @@ class GrD3DTexture : public GrTexture, public virtual GrD3DTextureResource { GrD3DTexture(GrD3DGpu*, SkBudgeted, SkISize dimensions, const GrD3DTextureResourceInfo&, sk_sp, const GrD3DDescriptorHeap::CPUHandle& shaderResourceView, - GrMipmapStatus); + GrMipmapStatus, + std::string_view label); GrD3DTexture(GrD3DGpu*, SkISize dimensions, const GrD3DTextureResourceInfo&, sk_sp, const GrD3DDescriptorHeap::CPUHandle& shaderResourceView, - GrMipmapStatus, GrWrapCacheable, GrIOType); + GrMipmapStatus, + GrWrapCacheable, + GrIOType, + std::string_view label); // In D3D we call the release proc after we are finished with the underlying // GrSurfaceResource::Resource object (which occurs after the GPU has finished all work on it). - void onSetRelease(sk_sp releaseHelper) override { + void onSetRelease(sk_sp releaseHelper) override { // Forward the release proc on to GrSurfaceResource this->setResourceRelease(std::move(releaseHelper)); } struct SamplerHash { - uint32_t operator()(GrSamplerState state) const { return state.asIndex(); } + uint32_t operator()(GrSamplerState state) const { + // In D3D anisotropic filtering uses the same field (D3D12_SAMPLER_DESC::Filter) as + // min/mag/mip settings and so is not orthogonal to them. + return state.asKey(/*anisoIsOrthogonal=*/false); + } }; GrD3DDescriptorHeap::CPUHandle fShaderResourceView; diff --git a/third_party/skia/src/gpu/d3d/GrD3DTextureRenderTarget.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.cpp similarity index 64% rename from third_party/skia/src/gpu/d3d/GrD3DTextureRenderTarget.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.cpp index e0dc8f81f9ea..0be24c1a30bf 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DTextureRenderTarget.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DTextureRenderTarget.h" +#include "src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" GrD3DTextureRenderTarget::GrD3DTextureRenderTarget( GrD3DGpu* gpu, @@ -21,10 +21,11 @@ GrD3DTextureRenderTarget::GrD3DTextureRenderTarget( sk_sp msaaState, const GrD3DDescriptorHeap::CPUHandle& colorRenderTargetView, const GrD3DDescriptorHeap::CPUHandle& resolveRenderTargetView, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, dimensions, info.fProtected) + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, dimensions, info.fProtected, label) , GrD3DTextureResource(info, state) - , GrD3DTexture(gpu, dimensions, info, state, shaderResourceView, mipmapStatus) + , GrD3DTexture(gpu, dimensions, info, state, shaderResourceView, mipmapStatus, label) , GrD3DRenderTarget(gpu, dimensions, info, @@ -32,7 +33,8 @@ GrD3DTextureRenderTarget::GrD3DTextureRenderTarget( msaaInfo, std::move(msaaState), colorRenderTargetView, - resolveRenderTargetView) { + resolveRenderTargetView, + label) { SkASSERT(info.fProtected == msaaInfo.fProtected); this->registerWithCache(budgeted); } @@ -45,11 +47,12 @@ GrD3DTextureRenderTarget::GrD3DTextureRenderTarget( sk_sp state, const GrD3DDescriptorHeap::CPUHandle& shaderResourceView, const GrD3DDescriptorHeap::CPUHandle& renderTargetView, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, dimensions, info.fProtected) + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, dimensions, info.fProtected, label) , GrD3DTextureResource(info, state) - , GrD3DTexture(gpu, dimensions, info, state, shaderResourceView, mipmapStatus) - , GrD3DRenderTarget(gpu, dimensions, info, state, renderTargetView) { + , GrD3DTexture(gpu, dimensions, info, state, shaderResourceView, mipmapStatus, label) + , GrD3DRenderTarget(gpu, dimensions, info, state, renderTargetView, label) { this->registerWithCache(budgeted); } @@ -64,10 +67,11 @@ GrD3DTextureRenderTarget::GrD3DTextureRenderTarget( const GrD3DDescriptorHeap::CPUHandle& colorRenderTargetView, const GrD3DDescriptorHeap::CPUHandle& resolveRenderTargetView, GrMipmapStatus mipmapStatus, - GrWrapCacheable cacheable) - : GrSurface(gpu, dimensions, info.fProtected) + GrWrapCacheable cacheable, + std::string_view label) + : GrSurface(gpu, dimensions, info.fProtected, label) , GrD3DTextureResource(info, state) - , GrD3DTexture(gpu, dimensions, info, state, shaderResourceView, mipmapStatus) + , GrD3DTexture(gpu, dimensions, info, state, shaderResourceView, mipmapStatus, label) , GrD3DRenderTarget(gpu, dimensions, info, @@ -75,7 +79,8 @@ GrD3DTextureRenderTarget::GrD3DTextureRenderTarget( msaaInfo, std::move(msaaState), colorRenderTargetView, - resolveRenderTargetView) { + resolveRenderTargetView, + label) { SkASSERT(info.fProtected == msaaInfo.fProtected); this->registerWithCacheWrapped(cacheable); } @@ -88,11 +93,12 @@ GrD3DTextureRenderTarget::GrD3DTextureRenderTarget( const GrD3DDescriptorHeap::CPUHandle& shaderResourceView, const GrD3DDescriptorHeap::CPUHandle& renderTargetView, GrMipmapStatus mipmapStatus, - GrWrapCacheable cacheable) - : GrSurface(gpu, dimensions, info.fProtected) + GrWrapCacheable cacheable, + std::string_view label) + : GrSurface(gpu, dimensions, info.fProtected, label) , GrD3DTextureResource(info, state) - , GrD3DTexture(gpu, dimensions, info, state, shaderResourceView, mipmapStatus) - , GrD3DRenderTarget(gpu, dimensions, info, state, renderTargetView) { + , GrD3DTexture(gpu, dimensions, info, state, shaderResourceView, mipmapStatus, label) + , GrD3DRenderTarget(gpu, dimensions, info, state, renderTargetView, label) { this->registerWithCacheWrapped(cacheable); } @@ -140,14 +146,29 @@ sk_sp GrD3DTextureRenderTarget::MakeNewTextureRenderTa const GrD3DDescriptorHeap::CPUHandle msaaRenderTargetView = gpu->resourceProvider().createRenderTargetView(msInfo.fResource.get()); - GrD3DTextureRenderTarget* trt = new GrD3DTextureRenderTarget( - gpu, budgeted, dimensions, info, std::move(state), shaderResourceView, msInfo, - std::move(msState), msaaRenderTargetView, renderTargetView, mipmapStatus); + GrD3DTextureRenderTarget* trt = new GrD3DTextureRenderTarget(gpu, + budgeted, + dimensions, + info, + std::move(state), + shaderResourceView, + msInfo, + std::move(msState), + msaaRenderTargetView, + renderTargetView, + mipmapStatus, + /*label=*/{}); return sk_sp(trt); } else { - GrD3DTextureRenderTarget* trt = new GrD3DTextureRenderTarget( - gpu, budgeted, dimensions, info, std::move(state), shaderResourceView, - renderTargetView, mipmapStatus); + GrD3DTextureRenderTarget* trt = new GrD3DTextureRenderTarget(gpu, + budgeted, + dimensions, + info, + std::move(state), + shaderResourceView, + renderTargetView, + mipmapStatus, + /*label=*/{}); return sk_sp(trt); } } @@ -184,15 +205,29 @@ sk_sp GrD3DTextureRenderTarget::MakeWrappedTextureRend const GrD3DDescriptorHeap::CPUHandle msaaRenderTargetView = gpu->resourceProvider().createRenderTargetView(msInfo.fResource.get()); - GrD3DTextureRenderTarget* trt = new GrD3DTextureRenderTarget( - gpu, dimensions, info, std::move(state), shaderResourceView, msInfo, - std::move(msState), msaaRenderTargetView, renderTargetView, mipmapStatus, - cacheable); + GrD3DTextureRenderTarget* trt = new GrD3DTextureRenderTarget(gpu, + dimensions, + info, + std::move(state), + shaderResourceView, + msInfo, + std::move(msState), + msaaRenderTargetView, + renderTargetView, + mipmapStatus, + cacheable, + /*label=*/{}); return sk_sp(trt); } else { - return sk_sp(new GrD3DTextureRenderTarget( - gpu, dimensions, info, std::move(state), shaderResourceView, renderTargetView, - mipmapStatus, cacheable)); + return sk_sp(new GrD3DTextureRenderTarget(gpu, + dimensions, + info, + std::move(state), + shaderResourceView, + renderTargetView, + mipmapStatus, + cacheable, + /*label=*/{})); } } diff --git a/third_party/skia/src/gpu/d3d/GrD3DTextureRenderTarget.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.h similarity index 89% rename from third_party/skia/src/gpu/d3d/GrD3DTextureRenderTarget.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.h index 8d2eec210f7b..7c5457505a4a 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DTextureRenderTarget.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureRenderTarget.h @@ -10,8 +10,8 @@ #define GrD3DTextureRenderTarget_DEFINED #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/d3d/GrD3DRenderTarget.h" -#include "src/gpu/d3d/GrD3DTexture.h" +#include "src/gpu/ganesh/d3d/GrD3DRenderTarget.h" +#include "src/gpu/ganesh/d3d/GrD3DTexture.h" class GrD3DGpu; @@ -63,7 +63,8 @@ class GrD3DTextureRenderTarget: public GrD3DTexture, public GrD3DRenderTarget { sk_sp msaaState, const GrD3DDescriptorHeap::CPUHandle& colorRenderTargetView, const GrD3DDescriptorHeap::CPUHandle& resolveRenderTargetView, - GrMipmapStatus); + GrMipmapStatus, + std::string_view label); // non-MSAA, not-wrapped GrD3DTextureRenderTarget(GrD3DGpu* gpu, @@ -73,7 +74,8 @@ class GrD3DTextureRenderTarget: public GrD3DTexture, public GrD3DRenderTarget { sk_sp state, const GrD3DDescriptorHeap::CPUHandle& shaderResourceView, const GrD3DDescriptorHeap::CPUHandle& renderTargetView, - GrMipmapStatus); + GrMipmapStatus, + std::string_view label); // MSAA, wrapped GrD3DTextureRenderTarget(GrD3DGpu* gpu, @@ -86,7 +88,8 @@ class GrD3DTextureRenderTarget: public GrD3DTexture, public GrD3DRenderTarget { const GrD3DDescriptorHeap::CPUHandle& colorRenderTargetView, const GrD3DDescriptorHeap::CPUHandle& resolveRenderTargetView, GrMipmapStatus, - GrWrapCacheable); + GrWrapCacheable, + std::string_view label); // non-MSAA, wrapped GrD3DTextureRenderTarget(GrD3DGpu* gpu, @@ -96,14 +99,15 @@ class GrD3DTextureRenderTarget: public GrD3DTexture, public GrD3DRenderTarget { const GrD3DDescriptorHeap::CPUHandle& shaderResourceView, const GrD3DDescriptorHeap::CPUHandle& renderTargetView, GrMipmapStatus, - GrWrapCacheable); + GrWrapCacheable, + std::string_view label); // GrGLRenderTarget accounts for the texture's memory and any MSAA renderbuffer's memory. size_t onGpuMemorySize() const override; // In Vulkan we call the release proc after we are finished with the underlying // GrD3DImage::Resource object (which occurs after the GPU has finished all work on it). - void onSetRelease(sk_sp releaseHelper) override { + void onSetRelease(sk_sp releaseHelper) override { // Forward the release proc on to GrD3DImage this->setResourceRelease(std::move(releaseHelper)); } diff --git a/third_party/skia/src/gpu/d3d/GrD3DTextureResource.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureResource.cpp similarity index 94% rename from third_party/skia/src/gpu/d3d/GrD3DTextureResource.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureResource.cpp index 8a835f603e33..d0c40fba6d8c 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DTextureResource.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureResource.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/d3d/GrD3DAMDMemoryAllocator.h" -#include "src/gpu/d3d/GrD3DGpu.h" -#include "src/gpu/d3d/GrD3DTextureResource.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/d3d/GrD3DAMDMemoryAllocator.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/d3d/GrD3DTextureResource.h" void GrD3DTextureResource::setResourceState(const GrD3DGpu* gpu, D3D12_RESOURCE_STATES newResourceState, @@ -117,7 +117,7 @@ void GrD3DTextureResource::releaseResource(GrD3DGpu* gpu) { fInfo.fAlloc.reset(); } -void GrD3DTextureResource::setResourceRelease(sk_sp releaseHelper) { +void GrD3DTextureResource::setResourceRelease(sk_sp releaseHelper) { SkASSERT(fResource); // Forward the release proc on to GrD3DTextureResource::Resource fResource->setRelease(std::move(releaseHelper)); diff --git a/third_party/skia/src/gpu/d3d/GrD3DTextureResource.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureResource.h similarity index 94% rename from third_party/skia/src/gpu/d3d/GrD3DTextureResource.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureResource.h index cfbcadf4d79b..ff007f164b00 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DTextureResource.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTextureResource.h @@ -11,9 +11,9 @@ #include "include/core/SkTypes.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/d3d/GrD3DTypes.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrManagedResource.h" -#include "src/gpu/d3d/GrD3DResourceState.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrManagedResource.h" +#include "src/gpu/ganesh/d3d/GrD3DResourceState.h" class GrD3DGpu; @@ -73,7 +73,7 @@ class GrD3DTextureResource : SkNoncopyable { GrD3DGpu* gpu, SkISize dimensions, int sampleCnt, const GrD3DTextureResourceInfo& info, SkColor4f clearColor); - void setResourceRelease(sk_sp releaseHelper); + void setResourceRelease(sk_sp releaseHelper); protected: void releaseResource(GrD3DGpu* gpu); diff --git a/third_party/skia/src/gpu/d3d/GrD3DTypesMinimal.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesMinimal.cpp similarity index 95% rename from third_party/skia/src/gpu/d3d/GrD3DTypesMinimal.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesMinimal.cpp index 1848a219a1a4..ec95d194b82e 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DTypesMinimal.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesMinimal.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "include/private/GrD3DTypesMinimal.h" +#include "include/private/gpu/ganesh/GrD3DTypesMinimal.h" #include "include/gpu/d3d/GrD3DTypes.h" -#include "src/gpu/d3d/GrD3DResourceState.h" -#include "src/gpu/d3d/GrD3DTypesPriv.h" +#include "src/gpu/ganesh/d3d/GrD3DResourceState.h" +#include "src/gpu/ganesh/d3d/GrD3DTypesPriv.h" GrD3DBackendSurfaceInfo::GrD3DBackendSurfaceInfo(const GrD3DTextureResourceInfo& info, GrD3DResourceState* state) @@ -81,4 +81,3 @@ void GrD3DTextureResourceSpecHolder::cleanup() { delete fSpec; fSpec = nullptr; } - diff --git a/third_party/skia/src/gpu/d3d/GrD3DTypesPriv.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesPriv.cpp similarity index 94% rename from third_party/skia/src/gpu/d3d/GrD3DTypesPriv.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesPriv.cpp index 1af1d69467ed..9f1e3500f551 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DTypesPriv.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesPriv.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DTypesPriv.h" +#include "src/gpu/ganesh/d3d/GrD3DTypesPriv.h" GrD3DSurfaceInfo GrD3DTextureResourceSpecToSurfaceInfo(const GrD3DTextureResourceSpec& d3dSpec, uint32_t sampleCount, diff --git a/third_party/skia/src/gpu/d3d/GrD3DTypesPriv.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesPriv.h similarity index 100% rename from third_party/skia/src/gpu/d3d/GrD3DTypesPriv.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DTypesPriv.h diff --git a/third_party/skia/src/gpu/d3d/GrD3DUtil.cpp b/third_party/skia/src/gpu/ganesh/d3d/GrD3DUtil.cpp similarity index 69% rename from third_party/skia/src/gpu/d3d/GrD3DUtil.cpp rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DUtil.cpp index 502e6fe6c3f2..7d7cea1ee1ac 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DUtil.cpp +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DUtil.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/d3d/GrD3DUtil.h" +#include "src/gpu/ganesh/d3d/GrD3DUtil.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/d3d/GrD3DGpu.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/d3d/GrD3DGpu.h" #include "src/sksl/SkSLCompiler.h" bool GrDxgiFormatIsCompressed(DXGI_FORMAT format) { diff --git a/third_party/skia/src/gpu/d3d/GrD3DUtil.h b/third_party/skia/src/gpu/ganesh/d3d/GrD3DUtil.h similarity index 99% rename from third_party/skia/src/gpu/d3d/GrD3DUtil.h rename to third_party/skia/src/gpu/ganesh/d3d/GrD3DUtil.h index faa407299e9c..05c45c525168 100644 --- a/third_party/skia/src/gpu/d3d/GrD3DUtil.h +++ b/third_party/skia/src/gpu/ganesh/d3d/GrD3DUtil.h @@ -11,7 +11,7 @@ #include "include/core/SkImage.h" #include "include/gpu/GrTypes.h" #include "include/gpu/d3d/GrD3DTypes.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #define GR_D3D_CALL_ERRCHECK(X) \ do { \ diff --git a/third_party/skia/src/gpu/dawn/BUILD.bazel b/third_party/skia/src/gpu/ganesh/dawn/BUILD.bazel similarity index 71% rename from third_party/skia/src/gpu/dawn/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/dawn/BUILD.bazel index 74c7e63e5116..82f08eb9172e 100644 --- a/third_party/skia/src/gpu/dawn/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/dawn/BUILD.bazel @@ -1,10 +1,15 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrDawnAttachment_hdr", hdrs = ["GrDawnAttachment.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrAttachment_hdr"], + deps = [ + "//src/gpu/ganesh:GrAttachment_hdr", + "//third_party:dawn", + ], ) generated_cc_atom( @@ -22,7 +27,10 @@ generated_cc_atom( name = "GrDawnBuffer_hdr", hdrs = ["GrDawnBuffer.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrGpuBuffer_hdr"], + deps = [ + "//src/gpu/ganesh:GrGpuBuffer_hdr", + "//third_party:dawn", + ], ) generated_cc_atom( @@ -43,7 +51,7 @@ generated_cc_atom( ":GrDawnUtil_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrContextOptions_hdr", - "//src/gpu:GrCaps_hdr", + "//src/gpu/ganesh:GrCaps_hdr", ], ) @@ -53,11 +61,11 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrDawnCaps_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrStencilSettings_hdr", "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", ], ) @@ -68,11 +76,12 @@ generated_cc_atom( deps = [ ":GrDawnRingBuffer_hdr", "//src/core:SkLRUCache_hdr", - "//src/gpu:GrFinishCallbacks_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu:GrStagingBufferManager_hdr", + "//src/gpu/ganesh:GrFinishCallbacks_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrStagingBufferManager_hdr", "//src/sksl/ir:SkSLProgram_hdr", + "//third_party:dawn", ], ) @@ -97,16 +106,16 @@ generated_cc_atom( "//src/core:SkAutoMalloc_hdr", "//src/core:SkConvertPixels_hdr", "//src/core:SkMipmap_hdr", - "//src/gpu:GrDataUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrGpuResourceCacheAccess_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrSemaphore_hdr", - "//src/gpu:GrStencilSettings_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrThreadSafePipelineBuilder_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrGpuResourceCacheAccess_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrThreadSafePipelineBuilder_hdr", "//src/sksl:SkSLCompiler_hdr", ], ) @@ -117,8 +126,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu:GrTypes_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//third_party:dawn", ], ) @@ -135,11 +145,11 @@ generated_cc_atom( ":GrDawnRenderTarget_hdr", ":GrDawnTexture_hdr", ":GrDawnUtil_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrStencilSettings_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + "//src/gpu/ganesh:GrTexture_hdr", "//src/sksl:SkSLCompiler_hdr", ], ) @@ -150,10 +160,11 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrDawnProgramDataManager_hdr", - "//src/gpu:GrSPIRVUniformHandler_hdr", - "//src/gpu:GrSPIRVVaryingHandler_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh:GrSPIRVUniformHandler_hdr", + "//src/gpu/ganesh:GrSPIRVVaryingHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", "//src/sksl:SkSLCompiler_hdr", + "//third_party:dawn", ], ) @@ -165,10 +176,10 @@ generated_cc_atom( ":GrDawnGpu_hdr", ":GrDawnProgramBuilder_hdr", ":GrDawnTexture_hdr", - "//src/gpu:GrAutoLocaleSetter_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrStencilSettings_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrAutoLocaleSetter_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", "//src/utils:SkShaderUtils_hdr", ], ) @@ -180,8 +191,9 @@ generated_cc_atom( deps = [ ":GrDawnRingBuffer_hdr", "//src/core:SkAutoMalloc_hdr", - "//src/gpu:GrSPIRVUniformHandler_hdr", - "//src/gpu:GrUniformDataManager_hdr", + "//src/gpu/ganesh:GrSPIRVUniformHandler_hdr", + "//src/gpu/ganesh:GrUniformDataManager_hdr", + "//third_party:dawn", ], ) @@ -201,7 +213,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu/dawn:GrDawnTypes_hdr", - "//src/gpu:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", ], ) @@ -253,7 +265,7 @@ generated_cc_atom( ":GrDawnGpu_hdr", ":GrDawnTextureRenderTarget_hdr", "//include/core:SkTraceMemoryDump_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) @@ -261,7 +273,10 @@ generated_cc_atom( name = "GrDawnTexture_hdr", hdrs = ["GrDawnTexture.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrTexture_hdr"], + deps = [ + "//src/gpu/ganesh:GrTexture_hdr", + "//third_party:dawn", + ], ) generated_cc_atom( @@ -280,14 +295,17 @@ generated_cc_atom( name = "GrDawnTypesPriv_src", srcs = ["GrDawnTypesPriv.cpp"], visibility = ["//:__subpackages__"], - deps = ["//include/private:GrDawnTypesPriv_hdr"], + deps = ["//include/private/gpu/ganesh:GrDawnTypesPriv_hdr"], ) generated_cc_atom( name = "GrDawnUtil_hdr", hdrs = ["GrDawnUtil.h"], visibility = ["//:__subpackages__"], - deps = ["//include/private:GrTypesPriv_hdr"], + deps = [ + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//third_party:dawn", + ], ) generated_cc_atom( diff --git a/third_party/skia/src/gpu/dawn/GrDawnAttachment.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnAttachment.cpp similarity index 62% rename from third_party/skia/src/gpu/dawn/GrDawnAttachment.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnAttachment.cpp index b0fee8f53e88..e774d29da65c 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnAttachment.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnAttachment.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnAttachment.h" +#include "src/gpu/ganesh/dawn/GrDawnAttachment.h" -#include "src/gpu/dawn/GrDawnGpu.h" -#include "src/gpu/dawn/GrDawnUtil.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) @@ -17,8 +17,15 @@ GrDawnAttachment::GrDawnAttachment(GrDawnGpu* gpu, UsageFlags supportedUsages, int samples, wgpu::Texture texture, - wgpu::TextureView view) - : INHERITED(gpu, dimensions, supportedUsages, samples, GrMipmapped::kNo, GrProtected::kNo) + wgpu::TextureView view, + std::string_view label) + : INHERITED(gpu, + dimensions, + supportedUsages, + samples, + GrMipmapped::kNo, + GrProtected::kNo, + label) , fTexture(texture) , fView(view) { this->registerWithCache(SkBudgeted::kYes); @@ -41,9 +48,13 @@ sk_sp GrDawnAttachment::MakeStencil(GrDawnGpu* gpu, if (!view) { return nullptr; } - return sk_sp( - new GrDawnAttachment(gpu, dimensions, UsageFlags::kStencilAttachment, sampleCnt, - texture, view)); + return sk_sp(new GrDawnAttachment(gpu, + dimensions, + UsageFlags::kStencilAttachment, + sampleCnt, + texture, + view, + /*label=*/{})); } GrDawnAttachment::~GrDawnAttachment() {} diff --git a/third_party/skia/src/gpu/dawn/GrDawnAttachment.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnAttachment.h similarity index 86% rename from third_party/skia/src/gpu/dawn/GrDawnAttachment.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnAttachment.h index a23a3670343a..2c7e07600275 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnAttachment.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnAttachment.h @@ -8,9 +8,9 @@ #ifndef GrDawnAttachment_DEFINED #define GrDawnAttachment_DEFINED -#include "src/gpu/GrAttachment.h" +#include "src/gpu/ganesh/GrAttachment.h" -#include "dawn/webgpu_cpp.h" +#include "webgpu/webgpu_cpp.h" class GrDawnGpu; @@ -34,7 +34,8 @@ class GrDawnAttachment : public GrAttachment { UsageFlags supportedUsages, int samples, wgpu::Texture texture, - wgpu::TextureView view); + wgpu::TextureView view, + std::string_view label); GrDawnGpu* getDawnGpu() const; diff --git a/third_party/skia/src/gpu/dawn/GrDawnBuffer.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnBuffer.cpp similarity index 94% rename from third_party/skia/src/gpu/dawn/GrDawnBuffer.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnBuffer.cpp index 391b8ddbc3be..e737a2abce64 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnBuffer.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnBuffer.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnBuffer.h" +#include "src/gpu/ganesh/dawn/GrDawnBuffer.h" -#include "src/gpu/dawn/GrDawnGpu.h" +#include "src/gpu/ganesh/dawn/GrDawnGpu.h" namespace { wgpu::BufferUsage GrGpuBufferTypeToDawnUsageBit(GrGpuBufferType type) { @@ -28,8 +28,9 @@ namespace { } GrDawnBuffer::GrDawnBuffer(GrDawnGpu* gpu, size_t sizeInBytes, GrGpuBufferType type, - GrAccessPattern pattern) - : INHERITED(gpu, sizeInBytes, type, pattern) { + GrAccessPattern pattern, + std::string_view label) + : INHERITED(gpu, sizeInBytes, type, pattern, label) { wgpu::BufferDescriptor bufferDesc; bufferDesc.size = sizeInBytes; bufferDesc.usage = GrGpuBufferTypeToDawnUsageBit(type); diff --git a/third_party/skia/src/gpu/dawn/GrDawnBuffer.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnBuffer.h similarity index 77% rename from third_party/skia/src/gpu/dawn/GrDawnBuffer.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnBuffer.h index 86df7d46266e..37a95aaec45f 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnBuffer.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnBuffer.h @@ -8,14 +8,18 @@ #ifndef GrDawnBuffer_DEFINED #define GrDawnBuffer_DEFINED -#include "src/gpu/GrGpuBuffer.h" -#include "dawn/webgpu_cpp.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "webgpu/webgpu_cpp.h" class GrDawnGpu; class GrDawnBuffer : public GrGpuBuffer { public: - GrDawnBuffer(GrDawnGpu* gpu, size_t sizeInBytes, GrGpuBufferType type, GrAccessPattern pattern); + GrDawnBuffer(GrDawnGpu* gpu, + size_t sizeInBytes, + GrGpuBufferType type, + GrAccessPattern pattern, + std::string_view label); ~GrDawnBuffer() override; diff --git a/third_party/skia/src/gpu/dawn/GrDawnCaps.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnCaps.cpp similarity index 92% rename from third_party/skia/src/gpu/dawn/GrDawnCaps.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnCaps.cpp index 4610c8e6aacd..db5d679b4dcd 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnCaps.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnCaps.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnCaps.h" +#include "src/gpu/ganesh/dawn/GrDawnCaps.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrStencilSettings.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" GrDawnCaps::GrDawnCaps(const GrContextOptions& contextOptions) : INHERITED(contextOptions) { fMipmapSupport = true; @@ -156,13 +156,13 @@ static uint32_t get_blend_info_key(const GrPipeline& pipeline) { static const uint32_t kBlendWriteShift = 1; static const uint32_t kBlendCoeffShift = 5; - static_assert(kLast_GrBlendCoeff < (1 << kBlendCoeffShift)); - static_assert(kFirstAdvancedGrBlendEquation - 1 < 4); + static_assert((int)skgpu::BlendCoeff::kLast < (1 << kBlendCoeffShift)); + static_assert((int)skgpu::BlendEquation::kFirstAdvanced - 1 < 4); uint32_t key = blendInfo.fWriteColor; - key |= (blendInfo.fSrcBlend << kBlendWriteShift); - key |= (blendInfo.fDstBlend << (kBlendWriteShift + kBlendCoeffShift)); - key |= (blendInfo.fEquation << (kBlendWriteShift + 2 * kBlendCoeffShift)); + key |= ((int)blendInfo.fSrcBlend << kBlendWriteShift); + key |= ((int)blendInfo.fDstBlend << (kBlendWriteShift + kBlendCoeffShift)); + key |= ((int)blendInfo.fEquation << (kBlendWriteShift + 2 * kBlendCoeffShift)); return key; } diff --git a/third_party/skia/src/gpu/dawn/GrDawnCaps.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnCaps.h similarity index 97% rename from third_party/skia/src/gpu/dawn/GrDawnCaps.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnCaps.h index dbc374128612..7bbef9947fef 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnCaps.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnCaps.h @@ -10,8 +10,8 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrContextOptions.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/dawn/GrDawnUtil.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/dawn/GrDawnUtil.h" class GrDawnCaps : public GrCaps { public: diff --git a/third_party/skia/src/gpu/dawn/GrDawnGpu.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnGpu.cpp similarity index 95% rename from third_party/skia/src/gpu/dawn/GrDawnGpu.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnGpu.cpp index 52a7a9498127..d3c21420c090 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnGpu.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnGpu.cpp @@ -5,31 +5,31 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnGpu.h" +#include "src/gpu/ganesh/dawn/GrDawnGpu.h" #include "include/gpu/GrBackendSemaphore.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkConvertPixels.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrGpuResourceCacheAccess.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrThreadSafePipelineBuilder.h" -#include "src/gpu/dawn/GrDawnAttachment.h" -#include "src/gpu/dawn/GrDawnBuffer.h" -#include "src/gpu/dawn/GrDawnCaps.h" -#include "src/gpu/dawn/GrDawnOpsRenderPass.h" -#include "src/gpu/dawn/GrDawnProgramBuilder.h" -#include "src/gpu/dawn/GrDawnRenderTarget.h" -#include "src/gpu/dawn/GrDawnTexture.h" -#include "src/gpu/dawn/GrDawnUtil.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/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/core/SkAutoMalloc.h" #include "src/core/SkMipmap.h" @@ -170,7 +170,7 @@ GrOpsRenderPass* GrDawnGpu::onGetOpsRenderPass( /////////////////////////////////////////////////////////////////////////////// sk_sp GrDawnGpu::onCreateBuffer(size_t size, GrGpuBufferType type, GrAccessPattern accessPattern, const void* data) { - sk_sp b(new GrDawnBuffer(this, size, type, accessPattern)); + sk_sp b(new GrDawnBuffer(this, size, type, accessPattern, /*label=*/{})); if (data && b) { b->updateData(data, size); } @@ -385,7 +385,7 @@ void GrDawnGpu::uploadTextureData(GrColorType srcColorType, const GrMipLevel tex } bool GrDawnGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) { GrDawnTextureInfo info; SkAssertResult(backendTexture.getDawnTextureInfo(&info)); @@ -444,7 +444,7 @@ GrBackendTexture GrDawnGpu::onCreateCompressedBackendTexture( } bool GrDawnGpu::onUpdateCompressedBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t size) { return false; @@ -884,8 +884,14 @@ wgpu::Sampler GrDawnGpu::getOrCreateSampler(GrSamplerState samplerState) { desc.addressModeU = to_dawn_address_mode(samplerState.wrapModeX()); desc.addressModeV = to_dawn_address_mode(samplerState.wrapModeY()); desc.addressModeW = wgpu::AddressMode::ClampToEdge; - desc.magFilter = desc.minFilter = to_dawn_filter_mode(samplerState.filter()); - desc.mipmapFilter = to_dawn_mipmap_mode(samplerState.mipmapMode()); + desc.maxAnisotropy = samplerState.maxAniso(); + if (samplerState.isAniso()) { + // WebGPU requires these to be linear when maxAnisotropy is > 1. + desc.magFilter = desc.minFilter = desc.mipmapFilter = wgpu::FilterMode::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; diff --git a/third_party/skia/src/gpu/dawn/GrDawnGpu.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnGpu.h similarity index 94% rename from third_party/skia/src/gpu/dawn/GrDawnGpu.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnGpu.h index a6b36da8d524..eb62413ff91d 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnGpu.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnGpu.h @@ -8,14 +8,14 @@ #ifndef GrDawnGpu_DEFINED #define GrDawnGpu_DEFINED -#include "src/gpu/GrGpu.h" +#include "src/gpu/ganesh/GrGpu.h" -#include "dawn/webgpu_cpp.h" +#include "webgpu/webgpu_cpp.h" #include "src/core/SkLRUCache.h" -#include "src/gpu/GrFinishCallbacks.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrStagingBufferManager.h" -#include "src/gpu/dawn/GrDawnRingBuffer.h" +#include "src/gpu/ganesh/GrFinishCallbacks.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrStagingBufferManager.h" +#include "src/gpu/ganesh/dawn/GrDawnRingBuffer.h" #include "src/sksl/ir/SkSLProgram.h" #include @@ -146,7 +146,7 @@ class GrDawnGpu : public GrGpu { GrProtected) override; bool onClearBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) override; GrBackendTexture onCreateCompressedBackendTexture(SkISize dimensions, @@ -155,7 +155,7 @@ class GrDawnGpu : public GrGpu { GrProtected) override; bool onUpdateCompressedBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t size) override; @@ -241,7 +241,9 @@ class GrDawnGpu : public GrGpu { struct SamplerHash { size_t operator()(GrSamplerState samplerState) const { - return SkOpts::hash_fn(&samplerState, sizeof(samplerState), 0); + // In WebGPU it is required that minFilter, magFilter, and mipmapFilter are all + // "linear" when maxAnisotropy is > 1. + return samplerState.asKey(/*anisoIsOrthogonal=*/false); } }; diff --git a/third_party/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.cpp similarity index 93% rename from third_party/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.cpp index a4f8bdc41a40..2f0cf795e4fa 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.cpp @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnOpsRenderPass.h" - -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/dawn/GrDawnAttachment.h" -#include "src/gpu/dawn/GrDawnBuffer.h" -#include "src/gpu/dawn/GrDawnGpu.h" -#include "src/gpu/dawn/GrDawnProgramBuilder.h" -#include "src/gpu/dawn/GrDawnRenderTarget.h" -#include "src/gpu/dawn/GrDawnTexture.h" -#include "src/gpu/dawn/GrDawnUtil.h" +#include "src/gpu/ganesh/dawn/GrDawnOpsRenderPass.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" //////////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/gpu/dawn/GrDawnOpsRenderPass.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h similarity index 95% rename from third_party/skia/src/gpu/dawn/GrDawnOpsRenderPass.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h index 921cf9d8d885..40b0c6ebd4e7 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnOpsRenderPass.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h @@ -8,11 +8,11 @@ #ifndef GrDawnOpsRenderPass_DEFINED #define GrDawnOpsRenderPass_DEFINED -#include "src/gpu/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" #include "include/gpu/GrTypes.h" -#include "src/gpu/GrColor.h" -#include "dawn/webgpu_cpp.h" +#include "src/gpu/ganesh/GrColor.h" +#include "webgpu/webgpu_cpp.h" class GrDawnGpu; class GrDawnRenderTarget; diff --git a/third_party/skia/src/gpu/dawn/GrDawnProgramBuilder.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramBuilder.cpp similarity index 93% rename from third_party/skia/src/gpu/dawn/GrDawnProgramBuilder.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramBuilder.cpp index d5151238e1e3..977b7dd726f5 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnProgramBuilder.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramBuilder.cpp @@ -5,75 +5,75 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnProgramBuilder.h" - -#include "src/gpu/GrAutoLocaleSetter.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/dawn/GrDawnGpu.h" -#include "src/gpu/dawn/GrDawnTexture.h" -#include "src/gpu/effects/GrTextureEffect.h" +#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/utils/SkShaderUtils.h" -static wgpu::BlendFactor to_dawn_blend_factor(GrBlendCoeff coeff) { +static wgpu::BlendFactor to_dawn_blend_factor(skgpu::BlendCoeff coeff) { switch (coeff) { - case kZero_GrBlendCoeff: + case skgpu::BlendCoeff::kZero: return wgpu::BlendFactor::Zero; - case kOne_GrBlendCoeff: + case skgpu::BlendCoeff::kOne: return wgpu::BlendFactor::One; - case kSC_GrBlendCoeff: + case skgpu::BlendCoeff::kSC: return wgpu::BlendFactor::Src; - case kISC_GrBlendCoeff: + case skgpu::BlendCoeff::kISC: return wgpu::BlendFactor::OneMinusSrc; - case kDC_GrBlendCoeff: + case skgpu::BlendCoeff::kDC: return wgpu::BlendFactor::Dst; - case kIDC_GrBlendCoeff: + case skgpu::BlendCoeff::kIDC: return wgpu::BlendFactor::OneMinusDst; - case kSA_GrBlendCoeff: + case skgpu::BlendCoeff::kSA: return wgpu::BlendFactor::SrcAlpha; - case kISA_GrBlendCoeff: + case skgpu::BlendCoeff::kISA: return wgpu::BlendFactor::OneMinusSrcAlpha; - case kDA_GrBlendCoeff: + case skgpu::BlendCoeff::kDA: return wgpu::BlendFactor::DstAlpha; - case kIDA_GrBlendCoeff: + case skgpu::BlendCoeff::kIDA: return wgpu::BlendFactor::OneMinusDstAlpha; - case kConstC_GrBlendCoeff: + case skgpu::BlendCoeff::kConstC: return wgpu::BlendFactor::Constant; - case kIConstC_GrBlendCoeff: + case skgpu::BlendCoeff::kIConstC: return wgpu::BlendFactor::OneMinusConstant; - case kS2C_GrBlendCoeff: - case kIS2C_GrBlendCoeff: - case kS2A_GrBlendCoeff: - case kIS2A_GrBlendCoeff: + case skgpu::BlendCoeff::kS2C: + case skgpu::BlendCoeff::kIS2C: + case skgpu::BlendCoeff::kS2A: + case skgpu::BlendCoeff::kIS2A: default: SkASSERT(!"unsupported blend coefficient"); return wgpu::BlendFactor::One; } } -static wgpu::BlendFactor to_dawn_blend_factor_for_alpha(GrBlendCoeff coeff) { +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 kSC_GrBlendCoeff: + case skgpu::BlendCoeff::kSC: return wgpu::BlendFactor::SrcAlpha; - case kISC_GrBlendCoeff: + case skgpu::BlendCoeff::kISC: return wgpu::BlendFactor::OneMinusSrcAlpha; - case kDC_GrBlendCoeff: + case skgpu::BlendCoeff::kDC: return wgpu::BlendFactor::DstAlpha; - case kIDC_GrBlendCoeff: + case skgpu::BlendCoeff::kIDC: return wgpu::BlendFactor::OneMinusDstAlpha; default: return to_dawn_blend_factor(coeff); } } -static wgpu::BlendOperation to_dawn_blend_operation(GrBlendEquation equation) { +static wgpu::BlendOperation to_dawn_blend_operation(skgpu::BlendEquation equation) { switch (equation) { - case kAdd_GrBlendEquation: + case skgpu::BlendEquation::kAdd: return wgpu::BlendOperation::Add; - case kSubtract_GrBlendEquation: + case skgpu::BlendEquation::kSubtract: return wgpu::BlendOperation::Subtract; - case kReverseSubtract_GrBlendEquation: + case skgpu::BlendEquation::kReverseSubtract: return wgpu::BlendOperation::ReverseSubtract; default: SkASSERT(!"unsupported blend equation"); @@ -175,9 +175,9 @@ static wgpu::VertexFormat to_dawn_vertex_format(GrVertexAttribType type) { static wgpu::BlendState create_blend_state(const GrDawnGpu* gpu, const GrPipeline& pipeline) { GrXferProcessor::BlendInfo blendInfo = pipeline.getXferProcessor().getBlendInfo(); - GrBlendEquation equation = blendInfo.fEquation; - GrBlendCoeff srcCoeff = blendInfo.fSrcBlend; - GrBlendCoeff dstCoeff = blendInfo.fDstBlend; + 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); diff --git a/third_party/skia/src/gpu/dawn/GrDawnProgramBuilder.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramBuilder.h similarity index 92% rename from third_party/skia/src/gpu/dawn/GrDawnProgramBuilder.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramBuilder.h index 4845ae2bd528..c2b18ff51be0 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnProgramBuilder.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramBuilder.h @@ -8,12 +8,12 @@ #ifndef GrDawnProgramBuilder_DEFINED #define GrDawnProgramBuilder_DEFINED -#include "src/gpu/GrSPIRVUniformHandler.h" -#include "src/gpu/GrSPIRVVaryingHandler.h" -#include "src/gpu/dawn/GrDawnProgramDataManager.h" +#include "src/gpu/ganesh/GrSPIRVUniformHandler.h" +#include "src/gpu/ganesh/GrSPIRVVaryingHandler.h" +#include "src/gpu/ganesh/dawn/GrDawnProgramDataManager.h" #include "src/sksl/SkSLCompiler.h" -#include "dawn/webgpu_cpp.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" +#include "webgpu/webgpu_cpp.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" #include diff --git a/third_party/skia/src/gpu/dawn/GrDawnProgramDataManager.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramDataManager.cpp similarity index 95% rename from third_party/skia/src/gpu/dawn/GrDawnProgramDataManager.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramDataManager.cpp index 36280ab335b5..ebc885249841 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnProgramDataManager.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramDataManager.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnProgramDataManager.h" +#include "src/gpu/ganesh/dawn/GrDawnProgramDataManager.h" -#include "src/gpu/dawn/GrDawnGpu.h" +#include "src/gpu/ganesh/dawn/GrDawnGpu.h" GrDawnProgramDataManager::GrDawnProgramDataManager(const UniformInfoArray& uniforms, uint32_t uniformBufferSize) diff --git a/third_party/skia/src/gpu/dawn/GrDawnProgramDataManager.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramDataManager.h similarity index 80% rename from third_party/skia/src/gpu/dawn/GrDawnProgramDataManager.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramDataManager.h index f9a17ff68292..04b918d404b2 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnProgramDataManager.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnProgramDataManager.h @@ -8,11 +8,11 @@ #ifndef GrDawnProgramDataManager_DEFINED #define GrDawnProgramDataManager_DEFINED -#include "src/gpu/GrUniformDataManager.h" +#include "src/gpu/ganesh/GrUniformDataManager.h" -#include "src/gpu/GrSPIRVUniformHandler.h" -#include "src/gpu/dawn/GrDawnRingBuffer.h" -#include "dawn/webgpu_cpp.h" +#include "src/gpu/ganesh/GrSPIRVUniformHandler.h" +#include "src/gpu/ganesh/dawn/GrDawnRingBuffer.h" +#include "webgpu/webgpu_cpp.h" #include "src/core/SkAutoMalloc.h" diff --git a/third_party/skia/src/gpu/dawn/GrDawnRenderTarget.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnRenderTarget.cpp similarity index 82% rename from third_party/skia/src/gpu/dawn/GrDawnRenderTarget.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnRenderTarget.cpp index a7211cf7b7c1..52cf7b9f6b35 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnRenderTarget.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnRenderTarget.cpp @@ -5,25 +5,27 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnRenderTarget.h" +#include "src/gpu/ganesh/dawn/GrDawnRenderTarget.h" #include "include/gpu/GrBackendSurface.h" -#include "src/gpu/dawn/GrDawnGpu.h" -#include "src/gpu/dawn/GrDawnUtil.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) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , GrRenderTarget(gpu, dimensions, sampleCnt, GrProtected::kNo) + 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) { - sk_sp rt(new GrDawnRenderTarget(gpu, dimensions, sampleCnt, info)); + sk_sp rt( + new GrDawnRenderTarget(gpu, dimensions, sampleCnt, info, /*label=*/{})); rt->registerWithCacheWrapped(GrWrapCacheable::kNo); return rt; } diff --git a/third_party/skia/src/gpu/dawn/GrDawnRenderTarget.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnRenderTarget.h similarity index 86% rename from third_party/skia/src/gpu/dawn/GrDawnRenderTarget.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnRenderTarget.h index e7719ae9412f..255105a42c05 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnRenderTarget.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnRenderTarget.h @@ -9,7 +9,7 @@ #define GrDawnRenderTarget_DEFINED #include "include/gpu/dawn/GrDawnTypes.h" -#include "src/gpu/GrRenderTarget.h" +#include "src/gpu/ganesh/GrRenderTarget.h" class GrDawnGpu; @@ -35,11 +35,12 @@ class GrDawnRenderTarget: public GrRenderTarget { GrDawnRenderTarget(GrDawnGpu* gpu, SkISize dimensions, int sampleCnt, - const GrDawnRenderTargetInfo& info); + const GrDawnRenderTargetInfo& info, + std::string_view label); void onAbandon() override; void onRelease() override; - void onSetRelease(sk_sp releaseHelper) override {} + void onSetRelease(sk_sp releaseHelper) override {} // This accounts for the texture's memory and any MSAA renderbuffer's memory. size_t onGpuMemorySize() const override; diff --git a/third_party/skia/src/gpu/dawn/GrDawnRingBuffer.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnRingBuffer.cpp similarity index 85% rename from third_party/skia/src/gpu/dawn/GrDawnRingBuffer.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnRingBuffer.cpp index edb0f8dcc1b9..35c048ad4fbc 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnRingBuffer.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnRingBuffer.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnRingBuffer.h" +#include "src/gpu/ganesh/dawn/GrDawnRingBuffer.h" -#include "src/gpu/dawn/GrDawnGpu.h" -#include "src/gpu/dawn/GrDawnUtil.h" +#include "src/gpu/ganesh/dawn/GrDawnGpu.h" +#include "src/gpu/ganesh/dawn/GrDawnUtil.h" namespace { const int kDefaultSize = 64 * 1024; diff --git a/third_party/skia/src/gpu/dawn/GrDawnRingBuffer.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnRingBuffer.h similarity index 95% rename from third_party/skia/src/gpu/dawn/GrDawnRingBuffer.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnRingBuffer.h index 9270ca634294..954138c2b161 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnRingBuffer.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnRingBuffer.h @@ -8,7 +8,7 @@ #ifndef GrDawnRingBuffer_DEFINED #define GrDawnRingBuffer_DEFINED -#include "src/gpu/dawn/GrDawnBuffer.h" +#include "src/gpu/ganesh/dawn/GrDawnBuffer.h" class GrDawnGpu; diff --git a/third_party/skia/src/gpu/dawn/GrDawnTexture.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnTexture.cpp similarity index 77% rename from third_party/skia/src/gpu/dawn/GrDawnTexture.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnTexture.cpp index 53c3521f0c09..922d10018959 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnTexture.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnTexture.cpp @@ -5,18 +5,19 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnTexture.h" +#include "src/gpu/ganesh/dawn/GrDawnTexture.h" -#include "src/gpu/dawn/GrDawnGpu.h" -#include "src/gpu/dawn/GrDawnTextureRenderTarget.h" -#include "src/gpu/dawn/GrDawnUtil.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) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , GrTexture(gpu, dimensions, GrProtected::kNo, GrTextureType::k2D, mipmapStatus) + 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, @@ -53,14 +54,11 @@ sk_sp GrDawnTexture::Make(GrDawnGpu* gpu, SkISize dimensions, info.fLevelCount = mipLevels; sk_sp result; if (renderTarget) { - result = sk_sp(new GrDawnTextureRenderTarget(gpu, - dimensions, - sampleCnt, - info, - status)); + result = sk_sp(new GrDawnTextureRenderTarget( + gpu, dimensions, sampleCnt, info, status, /*label=*/{})); } else { result = sk_sp( - new GrDawnTexture(gpu, dimensions, info, status)); + new GrDawnTexture(gpu, dimensions, info, status, /*label=*/{})); } result->registerWithCache(budgeted); return result; @@ -79,10 +77,9 @@ sk_sp GrDawnTexture::MakeWrapped(GrDawnGpu* gpu, SkISize dimensio : GrMipmapStatus::kNotAllocated; if (GrRenderable::kYes == renderable) { tex = sk_sp(new GrDawnTextureRenderTarget( - gpu, dimensions, sampleCnt, info, status)); + gpu, dimensions, sampleCnt, info, status, /*label=*/{})); } else { - tex = sk_sp( - new GrDawnTexture(gpu, dimensions, info, status)); + tex = sk_sp(new GrDawnTexture(gpu, dimensions, info, status, /*label=*/{})); } tex->registerWithCacheWrapped(cacheable); if (ioType == kRead_GrIOType) { diff --git a/third_party/skia/src/gpu/dawn/GrDawnTexture.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnTexture.h similarity index 84% rename from third_party/skia/src/gpu/dawn/GrDawnTexture.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnTexture.h index 7245bf5423db..65d2aab8b519 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnTexture.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnTexture.h @@ -8,8 +8,8 @@ #ifndef GrDawnTexture_DEFINED #define GrDawnTexture_DEFINED -#include "src/gpu/GrTexture.h" -#include "dawn/webgpu_cpp.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "webgpu/webgpu_cpp.h" class GrDawnGpu; @@ -33,7 +33,11 @@ class GrDawnTexture : public GrTexture { wgpu::Texture texture() const { return fInfo.fTexture; } wgpu::TextureFormat format() const { return fInfo.fFormat; } protected: - GrDawnTexture(GrDawnGpu*, SkISize dimensions, const GrDawnTextureInfo&, GrMipmapStatus); + GrDawnTexture(GrDawnGpu*, + SkISize dimensions, + const GrDawnTextureInfo&, + GrMipmapStatus, + std::string_view label); GrDawnGpu* getDawnGpu() const; diff --git a/third_party/skia/src/gpu/dawn/GrDawnTextureRenderTarget.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.cpp similarity index 70% rename from third_party/skia/src/gpu/dawn/GrDawnTextureRenderTarget.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.cpp index 1fe500b14fe8..e4187dea1281 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnTextureRenderTarget.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.cpp @@ -5,21 +5,22 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnTextureRenderTarget.h" +#include "src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h" #include "include/core/SkTraceMemoryDump.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/dawn/GrDawnGpu.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) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , GrDawnTexture(gpu, dimensions, textureInfo, mipmapStatus) - , GrDawnRenderTarget(gpu, dimensions, sampleCnt, - GrDawnRenderTargetInfo(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)); diff --git a/third_party/skia/src/gpu/dawn/GrDawnTextureRenderTarget.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h similarity index 85% rename from third_party/skia/src/gpu/dawn/GrDawnTextureRenderTarget.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h index 571c4b6c0e68..9643fe834e6e 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnTextureRenderTarget.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h @@ -8,8 +8,8 @@ #ifndef GrDawnTextureRenderTarget_DEFINED #define GrDawnTextureRenderTarget_DEFINED -#include "src/gpu/dawn/GrDawnRenderTarget.h" -#include "src/gpu/dawn/GrDawnTexture.h" +#include "src/gpu/ganesh/dawn/GrDawnRenderTarget.h" +#include "src/gpu/ganesh/dawn/GrDawnTexture.h" class GrDawnGpu; @@ -25,7 +25,8 @@ class GrDawnTextureRenderTarget : public GrDawnTexture, public GrDawnRenderTarge SkISize dimensions, int sampleCnt, const GrDawnTextureInfo& textureInfo, - GrMipmapStatus mipmapStatus); + GrMipmapStatus mipmapStatus, + std::string_view label); bool canAttemptStencilAttachment(bool useMSAASurface) const override; diff --git a/third_party/skia/src/gpu/dawn/GrDawnTypesPriv.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnTypesPriv.cpp similarity index 92% rename from third_party/skia/src/gpu/dawn/GrDawnTypesPriv.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnTypesPriv.cpp index 391142d5e225..a98553916c1d 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnTypesPriv.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnTypesPriv.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "include/private/GrDawnTypesPriv.h" +#include "include/private/gpu/ganesh/GrDawnTypesPriv.h" GrDawnSurfaceInfo GrDawnTextureSpecToSurfaceInfo(const GrDawnTextureSpec& dawnSpec, uint32_t sampleCount, diff --git a/third_party/skia/src/gpu/dawn/GrDawnUtil.cpp b/third_party/skia/src/gpu/ganesh/dawn/GrDawnUtil.cpp similarity index 98% rename from third_party/skia/src/gpu/dawn/GrDawnUtil.cpp rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnUtil.cpp index 882d985d6f45..b4656ffed638 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnUtil.cpp +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnUtil.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/dawn/GrDawnUtil.h" +#include "src/gpu/ganesh/dawn/GrDawnUtil.h" size_t GrDawnBytesPerBlock(wgpu::TextureFormat format) { switch (format) { diff --git a/third_party/skia/src/gpu/dawn/GrDawnUtil.h b/third_party/skia/src/gpu/ganesh/dawn/GrDawnUtil.h similarity index 95% rename from third_party/skia/src/gpu/dawn/GrDawnUtil.h rename to third_party/skia/src/gpu/ganesh/dawn/GrDawnUtil.h index 9de687ad5667..154d77ba34cf 100644 --- a/third_party/skia/src/gpu/dawn/GrDawnUtil.h +++ b/third_party/skia/src/gpu/ganesh/dawn/GrDawnUtil.h @@ -8,8 +8,8 @@ #ifndef GrDawnUtil_DEFINED #define GrDawnUtil_DEFINED -#include "include/private/GrTypesPriv.h" -#include "dawn/webgpu_cpp.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "webgpu/webgpu_cpp.h" size_t GrDawnBytesPerBlock(wgpu::TextureFormat format); int GrDawnFormatStencilBits(wgpu::TextureFormat format); diff --git a/third_party/skia/src/gpu/effects/BUILD.bazel b/third_party/skia/src/gpu/ganesh/effects/BUILD.bazel similarity index 57% rename from third_party/skia/src/gpu/effects/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/effects/BUILD.bazel index 5a4e89ce92cf..8da81c3676a2 100644 --- a/third_party/skia/src/gpu/effects/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/effects/BUILD.bazel @@ -1,15 +1,17 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrAtlasedShaderHelpers_hdr", hdrs = ["GrAtlasedShaderHelpers.h"], visibility = ["//:__subpackages__"], deps = [ - "//src/gpu:GrDrawOpAtlas_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrDrawOpAtlas_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -18,11 +20,11 @@ generated_cc_atom( hdrs = ["GrBezierEffect.h"], visibility = ["//:__subpackages__"], deps = [ - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkArenaAlloc_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrProcessor_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", ], ) @@ -32,13 +34,13 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrBezierEffect_hdr", - "//src/gpu:GrShaderCaps_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -46,7 +48,7 @@ generated_cc_atom( name = "GrBicubicEffect_hdr", hdrs = ["GrBicubicEffect.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrFragmentProcessor_hdr"], + deps = ["//src/gpu/ganesh:GrFragmentProcessor_hdr"], ) generated_cc_atom( @@ -58,11 +60,11 @@ generated_cc_atom( ":GrMatrixEffect_hdr", ":GrTextureEffect_hdr", "//src/core:SkMatrixPriv_hdr", - "//src/gpu:GrTexture_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", "//src/shaders:SkImageShader_hdr", ], ) @@ -73,8 +75,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//src/core:SkArenaAlloc_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrProcessor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", ], ) @@ -85,15 +87,15 @@ generated_cc_atom( deps = [ ":GrAtlasedShaderHelpers_hdr", ":GrBitmapTextGeoProc_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrTexture_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -113,11 +115,11 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrBlendFragmentProcessor_hdr", - "//src/gpu:GrFragmentProcessor_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/glsl:GrGLSLBlend_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/glsl:GrGLSLBlend_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", ], ) @@ -126,10 +128,10 @@ generated_cc_atom( hdrs = ["GrConvexPolyEffect.h"], visibility = ["//:__subpackages__"], deps = [ - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrProcessor_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", ], ) @@ -139,11 +141,12 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrConvexPolyEffect_hdr", + "//include/sksl:DSL_hdr", "//src/core:SkPathPriv_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", "//src/sksl/dsl/priv:DSLFPs_hdr", ], ) @@ -155,7 +158,7 @@ generated_cc_atom( deps = [ "//include/core:SkRegion_hdr", "//include/gpu:GrTypes_hdr", - "//src/gpu:GrXferProcessor_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", ], ) @@ -165,14 +168,14 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrCoverageSetOpXP_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrXferProcessor_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLBlend_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/glsl:GrGLSLBlend_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -192,17 +195,17 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrCustomXfermode_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrXferProcessor_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLBlend_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/glsl:GrGLSLBlend_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -213,7 +216,7 @@ generated_cc_atom( deps = [ "//include/core:SkRefCnt_hdr", "//include/gpu:GrTypes_hdr", - "//src/gpu:GrXferProcessor_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", ], ) @@ -223,12 +226,12 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrDisableColorXP_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrXferProcessor_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", ], ) @@ -238,8 +241,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//src/core:SkArenaAlloc_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrProcessor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", ], ) @@ -251,15 +254,15 @@ generated_cc_atom( ":GrAtlasedShaderHelpers_hdr", ":GrDistanceFieldGeoProc_hdr", "//src/core:SkDistanceFieldGen_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrTexture_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -267,7 +270,7 @@ generated_cc_atom( name = "GrGaussianConvolutionFragmentProcessor_hdr", hdrs = ["GrGaussianConvolutionFragmentProcessor.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrFragmentProcessor_hdr"], + deps = ["//src/gpu/ganesh:GrFragmentProcessor_hdr"], ) generated_cc_atom( @@ -277,13 +280,14 @@ generated_cc_atom( deps = [ ":GrGaussianConvolutionFragmentProcessor_hdr", ":GrTextureEffect_hdr", + "//include/sksl:DSL_hdr", "//src/core:SkGpuBlurUtils_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", "//src/sksl/dsl/priv:DSLFPs_hdr", ], ) @@ -292,7 +296,7 @@ generated_cc_atom( name = "GrMatrixConvolutionEffect_hdr", hdrs = ["GrMatrixConvolutionEffect.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrFragmentProcessor_hdr"], + deps = ["//src/gpu/ganesh:GrFragmentProcessor_hdr"], ) generated_cc_atom( @@ -302,18 +306,19 @@ generated_cc_atom( deps = [ ":GrMatrixConvolutionEffect_hdr", ":GrTextureEffect_hdr", + "//include/core:SkBitmap_hdr", "//include/private:SkHalf_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrThreadSafeCache_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrThreadSafeCache_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -324,7 +329,7 @@ generated_cc_atom( deps = [ "//include/core:SkM44_hdr", "//include/core:SkTypes_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", ], ) @@ -335,9 +340,9 @@ generated_cc_atom( deps = [ ":GrMatrixEffect_hdr", ":GrTextureEffect_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", "//src/sksl:SkSLUtil_hdr", ], ) @@ -346,7 +351,7 @@ generated_cc_atom( name = "GrModulateAtlasCoverageEffect_hdr", hdrs = ["GrModulateAtlasCoverageEffect.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrFragmentProcessor_hdr"], + deps = ["//src/gpu/ganesh:GrFragmentProcessor_hdr"], ) generated_cc_atom( @@ -356,8 +361,8 @@ generated_cc_atom( deps = [ ":GrModulateAtlasCoverageEffect_hdr", ":GrTextureEffect_hdr", - "//src/gpu:GrDynamicAtlas_hdr", "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh:GrDynamicAtlas_hdr", ], ) @@ -368,8 +373,8 @@ generated_cc_atom( deps = [ "//include/core:SkRefCnt_hdr", "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", ], ) @@ -380,7 +385,7 @@ generated_cc_atom( deps = [ ":GrOvalEffect_hdr", "//include/core:SkRect_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", ], ) @@ -392,7 +397,7 @@ generated_cc_atom( "//include/core:SkBlendMode_hdr", "//include/gpu:GrTypes_hdr", "//include/private:SkMacros_hdr", - "//src/gpu:GrXferProcessor_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", ], ) @@ -405,17 +410,17 @@ generated_cc_atom( "//include/gpu:GrTypes_hdr", "//include/private:SkMacros_hdr", "//include/private:SkTo_hdr", - "//src/gpu:GrBlend_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrProcessorAnalysis_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrXferProcessor_hdr", + "//src/gpu:Blend_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLBlend_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrProcessorAnalysis_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/glsl:GrGLSLBlend_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -426,8 +431,8 @@ generated_cc_atom( deps = [ "//include/core:SkRefCnt_hdr", "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", ], ) @@ -441,12 +446,12 @@ generated_cc_atom( ":GrRRectEffect_hdr", "//src/core:SkRRectPriv_hdr", "//src/core:SkTLazy_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrShaderCaps_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -456,8 +461,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//src/core:SkArenaAlloc_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrProcessor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", ], ) @@ -467,11 +472,11 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrShadowGeoProc_hdr", - "//src/gpu:GrSurfaceProxyView_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -485,7 +490,7 @@ generated_cc_atom( "//include/effects:SkRuntimeEffect_hdr", "//include/gpu:GrContextOptions_hdr", "//include/private:SkVx_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", ], ) @@ -497,17 +502,18 @@ generated_cc_atom( ":GrSkSLFP_hdr", "//include/effects:SkOverdrawColorFilter_hdr", "//include/effects:SkRuntimeEffect_hdr", - "//include/private:GrContext_Base_hdr", "//include/private:SkSLString_hdr", + "//include/private/gpu/ganesh:GrContext_Base_hdr", "//src/core:SkColorFilterBase_hdr", + "//src/core:SkColorSpacePriv_hdr", "//src/core:SkRuntimeEffectPriv_hdr", "//src/core:SkVM_hdr", - "//src/gpu:GrBaseContextPriv_hdr", - "//src/gpu:GrColorInfo_hdr", - "//src/gpu:GrTexture_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh:GrBaseContextPriv_hdr", + "//src/gpu/ganesh:GrColorInfo_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", "//src/sksl:SkSLUtil_hdr", "//src/sksl/codegen:SkSLPipelineStageCodeGenerator_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", @@ -521,9 +527,9 @@ generated_cc_atom( deps = [ "//include/core:SkImageInfo_hdr", "//include/core:SkMatrix_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrSurfaceProxyView_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", ], ) @@ -535,9 +541,9 @@ generated_cc_atom( ":GrMatrixEffect_hdr", ":GrTextureEffect_hdr", "//src/core:SkMatrixPriv_hdr", - "//src/gpu:GrTexture_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", "//src/sksl:SkSLUtil_hdr", ], ) @@ -549,7 +555,7 @@ generated_cc_atom( deps = [ "//include/core:SkYUVAInfo_hdr", "//src/core:SkYUVAInfoLocation_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", ], ) @@ -563,11 +569,11 @@ generated_cc_atom( ":GrYUVtoRGBEffect_hdr", "//include/core:SkYUVAInfo_hdr", "//src/core:SkYUVMath_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrYUVATextureProxies_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrYUVATextureProxies_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", "//src/sksl:SkSLUtil_hdr", ], ) diff --git a/third_party/skia/src/gpu/effects/GrAtlasedShaderHelpers.h b/third_party/skia/src/gpu/ganesh/effects/GrAtlasedShaderHelpers.h similarity index 94% rename from third_party/skia/src/gpu/effects/GrAtlasedShaderHelpers.h rename to third_party/skia/src/gpu/ganesh/effects/GrAtlasedShaderHelpers.h index 013d555d5519..d08470779da3 100644 --- a/third_party/skia/src/gpu/effects/GrAtlasedShaderHelpers.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrAtlasedShaderHelpers.h @@ -8,11 +8,11 @@ #ifndef GrAtlasedShaderHelpers_DEFINED #define GrAtlasedShaderHelpers_DEFINED -#include "src/gpu/GrDrawOpAtlas.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/GrDrawOpAtlas.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" static void append_index_uv_varyings(GrGeometryProcessor::ProgramImpl::EmitArgs& args, int numTextureSamplers, diff --git a/third_party/skia/src/gpu/effects/GrBezierEffect.cpp b/third_party/skia/src/gpu/ganesh/effects/GrBezierEffect.cpp similarity index 97% rename from third_party/skia/src/gpu/effects/GrBezierEffect.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrBezierEffect.cpp index 4671f8b74f20..3c163728e1b0 100644 --- a/third_party/skia/src/gpu/effects/GrBezierEffect.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrBezierEffect.cpp @@ -5,15 +5,15 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrBezierEffect.h" +#include "src/gpu/ganesh/effects/GrBezierEffect.h" -#include "src/gpu/GrShaderCaps.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" class GrConicEffect::Impl : public ProgramImpl { public: diff --git a/third_party/skia/src/gpu/effects/GrBezierEffect.h b/third_party/skia/src/gpu/ganesh/effects/GrBezierEffect.h similarity index 97% rename from third_party/skia/src/gpu/effects/GrBezierEffect.h rename to third_party/skia/src/gpu/ganesh/effects/GrBezierEffect.h index 38d1449ba556..e05c4ae9f4b8 100644 --- a/third_party/skia/src/gpu/effects/GrBezierEffect.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrBezierEffect.h @@ -8,11 +8,11 @@ #ifndef GrBezierEffect_DEFINED #define GrBezierEffect_DEFINED -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkArenaAlloc.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrProcessor.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrProcessor.h" /** * Shader is based off of Loop-Blinn Quadratic GPU Rendering diff --git a/third_party/skia/src/gpu/effects/GrBicubicEffect.cpp b/third_party/skia/src/gpu/ganesh/effects/GrBicubicEffect.cpp similarity index 97% rename from third_party/skia/src/gpu/effects/GrBicubicEffect.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrBicubicEffect.cpp index 1a3217cbfbbd..02701cf5edce 100644 --- a/third_party/skia/src/gpu/effects/GrBicubicEffect.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrBicubicEffect.cpp @@ -5,16 +5,16 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrBicubicEffect.h" +#include "src/gpu/ganesh/effects/GrBicubicEffect.h" #include "src/core/SkMatrixPriv.h" -#include "src/gpu/GrTexture.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/effects/GrMatrixEffect.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/effects/GrMatrixEffect.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 class GrBicubicEffect::Impl : public ProgramImpl { diff --git a/third_party/skia/src/gpu/effects/GrBicubicEffect.h b/third_party/skia/src/gpu/ganesh/effects/GrBicubicEffect.h similarity index 99% rename from third_party/skia/src/gpu/effects/GrBicubicEffect.h rename to third_party/skia/src/gpu/ganesh/effects/GrBicubicEffect.h index 33d5e80f42b7..0e0f7f1fbf3c 100644 --- a/third_party/skia/src/gpu/effects/GrBicubicEffect.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrBicubicEffect.h @@ -8,7 +8,7 @@ #ifndef GrBicubicTextureEffect_DEFINED #define GrBicubicTextureEffect_DEFINED -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" class GrInvariantOutput; diff --git a/third_party/skia/src/gpu/effects/GrBitmapTextGeoProc.cpp b/third_party/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp similarity index 94% rename from third_party/skia/src/gpu/effects/GrBitmapTextGeoProc.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp index c377ac529382..a474dd91aa3d 100644 --- a/third_party/skia/src/gpu/effects/GrBitmapTextGeoProc.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrBitmapTextGeoProc.h" +#include "src/gpu/ganesh/effects/GrBitmapTextGeoProc.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrTexture.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/effects/GrAtlasedShaderHelpers.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/effects/GrAtlasedShaderHelpers.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" class GrBitmapTextGeoProc::Impl : public ProgramImpl { public: diff --git a/third_party/skia/src/gpu/effects/GrBitmapTextGeoProc.h b/third_party/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc.h similarity index 96% rename from third_party/skia/src/gpu/effects/GrBitmapTextGeoProc.h rename to third_party/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc.h index 5522a457ac69..d23f9a5c7f04 100644 --- a/third_party/skia/src/gpu/effects/GrBitmapTextGeoProc.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc.h @@ -9,8 +9,8 @@ #define GrBitmapTextGeoProc_DEFINED #include "src/core/SkArenaAlloc.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrProcessor.h" class GrGLBitmapTextGeoProc; class GrInvariantOutput; diff --git a/third_party/skia/src/gpu/effects/GrBlendFragmentProcessor.cpp b/third_party/skia/src/gpu/ganesh/effects/GrBlendFragmentProcessor.cpp similarity index 76% rename from third_party/skia/src/gpu/effects/GrBlendFragmentProcessor.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrBlendFragmentProcessor.cpp index ed9581f77d19..39342111b1b3 100644 --- a/third_party/skia/src/gpu/effects/GrBlendFragmentProcessor.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrBlendFragmentProcessor.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" -#include "src/gpu/GrFragmentProcessor.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/glsl/GrGLSLBlend.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/glsl/GrGLSLBlend.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" // Some of the CPU implementations of blend modes differ from the GPU enough that // we can't use the CPU implementation to implement constantOutputForConstantInput. @@ -29,9 +29,10 @@ class BlendFragmentProcessor : public GrFragmentProcessor { public: static std::unique_ptr Make(std::unique_ptr src, std::unique_ptr dst, - SkBlendMode mode) { + SkBlendMode mode, + bool shareBlendLogic) { return std::unique_ptr( - new BlendFragmentProcessor(std::move(src), std::move(dst), mode)); + new BlendFragmentProcessor(std::move(src), std::move(dst), mode, shareBlendLogic)); } const char* name() const override { return "Blend"; } @@ -41,9 +42,11 @@ class BlendFragmentProcessor : public GrFragmentProcessor { private: BlendFragmentProcessor(std::unique_ptr src, std::unique_ptr dst, - SkBlendMode mode) + SkBlendMode mode, + bool shareBlendLogic) : INHERITED(kBlendFragmentProcessor_ClassID, OptFlags(src.get(), dst.get(), mode)) - , fMode(mode) { + , fMode(mode) + , fShareBlendLogic(shareBlendLogic) { this->setIsBlendFunction(); this->registerChild(std::move(src)); this->registerChild(std::move(dst)); @@ -51,7 +54,8 @@ class BlendFragmentProcessor : public GrFragmentProcessor { BlendFragmentProcessor(const BlendFragmentProcessor& that) : INHERITED(that) - , fMode(that.fMode) {} + , fMode(that.fMode) + , fShareBlendLogic(that.fShareBlendLogic) {} #if GR_TEST_UTILS SkString onDumpInfo() const override { @@ -139,8 +143,12 @@ class BlendFragmentProcessor : public GrFragmentProcessor { return flags; } - void onAddToKey(const GrShaderCaps&, skgpu::KeyBuilder* b) const override { - b->add32((int)fMode); + void onAddToKey(const GrShaderCaps& caps, skgpu::KeyBuilder* b) const override { + if (fShareBlendLogic) { + b->add32(GrGLSLBlend::BlendKey(fMode)); + } else { + b->add32((int)fMode); + } } bool onIsEqual(const GrFragmentProcessor& other) const override { @@ -161,6 +169,7 @@ class BlendFragmentProcessor : public GrFragmentProcessor { std::unique_ptr onMakeProgramImpl() const override; SkBlendMode fMode; + bool fShareBlendLogic; GR_DECLARE_FRAGMENT_PROCESSOR_TEST @@ -180,13 +189,14 @@ std::unique_ptr BlendFragmentProcessor::TestCreate(GrProces if (d->fRandom->nextBool()) { std::swap(src, dst); } + bool shareLogic = d->fRandom->nextBool(); SkBlendMode mode; do { mode = static_cast(d->fRandom->nextRangeU(0, (int)SkBlendMode::kLastMode)); } while (SkBlendMode::kClear == mode || SkBlendMode::kSrc == mode || SkBlendMode::kDst == mode); return std::unique_ptr( - new BlendFragmentProcessor(std::move(src), std::move(dst), mode)); + new BlendFragmentProcessor(std::move(src), std::move(dst), mode, shareLogic)); } #endif @@ -194,26 +204,46 @@ std::unique_ptr BlendFragmentProcessor::clone() const { return std::unique_ptr(new BlendFragmentProcessor(*this)); } -std::unique_ptr BlendFragmentProcessor::onMakeProgramImpl() const { +std::unique_ptr BlendFragmentProcessor::onMakeProgramImpl() + const { class Impl : public ProgramImpl { public: void emitCode(EmitArgs& args) override { GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; const BlendFragmentProcessor& bfp = args.fFp.cast(); - SkBlendMode mode = bfp.fMode; - - fragBuilder->codeAppendf("// Blend mode: %s\n", SkBlendMode_Name(mode)); + const SkBlendMode mode = bfp.fMode; // Invoke src/dst with our input color (or substitute input color if no child FP) SkString srcColor = this->invokeChild(0, args); SkString dstColor = this->invokeChild(1, args); - // Blend src and dst colors together. - fragBuilder->codeAppendf("return %s(%s, %s);", - GrGLSLBlend::BlendFuncName(mode), - srcColor.c_str(), - dstColor.c_str()); + if (bfp.fShareBlendLogic) { + // Use a blend expression that may rely on uniforms. + std::string blendExpr = GrGLSLBlend::BlendExpression(&args.fFp, + args.fUniformHandler, + &fBlendUniform, + srcColor.c_str(), + dstColor.c_str(), + mode); + fragBuilder->codeAppendf("return %s;", blendExpr.c_str()); + } else { + // Blend src and dst colors together using a hardwired built-in blend function. + fragBuilder->codeAppendf("return %s(%s, %s);", + GrGLSLBlend::BlendFuncName(mode), + srcColor.c_str(), + dstColor.c_str()); + } } + + void onSetData(const GrGLSLProgramDataManager& pdman, + const GrFragmentProcessor& fp) override { + const BlendFragmentProcessor& bfp = fp.cast(); + if (bfp.fShareBlendLogic) { + GrGLSLBlend::SetBlendModeUniformData(pdman, fBlendUniform, bfp.fMode); + } + } + + UniformHandle fBlendUniform; }; return std::make_unique(); @@ -224,7 +254,8 @@ std::unique_ptr BlendFragmentProcessor::onMake std::unique_ptr GrBlendFragmentProcessor::Make( std::unique_ptr src, std::unique_ptr dst, - SkBlendMode mode) { + SkBlendMode mode, + bool shareBlendLogic) { switch (mode) { case SkBlendMode::kClear: return GrFragmentProcessor::MakeColor(SK_PMColor4fTRANSPARENT); @@ -233,6 +264,7 @@ std::unique_ptr GrBlendFragmentProcessor::Make( case SkBlendMode::kDst: return dst; default: - return BlendFragmentProcessor::Make(std::move(src), std::move(dst), mode); + return BlendFragmentProcessor::Make( + std::move(src), std::move(dst), mode, shareBlendLogic); } } diff --git a/third_party/skia/src/gpu/ganesh/effects/GrBlendFragmentProcessor.h b/third_party/skia/src/gpu/ganesh/effects/GrBlendFragmentProcessor.h new file mode 100644 index 000000000000..2a4fca3ca519 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/effects/GrBlendFragmentProcessor.h @@ -0,0 +1,42 @@ +/* + * Copyright 2015 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrBlendFragmentProcessor_DEFINED +#define GrBlendFragmentProcessor_DEFINED + +#include "include/core/SkBlendMode.h" +#include "include/core/SkRefCnt.h" + +class GrFragmentProcessor; + +namespace GrBlendFragmentProcessor { + +/** + * Blends src and dst inputs according to the blend mode. If either input is null, fInputColor is + * used instead. + * - When `shareBlendLogic` is false, the blend function logic is written directly into the code. + * - When `shareBlendLogic` is true, most Porter-Duff blends share the same code, and a uniform + * is used to pick the blend type. This can reduce our overall shader count. + */ +std::unique_ptr Make(std::unique_ptr src, + std::unique_ptr dst, + SkBlendMode mode, + bool shareBlendLogic = true); +/** + * Blends src and dst inputs according to the blend mode. If either input is null, fInputColor is + * used instead. Hard-wires a single blend mode into the code (slightly reducing complexity). + */ +template +std::unique_ptr Make(std::unique_ptr src, + std::unique_ptr dst) { + return Make(std::move(src), std::move(dst), mode, /*shareBlendLogic=*/false); +} + + +} // namespace GrBlendFragmentProcessor + +#endif diff --git a/third_party/skia/src/gpu/effects/GrConvexPolyEffect.cpp b/third_party/skia/src/gpu/ganesh/effects/GrConvexPolyEffect.cpp similarity index 96% rename from third_party/skia/src/gpu/effects/GrConvexPolyEffect.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrConvexPolyEffect.cpp index 9ddb12bc306d..7d4fe09d3a96 100644 --- a/third_party/skia/src/gpu/effects/GrConvexPolyEffect.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrConvexPolyEffect.cpp @@ -5,13 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrConvexPolyEffect.h" +#include "src/gpu/ganesh/effects/GrConvexPolyEffect.h" +#include "include/sksl/DSL.h" #include "src/core/SkPathPriv.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.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/dsl/priv/DSLFPs.h" ////////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/gpu/effects/GrConvexPolyEffect.h b/third_party/skia/src/gpu/ganesh/effects/GrConvexPolyEffect.h similarity index 94% rename from third_party/skia/src/gpu/effects/GrConvexPolyEffect.h rename to third_party/skia/src/gpu/ganesh/effects/GrConvexPolyEffect.h index fa9e60d8fae6..9167c2b50f2b 100644 --- a/third_party/skia/src/gpu/effects/GrConvexPolyEffect.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrConvexPolyEffect.h @@ -8,10 +8,10 @@ #ifndef GrConvexPolyEffect_DEFINED #define GrConvexPolyEffect_DEFINED -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrProcessor.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrProcessor.h" class GrInvariantOutput; class SkPath; diff --git a/third_party/skia/src/gpu/effects/GrCoverageSetOpXP.cpp b/third_party/skia/src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp similarity index 85% rename from third_party/skia/src/gpu/effects/GrCoverageSetOpXP.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp index 1140c2a28bb7..5eafeb2849e0 100644 --- a/third_party/skia/src/gpu/effects/GrCoverageSetOpXP.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp @@ -5,16 +5,16 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrCoverageSetOpXP.h" +#include "src/gpu/ganesh/effects/GrCoverageSetOpXP.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrXferProcessor.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLBlend.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLBlend.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" class CoverageSetOpXP : public GrXferProcessor { public: @@ -67,28 +67,28 @@ std::unique_ptr CoverageSetOpXP::makeProgramImpl() void CoverageSetOpXP::onGetBlendInfo(GrXferProcessor::BlendInfo* blendInfo) const { switch (fRegionOp) { case SkRegion::kReplace_Op: - blendInfo->fSrcBlend = kOne_GrBlendCoeff; - blendInfo->fDstBlend = kZero_GrBlendCoeff; + blendInfo->fSrcBlend = skgpu::BlendCoeff::kOne; + blendInfo->fDstBlend = skgpu::BlendCoeff::kZero; break; case SkRegion::kIntersect_Op: - blendInfo->fSrcBlend = kDC_GrBlendCoeff; - blendInfo->fDstBlend = kZero_GrBlendCoeff; + blendInfo->fSrcBlend = skgpu::BlendCoeff::kDC; + blendInfo->fDstBlend = skgpu::BlendCoeff::kZero; break; case SkRegion::kUnion_Op: - blendInfo->fSrcBlend = kOne_GrBlendCoeff; - blendInfo->fDstBlend = kISC_GrBlendCoeff; + blendInfo->fSrcBlend = skgpu::BlendCoeff::kOne; + blendInfo->fDstBlend = skgpu::BlendCoeff::kISC; break; case SkRegion::kXOR_Op: - blendInfo->fSrcBlend = kIDC_GrBlendCoeff; - blendInfo->fDstBlend = kISC_GrBlendCoeff; + blendInfo->fSrcBlend = skgpu::BlendCoeff::kIDC; + blendInfo->fDstBlend = skgpu::BlendCoeff::kISC; break; case SkRegion::kDifference_Op: - blendInfo->fSrcBlend = kZero_GrBlendCoeff; - blendInfo->fDstBlend = kISC_GrBlendCoeff; + blendInfo->fSrcBlend = skgpu::BlendCoeff::kZero; + blendInfo->fDstBlend = skgpu::BlendCoeff::kISC; break; case SkRegion::kReverseDifference_Op: - blendInfo->fSrcBlend = kIDC_GrBlendCoeff; - blendInfo->fDstBlend = kZero_GrBlendCoeff; + blendInfo->fSrcBlend = skgpu::BlendCoeff::kIDC; + blendInfo->fDstBlend = skgpu::BlendCoeff::kZero; break; } blendInfo->fBlendConstant = SK_PMColor4fTRANSPARENT; diff --git a/third_party/skia/src/gpu/effects/GrCoverageSetOpXP.h b/third_party/skia/src/gpu/ganesh/effects/GrCoverageSetOpXP.h similarity index 98% rename from third_party/skia/src/gpu/effects/GrCoverageSetOpXP.h rename to third_party/skia/src/gpu/ganesh/effects/GrCoverageSetOpXP.h index 1d54a103f10d..8f95b0596147 100644 --- a/third_party/skia/src/gpu/effects/GrCoverageSetOpXP.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrCoverageSetOpXP.h @@ -10,7 +10,7 @@ #include "include/core/SkRegion.h" #include "include/gpu/GrTypes.h" -#include "src/gpu/GrXferProcessor.h" +#include "src/gpu/ganesh/GrXferProcessor.h" // See the comment above GrXPFactory's definition about this warning suppression. #if defined(__GNUC__) diff --git a/third_party/skia/src/gpu/effects/GrCustomXfermode.cpp b/third_party/skia/src/gpu/ganesh/effects/GrCustomXfermode.cpp similarity index 79% rename from third_party/skia/src/gpu/effects/GrCustomXfermode.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrCustomXfermode.cpp index cc2591a777a9..f7b8c216ed45 100644 --- a/third_party/skia/src/gpu/effects/GrCustomXfermode.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrCustomXfermode.cpp @@ -5,19 +5,19 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrCustomXfermode.h" - -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrXferProcessor.h" +#include "src/gpu/ganesh/effects/GrCustomXfermode.h" + #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLBlend.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLBlend.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" bool GrCustomXfermode::IsSupportedMode(SkBlendMode mode) { return (int)mode > (int)SkBlendMode::kLastCoeffMode && @@ -28,31 +28,31 @@ bool GrCustomXfermode::IsSupportedMode(SkBlendMode mode) { // Static helpers /////////////////////////////////////////////////////////////////////////////// -static constexpr GrBlendEquation hw_blend_equation(SkBlendMode mode) { - constexpr int kEqOffset = (kOverlay_GrBlendEquation - (int)SkBlendMode::kOverlay); - static_assert(kOverlay_GrBlendEquation == (int)SkBlendMode::kOverlay + kEqOffset); - static_assert(kDarken_GrBlendEquation == (int)SkBlendMode::kDarken + kEqOffset); - static_assert(kLighten_GrBlendEquation == (int)SkBlendMode::kLighten + kEqOffset); - static_assert(kColorDodge_GrBlendEquation == (int)SkBlendMode::kColorDodge + kEqOffset); - static_assert(kColorBurn_GrBlendEquation == (int)SkBlendMode::kColorBurn + kEqOffset); - static_assert(kHardLight_GrBlendEquation == (int)SkBlendMode::kHardLight + kEqOffset); - static_assert(kSoftLight_GrBlendEquation == (int)SkBlendMode::kSoftLight + kEqOffset); - static_assert(kDifference_GrBlendEquation == (int)SkBlendMode::kDifference + kEqOffset); - static_assert(kExclusion_GrBlendEquation == (int)SkBlendMode::kExclusion + kEqOffset); - static_assert(kMultiply_GrBlendEquation == (int)SkBlendMode::kMultiply + kEqOffset); - static_assert(kHSLHue_GrBlendEquation == (int)SkBlendMode::kHue + kEqOffset); - static_assert(kHSLSaturation_GrBlendEquation == (int)SkBlendMode::kSaturation + kEqOffset); - static_assert(kHSLColor_GrBlendEquation == (int)SkBlendMode::kColor + kEqOffset); - static_assert(kHSLLuminosity_GrBlendEquation == (int)SkBlendMode::kLuminosity + kEqOffset); - - // There's an illegal GrBlendEquation that corresponds to no SkBlendMode, hence the extra +1. - static_assert(kGrBlendEquationCnt == (int)SkBlendMode::kLastMode + 1 + 1 + kEqOffset); - - return static_cast((int)mode + kEqOffset); +static constexpr skgpu::BlendEquation hw_blend_equation(SkBlendMode mode) { + constexpr int kEqOffset = ((int)skgpu::BlendEquation::kOverlay - (int)SkBlendMode::kOverlay); + static_assert((int)skgpu::BlendEquation::kOverlay == (int)SkBlendMode::kOverlay + kEqOffset); + static_assert((int)skgpu::BlendEquation::kDarken == (int)SkBlendMode::kDarken + kEqOffset); + static_assert((int)skgpu::BlendEquation::kLighten == (int)SkBlendMode::kLighten + kEqOffset); + static_assert((int)skgpu::BlendEquation::kColorDodge == (int)SkBlendMode::kColorDodge + kEqOffset); + static_assert((int)skgpu::BlendEquation::kColorBurn == (int)SkBlendMode::kColorBurn + kEqOffset); + static_assert((int)skgpu::BlendEquation::kHardLight == (int)SkBlendMode::kHardLight + kEqOffset); + static_assert((int)skgpu::BlendEquation::kSoftLight == (int)SkBlendMode::kSoftLight + kEqOffset); + static_assert((int)skgpu::BlendEquation::kDifference == (int)SkBlendMode::kDifference + kEqOffset); + static_assert((int)skgpu::BlendEquation::kExclusion == (int)SkBlendMode::kExclusion + kEqOffset); + static_assert((int)skgpu::BlendEquation::kMultiply == (int)SkBlendMode::kMultiply + kEqOffset); + static_assert((int)skgpu::BlendEquation::kHSLHue == (int)SkBlendMode::kHue + kEqOffset); + static_assert((int)skgpu::BlendEquation::kHSLSaturation == (int)SkBlendMode::kSaturation + kEqOffset); + static_assert((int)skgpu::BlendEquation::kHSLColor == (int)SkBlendMode::kColor + kEqOffset); + static_assert((int)skgpu::BlendEquation::kHSLLuminosity == (int)SkBlendMode::kLuminosity + kEqOffset); + + // There's an illegal BlendEquation that corresponds to no SkBlendMode, hence the extra +1. + static_assert(skgpu::kBlendEquationCnt == (int)SkBlendMode::kLastMode + 1 + 1 + kEqOffset); + + return static_cast((int)mode + kEqOffset); #undef EQ_OFFSET } -static bool can_use_hw_blend_equation(GrBlendEquation equation, +static bool can_use_hw_blend_equation(skgpu::BlendEquation equation, GrProcessorAnalysisCoverage coverage, const GrCaps& caps) { if (!caps.advancedBlendEquationSupport()) { return false; @@ -72,7 +72,7 @@ static bool can_use_hw_blend_equation(GrBlendEquation equation, class CustomXP : public GrXferProcessor { public: - CustomXP(SkBlendMode mode, GrBlendEquation hwBlendEquation) + CustomXP(SkBlendMode mode, skgpu::BlendEquation hwBlendEquation) : INHERITED(kCustomXP_ClassID) , fMode(mode) , fHWBlendEquation(hwBlendEquation) {} @@ -80,7 +80,7 @@ class CustomXP : public GrXferProcessor { CustomXP(SkBlendMode mode, GrProcessorAnalysisCoverage coverage) : INHERITED(kCustomXP_ClassID, /*willReadDstColor=*/true, coverage) , fMode(mode) - , fHWBlendEquation(kIllegal_GrBlendEquation) { + , fHWBlendEquation(skgpu::BlendEquation::kIllegal) { } const char* name() const override { return "Custom Xfermode"; } @@ -90,7 +90,7 @@ class CustomXP : public GrXferProcessor { GrXferBarrierType xferBarrierType(const GrCaps&) const override; private: - bool hasHWBlendEquation() const { return kIllegal_GrBlendEquation != fHWBlendEquation; } + bool hasHWBlendEquation() const { return skgpu::BlendEquation::kIllegal != fHWBlendEquation; } void onAddToKey(const GrShaderCaps&, skgpu::KeyBuilder*) const override; @@ -98,22 +98,21 @@ class CustomXP : public GrXferProcessor { bool onIsEqual(const GrXferProcessor& xpBase) const override; - const SkBlendMode fMode; - const GrBlendEquation fHWBlendEquation; + const SkBlendMode fMode; + const skgpu::BlendEquation fHWBlendEquation; using INHERITED = GrXferProcessor; }; void CustomXP::onAddToKey(const GrShaderCaps& caps, skgpu::KeyBuilder* b) const { - uint32_t key = 0; if (this->hasHWBlendEquation()) { SkASSERT(caps.advBlendEqInteraction() > 0); // 0 will mean !xp.hasHWBlendEquation(). - key |= caps.advBlendEqInteraction(); - static_assert(GrShaderCaps::kLast_AdvBlendEqInteraction < 4); + b->addBool(true, "has hardware blend equation"); + b->add32(caps.advBlendEqInteraction()); } else { - key |= static_cast(fMode) << 3; + b->addBool(false, "has hardware blend equation"); + b->add32(GrGLSLBlend::BlendKey(fMode)); } - b->add32(key); } std::unique_ptr CustomXP::makeProgramImpl() const { @@ -147,7 +146,9 @@ std::unique_ptr CustomXP::makeProgramImpl() const const CustomXP& xp = proc.cast(); SkASSERT(!xp.hasHWBlendEquation()); - GrGLSLBlend::AppendMode(fragBuilder, srcColor, dstColor, outColor, xp.fMode); + std::string blendExpr = GrGLSLBlend::BlendExpression( + &xp, uniformHandler, &fBlendUniform, srcColor, dstColor, xp.fMode); + fragBuilder->codeAppendf("%s = %s;", outColor, blendExpr.c_str()); // Apply coverage. DefaultCoverageModulation(fragBuilder, @@ -157,6 +158,16 @@ std::unique_ptr CustomXP::makeProgramImpl() const outColorSecondary, xp); } + + void onSetData(const GrGLSLProgramDataManager& pdman, + const GrXferProcessor& proc) override { + if (fBlendUniform.isValid()) { + const CustomXP& xp = proc.cast(); + GrGLSLBlend::SetBlendModeUniformData(pdman, fBlendUniform, xp.fMode); + } + } + + GrGLSLUniformHandler::UniformHandle fBlendUniform; }; return std::make_unique(); @@ -210,7 +221,7 @@ class CustomXPFactory : public GrXPFactory { GR_DECLARE_XP_FACTORY_TEST SkBlendMode fMode; - GrBlendEquation fHWBlendEquation; + skgpu::BlendEquation fHWBlendEquation; using INHERITED = GrXPFactory; }; diff --git a/third_party/skia/src/gpu/effects/GrCustomXfermode.h b/third_party/skia/src/gpu/ganesh/effects/GrCustomXfermode.h similarity index 100% rename from third_party/skia/src/gpu/effects/GrCustomXfermode.h rename to third_party/skia/src/gpu/ganesh/effects/GrCustomXfermode.h diff --git a/third_party/skia/src/gpu/effects/GrDisableColorXP.cpp b/third_party/skia/src/gpu/ganesh/effects/GrDisableColorXP.cpp similarity index 87% rename from third_party/skia/src/gpu/effects/GrDisableColorXP.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrDisableColorXP.cpp index aaaf51a9f4a3..9b405f0bc485 100644 --- a/third_party/skia/src/gpu/effects/GrDisableColorXP.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrDisableColorXP.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrDisableColorXP.h" +#include "src/gpu/ganesh/effects/GrDisableColorXP.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" /** * This xfer processor disables color writing. Thus color and coverage and ignored and no blending diff --git a/third_party/skia/src/gpu/effects/GrDisableColorXP.h b/third_party/skia/src/gpu/ganesh/effects/GrDisableColorXP.h similarity index 97% rename from third_party/skia/src/gpu/effects/GrDisableColorXP.h rename to third_party/skia/src/gpu/ganesh/effects/GrDisableColorXP.h index 7ffd71b4fa42..4a771a9f294f 100644 --- a/third_party/skia/src/gpu/effects/GrDisableColorXP.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrDisableColorXP.h @@ -10,7 +10,7 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/GrTypes.h" -#include "src/gpu/GrXferProcessor.h" +#include "src/gpu/ganesh/GrXferProcessor.h" // See the comment above GrXPFactory's definition about this warning suppression. #if defined(__GNUC__) diff --git a/third_party/skia/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/third_party/skia/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp similarity index 98% rename from third_party/skia/src/gpu/effects/GrDistanceFieldGeoProc.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp index 688dec3a5978..ff09cb87b17e 100644 --- a/third_party/skia/src/gpu/effects/GrDistanceFieldGeoProc.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp @@ -6,17 +6,17 @@ */ #include "src/core/SkDistanceFieldGen.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrTexture.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/effects/GrAtlasedShaderHelpers.h" -#include "src/gpu/effects/GrDistanceFieldGeoProc.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/effects/GrAtlasedShaderHelpers.h" +#include "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" // Assuming a radius of a little less than the diagonal of the fragment #define SK_DistanceFieldAAFactor "0.65" diff --git a/third_party/skia/src/gpu/effects/GrDistanceFieldGeoProc.h b/third_party/skia/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h similarity index 99% rename from third_party/skia/src/gpu/effects/GrDistanceFieldGeoProc.h rename to third_party/skia/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h index b0c9e6f8e765..f0625afbe2e1 100644 --- a/third_party/skia/src/gpu/effects/GrDistanceFieldGeoProc.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h @@ -9,8 +9,8 @@ #define GrDistanceFieldGeoProc_DEFINED #include "src/core/SkArenaAlloc.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrProcessor.h" class GrGLDistanceFieldA8TextGeoProc; class GrGLDistanceFieldPathGeoProc; diff --git a/third_party/skia/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp b/third_party/skia/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp similarity index 96% rename from third_party/skia/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp index 3cffb507bfaf..7e37aa0e4e3a 100644 --- a/third_party/skia/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp @@ -5,16 +5,17 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h" +#include "include/sksl/DSL.h" #include "src/core/SkGpuBlurUtils.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.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/dsl/priv/DSLFPs.h" // For brevity diff --git a/third_party/skia/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h b/third_party/skia/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h similarity index 98% rename from third_party/skia/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h rename to third_party/skia/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h index 905f4d4edf22..58924a3033ef 100644 --- a/third_party/skia/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h @@ -8,7 +8,7 @@ #ifndef GrGaussianConvolutionFragmentProcessor_DEFINED #define GrGaussianConvolutionFragmentProcessor_DEFINED -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" /** * A 1D Gaussian convolution effect. The kernel is computed as an array of 2 * half-width weights. diff --git a/third_party/skia/src/gpu/effects/GrMatrixConvolutionEffect.cpp b/third_party/skia/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.cpp similarity index 96% rename from third_party/skia/src/gpu/effects/GrMatrixConvolutionEffect.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.cpp index dc37d9398bef..76451b56685b 100644 --- a/third_party/skia/src/gpu/effects/GrMatrixConvolutionEffect.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.cpp @@ -4,21 +4,22 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ -#include "src/gpu/effects/GrMatrixConvolutionEffect.h" +#include "src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h" +#include "include/core/SkBitmap.h" #include "include/private/SkHalf.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/GrThreadSafeCache.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.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/GrGLSLUniformHandler.h" class GrMatrixConvolutionEffect::Impl : public ProgramImpl { public: @@ -111,7 +112,7 @@ GrMatrixConvolutionEffect::KernelWrapper::Make(GrRecordingContext* rContext, } SkBitmap bm; - auto info = SkImageInfo::Make({length, 1}, colorType, kPremul_SkAlphaType, nullptr); + auto info = SkImageInfo::Make({length, 1}, colorType, kPremul_SkAlphaType); if (!bm.tryAllocPixels(info)) { return {}; } diff --git a/third_party/skia/src/gpu/effects/GrMatrixConvolutionEffect.h b/third_party/skia/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h similarity index 98% rename from third_party/skia/src/gpu/effects/GrMatrixConvolutionEffect.h rename to third_party/skia/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h index af0dd50a024c..e182a96033d3 100644 --- a/third_party/skia/src/gpu/effects/GrMatrixConvolutionEffect.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h @@ -8,7 +8,7 @@ #ifndef GrMatrixConvolutionEffect_DEFINED #define GrMatrixConvolutionEffect_DEFINED -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" #include #include diff --git a/third_party/skia/src/gpu/effects/GrMatrixEffect.cpp b/third_party/skia/src/gpu/ganesh/effects/GrMatrixEffect.cpp similarity index 91% rename from third_party/skia/src/gpu/effects/GrMatrixEffect.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrMatrixEffect.cpp index 87199f431ab5..cb07b885c1b4 100644 --- a/third_party/skia/src/gpu/effects/GrMatrixEffect.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrMatrixEffect.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrMatrixEffect.h" +#include "src/gpu/ganesh/effects/GrMatrixEffect.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" #include "src/sksl/SkSLUtil.h" std::unique_ptr GrMatrixEffect::Make( diff --git a/third_party/skia/src/gpu/effects/GrMatrixEffect.h b/third_party/skia/src/gpu/ganesh/effects/GrMatrixEffect.h similarity index 97% rename from third_party/skia/src/gpu/effects/GrMatrixEffect.h rename to third_party/skia/src/gpu/ganesh/effects/GrMatrixEffect.h index ced35224b981..582813f53622 100644 --- a/third_party/skia/src/gpu/effects/GrMatrixEffect.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrMatrixEffect.h @@ -11,7 +11,7 @@ #include "include/core/SkM44.h" #include "include/core/SkTypes.h" -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" class GrMatrixEffect : public GrFragmentProcessor { public: diff --git a/third_party/skia/src/gpu/effects/GrModulateAtlasCoverageEffect.cpp b/third_party/skia/src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp similarity index 96% rename from third_party/skia/src/gpu/effects/GrModulateAtlasCoverageEffect.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp index 56dd5a75621d..89cdd090a4bc 100644 --- a/third_party/skia/src/gpu/effects/GrModulateAtlasCoverageEffect.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrModulateAtlasCoverageEffect.h" +#include "src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.h" -#include "src/gpu/GrDynamicAtlas.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrDynamicAtlas.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" GrModulateAtlasCoverageEffect::GrModulateAtlasCoverageEffect( Flags flags, diff --git a/third_party/skia/src/gpu/effects/GrModulateAtlasCoverageEffect.h b/third_party/skia/src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.h similarity index 97% rename from third_party/skia/src/gpu/effects/GrModulateAtlasCoverageEffect.h rename to third_party/skia/src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.h index 781390a5a8a0..6b0a08eb12db 100644 --- a/third_party/skia/src/gpu/effects/GrModulateAtlasCoverageEffect.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.h @@ -8,7 +8,7 @@ #ifndef GrGrModulateAtlasCoverageEffect_DEFINED #define GrGrModulateAtlasCoverageEffect_DEFINED -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" // Multiplies 'inputFP' by the coverage value in an atlas, optionally inverting or clamping to 0. class GrModulateAtlasCoverageEffect : public GrFragmentProcessor { diff --git a/third_party/skia/src/gpu/effects/GrOvalEffect.cpp b/third_party/skia/src/gpu/ganesh/effects/GrOvalEffect.cpp similarity index 90% rename from third_party/skia/src/gpu/effects/GrOvalEffect.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrOvalEffect.cpp index 8662eac351b9..04db798009c9 100644 --- a/third_party/skia/src/gpu/effects/GrOvalEffect.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrOvalEffect.cpp @@ -6,8 +6,8 @@ */ #include "include/core/SkRect.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/effects/GrOvalEffect.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrOvalEffect.h" GrFPResult GrOvalEffect::Make(std::unique_ptr inputFP, GrClipEdgeType edgeType, const SkRect& oval, const GrShaderCaps& caps) { diff --git a/third_party/skia/src/gpu/effects/GrOvalEffect.h b/third_party/skia/src/gpu/ganesh/effects/GrOvalEffect.h similarity index 84% rename from third_party/skia/src/gpu/effects/GrOvalEffect.h rename to third_party/skia/src/gpu/ganesh/effects/GrOvalEffect.h index 524e91873843..08656f95a047 100644 --- a/third_party/skia/src/gpu/effects/GrOvalEffect.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrOvalEffect.h @@ -10,8 +10,8 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrFragmentProcessor.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" struct GrShaderCaps; struct SkRect; diff --git a/third_party/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp b/third_party/skia/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.cpp similarity index 74% rename from third_party/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.cpp index ed632ac260e5..f340fda6a51f 100644 --- a/third_party/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.cpp @@ -5,22 +5,22 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" #include "include/gpu/GrTypes.h" #include "include/private/SkMacros.h" #include "include/private/SkTo.h" -#include "src/gpu/GrBlend.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProcessorAnalysis.h" -#include "src/gpu/GrXferProcessor.h" +#include "src/gpu/Blend.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLBlend.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProcessorAnalysis.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLBlend.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" /** * Wraps the shader outputs and HW blend state that comprise a Porter Duff blend mode with coverage. @@ -42,13 +42,16 @@ class BlendFormula { kLast_OutputType = kISCModulate_OutputType }; - constexpr BlendFormula(OutputType primaryOut, OutputType secondaryOut, GrBlendEquation equation, - GrBlendCoeff srcCoeff, GrBlendCoeff dstCoeff) + constexpr BlendFormula(OutputType primaryOut, + OutputType secondaryOut, + skgpu::BlendEquation equation, + skgpu::BlendCoeff srcCoeff, + skgpu::BlendCoeff dstCoeff) : fPrimaryOutputType(primaryOut) , fSecondaryOutputType(secondaryOut) - , fBlendEquation(equation) - , fSrcCoeff(srcCoeff) - , fDstCoeff(dstCoeff) + , fBlendEquation(SkTo(equation)) + , fSrcCoeff(SkTo(srcCoeff)) + , fDstCoeff(SkTo(dstCoeff)) , fProps(GetProperties(primaryOut, secondaryOut, equation, srcCoeff, dstCoeff)) {} BlendFormula(const BlendFormula&) = default; @@ -84,16 +87,16 @@ class BlendFormula { return SkToBool(fProps & kCanTweakAlphaForCoverage_Property); } - GrBlendEquation equation() const { - return fBlendEquation; + skgpu::BlendEquation equation() const { + return static_cast(fBlendEquation); } - GrBlendCoeff srcCoeff() const { - return fSrcCoeff; + skgpu::BlendCoeff srcCoeff() const { + return static_cast(fSrcCoeff); } - GrBlendCoeff dstCoeff() const { - return fDstCoeff; + skgpu::BlendCoeff dstCoeff() const { + return static_cast(fDstCoeff); } OutputType primaryOutput() const { @@ -119,25 +122,27 @@ class BlendFormula { /** * Deduce the properties of a BlendFormula. */ - static constexpr Properties GetProperties(OutputType PrimaryOut, OutputType SecondaryOut, - GrBlendEquation BlendEquation, GrBlendCoeff SrcCoeff, - GrBlendCoeff DstCoeff); + static constexpr Properties GetProperties(OutputType PrimaryOut, + OutputType SecondaryOut, + skgpu::BlendEquation BlendEquation, + skgpu::BlendCoeff SrcCoeff, + skgpu::BlendCoeff DstCoeff); struct { // We allot the enums one more bit than they require because MSVC seems to sign-extend // them when the top bit is set. (This is in violation of the C++03 standard 9.6/4) - OutputType fPrimaryOutputType : 4; - OutputType fSecondaryOutputType : 4; - GrBlendEquation fBlendEquation : 6; - GrBlendCoeff fSrcCoeff : 6; - GrBlendCoeff fDstCoeff : 6; - Properties fProps : 32 - (4 + 4 + 6 + 6 + 6); + OutputType fPrimaryOutputType : 4; + OutputType fSecondaryOutputType : 4; + uint32_t fBlendEquation : 6; + uint32_t fSrcCoeff : 6; + uint32_t fDstCoeff : 6; + Properties fProps : 32 - (4 + 4 + 6 + 6 + 6); }; - static_assert(kLast_OutputType < (1 << 3)); - static_assert(kLast_GrBlendEquation < (1 << 5)); - static_assert(kLast_GrBlendCoeff < (1 << 5)); - static_assert(kLast_Property < (1 << 6)); + static_assert(kLast_OutputType < (1 << 3)); + static_assert(static_cast(skgpu::BlendEquation::kLast) < (1 << 5)); + static_assert(static_cast(skgpu::BlendCoeff::kLast) < (1 << 5)); + static_assert(kLast_Property < (1 << 6)); }; static_assert(4 == sizeof(BlendFormula)); @@ -146,34 +151,36 @@ SK_MAKE_BITFIELD_OPS(BlendFormula::Properties) constexpr BlendFormula::Properties BlendFormula::GetProperties(OutputType PrimaryOut, OutputType SecondaryOut, - GrBlendEquation BlendEquation, - GrBlendCoeff SrcCoeff, - GrBlendCoeff DstCoeff) { + skgpu::BlendEquation BlendEquation, + skgpu::BlendCoeff SrcCoeff, + skgpu::BlendCoeff DstCoeff) { return // The provided formula should already be optimized before a BlendFormula is constructed. // Assert that here while setting up the properties in the constexpr constructor. - SkASSERT((kNone_OutputType == PrimaryOut) == !GrBlendCoeffsUseSrcColor(SrcCoeff, DstCoeff)), - SkASSERT(!GrBlendCoeffRefsSrc2(SrcCoeff)), - SkASSERT((kNone_OutputType == SecondaryOut) == !GrBlendCoeffRefsSrc2(DstCoeff)), + SkASSERT((kNone_OutputType == PrimaryOut) == + !skgpu::BlendCoeffsUseSrcColor(SrcCoeff, DstCoeff)), + SkASSERT(!skgpu::BlendCoeffRefsSrc2(SrcCoeff)), + SkASSERT((kNone_OutputType == SecondaryOut) == !skgpu::BlendCoeffRefsSrc2(DstCoeff)), SkASSERT(PrimaryOut != SecondaryOut || kNone_OutputType == PrimaryOut), SkASSERT(kNone_OutputType != PrimaryOut || kNone_OutputType == SecondaryOut), static_cast( - (GrBlendModifiesDst(BlendEquation, SrcCoeff, DstCoeff) ? kModifiesDst_Property : 0) | - (!GrBlendCoeffsUseDstColor(SrcCoeff, DstCoeff, false/*srcColorIsOpaque*/) + (skgpu::BlendModifiesDst(BlendEquation, SrcCoeff, DstCoeff) ? kModifiesDst_Property : 0) | + (!skgpu::BlendCoeffsUseDstColor(SrcCoeff, DstCoeff, false/*srcColorIsOpaque*/) ? kUnaffectedByDst_Property : 0) | - (!GrBlendCoeffsUseDstColor(SrcCoeff, DstCoeff, true/*srcColorIsOpaque*/) + (!skgpu::BlendCoeffsUseDstColor(SrcCoeff, DstCoeff, true/*srcColorIsOpaque*/) ? kUnaffectedByDstIfOpaque_Property : 0) | - ((PrimaryOut >= kModulate_OutputType && GrBlendCoeffsUseSrcColor(SrcCoeff, DstCoeff)) || + ((PrimaryOut >= kModulate_OutputType && + skgpu::BlendCoeffsUseSrcColor(SrcCoeff, DstCoeff)) || (SecondaryOut >= kModulate_OutputType && - GrBlendCoeffRefsSrc2(DstCoeff)) + skgpu::BlendCoeffRefsSrc2(DstCoeff)) ? kUsesInputColor_Property : 0) | // We assert later that SrcCoeff doesn't ref src2. ((kModulate_OutputType == PrimaryOut || kNone_OutputType == PrimaryOut) && kNone_OutputType == SecondaryOut && - GrBlendAllowsCoverageAsAlpha(BlendEquation, SrcCoeff, DstCoeff) + skgpu::BlendAllowsCoverageAsAlpha(BlendEquation, SrcCoeff, DstCoeff) ? kCanTweakAlphaForCoverage_Property : 0)); } @@ -182,23 +189,25 @@ constexpr BlendFormula::Properties BlendFormula::GetProperties(OutputType Primar * When there is no coverage, or the blend mode can tweak alpha for coverage, we use the standard * Porter Duff formula. */ -static constexpr BlendFormula MakeCoeffFormula(GrBlendCoeff srcCoeff, GrBlendCoeff dstCoeff) { +static constexpr BlendFormula MakeCoeffFormula(skgpu::BlendCoeff srcCoeff, + skgpu::BlendCoeff dstCoeff) { // When the coeffs are (Zero, Zero) or (Zero, One) we set the primary output to none. - return (kZero_GrBlendCoeff == srcCoeff && - (kZero_GrBlendCoeff == dstCoeff || kOne_GrBlendCoeff == dstCoeff)) + return (skgpu::BlendCoeff::kZero == srcCoeff && + (skgpu::BlendCoeff::kZero == dstCoeff || skgpu::BlendCoeff::kOne == dstCoeff)) ? BlendFormula(BlendFormula::kNone_OutputType, BlendFormula::kNone_OutputType, - kAdd_GrBlendEquation, kZero_GrBlendCoeff, dstCoeff) + skgpu::BlendEquation::kAdd, skgpu::BlendCoeff::kZero, dstCoeff) : BlendFormula(BlendFormula::kModulate_OutputType, BlendFormula::kNone_OutputType, - kAdd_GrBlendEquation, srcCoeff, dstCoeff); + skgpu::BlendEquation::kAdd, srcCoeff, dstCoeff); } /** * Basic coeff formula similar to MakeCoeffFormula but we will make the src f*Sa. This is used in * LCD dst-out. */ -static constexpr BlendFormula MakeSAModulateFormula(GrBlendCoeff srcCoeff, GrBlendCoeff dstCoeff) { +static constexpr BlendFormula MakeSAModulateFormula(skgpu::BlendCoeff srcCoeff, + skgpu::BlendCoeff dstCoeff) { return BlendFormula(BlendFormula::kSAModulate_OutputType, BlendFormula::kNone_OutputType, - kAdd_GrBlendEquation, srcCoeff, dstCoeff); + skgpu::BlendEquation::kAdd, srcCoeff, dstCoeff); } /** @@ -216,9 +225,9 @@ static constexpr BlendFormula MakeSAModulateFormula(GrBlendCoeff srcCoeff, GrBle * Xfer modes: dst-atop (Sa!=1) */ static constexpr BlendFormula MakeCoverageFormula( - BlendFormula::OutputType oneMinusDstCoeffModulateOutput, GrBlendCoeff srcCoeff) { + BlendFormula::OutputType oneMinusDstCoeffModulateOutput, skgpu::BlendCoeff srcCoeff) { return BlendFormula(BlendFormula::kModulate_OutputType, oneMinusDstCoeffModulateOutput, - kAdd_GrBlendEquation, srcCoeff, kIS2C_GrBlendCoeff); + skgpu::BlendEquation::kAdd, srcCoeff, skgpu::BlendCoeff::kIS2C); } /** @@ -238,7 +247,8 @@ static constexpr BlendFormula MakeCoverageFormula( static constexpr BlendFormula MakeCoverageSrcCoeffZeroFormula( BlendFormula::OutputType oneMinusDstCoeffModulateOutput) { return BlendFormula(oneMinusDstCoeffModulateOutput, BlendFormula::kNone_OutputType, - kReverseSubtract_GrBlendEquation, kDC_GrBlendCoeff, kOne_GrBlendCoeff); + skgpu::BlendEquation::kReverseSubtract, skgpu::BlendCoeff::kDC, + skgpu::BlendCoeff::kOne); } /** @@ -251,9 +261,9 @@ static constexpr BlendFormula MakeCoverageSrcCoeffZeroFormula( * * Xfer modes (Sa!=1): src, src-in, src-out */ -static constexpr BlendFormula MakeCoverageDstCoeffZeroFormula(GrBlendCoeff srcCoeff) { +static constexpr BlendFormula MakeCoverageDstCoeffZeroFormula(skgpu::BlendCoeff srcCoeff) { return BlendFormula(BlendFormula::kModulate_OutputType, BlendFormula::kCoverage_OutputType, - kAdd_GrBlendEquation, srcCoeff, kIS2A_GrBlendCoeff); + skgpu::BlendEquation::kAdd, srcCoeff, skgpu::BlendCoeff::kIS2A); } /** @@ -264,75 +274,77 @@ static constexpr BlendFormula MakeCoverageDstCoeffZeroFormula(GrBlendCoeff srcCo static constexpr BlendFormula gBlendTable[2][2][(int)SkBlendMode::kLastCoeffMode + 1] = { /*>> No coverage, input color unknown <<*/ {{ - /* clear */ MakeCoeffFormula(kZero_GrBlendCoeff, kZero_GrBlendCoeff), - /* src */ MakeCoeffFormula(kOne_GrBlendCoeff, kZero_GrBlendCoeff), - /* dst */ MakeCoeffFormula(kZero_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-over */ MakeCoeffFormula(kOne_GrBlendCoeff, kISA_GrBlendCoeff), - /* dst-over */ MakeCoeffFormula(kIDA_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-in */ MakeCoeffFormula(kDA_GrBlendCoeff, kZero_GrBlendCoeff), - /* dst-in */ MakeCoeffFormula(kZero_GrBlendCoeff, kSA_GrBlendCoeff), - /* src-out */ MakeCoeffFormula(kIDA_GrBlendCoeff, kZero_GrBlendCoeff), - /* dst-out */ MakeCoeffFormula(kZero_GrBlendCoeff, kISA_GrBlendCoeff), - /* src-atop */ MakeCoeffFormula(kDA_GrBlendCoeff, kISA_GrBlendCoeff), - /* dst-atop */ MakeCoeffFormula(kIDA_GrBlendCoeff, kSA_GrBlendCoeff), - /* xor */ MakeCoeffFormula(kIDA_GrBlendCoeff, kISA_GrBlendCoeff), - /* plus */ MakeCoeffFormula(kOne_GrBlendCoeff, kOne_GrBlendCoeff), - /* modulate */ MakeCoeffFormula(kZero_GrBlendCoeff, kSC_GrBlendCoeff), - /* screen */ MakeCoeffFormula(kOne_GrBlendCoeff, kISC_GrBlendCoeff), + /* clear */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kZero), + /* src */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kZero), + /* dst */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kOne), + /* src-over */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kISA), + /* dst-over */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kOne), + /* src-in */ MakeCoeffFormula(skgpu::BlendCoeff::kDA, skgpu::BlendCoeff::kZero), + /* dst-in */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kSA), + /* src-out */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kZero), + /* dst-out */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kISA), + /* src-atop */ MakeCoeffFormula(skgpu::BlendCoeff::kDA, skgpu::BlendCoeff::kISA), + /* dst-atop */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kSA), + /* xor */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kISA), + /* plus */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kOne), + /* modulate */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kSC), + /* screen */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kISC), }, /*>> Has coverage, input color unknown <<*/ { /* clear */ MakeCoverageSrcCoeffZeroFormula(BlendFormula::kCoverage_OutputType), - /* src */ MakeCoverageDstCoeffZeroFormula(kOne_GrBlendCoeff), - /* dst */ MakeCoeffFormula(kZero_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-over */ MakeCoeffFormula(kOne_GrBlendCoeff, kISA_GrBlendCoeff), - /* dst-over */ MakeCoeffFormula(kIDA_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-in */ MakeCoverageDstCoeffZeroFormula(kDA_GrBlendCoeff), + /* src */ MakeCoverageDstCoeffZeroFormula(skgpu::BlendCoeff::kOne), + /* dst */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kOne), + /* src-over */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kISA), + /* dst-over */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kOne), + /* src-in */ MakeCoverageDstCoeffZeroFormula(skgpu::BlendCoeff::kDA), /* dst-in */ MakeCoverageSrcCoeffZeroFormula(BlendFormula::kISAModulate_OutputType), - /* src-out */ MakeCoverageDstCoeffZeroFormula(kIDA_GrBlendCoeff), - /* dst-out */ MakeCoeffFormula(kZero_GrBlendCoeff, kISA_GrBlendCoeff), - /* src-atop */ MakeCoeffFormula(kDA_GrBlendCoeff, kISA_GrBlendCoeff), - /* dst-atop */ MakeCoverageFormula(BlendFormula::kISAModulate_OutputType, kIDA_GrBlendCoeff), - /* xor */ MakeCoeffFormula(kIDA_GrBlendCoeff, kISA_GrBlendCoeff), - /* plus */ MakeCoeffFormula(kOne_GrBlendCoeff, kOne_GrBlendCoeff), + /* src-out */ MakeCoverageDstCoeffZeroFormula(skgpu::BlendCoeff::kIDA), + /* dst-out */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kISA), + /* src-atop */ MakeCoeffFormula(skgpu::BlendCoeff::kDA, skgpu::BlendCoeff::kISA), + /* dst-atop */ MakeCoverageFormula(BlendFormula::kISAModulate_OutputType, + skgpu::BlendCoeff::kIDA), + /* xor */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kISA), + /* plus */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kOne), /* modulate */ MakeCoverageSrcCoeffZeroFormula(BlendFormula::kISCModulate_OutputType), - /* screen */ MakeCoeffFormula(kOne_GrBlendCoeff, kISC_GrBlendCoeff), + /* screen */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kISC), }}, /*>> No coverage, input color opaque <<*/ {{ - /* clear */ MakeCoeffFormula(kZero_GrBlendCoeff, kZero_GrBlendCoeff), - /* src */ MakeCoeffFormula(kOne_GrBlendCoeff, kZero_GrBlendCoeff), - /* dst */ MakeCoeffFormula(kZero_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-over */ MakeCoeffFormula(kOne_GrBlendCoeff, kISA_GrBlendCoeff), // see comment below - /* dst-over */ MakeCoeffFormula(kIDA_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-in */ MakeCoeffFormula(kDA_GrBlendCoeff, kZero_GrBlendCoeff), - /* dst-in */ MakeCoeffFormula(kZero_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-out */ MakeCoeffFormula(kIDA_GrBlendCoeff, kZero_GrBlendCoeff), - /* dst-out */ MakeCoeffFormula(kZero_GrBlendCoeff, kZero_GrBlendCoeff), - /* src-atop */ MakeCoeffFormula(kDA_GrBlendCoeff, kZero_GrBlendCoeff), - /* dst-atop */ MakeCoeffFormula(kIDA_GrBlendCoeff, kOne_GrBlendCoeff), - /* xor */ MakeCoeffFormula(kIDA_GrBlendCoeff, kZero_GrBlendCoeff), - /* plus */ MakeCoeffFormula(kOne_GrBlendCoeff, kOne_GrBlendCoeff), - /* modulate */ MakeCoeffFormula(kZero_GrBlendCoeff, kSC_GrBlendCoeff), - /* screen */ MakeCoeffFormula(kOne_GrBlendCoeff, kISC_GrBlendCoeff), + /* clear */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kZero), + /* src */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kZero), + /* dst */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kOne), + /* src-over */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, + skgpu::BlendCoeff::kISA), // see comment below + /* dst-over */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kOne), + /* src-in */ MakeCoeffFormula(skgpu::BlendCoeff::kDA, skgpu::BlendCoeff::kZero), + /* dst-in */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kOne), + /* src-out */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kZero), + /* dst-out */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kZero), + /* src-atop */ MakeCoeffFormula(skgpu::BlendCoeff::kDA, skgpu::BlendCoeff::kZero), + /* dst-atop */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kOne), + /* xor */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kZero), + /* plus */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kOne), + /* modulate */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kSC), + /* screen */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kISC), }, /*>> Has coverage, input color opaque <<*/ { /* clear */ MakeCoverageSrcCoeffZeroFormula(BlendFormula::kCoverage_OutputType), - /* src */ MakeCoeffFormula(kOne_GrBlendCoeff, kISA_GrBlendCoeff), - /* dst */ MakeCoeffFormula(kZero_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-over */ MakeCoeffFormula(kOne_GrBlendCoeff, kISA_GrBlendCoeff), - /* dst-over */ MakeCoeffFormula(kIDA_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-in */ MakeCoeffFormula(kDA_GrBlendCoeff, kISA_GrBlendCoeff), - /* dst-in */ MakeCoeffFormula(kZero_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-out */ MakeCoeffFormula(kIDA_GrBlendCoeff, kISA_GrBlendCoeff), + /* src */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kISA), + /* dst */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kOne), + /* src-over */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kISA), + /* dst-over */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kOne), + /* src-in */ MakeCoeffFormula(skgpu::BlendCoeff::kDA, skgpu::BlendCoeff::kISA), + /* dst-in */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, skgpu::BlendCoeff::kOne), + /* src-out */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kISA), /* dst-out */ MakeCoverageSrcCoeffZeroFormula(BlendFormula::kCoverage_OutputType), - /* src-atop */ MakeCoeffFormula(kDA_GrBlendCoeff, kISA_GrBlendCoeff), - /* dst-atop */ MakeCoeffFormula(kIDA_GrBlendCoeff, kOne_GrBlendCoeff), - /* xor */ MakeCoeffFormula(kIDA_GrBlendCoeff, kISA_GrBlendCoeff), - /* plus */ MakeCoeffFormula(kOne_GrBlendCoeff, kOne_GrBlendCoeff), + /* src-atop */ MakeCoeffFormula(skgpu::BlendCoeff::kDA, skgpu::BlendCoeff::kISA), + /* dst-atop */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kOne), + /* xor */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, skgpu::BlendCoeff::kISA), + /* plus */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kOne), /* modulate */ MakeCoverageSrcCoeffZeroFormula(BlendFormula::kISCModulate_OutputType), - /* screen */ MakeCoeffFormula(kOne_GrBlendCoeff, kISC_GrBlendCoeff), + /* screen */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kISC), }}}; // In the above table src-over is not optimized to src mode when the color is opaque because we // found no advantage to doing so. Also, we are using a global src-over XP in most cases which is @@ -341,20 +353,32 @@ static constexpr BlendFormula gBlendTable[2][2][(int)SkBlendMode::kLastCoeffMode // this table. static constexpr BlendFormula gLCDBlendTable[(int)SkBlendMode::kLastCoeffMode + 1] = { /* clear */ MakeCoverageSrcCoeffZeroFormula(BlendFormula::kCoverage_OutputType), - /* src */ MakeCoverageFormula(BlendFormula::kCoverage_OutputType, kOne_GrBlendCoeff), - /* dst */ MakeCoeffFormula(kZero_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-over */ MakeCoverageFormula(BlendFormula::kSAModulate_OutputType, kOne_GrBlendCoeff), - /* dst-over */ MakeCoeffFormula(kIDA_GrBlendCoeff, kOne_GrBlendCoeff), - /* src-in */ MakeCoverageFormula(BlendFormula::kCoverage_OutputType, kDA_GrBlendCoeff), + /* src */ MakeCoverageFormula(BlendFormula::kCoverage_OutputType, + skgpu::BlendCoeff::kOne), + /* dst */ MakeCoeffFormula(skgpu::BlendCoeff::kZero, + skgpu::BlendCoeff::kOne), + /* src-over */ MakeCoverageFormula(BlendFormula::kSAModulate_OutputType, + skgpu::BlendCoeff::kOne), + /* dst-over */ MakeCoeffFormula(skgpu::BlendCoeff::kIDA, + skgpu::BlendCoeff::kOne), + /* src-in */ MakeCoverageFormula(BlendFormula::kCoverage_OutputType, + skgpu::BlendCoeff::kDA), /* dst-in */ MakeCoverageSrcCoeffZeroFormula(BlendFormula::kISAModulate_OutputType), - /* src-out */ MakeCoverageFormula(BlendFormula::kCoverage_OutputType, kIDA_GrBlendCoeff), - /* dst-out */ MakeSAModulateFormula(kZero_GrBlendCoeff, kISC_GrBlendCoeff), - /* src-atop */ MakeCoverageFormula(BlendFormula::kSAModulate_OutputType, kDA_GrBlendCoeff), - /* dst-atop */ MakeCoverageFormula(BlendFormula::kISAModulate_OutputType, kIDA_GrBlendCoeff), - /* xor */ MakeCoverageFormula(BlendFormula::kSAModulate_OutputType, kIDA_GrBlendCoeff), - /* plus */ MakeCoeffFormula(kOne_GrBlendCoeff, kOne_GrBlendCoeff), + /* src-out */ MakeCoverageFormula(BlendFormula::kCoverage_OutputType, + skgpu::BlendCoeff::kIDA), + /* dst-out */ MakeSAModulateFormula(skgpu::BlendCoeff::kZero, + skgpu::BlendCoeff::kISC), + /* src-atop */ MakeCoverageFormula(BlendFormula::kSAModulate_OutputType, + skgpu::BlendCoeff::kDA), + /* dst-atop */ MakeCoverageFormula(BlendFormula::kISAModulate_OutputType, + skgpu::BlendCoeff::kIDA), + /* xor */ MakeCoverageFormula(BlendFormula::kSAModulate_OutputType, + skgpu::BlendCoeff::kIDA), + /* plus */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, + skgpu::BlendCoeff::kOne), /* modulate */ MakeCoverageSrcCoeffZeroFormula(BlendFormula::kISCModulate_OutputType), - /* screen */ MakeCoeffFormula(kOne_GrBlendCoeff, kISC_GrBlendCoeff), + /* screen */ MakeCoeffFormula(skgpu::BlendCoeff::kOne, + skgpu::BlendCoeff::kISC), }; static BlendFormula get_blend_formula(bool isOpaque, @@ -503,7 +527,7 @@ class ShaderPDXferProcessor : public GrXferProcessor { void ShaderPDXferProcessor::onAddToKey(const GrShaderCaps&, skgpu::KeyBuilder* b) const { - b->add32(static_cast(fXfermode)); + b->add32(GrGLSLBlend::BlendKey(fXfermode)); } std::unique_ptr ShaderPDXferProcessor::makeProgramImpl() const { @@ -519,7 +543,9 @@ std::unique_ptr ShaderPDXferProcessor::makeProgram const GrXferProcessor& proc) override { const ShaderPDXferProcessor& xp = proc.cast(); - GrGLSLBlend::AppendMode(fragBuilder, srcColor, dstColor, outColor, xp.fXfermode); + std::string blendExpr = GrGLSLBlend::BlendExpression( + &xp, uniformHandler, &fBlendUniform, srcColor, dstColor, xp.fXfermode); + fragBuilder->codeAppendf("%s = %s;", outColor, blendExpr.c_str()); // Apply coverage. DefaultCoverageModulation(fragBuilder, @@ -529,6 +555,16 @@ std::unique_ptr ShaderPDXferProcessor::makeProgram outColorSecondary, xp); } + + void onSetData(const GrGLSLProgramDataManager& pdman, + const GrXferProcessor& proc) override { + if (fBlendUniform.isValid()) { + const ShaderPDXferProcessor& xp = proc.cast(); + GrGLSLBlend::SetBlendModeUniformData(pdman, fBlendUniform, xp.fXfermode); + } + } + + GrGLSLUniformHandler::UniformHandle fBlendUniform; }; return std::make_unique(); @@ -551,8 +587,8 @@ class PDLCDXferProcessor : public GrXferProcessor { void onAddToKey(const GrShaderCaps&, skgpu::KeyBuilder*) const override {} void onGetBlendInfo(GrXferProcessor::BlendInfo* blendInfo) const override { - blendInfo->fSrcBlend = kConstC_GrBlendCoeff; - blendInfo->fDstBlend = kISC_GrBlendCoeff; + blendInfo->fSrcBlend = skgpu::BlendCoeff::kConstC; + blendInfo->fDstBlend = skgpu::BlendCoeff::kISC; blendInfo->fBlendConstant = fBlendConstant; } @@ -818,7 +854,7 @@ void GrPorterDuffXPFactory::TestGetXPOutputTypes(const GrXferProcessor* xp, //////////////////////////////////////////////////////////////////////////////////////////////// const GrXferProcessor& GrPorterDuffXPFactory::SimpleSrcOverXP() { static BlendFormula gSrcOverBlendFormula = - MakeCoeffFormula(kOne_GrBlendCoeff, kISA_GrBlendCoeff); + MakeCoeffFormula(skgpu::BlendCoeff::kOne, skgpu::BlendCoeff::kISA); static PorterDuffXferProcessor gSrcOverXP(gSrcOverBlendFormula, GrProcessorAnalysisCoverage::kSingleChannel); return gSrcOverXP; diff --git a/third_party/skia/src/gpu/effects/GrPorterDuffXferProcessor.h b/third_party/skia/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h similarity index 98% rename from third_party/skia/src/gpu/effects/GrPorterDuffXferProcessor.h rename to third_party/skia/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h index 8260c92c58ab..9fab0b0690c4 100644 --- a/third_party/skia/src/gpu/effects/GrPorterDuffXferProcessor.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h @@ -11,7 +11,7 @@ #include "include/core/SkBlendMode.h" #include "include/gpu/GrTypes.h" #include "include/private/SkMacros.h" -#include "src/gpu/GrXferProcessor.h" +#include "src/gpu/ganesh/GrXferProcessor.h" // See the comment above GrXPFactory's definition about this warning suppression. #if defined(__GNUC__) diff --git a/third_party/skia/src/gpu/effects/GrRRectEffect.cpp b/third_party/skia/src/gpu/ganesh/effects/GrRRectEffect.cpp similarity index 96% rename from third_party/skia/src/gpu/effects/GrRRectEffect.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrRRectEffect.cpp index 22cfc0617da4..b82a13ae8a39 100644 --- a/third_party/skia/src/gpu/effects/GrRRectEffect.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrRRectEffect.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrRRectEffect.h" +#include "src/gpu/ganesh/effects/GrRRectEffect.h" #include "src/core/SkRRectPriv.h" #include "src/core/SkTLazy.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrShaderCaps.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/effects/GrConvexPolyEffect.h" -#include "src/gpu/effects/GrOvalEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/effects/GrConvexPolyEffect.h" +#include "src/gpu/ganesh/effects/GrOvalEffect.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" // The effects defined here only handle rrect radii >= kRadiusMin. static const SkScalar kRadiusMin = SK_ScalarHalf; @@ -495,6 +495,21 @@ std::unique_ptr EllipticalRRectEffect::TestCreate(GrProcess ////////////////////////////////////////////////////////////////////////////// +static bool elliptical_effect_uses_scale(const GrShaderCaps& caps, const SkRRect& rrect) { + // If we're on a device where float != fp32 then we'll do the distance computation in a space + // that is normalized by the largest radius. The scale uniform will be scale, 1/scale. The + // radii uniform values are already in this normalized space. + if (!caps.floatIs32Bits()) { + return true; + } + // Additionally, even if we have fp32, large radii can underflow 1/radii^2 terms leading to + // blurry coverage. This effect applies to simple and nine-patch, so only need to check TL+BR + const SkVector& r0 = rrect.radii(SkRRect::kUpperLeft_Corner); + const SkVector& r1 = rrect.radii(SkRRect::kLowerRight_Corner); + float maxRadius = std::max(std::max(r0.fX, r0.fY), std::max(r1.fX, r1.fY)); + return SkScalarNearlyZero(1.f / (maxRadius * maxRadius)); +} + class EllipticalRRectEffect::Impl : public ProgramImpl { public: void emitCode(EmitArgs&) override; @@ -532,11 +547,9 @@ void EllipticalRRectEffect::Impl::emitCode(EmitArgs& args) { fragBuilder->codeAppendf("float2 dxy0 = %s.LT - sk_FragCoord.xy;", rectName); fragBuilder->codeAppendf("float2 dxy1 = sk_FragCoord.xy - %s.RB;", rectName); - // If we're on a device where float != fp32 then we'll do the distance computation in a space - // that is normalized by the largest radius. The scale uniform will be scale, 1/scale. The - // radii uniform values are already in this normalized space. + const char* scaleName = nullptr; - if (!args.fShaderCaps->floatIs32Bits()) { + if (elliptical_effect_uses_scale(*args.fShaderCaps, erre.fRRect)) { fScaleUniform = uniformHandler->addUniform(&erre, kFragment_GrShaderFlag, SkSLType::kHalf2, "scale", &scaleName); } @@ -665,8 +678,11 @@ void EllipticalRRectEffect::Impl::onSetData(const GrGLSLProgramDataManager& pdma //////////////////////////////////////////////////////////////////////////////////////////////////// void EllipticalRRectEffect::onAddToKey(const GrShaderCaps& caps, skgpu::KeyBuilder* b) const { - static_assert((int)GrClipEdgeType::kLast < (1 << 3)); - b->add32(fRRect.getType() | static_cast(fEdgeType) << 3); + static_assert(kGrClipEdgeTypeCnt <= 4); // 2 bits + static_assert((int)SkRRect::kLastType + 1 <= 8); // 3 bits + b->addBits(2, static_cast(fEdgeType), "edge_type"); + b->addBits(3, static_cast(fRRect.getType()), "rrect_type"); + b->addBool(elliptical_effect_uses_scale(caps, fRRect), "scale_radii"); } std::unique_ptr EllipticalRRectEffect::onMakeProgramImpl() const { @@ -695,7 +711,7 @@ GrFPResult GrRRectEffect::Make(std::unique_ptr inputFP, auto fp = GrFragmentProcessor::Rect(std::move(inputFP), edgeType, rrect.getBounds()); return GrFPSuccess(std::move(fp)); } - if (SkRRectPriv::GetSimpleRadii(rrect).fX == SkRRectPriv::GetSimpleRadii(rrect).fY) { + if (SkRRectPriv::IsSimpleCircular(rrect)) { return CircularRRectEffect::Make(std::move(inputFP), edgeType, CircularRRectEffect::kAll_CornerFlags, rrect); } else { diff --git a/third_party/skia/src/gpu/effects/GrRRectEffect.h b/third_party/skia/src/gpu/ganesh/effects/GrRRectEffect.h similarity index 87% rename from third_party/skia/src/gpu/effects/GrRRectEffect.h rename to third_party/skia/src/gpu/ganesh/effects/GrRRectEffect.h index 0386279d1099..e4f30b34622c 100644 --- a/third_party/skia/src/gpu/effects/GrRRectEffect.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrRRectEffect.h @@ -10,8 +10,8 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrFragmentProcessor.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" struct GrShaderCaps; class GrProcessor; diff --git a/third_party/skia/src/gpu/effects/GrShadowGeoProc.cpp b/third_party/skia/src/gpu/ganesh/effects/GrShadowGeoProc.cpp similarity index 90% rename from third_party/skia/src/gpu/effects/GrShadowGeoProc.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrShadowGeoProc.cpp index 5d24b0988a1a..3529c1ce0945 100644 --- a/third_party/skia/src/gpu/effects/GrShadowGeoProc.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrShadowGeoProc.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrShadowGeoProc.h" +#include "src/gpu/ganesh/effects/GrShadowGeoProc.h" -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" class GrRRectShadowGeoProc::Impl : public ProgramImpl { public: diff --git a/third_party/skia/src/gpu/effects/GrShadowGeoProc.h b/third_party/skia/src/gpu/ganesh/effects/GrShadowGeoProc.h similarity index 94% rename from third_party/skia/src/gpu/effects/GrShadowGeoProc.h rename to third_party/skia/src/gpu/ganesh/effects/GrShadowGeoProc.h index 7837c9466f2a..8557effe4917 100644 --- a/third_party/skia/src/gpu/effects/GrShadowGeoProc.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrShadowGeoProc.h @@ -9,8 +9,8 @@ #define GrShadowGeoProc_DEFINED #include "src/core/SkArenaAlloc.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrProcessor.h" class GrGLRRectShadowGeoProc; class GrSurfaceProxyView; diff --git a/third_party/skia/src/gpu/effects/GrSkSLFP.cpp b/third_party/skia/src/gpu/ganesh/effects/GrSkSLFP.cpp similarity index 98% rename from third_party/skia/src/gpu/effects/GrSkSLFP.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrSkSLFP.cpp index 8b475784201f..dc784d1df83d 100644 --- a/third_party/skia/src/gpu/effects/GrSkSLFP.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrSkSLFP.cpp @@ -5,19 +5,20 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" #include "include/effects/SkRuntimeEffect.h" -#include "include/private/GrContext_Base.h" #include "include/private/SkSLString.h" +#include "include/private/gpu/ganesh/GrContext_Base.h" +#include "src/core/SkColorSpacePriv.h" #include "src/core/SkRuntimeEffectPriv.h" #include "src/core/SkVM.h" -#include "src/gpu/GrBaseContextPriv.h" -#include "src/gpu/GrColorInfo.h" -#include "src/gpu/GrTexture.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/GrBaseContextPriv.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" #include "src/sksl/SkSLUtil.h" #include "src/sksl/codegen/SkSLPipelineStageCodeGenerator.h" #include "src/sksl/ir/SkSLVarDeclarations.h" diff --git a/third_party/skia/src/gpu/effects/GrSkSLFP.h b/third_party/skia/src/gpu/ganesh/effects/GrSkSLFP.h similarity index 99% rename from third_party/skia/src/gpu/effects/GrSkSLFP.h rename to third_party/skia/src/gpu/ganesh/effects/GrSkSLFP.h index 2594d900615d..5520e4d0b5e1 100644 --- a/third_party/skia/src/gpu/effects/GrSkSLFP.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrSkSLFP.h @@ -13,7 +13,7 @@ #include "include/effects/SkRuntimeEffect.h" #include "include/gpu/GrContextOptions.h" #include "include/private/SkVx.h" -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" #include #include diff --git a/third_party/skia/src/gpu/effects/GrTextureEffect.cpp b/third_party/skia/src/gpu/ganesh/effects/GrTextureEffect.cpp similarity index 99% rename from third_party/skia/src/gpu/effects/GrTextureEffect.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrTextureEffect.cpp index 98076d5dad68..d9245efbc7cc 100644 --- a/third_party/skia/src/gpu/effects/GrTextureEffect.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrTextureEffect.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #include "src/core/SkMatrixPriv.h" -#include "src/gpu/GrTexture.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/effects/GrMatrixEffect.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/effects/GrMatrixEffect.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" #include "src/sksl/SkSLUtil.h" using Wrap = GrSamplerState::WrapMode; @@ -498,8 +498,9 @@ void GrTextureEffect::Impl::emitCode(EmitArgs& args) { const char* clampStopSwizzle) { if (clamp) { fb->codeAppendf("clampedCoord%s = clamp(subsetCoord%s, %s%s, %s%s);", - coordSwizzle, coordSwizzle, clampName, clampStartSwizzle, clampName, - clampStopSwizzle); + coordSwizzle, coordSwizzle, + clampName, clampStartSwizzle, + clampName, clampStopSwizzle); } else { fb->codeAppendf("clampedCoord%s = subsetCoord%s;", coordSwizzle, coordSwizzle); } diff --git a/third_party/skia/src/gpu/effects/GrTextureEffect.h b/third_party/skia/src/gpu/ganesh/effects/GrTextureEffect.h similarity index 98% rename from third_party/skia/src/gpu/effects/GrTextureEffect.h rename to third_party/skia/src/gpu/ganesh/effects/GrTextureEffect.h index 632c2fc9bddc..98e6d91f8fe7 100644 --- a/third_party/skia/src/gpu/effects/GrTextureEffect.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrTextureEffect.h @@ -10,9 +10,9 @@ #include "include/core/SkImageInfo.h" #include "include/core/SkMatrix.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" class GrTextureEffect : public GrFragmentProcessor { public: diff --git a/third_party/skia/src/gpu/effects/GrYUVtoRGBEffect.cpp b/third_party/skia/src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp similarity index 96% rename from third_party/skia/src/gpu/effects/GrYUVtoRGBEffect.cpp rename to third_party/skia/src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp index 25392c6de7d1..553a9948c12e 100644 --- a/third_party/skia/src/gpu/effects/GrYUVtoRGBEffect.cpp +++ b/third_party/skia/src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp @@ -5,17 +5,17 @@ * found in the LICENSE file. */ -#include "src/gpu/effects/GrYUVtoRGBEffect.h" +#include "src/gpu/ganesh/effects/GrYUVtoRGBEffect.h" #include "include/core/SkYUVAInfo.h" #include "src/core/SkYUVMath.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrYUVATextureProxies.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/effects/GrMatrixEffect.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrYUVATextureProxies.h" +#include "src/gpu/ganesh/effects/GrMatrixEffect.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" #include "src/sksl/SkSLUtil.h" static void border_colors(const GrYUVATextureProxies& yuvaProxies, float planeBorders[4][4]) { @@ -177,7 +177,10 @@ std::unique_ptr GrYUVtoRGBEffect::Make(const GrYUVATextureP } else { GrSamplerState planeSampler = samplerState; if (makeLinearWithSnap) { - planeSampler.setFilterMode(GrSamplerState::Filter::kLinear); + planeSampler = GrSamplerState(samplerState.wrapModeX(), + samplerState.wrapModeY(), + GrSamplerState::Filter::kLinear, + samplerState.mipmapMode()); } planeFPs[i] = GrTextureEffect::Make(std::move(view), kUnknown_SkAlphaType, diff --git a/third_party/skia/src/gpu/effects/GrYUVtoRGBEffect.h b/third_party/skia/src/gpu/ganesh/effects/GrYUVtoRGBEffect.h similarity index 97% rename from third_party/skia/src/gpu/effects/GrYUVtoRGBEffect.h rename to third_party/skia/src/gpu/ganesh/effects/GrYUVtoRGBEffect.h index 663a68bbb8dc..ebff86cb86f8 100644 --- a/third_party/skia/src/gpu/effects/GrYUVtoRGBEffect.h +++ b/third_party/skia/src/gpu/ganesh/effects/GrYUVtoRGBEffect.h @@ -10,7 +10,7 @@ #include "include/core/SkYUVAInfo.h" #include "src/core/SkYUVAInfoLocation.h" -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" class GrYUVATextureProxies; diff --git a/third_party/skia/src/gpu/geometry/BUILD.bazel b/third_party/skia/src/gpu/ganesh/geometry/BUILD.bazel similarity index 93% rename from third_party/skia/src/gpu/geometry/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/geometry/BUILD.bazel index 242e44c38bbe..140d5128f89d 100644 --- a/third_party/skia/src/gpu/geometry/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/geometry/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrAAConvexTessellator_hdr", hdrs = ["GrAAConvexTessellator.h"], @@ -44,7 +46,7 @@ generated_cc_atom( deps = [ ":GrAATriangulator_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrEagerVertexAllocator_hdr", + "//src/gpu/ganesh:GrEagerVertexAllocator_hdr", ], ) @@ -65,7 +67,7 @@ generated_cc_atom( "//src/core:SkGeometry_hdr", "//src/core:SkPathPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrVx_hdr", + "//src/gpu/ganesh:GrVx_hdr", ], ) @@ -111,8 +113,8 @@ generated_cc_atom( ":GrQuadUtils_hdr", ":GrQuad_hdr", "//include/core:SkRect_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkVx_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkPathPriv_hdr", ], ) @@ -137,6 +139,7 @@ generated_cc_atom( deps = [ ":GrQuad_hdr", "//include/core:SkMatrix_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -186,7 +189,7 @@ generated_cc_atom( "//include/private:SkTemplates_hdr", "//src/core:SkPathPriv_hdr", "//src/core:SkTLazy_hdr", - "//src/gpu:GrStyle_hdr", + "//src/gpu/ganesh:GrStyle_hdr", ], ) @@ -209,7 +212,7 @@ generated_cc_atom( "//include/core:SkPoint_hdr", "//include/private:SkColorData_hdr", "//src/core:SkArenaAlloc_hdr", - "//src/gpu:GrColor_hdr", + "//src/gpu/ganesh:GrColor_hdr", ], ) @@ -223,6 +226,6 @@ generated_cc_atom( "//src/core:SkGeometry_hdr", "//src/core:SkPointPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrEagerVertexAllocator_hdr", + "//src/gpu/ganesh:GrEagerVertexAllocator_hdr", ], ) diff --git a/third_party/skia/src/gpu/geometry/GrAAConvexTessellator.cpp b/third_party/skia/src/gpu/ganesh/geometry/GrAAConvexTessellator.cpp similarity index 99% rename from third_party/skia/src/gpu/geometry/GrAAConvexTessellator.cpp rename to third_party/skia/src/gpu/ganesh/geometry/GrAAConvexTessellator.cpp index c561769c5a64..cfcb31bfb033 100644 --- a/third_party/skia/src/gpu/geometry/GrAAConvexTessellator.cpp +++ b/third_party/skia/src/gpu/ganesh/geometry/GrAAConvexTessellator.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/geometry/GrAAConvexTessellator.h" +#include "src/gpu/ganesh/geometry/GrAAConvexTessellator.h" #include "include/core/SkCanvas.h" #include "include/core/SkPath.h" #include "include/core/SkPoint.h" #include "include/core/SkString.h" #include "include/private/SkTPin.h" -#include "src/gpu/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" // Next steps: // add an interactive sample app slide diff --git a/third_party/skia/src/gpu/geometry/GrAAConvexTessellator.h b/third_party/skia/src/gpu/ganesh/geometry/GrAAConvexTessellator.h similarity index 100% rename from third_party/skia/src/gpu/geometry/GrAAConvexTessellator.h rename to third_party/skia/src/gpu/ganesh/geometry/GrAAConvexTessellator.h diff --git a/third_party/skia/src/gpu/geometry/GrAATriangulator.cpp b/third_party/skia/src/gpu/ganesh/geometry/GrAATriangulator.cpp similarity index 99% rename from third_party/skia/src/gpu/geometry/GrAATriangulator.cpp rename to third_party/skia/src/gpu/ganesh/geometry/GrAATriangulator.cpp index b6dd4c0c9105..9c4e1279d972 100644 --- a/third_party/skia/src/gpu/geometry/GrAATriangulator.cpp +++ b/third_party/skia/src/gpu/ganesh/geometry/GrAATriangulator.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/geometry/GrAATriangulator.h" +#include "src/gpu/ganesh/geometry/GrAATriangulator.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrEagerVertexAllocator.h" +#include "src/gpu/ganesh/GrEagerVertexAllocator.h" #include #include #include diff --git a/third_party/skia/src/gpu/geometry/GrAATriangulator.h b/third_party/skia/src/gpu/ganesh/geometry/GrAATriangulator.h similarity index 98% rename from third_party/skia/src/gpu/geometry/GrAATriangulator.h rename to third_party/skia/src/gpu/ganesh/geometry/GrAATriangulator.h index a568beb97836..a02d3a153e1c 100644 --- a/third_party/skia/src/gpu/geometry/GrAATriangulator.h +++ b/third_party/skia/src/gpu/ganesh/geometry/GrAATriangulator.h @@ -8,7 +8,7 @@ #ifndef GrAATriangulator_DEFINED #define GrAATriangulator_DEFINED -#include "src/gpu/geometry/GrTriangulator.h" +#include "src/gpu/ganesh/geometry/GrTriangulator.h" // Triangulates the given path in device space with a mesh of alpha ramps for antialiasing. class GrAATriangulator : private GrTriangulator { diff --git a/third_party/skia/src/gpu/geometry/GrInnerFanTriangulator.h b/third_party/skia/src/gpu/ganesh/geometry/GrInnerFanTriangulator.h similarity index 97% rename from third_party/skia/src/gpu/geometry/GrInnerFanTriangulator.h rename to third_party/skia/src/gpu/ganesh/geometry/GrInnerFanTriangulator.h index ed386b36683e..924403c7b92a 100644 --- a/third_party/skia/src/gpu/geometry/GrInnerFanTriangulator.h +++ b/third_party/skia/src/gpu/ganesh/geometry/GrInnerFanTriangulator.h @@ -8,7 +8,7 @@ #ifndef GrInnerFanTriangulator_DEFINED #define GrInnerFanTriangulator_DEFINED -#include "src/gpu/geometry/GrTriangulator.h" +#include "src/gpu/ganesh/geometry/GrTriangulator.h" // Triangulates the inner polygon(s) of a path (i.e., the triangle fan for a Redbook rendering // method). When combined with the outer curves and breadcrumb triangles, these produce a complete diff --git a/third_party/skia/src/gpu/geometry/GrPathUtils.cpp b/third_party/skia/src/gpu/ganesh/geometry/GrPathUtils.cpp similarity index 92% rename from third_party/skia/src/gpu/geometry/GrPathUtils.cpp rename to third_party/skia/src/gpu/ganesh/geometry/GrPathUtils.cpp index c68f53d7d63e..0acd18da4d26 100644 --- a/third_party/skia/src/gpu/geometry/GrPathUtils.cpp +++ b/third_party/skia/src/gpu/ganesh/geometry/GrPathUtils.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" #include "include/gpu/GrTypes.h" #include "src/core/SkMathPriv.h" @@ -129,7 +129,6 @@ uint32_t GrPathUtils::generateCubicPoints(const SkPoint& p0, } void GrPathUtils::QuadUVMatrix::set(const SkPoint qPts[3]) { - SkMatrix m; // We want M such that M * xy_pt = uv_pt // We know M * control_pts = [0 1/2 1] // [0 0 1] @@ -147,7 +146,12 @@ void GrPathUtils::QuadUVMatrix::set(const SkPoint qPts[3]) { double y1 = qPts[1].fY; double x2 = qPts[2].fX; double y2 = qPts[2].fY; - double det = x0*y1 - y0*x1 + x2*y0 - y2*x0 + x1*y2 - y1*x2; + + // pre-calculate some adjugate matrix factors for determinant + double a2 = x1*y2-x2*y1; + double a5 = x2*y0-x0*y2; + double a8 = x0*y1-x1*y0; + double det = a2 + a5 + a8; if (!sk_float_isfinite(det) || SkScalarNearlyZero((float)det, SK_ScalarNearlyZero * SK_ScalarNearlyZero)) { @@ -191,50 +195,21 @@ void GrPathUtils::QuadUVMatrix::set(const SkPoint qPts[3]) { double scale = 1.0/det; // compute adjugate matrix - double a2, a3, a4, a5, a6, a7, a8; - a2 = x1*y2-x2*y1; - + double a3, a4, a6, a7; a3 = y2-y0; a4 = x0-x2; - a5 = x2*y0-x0*y2; a6 = y0-y1; a7 = x1-x0; - a8 = x0*y1-x1*y0; // this performs the uv_pts*adjugate(control_pts) multiply, // then does the scale by 1/det afterwards to improve precision - m[SkMatrix::kMScaleX] = (float)((0.5*a3 + a6)*scale); - m[SkMatrix::kMSkewX] = (float)((0.5*a4 + a7)*scale); - m[SkMatrix::kMTransX] = (float)((0.5*a5 + a8)*scale); - - m[SkMatrix::kMSkewY] = (float)(a6*scale); - m[SkMatrix::kMScaleY] = (float)(a7*scale); - m[SkMatrix::kMTransY] = (float)(a8*scale); - - // kMPersp0 & kMPersp1 should algebraically be zero - m[SkMatrix::kMPersp0] = 0.0f; - m[SkMatrix::kMPersp1] = 0.0f; - m[SkMatrix::kMPersp2] = (float)((a2 + a5 + a8)*scale); - - // It may not be normalized to have 1.0 in the bottom right - float m33 = m.get(SkMatrix::kMPersp2); - if (1.f != m33) { - m33 = 1.f / m33; - fM[0] = m33 * m.get(SkMatrix::kMScaleX); - fM[1] = m33 * m.get(SkMatrix::kMSkewX); - fM[2] = m33 * m.get(SkMatrix::kMTransX); - fM[3] = m33 * m.get(SkMatrix::kMSkewY); - fM[4] = m33 * m.get(SkMatrix::kMScaleY); - fM[5] = m33 * m.get(SkMatrix::kMTransY); - } else { - fM[0] = m.get(SkMatrix::kMScaleX); - fM[1] = m.get(SkMatrix::kMSkewX); - fM[2] = m.get(SkMatrix::kMTransX); - fM[3] = m.get(SkMatrix::kMSkewY); - fM[4] = m.get(SkMatrix::kMScaleY); - fM[5] = m.get(SkMatrix::kMTransY); - } + fM[0] = (float)((0.5*a3 + a6)*scale); + fM[1] = (float)((0.5*a4 + a7)*scale); + fM[2] = (float)((0.5*a5 + a8)*scale); + fM[3] = (float)(a6*scale); + fM[4] = (float)(a7*scale); + fM[5] = (float)(a8*scale); } } diff --git a/third_party/skia/src/gpu/geometry/GrPathUtils.h b/third_party/skia/src/gpu/ganesh/geometry/GrPathUtils.h similarity index 99% rename from third_party/skia/src/gpu/geometry/GrPathUtils.h rename to third_party/skia/src/gpu/ganesh/geometry/GrPathUtils.h index 24ae1bb44bd0..227841ee299b 100644 --- a/third_party/skia/src/gpu/geometry/GrPathUtils.h +++ b/third_party/skia/src/gpu/ganesh/geometry/GrPathUtils.h @@ -13,7 +13,7 @@ #include "src/core/SkGeometry.h" #include "src/core/SkPathPriv.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrVx.h" +#include "src/gpu/ganesh/GrVx.h" class SkMatrix; diff --git a/third_party/skia/src/gpu/geometry/GrQuad.cpp b/third_party/skia/src/gpu/ganesh/geometry/GrQuad.cpp similarity index 84% rename from third_party/skia/src/gpu/geometry/GrQuad.cpp rename to third_party/skia/src/gpu/ganesh/geometry/GrQuad.cpp index f352332fce71..bd610d24d946 100644 --- a/third_party/skia/src/gpu/geometry/GrQuad.cpp +++ b/third_party/skia/src/gpu/ganesh/geometry/GrQuad.cpp @@ -5,14 +5,23 @@ * found in the LICENSE file. */ -#include "src/gpu/geometry/GrQuad.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" #include "include/core/SkMatrix.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" using V4f = skvx::Vec<4, float>; -static bool aa_affects_rect(float ql, float qt, float qr, float qb) { - return !SkScalarIsInt(ql) || !SkScalarIsInt(qr) || !SkScalarIsInt(qt) || !SkScalarIsInt(qb); +static bool aa_affects_rect(GrQuadAAFlags edgeFlags, float ql, float qt, float qr, float qb) { + // Edge coordinates for non-AA edges do not need to be integers; any AA-enabled edge that is + // at an integer coordinate could be drawn non-AA and be visually identical to non-AA. +#if defined(SK_USE_LEGACY_EDGE_AA_DOWNGRADE) + edgeFlags = GrQuadAAFlags::kAll; +#endif + return ((edgeFlags & GrQuadAAFlags::kLeft) && !SkScalarIsInt(ql)) || + ((edgeFlags & GrQuadAAFlags::kRight) && !SkScalarIsInt(qr)) || + ((edgeFlags & GrQuadAAFlags::kTop) && !SkScalarIsInt(qt)) || + ((edgeFlags & GrQuadAAFlags::kBottom) && !SkScalarIsInt(qb)); } static void map_rect_translate_scale(const SkRect& rect, const SkMatrix& m, @@ -126,10 +135,10 @@ GrQuad GrQuad::MakeFromSkQuad(const SkPoint pts[4], const SkMatrix& matrix) { } } -bool GrQuad::aaHasEffectOnRect() const { +bool GrQuad::aaHasEffectOnRect(GrQuadAAFlags edgeFlags) const { SkASSERT(this->quadType() == Type::kAxisAligned); // If rect, ws must all be 1s so no need to divide - return aa_affects_rect(fX[0], fY[0], fX[3], fY[3]); + return aa_affects_rect(edgeFlags, fX[0], fY[0], fX[3], fY[3]); } bool GrQuad::asRect(SkRect* rect) const { diff --git a/third_party/skia/src/gpu/geometry/GrQuad.h b/third_party/skia/src/gpu/ganesh/geometry/GrQuad.h similarity index 99% rename from third_party/skia/src/gpu/geometry/GrQuad.h rename to third_party/skia/src/gpu/ganesh/geometry/GrQuad.h index 5d5e9e47cfcb..cd5420d4b6fb 100644 --- a/third_party/skia/src/gpu/geometry/GrQuad.h +++ b/third_party/skia/src/gpu/ganesh/geometry/GrQuad.h @@ -112,7 +112,7 @@ class GrQuad { bool hasPerspective() const { return fType == Type::kPerspective; } // True if anti-aliasing affects this quad. Only valid when quadType == kAxisAligned - bool aaHasEffectOnRect() const; + bool aaHasEffectOnRect(GrQuadAAFlags edgeFlags) const; // True if this quad is axis-aligned and still has its top-left corner at v0. Equivalently, // quad == GrQuad(quad->bounds()). Axis-aligned quads with flips and rotations may exactly diff --git a/third_party/skia/src/gpu/geometry/GrQuadBuffer.h b/third_party/skia/src/gpu/ganesh/geometry/GrQuadBuffer.h similarity index 99% rename from third_party/skia/src/gpu/geometry/GrQuadBuffer.h rename to third_party/skia/src/gpu/ganesh/geometry/GrQuadBuffer.h index 15f2216eb30d..52db84edf0ee 100644 --- a/third_party/skia/src/gpu/geometry/GrQuadBuffer.h +++ b/third_party/skia/src/gpu/ganesh/geometry/GrQuadBuffer.h @@ -8,7 +8,7 @@ #define GrQuadBuffer_DEFINED #include "include/private/SkTDArray.h" -#include "src/gpu/geometry/GrQuad.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" template class GrQuadBuffer { diff --git a/third_party/skia/src/gpu/geometry/GrQuadUtils.cpp b/third_party/skia/src/gpu/ganesh/geometry/GrQuadUtils.cpp similarity index 98% rename from third_party/skia/src/gpu/geometry/GrQuadUtils.cpp rename to third_party/skia/src/gpu/ganesh/geometry/GrQuadUtils.cpp index 59b6bc22adf1..4823fc3a3a97 100644 --- a/third_party/skia/src/gpu/geometry/GrQuadUtils.cpp +++ b/third_party/skia/src/gpu/ganesh/geometry/GrQuadUtils.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/geometry/GrQuadUtils.h" +#include "src/gpu/ganesh/geometry/GrQuadUtils.h" #include "include/core/SkRect.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkVx.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkPathPriv.h" -#include "src/gpu/geometry/GrQuad.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" using V4f = skvx::Vec<4, float>; using M4f = skvx::Vec<4, int32_t>; @@ -366,16 +366,17 @@ void ResolveAAType(GrAAType requestedAAType, GrQuadAAFlags requestedEdgeFlags, c // When aa type is coverage, disable AA if the edge configuration doesn't actually need it case GrAAType::kCoverage: if (requestedEdgeFlags == GrQuadAAFlags::kNone) { - // Turn off anti-aliasing + // This can happen when quads are drawn in bulk, where the requestedAAType was + // conservatively enabled and the edge flags are per-entry. *outAAType = GrAAType::kNone; - } else { - // For coverage AA, if the quad is a rect and it lines up with pixel boundaries - // then overall aa and per-edge aa can be completely disabled - if (quad.quadType() == GrQuad::Type::kAxisAligned && !quad.aaHasEffectOnRect()) { - *outAAType = GrAAType::kNone; - *outEdgeFlags = GrQuadAAFlags::kNone; - } + } else if (quad.quadType() == GrQuad::Type::kAxisAligned && + !quad.aaHasEffectOnRect(requestedEdgeFlags)) { + // For coverage AA, if the quad is a rect and AA-enabled edges line up with pixel + // boundaries, then overall AA and per-edge AA can be completely disabled. + *outAAType = GrAAType::kNone; + *outEdgeFlags = GrQuadAAFlags::kNone; } + break; // For no or msaa anti aliasing, override the edge flags since edge flags only make sense // when coverage aa is being used. diff --git a/third_party/skia/src/gpu/geometry/GrQuadUtils.h b/third_party/skia/src/gpu/ganesh/geometry/GrQuadUtils.h similarity index 99% rename from third_party/skia/src/gpu/geometry/GrQuadUtils.h rename to third_party/skia/src/gpu/ganesh/geometry/GrQuadUtils.h index 7c285909b3ef..8923eb2f5d51 100644 --- a/third_party/skia/src/gpu/geometry/GrQuadUtils.h +++ b/third_party/skia/src/gpu/ganesh/geometry/GrQuadUtils.h @@ -9,7 +9,7 @@ #define GrQuadUtils_DEFINED #include "include/private/SkVx.h" -#include "src/gpu/geometry/GrQuad.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" enum class GrQuadAAFlags; enum class GrAA : bool; diff --git a/third_party/skia/src/gpu/geometry/GrRect.h b/third_party/skia/src/gpu/ganesh/geometry/GrRect.h similarity index 100% rename from third_party/skia/src/gpu/geometry/GrRect.h rename to third_party/skia/src/gpu/ganesh/geometry/GrRect.h diff --git a/third_party/skia/src/gpu/geometry/GrShape.cpp b/third_party/skia/src/gpu/ganesh/geometry/GrShape.cpp similarity index 99% rename from third_party/skia/src/gpu/geometry/GrShape.cpp rename to third_party/skia/src/gpu/ganesh/geometry/GrShape.cpp index 34b88008c1b5..8d317b7a0fa3 100644 --- a/third_party/skia/src/gpu/geometry/GrShape.cpp +++ b/third_party/skia/src/gpu/ganesh/geometry/GrShape.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/geometry/GrShape.h" +#include "src/gpu/ganesh/geometry/GrShape.h" #include "src/core/SkPathPriv.h" #include "src/core/SkRRectPriv.h" diff --git a/third_party/skia/src/gpu/geometry/GrShape.h b/third_party/skia/src/gpu/ganesh/geometry/GrShape.h similarity index 100% rename from third_party/skia/src/gpu/geometry/GrShape.h rename to third_party/skia/src/gpu/ganesh/geometry/GrShape.h diff --git a/third_party/skia/src/gpu/geometry/GrStyledShape.cpp b/third_party/skia/src/gpu/ganesh/geometry/GrStyledShape.cpp similarity index 99% rename from third_party/skia/src/gpu/geometry/GrStyledShape.cpp rename to third_party/skia/src/gpu/ganesh/geometry/GrStyledShape.cpp index 8dddb282346f..0d06eb24f6c9 100644 --- a/third_party/skia/src/gpu/geometry/GrStyledShape.cpp +++ b/third_party/skia/src/gpu/ganesh/geometry/GrStyledShape.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" #include "include/private/SkIDChangeListener.h" diff --git a/third_party/skia/src/gpu/geometry/GrStyledShape.h b/third_party/skia/src/gpu/ganesh/geometry/GrStyledShape.h similarity index 99% rename from third_party/skia/src/gpu/geometry/GrStyledShape.h rename to third_party/skia/src/gpu/ganesh/geometry/GrStyledShape.h index b7f84459db46..ee71782780ae 100644 --- a/third_party/skia/src/gpu/geometry/GrStyledShape.h +++ b/third_party/skia/src/gpu/ganesh/geometry/GrStyledShape.h @@ -13,8 +13,8 @@ #include "include/private/SkTemplates.h" #include "src/core/SkPathPriv.h" #include "src/core/SkTLazy.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/geometry/GrShape.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/geometry/GrShape.h" #include class SkIDChangeListener; diff --git a/third_party/skia/src/gpu/geometry/GrTriangulator.cpp b/third_party/skia/src/gpu/ganesh/geometry/GrTriangulator.cpp similarity index 99% rename from third_party/skia/src/gpu/geometry/GrTriangulator.cpp rename to third_party/skia/src/gpu/ganesh/geometry/GrTriangulator.cpp index 54b9e10b5528..301748312f35 100644 --- a/third_party/skia/src/gpu/geometry/GrTriangulator.cpp +++ b/third_party/skia/src/gpu/ganesh/geometry/GrTriangulator.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/geometry/GrTriangulator.h" +#include "src/gpu/ganesh/geometry/GrTriangulator.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrEagerVertexAllocator.h" -#include "src/gpu/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/GrEagerVertexAllocator.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" #include "src/core/SkGeometry.h" #include "src/core/SkPointPriv.h" diff --git a/third_party/skia/src/gpu/geometry/GrTriangulator.h b/third_party/skia/src/gpu/ganesh/geometry/GrTriangulator.h similarity index 99% rename from third_party/skia/src/gpu/geometry/GrTriangulator.h rename to third_party/skia/src/gpu/ganesh/geometry/GrTriangulator.h index 0c43f82d72de..dbe4c1e62369 100644 --- a/third_party/skia/src/gpu/geometry/GrTriangulator.h +++ b/third_party/skia/src/gpu/ganesh/geometry/GrTriangulator.h @@ -12,7 +12,7 @@ #include "include/core/SkPoint.h" #include "include/private/SkColorData.h" #include "src/core/SkArenaAlloc.h" -#include "src/gpu/GrColor.h" +#include "src/gpu/ganesh/GrColor.h" class GrEagerVertexAllocator; struct SkRect; diff --git a/third_party/skia/src/gpu/ganesh/gl/BUILD.bazel b/third_party/skia/src/gpu/ganesh/gl/BUILD.bazel new file mode 100644 index 000000000000..a004ae854f63 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/gl/BUILD.bazel @@ -0,0 +1,590 @@ +load("//bazel:macros.bzl", "generated_cc_atom") + +licenses(["notice"]) + +generated_cc_atom( + name = "GrGLAssembleGLESInterfaceAutogen_src", + srcs = ["GrGLAssembleGLESInterfaceAutogen.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLUtil_hdr", + "//include/gpu/gl:GrGLAssembleHelpers_hdr", + "//include/gpu/gl:GrGLAssembleInterface_hdr", + ], +) + +generated_cc_atom( + name = "GrGLAssembleGLInterfaceAutogen_src", + srcs = ["GrGLAssembleGLInterfaceAutogen.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLUtil_hdr", + "//include/gpu/gl:GrGLAssembleHelpers_hdr", + "//include/gpu/gl:GrGLAssembleInterface_hdr", + ], +) + +generated_cc_atom( + name = "GrGLAssembleHelpers_src", + srcs = ["GrGLAssembleHelpers.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLUtil_hdr", + "//include/gpu/gl:GrGLAssembleHelpers_hdr", + ], +) + +generated_cc_atom( + name = "GrGLAssembleInterface_src", + srcs = ["GrGLAssembleInterface.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLUtil_hdr", + "//include/gpu/gl:GrGLAssembleHelpers_hdr", + "//include/gpu/gl:GrGLAssembleInterface_hdr", + ], +) + +generated_cc_atom( + name = "GrGLAssembleWebGLInterfaceAutogen_src", + srcs = ["GrGLAssembleWebGLInterfaceAutogen.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLUtil_hdr", + "//include/gpu/gl:GrGLAssembleHelpers_hdr", + "//include/gpu/gl:GrGLAssembleInterface_hdr", + ], +) + +generated_cc_atom( + name = "GrGLAttachment_hdr", + hdrs = ["GrGLAttachment.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu/gl:GrGLInterface_hdr", + "//src/gpu/ganesh:GrAttachment_hdr", + ], +) + +generated_cc_atom( + name = "GrGLAttachment_src", + srcs = ["GrGLAttachment.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLAttachment_hdr", + ":GrGLGpu_hdr", + "//include/core:SkTraceMemoryDump_hdr", + ], +) + +generated_cc_atom( + name = "GrGLBuffer_hdr", + hdrs = ["GrGLBuffer.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu/gl:GrGLTypes_hdr", + "//src/gpu/ganesh:GrGpuBuffer_hdr", + ], +) + +generated_cc_atom( + name = "GrGLBuffer_src", + srcs = ["GrGLBuffer.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLBuffer_hdr", + ":GrGLCaps_hdr", + ":GrGLGpu_hdr", + "//include/core:SkTraceMemoryDump_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh:GrGpuResourcePriv_hdr", + ], +) + +generated_cc_atom( + name = "GrGLCaps_hdr", + hdrs = ["GrGLCaps.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLAttachment_hdr", + ":GrGLUtil_hdr", + "//include/private:SkChecksum_hdr", + "//include/private:SkTArray_hdr", + "//include/private:SkTHash_hdr", + "//include/private/gpu/ganesh:GrGLTypesPriv_hdr", + "//src/gpu:Swizzle_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + ], +) + +generated_cc_atom( + name = "GrGLCaps_src", + srcs = ["GrGLCaps.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLCaps_hdr", + ":GrGLContext_hdr", + ":GrGLRenderTarget_hdr", + ":GrGLTexture_hdr", + "//include/gpu:GrContextOptions_hdr", + "//src/core:SkCompressedDataUtils_hdr", + "//src/core:SkMathPriv_hdr", + "//src/core:SkTSearch_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrSurfaceProxyPriv_hdr", + "//src/gpu/ganesh:GrTextureProxyPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/utils:SkJSONWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrGLContext_hdr", + hdrs = ["GrGLContext.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLCaps_hdr", + ":GrGLUtil_hdr", + "//include/gpu/gl:GrGLExtensions_hdr", + "//include/gpu/gl:GrGLInterface_hdr", + "//src/gpu/ganesh/glsl:GrGLSL_hdr", + ], +) + +generated_cc_atom( + name = "GrGLContext_src", + srcs = ["GrGLContext.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLContext_hdr", + ":GrGLGLSL_hdr", + "//include/gpu:GrContextOptions_hdr", + ], +) + +generated_cc_atom( + name = "GrGLExtensions_src", + srcs = ["GrGLExtensions.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLDefines_impl_hdr", + ":GrGLUtil_hdr", + "//include/gpu/gl:GrGLExtensions_hdr", + "//src/core:SkTSearch_hdr", + "//src/core:SkTSort_hdr", + "//src/utils:SkJSONWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrGLGLSL_hdr", + hdrs = ["GrGLGLSL.h"], + visibility = ["//:__subpackages__"], + deps = ["//src/gpu/ganesh/glsl:GrGLSL_hdr"], +) + +generated_cc_atom( + name = "GrGLGLSL_src", + srcs = ["GrGLGLSL.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLGLSL_hdr", + ":GrGLUtil_hdr", + ], +) + +generated_cc_atom( + name = "GrGLGpuProgramCache_src", + srcs = ["GrGLGpuProgramCache.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLGpu_hdr", + "//include/gpu:GrContextOptions_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh/gl/builders:GrGLProgramBuilder_hdr", + ], +) + +generated_cc_atom( + name = "GrGLGpu_hdr", + hdrs = ["GrGLGpu.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLAttachment_hdr", + ":GrGLContext_hdr", + ":GrGLProgram_hdr", + ":GrGLRenderTarget_hdr", + ":GrGLTexture_hdr", + ":GrGLVertexArray_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkTArray_hdr", + "//src/core:SkLRUCache_hdr", + "//src/gpu/ganesh:GrFinishCallbacks_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrNativeRect_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrThreadSafePipelineBuilder_hdr", + "//src/gpu/ganesh:GrWindowRectsState_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + ], +) + +generated_cc_atom( + name = "GrGLGpu_src", + srcs = ["GrGLGpu.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLAttachment_hdr", + ":GrGLBuffer_hdr", + ":GrGLGpu_hdr", + ":GrGLOpsRenderPass_hdr", + ":GrGLSemaphore_hdr", + ":GrGLTextureRenderTarget_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkPixmap_hdr", + "//include/core:SkTypes_hdr", + "//include/gpu:GrBackendSemaphore_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrTypes_hdr", + "//include/private:SkHalf_hdr", + "//include/private:SkTemplates_hdr", + "//include/private:SkTo_hdr", + "//src/core:SkAutoMalloc_hdr", + "//src/core:SkCompressedDataUtils_hdr", + "//src/core:SkLRUCache_hdr", + "//src/core:SkMipmap_hdr", + "//src/core:SkScopeExit_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrCpuBuffer_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpuResourcePriv_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrSurfaceProxyPriv_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrUtil_hdr", + "//src/gpu/ganesh/gl/builders:GrGLShaderStringBuilder_hdr", + "//src/sksl:SkSLCompiler_hdr", + "//src/utils:SkJSONWriter_hdr", + ], +) + +generated_cc_atom( + name = "GrGLInterfaceAutogen_src", + srcs = ["GrGLInterfaceAutogen.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLUtil_hdr", + "//include/gpu/gl:GrGLExtensions_hdr", + "//include/gpu/gl:GrGLInterface_hdr", + ], +) + +generated_cc_atom( + name = "GrGLMakeNativeInterface_none_src", + srcs = ["GrGLMakeNativeInterface_none.cpp"], + visibility = ["//:__subpackages__"], + deps = ["//include/gpu/gl:GrGLInterface_hdr"], +) + +generated_cc_atom( + name = "GrGLOpsRenderPass_hdr", + hdrs = ["GrGLOpsRenderPass.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLGpu_hdr", + ":GrGLRenderTarget_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + ], +) + +generated_cc_atom( + name = "GrGLOpsRenderPass_src", + srcs = ["GrGLOpsRenderPass.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLOpsRenderPass_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + ], +) + +generated_cc_atom( + name = "GrGLProgramDataManager_hdr", + hdrs = ["GrGLProgramDataManager.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu/gl:GrGLTypes_hdr", + "//include/private:SkTArray_hdr", + "//src/core:SkTBlockList_hdr", + "//src/gpu/ganesh:GrShaderVar_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + ], +) + +generated_cc_atom( + name = "GrGLProgramDataManager_src", + srcs = ["GrGLProgramDataManager.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLGpu_hdr", + ":GrGLProgramDataManager_hdr", + "//include/core:SkMatrix_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + ], +) + +generated_cc_atom( + name = "GrGLProgram_hdr", + hdrs = ["GrGLProgram.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLProgramDataManager_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + ], +) + +generated_cc_atom( + name = "GrGLProgram_src", + srcs = ["GrGLProgram.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLBuffer_hdr", + ":GrGLGpu_hdr", + ":GrGLProgram_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/sksl:SkSLCompiler_hdr", + ], +) + +generated_cc_atom( + name = "GrGLRenderTarget_hdr", + hdrs = ["GrGLRenderTarget.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLDefines_impl_hdr", + "//include/core:SkScalar_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + ], +) + +generated_cc_atom( + name = "GrGLRenderTarget_src", + srcs = ["GrGLRenderTarget.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLGpu_hdr", + ":GrGLRenderTarget_hdr", + ":GrGLUtil_hdr", + "//include/core:SkTraceMemoryDump_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpuResourcePriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + ], +) + +generated_cc_atom( + name = "GrGLSemaphore_hdr", + hdrs = ["GrGLSemaphore.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu:GrBackendSemaphore_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", + ], +) + +generated_cc_atom( + name = "GrGLSemaphore_src", + srcs = ["GrGLSemaphore.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLGpu_hdr", + ":GrGLSemaphore_hdr", + ], +) + +generated_cc_atom( + name = "GrGLTextureRenderTarget_hdr", + hdrs = ["GrGLTextureRenderTarget.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLRenderTarget_hdr", + ":GrGLTexture_hdr", + ], +) + +generated_cc_atom( + name = "GrGLTextureRenderTarget_src", + srcs = ["GrGLTextureRenderTarget.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLGpu_hdr", + ":GrGLTextureRenderTarget_hdr", + "//include/core:SkTraceMemoryDump_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + ], +) + +generated_cc_atom( + name = "GrGLTexture_hdr", + hdrs = ["GrGLTexture.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLUtil_hdr", + "//include/private/gpu/ganesh:GrGLTypesPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + ], +) + +generated_cc_atom( + name = "GrGLTexture_src", + srcs = ["GrGLTexture.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLGpu_hdr", + ":GrGLTexture_hdr", + "//include/core:SkTraceMemoryDump_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + ], +) + +generated_cc_atom( + name = "GrGLTypesPriv_src", + srcs = ["GrGLTypesPriv.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLDefines_impl_hdr", + "//include/core:SkScalar_hdr", + "//include/private/gpu/ganesh:GrGLTypesPriv_hdr", + "//src/gpu:Swizzle_hdr", + ], +) + +generated_cc_atom( + name = "GrGLUniformHandler_hdr", + hdrs = ["GrGLUniformHandler.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + ], +) + +generated_cc_atom( + name = "GrGLUniformHandler_src", + srcs = ["GrGLUniformHandler.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLCaps_hdr", + ":GrGLGpu_hdr", + ":GrGLUniformHandler_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrUtil_hdr", + "//src/gpu/ganesh/gl/builders:GrGLProgramBuilder_hdr", + "//src/sksl:SkSLCompiler_hdr", + ], +) + +generated_cc_atom( + name = "GrGLUtil_hdr", + hdrs = ["GrGLUtil.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLDefines_impl_hdr", + "//include/gpu/gl:GrGLInterface_hdr", + "//include/private:SkImageInfoPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + ], +) + +generated_cc_atom( + name = "GrGLUtil_src", + srcs = ["GrGLUtil.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLUtil_hdr", + "//include/core:SkMatrix_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + ], +) + +generated_cc_atom( + name = "GrGLVaryingHandler_hdr", + hdrs = ["GrGLVaryingHandler.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLProgramDataManager_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + ], +) + +generated_cc_atom( + name = "GrGLVertexArray_hdr", + hdrs = ["GrGLVertexArray.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLDefines_impl_hdr", + "//include/gpu/gl:GrGLTypes_hdr", + "//include/private:SkTArray_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrGpuResource_hdr", + ], +) + +generated_cc_atom( + name = "GrGLVertexArray_src", + srcs = ["GrGLVertexArray.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrGLBuffer_hdr", + ":GrGLGpu_hdr", + ":GrGLVertexArray_hdr", + "//src/gpu/ganesh:GrCpuBuffer_hdr", + ], +) + +generated_cc_atom( + name = "GrGLDefines_impl_hdr", + hdrs = ["GrGLDefines_impl.h"], + visibility = ["//:__subpackages__"], +) diff --git a/third_party/skia/src/gpu/gl/GrGLAssembleGLESInterfaceAutogen.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLAssembleGLESInterfaceAutogen.cpp similarity index 99% rename from third_party/skia/src/gpu/gl/GrGLAssembleGLESInterfaceAutogen.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLAssembleGLESInterfaceAutogen.cpp index f119b00d6071..a6c45bfc672e 100644 --- a/third_party/skia/src/gpu/gl/GrGLAssembleGLESInterfaceAutogen.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLAssembleGLESInterfaceAutogen.cpp @@ -11,7 +11,7 @@ #include "include/gpu/gl/GrGLAssembleHelpers.h" #include "include/gpu/gl/GrGLAssembleInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #define GET_PROC(F) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F) #define GET_PROC_SUFFIX(F, S) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F #S) @@ -91,6 +91,7 @@ sk_sp GrGLMakeAssembledGLESInterface(void *ctx, GrGLGetProc GET_PROC(GenTextures); GET_PROC(GetBufferParameteriv); GET_PROC(GetError); + GET_PROC(GetFloatv); GET_PROC(GetIntegerv); GET_PROC(GetProgramInfoLog); GET_PROC(GetProgramiv); @@ -425,6 +426,7 @@ sk_sp GrGLMakeAssembledGLESInterface(void *ctx, GrGLGetProc GET_PROC(BindSampler); GET_PROC(DeleteSamplers); GET_PROC(GenSamplers); + GET_PROC(SamplerParameterf); GET_PROC(SamplerParameteri); GET_PROC(SamplerParameteriv); } diff --git a/third_party/skia/src/gpu/gl/GrGLAssembleGLInterfaceAutogen.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.cpp similarity index 99% rename from third_party/skia/src/gpu/gl/GrGLAssembleGLInterfaceAutogen.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.cpp index 7f443961bb39..907c42c4d333 100644 --- a/third_party/skia/src/gpu/gl/GrGLAssembleGLInterfaceAutogen.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.cpp @@ -11,7 +11,7 @@ #include "include/gpu/gl/GrGLAssembleHelpers.h" #include "include/gpu/gl/GrGLAssembleInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #define GET_PROC(F) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F) #define GET_PROC_SUFFIX(F, S) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F #S) @@ -94,6 +94,7 @@ sk_sp GrGLMakeAssembledGLInterface(void *ctx, GrGLGetProc g GET_PROC(GenTextures); GET_PROC(GetBufferParameteriv); GET_PROC(GetError); + GET_PROC(GetFloatv); GET_PROC(GetIntegerv); GET_PROC(GetProgramInfoLog); GET_PROC(GetProgramiv); @@ -421,12 +422,14 @@ sk_sp GrGLMakeAssembledGLInterface(void *ctx, GrGLGetProc g GET_PROC(BindSampler); GET_PROC(DeleteSamplers); GET_PROC(GenSamplers); + GET_PROC(SamplerParameterf); GET_PROC(SamplerParameteri); GET_PROC(SamplerParameteriv); } else if (extensions.has("GL_ARB_sampler_objects")) { GET_PROC(BindSampler); GET_PROC(DeleteSamplers); GET_PROC(GenSamplers); + GET_PROC(SamplerParameterf); GET_PROC(SamplerParameteri); GET_PROC(SamplerParameteriv); } diff --git a/third_party/skia/src/gpu/gl/GrGLAssembleHelpers.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLAssembleHelpers.cpp similarity index 94% rename from third_party/skia/src/gpu/gl/GrGLAssembleHelpers.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLAssembleHelpers.cpp index 5e5163f26a0f..ab87cb30c3de 100644 --- a/third_party/skia/src/gpu/gl/GrGLAssembleHelpers.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLAssembleHelpers.cpp @@ -6,7 +6,7 @@ */ #include "include/gpu/gl/GrGLAssembleHelpers.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" void GrGetEGLQueryAndDisplay(GrEGLQueryStringFn** queryString, GrEGLDisplay* display, void* ctx, GrGLGetProc get) { diff --git a/third_party/skia/src/gpu/gl/GrGLAssembleInterface.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLAssembleInterface.cpp similarity index 96% rename from third_party/skia/src/gpu/gl/GrGLAssembleInterface.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLAssembleInterface.cpp index 2a0f774f0e2a..a92ea3b53a3e 100644 --- a/third_party/skia/src/gpu/gl/GrGLAssembleInterface.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLAssembleInterface.cpp @@ -8,7 +8,7 @@ #include "include/gpu/gl/GrGLAssembleHelpers.h" #include "include/gpu/gl/GrGLAssembleInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #define GET_PROC_LOCAL(F) GrGL##F##Fn* F = (GrGL##F##Fn*)get(ctx, "gl" #F) diff --git a/third_party/skia/src/gpu/gl/GrGLAssembleWebGLInterfaceAutogen.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLAssembleWebGLInterfaceAutogen.cpp similarity index 98% rename from third_party/skia/src/gpu/gl/GrGLAssembleWebGLInterfaceAutogen.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLAssembleWebGLInterfaceAutogen.cpp index 6f8736f4068c..d09a6b23ebe6 100644 --- a/third_party/skia/src/gpu/gl/GrGLAssembleWebGLInterfaceAutogen.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLAssembleWebGLInterfaceAutogen.cpp @@ -11,7 +11,7 @@ #include "include/gpu/gl/GrGLAssembleHelpers.h" #include "include/gpu/gl/GrGLAssembleInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #if SK_DISABLE_WEBGL_INTERFACE || !defined(SK_USE_WEBGL) sk_sp GrGLMakeAssembledWebGLInterface(void *ctx, GrGLGetProc get) { @@ -98,6 +98,7 @@ sk_sp GrGLMakeAssembledWebGLInterface(void *ctx, GrGLGetPro GET_PROC(GenTextures); GET_PROC(GetBufferParameteriv); GET_PROC(GetError); + GET_PROC(GetFloatv); GET_PROC(GetIntegerv); GET_PROC(GetProgramInfoLog); GET_PROC(GetProgramiv); @@ -239,6 +240,7 @@ sk_sp GrGLMakeAssembledWebGLInterface(void *ctx, GrGLGetPro GET_PROC(BindSampler); GET_PROC(DeleteSamplers); GET_PROC(GenSamplers); + GET_PROC(SamplerParameterf); GET_PROC(SamplerParameteri); GET_PROC(SamplerParameteriv); } diff --git a/third_party/skia/src/gpu/gl/GrGLAttachment.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLAttachment.cpp similarity index 94% rename from third_party/skia/src/gpu/gl/GrGLAttachment.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLAttachment.cpp index 50f9e5adaaba..58978194fa53 100644 --- a/third_party/skia/src/gpu/gl/GrGLAttachment.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLAttachment.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLAttachment.h" +#include "src/gpu/ganesh/gl/GrGLAttachment.h" #include "include/core/SkTraceMemoryDump.h" -#include "src/gpu/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" #define GL_CALL(X) GR_GL_CALL(gpu->glInterface(), X) @@ -86,7 +86,8 @@ sk_sp GrGLAttachment::MakeStencil(GrGLGpu* gpu, dimensions, GrAttachment::UsageFlags::kStencilAttachment, sampleCnt, - format)); + format, + /*label=*/{})); } sk_sp GrGLAttachment::MakeMSAA(GrGLGpu* gpu, @@ -112,7 +113,8 @@ sk_sp GrGLAttachment::MakeMSAA(GrGLGpu* gpu, dimensions, GrAttachment::UsageFlags::kColorAttachment, sampleCnt, - format)); + format, + /*label=*/{})); } diff --git a/third_party/skia/src/gpu/gl/GrGLAttachment.h b/third_party/skia/src/gpu/ganesh/gl/GrGLAttachment.h similarity index 81% rename from third_party/skia/src/gpu/gl/GrGLAttachment.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLAttachment.h index 51994768c75b..f8feb9ea5a2d 100644 --- a/third_party/skia/src/gpu/gl/GrGLAttachment.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLAttachment.h @@ -9,7 +9,7 @@ #define GrGLMtlAttachment_DEFINED #include "include/gpu/gl/GrGLInterface.h" -#include "src/gpu/GrAttachment.h" +#include "src/gpu/ganesh/GrAttachment.h" class GrGLGpu; @@ -31,9 +31,8 @@ class GrGLAttachment : public GrAttachment { UsageFlags supportedUsages, int sampleCnt, GrGLFormat format) { - return sk_sp( - new GrGLAttachment(gpu, renderbufferID, dimensions, supportedUsages, sampleCnt, - format)); + return sk_sp(new GrGLAttachment( + gpu, renderbufferID, dimensions, supportedUsages, sampleCnt, format, /*label=*/{})); } GrBackendFormat backendFormat() const override; @@ -55,9 +54,15 @@ class GrGLAttachment : public GrAttachment { SkISize dimensions, UsageFlags supportedUsages, int sampleCnt, - GrGLFormat format) - : GrAttachment(gpu, dimensions, supportedUsages, sampleCnt, GrMipmapped::kNo, - GrProtected::kNo) + GrGLFormat format, + std::string_view label) + : GrAttachment(gpu, + dimensions, + supportedUsages, + sampleCnt, + GrMipmapped::kNo, + GrProtected::kNo, + label) , fFormat(format) , fRenderbufferID(renderbufferID) { SkASSERT(supportedUsages == UsageFlags::kStencilAttachment || diff --git a/third_party/skia/src/gpu/gl/GrGLBuffer.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLBuffer.cpp similarity index 95% rename from third_party/skia/src/gpu/gl/GrGLBuffer.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLBuffer.cpp index ab7c02dc6434..0a1831ce5878 100644 --- a/third_party/skia/src/gpu/gl/GrGLBuffer.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLBuffer.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLBuffer.h" +#include "src/gpu/ganesh/gl/GrGLBuffer.h" #include "include/core/SkTraceMemoryDump.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/gl/GrGLCaps.h" -#include "src/gpu/gl/GrGLGpu.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/gl/GrGLCaps.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" #define GL_CALL(X) GR_GL_CALL(this->glGpu()->glInterface(), X) #define GL_CALL_RET(RET, X) GR_GL_CALL_RET(this->glGpu()->glInterface(), RET, X) @@ -42,7 +42,8 @@ sk_sp GrGLBuffer::Make(GrGLGpu* gpu, size_t size, GrGpuBufferType in return nullptr; } - sk_sp buffer(new GrGLBuffer(gpu, size, intendedType, accessPattern, data)); + sk_sp buffer( + new GrGLBuffer(gpu, size, intendedType, accessPattern, data, /*label=*/{})); if (0 == buffer->bufferID()) { return nullptr; } @@ -103,9 +104,13 @@ inline static GrGLenum gr_to_gl_access_pattern(GrGpuBufferType bufferType, return usageType(bufferType, accessPattern); } -GrGLBuffer::GrGLBuffer(GrGLGpu* gpu, size_t size, GrGpuBufferType intendedType, - GrAccessPattern accessPattern, const void* data) - : INHERITED(gpu, size, intendedType, accessPattern) +GrGLBuffer::GrGLBuffer(GrGLGpu* gpu, + size_t size, + GrGpuBufferType intendedType, + GrAccessPattern accessPattern, + const void* data, + std::string_view label) + : INHERITED(gpu, size, intendedType, accessPattern, label) , fIntendedType(intendedType) , fBufferID(0) , fUsage(gr_to_gl_access_pattern(intendedType, accessPattern, gpu->glCaps())) diff --git a/third_party/skia/src/gpu/gl/GrGLBuffer.h b/third_party/skia/src/gpu/ganesh/gl/GrGLBuffer.h similarity index 87% rename from third_party/skia/src/gpu/gl/GrGLBuffer.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLBuffer.h index 75e4c30e1acd..4cef8f3db2c3 100644 --- a/third_party/skia/src/gpu/gl/GrGLBuffer.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLBuffer.h @@ -9,7 +9,7 @@ #define GrGLBuffer_DEFINED #include "include/gpu/gl/GrGLTypes.h" -#include "src/gpu/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" class GrGLGpu; class GrGLCaps; @@ -36,8 +36,12 @@ class GrGLBuffer : public GrGpuBuffer { bool hasAttachedToTexture() const { return fHasAttachedToTexture; } protected: - GrGLBuffer(GrGLGpu*, size_t size, GrGpuBufferType intendedType, GrAccessPattern, - const void* data); + GrGLBuffer(GrGLGpu*, + size_t size, + GrGpuBufferType intendedType, + GrAccessPattern, + const void* data, + std::string_view label); void onAbandon() override; void onRelease() override; diff --git a/third_party/skia/src/gpu/gl/GrGLCaps.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLCaps.cpp similarity index 97% rename from third_party/skia/src/gpu/gl/GrGLCaps.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLCaps.cpp index 82e7e47523b4..c22f8b9834f8 100644 --- a/third_party/skia/src/gpu/gl/GrGLCaps.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLCaps.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLCaps.h" +#include "src/gpu/ganesh/gl/GrGLCaps.h" #include #include @@ -14,15 +14,15 @@ #include "src/core/SkCompressedDataUtils.h" #include "src/core/SkMathPriv.h" #include "src/core/SkTSearch.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTextureProxyPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/gl/GrGLContext.h" -#include "src/gpu/gl/GrGLRenderTarget.h" -#include "src/gpu/gl/GrGLTexture.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTextureProxyPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/gl/GrGLContext.h" +#include "src/gpu/ganesh/gl/GrGLRenderTarget.h" +#include "src/gpu/ganesh/gl/GrGLTexture.h" #if defined(SK_BUILD_FOR_IOS) #include @@ -82,20 +82,11 @@ GrGLCaps::GrGLCaps(const GrContextOptions& contextOptions, fShaderCaps = std::make_unique(); - // All of Skia's automated testing of ANGLE and all related tuning of performance and driver - // workarounds is oriented around the D3D backends of ANGLE. Chrome has started using Skia - // on top of ANGLE's GL backend. In this case ANGLE is still interfacing the same underlying - // GL driver that our performance and correctness tuning was performed on. To avoid losing - // that we strip the ANGLE info and for the rest of caps setup pretend we're directly on top of - // the GL driver. Note that this means that some driver workarounds are likely implemented at - // two levels of the stack (Skia and ANGLE) but we haven't determined which. - if (ctxInfo.angleBackend() == GrGLANGLEBackend::kOpenGL) { - this->init(contextOptions, ctxInfo.makeNonAngle(), glInterface); - // A major caveat is that ANGLE does not allow client side arrays. - fPreferClientSideDynamicBuffers = false; - } else { - this->init(contextOptions, ctxInfo, glInterface); - } + this->init(contextOptions, ctxInfo, glInterface); +} + +static bool angle_backend_is_d3d(GrGLANGLEBackend backend) { + return backend == GrGLANGLEBackend::kD3D9 || backend == GrGLANGLEBackend::kD3D11; } void GrGLCaps::init(const GrContextOptions& contextOptions, @@ -448,20 +439,20 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, shaderCaps->fIntegerSupport = // We use this value for GLSL ES 3.0. version >= GR_GL_VER(3, 0) && - ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k330; + ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k300es; shaderCaps->fNonsquareMatrixSupport = - ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k330; + ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k300es; shaderCaps->fInverseHyperbolicSupport = - ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k330; + ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k300es; } else if (GR_IS_GR_WEBGL(standard)) { shaderCaps->fShaderDerivativeSupport = version >= GR_GL_VER(2, 0) || ctxInfo.hasExtension("GL_OES_standard_derivatives") || ctxInfo.hasExtension("OES_standard_derivatives"); shaderCaps->fIntegerSupport = (version >= GR_GL_VER(2, 0)); shaderCaps->fNonsquareMatrixSupport = - ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k330; + ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k300es; shaderCaps->fInverseHyperbolicSupport = - ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k330; + ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k300es; } if (ctxInfo.hasExtension("GL_NV_conservative_raster")) { @@ -477,7 +468,7 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, ctxInfo.glslGeneration() < SkSL::GLSLGeneration::k130; // introduced in GLSL 1.3 } else if (GR_IS_GR_GL_ES(standard)) { shaderCaps->fRewriteSwitchStatements = - ctxInfo.glslGeneration() < SkSL::GLSLGeneration::k330; // introduced in GLSL ES3 + 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 } @@ -492,10 +483,13 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, // We've measured a performance increase using non-VBO vertex data for dynamic content on these // GPUs. Perhaps we should read the renderer string and limit this decision to specific GPU // families rather than basing it on the vendor alone. - // The Chrome command buffer blocks the use of client side buffers (but may emulate VBOs with - // them). Client side buffers are not allowed in core profiles. + // Angle doesn't support client side buffers. The Chrome command buffer blocks the use of client + // side buffers (but may emulate VBOs with them). Client side buffers are not allowed in core + // profiles. if (GR_IS_GR_GL(standard) || GR_IS_GR_GL_ES(standard)) { - if (!ctxInfo.isOverCommandBuffer() && !fIsCoreProfile && + if (ctxInfo.angleBackend() == GrGLANGLEBackend::kUnknown && + !ctxInfo.isOverCommandBuffer() && + !fIsCoreProfile && (ctxInfo.vendor() == GrGLVendor::kARM || ctxInfo.vendor() == GrGLVendor::kImagination || ctxInfo.vendor() == GrGLVendor::kQualcomm)) { @@ -609,6 +603,9 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, if (GR_IS_GR_GL(standard)) { fNPOTTextureTileSupport = true; fMipmapSupport = true; + fAnisoSupport = version >= GR_GL_VER(4,6) || + ctxInfo.hasExtension("GL_ARB_texture_filter_anisotropic") || + ctxInfo.hasExtension("GL_EXT_texture_filter_anisotropic"); } else if (GR_IS_GR_GL_ES(standard)) { // Unextended ES2 supports NPOT textures with clamp_to_edge and non-mip filters only // ES3 has no limitations. @@ -619,12 +616,18 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, // does the undocumented GL_IMG_texture_npot extension. This extension does not seem to // to alllow arbitrary wrap modes, however. fMipmapSupport = fNPOTTextureTileSupport || ctxInfo.hasExtension("GL_IMG_texture_npot"); + fAnisoSupport = ctxInfo.hasExtension("GL_EXT_texture_filter_anisotropic"); } else if (GR_IS_GR_WEBGL(standard)) { // Texture access works in the WebGL 2.0 API as in the OpenGL ES 3.0 API fNPOTTextureTileSupport = version >= GR_GL_VER(2,0); // All mipmapping and all wrapping modes are supported for non-power-of- // two images [in WebGL 2.0]. fMipmapSupport = fNPOTTextureTileSupport; + fAnisoSupport = ctxInfo.hasExtension("GL_EXT_texture_filter_anisotropic") || + ctxInfo.hasExtension("EXT_texture_filter_anisotropic"); + } + if (fAnisoSupport) { + GR_GL_GetFloatv(gli, GR_GL_MAX_TEXTURE_MAX_ANISOTROPY, &fMaxTextureMaxAnisotropy); } GR_GL_GetIntegerv(gli, GR_GL_MAX_TEXTURE_SIZE, &fMaxTextureSize); @@ -656,11 +659,11 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, } #ifdef SK_BUILD_FOR_WIN - // We're assuming that on Windows Chromium we're using ANGLE. - bool isANGLE = ctxInfo.angleBackend() != GrGLANGLEBackend::kUnknown || - ctxInfo.isOverCommandBuffer(); + // We're assuming that on Windows Chromium we're using D3D ANGLE. + bool isD3DANGLE = angle_backend_is_d3d(ctxInfo.angleBackend()) || + ctxInfo.isOverCommandBuffer(); // On ANGLE deferring flushes can lead to GPU starvation - fPreferVRAMUseOverFlushes = !isANGLE; + fPreferVRAMUseOverFlushes = !isD3DANGLE; #endif if (ctxInfo.isOverCommandBuffer()) { @@ -884,11 +887,9 @@ const char* get_glsl_version_decl_string(GrGLStandard standard, SkSL::GLSLGenera } } else if (GR_IS_GR_GL_ES(standard) || GR_IS_GR_WEBGL(standard)) { switch (generation) { - case SkSL::GLSLGeneration::k110: - // ES2s shader language is based on version 1.20 but is version - // 1.00 of the ES language. + case SkSL::GLSLGeneration::k100es: return "#version 100\n"; - case SkSL::GLSLGeneration::k330: + case SkSL::GLSLGeneration::k300es: return "#version 300 es\n"; case SkSL::GLSLGeneration::k310es: return "#version 310 es\n"; @@ -972,9 +973,8 @@ void GrGLCaps::initGLSL(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli shaderCaps->fFlatInterpolationSupport = ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k130; } else if (GR_IS_GR_GL_ES(standard) || GR_IS_GR_WEBGL(standard)) { - // This is the value for GLSL ES 3.0. shaderCaps->fFlatInterpolationSupport = - ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k330; + ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k300es; } // not sure for WebGL // Flat interpolation appears to be slow on Qualcomm GPUs (tested Adreno 405 and 530). @@ -982,13 +982,13 @@ void GrGLCaps::initGLSL(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli // Is this only true on ANGLE's D3D backends or also on the GL backend? shaderCaps->fPreferFlatInterpolation = shaderCaps->fFlatInterpolationSupport && ctxInfo.vendor() != GrGLVendor::kQualcomm && - ctxInfo.angleBackend() == GrGLANGLEBackend::kUnknown; + !angle_backend_is_d3d(ctxInfo.angleBackend()); if (GR_IS_GR_GL(standard)) { shaderCaps->fNoPerspectiveInterpolationSupport = ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k130; } else if (GR_IS_GR_GL_ES(standard)) { if (ctxInfo.hasExtension("GL_NV_shader_noperspective_interpolation") && - ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k330 /* GLSL ES 3.0 */) { + ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k300es) { shaderCaps->fNoPerspectiveInterpolationSupport = true; shaderCaps->fNoPerspectiveInterpolationExtensionString = "GL_NV_shader_noperspective_interpolation"; @@ -1028,7 +1028,7 @@ void GrGLCaps::initGLSL(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli fIsCoreProfile); if (GR_IS_GR_GL_ES(standard) || GR_IS_GR_WEBGL(standard)) { - if (SkSL::GLSLGeneration::k110 == shaderCaps->fGLSLGeneration) { + if (SkSL::GLSLGeneration::k100es == shaderCaps->fGLSLGeneration) { shaderCaps->fShaderDerivativeExtensionString = "GL_OES_standard_derivatives"; } } // WebGL might have to check for OES_standard_derivatives @@ -1038,7 +1038,7 @@ void GrGLCaps::initGLSL(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli } if (ctxInfo.hasExtension("GL_OES_EGL_image_external")) { - if (ctxInfo.glslGeneration() == SkSL::GLSLGeneration::k110) { + if (ctxInfo.glslGeneration() == SkSL::GLSLGeneration::k100es) { shaderCaps->fExternalTextureSupport = true; shaderCaps->fExternalTextureExtensionString = "GL_OES_EGL_image_external"; } else if (ctxInfo.hasExtension("GL_OES_EGL_image_external_essl3") || @@ -1052,8 +1052,7 @@ void GrGLCaps::initGLSL(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli if (GR_IS_GR_GL(standard)) { shaderCaps->fVertexIDSupport = true; } else if (GR_IS_GR_GL_ES(standard) || GR_IS_GR_WEBGL(standard)) { - // Desktop GLSL 3.30 == ES GLSL 3.00. - shaderCaps->fVertexIDSupport = ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k330; + shaderCaps->fVertexIDSupport = ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k300es; } // isinf() exists in GLSL 1.3 and above, but hardware without proper IEEE support is allowed to @@ -1066,7 +1065,7 @@ void GrGLCaps::initGLSL(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli shaderCaps->fNonconstantArrayIndexSupport = true; } else if (GR_IS_GR_GL_ES(standard) || GR_IS_GR_WEBGL(standard)) { shaderCaps->fNonconstantArrayIndexSupport = - (ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k330); + (ctxInfo.glslGeneration() >= SkSL::GLSLGeneration::k300es); } if (GR_IS_GR_GL(standard)) { @@ -1135,7 +1134,7 @@ void GrGLCaps::initBlendEqationSupport(const GrGLContextInfo& ctxInfo) { bool layoutQualifierSupport = false; if ((GR_IS_GR_GL(fStandard) && shaderCaps->generation() >= SkSL::GLSLGeneration::k140) || - (GR_IS_GR_GL_ES(fStandard) && shaderCaps->generation() >= SkSL::GLSLGeneration::k330)) { + (GR_IS_GR_GL_ES(fStandard) && shaderCaps->generation() >= SkSL::GLSLGeneration::k300es)) { layoutQualifierSupport = true; } else if (GR_IS_GR_WEBGL(fStandard)) { return; @@ -1986,24 +1985,6 @@ void GrGLCaps::initFormatTable(const GrGLContextInfo& ctxInfo, const GrGLInterfa FormatInfo& info = this->getFormatInfo(GrGLFormat::kBGRA8); info.fFormatType = FormatType::kNormalizedFixedPoint; - // We currently only use the renderbuffer format when allocating msaa renderbuffers, so we - // are making decisions here based on that use case. The GL_EXT_texture_format_BGRA8888 - // extension adds BGRA color renderbuffer support for ES 2.0, but this does not guarantee - // support for MSAA renderbuffers. Additionally, the renderable support was added in a later - // revision of the extension. So it is possible for older drivers to support the extension - // but only an early revision of it without renderable support. We have no way of - // distinguishing between the two. The GL_APPLE_texture_format_BGRA8888 does not add support - // for BGRA color renderbuffers at all. Ideally, for both cases we would use RGBA8 for our - // format for the MSAA buffer. In the GL_EXT_texture_format_BGRA8888 case we can still - // make the resolve BGRA and which will work for glBlitFramebuffer for resolving which just - // requires the src and dst be bindable to FBOs. However, we can't do this in the current - // world since some devices (e.g. chromium & angle) require the formats in glBlitFramebuffer - // to match. We don't have a way to really check this during resolve since we only actually - // have GrBackendFormat that is shared by the GrGLRenderTarget. We always set the - // renderbuffer format to RGBA8 but disable MSAA unless we have the APPLE extension. - // Once we break those up into different surface we can revisit doing this change. - info.fInternalFormatForRenderbuffer = GR_GL_RGBA8; - info.fDefaultExternalFormat = GR_GL_BGRA; info.fDefaultExternalType = GR_GL_UNSIGNED_BYTE; info.fDefaultColorType = GrColorType::kBGRA_8888; @@ -2033,9 +2014,42 @@ void GrGLCaps::initFormatTable(const GrGLContextInfo& ctxInfo, const GrGLInterfa if (GR_IS_GR_GL_ES(standard)) { if (ctxInfo.hasExtension("GL_EXT_texture_format_BGRA8888")) { + // The GL_EXT_texture_format_BGRA8888 extension adds BGRA color renderbuffer support + // for ES 2.0. The extension adds BGRA to the supported renerable formats in table + // 4.5. In ES 2.0. All the extensions that add multisample support, all reference + // table 4.5 as the formats that are supported. Thus we can use msaaRenderFlags. + // Additionally, the renderable support was added in a later revision of the + // extension. So it is possible for older drivers to support the extension but only + // an early revision of it without renderable support. We have no way of + // distinguishing between the two and assume renderable. + + info.fFlags = FormatInfo::kTexturable_Flag - | FormatInfo::kTransfers_Flag - | nonMSAARenderFlags; + | FormatInfo::kTransfers_Flag; + // Only enable BGRA msaa if we know we're going through Angle. The spec for + // GL_EXT_texture_format_BGRA8888 was updated in 2016 to add support for GL_BGRA_EXT + // as a sized, renderable format. But we may end up running on old drivers written + // against earlier version of the spec. Also the interactions between all these + // extensions are very suibtle and it wouldn't be hard for a driver to mess them up. + // We are confident that Angle does it as we expect. Our non-angle test bots do seem + // to pass and draw correctly so we could consider enabling this more broadly in the + // future. + if (ctxInfo.angleBackend() != GrGLANGLEBackend::kUnknown) { + // Angle incorrectly requires GL_BGRA8_EXT for the interalFormat for both ES2 + // and ES3 even though this extension does not define that value. The extension + // only defines GL_BGRA_EXT as an internal format. + info.fInternalFormatForRenderbuffer = GR_GL_BGRA8; + info.fFlags |= msaaRenderFlags; + } else { + // It is not clear what the correct format to use on ES3 is. This extension only + // defines GL_BGRA_EXT. That is definitely the correct thing to use on ES2, but + // its unclear whether that is valid in ES3 or if it wants something like + // GL_BGRA8_EXT (which is only defined in the apple extenstion). For now we set + // everything to use BGRA since its the only explicitly defined value. Until we + // enable MSAA for non-angle this is a moot point. + info.fInternalFormatForRenderbuffer = GR_GL_BGRA; + info.fFlags |= nonMSAARenderFlags; + } // GL_EXT_texture storage has defined interactions with // GL_EXT_texture_format_BGRA8888. However, ES3 supports glTexStorage but // without GL_EXT_texture_storage it does not allow the BGRA8 sized internal format. @@ -2058,6 +2072,9 @@ void GrGLCaps::initFormatTable(const GrGLContextInfo& ctxInfo, const GrGLInterfa info.fFlags = FormatInfo::kTexturable_Flag | FormatInfo::kTransfers_Flag | msaaRenderFlags; + // The GL_APPLE_texture_format_BGRA8888 does not add support for BGRA color + // renderbuffers at all so we use RGBA here. + info.fInternalFormatForRenderbuffer = GR_GL_RGBA8; supportsBGRATexStorage = true; } } @@ -3775,8 +3792,7 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo, // The TransferPixelsToTexture test fails on ANGLE D3D9 and D3D11 if this is enabled. // https://anglebug.com/5542 - if (ctxInfo.angleBackend() == GrGLANGLEBackend::kD3D9 || - ctxInfo.angleBackend() == GrGLANGLEBackend::kD3D11) { + if (angle_backend_is_d3d(ctxInfo.angleBackend())) { fTransferPixelsToRowBytesSupport = false; } @@ -4074,7 +4090,7 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo, // we've explicitly guarded the division with a check against zero. This manifests in much // more complex ways in some of our shaders, so we use this caps bit to add an epsilon value // to the denominator of divisions, even when we've added checks that the denominator isn't 0. - if (ctxInfo.angleBackend() != GrGLANGLEBackend::kUnknown || ctxInfo.isOverCommandBuffer()) { + if (angle_backend_is_d3d(ctxInfo.angleBackend()) || ctxInfo.isOverCommandBuffer()) { shaderCaps->fMustGuardDivisionEvenAfterExplicitZeroCheck = true; } #endif @@ -4168,12 +4184,12 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo, if (ctxInfo.driver() == GrGLDriver::kNVIDIA && ctxInfo.driverVersion() < GR_GL_DRIVER_VER(355, 00, 0)) { // Disable color-dodge and color-burn on pre-355.00 NVIDIA. - fAdvBlendEqDisableFlags |= (1 << kColorDodge_GrBlendEquation) | - (1 << kColorBurn_GrBlendEquation); + fAdvBlendEqDisableFlags |= (1 << static_cast(skgpu::BlendEquation::kColorDodge)) | + (1 << static_cast(skgpu::BlendEquation::kColorBurn)); } if (ctxInfo.vendor() == GrGLVendor::kARM) { // Disable color-burn on ARM until the fix is released. - fAdvBlendEqDisableFlags |= (1 << kColorBurn_GrBlendEquation); + fAdvBlendEqDisableFlags |= (1 << static_cast(skgpu::BlendEquation::kColorBurn)); } } diff --git a/third_party/skia/src/gpu/gl/GrGLCaps.h b/third_party/skia/src/gpu/ganesh/gl/GrGLCaps.h similarity index 99% rename from third_party/skia/src/gpu/gl/GrGLCaps.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLCaps.h index 64f907eff184..272539ca6ab9 100644 --- a/third_party/skia/src/gpu/gl/GrGLCaps.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLCaps.h @@ -10,14 +10,14 @@ #define GrGLCaps_DEFINED #include -#include "include/private/GrGLTypesPriv.h" #include "include/private/SkChecksum.h" #include "include/private/SkTArray.h" #include "include/private/SkTHash.h" -#include "src/gpu/GrCaps.h" +#include "include/private/gpu/ganesh/GrGLTypesPriv.h" #include "src/gpu/Swizzle.h" -#include "src/gpu/gl/GrGLAttachment.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/gl/GrGLAttachment.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" class GrGLContextInfo; class GrGLRenderTarget; @@ -141,6 +141,8 @@ class GrGLCaps : public GrCaps { } int maxRenderTargetSampleCount(GrGLFormat) const; + float maxTextureMaxAnisotropy() const { return fMaxTextureMaxAnisotropy; } + bool isFormatCopyable(const GrBackendFormat&) const override; bool canFormatBeFBOColorAttachment(GrGLFormat) const; @@ -553,6 +555,7 @@ class GrGLCaps : public GrCaps { SkTArray fProgramBinaryFormats; int fMaxFragmentUniformVectors = 0; + float fMaxTextureMaxAnisotropy = 1.f; MSFBOType fMSFBOType = kNone_MSFBOType; InvalidateFBType fInvalidateFBType = kNone_InvalidateFBType; diff --git a/third_party/skia/src/gpu/gl/GrGLContext.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLContext.cpp similarity index 75% rename from third_party/skia/src/gpu/gl/GrGLContext.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLContext.cpp index ade67400bbdd..de56d8a9d33c 100644 --- a/third_party/skia/src/gpu/gl/GrGLContext.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLContext.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLContext.h" +#include "src/gpu/ganesh/gl/GrGLContext.h" #include "include/gpu/GrContextOptions.h" -#include "src/gpu/gl/GrGLGLSL.h" +#include "src/gpu/ganesh/gl/GrGLGLSL.h" #ifdef SK_BUILD_FOR_ANDROID #include @@ -47,7 +47,7 @@ std::unique_ptr GrGLContext::Make(sk_sp interf char androidAPIVersion[PROP_VALUE_MAX]; int strLength = __system_property_get("ro.build.version.sdk", androidAPIVersion); if (strLength == 0 || atoi(androidAPIVersion) < 26) { - args.fGLSLGeneration = SkSL::GLSLGeneration::k110; + args.fGLSLGeneration = SkSL::GLSLGeneration::k100es; } } #endif @@ -64,7 +64,7 @@ std::unique_ptr GrGLContext::Make(sk_sp interf args.fGLSLGeneration >= SkSL::GLSLGeneration::k330 && !interface->hasExtension("GL_OES_EGL_image_external_essl3") && !interface->hasExtension("OES_EGL_image_external_essl3")) { - args.fGLSLGeneration = SkSL::GLSLGeneration::k110; + args.fGLSLGeneration = SkSL::GLSLGeneration::k100es; } args.fContextOptions = &options; @@ -75,26 +75,6 @@ std::unique_ptr GrGLContext::Make(sk_sp interf GrGLContext::~GrGLContext() {} -GrGLContextInfo GrGLContextInfo::makeNonAngle() const { - GrGLContextInfo copy = *this; - if (fDriverInfo.fANGLEBackend == GrGLANGLEBackend::kUnknown) { - return copy; - } - - copy.fDriverInfo.fVendor = copy.fDriverInfo.fANGLEVendor; - copy.fDriverInfo.fDriver = copy.fDriverInfo.fANGLEDriver; - copy.fDriverInfo.fDriverVersion = copy.fDriverInfo.fANGLEDriverVersion; - copy.fDriverInfo.fRenderer = copy.fDriverInfo.fANGLERenderer; - - copy.fDriverInfo.fANGLEBackend = GrGLANGLEBackend::kUnknown; - copy.fDriverInfo.fANGLEVendor = GrGLVendor::kOther; - copy.fDriverInfo.fANGLEDriver = GrGLDriver::kUnknown; - copy.fDriverInfo.fANGLEDriverVersion = GR_GL_DRIVER_UNKNOWN_VER; - copy.fDriverInfo.fANGLERenderer = GrGLRenderer::kOther; - - return copy; -} - GrGLContextInfo::GrGLContextInfo(ConstructorArgs&& args) { fInterface = std::move(args.fInterface); fDriverInfo = args.fDriverInfo; diff --git a/third_party/skia/src/gpu/gl/GrGLContext.h b/third_party/skia/src/gpu/ganesh/gl/GrGLContext.h similarity index 74% rename from third_party/skia/src/gpu/gl/GrGLContext.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLContext.h index dfb007e3f9ce..d5424ca6cf62 100644 --- a/third_party/skia/src/gpu/gl/GrGLContext.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLContext.h @@ -11,9 +11,9 @@ #include "include/gpu/gl/GrGLExtensions.h" #include "include/gpu/gl/GrGLInterface.h" -#include "src/gpu/gl/GrGLCaps.h" -#include "src/gpu/gl/GrGLUtil.h" -#include "src/gpu/glsl/GrGLSL.h" +#include "src/gpu/ganesh/gl/GrGLCaps.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" +#include "src/gpu/ganesh/glsl/GrGLSL.h" struct GrContextOptions; @@ -31,8 +31,27 @@ class GrGLContextInfo { GrGLStandard standard() const { return fInterface->fStandard; } GrGLVersion version() const { return fDriverInfo.fVersion; } SkSL::GLSLGeneration glslGeneration() const { return fGLSLGeneration; } - GrGLVendor vendor() const { return fDriverInfo.fVendor; } - GrGLRenderer renderer() const { return fDriverInfo.fRenderer; } + /** + * We've accumlated a lot of GL driver workarounds and performance preferences based on vendor + * and renderer. When we have GL sitting on top of Angle it is not clear which of these are + * necessary and which are handle by Angle. Thus to be safe we get the underlying GL vendor and + * renderer from Angle so we can enable these workarounds. It may mean that the same workaround + * is implemented both in Skia and Angle, but that is better than missing out on one. + */ + GrGLVendor vendor() const { + if (this->angleBackend() == GrGLANGLEBackend::kOpenGL) { + return this->angleVendor(); + } else { + return fDriverInfo.fVendor; + } + } + GrGLRenderer renderer() const { + if (this->angleBackend() == GrGLANGLEBackend::kOpenGL) { + return this->angleRenderer(); + } else { + return fDriverInfo.fRenderer; + } + } GrGLANGLEBackend angleBackend() const { return fDriverInfo.fANGLEBackend; } GrGLVendor angleVendor() const { return fDriverInfo.fANGLEVendor; } GrGLRenderer angleRenderer() const { return fDriverInfo.fANGLERenderer; } @@ -51,13 +70,6 @@ class GrGLContextInfo { const GrGLExtensions& extensions() const { return fInterface->fExtensions; } - /** - * Makes a version of this context info that strips the "angle-ness". It will report kUnknown - * for angleBackend() and report this info's angleRenderer() as renderer() and similiar for - * driver(), driverVersion(), and vendor(). - */ - GrGLContextInfo makeNonAngle() const; - protected: GrGLContextInfo& operator=(const GrGLContextInfo&) = default; GrGLContextInfo(const GrGLContextInfo&) = default; diff --git a/third_party/skia/src/gpu/ganesh/gl/GrGLDefines_impl.h b/third_party/skia/src/gpu/ganesh/gl/GrGLDefines_impl.h new file mode 100644 index 000000000000..9c899288d50f --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLDefines_impl.h @@ -0,0 +1,1154 @@ +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + + + +#ifndef GrGLDefines_DEFINED +#define GrGLDefines_DEFINED + +/* Profiles */ +#define GR_GL_CONTEXT_PROFILE_MASK 0x9126 +#define GR_GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GR_GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 + +// The following constants consist of the intersection of GL constants +// exported by GLES 1.0, GLES 2.0, and desktop GL required by the system. + +#define GR_GL_DEPTH_BUFFER_BIT 0x00000100 +#define GR_GL_STENCIL_BUFFER_BIT 0x00000400 +#define GR_GL_COLOR_BUFFER_BIT 0x00004000 + +/* Boolean */ +#define GR_GL_FALSE 0 +#define GR_GL_TRUE 1 + +/* BeginMode */ +#define GR_GL_POINTS 0x0000 +#define GR_GL_LINES 0x0001 +#define GR_GL_LINE_LOOP 0x0002 +#define GR_GL_LINE_STRIP 0x0003 +#define GR_GL_TRIANGLES 0x0004 +#define GR_GL_TRIANGLE_STRIP 0x0005 +#define GR_GL_TRIANGLE_FAN 0x0006 +#define GR_GL_PATCHES 0x000E + +/* AlphaFunction (not supported in ES20) */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* Basic OpenGL blend equations */ +#define GR_GL_FUNC_ADD 0x8006 +#define GR_GL_FUNC_SUBTRACT 0x800A +#define GR_GL_FUNC_REVERSE_SUBTRACT 0x800B + +/* GL_KHR_blend_equation_advanced */ +#define GR_GL_SCREEN 0x9295 +#define GR_GL_OVERLAY 0x9296 +#define GR_GL_DARKEN 0x9297 +#define GR_GL_LIGHTEN 0x9298 +#define GR_GL_COLORDODGE 0x9299 +#define GR_GL_COLORBURN 0x929A +#define GR_GL_HARDLIGHT 0x929B +#define GR_GL_SOFTLIGHT 0x929C +#define GR_GL_DIFFERENCE 0x929E +#define GR_GL_EXCLUSION 0x92A0 +#define GR_GL_MULTIPLY 0x9294 +#define GR_GL_HSL_HUE 0x92AD +#define GR_GL_HSL_SATURATION 0x92AE +#define GR_GL_HSL_COLOR 0x92AF +#define GR_GL_HSL_LUMINOSITY 0x92B0 + +/* BlendingFactorDest */ +#define GR_GL_ZERO 0 +#define GR_GL_ONE 1 +#define GR_GL_SRC_COLOR 0x0300 +#define GR_GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GR_GL_SRC_ALPHA 0x0302 +#define GR_GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GR_GL_DST_ALPHA 0x0304 +#define GR_GL_ONE_MINUS_DST_ALPHA 0x0305 + +/* BlendingFactorSrc */ +/* GL_ZERO */ +/* GL_ONE */ +#define GR_GL_DST_COLOR 0x0306 +#define GR_GL_ONE_MINUS_DST_COLOR 0x0307 +#define GR_GL_SRC_ALPHA_SATURATE 0x0308 +/* GL_SRC_ALPHA */ +/* GL_ONE_MINUS_SRC_ALPHA */ +/* GL_DST_ALPHA */ +/* GL_ONE_MINUS_DST_ALPHA */ + +/* ExtendedBlendFactors */ +#define GR_GL_SRC1_COLOR 0x88F9 +#define GR_GL_ONE_MINUS_SRC1_COLOR 0x88FA +/* GL_SRC1_ALPHA */ +#define GR_GL_ONE_MINUS_SRC1_ALPHA 0x88FB + +/* Separate Blend Functions */ +#define GR_GL_BLEND_DST_RGB 0x80C8 +#define GR_GL_BLEND_SRC_RGB 0x80C9 +#define GR_GL_BLEND_DST_ALPHA 0x80CA +#define GR_GL_BLEND_SRC_ALPHA 0x80CB +#define GR_GL_CONSTANT_COLOR 0x8001 +#define GR_GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GR_GL_CONSTANT_ALPHA 0x8003 +#define GR_GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GR_GL_BLEND_COLOR 0x8005 + +/* Buffer Objects */ +#define GR_GL_ARRAY_BUFFER 0x8892 +#define GR_GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GR_GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GR_GL_TEXTURE_BUFFER 0x8C2A +#define GR_GL_ARRAY_BUFFER_BINDING 0x8894 +#define GR_GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GR_GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 +#define GR_GL_PIXEL_PACK_BUFFER 0x88EB +#define GR_GL_PIXEL_UNPACK_BUFFER 0x88EC + +#define GR_GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM 0x78EC +#define GR_GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM 0x78ED + +#define GR_GL_STREAM_DRAW 0x88E0 +#define GR_GL_STREAM_READ 0x88E1 +#define GR_GL_STATIC_DRAW 0x88E4 +#define GR_GL_STATIC_READ 0x88E5 +#define GR_GL_DYNAMIC_DRAW 0x88E8 +#define GR_GL_DYNAMIC_READ 0x88E9 + +#define GR_GL_BUFFER_SIZE 0x8764 +#define GR_GL_BUFFER_USAGE 0x8765 + +#define GR_GL_CURRENT_VERTEX_ATTRIB 0x8626 + +/* CullFaceMode */ +#define GR_GL_FRONT 0x0404 +#define GR_GL_BACK 0x0405 +#define GR_GL_FRONT_AND_BACK 0x0408 + +/* DepthFunction */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* EnableCap */ +#define GR_GL_TEXTURE_NONE 0x0000 +#define GR_GL_TEXTURE_2D 0x0DE1 +#define GR_GL_CULL_FACE 0x0B44 +#define GR_GL_BLEND 0x0BE2 +#define GR_GL_DITHER 0x0BD0 +#define GR_GL_STENCIL_TEST 0x0B90 +#define GR_GL_DEPTH_TEST 0x0B71 +#define GR_GL_SCISSOR_TEST 0x0C11 +#define GR_GL_POLYGON_OFFSET_FILL 0x8037 +#define GR_GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GR_GL_SAMPLE_COVERAGE 0x80A0 +#define GR_GL_POLYGON_OFFSET_FILL 0x8037 +#define GR_GL_POLYGON_SMOOTH 0x0B41 +#define GR_GL_POLYGON_STIPPLE 0x0B42 +#define GR_GL_COLOR_LOGIC_OP 0x0BF2 +#define GR_GL_COLOR_TABLE 0x80D0 +#define GR_GL_INDEX_LOGIC_OP 0x0BF1 +#define GR_GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GR_GL_LINE_STIPPLE 0x0B24 +#define GR_GL_FRAMEBUFFER_SRGB 0x8DB9 +#define GR_GL_SHADER_PIXEL_LOCAL_STORAGE 0x8F64 +#define GR_GL_SAMPLE_SHADING 0x8C36 + +/* ErrorCode */ +#define GR_GL_NO_ERROR 0 +#define GR_GL_INVALID_ENUM 0x0500 +#define GR_GL_INVALID_VALUE 0x0501 +#define GR_GL_INVALID_OPERATION 0x0502 +#define GR_GL_OUT_OF_MEMORY 0x0505 +#define GR_GL_CONTEXT_LOST 0x300E // TODO(gman): What value? + +/* FrontFaceDirection */ +#define GR_GL_CW 0x0900 +#define GR_GL_CCW 0x0901 + +/* GetPName */ +#define GR_GL_LINE_WIDTH 0x0B21 +#define GR_GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GR_GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GR_GL_CULL_FACE_MODE 0x0B45 +#define GR_GL_FRONT_FACE 0x0B46 +#define GR_GL_DEPTH_RANGE 0x0B70 +#define GR_GL_DEPTH_WRITEMASK 0x0B72 +#define GR_GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GR_GL_DEPTH_FUNC 0x0B74 +#define GR_GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GR_GL_STENCIL_FUNC 0x0B92 +#define GR_GL_STENCIL_FAIL 0x0B94 +#define GR_GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GR_GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GR_GL_STENCIL_REF 0x0B97 +#define GR_GL_STENCIL_VALUE_MASK 0x0B93 +#define GR_GL_STENCIL_WRITEMASK 0x0B98 +#define GR_GL_STENCIL_BACK_FUNC 0x8800 +#define GR_GL_STENCIL_BACK_FAIL 0x8801 +#define GR_GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GR_GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GR_GL_STENCIL_BACK_REF 0x8CA3 +#define GR_GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GR_GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#define GR_GL_VIEWPORT 0x0BA2 +#define GR_GL_SCISSOR_BOX 0x0C10 +/* GL_SCISSOR_TEST */ +#define GR_GL_COLOR_CLEAR_VALUE 0x0C22 +#define GR_GL_COLOR_WRITEMASK 0x0C23 +#define GR_GL_UNPACK_ALIGNMENT 0x0CF5 +#define GR_GL_PACK_ALIGNMENT 0x0D05 +#define GR_GL_PACK_REVERSE_ROW_ORDER 0x93A4 +#define GR_GL_MAX_TEXTURE_SIZE 0x0D33 +#define GR_GL_TEXTURE_MIN_LOD 0x813A +#define GR_GL_TEXTURE_MAX_LOD 0x813B +#define GR_GL_TEXTURE_BASE_LEVEL 0x813C +#define GR_GL_TEXTURE_MAX_LEVEL 0x813D +#define GR_GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GR_GL_SUBPIXEL_BITS 0x0D50 +#define GR_GL_RED_BITS 0x0D52 +#define GR_GL_GREEN_BITS 0x0D53 +#define GR_GL_BLUE_BITS 0x0D54 +#define GR_GL_ALPHA_BITS 0x0D55 +#define GR_GL_DEPTH_BITS 0x0D56 +#define GR_GL_STENCIL_BITS 0x0D57 +#define GR_GL_POLYGON_OFFSET_UNITS 0x2A00 +/* GL_POLYGON_OFFSET_FILL */ +#define GR_GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GR_GL_TEXTURE_BINDING_2D 0x8069 +#define GR_GL_SAMPLE_BUFFERS 0x80A8 +#define GR_GL_SAMPLES 0x80A9 +#define GR_GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GR_GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GR_GL_RENDERBUFFER_COVERAGE_SAMPLES 0x8CAB +#define GR_GL_RENDERBUFFER_COLOR_SAMPLES 0x8E10 +#define GR_GL_MAX_MULTISAMPLE_COVERAGE_MODES 0x8E11 +#define GR_GL_MULTISAMPLE_COVERAGE_MODES 0x8E12 +#define GR_GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B + +#define GR_GL_CONTEXT_FLAGS 0x821E +#define GR_GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT 0x00000010 +#define GR_GL_TEXTURE_PROTECTED_EXT 0x8BFA + +/* GetTextureParameter */ +/* GL_TEXTURE_MAG_FILTER */ +/* GL_TEXTURE_MIN_FILTER */ +/* GL_TEXTURE_WRAP_S */ +/* GL_TEXTURE_WRAP_T */ + +#define GR_GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GR_GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 + +/* Compressed Texture Formats */ +#define GR_GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GR_GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GR_GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GR_GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 + +#define GR_GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GR_GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GR_GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GR_GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F + +#define GR_GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 +#define GR_GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 +#define GR_GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 +#define GR_GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 + +#define GR_GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 +#define GR_GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 + +#define GR_GL_COMPRESSED_ETC1_RGB8 0x8D64 + +#define GR_GL_COMPRESSED_R11_EAC 0x9270 +#define GR_GL_COMPRESSED_SIGNED_R11_EAC 0x9271 +#define GR_GL_COMPRESSED_RG11_EAC 0x9272 +#define GR_GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 + +#define GR_GL_COMPRESSED_RGB8_ETC2 0x9274 +#define GR_GL_COMPRESSED_SRGB8_ETC2 0x9275 +#define GR_GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1 0x9276 +#define GR_GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1 0x9277 +#define GR_GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 + +#define GR_GL_COMPRESSED_LUMINANCE_LATC1 0x8C70 +#define GR_GL_COMPRESSED_SIGNED_LUMINANCE_LATC1 0x8C71 +#define GR_GL_COMPRESSED_LUMINANCE_ALPHA_LATC2 0x8C72 +#define GR_GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2 0x8C73 + +#define GR_GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GR_GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GR_GL_COMPRESSED_RED_GREEN_RGTC2 0x8DBD +#define GR_GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2 0x8DBE + +#define GR_GL_COMPRESSED_3DC_X 0x87F9 +#define GR_GL_COMPRESSED_3DC_XY 0x87FA + +#define GR_GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C +#define GR_GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D +#define GR_GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E +#define GR_GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F + +#define GR_GL_COMPRESSED_RGBA_ASTC_4x4 0x93B0 +#define GR_GL_COMPRESSED_RGBA_ASTC_5x4 0x93B1 +#define GR_GL_COMPRESSED_RGBA_ASTC_5x5 0x93B2 +#define GR_GL_COMPRESSED_RGBA_ASTC_6x5 0x93B3 +#define GR_GL_COMPRESSED_RGBA_ASTC_6x6 0x93B4 +#define GR_GL_COMPRESSED_RGBA_ASTC_8x5 0x93B5 +#define GR_GL_COMPRESSED_RGBA_ASTC_8x6 0x93B6 +#define GR_GL_COMPRESSED_RGBA_ASTC_8x8 0x93B7 +#define GR_GL_COMPRESSED_RGBA_ASTC_10x5 0x93B8 +#define GR_GL_COMPRESSED_RGBA_ASTC_10x6 0x93B9 +#define GR_GL_COMPRESSED_RGBA_ASTC_10x8 0x93BA +#define GR_GL_COMPRESSED_RGBA_ASTC_10x10 0x93BB +#define GR_GL_COMPRESSED_RGBA_ASTC_12x10 0x93BC +#define GR_GL_COMPRESSED_RGBA_ASTC_12x12 0x93BD + +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 0x93D0 +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 0x93D1 +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 0x93D2 +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 0x93D3 +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 0x93D4 +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 0x93D5 +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 0x93D6 +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 0x93D7 +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 0x93D8 +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 0x93D9 +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 0x93DA +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 0x93DB +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 0x93DC +#define GR_GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 0x93DD + +/* HintMode */ +#define GR_GL_DONT_CARE 0x1100 +#define GR_GL_FASTEST 0x1101 +#define GR_GL_NICEST 0x1102 + +/* HintTarget */ +#define GR_GL_GENERATE_MIPMAP_HINT 0x8192 + +/* DataType */ +#define GR_GL_BYTE 0x1400 +#define GR_GL_UNSIGNED_BYTE 0x1401 +#define GR_GL_SHORT 0x1402 +#define GR_GL_UNSIGNED_SHORT 0x1403 +#define GR_GL_INT 0x1404 +#define GR_GL_UNSIGNED_INT 0x1405 +#define GR_GL_FLOAT 0x1406 +#define GR_GL_HALF_FLOAT 0x140B +#define GR_GL_FIXED 0x140C +#define GR_GL_HALF_FLOAT_OES 0x8D61 + +/* Lighting */ +#define GR_GL_LIGHTING 0x0B50 +#define GR_GL_LIGHT0 0x4000 +#define GR_GL_LIGHT1 0x4001 +#define GR_GL_LIGHT2 0x4002 +#define GR_GL_LIGHT3 0x4003 +#define GR_GL_LIGHT4 0x4004 +#define GR_GL_LIGHT5 0x4005 +#define GR_GL_LIGHT6 0x4006 +#define GR_GL_LIGHT7 0x4007 +#define GR_GL_SPOT_EXPONENT 0x1205 +#define GR_GL_SPOT_CUTOFF 0x1206 +#define GR_GL_CONSTANT_ATTENUATION 0x1207 +#define GR_GL_LINEAR_ATTENUATION 0x1208 +#define GR_GL_QUADRATIC_ATTENUATION 0x1209 +#define GR_GL_AMBIENT 0x1200 +#define GR_GL_DIFFUSE 0x1201 +#define GR_GL_SPECULAR 0x1202 +#define GR_GL_SHININESS 0x1601 +#define GR_GL_EMISSION 0x1600 +#define GR_GL_POSITION 0x1203 +#define GR_GL_SPOT_DIRECTION 0x1204 +#define GR_GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GR_GL_COLOR_INDEXES 0x1603 +#define GR_GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GR_GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GR_GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GR_GL_FRONT_AND_BACK 0x0408 +#define GR_GL_SHADE_MODEL 0x0B54 +#define GR_GL_FLAT 0x1D00 +#define GR_GL_SMOOTH 0x1D01 +#define GR_GL_COLOR_MATERIAL 0x0B57 +#define GR_GL_COLOR_MATERIAL_FACE 0x0B55 +#define GR_GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GR_GL_NORMALIZE 0x0BA1 + +/* Matrix Mode */ +#define GR_GL_MATRIX_MODE 0x0BA0 +#define GR_GL_MODELVIEW 0x1700 +#define GR_GL_PROJECTION 0x1701 +#define GR_GL_TEXTURE 0x1702 + +/* multisample */ +#define GR_GL_MULTISAMPLE 0x809D +#define GR_GL_SAMPLE_POSITION 0x8E50 + +/* Points */ +#define GR_GL_POINT_SMOOTH 0x0B10 +#define GR_GL_POINT_SIZE 0x0B11 +#define GR_GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GR_GL_POINT_SIZE_RANGE 0x0B12 + +/* Lines */ +#define GR_GL_LINE_SMOOTH 0x0B20 +#define GR_GL_LINE_STIPPLE 0x0B24 +#define GR_GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GR_GL_LINE_STIPPLE_REPEAT 0x0B26 +#define GR_GL_LINE_WIDTH 0x0B21 +#define GR_GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GR_GL_LINE_WIDTH_RANGE 0x0B22 + +/* PolygonMode */ +#define GR_GL_POINT 0x1B00 +#define GR_GL_LINE 0x1B01 +#define GR_GL_FILL 0x1B02 + +/* Unsized formats */ +#define GR_GL_STENCIL_INDEX 0x1901 +#define GR_GL_DEPTH_COMPONENT 0x1902 +#define GR_GL_DEPTH_STENCIL 0x84F9 +#define GR_GL_RED 0x1903 +#define GR_GL_RED_INTEGER 0x8D94 +#define GR_GL_GREEN 0x1904 +#define GR_GL_BLUE 0x1905 +#define GR_GL_ALPHA 0x1906 +#define GR_GL_LUMINANCE 0x1909 +#define GR_GL_LUMINANCE_ALPHA 0x190A +#define GR_GL_RG_INTEGER 0x8228 +#define GR_GL_RGB 0x1907 +#define GR_GL_RGB_INTEGER 0x8D98 +#define GR_GL_SRGB 0x8C40 +#define GR_GL_RGBA 0x1908 +#define GR_GL_RG 0x8227 +#define GR_GL_SRGB_ALPHA 0x8C42 +#define GR_GL_RGBA_INTEGER 0x8D99 +#define GR_GL_BGRA 0x80E1 + +/* Stencil index sized formats */ +#define GR_GL_STENCIL_INDEX4 0x8D47 +#define GR_GL_STENCIL_INDEX8 0x8D48 +#define GR_GL_STENCIL_INDEX16 0x8D49 + +/* Depth component sized formats */ +#define GR_GL_DEPTH_COMPONENT16 0x81A5 + +/* Depth stencil sized formats */ +#define GR_GL_DEPTH24_STENCIL8 0x88F0 + +/* Red sized formats */ +#define GR_GL_R8 0x8229 +#define GR_GL_R16 0x822A +#define GR_GL_R16F 0x822D +#define GR_GL_R32F 0x822E + +/* Red integer sized formats */ +#define GR_GL_R8I 0x8231 +#define GR_GL_R8UI 0x8232 +#define GR_GL_R16I 0x8233 +#define GR_GL_R16UI 0x8234 +#define GR_GL_R32I 0x8235 +#define GR_GL_R32UI 0x8236 + +/* Luminance sized formats */ +#define GR_GL_LUMINANCE8 0x8040 +#define GR_GL_LUMINANCE8_ALPHA8 0x8045 +#define GR_GL_LUMINANCE16F 0x881E + +/* Alpha sized formats */ +#define GR_GL_ALPHA8 0x803C +#define GR_GL_ALPHA16 0x803E +#define GR_GL_ALPHA16F 0x881C +#define GR_GL_ALPHA32F 0x8816 + +/* Alpha integer sized formats */ +#define GR_GL_ALPHA8I 0x8D90 +#define GR_GL_ALPHA8UI 0x8D7E +#define GR_GL_ALPHA16I 0x8D8A +#define GR_GL_ALPHA16UI 0x8D78 +#define GR_GL_ALPHA32I 0x8D84 +#define GR_GL_ALPHA32UI 0x8D72 + +/* RG sized formats */ +#define GR_GL_RG8 0x822B +#define GR_GL_RG16 0x822C +#define GR_GL_R16F 0x822D +#define GR_GL_R32F 0x822E +#define GR_GL_RG16F 0x822F + +/* RG sized integer formats */ +#define GR_GL_RG8I 0x8237 +#define GR_GL_RG8UI 0x8238 +#define GR_GL_RG16I 0x8239 +#define GR_GL_RG16UI 0x823A +#define GR_GL_RG32I 0x823B +#define GR_GL_RG32UI 0x823C + +/* RGB sized formats */ +#define GR_GL_RGB5 0x8050 +#define GR_GL_RGB565 0x8D62 +#define GR_GL_RGB8 0x8051 +#define GR_GL_SRGB8 0x8C41 +#define GR_GL_RGBX8 0x96BA + +/* RGB integer sized formats */ +#define GR_GL_RGB8I 0x8D8F +#define GR_GL_RGB8UI 0x8D7D +#define GR_GL_RGB16I 0x8D89 +#define GR_GL_RGB16UI 0x8D77 +#define GR_GL_RGB32I 0x8D83 +#define GR_GL_RGB32UI 0x8D71 + +/* RGBA sized formats */ +#define GR_GL_RGBA4 0x8056 +#define GR_GL_RGB5_A1 0x8057 +#define GR_GL_RGBA8 0x8058 +#define GR_GL_RGB10_A2 0x8059 +#define GR_GL_SRGB8_ALPHA8 0x8C43 +#define GR_GL_RGBA16F 0x881A +#define GR_GL_RGBA32F 0x8814 +#define GR_GL_RG32F 0x8230 +#define GR_GL_RGBA16 0x805B + +/* RGBA integer sized formats */ +#define GR_GL_RGBA8I 0x8D8E +#define GR_GL_RGBA8UI 0x8D7C +#define GR_GL_RGBA16I 0x8D88 +#define GR_GL_RGBA16UI 0x8D76 +#define GR_GL_RGBA32I 0x8D82 +#define GR_GL_RGBA32UI 0x8D70 + +/* BGRA sized formats */ +#define GR_GL_BGRA8 0x93A1 + +/* PixelType */ +/* GL_UNSIGNED_BYTE */ +#define GR_GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GR_GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GR_GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GR_GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 + +/* Shaders */ +#define GR_GL_FRAGMENT_SHADER 0x8B30 +#define GR_GL_VERTEX_SHADER 0x8B31 +#define GR_GL_TESS_CONTROL_SHADER 0x8E88 +#define GR_GL_TESS_EVALUATION_SHADER 0x8E87 +#define GR_GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GR_GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GR_GL_MAX_VARYING_VECTORS 0x8DFC +#define GR_GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GR_GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GR_GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GR_GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GR_GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD +#define GR_GL_SHADER_TYPE 0x8B4F +#define GR_GL_DELETE_STATUS 0x8B80 +#define GR_GL_LINK_STATUS 0x8B82 +#define GR_GL_VALIDATE_STATUS 0x8B83 +#define GR_GL_ATTACHED_SHADERS 0x8B85 +#define GR_GL_ACTIVE_UNIFORMS 0x8B86 +#define GR_GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GR_GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GR_GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GR_GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GR_GL_CURRENT_PROGRAM 0x8B8D +#define GR_GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GR_GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GR_GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE 0x8F63 +#define GR_GL_SHADER_BINARY_FORMATS 0x8DF8 + +/* StencilFunction */ +#define GR_GL_NEVER 0x0200 +#define GR_GL_LESS 0x0201 +#define GR_GL_EQUAL 0x0202 +#define GR_GL_LEQUAL 0x0203 +#define GR_GL_GREATER 0x0204 +#define GR_GL_NOTEQUAL 0x0205 +#define GR_GL_GEQUAL 0x0206 +#define GR_GL_ALWAYS 0x0207 + +/* StencilOp */ +/* GL_ZERO */ +#define GR_GL_KEEP 0x1E00 +#define GR_GL_REPLACE 0x1E01 +#define GR_GL_INCR 0x1E02 +#define GR_GL_DECR 0x1E03 +#define GR_GL_INVERT 0x150A +#define GR_GL_INCR_WRAP 0x8507 +#define GR_GL_DECR_WRAP 0x8508 + +/* StringName */ +#define GR_GL_VENDOR 0x1F00 +#define GR_GL_RENDERER 0x1F01 +#define GR_GL_VERSION 0x1F02 +#define GR_GL_EXTENSIONS 0x1F03 + +/* StringCounts */ +#define GR_GL_NUM_EXTENSIONS 0x821D + +/* Pixel Mode / Transfer */ +#define GR_GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GR_GL_PACK_ROW_LENGTH 0x0D02 + + +/* TextureMagFilter */ +#define GR_GL_NEAREST 0x2600 +#define GR_GL_LINEAR 0x2601 + +/* TextureMinFilter */ +/* GL_NEAREST */ +/* GL_LINEAR */ +#define GR_GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GR_GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GR_GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GR_GL_LINEAR_MIPMAP_LINEAR 0x2703 + +/* TextureUsage */ +#define GR_GL_FRAMEBUFFER_ATTACHMENT 0x93A3 + +/* TextureParameterName */ +#define GR_GL_TEXTURE_MAG_FILTER 0x2800 +#define GR_GL_TEXTURE_MIN_FILTER 0x2801 +#define GR_GL_TEXTURE_WRAP_S 0x2802 +#define GR_GL_TEXTURE_WRAP_T 0x2803 +#define GR_GL_TEXTURE_USAGE 0x93A2 +#define GR_GL_TEXTURE_MAX_ANISOTROPY 0x84FE +#define GR_GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF + +/* TextureTarget */ +/* GL_TEXTURE_2D */ +#define GR_GL_TEXTURE 0x1702 +#define GR_GL_TEXTURE_CUBE_MAP 0x8513 +#define GR_GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GR_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GR_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GR_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GR_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GR_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GR_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GR_GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C + +/* TextureUnit */ +#define GR_GL_TEXTURE0 0x84C0 +#define GR_GL_TEXTURE1 0x84C1 +#define GR_GL_TEXTURE2 0x84C2 +#define GR_GL_TEXTURE3 0x84C3 +#define GR_GL_TEXTURE4 0x84C4 +#define GR_GL_TEXTURE5 0x84C5 +#define GR_GL_TEXTURE6 0x84C6 +#define GR_GL_TEXTURE7 0x84C7 +#define GR_GL_TEXTURE8 0x84C8 +#define GR_GL_TEXTURE9 0x84C9 +#define GR_GL_TEXTURE10 0x84CA +#define GR_GL_TEXTURE11 0x84CB +#define GR_GL_TEXTURE12 0x84CC +#define GR_GL_TEXTURE13 0x84CD +#define GR_GL_TEXTURE14 0x84CE +#define GR_GL_TEXTURE15 0x84CF +#define GR_GL_TEXTURE16 0x84D0 +#define GR_GL_TEXTURE17 0x84D1 +#define GR_GL_TEXTURE18 0x84D2 +#define GR_GL_TEXTURE19 0x84D3 +#define GR_GL_TEXTURE20 0x84D4 +#define GR_GL_TEXTURE21 0x84D5 +#define GR_GL_TEXTURE22 0x84D6 +#define GR_GL_TEXTURE23 0x84D7 +#define GR_GL_TEXTURE24 0x84D8 +#define GR_GL_TEXTURE25 0x84D9 +#define GR_GL_TEXTURE26 0x84DA +#define GR_GL_TEXTURE27 0x84DB +#define GR_GL_TEXTURE28 0x84DC +#define GR_GL_TEXTURE29 0x84DD +#define GR_GL_TEXTURE30 0x84DE +#define GR_GL_TEXTURE31 0x84DF +#define GR_GL_ACTIVE_TEXTURE 0x84E0 +#define GR_GL_MAX_TEXTURE_UNITS 0x84E2 +#define GR_GL_MAX_TEXTURE_COORDS 0x8871 + +/* TextureWrapMode */ +#define GR_GL_REPEAT 0x2901 +#define GR_GL_CLAMP_TO_EDGE 0x812F +#define GR_GL_MIRRORED_REPEAT 0x8370 +#define GR_GL_CLAMP_TO_BORDER 0x812D + +/* Texture Swizzle */ +#define GR_GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GR_GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GR_GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GR_GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GR_GL_TEXTURE_SWIZZLE_RGBA 0x8E46 + +/* Texture mapping */ +#define GR_GL_TEXTURE_ENV 0x2300 +#define GR_GL_TEXTURE_ENV_MODE 0x2200 +#define GR_GL_TEXTURE_1D 0x0DE0 +/* GL_TEXTURE_2D */ +/* GL_TEXTURE_WRAP_S */ +/* GL_TEXTURE_WRAP_T */ +/* GL_TEXTURE_MAG_FILTER */ +/* GL_TEXTURE_MIN_FILTER */ +#define GR_GL_TEXTURE_ENV_COLOR 0x2201 +#define GR_GL_TEXTURE_GEN_S 0x0C60 +#define GR_GL_TEXTURE_GEN_T 0x0C61 +#define GR_GL_TEXTURE_GEN_R 0x0C62 +#define GR_GL_TEXTURE_GEN_Q 0x0C63 +#define GR_GL_TEXTURE_GEN_MODE 0x2500 +#define GR_GL_TEXTURE_BORDER_COLOR 0x1004 +#define GR_GL_TEXTURE_WIDTH 0x1000 +#define GR_GL_TEXTURE_HEIGHT 0x1001 +#define GR_GL_TEXTURE_BORDER 0x1005 +#define GR_GL_TEXTURE_COMPONENTS 0x1003 +#define GR_GL_TEXTURE_RED_SIZE 0x805C +#define GR_GL_TEXTURE_GREEN_SIZE 0x805D +#define GR_GL_TEXTURE_BLUE_SIZE 0x805E +#define GR_GL_TEXTURE_ALPHA_SIZE 0x805F +#define GR_GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GR_GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GR_GL_TEXTURE_INTERNAL_FORMAT 0x1003 +/* GL_NEAREST_MIPMAP_NEAREST */ +/* GL_NEAREST_MIPMAP_LINEAR */ +/* GL_LINEAR_MIPMAP_NEAREST */ +/* GL_LINEAR_MIPMAP_LINEAR */ +#define GR_GL_OBJECT_LINEAR 0x2401 +#define GR_GL_OBJECT_PLANE 0x2501 +#define GR_GL_EYE_LINEAR 0x2400 +#define GR_GL_EYE_PLANE 0x2502 +#define GR_GL_SPHERE_MAP 0x2402 +#define GR_GL_DECAL 0x2101 +#define GR_GL_MODULATE 0x2100 +/* GL_NEAREST */ +/* GL_REPEAT */ +#define GR_GL_CLAMP 0x2900 +#define GR_GL_S 0x2000 +#define GR_GL_T 0x2001 +#define GR_GL_R 0x2002 +#define GR_GL_Q 0x2003 +#define GR_GL_TEXTURE_GEN_R 0x0C62 +#define GR_GL_TEXTURE_GEN_Q 0x0C63 + +/* texture_env_combine */ +#define GR_GL_COMBINE 0x8570 +#define GR_GL_COMBINE_RGB 0x8571 +#define GR_GL_COMBINE_ALPHA 0x8572 +#define GR_GL_SOURCE0_RGB 0x8580 +#define GR_GL_SOURCE1_RGB 0x8581 +#define GR_GL_SOURCE2_RGB 0x8582 +#define GR_GL_SOURCE0_ALPHA 0x8588 +#define GR_GL_SOURCE1_ALPHA 0x8589 +#define GR_GL_SOURCE2_ALPHA 0x858A +#define GR_GL_OPERAND0_RGB 0x8590 +#define GR_GL_OPERAND1_RGB 0x8591 +#define GR_GL_OPERAND2_RGB 0x8592 +#define GR_GL_OPERAND0_ALPHA 0x8598 +#define GR_GL_OPERAND1_ALPHA 0x8599 +#define GR_GL_OPERAND2_ALPHA 0x859A +#define GR_GL_RGB_SCALE 0x8573 +#define GR_GL_ADD_SIGNED 0x8574 +#define GR_GL_INTERPOLATE 0x8575 +#define GR_GL_SUBTRACT 0x84E7 +#define GR_GL_CONSTANT 0x8576 +#define GR_GL_PRIMARY_COLOR 0x8577 +#define GR_GL_PREVIOUS 0x8578 +#define GR_GL_SRC0_RGB 0x8580 +#define GR_GL_SRC1_RGB 0x8581 +#define GR_GL_SRC2_RGB 0x8582 +#define GR_GL_SRC0_ALPHA 0x8588 +#define GR_GL_SRC1_ALPHA 0x8589 +#define GR_GL_SRC2_ALPHA 0x858A + +/* Uniform Types */ +#define GR_GL_FLOAT_VEC2 0x8B50 +#define GR_GL_FLOAT_VEC3 0x8B51 +#define GR_GL_FLOAT_VEC4 0x8B52 +#define GR_GL_INT_VEC2 0x8B53 +#define GR_GL_INT_VEC3 0x8B54 +#define GR_GL_INT_VEC4 0x8B55 +#define GR_GL_BOOL 0x8B56 +#define GR_GL_BOOL_VEC2 0x8B57 +#define GR_GL_BOOL_VEC3 0x8B58 +#define GR_GL_BOOL_VEC4 0x8B59 +#define GR_GL_FLOAT_MAT2 0x8B5A +#define GR_GL_FLOAT_MAT3 0x8B5B +#define GR_GL_FLOAT_MAT4 0x8B5C +#define GR_GL_SAMPLER_2D 0x8B5E +#define GR_GL_SAMPLER_CUBE 0x8B60 + +/* Vertex Arrays */ +#define GR_GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GR_GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GR_GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GR_GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GR_GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GR_GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GR_GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GR_GL_VERTEX_ARRAY 0x8074 +#define GR_GL_NORMAL_ARRAY 0x8075 +#define GR_GL_COLOR_ARRAY 0x8076 +#define GR_GL_SECONDARY_COLOR_ARRAY 0x845E +#define GR_GL_INDEX_ARRAY 0x8077 +#define GR_GL_TEXTURE_COORD_ARRAY 0x8078 +#define GR_GL_EDGE_FLAG_ARRAY 0x8079 +#define GR_GL_VERTEX_ARRAY_SIZE 0x807A +#define GR_GL_VERTEX_ARRAY_TYPE 0x807B +#define GR_GL_VERTEX_ARRAY_STRIDE 0x807C +#define GR_GL_NORMAL_ARRAY_TYPE 0x807E +#define GR_GL_NORMAL_ARRAY_STRIDE 0x807F +#define GR_GL_COLOR_ARRAY_SIZE 0x8081 +#define GR_GL_COLOR_ARRAY_TYPE 0x8082 +#define GR_GL_COLOR_ARRAY_STRIDE 0x8083 +#define GR_GL_INDEX_ARRAY_TYPE 0x8085 +#define GR_GL_INDEX_ARRAY_STRIDE 0x8086 +#define GR_GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GR_GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GR_GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GR_GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GR_GL_VERTEX_ARRAY_POINTER 0x808E +#define GR_GL_NORMAL_ARRAY_POINTER 0x808F +#define GR_GL_COLOR_ARRAY_POINTER 0x8090 +#define GR_GL_INDEX_ARRAY_POINTER 0x8091 +#define GR_GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GR_GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GR_GL_V2F 0x2A20 +#define GR_GL_V3F 0x2A21 +#define GR_GL_C4UB_V2F 0x2A22 +#define GR_GL_C4UB_V3F 0x2A23 +#define GR_GL_C3F_V3F 0x2A24 +#define GR_GL_N3F_V3F 0x2A25 +#define GR_GL_C4F_N3F_V3F 0x2A26 +#define GR_GL_T2F_V3F 0x2A27 +#define GR_GL_T4F_V4F 0x2A28 +#define GR_GL_T2F_C4UB_V3F 0x2A29 +#define GR_GL_T2F_C3F_V3F 0x2A2A +#define GR_GL_T2F_N3F_V3F 0x2A2B +#define GR_GL_T2F_C4F_N3F_V3F 0x2A2C +#define GR_GL_T4F_C4F_N3F_V4F 0x2A2D +#define GR_GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 + +/* Buffer Object */ +#define GR_GL_READ_ONLY 0x88B8 +#define GR_GL_WRITE_ONLY 0x88B9 +#define GR_GL_READ_WRITE 0x88BA +#define GR_GL_BUFFER_MAPPED 0x88BC + +#define GR_GL_MAP_READ_BIT 0x0001 +#define GR_GL_MAP_WRITE_BIT 0x0002 +#define GR_GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GR_GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GR_GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GR_GL_MAP_UNSYNCHRONIZED_BIT 0x0020 + +/* Read Format */ +#define GR_GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GR_GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B + +/* Shader Source */ +#define GR_GL_COMPILE_STATUS 0x8B81 +#define GR_GL_INFO_LOG_LENGTH 0x8B84 +#define GR_GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GR_GL_SHADER_COMPILER 0x8DFA + +/* Shader Binary */ +#define GR_GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GR_GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 + +/* Program Binary */ +#define GR_GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GR_GL_PROGRAM_BINARY_FORMATS 0x87FF + +/* Shader Precision-Specified Types */ +#define GR_GL_LOW_FLOAT 0x8DF0 +#define GR_GL_MEDIUM_FLOAT 0x8DF1 +#define GR_GL_HIGH_FLOAT 0x8DF2 +#define GR_GL_LOW_INT 0x8DF3 +#define GR_GL_MEDIUM_INT 0x8DF4 +#define GR_GL_HIGH_INT 0x8DF5 + +/* Queries */ +#define GR_GL_QUERY_COUNTER_BITS 0x8864 +#define GR_GL_CURRENT_QUERY 0x8865 +#define GR_GL_QUERY_RESULT 0x8866 +#define GR_GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GR_GL_SAMPLES_PASSED 0x8914 +#define GR_GL_ANY_SAMPLES_PASSED 0x8C2F +#define GR_GL_TIME_ELAPSED 0x88BF +#define GR_GL_TIMESTAMP 0x8E28 +#define GR_GL_PRIMITIVES_GENERATED 0x8C87 +#define GR_GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 + + +/* Framebuffer Object. */ +#define GR_GL_FRAMEBUFFER 0x8D40 +#define GR_GL_READ_FRAMEBUFFER 0x8CA8 +#define GR_GL_DRAW_FRAMEBUFFER 0x8CA9 + +#define GR_GL_RENDERBUFFER 0x8D41 + +#define GR_GL_MAX_SAMPLES 0x8D57 +// GL_IMG_multisampled_render_to_texture uses a different value for GL_MAX_SAMPLES +#define GR_GL_MAX_SAMPLES_IMG 0x9135 + +#define GR_GL_RENDERBUFFER_WIDTH 0x8D42 +#define GR_GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GR_GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GR_GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GR_GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GR_GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GR_GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GR_GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GR_GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 + +#define GR_GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GR_GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 + +#define GR_GL_COLOR_ATTACHMENT0 0x8CE0 +#define GR_GL_DEPTH_ATTACHMENT 0x8D00 +#define GR_GL_STENCIL_ATTACHMENT 0x8D20 + +// GL_EXT_discard_framebuffer +#define GR_GL_COLOR 0x1800 +#define GR_GL_DEPTH 0x1801 +#define GR_GL_STENCIL 0x1802 + +#define GR_GL_NONE 0 +#define GR_GL_FRAMEBUFFER_DEFAULT 0x8218 + +#define GR_GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GR_GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GR_GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GR_GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 +#define GR_GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD + +#define GR_GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GR_GL_RENDERBUFFER_BINDING 0x8CA7 +#define GR_GL_MAX_RENDERBUFFER_SIZE 0x84E8 + +#define GR_GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 + +/* Path Rendering */ +// commands +#define GR_GL_CLOSE_PATH 0x00 +#define GR_GL_MOVE_TO 0x02 +#define GR_GL_LINE_TO 0x04 +#define GR_GL_QUADRATIC_CURVE_TO 0x0A +#define GR_GL_CUBIC_CURVE_TO 0x0C +#define GR_GL_CONIC_CURVE_TO 0x1A + +// path parameters +#define GR_GL_PATH_STROKE_WIDTH 0x9075 +#define GR_GL_PATH_END_CAPS 0x9076 +#define GR_GL_PATH_JOIN_STYLE 0x9079 +#define GR_GL_PATH_MITER_LIMIT 0x907A +#define GR_GL_PATH_STROKE_BOUND 0x9086 + +// fill modes +#define GR_GL_COUNT_UP 0x9088 + +// cover mode +#define GR_GL_BOUNDING_BOX 0x908D +#define GR_GL_BOUNDING_BOX_OF_BOUNDING_BOXES 0x909C + +// transform type +#define GR_GL_TRANSLATE_X 0x908E +#define GR_GL_TRANSLATE_Y 0x908F +#define GR_GL_TRANSLATE_2D 0x9090 +#define GR_GL_TRANSPOSE_AFFINE_2D 0x9096 + +// cap/dash values +#define GR_GL_SQUARE 0x90A3 +#define GR_GL_ROUND 0x90A4 + +// join values +#define GR_GL_BEVEL 0x90A6 +#define GR_GL_MITER_REVERT 0x90A7 + +// glyph loading values +#define GR_GL_STANDARD_FONT_FORMAT 0x936C +#define GR_GL_FONT_GLYPHS_AVAILABLE 0x9368 + +// NV_path_rendering extension to ARB_program_interface_query: +// .. corresponds to the set of active input variables used by the fragment +// shader stage of (if a fragment stage exists). +#define GR_GL_FRAGMENT_INPUT 0x936D + +// NV_path_rendering extension to EXT_direct_state_access: +// [the matrix functions] must support the PATH_PROJECTION_NV and +// PATH_MODELVIEW_NV tokens for matrixMode. +#define GR_GL_PATH_PROJECTION 0x1701 +#define GR_GL_PATH_MODELVIEW 0x1700 + +/* ARM specific define for MSAA support on framebuffer fetch */ +#define GR_GL_FETCH_PER_SAMPLE 0x8F65 + +/* GL_KHR_debug */ +#define GR_GL_DEBUG_OUTPUT 0x92E0 +#define GR_GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 +#define GR_GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 +#define GR_GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 +#define GR_GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 +#define GR_GL_DEBUG_LOGGED_MESSAGES 0x9145 +#define GR_GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 +#define GR_GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C +#define GR_GL_DEBUG_GROUP_STACK_DEPTH 0x826D +#define GR_GL_MAX_LABEL_LENGTH 0x82E8 +#define GR_GL_DEBUG_SOURCE_API 0x8246 +#define GR_GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 +#define GR_GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 +#define GR_GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 +#define GR_GL_DEBUG_SOURCE_APPLICATION 0x824A +#define GR_GL_DEBUG_SOURCE_OTHER 0x824B +#define GR_GL_DEBUG_TYPE_ERROR 0x824C +#define GR_GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D +#define GR_GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E +#define GR_GL_DEBUG_TYPE_PORTABILITY 0x824F +#define GR_GL_DEBUG_TYPE_PERFORMANCE 0x8250 +#define GR_GL_DEBUG_TYPE_OTHER 0x8251 +#define GR_GL_DEBUG_TYPE_MARKER 0x8268 +#define GR_GL_DEBUG_TYPE_PUSH_GROUP 0x8269 +#define GR_GL_DEBUG_TYPE_POP_GROUP 0x826A +#define GR_GL_DEBUG_SEVERITY_HIGH 0x9146 +#define GR_GL_DEBUG_SEVERITY_MEDIUM 0x9147 +#define GR_GL_DEBUG_SEVERITY_LOW 0x9148 +#define GR_GL_DEBUG_SEVERITY_NOTIFICATION 0x826B +#define GR_GL_STACK_UNDERFLOW 0x0504 +#define GR_GL_STACK_OVERFLOW 0x0503 +#define GR_GL_BUFFER 0x82E0 +#define GR_GL_SHADER 0x82E1 +#define GR_GL_PROGRAM 0x82E2 +#define GR_GL_QUERY 0x82E3 +#define GR_GL_PROGRAM_PIPELINE 0x82E4 +#define GR_GL_SAMPLER 0x82E6 + +/* GL_OES_EGL_image_external */ +#define GR_GL_TEXTURE_EXTERNAL 0x8D65 +#define GR_GL_TEXTURE_BINDING_EXTERNAL 0x8D67 + +/* GL_ARB_texture_rectangle or GL_ANGLE_texture_rectangle */ +#define GR_GL_TEXTURE_RECTANGLE 0x84F5 +#define GR_GL_TEXTURE_BINDING_RECTANGLE 0x84F6 + +/* GL_EXT_window_rectangles */ +#define GR_GL_MAX_WINDOW_RECTANGLES 0x8f14 +#define GR_GL_INCLUSIVE 0x8f10 +#define GR_GL_EXCLUSIVE 0x8f11 + +/** GL_QCOM_tiled_rendering */ +#define GR_GL_COLOR_BUFFER_BIT0 0x00000001 +#define GR_GL_COLOR_BUFFER_BIT1 0x00000002 +#define GR_GL_COLOR_BUFFER_BIT2 0x00000004 +#define GR_GL_COLOR_BUFFER_BIT3 0x00000008 +#define GR_GL_COLOR_BUFFER_BIT4 0x00000010 +#define GR_GL_COLOR_BUFFER_BIT5 0x00000020 +#define GR_GL_COLOR_BUFFER_BIT6 0x00000040 +#define GR_GL_COLOR_BUFFER_BIT7 0x00000080 +#define GR_GL_DEPTH_BUFFER_BIT0 0x00000100 +#define GR_GL_DEPTH_BUFFER_BIT1 0x00000200 +#define GR_GL_DEPTH_BUFFER_BIT2 0x00000400 +#define GR_GL_DEPTH_BUFFER_BIT3 0x00000800 +#define GR_GL_DEPTH_BUFFER_BIT4 0x00001000 +#define GR_GL_DEPTH_BUFFER_BIT5 0x00002000 +#define GR_GL_DEPTH_BUFFER_BIT6 0x00004000 +#define GR_GL_DEPTH_BUFFER_BIT7 0x00008000 +#define GR_GL_STENCIL_BUFFER_BIT0 0x00010000 +#define GR_GL_STENCIL_BUFFER_BIT1 0x00020000 +#define GR_GL_STENCIL_BUFFER_BIT2 0x00040000 +#define GR_GL_STENCIL_BUFFER_BIT3 0x00080000 +#define GR_GL_STENCIL_BUFFER_BIT4 0x00100000 +#define GR_GL_STENCIL_BUFFER_BIT5 0x00200000 +#define GR_GL_STENCIL_BUFFER_BIT6 0x00400000 +#define GR_GL_STENCIL_BUFFER_BIT7 0x00800000 +#define GR_GL_MULTISAMPLE_BUFFER_BIT0 0x01000000 +#define GR_GL_MULTISAMPLE_BUFFER_BIT1 0x02000000 +#define GR_GL_MULTISAMPLE_BUFFER_BIT2 0x04000000 +#define GR_GL_MULTISAMPLE_BUFFER_BIT3 0x08000000 +#define GR_GL_MULTISAMPLE_BUFFER_BIT4 0x10000000 +#define GR_GL_MULTISAMPLE_BUFFER_BIT5 0x20000000 +#define GR_GL_MULTISAMPLE_BUFFER_BIT6 0x40000000 +#define GR_GL_MULTISAMPLE_BUFFER_BIT7 0x80000000 + +/* GL_ARB_sync */ +#define GR_GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GR_GL_ALREADY_SIGNALED 0x911A +#define GR_GL_TIMEOUT_EXPIRED 0x911B +#define GR_GL_CONDITION_SATISFIED 0x911C +#define GR_GL_WAIT_FAILED 0x911D +#define GR_GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GR_GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull + +/* GL_EXT_geometry_shader */ +#define GR_GL_LINES_ADJACENCY 0x000A + +#define GR_GL_PATCH_VERTICES 0x8E72 + +/* GL_ARB_internalformat_query */ +#define GR_GL_NUM_SAMPLE_COUNTS 0x9380 + +/* EGL Defines */ +#define GR_EGL_NO_DISPLAY ((GrEGLDisplay)nullptr) +#define GR_EGL_EXTENSIONS 0x3055 +#define GR_EGL_GL_TEXTURE_2D 0x30B1 +#define GR_EGL_GL_TEXTURE_LEVEL 0x30BC +#define GR_EGL_IMAGE_PRESERVED 0x30D2 +#define GR_EGL_FALSE 0x0 +#define GR_EGL_TRUE 0x1 +#define GR_EGL_NONE 0x3038 +#define GR_EGL_NO_IMAGE ((GrEGLImage)nullptr) + +/* Programs */ +#define GR_GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINARY_LENGTH 0x8741 + +/* GL_NV_conservative_raster */ +#define GR_GL_CONSERVATIVE_RASTERIZATION 0x9346 + +/* Barriers */ +#define GR_GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x0001 +#define GR_GL_ELEMENT_ARRAY_BARRIER_BIT 0x0002 +#define GR_GL_UNIFORM_BARRIER_BIT 0x0004 +#define GR_GL_TEXTURE_FETCH_BARRIER_BIT 0x0008 +#define GR_GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x0020 +#define GR_GL_COMMAND_BARRIER_BIT 0x0040 +#define GR_GL_PIXEL_BUFFER_BARRIER_BIT 0x0080 +#define GR_GL_TEXTURE_UPDATE_BARRIER_BIT 0x0100 +#define GR_GL_BUFFER_UPDATE_BARRIER_BIT 0x0200 +#define GR_GL_FRAMEBUFFER_BARRIER_BIT 0x0400 +#define GR_GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x0800 +#define GR_GL_ATOMIC_COUNTER_BARRIER_BIT 0x1000 +#define GR_GL_ALL_BARRIER_BITS 0xffffffff + +/** GL_NV_fence_sync */ +#define GR_GL_ALL_COMPLETED 0x84F2 + +/* Tessellation */ +#define GR_GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E + +#endif diff --git a/third_party/skia/src/gpu/gl/GrGLExtensions.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLExtensions.cpp similarity index 98% rename from third_party/skia/src/gpu/gl/GrGLExtensions.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLExtensions.cpp index 63156f5d55cd..8a2259587f48 100644 --- a/third_party/skia/src/gpu/gl/GrGLExtensions.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLExtensions.cpp @@ -6,8 +6,8 @@ */ #include "include/gpu/gl/GrGLExtensions.h" -#include "src/gpu/gl/GrGLDefines.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include "src/core/SkTSearch.h" #include "src/core/SkTSort.h" diff --git a/third_party/skia/src/gpu/gl/GrGLGLSL.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLGLSL.cpp similarity index 89% rename from third_party/skia/src/gpu/gl/GrGLGLSL.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLGLSL.cpp index 556b0ed3ed04..5f4f16b3c888 100644 --- a/third_party/skia/src/gpu/gl/GrGLGLSL.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLGLSL.cpp @@ -5,8 +5,8 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLGLSL.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLGLSL.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" bool GrGLGetGLSLGeneration(const GrGLDriverInfo& info, SkSL::GLSLGeneration* generation) { SkASSERT(generation); @@ -50,17 +50,17 @@ bool GrGLGetGLSLGeneration(const GrGLDriverInfo& info, SkSL::GLSLGeneration* gen } else if (ver >= GR_GLSL_VER(3,10)) { *generation = SkSL::GLSLGeneration::k310es; } else if (ver >= GR_GLSL_VER(3,00)) { - *generation = SkSL::GLSLGeneration::k330; + *generation = SkSL::GLSLGeneration::k300es; } else { - *generation = SkSL::GLSLGeneration::k110; + *generation = SkSL::GLSLGeneration::k100es; } return true; } else if (GR_IS_GR_WEBGL(info.fStandard)) { SkASSERT(ver >= GR_GL_VER(1,0)); if (ver >= GR_GLSL_VER(2,0)) { - *generation = SkSL::GLSLGeneration::k330; // ES 3.0 + *generation = SkSL::GLSLGeneration::k300es; } else { - *generation = SkSL::GLSLGeneration::k110; + *generation = SkSL::GLSLGeneration::k100es; } return true; } diff --git a/third_party/skia/src/gpu/gl/GrGLGLSL.h b/third_party/skia/src/gpu/ganesh/gl/GrGLGLSL.h similarity index 90% rename from third_party/skia/src/gpu/gl/GrGLGLSL.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLGLSL.h index 9dc50f601745..1542fff4b7d3 100644 --- a/third_party/skia/src/gpu/gl/GrGLGLSL.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLGLSL.h @@ -8,7 +8,7 @@ #ifndef GrGLGLSL_DEFINED #define GrGLGLSL_DEFINED -#include "src/gpu/glsl/GrGLSL.h" +#include "src/gpu/ganesh/glsl/GrGLSL.h" struct GrGLDriverInfo; diff --git a/third_party/skia/src/gpu/gl/GrGLGpu.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLGpu.cpp similarity index 95% rename from third_party/skia/src/gpu/gl/GrGLGpu.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLGpu.cpp index 797c5ab6f42c..aa83c1b95ac3 100644 --- a/third_party/skia/src/gpu/gl/GrGLGpu.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLGpu.cpp @@ -5,8 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkPixmap.h" #include "include/core/SkTypes.h" #include "include/gpu/GrBackendSemaphore.h" @@ -18,28 +19,28 @@ #include "include/private/SkTo.h" #include "src/core/SkAutoMalloc.h" #include "src/core/SkCompressedDataUtils.h" +#include "src/core/SkLRUCache.h" #include "src/core/SkMipmap.h" #include "src/core/SkScopeExit.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrCpuBuffer.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrUtil.h" -#include "src/gpu/SkRenderEngineAbortf.h" -#include "src/gpu/gl/GrGLAttachment.h" -#include "src/gpu/gl/GrGLBuffer.h" -#include "src/gpu/gl/GrGLOpsRenderPass.h" -#include "src/gpu/gl/GrGLSemaphore.h" -#include "src/gpu/gl/GrGLTextureRenderTarget.h" -#include "src/gpu/gl/builders/GrGLShaderStringBuilder.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrCpuBuffer.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrUtil.h" +#include "src/gpu/ganesh/gl/GrGLAttachment.h" +#include "src/gpu/ganesh/gl/GrGLBuffer.h" +#include "src/gpu/ganesh/gl/GrGLOpsRenderPass.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 @@ -90,25 +91,25 @@ static const GrGLenum gXfermodeEquation2Blend[] = { // Illegal... needs to map to something. GR_GL_FUNC_ADD, }; -static_assert(0 == kAdd_GrBlendEquation); -static_assert(1 == kSubtract_GrBlendEquation); -static_assert(2 == kReverseSubtract_GrBlendEquation); -static_assert(3 == kScreen_GrBlendEquation); -static_assert(4 == kOverlay_GrBlendEquation); -static_assert(5 == kDarken_GrBlendEquation); -static_assert(6 == kLighten_GrBlendEquation); -static_assert(7 == kColorDodge_GrBlendEquation); -static_assert(8 == kColorBurn_GrBlendEquation); -static_assert(9 == kHardLight_GrBlendEquation); -static_assert(10 == kSoftLight_GrBlendEquation); -static_assert(11 == kDifference_GrBlendEquation); -static_assert(12 == kExclusion_GrBlendEquation); -static_assert(13 == kMultiply_GrBlendEquation); -static_assert(14 == kHSLHue_GrBlendEquation); -static_assert(15 == kHSLSaturation_GrBlendEquation); -static_assert(16 == kHSLColor_GrBlendEquation); -static_assert(17 == kHSLLuminosity_GrBlendEquation); -static_assert(SK_ARRAY_COUNT(gXfermodeEquation2Blend) == kGrBlendEquationCnt); +static_assert(0 == (int)skgpu::BlendEquation::kAdd); +static_assert(1 == (int)skgpu::BlendEquation::kSubtract); +static_assert(2 == (int)skgpu::BlendEquation::kReverseSubtract); +static_assert(3 == (int)skgpu::BlendEquation::kScreen); +static_assert(4 == (int)skgpu::BlendEquation::kOverlay); +static_assert(5 == (int)skgpu::BlendEquation::kDarken); +static_assert(6 == (int)skgpu::BlendEquation::kLighten); +static_assert(7 == (int)skgpu::BlendEquation::kColorDodge); +static_assert(8 == (int)skgpu::BlendEquation::kColorBurn); +static_assert(9 == (int)skgpu::BlendEquation::kHardLight); +static_assert(10 == (int)skgpu::BlendEquation::kSoftLight); +static_assert(11 == (int)skgpu::BlendEquation::kDifference); +static_assert(12 == (int)skgpu::BlendEquation::kExclusion); +static_assert(13 == (int)skgpu::BlendEquation::kMultiply); +static_assert(14 == (int)skgpu::BlendEquation::kHSLHue); +static_assert(15 == (int)skgpu::BlendEquation::kHSLSaturation); +static_assert(16 == (int)skgpu::BlendEquation::kHSLColor); +static_assert(17 == (int)skgpu::BlendEquation::kHSLLuminosity); +static_assert(SK_ARRAY_COUNT(gXfermodeEquation2Blend) == skgpu::kBlendEquationCnt); static const GrGLenum gXfermodeCoeff2Blend[] = { GR_GL_ZERO, @@ -227,7 +228,6 @@ class GrGLGpu::SamplerObjectCache { SamplerObjectCache(GrGLGpu* gpu) : fGpu(gpu) { fNumTextureUnits = fGpu->glCaps().shaderCaps()->maxFragmentSamplers(); fTextureUnitStates = std::make_unique(fNumTextureUnits); - std::fill_n(fSamplers, kNumSamplers, 0); } ~SamplerObjectCache() { @@ -235,24 +235,20 @@ class GrGLGpu::SamplerObjectCache { // We've already been abandoned. return; } - for (GrGLuint sampler : fSamplers) { - // The spec states that "zero" values should be silently ignored, however they still - // trigger GL errors on some NVIDIA platforms. - if (sampler) { - GR_GL_CALL(fGpu->glInterface(), DeleteSamplers(1, &sampler)); - } - } } void bindSampler(int unitIdx, GrSamplerState state) { - int index = state.asIndex(); - if (!fSamplers[index]) { + // In GL the max aniso value is specified in addition to min/mag filters and the driver + // is encouraged to consider the other filter settings when doing aniso. + uint32_t key = state.asKey(/*anisoIsOrthogonal=*/true); + const Sampler* sampler = fSamplers.find(key); + if (!sampler) { GrGLuint s; GR_GL_CALL(fGpu->glInterface(), GenSamplers(1, &s)); if (!s) { return; } - fSamplers[index] = s; + sampler = fSamplers.insert(key, Sampler(s, fGpu->glInterface())); GrGLenum minFilter = filter_to_gl_min_filter(state.filter(), state.mipmapMode()); GrGLenum magFilter = filter_to_gl_mag_filter(state.filter()); GrGLenum wrapX = wrap_mode_to_gl_wrap(state.wrapModeX(), fGpu->glCaps()); @@ -263,11 +259,20 @@ class GrGLGpu::SamplerObjectCache { SamplerParameteri(s, GR_GL_TEXTURE_MAG_FILTER, magFilter)); GR_GL_CALL(fGpu->glInterface(), SamplerParameteri(s, GR_GL_TEXTURE_WRAP_S, wrapX)); GR_GL_CALL(fGpu->glInterface(), SamplerParameteri(s, GR_GL_TEXTURE_WRAP_T, wrapY)); + SkASSERT(fGpu->glCaps().anisoSupport() || !state.isAniso()); + if (fGpu->glCaps().anisoSupport()) { + float maxAniso = std::min(static_cast(state.maxAniso()), + fGpu->glCaps().maxTextureMaxAnisotropy()); + GR_GL_CALL(fGpu->glInterface(), SamplerParameterf(s, + GR_GL_TEXTURE_MAX_ANISOTROPY, + maxAniso)); + } } + SkASSERT(sampler && sampler->id()); if (!fTextureUnitStates[unitIdx].fKnown || - fTextureUnitStates[unitIdx].fSamplerIDIfKnown != fSamplers[index]) { - GR_GL_CALL(fGpu->glInterface(), BindSampler(unitIdx, fSamplers[index])); - fTextureUnitStates[unitIdx].fSamplerIDIfKnown = fSamplers[index]; + fTextureUnitStates[unitIdx].fSamplerIDIfKnown != sampler->id()) { + GR_GL_CALL(fGpu->glInterface(), BindSampler(unitIdx, sampler->id())); + fTextureUnitStates[unitIdx].fSamplerIDIfKnown = sampler->id(); fTextureUnitStates[unitIdx].fKnown = true; } } @@ -286,6 +291,7 @@ class GrGLGpu::SamplerObjectCache { } void abandon() { + fSamplers.foreach([](uint32_t* key, Sampler* sampler) { sampler->abandon(); }); fTextureUnitStates.reset(); fNumTextureUnits = 0; } @@ -295,23 +301,52 @@ class GrGLGpu::SamplerObjectCache { // We've already been abandoned. return; } - GR_GL_CALL(fGpu->glInterface(), DeleteSamplers(kNumSamplers, fSamplers)); - std::fill_n(fSamplers, kNumSamplers, 0); + fSamplers.reset(); // Deleting a bound sampler implicitly binds sampler 0. We just invalidate all of our // knowledge. std::fill_n(fTextureUnitStates.get(), fNumTextureUnits, UnitState{}); } private: - static constexpr int kNumSamplers = GrSamplerState::kNumUniqueSamplers; + class Sampler { + public: + Sampler() = default; + Sampler(const Sampler&) = delete; + + Sampler(Sampler&& that) { + fID = that.fID; + fInterface = that.fInterface; + that.fID = 0; + } + + Sampler(GrGLuint id, const GrGLInterface* interface) : fID(id), fInterface(interface) {} + + ~Sampler() { + if (fID) { + GR_GL_CALL(fInterface, DeleteSamplers(1, &fID)); + } + } + + GrGLuint id() const { return fID; } + + void abandon() { fID = 0; } + + private: + GrGLuint fID = 0; + const GrGLInterface* fInterface = nullptr; + }; + struct UnitState { bool fKnown = false; GrGLuint fSamplerIDIfKnown = 0; }; - GrGLGpu* fGpu; - std::unique_ptr fTextureUnitStates; - GrGLuint fSamplers[kNumSamplers]; - int fNumTextureUnits; + + static constexpr int kMaxSamplers = 32; + + SkLRUCache fSamplers{kMaxSamplers}; + std::unique_ptr fTextureUnitStates; + GrGLGpu* fGpu; + int fNumTextureUnits; }; /////////////////////////////////////////////////////////////////////////////// @@ -320,11 +355,6 @@ sk_sp GrGLGpu::Make(sk_sp interface, const GrContext GrDirectContext* direct) { if (!interface) { interface = GrGLMakeNativeInterface(); - // For clients that have written their own GrGLCreateNativeInterface and haven't yet updated - // to GrGLMakeNativeInterface. - if (!interface) { - interface = sk_ref_sp(GrGLCreateNativeInterface()); - } if (!interface) { return nullptr; } @@ -1223,7 +1253,6 @@ bool GrGLGpu::createRenderTargetObjects(const GrGLTexture::Desc& desc, GL_CALL(GenFramebuffers(1, &rtIDs->fSingleSampleFBOID)); if (!rtIDs->fSingleSampleFBOID) { - RENDERENGINE_ABORTF("%s failed to GenFramebuffers!", __func__); return false; } @@ -1334,7 +1363,9 @@ static sk_sp return_null_texture() { } static GrGLTextureParameters::SamplerOverriddenState set_initial_texture_params( - const GrGLInterface* interface, GrGLenum target) { + const GrGLInterface* interface, + const GrGLCaps& caps, + GrGLenum target) { // Some drivers like to know filter/wrap before seeing glTexImage2D. Some // drivers have a bug where an FBO won't be complete if it includes a // texture that is not mipmap complete (considering the filter in use). @@ -1406,11 +1437,16 @@ sk_sp GrGLGpu::onCreateTexture(SkISize dimensions, GL_CALL(DeleteTextures(1, &texDesc.fID)); return return_null_texture(); } - tex = sk_make_sp( - this, budgeted, renderTargetSampleCnt, texDesc, rtIDDesc, mipmapStatus); + tex = sk_make_sp(this, + budgeted, + renderTargetSampleCnt, + texDesc, + rtIDDesc, + mipmapStatus, + /*label=*/""); tex->baseLevelWasBoundToFBO(); } else { - tex = sk_make_sp(this, budgeted, texDesc, mipmapStatus); + tex = sk_make_sp(this, budgeted, texDesc, mipmapStatus, /*label=*/""); } // The non-sampler params are still at their default values. tex->parameters()->set(&initialState, GrGLTextureParameters::NonsamplerState(), @@ -1494,7 +1530,7 @@ sk_sp GrGLGpu::onCreateCompressedTexture(SkISize dimensions, ? GrMipmapStatus::kValid : GrMipmapStatus::kNotAllocated; - auto tex = sk_make_sp(this, budgeted, desc, mipmapStatus); + auto tex = sk_make_sp(this, budgeted, desc, mipmapStatus, /*label=*/""); // The non-sampler params are still at their default values. tex->parameters()->set(&initialState, GrGLTextureParameters::NonsamplerState(), fResetTimestampForTextureParameters); @@ -1542,7 +1578,7 @@ GrBackendTexture GrGLGpu::onCreateCompressedBackendTexture( } bool GrGLGpu::onUpdateCompressedBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t length) { GrGLTextureInfo info; @@ -1693,7 +1729,9 @@ GrGLuint GrGLGpu::createCompressedTexture2D( set_khr_debug_label(this, id); - *initialState = set_initial_texture_params(this->glInterface(), GR_GL_TEXTURE_2D); + *initialState = set_initial_texture_params(this->glInterface(), + this->glCaps(), + GR_GL_TEXTURE_2D); return id; } @@ -1725,9 +1763,9 @@ GrGLuint GrGLGpu::createTexture(SkISize dimensions, } if (initialState) { - *initialState = set_initial_texture_params(this->glInterface(), target); + *initialState = set_initial_texture_params(this->glInterface(), this->glCaps(), target); } else { - set_initial_texture_params(this->glInterface(), target); + set_initial_texture_params(this->glInterface(), this->glCaps(), target); } if (GrProtected::kYes == isProtected) { @@ -2552,19 +2590,19 @@ void GrGLGpu::flushBlendAndColorWrite( // We need to work around a driver bug by using a blend state that preserves the dst color, // rather than disabling color writes. GrXferProcessor::BlendInfo preserveDstBlend; - preserveDstBlend.fSrcBlend = kZero_GrBlendCoeff; - preserveDstBlend.fDstBlend = kOne_GrBlendCoeff; + preserveDstBlend.fSrcBlend = skgpu::BlendCoeff::kZero; + preserveDstBlend.fDstBlend = skgpu::BlendCoeff::kOne; this->flushBlendAndColorWrite(preserveDstBlend, swizzle); return; } - GrBlendEquation equation = blendInfo.fEquation; - GrBlendCoeff srcCoeff = blendInfo.fSrcBlend; - GrBlendCoeff dstCoeff = blendInfo.fDstBlend; + skgpu::BlendEquation equation = blendInfo.fEquation; + skgpu::BlendCoeff srcCoeff = blendInfo.fSrcBlend; + skgpu::BlendCoeff dstCoeff = blendInfo.fDstBlend; // Any optimization to disable blending should have already been applied and // tweaked the equation to "add" or "subtract", and the coeffs to (1, 0). - bool blendOff = GrBlendShouldDisable(equation, srcCoeff, dstCoeff) || + bool blendOff = skgpu::BlendShouldDisable(equation, srcCoeff, dstCoeff) || !blendInfo.fWriteColor; if (blendOff) { @@ -2574,12 +2612,12 @@ void GrGLGpu::flushBlendAndColorWrite( // Workaround for the ARM KHR_blend_equation_advanced disable flags issue // https://code.google.com/p/skia/issues/detail?id=3943 if (this->ctxInfo().vendor() == GrGLVendor::kARM && - GrBlendEquationIsAdvanced(fHWBlendState.fEquation)) { + skgpu::BlendEquationIsAdvanced(fHWBlendState.fEquation)) { SkASSERT(this->caps()->advancedBlendEquationSupport()); // Set to any basic blending equation. - GrBlendEquation blend_equation = kAdd_GrBlendEquation; - GL_CALL(BlendEquation(gXfermodeEquation2Blend[blend_equation])); - fHWBlendState.fEquation = blend_equation; + skgpu::BlendEquation blendEquation = skgpu::BlendEquation::kAdd; + GL_CALL(BlendEquation(gXfermodeEquation2Blend[(int)blendEquation])); + fHWBlendState.fEquation = blendEquation; } // Workaround for Adreno 5xx BlendFunc bug. See crbug.com/1241134. @@ -2587,14 +2625,14 @@ void GrGLGpu::flushBlendAndColorWrite( // reset our gl state and thus we will have forgotten if the previous use was a coeff // that referenced src2. if (this->glCaps().mustResetBlendFuncBetweenDualSourceAndDisable() && - (GrBlendCoeffRefsSrc2(fHWBlendState.fSrcCoeff) || - GrBlendCoeffRefsSrc2(fHWBlendState.fDstCoeff) || - fHWBlendState.fSrcCoeff == kIllegal_GrBlendCoeff || - fHWBlendState.fDstCoeff == kIllegal_GrBlendCoeff)) { + (skgpu::BlendCoeffRefsSrc2(fHWBlendState.fSrcCoeff) || + skgpu::BlendCoeffRefsSrc2(fHWBlendState.fDstCoeff) || + fHWBlendState.fSrcCoeff == skgpu::BlendCoeff::kIllegal || + fHWBlendState.fDstCoeff == skgpu::BlendCoeff::kIllegal)) { // We just reset the blend func to anything that doesn't reference src2 GL_CALL(BlendFunc(GR_GL_ONE, GR_GL_ZERO)); - fHWBlendState.fSrcCoeff = kOne_GrBlendCoeff; - fHWBlendState.fDstCoeff = kZero_GrBlendCoeff; + fHWBlendState.fSrcCoeff = skgpu::BlendCoeff::kOne; + fHWBlendState.fDstCoeff = skgpu::BlendCoeff::kZero; } fHWBlendState.fEnabled = kNo_TriState; @@ -2607,24 +2645,24 @@ void GrGLGpu::flushBlendAndColorWrite( } if (fHWBlendState.fEquation != equation) { - GL_CALL(BlendEquation(gXfermodeEquation2Blend[equation])); + GL_CALL(BlendEquation(gXfermodeEquation2Blend[(int)equation])); fHWBlendState.fEquation = equation; } - if (GrBlendEquationIsAdvanced(equation)) { + if (skgpu::BlendEquationIsAdvanced(equation)) { SkASSERT(this->caps()->advancedBlendEquationSupport()); // Advanced equations have no other blend state. return; } if (fHWBlendState.fSrcCoeff != srcCoeff || fHWBlendState.fDstCoeff != dstCoeff) { - GL_CALL(BlendFunc(gXfermodeCoeff2Blend[srcCoeff], - gXfermodeCoeff2Blend[dstCoeff])); + GL_CALL(BlendFunc(gXfermodeCoeff2Blend[(int)srcCoeff], + gXfermodeCoeff2Blend[(int)dstCoeff])); fHWBlendState.fSrcCoeff = srcCoeff; fHWBlendState.fDstCoeff = dstCoeff; } - if (GrBlendCoeffRefsConstant(srcCoeff) || GrBlendCoeffRefsConstant(dstCoeff)) { + if (skgpu::BlendCoeffRefsConstant(srcCoeff) || skgpu::BlendCoeffRefsConstant(dstCoeff)) { SkPMColor4f blendConst = swizzle.applyTo(blendInfo.fBlendConstant); if (!fHWBlendState.fConstColorValid || fHWBlendState.fConstColor != blendConst) { GL_CALL(BlendColor(blendConst.fR, blendConst.fG, blendConst.fB, blendConst.fA)); @@ -2664,7 +2702,10 @@ void GrGLGpu::bindTexture(int unitIdx, GrSamplerState samplerState, const skgpu: if (samplerState.mipmapped() == GrMipmapped::kYes) { if (!this->caps()->mipmapSupport() || texture->mipmapped() == GrMipmapped::kNo) { - samplerState.setMipmapMode(GrSamplerState::MipmapMode::kNone); + samplerState = GrSamplerState(samplerState.wrapModeX(), + samplerState.wrapModeY(), + samplerState.filter(), + GrSamplerState::MipmapMode::kNone); } else { SkASSERT(!texture->mipmapsAreDirty()); } @@ -2704,6 +2745,9 @@ void GrGLGpu::bindTexture(int unitIdx, GrSamplerState samplerState, const skgpu: newSamplerState.fWrapS = wrap_mode_to_gl_wrap(samplerState.wrapModeX(), this->glCaps()); newSamplerState.fWrapT = wrap_mode_to_gl_wrap(samplerState.wrapModeY(), this->glCaps()); + newSamplerState.fMaxAniso = std::min(static_cast(samplerState.maxAniso()), + this->glCaps().maxTextureMaxAnisotropy()); + // These are the OpenGL default values. newSamplerState.fMinLOD = -1000.f; newSamplerState.fMaxLOD = 1000.f; @@ -2742,6 +2786,13 @@ void GrGLGpu::bindTexture(int unitIdx, GrSamplerState samplerState, const skgpu: GL_CALL(TexParameterfv(target, GR_GL_TEXTURE_BORDER_COLOR, kTransparentBlack)); } } + if (this->caps()->anisoSupport()) { + if (setAll || oldSamplerState.fMaxAniso != newSamplerState.fMaxAniso) { + GL_CALL(TexParameterf(target, + GR_GL_TEXTURE_MAX_ANISOTROPY, + newSamplerState.fMaxAniso)); + } + } } GrGLTextureParameters::NonsamplerState newNonsamplerState; newNonsamplerState.fBaseMipMapLevel = 0; @@ -3678,7 +3729,7 @@ GrBackendTexture GrGLGpu::onCreateBackendTexture(SkISize dimensions, } bool GrGLGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) { this->handleDirtyContext(); diff --git a/third_party/skia/src/gpu/gl/GrGLGpu.h b/third_party/skia/src/gpu/ganesh/gl/GrGLGpu.h similarity index 96% rename from third_party/skia/src/gpu/gl/GrGLGpu.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLGpu.h index c4ea38242f7f..414a168d15cf 100644 --- a/third_party/skia/src/gpu/gl/GrGLGpu.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLGpu.h @@ -11,19 +11,19 @@ #include "include/core/SkTypes.h" #include "include/private/SkTArray.h" #include "src/core/SkLRUCache.h" -#include "src/gpu/GrFinishCallbacks.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrNativeRect.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrThreadSafePipelineBuilder.h" -#include "src/gpu/GrWindowRectsState.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/gl/GrGLAttachment.h" -#include "src/gpu/gl/GrGLContext.h" -#include "src/gpu/gl/GrGLProgram.h" -#include "src/gpu/gl/GrGLRenderTarget.h" -#include "src/gpu/gl/GrGLTexture.h" -#include "src/gpu/gl/GrGLVertexArray.h" +#include "src/gpu/ganesh/GrFinishCallbacks.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrNativeRect.h" +#include "src/gpu/ganesh/GrProgramDesc.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/GrGLContext.h" +#include "src/gpu/ganesh/gl/GrGLProgram.h" +#include "src/gpu/ganesh/gl/GrGLRenderTarget.h" +#include "src/gpu/ganesh/gl/GrGLTexture.h" +#include "src/gpu/ganesh/gl/GrGLVertexArray.h" class GrGLBuffer; class GrGLOpsRenderPass; @@ -231,11 +231,11 @@ class GrGLGpu final : public GrGpu { GrProtected) override; bool onClearBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) override; bool onUpdateCompressedBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t length) override; @@ -705,17 +705,17 @@ class GrGLGpu final : public GrGpu { void setNeedsFlush() { fNeedsGLFlush = true; } struct { - GrBlendEquation fEquation; - GrBlendCoeff fSrcCoeff; - GrBlendCoeff fDstCoeff; - SkPMColor4f fConstColor; - bool fConstColorValid; - TriState fEnabled; + skgpu::BlendEquation fEquation; + skgpu::BlendCoeff fSrcCoeff; + skgpu::BlendCoeff fDstCoeff; + SkPMColor4f fConstColor; + bool fConstColorValid; + TriState fEnabled; void invalidate() { - fEquation = kIllegal_GrBlendEquation; - fSrcCoeff = kIllegal_GrBlendCoeff; - fDstCoeff = kIllegal_GrBlendCoeff; + fEquation = skgpu::BlendEquation::kIllegal; + fSrcCoeff = skgpu::BlendCoeff::kIllegal; + fDstCoeff = skgpu::BlendCoeff::kIllegal; fConstColorValid = false; fEnabled = kUnknown_TriState; } diff --git a/third_party/skia/src/gpu/gl/GrGLGpuProgramCache.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLGpuProgramCache.cpp similarity index 94% rename from third_party/skia/src/gpu/gl/GrGLGpuProgramCache.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLGpuProgramCache.cpp index dbdac14e1c0b..460d90ed2cc5 100644 --- a/third_party/skia/src/gpu/gl/GrGLGpuProgramCache.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLGpuProgramCache.cpp @@ -7,15 +7,15 @@ #include -#include "src/gpu/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/gl/builders/GrGLProgramBuilder.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/gl/builders/GrGLProgramBuilder.h" struct GrGLGpu::ProgramCache::Entry { Entry(sk_sp program) diff --git a/third_party/skia/src/gpu/gl/GrGLInterfaceAutogen.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp similarity index 99% rename from third_party/skia/src/gpu/gl/GrGLInterfaceAutogen.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp index ec89c719481e..38c1aa818226 100644 --- a/third_party/skia/src/gpu/gl/GrGLInterfaceAutogen.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp @@ -11,7 +11,7 @@ #include "include/gpu/gl/GrGLExtensions.h" #include "include/gpu/gl/GrGLInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include @@ -125,6 +125,7 @@ bool GrGLInterface::validate() const { !fFunctions.fGenTextures || !fFunctions.fGetBufferParameteriv || !fFunctions.fGetError || + !fFunctions.fGetFloatv || !fFunctions.fGetIntegerv || !fFunctions.fGetProgramInfoLog || !fFunctions.fGetProgramiv || @@ -690,6 +691,7 @@ bool GrGLInterface::validate() const { if (!fFunctions.fBindSampler || !fFunctions.fDeleteSamplers || !fFunctions.fGenSamplers || + !fFunctions.fSamplerParameterf || !fFunctions.fSamplerParameteri || !fFunctions.fSamplerParameteriv) { RETURN_FALSE_INTERFACE; diff --git a/third_party/skia/src/gpu/gl/GrGLMakeNativeInterface_none.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp similarity index 78% rename from third_party/skia/src/gpu/gl/GrGLMakeNativeInterface_none.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp index d4ac8bcfe47c..c04571965c8c 100644 --- a/third_party/skia/src/gpu/gl/GrGLMakeNativeInterface_none.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp @@ -8,5 +8,3 @@ #include "include/gpu/gl/GrGLInterface.h" sk_sp GrGLMakeNativeInterface() { return nullptr; } - -const GrGLInterface* GrGLCreateNativeInterface() { return nullptr; } diff --git a/third_party/skia/src/gpu/gl/GrGLOpsRenderPass.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp similarity index 99% rename from third_party/skia/src/gpu/gl/GrGLOpsRenderPass.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp index 1c0f852d6a9c..10e9e71231a6 100644 --- a/third_party/skia/src/gpu/gl/GrGLOpsRenderPass.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLOpsRenderPass.h" +#include "src/gpu/ganesh/gl/GrGLOpsRenderPass.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRenderTarget.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRenderTarget.h" #ifdef SK_DEBUG #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #endif #define GL_CALL(X) GR_GL_CALL(fGpu->glInterface(), X) diff --git a/third_party/skia/src/gpu/gl/GrGLOpsRenderPass.h b/third_party/skia/src/gpu/ganesh/gl/GrGLOpsRenderPass.h similarity index 96% rename from third_party/skia/src/gpu/gl/GrGLOpsRenderPass.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLOpsRenderPass.h index 15fed212558b..474204f00822 100644 --- a/third_party/skia/src/gpu/gl/GrGLOpsRenderPass.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLOpsRenderPass.h @@ -8,11 +8,11 @@ #ifndef GrGLOpsRenderPass_DEFINED #define GrGLOpsRenderPass_DEFINED -#include "src/gpu/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLRenderTarget.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLRenderTarget.h" class GrGLGpu; class GrGLRenderTarget; diff --git a/third_party/skia/src/gpu/gl/GrGLProgram.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLProgram.cpp similarity index 94% rename from third_party/skia/src/gpu/gl/GrGLProgram.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLProgram.cpp index 678edeeabc22..d2ccfe6c2428 100644 --- a/third_party/skia/src/gpu/gl/GrGLProgram.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLProgram.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLProgram.h" - -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/gl/GrGLBuffer.h" -#include "src/gpu/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLProgram.h" + +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/gl/GrGLBuffer.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" #include "src/sksl/SkSLCompiler.h" #define GL_CALL(X) GR_GL_CALL(fGpu->glInterface(), X) diff --git a/third_party/skia/src/gpu/gl/GrGLProgram.h b/third_party/skia/src/gpu/ganesh/gl/GrGLProgram.h similarity index 94% rename from third_party/skia/src/gpu/gl/GrGLProgram.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLProgram.h index 1ee9160370e4..9f2fd95f833a 100644 --- a/third_party/skia/src/gpu/gl/GrGLProgram.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLProgram.h @@ -9,12 +9,12 @@ #ifndef GrGLProgram_DEFINED #define GrGLProgram_DEFINED -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/gl/GrGLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/gl/GrGLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" #include diff --git a/third_party/skia/src/gpu/gl/GrGLProgramDataManager.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLProgramDataManager.cpp similarity index 98% rename from third_party/skia/src/gpu/gl/GrGLProgramDataManager.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLProgramDataManager.cpp index f3fa7b78af69..39bbea14c10f 100644 --- a/third_party/skia/src/gpu/gl/GrGLProgramDataManager.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLProgramDataManager.cpp @@ -6,9 +6,9 @@ */ #include "include/core/SkMatrix.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" #define ASSERT_ARRAY_UPLOAD_IN_BOUNDS(UNI, COUNT) \ SkASSERT((COUNT) <= (UNI).fArrayCount || \ diff --git a/third_party/skia/src/gpu/gl/GrGLProgramDataManager.h b/third_party/skia/src/gpu/ganesh/gl/GrGLProgramDataManager.h similarity index 96% rename from third_party/skia/src/gpu/gl/GrGLProgramDataManager.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLProgramDataManager.h index 69701a218673..59375b1ce8d5 100644 --- a/third_party/skia/src/gpu/gl/GrGLProgramDataManager.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLProgramDataManager.h @@ -10,9 +10,9 @@ #include "include/gpu/gl/GrGLTypes.h" #include "src/core/SkTBlockList.h" -#include "src/gpu/GrShaderVar.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" #include "include/private/SkTArray.h" diff --git a/third_party/skia/src/gpu/gl/GrGLRenderTarget.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLRenderTarget.cpp similarity index 95% rename from third_party/skia/src/gpu/gl/GrGLRenderTarget.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLRenderTarget.cpp index 21f6d4b1f157..262906493125 100644 --- a/third_party/skia/src/gpu/gl/GrGLRenderTarget.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLRenderTarget.cpp @@ -5,16 +5,16 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLRenderTarget.h" +#include "src/gpu/ganesh/gl/GrGLRenderTarget.h" #include "include/core/SkTraceMemoryDump.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #define GPUGL static_cast(this->getGpu()) #define GL_CALL(X) GR_GL_CALL(GPUGL->glInterface(), X) @@ -27,9 +27,10 @@ GrGLRenderTarget::GrGLRenderTarget(GrGLGpu* gpu, GrGLFormat format, int sampleCount, const IDs& ids, - sk_sp stencil) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , INHERITED(gpu, dimensions, sampleCount, GrProtected::kNo, std::move(stencil)) { + sk_sp stencil, + std::string_view label) + : GrSurface(gpu, dimensions, GrProtected::kNo, label) + , INHERITED(gpu, dimensions, sampleCount, GrProtected::kNo, label, std::move(stencil)) { this->init(format, ids); this->setFlags(gpu->glCaps(), ids); this->registerWithCacheWrapped(GrWrapCacheable::kNo); @@ -39,9 +40,10 @@ GrGLRenderTarget::GrGLRenderTarget(GrGLGpu* gpu, const SkISize& dimensions, GrGLFormat format, int sampleCount, - const IDs& ids) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , INHERITED(gpu, dimensions, sampleCount, GrProtected::kNo) { + const IDs& ids, + std::string_view label) + : GrSurface(gpu, dimensions, GrProtected::kNo, label) + , INHERITED(gpu, dimensions, sampleCount, GrProtected::kNo, label) { this->init(format, ids); this->setFlags(gpu->glCaps(), ids); } @@ -102,8 +104,8 @@ sk_sp GrGLRenderTarget::MakeWrapped(GrGLGpu* gpu, sampleCount, sFmt); } - return sk_sp( - new GrGLRenderTarget(gpu, dimensions, format, sampleCount, idDesc, std::move(sb))); + return sk_sp(new GrGLRenderTarget( + gpu, dimensions, format, sampleCount, idDesc, std::move(sb), /*label=*/{})); } GrBackendRenderTarget GrGLRenderTarget::getBackendRenderTarget() const { diff --git a/third_party/skia/src/gpu/gl/GrGLRenderTarget.h b/third_party/skia/src/gpu/ganesh/gl/GrGLRenderTarget.h similarity index 91% rename from third_party/skia/src/gpu/gl/GrGLRenderTarget.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLRenderTarget.h index ad78bbfc9c83..36474b252ecd 100644 --- a/third_party/skia/src/gpu/gl/GrGLRenderTarget.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLRenderTarget.h @@ -11,8 +11,8 @@ #include "include/core/SkScalar.h" #include "include/gpu/GrBackendSurface.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/gl/GrGLDefines.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" class GrGLCaps; class GrGLGpu; @@ -98,7 +98,8 @@ class GrGLRenderTarget : public GrRenderTarget { const SkISize&, GrGLFormat, int sampleCount, - const IDs&); + const IDs&, + std::string_view label); void init(GrGLFormat, const IDs&); @@ -112,9 +113,13 @@ class GrGLRenderTarget : public GrRenderTarget { private: // Constructor for instances wrapping backend objects. - GrGLRenderTarget( - GrGLGpu*, const SkISize&, GrGLFormat, int sampleCount, const IDs&, - sk_sp stencil); + GrGLRenderTarget(GrGLGpu*, + const SkISize&, + GrGLFormat, + int sampleCount, + const IDs&, + sk_sp stencil, + std::string_view label); void setFlags(const GrGLCaps&, const IDs&); diff --git a/third_party/skia/src/gpu/gl/GrGLSemaphore.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLSemaphore.cpp similarity index 81% rename from third_party/skia/src/gpu/gl/GrGLSemaphore.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLSemaphore.cpp index 32fd6367950a..a6346e9f7909 100644 --- a/third_party/skia/src/gpu/gl/GrGLSemaphore.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLSemaphore.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLSemaphore.h" +#include "src/gpu/ganesh/gl/GrGLSemaphore.h" -#include "src/gpu/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" GrGLSemaphore::GrGLSemaphore(GrGLGpu* gpu, bool isOwned) : fGpu(gpu), fSync(nullptr), fIsOwned(isOwned) { diff --git a/third_party/skia/src/gpu/gl/GrGLSemaphore.h b/third_party/skia/src/gpu/ganesh/gl/GrGLSemaphore.h similarity index 93% rename from third_party/skia/src/gpu/gl/GrGLSemaphore.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLSemaphore.h index bbfcce6ee103..00386534edc1 100644 --- a/third_party/skia/src/gpu/gl/GrGLSemaphore.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLSemaphore.h @@ -9,8 +9,8 @@ #define GrGLSemaphore_DEFINED #include "include/gpu/GrBackendSemaphore.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrSemaphore.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrSemaphore.h" class GrGLGpu; diff --git a/third_party/skia/src/gpu/gl/GrGLTexture.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLTexture.cpp similarity index 77% rename from third_party/skia/src/gpu/gl/GrGLTexture.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLTexture.cpp index 7b6ae7bfe987..17fd7a0451c8 100644 --- a/third_party/skia/src/gpu/gl/GrGLTexture.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLTexture.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLTexture.h" +#include "src/gpu/ganesh/gl/GrGLTexture.h" #include "include/core/SkTraceMemoryDump.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/gl/GrGLGpu.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" #define GPUGL static_cast(this->getGpu()) #define GL_CALL(X) GR_GL_CALL(GPUGL->glInterface(), X) @@ -44,11 +44,18 @@ static inline GrGLenum target_from_texture_type(GrTextureType type) { } // Because this class is virtually derived from GrSurface we must explicitly call its constructor. -GrGLTexture::GrGLTexture(GrGLGpu* gpu, SkBudgeted budgeted, const Desc& desc, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, desc.fSize, GrProtected::kNo) - , INHERITED(gpu, desc.fSize, GrProtected::kNo, - TextureTypeFromTarget(desc.fTarget), mipmapStatus) +GrGLTexture::GrGLTexture(GrGLGpu* gpu, + SkBudgeted budgeted, + const Desc& desc, + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, desc.fSize, GrProtected::kNo, label) + , INHERITED(gpu, + desc.fSize, + GrProtected::kNo, + TextureTypeFromTarget(desc.fTarget), + mipmapStatus, + label) , fParameters(sk_make_sp()) { this->init(desc); this->registerWithCache(budgeted); @@ -59,10 +66,14 @@ GrGLTexture::GrGLTexture(GrGLGpu* gpu, SkBudgeted budgeted, const Desc& desc, GrGLTexture::GrGLTexture(GrGLGpu* gpu, const Desc& desc, GrMipmapStatus mipmapStatus, sk_sp parameters, GrWrapCacheable cacheable, - GrIOType ioType) - : GrSurface(gpu, desc.fSize, GrProtected::kNo) - , INHERITED(gpu, desc.fSize, GrProtected::kNo, - TextureTypeFromTarget(desc.fTarget), mipmapStatus) + GrIOType ioType, std::string_view label) + : GrSurface(gpu, desc.fSize, GrProtected::kNo, label) + , INHERITED(gpu, + desc.fSize, + GrProtected::kNo, + TextureTypeFromTarget(desc.fTarget), + mipmapStatus, + label) , fParameters(std::move(parameters)) { SkASSERT(fParameters); this->init(desc); @@ -72,11 +83,18 @@ GrGLTexture::GrGLTexture(GrGLGpu* gpu, const Desc& desc, GrMipmapStatus mipmapSt } } -GrGLTexture::GrGLTexture(GrGLGpu* gpu, const Desc& desc, sk_sp parameters, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, desc.fSize, GrProtected::kNo) - , INHERITED(gpu, desc.fSize, GrProtected::kNo, - TextureTypeFromTarget(desc.fTarget), mipmapStatus) { +GrGLTexture::GrGLTexture(GrGLGpu* gpu, + const Desc& desc, + sk_sp parameters, + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, desc.fSize, GrProtected::kNo, label) + , INHERITED(gpu, + desc.fSize, + GrProtected::kNo, + TextureTypeFromTarget(desc.fTarget), + mipmapStatus, + label) { SkASSERT(parameters || desc.fOwnership == GrBackendObjectOwnership::kOwned); fParameters = parameters ? std::move(parameters) : sk_make_sp(); this->init(desc); @@ -129,8 +147,8 @@ sk_sp GrGLTexture::MakeWrapped(GrGLGpu* gpu, sk_sp parameters, GrWrapCacheable cacheable, GrIOType ioType) { - return sk_sp( - new GrGLTexture(gpu, desc, mipmapStatus, std::move(parameters), cacheable, ioType)); + return sk_sp(new GrGLTexture( + gpu, desc, mipmapStatus, std::move(parameters), cacheable, ioType, /*label=*/{})); } bool GrGLTexture::onStealBackendTexture(GrBackendTexture* backendTexture, diff --git a/third_party/skia/src/gpu/gl/GrGLTexture.h b/third_party/skia/src/gpu/ganesh/gl/GrGLTexture.h similarity index 84% rename from third_party/skia/src/gpu/gl/GrGLTexture.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLTexture.h index f65a19ea5492..18e5462e415f 100644 --- a/third_party/skia/src/gpu/gl/GrGLTexture.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLTexture.h @@ -9,10 +9,10 @@ #ifndef GrGLTexture_DEFINED #define GrGLTexture_DEFINED -#include "include/private/GrGLTypesPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "include/private/gpu/ganesh/GrGLTypesPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" class GrGLGpu; @@ -28,7 +28,7 @@ class GrGLTexture : public GrTexture { static GrTextureType TextureTypeFromTarget(GrGLenum textureTarget); - GrGLTexture(GrGLGpu*, SkBudgeted, const Desc&, GrMipmapStatus); + GrGLTexture(GrGLGpu*, SkBudgeted, const Desc&, GrMipmapStatus, std::string_view label); ~GrGLTexture() override {} @@ -60,7 +60,11 @@ class GrGLTexture : public GrTexture { protected: // Constructor for subclasses. - GrGLTexture(GrGLGpu*, const Desc&, sk_sp, GrMipmapStatus); + GrGLTexture(GrGLGpu*, + const Desc&, + sk_sp, + GrMipmapStatus, + std::string_view label); // Constructor for instances wrapping backend objects. GrGLTexture(GrGLGpu*, @@ -68,7 +72,8 @@ class GrGLTexture : public GrTexture { GrMipmapStatus, sk_sp, GrWrapCacheable, - GrIOType); + GrIOType, + std::string_view label); void init(const Desc&); diff --git a/third_party/skia/src/gpu/gl/GrGLTextureRenderTarget.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLTextureRenderTarget.cpp similarity index 70% rename from third_party/skia/src/gpu/gl/GrGLTextureRenderTarget.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLTextureRenderTarget.cpp index e3e8abf75599..e0a0946fc2e0 100644 --- a/third_party/skia/src/gpu/gl/GrGLTextureRenderTarget.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLTextureRenderTarget.cpp @@ -5,23 +5,24 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLTextureRenderTarget.h" +#include "src/gpu/ganesh/gl/GrGLTextureRenderTarget.h" #include "include/core/SkTraceMemoryDump.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/gl/GrGLGpu.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" GrGLTextureRenderTarget::GrGLTextureRenderTarget(GrGLGpu* gpu, SkBudgeted budgeted, int sampleCount, const GrGLTexture::Desc& texDesc, const GrGLRenderTarget::IDs& rtIDs, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, texDesc.fSize, GrProtected::kNo) - , GrGLTexture(gpu, texDesc, nullptr, mipmapStatus) - , GrGLRenderTarget(gpu, texDesc.fSize, texDesc.fFormat, sampleCount, rtIDs) { + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, texDesc.fSize, GrProtected::kNo, label) + , GrGLTexture(gpu, texDesc, nullptr, mipmapStatus, label) + , GrGLRenderTarget(gpu, texDesc.fSize, texDesc.fFormat, sampleCount, rtIDs, label) { this->registerWithCache(budgeted); } @@ -31,11 +32,11 @@ GrGLTextureRenderTarget::GrGLTextureRenderTarget(GrGLGpu* gpu, sk_sp parameters, const GrGLRenderTarget::IDs& rtIDs, GrWrapCacheable cacheable, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, texDesc.fSize, GrProtected::kNo) - , GrGLTexture(gpu, texDesc, std::move(parameters), mipmapStatus) - , GrGLRenderTarget(gpu, texDesc.fSize, texDesc.fFormat, sampleCount, - rtIDs) { + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, texDesc.fSize, GrProtected::kNo, label) + , GrGLTexture(gpu, texDesc, std::move(parameters), mipmapStatus, label) + , GrGLRenderTarget(gpu, texDesc.fSize, texDesc.fFormat, sampleCount, rtIDs, label) { this->registerWithCacheWrapped(cacheable); } @@ -68,8 +69,14 @@ sk_sp GrGLTextureRenderTarget::MakeWrapped( const GrGLRenderTarget::IDs& rtIDs, GrWrapCacheable cacheable, GrMipmapStatus mipmapStatus) { - return sk_sp(new GrGLTextureRenderTarget( - gpu, sampleCount, texDesc, std::move(parameters), rtIDs, cacheable, mipmapStatus)); + return sk_sp(new GrGLTextureRenderTarget(gpu, + sampleCount, + texDesc, + std::move(parameters), + rtIDs, + cacheable, + mipmapStatus, + /*label=*/{})); } size_t GrGLTextureRenderTarget::onGpuMemorySize() const { diff --git a/third_party/skia/src/gpu/gl/GrGLTextureRenderTarget.h b/third_party/skia/src/gpu/ganesh/gl/GrGLTextureRenderTarget.h similarity index 89% rename from third_party/skia/src/gpu/gl/GrGLTextureRenderTarget.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLTextureRenderTarget.h index bf7d604357e0..c1925fa08350 100644 --- a/third_party/skia/src/gpu/gl/GrGLTextureRenderTarget.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLTextureRenderTarget.h @@ -9,8 +9,8 @@ #ifndef GrGLTextureRenderTarget_DEFINED #define GrGLTextureRenderTarget_DEFINED -#include "src/gpu/gl/GrGLRenderTarget.h" -#include "src/gpu/gl/GrGLTexture.h" +#include "src/gpu/ganesh/gl/GrGLRenderTarget.h" +#include "src/gpu/ganesh/gl/GrGLTexture.h" class GrGLGpu; @@ -29,7 +29,8 @@ class GrGLTextureRenderTarget : public GrGLTexture, public GrGLRenderTarget { int sampleCount, const GrGLTexture::Desc& texDesc, const GrGLRenderTarget::IDs&, - GrMipmapStatus); + GrMipmapStatus, + std::string_view label); bool canAttemptStencilAttachment(bool useMultisampleFBO) const override; @@ -67,7 +68,8 @@ class GrGLTextureRenderTarget : public GrGLTexture, public GrGLRenderTarget { sk_sp parameters, const GrGLRenderTarget::IDs& ids, GrWrapCacheable, - GrMipmapStatus); + GrMipmapStatus, + std::string_view label); size_t onGpuMemorySize() const override; }; diff --git a/third_party/skia/src/gpu/gl/GrGLTypesPriv.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLTypesPriv.cpp similarity index 94% rename from third_party/skia/src/gpu/gl/GrGLTypesPriv.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLTypesPriv.cpp index 6708d92bd140..95d671277020 100644 --- a/third_party/skia/src/gpu/gl/GrGLTypesPriv.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLTypesPriv.cpp @@ -6,9 +6,9 @@ */ #include "include/core/SkScalar.h" -#include "include/private/GrGLTypesPriv.h" +#include "include/private/gpu/ganesh/GrGLTypesPriv.h" #include "src/gpu/Swizzle.h" -#include "src/gpu/gl/GrGLDefines.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" GrGLTextureParameters::SamplerOverriddenState::SamplerOverriddenState() // These are the OpenGL defaults. @@ -18,6 +18,7 @@ GrGLTextureParameters::SamplerOverriddenState::SamplerOverriddenState() , fWrapT(GR_GL_REPEAT) , fMinLOD(-1000.f) , fMaxLOD(1000.f) + , fMaxAniso(1.f) , fBorderColorInvalid(false) {} void GrGLTextureParameters::SamplerOverriddenState::invalidate() { @@ -27,6 +28,7 @@ void GrGLTextureParameters::SamplerOverriddenState::invalidate() { fWrapT = ~0U; fMinLOD = SK_ScalarNaN; fMaxLOD = SK_ScalarNaN; + fMaxAniso = -1.f; fBorderColorInvalid = true; } diff --git a/third_party/skia/src/gpu/gl/GrGLUniformHandler.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLUniformHandler.cpp similarity index 95% rename from third_party/skia/src/gpu/gl/GrGLUniformHandler.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLUniformHandler.cpp index 7dcf69aed4af..67bdc5b94f06 100644 --- a/third_party/skia/src/gpu/gl/GrGLUniformHandler.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLUniformHandler.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLUniformHandler.h" +#include "src/gpu/ganesh/gl/GrGLUniformHandler.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrUtil.h" -#include "src/gpu/gl/GrGLCaps.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/builders/GrGLProgramBuilder.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrUtil.h" +#include "src/gpu/ganesh/gl/GrGLCaps.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/builders/GrGLProgramBuilder.h" #include "src/sksl/SkSLCompiler.h" #define GL_CALL(X) GR_GL_CALL(this->glGpu()->glInterface(), X) @@ -26,7 +26,7 @@ bool valid_name(const char* name) { } GrGLSLUniformHandler::UniformHandle GrGLUniformHandler::internalAddUniformArray( - const GrFragmentProcessor* owner, + const GrProcessor* owner, uint32_t visibility, SkSLType type, const char* name, diff --git a/third_party/skia/src/gpu/gl/GrGLUniformHandler.h b/third_party/skia/src/gpu/ganesh/gl/GrGLUniformHandler.h similarity index 93% rename from third_party/skia/src/gpu/gl/GrGLUniformHandler.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLUniformHandler.h index 1cafcfcb5242..9622c7ab84ca 100644 --- a/third_party/skia/src/gpu/gl/GrGLUniformHandler.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLUniformHandler.h @@ -8,8 +8,8 @@ #ifndef GrGLUniformHandler_DEFINED #define GrGLUniformHandler_DEFINED -#include "src/gpu/gl/GrGLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/gl/GrGLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" #include @@ -44,7 +44,7 @@ class GrGLUniformHandler : public GrGLSLUniformHandler { , fUniforms(kUniformsPerBlock) , fSamplers(kUniformsPerBlock) {} - UniformHandle internalAddUniformArray(const GrFragmentProcessor* owner, + UniformHandle internalAddUniformArray(const GrProcessor* owner, uint32_t visibility, SkSLType type, const char* name, diff --git a/third_party/skia/src/gpu/gl/GrGLUtil.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLUtil.cpp similarity index 99% rename from third_party/skia/src/gpu/gl/GrGLUtil.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLUtil.cpp index 03996aad5e28..8369dfc3a803 100644 --- a/third_party/skia/src/gpu/gl/GrGLUtil.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLUtil.cpp @@ -7,9 +7,9 @@ #include "include/core/SkMatrix.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include /////////////////////////////////////////////////////////////////////////////// @@ -793,4 +793,3 @@ bool GrGLFormatIsCompressed(GrGLFormat format) { } SkUNREACHABLE; } - diff --git a/third_party/skia/src/gpu/gl/GrGLUtil.h b/third_party/skia/src/gpu/ganesh/gl/GrGLUtil.h similarity index 98% rename from third_party/skia/src/gpu/gl/GrGLUtil.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLUtil.h index 9907b3fec530..f8a33c2b5079 100644 --- a/third_party/skia/src/gpu/gl/GrGLUtil.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLUtil.h @@ -9,11 +9,11 @@ #define GrGLUtil_DEFINED #include "include/gpu/gl/GrGLInterface.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkImageInfoPriv.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/gl/GrGLDefines.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" class SkMatrix; @@ -245,6 +245,12 @@ enum class GrGLANGLEBackend { GR_GL_CALL(gl, GetIntegerv(e, p)); \ } while (0) +#define GR_GL_GetFloatv(gl, e, p) \ + do { \ + *(p) = GR_GL_INIT_ZERO; \ + GR_GL_CALL(gl, GetFloatv(e, p)); \ + } while (0) + #define GR_GL_GetFramebufferAttachmentParameteriv(gl, t, a, pname, p) \ do { \ *(p) = GR_GL_INIT_ZERO; \ diff --git a/third_party/skia/src/gpu/gl/GrGLVaryingHandler.h b/third_party/skia/src/gpu/ganesh/gl/GrGLVaryingHandler.h similarity index 76% rename from third_party/skia/src/gpu/gl/GrGLVaryingHandler.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLVaryingHandler.h index 3e98c0ce776c..1d0a04feaef8 100644 --- a/third_party/skia/src/gpu/gl/GrGLVaryingHandler.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLVaryingHandler.h @@ -8,9 +8,9 @@ #ifndef GrGLVaryingHandler_DEFINED #define GrGLVaryingHandler_DEFINED -#include "include/private/GrTypesPriv.h" -#include "src/gpu/gl/GrGLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLVarying.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/gl/GrGLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" class GrGLVaryingHandler : public GrGLSLVaryingHandler { public: diff --git a/third_party/skia/src/gpu/gl/GrGLVertexArray.cpp b/third_party/skia/src/gpu/ganesh/gl/GrGLVertexArray.cpp similarity index 98% rename from third_party/skia/src/gpu/gl/GrGLVertexArray.cpp rename to third_party/skia/src/gpu/ganesh/gl/GrGLVertexArray.cpp index bbe74251e00b..be437224c052 100644 --- a/third_party/skia/src/gpu/gl/GrGLVertexArray.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLVertexArray.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/GrCpuBuffer.h" -#include "src/gpu/gl/GrGLBuffer.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLVertexArray.h" +#include "src/gpu/ganesh/GrCpuBuffer.h" +#include "src/gpu/ganesh/gl/GrGLBuffer.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLVertexArray.h" struct AttribLayout { bool fNormalized; // Only used by floating point types. diff --git a/third_party/skia/src/gpu/gl/GrGLVertexArray.h b/third_party/skia/src/gpu/ganesh/gl/GrGLVertexArray.h similarity index 96% rename from third_party/skia/src/gpu/gl/GrGLVertexArray.h rename to third_party/skia/src/gpu/ganesh/gl/GrGLVertexArray.h index febc679310e0..5f16bb40fde1 100644 --- a/third_party/skia/src/gpu/gl/GrGLVertexArray.h +++ b/third_party/skia/src/gpu/ganesh/gl/GrGLVertexArray.h @@ -9,10 +9,10 @@ #define GrGLVertexArray_DEFINED #include "include/gpu/gl/GrGLTypes.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkTArray.h" -#include "src/gpu/GrGpuResource.h" -#include "src/gpu/gl/GrGLDefines.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrGpuResource.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" class GrBuffer; class GrGLGpu; diff --git a/third_party/skia/src/gpu/gl/android/BUILD.bazel b/third_party/skia/src/gpu/ganesh/gl/android/BUILD.bazel similarity index 60% rename from third_party/skia/src/gpu/gl/android/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/gl/android/BUILD.bazel index 9a088f226fe0..ee680a812b9f 100644 --- a/third_party/skia/src/gpu/gl/android/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/gl/android/BUILD.bazel @@ -1,11 +1,13 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLMakeNativeInterface_android_src", srcs = ["GrGLMakeNativeInterface_android.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//src/gpu/gl/egl:GrGLMakeEGLInterface_src", - "//src/gpu/gl/egl:GrGLMakeNativeInterface_egl_src", + "//src/gpu/ganesh/gl/egl:GrGLMakeEGLInterface_src", + "//src/gpu/ganesh/gl/egl:GrGLMakeNativeInterface_egl_src", ], ) diff --git a/third_party/skia/src/gpu/gl/android/GrGLMakeNativeInterface_android.cpp b/third_party/skia/src/gpu/ganesh/gl/android/GrGLMakeNativeInterface_android.cpp similarity index 53% rename from third_party/skia/src/gpu/gl/android/GrGLMakeNativeInterface_android.cpp rename to third_party/skia/src/gpu/ganesh/gl/android/GrGLMakeNativeInterface_android.cpp index 50c0113dd496..484558ebf987 100644 --- a/third_party/skia/src/gpu/gl/android/GrGLMakeNativeInterface_android.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/android/GrGLMakeNativeInterface_android.cpp @@ -4,5 +4,5 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ -#include "src/gpu/gl/egl/GrGLMakeEGLInterface.cpp" -#include "src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp" +#include "src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp" +#include "src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp" diff --git a/third_party/skia/src/gpu/gl/builders/BUILD.bazel b/third_party/skia/src/gpu/ganesh/gl/builders/BUILD.bazel similarity index 56% rename from third_party/skia/src/gpu/gl/builders/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/gl/builders/BUILD.bazel index 82deeecde405..f9520022d951 100644 --- a/third_party/skia/src/gpu/gl/builders/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/gl/builders/BUILD.bazel @@ -1,17 +1,20 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLProgramBuilder_hdr", hdrs = ["GrGLProgramBuilder.h"], visibility = ["//:__subpackages__"], deps = [ - "//src/gpu:GrPipeline_hdr", - "//src/gpu/gl:GrGLProgramDataManager_hdr", - "//src/gpu/gl:GrGLProgram_hdr", - "//src/gpu/gl:GrGLUniformHandler_hdr", - "//src/gpu/gl:GrGLVaryingHandler_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", + "//include/gpu:GrContextOptions_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh/gl:GrGLProgramDataManager_hdr", + "//src/gpu/ganesh/gl:GrGLProgram_hdr", + "//src/gpu/ganesh/gl:GrGLUniformHandler_hdr", + "//src/gpu/ganesh/gl:GrGLVaryingHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", "//src/sksl/ir:SkSLProgram_hdr", ], ) @@ -29,18 +32,18 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkTraceEvent_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrAutoLocaleSetter_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrPersistentCacheUtils_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrSwizzle_hdr", - "//src/gpu:GrXferProcessor_hdr", - "//src/gpu/gl:GrGLGpu_hdr", - "//src/gpu/gl:GrGLProgram_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu:Swizzle_hdr", + "//src/gpu/ganesh:GrAutoLocaleSetter_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrPersistentCacheUtils_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/gl:GrGLGpu_hdr", + "//src/gpu/ganesh/gl:GrGLProgram_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", "//src/utils:SkShaderUtils_hdr", ], ) @@ -52,8 +55,8 @@ generated_cc_atom( deps = [ "//include/core:SkTypes_hdr", "//include/gpu:GrContextOptions_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu/gl:GrGLContext_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh/gl:GrGLContext_hdr", "//src/sksl/codegen:SkSLGLSLCodeGenerator_hdr", ], ) @@ -66,7 +69,7 @@ generated_cc_atom( ":GrGLShaderStringBuilder_hdr", "//src/core:SkAutoMalloc_hdr", "//src/core:SkTraceEvent_hdr", - "//src/gpu/gl:GrGLGpu_hdr", + "//src/gpu/ganesh/gl:GrGLGpu_hdr", "//src/sksl:SkSLCompiler_hdr", "//src/sksl/codegen:SkSLGLSLCodeGenerator_hdr", "//src/sksl/ir:SkSLProgram_hdr", diff --git a/third_party/skia/src/gpu/gl/builders/GrGLProgramBuilder.cpp b/third_party/skia/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.cpp similarity index 96% rename from third_party/skia/src/gpu/gl/builders/GrGLProgramBuilder.cpp rename to third_party/skia/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.cpp index 7b16a4137551..d82c85c1adeb 100644 --- a/third_party/skia/src/gpu/gl/builders/GrGLProgramBuilder.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/builders/GrGLProgramBuilder.h" +#include "src/gpu/ganesh/gl/builders/GrGLProgramBuilder.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkATrace.h" @@ -13,23 +13,23 @@ #include "src/core/SkReadBuffer.h" #include "src/core/SkTraceEvent.h" #include "src/core/SkWriteBuffer.h" -#include "src/gpu/GrAutoLocaleSetter.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrPersistentCacheUtils.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrXferProcessor.h" #include "src/gpu/Swizzle.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLProgram.h" -#include "src/gpu/gl/builders/GrGLProgramBuilder.h" +#include "src/gpu/ganesh/GrAutoLocaleSetter.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrPersistentCacheUtils.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLProgram.h" +#include "src/gpu/ganesh/gl/builders/GrGLProgramBuilder.h" #include "src/utils/SkShaderUtils.h" #include -#include "src/gpu/gl/builders/GrGLShaderStringBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" #define GL_CALL(X) GR_GL_CALL(this->gpu()->glInterface(), X) #define GL_CALL_RET(R, X) GR_GL_CALL_RET(this->gpu()->glInterface(), R, X) @@ -230,8 +230,7 @@ sk_sp GrGLProgramBuilder::finalize(const GrGLPrecompiledProgram* pr auto errorHandler = this->gpu()->getContext()->priv().getShaderErrorHandler(); const GrGeometryProcessor& geomProc = this->geometryProcessor(); SkSL::Program::Settings settings; - settings.fSharpenTextures = - this->gpu()->getContext()->priv().options().fSharpenMipmappedTextures; + settings.fSharpenTextures = true; settings.fFragColorIsInOut = this->fragColorIsInOut(); SkSL::Program::Inputs inputs; @@ -530,7 +529,7 @@ bool GrGLProgramBuilder::PrecompileProgram(GrDirectContext* dContext, auto errorHandler = dContext->priv().getShaderErrorHandler(); SkSL::Program::Settings settings; - settings.fSharpenTextures = dContext->priv().options().fSharpenMipmappedTextures; + settings.fSharpenTextures = true; GrPersistentCacheUtils::ShaderMetadata meta; meta.fSettings = &settings; diff --git a/third_party/skia/src/gpu/gl/builders/GrGLProgramBuilder.h b/third_party/skia/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.h similarity index 90% rename from third_party/skia/src/gpu/gl/builders/GrGLProgramBuilder.h rename to third_party/skia/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.h index 81bd71c342a3..fcdb5d4a6061 100644 --- a/third_party/skia/src/gpu/gl/builders/GrGLProgramBuilder.h +++ b/third_party/skia/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.h @@ -8,13 +8,14 @@ #ifndef GrGLProgramBuilder_DEFINED #define GrGLProgramBuilder_DEFINED -#include "src/gpu/GrPipeline.h" -#include "src/gpu/gl/GrGLProgram.h" -#include "src/gpu/gl/GrGLProgramDataManager.h" -#include "src/gpu/gl/GrGLUniformHandler.h" -#include "src/gpu/gl/GrGLVaryingHandler.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" +#include "include/gpu/GrContextOptions.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/gl/GrGLProgram.h" +#include "src/gpu/ganesh/gl/GrGLProgramDataManager.h" +#include "src/gpu/ganesh/gl/GrGLUniformHandler.h" +#include "src/gpu/ganesh/gl/GrGLVaryingHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" #include "src/sksl/ir/SkSLProgram.h" class GrFragmentProcessor; diff --git a/third_party/skia/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp b/third_party/skia/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp similarity index 97% rename from third_party/skia/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp rename to third_party/skia/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp index 515cc3085f1a..a275cd9ee9cb 100644 --- a/third_party/skia/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp @@ -7,8 +7,8 @@ #include "src/core/SkAutoMalloc.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/builders/GrGLShaderStringBuilder.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/codegen/SkSLGLSLCodeGenerator.h" #include "src/sksl/ir/SkSLProgram.h" diff --git a/third_party/skia/src/gpu/gl/builders/GrGLShaderStringBuilder.h b/third_party/skia/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h similarity index 94% rename from third_party/skia/src/gpu/gl/builders/GrGLShaderStringBuilder.h rename to third_party/skia/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h index 275236b897dc..73e637fe1ca3 100644 --- a/third_party/skia/src/gpu/gl/builders/GrGLShaderStringBuilder.h +++ b/third_party/skia/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h @@ -10,8 +10,8 @@ #include "include/core/SkTypes.h" #include "include/gpu/GrContextOptions.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/gl/GrGLContext.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/gl/GrGLContext.h" #include "src/sksl/codegen/SkSLGLSLCodeGenerator.h" std::unique_ptr GrSkSLtoGLSL(const GrGLGpu* gpu, diff --git a/third_party/skia/src/gpu/gl/egl/BUILD.bazel b/third_party/skia/src/gpu/ganesh/gl/egl/BUILD.bazel similarity index 89% rename from third_party/skia/src/gpu/gl/egl/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/gl/egl/BUILD.bazel index 573ca142a694..39237e4fa5d9 100644 --- a/third_party/skia/src/gpu/gl/egl/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/gl/egl/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLMakeEGLInterface_src", srcs = ["GrGLMakeEGLInterface.cpp"], @@ -7,7 +9,7 @@ generated_cc_atom( deps = [ "//include/gpu/gl:GrGLAssembleInterface_hdr", "//include/gpu/gl:GrGLInterface_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", ], ) diff --git a/third_party/skia/src/gpu/gl/egl/GrGLMakeEGLInterface.cpp b/third_party/skia/src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp similarity index 98% rename from third_party/skia/src/gpu/gl/egl/GrGLMakeEGLInterface.cpp rename to third_party/skia/src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp index cc5fe7623bb4..78225b46101b 100644 --- a/third_party/skia/src/gpu/gl/egl/GrGLMakeEGLInterface.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/egl/GrGLMakeEGLInterface.cpp @@ -6,7 +6,7 @@ */ #include "include/gpu/gl/GrGLAssembleInterface.h" #include "include/gpu/gl/GrGLInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include #ifndef GL_GLEXT_PROTOTYPES diff --git a/third_party/skia/src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp b/third_party/skia/src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp similarity index 76% rename from third_party/skia/src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp rename to third_party/skia/src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp index b1a97d930877..5665d959a506 100644 --- a/third_party/skia/src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/egl/GrGLMakeNativeInterface_egl.cpp @@ -9,5 +9,3 @@ #include "include/gpu/gl/egl/GrGLMakeEGLInterface.h" sk_sp GrGLMakeNativeInterface() { return GrGLMakeEGLInterface(); } - -const GrGLInterface* GrGLCreateNativeInterface() { return GrGLMakeNativeInterface().release(); } diff --git a/third_party/skia/src/gpu/gl/glfw/BUILD.bazel b/third_party/skia/src/gpu/ganesh/gl/glfw/BUILD.bazel similarity index 83% rename from third_party/skia/src/gpu/gl/glfw/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/gl/glfw/BUILD.bazel index 13ae7a457eb5..9213a9c36e64 100644 --- a/third_party/skia/src/gpu/gl/glfw/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/gl/glfw/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLMakeNativeInterface_glfw_src", srcs = ["GrGLMakeNativeInterface_glfw.cpp"], @@ -7,6 +9,6 @@ generated_cc_atom( deps = [ "//include/gpu/gl:GrGLAssembleInterface_hdr", "//include/gpu/gl:GrGLInterface_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", ], ) diff --git a/third_party/skia/src/gpu/gl/glfw/GrGLMakeNativeInterface_glfw.cpp b/third_party/skia/src/gpu/ganesh/gl/glfw/GrGLMakeNativeInterface_glfw.cpp similarity index 82% rename from third_party/skia/src/gpu/gl/glfw/GrGLMakeNativeInterface_glfw.cpp rename to third_party/skia/src/gpu/ganesh/gl/glfw/GrGLMakeNativeInterface_glfw.cpp index a2579688d86f..dd6c57a9f7a6 100644 --- a/third_party/skia/src/gpu/gl/glfw/GrGLMakeNativeInterface_glfw.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/glfw/GrGLMakeNativeInterface_glfw.cpp @@ -8,7 +8,7 @@ #include "include/gpu/gl/GrGLAssembleInterface.h" #include "include/gpu/gl/GrGLInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include @@ -25,5 +25,3 @@ sk_sp GrGLMakeNativeInterface() { return GrGLMakeAssembledInterface(nullptr, glfw_get); } - -const GrGLInterface* GrGLCreateNativeInterface() { return GrGLMakeNativeInterface().release(); } diff --git a/third_party/skia/src/gpu/gl/glx/BUILD.bazel b/third_party/skia/src/gpu/ganesh/gl/glx/BUILD.bazel similarity index 89% rename from third_party/skia/src/gpu/gl/glx/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/gl/glx/BUILD.bazel index 81d0c6a69f8f..37923d5a36e9 100644 --- a/third_party/skia/src/gpu/gl/glx/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/gl/glx/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLMakeGLXInterface_src", srcs = ["GrGLMakeGLXInterface.cpp"], @@ -7,7 +9,7 @@ generated_cc_atom( deps = [ "//include/gpu/gl:GrGLAssembleInterface_hdr", "//include/gpu/gl:GrGLInterface_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", ], ) diff --git a/third_party/skia/src/gpu/gl/glx/GrGLMakeGLXInterface.cpp b/third_party/skia/src/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.cpp similarity index 96% rename from third_party/skia/src/gpu/gl/glx/GrGLMakeGLXInterface.cpp rename to third_party/skia/src/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.cpp index 8d2830440166..2b2d36488629 100644 --- a/third_party/skia/src/gpu/gl/glx/GrGLMakeGLXInterface.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.cpp @@ -7,7 +7,7 @@ #include "include/gpu/gl/GrGLAssembleInterface.h" #include "include/gpu/gl/GrGLInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" // Define this to get a prototype for glXGetProcAddress on some systems #define GLX_GLXEXT_PROTOTYPES 1 diff --git a/third_party/skia/src/gpu/gl/glx/GrGLMakeNativeInterface_glx.cpp b/third_party/skia/src/gpu/ganesh/gl/glx/GrGLMakeNativeInterface_glx.cpp similarity index 76% rename from third_party/skia/src/gpu/gl/glx/GrGLMakeNativeInterface_glx.cpp rename to third_party/skia/src/gpu/ganesh/gl/glx/GrGLMakeNativeInterface_glx.cpp index 2719095c3099..c907fd46c99a 100644 --- a/third_party/skia/src/gpu/gl/glx/GrGLMakeNativeInterface_glx.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/glx/GrGLMakeNativeInterface_glx.cpp @@ -9,5 +9,3 @@ #include "include/gpu/gl/glx/GrGLMakeGLXInterface.h" sk_sp GrGLMakeNativeInterface() { return GrGLMakeGLXInterface(); } - -const GrGLInterface* GrGLCreateNativeInterface() { return GrGLMakeNativeInterface().release(); } diff --git a/third_party/skia/src/gpu/gl/iOS/BUILD.bazel b/third_party/skia/src/gpu/ganesh/gl/iOS/BUILD.bazel similarity index 94% rename from third_party/skia/src/gpu/gl/iOS/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/gl/iOS/BUILD.bazel index 20b89e440ede..28ec564704ac 100644 --- a/third_party/skia/src/gpu/gl/iOS/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/gl/iOS/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLMakeNativeInterface_iOS_src", srcs = ["GrGLMakeNativeInterface_iOS.cpp"], diff --git a/third_party/skia/src/gpu/gl/iOS/GrGLMakeNativeInterface_iOS.cpp b/third_party/skia/src/gpu/ganesh/gl/iOS/GrGLMakeNativeInterface_iOS.cpp similarity index 89% rename from third_party/skia/src/gpu/gl/iOS/GrGLMakeNativeInterface_iOS.cpp rename to third_party/skia/src/gpu/ganesh/gl/iOS/GrGLMakeNativeInterface_iOS.cpp index 54d3af3b510c..76169952688a 100644 --- a/third_party/skia/src/gpu/gl/iOS/GrGLMakeNativeInterface_iOS.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/iOS/GrGLMakeNativeInterface_iOS.cpp @@ -23,6 +23,4 @@ sk_sp GrGLMakeNativeInterface() { return (GrGLFuncPtr)dlsym(ctx ? ctx : RTLD_DEFAULT, name); }); } -const GrGLInterface* GrGLCreateNativeInterface() { return GrGLMakeNativeInterface().release(); } - #endif // SK_BUILD_FOR_IOS diff --git a/third_party/skia/src/gpu/gl/mac/BUILD.bazel b/third_party/skia/src/gpu/ganesh/gl/mac/BUILD.bazel similarity index 94% rename from third_party/skia/src/gpu/gl/mac/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/gl/mac/BUILD.bazel index 3bfe2e7c8e46..8724f85c6954 100644 --- a/third_party/skia/src/gpu/gl/mac/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/gl/mac/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLMakeNativeInterface_mac_src", srcs = ["GrGLMakeNativeInterface_mac.cpp"], diff --git a/third_party/skia/src/gpu/gl/mac/GrGLMakeNativeInterface_mac.cpp b/third_party/skia/src/gpu/ganesh/gl/mac/GrGLMakeNativeInterface_mac.cpp similarity index 89% rename from third_party/skia/src/gpu/gl/mac/GrGLMakeNativeInterface_mac.cpp rename to third_party/skia/src/gpu/ganesh/gl/mac/GrGLMakeNativeInterface_mac.cpp index 58c1b0502c86..d8d20991cbf8 100644 --- a/third_party/skia/src/gpu/gl/mac/GrGLMakeNativeInterface_mac.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/mac/GrGLMakeNativeInterface_mac.cpp @@ -23,6 +23,4 @@ sk_sp GrGLMakeNativeInterface() { return (GrGLFuncPtr)dlsym(ctx ? ctx : RTLD_DEFAULT, name); }); } -const GrGLInterface* GrGLCreateNativeInterface() { return GrGLMakeNativeInterface().release(); } - #endif // SK_BUILD_FOR_MAC diff --git a/third_party/skia/src/gpu/gl/webgl/BUILD.bazel b/third_party/skia/src/gpu/ganesh/gl/webgl/BUILD.bazel similarity index 93% rename from third_party/skia/src/gpu/gl/webgl/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/gl/webgl/BUILD.bazel index 5ab752705b61..11d711e47776 100644 --- a/third_party/skia/src/gpu/gl/webgl/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/gl/webgl/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLMakeNativeInterface_webgl_src", srcs = ["GrGLMakeNativeInterface_webgl.cpp"], diff --git a/third_party/skia/src/gpu/gl/webgl/GrGLMakeNativeInterface_webgl.cpp b/third_party/skia/src/gpu/ganesh/gl/webgl/GrGLMakeNativeInterface_webgl.cpp similarity index 92% rename from third_party/skia/src/gpu/gl/webgl/GrGLMakeNativeInterface_webgl.cpp rename to third_party/skia/src/gpu/ganesh/gl/webgl/GrGLMakeNativeInterface_webgl.cpp index 79816a9db12a..fb9639fb4f5a 100644 --- a/third_party/skia/src/gpu/gl/webgl/GrGLMakeNativeInterface_webgl.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/webgl/GrGLMakeNativeInterface_webgl.cpp @@ -31,5 +31,3 @@ static GrGLFuncPtr webgl_get_gl_proc(void* ctx, const char name[]) { sk_sp GrGLMakeNativeInterface() { return GrGLMakeAssembledInterface(nullptr, webgl_get_gl_proc); } - -const GrGLInterface* GrGLCreateNativeInterface() { return GrGLMakeNativeInterface().release(); } diff --git a/third_party/skia/src/gpu/gl/win/BUILD.bazel b/third_party/skia/src/gpu/ganesh/gl/win/BUILD.bazel similarity index 85% rename from third_party/skia/src/gpu/gl/win/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/gl/win/BUILD.bazel index a5537ea87de1..555e666ac4c4 100644 --- a/third_party/skia/src/gpu/gl/win/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/gl/win/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLMakeNativeInterface_win_src", srcs = ["GrGLMakeNativeInterface_win.cpp"], @@ -9,6 +11,6 @@ generated_cc_atom( "//include/gpu/gl:GrGLAssembleInterface_hdr", "//include/gpu/gl:GrGLInterface_hdr", "//src/core:SkLeanWindows_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", ], ) diff --git a/third_party/skia/src/gpu/gl/win/GrGLMakeNativeInterface_win.cpp b/third_party/skia/src/gpu/ganesh/gl/win/GrGLMakeNativeInterface_win.cpp similarity index 94% rename from third_party/skia/src/gpu/gl/win/GrGLMakeNativeInterface_win.cpp rename to third_party/skia/src/gpu/ganesh/gl/win/GrGLMakeNativeInterface_win.cpp index 08e9f458b093..f15b5fbc0688 100644 --- a/third_party/skia/src/gpu/gl/win/GrGLMakeNativeInterface_win.cpp +++ b/third_party/skia/src/gpu/ganesh/gl/win/GrGLMakeNativeInterface_win.cpp @@ -11,7 +11,7 @@ #include "include/gpu/gl/GrGLAssembleInterface.h" #include "include/gpu/gl/GrGLInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include #include @@ -66,6 +66,4 @@ sk_sp GrGLMakeNativeInterface() { #endif // ARM64 -const GrGLInterface* GrGLCreateNativeInterface() { return GrGLMakeNativeInterface().release(); } - #endif//defined(SK_BUILD_FOR_WIN) diff --git a/third_party/skia/src/gpu/glsl/BUILD.bazel b/third_party/skia/src/gpu/ganesh/glsl/BUILD.bazel similarity index 75% rename from third_party/skia/src/gpu/glsl/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/glsl/BUILD.bazel index 5b294682971c..8a7976add848 100644 --- a/third_party/skia/src/gpu/glsl/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/glsl/BUILD.bazel @@ -1,10 +1,15 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGLSLBlend_hdr", hdrs = ["GrGLSLBlend.h"], visibility = ["//:__subpackages__"], - deps = ["//include/core:SkBlendMode_hdr"], + deps = [ + ":GrGLSLProgramDataManager_hdr", + "//include/core:SkBlendMode_hdr", + ], ) generated_cc_atom( @@ -15,6 +20,7 @@ generated_cc_atom( ":GrGLSLBlend_hdr", ":GrGLSLFragmentShaderBuilder_hdr", ":GrGLSLProgramBuilder_hdr", + "//include/private:SkSLString_hdr", ], ) @@ -26,7 +32,7 @@ generated_cc_atom( ":GrGLSLUniformHandler_hdr", "//src/core:SkColorSpacePriv_hdr", "//src/core:SkColorSpaceXformSteps_hdr", - "//src/gpu:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", ], ) @@ -36,9 +42,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrGLSLShaderBuilder_hdr", - "//src/gpu:GrBlend_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrProcessor_hdr", + "//src/gpu:Blend_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", ], ) @@ -51,8 +57,8 @@ generated_cc_atom( ":GrGLSLProgramBuilder_hdr", ":GrGLSLUniformHandler_hdr", ":GrGLSLVarying_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", ], ) @@ -65,11 +71,11 @@ generated_cc_atom( ":GrGLSLProgramDataManager_hdr", ":GrGLSLUniformHandler_hdr", ":GrGLSLVertexGeoBuilder_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrXferProcessor_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", "//src/sksl:SkSLCompiler_hdr", ], ) @@ -81,15 +87,16 @@ generated_cc_atom( deps = [ ":GrGLSLProgramBuilder_hdr", ":GrGLSLVarying_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrXferProcessor_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//include/sksl:DSL_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", "//src/sksl:SkSLCompiler_hdr", "//src/sksl/dsl/priv:DSLFPs_hdr", ], @@ -102,7 +109,7 @@ generated_cc_atom( deps = [ "//include/core:SkTypes_hdr", "//include/private:SkNoncopyable_hdr", - "//src/gpu:GrResourceHandle_hdr", + "//src/gpu/ganesh:GrResourceHandle_hdr", ], ) @@ -129,7 +136,7 @@ generated_cc_atom( "//include/private:SkSLString_hdr", "//include/private:SkTDArray_hdr", "//src/core:SkTBlockList_hdr", - "//src/gpu:GrShaderVar_hdr", + "//src/gpu/ganesh:GrShaderVar_hdr", ], ) @@ -143,9 +150,9 @@ generated_cc_atom( ":GrGLSLProgramBuilder_hdr", ":GrGLSLShaderBuilder_hdr", "//include/sksl:DSL_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrShaderVar_hdr", - "//src/gpu:GrSwizzle_hdr", + "//src/gpu:Swizzle_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrShaderVar_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", ], @@ -157,8 +164,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrGLSLProgramDataManager_hdr", - "//src/gpu:GrShaderVar_hdr", - "//src/gpu:GrSwizzle_hdr", + "//src/gpu:Swizzle_hdr", + "//src/gpu/ganesh:GrShaderVar_hdr", ], ) @@ -179,9 +186,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrGLSLProgramDataManager_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkTBlockList_hdr", - "//src/gpu:GrShaderVar_hdr", + "//src/gpu/ganesh:GrShaderVar_hdr", ], ) @@ -192,7 +199,7 @@ generated_cc_atom( deps = [ ":GrGLSLProgramBuilder_hdr", ":GrGLSLVarying_hdr", - "//src/gpu:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", ], ) @@ -202,7 +209,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrGLSLShaderBuilder_hdr", - "//src/gpu:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", ], ) diff --git a/third_party/skia/src/gpu/glsl/GrGLSL.cpp b/third_party/skia/src/gpu/ganesh/glsl/GrGLSL.cpp similarity index 98% rename from third_party/skia/src/gpu/glsl/GrGLSL.cpp rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSL.cpp index 71603f8fb2f7..3095941ef918 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSL.cpp +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSL.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/glsl/GrGLSL.h" +#include "src/gpu/ganesh/glsl/GrGLSL.h" const char* GrGLSLTypeString(SkSLType t) { switch (t) { diff --git a/third_party/skia/src/gpu/glsl/GrGLSL.h b/third_party/skia/src/gpu/ganesh/glsl/GrGLSL.h similarity index 100% rename from third_party/skia/src/gpu/glsl/GrGLSL.h rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSL.h diff --git a/third_party/skia/src/gpu/ganesh/glsl/GrGLSLBlend.cpp b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLBlend.cpp new file mode 100644 index 000000000000..587a973fdb02 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLBlend.cpp @@ -0,0 +1,168 @@ +/* + * Copyright 2015 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/SkSLString.h" +#include "src/gpu/ganesh/glsl/GrGLSLBlend.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" + +namespace GrGLSLBlend { + +const char* BlendFuncName(SkBlendMode mode) { + switch (mode) { + case SkBlendMode::kClear: return "blend_clear"; + case SkBlendMode::kSrc: return "blend_src"; + case SkBlendMode::kDst: return "blend_dst"; + case SkBlendMode::kSrcOver: return "blend_src_over"; + case SkBlendMode::kDstOver: return "blend_dst_over"; + case SkBlendMode::kSrcIn: return "blend_src_in"; + case SkBlendMode::kDstIn: return "blend_dst_in"; + case SkBlendMode::kSrcOut: return "blend_src_out"; + case SkBlendMode::kDstOut: return "blend_dst_out"; + case SkBlendMode::kSrcATop: return "blend_src_atop"; + case SkBlendMode::kDstATop: return "blend_dst_atop"; + case SkBlendMode::kXor: return "blend_xor"; + case SkBlendMode::kPlus: return "blend_plus"; + case SkBlendMode::kModulate: return "blend_modulate"; + case SkBlendMode::kScreen: return "blend_screen"; + case SkBlendMode::kOverlay: return "blend_overlay"; + case SkBlendMode::kDarken: return "blend_darken"; + case SkBlendMode::kLighten: return "blend_lighten"; + case SkBlendMode::kColorDodge: return "blend_color_dodge"; + case SkBlendMode::kColorBurn: return "blend_color_burn"; + case SkBlendMode::kHardLight: return "blend_hard_light"; + case SkBlendMode::kSoftLight: return "blend_soft_light"; + case SkBlendMode::kDifference: return "blend_difference"; + case SkBlendMode::kExclusion: return "blend_exclusion"; + case SkBlendMode::kMultiply: return "blend_multiply"; + case SkBlendMode::kHue: return "blend_hue"; + case SkBlendMode::kSaturation: return "blend_saturation"; + case SkBlendMode::kColor: return "blend_color"; + case SkBlendMode::kLuminosity: return "blend_luminosity"; + } + SkUNREACHABLE; +} + +std::string BlendExpression(const GrProcessor* processor, + GrGLSLUniformHandler* uniformHandler, + GrGLSLProgramDataManager::UniformHandle* blendUniform, + const char* srcColor, + const char* dstColor, + SkBlendMode mode) { + switch (mode) { + case SkBlendMode::kSrcOver: + case SkBlendMode::kDstOver: + case SkBlendMode::kSrcIn: + case SkBlendMode::kDstIn: + case SkBlendMode::kSrcOut: + case SkBlendMode::kDstOut: + case SkBlendMode::kSrcATop: + case SkBlendMode::kDstATop: + case SkBlendMode::kXor: + case SkBlendMode::kPlus: { + const char* blendName; + *blendUniform = uniformHandler->addUniform(processor, kFragment_GrShaderFlag, + SkSLType::kHalf4, "blend", &blendName); + return SkSL::String::printf("blend_porter_duff(%s, %s, %s)", + srcColor, dstColor, blendName); + } + case SkBlendMode::kHue: + case SkBlendMode::kSaturation: + case SkBlendMode::kLuminosity: + case SkBlendMode::kColor: { + const char* blendName; + *blendUniform = uniformHandler->addUniform(processor, kFragment_GrShaderFlag, + SkSLType::kHalf2, "blend", &blendName); + return SkSL::String::printf("blend_hslc(%s, %s, bool(%s.x), bool(%s.y))", + srcColor, dstColor, blendName, blendName); + } + case SkBlendMode::kOverlay: + case SkBlendMode::kHardLight: { + const char* blendName; + *blendUniform = uniformHandler->addUniform(processor, kFragment_GrShaderFlag, + SkSLType::kHalf, "blend", &blendName); + return SkSL::String::printf("blend_overlay(%s, %s, bool(%s))", + srcColor, dstColor, blendName); + } + case SkBlendMode::kDarken: + case SkBlendMode::kLighten: { + const char* blendName; + *blendUniform = uniformHandler->addUniform(processor, kFragment_GrShaderFlag, + SkSLType::kHalf, "blend", &blendName); + return SkSL::String::printf("blend_darken(%s, %s, %s)", srcColor, dstColor, blendName); + } + default: { + return SkSL::String::printf("%s(%s, %s)", + BlendFuncName(mode), srcColor, dstColor); + } + } +} + +int BlendKey(SkBlendMode mode) { + switch (mode) { + case SkBlendMode::kSrcOver: + case SkBlendMode::kDstOver: + case SkBlendMode::kSrcIn: + case SkBlendMode::kDstIn: + case SkBlendMode::kSrcOut: + case SkBlendMode::kDstOut: + case SkBlendMode::kSrcATop: + case SkBlendMode::kDstATop: + case SkBlendMode::kXor: + case SkBlendMode::kPlus: + return -1; + + case SkBlendMode::kHue: + case SkBlendMode::kSaturation: + case SkBlendMode::kLuminosity: + case SkBlendMode::kColor: + return -2; + + case SkBlendMode::kOverlay: + case SkBlendMode::kHardLight: + return -3; + + case SkBlendMode::kDarken: + case SkBlendMode::kLighten: + return -4; + + default: + return (int)mode; + } +} + +void SetBlendModeUniformData(const GrGLSLProgramDataManager& pdman, + GrGLSLProgramDataManager::UniformHandle blendUniform, + SkBlendMode mode) { + switch (mode) { + case SkBlendMode::kSrcOver: pdman.set4f(blendUniform, 1, 0, 0, -1); break; + case SkBlendMode::kDstOver: pdman.set4f(blendUniform, 0, 1, -1, 0); break; + case SkBlendMode::kSrcIn: pdman.set4f(blendUniform, 0, 0, 1, 0); break; + case SkBlendMode::kDstIn: pdman.set4f(blendUniform, 0, 0, 0, 1); break; + case SkBlendMode::kSrcOut: pdman.set4f(blendUniform, 0, 0, -1, 0); break; + case SkBlendMode::kDstOut: pdman.set4f(blendUniform, 0, 0, 0, -1); break; + case SkBlendMode::kSrcATop: pdman.set4f(blendUniform, 0, 0, 1, -1); break; + case SkBlendMode::kDstATop: pdman.set4f(blendUniform, 0, 0, -1, 1); break; + case SkBlendMode::kXor: pdman.set4f(blendUniform, 0, 0, -1, -1); break; + case SkBlendMode::kPlus: pdman.set4f(blendUniform, 1, 1, 0, 0); break; + + case SkBlendMode::kHue: pdman.set2f(blendUniform, 0, 1); break; + case SkBlendMode::kSaturation: pdman.set2f(blendUniform, 1, 1); break; + case SkBlendMode::kColor: pdman.set2f(blendUniform, 0, 0); break; + case SkBlendMode::kLuminosity: pdman.set2f(blendUniform, 1, 0); break; + + case SkBlendMode::kOverlay: pdman.set1f(blendUniform, 0); break; + case SkBlendMode::kHardLight: pdman.set1f(blendUniform, 1); break; + + case SkBlendMode::kDarken: pdman.set1f(blendUniform, 1); break; + case SkBlendMode::kLighten: pdman.set1f(blendUniform, -1); break; + + default: /* no uniform data necessary */ break; + } +} + +} // namespace GrGLSLBlend diff --git a/third_party/skia/src/gpu/ganesh/glsl/GrGLSLBlend.h b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLBlend.h new file mode 100644 index 000000000000..cf6e6a409d30 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLBlend.h @@ -0,0 +1,52 @@ +/* + * Copyright 2015 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrGLBlend_DEFINED +#define GrGLBlend_DEFINED + +#include "include/core/SkBlendMode.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" + +class GrGLSLShaderBuilder; +class GrGLSLUniformHandler; +class GrProcessor; + +namespace GrGLSLBlend { + +/** + * Returns the name of the built in blend function for a SkBlendMode. + */ +const char* BlendFuncName(SkBlendMode mode); + +/** + * Returns an SkSL expression that blends the passed-in srcColor and dstColor values. + * Matching calls to SetBlendModeUniformData and BlendKey must be made from your GrProcessor. + */ +std::string BlendExpression(const GrProcessor* processor, + GrGLSLUniformHandler* uniformHandler, + GrGLSLProgramDataManager::UniformHandle* uniform, + const char* srcColor, + const char* dstColor, + SkBlendMode mode); + +/** + * Returns a key, for use in onAddToKey from any GrProcessor. You must pass the same blend mode that + * was passed to BlendExpression + */ +int BlendKey(SkBlendMode mode); + +/** + * Sets up uniforms, for use in onSetData from any GrProcessor. You must pass the same uniform and + * blend mode that were passed to BlendExpression. + */ +void SetBlendModeUniformData(const GrGLSLProgramDataManager& pdman, + GrGLSLProgramDataManager::UniformHandle uniform, + SkBlendMode mode); + +} // namespace GrGLSLBlend + +#endif diff --git a/third_party/skia/src/gpu/glsl/GrGLSLColorSpaceXformHelper.h b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h similarity index 97% rename from third_party/skia/src/gpu/glsl/GrGLSLColorSpaceXformHelper.h rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h index 05996059bc2e..18d83425f061 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLColorSpaceXformHelper.h +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h @@ -10,8 +10,8 @@ #include "src/core/SkColorSpacePriv.h" #include "src/core/SkColorSpaceXformSteps.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" /** * Helper class to assist with using GrColorSpaceXform within an FP. This manages all of the diff --git a/third_party/skia/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.cpp similarity index 90% rename from third_party/skia/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.cpp index c9caf90f805d..00f14c86727d 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" GrGLSLFragmentShaderBuilder::GrGLSLFragmentShaderBuilder(GrGLSLProgramBuilder* program) : GrGLSLShaderBuilder(program) {} @@ -38,8 +38,9 @@ const char* GrGLSLFragmentShaderBuilder::dstColor() { return kDstColorName; } -void GrGLSLFragmentShaderBuilder::enableAdvancedBlendEquationIfNeeded(GrBlendEquation equation) { - SkASSERT(GrBlendEquationIsAdvanced(equation)); +void GrGLSLFragmentShaderBuilder::enableAdvancedBlendEquationIfNeeded( + skgpu::BlendEquation equation) { + SkASSERT(skgpu::BlendEquationIsAdvanced(equation)); if (fProgramBuilder->shaderCaps()->mustEnableAdvBlendEqs()) { this->addFeature(1 << kBlendEquationAdvanced_GLSLPrivateFeature, diff --git a/third_party/skia/src/gpu/glsl/GrGLSLFragmentShaderBuilder.h b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h similarity index 93% rename from third_party/skia/src/gpu/glsl/GrGLSLFragmentShaderBuilder.h rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h index aaa0671c484e..454d90fb4b3f 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLFragmentShaderBuilder.h +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h @@ -8,10 +8,10 @@ #ifndef GrGLSLFragmentShaderBuilder_DEFINED #define GrGLSLFragmentShaderBuilder_DEFINED -#include "src/gpu/GrBlend.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/glsl/GrGLSLShaderBuilder.h" +#include "src/gpu/Blend.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLShaderBuilder.h" class GrRenderTarget; class GrGLSLVarying; @@ -74,7 +74,7 @@ class GrGLSLXPFragmentBuilder : virtual public GrGLSLShaderBuilder { /** Adds any necessary layout qualifiers in order to legalize the supplied blend equation with this shader. It is only legal to call this method with an advanced blend equation, and only if these equations are supported. */ - virtual void enableAdvancedBlendEquationIfNeeded(GrBlendEquation) = 0; + virtual void enableAdvancedBlendEquationIfNeeded(skgpu::BlendEquation) = 0; }; /* @@ -93,7 +93,7 @@ class GrGLSLFragmentShaderBuilder : public GrGLSLFPFragmentBuilder, public GrGLS // GrGLSLXPFragmentBuilder interface. bool hasCustomColorOutput() const override { return SkToBool(fCustomColorOutput); } bool hasSecondaryOutput() const override { return fHasSecondaryOutput; } - void enableAdvancedBlendEquationIfNeeded(GrBlendEquation) override; + void enableAdvancedBlendEquationIfNeeded(skgpu::BlendEquation) override; private: // Private public interface, used by GrGLProgramBuilder to build a fragment shader diff --git a/third_party/skia/src/gpu/glsl/GrGLSLProgramBuilder.cpp b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramBuilder.cpp similarity index 97% rename from third_party/skia/src/gpu/glsl/GrGLSLProgramBuilder.cpp rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramBuilder.cpp index 4972070fc7a3..be4521c6efb3 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLProgramBuilder.cpp +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramBuilder.cpp @@ -5,20 +5,21 @@ * found in the LICENSE file. */ -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" #include -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLVarying.h" +#include "include/sksl/DSL.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/dsl/priv/DSLFPs.h" diff --git a/third_party/skia/src/gpu/glsl/GrGLSLProgramBuilder.h b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h similarity index 94% rename from third_party/skia/src/gpu/glsl/GrGLSLProgramBuilder.h rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h index 193a71d9be40..e7a674523fda 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLProgramBuilder.h +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h @@ -8,15 +8,15 @@ #ifndef GrGLSLProgramBuilder_DEFINED #define GrGLSLProgramBuilder_DEFINED -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" #include "src/sksl/SkSLCompiler.h" #include diff --git a/third_party/skia/src/gpu/glsl/GrGLSLProgramDataManager.cpp b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramDataManager.cpp similarity index 93% rename from third_party/skia/src/gpu/glsl/GrGLSLProgramDataManager.cpp rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramDataManager.cpp index 2421fe9d2f26..547e7a93943c 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLProgramDataManager.cpp +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramDataManager.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" #include "include/core/SkM44.h" #include "include/core/SkMatrix.h" diff --git a/third_party/skia/src/gpu/glsl/GrGLSLProgramDataManager.h b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h similarity index 98% rename from third_party/skia/src/gpu/glsl/GrGLSLProgramDataManager.h rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h index b0d155ecc052..f502431723fe 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLProgramDataManager.h +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h @@ -10,7 +10,7 @@ #include "include/core/SkTypes.h" #include "include/private/SkNoncopyable.h" -#include "src/gpu/GrResourceHandle.h" +#include "src/gpu/ganesh/GrResourceHandle.h" class SkMatrix; class SkM44; diff --git a/third_party/skia/src/gpu/glsl/GrGLSLShaderBuilder.cpp b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLShaderBuilder.cpp similarity index 97% rename from third_party/skia/src/gpu/glsl/GrGLSLShaderBuilder.cpp rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLShaderBuilder.cpp index f78c0630aa44..4020658605e6 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLShaderBuilder.cpp +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLShaderBuilder.cpp @@ -5,15 +5,15 @@ * found in the LICENSE file. */ -#include "src/gpu/glsl/GrGLSLShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLShaderBuilder.h" #include "include/sksl/DSL.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrShaderVar.h" #include "src/gpu/Swizzle.h" -#include "src/gpu/glsl/GrGLSLBlend.h" -#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/glsl/GrGLSLBlend.h" +#include "src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/ir/SkSLVarDeclarations.h" diff --git a/third_party/skia/src/gpu/glsl/GrGLSLShaderBuilder.h b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLShaderBuilder.h similarity index 99% rename from third_party/skia/src/gpu/glsl/GrGLSLShaderBuilder.h rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLShaderBuilder.h index ad5bcb72378b..4a43791fec20 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLShaderBuilder.h +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLShaderBuilder.h @@ -13,8 +13,8 @@ #include "include/private/SkSLString.h" #include "include/private/SkTDArray.h" #include "src/core/SkTBlockList.h" -#include "src/gpu/GrShaderVar.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" #include diff --git a/third_party/skia/src/gpu/glsl/GrGLSLUniformHandler.cpp b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLUniformHandler.cpp similarity index 82% rename from third_party/skia/src/gpu/glsl/GrGLSLUniformHandler.cpp rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLUniformHandler.cpp index 0ceb88345b1f..ce03012b083f 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLUniformHandler.cpp +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLUniformHandler.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSL.h" -#include "src/gpu/glsl/GrGLSLShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSL.h" +#include "src/gpu/ganesh/glsl/GrGLSLShaderBuilder.h" -GrShaderVar GrGLSLUniformHandler::getUniformMapping(const GrFragmentProcessor& owner, +GrShaderVar GrGLSLUniformHandler::getUniformMapping(const GrProcessor& owner, SkString rawName) const { for (int i = this->numUniforms() - 1; i >= 0; i--) { const UniformInfo& u = this->uniform(i); @@ -21,7 +21,7 @@ GrShaderVar GrGLSLUniformHandler::getUniformMapping(const GrFragmentProcessor& o return GrShaderVar(); } -GrShaderVar GrGLSLUniformHandler::liftUniformToVertexShader(const GrFragmentProcessor& owner, +GrShaderVar GrGLSLUniformHandler::liftUniformToVertexShader(const GrProcessor& owner, SkString rawName) { for (int i = this->numUniforms() - 1; i >= 0; i--) { UniformInfo& u = this->uniform(i); diff --git a/third_party/skia/src/gpu/glsl/GrGLSLUniformHandler.h b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLUniformHandler.h similarity index 87% rename from third_party/skia/src/gpu/glsl/GrGLSLUniformHandler.h rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLUniformHandler.h index 92715c8376ef..be3a411d8564 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLUniformHandler.h +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLUniformHandler.h @@ -8,15 +8,16 @@ #ifndef GrGLSLUniformHandler_DEFINED #define GrGLSLUniformHandler_DEFINED -#include "src/gpu/GrShaderVar.h" #include "src/gpu/Swizzle.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" // variable names beginning with this prefix will not be mangled #define GR_NO_MANGLE_PREFIX "sk_" class GrGLSLProgramBuilder; class GrGLSLShaderBuilder; +class GrProcessor; class GrSamplerState; class GrSurfaceProxy; @@ -32,10 +33,10 @@ struct GrGLSLBuiltinUniformHandles { class GrGLSLUniformHandler { public: struct UniformInfo { - GrShaderVar fVariable; - uint32_t fVisibility; - const GrFragmentProcessor* fOwner; - SkString fRawName; + GrShaderVar fVariable; + uint32_t fVisibility; + const GrProcessor* fOwner; + SkString fRawName; }; virtual ~GrGLSLUniformHandler() {} @@ -50,7 +51,7 @@ class GrGLSLUniformHandler { supported at this time. The actual uniform name will be mangled. If outName is not nullptr then it will refer to the final uniform name after return. Use the addUniformArray variant to add an array of uniforms. */ - UniformHandle addUniform(const GrFragmentProcessor* owner, + UniformHandle addUniform(const GrProcessor* owner, uint32_t visibility, SkSLType type, const char* name, @@ -59,7 +60,7 @@ class GrGLSLUniformHandler { return this->addUniformArray(owner, visibility, type, name, 0, outName); } - UniformHandle addUniformArray(const GrFragmentProcessor* owner, + UniformHandle addUniformArray(const GrProcessor* owner, uint32_t visibility, SkSLType type, const char* name, @@ -85,11 +86,11 @@ class GrGLSLUniformHandler { // Looks up a uniform that was added by 'owner' with the given 'rawName' (pre-mangling). // If there is no such uniform, a variable with type kVoid is returned. - GrShaderVar getUniformMapping(const GrFragmentProcessor& owner, SkString rawName) const; + GrShaderVar getUniformMapping(const GrProcessor& owner, SkString rawName) const; // Like getUniformMapping(), but if the uniform is found it also marks it as accessible in // the vertex shader. - GrShaderVar liftUniformToVertexShader(const GrFragmentProcessor& owner, SkString rawName); + GrShaderVar liftUniformToVertexShader(const GrProcessor& owner, SkString rawName); protected: explicit GrGLSLUniformHandler(GrGLSLProgramBuilder* program) : fProgramBuilder(program) {} @@ -118,7 +119,7 @@ class GrGLSLUniformHandler { return {}; } - virtual UniformHandle internalAddUniformArray(const GrFragmentProcessor* owner, + virtual UniformHandle internalAddUniformArray(const GrProcessor* owner, uint32_t visibility, SkSLType type, const char* name, diff --git a/third_party/skia/src/gpu/glsl/GrGLSLVarying.cpp b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLVarying.cpp similarity index 97% rename from third_party/skia/src/gpu/glsl/GrGLSLVarying.cpp rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLVarying.cpp index 9132542da588..e857e6ff68de 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLVarying.cpp +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLVarying.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" void GrGLSLVaryingHandler::addPassThroughAttribute(const GrShaderVar& vsVar, const char* output, diff --git a/third_party/skia/src/gpu/glsl/GrGLSLVarying.h b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLVarying.h similarity index 97% rename from third_party/skia/src/gpu/glsl/GrGLSLVarying.h rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLVarying.h index 1a89bce9812b..f19382c2cc1a 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLVarying.h +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLVarying.h @@ -8,10 +8,10 @@ #ifndef GrGLSLVarying_DEFINED #define GrGLSLVarying_DEFINED -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkTBlockList.h" -#include "src/gpu/GrShaderVar.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" class GrGeometryProcessor; class GrGLSLProgramBuilder; diff --git a/third_party/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.cpp similarity index 90% rename from third_party/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.cpp index 07aa6c071229..757e6a9f2773 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" #include "include/gpu/GrTypes.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" void GrGLSLVertexGeoBuilder::emitNormalizedSkPosition(SkString* out, const char* devPos, SkSLType devPosType) { diff --git a/third_party/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.h b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h similarity index 94% rename from third_party/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.h rename to third_party/skia/src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h index 0ecc2b5706ff..35d1935dd977 100644 --- a/third_party/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.h +++ b/third_party/skia/src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h @@ -8,8 +8,8 @@ #ifndef GrGLSLVertexGeoBuilder_DEFINED #define GrGLSLVertexGeoBuilder_DEFINED -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/glsl/GrGLSLShaderBuilder.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLShaderBuilder.h" /** * Base class for vertex shader builder. This is the stage that computes input geometry for the diff --git a/third_party/skia/src/gpu/gradients/BUILD.bazel b/third_party/skia/src/gpu/ganesh/gradients/BUILD.bazel similarity index 75% rename from third_party/skia/src/gpu/gradients/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/gradients/BUILD.bazel index 5ab0c3fe2842..b806dcda0eda 100644 --- a/third_party/skia/src/gpu/gradients/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/gradients/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrGradientBitmapCache_hdr", hdrs = ["GrGradientBitmapCache.h"], @@ -31,8 +33,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/utils:SkRandom_hdr", - "//src/gpu:GrFPArgs_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrFPArgs_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", "//src/shaders/gradients:SkGradientShaderPriv_hdr", "//src/shaders/gradients:SkLinearGradient_hdr", "//src/shaders/gradients:SkRadialGradient_hdr", @@ -48,16 +50,17 @@ generated_cc_atom( deps = [ ":GrGradientBitmapCache_hdr", ":GrGradientShader_hdr", + "//include/core:SkColorSpace_hdr", "//include/gpu:GrRecordingContext_hdr", "//src/core:SkMathPriv_hdr", "//src/core:SkRuntimeEffectPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColorInfo_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrMatrixEffect_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColorInfo_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrMatrixEffect_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", ], ) diff --git a/third_party/skia/src/gpu/gradients/GrGradientBitmapCache.cpp b/third_party/skia/src/gpu/ganesh/gradients/GrGradientBitmapCache.cpp similarity index 99% rename from third_party/skia/src/gpu/gradients/GrGradientBitmapCache.cpp rename to third_party/skia/src/gpu/ganesh/gradients/GrGradientBitmapCache.cpp index a1f608248960..61ba8dca533b 100644 --- a/third_party/skia/src/gpu/gradients/GrGradientBitmapCache.cpp +++ b/third_party/skia/src/gpu/ganesh/gradients/GrGradientBitmapCache.cpp @@ -6,7 +6,7 @@ */ -#include "src/gpu/gradients/GrGradientBitmapCache.h" +#include "src/gpu/ganesh/gradients/GrGradientBitmapCache.h" #include "include/private/SkFloatBits.h" #include "include/private/SkHalf.h" diff --git a/third_party/skia/src/gpu/gradients/GrGradientBitmapCache.h b/third_party/skia/src/gpu/ganesh/gradients/GrGradientBitmapCache.h similarity index 100% rename from third_party/skia/src/gpu/gradients/GrGradientBitmapCache.h rename to third_party/skia/src/gpu/ganesh/gradients/GrGradientBitmapCache.h diff --git a/third_party/skia/src/gpu/gradients/GrGradientShader.cpp b/third_party/skia/src/gpu/ganesh/gradients/GrGradientShader.cpp similarity index 98% rename from third_party/skia/src/gpu/gradients/GrGradientShader.cpp rename to third_party/skia/src/gpu/ganesh/gradients/GrGradientShader.cpp index a885e7ecb3ff..3493d8538d60 100644 --- a/third_party/skia/src/gpu/gradients/GrGradientShader.cpp +++ b/third_party/skia/src/gpu/ganesh/gradients/GrGradientShader.cpp @@ -5,21 +5,21 @@ * found in the LICENSE file. */ -#include "src/gpu/gradients/GrGradientShader.h" - -#include "src/gpu/gradients/GrGradientBitmapCache.h" +#include "src/gpu/ganesh/gradients/GrGradientShader.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkMathPriv.h" #include "src/core/SkRuntimeEffectPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrColorInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrMatrixEffect.h" -#include "src/gpu/effects/GrSkSLFP.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrMatrixEffect.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/gradients/GrGradientBitmapCache.h" using Vec4 = skvx::Vec<4, float>; diff --git a/third_party/skia/src/gpu/gradients/GrGradientShader.h b/third_party/skia/src/gpu/ganesh/gradients/GrGradientShader.h similarity index 96% rename from third_party/skia/src/gpu/gradients/GrGradientShader.h rename to third_party/skia/src/gpu/ganesh/gradients/GrGradientShader.h index 19948a64a7dd..6c9780804330 100644 --- a/third_party/skia/src/gpu/gradients/GrGradientShader.h +++ b/third_party/skia/src/gpu/ganesh/gradients/GrGradientShader.h @@ -8,8 +8,8 @@ #ifndef GrGradientShader_DEFINE #define GrGradientShader_DEFINE -#include "src/gpu/GrFPArgs.h" -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFPArgs.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" #include "src/shaders/gradients/SkGradientShaderPriv.h" #include "src/shaders/gradients/SkLinearGradient.h" #include "src/shaders/gradients/SkRadialGradient.h" diff --git a/third_party/skia/src/gpu/gradients/README.md b/third_party/skia/src/gpu/ganesh/gradients/README.md similarity index 100% rename from third_party/skia/src/gpu/gradients/README.md rename to third_party/skia/src/gpu/ganesh/gradients/README.md diff --git a/third_party/skia/src/gpu/mock/BUILD.bazel b/third_party/skia/src/gpu/ganesh/mock/BUILD.bazel similarity index 68% rename from third_party/skia/src/gpu/mock/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/mock/BUILD.bazel index fd2e971afd24..d56c205a6649 100644 --- a/third_party/skia/src/gpu/mock/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/mock/BUILD.bazel @@ -1,13 +1,15 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrMockAttachment_hdr", hdrs = ["GrMockAttachment.h"], visibility = ["//:__subpackages__"], deps = [ ":GrMockGpu_hdr", - "//src/gpu:GrAttachment_hdr", - "//src/gpu:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrAttachment_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", ], ) @@ -17,8 +19,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrMockGpu_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrGpuBuffer_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrGpuBuffer_hdr", ], ) @@ -28,8 +30,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu/mock:GrMockTypes_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:SkGr_hdr", ], ) @@ -40,7 +42,7 @@ generated_cc_atom( deps = [ ":GrMockCaps_hdr", "//src/core:SkMathPriv_hdr", - "//src/gpu:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", ], ) @@ -50,10 +52,10 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/private:SkTHash_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrSemaphore_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) @@ -68,7 +70,7 @@ generated_cc_atom( ":GrMockGpu_hdr", ":GrMockOpsRenderPass_hdr", ":GrMockTexture_hdr", - "//src/gpu:GrThreadSafePipelineBuilder_hdr", + "//src/gpu/ganesh:GrThreadSafePipelineBuilder_hdr", ], ) @@ -78,11 +80,11 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrAppliedClip_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDstProxyView_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrMeshDrawTarget_hdr", + "//src/gpu/ganesh:GrAppliedClip_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDstProxyView_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrMeshDrawTarget_hdr", ], ) @@ -92,8 +94,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrMockGpu_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) @@ -101,14 +103,14 @@ generated_cc_atom( name = "GrMockRenderTask_hdr", hdrs = ["GrMockRenderTask.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrRenderTask_hdr"], + deps = ["//src/gpu/ganesh:GrRenderTask_hdr"], ) generated_cc_atom( name = "GrMockSurfaceProxy_hdr", hdrs = ["GrMockSurfaceProxy.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrSurfaceProxy_hdr"], + deps = ["//src/gpu/ganesh:GrSurfaceProxy_hdr"], ) generated_cc_atom( @@ -118,9 +120,9 @@ generated_cc_atom( deps = [ ":GrMockGpu_hdr", "//include/gpu/mock:GrMockTypes_hdr", - "//src/gpu:GrAttachment_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrAttachment_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) diff --git a/third_party/skia/src/gpu/mock/GrMockAttachment.h b/third_party/skia/src/gpu/ganesh/mock/GrMockAttachment.h similarity index 66% rename from third_party/skia/src/gpu/mock/GrMockAttachment.h rename to third_party/skia/src/gpu/ganesh/mock/GrMockAttachment.h index f2bb366116aa..226192281f56 100644 --- a/third_party/skia/src/gpu/mock/GrMockAttachment.h +++ b/third_party/skia/src/gpu/ganesh/mock/GrMockAttachment.h @@ -8,15 +8,19 @@ #ifndef GrMockAttachment_DEFINED #define GrMockAttachment_DEFINED -#include "src/gpu/GrAttachment.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/mock/GrMockGpu.h" +#include "src/gpu/ganesh/GrAttachment.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/mock/GrMockGpu.h" class GrMockAttachment : public GrAttachment { public: - GrMockAttachment(GrMockGpu* gpu, SkISize dimensions, UsageFlags supportedUsages, int sampleCnt) + GrMockAttachment(GrMockGpu* gpu, + SkISize dimensions, + UsageFlags supportedUsages, + int sampleCnt, + std::string_view label) : INHERITED(gpu, dimensions, supportedUsages, sampleCnt, GrMipmapped::kNo, - GrProtected::kNo) { + GrProtected::kNo, label) { SkASSERT(supportedUsages == UsageFlags::kStencilAttachment); this->registerWithCache(SkBudgeted::kYes); } diff --git a/third_party/skia/src/gpu/mock/GrMockBuffer.h b/third_party/skia/src/gpu/ganesh/mock/GrMockBuffer.h similarity index 73% rename from third_party/skia/src/gpu/mock/GrMockBuffer.h rename to third_party/skia/src/gpu/ganesh/mock/GrMockBuffer.h index 684355ab8210..fa4efc6d1834 100644 --- a/third_party/skia/src/gpu/mock/GrMockBuffer.h +++ b/third_party/skia/src/gpu/ganesh/mock/GrMockBuffer.h @@ -8,15 +8,16 @@ #ifndef GrMockBuffer_DEFINED #define GrMockBuffer_DEFINED -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/mock/GrMockGpu.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/mock/GrMockGpu.h" class GrMockBuffer : public GrGpuBuffer { public: GrMockBuffer(GrMockGpu* gpu, size_t sizeInBytes, GrGpuBufferType type, - GrAccessPattern accessPattern) - : INHERITED(gpu, sizeInBytes, type, accessPattern) { + GrAccessPattern accessPattern, + std::string_view label) + : INHERITED(gpu, sizeInBytes, type, accessPattern, label) { this->registerWithCache(SkBudgeted::kYes); } diff --git a/third_party/skia/src/gpu/mock/GrMockCaps.cpp b/third_party/skia/src/gpu/ganesh/mock/GrMockCaps.cpp similarity index 98% rename from third_party/skia/src/gpu/mock/GrMockCaps.cpp rename to third_party/skia/src/gpu/ganesh/mock/GrMockCaps.cpp index f332a0541b18..0150ba957e86 100644 --- a/third_party/skia/src/gpu/mock/GrMockCaps.cpp +++ b/third_party/skia/src/gpu/ganesh/mock/GrMockCaps.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/mock/GrMockCaps.h" +#include "src/gpu/ganesh/mock/GrMockCaps.h" #include "src/core/SkMathPriv.h" -#include "src/gpu/GrProgramDesc.h" +#include "src/gpu/ganesh/GrProgramDesc.h" int GrMockCaps::getRenderTargetSampleCount(int requestCount, GrColorType ct) const { requestCount = std::max(requestCount, 1); diff --git a/third_party/skia/src/gpu/mock/GrMockCaps.h b/third_party/skia/src/gpu/ganesh/mock/GrMockCaps.h similarity index 99% rename from third_party/skia/src/gpu/mock/GrMockCaps.h rename to third_party/skia/src/gpu/ganesh/mock/GrMockCaps.h index 27d7ce0a69a5..56a10d5ca6ca 100644 --- a/third_party/skia/src/gpu/mock/GrMockCaps.h +++ b/third_party/skia/src/gpu/ganesh/mock/GrMockCaps.h @@ -9,8 +9,8 @@ #define GrMockCaps_DEFINED #include "include/gpu/mock/GrMockTypes.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/SkGr.h" class GrMockCaps : public GrCaps { public: diff --git a/third_party/skia/src/gpu/mock/GrMockGpu.cpp b/third_party/skia/src/gpu/ganesh/mock/GrMockGpu.cpp similarity index 85% rename from third_party/skia/src/gpu/mock/GrMockGpu.cpp rename to third_party/skia/src/gpu/ganesh/mock/GrMockGpu.cpp index 24177ef24d81..45c493e3f588 100644 --- a/third_party/skia/src/gpu/mock/GrMockGpu.cpp +++ b/third_party/skia/src/gpu/ganesh/mock/GrMockGpu.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/mock/GrMockGpu.h" +#include "src/gpu/ganesh/mock/GrMockGpu.h" -#include "src/gpu/GrThreadSafePipelineBuilder.h" -#include "src/gpu/mock/GrMockAttachment.h" -#include "src/gpu/mock/GrMockBuffer.h" -#include "src/gpu/mock/GrMockCaps.h" -#include "src/gpu/mock/GrMockOpsRenderPass.h" -#include "src/gpu/mock/GrMockTexture.h" +#include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" +#include "src/gpu/ganesh/mock/GrMockAttachment.h" +#include "src/gpu/ganesh/mock/GrMockBuffer.h" +#include "src/gpu/ganesh/mock/GrMockCaps.h" +#include "src/gpu/ganesh/mock/GrMockOpsRenderPass.h" +#include "src/gpu/ganesh/mock/GrMockTexture.h" #include @@ -116,10 +116,13 @@ sk_sp GrMockGpu::onCreateTexture(SkISize dimensions, GrMockRenderTargetInfo rtInfo(ct, NextInternalRenderTargetID()); return sk_sp(new GrMockTextureRenderTarget(this, budgeted, dimensions, renderTargetSampleCnt, isProtected, - mipmapStatus, texInfo, rtInfo)); + mipmapStatus, + texInfo, + rtInfo, + /*label=*/{})); } - return sk_sp( - new GrMockTexture(this, budgeted, dimensions, isProtected, mipmapStatus, texInfo)); + return sk_sp(new GrMockTexture( + this, budgeted, dimensions, isProtected, mipmapStatus, texInfo, /*label=*/{})); } // TODO: why no 'isProtected' ?! @@ -146,8 +149,8 @@ sk_sp GrMockGpu::onCreateCompressedTexture(SkISize dimensions, format.asMockCompressionType(), NextInternalTextureID()); - return sk_sp( - new GrMockTexture(this, budgeted, dimensions, isProtected, mipmapStatus, texInfo)); + return sk_sp(new GrMockTexture( + this, budgeted, dimensions, isProtected, mipmapStatus, texInfo, /*label=*/{})); } sk_sp GrMockGpu::onWrapBackendTexture(const GrBackendTexture& tex, @@ -165,8 +168,14 @@ sk_sp GrMockGpu::onWrapBackendTexture(const GrBackendTexture& tex, GrMipmapStatus mipmapStatus = tex.hasMipmaps() ? GrMipmapStatus::kValid : GrMipmapStatus::kNotAllocated; auto isProtected = GrProtected(tex.isProtected()); - return sk_sp(new GrMockTexture(this, tex.dimensions(), isProtected, mipmapStatus, - texInfo, wrapType, ioType)); + return sk_sp(new GrMockTexture(this, + tex.dimensions(), + isProtected, + mipmapStatus, + texInfo, + wrapType, + ioType, + /*label=*/{})); } sk_sp GrMockGpu::onWrapCompressedBackendTexture(const GrBackendTexture& tex, @@ -192,7 +201,9 @@ sk_sp GrMockGpu::onWrapRenderableBackendTexture(const GrBackendTextur auto isProtected = GrProtected(tex.isProtected()); return sk_sp(new GrMockTextureRenderTarget(this, tex.dimensions(), sampleCnt, isProtected, mipmapStatus, texInfo, - rtInfo, cacheable)); + rtInfo, + cacheable, + /*label=*/{})); } sk_sp GrMockGpu::onWrapBackendRenderTarget(const GrBackendRenderTarget& rt) { @@ -202,20 +213,25 @@ sk_sp GrMockGpu::onWrapBackendRenderTarget(const GrBackendRender auto isProtected = GrProtected(rt.isProtected()); return sk_sp(new GrMockRenderTarget(this, GrMockRenderTarget::kWrapped, rt.dimensions(), rt.sampleCnt(), - isProtected, info)); + isProtected, + info, + /*label=*/{})); } sk_sp GrMockGpu::onCreateBuffer(size_t sizeInBytes, GrGpuBufferType type, GrAccessPattern accessPattern, const void*) { - return sk_sp(new GrMockBuffer(this, sizeInBytes, type, accessPattern)); + return sk_sp( + new GrMockBuffer(this, sizeInBytes, type, accessPattern, /*label=*/{})); } sk_sp GrMockGpu::makeStencilAttachment(const GrBackendFormat& /*colorFormat*/, SkISize dimensions, int numStencilSamples) { fStats.incStencilAttachmentCreates(); - return sk_sp( - new GrMockAttachment(this, dimensions, GrAttachment::UsageFlags::kStencilAttachment, - numStencilSamples)); + return sk_sp(new GrMockAttachment(this, + dimensions, + GrAttachment::UsageFlags::kStencilAttachment, + numStencilSamples, + /*label=*/{})); } GrBackendTexture GrMockGpu::onCreateBackendTexture(SkISize dimensions, diff --git a/third_party/skia/src/gpu/mock/GrMockGpu.h b/third_party/skia/src/gpu/ganesh/mock/GrMockGpu.h similarity index 96% rename from third_party/skia/src/gpu/mock/GrMockGpu.h rename to third_party/skia/src/gpu/ganesh/mock/GrMockGpu.h index 3efeeefa78e1..4ee0ffb32c21 100644 --- a/third_party/skia/src/gpu/mock/GrMockGpu.h +++ b/third_party/skia/src/gpu/ganesh/mock/GrMockGpu.h @@ -9,10 +9,10 @@ #define GrMockGpu_DEFINED #include "include/private/SkTHash.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrTexture.h" class GrMockOpsRenderPass; struct GrMockOptions; @@ -179,7 +179,7 @@ class GrMockGpu : public GrGpu { GrProtected) override; bool onClearBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) override { return true; } @@ -190,7 +190,7 @@ class GrMockGpu : public GrGpu { GrProtected) override; bool onUpdateCompressedBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, const void*, size_t) override { return true; diff --git a/third_party/skia/src/gpu/mock/GrMockOpTarget.h b/third_party/skia/src/gpu/ganesh/mock/GrMockOpTarget.h similarity index 96% rename from third_party/skia/src/gpu/mock/GrMockOpTarget.h rename to third_party/skia/src/gpu/ganesh/mock/GrMockOpTarget.h index be9cd23e10c6..3f9714a6ccc3 100644 --- a/third_party/skia/src/gpu/mock/GrMockOpTarget.h +++ b/third_party/skia/src/gpu/ganesh/mock/GrMockOpTarget.h @@ -9,11 +9,11 @@ #define GrMockOpTarget_DEFINED #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDstProxyView.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrMeshDrawTarget.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDstProxyView.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrMeshDrawTarget.h" // This is a mock GrMeshDrawTarget implementation that just gives back pointers into // pre-allocated CPU buffers, rather than allocating and mapping GPU buffers. diff --git a/third_party/skia/src/gpu/mock/GrMockOpsRenderPass.h b/third_party/skia/src/gpu/ganesh/mock/GrMockOpsRenderPass.h similarity index 95% rename from third_party/skia/src/gpu/mock/GrMockOpsRenderPass.h rename to third_party/skia/src/gpu/ganesh/mock/GrMockOpsRenderPass.h index e9ab5fb66f0b..c6e95cf0e426 100644 --- a/third_party/skia/src/gpu/mock/GrMockOpsRenderPass.h +++ b/third_party/skia/src/gpu/ganesh/mock/GrMockOpsRenderPass.h @@ -8,10 +8,10 @@ #ifndef GrMockOpsRenderPass_DEFINED #define GrMockOpsRenderPass_DEFINED -#include "src/gpu/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/mock/GrMockGpu.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/mock/GrMockGpu.h" class GrMockOpsRenderPass : public GrOpsRenderPass { public: diff --git a/third_party/skia/src/gpu/mock/GrMockRenderTask.h b/third_party/skia/src/gpu/ganesh/mock/GrMockRenderTask.h similarity index 97% rename from third_party/skia/src/gpu/mock/GrMockRenderTask.h rename to third_party/skia/src/gpu/ganesh/mock/GrMockRenderTask.h index 2eb7a25cda5e..16a3c6d8dd64 100644 --- a/third_party/skia/src/gpu/mock/GrMockRenderTask.h +++ b/third_party/skia/src/gpu/ganesh/mock/GrMockRenderTask.h @@ -8,7 +8,7 @@ #ifndef GrMockRenderTask_DEFINED #define GrMockRenderTask_DEFINED -#include "src/gpu/GrRenderTask.h" +#include "src/gpu/ganesh/GrRenderTask.h" class GrMockRenderTask : public GrRenderTask { public: diff --git a/third_party/skia/src/gpu/mock/GrMockSurfaceProxy.h b/third_party/skia/src/gpu/ganesh/mock/GrMockSurfaceProxy.h similarity index 54% rename from third_party/skia/src/gpu/mock/GrMockSurfaceProxy.h rename to third_party/skia/src/gpu/ganesh/mock/GrMockSurfaceProxy.h index af541f24d229..809deb9707d9 100644 --- a/third_party/skia/src/gpu/mock/GrMockSurfaceProxy.h +++ b/third_party/skia/src/gpu/ganesh/mock/GrMockSurfaceProxy.h @@ -8,18 +8,20 @@ #ifndef GrMockSurfaceProxy_DEFINED #define GrMockSurfaceProxy_DEFINED -#include "src/gpu/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" class GrMockSurfaceProxy : public GrSurfaceProxy { public: - GrMockSurfaceProxy(SkString name) : GrSurfaceProxy( - GrBackendFormat::MakeMock(GrColorType::kRGBA_8888, SkImage::CompressionType::kNone), - SkISize::Make(1, 1), - SkBackingFit::kExact, - SkBudgeted::kNo, - GrProtected::kNo, - GrInternalSurfaceFlags::kNone, - UseAllocator::kNo) { + GrMockSurfaceProxy(SkString name, std::string_view label) + : GrSurfaceProxy(GrBackendFormat::MakeMock(GrColorType::kRGBA_8888, + SkImage::CompressionType::kNone), + SkISize::Make(1, 1), + SkBackingFit::kExact, + SkBudgeted::kNo, + GrProtected::kNo, + GrInternalSurfaceFlags::kNone, + UseAllocator::kNo, + label) { SkDEBUGCODE(this->setDebugName(std::move(name))); } diff --git a/third_party/skia/src/gpu/mock/GrMockTexture.h b/third_party/skia/src/gpu/ganesh/mock/GrMockTexture.h similarity index 78% rename from third_party/skia/src/gpu/mock/GrMockTexture.h rename to third_party/skia/src/gpu/ganesh/mock/GrMockTexture.h index b6b2e68eb7ad..2dcc826726a6 100644 --- a/third_party/skia/src/gpu/mock/GrMockTexture.h +++ b/third_party/skia/src/gpu/ganesh/mock/GrMockTexture.h @@ -8,10 +8,10 @@ #define GrMockTexture_DEFINED #include "include/gpu/mock/GrMockTypes.h" -#include "src/gpu/GrAttachment.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/mock/GrMockGpu.h" +#include "src/gpu/ganesh/GrAttachment.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/mock/GrMockGpu.h" class GrMockTexture : public GrTexture { public: @@ -20,8 +20,9 @@ class GrMockTexture : public GrTexture { SkISize dimensions, GrProtected isProtected, GrMipmapStatus mipmapStatus, - const GrMockTextureInfo& info) - : GrMockTexture(gpu, dimensions, isProtected, mipmapStatus, info) { + const GrMockTextureInfo& info, + std::string_view label) + : GrMockTexture(gpu, dimensions, isProtected, mipmapStatus, info, label) { this->registerWithCache(budgeted); } @@ -31,8 +32,9 @@ class GrMockTexture : public GrTexture { GrMipmapStatus mipmapStatus, const GrMockTextureInfo& info, GrWrapCacheable cacheable, - GrIOType ioType) - : GrMockTexture(gpu, dimensions, isProtected, mipmapStatus, info) { + GrIOType ioType, + std::string_view label) + : GrMockTexture(gpu, dimensions, isProtected, mipmapStatus, info, label) { if (ioType == kRead_GrIOType) { this->setReadOnly(); } @@ -54,9 +56,11 @@ class GrMockTexture : public GrTexture { protected: // constructor for subclasses GrMockTexture(GrMockGpu* gpu, const SkISize& dimensions, GrProtected isProtected, - GrMipmapStatus mipmapStatus, const GrMockTextureInfo& info) - : GrSurface(gpu, dimensions, isProtected) - , INHERITED(gpu, dimensions, isProtected, GrTextureType::k2D, mipmapStatus) + GrMipmapStatus mipmapStatus, + const GrMockTextureInfo& info, + std::string_view label) + : GrSurface(gpu, dimensions, isProtected, label) + , INHERITED(gpu, dimensions, isProtected, GrTextureType::k2D, mipmapStatus, label) , fInfo(info) {} void onRelease() override { @@ -84,18 +88,21 @@ class GrMockRenderTarget : public GrRenderTarget { SkISize dimensions, int sampleCnt, GrProtected isProtected, - const GrMockRenderTargetInfo& info) - : GrSurface(gpu, dimensions, isProtected) - , INHERITED(gpu, dimensions, sampleCnt, isProtected) + const GrMockRenderTargetInfo& info, + std::string_view label) + : GrSurface(gpu, dimensions, isProtected, label) + , INHERITED(gpu, dimensions, sampleCnt, isProtected, label) , fInfo(info) { this->registerWithCache(budgeted); } enum Wrapped { kWrapped }; GrMockRenderTarget(GrMockGpu* gpu, Wrapped, SkISize dimensions, int sampleCnt, - GrProtected isProtected, const GrMockRenderTargetInfo& info) - : GrSurface(gpu, dimensions, isProtected) - , INHERITED(gpu, dimensions, sampleCnt, isProtected) + GrProtected isProtected, + const GrMockRenderTargetInfo& info, + std::string_view label) + : GrSurface(gpu, dimensions, isProtected, label) + , INHERITED(gpu, dimensions, sampleCnt, isProtected, label) , fInfo(info) { this->registerWithCacheWrapped(GrWrapCacheable::kNo); } @@ -138,9 +145,10 @@ class GrMockRenderTarget : public GrRenderTarget { SkISize dimensions, int sampleCnt, GrProtected isProtected, - const GrMockRenderTargetInfo& info) - : GrSurface(gpu, dimensions, isProtected) - , INHERITED(gpu, dimensions, sampleCnt, isProtected) + const GrMockRenderTargetInfo& info, + std::string_view label) + : GrSurface(gpu, dimensions, isProtected, label) + , INHERITED(gpu, dimensions, sampleCnt, isProtected, label) , fInfo(info) {} private: @@ -159,10 +167,11 @@ class GrMockTextureRenderTarget : public GrMockTexture, public GrMockRenderTarge GrProtected isProtected, GrMipmapStatus mipmapStatus, const GrMockTextureInfo& texInfo, - const GrMockRenderTargetInfo& rtInfo) - : GrSurface(gpu, dimensions, isProtected) - , GrMockTexture(gpu, dimensions, isProtected, mipmapStatus, texInfo) - , GrMockRenderTarget(gpu, dimensions, sampleCnt, isProtected, rtInfo) { + const GrMockRenderTargetInfo& rtInfo, + std::string_view label) + : GrSurface(gpu, dimensions, isProtected, label) + , GrMockTexture(gpu, dimensions, isProtected, mipmapStatus, texInfo, label) + , GrMockRenderTarget(gpu, dimensions, sampleCnt, isProtected, rtInfo, label) { this->registerWithCache(budgeted); } @@ -174,10 +183,11 @@ class GrMockTextureRenderTarget : public GrMockTexture, public GrMockRenderTarge GrMipmapStatus mipmapStatus, const GrMockTextureInfo& texInfo, const GrMockRenderTargetInfo& rtInfo, - GrWrapCacheable cacheable) - : GrSurface(gpu, dimensions, isProtected) - , GrMockTexture(gpu, dimensions, isProtected, mipmapStatus, texInfo) - , GrMockRenderTarget(gpu, dimensions, sampleCnt, isProtected, rtInfo) { + GrWrapCacheable cacheable, + std::string_view label) + : GrSurface(gpu, dimensions, isProtected, label) + , GrMockTexture(gpu, dimensions, isProtected, mipmapStatus, texInfo, label) + , GrMockRenderTarget(gpu, dimensions, sampleCnt, isProtected, rtInfo, label) { this->registerWithCacheWrapped(cacheable); } diff --git a/third_party/skia/src/gpu/mock/GrMockTypes.cpp b/third_party/skia/src/gpu/ganesh/mock/GrMockTypes.cpp similarity index 100% rename from third_party/skia/src/gpu/mock/GrMockTypes.cpp rename to third_party/skia/src/gpu/ganesh/mock/GrMockTypes.cpp diff --git a/third_party/skia/src/gpu/mtl/BUILD.bazel b/third_party/skia/src/gpu/ganesh/mtl/BUILD.bazel similarity index 72% rename from third_party/skia/src/gpu/mtl/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/mtl/BUILD.bazel index bb07b52499ac..270cd2b55f71 100644 --- a/third_party/skia/src/gpu/mtl/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/mtl/BUILD.bazel @@ -1,12 +1,14 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrMtlAttachment_hdr", hdrs = ["GrMtlAttachment.h"], visibility = ["//:__subpackages__"], deps = [ "//include/gpu/mtl:GrMtlTypes_hdr", - "//src/gpu:GrAttachment_hdr", + "//src/gpu/ganesh:GrAttachment_hdr", ], ) @@ -16,7 +18,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrMtlUniformHandler_hdr", - "//src/gpu:GrGpuBuffer_hdr", + "//src/gpu/ganesh:GrGpuBuffer_hdr", ], ) @@ -27,7 +29,7 @@ generated_cc_atom( deps = [ ":GrMtlAttachment_hdr", "//include/private:SkTDArray_hdr", - "//src/gpu:GrCaps_hdr", + "//src/gpu/ganesh:GrCaps_hdr", ], ) @@ -40,10 +42,10 @@ generated_cc_atom( ":GrMtlUtil_hdr", "//include/core:SkRefCnt_hdr", "//include/gpu:GrTypes_hdr", - "//src/gpu:GrBuffer_hdr", - "//src/gpu:GrManagedResource_hdr", - "//src/gpu:GrRefCnt_hdr", - "//src/gpu:GrSurface_hdr", + "//src/gpu/ganesh:GrBuffer_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", + "//src/gpu/ganesh:GrRefCnt_hdr", + "//src/gpu/ganesh:GrSurface_hdr", ], ) @@ -54,7 +56,7 @@ generated_cc_atom( deps = [ "//include/core:SkImage_hdr", "//include/gpu/mtl:GrMtlTypes_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -65,7 +67,7 @@ generated_cc_atom( deps = [ "//include/gpu:GrTypes_hdr", "//src/core:SkOpts_hdr", - "//src/gpu:GrManagedResource_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", ], ) @@ -76,7 +78,7 @@ generated_cc_atom( deps = [ "//include/gpu:GrTypes_hdr", "//include/gpu/mtl:GrMtlTypes_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -91,15 +93,15 @@ generated_cc_atom( ":GrMtlResourceProvider_hdr", ":GrMtlUtil_hdr", "//include/gpu/mtl:GrMtlBackendContext_hdr", - "//include/private:GrMtlTypesPriv_hdr", "//include/private:SkDeque_hdr", - "//src/gpu:GrFinishCallbacks_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrRingBuffer_hdr", - "//src/gpu:GrSemaphore_hdr", - "//src/gpu:GrStagingBufferManager_hdr", - "//src/gpu:GrTexture_hdr", + "//include/private/gpu/ganesh:GrMtlTypesPriv_hdr", + "//src/gpu/ganesh:GrFinishCallbacks_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrRingBuffer_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", + "//src/gpu/ganesh:GrStagingBufferManager_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) @@ -109,8 +111,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrMtlGpu_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", ], ) @@ -121,8 +123,9 @@ generated_cc_atom( deps = [ ":GrMtlUniformHandler_hdr", ":GrMtlVaryingHandler_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", + "//include/gpu:GrContextOptions_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", "//src/sksl:SkSLCompiler_hdr", ], ) @@ -134,7 +137,7 @@ generated_cc_atom( deps = [ ":GrMtlUniformHandler_hdr", "//src/core:SkAutoMalloc_hdr", - "//src/gpu:GrUniformDataManager_hdr", + "//src/gpu/ganesh:GrUniformDataManager_hdr", ], ) @@ -146,9 +149,9 @@ generated_cc_atom( ":GrMtlBuffer_hdr", ":GrMtlPipelineStateDataManager_hdr", ":GrMtlPipeline_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrStencilSettings_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", ], ) @@ -156,7 +159,7 @@ generated_cc_atom( name = "GrMtlPipeline_hdr", hdrs = ["GrMtlPipeline.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrManagedResource_hdr"], + deps = ["//src/gpu/ganesh:GrManagedResource_hdr"], ) generated_cc_atom( @@ -167,7 +170,7 @@ generated_cc_atom( ":GrMtlSampler_hdr", ":GrMtlUniformHandler_hdr", ":GrMtlUtil_hdr", - "//src/gpu:GrSamplerState_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", ], ) @@ -179,8 +182,8 @@ generated_cc_atom( ":GrMtlAttachment_hdr", ":GrMtlFramebuffer_hdr", "//include/gpu:GrBackendSurface_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", ], ) @@ -197,8 +200,8 @@ generated_cc_atom( "//include/private:SkTArray_hdr", "//src/core:SkLRUCache_hdr", "//src/core:SkTDynamicHash_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu:GrThreadSafePipelineBuilder_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrThreadSafePipelineBuilder_hdr", ], ) @@ -208,7 +211,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//src/core:SkOpts_hdr", - "//src/gpu:GrManagedResource_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", ], ) @@ -219,9 +222,9 @@ generated_cc_atom( deps = [ ":GrMtlUtil_hdr", "//include/gpu:GrBackendSemaphore_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrManagedResource_hdr", - "//src/gpu:GrSemaphore_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", ], ) @@ -241,7 +244,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrMtlAttachment_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) @@ -261,8 +264,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//src/core:SkTBlockList_hdr", - "//src/gpu:GrShaderVar_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrShaderVar_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -272,8 +275,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu:GrBackendSurface_hdr", - "//include/private:GrMtlTypesPriv_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/gpu:GrContextOptions_hdr", + "//include/private/gpu/ganesh:GrMtlTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/sksl/ir:SkSLProgram_hdr", ], ) @@ -282,5 +286,5 @@ generated_cc_atom( name = "GrMtlVaryingHandler_hdr", hdrs = ["GrMtlVaryingHandler.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu/glsl:GrGLSLVarying_hdr"], + deps = ["//src/gpu/ganesh/glsl:GrGLSLVarying_hdr"], ) diff --git a/third_party/skia/src/gpu/mtl/GrMtlAttachment.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlAttachment.h similarity index 93% rename from third_party/skia/src/gpu/mtl/GrMtlAttachment.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlAttachment.h index 3d3790f1b28e..cfa6d83e84ff 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlAttachment.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlAttachment.h @@ -9,7 +9,7 @@ #define GrMtlAttachment_DEFINED #include "include/gpu/mtl/GrMtlTypes.h" -#include "src/gpu/GrAttachment.h" +#include "src/gpu/ganesh/GrAttachment.h" #import @@ -74,13 +74,15 @@ class GrMtlAttachment : public GrAttachment { SkISize dimensions, UsageFlags supportedUsages, id texture, - SkBudgeted); + SkBudgeted, + std::string_view label); GrMtlAttachment(GrMtlGpu* gpu, SkISize dimensions, UsageFlags supportedUsages, id texture, - GrWrapCacheable); + GrWrapCacheable, + std::string_view label); GrMtlGpu* getMtlGpu() const; diff --git a/third_party/skia/src/gpu/mtl/GrMtlAttachment.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlAttachment.mm similarity index 92% rename from third_party/skia/src/gpu/mtl/GrMtlAttachment.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlAttachment.mm index f7948bedc50e..a553b60fa824 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlAttachment.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlAttachment.mm @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlAttachment.h" +#include "src/gpu/ganesh/mtl/GrMtlAttachment.h" -#include "src/gpu/mtl/GrMtlGpu.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag @@ -20,10 +20,11 @@ SkISize dimensions, UsageFlags supportedUsages, id texture, - SkBudgeted budgeted) + SkBudgeted budgeted, + std::string_view label) : GrAttachment(gpu, dimensions, supportedUsages, texture.sampleCount, texture.mipmapLevelCount > 1 ? GrMipmapped::kYes : GrMipmapped::kNo, - GrProtected::kNo) + GrProtected::kNo, label) , fTexture(texture) { this->registerWithCache(budgeted); } @@ -32,10 +33,11 @@ SkISize dimensions, UsageFlags supportedUsages, id texture, - GrWrapCacheable cacheable) + GrWrapCacheable cacheable, + std::string_view label) : GrAttachment(gpu, dimensions, supportedUsages, texture.sampleCount, texture.mipmapLevelCount > 1 ? GrMipmapped::kYes : GrMipmapped::kNo, - GrProtected::kNo) + GrProtected::kNo, label) , fTexture(texture) { this->registerWithCacheWrapped(cacheable); } @@ -140,7 +142,7 @@ #endif return sk_sp(new GrMtlAttachment(gpu, dimensions, attachmentUsages, - texture, budgeted)); + texture, budgeted, /*label=*/{})); } sk_sp GrMtlAttachment::MakeWrapped( @@ -151,7 +153,7 @@ GrWrapCacheable cacheable) { return sk_sp(new GrMtlAttachment(gpu, dimensions, attachmentUsages, texture, - cacheable)); + cacheable, /*label=*/{})); } GrMtlAttachment::~GrMtlAttachment() { diff --git a/third_party/skia/src/gpu/mtl/GrMtlBuffer.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlBuffer.h similarity index 79% rename from third_party/skia/src/gpu/mtl/GrMtlBuffer.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlBuffer.h index 5716779662af..fe1f57d70e69 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlBuffer.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlBuffer.h @@ -8,8 +8,8 @@ #ifndef GrMtlBuffer_DEFINED #define GrMtlBuffer_DEFINED -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/mtl/GrMtlUniformHandler.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlUniformHandler.h" #import @@ -26,7 +26,11 @@ class GrMtlBuffer: public GrGpuBuffer { id mtlBuffer() const { return fMtlBuffer; } protected: - GrMtlBuffer(GrMtlGpu*, size_t size, GrGpuBufferType intendedType, GrAccessPattern); + GrMtlBuffer(GrMtlGpu*, + size_t size, + GrGpuBufferType intendedType, + GrAccessPattern, + std::string_view label); void onAbandon() override; void onRelease() override; diff --git a/third_party/skia/src/gpu/mtl/GrMtlBuffer.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlBuffer.mm similarity index 91% rename from third_party/skia/src/gpu/mtl/GrMtlBuffer.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlBuffer.mm index eba3aab37610..3dd52ae4f967 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlBuffer.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlBuffer.mm @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrStagingBufferManager.h" -#include "src/gpu/mtl/GrMtlBuffer.h" -#include "src/gpu/mtl/GrMtlCommandBuffer.h" -#include "src/gpu/mtl/GrMtlGpu.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrStagingBufferManager.h" +#include "src/gpu/ganesh/mtl/GrMtlBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlCommandBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag @@ -37,7 +37,7 @@ sk_sp GrMtlBuffer::Make(GrMtlGpu* gpu, size_t size, GrGpuBufferType intendedType, GrAccessPattern accessPattern, const void* data) { - sk_sp buffer(new GrMtlBuffer(gpu, size, intendedType, accessPattern)); + sk_sp buffer(new GrMtlBuffer(gpu, size, intendedType, accessPattern, /*label=*/{})); if (data && !buffer->onUpdateData(data, size)) { return nullptr; } @@ -45,8 +45,8 @@ } GrMtlBuffer::GrMtlBuffer(GrMtlGpu* gpu, size_t size, GrGpuBufferType intendedType, - GrAccessPattern accessPattern) - : INHERITED(gpu, size, intendedType, accessPattern) + GrAccessPattern accessPattern, std::string_view label) + : INHERITED(gpu, size, intendedType, accessPattern, label) , fIsDynamic(accessPattern != kStatic_GrAccessPattern) { NSUInteger options = 0; if (@available(macOS 10.11, iOS 9.0, *)) { diff --git a/third_party/skia/src/gpu/mtl/GrMtlCaps.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlCaps.h similarity index 98% rename from third_party/skia/src/gpu/mtl/GrMtlCaps.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlCaps.h index 37e988cfb24b..8767027d356e 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlCaps.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlCaps.h @@ -9,8 +9,8 @@ #define GrMtlCaps_DEFINED #include "include/private/SkTDArray.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/mtl/GrMtlAttachment.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/mtl/GrMtlAttachment.h" #import diff --git a/third_party/skia/src/gpu/mtl/GrMtlCaps.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlCaps.mm similarity index 98% rename from third_party/skia/src/gpu/mtl/GrMtlCaps.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlCaps.mm index 0b6f0aee9fab..d7dafb8c568a 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlCaps.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlCaps.mm @@ -5,24 +5,24 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlCaps.h" +#include "src/gpu/ganesh/mtl/GrMtlCaps.h" #include "include/core/SkRect.h" #include "include/gpu/GrBackendSurface.h" #include "src/core/SkCompressedDataUtils.h" #include "src/core/SkReadBuffer.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrSurfaceProxy.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/mtl/GrMtlRenderTarget.h" -#include "src/gpu/mtl/GrMtlTexture.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/mtl/GrMtlRenderTarget.h" +#include "src/gpu/ganesh/mtl/GrMtlTexture.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag @@ -364,8 +364,9 @@ fOversizedStencilSupport = true; - fMipmapSupport = true; // always available in Metal fNPOTTextureTileSupport = true; // always available in Metal + fMipmapSupport = true; // always available in Metal + fAnisoSupport = true; // always available in Metal fReuseScratchTextures = true; // Assuming this okay @@ -527,12 +528,8 @@ static bool format_is_srgb(MTLPixelFormat format) { shaderCaps->fCanUseFastMath = true; } -void GrMtlCaps::applyDriverCorrectnessWorkarounds(const GrContextOptions&, - const id device) { - // TODO: We may need to disable the fastmath option on Intel devices to avoid corruption -// if ([device.name rangeOfString:@"Intel"].location != NSNotFound) { -// fShaderCaps->fCanUseFastMath = false; -// } +void GrMtlCaps::applyDriverCorrectnessWorkarounds(const GrContextOptions&, const id) { + // We don't have any active Metal workarounds. } // Define this so we can use it to initialize arrays and work around diff --git a/third_party/skia/src/gpu/mtl/GrMtlCommandBuffer.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlCommandBuffer.h similarity index 90% rename from third_party/skia/src/gpu/mtl/GrMtlCommandBuffer.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlCommandBuffer.h index 29c18a7af78a..0caaeb426613 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlCommandBuffer.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlCommandBuffer.h @@ -12,12 +12,12 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/GrTypes.h" -#include "src/gpu/GrBuffer.h" -#include "src/gpu/GrManagedResource.h" -#include "src/gpu/GrRefCnt.h" -#include "src/gpu/GrSurface.h" -#include "src/gpu/mtl/GrMtlRenderCommandEncoder.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/GrBuffer.h" +#include "src/gpu/ganesh/GrManagedResource.h" +#include "src/gpu/ganesh/GrRefCnt.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" class GrMtlEvent; class GrMtlGpu; @@ -37,7 +37,7 @@ class GrMtlCommandBuffer : public SkRefCnt { bool commit(bool waitUntilCompleted); bool hasWork() { return fHasWork; } - void addFinishedCallback(sk_sp callback) { + void addFinishedCallback(sk_sp callback) { fFinishedCallbacks.push_back(std::move(callback)); } @@ -114,7 +114,7 @@ class GrMtlCommandBuffer : public SkRefCnt { MTLRenderPassDescriptor* fPreviousRenderPassDescriptor; bool fHasWork; - SkTArray> fFinishedCallbacks; + SkTArray> fFinishedCallbacks; }; diff --git a/third_party/skia/src/gpu/mtl/GrMtlCommandBuffer.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlCommandBuffer.mm similarity index 87% rename from third_party/skia/src/gpu/mtl/GrMtlCommandBuffer.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlCommandBuffer.mm index d25dd6d572d9..47c303d64e62 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlCommandBuffer.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlCommandBuffer.mm @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlCommandBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlCommandBuffer.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/mtl/GrMtlGpu.h" -#include "src/gpu/mtl/GrMtlOpsRenderPass.h" -#include "src/gpu/mtl/GrMtlPipelineState.h" -#include "src/gpu/mtl/GrMtlRenderCommandEncoder.h" -#include "src/gpu/mtl/GrMtlSemaphore.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlOpsRenderPass.h" +#include "src/gpu/ganesh/mtl/GrMtlPipelineState.h" +#include "src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h" +#include "src/gpu/ganesh/mtl/GrMtlSemaphore.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag @@ -21,8 +21,12 @@ GR_NORETAIN_BEGIN sk_sp GrMtlCommandBuffer::Make(id queue) { - id mtlCommandBuffer; - mtlCommandBuffer = [queue commandBuffer]; +#ifdef SK_BUILD_FOR_IOS + if (GrMtlIsAppInBackground()) { + NSLog(@"GrMtlCommandBuffer: WARNING: Creating MTLCommandBuffer while in background."); + } +#endif + id mtlCommandBuffer = [queue commandBuffer]; if (nil == mtlCommandBuffer) { return nullptr; } @@ -56,6 +60,10 @@ } this->endAllEncoding(); + if (fCmdBuffer.status != MTLCommandBufferStatusNotEnqueued) { + NSLog(@"GrMtlCommandBuffer: tried to create MTLBlitCommandEncoder while in invalid state."); + return nullptr; + } #ifdef SK_BUILD_FOR_IOS if (GrMtlIsAppInBackground()) { fActiveBlitCommandEncoder = nil; @@ -155,6 +163,10 @@ static bool compatible(const MTLRenderPassAttachmentDescriptor* first, MTLRenderPassDescriptor* descriptor, GrMtlOpsRenderPass* opsRenderPass) { this->endAllEncoding(); + if (fCmdBuffer.status != MTLCommandBufferStatusNotEnqueued) { + NSLog(@"GrMtlCommandBuffer: tried to create MTLRenderCommandEncoder while in bad state."); + return nullptr; + } #ifdef SK_BUILD_FOR_IOS if (GrMtlIsAppInBackground()) { fActiveRenderCommandEncoder = nullptr; @@ -175,6 +187,10 @@ static bool compatible(const MTLRenderPassAttachmentDescriptor* first, bool GrMtlCommandBuffer::commit(bool waitUntilCompleted) { this->endAllEncoding(); + if (fCmdBuffer.status != MTLCommandBufferStatusNotEnqueued) { + NSLog(@"GrMtlCommandBuffer: Tried to commit command buffer while in invalid state.\n"); + return false; + } #ifdef SK_BUILD_FOR_IOS if (GrMtlIsAppInBackground()) { NSLog(@"GrMtlCommandBuffer: Tried to commit command buffer while in background.\n"); @@ -187,9 +203,13 @@ static bool compatible(const MTLRenderPassAttachmentDescriptor* first, } if (fCmdBuffer.status == MTLCommandBufferStatusError) { - NSString* description = fCmdBuffer.error.localizedDescription; +#ifdef SK_DEBUG + NSString* description = [[fCmdBuffer error] localizedDescription]; const char* errorString = [description UTF8String]; SkDebugf("Error submitting command buffer: %s\n", errorString); +#else + SkDebugf("Error submitting command buffer\n"); +#endif } return (fCmdBuffer.status != MTLCommandBufferStatusError); diff --git a/third_party/skia/src/gpu/mtl/GrMtlCppUtil.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlCppUtil.h similarity index 95% rename from third_party/skia/src/gpu/mtl/GrMtlCppUtil.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlCppUtil.h index c09536343391..14f522278635 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlCppUtil.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlCppUtil.h @@ -10,7 +10,7 @@ #include "include/core/SkImage.h" #include "include/gpu/mtl/GrMtlTypes.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" class GrBackendFormat; diff --git a/third_party/skia/src/gpu/mtl/GrMtlDepthStencil.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlDepthStencil.h similarity index 98% rename from third_party/skia/src/gpu/mtl/GrMtlDepthStencil.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlDepthStencil.h index b1d6f15a733b..f92b61ba8b66 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlDepthStencil.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlDepthStencil.h @@ -12,7 +12,7 @@ #include "include/gpu/GrTypes.h" #include "src/core/SkOpts.h" -#include "src/gpu/GrManagedResource.h" +#include "src/gpu/ganesh/GrManagedResource.h" #include class GrMtlGpu; diff --git a/third_party/skia/src/gpu/mtl/GrMtlDepthStencil.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlDepthStencil.mm similarity index 97% rename from third_party/skia/src/gpu/mtl/GrMtlDepthStencil.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlDepthStencil.mm index ba07fb3240e4..69d3edfc2459 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlDepthStencil.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlDepthStencil.mm @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/mtl/GrMtlDepthStencil.h" -#include "src/gpu/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/mtl/GrMtlDepthStencil.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag diff --git a/third_party/skia/src/gpu/mtl/GrMtlFramebuffer.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlFramebuffer.h similarity index 95% rename from third_party/skia/src/gpu/mtl/GrMtlFramebuffer.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlFramebuffer.h index 731f05337c6f..fdce2eff9fd1 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlFramebuffer.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlFramebuffer.h @@ -10,7 +10,7 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/mtl/GrMtlTypes.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" class GrMtlAttachment; diff --git a/third_party/skia/src/gpu/mtl/GrMtlFramebuffer.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlFramebuffer.mm similarity index 91% rename from third_party/skia/src/gpu/mtl/GrMtlFramebuffer.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlFramebuffer.mm index 28b45d3a8b2a..abfc95690c5c 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlFramebuffer.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlFramebuffer.mm @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlFramebuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlFramebuffer.h" -#include "src/gpu/mtl/GrMtlAttachment.h" +#include "src/gpu/ganesh/mtl/GrMtlAttachment.h" sk_sp GrMtlFramebuffer::Make( GrMtlAttachment* colorAttachment, diff --git a/third_party/skia/src/gpu/mtl/GrMtlGpu.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlGpu.h similarity index 93% rename from third_party/skia/src/gpu/mtl/GrMtlGpu.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlGpu.h index 66528c86a0ad..fed209131664 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlGpu.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlGpu.h @@ -9,22 +9,22 @@ #define GrMtlGpu_DEFINED #include "include/gpu/mtl/GrMtlBackendContext.h" -#include "include/private/GrMtlTypesPriv.h" #include "include/private/SkDeque.h" - -#include "src/gpu/GrFinishCallbacks.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrRingBuffer.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrStagingBufferManager.h" -#include "src/gpu/GrTexture.h" - -#include "src/gpu/mtl/GrMtlAttachment.h" -#include "src/gpu/mtl/GrMtlCaps.h" -#include "src/gpu/mtl/GrMtlCommandBuffer.h" -#include "src/gpu/mtl/GrMtlResourceProvider.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "include/private/gpu/ganesh/GrMtlTypesPriv.h" + +#include "src/gpu/ganesh/GrFinishCallbacks.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrRingBuffer.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrStagingBufferManager.h" +#include "src/gpu/ganesh/GrTexture.h" + +#include "src/gpu/ganesh/mtl/GrMtlAttachment.h" +#include "src/gpu/ganesh/mtl/GrMtlCaps.h" +#include "src/gpu/ganesh/mtl/GrMtlCommandBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlResourceProvider.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #import @@ -142,7 +142,7 @@ class GrMtlGpu : public GrGpu { GrProtected) override; bool onClearBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) override; GrBackendTexture onCreateCompressedBackendTexture(SkISize dimensions, @@ -151,7 +151,7 @@ class GrMtlGpu : public GrGpu { GrProtected) override; bool onUpdateCompressedBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t size) override; @@ -227,7 +227,7 @@ class GrMtlGpu : public GrGpu { void addFinishedProc(GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) override; - void addFinishedCallback(sk_sp finishedCallback); + void addFinishedCallback(sk_sp finishedCallback); GrOpsRenderPass* onGetOpsRenderPass(GrRenderTarget*, bool useMSAASurface, @@ -320,4 +320,3 @@ class GrMtlGpu : public GrGpu { }; #endif - diff --git a/third_party/skia/src/gpu/mtl/GrMtlGpu.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlGpu.mm similarity index 98% rename from third_party/skia/src/gpu/mtl/GrMtlGpu.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlGpu.mm index 483d5bf31e9b..0ec5c9e05172 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlGpu.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlGpu.mm @@ -5,29 +5,29 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkCompressedDataUtils.h" #include "src/core/SkConvertPixels.h" #include "src/core/SkMathPriv.h" #include "src/core/SkMipmap.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrThreadSafePipelineBuilder.h" -#include "src/gpu/mtl/GrMtlBuffer.h" -#include "src/gpu/mtl/GrMtlCommandBuffer.h" -#include "src/gpu/mtl/GrMtlOpsRenderPass.h" -#include "src/gpu/mtl/GrMtlPipelineStateBuilder.h" -#include "src/gpu/mtl/GrMtlRenderCommandEncoder.h" -#include "src/gpu/mtl/GrMtlSemaphore.h" -#include "src/gpu/mtl/GrMtlTexture.h" -#include "src/gpu/mtl/GrMtlTextureRenderTarget.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" +#include "src/gpu/ganesh/mtl/GrMtlBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlCommandBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlOpsRenderPass.h" +#include "src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.h" +#include "src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h" +#include "src/gpu/ganesh/mtl/GrMtlSemaphore.h" +#include "src/gpu/ganesh/mtl/GrMtlTexture.h" +#include "src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #import @@ -261,10 +261,10 @@ void GrMtlGpu::addFinishedProc(GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { SkASSERT(finishedProc); - this->addFinishedCallback(GrRefCntedCallback::Make(finishedProc, finishedContext)); + this->addFinishedCallback(skgpu::RefCntedCallback::Make(finishedProc, finishedContext)); } -void GrMtlGpu::addFinishedCallback(sk_sp finishedCallback) { +void GrMtlGpu::addFinishedCallback(sk_sp finishedCallback) { SkASSERT(finishedCallback); // Besides the current commandbuffer, we also add the finishedCallback to the newest outstanding // commandbuffer. Our contract for calling the proc is that all previous submitted cmdbuffers @@ -923,7 +923,7 @@ void copy_src_data(char* dst, } bool GrMtlGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) { GrMtlTextureInfo info; SkAssertResult(backendTexture.getMtlTextureInfo(&info)); @@ -1025,7 +1025,7 @@ void copy_src_data(char* dst, } bool GrMtlGpu::onUpdateCompressedBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t size) { GrMtlTextureInfo info; diff --git a/third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.h similarity index 96% rename from third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.h index 7790e927ffcd..a47dd2160607 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.h @@ -8,9 +8,9 @@ #ifndef GrMtlOpsRenderPass_DEFINED #define GrMtlOpsRenderPass_DEFINED -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" #import diff --git a/third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.mm similarity index 97% rename from third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.mm index d9292befb736..6b69107bef43 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.mm @@ -5,17 +5,17 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlOpsRenderPass.h" - -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/mtl/GrMtlCommandBuffer.h" -#include "src/gpu/mtl/GrMtlPipelineState.h" -#include "src/gpu/mtl/GrMtlPipelineStateBuilder.h" -#include "src/gpu/mtl/GrMtlRenderCommandEncoder.h" -#include "src/gpu/mtl/GrMtlRenderTarget.h" -#include "src/gpu/mtl/GrMtlTexture.h" +#include "src/gpu/ganesh/mtl/GrMtlOpsRenderPass.h" + +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/mtl/GrMtlCommandBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlPipelineState.h" +#include "src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.h" +#include "src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h" +#include "src/gpu/ganesh/mtl/GrMtlRenderTarget.h" +#include "src/gpu/ganesh/mtl/GrMtlTexture.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag diff --git a/third_party/skia/src/gpu/mtl/GrMtlPipeline.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipeline.h similarity index 96% rename from third_party/skia/src/gpu/mtl/GrMtlPipeline.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlPipeline.h index a3fe4d20e884..6e15754a68b4 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlPipeline.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipeline.h @@ -8,7 +8,7 @@ #ifndef GrMtlPipeline_DEFINED #define GrMtlPipeline_DEFINED -#include "src/gpu/GrManagedResource.h" +#include "src/gpu/ganesh/GrManagedResource.h" #import diff --git a/third_party/skia/src/gpu/mtl/GrMtlPipelineState.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineState.h similarity index 92% rename from third_party/skia/src/gpu/mtl/GrMtlPipelineState.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineState.h index 05c2322c083c..e5080e60251a 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlPipelineState.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineState.h @@ -8,12 +8,12 @@ #ifndef GrMtlPipelineState_DEFINED #define GrMtlPipelineState_DEFINED -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/mtl/GrMtlBuffer.h" -#include "src/gpu/mtl/GrMtlPipeline.h" -#include "src/gpu/mtl/GrMtlPipelineStateDataManager.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/mtl/GrMtlBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlPipeline.h" +#include "src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.h" #import diff --git a/third_party/skia/src/gpu/mtl/GrMtlPipelineState.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineState.mm similarity index 92% rename from third_party/skia/src/gpu/mtl/GrMtlPipelineState.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineState.mm index ec38719b45fd..6cbb791ba124 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlPipelineState.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineState.mm @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlPipelineState.h" - -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/mtl/GrMtlBuffer.h" -#include "src/gpu/mtl/GrMtlFramebuffer.h" -#include "src/gpu/mtl/GrMtlGpu.h" -#include "src/gpu/mtl/GrMtlRenderCommandEncoder.h" -#include "src/gpu/mtl/GrMtlTexture.h" +#include "src/gpu/ganesh/mtl/GrMtlPipelineState.h" + +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/mtl/GrMtlBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlFramebuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h" +#include "src/gpu/ganesh/mtl/GrMtlTexture.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag @@ -165,9 +165,9 @@ } const GrXferProcessor::BlendInfo& blendInfo = xferProcessor.getBlendInfo(); - GrBlendCoeff srcCoeff = blendInfo.fSrcBlend; - GrBlendCoeff dstCoeff = blendInfo.fDstBlend; - if (GrBlendCoeffRefsConstant(srcCoeff) || GrBlendCoeffRefsConstant(dstCoeff)) { + skgpu::BlendCoeff srcCoeff = blendInfo.fSrcBlend; + skgpu::BlendCoeff dstCoeff = blendInfo.fDstBlend; + if (skgpu::BlendCoeffRefsConstant(srcCoeff) || skgpu::BlendCoeffRefsConstant(dstCoeff)) { // Swizzle the blend to match what the shader will output. SkPMColor4f blendConst = swizzle.applyTo(blendInfo.fBlendConstant); diff --git a/third_party/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.h similarity index 91% rename from third_party/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.h index 435433879e47..7259925aeed8 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.h @@ -8,10 +8,11 @@ #ifndef GrMtlPipelineStateBuilder_DEFINED #define GrMtlPipelineStateBuilder_DEFINED -#include "src/gpu/GrPipeline.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/mtl/GrMtlUniformHandler.h" -#include "src/gpu/mtl/GrMtlVaryingHandler.h" +#include "include/gpu/GrContextOptions.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/mtl/GrMtlUniformHandler.h" +#include "src/gpu/ganesh/mtl/GrMtlVaryingHandler.h" #include "src/sksl/SkSLCompiler.h" #import diff --git a/third_party/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm similarity index 94% rename from third_party/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm index 53490452dbfc..21e366fc8813 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm @@ -5,21 +5,21 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlPipelineStateBuilder.h" +#include "src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkTraceEvent.h" #include "src/core/SkWriteBuffer.h" -#include "src/gpu/GrAutoLocaleSetter.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrPersistentCacheUtils.h" -#include "src/gpu/GrRenderTarget.h" +#include "src/gpu/ganesh/GrAutoLocaleSetter.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrPersistentCacheUtils.h" +#include "src/gpu/ganesh/GrRenderTarget.h" #include "src/utils/SkShaderUtils.h" -#include "src/gpu/mtl/GrMtlGpu.h" -#include "src/gpu/mtl/GrMtlPipelineState.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlPipelineState.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #import @@ -259,76 +259,76 @@ static inline MTLVertexFormat attribute_type_to_mtlformat(GrVertexAttribType typ return vertexDescriptor; } -static MTLBlendFactor blend_coeff_to_mtl_blend(GrBlendCoeff coeff) { +static MTLBlendFactor blend_coeff_to_mtl_blend(skgpu::BlendCoeff coeff) { switch (coeff) { - case kZero_GrBlendCoeff: + case skgpu::BlendCoeff::kZero: return MTLBlendFactorZero; - case kOne_GrBlendCoeff: + case skgpu::BlendCoeff::kOne: return MTLBlendFactorOne; - case kSC_GrBlendCoeff: + case skgpu::BlendCoeff::kSC: return MTLBlendFactorSourceColor; - case kISC_GrBlendCoeff: + case skgpu::BlendCoeff::kISC: return MTLBlendFactorOneMinusSourceColor; - case kDC_GrBlendCoeff: + case skgpu::BlendCoeff::kDC: return MTLBlendFactorDestinationColor; - case kIDC_GrBlendCoeff: + case skgpu::BlendCoeff::kIDC: return MTLBlendFactorOneMinusDestinationColor; - case kSA_GrBlendCoeff: + case skgpu::BlendCoeff::kSA: return MTLBlendFactorSourceAlpha; - case kISA_GrBlendCoeff: + case skgpu::BlendCoeff::kISA: return MTLBlendFactorOneMinusSourceAlpha; - case kDA_GrBlendCoeff: + case skgpu::BlendCoeff::kDA: return MTLBlendFactorDestinationAlpha; - case kIDA_GrBlendCoeff: + case skgpu::BlendCoeff::kIDA: return MTLBlendFactorOneMinusDestinationAlpha; - case kConstC_GrBlendCoeff: + case skgpu::BlendCoeff::kConstC: return MTLBlendFactorBlendColor; - case kIConstC_GrBlendCoeff: + case skgpu::BlendCoeff::kIConstC: return MTLBlendFactorOneMinusBlendColor; - case kS2C_GrBlendCoeff: + case skgpu::BlendCoeff::kS2C: if (@available(macOS 10.12, iOS 11.0, *)) { return MTLBlendFactorSource1Color; } else { return MTLBlendFactorZero; } - case kIS2C_GrBlendCoeff: + case skgpu::BlendCoeff::kIS2C: if (@available(macOS 10.12, iOS 11.0, *)) { return MTLBlendFactorOneMinusSource1Color; } else { return MTLBlendFactorZero; } - case kS2A_GrBlendCoeff: + case skgpu::BlendCoeff::kS2A: if (@available(macOS 10.12, iOS 11.0, *)) { return MTLBlendFactorSource1Alpha; } else { return MTLBlendFactorZero; } - case kIS2A_GrBlendCoeff: + case skgpu::BlendCoeff::kIS2A: if (@available(macOS 10.12, iOS 11.0, *)) { return MTLBlendFactorOneMinusSource1Alpha; } else { return MTLBlendFactorZero; } - case kIllegal_GrBlendCoeff: + case skgpu::BlendCoeff::kIllegal: return MTLBlendFactorZero; } SK_ABORT("Unknown blend coefficient"); } -static MTLBlendOperation blend_equation_to_mtl_blend_op(GrBlendEquation equation) { +static MTLBlendOperation blend_equation_to_mtl_blend_op(skgpu::BlendEquation equation) { static const MTLBlendOperation gTable[] = { - MTLBlendOperationAdd, // kAdd_GrBlendEquation - MTLBlendOperationSubtract, // kSubtract_GrBlendEquation - MTLBlendOperationReverseSubtract, // kReverseSubtract_GrBlendEquation + MTLBlendOperationAdd, // skgpu::BlendEquation::kAdd + MTLBlendOperationSubtract, // skgpu::BlendEquation::kSubtract + MTLBlendOperationReverseSubtract, // skgpu::BlendEquation::kReverseSubtract }; - static_assert(SK_ARRAY_COUNT(gTable) == kFirstAdvancedGrBlendEquation); - static_assert(0 == kAdd_GrBlendEquation); - static_assert(1 == kSubtract_GrBlendEquation); - static_assert(2 == kReverseSubtract_GrBlendEquation); + static_assert(SK_ARRAY_COUNT(gTable) == (int)skgpu::BlendEquation::kFirstAdvanced); + static_assert(0 == (int)skgpu::BlendEquation::kAdd); + static_assert(1 == (int)skgpu::BlendEquation::kSubtract); + static_assert(2 == (int)skgpu::BlendEquation::kReverseSubtract); - SkASSERT((unsigned)equation < kGrBlendEquationCnt); - return gTable[equation]; + SkASSERT((unsigned)equation < skgpu::kBlendEquationCnt); + return gTable[(int)equation]; } static MTLRenderPipelineColorAttachmentDescriptor* create_color_attachment( @@ -344,10 +344,10 @@ static MTLBlendOperation blend_equation_to_mtl_blend_op(GrBlendEquation equation // blending const GrXferProcessor::BlendInfo& blendInfo = pipeline.getXferProcessor().getBlendInfo(); - GrBlendEquation equation = blendInfo.fEquation; - GrBlendCoeff srcCoeff = blendInfo.fSrcBlend; - GrBlendCoeff dstCoeff = blendInfo.fDstBlend; - bool blendOn = !GrBlendShouldDisable(equation, srcCoeff, dstCoeff); + skgpu::BlendEquation equation = blendInfo.fEquation; + skgpu::BlendCoeff srcCoeff = blendInfo.fSrcBlend; + skgpu::BlendCoeff dstCoeff = blendInfo.fDstBlend; + bool blendOn = !skgpu::BlendShouldDisable(equation, srcCoeff, dstCoeff); mtlColorAttachment.blendingEnabled = blendOn; if (writer) { @@ -543,7 +543,7 @@ static uint32_t buffer_size(uint32_t offset, uint32_t maxAlignment) { this->finalizeShaders(); SkSL::Program::Settings settings; - settings.fSharpenTextures = fGpu->getContext()->priv().options().fSharpenMipmappedTextures; + settings.fSharpenTextures = true; SkASSERT(!this->fragColorIsInOut()); SkReadBuffer reader; @@ -739,7 +739,7 @@ static uint32_t buffer_size(uint32_t offset, uint32_t maxAlignment) { auto errorHandler = gpu->getContext()->priv().getShaderErrorHandler(); SkSL::Program::Settings settings; - settings.fSharpenTextures = gpu->getContext()->priv().options().fSharpenMipmappedTextures; + settings.fSharpenTextures = true; GrPersistentCacheUtils::ShaderMetadata meta; meta.fSettings = &settings; diff --git a/third_party/skia/src/gpu/mtl/GrMtlPipelineStateDataManager.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.h similarity index 93% rename from third_party/skia/src/gpu/mtl/GrMtlPipelineStateDataManager.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.h index 4a4ddda96db7..3a07429a7e79 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlPipelineStateDataManager.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.h @@ -9,8 +9,8 @@ #define GrMtlPipelineStateDataManager_DEFINED #include "src/core/SkAutoMalloc.h" -#include "src/gpu/GrUniformDataManager.h" -#include "src/gpu/mtl/GrMtlUniformHandler.h" +#include "src/gpu/ganesh/GrUniformDataManager.h" +#include "src/gpu/ganesh/mtl/GrMtlUniformHandler.h" #import diff --git a/third_party/skia/src/gpu/mtl/GrMtlPipelineStateDataManager.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.mm similarity index 96% rename from third_party/skia/src/gpu/mtl/GrMtlPipelineStateDataManager.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.mm index d33c3c65c461..658ad69bfd7e 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlPipelineStateDataManager.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.mm @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlPipelineStateDataManager.h" +#include "src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.h" -#include "src/gpu/mtl/GrMtlBuffer.h" -#include "src/gpu/mtl/GrMtlGpu.h" -#include "src/gpu/mtl/GrMtlRenderCommandEncoder.h" +#include "src/gpu/ganesh/mtl/GrMtlBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag diff --git a/third_party/skia/src/gpu/mtl/GrMtlRenderCommandEncoder.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h similarity index 92% rename from third_party/skia/src/gpu/mtl/GrMtlRenderCommandEncoder.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h index e1d683d877a5..8835d1be0ef8 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlRenderCommandEncoder.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h @@ -9,10 +9,10 @@ #define GrMtlRenderCommandEncoder_DEFINED #include -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/mtl/GrMtlSampler.h" -#include "src/gpu/mtl/GrMtlUniformHandler.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/mtl/GrMtlSampler.h" +#include "src/gpu/ganesh/mtl/GrMtlUniformHandler.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" class GrMtlSampler; @@ -127,7 +127,7 @@ class GrMtlRenderCommandEncoder { } void setFragmentTexture(id texture, NSUInteger index) { - SkASSERT(index < 16); + SkASSERT(index < kMaxTextures); if (fCurrentTexture[index] != texture) { [fCommandEncoder setFragmentTexture:texture atIndex:index]; @@ -135,6 +135,7 @@ class GrMtlRenderCommandEncoder { } } void setFragmentSamplerState(GrMtlSampler* sampler, NSUInteger index) { + SkASSERT(index < kMaxSamplers); if (fCurrentSampler[index] != sampler) { [fCommandEncoder setFragmentSamplerState: sampler->mtlSampler() atIndex: index]; @@ -245,14 +246,22 @@ class GrMtlRenderCommandEncoder { id fCommandEncoder = nil; + // As of 2022-03-09 All GPU families have the same value at: + // https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf + static const int kMaxSamplers = 16; + // This is a self-imposed limit and is less than any GPU family's value at + // https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf + // Our implementation uses a 1:1 correspondence between textures and samplers. + static const int kMaxTextures = kMaxSamplers; + __weak id fCurrentRenderPipelineState = nil; __weak id fCurrentDepthStencilState = nil; __weak id fCurrentVertexBuffer[2 + GrMtlUniformHandler::kUniformBindingCount]; NSUInteger fCurrentVertexOffset[2 + GrMtlUniformHandler::kUniformBindingCount]; __weak id fCurrentFragmentBuffer[GrMtlUniformHandler::kUniformBindingCount]; NSUInteger fCurrentFragmentOffset[2 + GrMtlUniformHandler::kUniformBindingCount]; - __weak id fCurrentTexture[GrSamplerState::kNumUniqueSamplers]; - GrMtlSampler* fCurrentSampler[GrSamplerState::kNumUniqueSamplers] = {}; + __weak id fCurrentTexture[kMaxTextures]; + GrMtlSampler* fCurrentSampler[kMaxSamplers] = {}; MTLScissorRect fCurrentScissorRect = { 0, 0, 0, 0 }; MTLTriangleFillMode fCurrentTriangleFillMode = (MTLTriangleFillMode)-1; }; diff --git a/third_party/skia/src/gpu/mtl/GrMtlRenderTarget.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderTarget.h similarity index 90% rename from third_party/skia/src/gpu/mtl/GrMtlRenderTarget.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderTarget.h index 0576094b3367..2f4928bd8857 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlRenderTarget.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderTarget.h @@ -8,12 +8,12 @@ #ifndef GrMtlRenderTarget_DEFINED #define GrMtlRenderTarget_DEFINED -#include "src/gpu/GrRenderTarget.h" +#include "src/gpu/ganesh/GrRenderTarget.h" #include "include/gpu/GrBackendSurface.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/mtl/GrMtlAttachment.h" -#include "src/gpu/mtl/GrMtlFramebuffer.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlAttachment.h" +#include "src/gpu/ganesh/mtl/GrMtlFramebuffer.h" #import @@ -61,7 +61,8 @@ class GrMtlRenderTarget: public GrRenderTarget { GrMtlRenderTarget(GrMtlGpu* gpu, SkISize, sk_sp colorAttachment, - sk_sp resolveAttachment); + sk_sp resolveAttachment, + std::string_view label); GrMtlGpu* getMtlGpu() const; @@ -81,7 +82,8 @@ class GrMtlRenderTarget: public GrRenderTarget { SkISize, sk_sp colorAttachment, sk_sp resolveAttachment, - Wrapped); + Wrapped, + std::string_view label); bool completeStencilAttachment(GrAttachment* stencil, bool useMSAASurface) override; diff --git a/third_party/skia/src/gpu/mtl/GrMtlRenderTarget.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderTarget.mm similarity index 87% rename from third_party/skia/src/gpu/mtl/GrMtlRenderTarget.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderTarget.mm index 1c39f2a3aa9a..592a3866f596 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlRenderTarget.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlRenderTarget.mm @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlRenderTarget.h" +#include "src/gpu/ganesh/mtl/GrMtlRenderTarget.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/mtl/GrMtlFramebuffer.h" -#include "src/gpu/mtl/GrMtlGpu.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/mtl/GrMtlFramebuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag @@ -24,9 +24,10 @@ SkISize dimensions, sk_sp colorAttachment, sk_sp resolveAttachment, - Wrapped) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , GrRenderTarget(gpu, dimensions, colorAttachment->numSamples(), GrProtected::kNo) + Wrapped, + std::string_view label) + : GrSurface(gpu, dimensions, GrProtected::kNo, label) + , GrRenderTarget(gpu, dimensions, colorAttachment->numSamples(), GrProtected::kNo, label) , fColorAttachment(std::move(colorAttachment)) , fResolveAttachment(std::move(resolveAttachment)) { this->registerWithCacheWrapped(GrWrapCacheable::kNo); @@ -36,9 +37,10 @@ GrMtlRenderTarget::GrMtlRenderTarget(GrMtlGpu* gpu, SkISize dimensions, sk_sp colorAttachment, - sk_sp resolveAttachment) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , GrRenderTarget(gpu, dimensions, colorAttachment->numSamples(), GrProtected::kNo) + sk_sp resolveAttachment, + std::string_view label) + : GrSurface(gpu, dimensions, GrProtected::kNo, label) + , GrRenderTarget(gpu, dimensions, colorAttachment->numSamples(), GrProtected::kNo, label) , fColorAttachment(std::move(colorAttachment)) , fResolveAttachment(std::move(resolveAttachment)) { } @@ -76,16 +78,16 @@ sk_sp(static_cast(msaaAttachment.release())); mtlRT = new GrMtlRenderTarget( gpu, dimensions, std::move(colorAttachment), std::move(textureAttachment), - kWrapped); + kWrapped, /*label=*/{}); mtlRT->setRequiresManualMSAAResolve(); } else { SkASSERT(sampleCnt == static_cast([texture sampleCount])); mtlRT = new GrMtlRenderTarget(gpu, dimensions, std::move(textureAttachment), nil, - kWrapped); + kWrapped, /*label=*/{}); } } else { mtlRT = new GrMtlRenderTarget(gpu, dimensions, std::move(textureAttachment), nil, - kWrapped); + kWrapped, /*label=*/{}); } return sk_sp(mtlRT); diff --git a/third_party/skia/src/gpu/mtl/GrMtlResourceProvider.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlResourceProvider.h similarity index 91% rename from third_party/skia/src/gpu/mtl/GrMtlResourceProvider.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlResourceProvider.h index 49dd254547f3..2e1c8d8d7353 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlResourceProvider.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlResourceProvider.h @@ -12,12 +12,12 @@ #include "include/private/SkTArray.h" #include "src/core/SkLRUCache.h" #include "src/core/SkTDynamicHash.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrThreadSafePipelineBuilder.h" -#include "src/gpu/mtl/GrMtlDepthStencil.h" -#include "src/gpu/mtl/GrMtlPipeline.h" -#include "src/gpu/mtl/GrMtlPipelineStateBuilder.h" -#include "src/gpu/mtl/GrMtlSampler.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" +#include "src/gpu/ganesh/mtl/GrMtlDepthStencil.h" +#include "src/gpu/ganesh/mtl/GrMtlPipeline.h" +#include "src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.h" +#include "src/gpu/ganesh/mtl/GrMtlSampler.h" #import diff --git a/third_party/skia/src/gpu/mtl/GrMtlResourceProvider.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlResourceProvider.mm similarity index 96% rename from third_party/skia/src/gpu/mtl/GrMtlResourceProvider.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlResourceProvider.mm index 90a4f5e57fa7..cc70829113b4 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlResourceProvider.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlResourceProvider.mm @@ -5,17 +5,17 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlResourceProvider.h" +#include "src/gpu/ganesh/mtl/GrMtlResourceProvider.h" #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/mtl/GrMtlCommandBuffer.h" -#include "src/gpu/mtl/GrMtlGpu.h" -#include "src/gpu/mtl/GrMtlPipelineState.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/mtl/GrMtlCommandBuffer.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlPipelineState.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #include "src/sksl/SkSLCompiler.h" diff --git a/third_party/skia/src/gpu/mtl/GrMtlSampler.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlSampler.h similarity index 97% rename from third_party/skia/src/gpu/mtl/GrMtlSampler.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlSampler.h index 32411ccccab0..943c0f3398b8 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlSampler.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlSampler.h @@ -11,7 +11,7 @@ #import #include "src/core/SkOpts.h" -#include "src/gpu/GrManagedResource.h" +#include "src/gpu/ganesh/GrManagedResource.h" #include class GrSamplerState; diff --git a/third_party/skia/src/gpu/mtl/GrMtlSampler.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlSampler.mm similarity index 88% rename from third_party/skia/src/gpu/mtl/GrMtlSampler.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlSampler.mm index a1d893d813ab..d22380abb3fb 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlSampler.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlSampler.mm @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlSampler.h" +#include "src/gpu/ganesh/mtl/GrMtlSampler.h" -#include "src/gpu/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag @@ -71,7 +71,8 @@ static inline MTLSamplerAddressMode wrap_mode_to_mtl_sampler_address( samplerDesc.mipFilter = mipFilter; samplerDesc.lodMinClamp = 0.0f; samplerDesc.lodMaxClamp = FLT_MAX; // default value according to docs. - samplerDesc.maxAnisotropy = 1.0f; + // 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, *)) { samplerDesc.compareFunction = MTLCompareFunctionNever; @@ -82,7 +83,9 @@ static inline MTLSamplerAddressMode wrap_mode_to_mtl_sampler_address( } GrMtlSampler::Key GrMtlSampler::GenerateKey(GrSamplerState samplerState) { - return samplerState.asIndex(); + // We haven't found any documentation on how anisotropy interacts with other filter settings + // so assume they are all considered. + return samplerState.asKey(/*anisoIsOrthogonal=*/true); } GR_NORETAIN_END diff --git a/third_party/skia/src/gpu/mtl/GrMtlSemaphore.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlSemaphore.h similarity index 93% rename from third_party/skia/src/gpu/mtl/GrMtlSemaphore.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlSemaphore.h index c9874706255e..3f7e39a22040 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlSemaphore.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlSemaphore.h @@ -9,10 +9,10 @@ #define GrMtlSemaphore_DEFINED #include "include/gpu/GrBackendSemaphore.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrManagedResource.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrManagedResource.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #include diff --git a/third_party/skia/src/gpu/mtl/GrMtlSemaphore.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlSemaphore.mm similarity index 94% rename from third_party/skia/src/gpu/mtl/GrMtlSemaphore.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlSemaphore.mm index a76cce63d868..f0fa4accafe6 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlSemaphore.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlSemaphore.mm @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlSemaphore.h" +#include "src/gpu/ganesh/mtl/GrMtlSemaphore.h" -#include "src/gpu/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag diff --git a/third_party/skia/src/gpu/mtl/GrMtlTexture.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTexture.h similarity index 79% rename from third_party/skia/src/gpu/mtl/GrMtlTexture.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlTexture.h index 5e6b3a072aeb..d80c4ba9805c 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlTexture.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTexture.h @@ -8,8 +8,8 @@ #ifndef GrMtlTexture_DEFINED #define GrMtlTexture_DEFINED -#include "src/gpu/GrTexture.h" -#include "src/gpu/mtl/GrMtlAttachment.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/mtl/GrMtlAttachment.h" #import class GrMtlGpu; @@ -43,7 +43,11 @@ class GrMtlTexture : public GrTexture { bool reallocForMipmap(GrMtlGpu* gpu, uint32_t mipLevels); protected: - GrMtlTexture(GrMtlGpu*, SkISize, sk_sp, GrMipmapStatus); + GrMtlTexture(GrMtlGpu*, + SkISize, + sk_sp, + GrMipmapStatus, + std::string_view label); GrMtlGpu* getMtlGpu() const; @@ -63,7 +67,12 @@ class GrMtlTexture : public GrTexture { private: enum Wrapped { kWrapped }; - GrMtlTexture(GrMtlGpu*, SkBudgeted, SkISize, sk_sp, GrMipmapStatus); + GrMtlTexture(GrMtlGpu*, + SkBudgeted, + SkISize, + sk_sp, + GrMipmapStatus, + std::string_view label); GrMtlTexture(GrMtlGpu*, Wrapped, @@ -71,7 +80,8 @@ class GrMtlTexture : public GrTexture { sk_sp, GrMipmapStatus, GrWrapCacheable, - GrIOType); + GrIOType, + std::string_view label); sk_sp fTexture; diff --git a/third_party/skia/src/gpu/mtl/GrMtlTexture.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTexture.mm similarity index 84% rename from third_party/skia/src/gpu/mtl/GrMtlTexture.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlTexture.mm index 9b4506ab68b8..d4d161e60b66 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlTexture.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTexture.mm @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlTexture.h" +#include "src/gpu/ganesh/mtl/GrMtlTexture.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/mtl/GrMtlGpu.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag @@ -21,9 +21,10 @@ SkBudgeted budgeted, SkISize dimensions, sk_sp texture, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , INHERITED(gpu, dimensions, GrProtected::kNo, GrTextureType::k2D, mipmapStatus) + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, dimensions, GrProtected::kNo, label) + , INHERITED(gpu, dimensions, GrProtected::kNo, GrTextureType::k2D, mipmapStatus, label) , fTexture(std::move(texture)) { SkDEBUGCODE(id mtlTexture = fTexture->mtlTexture();) SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == mtlTexture.mipmapLevelCount)); @@ -43,9 +44,10 @@ sk_sp texture, GrMipmapStatus mipmapStatus, GrWrapCacheable cacheable, - GrIOType ioType) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , INHERITED(gpu, dimensions, GrProtected::kNo, GrTextureType::k2D, mipmapStatus) + GrIOType ioType, + std::string_view label) + : GrSurface(gpu, dimensions, GrProtected::kNo, label) + , INHERITED(gpu, dimensions, GrProtected::kNo, GrTextureType::k2D, mipmapStatus, label) , fTexture(std::move(texture)) { SkDEBUGCODE(id mtlTexture = fTexture->mtlTexture();) SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == mtlTexture.mipmapLevelCount)); @@ -62,9 +64,10 @@ GrMtlTexture::GrMtlTexture(GrMtlGpu* gpu, SkISize dimensions, sk_sp texture, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , INHERITED(gpu, dimensions, GrProtected::kNo, GrTextureType::k2D, mipmapStatus) + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, dimensions, GrProtected::kNo, label) + , INHERITED(gpu, dimensions, GrProtected::kNo, GrTextureType::k2D, mipmapStatus, label) , fTexture(std::move(texture)) { SkDEBUGCODE(id mtlTexture = fTexture->mtlTexture();) SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == mtlTexture.mipmapLevelCount)); @@ -87,7 +90,7 @@ return nullptr; } return sk_sp(new GrMtlTexture(gpu, budgeted, dimensions, std::move(texture), - mipmapStatus)); + mipmapStatus, /*label=*/{})); } sk_sp GrMtlTexture::MakeWrappedTexture(GrMtlGpu* gpu, @@ -110,7 +113,7 @@ : GrMipmapStatus::kNotAllocated; return sk_sp( new GrMtlTexture(gpu, kWrapped, dimensions, std::move(attachment), mipmapStatus, - cacheable, ioType)); + cacheable, ioType, /*label=*/{})); } GrMtlTexture::~GrMtlTexture() { diff --git a/third_party/skia/src/gpu/mtl/GrMtlTextureRenderTarget.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.h similarity index 88% rename from third_party/skia/src/gpu/mtl/GrMtlTextureRenderTarget.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.h index 450f59208e56..e5306daa542c 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlTextureRenderTarget.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.h @@ -8,8 +8,8 @@ #ifndef GrMtlTextureRenderTarget_DEFINED #define GrMtlTextureRenderTarget_DEFINED -#include "src/gpu/mtl/GrMtlRenderTarget.h" -#include "src/gpu/mtl/GrMtlTexture.h" +#include "src/gpu/ganesh/mtl/GrMtlRenderTarget.h" +#include "src/gpu/ganesh/mtl/GrMtlTexture.h" class GrMtlTextureRenderTarget: public GrMtlTexture, public GrMtlRenderTarget { public: @@ -48,7 +48,8 @@ class GrMtlTextureRenderTarget: public GrMtlTexture, public GrMtlRenderTarget { sk_sp texture, sk_sp colorAttachment, sk_sp resolveAttachment, - GrMipmapStatus); + GrMipmapStatus, + std::string_view label); GrMtlTextureRenderTarget(GrMtlGpu* gpu, SkISize, @@ -56,7 +57,8 @@ class GrMtlTextureRenderTarget: public GrMtlTexture, public GrMtlRenderTarget { sk_sp colorAttachment, sk_sp resolveAttachment, GrMipmapStatus, - GrWrapCacheable cacheable); + GrWrapCacheable cacheable, + std::string_view label); size_t onGpuMemorySize() const override; }; diff --git a/third_party/skia/src/gpu/mtl/GrMtlTextureRenderTarget.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.mm similarity index 89% rename from third_party/skia/src/gpu/mtl/GrMtlTextureRenderTarget.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.mm index 1c1721c705eb..a04db78a769e 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlTextureRenderTarget.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.mm @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/mtl/GrMtlGpu.h" -#include "src/gpu/mtl/GrMtlTextureRenderTarget.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag @@ -23,11 +23,12 @@ sk_sp texture, sk_sp colorAttachment, sk_sp resolveAttachment, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , GrMtlTexture(gpu, dimensions, std::move(texture), mipmapStatus) + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, dimensions, GrProtected::kNo, label) + , GrMtlTexture(gpu, dimensions, std::move(texture), mipmapStatus, label) , GrMtlRenderTarget(gpu, dimensions, std::move(colorAttachment), - std::move(resolveAttachment)) { + std::move(resolveAttachment), label) { this->registerWithCache(budgeted); } @@ -37,11 +38,12 @@ sk_sp colorAttachment, sk_sp resolveAttachment, GrMipmapStatus mipmapStatus, - GrWrapCacheable cacheable) - : GrSurface(gpu, dimensions, GrProtected::kNo) - , GrMtlTexture(gpu, dimensions, std::move(texture), mipmapStatus) + GrWrapCacheable cacheable, + std::string_view label) + : GrSurface(gpu, dimensions, GrProtected::kNo, label) + , GrMtlTexture(gpu, dimensions, std::move(texture), mipmapStatus, label) , GrMtlRenderTarget(gpu, dimensions, std::move(colorAttachment), - std::move(resolveAttachment)) { + std::move(resolveAttachment), label) { this->registerWithCacheWrapped(cacheable); } @@ -95,7 +97,7 @@ bool create_rt_attachments(GrMtlGpu* gpu, SkISize dimensions, MTLPixelFormat for return sk_sp(new GrMtlTextureRenderTarget( gpu, budgeted, dimensions, std::move(textureAttachment), std::move(colorAttachment), - std::move(resolveAttachment), mipmapStatus)); + std::move(resolveAttachment), mipmapStatus, /*label=*/{})); } sk_sp GrMtlTextureRenderTarget::MakeWrappedTextureRenderTarget( @@ -130,7 +132,7 @@ bool create_rt_attachments(GrMtlGpu* gpu, SkISize dimensions, MTLPixelFormat for return sk_sp(new GrMtlTextureRenderTarget( gpu, dimensions, std::move(textureAttachment), std::move(colorAttachment), - std::move(resolveAttachment), mipmapStatus, cacheable)); + std::move(resolveAttachment), mipmapStatus, cacheable, /*label=*/{})); } size_t GrMtlTextureRenderTarget::onGpuMemorySize() const { diff --git a/third_party/skia/src/gpu/mtl/GrMtlTrampoline.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTrampoline.h similarity index 100% rename from third_party/skia/src/gpu/mtl/GrMtlTrampoline.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlTrampoline.h diff --git a/third_party/skia/src/gpu/mtl/GrMtlTrampoline.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTrampoline.mm similarity index 86% rename from third_party/skia/src/gpu/mtl/GrMtlTrampoline.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlTrampoline.mm index 840414fee153..fcc7acc7b90d 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlTrampoline.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTrampoline.mm @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlTrampoline.h" +#include "src/gpu/ganesh/mtl/GrMtlTrampoline.h" -#include "src/gpu/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag diff --git a/third_party/skia/src/gpu/mtl/GrMtlTypesPriv.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTypesPriv.mm similarity index 93% rename from third_party/skia/src/gpu/mtl/GrMtlTypesPriv.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlTypesPriv.mm index 54a68f316196..3bb7bcc3c8ea 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlTypesPriv.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlTypesPriv.mm @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "include/private/GrMtlTypesPriv.h" +#include "include/private/gpu/ganesh/GrMtlTypesPriv.h" GrMtlSurfaceInfo GrMtlTextureSpecToSurfaceInfo(const GrMtlTextureSpec& mtlSpec, uint32_t sampleCount, diff --git a/third_party/skia/src/gpu/mtl/GrMtlUniformHandler.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlUniformHandler.h similarity index 95% rename from third_party/skia/src/gpu/mtl/GrMtlUniformHandler.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlUniformHandler.h index 007f432f5614..758519c20d9c 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlUniformHandler.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlUniformHandler.h @@ -9,8 +9,8 @@ #define GrMtlUniformHandler_DEFINED #include "src/core/SkTBlockList.h" -#include "src/gpu/GrShaderVar.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" #include @@ -62,7 +62,7 @@ class GrMtlUniformHandler : public GrGLSLUniformHandler { , fCurrentUBOMaxAlignment(0x0) { } - UniformHandle internalAddUniformArray(const GrFragmentProcessor* owner, + UniformHandle internalAddUniformArray(const GrProcessor* owner, uint32_t visibility, SkSLType type, const char* name, diff --git a/third_party/skia/src/gpu/mtl/GrMtlUniformHandler.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlUniformHandler.mm similarity index 97% rename from third_party/skia/src/gpu/mtl/GrMtlUniformHandler.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlUniformHandler.mm index b3ce55494815..97ebd842f974 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlUniformHandler.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlUniformHandler.mm @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlUniformHandler.h" +#include "src/gpu/ganesh/mtl/GrMtlUniformHandler.h" -#include "include/private/GrMtlTypesPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrUtil.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" +#include "include/private/gpu/ganesh/GrMtlTypesPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrUtil.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag @@ -178,7 +178,7 @@ static uint32_t get_ubo_aligned_offset(uint32_t* currentOffset, } GrGLSLUniformHandler::UniformHandle GrMtlUniformHandler::internalAddUniformArray( - const GrFragmentProcessor* owner, + const GrProcessor* owner, uint32_t visibility, SkSLType type, const char* name, diff --git a/third_party/skia/src/gpu/mtl/GrMtlUtil.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlUtil.h similarity index 96% rename from third_party/skia/src/gpu/mtl/GrMtlUtil.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlUtil.h index 21b97a4af460..41774b3cfa52 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlUtil.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlUtil.h @@ -11,8 +11,9 @@ #import #include "include/gpu/GrBackendSurface.h" -#include "include/private/GrMtlTypesPriv.h" -#include "include/private/GrTypesPriv.h" +#include "include/gpu/GrContextOptions.h" +#include "include/private/gpu/ganesh/GrMtlTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/sksl/ir/SkSLProgram.h" class GrMtlGpu; diff --git a/third_party/skia/src/gpu/mtl/GrMtlUtil.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlUtil.mm similarity index 98% rename from third_party/skia/src/gpu/mtl/GrMtlUtil.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlUtil.mm index 56e6cc592574..39af32f5c901 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlUtil.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlUtil.mm @@ -5,16 +5,16 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #include "include/gpu/GrBackendSurface.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkMutex.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrSurface.h" -#include "src/gpu/mtl/GrMtlGpu.h" -#include "src/gpu/mtl/GrMtlRenderTarget.h" -#include "src/gpu/mtl/GrMtlTexture.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/mtl/GrMtlRenderTarget.h" +#include "src/gpu/ganesh/mtl/GrMtlTexture.h" #include "src/sksl/SkSLCompiler.h" #include "src/utils/SkShaderUtils.h" diff --git a/third_party/skia/src/gpu/mtl/GrMtlVaryingHandler.h b/third_party/skia/src/gpu/ganesh/mtl/GrMtlVaryingHandler.h similarity index 92% rename from third_party/skia/src/gpu/mtl/GrMtlVaryingHandler.h rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlVaryingHandler.h index d01bc70977d6..a897e67d60a5 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlVaryingHandler.h +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlVaryingHandler.h @@ -8,7 +8,7 @@ #ifndef GrMtlVaryingHandler_DEFINED #define GrMtlVaryingHandler_DEFINED -#include "src/gpu/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" class GrMtlVaryingHandler : public GrGLSLVaryingHandler { public: diff --git a/third_party/skia/src/gpu/mtl/GrMtlVaryingHandler.mm b/third_party/skia/src/gpu/ganesh/mtl/GrMtlVaryingHandler.mm similarity index 93% rename from third_party/skia/src/gpu/mtl/GrMtlVaryingHandler.mm rename to third_party/skia/src/gpu/ganesh/mtl/GrMtlVaryingHandler.mm index 3d19c0b8b8f9..efc98c20a1ad 100644 --- a/third_party/skia/src/gpu/mtl/GrMtlVaryingHandler.mm +++ b/third_party/skia/src/gpu/ganesh/mtl/GrMtlVaryingHandler.mm @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/mtl/GrMtlVaryingHandler.h" +#include "src/gpu/ganesh/mtl/GrMtlVaryingHandler.h" -#include "include/private/GrMtlTypesPriv.h" +#include "include/private/gpu/ganesh/GrMtlTypesPriv.h" #if !__has_feature(objc_arc) #error This file must be compiled with Arc. Use -fobjc-arc flag diff --git a/third_party/skia/src/gpu/ops/AAConvexPathRenderer.cpp b/third_party/skia/src/gpu/ganesh/ops/AAConvexPathRenderer.cpp similarity index 97% rename from third_party/skia/src/gpu/ops/AAConvexPathRenderer.cpp rename to third_party/skia/src/gpu/ganesh/ops/AAConvexPathRenderer.cpp index f8e788aa534c..611f301ac58d 100644 --- a/third_party/skia/src/gpu/ops/AAConvexPathRenderer.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/AAConvexPathRenderer.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/AAConvexPathRenderer.h" +#include "src/gpu/ganesh/ops/AAConvexPathRenderer.h" #include "include/core/SkString.h" #include "include/core/SkTypes.h" @@ -14,23 +14,23 @@ #include "src/core/SkPathPriv.h" #include "src/core/SkPointPriv.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrAuditTrail.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProgramInfo.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/geometry/GrPathUtils.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrAuditTrail.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/AAConvexPathRenderer.h b/third_party/skia/src/gpu/ganesh/ops/AAConvexPathRenderer.h similarity index 93% rename from third_party/skia/src/gpu/ops/AAConvexPathRenderer.h rename to third_party/skia/src/gpu/ganesh/ops/AAConvexPathRenderer.h index 5acaa0eef0af..0d1a33b43535 100644 --- a/third_party/skia/src/gpu/ops/AAConvexPathRenderer.h +++ b/third_party/skia/src/gpu/ganesh/ops/AAConvexPathRenderer.h @@ -8,7 +8,7 @@ #ifndef AAConvexPathRenderer_DEFINED #define AAConvexPathRenderer_DEFINED -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/AAHairLinePathRenderer.cpp b/third_party/skia/src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp similarity index 98% rename from third_party/skia/src/gpu/ops/AAHairLinePathRenderer.cpp rename to third_party/skia/src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp index a6bcf70ea787..6a2a79a5f363 100644 --- a/third_party/skia/src/gpu/ops/AAHairLinePathRenderer.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/AAHairLinePathRenderer.h" +#include "src/gpu/ganesh/ops/AAHairLinePathRenderer.h" #include "include/core/SkPoint3.h" #include "include/private/SkTemplates.h" @@ -14,23 +14,23 @@ #include "src/core/SkPointPriv.h" #include "src/core/SkRectPriv.h" #include "src/core/SkStroke.h" -#include "src/gpu/GrAuditTrail.h" -#include "src/gpu/GrBuffer.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDefaultGeoProcFactory.h" -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/GrUtil.h" -#include "src/gpu/effects/GrBezierEffect.h" -#include "src/gpu/geometry/GrPathUtils.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrAuditTrail.h" +#include "src/gpu/ganesh/GrBuffer.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDefaultGeoProcFactory.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/GrUtil.h" +#include "src/gpu/ganesh/effects/GrBezierEffect.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #define PREALLOC_PTARRAY(N) SkSTArray<(N),SkPoint, true> diff --git a/third_party/skia/src/gpu/ops/AAHairLinePathRenderer.h b/third_party/skia/src/gpu/ganesh/ops/AAHairLinePathRenderer.h similarity index 93% rename from third_party/skia/src/gpu/ops/AAHairLinePathRenderer.h rename to third_party/skia/src/gpu/ganesh/ops/AAHairLinePathRenderer.h index 9d69e402b9fe..701903509a7b 100644 --- a/third_party/skia/src/gpu/ops/AAHairLinePathRenderer.h +++ b/third_party/skia/src/gpu/ganesh/ops/AAHairLinePathRenderer.h @@ -8,7 +8,7 @@ #ifndef AAHairLinePathRenderer_DEFINED #define AAHairLinePathRenderer_DEFINED -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/AALinearizingConvexPathRenderer.cpp b/third_party/skia/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.cpp similarity index 95% rename from third_party/skia/src/gpu/ops/AALinearizingConvexPathRenderer.cpp rename to third_party/skia/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.cpp index a953726df98b..ad55a3952c58 100644 --- a/third_party/skia/src/gpu/ops/AALinearizingConvexPathRenderer.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.cpp @@ -5,28 +5,28 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/AALinearizingConvexPathRenderer.h" +#include "src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.h" #include "include/core/SkString.h" #include "src/core/SkGeometry.h" #include "src/core/SkPathPriv.h" #include "src/core/SkTraceEvent.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrAuditTrail.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDefaultGeoProcFactory.h" -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/geometry/GrAAConvexTessellator.h" -#include "src/gpu/geometry/GrPathUtils.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrAuditTrail.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDefaultGeoProcFactory.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/geometry/GrAAConvexTessellator.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" /////////////////////////////////////////////////////////////////////////////// namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/AALinearizingConvexPathRenderer.h b/third_party/skia/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.h similarity index 93% rename from third_party/skia/src/gpu/ops/AALinearizingConvexPathRenderer.h rename to third_party/skia/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.h index cd0a87102e9a..fc2e877ebfc8 100644 --- a/third_party/skia/src/gpu/ops/AALinearizingConvexPathRenderer.h +++ b/third_party/skia/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.h @@ -8,7 +8,7 @@ #ifndef AALinearizingConvexPathRenderer_DEFINED #define AALinearizingConvexPathRenderer_DEFINED -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/AtlasInstancedHelper.cpp b/third_party/skia/src/gpu/ganesh/ops/AtlasInstancedHelper.cpp similarity index 95% rename from third_party/skia/src/gpu/ops/AtlasInstancedHelper.cpp rename to third_party/skia/src/gpu/ganesh/ops/AtlasInstancedHelper.cpp index 23e417e095d3..f774d616abfa 100644 --- a/third_party/skia/src/gpu/ops/AtlasInstancedHelper.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/AtlasInstancedHelper.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/AtlasInstancedHelper.h" +#include "src/gpu/ganesh/ops/AtlasInstancedHelper.h" #include "src/gpu/BufferWriter.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/AtlasInstancedHelper.h b/third_party/skia/src/gpu/ganesh/ops/AtlasInstancedHelper.h similarity index 96% rename from third_party/skia/src/gpu/ops/AtlasInstancedHelper.h rename to third_party/skia/src/gpu/ganesh/ops/AtlasInstancedHelper.h index eb166f1d0cd3..966f3e1b9fe3 100644 --- a/third_party/skia/src/gpu/ops/AtlasInstancedHelper.h +++ b/third_party/skia/src/gpu/ganesh/ops/AtlasInstancedHelper.h @@ -9,9 +9,9 @@ #define AtlasInstancedHelper_DEFINED #include "src/core/SkIPoint16.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/AtlasPathRenderer.cpp b/third_party/skia/src/gpu/ganesh/ops/AtlasPathRenderer.cpp similarity index 97% rename from third_party/skia/src/gpu/ops/AtlasPathRenderer.cpp rename to third_party/skia/src/gpu/ganesh/ops/AtlasPathRenderer.cpp index ea2d85e96e0e..86d4846f48d2 100644 --- a/third_party/skia/src/gpu/ops/AtlasPathRenderer.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/AtlasPathRenderer.cpp @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/AtlasPathRenderer.h" +#include "src/gpu/ganesh/ops/AtlasPathRenderer.h" #include "include/private/SkVx.h" #include "src/core/SkIPoint16.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrVx.h" -#include "src/gpu/effects/GrModulateAtlasCoverageEffect.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/AtlasRenderTask.h" -#include "src/gpu/ops/DrawAtlasPathOp.h" -#include "src/gpu/ops/TessellationPathRenderer.h" -#include "src/gpu/tessellate/shaders/GrTessellationShader.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrVx.h" +#include "src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/AtlasRenderTask.h" +#include "src/gpu/ganesh/ops/DrawAtlasPathOp.h" +#include "src/gpu/ganesh/ops/TessellationPathRenderer.h" +#include "src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" using grvx::float2; using grvx::int2; diff --git a/third_party/skia/src/gpu/ops/AtlasPathRenderer.h b/third_party/skia/src/gpu/ganesh/ops/AtlasPathRenderer.h similarity index 96% rename from third_party/skia/src/gpu/ops/AtlasPathRenderer.h rename to third_party/skia/src/gpu/ganesh/ops/AtlasPathRenderer.h index 0588549e7ac5..2de41234b2e3 100644 --- a/third_party/skia/src/gpu/ops/AtlasPathRenderer.h +++ b/third_party/skia/src/gpu/ganesh/ops/AtlasPathRenderer.h @@ -11,10 +11,10 @@ #include "include/gpu/GrTypes.h" #include "include/private/SkTHash.h" #include "src/core/SkIPoint16.h" -#include "src/gpu/GrDynamicAtlas.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrOnFlushResourceProvider.h" -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/GrDynamicAtlas.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrOnFlushResourceProvider.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" class GrOp; class GrRecordingContext; diff --git a/third_party/skia/src/gpu/ops/AtlasRenderTask.cpp b/third_party/skia/src/gpu/ganesh/ops/AtlasRenderTask.cpp similarity index 96% rename from third_party/skia/src/gpu/ops/AtlasRenderTask.cpp rename to third_party/skia/src/gpu/ganesh/ops/AtlasRenderTask.cpp index 1f421f130c85..484b537d026d 100644 --- a/third_party/skia/src/gpu/ops/AtlasRenderTask.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/AtlasRenderTask.cpp @@ -5,16 +5,16 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/AtlasRenderTask.h" +#include "src/gpu/ganesh/ops/AtlasRenderTask.h" #include "src/core/SkBlendModePriv.h" #include "src/core/SkIPoint16.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsTypes.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/ops/FillRectOp.h" -#include "src/gpu/ops/PathStencilCoverOp.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsTypes.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/ops/FillRectOp.h" +#include "src/gpu/ganesh/ops/PathStencilCoverOp.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/AtlasRenderTask.h b/third_party/skia/src/gpu/ganesh/ops/AtlasRenderTask.h similarity index 96% rename from third_party/skia/src/gpu/ops/AtlasRenderTask.h rename to third_party/skia/src/gpu/ganesh/ops/AtlasRenderTask.h index 533858fdc01c..13e2d5af36d2 100644 --- a/third_party/skia/src/gpu/ops/AtlasRenderTask.h +++ b/third_party/skia/src/gpu/ganesh/ops/AtlasRenderTask.h @@ -10,9 +10,9 @@ #include "include/core/SkPath.h" #include "src/core/SkTBlockList.h" -#include "src/gpu/GrDynamicAtlas.h" -#include "src/gpu/ops/OpsTask.h" -#include "src/gpu/tessellate/PathTessellator.h" +#include "src/gpu/ganesh/GrDynamicAtlas.h" +#include "src/gpu/ganesh/ops/OpsTask.h" +#include "src/gpu/ganesh/ops/PathTessellator.h" struct SkIPoint16; diff --git a/third_party/skia/src/gpu/ops/AtlasTextOp.cpp b/third_party/skia/src/gpu/ganesh/ops/AtlasTextOp.cpp similarity index 97% rename from third_party/skia/src/gpu/ops/AtlasTextOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/AtlasTextOp.cpp index 7f411e6ca68a..3ca7004f76fe 100644 --- a/third_party/skia/src/gpu/ops/AtlasTextOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/AtlasTextOp.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/AtlasTextOp.h" +#include "src/gpu/ganesh/ops/AtlasTextOp.h" #include "include/core/SkPoint3.h" #include "include/core/SkSpan.h" @@ -14,18 +14,18 @@ #include "src/core/SkMatrixPriv.h" #include "src/core/SkMatrixProvider.h" #include "src/core/SkStrikeCache.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrBitmapTextGeoProc.h" -#include "src/gpu/effects/GrDistanceFieldGeoProc.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" -#include "src/gpu/text/GrAtlasManager.h" -#include "src/gpu/text/GrDistanceFieldAdjustTable.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrBitmapTextGeoProc.h" +#include "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/text/GrAtlasManager.h" +#include "src/gpu/ganesh/text/GrDistanceFieldAdjustTable.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include #include @@ -491,7 +491,7 @@ GrGeometryProcessor* AtlasTextOp::setupDfProcessor(SkArenaAlloc* arena, } #if GR_TEST_UTILS -#include "src/gpu/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" GrOp::Owner AtlasTextOp::CreateOpTestingOnly(SurfaceDrawContext* sdc, const SkPaint& skPaint, diff --git a/third_party/skia/src/gpu/ops/AtlasTextOp.h b/third_party/skia/src/gpu/ganesh/ops/AtlasTextOp.h similarity index 98% rename from third_party/skia/src/gpu/ops/AtlasTextOp.h rename to third_party/skia/src/gpu/ganesh/ops/AtlasTextOp.h index a684125855ba..a656933c419e 100644 --- a/third_party/skia/src/gpu/ops/AtlasTextOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/AtlasTextOp.h @@ -8,9 +8,9 @@ #ifndef AtlasTextOp_DEFINED #define AtlasTextOp_DEFINED -#include "src/gpu/effects/GrDistanceFieldGeoProc.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/text/GrTextBlob.h" +#include "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/text/GrTextBlob.h" class GrRecordingContext; diff --git a/third_party/skia/src/gpu/ops/BUILD.bazel b/third_party/skia/src/gpu/ganesh/ops/BUILD.bazel similarity index 50% rename from third_party/skia/src/gpu/ops/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/ops/BUILD.bazel index b484907f5764..72db9bada514 100644 --- a/third_party/skia/src/gpu/ops/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/ops/BUILD.bazel @@ -1,10 +1,12 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "AAConvexPathRenderer_hdr", hdrs = ["AAConvexPathRenderer.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu/v1:PathRenderer_hdr"], + deps = ["//src/gpu/ganesh/v1:PathRenderer_hdr"], ) generated_cc_atom( @@ -22,21 +24,21 @@ generated_cc_atom( "//src/core:SkPathPriv_hdr", "//src/core:SkPointPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrAuditTrail_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/geometry:GrPathUtils_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrAuditTrail_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh/geometry:GrPathUtils_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -44,7 +46,7 @@ generated_cc_atom( name = "AAHairLinePathRenderer_hdr", hdrs = ["AAHairLinePathRenderer.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu/v1:PathRenderer_hdr"], + deps = ["//src/gpu/ganesh/v1:PathRenderer_hdr"], ) generated_cc_atom( @@ -62,21 +64,21 @@ generated_cc_atom( "//src/core:SkPointPriv_hdr", "//src/core:SkRectPriv_hdr", "//src/core:SkStroke_hdr", - "//src/gpu:GrAuditTrail_hdr", - "//src/gpu:GrBuffer_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDefaultGeoProcFactory_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:GrUtil_hdr", - "//src/gpu/effects:GrBezierEffect_hdr", - "//src/gpu/geometry:GrPathUtils_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrAuditTrail_hdr", + "//src/gpu/ganesh:GrBuffer_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDefaultGeoProcFactory_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:GrUtil_hdr", + "//src/gpu/ganesh/effects:GrBezierEffect_hdr", + "//src/gpu/ganesh/geometry:GrPathUtils_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -84,7 +86,7 @@ generated_cc_atom( name = "AALinearizingConvexPathRenderer_hdr", hdrs = ["AALinearizingConvexPathRenderer.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu/v1:PathRenderer_hdr"], + deps = ["//src/gpu/ganesh/v1:PathRenderer_hdr"], ) generated_cc_atom( @@ -100,19 +102,19 @@ generated_cc_atom( "//src/core:SkPathPriv_hdr", "//src/core:SkTraceEvent_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrAuditTrail_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDefaultGeoProcFactory_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu/geometry:GrAAConvexTessellator_hdr", - "//src/gpu/geometry:GrPathUtils_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrAuditTrail_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDefaultGeoProcFactory_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh/geometry:GrAAConvexTessellator_hdr", + "//src/gpu/ganesh/geometry:GrPathUtils_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -122,9 +124,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//src/core:SkIPoint16_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrSurfaceProxyView_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -136,9 +138,9 @@ generated_cc_atom( ":AtlasInstancedHelper_hdr", "//src/gpu:BufferWriter_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -150,10 +152,10 @@ generated_cc_atom( "//include/gpu:GrTypes_hdr", "//include/private:SkTHash_hdr", "//src/core:SkIPoint16_hdr", - "//src/gpu:GrDynamicAtlas_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrOnFlushResourceProvider_hdr", - "//src/gpu/v1:PathRenderer_hdr", + "//src/gpu/ganesh:GrDynamicAtlas_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrOnFlushResourceProvider_hdr", + "//src/gpu/ganesh/v1:PathRenderer_hdr", ], ) @@ -168,13 +170,13 @@ generated_cc_atom( ":TessellationPathRenderer_hdr", "//include/private:SkVx_hdr", "//src/core:SkIPoint16_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrVx_hdr", - "//src/gpu/effects:GrModulateAtlasCoverageEffect_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/tessellate/shaders:GrTessellationShader_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrVx_hdr", + "//src/gpu/ganesh/effects:GrModulateAtlasCoverageEffect_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/tessellate/shaders:GrTessellationShader_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -184,10 +186,10 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":OpsTask_hdr", + ":PathTessellator_hdr", "//include/core:SkPath_hdr", "//src/core:SkTBlockList_hdr", - "//src/gpu:GrDynamicAtlas_hdr", - "//src/gpu/tessellate:PathTessellator_hdr", + "//src/gpu/ganesh:GrDynamicAtlas_hdr", ], ) @@ -201,10 +203,10 @@ generated_cc_atom( ":PathStencilCoverOp_hdr", "//src/core:SkBlendModePriv_hdr", "//src/core:SkIPoint16_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsTypes_hdr", - "//src/gpu/geometry:GrQuad_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsTypes_hdr", + "//src/gpu/ganesh/geometry:GrQuad_hdr", ], ) @@ -214,8 +216,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrMeshDrawOp_hdr", - "//src/gpu/effects:GrDistanceFieldGeoProc_hdr", - "//src/gpu/text:GrTextBlob_hdr", + "//src/gpu/ganesh/effects:GrDistanceFieldGeoProc_hdr", + "//src/gpu/ganesh/text:GrTextBlob_hdr", ], ) @@ -233,18 +235,18 @@ generated_cc_atom( "//src/core:SkMatrixPriv_hdr", "//src/core:SkMatrixProvider_hdr", "//src/core:SkStrikeCache_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrBitmapTextGeoProc_hdr", - "//src/gpu/effects:GrDistanceFieldGeoProc_hdr", - "//src/gpu/text:GrAtlasManager_hdr", - "//src/gpu/text:GrDistanceFieldAdjustTable_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrBitmapTextGeoProc_hdr", + "//src/gpu/ganesh/effects:GrDistanceFieldGeoProc_hdr", + "//src/gpu/ganesh/text:GrAtlasManager_hdr", + "//src/gpu/ganesh/text:GrDistanceFieldAdjustTable_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -255,7 +257,7 @@ generated_cc_atom( deps = [ ":GrOp_hdr", "//include/gpu:GrTypes_hdr", - "//src/gpu:GrScissorState_hdr", + "//src/gpu/ganesh:GrScissorState_hdr", ], ) @@ -266,11 +268,11 @@ generated_cc_atom( deps = [ ":ClearOp_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", ], ) @@ -278,7 +280,7 @@ generated_cc_atom( name = "DashLinePathRenderer_hdr", hdrs = ["DashLinePathRenderer.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu/v1:PathRenderer_hdr"], + deps = ["//src/gpu/ganesh/v1:PathRenderer_hdr"], ) generated_cc_atom( @@ -289,10 +291,10 @@ generated_cc_atom( ":DashLinePathRenderer_hdr", ":DashOp_hdr", ":GrMeshDrawOp_hdr", - "//src/gpu:GrAuditTrail_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrAuditTrail_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -318,25 +320,25 @@ generated_cc_atom( "//src/core:SkMatrixPriv_hdr", "//src/core:SkPointPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrAppliedClip_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDefaultGeoProcFactory_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrStyle_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/geometry:GrQuad_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrAppliedClip_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDefaultGeoProcFactory_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/geometry:GrQuad_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -344,7 +346,7 @@ generated_cc_atom( name = "DefaultPathRenderer_hdr", hdrs = ["DefaultPathRenderer.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu/v1:PathRenderer_hdr"], + deps = ["//src/gpu/ganesh/v1:PathRenderer_hdr"], ) generated_cc_atom( @@ -362,20 +364,20 @@ generated_cc_atom( "//src/core:SkMatrixPriv_hdr", "//src/core:SkTLazy_hdr", "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrAuditTrail_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrDefaultGeoProcFactory_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrSimpleMesh_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:GrUtil_hdr", - "//src/gpu/effects:GrDisableColorXP_hdr", - "//src/gpu/geometry:GrPathUtils_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrAuditTrail_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrDefaultGeoProcFactory_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrSimpleMesh_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:GrUtil_hdr", + "//src/gpu/ganesh/effects:GrDisableColorXP_hdr", + "//src/gpu/ganesh/geometry:GrPathUtils_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -386,7 +388,7 @@ generated_cc_atom( deps = [ ":GrOp_hdr", "//include/core:SkRefCnt_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -402,13 +404,13 @@ generated_cc_atom( "//include/utils:SkRandom_hdr", "//src/core:SkMatrixPriv_hdr", "//src/core:SkRectPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDefaultGeoProcFactory_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDefaultGeoProcFactory_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", ], ) @@ -430,15 +432,15 @@ generated_cc_atom( deps = [ ":DrawAtlasPathOp_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrResourceProvider_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -460,10 +462,10 @@ generated_cc_atom( ":DrawableOp_hdr", "//include/core:SkDrawable_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", ], ) @@ -480,7 +482,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrOp_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -495,21 +497,21 @@ generated_cc_atom( "//include/gpu:GrRecordingContext_hdr", "//src/core:SkRRectPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrVx_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/geometry:GrShape_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrVx_hdr", + "//src/gpu/ganesh/geometry:GrShape_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -519,7 +521,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrSimpleMeshDrawOpHelper_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -534,19 +536,19 @@ generated_cc_atom( ":QuadPerEdgeAA_hdr", "//include/core:SkMatrix_hdr", "//include/core:SkRect_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrOpsTypes_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/geometry:GrQuadBuffer_hdr", - "//src/gpu/geometry:GrQuadUtils_hdr", - "//src/gpu/geometry:GrQuad_hdr", - "//src/gpu/glsl:GrGLSLColorSpaceXformHelper_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrOpsTypes_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/geometry:GrQuadBuffer_hdr", + "//src/gpu/ganesh/geometry:GrQuadUtils_hdr", + "//src/gpu/ganesh/geometry:GrQuad_hdr", + "//src/gpu/ganesh/glsl:GrGLSLColorSpaceXformHelper_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -557,8 +559,8 @@ generated_cc_atom( deps = [ ":GrOp_hdr", "//src/core:SkIPoint16_hdr", - "//src/gpu:GrDeferredUpload_hdr", - "//src/gpu:GrPipeline_hdr", + "//src/gpu/ganesh:GrDeferredUpload_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", ], ) @@ -568,8 +570,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrDrawOp_hdr", - "//src/gpu:GrAppliedClip_hdr", - "//src/gpu:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrAppliedClip_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", ], ) @@ -579,10 +581,10 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrMeshDrawOp_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", ], ) @@ -595,11 +597,11 @@ generated_cc_atom( "//include/core:SkRect_hdr", "//include/core:SkString_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrGpuResource_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrTracing_hdr", - "//src/gpu:GrXferProcessor_hdr", + "//src/gpu/ganesh:GrGpuResource_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrTracing_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", ], ) @@ -617,7 +619,7 @@ generated_cc_atom( deps = [ ":GrOp_hdr", "//include/core:SkRefCnt_hdr", - "//src/gpu:GrColor_hdr", + "//src/gpu/ganesh:GrColor_hdr", ], ) @@ -633,21 +635,21 @@ generated_cc_atom( "//src/core:SkMatrixPriv_hdr", "//src/core:SkRRectPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrStyle_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -655,7 +657,7 @@ generated_cc_atom( name = "GrPathStencilSettings_hdr", hdrs = ["GrPathStencilSettings.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrUserStencilSettings_hdr"], + deps = ["//src/gpu/ganesh:GrUserStencilSettings_hdr"], ) generated_cc_atom( @@ -680,10 +682,10 @@ generated_cc_atom( ":GrMeshDrawOp_hdr", ":GrOp_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", ], ) @@ -693,12 +695,12 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrSimpleMeshDrawOpHelper_hdr", - "//src/gpu:GrAppliedClip_hdr", - "//src/gpu:GrProcessorSet_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrUserStencilSettings_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/geometry:GrRect_hdr", + "//src/gpu/ganesh:GrAppliedClip_hdr", + "//src/gpu/ganesh:GrProcessorSet_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrUserStencilSettings_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/geometry:GrRect_hdr", ], ) @@ -709,7 +711,7 @@ generated_cc_atom( deps = [ ":GrOp_hdr", "//include/core:SkRefCnt_hdr", - "//src/gpu:GrSamplerState_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", ], ) @@ -726,20 +728,20 @@ generated_cc_atom( "//src/core:SkLatticeIter_hdr", "//src/core:SkMatrixPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProviderPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/glsl:GrGLSLColorSpaceXformHelper_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProviderPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/glsl:GrGLSLColorSpaceXformHelper_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", ], ) @@ -761,11 +763,11 @@ generated_cc_atom( "//src/core:SkClipStack_hdr", "//src/core:SkStringUtils_hdr", "//src/core:SkTLazy_hdr", - "//src/gpu:GrAppliedClip_hdr", - "//src/gpu:GrDstProxyView_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrProcessorSet_hdr", - "//src/gpu:GrRenderTask_hdr", + "//src/gpu/ganesh:GrAppliedClip_hdr", + "//src/gpu/ganesh:GrDstProxyView_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrProcessorSet_hdr", + "//src/gpu/ganesh:GrRenderTask_hdr", ], ) @@ -779,19 +781,19 @@ generated_cc_atom( "//src/core:SkRectPriv_hdr", "//src/core:SkScopeExit_hdr", "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrAttachment_hdr", - "//src/gpu:GrAuditTrail_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrResourceAllocator_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu/geometry:GrRect_hdr", + "//src/gpu/ganesh:GrAttachment_hdr", + "//src/gpu/ganesh:GrAuditTrail_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrResourceAllocator_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/geometry:GrRect_hdr", ], ) @@ -802,8 +804,8 @@ generated_cc_atom( deps = [ ":FillPathFlags_hdr", ":GrDrawOp_hdr", - "//src/gpu/geometry:GrInnerFanTriangulator_hdr", - "//src/gpu/tessellate/shaders:GrTessellationShader_hdr", + "//src/gpu/ganesh/geometry:GrInnerFanTriangulator_hdr", + "//src/gpu/ganesh/tessellate/shaders:GrTessellationShader_hdr", ], ) @@ -813,14 +815,14 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":PathInnerTriangulateOp_hdr", - "//src/gpu:GrEagerVertexAllocator_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - "//src/gpu/tessellate:PathCurveTessellator_hdr", - "//src/gpu/tessellate/shaders:GrPathTessellationShader_hdr", + ":PathTessellator_hdr", + "//src/gpu/ganesh:GrEagerVertexAllocator_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/tessellate/shaders:GrPathTessellationShader_hdr", ], ) @@ -831,8 +833,8 @@ generated_cc_atom( deps = [ ":FillPathFlags_hdr", ":GrDrawOp_hdr", - "//src/gpu/tessellate:PathTessellator_hdr", - "//src/gpu/tessellate/shaders:GrTessellationShader_hdr", + ":PathTessellator_hdr", + "//src/gpu/ganesh/tessellate/shaders:GrTessellationShader_hdr", ], ) @@ -843,20 +845,19 @@ generated_cc_atom( deps = [ ":GrSimpleMeshDrawOpHelper_hdr", ":PathStencilCoverOp_hdr", - "//src/gpu:GrEagerVertexAllocator_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrEagerVertexAllocator_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/tessellate/shaders:GrPathTessellationShader_hdr", "//src/gpu/tessellate:AffineMatrix_hdr", + "//src/gpu/tessellate:FixedCountBufferUtils_hdr", "//src/gpu/tessellate:MiddleOutPolygonTriangulator_hdr", - "//src/gpu/tessellate:PathCurveTessellator_hdr", - "//src/gpu/tessellate:PathWedgeTessellator_hdr", "//src/gpu/tessellate:Tessellation_hdr", - "//src/gpu/tessellate/shaders:GrPathTessellationShader_hdr", ], ) @@ -866,9 +867,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrDrawOp_hdr", - "//src/gpu/tessellate:PathTessellator_hdr", + ":PathTessellator_hdr", + "//src/gpu/ganesh/tessellate/shaders:GrTessellationShader_hdr", "//src/gpu/tessellate:Tessellation_hdr", - "//src/gpu/tessellate/shaders:GrTessellationShader_hdr", ], ) @@ -878,10 +879,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":PathTessellateOp_hdr", - "//src/gpu:GrAppliedClip_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu/tessellate:PathWedgeTessellator_hdr", - "//src/gpu/tessellate/shaders:GrPathTessellationShader_hdr", + "//src/gpu/ganesh:GrAppliedClip_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh/tessellate/shaders:GrPathTessellationShader_hdr", ], ) @@ -893,13 +893,13 @@ generated_cc_atom( ":TextureOp_hdr", "//include/core:SkPoint3_hdr", "//include/core:SkPoint_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrSamplerState_hdr", - "//src/gpu/geometry:GrQuadUtils_hdr", - "//src/gpu/geometry:GrQuad_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", + "//src/gpu/ganesh/geometry:GrQuadUtils_hdr", + "//src/gpu/ganesh/geometry:GrQuad_hdr", ], ) @@ -910,15 +910,15 @@ generated_cc_atom( deps = [ ":QuadPerEdgeAA_hdr", "//include/private:SkVx_hdr", - "//src/gpu:GrMeshDrawTarget_hdr", - "//src/gpu:GrResourceProvider_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/geometry:GrQuadUtils_hdr", - "//src/gpu/glsl:GrGLSLColorSpaceXformHelper_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrMeshDrawTarget_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/geometry:GrQuadUtils_hdr", + "//src/gpu/ganesh/glsl:GrGLSLColorSpaceXformHelper_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -928,7 +928,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrOp_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -943,12 +943,12 @@ generated_cc_atom( "//include/core:SkRegion_hdr", "//src/core:SkMatrixPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDefaultGeoProcFactory_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDefaultGeoProcFactory_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", ], ) @@ -958,7 +958,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrOp_hdr", - "//src/gpu:GrColor_hdr", + "//src/gpu/ganesh:GrColor_hdr", ], ) @@ -969,17 +969,18 @@ generated_cc_atom( deps = [ ":GrSimpleMeshDrawOpHelper_hdr", ":ShadowRRectOp_hdr", + "//include/core:SkBitmap_hdr", "//include/gpu:GrRecordingContext_hdr", "//src/core:SkRRectPriv_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrThreadSafeCache_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrShadowGeoProc_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrThreadSafeCache_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrShadowGeoProc_hdr", ], ) @@ -990,8 +991,8 @@ generated_cc_atom( deps = [ "//src/core:SkTDynamicHash_hdr", "//src/core:SkTInternalLList_hdr", - "//src/gpu:GrDrawOpAtlas_hdr", - "//src/gpu:GrOnFlushResourceProvider_hdr", + "//src/gpu/ganesh:GrDrawOpAtlas_hdr", + "//src/gpu/ganesh:GrOnFlushResourceProvider_hdr", ], ) @@ -1002,7 +1003,7 @@ generated_cc_atom( deps = [ ":SmallPathAtlasMgr_hdr", ":SmallPathShapeData_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", ], ) @@ -1010,7 +1011,7 @@ generated_cc_atom( name = "SmallPathRenderer_hdr", hdrs = ["SmallPathRenderer.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu/v1:PathRenderer_hdr"], + deps = ["//src/gpu/ganesh/v1:PathRenderer_hdr"], ) generated_cc_atom( @@ -1032,16 +1033,16 @@ generated_cc_atom( "//src/core:SkPointPriv_hdr", "//src/core:SkRasterClip_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrBuffer_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDistanceFieldGenFromVector_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu/effects:GrBitmapTextGeoProc_hdr", - "//src/gpu/effects:GrDistanceFieldGeoProc_hdr", - "//src/gpu/geometry:GrQuad_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrBuffer_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDistanceFieldGenFromVector_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh/effects:GrBitmapTextGeoProc_hdr", + "//src/gpu/ganesh/effects:GrDistanceFieldGeoProc_hdr", + "//src/gpu/ganesh/geometry:GrQuad_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -1051,7 +1052,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//src/core:SkOpts_hdr", - "//src/gpu:GrDrawOpAtlas_hdr", + "//src/gpu/ganesh:GrDrawOpAtlas_hdr", ], ) @@ -1061,7 +1062,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SmallPathShapeData_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", + "//include/private:SkFixed_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", ], ) @@ -1070,8 +1072,8 @@ generated_cc_atom( hdrs = ["SoftwarePathRenderer.h"], visibility = ["//:__subpackages__"], deps = [ - "//src/gpu:GrSurfaceProxyView_hdr", - "//src/gpu/v1:PathRenderer_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", + "//src/gpu/ganesh/v1:PathRenderer_hdr", ], ) @@ -1086,21 +1088,21 @@ generated_cc_atom( "//include/private:SkSemaphore_hdr", "//src/core:SkTaskGroup_hdr", "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrAuditTrail_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrDeferredProxyUploader_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpuResourcePriv_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrSWMaskHelper_hdr", - "//src/gpu:GrUtil_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrAuditTrail_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrDeferredProxyUploader_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpuResourcePriv_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrSWMaskHelper_hdr", + "//src/gpu/ganesh:GrUtil_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -1110,7 +1112,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrOp_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -1127,15 +1129,15 @@ generated_cc_atom( "//include/utils:SkRandom_hdr", "//src/core:SkMatrixPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrDefaultGeoProcFactory_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrResourceProvider_hdr", "//src/gpu:ResourceKey_hdr", - "//src/gpu/geometry:GrQuad_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrDefaultGeoProcFactory_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh/geometry:GrQuad_hdr", ], ) @@ -1145,9 +1147,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrDrawOp_hdr", + ":StrokeTessellator_hdr", "//include/core:SkStrokeRec_hdr", - "//src/gpu/tessellate:StrokeTessellator_hdr", - "//src/gpu/tessellate/shaders:GrTessellationShader_hdr", + "//src/gpu/ganesh/tessellate/shaders:GrTessellationShader_hdr", ], ) @@ -1159,12 +1161,10 @@ generated_cc_atom( ":StrokeTessellateOp_hdr", "//src/core:SkMathPriv_hdr", "//src/core:SkPathPriv_hdr", - "//src/gpu:GrAppliedClip_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu/tessellate:StrokeFixedCountTessellator_hdr", - "//src/gpu/tessellate:StrokeHardwareTessellator_hdr", - "//src/gpu/tessellate/shaders:GrStrokeTessellationShader_hdr", + "//src/gpu/ganesh:GrAppliedClip_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh/tessellate/shaders:GrStrokeTessellationShader_hdr", ], ) @@ -1174,7 +1174,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/gpu:GrTypes_hdr", - "//src/gpu/v1:PathRenderer_hdr", + "//src/gpu/ganesh/v1:PathRenderer_hdr", ], ) @@ -1190,15 +1190,15 @@ generated_cc_atom( ":TessellationPathRenderer_hdr", "//include/private:SkVx_hdr", "//src/core:SkPathPriv_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrVx_hdr", - "//src/gpu/effects:GrDisableColorXP_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrVx_hdr", + "//src/gpu/ganesh/effects:GrDisableColorXP_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//src/gpu/tessellate:Tessellation_hdr", "//src/gpu/tessellate:WangsFormula_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -1210,9 +1210,9 @@ generated_cc_atom( ":GrOp_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkRefCnt_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrSamplerState_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", ], ) @@ -1234,30 +1234,30 @@ generated_cc_atom( "//src/core:SkMathPriv_hdr", "//src/core:SkMatrixPriv_hdr", "//src/core:SkRectPriv_hdr", - "//src/gpu:GrAppliedClip_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsTypes_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProviderPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/geometry:GrQuadBuffer_hdr", - "//src/gpu/geometry:GrQuadUtils_hdr", - "//src/gpu/geometry:GrQuad_hdr", - "//src/gpu/geometry:GrRect_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrAppliedClip_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsTypes_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProviderPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/geometry:GrQuadBuffer_hdr", + "//src/gpu/ganesh/geometry:GrQuadUtils_hdr", + "//src/gpu/ganesh/geometry:GrQuad_hdr", + "//src/gpu/ganesh/geometry:GrRect_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -1265,7 +1265,7 @@ generated_cc_atom( name = "TriangulatingPathRenderer_hdr", hdrs = ["TriangulatingPathRenderer.h"], visibility = ["//:__subpackages__"], - deps = ["//src/gpu/v1:PathRenderer_hdr"], + deps = ["//src/gpu/ganesh/v1:PathRenderer_hdr"], ) generated_cc_atom( @@ -1278,24 +1278,24 @@ generated_cc_atom( ":TriangulatingPathRenderer_hdr", "//include/private:SkIDChangeListener_hdr", "//src/core:SkGeometry_hdr", - "//src/gpu:GrAuditTrail_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDefaultGeoProcFactory_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrEagerVertexAllocator_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceCache_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrSimpleMesh_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:GrThreadSafeCache_hdr", - "//src/gpu/geometry:GrAATriangulator_hdr", - "//src/gpu/geometry:GrPathUtils_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/geometry:GrTriangulator_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrAuditTrail_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDefaultGeoProcFactory_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrEagerVertexAllocator_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceCache_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrSimpleMesh_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:GrThreadSafeCache_hdr", + "//src/gpu/ganesh/geometry:GrAATriangulator_hdr", + "//src/gpu/ganesh/geometry:GrPathUtils_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/geometry:GrTriangulator_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -1308,7 +1308,7 @@ generated_cc_atom( "//include/core:SkCanvas_hdr", "//include/core:SkCustomMesh_hdr", "//include/core:SkRefCnt_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -1324,15 +1324,80 @@ generated_cc_atom( "//src/core:SkCustomMeshPriv_hdr", "//src/core:SkVerticesPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProgramInfo_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLColorSpaceXformHelper_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh/glsl:GrGLSLColorSpaceXformHelper_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", "//src/sksl/codegen:SkSLPipelineStageCodeGenerator_hdr", "//src/sksl/ir:SkSLProgram_hdr", ], ) + +generated_cc_atom( + name = "PathTessellator_hdr", + hdrs = ["PathTessellator.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//src/core:SkArenaAlloc_hdr", + "//src/gpu/ganesh:GrGpuBuffer_hdr", + "//src/gpu/ganesh:GrVertexChunkArray_hdr", + "//src/gpu/ganesh/geometry:GrInnerFanTriangulator_hdr", + "//src/gpu/tessellate:FixedCountBufferUtils_hdr", + "//src/gpu/tessellate:Tessellation_hdr", + ], +) + +generated_cc_atom( + name = "PathTessellator_src", + srcs = ["PathTessellator.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":PathTessellator_hdr", + "//src/core:SkPathPriv_hdr", + "//src/gpu/ganesh:GrMeshDrawTarget_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/tessellate:AffineMatrix_hdr", + "//src/gpu/tessellate:FixedCountBufferUtils_hdr", + "//src/gpu/tessellate:MiddleOutPolygonTriangulator_hdr", + "//src/gpu/tessellate:MidpointContourParser_hdr", + "//src/gpu/tessellate:PatchWriter_hdr", + "//src/gpu/tessellate:WangsFormula_hdr", + ], +) + +generated_cc_atom( + name = "StrokeTessellator_hdr", + hdrs = ["StrokeTessellator.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkPath_hdr", + "//include/core:SkStrokeRec_hdr", + "//include/private:SkColorData_hdr", + "//src/core:SkMathPriv_hdr", + "//src/gpu/ganesh:GrVertexChunkArray_hdr", + "//src/gpu/tessellate:FixedCountBufferUtils_hdr", + "//src/gpu/tessellate:Tessellation_hdr", + ], +) + +generated_cc_atom( + name = "StrokeTessellator_src", + srcs = ["StrokeTessellator.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":StrokeTessellator_hdr", + "//src/core:SkGeometry_hdr", + "//src/core:SkPathPriv_hdr", + "//src/gpu/ganesh:GrMeshDrawTarget_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/tessellate:PatchWriter_hdr", + "//src/gpu/tessellate:StrokeIterator_hdr", + "//src/gpu/tessellate:WangsFormula_hdr", + ], +) diff --git a/third_party/skia/src/gpu/ops/ClearOp.cpp b/third_party/skia/src/gpu/ganesh/ops/ClearOp.cpp similarity index 92% rename from third_party/skia/src/gpu/ops/ClearOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/ClearOp.cpp index 33fb97eeb986..b0c85920cac4 100644 --- a/third_party/skia/src/gpu/ops/ClearOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/ClearOp.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/ClearOp.h" +#include "src/gpu/ganesh/ops/ClearOp.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" namespace { diff --git a/third_party/skia/src/gpu/ops/ClearOp.h b/third_party/skia/src/gpu/ganesh/ops/ClearOp.h similarity index 96% rename from third_party/skia/src/gpu/ops/ClearOp.h rename to third_party/skia/src/gpu/ganesh/ops/ClearOp.h index 26854c6dfe25..7a231243ab08 100644 --- a/third_party/skia/src/gpu/ops/ClearOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/ClearOp.h @@ -9,8 +9,8 @@ #define ClearOp_DEFINED #include "include/gpu/GrTypes.h" -#include "src/gpu/GrScissorState.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/GrScissorState.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrOpFlushState; class GrRecordingContext; diff --git a/third_party/skia/src/gpu/ops/DashLinePathRenderer.cpp b/third_party/skia/src/gpu/ganesh/ops/DashLinePathRenderer.cpp similarity index 85% rename from third_party/skia/src/gpu/ops/DashLinePathRenderer.cpp rename to third_party/skia/src/gpu/ganesh/ops/DashLinePathRenderer.cpp index ccfd5bad65be..c4601862a5a3 100644 --- a/third_party/skia/src/gpu/ops/DashLinePathRenderer.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/DashLinePathRenderer.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/DashLinePathRenderer.h" +#include "src/gpu/ganesh/ops/DashLinePathRenderer.h" -#include "src/gpu/GrAuditTrail.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/DashOp.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrAuditTrail.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/DashOp.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/DashLinePathRenderer.h b/third_party/skia/src/gpu/ganesh/ops/DashLinePathRenderer.h similarity index 94% rename from third_party/skia/src/gpu/ops/DashLinePathRenderer.h rename to third_party/skia/src/gpu/ganesh/ops/DashLinePathRenderer.h index fa1134b10c16..67dc342d5691 100644 --- a/third_party/skia/src/gpu/ops/DashLinePathRenderer.h +++ b/third_party/skia/src/gpu/ganesh/ops/DashLinePathRenderer.h @@ -8,7 +8,7 @@ #ifndef DashLinePathRenderer_DEFINED #define DashLinePathRenderer_DEFINED -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" class GrGpu; diff --git a/third_party/skia/src/gpu/ops/DashOp.cpp b/third_party/skia/src/gpu/ganesh/ops/DashOp.cpp similarity index 98% rename from third_party/skia/src/gpu/ops/DashOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/DashOp.cpp index efc8895e035c..5f4400413ff4 100644 --- a/third_party/skia/src/gpu/ops/DashOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/DashOp.cpp @@ -5,32 +5,32 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/DashOp.h" +#include "src/gpu/ganesh/ops/DashOp.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkMatrixPriv.h" #include "src/core/SkPointPriv.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDefaultGeoProcFactory.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrStyle.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDefaultGeoProcFactory.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" using AAMode = skgpu::v1::DashOp::AAMode; @@ -1228,7 +1228,7 @@ bool CanDrawDashLine(const SkPoint pts[2], const GrStyle& style, const SkMatrix& #if GR_TEST_UTILS -#include "src/gpu/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" GR_DRAW_OP_TEST_DEFINE(DashOpImpl) { SkMatrix viewMatrix = GrTest::TestMatrixPreservesRightAngles(random); diff --git a/third_party/skia/src/gpu/ops/DashOp.h b/third_party/skia/src/gpu/ganesh/ops/DashOp.h similarity index 96% rename from third_party/skia/src/gpu/ops/DashOp.h rename to third_party/skia/src/gpu/ganesh/ops/DashOp.h index 18f9b9e0ff83..37e536876940 100644 --- a/third_party/skia/src/gpu/ops/DashOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/DashOp.h @@ -9,7 +9,7 @@ #define DashOp_DEFINED #include "include/gpu/GrTypes.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrPaint; class GrRecordingContext; diff --git a/third_party/skia/src/gpu/ops/DefaultPathRenderer.cpp b/third_party/skia/src/gpu/ganesh/ops/DefaultPathRenderer.cpp similarity index 97% rename from third_party/skia/src/gpu/ops/DefaultPathRenderer.cpp rename to third_party/skia/src/gpu/ganesh/ops/DefaultPathRenderer.cpp index 77c0b7d55439..924cb9933f5d 100644 --- a/third_party/skia/src/gpu/ops/DefaultPathRenderer.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/DefaultPathRenderer.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/DefaultPathRenderer.h" +#include "src/gpu/ganesh/ops/DefaultPathRenderer.h" #include "include/core/SkString.h" #include "include/core/SkStrokeRec.h" @@ -13,23 +13,23 @@ #include "src/core/SkMatrixPriv.h" #include "src/core/SkTLazy.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrAuditTrail.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrDefaultGeoProcFactory.h" -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrSimpleMesh.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/GrUtil.h" -#include "src/gpu/effects/GrDisableColorXP.h" -#include "src/gpu/geometry/GrPathUtils.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrPathStencilSettings.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrAuditTrail.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrDefaultGeoProcFactory.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrSimpleMesh.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/GrUtil.h" +#include "src/gpu/ganesh/effects/GrDisableColorXP.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrPathStencilSettings.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" //////////////////////////////////////////////////////////////////////////////// // Helpers for drawPath diff --git a/third_party/skia/src/gpu/ops/DefaultPathRenderer.h b/third_party/skia/src/gpu/ganesh/ops/DefaultPathRenderer.h similarity index 96% rename from third_party/skia/src/gpu/ops/DefaultPathRenderer.h rename to third_party/skia/src/gpu/ganesh/ops/DefaultPathRenderer.h index afbe17f33f00..5294efb65bdf 100644 --- a/third_party/skia/src/gpu/ops/DefaultPathRenderer.h +++ b/third_party/skia/src/gpu/ganesh/ops/DefaultPathRenderer.h @@ -8,7 +8,7 @@ #ifndef DefaultPathRenderer_DEFINED #define DefaultPathRenderer_DEFINED -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/DrawAtlasOp.cpp b/third_party/skia/src/gpu/ganesh/ops/DrawAtlasOp.cpp similarity index 97% rename from third_party/skia/src/gpu/ops/DrawAtlasOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/DrawAtlasOp.cpp index 4df1f8b6d776..29cde62789a1 100644 --- a/third_party/skia/src/gpu/ops/DrawAtlasOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/DrawAtlasOp.cpp @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/DrawAtlasOp.h" +#include "src/gpu/ganesh/ops/DrawAtlasOp.h" #include "include/core/SkRSXform.h" #include "include/gpu/GrRecordingContext.h" #include "include/utils/SkRandom.h" #include "src/core/SkMatrixPriv.h" #include "src/core/SkRectPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDefaultGeoProcFactory.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDefaultGeoProcFactory.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" namespace { @@ -326,7 +326,7 @@ GrOp::Owner Make(GrRecordingContext* context, } // namespace skgpu::v1::DrawAtlasOp #if GR_TEST_UTILS -#include "src/gpu/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" static SkRSXform random_xform(SkRandom* random) { static const SkScalar kMinExtent = -100.f; diff --git a/third_party/skia/src/gpu/ops/DrawAtlasOp.h b/third_party/skia/src/gpu/ganesh/ops/DrawAtlasOp.h similarity index 88% rename from third_party/skia/src/gpu/ops/DrawAtlasOp.h rename to third_party/skia/src/gpu/ganesh/ops/DrawAtlasOp.h index 9665f806ba28..dd71c79c17c2 100644 --- a/third_party/skia/src/gpu/ops/DrawAtlasOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/DrawAtlasOp.h @@ -9,8 +9,8 @@ #define DrawAtlasOp_DEFINED #include "include/core/SkRefCnt.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/ops/GrOp.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrPaint; class GrRecordingContext; diff --git a/third_party/skia/src/gpu/ops/DrawAtlasPathOp.cpp b/third_party/skia/src/gpu/ganesh/ops/DrawAtlasPathOp.cpp similarity index 95% rename from third_party/skia/src/gpu/ops/DrawAtlasPathOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/DrawAtlasPathOp.cpp index f362a8a44f8f..0d4702e77714 100644 --- a/third_party/skia/src/gpu/ops/DrawAtlasPathOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/DrawAtlasPathOp.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/DrawAtlasPathOp.h" +#include "src/gpu/ganesh/ops/DrawAtlasPathOp.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrResourceProvider.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" namespace { diff --git a/third_party/skia/src/gpu/ops/DrawAtlasPathOp.h b/third_party/skia/src/gpu/ganesh/ops/DrawAtlasPathOp.h similarity index 97% rename from third_party/skia/src/gpu/ops/DrawAtlasPathOp.h rename to third_party/skia/src/gpu/ganesh/ops/DrawAtlasPathOp.h index 659686b9dcde..8941f5a1342f 100644 --- a/third_party/skia/src/gpu/ops/DrawAtlasPathOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/DrawAtlasPathOp.h @@ -9,8 +9,8 @@ #define DrawAtlasPathOp_DEFINED #include "src/core/SkIPoint16.h" -#include "src/gpu/ops/AtlasInstancedHelper.h" -#include "src/gpu/ops/GrDrawOp.h" +#include "src/gpu/ganesh/ops/AtlasInstancedHelper.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/DrawCustomMeshOp.cpp b/third_party/skia/src/gpu/ganesh/ops/DrawCustomMeshOp.cpp similarity index 98% rename from third_party/skia/src/gpu/ops/DrawCustomMeshOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/DrawCustomMeshOp.cpp index 80e64c0a3d3a..42f6a053a47b 100644 --- a/third_party/skia/src/gpu/ops/DrawCustomMeshOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/DrawCustomMeshOp.cpp @@ -5,22 +5,22 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/DrawCustomMeshOp.h" +#include "src/gpu/ganesh/ops/DrawCustomMeshOp.h" #include "include/core/SkCustomMesh.h" #include "src/core/SkArenaAlloc.h" #include "src/core/SkCustomMeshPriv.h" #include "src/core/SkVerticesPriv.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProgramInfo.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" #include "src/sksl/codegen/SkSLPipelineStageCodeGenerator.h" #include "src/sksl/ir/SkSLProgram.h" diff --git a/third_party/skia/src/gpu/ops/DrawCustomMeshOp.h b/third_party/skia/src/gpu/ganesh/ops/DrawCustomMeshOp.h similarity index 91% rename from third_party/skia/src/gpu/ops/DrawCustomMeshOp.h rename to third_party/skia/src/gpu/ganesh/ops/DrawCustomMeshOp.h index 1e10ecf624bb..7c39ad199acb 100644 --- a/third_party/skia/src/gpu/ops/DrawCustomMeshOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/DrawCustomMeshOp.h @@ -11,8 +11,8 @@ #include "include/core/SkCanvas.h" #include "include/core/SkCustomMesh.h" #include "include/core/SkRefCnt.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/ops/GrOp.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrColorSpaceXform; class GrPaint; diff --git a/third_party/skia/src/gpu/ops/DrawableOp.cpp b/third_party/skia/src/gpu/ganesh/ops/DrawableOp.cpp similarity index 81% rename from third_party/skia/src/gpu/ops/DrawableOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/DrawableOp.cpp index 679b914853f0..37e631e7178c 100644 --- a/third_party/skia/src/gpu/ops/DrawableOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/DrawableOp.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/DrawableOp.h" +#include "src/gpu/ganesh/ops/DrawableOp.h" #include "include/core/SkDrawable.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/DrawableOp.h b/third_party/skia/src/gpu/ganesh/ops/DrawableOp.h similarity index 97% rename from third_party/skia/src/gpu/ops/DrawableOp.h rename to third_party/skia/src/gpu/ganesh/ops/DrawableOp.h index 3dd1d941cdab..72a94ba93278 100644 --- a/third_party/skia/src/gpu/ops/DrawableOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/DrawableOp.h @@ -9,7 +9,7 @@ #define DrawableOp_DEFINED #include "include/core/SkDrawable.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrRecordingContext; diff --git a/third_party/skia/src/gpu/ops/FillPathFlags.h b/third_party/skia/src/gpu/ganesh/ops/FillPathFlags.h similarity index 100% rename from third_party/skia/src/gpu/ops/FillPathFlags.h rename to third_party/skia/src/gpu/ganesh/ops/FillPathFlags.h diff --git a/third_party/skia/src/gpu/ops/FillRRectOp.cpp b/third_party/skia/src/gpu/ganesh/ops/FillRRectOp.cpp similarity index 98% rename from third_party/skia/src/gpu/ops/FillRRectOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/FillRRectOp.cpp index b9e0d7f526cf..da883ab8c838 100644 --- a/third_party/skia/src/gpu/ops/FillRRectOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/FillRRectOp.cpp @@ -5,27 +5,27 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/FillRRectOp.h" +#include "src/gpu/ganesh/ops/FillRRectOp.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkRRectPriv.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrVx.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/geometry/GrShape.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrVx.h" +#include "src/gpu/ganesh/geometry/GrShape.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" namespace skgpu::v1::FillRRectOp { @@ -922,7 +922,7 @@ GrOp::Owner Make(GrRecordingContext* ctx, #if GR_TEST_UTILS -#include "src/gpu/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" GR_DRAW_OP_TEST_DEFINE(FillRRectOp) { SkArenaAlloc arena(64 * sizeof(float)); diff --git a/third_party/skia/src/gpu/ops/FillRRectOp.h b/third_party/skia/src/gpu/ganesh/ops/FillRRectOp.h similarity index 91% rename from third_party/skia/src/gpu/ops/FillRRectOp.h rename to third_party/skia/src/gpu/ganesh/ops/FillRRectOp.h index 0443b0f55d09..73389561e74d 100644 --- a/third_party/skia/src/gpu/ops/FillRRectOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/FillRRectOp.h @@ -8,8 +8,8 @@ #ifndef FillRRectOp_DEFINED #define FillRRectOp_DEFINED -#include "include/private/GrTypesPriv.h" -#include "src/gpu/ops/GrOp.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrCaps; class GrPaint; diff --git a/third_party/skia/src/gpu/ops/FillRectOp.cpp b/third_party/skia/src/gpu/ganesh/ops/FillRectOp.cpp similarity index 96% rename from third_party/skia/src/gpu/ops/FillRectOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/FillRectOp.cpp index b08899162c38..e15c8103fab2 100644 --- a/third_party/skia/src/gpu/ops/FillRectOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/FillRectOp.cpp @@ -5,25 +5,25 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/FillRectOp.h" +#include "src/gpu/ganesh/ops/FillRectOp.h" #include "include/core/SkMatrix.h" #include "include/core/SkRect.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrOpsTypes.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/geometry/GrQuadBuffer.h" -#include "src/gpu/geometry/GrQuadUtils.h" -#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h" -#include "src/gpu/ops/QuadPerEdgeAA.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrOpsTypes.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/geometry/GrQuadBuffer.h" +#include "src/gpu/ganesh/geometry/GrQuadUtils.h" +#include "src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h" +#include "src/gpu/ganesh/ops/QuadPerEdgeAA.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace { @@ -559,8 +559,8 @@ uint32_t skgpu::v1::FillRectOp::ClassID() { return FillRectOpImpl::ClassID(); } -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/SkGr.h" GR_DRAW_OP_TEST_DEFINE(FillRectOp) { SkMatrix viewMatrix = GrTest::TestMatrixInvertible(random); diff --git a/third_party/skia/src/gpu/ops/FillRectOp.h b/third_party/skia/src/gpu/ganesh/ops/FillRectOp.h similarity index 96% rename from third_party/skia/src/gpu/ops/FillRectOp.h rename to third_party/skia/src/gpu/ganesh/ops/FillRectOp.h index db3380b3a512..7f8a30a0b33c 100644 --- a/third_party/skia/src/gpu/ops/FillRectOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/FillRectOp.h @@ -8,8 +8,8 @@ #ifndef FillRectOp_DEFINED #define FillRectOp_DEFINED -#include "include/private/GrTypesPriv.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" struct DrawQuad; class GrClip; diff --git a/third_party/skia/src/gpu/ops/GrDrawOp.h b/third_party/skia/src/gpu/ganesh/ops/GrDrawOp.h similarity index 97% rename from third_party/skia/src/gpu/ops/GrDrawOp.h rename to third_party/skia/src/gpu/ganesh/ops/GrDrawOp.h index 19de7dbb51ba..a15e311c3f15 100644 --- a/third_party/skia/src/gpu/ops/GrDrawOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/GrDrawOp.h @@ -10,9 +10,9 @@ #include #include "src/core/SkIPoint16.h" -#include "src/gpu/GrDeferredUpload.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/GrDeferredUpload.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrAppliedClip; namespace skgpu { namespace v1 { class SurfaceDrawContext; }} diff --git a/third_party/skia/src/gpu/ops/GrMeshDrawOp.cpp b/third_party/skia/src/gpu/ganesh/ops/GrMeshDrawOp.cpp similarity index 96% rename from third_party/skia/src/gpu/ops/GrMeshDrawOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/GrMeshDrawOp.cpp index 8ea25d502701..4fdf90b03819 100644 --- a/third_party/skia/src/gpu/ops/GrMeshDrawOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/GrMeshDrawOp.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" GrMeshDrawOp::GrMeshDrawOp(uint32_t classID) : INHERITED(classID) {} diff --git a/third_party/skia/src/gpu/ops/GrMeshDrawOp.h b/third_party/skia/src/gpu/ganesh/ops/GrMeshDrawOp.h similarity index 97% rename from third_party/skia/src/gpu/ops/GrMeshDrawOp.h rename to third_party/skia/src/gpu/ganesh/ops/GrMeshDrawOp.h index 6cc0c3f0831c..297e1afe4489 100644 --- a/third_party/skia/src/gpu/ops/GrMeshDrawOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/GrMeshDrawOp.h @@ -8,9 +8,9 @@ #ifndef GrMeshDrawOp_DEFINED #define GrMeshDrawOp_DEFINED -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/ops/GrDrawOp.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" #include class SkArenaAlloc; diff --git a/third_party/skia/src/gpu/ops/GrOp.cpp b/third_party/skia/src/gpu/ganesh/ops/GrOp.cpp similarity index 98% rename from third_party/skia/src/gpu/ops/GrOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/GrOp.cpp index 994cddfd8062..de8846846653 100644 --- a/third_party/skia/src/gpu/ops/GrOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/GrOp.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/ops/GrOp.h" std::atomic GrOp::gCurrOpClassID {GrOp::kIllegalOpID + 1}; std::atomic GrOp::gCurrOpUniqueID{GrOp::kIllegalOpID + 1}; diff --git a/third_party/skia/src/gpu/ops/GrOp.h b/third_party/skia/src/gpu/ganesh/ops/GrOp.h similarity index 98% rename from third_party/skia/src/gpu/ops/GrOp.h rename to third_party/skia/src/gpu/ganesh/ops/GrOp.h index 6b3a173adc31..8268f4b0f420 100644 --- a/third_party/skia/src/gpu/ops/GrOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/GrOp.h @@ -12,11 +12,11 @@ #include "include/core/SkRect.h" #include "include/core/SkString.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrGpuResource.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrTracing.h" -#include "src/gpu/GrXferProcessor.h" +#include "src/gpu/ganesh/GrGpuResource.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrTracing.h" +#include "src/gpu/ganesh/GrXferProcessor.h" #include #include diff --git a/third_party/skia/src/gpu/ops/GrOvalOpFactory.cpp b/third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.cpp similarity index 99% rename from third_party/skia/src/gpu/ops/GrOvalOpFactory.cpp rename to third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.cpp index 163005628faa..afdd0525c10a 100644 --- a/third_party/skia/src/gpu/ops/GrOvalOpFactory.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.cpp @@ -5,29 +5,29 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/GrOvalOpFactory.h" +#include "src/gpu/ganesh/ops/GrOvalOpFactory.h" #include "include/core/SkStrokeRec.h" #include "src/core/SkMatrixPriv.h" #include "src/core/SkRRectPriv.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrStyle.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" #include diff --git a/third_party/skia/src/gpu/ops/GrOvalOpFactory.h b/third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.h similarity index 97% rename from third_party/skia/src/gpu/ops/GrOvalOpFactory.h rename to third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.h index fa17c6b0b3b6..bd069894bb96 100644 --- a/third_party/skia/src/gpu/ops/GrOvalOpFactory.h +++ b/third_party/skia/src/gpu/ganesh/ops/GrOvalOpFactory.h @@ -9,8 +9,8 @@ #define GrOvalOpFactory_DEFINED #include "include/core/SkRefCnt.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrDrawOp; class GrPaint; diff --git a/third_party/skia/src/gpu/ops/GrPathStencilSettings.h b/third_party/skia/src/gpu/ganesh/ops/GrPathStencilSettings.h similarity index 98% rename from third_party/skia/src/gpu/ops/GrPathStencilSettings.h rename to third_party/skia/src/gpu/ganesh/ops/GrPathStencilSettings.h index 8d221736ab45..7e3e19376244 100644 --- a/third_party/skia/src/gpu/ops/GrPathStencilSettings.h +++ b/third_party/skia/src/gpu/ganesh/ops/GrPathStencilSettings.h @@ -8,7 +8,7 @@ #ifndef GrPathStencilSettings_DEFINED #define GrPathStencilSettings_DEFINED -#include "src/gpu/GrUserStencilSettings.h" +#include "src/gpu/ganesh/GrUserStencilSettings.h" //////////////////////////////////////////////////////////////////////////////// // Stencil rules for paths diff --git a/third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp b/third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.cpp similarity index 97% rename from third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp rename to third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.cpp index 94c82e7ba249..16f4169524fc 100644 --- a/third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrProcessorSet.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrUserStencilSettings.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/geometry/GrRect.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrProcessorSet.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrUserStencilSettings.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/geometry/GrRect.h" GrSimpleMeshDrawOpHelper::GrSimpleMeshDrawOpHelper(GrProcessorSet* processorSet, GrAAType aaType, diff --git a/third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelper.h b/third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h similarity index 97% rename from third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelper.h rename to third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h index a5aeb8881907..7339bd1b76d8 100644 --- a/third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelper.h +++ b/third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h @@ -9,12 +9,12 @@ #define GrSimpleMeshDrawOpHelper_DEFINED #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrOp.h" #include struct SkRect; diff --git a/third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp b/third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp similarity index 98% rename from third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp rename to third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp index a7a8a4dc849b..5ea0e201cb56 100644 --- a/third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h" GrSimpleMeshDrawOpHelperWithStencil::GrSimpleMeshDrawOpHelperWithStencil( GrProcessorSet* processorSet, diff --git a/third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h b/third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h similarity index 98% rename from third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h rename to third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h index c174ae8afe3b..e178c17e5427 100644 --- a/third_party/skia/src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h +++ b/third_party/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h @@ -8,7 +8,7 @@ #ifndef GrSimpleMeshDrawOpHelperWithStencil_DEFINED #define GrSimpleMeshDrawOpHelperWithStencil_DEFINED -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" /** * This class extends GrSimpleMeshDrawOpHelper to support an optional GrUserStencilSettings. This diff --git a/third_party/skia/src/gpu/ops/LatticeOp.cpp b/third_party/skia/src/gpu/ganesh/ops/LatticeOp.cpp similarity index 96% rename from third_party/skia/src/gpu/ops/LatticeOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/LatticeOp.cpp index 55e2b238bd05..d7723dfe976e 100644 --- a/third_party/skia/src/gpu/ops/LatticeOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/LatticeOp.cpp @@ -5,26 +5,26 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/LatticeOp.h" +#include "src/gpu/ganesh/ops/LatticeOp.h" #include "include/core/SkBitmap.h" #include "include/core/SkRect.h" #include "src/core/SkLatticeIter.h" #include "src/core/SkMatrixPriv.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrResourceProviderPriv.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrResourceProviderPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" namespace skgpu::v1::LatticeOp { @@ -412,9 +412,9 @@ GrOp::Owner MakeNonAA(GrRecordingContext* context, } // namespace skgpu::v1::LatticeOp #if GR_TEST_UTILS -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" /** Randomly divides subset into count divs. */ static void init_random_divs(int divs[], int count, int subsetStart, int subsetStop, diff --git a/third_party/skia/src/gpu/ops/LatticeOp.h b/third_party/skia/src/gpu/ganesh/ops/LatticeOp.h similarity index 91% rename from third_party/skia/src/gpu/ops/LatticeOp.h rename to third_party/skia/src/gpu/ganesh/ops/LatticeOp.h index 99d9e6614a98..4deec7d836ac 100644 --- a/third_party/skia/src/gpu/ops/LatticeOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/LatticeOp.h @@ -10,8 +10,8 @@ #include #include "include/core/SkRefCnt.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrColorSpaceXform; class GrPaint; diff --git a/third_party/skia/src/gpu/ops/OpsTask.cpp b/third_party/skia/src/gpu/ganesh/ops/OpsTask.cpp similarity index 98% rename from third_party/skia/src/gpu/ops/OpsTask.cpp rename to third_party/skia/src/gpu/ganesh/ops/OpsTask.cpp index c691ceff0646..f63f5ef8c65e 100644 --- a/third_party/skia/src/gpu/ops/OpsTask.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/OpsTask.cpp @@ -5,25 +5,25 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/OpsTask.h" +#include "src/gpu/ganesh/ops/OpsTask.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkRectPriv.h" #include "src/core/SkScopeExit.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrAttachment.h" -#include "src/gpu/GrAuditTrail.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceAllocator.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/geometry/GrRect.h" +#include "src/gpu/ganesh/GrAttachment.h" +#include "src/gpu/ganesh/GrAuditTrail.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceAllocator.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/geometry/GrRect.h" //////////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/gpu/ops/OpsTask.h b/third_party/skia/src/gpu/ganesh/ops/OpsTask.h similarity index 97% rename from third_party/skia/src/gpu/ops/OpsTask.h rename to third_party/skia/src/gpu/ganesh/ops/OpsTask.h index e37d58f6cae1..0bcc837ffb94 100644 --- a/third_party/skia/src/gpu/ops/OpsTask.h +++ b/third_party/skia/src/gpu/ganesh/ops/OpsTask.h @@ -20,12 +20,12 @@ #include "src/core/SkClipStack.h" #include "src/core/SkStringUtils.h" #include "src/core/SkTLazy.h" -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrDstProxyView.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrProcessorSet.h" -#include "src/gpu/GrRenderTask.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrDstProxyView.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrProcessorSet.h" +#include "src/gpu/ganesh/GrRenderTask.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrAuditTrail; class GrCaps; diff --git a/third_party/skia/src/gpu/ops/PathInnerTriangulateOp.cpp b/third_party/skia/src/gpu/ganesh/ops/PathInnerTriangulateOp.cpp similarity index 91% rename from third_party/skia/src/gpu/ops/PathInnerTriangulateOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/PathInnerTriangulateOp.cpp index 1090074ac61f..ac4f8f2c5dfb 100644 --- a/third_party/skia/src/gpu/ops/PathInnerTriangulateOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/PathInnerTriangulateOp.cpp @@ -5,16 +5,16 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/PathInnerTriangulateOp.h" +#include "src/gpu/ganesh/ops/PathInnerTriangulateOp.h" -#include "src/gpu/GrEagerVertexAllocator.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/tessellate/PathCurveTessellator.h" -#include "src/gpu/tessellate/shaders/GrPathTessellationShader.h" +#include "src/gpu/ganesh/GrEagerVertexAllocator.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/PathTessellator.h" +#include "src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.h" namespace skgpu::v1 { @@ -419,42 +419,16 @@ void PathInnerTriangulateOp::onPrepare(GrOpFlushState* flushState) { } if (fTessellator) { - int patchPreallocCount = fFanBreadcrumbs.count() + - fTessellator->patchPreallocCount(fPath.countVerbs()); - SkASSERT(patchPreallocCount); // Otherwise fTessellator should be null. - auto tessShader = &fStencilCurvesProgram->geomProc().cast(); int maxSegments = tessShader->maxTessellationSegments(*caps.shaderCaps()); - PatchWriter patchWriter(flushState, fTessellator, maxSegments, patchPreallocCount); - - // Write out breadcrumb triangles. This must be called after polysToTriangles() in order for - // fFanBreadcrumbs to be complete. - SkDEBUGCODE(int breadcrumbCount = 0;) - for (const auto* tri = fFanBreadcrumbs.head(); tri; tri = tri->fNext) { - SkDEBUGCODE(++breadcrumbCount;) - auto p0 = float2::Load(tri->fPts); - auto p1 = float2::Load(tri->fPts + 1); - auto p2 = float2::Load(tri->fPts + 2); - if (skvx::any((p0 == p1) & (p1 == p2))) { - // Cull completely horizontal or vertical triangles. GrTriangulator can't always - // get these breadcrumb edges right when they run parallel to the sweep - // direction because their winding is undefined by its current definition. - // FIXME(skia:12060): This seemed safe, but if there is a view matrix it will - // introduce T-junctions. - continue; - } - patchWriter.writeTriangle(p0, p1, p2); - } - SkASSERT(breadcrumbCount == fFanBreadcrumbs.count()); - // Write out the curves. - fTessellator->writePatches(patchWriter, - tessShader->viewMatrix(), - {SkMatrix::I(), fPath, SK_PMColor4fTRANSPARENT}); - - if (!tessShader->willUseTessellationShaders()) { - fTessellator->prepareFixedCountBuffers(flushState); - } + fTessellator->prepareWithTriangles(flushState, + maxSegments, + tessShader->viewMatrix(), + &fFanBreadcrumbs, + {SkMatrix::I(), fPath, SK_PMColor4fTRANSPARENT}, + fPath.countVerbs(), + tessShader->willUseTessellationShaders()); } if (!caps.shaderCaps()->vertexIDSupport()) { diff --git a/third_party/skia/src/gpu/ops/PathInnerTriangulateOp.h b/third_party/skia/src/gpu/ganesh/ops/PathInnerTriangulateOp.h similarity index 94% rename from third_party/skia/src/gpu/ops/PathInnerTriangulateOp.h rename to third_party/skia/src/gpu/ganesh/ops/PathInnerTriangulateOp.h index 2949cd593ad5..14ad570d56b7 100644 --- a/third_party/skia/src/gpu/ops/PathInnerTriangulateOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/PathInnerTriangulateOp.h @@ -8,19 +8,15 @@ #ifndef PathInnerTriangulateOp_DEFINED #define PathInnerTriangulateOp_DEFINED -#include "src/gpu/geometry/GrInnerFanTriangulator.h" -#include "src/gpu/ops/FillPathFlags.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/tessellate/shaders/GrTessellationShader.h" +#include "src/gpu/ganesh/geometry/GrInnerFanTriangulator.h" +#include "src/gpu/ganesh/ops/FillPathFlags.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h" -namespace skgpu { +namespace skgpu::v1 { class PathCurveTessellator; -}; - -namespace skgpu::v1 { - // This op is a 3-pass twist on the standard Redbook "stencil then cover" algorithm: // // 1) Tessellate the path's outer curves into the stencil buffer. diff --git a/third_party/skia/src/gpu/ops/PathStencilCoverOp.cpp b/third_party/skia/src/gpu/ganesh/ops/PathStencilCoverOp.cpp similarity index 95% rename from third_party/skia/src/gpu/ops/PathStencilCoverOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/PathStencilCoverOp.cpp index 489df995992f..9346ec9956cf 100644 --- a/third_party/skia/src/gpu/ops/PathStencilCoverOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/PathStencilCoverOp.cpp @@ -5,23 +5,22 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/PathStencilCoverOp.h" - -#include "src/gpu/GrEagerVertexAllocator.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/ops/PathStencilCoverOp.h" + +#include "src/gpu/ganesh/GrEagerVertexAllocator.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.h" #include "src/gpu/tessellate/AffineMatrix.h" +#include "src/gpu/tessellate/FixedCountBufferUtils.h" #include "src/gpu/tessellate/MiddleOutPolygonTriangulator.h" -#include "src/gpu/tessellate/PathCurveTessellator.h" -#include "src/gpu/tessellate/PathWedgeTessellator.h" #include "src/gpu/tessellate/Tessellation.h" -#include "src/gpu/tessellate/shaders/GrPathTessellationShader.h" namespace { @@ -238,8 +237,7 @@ void PathStencilCoverOp::onPrepare(GrOpFlushState* flushState) { // The inner fan isn't built into the tessellator. Generate a standard Redbook fan with a // middle-out topology. GrEagerDynamicVertexAllocator vertexAlloc(flushState, &fFanBuffer, &fFanBaseVertex); - int maxCombinedFanEdges = - PathTessellator::MaxCombinedFanEdgesInPathDrawList(fTotalCombinedPathVerbCnt); + int maxCombinedFanEdges = MaxCombinedFanEdgesInPaths(fTotalCombinedPathVerbCnt); // A single n-sided polygon is fanned by n-2 triangles. Multiple polygons with a combined // edge count of n are fanned by strictly fewer triangles. int maxTrianglesInFans = std::max(maxCombinedFanEdges - 2, 0); diff --git a/third_party/skia/src/gpu/ops/PathStencilCoverOp.h b/third_party/skia/src/gpu/ganesh/ops/PathStencilCoverOp.h similarity index 95% rename from third_party/skia/src/gpu/ops/PathStencilCoverOp.h rename to third_party/skia/src/gpu/ganesh/ops/PathStencilCoverOp.h index a11efd7b7902..f40bb80a6ca6 100644 --- a/third_party/skia/src/gpu/ops/PathStencilCoverOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/PathStencilCoverOp.h @@ -8,10 +8,10 @@ #ifndef PathStencilCoverOp_DEFINED #define PathStencilCoverOp_DEFINED -#include "src/gpu/ops/FillPathFlags.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/tessellate/PathTessellator.h" -#include "src/gpu/tessellate/shaders/GrTessellationShader.h" +#include "src/gpu/ganesh/ops/FillPathFlags.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/ops/PathTessellator.h" +#include "src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/PathTessellateOp.cpp b/third_party/skia/src/gpu/ganesh/ops/PathTessellateOp.cpp similarity index 96% rename from third_party/skia/src/gpu/ops/PathTessellateOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/PathTessellateOp.cpp index 4c8f04c87311..7b8b708b4015 100644 --- a/third_party/skia/src/gpu/ops/PathTessellateOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/PathTessellateOp.cpp @@ -5,12 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/PathTessellateOp.h" +#include "src/gpu/ganesh/ops/PathTessellateOp.h" -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/tessellate/PathWedgeTessellator.h" -#include "src/gpu/tessellate/shaders/GrPathTessellationShader.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/PathTessellateOp.h b/third_party/skia/src/gpu/ganesh/ops/PathTessellateOp.h similarity index 95% rename from third_party/skia/src/gpu/ops/PathTessellateOp.h rename to third_party/skia/src/gpu/ganesh/ops/PathTessellateOp.h index a310aadb7385..8cd98c26c9d6 100644 --- a/third_party/skia/src/gpu/ops/PathTessellateOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/PathTessellateOp.h @@ -8,10 +8,10 @@ #ifndef PathTessellateOp_DEFINED #define PathTessellateOp_DEFINED -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/tessellate/PathTessellator.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/ops/PathTessellator.h" +#include "src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h" #include "src/gpu/tessellate/Tessellation.h" -#include "src/gpu/tessellate/shaders/GrTessellationShader.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ganesh/ops/PathTessellator.cpp b/third_party/skia/src/gpu/ganesh/ops/PathTessellator.cpp new file mode 100644 index 000000000000..0b13b69a5ea9 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/ops/PathTessellator.cpp @@ -0,0 +1,303 @@ +/* + * 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/ops/PathTessellator.h" + +#include "src/core/SkPathPriv.h" +#include "src/gpu/ganesh/GrMeshDrawTarget.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/tessellate/AffineMatrix.h" +#include "src/gpu/tessellate/FixedCountBufferUtils.h" +#include "src/gpu/tessellate/MiddleOutPolygonTriangulator.h" +#include "src/gpu/tessellate/MidpointContourParser.h" +#include "src/gpu/tessellate/PatchWriter.h" +#include "src/gpu/tessellate/WangsFormula.h" + +namespace skgpu::v1 { + +namespace { + +using CurveWriter = PatchWriter, + Optional, + Optional, + AddTrianglesWhenChopping, + DiscardFlatCurves>; + +int write_curve_patches(CurveWriter&& patchWriter, + const SkMatrix& shaderMatrix, + const PathTessellator::PathDrawList& pathDrawList) { + wangs_formula::VectorXform shaderXform(shaderMatrix); + for (auto [pathMatrix, path, color] : pathDrawList) { + AffineMatrix m(pathMatrix); + if (patchWriter.attribs() & PatchAttribs::kColor) { + patchWriter.updateColorAttrib(color); + } + for (auto [verb, pts, w] : SkPathPriv::Iterate(path)) { + switch (verb) { + case SkPathVerb::kQuad: { + auto [p0, p1] = m.map2Points(pts); + auto p2 = m.map1Point(pts+2); + + patchWriter.writeQuadratic(p0, p1, p2, shaderXform); + break; + } + + case SkPathVerb::kConic: { + auto [p0, p1] = m.map2Points(pts); + auto p2 = m.map1Point(pts+2); + + patchWriter.writeConic(p0, p1, p2, *w, shaderXform); + break; + } + + case SkPathVerb::kCubic: { + auto [p0, p1] = m.map2Points(pts); + auto [p2, p3] = m.map2Points(pts+2); + + patchWriter.writeCubic(p0, p1, p2, p3, shaderXform); + break; + } + + default: break; + } + } + } + + return patchWriter.requiredResolveLevel(); +} + +using WedgeWriter = PatchWriter, + Optional, + Optional, + Optional>; + +int write_wedge_patches(WedgeWriter&& patchWriter, + const SkMatrix& shaderMatrix, + const PathTessellator::PathDrawList& pathDrawList) { + wangs_formula::VectorXform shaderXform(shaderMatrix); + for (auto [pathMatrix, path, color] : pathDrawList) { + AffineMatrix m(pathMatrix); + if (patchWriter.attribs() & PatchAttribs::kColor) { + patchWriter.updateColorAttrib(color); + } + MidpointContourParser parser(path); + while (parser.parseNextContour()) { + patchWriter.updateFanPointAttrib(m.mapPoint(parser.currentMidpoint())); + SkPoint lastPoint = {0, 0}; + SkPoint startPoint = {0, 0}; + for (auto [verb, pts, w] : parser.currentContour()) { + switch (verb) { + case SkPathVerb::kMove: { + startPoint = lastPoint = pts[0]; + break; + } + + case SkPathVerb::kLine: { + // Explicitly convert the line to an equivalent cubic w/ four distinct + // control points because it fans better and avoids double-hitting pixels. + patchWriter.writeLine(m.map2Points(pts)); + lastPoint = pts[1]; + break; + } + + case SkPathVerb::kQuad: { + auto [p0, p1] = m.map2Points(pts); + auto p2 = m.map1Point(pts+2); + + patchWriter.writeQuadratic(p0, p1, p2, shaderXform); + lastPoint = pts[2]; + break; + } + + case SkPathVerb::kConic: { + auto [p0, p1] = m.map2Points(pts); + auto p2 = m.map1Point(pts+2); + + patchWriter.writeConic(p0, p1, p2, *w, shaderXform); + lastPoint = pts[2]; + break; + } + + case SkPathVerb::kCubic: { + auto [p0, p1] = m.map2Points(pts); + auto [p2, p3] = m.map2Points(pts+2); + + patchWriter.writeCubic(p0, p1, p2, p3, shaderXform); + lastPoint = pts[3]; + break; + } + + case SkPathVerb::kClose: { + break; // Ignore. We can assume an implicit close at the end. + } + } + } + if (lastPoint != startPoint) { + SkPoint pts[2] = {lastPoint, startPoint}; + patchWriter.writeLine(m.map2Points(pts)); + } + } + } + + return patchWriter.requiredResolveLevel(); +} + +} // namespace + +SKGPU_DECLARE_STATIC_UNIQUE_KEY(gFixedCountCurveVertexBufferKey); +SKGPU_DECLARE_STATIC_UNIQUE_KEY(gFixedCountCurveIndexBufferKey); + +void PathCurveTessellator::prepareWithTriangles( + GrMeshDrawTarget* target, + int maxTessellationSegments, + const SkMatrix& shaderMatrix, + GrInnerFanTriangulator::BreadcrumbTriangleList* extraTriangles, + const PathDrawList& pathDrawList, + int totalCombinedPathVerbCnt, + bool willUseTessellationShaders) { + int patchPreallocCount = FixedCountCurves::PreallocCount(totalCombinedPathVerbCnt) + + (extraTriangles ? extraTriangles->count() : 0); + if (patchPreallocCount) { + CurveWriter writer{fAttribs, maxTessellationSegments, + target, &fVertexChunkArray, patchPreallocCount}; + + // Write out extra space-filling triangles to connect the curve patches with any external + // source of geometry (e.g. inner triangulation that handles winding explicitly). + if (extraTriangles) { + SkDEBUGCODE(int breadcrumbCount = 0;) + for (const auto* tri = extraTriangles->head(); tri; tri = tri->fNext) { + SkDEBUGCODE(++breadcrumbCount;) + auto p0 = float2::Load(tri->fPts); + auto p1 = float2::Load(tri->fPts + 1); + auto p2 = float2::Load(tri->fPts + 2); + if (skvx::any((p0 == p1) & (p1 == p2))) { + // Cull completely horizontal or vertical triangles. GrTriangulator can't always + // get these breadcrumb edges right when they run parallel to the sweep + // direction because their winding is undefined by its current definition. + // FIXME(skia:12060): This seemed safe, but if there is a view matrix it will + // introduce T-junctions. + continue; + } + writer.writeTriangle(p0, p1, p2); + } + SkASSERT(breadcrumbCount == extraTriangles->count()); + } + + int resolveLevel = write_curve_patches(std::move(writer), shaderMatrix, pathDrawList); + this->updateResolveLevel(resolveLevel); + } + if (!willUseTessellationShaders) { + this->prepareFixedCountBuffers(target); + } +} + +void PathCurveTessellator::prepareFixedCountBuffers(GrMeshDrawTarget* target) { + GrResourceProvider* rp = target->resourceProvider(); + + SKGPU_DEFINE_STATIC_UNIQUE_KEY(gFixedCountCurveVertexBufferKey); + + fFixedVertexBuffer = rp->findOrMakeStaticBuffer(GrGpuBufferType::kVertex, + FixedCountCurves::VertexBufferSize(), + gFixedCountCurveVertexBufferKey, + FixedCountCurves::WriteVertexBuffer); + + SKGPU_DEFINE_STATIC_UNIQUE_KEY(gFixedCountCurveIndexBufferKey); + + fFixedIndexBuffer = rp->findOrMakeStaticBuffer(GrGpuBufferType::kIndex, + FixedCountCurves::IndexBufferSize(), + gFixedCountCurveIndexBufferKey, + FixedCountCurves::WriteIndexBuffer); +} + +void PathCurveTessellator::drawTessellated(GrOpFlushState* flushState) const { + for (const GrVertexChunk& chunk : fVertexChunkArray) { + flushState->bindBuffers(nullptr, nullptr, chunk.fBuffer); + flushState->draw(chunk.fCount * 4, chunk.fBase * 4); + } +} + +void PathCurveTessellator::drawFixedCount(GrOpFlushState* flushState) const { + if (!fFixedVertexBuffer || !fFixedIndexBuffer) { + return; + } + int fixedIndexCount = NumCurveTrianglesAtResolveLevel(fFixedResolveLevel) * 3; + for (const GrVertexChunk& chunk : fVertexChunkArray) { + flushState->bindBuffers(fFixedIndexBuffer, chunk.fBuffer, fFixedVertexBuffer); + flushState->drawIndexedInstanced(fixedIndexCount, 0, chunk.fCount, chunk.fBase, 0); + } +} + +void PathCurveTessellator::drawHullInstances(GrOpFlushState* flushState, + sk_sp vertexBufferIfNeeded) const { + for (const GrVertexChunk& chunk : fVertexChunkArray) { + flushState->bindBuffers(nullptr, chunk.fBuffer, vertexBufferIfNeeded); + flushState->drawInstanced(chunk.fCount, chunk.fBase, 4, 0); + } +} + + +SKGPU_DECLARE_STATIC_UNIQUE_KEY(gFixedCountWedgesVertexBufferKey); +SKGPU_DECLARE_STATIC_UNIQUE_KEY(gFixedCountWedgesIndexBufferKey); + +void PathWedgeTessellator::prepareFixedCountBuffers(GrMeshDrawTarget* target) { + GrResourceProvider* rp = target->resourceProvider(); + + SKGPU_DEFINE_STATIC_UNIQUE_KEY(gFixedCountWedgesVertexBufferKey); + + fFixedVertexBuffer = rp->findOrMakeStaticBuffer(GrGpuBufferType::kVertex, + FixedCountWedges::VertexBufferSize(), + gFixedCountWedgesVertexBufferKey, + FixedCountWedges::WriteVertexBuffer); + + SKGPU_DEFINE_STATIC_UNIQUE_KEY(gFixedCountWedgesIndexBufferKey); + + fFixedIndexBuffer = rp->findOrMakeStaticBuffer(GrGpuBufferType::kIndex, + FixedCountWedges::IndexBufferSize(), + gFixedCountWedgesIndexBufferKey, + FixedCountWedges::WriteIndexBuffer); +} + +void PathWedgeTessellator::prepare(GrMeshDrawTarget* target, + int maxTessellationSegments, + const SkMatrix& shaderMatrix, + const PathDrawList& pathDrawList, + int totalCombinedPathVerbCnt, + bool willUseTessellationShaders) { + if (int patchPreallocCount = FixedCountWedges::PreallocCount(totalCombinedPathVerbCnt)) { + WedgeWriter writer{fAttribs, maxTessellationSegments, + target, &fVertexChunkArray, patchPreallocCount}; + int resolveLevel = write_wedge_patches(std::move(writer), shaderMatrix, pathDrawList); + this->updateResolveLevel(resolveLevel); + } + if (!willUseTessellationShaders) { + this->prepareFixedCountBuffers(target); + } +} + +void PathWedgeTessellator::drawTessellated(GrOpFlushState* flushState) const { + for (const GrVertexChunk& chunk : fVertexChunkArray) { + flushState->bindBuffers(nullptr, nullptr, chunk.fBuffer); + flushState->draw(chunk.fCount * 5, chunk.fBase * 5); + } +} + +void PathWedgeTessellator::drawFixedCount(GrOpFlushState* flushState) const { + if (!fFixedVertexBuffer || !fFixedIndexBuffer) { + return; + } + // Emit 3 vertices per curve triangle, plus 3 more for the fan triangle. + int fixedIndexCount = (NumCurveTrianglesAtResolveLevel(fFixedResolveLevel) + 1) * 3; + for (const GrVertexChunk& chunk : fVertexChunkArray) { + flushState->bindBuffers(fFixedIndexBuffer, chunk.fBuffer, fFixedVertexBuffer); + flushState->drawIndexedInstanced(fixedIndexCount, 0, chunk.fCount, chunk.fBase, 0); + } +} + +} // namespace skgpu::v1 diff --git a/third_party/skia/src/gpu/ganesh/ops/PathTessellator.h b/third_party/skia/src/gpu/ganesh/ops/PathTessellator.h new file mode 100644 index 000000000000..3433d481180b --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/ops/PathTessellator.h @@ -0,0 +1,191 @@ +/* + * 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 PathTessellator_DEFINED +#define PathTessellator_DEFINED + +#include "src/core/SkArenaAlloc.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrVertexChunkArray.h" +#include "src/gpu/ganesh/geometry/GrInnerFanTriangulator.h" +#include "src/gpu/tessellate/FixedCountBufferUtils.h" +#include "src/gpu/tessellate/Tessellation.h" + +class GrMeshDrawTarget; +class GrOpFlushState; +class SkPath; + +namespace skgpu::v1 { + +// Prepares GPU data for, and then draws a path's tessellated geometry. Depending on the subclass, +// the caller may or may not be required to draw the path's inner fan separately. +class PathTessellator { +public: + + struct PathDrawList { + PathDrawList(const SkMatrix& pathMatrix, + const SkPath& path, + const SkPMColor4f& color, + PathDrawList* next = nullptr) + : fPathMatrix(pathMatrix), fPath(path), fColor(color), fNext(next) {} + + SkMatrix fPathMatrix; + SkPath fPath; + SkPMColor4f fColor; + PathDrawList* fNext; + + struct Iter { + void operator++() { fHead = fHead->fNext; } + bool operator!=(const Iter& b) const { return fHead != b.fHead; } + std::tuple operator*() const { + return {fHead->fPathMatrix, fHead->fPath, fHead->fColor}; + } + const PathDrawList* fHead; + }; + Iter begin() const { return {this}; } + Iter end() const { return {nullptr}; } + }; + + virtual ~PathTessellator() {} + + PatchAttribs patchAttribs() const { return fAttribs; } + + // Initializes the internal vertex and index buffers required for drawFixedCount(). + virtual void prepareFixedCountBuffers(GrMeshDrawTarget*) = 0; + + // Called before draw(). Prepares GPU buffers containing the geometry to tessellate. + virtual void prepare(GrMeshDrawTarget* target, + int maxTessellationSegments, + const SkMatrix& shaderMatrix, + const PathDrawList& pathDrawList, + int totalCombinedPathVerbCnt, + bool willUseTessellationShaders) = 0; + + // Issues hardware tessellation draw calls over the patches. The caller is responsible for + // binding its desired pipeline ahead of time. + virtual void drawTessellated(GrOpFlushState*) const = 0; + + // Issues fixed-count instanced draw calls over the patches. The caller is responsible for + // binding its desired pipeline ahead of time. + virtual void drawFixedCount(GrOpFlushState*) const = 0; + + void draw(GrOpFlushState* flushState, bool willUseTessellationShaders) { + if (willUseTessellationShaders) { + this->drawTessellated(flushState); + } else { + this->drawFixedCount(flushState); + } + } + +protected: + PathTessellator(bool infinitySupport, PatchAttribs attribs) : fAttribs(attribs) { + if (!infinitySupport) { + fAttribs |= PatchAttribs::kExplicitCurveType; + } + } + + void updateResolveLevel(int resolveLevel) { + // We should already chopped curves to make sure none needed a higher resolveLevel than + // kMaxFixedResolveLevel. + fFixedResolveLevel = SkTPin(resolveLevel, fFixedResolveLevel, skgpu::kMaxFixedResolveLevel); + } + + PatchAttribs fAttribs; + + // Calculated during prepare(). If using fixed count, this is the resolveLevel to use on our + // instanced draws. 2^resolveLevel == numSegments. + int fFixedResolveLevel = 0; + + GrVertexChunkArray fVertexChunkArray; + + // If using fixed-count rendering, these are the vertex and index buffers. + sk_sp fFixedVertexBuffer; + sk_sp fFixedIndexBuffer; +}; + +// Draws an array of "outer curve" patches. Each patch is an independent 4-point curve, representing +// either a cubic or a conic. Quadratics are converted to cubics and triangles are converted to +// conics with w=Inf. +class PathCurveTessellator final : public PathTessellator { +public: + static PathCurveTessellator* Make(SkArenaAlloc* arena, + bool infinitySupport, + PatchAttribs attribs = PatchAttribs::kNone) { + return arena->make(infinitySupport, attribs); + } + + PathCurveTessellator(bool infinitySupport, + PatchAttribs attribs = PatchAttribs::kNone) + : PathTessellator(infinitySupport, attribs) {} + + void prepareWithTriangles(GrMeshDrawTarget* target, + int maxTessellationSegments, + const SkMatrix& shaderMatrix, + GrInnerFanTriangulator::BreadcrumbTriangleList* extraTriangles, + const PathDrawList& pathDrawList, + int totalCombinedPathVerbCnt, + bool willUseTessellationShaders); + + void prepare(GrMeshDrawTarget* target, + int maxTessellationSegments, + const SkMatrix& shaderMatrix, + const PathDrawList& pathDrawList, + int totalCombinedPathVerbCnt, + bool willUseTessellationShaders) final { + this->prepareWithTriangles(target, + maxTessellationSegments, + shaderMatrix, + nullptr, // no extra triangles by default + pathDrawList, + totalCombinedPathVerbCnt, + willUseTessellationShaders); + } + + void prepareFixedCountBuffers(GrMeshDrawTarget*) final; + + void drawTessellated(GrOpFlushState*) const final; + void drawFixedCount(GrOpFlushState*) const final; + + // Draws a 4-point instance for each patch. This method is used for drawing convex hulls over + // each cubic with GrFillCubicHullShader. The caller is responsible for binding its desired + // pipeline ahead of time. + void drawHullInstances(GrOpFlushState*, sk_sp vertexBufferIfNeeded) const; +}; + +// Prepares an array of "wedge" patches. A wedge is an independent, 5-point closed contour +// consisting of 4 control points plus an anchor point fanning from the center of the curve's +// resident contour. A wedge can be either a cubic or a conic. Quadratics and lines are converted to +// cubics. Once stencilled, these wedges alone define the complete path. +class PathWedgeTessellator final : public PathTessellator { +public: + static PathWedgeTessellator* Make(SkArenaAlloc* arena, + bool infinitySupport, + PatchAttribs attribs = PatchAttribs::kNone) { + return arena->make(infinitySupport, attribs); + } + + PathWedgeTessellator(bool infinitySupport, PatchAttribs attribs = PatchAttribs::kNone) + : PathTessellator(infinitySupport, attribs) { + fAttribs |= PatchAttribs::kFanPoint; + } + + void prepare(GrMeshDrawTarget* target, + int maxTessellationSegments, + const SkMatrix& shaderMatrix, + const PathDrawList& pathDrawList, + int totalCombinedPathVerbCnt, + bool willUseTessellationShaders) final; + + void prepareFixedCountBuffers(GrMeshDrawTarget*) final; + + void drawTessellated(GrOpFlushState*) const final; + void drawFixedCount(GrOpFlushState*) const final; +}; + +} // namespace skgpu::v1 + +#endif // PathTessellator_DEFINED diff --git a/third_party/skia/src/gpu/ops/QuadPerEdgeAA.cpp b/third_party/skia/src/gpu/ganesh/ops/QuadPerEdgeAA.cpp similarity index 99% rename from third_party/skia/src/gpu/ops/QuadPerEdgeAA.cpp rename to third_party/skia/src/gpu/ganesh/ops/QuadPerEdgeAA.cpp index d29798331b78..89aeefc4e6ae 100644 --- a/third_party/skia/src/gpu/ops/QuadPerEdgeAA.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/QuadPerEdgeAA.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/QuadPerEdgeAA.h" +#include "src/gpu/ganesh/ops/QuadPerEdgeAA.h" #include "include/private/SkVx.h" -#include "src/gpu/GrMeshDrawTarget.h" -#include "src/gpu/GrResourceProvider.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/geometry/GrQuadUtils.h" -#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/GrMeshDrawTarget.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/geometry/GrQuadUtils.h" +#include "src/gpu/ganesh/glsl/GrGLSLColorSpaceXformHelper.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" static_assert((int)GrQuadAAFlags::kLeft == SkCanvas::kLeft_QuadAAFlag); static_assert((int)GrQuadAAFlags::kTop == SkCanvas::kTop_QuadAAFlag); diff --git a/third_party/skia/src/gpu/ops/QuadPerEdgeAA.h b/third_party/skia/src/gpu/ganesh/ops/QuadPerEdgeAA.h similarity index 96% rename from third_party/skia/src/gpu/ops/QuadPerEdgeAA.h rename to third_party/skia/src/gpu/ganesh/ops/QuadPerEdgeAA.h index 65d4287734a5..b13baba33a4b 100644 --- a/third_party/skia/src/gpu/ops/QuadPerEdgeAA.h +++ b/third_party/skia/src/gpu/ganesh/ops/QuadPerEdgeAA.h @@ -10,14 +10,14 @@ #include "include/core/SkPoint.h" #include "include/core/SkPoint3.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/geometry/GrQuadUtils.h" -#include "src/gpu/ops/TextureOp.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/geometry/GrQuadUtils.h" +#include "src/gpu/ganesh/ops/TextureOp.h" class GrCaps; class GrColorSpaceXform; diff --git a/third_party/skia/src/gpu/ops/RegionOp.cpp b/third_party/skia/src/gpu/ganesh/ops/RegionOp.cpp similarity index 95% rename from third_party/skia/src/gpu/ops/RegionOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/RegionOp.cpp index 61289bf2d90b..899ab9e09493 100644 --- a/third_party/skia/src/gpu/ops/RegionOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/RegionOp.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/RegionOp.h" +#include "src/gpu/ganesh/ops/RegionOp.h" #include "include/core/SkRegion.h" #include "src/core/SkMatrixPriv.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDefaultGeoProcFactory.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDefaultGeoProcFactory.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h" namespace skgpu::v1::RegionOp { @@ -216,7 +216,7 @@ GrOp::Owner Make(GrRecordingContext* context, #if GR_TEST_UTILS -#include "src/gpu/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" GR_DRAW_OP_TEST_DEFINE(RegionOp) { SkRegion region; diff --git a/third_party/skia/src/gpu/ops/RegionOp.h b/third_party/skia/src/gpu/ganesh/ops/RegionOp.h similarity index 88% rename from third_party/skia/src/gpu/ops/RegionOp.h rename to third_party/skia/src/gpu/ganesh/ops/RegionOp.h index 5086c8392f3a..1653518bd81d 100644 --- a/third_party/skia/src/gpu/ops/RegionOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/RegionOp.h @@ -8,8 +8,8 @@ #ifndef RegionOp_DEFINED #define RegionOp_DEFINED -#include "include/private/GrTypesPriv.h" -#include "src/gpu/ops/GrOp.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrPaint; class GrRecordingContext; diff --git a/third_party/skia/src/gpu/ops/ShadowRRectOp.cpp b/third_party/skia/src/gpu/ganesh/ops/ShadowRRectOp.cpp similarity index 98% rename from third_party/skia/src/gpu/ops/ShadowRRectOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/ShadowRRectOp.cpp index f0ce9c0bd0f8..719eeb1774a0 100644 --- a/third_party/skia/src/gpu/ops/ShadowRRectOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/ShadowRRectOp.cpp @@ -5,19 +5,20 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/ShadowRRectOp.h" +#include "src/gpu/ganesh/ops/ShadowRRectOp.h" +#include "include/core/SkBitmap.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkRRectPriv.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrThreadSafeCache.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrShadowGeoProc.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrThreadSafeCache.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrShadowGeoProc.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" namespace { @@ -748,7 +749,7 @@ GrOp::Owner Make(GrRecordingContext* context, #if GR_TEST_UTILS -#include "src/gpu/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" GR_DRAW_OP_TEST_DEFINE(ShadowRRectOp) { // We may choose matrix and inset values that cause the factory to fail. We loop until we find diff --git a/third_party/skia/src/gpu/ops/ShadowRRectOp.h b/third_party/skia/src/gpu/ganesh/ops/ShadowRRectOp.h similarity index 89% rename from third_party/skia/src/gpu/ops/ShadowRRectOp.h rename to third_party/skia/src/gpu/ganesh/ops/ShadowRRectOp.h index 74a87afa30d9..803c7d28a681 100644 --- a/third_party/skia/src/gpu/ops/ShadowRRectOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/ShadowRRectOp.h @@ -9,8 +9,8 @@ #define ShadowRRectOp_DEFINED #include -#include "src/gpu/GrColor.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrRecordingContext; diff --git a/third_party/skia/src/gpu/ops/SmallPathAtlasMgr.cpp b/third_party/skia/src/gpu/ganesh/ops/SmallPathAtlasMgr.cpp similarity index 96% rename from third_party/skia/src/gpu/ops/SmallPathAtlasMgr.cpp rename to third_party/skia/src/gpu/ganesh/ops/SmallPathAtlasMgr.cpp index bdd8027cdd83..bfaf491c00fd 100644 --- a/third_party/skia/src/gpu/ops/SmallPathAtlasMgr.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/SmallPathAtlasMgr.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/SmallPathAtlasMgr.h" +#include "src/gpu/ganesh/ops/SmallPathAtlasMgr.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/SmallPathShapeData.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/SmallPathShapeData.h" #ifdef DF_PATH_TRACKING static int g_NumCachedShapes = 0; diff --git a/third_party/skia/src/gpu/ops/SmallPathAtlasMgr.h b/third_party/skia/src/gpu/ganesh/ops/SmallPathAtlasMgr.h similarity index 96% rename from third_party/skia/src/gpu/ops/SmallPathAtlasMgr.h rename to third_party/skia/src/gpu/ganesh/ops/SmallPathAtlasMgr.h index ec229aea2292..e0edf0673939 100644 --- a/third_party/skia/src/gpu/ops/SmallPathAtlasMgr.h +++ b/third_party/skia/src/gpu/ganesh/ops/SmallPathAtlasMgr.h @@ -10,8 +10,8 @@ #include "src/core/SkTDynamicHash.h" #include "src/core/SkTInternalLList.h" -#include "src/gpu/GrDrawOpAtlas.h" -#include "src/gpu/GrOnFlushResourceProvider.h" +#include "src/gpu/ganesh/GrDrawOpAtlas.h" +#include "src/gpu/ganesh/GrOnFlushResourceProvider.h" class GrStyledShape; diff --git a/third_party/skia/src/gpu/ops/SmallPathRenderer.cpp b/third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.cpp similarity index 97% rename from third_party/skia/src/gpu/ops/SmallPathRenderer.cpp rename to third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.cpp index 43d5feab3f3a..564be5e19f03 100644 --- a/third_party/skia/src/gpu/ops/SmallPathRenderer.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.cpp @@ -6,7 +6,7 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/SmallPathRenderer.h" +#include "src/gpu/ganesh/ops/SmallPathRenderer.h" #include "include/core/SkPaint.h" #include "src/core/SkAutoPixmapStorage.h" @@ -17,20 +17,20 @@ #include "src/core/SkPointPriv.h" #include "src/core/SkRasterClip.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrBuffer.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDistanceFieldGenFromVector.h" -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/effects/GrBitmapTextGeoProc.h" -#include "src/gpu/effects/GrDistanceFieldGeoProc.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h" -#include "src/gpu/ops/SmallPathAtlasMgr.h" -#include "src/gpu/ops/SmallPathShapeData.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrBuffer.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDistanceFieldGenFromVector.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/effects/GrBitmapTextGeoProc.h" +#include "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h" +#include "src/gpu/ganesh/ops/SmallPathAtlasMgr.h" +#include "src/gpu/ganesh/ops/SmallPathShapeData.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/SmallPathRenderer.h b/third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.h similarity index 94% rename from third_party/skia/src/gpu/ops/SmallPathRenderer.h rename to third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.h index 09a359f7748d..bc18e15bd341 100644 --- a/third_party/skia/src/gpu/ops/SmallPathRenderer.h +++ b/third_party/skia/src/gpu/ganesh/ops/SmallPathRenderer.h @@ -8,7 +8,7 @@ #ifndef SmallPathRenderer_DEFINED #define SmallPathRenderer_DEFINED -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" class GrStyledShape; diff --git a/third_party/skia/src/gpu/ops/SmallPathShapeData.cpp b/third_party/skia/src/gpu/ganesh/ops/SmallPathShapeData.cpp similarity index 92% rename from third_party/skia/src/gpu/ops/SmallPathShapeData.cpp rename to third_party/skia/src/gpu/ganesh/ops/SmallPathShapeData.cpp index 1f8ed0b8b119..4223fdb208d1 100644 --- a/third_party/skia/src/gpu/ops/SmallPathShapeData.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/SmallPathShapeData.cpp @@ -5,9 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/SmallPathShapeData.h" +#include "src/gpu/ganesh/ops/SmallPathShapeData.h" -#include "src/gpu/geometry/GrStyledShape.h" +#include "include/private/SkFixed.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/ops/SmallPathShapeData.h b/third_party/skia/src/gpu/ganesh/ops/SmallPathShapeData.h similarity index 97% rename from third_party/skia/src/gpu/ops/SmallPathShapeData.h rename to third_party/skia/src/gpu/ganesh/ops/SmallPathShapeData.h index 1bf5befdbf28..ebad27626f17 100644 --- a/third_party/skia/src/gpu/ops/SmallPathShapeData.h +++ b/third_party/skia/src/gpu/ganesh/ops/SmallPathShapeData.h @@ -9,7 +9,7 @@ #define SmallPathShapeData_DEFINED #include "src/core/SkOpts.h" -#include "src/gpu/GrDrawOpAtlas.h" +#include "src/gpu/ganesh/GrDrawOpAtlas.h" class GrStyledShape; diff --git a/third_party/skia/src/gpu/ops/SoftwarePathRenderer.cpp b/third_party/skia/src/gpu/ganesh/ops/SoftwarePathRenderer.cpp similarity index 95% rename from third_party/skia/src/gpu/ops/SoftwarePathRenderer.cpp rename to third_party/skia/src/gpu/ganesh/ops/SoftwarePathRenderer.cpp index 9db3387ce980..edd6f466a8b7 100644 --- a/third_party/skia/src/gpu/ops/SoftwarePathRenderer.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/SoftwarePathRenderer.cpp @@ -5,28 +5,28 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/SoftwarePathRenderer.h" +#include "src/gpu/ganesh/ops/SoftwarePathRenderer.h" #include "include/gpu/GrDirectContext.h" #include "include/private/SkSemaphore.h" #include "src/core/SkTaskGroup.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrAuditTrail.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrDeferredProxyUploader.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrSWMaskHelper.h" -#include "src/gpu/GrUtil.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrAuditTrail.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrDeferredProxyUploader.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrSWMaskHelper.h" +#include "src/gpu/ganesh/GrUtil.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace { diff --git a/third_party/skia/src/gpu/ops/SoftwarePathRenderer.h b/third_party/skia/src/gpu/ganesh/ops/SoftwarePathRenderer.h similarity index 97% rename from third_party/skia/src/gpu/ops/SoftwarePathRenderer.h rename to third_party/skia/src/gpu/ganesh/ops/SoftwarePathRenderer.h index de1dc8c13044..b4a9be48dba7 100644 --- a/third_party/skia/src/gpu/ops/SoftwarePathRenderer.h +++ b/third_party/skia/src/gpu/ganesh/ops/SoftwarePathRenderer.h @@ -8,8 +8,8 @@ #ifndef SoftwarePathRenderer_DEFINED #define SoftwarePathRenderer_DEFINED -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" class GrProxyProvider; diff --git a/third_party/skia/src/gpu/ops/StrokeRectOp.cpp b/third_party/skia/src/gpu/ganesh/ops/StrokeRectOp.cpp similarity index 98% rename from third_party/skia/src/gpu/ops/StrokeRectOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/StrokeRectOp.cpp index c6c700368d39..c2af1c06af67 100644 --- a/third_party/skia/src/gpu/ops/StrokeRectOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/StrokeRectOp.cpp @@ -5,24 +5,24 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/StrokeRectOp.h" +#include "src/gpu/ganesh/ops/StrokeRectOp.h" #include "include/core/SkStrokeRec.h" #include "include/utils/SkRandom.h" #include "src/core/SkMatrixPriv.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrDefaultGeoProcFactory.h" -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrResourceProvider.h" #include "src/gpu/ResourceKey.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/ops/FillRectOp.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrDefaultGeoProcFactory.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/ops/FillRectOp.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" namespace skgpu::v1::StrokeRectOp { @@ -987,7 +987,7 @@ GrOp::Owner MakeNested(GrRecordingContext* context, #if GR_TEST_UTILS -#include "src/gpu/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" GR_DRAW_OP_TEST_DEFINE(NonAAStrokeRectOp) { SkMatrix viewMatrix = GrTest::TestMatrix(random); diff --git a/third_party/skia/src/gpu/ops/StrokeRectOp.h b/third_party/skia/src/gpu/ganesh/ops/StrokeRectOp.h similarity index 94% rename from third_party/skia/src/gpu/ops/StrokeRectOp.h rename to third_party/skia/src/gpu/ganesh/ops/StrokeRectOp.h index 1af01b187590..dc79f7ae1c90 100644 --- a/third_party/skia/src/gpu/ops/StrokeRectOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/StrokeRectOp.h @@ -8,8 +8,8 @@ #ifndef StrokeRectOp_DEFINED #define StrokeRectOp_DEFINED -#include "include/private/GrTypesPriv.h" -#include "src/gpu/ops/GrOp.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrPaint; class GrRecordingContext; diff --git a/third_party/skia/src/gpu/ops/StrokeTessellateOp.cpp b/third_party/skia/src/gpu/ganesh/ops/StrokeTessellateOp.cpp similarity index 97% rename from third_party/skia/src/gpu/ops/StrokeTessellateOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/StrokeTessellateOp.cpp index 322fe09d8d23..11aa71afdc84 100644 --- a/third_party/skia/src/gpu/ops/StrokeTessellateOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/StrokeTessellateOp.cpp @@ -5,16 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/StrokeTessellateOp.h" +#include "src/gpu/ganesh/ops/StrokeTessellateOp.h" #include "src/core/SkMathPriv.h" #include "src/core/SkPathPriv.h" -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/tessellate/StrokeFixedCountTessellator.h" -#include "src/gpu/tessellate/StrokeHardwareTessellator.h" -#include "src/gpu/tessellate/shaders/GrStrokeTessellationShader.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.h" namespace { diff --git a/third_party/skia/src/gpu/ops/StrokeTessellateOp.h b/third_party/skia/src/gpu/ganesh/ops/StrokeTessellateOp.h similarity index 95% rename from third_party/skia/src/gpu/ops/StrokeTessellateOp.h rename to third_party/skia/src/gpu/ganesh/ops/StrokeTessellateOp.h index 8eecd2487301..60d516e22596 100644 --- a/third_party/skia/src/gpu/ops/StrokeTessellateOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/StrokeTessellateOp.h @@ -9,9 +9,9 @@ #define StrokeTessellateOp_DEFINED #include "include/core/SkStrokeRec.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/tessellate/StrokeTessellator.h" -#include "src/gpu/tessellate/shaders/GrTessellationShader.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/ops/StrokeTessellator.h" +#include "src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h" class GrRecordingContext; class GrStrokeTessellationShader; diff --git a/third_party/skia/src/gpu/tessellate/StrokeHardwareTessellator.cpp b/third_party/skia/src/gpu/ganesh/ops/StrokeTessellator.cpp similarity index 69% rename from third_party/skia/src/gpu/tessellate/StrokeHardwareTessellator.cpp rename to third_party/skia/src/gpu/ganesh/ops/StrokeTessellator.cpp index 4d257e378793..8a8dd3266516 100644 --- a/third_party/skia/src/gpu/tessellate/StrokeHardwareTessellator.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/StrokeTessellator.cpp @@ -1,26 +1,231 @@ /* - * Copyright 2020 Google LLC. + * 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/tessellate/StrokeHardwareTessellator.h" +#include "src/gpu/ganesh/ops/StrokeTessellator.h" #include "src/core/SkGeometry.h" #include "src/core/SkPathPriv.h" +#include "src/gpu/ganesh/GrMeshDrawTarget.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrResourceProvider.h" #include "src/gpu/tessellate/PatchWriter.h" +#include "src/gpu/tessellate/StrokeIterator.h" #include "src/gpu/tessellate/WangsFormula.h" -#if SK_GPU_V1 -#include "src/gpu/GrMeshDrawTarget.h" -#include "src/gpu/GrOpFlushState.h" -#endif - -namespace skgpu { +namespace skgpu::v1 { namespace { +// Calculates and buffers up future values for "numRadialSegmentsPerRadian" using SIMD. +class alignas(sizeof(float) * 4) StrokeToleranceBuffer { +public: + using PathStrokeList = StrokeTessellator::PathStrokeList; + + StrokeToleranceBuffer(float matrixMaxScale) : fMatrixMaxScale(matrixMaxScale) {} + + float fetchRadialSegmentsPerRadian(PathStrokeList* head) { + // StrokeTessellateOp::onCombineIfPossible does not allow hairlines to become dynamic. If + // this changes, we will need to call StrokeTolerances::GetLocalStrokeWidth() for each + // stroke. + SkASSERT(!head->fStroke.isHairlineStyle()); + if (fBufferIdx == 4) { + // We ran out of values. Peek ahead and buffer up 4 more. + PathStrokeList* peekAhead = head; + int i = 0; + do { + fStrokeWidths[i++] = peekAhead->fStroke.getWidth(); + } while ((peekAhead = peekAhead->fNext) && i < 4); + auto tol = StrokeTolerances::ApproxNumRadialSegmentsPerRadian(fMatrixMaxScale, + fStrokeWidths); + tol.store(fNumRadialSegmentsPerRadian); + fBufferIdx = 0; + } + SkASSERT(0 <= fBufferIdx && fBufferIdx < 4); + SkASSERT(fStrokeWidths[fBufferIdx] == head->fStroke.getWidth()); + return fNumRadialSegmentsPerRadian[fBufferIdx++]; + } + +private: + float4 fStrokeWidths{}; // Must be first for alignment purposes. + float fNumRadialSegmentsPerRadian[4]; + const float fMatrixMaxScale; + int fBufferIdx = 4; // Initialize the buffer as "empty"; +}; + +// *** Fixed-count tessellation stroking + +using FixedCountStrokeWriter = PatchWriter, + Optional, + Optional, + Optional, + Optional, + TrackJoinControlPoints>; + +int write_fixed_count_patches(FixedCountStrokeWriter&& patchWriter, + const SkMatrix& shaderMatrix, + std::array matrixMinMaxScales, + StrokeTessellator::PathStrokeList* pathStrokeList) { + int maxEdgesInJoin = 0; + float maxRadialSegmentsPerRadian = 0; + const float matrixMaxScale = matrixMinMaxScales[1]; + if (!(patchWriter.attribs() & PatchAttribs::kStrokeParams)) { + // Strokes are static. Calculate tolerances once. + const SkStrokeRec& stroke = pathStrokeList->fStroke; + float localStrokeWidth = StrokeTolerances::GetLocalStrokeWidth(matrixMinMaxScales.data(), + stroke.getWidth()); + float numRadialSegmentsPerRadian = StrokeTolerances::CalcNumRadialSegmentsPerRadian( + matrixMaxScale, localStrokeWidth); + maxEdgesInJoin = WorstCaseEdgesInJoin(stroke.getJoin(), numRadialSegmentsPerRadian); + maxRadialSegmentsPerRadian = numRadialSegmentsPerRadian; + } + + // Fast SIMD queue that buffers up values for "numRadialSegmentsPerRadian". Only used when we + // have dynamic stroke. + StrokeToleranceBuffer toleranceBuffer(matrixMaxScale); + + // The vector xform approximates how the control points are transformed by the shader to + // more accurately compute how many *parametric* segments are needed. + wangs_formula::VectorXform shaderXform{shaderMatrix}; + for (auto* pathStroke = pathStrokeList; pathStroke; pathStroke = pathStroke->fNext) { + const SkStrokeRec& stroke = pathStroke->fStroke; + if (patchWriter.attribs() & PatchAttribs::kStrokeParams) { + // Strokes are dynamic. Calculate tolerances every time. + float numRadialSegmentsPerRadian = + toleranceBuffer.fetchRadialSegmentsPerRadian(pathStroke); + maxEdgesInJoin = std::max( + WorstCaseEdgesInJoin(stroke.getJoin(), numRadialSegmentsPerRadian), + maxEdgesInJoin); + maxRadialSegmentsPerRadian = std::max(numRadialSegmentsPerRadian, + maxRadialSegmentsPerRadian); + patchWriter.updateStrokeParamsAttrib(stroke); + } + if (patchWriter.attribs() & PatchAttribs::kColor) { + patchWriter.updateColorAttrib(pathStroke->fColor); + } + + StrokeIterator strokeIter(pathStroke->fPath, &pathStroke->fStroke, &shaderMatrix); + while (strokeIter.next()) { + using Verb = StrokeIterator::Verb; + const SkPoint* p = strokeIter.pts(); + int numChops; + switch (strokeIter.verb()) { + case Verb::kContourFinished: + patchWriter.writeDeferredStrokePatch(); + break; + case Verb::kCircle: + // Round cap or else an empty stroke that is specified to be drawn as a circle. + patchWriter.writeCircle(p[0]); + [[fallthrough]]; + case Verb::kMoveWithinContour: + // A regular kMove invalidates the previous control point; the stroke iterator + // tells us a new value to use. + patchWriter.updateJoinControlPointAttrib(p[0]); + break; + case Verb::kLine: + patchWriter.writeLine(p[0], p[1]); + break; + case Verb::kQuad: + if (ConicHasCusp(p)) { + // The cusp is always at the midtandent. + SkPoint cusp = SkEvalQuadAt(p, SkFindQuadMidTangent(p)); + patchWriter.writeCircle(cusp); + // A quad can only have a cusp if it's flat with a 180-degree turnaround. + patchWriter.writeLine(p[0], cusp); + patchWriter.writeLine(cusp, p[2]); + } else { + patchWriter.writeQuadratic(p, shaderXform); + } + break; + case Verb::kConic: + if (ConicHasCusp(p)) { + // The cusp is always at the midtandent. + SkConic conic(p, strokeIter.w()); + SkPoint cusp = conic.evalAt(conic.findMidTangent()); + patchWriter.writeCircle(cusp); + // A conic can only have a cusp if it's flat with a 180-degree turnaround. + patchWriter.writeLine(p[0], cusp); + patchWriter.writeLine(cusp, p[2]); + } else { + patchWriter.writeConic(p, strokeIter.w(), shaderXform); + } + break; + case Verb::kCubic: + SkPoint chops[10]; + float T[2]; + bool areCusps; + numChops = FindCubicConvex180Chops(p, T, &areCusps); + if (numChops == 0) { + patchWriter.writeCubic(p, shaderXform); + } else if (numChops == 1) { + SkChopCubicAt(p, chops, T[0]); + if (areCusps) { + patchWriter.writeCircle(chops[3]); + // In a perfect world, these 3 points would be be equal after chopping + // on a cusp. + chops[2] = chops[4] = chops[3]; + } + patchWriter.writeCubic(chops, shaderXform); + patchWriter.writeCubic(chops + 3, shaderXform); + } else { + SkASSERT(numChops == 2); + SkChopCubicAt(p, chops, T[0], T[1]); + if (areCusps) { + patchWriter.writeCircle(chops[3]); + patchWriter.writeCircle(chops[6]); + // Two cusps are only possible if it's a flat line with two 180-degree + // turnarounds. + patchWriter.writeLine(chops[0], chops[3]); + patchWriter.writeLine(chops[3], chops[6]); + patchWriter.writeLine(chops[6], chops[9]); + } else { + patchWriter.writeCubic(chops, shaderXform); + patchWriter.writeCubic(chops + 3, shaderXform); + patchWriter.writeCubic(chops + 6, shaderXform); + } + } + break; + } + } + } + + // The maximum rotation we can have in a stroke is 180 degrees (SK_ScalarPI radians). + int maxRadialSegmentsInStroke = + std::max(SkScalarCeilToInt(maxRadialSegmentsPerRadian * SK_ScalarPI), 1); + + int maxParametricSegmentsInStroke = patchWriter.requiredFixedSegments(); + SkASSERT(maxParametricSegmentsInStroke >= 1); + + // Now calculate the maximum number of edges we will need in the stroke portion of the instance. + // The first and last edges in a stroke are shared by both the parametric and radial sets of + // edges, so the total number of edges is: + // + // numCombinedEdges = numParametricEdges + numRadialEdges - 2 + // + // It's also important to differentiate between the number of edges and segments in a strip: + // + // numSegments = numEdges - 1 + // + // So the total number of combined edges in the stroke is: + // + // numEdgesInStroke = numParametricSegments + 1 + numRadialSegments + 1 - 2 + // = numParametricSegments + numRadialSegments + // + int maxEdgesInStroke = maxRadialSegmentsInStroke + maxParametricSegmentsInStroke; + + // Each triangle strip has two sections: It starts with a join then transitions to a stroke. The + // number of edges in an instance is the sum of edges from the join and stroke sections both. + // NOTE: The final join edge and the first stroke edge are co-located, however we still need to + // emit both because the join's edge is half-width and the stroke's is full-width. + return maxEdgesInJoin + maxEdgesInStroke; +} + +// *** HW tessellation stroking *** + float num_combined_segments(float numParametricSegments, float numRadialSegments) { // The first and last edges are shared by both the parametric and radial sets of edges, so // the total number of edges is: @@ -55,7 +260,45 @@ void quad_to_cubic(const SkPoint p[3], SkPoint patch[4]) { patch[3] = p[2]; } -class HwPatchWriter { +SK_ALWAYS_INLINE bool cubic_has_cusp(const SkPoint p[4]) { + float2 p0 = skvx::bit_pun(p[0]); + float2 p1 = skvx::bit_pun(p[1]); + float2 p2 = skvx::bit_pun(p[2]); + float2 p3 = skvx::bit_pun(p[3]); + + // See FindCubicConvex180Chops() for the math. + float2 C = p1 - p0; + float2 D = p2 - p1; + float2 E = p3 - p0; + float2 B = D - C; + float2 A = -3*D + E; + + float a = cross(A, B); + float b = cross(A, C); + float c = cross(B, C); + float discr = b*b - 4*a*c; + + // If -cuspThreshold <= discr <= cuspThreshold, it means the two roots are within a distance of + // 2^-11 from one another in parametric space. This is close enough for our purposes to take the + // slow codepath that knows how to handle cusps. + constexpr static float kEpsilon = 1.f / (1 << 11); + float cuspThreshold = (2*kEpsilon) * a; + cuspThreshold *= cuspThreshold; + + return fabsf(discr) <= cuspThreshold && + // The most common type of cusp we encounter is when p0==p1 or p2==p3. Unless the curve + // is a flat line (a==b==c==0), these don't actually need special treatment because the + // cusp occurs at t=0 or t=1. + (!(skvx::all(p0 == p1) || skvx::all(p2 == p3)) || (a == 0 && b == 0 && c == 0)); +} + +using HwPatchWriterBase = PatchWriter, + Optional, + Optional, + Optional>; + +class HwPatchWriter : HwPatchWriterBase { public: enum class JoinType { kMiter = SkPaint::kMiter_Join, @@ -64,15 +307,21 @@ class HwPatchWriter { kBowtie = SkPaint::kLast_Join + 1 // Double sided round join. }; - HwPatchWriter(PatchWriter& patchWriter, int maxTessellationSegments, float matrixMaxScale) - : fPatchWriter(patchWriter) + HwPatchWriter(GrMeshDrawTarget* target, + GrVertexChunkArray* vertexChunkArray, + PatchAttribs attribs, + int maxTessellationSegments, + int preallocCount, + float matrixMaxScale) + : HwPatchWriterBase(attribs, 0, target, vertexChunkArray, preallocCount) // Subtract 2 because the tessellation shader chops every cubic at two locations, and // each chop has the potential to introduce an extra segment. , fMaxTessellationSegments(std::max(maxTessellationSegments - 2, 1)) - , fParametricPrecision(StrokeTolerances::CalcParametricPrecision(matrixMaxScale)) { - SkASSERT(fPatchWriter.attribs() & PatchAttribs::kJoinControlPoint); - SkASSERT(!fPatchWriter.hasJoinControlPoint()); - } + , fParametricPrecision(matrixMaxScale * kTessellationPrecision) + , fHasJoinControlPoint(false) {} + + using PatchWriter::attribs; + using PatchWriter::updateColorAttrib; // This is the precision value, adjusted for the view matrix, to use with Wang's formulas when // determining how many parametric segments a curve will require. @@ -104,7 +353,8 @@ class HwPatchWriter { return numParametricSegments_pow4 <= fMaxParametricSegments_pow4_withJoin[1]; } - void updateTolerances(float numRadialSegmentsPerRadian, SkPaint::Join joinType) { + void updateTolerances(float numRadialSegmentsPerRadian, const SkStrokeRec& stroke) { + SkPaint::Join joinType = stroke.getJoin(); fNumRadialSegmentsPerRadian = numRadialSegmentsPerRadian; // Calculate the worst-case numbers of parametric segments our hardware can support for the @@ -140,11 +390,21 @@ class HwPatchWriter { fMaxCombinedSegments_withJoin = fMaxTessellationSegments - worstCaseNumSegmentsInJoin - 1; fSoloRoundJoinAlwaysFitsInPatch = (numRadialSegments180 <= fMaxTessellationSegments); fStrokeJoinType = JoinType(joinType); + + if (this->attribs() & PatchAttribs::kStrokeParams) { + this->updateStrokeParamsAttrib(stroke); + } + } + + void updateJoinControlPoint(SkPoint p) { + this->updateJoinControlPointAttrib(p); + fJoinControlPoint = p; + fHasJoinControlPoint = true; } void moveTo(SkPoint pt) { fCurrContourStartPoint = pt; - fPatchWriter.resetJoinControlPointAttrib(); + fHasJoinControlPoint = false; } // Writes out the given line, possibly chopping its previous join until the segments fit in @@ -209,29 +469,31 @@ class HwPatchWriter { SkPoint endControlPoint) { SkASSERT(fStrokeJoinType != JoinType::kBowtie); - if (!fPatchWriter.hasJoinControlPoint()) { + if (!fHasJoinControlPoint) { // The first stroke doesn't have a previous join (yet). If the current contour ends up // closing itself, we will add that join as its own patch. TODO: Consider deferring the // first stroke until we know whether the contour will close. This will allow us to use // the closing join as the first patch's previous join. fCurrContourFirstControlPoint = (p[1] != p[0]) ? p[1] : p[2]; // Disables the join section of this patch. - fPatchWriter.updateJoinControlPointAttrib(p[0]); + this->updateJoinControlPoint(p[0]); } else if (!prevJoinFitsInPatch) { // There aren't enough guaranteed segments to fold the previous join into this patch. // Emit the join in its own separate patch. this->internalJoinTo(fStrokeJoinType, p[0], (p[1] != p[0]) ? p[1] : p[2]); // Disables the join section of this patch. - fPatchWriter.updateJoinControlPointAttrib(p[0]); + this->updateJoinControlPoint(p[0]); } - fPatchWriter.writeHwPatch(p); - fPatchWriter.updateJoinControlPointAttrib(endControlPoint); + this->writePatch(skvx::bit_pun(p[0]), skvx::bit_pun(p[1]), + skvx::bit_pun(p[2]), skvx::bit_pun(p[3]), + /*unused*/0.f); + this->updateJoinControlPoint(endControlPoint); } void writeClose(SkPoint contourEndpoint, const SkMatrix& viewMatrix, const SkStrokeRec& stroke) { - if (!fPatchWriter.hasJoinControlPoint()) { + if (!fHasJoinControlPoint) { // Draw caps instead of closing if the subpath is zero length: // // "Any zero length subpath ... shall be stroked if the 'stroke-linecap' property has @@ -246,12 +508,14 @@ class HwPatchWriter { // Draw a line back to the beginning. (This will be discarded if // contourEndpoint == fCurrContourStartPoint.) this->writeLineTo(contourEndpoint, fCurrContourStartPoint); - this->internalJoinTo(fStrokeJoinType, fCurrContourStartPoint, fCurrContourFirstControlPoint); - fPatchWriter.resetJoinControlPointAttrib(); + this->internalJoinTo(fStrokeJoinType, + fCurrContourStartPoint, + fCurrContourFirstControlPoint); + fHasJoinControlPoint = false; } void writeCaps(SkPoint contourEndpoint, const SkMatrix& viewMatrix, const SkStrokeRec& stroke) { - if (!fPatchWriter.hasJoinControlPoint()) { + if (!fHasJoinControlPoint) { // We don't have any control points to orient the caps. In this case, square and round // caps are specified to be drawn as an axis-aligned square or circle respectively. // Assign default control points that achieve this. @@ -282,7 +546,7 @@ class HwPatchWriter { } fCurrContourFirstControlPoint = fCurrContourStartPoint - outset; contourEndpoint = fCurrContourStartPoint; - fPatchWriter.updateJoinControlPointAttrib(fCurrContourStartPoint + outset); + this->updateJoinControlPoint(fCurrContourStartPoint + outset); } switch (stroke.getCap()) { @@ -293,8 +557,7 @@ class HwPatchWriter { // If our join type isn't round we can alternatively use a bowtie. JoinType roundCapJoinType = (stroke.getJoin() == SkPaint::kRound_Join) ? JoinType::kRound : JoinType::kBowtie; - this->internalJoinTo(roundCapJoinType, contourEndpoint, - fPatchWriter.joinControlPoint()); + this->internalJoinTo(roundCapJoinType, contourEndpoint, fJoinControlPoint); this->internalMoveTo(fCurrContourStartPoint, fCurrContourFirstControlPoint); this->internalJoinTo(roundCapJoinType, fCurrContourStartPoint, fCurrContourFirstControlPoint); @@ -303,7 +566,7 @@ class HwPatchWriter { case SkPaint::kSquare_Cap: { // A square cap is the same as appending lineTos. auto strokeJoinType = JoinType(stroke.getJoin()); - SkVector lastTangent = contourEndpoint - fPatchWriter.joinControlPoint(); + SkVector lastTangent = contourEndpoint - fJoinControlPoint; if (!stroke.isHairlineStyle()) { // Extend the cap by 1/2 stroke width. lastTangent *= (.5f * stroke.getWidth()) / lastTangent.length(); @@ -329,14 +592,14 @@ class HwPatchWriter { } } - fPatchWriter.resetJoinControlPointAttrib(); + fHasJoinControlPoint = false; } private: void internalMoveTo(SkPoint pt, SkPoint lastControlPoint) { fCurrContourStartPoint = pt; fCurrContourFirstControlPoint = lastControlPoint; - fPatchWriter.updateJoinControlPointAttrib(lastControlPoint); + this->updateJoinControlPoint(lastControlPoint); } // Recursively chops the given conic and its previous join until the segments fit in @@ -476,14 +739,14 @@ class HwPatchWriter { void internalPatchTo(JoinType prevJoinType, bool prevJoinFitsInPatch, const SkPoint p[4], SkPoint endPt) { if (prevJoinType == JoinType::kBowtie) { - SkASSERT(fPatchWriter.hasJoinControlPoint()); + SkASSERT(fHasJoinControlPoint); // Bowtie joins are only used on internal chops, and internal chops almost always have // continuous tangent angles (i.e., the ending tangent of the first chop and the // beginning tangent of the second both point in the same direction). The tangents will // only ever not point in the same direction if we chopped at a cusp point, so that's // the only time we actually need a bowtie. SkPoint nextControlPoint = (p[1] == p[0]) ? p[2] : p[1]; - SkVector a = p[0] - fPatchWriter.joinControlPoint(); + SkVector a = p[0] - fJoinControlPoint; SkVector b = nextControlPoint - p[0]; float ab_cosTheta = a.dot(b); float ab_pow2 = a.dot(a) * b.dot(b); @@ -507,7 +770,7 @@ class HwPatchWriter { ab_pow2 * SK_ScalarNearlyZero)) { this->internalJoinTo(JoinType::kBowtie, p[0], nextControlPoint); // Disables the join section of this patch. - fPatchWriter.updateJoinControlPointAttrib(p[0]); + this->updateJoinControlPoint(p[0]); prevJoinFitsInPatch = true; } } @@ -518,14 +781,14 @@ class HwPatchWriter { // Recursively chops the given join until the segments fit in tessellation patches. void internalJoinTo(JoinType joinType, SkPoint junctionPoint, SkPoint nextControlPoint, int maxDepth = -1) { - if (!fPatchWriter.hasJoinControlPoint()) { + if (!fHasJoinControlPoint) { // The first stroke doesn't have a previous join. return; } if (!fSoloRoundJoinAlwaysFitsInPatch && maxDepth != 0 && (joinType == JoinType::kRound || joinType == JoinType::kBowtie)) { - SkVector tan0 = junctionPoint - fPatchWriter.joinControlPoint(); + SkVector tan0 = junctionPoint - fJoinControlPoint; SkVector tan1 = nextControlPoint - junctionPoint; float rotation = SkMeasureAngleBetweenVectors(tan0, tan1); float numRadialSegments = rotation * fNumRadialSegmentsPerRadian; @@ -555,7 +818,7 @@ class HwPatchWriter { } while (c0 - junctionPoint != -(c1 - junctionPoint) && --maxAttempts); // First join half. this->internalJoinTo(joinType, junctionPoint, c0, maxDepth - 1); - fPatchWriter.updateJoinControlPointAttrib(c1); + this->updateJoinControlPoint(c1); // Second join half. this->internalJoinTo(joinType, junctionPoint, nextControlPoint, maxDepth - 1); return; @@ -563,34 +826,32 @@ class HwPatchWriter { } // We should never write out joins before the first curve. - SkASSERT(fPatchWriter.hasJoinControlPoint()); + SkASSERT(fHasJoinControlPoint); { - SkPoint asPatch[4]; - asPatch[0] = junctionPoint; + SkPoint midpoint; if (joinType == JoinType::kBowtie) { // {prevControlPoint, [p0, p0, p0, p3]} is a reserved patch pattern that means this // patch is a bowtie. The bowtie is anchored on p0 and its tangent angles go from // (p0 - prevControlPoint) to (p3 - p0). - asPatch[1] = junctionPoint; - asPatch[2] = junctionPoint; + midpoint = junctionPoint; } else { // {prevControlPoint, [p0, p3, p3, p3]} is a reserved patch pattern that means this // patch is a join only (no curve sections in the patch). The join is anchored on p0 // and its tangent angles go from (p0 - prevControlPoint) to (p3 - p0). - asPatch[1] = nextControlPoint; - asPatch[2] = nextControlPoint; + midpoint = nextControlPoint; } - asPatch[3] = nextControlPoint; - fPatchWriter.writeHwPatch(asPatch); + this->writePatch(skvx::bit_pun(junctionPoint), + skvx::bit_pun(midpoint), + skvx::bit_pun(midpoint), + skvx::bit_pun(nextControlPoint), + /*unused*/0.f); } - fPatchWriter.updateJoinControlPointAttrib(nextControlPoint); + this->updateJoinControlPoint(nextControlPoint); } - PatchWriter& fPatchWriter; - // The maximum number of tessellation segments the hardware can emit for a single patch. const int fMaxTessellationSegments; @@ -622,82 +883,43 @@ class HwPatchWriter { // prepareBuffers(). SkPoint fCurrContourStartPoint; SkPoint fCurrContourFirstControlPoint; -}; -SK_ALWAYS_INLINE bool cubic_has_cusp(const SkPoint p[4]) { - float2 p0 = skvx::bit_pun(p[0]); - float2 p1 = skvx::bit_pun(p[1]); - float2 p2 = skvx::bit_pun(p[2]); - float2 p3 = skvx::bit_pun(p[3]); - - // See FindCubicConvex180Chops() for the math. - float2 C = p1 - p0; - float2 D = p2 - p1; - float2 E = p3 - p0; - float2 B = D - C; - float2 A = -3*D + E; - - float a = cross(A, B); - float b = cross(A, C); - float c = cross(B, C); - float discr = b*b - 4*a*c; - - // If -cuspThreshold <= discr <= cuspThreshold, it means the two roots are within a distance of - // 2^-11 from one another in parametric space. This is close enough for our purposes to take the - // slow codepath that knows how to handle cusps. - constexpr static float kEpsilon = 1.f / (1 << 11); - float cuspThreshold = (2*kEpsilon) * a; - cuspThreshold *= cuspThreshold; - - return fabsf(discr) <= cuspThreshold && - // The most common type of cusp we encounter is when p0==p1 or p2==p3. Unless the curve - // is a flat line (a==b==c==0), these don't actually need special treatment because the - // cusp occurs at t=0 or t=1. - (!(skvx::all(p0 == p1) || skvx::all(p2 == p3)) || (a == 0 && b == 0 && c == 0)); -} - -} // namespace - - -int StrokeHardwareTessellator::patchPreallocCount(int totalCombinedStrokeVerbCnt) const { - // Over-allocate enough patches for 1 in 4 strokes to chop and for 8 extra caps. - int strokePreallocCount = (totalCombinedStrokeVerbCnt * 5) / 4; - int capPreallocCount = 8; - return strokePreallocCount + capPreallocCount; -} + bool fHasJoinControlPoint; + // Stored in super class as well, but value determines what's written into the instance data. + // This value is available to us, but not exposed to use, we use it for calculations + SkPoint fJoinControlPoint; +}; -int StrokeHardwareTessellator::writePatches(PatchWriter& patchWriter, - const SkMatrix& shaderMatrix, - std::array matrixMinMaxScales, - PathStrokeList* pathStrokeList) { +void write_hw_patches(HwPatchWriter&& hwPatchWriter, + const SkMatrix& shaderMatrix, + std::array matrixMinMaxScales, + StrokeTessellator::PathStrokeList* pathStrokeList) { using JoinType = HwPatchWriter::JoinType; - HwPatchWriter hwPatchWriter(patchWriter, fMaxTessellationSegments, matrixMinMaxScales[1]); - - if (!(fAttribs & PatchAttribs::kStrokeParams)) { + float matrixMaxScale = matrixMinMaxScales[1]; + if (!(hwPatchWriter.attribs() & PatchAttribs::kStrokeParams)) { // Strokes are static. Calculate tolerances once. const SkStrokeRec& stroke = pathStrokeList->fStroke; float localStrokeWidth = StrokeTolerances::GetLocalStrokeWidth(matrixMinMaxScales.data(), stroke.getWidth()); float numRadialSegmentsPerRadian = StrokeTolerances::CalcNumRadialSegmentsPerRadian( - hwPatchWriter.parametricPrecision(), localStrokeWidth); - hwPatchWriter.updateTolerances(numRadialSegmentsPerRadian, stroke.getJoin()); + matrixMaxScale, localStrokeWidth); + hwPatchWriter.updateTolerances(numRadialSegmentsPerRadian, stroke); } // Fast SIMD queue that buffers up values for "numRadialSegmentsPerRadian". Only used when we // have dynamic strokes. - StrokeToleranceBuffer toleranceBuffer(hwPatchWriter.parametricPrecision()); + StrokeToleranceBuffer toleranceBuffer(matrixMaxScale); - for (PathStrokeList* pathStroke = pathStrokeList; pathStroke; pathStroke = pathStroke->fNext) { + for (auto* pathStroke = pathStrokeList; pathStroke; pathStroke = pathStroke->fNext) { const SkStrokeRec& stroke = pathStroke->fStroke; - if (fAttribs & PatchAttribs::kStrokeParams) { + if (hwPatchWriter.attribs() & PatchAttribs::kStrokeParams) { // Strokes are dynamic. Update tolerances with every new stroke. hwPatchWriter.updateTolerances(toleranceBuffer.fetchRadialSegmentsPerRadian(pathStroke), - stroke.getJoin()); - patchWriter.updateStrokeParamsAttrib(stroke); + stroke); } - if (fAttribs & PatchAttribs::kColor) { - patchWriter.updateColorAttrib(pathStroke->fColor); + if (hwPatchWriter.attribs() & PatchAttribs::kColor) { + hwPatchWriter.updateColorAttrib(pathStroke->fColor); } const SkPath& path = pathStroke->fPath; @@ -844,19 +1066,81 @@ int StrokeHardwareTessellator::writePatches(PatchWriter& patchWriter, hwPatchWriter.writeCaps(p[path.countPoints() - 1], shaderMatrix, stroke); } } - return 0; } -#if SK_GPU_V1 +} // namespace + + +SKGPU_DECLARE_STATIC_UNIQUE_KEY(gVertexIDFallbackBufferKey); + +int StrokeFixedCountTessellator::prepare(GrMeshDrawTarget* target, + const SkMatrix& shaderMatrix, + std::array matrixMinMaxScales, + PathStrokeList* pathStrokeList, + int totalCombinedStrokeVerbCnt) { + int preallocCount = FixedCountStrokes::PreallocCount(totalCombinedStrokeVerbCnt); + FixedCountStrokeWriter patchWriter{fAttribs, kMaxParametricSegments, + target, &fVertexChunkArray, preallocCount}; + + fFixedEdgeCount = write_fixed_count_patches(std::move(patchWriter), + shaderMatrix, + matrixMinMaxScales, + pathStrokeList); + + // Don't draw more vertices than can be indexed by a signed short. We just have to draw the line + // somewhere and this seems reasonable enough. (There are two vertices per edge, so 2^14 edges + // make 2^15 vertices.) + fFixedEdgeCount = std::min(fFixedEdgeCount, (1 << 14) - 1); + + if (!target->caps().shaderCaps()->vertexIDSupport()) { + // Our shader won't be able to use sk_VertexID. Bind a fallback vertex buffer with the IDs + // in it instead. + constexpr static int kMaxEdgesInFallbackBuffer = 1024; + fFixedEdgeCount = std::min(fFixedEdgeCount, kMaxEdgesInFallbackBuffer); + + SKGPU_DEFINE_STATIC_UNIQUE_KEY(gVertexIDFallbackBufferKey); + + fVertexBufferIfNoIDSupport = target->resourceProvider()->findOrMakeStaticBuffer( + GrGpuBufferType::kVertex, + FixedCountStrokes::VertexBufferSize(kMaxEdgesInFallbackBuffer), + gVertexIDFallbackBufferKey, + FixedCountStrokes::WriteVertexBuffer); + } + + return fFixedEdgeCount; +} + +void StrokeFixedCountTessellator::draw(GrOpFlushState* flushState) const { + if (fVertexChunkArray.empty() || fFixedEdgeCount <= 0) { + return; + } + if (!flushState->caps().shaderCaps()->vertexIDSupport() && + !fVertexBufferIfNoIDSupport) { + return; + } + for (const auto& instanceChunk : fVertexChunkArray) { + flushState->bindBuffers(nullptr, instanceChunk.fBuffer, fVertexBufferIfNoIDSupport); + flushState->drawInstanced(instanceChunk.fCount, + instanceChunk.fBase, + fFixedEdgeCount * 2, + 0); + } +} int StrokeHardwareTessellator::prepare(GrMeshDrawTarget* target, const SkMatrix& shaderMatrix, std::array matrixMinMaxScales, PathStrokeList* pathStrokeList, int totalCombinedStrokeVerbCnt) { - PatchWriter patchWriter(target, this, 0.f, /* unused max segment tracking */ - this->patchPreallocCount(totalCombinedStrokeVerbCnt)); - return this->writePatches(patchWriter, shaderMatrix, matrixMinMaxScales, pathStrokeList); + // Over-allocate enough patches for 1 in 4 strokes to chop and for 8 extra caps. + int strokePreallocCount = (totalCombinedStrokeVerbCnt * 5) / 4; + int capPreallocCount = 8; + int preallocCount = strokePreallocCount + capPreallocCount; + + HwPatchWriter writer{target, &fVertexChunkArray, fAttribs, fMaxTessellationSegments, + preallocCount, matrixMinMaxScales[1]}; + write_hw_patches(std::move(writer), shaderMatrix, matrixMinMaxScales, pathStrokeList); + return 0; // 0 is returned for non-fixed-count stroke tessellation } void StrokeHardwareTessellator::draw(GrOpFlushState* flushState) const { @@ -866,6 +1150,4 @@ void StrokeHardwareTessellator::draw(GrOpFlushState* flushState) const { } } -#endif - -} // namespace skgpu +} // namespace skgpu::v1 diff --git a/third_party/skia/src/gpu/ganesh/ops/StrokeTessellator.h b/third_party/skia/src/gpu/ganesh/ops/StrokeTessellator.h new file mode 100644 index 000000000000..01612fbacd87 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/ops/StrokeTessellator.h @@ -0,0 +1,107 @@ +/* + * 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 StrokeTessellator_DEFINED +#define StrokeTessellator_DEFINED + +#include "include/core/SkPath.h" +#include "include/core/SkStrokeRec.h" +#include "include/private/SkColorData.h" +#include "src/core/SkMathPriv.h" +#include "src/gpu/ganesh/GrVertexChunkArray.h" +#include "src/gpu/tessellate/FixedCountBufferUtils.h" +#include "src/gpu/tessellate/Tessellation.h" + +class GrGpuBuffer; +class GrMeshDrawTarget; +class GrOpFlushState; + +namespace skgpu::v1 { + +// Prepares GPU data for, and then draws a stroke's tessellated geometry. +class StrokeTessellator { +public: + struct PathStrokeList { + PathStrokeList(const SkPath& path, const SkStrokeRec& stroke, const SkPMColor4f& color) + : fPath(path), fStroke(stroke), fColor(color) {} + SkPath fPath; + SkStrokeRec fStroke; + SkPMColor4f fColor; + PathStrokeList* fNext = nullptr; + }; + + StrokeTessellator(PatchAttribs attribs) : fAttribs(attribs | PatchAttribs::kJoinControlPoint) {} + + // Called before draw(). Prepares GPU buffers containing the geometry to tessellate. + // + // Returns the fixed number of edges the tessellator will draw per patch, if using fixed-count + // rendering, otherwise 0. + virtual int prepare(GrMeshDrawTarget*, + const SkMatrix& shaderMatrix, + std::array matrixMinMaxScales, + PathStrokeList*, + int totalCombinedStrokeVerbCnt) = 0; + + // Issues draw calls for the tessellated stroke. The caller is responsible for creating and + // binding a pipeline that uses this class's shader() before calling draw(). + virtual void draw(GrOpFlushState*) const = 0; + + virtual ~StrokeTessellator() {} + +protected: + const PatchAttribs fAttribs; + + GrVertexChunkArray fVertexChunkArray; +}; + +// Renders strokes as fixed-count triangle strip instances. Any extra triangles not needed by the +// instance are emitted as degenerate triangles. +class StrokeFixedCountTessellator final : public StrokeTessellator { +public: + constexpr static int8_t kMaxParametricSegments_log2 = + SkNextLog2_portable(kMaxParametricSegments); + + StrokeFixedCountTessellator(PatchAttribs attribs) : StrokeTessellator(attribs) {} + + int prepare(GrMeshDrawTarget*, + const SkMatrix& shaderMatrix, + std::array matrixMinMaxScales, + PathStrokeList*, + int totalCombinedStrokeVerbCnt) final; + + void draw(GrOpFlushState*) const final; + +private: + int fFixedEdgeCount = 0; + + // Only used if sk_VertexID is not supported. + sk_sp fVertexBufferIfNoIDSupport; +}; + +// Renders opaque, constant-color strokes by decomposing them into standalone tessellation patches. +// Each patch is either a "cubic" (single stroked bezier curve with butt caps) or a "join". Requires +// MSAA if antialiasing is desired. +class StrokeHardwareTessellator final : public StrokeTessellator { +public: + StrokeHardwareTessellator(PatchAttribs attribs, int maxTessellationSegments) + : StrokeTessellator(attribs), fMaxTessellationSegments(maxTessellationSegments) {} + + int prepare(GrMeshDrawTarget*, + const SkMatrix& shaderMatrix, + std::array matrixMinMaxScales, + PathStrokeList*, + int totalCombinedStrokeVerbCnt) final; + + void draw(GrOpFlushState*) const final; + +private: + const int fMaxTessellationSegments; +}; + +} // namespace skgpu::v1 + +#endif // StrokeTessellator_DEFINED diff --git a/third_party/skia/src/gpu/ops/TessellationPathRenderer.cpp b/third_party/skia/src/gpu/ganesh/ops/TessellationPathRenderer.cpp similarity index 95% rename from third_party/skia/src/gpu/ops/TessellationPathRenderer.cpp rename to third_party/skia/src/gpu/ganesh/ops/TessellationPathRenderer.cpp index a6adca5f079d..37d9545d4f97 100644 --- a/third_party/skia/src/gpu/ops/TessellationPathRenderer.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/TessellationPathRenderer.cpp @@ -5,23 +5,23 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/TessellationPathRenderer.h" +#include "src/gpu/ganesh/ops/TessellationPathRenderer.h" #include "include/private/SkVx.h" #include "src/core/SkPathPriv.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrVx.h" -#include "src/gpu/effects/GrDisableColorXP.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/PathInnerTriangulateOp.h" -#include "src/gpu/ops/PathStencilCoverOp.h" -#include "src/gpu/ops/PathTessellateOp.h" -#include "src/gpu/ops/StrokeTessellateOp.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrVx.h" +#include "src/gpu/ganesh/effects/GrDisableColorXP.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/PathInnerTriangulateOp.h" +#include "src/gpu/ganesh/ops/PathStencilCoverOp.h" +#include "src/gpu/ganesh/ops/PathTessellateOp.h" +#include "src/gpu/ganesh/ops/StrokeTessellateOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "src/gpu/tessellate/Tessellation.h" #include "src/gpu/tessellate/WangsFormula.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" namespace { diff --git a/third_party/skia/src/gpu/ops/TessellationPathRenderer.h b/third_party/skia/src/gpu/ganesh/ops/TessellationPathRenderer.h similarity index 96% rename from third_party/skia/src/gpu/ops/TessellationPathRenderer.h rename to third_party/skia/src/gpu/ganesh/ops/TessellationPathRenderer.h index 96c1b0052711..2e5bb4c2c43f 100644 --- a/third_party/skia/src/gpu/ops/TessellationPathRenderer.h +++ b/third_party/skia/src/gpu/ganesh/ops/TessellationPathRenderer.h @@ -9,7 +9,7 @@ #define TessellationPathRenderer_DEFINED #include "include/gpu/GrTypes.h" -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" class GrCaps; diff --git a/third_party/skia/src/gpu/ops/TextureOp.cpp b/third_party/skia/src/gpu/ganesh/ops/TextureOp.cpp similarity index 97% rename from third_party/skia/src/gpu/ops/TextureOp.cpp rename to third_party/skia/src/gpu/ganesh/ops/TextureOp.cpp index 9c767e85381e..b418867728ca 100644 --- a/third_party/skia/src/gpu/ops/TextureOp.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/TextureOp.cpp @@ -15,34 +15,34 @@ #include "src/core/SkMathPriv.h" #include "src/core/SkMatrixPriv.h" #include "src/core/SkRectPriv.h" -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsTypes.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrResourceProviderPriv.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/geometry/GrQuadBuffer.h" -#include "src/gpu/geometry/GrQuadUtils.h" -#include "src/gpu/geometry/GrRect.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/ops/FillRectOp.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" -#include "src/gpu/ops/QuadPerEdgeAA.h" -#include "src/gpu/ops/TextureOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsTypes.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrResourceProviderPriv.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/geometry/GrQuadBuffer.h" +#include "src/gpu/ganesh/geometry/GrQuadUtils.h" +#include "src/gpu/ganesh/geometry/GrRect.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/ops/FillRectOp.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/ops/QuadPerEdgeAA.h" +#include "src/gpu/ganesh/ops/TextureOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace { @@ -1181,7 +1181,7 @@ GrOp::Owner TextureOp::Make(GrRecordingContext* context, caps); } fp = GrColorSpaceXformEffect::Make(std::move(fp), std::move(textureXform)); - fp = GrBlendFragmentProcessor::Make(std::move(fp), nullptr, SkBlendMode::kModulate); + fp = GrBlendFragmentProcessor::Make(std::move(fp), nullptr); if (saturate == Saturate::kYes) { fp = GrFragmentProcessor::ClampOutput(std::move(fp)); } @@ -1385,8 +1385,8 @@ void TextureOp::AddTextureSetOps(SurfaceDrawContext* sdc, #if GR_TEST_UTILS #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" GR_DRAW_OP_TEST_DEFINE(TextureOpImpl) { SkISize dims; diff --git a/third_party/skia/src/gpu/ops/TextureOp.h b/third_party/skia/src/gpu/ganesh/ops/TextureOp.h similarity index 95% rename from third_party/skia/src/gpu/ops/TextureOp.h rename to third_party/skia/src/gpu/ganesh/ops/TextureOp.h index 998578c0fae0..ae28e8c31466 100644 --- a/third_party/skia/src/gpu/ops/TextureOp.h +++ b/third_party/skia/src/gpu/ganesh/ops/TextureOp.h @@ -9,10 +9,10 @@ #include "include/core/SkCanvas.h" #include "include/core/SkRefCnt.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/ops/GrOp.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/ops/GrOp.h" struct DrawQuad; class GrClip; diff --git a/third_party/skia/src/gpu/ops/TriangulatingPathRenderer.cpp b/third_party/skia/src/gpu/ganesh/ops/TriangulatingPathRenderer.cpp similarity index 95% rename from third_party/skia/src/gpu/ops/TriangulatingPathRenderer.cpp rename to third_party/skia/src/gpu/ganesh/ops/TriangulatingPathRenderer.cpp index efeb9b292a77..eea5b7d6ee69 100644 --- a/third_party/skia/src/gpu/ops/TriangulatingPathRenderer.cpp +++ b/third_party/skia/src/gpu/ganesh/ops/TriangulatingPathRenderer.cpp @@ -5,30 +5,30 @@ * found in the LICENSE file. */ -#include "src/gpu/ops/TriangulatingPathRenderer.h" +#include "src/gpu/ganesh/ops/TriangulatingPathRenderer.h" #include "include/private/SkIDChangeListener.h" #include "src/core/SkGeometry.h" -#include "src/gpu/GrAuditTrail.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDefaultGeoProcFactory.h" -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/GrEagerVertexAllocator.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSimpleMesh.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/GrThreadSafeCache.h" -#include "src/gpu/geometry/GrAATriangulator.h" -#include "src/gpu/geometry/GrPathUtils.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/geometry/GrTriangulator.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrAuditTrail.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDefaultGeoProcFactory.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrEagerVertexAllocator.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSimpleMesh.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/GrThreadSafeCache.h" +#include "src/gpu/ganesh/geometry/GrAATriangulator.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/geometry/GrTriangulator.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include diff --git a/third_party/skia/src/gpu/ops/TriangulatingPathRenderer.h b/third_party/skia/src/gpu/ganesh/ops/TriangulatingPathRenderer.h similarity index 95% rename from third_party/skia/src/gpu/ops/TriangulatingPathRenderer.h rename to third_party/skia/src/gpu/ganesh/ops/TriangulatingPathRenderer.h index 93d3fced1315..d53e73120add 100644 --- a/third_party/skia/src/gpu/ops/TriangulatingPathRenderer.h +++ b/third_party/skia/src/gpu/ganesh/ops/TriangulatingPathRenderer.h @@ -8,7 +8,7 @@ #ifndef TriangulatingPathRenderer_DEFINED #define TriangulatingPathRenderer_DEFINED -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/tessellate/shaders/BUILD.bazel b/third_party/skia/src/gpu/ganesh/tessellate/shaders/BUILD.bazel similarity index 70% rename from third_party/skia/src/gpu/tessellate/shaders/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/tessellate/shaders/BUILD.bazel index 429e7e202b8b..2172a1dac11f 100644 --- a/third_party/skia/src/gpu/tessellate/shaders/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/tessellate/shaders/BUILD.bazel @@ -1,12 +1,14 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrPathTessellationShader_Hardware_src", srcs = ["GrPathTessellationShader_Hardware.cpp"], visibility = ["//:__subpackages__"], deps = [ ":GrPathTessellationShader_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", "//src/gpu/tessellate:Tessellation_hdr", "//src/gpu/tessellate:WangsFormula_hdr", ], @@ -20,8 +22,8 @@ generated_cc_atom( ":GrPathTessellationShader_hdr", "//src/core:SkMathPriv_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - "//src/gpu/tessellate:PathTessellator_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/tessellate:FixedCountBufferUtils_hdr", "//src/gpu/tessellate:Tessellation_hdr", "//src/gpu/tessellate:WangsFormula_hdr", ], @@ -43,10 +45,10 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrPathTessellationShader_hdr", - "//src/gpu/effects:GrDisableColorXP_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/effects:GrDisableColorXP_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -56,9 +58,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrStrokeTessellationShader_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", "//src/gpu/tessellate:WangsFormula_hdr", ], ) @@ -69,9 +71,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrStrokeTessellationShader_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - "//src/gpu/tessellate:StrokeFixedCountTessellator_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/tessellate:FixedCountBufferUtils_hdr", "//src/gpu/tessellate:WangsFormula_hdr", ], ) @@ -83,8 +85,8 @@ generated_cc_atom( deps = [ ":GrTessellationShader_hdr", "//include/core:SkStrokeRec_hdr", - "//src/gpu:GrVx_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh:GrVx_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", "//src/gpu/tessellate:Tessellation_hdr", ], ) @@ -96,10 +98,9 @@ generated_cc_atom( deps = [ ":GrStrokeTessellationShader_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - "//src/gpu/tessellate:StrokeTessellator_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", ], ) @@ -109,8 +110,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", ], ) diff --git a/third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader.cpp b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.cpp similarity index 96% rename from third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader.cpp rename to third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.cpp index 5abae997d1c1..4fa7b796659a 100644 --- a/third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader.cpp +++ b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/tessellate/shaders/GrPathTessellationShader.h" +#include "src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.h" -#include "src/gpu/effects/GrDisableColorXP.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/effects/GrDisableColorXP.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" using skgpu::PatchAttribs; diff --git a/third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader.h b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.h similarity index 99% rename from third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader.h rename to third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.h index 305b4030061d..d7c9e96dad2b 100644 --- a/third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader.h +++ b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.h @@ -8,8 +8,8 @@ #ifndef GrPathTessellationShader_DEFINED #define GrPathTessellationShader_DEFINED +#include "src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h" #include "src/gpu/tessellate/Tessellation.h" -#include "src/gpu/tessellate/shaders/GrTessellationShader.h" // This is the base class for shaders in the GPU tessellator that fill paths. class GrPathTessellationShader : public GrTessellationShader { diff --git a/third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader_Hardware.cpp b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader_Hardware.cpp similarity index 99% rename from third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader_Hardware.cpp rename to third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader_Hardware.cpp index 0c3f91457473..4f410a8f0347 100644 --- a/third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader_Hardware.cpp +++ b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader_Hardware.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/tessellate/shaders/GrPathTessellationShader.h" +#include "src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" #include "src/gpu/tessellate/Tessellation.h" #include "src/gpu/tessellate/WangsFormula.h" diff --git a/third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader_MiddleOut.cpp b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader_MiddleOut.cpp similarity index 96% rename from third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader_MiddleOut.cpp rename to third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader_MiddleOut.cpp index 003e716e4f8d..cb05dff4d9c2 100644 --- a/third_party/skia/src/gpu/tessellate/shaders/GrPathTessellationShader_MiddleOut.cpp +++ b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader_MiddleOut.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/tessellate/shaders/GrPathTessellationShader.h" +#include "src/gpu/ganesh/tessellate/shaders/GrPathTessellationShader.h" #include "src/core/SkMathPriv.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/tessellate/PathTessellator.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/tessellate/FixedCountBufferUtils.h" #include "src/gpu/tessellate/Tessellation.h" #include "src/gpu/tessellate/WangsFormula.h" @@ -69,7 +69,7 @@ class MiddleOutShader : public GrPathTessellationShader { } int maxTessellationSegments(const GrShaderCaps&) const override { - return 1 << skgpu::PathTessellator::kMaxFixedResolveLevel; + return skgpu::kMaxParametricSegments; } private: @@ -98,9 +98,9 @@ std::unique_ptr MiddleOutShader::makeProgramIm const MiddleOutShader& middleOutShader = shader.cast(); v->defineConstant("PRECISION", skgpu::kTessellationPrecision); v->defineConstant("MAX_FIXED_RESOLVE_LEVEL", - (float)skgpu::PathTessellator::kMaxFixedResolveLevel); + (float)skgpu::kMaxFixedResolveLevel); v->defineConstant("MAX_FIXED_SEGMENTS", - (float)(1 << skgpu::PathTessellator::kMaxFixedResolveLevel)); + (float)(skgpu::kMaxParametricSegments)); v->insertFunction(skgpu::wangs_formula::as_sksl().c_str()); if (middleOutShader.fAttribs & PatchAttribs::kExplicitCurveType) { v->insertFunction(SkStringPrintf(R"( diff --git a/third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader.cpp b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.cpp similarity index 93% rename from third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader.cpp rename to third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.cpp index 1538a9f1b99f..cef410d2896e 100644 --- a/third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader.cpp +++ b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.cpp @@ -5,13 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/tessellate/shaders/GrStrokeTessellationShader.h" +#include "src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/tessellate/StrokeTessellator.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" GrStrokeTessellationShader::GrStrokeTessellationShader(const GrShaderCaps& shaderCaps, Mode mode, @@ -123,10 +122,10 @@ float miter_extent(float cosTheta, float miterLimit) { })"; // Returns the number of radial segments required for each radian of rotation, in order for the -// curve to appear "smooth" as defined by the parametricPrecision. +// curve to appear "smooth" as defined by the max scale. const char* GrStrokeTessellationShader::Impl::kNumRadialSegmentsPerRadianFn = R"( -float num_radial_segments_per_radian(float parametricPrecision, float strokeRadius) { - return .5 / acos(max(1.0 - 1.0/(parametricPrecision * strokeRadius), -1.0)); +float num_radial_segments_per_radian(float maxScale, float strokeRadius) { + return .5 / acos(max(1.0 - (1.0 / PRECISION) / (maxScale * strokeRadius), -1.0)); })"; // Unlike mix(), this does not return b when t==1. But it otherwise seems to get better @@ -359,28 +358,24 @@ void GrStrokeTessellationShader::Impl::setData(const GrGLSLProgramDataManager& p const auto& shader = geomProc.cast(); const auto& stroke = shader.stroke(); + const float maxScale = shader.viewMatrix().getMaxScale(); if (!shader.hasDynamicStroke()) { - // Set up the tessellation control uniforms. - skgpu::StrokeTolerances tolerances; - if (!stroke.isHairlineStyle()) { - tolerances = skgpu::StrokeTolerances::MakeNonHairline(shader.viewMatrix().getMaxScale(), - stroke.getWidth()); - } else { - // In the hairline case we transform prior to tessellation. Set up tolerances for an - // identity viewMatrix and a strokeWidth of 1. - tolerances = skgpu::StrokeTolerances::MakeNonHairline(1, 1); - } - float strokeRadius = (stroke.isHairlineStyle()) ? .5f : stroke.getWidth() * .5; + // Set up the tessellation control uniforms. In the hairline case we transform prior to + // tessellation, so it uses an identity viewMatrix and a strokeWidth of 1. + const float effectiveMaxScale = stroke.isHairlineStyle() ? 1.f : maxScale; + const float effectiveStrokeWidth = stroke.isHairlineStyle() ? 1.f : stroke.getWidth(); + float numRadialSegmentsPerRadian = + skgpu::StrokeTolerances::CalcNumRadialSegmentsPerRadian(effectiveMaxScale, + effectiveStrokeWidth); + pdman.set4f(fTessControlArgsUniform, - tolerances.fParametricPrecision, // PARAMETRIC_PRECISION - tolerances.fNumRadialSegmentsPerRadian, // NUM_RADIAL_SEGMENTS_PER_RADIAN + maxScale, // MAX_SCALE + numRadialSegmentsPerRadian, // NUM_RADIAL_SEGMENTS_PER_RADIAN skgpu::GetJoinType(stroke), // JOIN_TYPE - strokeRadius); // STROKE_RADIUS + 0.5f * effectiveStrokeWidth); // STROKE_RADIUS } else { SkASSERT(!stroke.isHairlineStyle()); - float maxScale = shader.viewMatrix().getMaxScale(); - pdman.set1f(fTessControlArgsUniform, - skgpu::StrokeTolerances::CalcParametricPrecision(maxScale)); + pdman.set1f(fTessControlArgsUniform, maxScale); } if (shader.mode() == GrStrokeTessellationShader::Mode::kFixedCount) { diff --git a/third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader.h b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.h similarity index 96% rename from third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader.h rename to third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.h index 9e637a375064..2f252b48eae5 100644 --- a/third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader.h +++ b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.h @@ -8,11 +8,11 @@ #ifndef GrStrokeTessellationShader_DEFINED #define GrStrokeTessellationShader_DEFINED -#include "src/gpu/tessellate/shaders/GrTessellationShader.h" +#include "src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h" #include "include/core/SkStrokeRec.h" -#include "src/gpu/GrVx.h" -#include "src/gpu/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/GrVx.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" #include "src/gpu/tessellate/Tessellation.h" // Tessellates a batch of stroke patches directly to the canvas. Tessellated stroking works by @@ -100,10 +100,10 @@ class GrStrokeTessellationShader::Impl : public ProgramImpl { // miter limit and need to revert to a bevel join. static const char* kMiterExtentFn; - // float num_radial_segments_per_radian(float parametricPrecision, float strokeRadius) { ... + // float num_radial_segments_per_radian(float maxScale, float strokeRadius) { ... // // Returns the number of radial segments required for each radian of rotation, in order for the - // curve to appear "smooth" as defined by the parametricPrecision. + // curve to appear "smooth" as defined by the max scale factor. static const char* kNumRadialSegmentsPerRadianFn; // float unchecked_mix(float a, float b, float T) { ... diff --git a/third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader_HardwareImpl.cpp b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader_HardwareImpl.cpp similarity index 96% rename from third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader_HardwareImpl.cpp rename to third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader_HardwareImpl.cpp index 5f093f1e00c1..b1242b23fd7a 100644 --- a/third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader_HardwareImpl.cpp +++ b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader_HardwareImpl.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/tessellate/shaders/GrStrokeTessellationShader.h" +#include "src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" #include "src/gpu/tessellate/WangsFormula.h" void GrStrokeTessellationShader::HardwareImpl::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { @@ -30,6 +30,7 @@ void GrStrokeTessellationShader::HardwareImpl::onEmitCode(EmitArgs& args, GrGPAr using TypeModifier = GrShaderVar::TypeModifier; v->defineConstantf("float", "kParametricEpsilon", "1.0 / (%i * 128)", args.fShaderCaps->maxTessellationSegments()); // 1/128 of a segment. + v->defineConstant("PRECISION", skgpu::kTessellationPrecision); // [numSegmentsInJoin, innerJoinRadiusMultiplier, prevJoinTangent.xy] v->declareGlobal(GrShaderVar("vsJoinArgs0", SkSLType::kFloat4, TypeModifier::Out)); @@ -61,7 +62,7 @@ void GrStrokeTessellationShader::HardwareImpl::onEmitCode(EmitArgs& args, GrGPAr } if (!shader.hasDynamicStroke()) { - // [PARAMETRIC_PRECISION, NUM_RADIAL_SEGMENTS_PER_RADIAN, JOIN_TYPE, STROKE_RADIUS] + // [MAX_SCALE, NUM_RADIAL_SEGMENTS_PER_RADIAN, JOIN_TYPE, STROKE_RADIUS] const char* tessArgsName; fTessControlArgsUniform = uniHandler->addUniform(nullptr, kVertex_GrShaderFlag | @@ -73,17 +74,17 @@ void GrStrokeTessellationShader::HardwareImpl::onEmitCode(EmitArgs& args, GrGPAr float NUM_RADIAL_SEGMENTS_PER_RADIAN = %s.y; float JOIN_TYPE = %s.z;)", tessArgsName, tessArgsName); } else { - const char* parametricPrecisionName; + const char* maxScaleName; fTessControlArgsUniform = uniHandler->addUniform(nullptr, kVertex_GrShaderFlag | kTessControl_GrShaderFlag | kTessEvaluation_GrShaderFlag, - SkSLType::kFloat, "parametricPrecision", - ¶metricPrecisionName); + SkSLType::kFloat, "maxScale", + &maxScaleName); v->codeAppendf(R"( float STROKE_RADIUS = dynamicStrokeAttr.x; float NUM_RADIAL_SEGMENTS_PER_RADIAN = num_radial_segments_per_radian(%s,STROKE_RADIUS); - float JOIN_TYPE = dynamicStrokeAttr.y;)", parametricPrecisionName); + float JOIN_TYPE = dynamicStrokeAttr.y;)", maxScaleName); } fTranslateUniform = uniHandler->addUniform(nullptr, kTessEvaluation_GrShaderFlag, @@ -336,15 +337,16 @@ SkString GrStrokeTessellationShader::HardwareImpl::getTessControlShaderGLSL( code.appendf("#define PI 3.141592653589793238\n"); code.appendf("#define MAX_TESSELLATION_SEGMENTS %i.0\n", shaderCaps.maxTessellationSegments()); code.appendf("#define cross cross2d\n"); // GLSL already has a function named "cross". + code.appendf("#define PRECISION %f\n", skgpu::kTessellationPrecision); const char* tessArgsName = uniformHandler.getUniformCStr(fTessControlArgsUniform); if (!shader.hasDynamicStroke()) { code.appendf("uniform vec4 %s;\n", tessArgsName); - code.appendf("#define PARAMETRIC_PRECISION %s.x\n", tessArgsName); + code.appendf("#define MAX_SCALE %s.x\n", tessArgsName); code.appendf("#define NUM_RADIAL_SEGMENTS_PER_RADIAN %s.y\n", tessArgsName); } else { code.appendf("uniform float %s;\n", tessArgsName); - code.appendf("#define PARAMETRIC_PRECISION %s\n", tessArgsName); + code.appendf("#define MAX_SCALE %s\n", tessArgsName); code.appendf("#define NUM_RADIAL_SEGMENTS_PER_RADIAN vsStrokeArgs[0].x\n"); } @@ -429,10 +431,10 @@ SkString GrStrokeTessellationShader::HardwareImpl::getTessControlShaderGLSL( float w = isinf(P[3].y) ? P[3].x : -1.0; // w<0 means the curve is an integral cubic. float numParametricSegments; if (w < 0.0) { - numParametricSegments = wangs_formula_cubic(PARAMETRIC_PRECISION, P[0], P[1], P[2], + numParametricSegments = wangs_formula_cubic(MAX_SCALE * PRECISION, P[0], P[1], P[2], P[3], mat2(1)); } else { - numParametricSegments = wangs_formula_conic(PARAMETRIC_PRECISION, P[0], P[1], P[2], w); + numParametricSegments = wangs_formula_conic(MAX_SCALE * PRECISION, P[0], P[1], P[2], w); } if (P[0] == P[1] && P[2] == P[3]) { // This is how the patch builder articulates lineTos but Wang's formula returns diff --git a/third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader_InstancedImpl.cpp b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader_InstancedImpl.cpp similarity index 89% rename from third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader_InstancedImpl.cpp rename to third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader_InstancedImpl.cpp index 5b3f8a0c12af..44d981730ac6 100644 --- a/third_party/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader_InstancedImpl.cpp +++ b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader_InstancedImpl.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/tessellate/shaders/GrStrokeTessellationShader.h" +#include "src/gpu/ganesh/tessellate/shaders/GrStrokeTessellationShader.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/tessellate/StrokeFixedCountTessellator.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/tessellate/FixedCountBufferUtils.h" #include "src/gpu/tessellate/WangsFormula.h" using skgpu::VertexWriter; @@ -20,6 +20,7 @@ void GrStrokeTessellationShader::InstancedImpl::onEmitCode(EmitArgs& args, GrGPA args.fVaryingHandler->emitAttributes(shader); args.fVertBuilder->defineConstant("float", "PI", "3.141592653589793238"); + args.fVertBuilder->defineConstant("PRECISION", skgpu::kTessellationPrecision); // Helper functions. if (shader.hasDynamicStroke()) { @@ -32,27 +33,27 @@ void GrStrokeTessellationShader::InstancedImpl::onEmitCode(EmitArgs& args, GrGPA // Tessellation control uniforms and/or dynamic attributes. if (!shader.hasDynamicStroke()) { - // [PARAMETRIC_PRECISION, NUM_RADIAL_SEGMENTS_PER_RADIAN, JOIN_TYPE, STROKE_RADIUS] + // [MAX_SCALE, NUM_RADIAL_SEGMENTS_PER_RADIAN, JOIN_TYPE, STROKE_RADIUS] const char* tessArgsName; fTessControlArgsUniform = args.fUniformHandler->addUniform( nullptr, kVertex_GrShaderFlag, SkSLType::kFloat4, "tessControlArgs", &tessArgsName); args.fVertBuilder->codeAppendf(R"( - float PARAMETRIC_PRECISION = %s.x; + float MAX_SCALE = %s.x; float NUM_RADIAL_SEGMENTS_PER_RADIAN = %s.y; float JOIN_TYPE = %s.z; float STROKE_RADIUS = %s.w;)", tessArgsName, tessArgsName, tessArgsName, tessArgsName); } else { - const char* parametricPrecisionName; + const char* maxScaleName; fTessControlArgsUniform = args.fUniformHandler->addUniform( - nullptr, kVertex_GrShaderFlag, SkSLType::kFloat, "parametricPrecision", - ¶metricPrecisionName); + nullptr, kVertex_GrShaderFlag, SkSLType::kFloat, "maxScale", + &maxScaleName); args.fVertBuilder->codeAppendf(R"( - float PARAMETRIC_PRECISION = %s; + float MAX_SCALE = %s; float STROKE_RADIUS = dynamicStrokeAttr.x; float NUM_RADIAL_SEGMENTS_PER_RADIAN = num_radial_segments_per_radian( - PARAMETRIC_PRECISION, STROKE_RADIUS); - float JOIN_TYPE = dynamicStrokeAttr.y;)", parametricPrecisionName); + MAX_SCALE, STROKE_RADIUS); + float JOIN_TYPE = dynamicStrokeAttr.y;)", maxScaleName); } if (shader.hasDynamicColor()) { @@ -104,6 +105,22 @@ void GrStrokeTessellationShader::InstancedImpl::onEmitCode(EmitArgs& args, GrGPA w = p3.x; p3 = p2; // Setting p3 equal to p2 works for the remaining rotational logic. })"); + + // Emit code to call Wang's formula to determine parametric segments. We do this before + // transform points for hairlines so that it is consistent with how the CPU tested the control + // points for chopping. + args.fVertBuilder->codeAppend(R"( + // Find how many parametric segments this stroke requires. + float numParametricSegments; + if (w < 0) { + numParametricSegments = wangs_formula_cubic(PRECISION, p0, p1, p2, p3, AFFINE_MATRIX); + } else { + numParametricSegments = wangs_formula_conic(PRECISION, + AFFINE_MATRIX * p0, + AFFINE_MATRIX * p1, + AFFINE_MATRIX * p2, w); + })"); + if (shader.stroke().isHairlineStyle()) { // Hairline case. Transform the points before tessellation. We can still hold off on the // translate until the end; we just need to perform the scale and skew right now. @@ -116,15 +133,6 @@ void GrStrokeTessellationShader::InstancedImpl::onEmitCode(EmitArgs& args, GrGPA } args.fVertBuilder->codeAppend(R"( - // Find how many parametric segments this stroke requires. - float numParametricSegments; - if (w < 0) { - numParametricSegments = wangs_formula_cubic(PARAMETRIC_PRECISION, p0, p1, p2, p3, - float2x2(1)); - } else { - numParametricSegments = wangs_formula_conic(PARAMETRIC_PRECISION, p0, p1, p2, w); - } - // Find the starting and ending tangents. float2 tan0 = ((p0 == p1) ? (p1 == p2) ? p3 : p2 : p1) - p0; float2 tan1 = p3 - ((p3 == p2) ? (p2 == p1) ? p0 : p1 : p2); @@ -178,7 +186,7 @@ void GrStrokeTessellationShader::InstancedImpl::onEmitCode(EmitArgs& args, GrGPA } else { args.fVertBuilder->codeAppendf(R"( float numEdgesInJoin = %i;)", - skgpu::StrokeFixedCountTessellator::NumFixedEdgesInJoin(joinType)); + skgpu::NumFixedEdgesInJoin(joinType)); } args.fVertBuilder->codeAppend(R"( diff --git a/third_party/skia/src/gpu/tessellate/shaders/GrTessellationShader.cpp b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrTessellationShader.cpp similarity index 92% rename from third_party/skia/src/gpu/tessellate/shaders/GrTessellationShader.cpp rename to third_party/skia/src/gpu/ganesh/tessellate/shaders/GrTessellationShader.cpp index 532145c80225..9d1d31636417 100644 --- a/third_party/skia/src/gpu/tessellate/shaders/GrTessellationShader.cpp +++ b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrTessellationShader.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/tessellate/shaders/GrTessellationShader.h" +#include "src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h" const GrPipeline* GrTessellationShader::MakePipeline(const ProgramArgs& args, GrAAType aaType, diff --git a/third_party/skia/src/gpu/tessellate/shaders/GrTessellationShader.h b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h similarity index 97% rename from third_party/skia/src/gpu/tessellate/shaders/GrTessellationShader.h rename to third_party/skia/src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h index f5c43da62fcf..e0724f876016 100644 --- a/third_party/skia/src/gpu/tessellate/shaders/GrTessellationShader.h +++ b/third_party/skia/src/gpu/ganesh/tessellate/shaders/GrTessellationShader.h @@ -9,8 +9,8 @@ #define GrTessellationShader_DEFINED #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrProgramInfo.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrProgramInfo.h" class SkArenaAlloc; diff --git a/third_party/skia/src/gpu/text/BUILD.bazel b/third_party/skia/src/gpu/ganesh/text/BUILD.bazel similarity index 74% rename from third_party/skia/src/gpu/text/BUILD.bazel rename to third_party/skia/src/gpu/ganesh/text/BUILD.bazel index aa7346a79072..f340a00bfa0f 100644 --- a/third_party/skia/src/gpu/text/BUILD.bazel +++ b/third_party/skia/src/gpu/ganesh/text/BUILD.bazel @@ -1,14 +1,16 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrAtlasManager_hdr", hdrs = ["GrAtlasManager.h"], visibility = ["//:__subpackages__"], deps = [ - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDrawOpAtlas_hdr", - "//src/gpu:GrOnFlushResourceProvider_hdr", - "//src/gpu:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDrawOpAtlas_hdr", + "//src/gpu/ganesh:GrOnFlushResourceProvider_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", ], ) @@ -20,17 +22,18 @@ generated_cc_atom( ":GrAtlasManager_hdr", ":GrStrikeCache_hdr", "//include/core:SkBitmap_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImageEncoder_hdr", "//include/core:SkStream_hdr", "//include/gpu:GrDirectContext_hdr", "//src/codec:SkMasks_hdr", "//src/core:SkAutoMalloc_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGlyph_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrSurfaceProxy_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SurfaceContext_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGlyph_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SurfaceContext_hdr", ], ) @@ -78,6 +81,7 @@ generated_cc_atom( hdrs = ["GrSDFTControl.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkFlattenable_hdr", "//include/core:SkFont_hdr", "//include/core:SkScalar_hdr", ], @@ -96,6 +100,7 @@ generated_cc_atom( "//include/core:SkScalar_hdr", "//include/core:SkSurfaceProps_hdr", "//src/core:SkGlyphRunPainter_hdr", + "//src/core:SkReadBuffer_hdr", ], ) @@ -106,6 +111,8 @@ generated_cc_atom( deps = [ "//include/core:SkCanvas_hdr", "//include/private/chromium:GrSlug_hdr", + "//src/core:SkReadBuffer_hdr", + "//src/core:SkWriteBuffer_hdr", ], ) @@ -128,7 +135,7 @@ generated_cc_atom( ":GrStrikeCache_hdr", "//src/core:SkArenaAlloc_hdr", "//src/core:SkStrikeSpec_hdr", - "//src/gpu:GrGlyph_hdr", + "//src/gpu/ganesh:GrGlyph_hdr", ], ) @@ -148,9 +155,9 @@ generated_cc_atom( "//src/core:SkStrikeSpec_hdr", "//src/core:SkTInternalLList_hdr", "//src/core:SkTLazy_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrSubRunAllocator_hdr", - "//src/gpu/ops:GrOp_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrSubRunAllocator_hdr", + "//src/gpu/ganesh/ops:GrOp_hdr", ], ) @@ -161,30 +168,37 @@ generated_cc_atom( deps = [ ":GrAtlasManager_hdr", ":GrGlyphVector_hdr", + ":GrSDFTControl_hdr", ":GrStrikeCache_hdr", ":GrTextBlob_hdr", "//include/core:SkColorFilter_hdr", + "//include/core:SkScalar_hdr", "//include/gpu:GrRecordingContext_hdr", "//include/private:SkTemplates_hdr", "//include/private/chromium:GrSlug_hdr", + "//include/private/chromium:SkChromeRemoteGlyphCache_hdr", + "//src/core:SkEnumerate_hdr", "//src/core:SkFontPriv_hdr", + "//src/core:SkGlyph_hdr", "//src/core:SkMaskFilterBase_hdr", "//src/core:SkMatrixProvider_hdr", "//src/core:SkPaintPriv_hdr", + "//src/core:SkReadBuffer_hdr", "//src/core:SkStrikeCache_hdr", "//src/core:SkStrikeSpec_hdr", - "//src/gpu:GrBlurUtils_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrGlyph_hdr", - "//src/gpu:GrMeshDrawTarget_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrDistanceFieldGeoProc_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/ops:AtlasTextOp_hdr", - "//src/gpu/v1:Device_v1_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrBlurUtils_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrGlyph_hdr", + "//src/gpu/ganesh:GrMeshDrawTarget_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:GrSubRunAllocator_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrDistanceFieldGeoProc_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/ops:AtlasTextOp_hdr", + "//src/gpu/ganesh/v1:Device_v1_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -209,7 +223,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":GrTextBlobRedrawCoordinator_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -222,9 +236,9 @@ generated_cc_atom( "//include/core:SkSpan_hdr", "//src/core:SkGlyphBuffer_hdr", "//src/core:SkGlyph_hdr", - "//src/gpu:GrGlyph_hdr", - "//src/gpu:GrMeshDrawTarget_hdr", - "//src/gpu:GrSubRunAllocator_hdr", + "//src/gpu/ganesh:GrGlyph_hdr", + "//src/gpu/ganesh:GrMeshDrawTarget_hdr", + "//src/gpu/ganesh:GrSubRunAllocator_hdr", ], ) @@ -235,6 +249,7 @@ generated_cc_atom( deps = [ ":GrAtlasManager_hdr", ":GrGlyphVector_hdr", + "//include/private/chromium:SkChromeRemoteGlyphCache_hdr", "//src/core:SkReadBuffer_hdr", "//src/core:SkStrikeCache_hdr", "//src/core:SkStrikeSpec_hdr", diff --git a/third_party/skia/src/gpu/text/GrAtlasManager.cpp b/third_party/skia/src/gpu/ganesh/text/GrAtlasManager.cpp similarity index 97% rename from third_party/skia/src/gpu/text/GrAtlasManager.cpp rename to third_party/skia/src/gpu/ganesh/text/GrAtlasManager.cpp index f2b421a1c56b..862a2ed85c4b 100644 --- a/third_party/skia/src/gpu/text/GrAtlasManager.cpp +++ b/third_party/skia/src/gpu/ganesh/text/GrAtlasManager.cpp @@ -5,13 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/text/GrAtlasManager.h" +#include "src/gpu/ganesh/text/GrAtlasManager.h" +#include "include/core/SkColorSpace.h" #include "src/codec/SkMasks.h" #include "src/core/SkAutoMalloc.h" -#include "src/gpu/GrGlyph.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/text/GrStrikeCache.h" +#include "src/gpu/ganesh/GrGlyph.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/text/GrStrikeCache.h" #if defined(STARBOARD) #include "starboard/file.h" @@ -211,10 +212,10 @@ void GrAtlasManager::addGlyphToBulkAndSetUseToken(GrDrawOpAtlas::BulkUseTokenUpd #ifdef SK_DEBUG #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SurfaceContext.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SurfaceContext.h" #include "include/core/SkBitmap.h" #include "include/core/SkImageEncoder.h" diff --git a/third_party/skia/src/gpu/text/GrAtlasManager.h b/third_party/skia/src/gpu/ganesh/text/GrAtlasManager.h similarity index 97% rename from third_party/skia/src/gpu/text/GrAtlasManager.h rename to third_party/skia/src/gpu/ganesh/text/GrAtlasManager.h index b9b91fedd045..c6a9b2913e2a 100644 --- a/third_party/skia/src/gpu/text/GrAtlasManager.h +++ b/third_party/skia/src/gpu/ganesh/text/GrAtlasManager.h @@ -8,10 +8,10 @@ #ifndef GrAtlasManager_DEFINED #define GrAtlasManager_DEFINED -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDrawOpAtlas.h" -#include "src/gpu/GrOnFlushResourceProvider.h" -#include "src/gpu/GrProxyProvider.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDrawOpAtlas.h" +#include "src/gpu/ganesh/GrOnFlushResourceProvider.h" +#include "src/gpu/ganesh/GrProxyProvider.h" class GrGlyph; class GrResourceProvider; diff --git a/third_party/skia/src/gpu/text/GrDistanceFieldAdjustTable.cpp b/third_party/skia/src/gpu/ganesh/text/GrDistanceFieldAdjustTable.cpp similarity index 98% rename from third_party/skia/src/gpu/text/GrDistanceFieldAdjustTable.cpp rename to third_party/skia/src/gpu/ganesh/text/GrDistanceFieldAdjustTable.cpp index c6c099220443..80244f58434f 100644 --- a/third_party/skia/src/gpu/text/GrDistanceFieldAdjustTable.cpp +++ b/third_party/skia/src/gpu/ganesh/text/GrDistanceFieldAdjustTable.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/text/GrDistanceFieldAdjustTable.h" +#include "src/gpu/ganesh/text/GrDistanceFieldAdjustTable.h" #include "src/core/SkScalerContext.h" diff --git a/third_party/skia/src/gpu/text/GrDistanceFieldAdjustTable.h b/third_party/skia/src/gpu/ganesh/text/GrDistanceFieldAdjustTable.h similarity index 100% rename from third_party/skia/src/gpu/text/GrDistanceFieldAdjustTable.h rename to third_party/skia/src/gpu/ganesh/text/GrDistanceFieldAdjustTable.h diff --git a/third_party/skia/src/gpu/text/GrGlyphVector.cpp b/third_party/skia/src/gpu/ganesh/text/GrGlyphVector.cpp similarity index 85% rename from third_party/skia/src/gpu/text/GrGlyphVector.cpp rename to third_party/skia/src/gpu/ganesh/text/GrGlyphVector.cpp index d95e317ce851..ccc50882a5e6 100644 --- a/third_party/skia/src/gpu/text/GrGlyphVector.cpp +++ b/third_party/skia/src/gpu/ganesh/text/GrGlyphVector.cpp @@ -5,13 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/text/GrGlyphVector.h" +#include "src/gpu/ganesh/text/GrGlyphVector.h" +#include "include/private/chromium/SkChromeRemoteGlyphCache.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkStrikeCache.h" #include "src/core/SkStrikeSpec.h" #include "src/core/SkWriteBuffer.h" -#include "src/gpu/text/GrAtlasManager.h" +#include "src/gpu/ganesh/text/GrAtlasManager.h" GrGlyphVector::GrGlyphVector(sk_sp&& strike, SkSpan glyphs) : fStrike{std::move(strike)} @@ -33,22 +34,29 @@ GrGlyphVector GrGlyphVector::Make( } std::optional GrGlyphVector::MakeFromBuffer(SkReadBuffer& buffer, + const SkStrikeClient* client, GrSubRunAllocator* alloc) { auto descriptor = SkAutoDescriptor::MakeFromBuffer(buffer); - if (!descriptor.has_value()) { return {}; } + if (!buffer.validate(descriptor.has_value())) { return {}; } + + if (client != nullptr) { + if (!client->translateTypefaceID(&descriptor.value())) { return {}; } + } sk_sp strike = SkStrikeCache::GlobalStrikeCache()->findStrike(*descriptor->getDesc()); + if (!buffer.validate(strike != nullptr)) { return {}; } int32_t glyphCount = buffer.read32(); // Since the glyph count can never be zero. There was a buffer reading problem. - if (glyphCount == 0) { return {}; } + if (!buffer.validate(glyphCount > 0)) { return {}; } - // Make sure we can do the multiply in the check below and not overflow an int. - if ((int)(INT_MAX / sizeof(uint32_t)) < glyphCount) { return {}; } + // Make sure we can multiply without overflow in the check below. + static constexpr int kMaxCount = (int)(INT_MAX / sizeof(uint32_t)); + if (!buffer.validate(glyphCount <= kMaxCount)) { return {}; } - // Check for enough bytes to populate the packedGlyphID array. If not enought something has + // Check for enough bytes to populate the packedGlyphID array. If not enough something has // gone wrong. - if (glyphCount * sizeof(uint32_t) > buffer.available()) { return {}; } + if (!buffer.validate(glyphCount * sizeof(uint32_t) <= buffer.available())) { return {}; } Variant* variants = alloc->makePODArray(glyphCount); for (int i = 0; i < glyphCount; i++) { @@ -85,6 +93,10 @@ void GrGlyphVector::packedGlyphIDToGrGlyph(GrStrikeCache* cache) { variant.grGlyph = fGrStrike->getGlyph(variant.packedGlyphID); } + // This must be pinned for the Atlas filling to work. + // TODO(herb): reenable after the cut on 20220414 + // fStrike->verifyPinnedStrike(); + // Drop the ref on the strike that was taken in the SkGlyphRunPainter process* methods. fStrike = nullptr; } diff --git a/third_party/skia/src/gpu/text/GrGlyphVector.h b/third_party/skia/src/gpu/ganesh/text/GrGlyphVector.h similarity index 89% rename from third_party/skia/src/gpu/text/GrGlyphVector.h rename to third_party/skia/src/gpu/ganesh/text/GrGlyphVector.h index ac335028165e..3176b92e5aa9 100644 --- a/third_party/skia/src/gpu/text/GrGlyphVector.h +++ b/third_party/skia/src/gpu/ganesh/text/GrGlyphVector.h @@ -11,10 +11,12 @@ #include "include/core/SkSpan.h" #include "src/core/SkGlyph.h" #include "src/core/SkGlyphBuffer.h" -#include "src/gpu/GrGlyph.h" -#include "src/gpu/GrMeshDrawTarget.h" -#include "src/gpu/GrSubRunAllocator.h" -#include "src/gpu/text/GrStrikeCache.h" +#include "src/gpu/ganesh/GrGlyph.h" +#include "src/gpu/ganesh/GrMeshDrawTarget.h" +#include "src/gpu/ganesh/GrSubRunAllocator.h" +#include "src/gpu/ganesh/text/GrStrikeCache.h" + +class SkStrikeClient; // -- GlyphVector ---------------------------------------------------------------------------------- // GlyphVector provides a way to delay the lookup of GrGlyphs until the code is running on the @@ -38,6 +40,7 @@ class GrGlyphVector { SkSpan glyphs() const; static std::optional MakeFromBuffer(SkReadBuffer& buffer, + const SkStrikeClient* strikeClient, GrSubRunAllocator* alloc); void flatten(SkWriteBuffer& buffer); diff --git a/third_party/skia/src/gpu/text/GrSDFMaskFilter.cpp b/third_party/skia/src/gpu/ganesh/text/GrSDFMaskFilter.cpp similarity index 98% rename from third_party/skia/src/gpu/text/GrSDFMaskFilter.cpp rename to third_party/skia/src/gpu/ganesh/text/GrSDFMaskFilter.cpp index 8e77a1815535..d802a6340cac 100644 --- a/third_party/skia/src/gpu/text/GrSDFMaskFilter.cpp +++ b/third_party/skia/src/gpu/ganesh/text/GrSDFMaskFilter.cpp @@ -11,7 +11,7 @@ #include "src/core/SkReadBuffer.h" #include "src/core/SkSafeMath.h" #include "src/core/SkWriteBuffer.h" -#include "src/gpu/text/GrSDFMaskFilter.h" +#include "src/gpu/ganesh/text/GrSDFMaskFilter.h" class GrSDFMaskFilterImpl : public SkMaskFilterBase { public: diff --git a/third_party/skia/src/gpu/text/GrSDFMaskFilter.h b/third_party/skia/src/gpu/ganesh/text/GrSDFMaskFilter.h similarity index 100% rename from third_party/skia/src/gpu/text/GrSDFMaskFilter.h rename to third_party/skia/src/gpu/ganesh/text/GrSDFMaskFilter.h diff --git a/third_party/skia/src/gpu/text/GrSDFTControl.cpp b/third_party/skia/src/gpu/ganesh/text/GrSDFTControl.cpp similarity index 91% rename from third_party/skia/src/gpu/text/GrSDFTControl.cpp rename to third_party/skia/src/gpu/ganesh/text/GrSDFTControl.cpp index 8eb695aca9b6..411a43b46aa2 100644 --- a/third_party/skia/src/gpu/text/GrSDFTControl.cpp +++ b/third_party/skia/src/gpu/ganesh/text/GrSDFTControl.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/text/GrSDFTControl.h" +#include "src/gpu/ganesh/text/GrSDFTControl.h" #include "include/core/SkFont.h" #include "include/core/SkGraphics.h" @@ -14,6 +14,7 @@ #include "include/core/SkScalar.h" #include "include/core/SkSurfaceProps.h" #include "src/core/SkGlyphRunPainter.h" +#include "src/core/SkReadBuffer.h" #include @@ -122,3 +123,14 @@ bool GrSDFTMatrixRange::matrixInRange(const SkMatrix& matrix) const { SkScalar maxScale = matrix.getMaxScale(); return fMatrixMin < maxScale && maxScale <= fMatrixMax; } + +void GrSDFTMatrixRange::flatten(SkWriteBuffer& buffer) const { + buffer.writeScalar(fMatrixMin); + buffer.writeScalar(fMatrixMax); +} + +GrSDFTMatrixRange GrSDFTMatrixRange::MakeFromBuffer(SkReadBuffer& buffer) { + SkScalar min = buffer.readScalar(); + SkScalar max = buffer.readScalar(); + return GrSDFTMatrixRange{min, max}; +} diff --git a/third_party/skia/src/gpu/text/GrSDFTControl.h b/third_party/skia/src/gpu/ganesh/text/GrSDFTControl.h similarity index 91% rename from third_party/skia/src/gpu/text/GrSDFTControl.h rename to third_party/skia/src/gpu/ganesh/text/GrSDFTControl.h index a36042377ba7..17972bbdabc3 100644 --- a/third_party/skia/src/gpu/text/GrSDFTControl.h +++ b/third_party/skia/src/gpu/ganesh/text/GrSDFTControl.h @@ -8,6 +8,7 @@ #ifndef GrSDFTControl_DEFINED #define GrSDFTControl_DEFINED +#include "include/core/SkFlattenable.h" #include "include/core/SkFont.h" #include "include/core/SkScalar.h" @@ -22,6 +23,8 @@ class GrSDFTMatrixRange { public: GrSDFTMatrixRange(SkScalar min, SkScalar max) : fMatrixMin{min}, fMatrixMax{max} {} bool matrixInRange(const SkMatrix& matrix) const; + void flatten(SkWriteBuffer& buffer) const; + static GrSDFTMatrixRange MakeFromBuffer(SkReadBuffer& buffer); private: const SkScalar fMatrixMin, diff --git a/third_party/skia/src/gpu/ganesh/text/GrSlug.cpp b/third_party/skia/src/gpu/ganesh/text/GrSlug.cpp new file mode 100644 index 000000000000..acd71f486a17 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/text/GrSlug.cpp @@ -0,0 +1,63 @@ +/* + * 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/chromium/GrSlug.h" + +#include "include/core/SkCanvas.h" +#include "src/core/SkReadBuffer.h" +#include "src/core/SkWriteBuffer.h" + +#include + +GrTextReferenceFrame::~GrTextReferenceFrame() = default; + +GrSlug::~GrSlug() = default; +sk_sp GrSlug::ConvertBlob( + SkCanvas* canvas, const SkTextBlob& blob, SkPoint origin, const SkPaint& paint) { + return canvas->convertBlobToSlug(blob, origin, paint); +} + +sk_sp GrSlug::serialize() const { + SkBinaryWriteBuffer buffer; + this->doFlatten(buffer); + return buffer.snapshotAsData(); +} + +size_t GrSlug::serialize(void* buffer, size_t size) const { + SkBinaryWriteBuffer writeBuffer{buffer, size}; + this->doFlatten(writeBuffer); + + // If we overflow the given buffer, then SkWriteBuffer allocates a new larger buffer. Check + // to see if an additional buffer was allocated, if it wasn't then everything fit, else + // return 0 signaling the buffer overflowed. + // N.B. This is the idiom from SkTextBlob. + return writeBuffer.usingInitialStorage() ? writeBuffer.bytesWritten() : 0u; +} + +sk_sp SkMakeSlugFromBuffer(SkReadBuffer& buffer, const SkStrikeClient* client); +sk_sp GrSlug::MakeFromBuffer(SkReadBuffer& buffer) { + return SkMakeSlugFromBuffer(buffer, nullptr); +} + +sk_sp GrSlug::Deserialize(const void* data, size_t size, const SkStrikeClient* client) { + SkReadBuffer buffer{data, size}; + return SkMakeSlugFromBuffer(buffer, client); +} + +void GrSlug::draw(SkCanvas* canvas) const { + canvas->drawSlug(this); +} + +uint32_t GrSlug::NextUniqueID() { + static std::atomic nextUnique = 1; + return nextUnique++; +} + +// Most of GrSlug's implementation is in GrTextBlob.cpp to share common code. + + + diff --git a/third_party/skia/src/gpu/text/GrStrikeCache.cpp b/third_party/skia/src/gpu/ganesh/text/GrStrikeCache.cpp similarity index 95% rename from third_party/skia/src/gpu/text/GrStrikeCache.cpp rename to third_party/skia/src/gpu/ganesh/text/GrStrikeCache.cpp index 2c869eea27f3..1d522f8a38ad 100644 --- a/third_party/skia/src/gpu/text/GrStrikeCache.cpp +++ b/third_party/skia/src/gpu/ganesh/text/GrStrikeCache.cpp @@ -7,8 +7,8 @@ #include "src/core/SkArenaAlloc.h" #include "src/core/SkStrikeSpec.h" -#include "src/gpu/GrGlyph.h" -#include "src/gpu/text/GrStrikeCache.h" +#include "src/gpu/ganesh/GrGlyph.h" +#include "src/gpu/ganesh/text/GrStrikeCache.h" GrStrikeCache::~GrStrikeCache() { this->freeAll(); diff --git a/third_party/skia/src/gpu/text/GrStrikeCache.h b/third_party/skia/src/gpu/ganesh/text/GrStrikeCache.h similarity index 100% rename from third_party/skia/src/gpu/text/GrStrikeCache.h rename to third_party/skia/src/gpu/ganesh/text/GrStrikeCache.h diff --git a/third_party/skia/src/gpu/text/GrTextBlob.cpp b/third_party/skia/src/gpu/ganesh/text/GrTextBlob.cpp similarity index 82% rename from third_party/skia/src/gpu/text/GrTextBlob.cpp rename to third_party/skia/src/gpu/ganesh/text/GrTextBlob.cpp index 013f521209a5..2ede547b0b29 100644 --- a/third_party/skia/src/gpu/text/GrTextBlob.cpp +++ b/third_party/skia/src/gpu/ganesh/text/GrTextBlob.cpp @@ -6,34 +6,39 @@ */ #include "include/core/SkColorFilter.h" +#include "include/core/SkScalar.h" #include "include/gpu/GrRecordingContext.h" #include "include/private/SkTemplates.h" #include "include/private/chromium/GrSlug.h" #include "include/private/chromium/SkChromeRemoteGlyphCache.h" +#include "src/core/SkEnumerate.h" #include "src/core/SkFontPriv.h" +#include "src/core/SkGlyph.h" #include "src/core/SkMaskFilterBase.h" #include "src/core/SkMatrixProvider.h" #include "src/core/SkPaintPriv.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkStrikeCache.h" #include "src/core/SkStrikeSpec.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrGlyph.h" -#include "src/gpu/GrMeshDrawTarget.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrDistanceFieldGeoProc.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/text/GrAtlasManager.h" -#include "src/gpu/text/GrGlyphVector.h" -#include "src/gpu/text/GrStrikeCache.h" -#include "src/gpu/text/GrTextBlob.h" - -#include "src/gpu/GrBlurUtils.h" -#include "src/gpu/ops/AtlasTextOp.h" -#include "src/gpu/v1/Device_v1.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrGlyph.h" +#include "src/gpu/ganesh/GrMeshDrawTarget.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/GrSubRunAllocator.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/text/GrAtlasManager.h" +#include "src/gpu/ganesh/text/GrGlyphVector.h" +#include "src/gpu/ganesh/text/GrSDFTControl.h" +#include "src/gpu/ganesh/text/GrStrikeCache.h" +#include "src/gpu/ganesh/text/GrTextBlob.h" + +#include "src/gpu/ganesh/GrBlurUtils.h" +#include "src/gpu/ganesh/ops/AtlasTextOp.h" +#include "src/gpu/ganesh/v1/Device_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" using AtlasTextOp = skgpu::v1::AtlasTextOp; @@ -82,19 +87,37 @@ const GrBlobSubRun* GrSubRun::blobCast() const { } namespace { + +template +bool pun_read(SkReadBuffer& buffer, T* dst) { + return buffer.readPad32(dst, sizeof(T)); +} + +template +void pun_write(SkWriteBuffer& buffer, const T& src) { + buffer.writePad32(&src, sizeof(T)); +} + // -- TransformedMaskVertexFiller ------------------------------------------------------------------ class TransformedMaskVertexFiller { + struct PositionAndExtent; public: TransformedMaskVertexFiller(GrMaskFormat maskFormat, int dstPadding, - SkScalar strikeToSourceScale); + SkScalar strikeToSourceScale, + SkRect sourceBounds, + SkSpan positionAndExtent); - struct PositionAndExtent { - const SkPoint pos; - // The rectangle of the glyphs in strike space. But, for kDirectMask this also implies a - // device space rect. - GrIRect16 rect; - }; + static TransformedMaskVertexFiller Make(GrMaskFormat maskType, + int dstPadding, + SkScalar strikeToSourceScale, + const SkZip& accepted, + GrSubRunAllocator* alloc); + + static std::optional MakeFromBuffer( + SkReadBuffer& buffer, GrSubRunAllocator* alloc); + int unflattenSize() const; + void flatten(SkWriteBuffer& buffer) const; size_t vertexStride(const SkMatrix& matrix) const { if (fMaskType != kARGB_GrMaskFormat) { @@ -106,8 +129,10 @@ class TransformedMaskVertexFiller { } } - void fillVertexData(SkSpan glyphs, - SkSpan positioning, + SkRect deviceRect(const SkMatrix& drawMatrix, SkPoint drawOrigin) const; + + void fillVertexData(int offset, int count, + SkSpan glyphs, GrColor color, const SkMatrix& positionMatrix, SkIRect clip, @@ -115,8 +140,16 @@ class TransformedMaskVertexFiller { AtlasTextOp::MaskType opMaskType() const; GrMaskFormat grMaskType() const {return fMaskType;} + int count() const { return SkCount(fPositionAndExtent); } private: + struct PositionAndExtent { + const SkPoint pos; + // The rectangle of the glyphs in strike space. But, for kDirectMask this also implies a + // device space rect. + GrIRect16 rect; + }; + struct AtlasPt { uint16_t u; uint16_t v; @@ -165,23 +198,111 @@ class TransformedMaskVertexFiller { const GrMaskFormat fMaskType; const SkPoint fPaddingInset; const SkScalar fStrikeToSourceScale; + const SkRect fSourceBounds; + const SkSpan fPositionAndExtent; }; -TransformedMaskVertexFiller::TransformedMaskVertexFiller(GrMaskFormat maskFormat, - int dstPadding, - SkScalar strikeToSourceScale) +TransformedMaskVertexFiller::TransformedMaskVertexFiller( + GrMaskFormat maskFormat, + int dstPadding, + SkScalar strikeToSourceScale, + SkRect sourceBounds, + SkSpan positionAndExtent) : fMaskType{maskFormat} , fPaddingInset{SkPoint::Make(dstPadding, dstPadding)} - , fStrikeToSourceScale{strikeToSourceScale} {} + , fStrikeToSourceScale{strikeToSourceScale} + , fSourceBounds{sourceBounds} + , fPositionAndExtent{positionAndExtent} {} + +TransformedMaskVertexFiller TransformedMaskVertexFiller::Make( + GrMaskFormat maskType, + int dstPadding, + SkScalar strikeToSourceScale, + const SkZip& accepted, + GrSubRunAllocator* alloc) { + SkRect sourceBounds = SkRectPriv::MakeLargestInverted(); + SkSpan positionAndExtent = alloc->makePODArray( + accepted, + [&](auto e) { + auto [variant, pos] = e; + const SkGlyph* skGlyph = variant; + int16_t l = skGlyph->left(), + t = skGlyph->top(), + r = l + skGlyph->width(), + b = t + skGlyph->height(); + SkPoint lt = SkPoint::Make(l, t) * strikeToSourceScale + pos, + rb = SkPoint::Make(r, b) * strikeToSourceScale + pos; -void TransformedMaskVertexFiller::fillVertexData(SkSpan glyphs, - SkSpan positioning, + sourceBounds.joinPossiblyEmptyRect( + SkRect::MakeLTRB(lt.x(), lt.y(), rb.x(), rb.y())); + return PositionAndExtent{pos, {l, t, r, b}}; + }); + return TransformedMaskVertexFiller{ + maskType, dstPadding, strikeToSourceScale, sourceBounds, positionAndExtent}; +} + +static bool check_glyph_count(SkReadBuffer& buffer, int glyphCount) { + return 0 < glyphCount && static_cast(glyphCount) < (buffer.available() / 4); +} + +std::optional TransformedMaskVertexFiller::MakeFromBuffer( + SkReadBuffer& buffer, GrSubRunAllocator* alloc) { + int checkingMaskType = buffer.readInt(); + if (!buffer.validate(0 <= checkingMaskType && checkingMaskType < kMaskFormatCount)) { + return {}; + } + GrMaskFormat maskType = (GrMaskFormat)checkingMaskType; + int dstPadding = buffer.readInt(); + if (!buffer.validate(0 <= dstPadding && dstPadding <= 2)) { return {}; } + SkScalar strikeToSourceScale = buffer.readScalar(); + if (!buffer.validate(0 < strikeToSourceScale)) { return {}; } + SkRect sourceBounds = buffer.readRect(); + + int glyphCount = buffer.readInt(); + if (!buffer.validate(check_glyph_count(buffer, glyphCount))) { return {}; } + PositionAndExtent* positionAndExtentStorage = + alloc->makePODArray(glyphCount); + for (int i = 0; i < glyphCount; ++i) { + pun_read(buffer, &positionAndExtentStorage[i]); + } + SkSpan positionAndExtent(positionAndExtentStorage, glyphCount); + + return {TransformedMaskVertexFiller{ + maskType, dstPadding, strikeToSourceScale, sourceBounds, positionAndExtent}}; +} + +SkRect TransformedMaskVertexFiller::deviceRect( + const SkMatrix& drawMatrix, SkPoint drawOrigin) const { + SkRect outBounds = fSourceBounds; + outBounds.offset(drawOrigin); + return drawMatrix.mapRect(outBounds); +} + +int TransformedMaskVertexFiller::unflattenSize() const { + return fPositionAndExtent.size_bytes(); +} + +void TransformedMaskVertexFiller::flatten(SkWriteBuffer& buffer) const { + buffer.writeInt(fMaskType); + buffer.writeInt(SkScalarRoundToInt(fPaddingInset.x())); + buffer.writeScalar(fStrikeToSourceScale); + buffer.writeRect(fSourceBounds); + buffer.writeInt(SkCount(fPositionAndExtent)); + for (auto posAndExt : fPositionAndExtent) { + pun_write(buffer, posAndExt); + } +} + +void TransformedMaskVertexFiller::fillVertexData(int offset, int count, + SkSpan glyphs, GrColor color, const SkMatrix& positionMatrix, SkIRect clip, void* vertexBuffer) const { auto quadData = [&](auto dst) { - return SkMakeZip(dst, glyphs, positioning); + return SkMakeZip(dst, + glyphs.subspan(offset, count), + fPositionAndExtent.subspan(offset, count)); }; if (!positionMatrix.hasPerspective()) { @@ -375,20 +496,28 @@ std::tuple can_use_direct( // -- PathOpSubmitter ------------------------------------------------------------------------------ // Shared code for submitting GPU ops for drawing glyphs as paths. class PathOpSubmitter { - struct PathAndPosition; + union Variant; + public: PathOpSubmitter(bool isAntiAliased, SkScalar strikeToSourceScale, - SkSpan paths, - std::unique_ptr pathData); - - PathOpSubmitter(PathOpSubmitter&& that); + SkSpan positions, + SkSpan glyphIDs, + std::unique_ptr paths, + const SkDescriptor& descriptor); static PathOpSubmitter Make(const SkZip& accepted, bool isAntiAliased, SkScalar strikeToSourceScale, + const SkDescriptor& descriptor, GrSubRunAllocator* alloc); + int unflattenSize() const; + void flatten(SkWriteBuffer& buffer) const; + static std::optional MakeFromBuffer(SkReadBuffer& buffer, + GrSubRunAllocator* alloc, + const SkStrikeClient* client); + void submitOps(SkCanvas*, const GrClip* clip, const SkMatrixProvider& viewMatrix, @@ -397,47 +526,120 @@ class PathOpSubmitter { skgpu::v1::SurfaceDrawContext* sdc) const; private: - struct PathAndPosition { - SkPath fPath; - SkPoint fPosition; - }; const bool fIsAntiAliased; const SkScalar fStrikeToSourceScale; - const SkSpan fPaths; - std::unique_ptr fPathData; + const SkSpan fPositions; + const SkSpan fGlyphIDs; + std::unique_ptr fPaths; + const SkAutoDescriptor fDescriptor; }; -PathOpSubmitter::PathOpSubmitter( - bool isAntiAliased, - SkScalar strikeToSourceScale, - SkSpan paths, - std::unique_ptr pathData) - : fIsAntiAliased{isAntiAliased} - , fStrikeToSourceScale{strikeToSourceScale} - , fPaths{paths} - , fPathData{std::move(pathData)} { - SkASSERT(!fPaths.empty()); +int PathOpSubmitter::unflattenSize() const { + return fPositions.size_bytes() + fGlyphIDs.size_bytes() + SkCount(fGlyphIDs) * sizeof(SkPath); +} + +void PathOpSubmitter::flatten(SkWriteBuffer& buffer) const { + buffer.writeInt(fIsAntiAliased); + buffer.writeScalar(fStrikeToSourceScale); + buffer.writeInt(SkCount(fPositions)); + for (auto pos : fPositions) { + buffer.writePoint(pos); + } + for (SkGlyphID glyphID : fGlyphIDs) { + buffer.writeInt(glyphID); + } + fDescriptor.getDesc()->flatten(buffer); } -PathOpSubmitter::PathOpSubmitter(PathOpSubmitter&& that) - : fIsAntiAliased{that.fIsAntiAliased} - , fStrikeToSourceScale{that.fStrikeToSourceScale} - , fPaths{that.fPaths} - , fPathData{std::move(that.fPathData)} {} +std::optional PathOpSubmitter::MakeFromBuffer(SkReadBuffer& buffer, + GrSubRunAllocator* alloc, + const SkStrikeClient* client) { + bool isAntiAlias = buffer.readInt(); + SkScalar strikeToSourceScale = buffer.readScalar(); + + int glyphCount = buffer.readInt(); + if (!buffer.validate(check_glyph_count(buffer, glyphCount))) { return {}; } + if (!buffer.validateCanReadN(glyphCount)) { return {}; } + SkPoint* positions = alloc->makePODArray(glyphCount); + for (int i = 0; i < glyphCount; ++i) { + positions[i] = buffer.readPoint(); + } + + // Remember, we stored an int for glyph id. + if (!buffer.validateCanReadN(glyphCount)) { return {}; } + SkGlyphID* glyphIDs = alloc->makePODArray(glyphCount); + for (int i = 0; i < glyphCount; ++i) { + glyphIDs[i] = SkTo(buffer.readInt()); + } + + auto descriptor = SkAutoDescriptor::MakeFromBuffer(buffer); + if (!buffer.validate(descriptor.has_value())) { return {}; } + + // Translate the TypefaceID if this was transferred from the GPU process. + if (client != nullptr) { + if (!client->translateTypefaceID(&descriptor.value())) { return {}; } + } + + auto strike = SkStrikeCache::GlobalStrikeCache()->findStrike(*descriptor->getDesc()); + if (!buffer.validate(strike != nullptr)) { return {}; } + + auto paths = alloc->makeUniqueArray(glyphCount); + SkBulkGlyphMetricsAndPaths pathGetter{std::move(strike)}; + + for (auto [i, glyphID] : SkMakeEnumerate(SkMakeSpan(glyphIDs, glyphCount))) { + const SkPath* path = pathGetter.glyph(glyphID)->path(); + // There should never be missing paths in a sub run. + if (path == nullptr) { return {}; } + paths[i] = *path; + } + + SkASSERT(buffer.isValid()); + return {PathOpSubmitter{isAntiAlias, + strikeToSourceScale, + SkMakeSpan(positions, glyphCount), + SkMakeSpan(glyphIDs, glyphCount), + std::move(paths), + *descriptor->getDesc()}}; +} + +PathOpSubmitter::PathOpSubmitter( + bool isAntiAliased, + SkScalar strikeToSourceScale, + SkSpan positions, + SkSpan glyphIDs, + std::unique_ptr paths, + const SkDescriptor& descriptor) + : fIsAntiAliased{isAntiAliased} + , fStrikeToSourceScale{strikeToSourceScale} + , fPositions{positions} + , fGlyphIDs{glyphIDs} + , fPaths{std::move(paths)} + , fDescriptor{descriptor} { + SkASSERT(!fPositions.empty()); +} PathOpSubmitter PathOpSubmitter::Make(const SkZip& accepted, bool isAntiAliased, SkScalar strikeToSourceScale, + const SkDescriptor& descriptor, GrSubRunAllocator* alloc) { - auto pathData = alloc->makeUniqueArray( - accepted.size(), - [&](int i){ - auto [variant, pos] = accepted[i]; - return PathAndPosition{*variant.path(), pos}; - }); - SkSpan paths{pathData.get(), accepted.size()}; + int glyphCount = SkCount(accepted); + SkPoint* positions = alloc->makePODArray(glyphCount); + SkGlyphID* glyphIDs = alloc->makePODArray(glyphCount); + auto paths = alloc->makeUniqueArray(glyphCount); - return PathOpSubmitter{isAntiAliased, strikeToSourceScale, paths, std::move(pathData)}; + for (auto [i, variant, pos] : SkMakeEnumerate(accepted)) { + positions[i] = pos; + glyphIDs[i] = variant.glyph()->getGlyphID(); + paths[i] = *variant.glyph()->path(); + } + + return PathOpSubmitter{isAntiAliased, + strikeToSourceScale, + SkMakeSpan(positions, glyphCount), + SkMakeSpan(glyphIDs, glyphCount), + std::move(paths), + descriptor}; } void PathOpSubmitter::submitOps(SkCanvas* canvas, @@ -448,23 +650,31 @@ void PathOpSubmitter::submitOps(SkCanvas* canvas, skgpu::v1::SurfaceDrawContext* sdc) const { SkPaint runPaint{paint}; runPaint.setAntiAlias(fIsAntiAliased); - // If there are shaders, blurs or styles, the path must be scaled into source - // space independently of the CTM. This allows the CTM to be correct for the - // different effects. - GrStyle style(runPaint); - bool needsExactCTM = runPaint.getShader() - || style.applies() - || runPaint.getMaskFilter(); + + SkMaskFilterBase* maskFilter = as_MFB(runPaint.getMaskFilter()); // Calculate the matrix that maps the path glyphs from their size in the strike to // the graphics source space. SkMatrix strikeToSource = SkMatrix::Scale(fStrikeToSourceScale, fStrikeToSourceScale); strikeToSource.postTranslate(drawOrigin.x(), drawOrigin.y()); + + // If there are shaders, non-blur mask filters or styles, the path must be scaled into source + // space independently of the CTM. This allows the CTM to be correct for the different effects. + GrStyle style(runPaint); + bool needsExactCTM = runPaint.getShader() + || style.applies() + || (maskFilter != nullptr && !maskFilter->asABlur(nullptr)); if (!needsExactCTM) { - for (const auto& pathPos : fPaths) { - const SkPath& path = pathPos.fPath; - const SkPoint pos = pathPos.fPosition; + SkMaskFilterBase::BlurRec blurRec; + + // If there is a blur mask filter, then sigma needs to be adjusted to account for the + // scaling of fStrikeToSourceScale. + if (maskFilter != nullptr && maskFilter->asABlur(&blurRec)) { + runPaint.setMaskFilter( + SkMaskFilter::MakeBlur(blurRec.fStyle, blurRec.fSigma / fStrikeToSourceScale)); + } + for (auto [path, pos] : SkMakeZip(fPaths.get(), fPositions)) { // Transform the glyph to source space. SkMatrix pathMatrix = strikeToSource; pathMatrix.postTranslate(pos.x(), pos.y()); @@ -476,9 +686,7 @@ void PathOpSubmitter::submitOps(SkCanvas* canvas, } else { // Transform the path to device because the deviceMatrix must be unchanged to // draw effect, filter or shader paths. - for (const auto& pathPos : fPaths) { - const SkPath& path = pathPos.fPath; - const SkPoint pos = pathPos.fPosition; + for (auto [path, pos] : SkMakeZip(fPaths.get(), fPositions)) { // Transform the glyph to source space. SkMatrix pathMatrix = strikeToSource; pathMatrix.postTranslate(pos.x(), pos.y()); @@ -499,9 +707,11 @@ class PathSubRun final : public GrSubRun, public GrBlobSubRun { static GrSubRunOwner Make(const SkZip& accepted, bool isAntiAliased, SkScalar strikeToSourceScale, + const SkDescriptor& descriptor, GrSubRunAllocator* alloc) { return alloc->makeUnique( - PathOpSubmitter::Make(accepted, isAntiAliased, strikeToSourceScale, alloc)); + PathOpSubmitter::Make( + accepted, isAntiAliased, strikeToSourceScale, descriptor, alloc)); } void draw(SkCanvas* canvas, @@ -514,7 +724,7 @@ class PathSubRun final : public GrSubRun, public GrBlobSubRun { } const GrBlobSubRun* blobCast() const override { return this; } - int unflattenSize() const override { return 0; } + int unflattenSize() const override; bool canReuse(const SkPaint& paint, const SkMatrix& positionMatrix) const override { return true; @@ -523,38 +733,56 @@ class PathSubRun final : public GrSubRun, public GrBlobSubRun { static GrSubRunOwner MakeFromBuffer(const GrTextReferenceFrame* referenceFrame, SkReadBuffer& buffer, GrSubRunAllocator* alloc, - const SkStrikeClient* client) { - return nullptr; - } + const SkStrikeClient* client); protected: SubRunType subRunType() const override { return kPath; } - void doFlatten(SkWriteBuffer& buffer) const override { - SK_ABORT("Not implemented."); - } + void doFlatten(SkWriteBuffer& buffer) const override; private: PathOpSubmitter fPathDrawing; }; +int PathSubRun::unflattenSize() const { + return sizeof(PathSubRun) + fPathDrawing.unflattenSize(); +} + +void PathSubRun::doFlatten(SkWriteBuffer& buffer) const { + fPathDrawing.flatten(buffer); +} + +GrSubRunOwner PathSubRun::MakeFromBuffer(const GrTextReferenceFrame* referenceFrame, + SkReadBuffer& buffer, + GrSubRunAllocator* alloc, + const SkStrikeClient* client) { + auto pathOpSubmitter = PathOpSubmitter::MakeFromBuffer(buffer, alloc, client); + if (!buffer.validate(pathOpSubmitter.has_value())) { return nullptr; } + return alloc->makeUnique(std::move(*pathOpSubmitter)); +} + // -- DrawableOpSubmitter -------------------------------------------------------------------------- // Shared code for submitting GPU ops for drawing glyphs as drawables. class DrawableOpSubmitter { - struct DrawableAndPosition; public: - DrawableOpSubmitter(bool isAntiAliased, - SkScalar strikeToSourceScale, - SkSpan drawables, - std::unique_ptr drawableData); - - DrawableOpSubmitter(DrawableOpSubmitter&& that); + DrawableOpSubmitter(SkScalar strikeToSourceScale, + SkSpan positions, + SkSpan glyphIDs, + SkSpan drawableData, + sk_sp&& strike, + const SkDescriptor& descriptor); static DrawableOpSubmitter Make(const SkZip& accepted, - bool isAntiAliased, + sk_sp&& strike, SkScalar strikeToSourceScale, + const SkDescriptor& descriptor, GrSubRunAllocator* alloc); + int unflattenSize() const; + void flatten(SkWriteBuffer& buffer) const; + static std::optional MakeFromBuffer(SkReadBuffer& buffer, + GrSubRunAllocator* alloc, + const SkStrikeClient* client); + void submitOps(SkCanvas*, const GrClip* clip, const SkMatrixProvider& viewMatrix, @@ -563,48 +791,116 @@ class DrawableOpSubmitter { skgpu::v1::SurfaceDrawContext* sdc) const; private: - struct DrawableAndPosition { - sk_sp fDrawable; - SkPoint fPosition; - }; - const bool fIsAntiAliased; const SkScalar fStrikeToSourceScale; - const SkSpan fDrawables; - std::unique_ptr fDrawableData; + const SkSpan fPositions; + const SkSpan fGlyphIDs; + const SkSpan fDrawables; + sk_sp fStrike; // Owns the fDrawables. + const SkAutoDescriptor fDescriptor; }; +int DrawableOpSubmitter::unflattenSize() const { + return fPositions.size_bytes() + + fGlyphIDs.size_bytes() + + SkCount(fPositions) * sizeof(sk_sp); +} + +void DrawableOpSubmitter::flatten(SkWriteBuffer& buffer) const { + buffer.writeScalar(fStrikeToSourceScale); + buffer.writeInt(SkCount(fPositions)); + for (auto pos : fPositions) { + buffer.writePoint(pos); + } + for (SkGlyphID glyphID : fGlyphIDs) { + buffer.writeInt(glyphID); + } + fDescriptor.getDesc()->flatten(buffer); +} + +std::optional DrawableOpSubmitter::MakeFromBuffer( + SkReadBuffer& buffer, GrSubRunAllocator* alloc, const SkStrikeClient* client) { + SkScalar strikeToSourceScale = buffer.readScalar(); + + int glyphCount = buffer.readInt(); + if (!buffer.validate(check_glyph_count(buffer, glyphCount))) { return {}; } + if (!buffer.validateCanReadN(glyphCount)) { return {}; } + SkPoint* positions = alloc->makePODArray(glyphCount); + for (int i = 0; i < glyphCount; ++i) { + positions[i] = buffer.readPoint(); + } + + // Remember, we stored an int for glyph id. + if (!buffer.validateCanReadN(glyphCount)) { return {}; } + SkGlyphID* glyphIDs = alloc->makePODArray(glyphCount); + for (int i = 0; i < glyphCount; ++i) { + glyphIDs[i] = SkTo(buffer.readInt()); + } + + auto descriptor = SkAutoDescriptor::MakeFromBuffer(buffer); + if (!buffer.validate(descriptor.has_value())) { return {}; } + + // Translate the TypefaceID if this was transferred from the GPU process. + if (client != nullptr) { + if (!client->translateTypefaceID(&descriptor.value())) { return {}; } + } + + auto strike = SkStrikeCache::GlobalStrikeCache()->findStrike(*descriptor->getDesc()); + if (!buffer.validate(strike != nullptr)) { return {}; } + + auto drawables = alloc->makePODArray(glyphCount); + SkBulkGlyphMetricsAndDrawables drawableGetter(sk_sp{strike}); + auto glyphs = drawableGetter.glyphs(SkMakeSpan(glyphIDs, glyphCount)); + + for (auto [i, glyph] : SkMakeEnumerate(glyphs)) { + drawables[i] = glyph->drawable(); + } + + SkASSERT(buffer.isValid()); + return {DrawableOpSubmitter{strikeToSourceScale, + SkMakeSpan(positions, glyphCount), + SkMakeSpan(glyphIDs, glyphCount), + SkMakeSpan(drawables, glyphCount), + std::move(strike), + *descriptor->getDesc()}}; +} + DrawableOpSubmitter::DrawableOpSubmitter( - bool isAntiAliased, SkScalar strikeToSourceScale, - SkSpan drawables, - std::unique_ptr drawableData) - : fIsAntiAliased{isAntiAliased} - , fStrikeToSourceScale{strikeToSourceScale} - , fDrawables{drawables} - , fDrawableData{std::move(drawableData)} { - SkASSERT(!fDrawables.empty()); + SkSpan positions, + SkSpan glyphIDs, + SkSpan drawables, + sk_sp&& strike, + const SkDescriptor& descriptor) + : fStrikeToSourceScale{strikeToSourceScale} + , fPositions{positions} + , fGlyphIDs{glyphIDs} + , fDrawables{std::move(drawables)} + , fStrike(std::move(strike)) + , fDescriptor{descriptor} { + SkASSERT(!fPositions.empty()); } -DrawableOpSubmitter::DrawableOpSubmitter(DrawableOpSubmitter&& that) - : fIsAntiAliased{that.fIsAntiAliased} - , fStrikeToSourceScale{that.fStrikeToSourceScale} - , fDrawables{that.fDrawables} - , fDrawableData{std::move(that.fDrawableData)} {} - DrawableOpSubmitter DrawableOpSubmitter::Make(const SkZip& accepted, - bool isAntiAliased, + sk_sp&& strike, SkScalar strikeToSourceScale, + const SkDescriptor& descriptor, GrSubRunAllocator* alloc) { - auto drawableData = alloc->makeUniqueArray( - accepted.size(), - [&](int i){ - auto [variant, pos] = accepted[i]; - return DrawableAndPosition{sk_ref_sp(variant.drawable()), pos}; - }); - SkSpan drawables{drawableData.get(), accepted.size()}; + int glyphCount = SkCount(accepted); + SkPoint* positions = alloc->makePODArray(glyphCount); + SkGlyphID* glyphIDs = alloc->makePODArray(glyphCount); + SkDrawable** drawables = alloc->makePODArray(glyphCount); + for (auto [i, variant, pos] : SkMakeEnumerate(accepted)) { + positions[i] = pos; + glyphIDs[i] = variant.glyph()->getGlyphID(); + drawables[i] = variant.glyph()->drawable(); + } - return DrawableOpSubmitter{isAntiAliased, strikeToSourceScale, - drawables, std::move(drawableData)}; + return DrawableOpSubmitter{strikeToSourceScale, + SkMakeSpan(positions, glyphCount), + SkMakeSpan(glyphIDs, glyphCount), + SkMakeSpan(drawables, glyphCount), + std::move(strike), + descriptor}; } void DrawableOpSubmitter::submitOps(SkCanvas* canvas, @@ -620,12 +916,11 @@ void DrawableOpSubmitter::submitOps(SkCanvas* canvas, // Transform the path to device because the deviceMatrix must be unchanged to // draw effect, filter or shader paths. - for (const auto& pathPos : fDrawables) { - const sk_sp& drawable = pathPos.fDrawable; - const SkPoint pos = pathPos.fPosition; + for (auto [i, position] : SkMakeEnumerate(fPositions)) { + SkDrawable* drawable = fDrawables[i]; // Transform the glyph to source space. SkMatrix pathMatrix = strikeToSource; - pathMatrix.postTranslate(pos.x(), pos.y()); + pathMatrix.postTranslate(position.x(), position.y()); SkAutoCanvasRestore acr(canvas, false); SkRect drawableBounds = drawable->getBounds(); @@ -637,11 +932,13 @@ void DrawableOpSubmitter::submitOps(SkCanvas* canvas, template GrSubRunOwner make_drawable_sub_run(const SkZip& drawables, - bool isAntiAliased, - SkScalar strikeToSourceScale, - GrSubRunAllocator* alloc) { + sk_sp&& strike, + SkScalar strikeToSourceScale, + const SkDescriptor& descriptor, + GrSubRunAllocator* alloc) { return alloc->makeUnique( - DrawableOpSubmitter::Make(drawables, isAntiAliased, strikeToSourceScale, alloc)); + DrawableOpSubmitter::Make(drawables, std::move(strike), + strikeToSourceScale, descriptor, alloc)); } // -- DrawableSubRunSlug --------------------------------------------------------------------------- @@ -653,9 +950,7 @@ class DrawableSubRunSlug : public GrSubRun { static GrSubRunOwner MakeFromBuffer(const GrTextReferenceFrame* referenceFrame, SkReadBuffer& buffer, GrSubRunAllocator* alloc, - const SkStrikeClient* client) { - return nullptr; - } + const SkStrikeClient* client); void draw(SkCanvas* canvas, const GrClip* clip, @@ -666,24 +961,38 @@ class DrawableSubRunSlug : public GrSubRun { fDrawingDrawing.submitOps(canvas, clip, viewMatrix, drawOrigin, paint, sdc); } - int unflattenSize() const override { return 0; } + int unflattenSize() const override; protected: SubRunType subRunType() const override { return kDrawable; } - void doFlatten(SkWriteBuffer& buffer) const override { - SK_ABORT("Not implemented."); - } + void doFlatten(SkWriteBuffer& buffer) const override; private: DrawableOpSubmitter fDrawingDrawing; }; +int DrawableSubRunSlug::unflattenSize() const { + return sizeof(DrawableSubRunSlug) + fDrawingDrawing.unflattenSize(); +} + +void DrawableSubRunSlug::doFlatten(SkWriteBuffer& buffer) const { + fDrawingDrawing.flatten(buffer); +} + +GrSubRunOwner DrawableSubRunSlug::MakeFromBuffer(const GrTextReferenceFrame* referenceFrame, + SkReadBuffer& buffer, + GrSubRunAllocator* alloc, + const SkStrikeClient* client) { + auto drawableOpSubmitter = DrawableOpSubmitter::MakeFromBuffer(buffer, alloc, client); + if (!buffer.validate(drawableOpSubmitter.has_value())) { return nullptr; } + return alloc->makeUnique(std::move(*drawableOpSubmitter)); +} + // -- DrawableSubRun ------------------------------------------------------------------------------- class DrawableSubRun final : public DrawableSubRunSlug, public GrBlobSubRun { public: using DrawableSubRunSlug::DrawableSubRunSlug; const GrBlobSubRun* blobCast() const override { return this; } - int unflattenSize() const override { return 0; } bool canReuse(const SkPaint& paint, const SkMatrix& positionMatrix) const override { return true; @@ -748,9 +1057,9 @@ class DirectMaskSubRun final : public GrSubRun, public GrBlobSubRun, public GrAt protected: SubRunType subRunType() const override { return kDirectMask; } - void doFlatten(SkWriteBuffer& buffer) const override { - SK_ABORT("Not implemented."); - } + + // TODO: implement + void doFlatten(SkWriteBuffer& buffer) const override { } private: // The rectangle that surrounds all the glyph bounding boxes in device space. @@ -810,7 +1119,7 @@ GrSubRunOwner DirectMaskSubRun::Make(const GrTextBlob* blob, const SkGlyphRect deviceBounds = skGlyph->glyphRect().offset(SkScalarRoundToInt(x), SkScalarRoundToInt(y)); runBounds = skglyph::rect_union(runBounds, deviceBounds); - glyphLeftTop[goodPosCount] = deviceBounds.topLeft(); + glyphLeftTop[goodPosCount] = deviceBounds.leftTop(); glyphIDs[goodPosCount].packedGlyphID = skGlyph->getPackedID(); goodPosCount += 1; } @@ -983,8 +1292,8 @@ DirectMaskSubRun::regenerateAtlas(int begin, int end, GrMeshDrawTarget* target) // The 99% case. No clip. Non-color only. void direct_2D(SkZip quadData, + const GrGlyph*, + const DirectMaskSubRun::DevicePosition> quadData, GrColor color, SkPoint originOffset) { for (auto[quad, glyph, leftTop] : quadData) { @@ -1107,28 +1416,21 @@ const GrAtlasSubRun* DirectMaskSubRun::testingOnly_atlasSubRun() const { // -- TransformedMaskSubRun ------------------------------------------------------------------------ class TransformedMaskSubRun final : public GrSubRun, public GrBlobSubRun, public GrAtlasSubRun { public: - using VertexData = TransformedMaskVertexFiller::PositionAndExtent; - TransformedMaskSubRun(const GrTextReferenceFrame* referenceFrame, - GrMaskFormat format, - SkScalar strikeToSourceScale, - const SkRect& bounds, - SkSpan vertexData, + TransformedMaskVertexFiller&& vertexFiller, GrGlyphVector&& glyphs); static GrSubRunOwner Make(const GrTextReferenceFrame* referenceFrame, const SkZip& accepted, sk_sp&& strike, SkScalar strikeToSourceScale, - GrMaskFormat format, + GrMaskFormat maskType, GrSubRunAllocator* alloc); static GrSubRunOwner MakeFromBuffer(const GrTextReferenceFrame* referenceFrame, SkReadBuffer& buffer, GrSubRunAllocator* alloc, - const SkStrikeClient* client) { - return nullptr; - } + const SkStrikeClient* client); void draw(SkCanvas*, const GrClip*, @@ -1146,7 +1448,7 @@ class TransformedMaskSubRun final : public GrSubRun, public GrBlobSubRun, public GrAtlasSubRunOwner) const override; const GrBlobSubRun* blobCast() const override { return this; } - int unflattenSize() const override { return 0; } + int unflattenSize() const override; bool canReuse(const SkPaint& paint, const SkMatrix& positionMatrix) const override; @@ -1167,21 +1469,15 @@ class TransformedMaskSubRun final : public GrSubRun, public GrBlobSubRun, public protected: SubRunType subRunType() const override { return kTransformMask; } - void doFlatten(SkWriteBuffer& buffer) const override { - SK_ABORT("Not implemented."); - } + void doFlatten(SkWriteBuffer& buffer) const override; private: // The rectangle that surrounds all the glyph bounding boxes in device space. SkRect deviceRect(const SkMatrix& drawMatrix, SkPoint drawOrigin) const; - const TransformedMaskVertexFiller fVertexFiller; - const GrTextReferenceFrame* const fReferenceFrame; - // The bounds in source space. The bounds are the joined rectangles of all the glyphs. - const SkRect fVertexBounds; - const SkSpan fVertexData; + const TransformedMaskVertexFiller fVertexFiller; // The regenerateAtlas method mutates fGlyphs. It should be called from onPrepare which must // be single threaded. @@ -1189,44 +1485,48 @@ class TransformedMaskSubRun final : public GrSubRun, public GrBlobSubRun, public }; TransformedMaskSubRun::TransformedMaskSubRun(const GrTextReferenceFrame* referenceFrame, - GrMaskFormat format, - SkScalar strikeToSourceScale, - const SkRect& bounds, - SkSpan vertexData, + TransformedMaskVertexFiller&& vertexFiller, GrGlyphVector&& glyphs) - : fVertexFiller{format, 0, strikeToSourceScale} - , fReferenceFrame{referenceFrame} - , fVertexBounds{bounds} - , fVertexData{vertexData} + : fReferenceFrame{referenceFrame} + , fVertexFiller{std::move(vertexFiller)} , fGlyphs{std::move(glyphs)} { } GrSubRunOwner TransformedMaskSubRun::Make(const GrTextReferenceFrame* referenceFrame, const SkZip& accepted, sk_sp&& strike, SkScalar strikeToSourceScale, - GrMaskFormat format, + GrMaskFormat maskType, GrSubRunAllocator* alloc) { - SkRect bounds = SkRectPriv::MakeLargestInverted(); + auto vertexFiller = TransformedMaskVertexFiller::Make( + maskType, 0, strikeToSourceScale, accepted, alloc); - SkSpan vertexData = alloc->makePODArray( - accepted, - [&](auto e) { - auto [variant, pos] = e; - const SkGlyph* skGlyph = variant; - int16_t l = skGlyph->left(), - t = skGlyph->top(), - r = l + skGlyph->width(), - b = t + skGlyph->height(); - SkPoint lt = SkPoint::Make(l, t) * strikeToSourceScale + pos, - rb = SkPoint::Make(r, b) * strikeToSourceScale + pos; + auto glyphVector = GrGlyphVector::Make(std::move(strike), accepted.get<0>(), alloc); - bounds.joinPossiblyEmptyRect(SkRect::MakeLTRB(lt.x(), lt.y(), rb.x(), rb.y())); - return VertexData{pos, {l, t, r, b}}; - }); + return alloc->makeUnique( + referenceFrame, std::move(vertexFiller), std::move(glyphVector)); +} + +GrSubRunOwner TransformedMaskSubRun::MakeFromBuffer(const GrTextReferenceFrame* referenceFrame, + SkReadBuffer& buffer, + GrSubRunAllocator* alloc, + const SkStrikeClient* client) { + auto vertexFiller = TransformedMaskVertexFiller::MakeFromBuffer(buffer, alloc); + if (!buffer.validate(vertexFiller.has_value())) { return {}; } + auto glyphVector = GrGlyphVector::MakeFromBuffer(buffer, client, alloc); + if (!buffer.validate(glyphVector.has_value())) { return {}; } + if (!buffer.validate(SkCount(glyphVector->glyphs()) == vertexFiller->count())) { return {}; } return alloc->makeUnique( - referenceFrame, format, strikeToSourceScale, bounds, vertexData, - GrGlyphVector::Make(std::move(strike), accepted.get<0>(), alloc)); + referenceFrame, std::move(*vertexFiller), std::move(*glyphVector)); +} + +int TransformedMaskSubRun::unflattenSize() const { + return sizeof(TransformedMaskSubRun) + fGlyphs.unflattenSize() + fVertexFiller.unflattenSize(); +} + +void TransformedMaskSubRun::doFlatten(SkWriteBuffer& buffer) const { + fVertexFiller.flatten(buffer); + fGlyphs.flatten(buffer); } void TransformedMaskSubRun::draw(SkCanvas*, @@ -1299,8 +1599,8 @@ void TransformedMaskSubRun::fillVertexData(void* vertexDst, int offset, int coun const SkMatrix& drawMatrix, SkPoint drawOrigin, SkIRect clip) const { const SkMatrix positionMatrix = position_matrix(drawMatrix, drawOrigin); - fVertexFiller.fillVertexData(fGlyphs.glyphs().subspan(offset, count), - fVertexData.subspan(offset, count), + fVertexFiller.fillVertexData(offset, count, + fGlyphs.glyphs(), color, positionMatrix, clip, @@ -1312,13 +1612,11 @@ size_t TransformedMaskSubRun::vertexStride(const SkMatrix& drawMatrix) const { } int TransformedMaskSubRun::glyphCount() const { - return SkCount(fVertexData); + return SkCount(fGlyphs.glyphs()); } SkRect TransformedMaskSubRun::deviceRect(const SkMatrix& drawMatrix, SkPoint drawOrigin) const { - SkRect outBounds = fVertexBounds; - outBounds.offset(drawOrigin); - return drawMatrix.mapRect(outBounds); + return fVertexFiller.deviceRect(drawMatrix, drawOrigin); } const GrAtlasSubRun* TransformedMaskSubRun::testingOnly_atlasSubRun() const { @@ -1328,16 +1626,12 @@ const GrAtlasSubRun* TransformedMaskSubRun::testingOnly_atlasSubRun() const { // -- SDFTSubRun ----------------------------------------------------------------------------------- class SDFTSubRun final : public GrSubRun, public GrBlobSubRun, public GrAtlasSubRun { public: - using VertexData = TransformedMaskVertexFiller::PositionAndExtent; - SDFTSubRun(const GrTextReferenceFrame* referenceFrame, - SkScalar strikeToSource, - SkRect vertexBounds, - SkSpan vertexData, - GrGlyphVector&& glyphs, bool useLCDText, bool antiAliased, - const GrSDFTMatrixRange& matrixRange); + const GrSDFTMatrixRange& matrixRange, + TransformedMaskVertexFiller&& vertexFiller, + GrGlyphVector&& glyphs); static GrSubRunOwner Make(const GrTextReferenceFrame* referenceFrame, const SkZip& accepted, @@ -1350,9 +1644,7 @@ class SDFTSubRun final : public GrSubRun, public GrBlobSubRun, public GrAtlasSub static GrSubRunOwner MakeFromBuffer(const GrTextReferenceFrame* referenceFrame, SkReadBuffer& buffer, GrSubRunAllocator* alloc, - const SkStrikeClient* client) { - return nullptr; - } + const SkStrikeClient* client); void draw(SkCanvas*, const GrClip*, @@ -1370,7 +1662,7 @@ class SDFTSubRun final : public GrSubRun, public GrBlobSubRun, public GrAtlasSub GrAtlasSubRunOwner) const override; const GrBlobSubRun* blobCast() const override { return this; } - int unflattenSize() const override { return 0; } + int unflattenSize() const override; bool canReuse(const SkPaint& paint, const SkMatrix& positionMatrix) const override; @@ -1391,47 +1683,36 @@ class SDFTSubRun final : public GrSubRun, public GrBlobSubRun, public GrAtlasSub protected: SubRunType subRunType() const override { return kSDFT; } - void doFlatten(SkWriteBuffer& buffer) const override { - SK_ABORT("Not implemented."); - } + void doFlatten(SkWriteBuffer& buffer) const override; private: // The rectangle that surrounds all the glyph bounding boxes in device space. SkRect deviceRect(const SkMatrix& drawMatrix, SkPoint drawOrigin) const; const GrTextReferenceFrame* const fReferenceFrame; + const bool fUseLCDText; + const bool fAntiAliased; + const GrSDFTMatrixRange fMatrixRange; const TransformedMaskVertexFiller fVertexFiller; - // The bounds in source space. The bounds are the joined rectangles of all the glyphs. - const SkRect fVertexBounds; - const SkSpan fVertexData; - // The regenerateAtlas method mutates fGlyphs. It should be called from onPrepare which must // be single threaded. mutable GrGlyphVector fGlyphs; - - const bool fUseLCDText; - const bool fAntiAliased; - const GrSDFTMatrixRange fMatrixRange; }; SDFTSubRun::SDFTSubRun(const GrTextReferenceFrame* referenceFrame, - SkScalar strikeToSource, - SkRect vertexBounds, - SkSpan vertexData, - GrGlyphVector&& glyphs, bool useLCDText, bool antiAliased, - const GrSDFTMatrixRange& matrixRange) + const GrSDFTMatrixRange& matrixRange, + TransformedMaskVertexFiller&& vertexFiller, + GrGlyphVector&& glyphs) : fReferenceFrame{referenceFrame} - , fVertexFiller{kA8_GrMaskFormat, SK_DistanceFieldInset, strikeToSource} - , fVertexBounds{vertexBounds} - , fVertexData{vertexData} - , fGlyphs{std::move(glyphs)} , fUseLCDText{useLCDText} , fAntiAliased{antiAliased} - , fMatrixRange{matrixRange} {} + , fMatrixRange{matrixRange} + , fVertexFiller{std::move(vertexFiller)} + , fGlyphs{std::move(glyphs)} {} bool has_some_antialiasing(const SkFont& font ) { SkFont::Edging edging = font.getEdging(); @@ -1446,32 +1727,54 @@ GrSubRunOwner SDFTSubRun::Make(const GrTextReferenceFrame* referenceFrame, SkScalar strikeToSourceScale, const GrSDFTMatrixRange& matrixRange, GrSubRunAllocator* alloc) { - SkRect bounds = SkRectPriv::MakeLargestInverted(); - auto mapper = [&](const auto& d) { - auto& [variant, pos] = d; - const SkGlyph* skGlyph = variant; - int16_t l = skGlyph->left(), - t = skGlyph->top(), - r = l + skGlyph->width(), - b = t + skGlyph->height(); - SkPoint lt = SkPoint::Make(l, t) * strikeToSourceScale + pos, - rb = SkPoint::Make(r, b) * strikeToSourceScale + pos; - - bounds.joinPossiblyEmptyRect(SkRect::MakeLTRB(lt.x(), lt.y(), rb.x(), rb.y())); - return VertexData{pos, {l, t, r, b}}; - }; + auto vertexFiller = TransformedMaskVertexFiller::Make( + kA8_GrMaskFormat, + SK_DistanceFieldInset, + strikeToSourceScale, + accepted, + alloc); - SkSpan vertexData = alloc->makePODArray(accepted, mapper); + auto glyphVector = GrGlyphVector::Make(std::move(strike), accepted.get<0>(), alloc); return alloc->makeUnique( referenceFrame, - strikeToSourceScale, - bounds, - vertexData, - GrGlyphVector::Make(std::move(strike), accepted.get<0>(), alloc), runFont.getEdging() == SkFont::Edging::kSubpixelAntiAlias, has_some_antialiasing(runFont), - matrixRange); + matrixRange, + std::move(vertexFiller), + std::move(glyphVector)); +} + +GrSubRunOwner SDFTSubRun::MakeFromBuffer(const GrTextReferenceFrame* referenceFrame, + SkReadBuffer& buffer, + GrSubRunAllocator* alloc, + const SkStrikeClient* client) { + int useLCD = buffer.readInt(); + int isAntiAliased = buffer.readInt(); + GrSDFTMatrixRange matrixRange = GrSDFTMatrixRange::MakeFromBuffer(buffer); + auto vertexFiller = TransformedMaskVertexFiller::MakeFromBuffer(buffer, alloc); + if (!buffer.validate(vertexFiller.has_value())) { return {}; } + auto glyphVector = GrGlyphVector::MakeFromBuffer(buffer, client, alloc); + if (!buffer.validate(glyphVector.has_value())) { return {}; } + if (!buffer.validate(SkCount(glyphVector->glyphs()) == vertexFiller->count())) { return {}; } + return alloc->makeUnique(referenceFrame, + useLCD, + isAntiAliased, + matrixRange, + std::move(*vertexFiller), + std::move(*glyphVector)); +} + +int SDFTSubRun::unflattenSize() const { + return sizeof(SDFTSubRun) + fGlyphs.unflattenSize() + fVertexFiller.unflattenSize(); +} + +void SDFTSubRun::doFlatten(SkWriteBuffer& buffer) const { + buffer.writeInt(fUseLCDText); + buffer.writeInt(fAntiAliased); + fMatrixRange.flatten(buffer); + fVertexFiller.flatten(buffer); + fGlyphs.flatten(buffer); } void SDFTSubRun::draw(SkCanvas*, @@ -1523,7 +1826,6 @@ SDFTSubRun::makeAtlasTextOp(const GrClip* clip, skgpu::v1::SurfaceDrawContext* sdc, GrAtlasSubRunOwner) const { SkASSERT(this->glyphCount() != 0); - SkASSERT(!viewMatrix.localToDevice().hasPerspective()); const SkMatrix& drawMatrix = viewMatrix.localToDevice(); @@ -1580,8 +1882,8 @@ void SDFTSubRun::fillVertexData( SkIRect clip) const { const SkMatrix positionMatrix = position_matrix(drawMatrix, drawOrigin); - fVertexFiller.fillVertexData(fGlyphs.glyphs().subspan(offset, count), - fVertexData.subspan(offset, count), + fVertexFiller.fillVertexData(offset, count, + fGlyphs.glyphs(), color, positionMatrix, clip, @@ -1589,13 +1891,11 @@ void SDFTSubRun::fillVertexData( } int SDFTSubRun::glyphCount() const { - return SkCount(fVertexData); + return fVertexFiller.count(); } SkRect SDFTSubRun::deviceRect(const SkMatrix& drawMatrix, SkPoint drawOrigin) const { - SkRect outBounds = fVertexBounds; - outBounds.offset(drawOrigin); - return drawMatrix.mapRect(outBounds); + return fVertexFiller.deviceRect(drawMatrix, drawOrigin); } const GrAtlasSubRun* SDFTSubRun::testingOnly_atlasSubRun() const { @@ -1701,7 +2001,7 @@ auto GrTextBlob::Key::Make(const SkGlyphRunList& glyphRunList, key.fBlurRec = blurRec; } key.fCanonicalColor = canonicalColor; - key.fScalerContextFlags = scalerContextFlags; + key.fScalerContextFlags = SkTo(scalerContextFlags); // Do any runs use direct drawing types?. key.fHasSomeDirectSubRuns = false; @@ -1899,16 +2199,18 @@ void GrTextBlob::processDeviceMasks( void GrTextBlob::processSourcePaths(const SkZip& accepted, const SkFont& runFont, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) { fSubRunList.append(PathSubRun::Make( - accepted, has_some_antialiasing(runFont), strikeToSourceScale, &fAlloc)); + accepted, has_some_antialiasing(runFont), strikeToSourceScale, descriptor, &fAlloc)); } void GrTextBlob::processSourceDrawables(const SkZip& accepted, - const SkFont& runFont, + sk_sp&& strike, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) { fSubRunList.append(make_drawable_sub_run( - accepted, has_some_antialiasing(runFont), strikeToSourceScale, &fAlloc)); + accepted, std::move(strike), strikeToSourceScale, descriptor, &fAlloc)); } void GrTextBlob::processSourceSDFT(const SkZip& accepted, @@ -2032,7 +2334,7 @@ GrAtlasSubRunOwner DirectMaskSubRunNoCache::Make(const SkZipglyphRect().offset(SkScalarRoundToInt(x), SkScalarRoundToInt(y)); runBounds = skglyph::rect_union(runBounds, deviceBounds); - glyphLeftTop[goodPosCount] = deviceBounds.topLeft(); + glyphLeftTop[goodPosCount] = deviceBounds.leftTop(); glyphIDs[goodPosCount].packedGlyphID = skGlyph->getPackedID(); goodPosCount += 1; } @@ -2191,12 +2493,7 @@ void DirectMaskSubRunNoCache::fillVertexData(void* vertexDst, int offset, int co // -- TransformedMaskSubRunNoCache ----------------------------------------------------------------- class TransformedMaskSubRunNoCache final : public GrAtlasSubRun { public: - using VertexData = TransformedMaskVertexFiller::PositionAndExtent; - - TransformedMaskSubRunNoCache(GrMaskFormat format, - SkScalar strikeToSourceScale, - const SkRect& bounds, - SkSpan vertexData, + TransformedMaskSubRunNoCache(TransformedMaskVertexFiller&& vertexFiller, GrGlyphVector&& glyphs); static GrAtlasSubRunOwner Make(const SkZip& accepted, @@ -2230,29 +2527,20 @@ class TransformedMaskSubRunNoCache final : public GrAtlasSubRun { // The rectangle that surrounds all the glyph bounding boxes in device space. SkRect deviceRect(const SkMatrix& drawMatrix, SkPoint drawOrigin) const; - const TransformedMaskVertexFiller fVertexFiller; - - // The bounds in source space. The bounds are the joined rectangles of all the glyphs. - const SkRect fVertexBounds; - const SkSpan fVertexData; - // Space for geometry alignas(alignof(AtlasTextOp::Geometry)) char fGeom[sizeof(AtlasTextOp::Geometry)]; + const TransformedMaskVertexFiller fVertexFiller; // The regenerateAtlas method mutates fGlyphs. It should be called from onPrepare which must // be single threaded. mutable GrGlyphVector fGlyphs; }; -TransformedMaskSubRunNoCache::TransformedMaskSubRunNoCache(GrMaskFormat format, - SkScalar strikeToSourceScale, - const SkRect& bounds, - SkSpan vertexData, - GrGlyphVector&& glyphs) - : fVertexFiller{format, 0, strikeToSourceScale} - , fVertexBounds{bounds} - , fVertexData{vertexData} - , fGlyphs{std::move(glyphs)} {} +TransformedMaskSubRunNoCache::TransformedMaskSubRunNoCache( + TransformedMaskVertexFiller&& vertexFiller, + GrGlyphVector&& glyphs) + : fVertexFiller{std::move(vertexFiller)} + , fGlyphs{std::move(glyphs)} {} GrAtlasSubRunOwner TransformedMaskSubRunNoCache::Make( const SkZip& accepted, @@ -2260,25 +2548,11 @@ GrAtlasSubRunOwner TransformedMaskSubRunNoCache::Make( SkScalar strikeToSourceScale, GrMaskFormat format, GrSubRunAllocator* alloc) { - SkRect bounds = SkRectPriv::MakeLargestInverted(); - auto initializer = [&](auto acceptedGlyph) { - auto [variant, pos] = acceptedGlyph; - const SkGlyph* skGlyph = variant; - int16_t l = skGlyph->left(), - t = skGlyph->top(), - r = l + skGlyph->width(), - b = t + skGlyph->height(); - SkPoint lt = SkPoint::Make(l, t) * strikeToSourceScale + pos, - rb = SkPoint::Make(r, b) * strikeToSourceScale + pos; - - bounds.joinPossiblyEmptyRect(SkRect::MakeLTRB(lt.x(), lt.y(), rb.x(), rb.y())); - return VertexData{pos, {l, t, r, b}}; - }; - - SkSpan vertexData = alloc->makePODArray(accepted, initializer); + auto vertexFiller = TransformedMaskVertexFiller::Make( + format, 0, strikeToSourceScale, accepted, alloc); return alloc->makeUnique( - format, strikeToSourceScale, bounds, vertexData, + std::move(vertexFiller), GrGlyphVector::Make(std::move(strike), accepted.get<0>(), alloc)); } @@ -2335,8 +2609,8 @@ void TransformedMaskSubRunNoCache::fillVertexData( const SkMatrix& drawMatrix, SkPoint drawOrigin, SkIRect clip) const { const SkMatrix positionMatrix = position_matrix(drawMatrix, drawOrigin); - fVertexFiller.fillVertexData(fGlyphs.glyphs().subspan(offset, count), - fVertexData.subspan(offset, count), + fVertexFiller.fillVertexData(offset, count, + fGlyphs.glyphs(), color, positionMatrix, clip, @@ -2348,14 +2622,12 @@ size_t TransformedMaskSubRunNoCache::vertexStride(const SkMatrix& drawMatrix) co } int TransformedMaskSubRunNoCache::glyphCount() const { - return SkCount(fVertexData); + return fVertexFiller.count(); } SkRect TransformedMaskSubRunNoCache::deviceRect( const SkMatrix& drawMatrix, SkPoint drawOrigin) const { - SkRect outBounds = fVertexBounds; - outBounds.offset(drawOrigin); - return drawMatrix.mapRect(outBounds); + return fVertexFiller.deviceRect(drawMatrix, drawOrigin); } // -- SDFTSubRunNoCache ---------------------------------------------------------------------------- @@ -2606,23 +2878,27 @@ void GrSubRunNoCachePainter::processSourceMasks(const SkZip& accepted, const SkFont& runFont, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) { PathOpSubmitter pathDrawing = PathOpSubmitter::Make(accepted, has_some_antialiasing(runFont), strikeToSourceScale, + descriptor, fAlloc); pathDrawing.submitOps(fCanvas, fClip, fViewMatrix, fGlyphRunList.origin(), fPaint, fSDC); } void GrSubRunNoCachePainter::processSourceDrawables(const SkZip& accepted, - const SkFont& runFont, + sk_sp&& strike, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) { DrawableOpSubmitter drawableDrawing = DrawableOpSubmitter::Make(accepted, - has_some_antialiasing(runFont), + std::move(strike), strikeToSourceScale, + descriptor, fAlloc); drawableDrawing.submitOps(fCanvas, fClip, fViewMatrix, fGlyphRunList.origin(), fPaint, fSDC); @@ -2674,9 +2950,9 @@ class Slug final : public GrSlug, public SkGlyphRunPainterInterface { void surfaceDraw(SkCanvas*, const GrClip* clip, const SkMatrixProvider& viewMatrix, - skgpu::v1::SurfaceDrawContext* sdc); + skgpu::v1::SurfaceDrawContext* sdc) const; - void flatten(SkWriteBuffer& buffer) const override; + void doFlatten(SkWriteBuffer& buffer) const override; SkRect sourceBounds() const override { return fSourceBounds; } const SkPaint& paint() const override { return fPaint; } @@ -2688,9 +2964,10 @@ class Slug final : public GrSlug, public SkGlyphRunPainterInterface { SkScalar strikeToSourceScale) override; void processSourcePaths( const SkZip& accepted, const SkFont& runFont, - SkScalar strikeToSourceScale) override; + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) override; void processSourceDrawables( - const SkZip& drawables, const SkFont& runFont, + const SkZip& drawables, sk_sp&& strike, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) override; void processSourceSDFT( const SkZip& accepted, sk_sp&& strike, @@ -2739,13 +3016,13 @@ Slug::Slug(SkRect sourceBounds, , fOrigin{origin} { } void Slug::surfaceDraw(SkCanvas* canvas, const GrClip* clip, const SkMatrixProvider& viewMatrix, - skgpu::v1::SurfaceDrawContext* sdc) { + skgpu::v1::SurfaceDrawContext* sdc) const { for (const GrSubRun& subRun : fSubRuns) { subRun.draw(canvas, clip, viewMatrix, fOrigin, fPaint, sdc); } } -void Slug::flatten(SkWriteBuffer& buffer) const { +void Slug::doFlatten(SkWriteBuffer& buffer) const { buffer.writeRect(fSourceBounds); SkPaintPriv::Flatten(fPaint, buffer); buffer.writeMatrix(fInitialPositionMatrix); @@ -2760,6 +3037,7 @@ void Slug::flatten(SkWriteBuffer& buffer) const { sk_sp Slug::MakeFromBuffer(SkReadBuffer& buffer, const SkStrikeClient* client) { SkRect sourceBounds = buffer.readRect(); + SkASSERT(!sourceBounds.isEmpty()); if (!buffer.validate(!sourceBounds.isEmpty())) { return nullptr; } SkPaint paint = buffer.readPaint(); @@ -2767,9 +3045,16 @@ sk_sp Slug::MakeFromBuffer(SkReadBuffer& buffer, const SkStrikeClient* c buffer.readMatrix(&positionMatrix); SkPoint origin = buffer.readPoint(); int subRunCount = buffer.readInt(); - if (!buffer.validate(subRunCount != 0)) { return nullptr; } + SkASSERT(subRunCount > 0); + if (!buffer.validate(subRunCount > 0)) { return nullptr; } int subRunsUnflattenSizeHint = buffer.readInt(); + // Since the hint doesn't affect performance, then if it looks fishy just pick a reasonable + // value. + if (subRunsUnflattenSizeHint < 0 || (1 << 16) < subRunsUnflattenSizeHint) { + subRunsUnflattenSizeHint = 128; + } + sk_sp slug{new (::operator new (sizeof(Slug) + subRunsUnflattenSizeHint)) Slug(sourceBounds, paint, @@ -2779,10 +3064,13 @@ sk_sp Slug::MakeFromBuffer(SkReadBuffer& buffer, const SkStrikeClient* c for (int i = 0; i < subRunCount; ++i) { auto subRun = GrSubRun::MakeFromBuffer(slug.get(), buffer, &slug->fAlloc, client); if (!buffer.validate(subRun != nullptr)) { return nullptr; } - slug->fSubRuns.append(std::move(subRun)); + if (subRun != nullptr) { + slug->fSubRuns.append(std::move(subRun)); + } } // Something went wrong while reading. + SkASSERT(buffer.isValid()); if (!buffer.isValid()) { return nullptr;} return std::move(slug); @@ -2791,7 +3079,7 @@ sk_sp Slug::MakeFromBuffer(SkReadBuffer& buffer, const SkStrikeClient* c // -- DirectMaskSubRunSlug ------------------------------------------------------------------------- class DirectMaskSubRunSlug final : public GrSubRun, public GrAtlasSubRun { public: - using DevicePosition = skvx::Vec<2, int16_t>; + using DevicePosition = DirectMaskSubRun::DevicePosition; DirectMaskSubRunSlug(const GrTextReferenceFrame* referenceFrame, GrMaskFormat format, @@ -2905,7 +3193,7 @@ GrSubRunOwner DirectMaskSubRunSlug::Make(const GrTextReferenceFrame* referenceFr const SkGlyphRect deviceBounds = skGlyph->glyphRect().offset(SkScalarRoundToInt(x), SkScalarRoundToInt(y)); runBounds = skglyph::rect_union(runBounds, deviceBounds); - glyphLeftTop[goodPosCount] = deviceBounds.topLeft(); + glyphLeftTop[goodPosCount] = deviceBounds.leftTop(); glyphIDs[goodPosCount].packedGlyphID = skGlyph->getPackedID(); goodPosCount += 1; } @@ -2922,41 +3210,29 @@ GrSubRunOwner DirectMaskSubRunSlug::Make(const GrTextReferenceFrame* referenceFr GrGlyphVector{std::move(strike), {glyphIDs, goodPosCount}}); } -template -static bool pun_read(SkReadBuffer& buffer, T* dst) { - return buffer.readPad32(dst, sizeof(T)); -} - GrSubRunOwner DirectMaskSubRunSlug::MakeFromBuffer(const GrTextReferenceFrame* referenceFrame, SkReadBuffer& buffer, GrSubRunAllocator* alloc, - const SkStrikeClient*) { - - GrMaskFormat format = (GrMaskFormat)buffer.readInt(); + const SkStrikeClient* client) { + GrMaskFormat maskType = (GrMaskFormat)buffer.readInt(); SkGlyphRect runBounds; pun_read(buffer, &runBounds); int glyphCount = buffer.readInt(); - SkASSERT(0 < glyphCount); - if (glyphCount <= 0) { return nullptr; } + if (!buffer.validate(check_glyph_count(buffer, glyphCount))) { return nullptr; } + if (!buffer.validateCanReadN(glyphCount)) { return nullptr; } DevicePosition* positionsData = alloc->makePODArray(glyphCount); for (int i = 0; i < glyphCount; ++i) { pun_read(buffer, &positionsData[i]); } SkSpan positions(positionsData, glyphCount); - auto glyphVector = GrGlyphVector::MakeFromBuffer(buffer, alloc); - SkASSERT(glyphVector.has_value()); - if (!glyphVector) { return nullptr; } - SkASSERT(SkTo(glyphVector->glyphs().size()) == glyphCount); - if (SkTo(glyphVector->glyphs().size()) != glyphCount) { return nullptr; } + auto glyphVector = GrGlyphVector::MakeFromBuffer(buffer, client, alloc); + if (!buffer.validate(glyphVector.has_value())) { return nullptr; } + if (!buffer.validate(SkCount(glyphVector->glyphs()) == glyphCount)) { return nullptr; } + SkASSERT(buffer.isValid()); return alloc->makeUnique( - referenceFrame, format, runBounds, positions, std::move(glyphVector.value())); -} - -template -static void pun_write(SkWriteBuffer& buffer, const T& src) { - buffer.writePad32(&src, sizeof(T)); + referenceFrame, maskType, runBounds, positions, std::move(glyphVector.value())); } void DirectMaskSubRunSlug::doFlatten(SkWriteBuffer& buffer) const { @@ -3070,26 +3346,6 @@ DirectMaskSubRunSlug::regenerateAtlas(int begin, int end, GrMeshDrawTarget* targ return fGlyphs.regenerateAtlas(begin, end, fMaskFormat, 1, target, true); } -// The 99% case. No clip. Non-color only. -void direct_2D3(SkZip quadData, - GrColor color, - SkPoint originOffset) { - for (auto[quad, glyph, leftTop] : quadData) { - auto[al, at, ar, ab] = glyph->fAtlasLocator.getUVs(); - SkScalar dl = leftTop[0] + originOffset.x(), - dt = leftTop[1] + originOffset.y(), - dr = dl + (ar - al), - db = dt + (ab - at); - - quad[0] = {{dl, dt}, color, {al, at}}; // L,T - quad[1] = {{dl, db}, color, {al, ab}}; // L,B - quad[2] = {{dr, dt}, color, {ar, at}}; // R,T - quad[3] = {{dr, db}, color, {ar, ab}}; // R,B - } -} - template void transformed_direct_2D(SkZip quadData, GrColor color, @@ -3157,7 +3413,7 @@ void DirectMaskSubRunSlug::fillVertexData(void* vertexDst, int offset, int count if (fMaskFormat != kARGB_GrMaskFormat) { using Quad = Mask2DVertex[4]; SkASSERT(sizeof(Mask2DVertex) == this->vertexStride(SkMatrix::I())); - direct_2D3(quadData((Quad*)vertexDst), color, originOffset); + direct_2D(quadData((Quad*)vertexDst), color, originOffset); } else { using Quad = ARGB2DVertex[4]; SkASSERT(sizeof(ARGB2DVertex) == this->vertexStride(SkMatrix::I())); @@ -3287,16 +3543,21 @@ sk_sp Slug::Make(const SkMatrixProvider& viewMatrix, void Slug::processSourcePaths(const SkZip& accepted, const SkFont& runFont, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) { - fSubRuns.append(PathSubRun::Make( - accepted, has_some_antialiasing(runFont), strikeToSourceScale, &fAlloc)); + fSubRuns.append(PathSubRun::Make(accepted, + has_some_antialiasing(runFont), + strikeToSourceScale, + descriptor, + &fAlloc)); } void Slug::processSourceDrawables(const SkZip& accepted, - const SkFont& runFont, + sk_sp&& strike, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) { - fSubRuns.append(make_drawable_sub_run( - accepted, has_some_antialiasing(runFont), strikeToSourceScale, &fAlloc)); + fSubRuns.append(make_drawable_sub_run( + accepted, std::move(strike), strikeToSourceScale, descriptor, &fAlloc)); } void Slug::processSourceSDFT(const SkZip& accepted, @@ -3333,7 +3594,7 @@ Device::convertGlyphRunListToSlug(const SkGlyphRunList& glyphRunList, const SkPa this->asMatrixProvider(), glyphRunList, paint); } -void Device::drawSlug(SkCanvas* canvas, GrSlug* slug) { +void Device::drawSlug(SkCanvas* canvas, const GrSlug* slug) { fSurfaceDrawContext->drawSlug(canvas, this->clip(), this->asMatrixProvider(), slug); } @@ -3353,8 +3614,8 @@ SurfaceDrawContext::convertGlyphRunListToSlug(const SkMatrixProvider& viewMatrix void SurfaceDrawContext::drawSlug(SkCanvas* canvas, const GrClip* clip, const SkMatrixProvider& viewMatrix, - GrSlug* slugPtr) { - Slug* slug = static_cast(slugPtr); + const GrSlug* slugPtr) { + const Slug* slug = static_cast(slugPtr); slug->surfaceDraw(canvas, clip, viewMatrix, this); } @@ -3383,7 +3644,6 @@ GrSubRunOwner GrSubRun::MakeFromBuffer(const GrTextReferenceFrame* referenceFram GrSubRunAllocator*, const SkStrikeClient*); - /* The makers will be populated in the next CL. */ static Maker makers[kSubRunTypeCount] = { nullptr, // 0 index is bad. DirectMaskSubRunSlug::MakeFromBuffer, diff --git a/third_party/skia/src/gpu/text/GrTextBlob.h b/third_party/skia/src/gpu/ganesh/text/GrTextBlob.h similarity index 96% rename from third_party/skia/src/gpu/text/GrTextBlob.h rename to third_party/skia/src/gpu/ganesh/text/GrTextBlob.h index 371c908f8fd1..39cca33972ee 100644 --- a/third_party/skia/src/gpu/text/GrTextBlob.h +++ b/third_party/skia/src/gpu/ganesh/text/GrTextBlob.h @@ -22,9 +22,9 @@ #include "src/core/SkStrikeSpec.h" #include "src/core/SkTInternalLList.h" #include "src/core/SkTLazy.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrSubRunAllocator.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrSubRunAllocator.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrAtlasManager; class GrDeferredUploadTarget; @@ -262,9 +262,11 @@ class GrTextBlob final : public GrTextReferenceFrame, public SkGlyphRunPainterIn sk_sp&& strike) override; void processSourcePaths(const SkZip& accepted, const SkFont& runFont, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) override; void processSourceDrawables(const SkZip& accepted, - const SkFont& runFont, + sk_sp&& strike, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) override; void processSourceSDFT(const SkZip& accepted, sk_sp&& strike, @@ -315,9 +317,11 @@ class GrSubRunNoCachePainter : public SkGlyphRunPainterInterface { SkScalar strikeToSourceScale) override; void processSourcePaths(const SkZip& accepted, const SkFont& runFont, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) override; void processSourceDrawables(const SkZip& accepted, - const SkFont& runFont, + sk_sp&& strike, + const SkDescriptor& descriptor, SkScalar strikeToSourceScale) override; void processSourceSDFT(const SkZip& accepted, sk_sp&& strike, diff --git a/third_party/skia/src/gpu/text/GrTextBlobRedrawCoordinator.cpp b/third_party/skia/src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.cpp similarity index 98% rename from third_party/skia/src/gpu/text/GrTextBlobRedrawCoordinator.cpp rename to third_party/skia/src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.cpp index eae40014151e..c8710e0cfec5 100644 --- a/third_party/skia/src/gpu/text/GrTextBlobRedrawCoordinator.cpp +++ b/third_party/skia/src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/text/GrTextBlobRedrawCoordinator.h" +#include "src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" DECLARE_SKMESSAGEBUS_MESSAGE(GrTextBlobRedrawCoordinator::PurgeBlobMessage, uint32_t, true) diff --git a/third_party/skia/src/gpu/text/GrTextBlobRedrawCoordinator.h b/third_party/skia/src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h similarity index 98% rename from third_party/skia/src/gpu/text/GrTextBlobRedrawCoordinator.h rename to third_party/skia/src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h index bf6a3fedc2db..fb8c09d8df5e 100644 --- a/third_party/skia/src/gpu/text/GrTextBlobRedrawCoordinator.h +++ b/third_party/skia/src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h @@ -14,7 +14,7 @@ #include "include/private/SkTHash.h" #include "src/core/SkMessageBus.h" #include "src/core/SkTextBlobPriv.h" -#include "src/gpu/text/GrTextBlob.h" +#include "src/gpu/ganesh/text/GrTextBlob.h" #include diff --git a/third_party/skia/src/gpu/ganesh/v1/BUILD.bazel b/third_party/skia/src/gpu/ganesh/v1/BUILD.bazel new file mode 100644 index 000000000000..2061754cbe6b --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/v1/BUILD.bazel @@ -0,0 +1,382 @@ +load("//bazel:macros.bzl", "generated_cc_atom") + +licenses(["notice"]) + +generated_cc_atom( + name = "ClipStack_hdr", + hdrs = ["ClipStack.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkClipOp_hdr", + "//include/core:SkMatrix_hdr", + "//include/core:SkShader_hdr", + "//src/core:SkTBlockList_hdr", + "//src/gpu:ResourceKey_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", + "//src/gpu/ganesh/geometry:GrShape_hdr", + ], +) + +generated_cc_atom( + name = "ClipStack_src", + srcs = ["ClipStack.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":ClipStack_hdr", + ":StencilMaskHelper_hdr", + ":SurfaceDrawContext_v1_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkMatrix_hdr", + "//src/core:SkMatrixProvider_hdr", + "//src/core:SkPathPriv_hdr", + "//src/core:SkRRectPriv_hdr", + "//src/core:SkRectPriv_hdr", + "//src/core:SkTaskGroup_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrDeferredProxyUploader_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrSWMaskHelper_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrConvexPolyEffect_hdr", + "//src/gpu/ganesh/effects:GrRRectEffect_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/geometry:GrQuadUtils_hdr", + "//src/gpu/ganesh/ops:AtlasPathRenderer_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + ], +) + +generated_cc_atom( + name = "Device_drawTexture_src", + srcs = ["Device_drawTexture.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":Device_v1_hdr", + ":SurfaceDrawContext_v1_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//include/private:SkTPin_hdr", + "//src/core:SkDraw_hdr", + "//src/core:SkImagePriv_hdr", + "//src/core:SkMaskFilterBase_hdr", + "//src/core:SkSpecialImage_hdr", + "//src/gpu/ganesh:GrBlurUtils_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrOpsTypes_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrBicubicEffect_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/geometry:GrRect_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/image:SkImage_Base_hdr", + "//src/image:SkImage_Gpu_hdr", + ], +) + +generated_cc_atom( + name = "Device_src", + srcs = ["Device.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":Device_v1_hdr", + "//include/core:SkImageFilter_hdr", + "//include/core:SkMaskFilter_hdr", + "//include/core:SkPathEffect_hdr", + "//include/core:SkPicture_hdr", + "//include/core:SkSurface_hdr", + "//include/core:SkVertices_hdr", + "//include/effects:SkRuntimeEffect_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//include/private:SkShadowFlags_hdr", + "//include/private:SkTo_hdr", + "//include/private/chromium:GrSlug_hdr", + "//include/private/chromium:SkChromeRemoteGlyphCache_hdr", + "//src/core:SkCanvasPriv_hdr", + "//src/core:SkClipStack_hdr", + "//src/core:SkCustomMeshPriv_hdr", + "//src/core:SkDraw_hdr", + "//src/core:SkImageFilterCache_hdr", + "//src/core:SkImageFilter_Base_hdr", + "//src/core:SkLatticeIter_hdr", + "//src/core:SkPictureData_hdr", + "//src/core:SkRRectPriv_hdr", + "//src/core:SkRasterClip_hdr", + "//src/core:SkRecord_hdr", + "//src/core:SkStroke_hdr", + "//src/core:SkTLazy_hdr", + "//src/core:SkVerticesPriv_hdr", + "//src/core:SkWriteBuffer_hdr", + "//src/gpu/ganesh:GrBlurUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:GrSurfaceProxyPriv_hdr", + "//src/gpu/ganesh:GrTracing_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrDisableColorXP_hdr", + "//src/gpu/ganesh/effects:GrRRectEffect_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/image:SkImage_Base_hdr", + "//src/image:SkReadPixelsRec_hdr", + "//src/image:SkSurface_Gpu_hdr", + "//src/utils:SkUTF_hdr", + ], +) + +generated_cc_atom( + name = "Device_v1_hdr", + hdrs = ["Device_v1.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":ClipStack_hdr", + ":SurfaceDrawContext_v1_hdr", + "//include/core:SkBitmap_hdr", + "//include/core:SkPicture_hdr", + "//include/core:SkRegion_hdr", + "//include/core:SkSurface_hdr", + "//include/gpu:GrTypes_hdr", + "//src/gpu/ganesh:BaseDevice_hdr", + "//src/gpu/ganesh:SkGr_hdr", + ], +) + +generated_cc_atom( + name = "PathRendererChain_hdr", + hdrs = ["PathRendererChain.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":PathRenderer_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkNoncopyable_hdr", + "//include/private:SkTArray_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "PathRendererChain_src", + srcs = ["PathRendererChain.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":PathRendererChain_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/ops:AAConvexPathRenderer_hdr", + "//src/gpu/ganesh/ops:AAHairLinePathRenderer_hdr", + "//src/gpu/ganesh/ops:AALinearizingConvexPathRenderer_hdr", + "//src/gpu/ganesh/ops:AtlasPathRenderer_hdr", + "//src/gpu/ganesh/ops:DashLinePathRenderer_hdr", + "//src/gpu/ganesh/ops:DefaultPathRenderer_hdr", + "//src/gpu/ganesh/ops:SmallPathRenderer_hdr", + "//src/gpu/ganesh/ops:TessellationPathRenderer_hdr", + "//src/gpu/ganesh/ops:TriangulatingPathRenderer_hdr", + ], +) + +generated_cc_atom( + name = "PathRenderer_hdr", + hdrs = ["PathRenderer.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/private:SkTArray_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "PathRenderer_src", + srcs = ["PathRenderer.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":PathRenderer_hdr", + ":SurfaceDrawContext_v1_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//src/core:SkDrawProcs_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrUserStencilSettings_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + ], +) + +generated_cc_atom( + name = "StencilClip_hdr", + hdrs = ["StencilClip.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//src/gpu/ganesh:GrAppliedClip_hdr", + "//src/gpu/ganesh:GrFixedClip_hdr", + ], +) + +generated_cc_atom( + name = "StencilMaskHelper_hdr", + hdrs = ["StencilMaskHelper.h"], + visibility = ["//:__subpackages__"], + deps = [":StencilClip_hdr"], +) + +generated_cc_atom( + name = "StencilMaskHelper_src", + srcs = ["StencilMaskHelper.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":StencilMaskHelper_hdr", + ":SurfaceDrawContext_v1_hdr", + "//include/core:SkMatrix_hdr", + "//include/core:SkPath_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + "//src/gpu/ganesh/effects:GrDisableColorXP_hdr", + "//src/gpu/ganesh/geometry:GrShape_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + ], +) + +generated_cc_atom( + name = "SurfaceDrawContext_src", + srcs = ["SurfaceDrawContext.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":PathRenderer_hdr", + ":SurfaceDrawContext_v1_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkDrawable_hdr", + "//include/core:SkVertices_hdr", + "//include/gpu:GrBackendSemaphore_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//include/private:SkShadowFlags_hdr", + "//include/private:SkVx_hdr", + "//include/private/gpu/ganesh:GrImageContext_hdr", + "//include/utils:SkShadowUtils_hdr", + "//src/core:SkAutoPixmapStorage_hdr", + "//src/core:SkConvertPixels_hdr", + "//src/core:SkCustomMeshPriv_hdr", + "//src/core:SkDrawProcs_hdr", + "//src/core:SkDrawShadowInfo_hdr", + "//src/core:SkGlyphRunPainter_hdr", + "//src/core:SkLatticeIter_hdr", + "//src/core:SkMatrixPriv_hdr", + "//src/core:SkMatrixProvider_hdr", + "//src/core:SkRRectPriv_hdr", + "//src/gpu/ganesh:GrAppliedClip_hdr", + "//src/gpu/ganesh:GrAttachment_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrGpuResourcePriv_hdr", + "//src/gpu/ganesh:GrImageContextPriv_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:GrTracing_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrBicubicEffect_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrDisableColorXP_hdr", + "//src/gpu/ganesh/effects:GrRRectEffect_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/geometry:GrQuadUtils_hdr", + "//src/gpu/ganesh/geometry:GrQuad_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/ops:ClearOp_hdr", + "//src/gpu/ganesh/ops:DrawAtlasOp_hdr", + "//src/gpu/ganesh/ops:DrawCustomMeshOp_hdr", + "//src/gpu/ganesh/ops:DrawableOp_hdr", + "//src/gpu/ganesh/ops:FillRRectOp_hdr", + "//src/gpu/ganesh/ops:FillRectOp_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/ops:GrOp_hdr", + "//src/gpu/ganesh/ops:GrOvalOpFactory_hdr", + "//src/gpu/ganesh/ops:LatticeOp_hdr", + "//src/gpu/ganesh/ops:RegionOp_hdr", + "//src/gpu/ganesh/ops:ShadowRRectOp_hdr", + "//src/gpu/ganesh/ops:StrokeRectOp_hdr", + "//src/gpu/ganesh/ops:TextureOp_hdr", + "//src/gpu/ganesh/text:GrSDFTControl_hdr", + "//src/gpu/ganesh/text:GrTextBlobRedrawCoordinator_hdr", + ], +) + +generated_cc_atom( + name = "SurfaceDrawContext_v1_hdr", + hdrs = ["SurfaceDrawContext_v1.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":SurfaceFillContext_v1_hdr", + "//include/core:SkCanvas_hdr", + "//include/core:SkDrawable_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkSurfaceProps_hdr", + "//include/core:SkSurface_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/core:SkGlyphRunPainter_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:GrRenderTargetProxy_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/geometry:GrQuad_hdr", + "//src/gpu/ganesh/ops:OpsTask_hdr", + ], +) + +generated_cc_atom( + name = "SurfaceFillContext_v1_hdr", + hdrs = ["SurfaceFillContext_v1.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkSize_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu:Swizzle_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/ops:OpsTask_hdr", + ], +) + +generated_cc_atom( + name = "SurfaceFillContext_v1_src", + srcs = ["SurfaceFillContext_v1.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":SurfaceDrawContext_v1_hdr", + ":SurfaceFillContext_v1_hdr", + "//include/private/gpu/ganesh:GrImageContext_hdr", + "//src/gpu/ganesh:GrDstProxyView_hdr", + "//src/gpu/ganesh:GrImageContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrTextureResolveRenderTask_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/geometry:GrRect_hdr", + "//src/gpu/ganesh/ops:ClearOp_hdr", + "//src/gpu/ganesh/ops:FillRectOp_hdr", + ], +) diff --git a/third_party/skia/src/gpu/v1/ClipStack.cpp b/third_party/skia/src/gpu/ganesh/v1/ClipStack.cpp similarity index 98% rename from third_party/skia/src/gpu/v1/ClipStack.cpp rename to third_party/skia/src/gpu/ganesh/v1/ClipStack.cpp index 1c6cd4fb8237..6447ff30f164 100644 --- a/third_party/skia/src/gpu/v1/ClipStack.cpp +++ b/third_party/skia/src/gpu/ganesh/v1/ClipStack.cpp @@ -5,30 +5,31 @@ * found in the LICENSE file. */ -#include "src/gpu/v1/ClipStack.h" +#include "src/gpu/ganesh/v1/ClipStack.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkMatrix.h" #include "src/core/SkMatrixProvider.h" #include "src/core/SkPathPriv.h" #include "src/core/SkRRectPriv.h" #include "src/core/SkRectPriv.h" #include "src/core/SkTaskGroup.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrDeferredProxyUploader.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrSWMaskHelper.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" -#include "src/gpu/effects/GrConvexPolyEffect.h" -#include "src/gpu/effects/GrRRectEffect.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/geometry/GrQuadUtils.h" -#include "src/gpu/ops/AtlasPathRenderer.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/v1/StencilMaskHelper.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrDeferredProxyUploader.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrSWMaskHelper.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrConvexPolyEffect.h" +#include "src/gpu/ganesh/effects/GrRRectEffect.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/geometry/GrQuadUtils.h" +#include "src/gpu/ganesh/ops/AtlasPathRenderer.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/v1/StencilMaskHelper.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace { @@ -1646,7 +1647,7 @@ GrFPResult ClipStack::GetSWMaskFP(GrRecordingContext* context, Mask::Stack* mask fp = GrFragmentProcessor::DeviceSpace(std::move(fp)); // Must combine the coverage sampled from the texture effect with the previous coverage - fp = GrBlendFragmentProcessor::Make(std::move(fp), std::move(clipFP), SkBlendMode::kDstIn); + fp = GrBlendFragmentProcessor::Make(std::move(fp), std::move(clipFP)); return GrFPSuccess(std::move(fp)); } diff --git a/third_party/skia/src/gpu/v1/ClipStack.h b/third_party/skia/src/gpu/ganesh/v1/ClipStack.h similarity index 99% rename from third_party/skia/src/gpu/v1/ClipStack.h rename to third_party/skia/src/gpu/ganesh/v1/ClipStack.h index abb9c1cf98d4..2db990774a9d 100644 --- a/third_party/skia/src/gpu/v1/ClipStack.h +++ b/third_party/skia/src/gpu/ganesh/v1/ClipStack.h @@ -12,10 +12,10 @@ #include "include/core/SkMatrix.h" #include "include/core/SkShader.h" #include "src/core/SkTBlockList.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrSurfaceProxyView.h" #include "src/gpu/ResourceKey.h" -#include "src/gpu/geometry/GrShape.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/geometry/GrShape.h" class GrAppliedClip; class GrProxyProvider; diff --git a/third_party/skia/src/gpu/v1/Device.cpp b/third_party/skia/src/gpu/ganesh/v1/Device.cpp similarity index 85% rename from third_party/skia/src/gpu/v1/Device.cpp rename to third_party/skia/src/gpu/ganesh/v1/Device.cpp index a0a4728af14f..f5663022ffe5 100644 --- a/third_party/skia/src/gpu/v1/Device.cpp +++ b/third_party/skia/src/gpu/ganesh/v1/Device.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/v1/Device_v1.h" +#include "src/gpu/ganesh/v1/Device_v1.h" #include "include/core/SkImageFilter.h" #include "include/core/SkMaskFilter.h" @@ -33,24 +33,28 @@ #include "src/core/SkStroke.h" #include "src/core/SkTLazy.h" #include "src/core/SkVerticesPriv.h" -#include "src/gpu/GrBlurUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTracing.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrDisableColorXP.h" -#include "src/gpu/effects/GrRRectEffect.h" -#include "src/gpu/geometry/GrStyledShape.h" +#include "src/core/SkWriteBuffer.h" +#include "src/gpu/ganesh/GrBlurUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTracing.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrDisableColorXP.h" +#include "src/gpu/ganesh/effects/GrRRectEffect.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" #include "src/image/SkImage_Base.h" #include "src/image/SkReadPixelsRec.h" #include "src/image/SkSurface_Gpu.h" #include "src/utils/SkUTF.h" -#define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(fContext->priv().singleOwner()) +#if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_STRIKE_SERIALIZE) + #include "include/private/chromium/SkChromeRemoteGlyphCache.h" +#endif +#define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(fContext->priv().singleOwner()) /////////////////////////////////////////////////////////////////////////////// @@ -477,16 +481,21 @@ void Device::drawEdgeAAQuad(const SkRect& rect, grPaint.setXPFactory(SkBlendMode_AsXPFactory(mode)); } - // This is exclusively meant for tiling operations, so keep AA enabled to handle MSAA seaming - GrQuadAAFlags grAA = SkToGrQuadAAFlags(aaFlags); if (clip) { // Use fillQuadWithEdgeAA - fSurfaceDrawContext->fillQuadWithEdgeAA(this->clip(), std::move(grPaint), GrAA::kYes, grAA, - this->localToDevice(), clip, nullptr); + fSurfaceDrawContext->fillQuadWithEdgeAA(this->clip(), + std::move(grPaint), + SkToGrQuadAAFlags(aaFlags), + this->localToDevice(), + clip, + nullptr); } else { // Use fillRectWithEdgeAA to preserve mathematical properties of dst being rectangular - fSurfaceDrawContext->fillRectWithEdgeAA(this->clip(), std::move(grPaint), GrAA::kYes, grAA, - this->localToDevice(), rect); + fSurfaceDrawContext->fillRectWithEdgeAA(this->clip(), + std::move(grPaint), + SkToGrQuadAAFlags(aaFlags), + this->localToDevice(), + rect); } } @@ -781,8 +790,7 @@ void Device::drawImageRect(const SkImage* image, ASSERT_SINGLE_OWNER GrAA aa = fSurfaceDrawContext->chooseAA(paint); GrQuadAAFlags aaFlags = (aa == GrAA::kYes) ? GrQuadAAFlags::kAll : GrQuadAAFlags::kNone; - this->drawImageQuad(image, src, &dst, nullptr, aa, aaFlags, nullptr, sampling, paint, - constraint); + this->drawImageQuad(image, src, &dst, nullptr, aaFlags, nullptr, sampling, paint, constraint); } void Device::drawViewLattice(GrSurfaceProxyView view, @@ -842,7 +850,8 @@ void Device::drawImageLattice(const SkImage* image, void Device::drawVertices(const SkVertices* vertices, sk_sp blender, - const SkPaint& paint) { + const SkPaint& paint, + bool skipColorXform) { ASSERT_SINGLE_OWNER GR_CREATE_TRACE_MARKER_CONTEXT("skgpu::v1::Device", "drawVertices", fContext.get()); SkASSERT(vertices); @@ -869,7 +878,8 @@ void Device::drawVertices(const SkVertices* vertices, std::move(grPaint), this->asMatrixProvider(), sk_ref_sp(const_cast(vertices)), - nullptr); + nullptr, + skipColorXform); } void Device::drawCustomMesh(SkCustomMesh customMesh, @@ -947,6 +957,148 @@ void Device::drawAtlas(const SkRSXform xform[], /////////////////////////////////////////////////////////////////////////////// +#if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG) +void Device::testingOnly_drawGlyphRunListWithSlug(SkCanvas* canvas, + const SkGlyphRunList& glyphRunList, + const SkPaint& paint) { + auto slug = this->convertGlyphRunListToSlug(glyphRunList, paint); + if (slug != nullptr) { + this->drawSlug(canvas, slug.get()); + } +} +#endif + +#if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_SERIALIZE) +void Device::testingOnly_drawGlyphRunListWithSerializedSlug(SkCanvas* canvas, + const SkGlyphRunList& glyphRunList, + const SkPaint& paint) { + // This is not a text blob draw. Handle using glyphRunList conversion. + if (glyphRunList.blob() == nullptr) { + auto slug = this->convertGlyphRunListToSlug(glyphRunList, paint); + if (slug != nullptr) { + this->drawSlug(canvas, slug.get()); + } + return; + } + auto srcSlug = GrSlug::ConvertBlob(canvas, *glyphRunList.blob(), glyphRunList.origin(), paint); + + // There is nothing to draw. + if (srcSlug == nullptr) { + return; + } + + auto dstSlugData = srcSlug->serialize(); + + auto dstSlug = GrSlug::Deserialize(dstSlugData->data(), dstSlugData->size()); + SkASSERT(dstSlug != nullptr); + if (dstSlug != nullptr) { + this->drawSlug(canvas, dstSlug.get()); + } +} +#endif + +// This testing method draws a blob by analyzing it to create strike cache +// differences and then serializing the Blob to a Slug. This creates a hard +// break between the original glyph data, and the proxied glyph data - and +// closely mimics how Chrome draws text. +#if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_STRIKE_SERIALIZE) +namespace { +class DiscardableManager : public SkStrikeServer::DiscardableHandleManager, + public SkStrikeClient::DiscardableHandleManager { +public: + DiscardableManager() { sk_bzero(&fCacheMissCount, sizeof(fCacheMissCount)); } + ~DiscardableManager() override = default; + + // Server implementation. + SkDiscardableHandleId createHandle() override SK_EXCLUDES(fLock) { + SkAutoMutexExclusive l(fLock); + + // Handles starts as locked. + fLockedHandles.add(++fNextHandleId); + return fNextHandleId; + } + bool lockHandle(SkDiscardableHandleId id) override SK_EXCLUDES(fLock) { + SkAutoMutexExclusive l(fLock); + + fLockedHandles.add(id); + return true; + } + + // Client implementation. + bool deleteHandle(SkDiscardableHandleId id) override SK_EXCLUDES(fLock) { + return false; + } + + void notifyCacheMiss( + SkStrikeClient::CacheMissType type, int fontSize) override SK_EXCLUDES(fLock) { + SkAutoMutexExclusive l(fLock); + + fCacheMissCount[type]++; + } + bool isHandleDeleted(SkDiscardableHandleId id) override SK_EXCLUDES(fLock) { + return false; + } + +private: + // The tests below run in parallel on multiple threads and use the same + // process global SkStrikeCache. So the implementation needs to be + // thread-safe. + mutable SkMutex fLock; + + SkDiscardableHandleId fNextHandleId SK_GUARDED_BY(fLock) = 0u; + SkTHashSet fLockedHandles SK_GUARDED_BY(fLock); + int fCacheMissCount[SkStrikeClient::CacheMissType::kLast + 1u] SK_GUARDED_BY(fLock); +}; +} // namespace + +void Device::testingOnly_drawGlyphRunListWithSerializedSlugAndStrike( + SkCanvas* canvas, const SkGlyphRunList& glyphRunList, const SkPaint& paint) { + if (glyphRunList.blob() == nullptr) { + fSurfaceDrawContext->drawGlyphRunList( + canvas, this->clip(), this->asMatrixProvider(), glyphRunList, paint); + return; + } + + sk_sp discardableManager = sk_make_sp(); + SkStrikeServer server{discardableManager.get()}; + + SkStrikeClient client{discardableManager, false}; + SkSurfaceProps surfaceProps; + if (!canvas->getProps(&surfaceProps)) { + SK_ABORT("Ahhhhh! can't get the surface props."); + } + sk_sp colorSpace = canvas->imageInfo().refColorSpace(); + bool useDFT = this->recordingContext()->asDirectContext()->supportsDistanceFieldText(); + auto analysisCanvas = server.makeAnalysisCanvas( + canvas->getBaseLayerSize().width(), canvas->getBaseLayerSize().width(), + surfaceProps, + std::move(colorSpace), + useDFT + ); + + analysisCanvas->setMatrix(canvas->getTotalMatrix()); + auto srcSlug = GrSlug::ConvertBlob(analysisCanvas.get(), + *glyphRunList.blob(), + glyphRunList.origin(), + paint); + + if (srcSlug == nullptr) { + return; + } + + std::vector serverStrikeData; + server.writeStrikeData(&serverStrikeData); + + if (!client.readStrikeData(serverStrikeData.data(), serverStrikeData.size())) { + SK_ABORT("Problem reading the strike cache updates"); + } + + auto dstSlugData = srcSlug->serialize(); + auto dstSlug = client.deserializeSlug(dstSlugData->data(), dstSlugData->size()); + this->drawSlug(canvas, dstSlug.get()); +} +#endif + void Device::onDrawGlyphRunList(SkCanvas* canvas, const SkGlyphRunList& glyphRunList, const SkPaint& paint) { @@ -954,16 +1106,16 @@ void Device::onDrawGlyphRunList(SkCanvas* canvas, GR_CREATE_TRACE_MARKER_CONTEXT("skgpu::v1::Device", "drawGlyphRunList", fContext.get()); SkASSERT(!glyphRunList.hasRSXForm()); - #if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG) - auto slug = this->convertGlyphRunListToSlug(glyphRunList, paint); - if (slug != nullptr) { - this->drawSlug(slug.get()); - } - return; - #endif - +#if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG) + this->testingOnly_drawGlyphRunListWithSlug(canvas, glyphRunList, paint); +#elif defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_SERIALIZE) + this->testingOnly_drawGlyphRunListWithSerializedSlug(canvas, glyphRunList, paint); +#elif defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_STRIKE_SERIALIZE) + this->testingOnly_drawGlyphRunListWithSerializedSlugAndStrike(canvas, glyphRunList, paint); +#else fSurfaceDrawContext->drawGlyphRunList( - canvas, this->clip(), this->asMatrixProvider(), glyphRunList, paint); + canvas, this->clip(), this->asMatrixProvider(), glyphRunList, paint); +#endif } /////////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/gpu/v1/Device_drawTexture.cpp b/third_party/skia/src/gpu/ganesh/v1/Device_drawTexture.cpp similarity index 93% rename from third_party/skia/src/gpu/v1/Device_drawTexture.cpp rename to third_party/skia/src/gpu/ganesh/v1/Device_drawTexture.cpp index 837638e502a7..69e5be2b88d7 100644 --- a/third_party/skia/src/gpu/v1/Device_drawTexture.cpp +++ b/third_party/skia/src/gpu/ganesh/v1/Device_drawTexture.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/v1/Device_v1.h" +#include "src/gpu/ganesh/v1/Device_v1.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" @@ -14,19 +14,19 @@ #include "src/core/SkImagePriv.h" #include "src/core/SkMaskFilterBase.h" #include "src/core/SkSpecialImage.h" -#include "src/gpu/GrBlurUtils.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrOpsTypes.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrBicubicEffect.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/geometry/GrRect.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrBlurUtils.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrOpsTypes.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrBicubicEffect.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/geometry/GrRect.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_Gpu.h" @@ -102,10 +102,14 @@ bool can_ignore_linear_filtering_subset(const SkRect& srcSubset, static const int kBmpSmallTileSize = 1 << 10; -inline int get_tile_count(const SkIRect& srcRect, int tileSize) { +inline size_t get_tile_count(const SkIRect& srcRect, int tileSize) { int tilesX = (srcRect.fRight / tileSize) - (srcRect.fLeft / tileSize) + 1; int tilesY = (srcRect.fBottom / tileSize) - (srcRect.fTop / tileSize) + 1; - return tilesX * tilesY; + // We calculate expected tile count before we read the bitmap's pixels, so hypothetically we can + // have lazy images with excessive dimensions that would cause (tilesX*tilesY) to overflow int. + // In these situations we also later fail to allocate a bitmap to store the lazy image, so there + // isn't really a performance concern around one image turning into millions of tiles. + return SkSafeMath::Mul(tilesX, tilesY); } int determine_tile_size(const SkIRect& src, int maxTileSize) { @@ -321,8 +325,8 @@ ImageDrawMode optimize_sample_area(const SkISize& image, const SkRect* origSrcRe */ bool can_use_draw_texture(const SkPaint& paint, bool useCubicResampler, SkMipmapMode mm) { return (!paint.getColorFilter() && !paint.getShader() && !paint.getMaskFilter() && - !paint.getImageFilter() && !paint.getBlender() && !paint.isDither() && - !useCubicResampler && mm == SkMipmapMode::kNone); + !paint.getImageFilter() && !paint.getBlender() && !useCubicResampler && + mm == SkMipmapMode::kNone); } SkPMColor4f texture_color(SkColor4f paintColor, float entryAlpha, GrColorType srcColorType, @@ -345,7 +349,6 @@ void draw_texture(skgpu::v1::SurfaceDrawContext* sdc, const SkRect& srcRect, const SkRect& dstRect, const SkPoint dstClip[4], - GrAA aa, GrQuadAAFlags aaFlags, SkCanvas::SrcRectConstraint constraint, GrSurfaceProxyView view, @@ -361,7 +364,7 @@ void draw_texture(skgpu::v1::SurfaceDrawContext* sdc, if (constraint != SkCanvas::kStrict_SrcRectConstraint && !proxy->isFunctionallyExact()) { // Conservative estimate of how much a coord could be outset from src rect: // 1/2 pixel for AA and 1/2 pixel for linear filtering - float buffer = 0.5f * (aa == GrAA::kYes) + + float buffer = 0.5f * (aaFlags != GrQuadAAFlags::kNone) + 0.5f * (filter == GrSamplerState::Filter::kLinear); SkRect safeBounds = proxy->getBoundsRect(); safeBounds.inset(buffer, buffer); @@ -386,7 +389,6 @@ void draw_texture(skgpu::v1::SurfaceDrawContext* sdc, color, srcQuad, dstClip, - aa, aaFlags, constraint == SkCanvas::kStrict_SrcRectConstraint ? &srcRect : nullptr, ctm, @@ -401,7 +403,6 @@ void draw_texture(skgpu::v1::SurfaceDrawContext* sdc, color, srcRect, dstRect, - aa, aaFlags, constraint, ctm, @@ -420,7 +421,6 @@ void draw_image(GrRecordingContext* rContext, const SkRect& dst, const SkPoint dstClip[4], const SkMatrix& srcToDst, - GrAA aa, GrQuadAAFlags aaFlags, SkCanvas::SrcRectConstraint constraint, SkSamplingOptions sampling, @@ -445,7 +445,6 @@ void draw_image(GrRecordingContext* rContext, src, dst, dstClip, - aa, aaFlags, constraint, std::move(view), @@ -517,8 +516,8 @@ void draw_image(GrRecordingContext* rContext, if (!shaderFP) { return; } - fp = GrBlendFragmentProcessor::Make( - std::move(fp), std::move(shaderFP), SkBlendMode::kDstIn); + fp = GrBlendFragmentProcessor::Make(std::move(fp), + std::move(shaderFP)); } else { // Multiply the input (paint) color by the texture (alpha) fp = GrFragmentProcessor::MulInputByChildAlpha(std::move(fp)); @@ -541,10 +540,10 @@ void draw_image(GrRecordingContext* rContext, GrMapRectPoints(dst, src, dstClip, srcClipPoints, 4); srcClip = srcClipPoints; } - sdc->fillQuadWithEdgeAA(clip, std::move(grPaint), aa, aaFlags, ctm, dstClip, srcClip); + sdc->fillQuadWithEdgeAA(clip, std::move(grPaint), aaFlags, ctm, dstClip, srcClip); } else { // Provide explicit texture coords when possible, otherwise rely on texture matrix - sdc->fillRectWithEdgeAA(clip, std::move(grPaint), aa, aaFlags, ctm, dst, + sdc->fillRectWithEdgeAA(clip, std::move(grPaint), aaFlags, ctm, dst, canUseTextureCoordsAsLocalCoords ? &src : nullptr); } } else { @@ -576,7 +575,7 @@ void draw_tiled_bitmap(GrRecordingContext* rContext, const SkRect& srcRect, const SkIRect& clippedSrcIRect, const SkPaint& paint, - GrAA aa, + GrQuadAAFlags origAAFlags, SkCanvas::SrcRectConstraint constraint, SkSamplingOptions sampling, SkTileMode tileMode) { @@ -632,20 +631,18 @@ void draw_tiled_bitmap(GrRecordingContext* rContext, image->height() <= rContext->priv().caps()->maxTextureSize()); GrQuadAAFlags aaFlags = GrQuadAAFlags::kNone; - if (aa == GrAA::kYes) { - // If the entire bitmap was anti-aliased, turn on AA for the outside tile edges. - if (tileR.fLeft <= srcRect.fLeft) { - aaFlags |= GrQuadAAFlags::kLeft; - } - if (tileR.fRight >= srcRect.fRight) { - aaFlags |= GrQuadAAFlags::kRight; - } - if (tileR.fTop <= srcRect.fTop) { - aaFlags |= GrQuadAAFlags::kTop; - } - if (tileR.fBottom >= srcRect.fBottom) { - aaFlags |= GrQuadAAFlags::kBottom; - } + // Preserve the original edge AA flags for the exterior tile edges. + if (tileR.fLeft <= srcRect.fLeft && (origAAFlags & GrQuadAAFlags::kLeft)) { + aaFlags |= GrQuadAAFlags::kLeft; + } + if (tileR.fRight >= srcRect.fRight && (origAAFlags & GrQuadAAFlags::kRight)) { + aaFlags |= GrQuadAAFlags::kRight; + } + if (tileR.fTop <= srcRect.fTop && (origAAFlags & GrQuadAAFlags::kTop)) { + aaFlags |= GrQuadAAFlags::kTop; + } + if (tileR.fBottom >= srcRect.fBottom && (origAAFlags & GrQuadAAFlags::kBottom)) { + aaFlags |= GrQuadAAFlags::kBottom; } // now offset it to make it "local" to our tmp bitmap @@ -662,7 +659,6 @@ void draw_tiled_bitmap(GrRecordingContext* rContext, rectToDraw, nullptr, offsetSrcToDst, - aa, aaFlags, constraint, sampling, @@ -681,12 +677,10 @@ SkFilterMode downgrade_to_filter(const SkSamplingOptions& sampling) { return filter; } -bool can_disable_mipmap(const SkMatrix& viewM, - const SkMatrix& localM, - bool sharpenMipmappedTextures) { +bool can_disable_mipmap(const SkMatrix& viewM, const SkMatrix& localM) { SkMatrix matrix; matrix.setConcat(viewM, localM); - // With sharp mips, we bias lookups by -0.5. That means our final LOD is >= 0 until + // We bias mipmap lookups by -0.5. That means our final LOD is >= 0 until // the computed LOD is >= 0.5. At what scale factor does a texture get an LOD of // 0.5? // @@ -695,8 +689,7 @@ bool can_disable_mipmap(const SkMatrix& viewM, // 2^0.5 = 1/s // 1/2^0.5 = s // 2^0.5/2 = s - SkScalar mipScale = sharpenMipmappedTextures ? SK_ScalarRoot2Over2 : SK_Scalar1; - return matrix.getMinScale() >= mipScale; + return matrix.getMinScale() >= SK_ScalarRoot2Over2; } } // anonymous namespace @@ -742,7 +735,6 @@ void Device::drawSpecial(SkSpecialImage* special, dst, nullptr, srcToDst, - aa, aaFlags, SkCanvas::kStrict_SrcRectConstraint, sampling); @@ -752,7 +744,6 @@ void Device::drawImageQuad(const SkImage* image, const SkRect* srcRect, const SkRect* dstRect, const SkPoint dstClip[4], - GrAA aa, GrQuadAAFlags aaFlags, const SkMatrix* preViewMatrix, const SkSamplingOptions& origSampling, @@ -779,8 +770,7 @@ void Device::drawImageQuad(const SkImage* image, const SkMatrix& ctm(matrixProvider.localToDevice()); SkSamplingOptions sampling = origSampling; - bool sharpenMM = fContext->priv().options().fSharpenMipmappedTextures; - if (sampling.mipmap != SkMipmapMode::kNone && can_disable_mipmap(ctm, srcToDst, sharpenMM)) { + if (sampling.mipmap != SkMipmapMode::kNone && can_disable_mipmap(ctm, srcToDst)) { sampling = SkSamplingOptions(sampling.filter); } auto clip = this->clip(); @@ -822,7 +812,7 @@ void Device::drawImageQuad(const SkImage* image, src, clippedSubset, paint, - aa, + aaFlags, constraint, sampling, tileMode); @@ -841,7 +831,6 @@ void Device::drawImageQuad(const SkImage* image, dst, dstClip, srcToDst, - aa, aaFlags, constraint, sampling); @@ -866,10 +855,9 @@ void Device::drawEdgeAAImageSet(const SkCanvas::ImageSetEntry set[], int count, auto paintAlpha = paint.getAlphaf(); entryPaint.writable()->setAlphaf(paintAlpha * set[i].fAlpha); } - // Always send GrAA::kYes to preserve seaming across tiling in MSAA this->drawImageQuad( set[i].fImage.get(), &set[i].fSrcRect, &set[i].fDstRect, - set[i].fHasClip ? dstClips + dstClipIndex : nullptr, GrAA::kYes, + set[i].fHasClip ? dstClips + dstClipIndex : nullptr, SkToGrQuadAAFlags(set[i].fAAFlags), set[i].fMatrixIndex < 0 ? nullptr : preViewMatrices + set[i].fMatrixIndex, sampling, *entryPaint, constraint); @@ -899,7 +887,6 @@ void Device::drawEdgeAAImageSet(const SkCanvas::ImageSetEntry set[], int count, filter, GrSamplerState::MipmapMode::kNone, mode, - GrAA::kYes, constraint, this->localToDevice(), std::move(textureXform)); @@ -948,7 +935,7 @@ void Device::drawEdgeAAImageSet(const SkCanvas::ImageSetEntry set[], int count, entryPaint.writable()->setAlphaf(paintAlpha * set[i].fAlpha); } this->drawImageQuad( - image, &set[i].fSrcRect, &set[i].fDstRect, clip, GrAA::kYes, + image, &set[i].fSrcRect, &set[i].fDstRect, clip, SkToGrQuadAAFlags(set[i].fAAFlags), set[i].fMatrixIndex < 0 ? nullptr : preViewMatrices + set[i].fMatrixIndex, sampling, *entryPaint, constraint); diff --git a/third_party/skia/src/gpu/v1/Device_v1.h b/third_party/skia/src/gpu/ganesh/v1/Device_v1.h similarity index 86% rename from third_party/skia/src/gpu/v1/Device_v1.h rename to third_party/skia/src/gpu/ganesh/v1/Device_v1.h index ae56d777d114..649de4e38a10 100644 --- a/third_party/skia/src/gpu/v1/Device_v1.h +++ b/third_party/skia/src/gpu/ganesh/v1/Device_v1.h @@ -13,10 +13,10 @@ #include "include/core/SkRegion.h" #include "include/core/SkSurface.h" #include "include/gpu/GrTypes.h" -#include "src/gpu/BaseDevice.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/v1/ClipStack.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/BaseDevice.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/v1/ClipStack.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" class SkSpecialImage; class SkSurface; @@ -116,7 +116,7 @@ class Device final : public BaseDevice { bool useCenter, const SkPaint& paint) override; void drawPath(const SkPath& path, const SkPaint& paint, bool pathIsMutable) override; - void drawVertices(const SkVertices*, sk_sp, const SkPaint&) override; + void drawVertices(const SkVertices*, sk_sp, const SkPaint&, bool) override; void drawCustomMesh(SkCustomMesh, sk_sp, const SkPaint&) override; void drawShadow(const SkPath&, const SkDrawShadowRec&) override; void drawAtlas(const SkRSXform[], const SkRect[], const SkColor[], int count, sk_sp, @@ -161,7 +161,7 @@ class Device final : public BaseDevice { const SkGlyphRunList& glyphRunList, const SkPaint& paint) override; - void drawSlug(SkCanvas*, GrSlug* slug) override; + void drawSlug(SkCanvas*, const GrSlug* slug) override; void onClipRect(const SkRect& rect, SkClipOp op, bool aa) override { SkASSERT(op == SkClipOp::kIntersect || op == SkClipOp::kDifference); @@ -210,11 +210,32 @@ class Device final : public BaseDevice { bool forceConservativeRasterClip() const override { return true; } const GrClip* clip() const { return &fClip; } +#if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG) + void testingOnly_drawGlyphRunListWithSlug(SkCanvas* canvas, + const SkGlyphRunList& glyphRunList, + const SkPaint& paint); + + void testingOnly_drawGlyphRunListWithSlug(SkCanvas* canvas, + const SkGlyphRunList& glyphRunList, + const SkPaint& paint); +#endif + +#if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_SERIALIZE) + void testingOnly_drawGlyphRunListWithSerializedSlug(SkCanvas* canvas, + const SkGlyphRunList& glyphRunList, + const SkPaint& paint); +#endif + +#if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_STRIKE_SERIALIZE) + void testingOnly_drawGlyphRunListWithSerializedSlugAndStrike(SkCanvas* canvas, + const SkGlyphRunList& glyphRunList, + const SkPaint& paint); +#endif // If not null, dstClip must be contained inside dst and will also respect the edge AA flags. // If 'preViewMatrix' is not null, final CTM will be this->ctm() * preViewMatrix. void drawImageQuad(const SkImage*, const SkRect* src, const SkRect* dst, - const SkPoint dstClip[4], GrAA aa, GrQuadAAFlags aaFlags, + const SkPoint dstClip[4], GrQuadAAFlags aaFlags, const SkMatrix* preViewMatrix, const SkSamplingOptions&, const SkPaint&, SkCanvas::SrcRectConstraint); diff --git a/third_party/skia/src/gpu/v1/PathRenderer.cpp b/third_party/skia/src/gpu/ganesh/v1/PathRenderer.cpp similarity index 91% rename from third_party/skia/src/gpu/v1/PathRenderer.cpp rename to third_party/skia/src/gpu/ganesh/v1/PathRenderer.cpp index c9a40ae2fec4..0c6d5eaca7f3 100644 --- a/third_party/skia/src/gpu/v1/PathRenderer.cpp +++ b/third_party/skia/src/gpu/ganesh/v1/PathRenderer.cpp @@ -5,17 +5,17 @@ * found in the LICENSE file. */ -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkDrawProcs.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrUserStencilSettings.h" -#include "src/gpu/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrUserStencilSettings.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" #ifdef SK_DEBUG -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #endif namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/v1/PathRenderer.h b/third_party/skia/src/gpu/ganesh/v1/PathRenderer.h similarity index 99% rename from third_party/skia/src/gpu/v1/PathRenderer.h rename to third_party/skia/src/gpu/ganesh/v1/PathRenderer.h index 4deb6f984602..a67001d63c1d 100644 --- a/third_party/skia/src/gpu/v1/PathRenderer.h +++ b/third_party/skia/src/gpu/ganesh/v1/PathRenderer.h @@ -9,8 +9,8 @@ #define PathRenderer_DEFINED #include "include/core/SkRefCnt.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkTArray.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" class GrCaps; class GrClip; diff --git a/third_party/skia/src/gpu/v1/PathRendererChain.cpp b/third_party/skia/src/gpu/ganesh/v1/PathRendererChain.cpp similarity index 83% rename from third_party/skia/src/gpu/v1/PathRendererChain.cpp rename to third_party/skia/src/gpu/ganesh/v1/PathRendererChain.cpp index e4d8d5f7ed5a..50b5a94e47b9 100644 --- a/third_party/skia/src/gpu/v1/PathRendererChain.cpp +++ b/third_party/skia/src/gpu/ganesh/v1/PathRendererChain.cpp @@ -6,25 +6,25 @@ */ -#include "src/gpu/v1/PathRendererChain.h" +#include "src/gpu/ganesh/v1/PathRendererChain.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/AAConvexPathRenderer.h" -#include "src/gpu/ops/AAHairLinePathRenderer.h" -#include "src/gpu/ops/AALinearizingConvexPathRenderer.h" -#include "src/gpu/ops/AtlasPathRenderer.h" -#include "src/gpu/ops/DashLinePathRenderer.h" -#include "src/gpu/ops/DefaultPathRenderer.h" -#include "src/gpu/ops/SmallPathRenderer.h" -#include "src/gpu/ops/TessellationPathRenderer.h" -#include "src/gpu/ops/TriangulatingPathRenderer.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/AAConvexPathRenderer.h" +#include "src/gpu/ganesh/ops/AAHairLinePathRenderer.h" +#include "src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.h" +#include "src/gpu/ganesh/ops/AtlasPathRenderer.h" +#include "src/gpu/ganesh/ops/DashLinePathRenderer.h" +#include "src/gpu/ganesh/ops/DefaultPathRenderer.h" +#include "src/gpu/ganesh/ops/SmallPathRenderer.h" +#include "src/gpu/ganesh/ops/TessellationPathRenderer.h" +#include "src/gpu/ganesh/ops/TriangulatingPathRenderer.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/v1/PathRendererChain.h b/third_party/skia/src/gpu/ganesh/v1/PathRendererChain.h similarity index 96% rename from third_party/skia/src/gpu/v1/PathRendererChain.h rename to third_party/skia/src/gpu/ganesh/v1/PathRendererChain.h index 2a23d4621999..95fc5b8bc853 100644 --- a/third_party/skia/src/gpu/v1/PathRendererChain.h +++ b/third_party/skia/src/gpu/ganesh/v1/PathRendererChain.h @@ -8,12 +8,12 @@ #ifndef PathRendererChain_DEFINED #define PathRendererChain_DEFINED -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" #include "include/core/SkTypes.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkNoncopyable.h" #include "include/private/SkTArray.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/v1/StencilClip.h b/third_party/skia/src/gpu/ganesh/v1/StencilClip.h similarity index 96% rename from third_party/skia/src/gpu/v1/StencilClip.h rename to third_party/skia/src/gpu/ganesh/v1/StencilClip.h index d0b1b88e4d61..6e766702d22e 100644 --- a/third_party/skia/src/gpu/v1/StencilClip.h +++ b/third_party/skia/src/gpu/ganesh/v1/StencilClip.h @@ -8,8 +8,8 @@ #ifndef StencilClip_DEFINED #define StencilClip_DEFINED -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrFixedClip.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrFixedClip.h" namespace skgpu::v1 { diff --git a/third_party/skia/src/gpu/v1/StencilMaskHelper.cpp b/third_party/skia/src/gpu/ganesh/v1/StencilMaskHelper.cpp similarity index 98% rename from third_party/skia/src/gpu/v1/StencilMaskHelper.cpp rename to third_party/skia/src/gpu/ganesh/v1/StencilMaskHelper.cpp index 8ebe3e0a8827..a57e27e7178c 100644 --- a/third_party/skia/src/gpu/v1/StencilMaskHelper.cpp +++ b/third_party/skia/src/gpu/ganesh/v1/StencilMaskHelper.cpp @@ -5,16 +5,16 @@ * found in the LICENSE file. */ -#include "src/gpu/v1/StencilMaskHelper.h" +#include "src/gpu/ganesh/v1/StencilMaskHelper.h" #include "include/core/SkMatrix.h" #include "include/core/SkPath.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/effects/GrDisableColorXP.h" -#include "src/gpu/geometry/GrShape.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/effects/GrDisableColorXP.h" +#include "src/gpu/ganesh/geometry/GrShape.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace { diff --git a/third_party/skia/src/gpu/v1/StencilMaskHelper.h b/third_party/skia/src/gpu/ganesh/v1/StencilMaskHelper.h similarity index 98% rename from third_party/skia/src/gpu/v1/StencilMaskHelper.h rename to third_party/skia/src/gpu/ganesh/v1/StencilMaskHelper.h index ee5dca6e18e3..ba019b1282d0 100644 --- a/third_party/skia/src/gpu/v1/StencilMaskHelper.h +++ b/third_party/skia/src/gpu/ganesh/v1/StencilMaskHelper.h @@ -8,7 +8,7 @@ #ifndef StencilMaskHelper_DEFINED #define StencilMaskHelper_DEFINED -#include "src/gpu/v1/StencilClip.h" +#include "src/gpu/ganesh/v1/StencilClip.h" class GrShape; class GrRecordingContext; diff --git a/third_party/skia/src/gpu/v1/SurfaceDrawContext.cpp b/third_party/skia/src/gpu/ganesh/v1/SurfaceDrawContext.cpp similarity index 95% rename from third_party/skia/src/gpu/v1/SurfaceDrawContext.cpp rename to third_party/skia/src/gpu/ganesh/v1/SurfaceDrawContext.cpp index 5bf6a3bb9cd8..3aa08183dbf3 100644 --- a/third_party/skia/src/gpu/v1/SurfaceDrawContext.cpp +++ b/third_party/skia/src/gpu/ganesh/v1/SurfaceDrawContext.cpp @@ -5,16 +5,17 @@ * found in the LICENSE file. */ -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkDrawable.h" #include "include/core/SkVertices.h" #include "include/gpu/GrBackendSemaphore.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" -#include "include/private/GrImageContext.h" #include "include/private/SkShadowFlags.h" #include "include/private/SkVx.h" +#include "include/private/gpu/ganesh/GrImageContext.h" #include "include/utils/SkShadowUtils.h" #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkConvertPixels.h" @@ -26,52 +27,52 @@ #include "src/core/SkMatrixPriv.h" #include "src/core/SkMatrixProvider.h" #include "src/core/SkRRectPriv.h" -#include "src/gpu/GrAppliedClip.h" -#include "src/gpu/GrAttachment.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/GrTracing.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrBicubicEffect.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" -#include "src/gpu/effects/GrDisableColorXP.h" -#include "src/gpu/effects/GrRRectEffect.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/geometry/GrQuadUtils.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/ClearOp.h" -#include "src/gpu/ops/DrawAtlasOp.h" -#include "src/gpu/ops/DrawCustomMeshOp.h" -#include "src/gpu/ops/DrawableOp.h" -#include "src/gpu/ops/FillRRectOp.h" -#include "src/gpu/ops/FillRectOp.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/ops/GrOp.h" -#include "src/gpu/ops/GrOvalOpFactory.h" -#include "src/gpu/ops/LatticeOp.h" -#include "src/gpu/ops/RegionOp.h" -#include "src/gpu/ops/ShadowRRectOp.h" -#include "src/gpu/ops/StrokeRectOp.h" -#include "src/gpu/ops/TextureOp.h" -#include "src/gpu/text/GrSDFTControl.h" -#include "src/gpu/text/GrTextBlobRedrawCoordinator.h" -#include "src/gpu/v1/PathRenderer.h" +#include "src/gpu/ganesh/GrAppliedClip.h" +#include "src/gpu/ganesh/GrAttachment.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/GrTracing.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrBicubicEffect.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrDisableColorXP.h" +#include "src/gpu/ganesh/effects/GrRRectEffect.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/geometry/GrQuadUtils.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/ClearOp.h" +#include "src/gpu/ganesh/ops/DrawAtlasOp.h" +#include "src/gpu/ganesh/ops/DrawCustomMeshOp.h" +#include "src/gpu/ganesh/ops/DrawableOp.h" +#include "src/gpu/ganesh/ops/FillRRectOp.h" +#include "src/gpu/ganesh/ops/FillRectOp.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/ops/GrOp.h" +#include "src/gpu/ganesh/ops/GrOvalOpFactory.h" +#include "src/gpu/ganesh/ops/LatticeOp.h" +#include "src/gpu/ganesh/ops/RegionOp.h" +#include "src/gpu/ganesh/ops/ShadowRRectOp.h" +#include "src/gpu/ganesh/ops/StrokeRectOp.h" +#include "src/gpu/ganesh/ops/TextureOp.h" +#include "src/gpu/ganesh/text/GrSDFTControl.h" +#include "src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h" +#include "src/gpu/ganesh/v1/PathRenderer.h" #define ASSERT_OWNED_RESOURCE(R) SkASSERT(!(R) || (R)->getContext() == this->drawingManager()->getContext()) #define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(this->singleOwner()) @@ -269,7 +270,7 @@ std::unique_ptr SurfaceDrawContext::MakeFromBackendTexture( int sampleCnt, GrSurfaceOrigin origin, const SkSurfaceProps& surfaceProps, - sk_sp releaseHelper) { + sk_sp releaseHelper) { SkASSERT(sampleCnt > 0); sk_sp proxy(rContext->priv().proxyProvider()->wrapRenderableBackendTexture( tex, sampleCnt, kBorrow_GrWrapOwnership, GrWrapCacheable::kNo, @@ -416,7 +417,9 @@ enum class SurfaceDrawContext::QuadOptimization { }; SurfaceDrawContext::QuadOptimization SurfaceDrawContext::attemptQuadOptimization( - const GrClip* clip, const GrUserStencilSettings* stencilSettings, GrAA* aa, DrawQuad* quad, + const GrClip* clip, + const GrUserStencilSettings* stencilSettings, + DrawQuad* quad, GrPaint* paint) { // Optimization requirements: // 1. kDiscard applies when clip bounds and quad bounds do not intersect @@ -454,17 +457,18 @@ SurfaceDrawContext::QuadOptimization SurfaceDrawContext::attemptQuadOptimization return QuadOptimization::kCropped; } + GrAA drawUsesAA{quad->fEdgeFlags != GrQuadAAFlags::kNone}; auto conservativeCrop = [&]() { static constexpr int kLargeDrawLimit = 15000; // Crop the quad to the render target. This doesn't change the visual results of drawing but // is meant to help numerical stability for excessively large draws. if (drawBounds.width() > kLargeDrawLimit || drawBounds.height() > kLargeDrawLimit) { - GrQuadUtils::CropToRect(rtRect, *aa, quad, /* compute local */ !constColor); + GrQuadUtils::CropToRect(rtRect, drawUsesAA, quad, /* compute local */ !constColor); } }; bool simpleColor = !stencilSettings && constColor; - GrClip::PreClipResult result = clip ? clip->preApply(drawBounds, *aa) + GrClip::PreClipResult result = clip ? clip->preApply(drawBounds, drawUsesAA) : GrClip::PreClipResult(GrClip::Effect::kUnclipped); switch(result.fEffect) { case GrClip::Effect::kClippedOut: @@ -475,12 +479,15 @@ SurfaceDrawContext::QuadOptimization SurfaceDrawContext::attemptQuadOptimization return QuadOptimization::kClipApplied; } else { // Update result to store the render target bounds in order and then fall - // through to attempt the draw->native clear optimization - result = GrClip::PreClipResult(SkRRect::MakeRect(rtRect), *aa); + // through to attempt the draw->native clear optimization. Pick an AA value such + // that any geometric clipping doesn't need to change aa or edge flags (since we + // know this is on pixel boundaries, it will draw the same regardless). + // See skbug.com/13114 for more details. + result = GrClip::PreClipResult(SkRRect::MakeRect(rtRect), drawUsesAA); } break; case GrClip::Effect::kClipped: - if (!result.fIsRRect || (stencilSettings && result.fAA != *aa) || + if (!result.fIsRRect || (stencilSettings && result.fAA != drawUsesAA) || (!result.fRRect.isRect() && !simpleColor)) { // The clip and draw state are too complicated to try and reduce conservativeCrop(); @@ -528,18 +535,6 @@ SurfaceDrawContext::QuadOptimization SurfaceDrawContext::attemptQuadOptimization } } - // else the draw and clip were combined so just update the AA to reflect combination - if (*aa == GrAA::kNo && result.fAA == GrAA::kYes && - quad->fEdgeFlags != GrQuadAAFlags::kNone) { - // The clip was anti-aliased and now the draw needs to be upgraded to AA to - // properly reflect the smooth edge of the clip. - *aa = GrAA::kYes; - } - // We intentionally do not downgrade AA here because we don't know if we need to - // preserve MSAA (see GrQuadAAFlags docs). But later in the pipeline, the ops can - // use GrResolveAATypeForQuad() to turn off coverage AA when all flags are off. - // deviceQuad is exactly the intersection of original quad and clip, so it can be - // drawn with no clip (submitted by caller) return QuadOptimization::kClipApplied; } } else { @@ -566,7 +561,6 @@ SurfaceDrawContext::QuadOptimization SurfaceDrawContext::attemptQuadOptimization void SurfaceDrawContext::drawFilledQuad(const GrClip* clip, GrPaint&& paint, - GrAA aa, DrawQuad* quad, const GrUserStencilSettings* ss) { ASSERT_SINGLE_OWNER @@ -576,10 +570,12 @@ void SurfaceDrawContext::drawFilledQuad(const GrClip* clip, AutoCheckFlush acf(this->drawingManager()); - QuadOptimization opt = this->attemptQuadOptimization(clip, ss, &aa, quad, &paint); + QuadOptimization opt = this->attemptQuadOptimization(clip, ss, quad, &paint); if (opt >= QuadOptimization::kClipApplied) { // These optimizations require caller to add an op themselves const GrClip* finalClip = opt == QuadOptimization::kClipApplied ? nullptr : clip; + // The quad being drawn requires AA if any of its edges requires AA + GrAA aa{quad->fEdgeFlags != GrQuadAAFlags::kNone}; GrAAType aaType; if (ss) { aaType = (aa == GrAA::kYes) ? GrAAType::kMSAA : GrAAType::kNone; @@ -606,13 +602,14 @@ void SurfaceDrawContext::drawTexture(const GrClip* clip, const SkPMColor4f& color, const SkRect& srcRect, const SkRect& dstRect, - GrAA aa, GrQuadAAFlags edgeAA, SkCanvas::SrcRectConstraint constraint, const SkMatrix& viewMatrix, sk_sp colorSpaceXform) { // If we are using dmsaa then go through FillRRectOp (via fillRectToRect). - if ((this->alwaysAntialias() || this->caps()->reducedShaderMode()) && aa == GrAA::kYes) { + if ((this->alwaysAntialias() || this->caps()->reducedShaderMode()) && + edgeAA != GrQuadAAFlags::kNone) { + GrPaint paint; paint.setColor4f(color); std::unique_ptr fp; @@ -626,7 +623,7 @@ void SurfaceDrawContext::drawTexture(const GrClip* clip, if (colorSpaceXform) { fp = GrColorSpaceXformEffect::Make(std::move(fp), std::move(colorSpaceXform)); } - fp = GrBlendFragmentProcessor::Make(std::move(fp), nullptr, SkBlendMode::kModulate); + fp = GrBlendFragmentProcessor::Make(std::move(fp), nullptr); paint.setColorFragmentProcessor(std::move(fp)); if (blendMode != SkBlendMode::kSrcOver) { paint.setXPFactory(SkBlendMode_AsXPFactory(blendMode)); @@ -640,7 +637,7 @@ void SurfaceDrawContext::drawTexture(const GrClip* clip, DrawQuad quad{GrQuad::MakeFromRect(dstRect, viewMatrix), GrQuad(srcRect), edgeAA}; this->drawTexturedQuad(clip, std::move(view), srcAlphaType, std::move(colorSpaceXform), filter, - mm, color, blendMode, aa, &quad, subset); + mm, color, blendMode, &quad, subset); } void SurfaceDrawContext::drawTexturedQuad(const GrClip* clip, @@ -651,7 +648,6 @@ void SurfaceDrawContext::drawTexturedQuad(const GrClip* clip, GrSamplerState::MipmapMode mm, const SkPMColor4f& color, SkBlendMode blendMode, - GrAA aa, DrawQuad* quad, const SkRect* subset) { ASSERT_SINGLE_OWNER @@ -664,14 +660,14 @@ void SurfaceDrawContext::drawTexturedQuad(const GrClip* clip, // Functionally this is very similar to drawFilledQuad except that there's no constColor to // enable the kSubmitted optimizations, no stencil settings support, and its a TextureOp. - QuadOptimization opt = this->attemptQuadOptimization(clip, nullptr/*stencil*/, &aa, quad, + QuadOptimization opt = this->attemptQuadOptimization(clip, nullptr/*stencil*/, quad, nullptr/*paint*/); SkASSERT(opt != QuadOptimization::kSubmitted); if (opt != QuadOptimization::kDiscarded) { - // And the texture op if not discarded + // Add the texture op if not discarded const GrClip* finalClip = opt == QuadOptimization::kClipApplied ? nullptr : clip; - GrAAType aaType = this->chooseAAType(aa); + GrAAType aaType = this->chooseAAType(GrAA{quad->fEdgeFlags != GrQuadAAFlags::kNone}); auto clampType = GrColorTypeClampType(this->colorInfo().colorType()); auto saturate = clampType == GrClampType::kManual ? TextureOp::Saturate::kYes : TextureOp::Saturate::kNo; @@ -752,7 +748,7 @@ void SurfaceDrawContext::fillRectToRect(const GrClip* clip, aa == GrAA::kYes) { // If aa is kNo when using dmsaa, the rect is axis aligned. Don't use // FillRRectOp because it might require dual source blending. // http://skbug.com/11756 - QuadOptimization opt = this->attemptQuadOptimization(clip, nullptr/*stencil*/, &aa, &quad, + QuadOptimization opt = this->attemptQuadOptimization(clip, nullptr/*stencil*/, &quad, &paint); if (opt < QuadOptimization::kClipApplied) { // The optimization was completely handled inside attempt(). @@ -790,16 +786,15 @@ void SurfaceDrawContext::fillRectToRect(const GrClip* clip, } assert_alive(paint); - this->drawFilledQuad(clip, std::move(paint), aa, &quad); + this->drawFilledQuad(clip, std::move(paint), &quad); } void SurfaceDrawContext::drawQuadSet(const GrClip* clip, GrPaint&& paint, - GrAA aa, const SkMatrix& viewMatrix, const GrQuadSetEntry quads[], int cnt) { - GrAAType aaType = this->chooseAAType(aa); + GrAAType aaType = this->chooseAAType(GrAA::kYes); FillRectOp::AddFillRectOps(this, clip, fContext, std::move(paint), aaType, viewMatrix, quads, cnt); @@ -912,7 +907,6 @@ void SurfaceDrawContext::drawTextureSet(const GrClip* clip, GrSamplerState::Filter filter, GrSamplerState::MipmapMode mm, SkBlendMode mode, - GrAA aa, SkCanvas::SrcRectConstraint constraint, const SkMatrix& viewMatrix, sk_sp texXform) { @@ -924,7 +918,7 @@ void SurfaceDrawContext::drawTextureSet(const GrClip* clip, // Create the minimum number of GrTextureOps needed to draw this set. Individual // GrTextureOps can rebind the texture between draws thus avoiding GrPaint (re)creation. AutoCheckFlush acf(this->drawingManager()); - GrAAType aaType = this->chooseAAType(aa); + GrAAType aaType = this->chooseAAType(GrAA::kYes); auto clampType = GrColorTypeClampType(this->colorInfo().colorType()); auto saturate = clampType == GrClampType::kManual ? TextureOp::Saturate::kYes : TextureOp::Saturate::kNo; @@ -936,7 +930,8 @@ void SurfaceDrawContext::drawVertices(const GrClip* clip, GrPaint&& paint, const SkMatrixProvider& matrixProvider, sk_sp vertices, - GrPrimitiveType* overridePrimType) { + GrPrimitiveType* overridePrimType, + bool skipColorXform) { ASSERT_SINGLE_OWNER RETURN_IF_ABANDONED SkDEBUGCODE(this->validate();) @@ -945,6 +940,7 @@ void SurfaceDrawContext::drawVertices(const GrClip* clip, AutoCheckFlush acf(this->drawingManager()); SkASSERT(vertices); + auto xform = skipColorXform ? nullptr : this->colorInfo().refColorSpaceXformFromSRGB(); GrAAType aaType = fCanUseDynamicMSAA ? GrAAType::kMSAA : this->chooseAAType(GrAA::kNo); GrOp::Owner op = DrawCustomMeshOp::Make(fContext, std::move(paint), @@ -952,7 +948,7 @@ void SurfaceDrawContext::drawVertices(const GrClip* clip, overridePrimType, matrixProvider, aaType, - this->colorInfo().refColorSpaceXformFromSRGB()); + std::move(xform)); this->addDrawOp(clip, std::move(op)); } @@ -963,7 +959,7 @@ void SurfaceDrawContext::drawCustomMesh(const GrClip* clip, ASSERT_SINGLE_OWNER RETURN_IF_ABANDONED SkDEBUGCODE(this->validate();) - GR_CREATE_TRACE_MARKER_CONTEXT("SurfaceDrawContext", "drawVertices", fContext); + GR_CREATE_TRACE_MARKER_CONTEXT("SurfaceDrawContext", "drawCustomMesh", fContext); AutoCheckFlush acf(this->drawingManager()); @@ -1181,7 +1177,10 @@ bool SurfaceDrawContext::drawFastShadow(const GrClip* clip, ambientRRect = SkRRect::MakeRectXY(outsetRect, outsetRad, outsetRad); } - GrColor ambientColor = SkColorToPremulGrColor(rec.fAmbientColor); + // The ShadowRRectOp still uses 8888 colors, so it might get clamped if the shadow color + // does not fit in bytes after being transformed to the destination color space. This can + // happen if the destination color space is smaller than sRGB, which is highly unlikely. + GrColor ambientColor = SkColorToPMColor4f(rec.fAmbientColor, colorInfo()).toBytes_RGBA(); if (transparent) { // set a large inset to force a fill devSpaceInsetWidth = ambientRRect.width(); @@ -1290,8 +1289,10 @@ bool SurfaceDrawContext::drawFastShadow(const GrClip* clip, spotShadowRRect = SkRRect::MakeRectXY(outsetRect, outsetRad, outsetRad); } - GrColor spotColor = SkColorToPremulGrColor(rec.fSpotColor); - + // The ShadowRRectOp still uses 8888 colors, so it might get clamped if the shadow color + // does not fit in bytes after being transformed to the destination color space. This can + // happen if the destination color space is smaller than sRGB, which is highly unlikely. + GrColor spotColor = SkColorToPMColor4f(rec.fSpotColor, colorInfo()).toBytes_RGBA(); GrOp::Owner op = ShadowRRectOp::Make(fContext, spotColor, viewMatrix, @@ -1722,7 +1723,7 @@ void SurfaceDrawContext::drawStrokedLine(const GrClip* clip, GrQuadAAFlags edgeAA = (aa == GrAA::kYes) ? GrQuadAAFlags::kAll : GrQuadAAFlags::kNone; assert_alive(paint); - this->fillQuadWithEdgeAA(clip, std::move(paint), aa, edgeAA, viewMatrix, corners, nullptr); + this->fillQuadWithEdgeAA(clip, std::move(paint), edgeAA, viewMatrix, corners, nullptr); } bool SurfaceDrawContext::drawSimpleShape(const GrClip* clip, diff --git a/third_party/skia/src/gpu/v1/SurfaceDrawContext_v1.h b/third_party/skia/src/gpu/ganesh/v1/SurfaceDrawContext_v1.h similarity index 95% rename from third_party/skia/src/gpu/v1/SurfaceDrawContext_v1.h rename to third_party/skia/src/gpu/ganesh/v1/SurfaceDrawContext_v1.h index 671905f2aef8..57ff74cfcd0e 100644 --- a/third_party/skia/src/gpu/v1/SurfaceDrawContext_v1.h +++ b/third_party/skia/src/gpu/ganesh/v1/SurfaceDrawContext_v1.h @@ -13,15 +13,15 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkSurface.h" #include "include/core/SkSurfaceProps.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkGlyphRunPainter.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/ops/OpsTask.h" -#include "src/gpu/v1/SurfaceFillContext_v1.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/ops/OpsTask.h" +#include "src/gpu/ganesh/v1/SurfaceFillContext_v1.h" class GrBackendSemaphore; class GrClip; @@ -126,7 +126,7 @@ class SurfaceDrawContext final : public SurfaceFillContext { int sampleCnt, GrSurfaceOrigin, const SkSurfaceProps&, - sk_sp releaseHelper); + sk_sp releaseHelper); SurfaceDrawContext(GrRecordingContext*, GrSurfaceProxyView readView, @@ -185,7 +185,7 @@ class SurfaceDrawContext final : public SurfaceFillContext { SkRect rect = SkRect::Make(bounds); DrawQuad quad{GrQuad::MakeFromRect(rect, SkMatrix::I()), GrQuad::MakeFromRect(rect, localMatrix), GrQuadAAFlags::kNone}; - this->drawFilledQuad(clip, std::move(paint), GrAA::kNo, &quad); + this->drawFilledQuad(clip, std::move(paint), &quad); } /** @@ -194,17 +194,17 @@ class SurfaceDrawContext final : public SurfaceFillContext { * This is a specialized version of fillQuadWithEdgeAA, but is kept separate since knowing * the geometry is a rectangle affords more optimizations. */ - void fillRectWithEdgeAA(const GrClip* clip, GrPaint&& paint, GrAA aa, GrQuadAAFlags edgeAA, + void fillRectWithEdgeAA(const GrClip* clip, GrPaint&& paint, GrQuadAAFlags edgeAA, const SkMatrix& viewMatrix, const SkRect& rect, const SkRect* optionalLocalRect = nullptr) { if (edgeAA == GrQuadAAFlags::kAll) { - this->fillRectToRect(clip, std::move(paint), aa, viewMatrix, rect, + this->fillRectToRect(clip, std::move(paint), GrAA::kYes, viewMatrix, rect, (optionalLocalRect) ? *optionalLocalRect : rect); return; } const SkRect& localRect = optionalLocalRect ? *optionalLocalRect : rect; DrawQuad quad{GrQuad::MakeFromRect(rect, viewMatrix), GrQuad(localRect), edgeAA}; - this->drawFilledQuad(clip, std::move(paint), aa, &quad); + this->drawFilledQuad(clip, std::move(paint), &quad); } /** @@ -219,17 +219,17 @@ class SurfaceDrawContext final : public SurfaceFillContext { * The last argument, 'optionalLocalQuad', can be null if no separate local coordinates are * necessary. */ - void fillQuadWithEdgeAA(const GrClip* clip, GrPaint&& paint, GrAA aa, GrQuadAAFlags edgeAA, + void fillQuadWithEdgeAA(const GrClip* clip, GrPaint&& paint, GrQuadAAFlags edgeAA, const SkMatrix& viewMatrix, const SkPoint points[4], const SkPoint optionalLocalPoints[4]) { const SkPoint* localPoints = optionalLocalPoints ? optionalLocalPoints : points; DrawQuad quad{GrQuad::MakeFromSkQuad(points, viewMatrix), GrQuad::MakeFromSkQuad(localPoints, SkMatrix::I()), edgeAA}; - this->drawFilledQuad(clip, std::move(paint), aa, &quad); + this->drawFilledQuad(clip, std::move(paint), &quad); } // TODO(michaelludwig) - remove if the bulk API is not useful for SkiaRenderer - void drawQuadSet(const GrClip* clip, GrPaint&& paint, GrAA aa, const SkMatrix& viewMatrix, + void drawQuadSet(const GrClip* clip, GrPaint&& paint, const SkMatrix& viewMatrix, const GrQuadSetEntry[], int cnt); /** @@ -247,7 +247,6 @@ class SurfaceDrawContext final : public SurfaceFillContext { const SkPMColor4f&, const SkRect& srcRect, const SkRect& dstRect, - GrAA, GrQuadAAFlags, SkCanvas::SrcRectConstraint, const SkMatrix&, @@ -269,7 +268,6 @@ class SurfaceDrawContext final : public SurfaceFillContext { const SkPMColor4f& color, const SkPoint srcQuad[4], const SkPoint dstQuad[4], - GrAA aa, GrQuadAAFlags edgeAA, const SkRect* subset, const SkMatrix& viewMatrix, @@ -277,7 +275,7 @@ class SurfaceDrawContext final : public SurfaceFillContext { DrawQuad quad{GrQuad::MakeFromSkQuad(dstQuad, viewMatrix), GrQuad::MakeFromSkQuad(srcQuad, SkMatrix::I()), edgeAA}; this->drawTexturedQuad(clip, std::move(view), srcAlphaType, std::move(texXform), filter, mm, - color, mode, aa, &quad, subset); + color, mode, &quad, subset); } /** @@ -298,7 +296,6 @@ class SurfaceDrawContext final : public SurfaceFillContext { GrSamplerState::Filter, GrSamplerState::MipmapMode, SkBlendMode mode, - GrAA aa, SkCanvas::SrcRectConstraint, const SkMatrix& viewMatrix, sk_sp texXform); @@ -369,12 +366,14 @@ class SurfaceDrawContext final : public SurfaceFillContext { * @param viewMatrix transformation matrix * @param vertices specifies the mesh to draw. * @param overridePrimType primitive type to draw. If NULL, derive prim type from vertices. + * @param skipColorXform if true, do not apply a color space transfer function */ void drawVertices(const GrClip*, GrPaint&& paint, const SkMatrixProvider& matrixProvider, sk_sp vertices, - GrPrimitiveType* overridePrimType = nullptr); + GrPrimitiveType* overridePrimType = nullptr, + bool skipColorXform = false); /** * Draws vertices with a paint. @@ -518,7 +517,7 @@ class SurfaceDrawContext final : public SurfaceFillContext { void drawSlug(SkCanvas*, const GrClip* clip, const SkMatrixProvider& viewMatrix, - GrSlug* slugPtr); + const GrSlug* slugPtr); /** * Adds the necessary signal and wait semaphores and adds the passed in SkDrawable to the @@ -557,7 +556,7 @@ class SurfaceDrawContext final : public SurfaceFillContext { DrawQuad quad{GrQuad::MakeFromRect(rect, viewMatrix), localMatrix ? GrQuad::MakeFromRect(rect, *localMatrix) : GrQuad(rect), doStencilMSAA == GrAA::kYes ? GrQuadAAFlags::kAll : GrQuadAAFlags::kNone}; - this->drawFilledQuad(clip, std::move(paint), doStencilMSAA, &quad, ss); + this->drawFilledQuad(clip, std::move(paint), &quad, ss); } // Fills the user stencil bits with a non-zero value at every sample inside the path. This will @@ -661,23 +660,22 @@ class SurfaceDrawContext final : public SurfaceFillContext { // 'stencilSettings' are provided merely for decision making purposes; When non-null, // optimization strategies that submit special ops are avoided. // - // 'aa' and 'quad' should be the original draw request on input, and will be updated as + // 'quad' should be the original draw request on input, and will be updated as // appropriate depending on the returned optimization level. // // If kSubmitted is returned, the provided paint was consumed. Otherwise it is left unchanged. QuadOptimization attemptQuadOptimization(const GrClip* clip, const GrUserStencilSettings* stencilSettings, - GrAA* aa, DrawQuad* quad, GrPaint* paint); - // If stencil settings, 'ss', are non-null, AA controls MSAA or no AA. If they are null, then AA - // can choose between coverage, MSAA as per chooseAAType(). This will always attempt to apply + // The overall AA policy is determined by the quad's edge flags: kNone is no AA, and anything + // else uses some form of anti-aliasing. If 'ss' is non-null, that will be MSAA; otherwise it's + // MSAA or analytic coverage per chooseAAType(). This will always attempt to apply // quad optimizations, so all quad/rect public APIs should rely on this function for consistent // clipping behavior. 'quad' will be modified in place to reflect final rendered geometry. void drawFilledQuad(const GrClip* clip, GrPaint&& paint, - GrAA aa, DrawQuad* quad, const GrUserStencilSettings* ss = nullptr); @@ -691,7 +689,6 @@ class SurfaceDrawContext final : public SurfaceFillContext { GrSamplerState::MipmapMode, const SkPMColor4f& color, SkBlendMode blendMode, - GrAA aa, DrawQuad* quad, const SkRect* subset = nullptr); diff --git a/third_party/skia/src/gpu/v1/SurfaceFillContext_v1.cpp b/third_party/skia/src/gpu/ganesh/v1/SurfaceFillContext_v1.cpp similarity index 95% rename from third_party/skia/src/gpu/v1/SurfaceFillContext_v1.cpp rename to third_party/skia/src/gpu/ganesh/v1/SurfaceFillContext_v1.cpp index 90b10641e54a..3738ae5f92d6 100644 --- a/third_party/skia/src/gpu/v1/SurfaceFillContext_v1.cpp +++ b/third_party/skia/src/gpu/ganesh/v1/SurfaceFillContext_v1.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "src/gpu/v1/SurfaceFillContext_v1.h" - -#include "include/private/GrImageContext.h" -#include "src/gpu/GrDstProxyView.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrTextureResolveRenderTask.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/geometry/GrRect.h" -#include "src/gpu/ops/ClearOp.h" -#include "src/gpu/ops/FillRectOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceFillContext_v1.h" + +#include "include/private/gpu/ganesh/GrImageContext.h" +#include "src/gpu/ganesh/GrDstProxyView.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrTextureResolveRenderTask.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/geometry/GrRect.h" +#include "src/gpu/ganesh/ops/ClearOp.h" +#include "src/gpu/ganesh/ops/FillRectOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(this->singleOwner()) #define RETURN_IF_ABANDONED if (fContext->abandoned()) { return; } diff --git a/third_party/skia/src/gpu/v1/SurfaceFillContext_v1.h b/third_party/skia/src/gpu/ganesh/v1/SurfaceFillContext_v1.h similarity index 94% rename from third_party/skia/src/gpu/v1/SurfaceFillContext_v1.h rename to third_party/skia/src/gpu/ganesh/v1/SurfaceFillContext_v1.h index dcfc63653be6..85ec25374b03 100644 --- a/third_party/skia/src/gpu/v1/SurfaceFillContext_v1.h +++ b/third_party/skia/src/gpu/ganesh/v1/SurfaceFillContext_v1.h @@ -9,11 +9,11 @@ #define SurfaceFillContext_v1_DEFINED #include "include/core/SkSize.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/SurfaceFillContext.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/gpu/Swizzle.h" -#include "src/gpu/ops/OpsTask.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/ops/OpsTask.h" #include #include diff --git a/third_party/skia/src/gpu/ganesh/vk/BUILD.bazel b/third_party/skia/src/gpu/ganesh/vk/BUILD.bazel new file mode 100644 index 000000000000..07db48f4ab57 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/vk/BUILD.bazel @@ -0,0 +1,1039 @@ +load("//bazel:macros.bzl", "generated_cc_atom") + +licenses(["notice"]) + +generated_cc_atom( + name = "GrVkAMDMemoryAllocator_hdr", + hdrs = ["GrVkAMDMemoryAllocator.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu/vk:GrVkMemoryAllocator_hdr", + "//third_party:vulkanmemoryallocator", + ], +) + +generated_cc_atom( + name = "GrVkAMDMemoryAllocator_src", + srcs = ["GrVkAMDMemoryAllocator.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkAMDMemoryAllocator_hdr", + ":GrVkInterface_hdr", + ":GrVkMemory_hdr", + ":GrVkUtil_hdr", + "//include/gpu/vk:GrVkExtensions_hdr", + "//src/core:SkTraceEvent_hdr", + ], +) + +generated_cc_atom( + name = "GrVkBuffer_hdr", + hdrs = ["GrVkBuffer.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu/vk:GrVkTypes_hdr", + "//src/gpu/ganesh:GrGpuBuffer_hdr", + ], +) + +generated_cc_atom( + name = "GrVkBuffer_src", + srcs = ["GrVkBuffer.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkBuffer_hdr", + ":GrVkDescriptorSet_hdr", + ":GrVkGpu_hdr", + ":GrVkMemory_hdr", + ":GrVkUtil_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + ], +) + +generated_cc_atom( + name = "GrVkCaps_hdr", + hdrs = ["GrVkCaps.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private:SkTDArray_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + ], +) + +generated_cc_atom( + name = "GrVkCaps_src", + srcs = ["GrVkCaps.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkCaps_hdr", + ":GrVkGpu_hdr", + ":GrVkImage_hdr", + ":GrVkInterface_hdr", + ":GrVkRenderTarget_hdr", + ":GrVkTexture_hdr", + ":GrVkUniformHandler_hdr", + ":GrVkUtil_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu:GrContextOptions_hdr", + "//include/gpu/vk:GrVkBackendContext_hdr", + "//include/gpu/vk:GrVkExtensions_hdr", + "//src/core:SkCompressedDataUtils_hdr", + "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrRenderTargetProxy_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + "//src/gpu/ganesh:GrUtil_hdr", + "//src/gpu/ganesh:SkGr_hdr", + ], +) + +generated_cc_atom( + name = "GrVkCommandBuffer_hdr", + hdrs = ["GrVkCommandBuffer.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkGpu_hdr", + ":GrVkSemaphore_hdr", + ":GrVkUtil_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", + "//src/gpu/ganesh:GrRefCnt_hdr", + ], +) + +generated_cc_atom( + name = "GrVkCommandBuffer_src", + srcs = ["GrVkCommandBuffer.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkBuffer_hdr", + ":GrVkCommandBuffer_hdr", + ":GrVkCommandPool_hdr", + ":GrVkFramebuffer_hdr", + ":GrVkGpu_hdr", + ":GrVkImageView_hdr", + ":GrVkImage_hdr", + ":GrVkPipelineState_hdr", + ":GrVkPipeline_hdr", + ":GrVkRenderPass_hdr", + ":GrVkRenderTarget_hdr", + ":GrVkUtil_hdr", + "//include/core:SkRect_hdr", + "//src/core:SkTraceEvent_hdr", + ], +) + +generated_cc_atom( + name = "GrVkCommandPool_hdr", + hdrs = ["GrVkCommandPool.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkInterface_hdr", + ":GrVkManagedResource_hdr", + ":GrVkResourceProvider_hdr", + ], +) + +generated_cc_atom( + name = "GrVkCommandPool_src", + srcs = ["GrVkCommandPool.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkCommandBuffer_hdr", + ":GrVkCommandPool_hdr", + ":GrVkGpu_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrVkDescriptorPool_hdr", + hdrs = ["GrVkDescriptorPool.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkManagedResource_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrVkDescriptorPool_src", + srcs = ["GrVkDescriptorPool.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkDescriptorPool_hdr", + ":GrVkGpu_hdr", + "//include/private:SkTemplates_hdr", + ], +) + +generated_cc_atom( + name = "GrVkDescriptorSetManager_hdr", + hdrs = ["GrVkDescriptorSetManager.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkDescriptorPool_hdr", + ":GrVkSampler_hdr", + "//include/core:SkRefCnt_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private:SkTArray_hdr", + "//src/gpu/ganesh:GrResourceHandle_hdr", + ], +) + +generated_cc_atom( + name = "GrVkDescriptorSetManager_src", + srcs = ["GrVkDescriptorSetManager.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkDescriptorPool_hdr", + ":GrVkDescriptorSetManager_hdr", + ":GrVkDescriptorSet_hdr", + ":GrVkGpu_hdr", + ":GrVkUniformHandler_hdr", + ], +) + +generated_cc_atom( + name = "GrVkDescriptorSet_hdr", + hdrs = ["GrVkDescriptorSet.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkDescriptorSetManager_hdr", + ":GrVkManagedResource_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrVkDescriptorSet_src", + srcs = ["GrVkDescriptorSet.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkDescriptorPool_hdr", + ":GrVkDescriptorSet_hdr", + ":GrVkGpu_hdr", + ":GrVkResourceProvider_hdr", + ], +) + +generated_cc_atom( + name = "GrVkExtensions_src", + srcs = ["GrVkExtensions.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu/vk:GrVkBackendContext_hdr", + "//include/gpu/vk:GrVkExtensions_hdr", + "//src/core:SkTSearch_hdr", + "//src/core:SkTSort_hdr", + ], +) + +generated_cc_atom( + name = "GrVkFramebuffer_hdr", + hdrs = ["GrVkFramebuffer.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkManagedResource_hdr", + ":GrVkResourceProvider_hdr", + "//include/gpu:GrTypes_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrVkFramebuffer_src", + srcs = ["GrVkFramebuffer.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkCommandBuffer_hdr", + ":GrVkFramebuffer_hdr", + ":GrVkGpu_hdr", + ":GrVkImageView_hdr", + ":GrVkImage_hdr", + ":GrVkRenderPass_hdr", + ], +) + +generated_cc_atom( + name = "GrVkGpu_hdr", + hdrs = ["GrVkGpu.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkCaps_hdr", + ":GrVkMSAALoadManager_hdr", + ":GrVkMemory_hdr", + ":GrVkResourceProvider_hdr", + ":GrVkSemaphore_hdr", + ":GrVkUtil_hdr", + "//include/gpu/vk:GrVkBackendContext_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrStagingBufferManager_hdr", + ], +) + +generated_cc_atom( + name = "GrVkGpu_src", + srcs = ["GrVkGpu.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkAMDMemoryAllocator_hdr", + ":GrVkBuffer_hdr", + ":GrVkCommandBuffer_hdr", + ":GrVkCommandPool_hdr", + ":GrVkFramebuffer_hdr", + ":GrVkGpu_hdr", + ":GrVkImage_hdr", + ":GrVkInterface_hdr", + ":GrVkMemory_hdr", + ":GrVkOpsRenderPass_hdr", + ":GrVkPipelineState_hdr", + ":GrVkPipeline_hdr", + ":GrVkRenderPass_hdr", + ":GrVkResourceProvider_hdr", + ":GrVkSemaphore_hdr", + ":GrVkTextureRenderTarget_hdr", + ":GrVkTexture_hdr", + "//include/gpu:GrBackendSemaphore_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu:GrContextOptions_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu/vk:GrVkExtensions_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private:SkTo_hdr", + "//src/core:SkCompressedDataUtils_hdr", + "//src/core:SkConvertPixels_hdr", + "//src/core:SkMipmap_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrGpuResourceCacheAccess_hdr", + "//src/gpu/ganesh:GrNativeRect_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrThreadSafePipelineBuilder_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/image:SkImage_Gpu_hdr", + "//src/image:SkSurface_Gpu_hdr", + ], +) + +generated_cc_atom( + name = "GrVkImageLayout_hdr", + hdrs = ["GrVkImageLayout.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrVkImageView_hdr", + hdrs = ["GrVkImageView.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkManagedResource_hdr", + "//include/gpu:GrTypes_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrVkImageView_src", + srcs = ["GrVkImageView.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkGpu_hdr", + ":GrVkImageView_hdr", + ":GrVkSamplerYcbcrConversion_hdr", + ":GrVkUtil_hdr", + ], +) + +generated_cc_atom( + name = "GrVkImage_hdr", + hdrs = ["GrVkImage.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkDescriptorSet_hdr", + "//include/core:SkTypes_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrVkTypesPriv_hdr", + "//src/gpu/ganesh:GrAttachment_hdr", + "//src/gpu/ganesh:GrBackendSurfaceMutableStateImpl_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", + "//src/gpu/ganesh:GrRefCnt_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + ], +) + +generated_cc_atom( + name = "GrVkImage_src", + srcs = ["GrVkImage.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkGpu_hdr", + ":GrVkImageView_hdr", + ":GrVkImage_hdr", + ":GrVkMemory_hdr", + ":GrVkTexture_hdr", + ":GrVkUtil_hdr", + ], +) + +generated_cc_atom( + name = "GrVkInterface_hdr", + hdrs = ["GrVkInterface.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/gpu/vk:GrVkBackendContext_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrVkInterface_src", + srcs = ["GrVkInterface.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkInterface_hdr", + ":GrVkUtil_hdr", + "//include/gpu/vk:GrVkBackendContext_hdr", + "//include/gpu/vk:GrVkExtensions_hdr", + ], +) + +generated_cc_atom( + name = "GrVkMSAALoadManager_hdr", + hdrs = ["GrVkMSAALoadManager.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkDescriptorSetManager_hdr", + "//include/gpu:GrTypes_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/gpu/ganesh:GrNativeRect_hdr", + ], +) + +generated_cc_atom( + name = "GrVkMSAALoadManager_src", + srcs = ["GrVkMSAALoadManager.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkBuffer_hdr", + ":GrVkCommandBuffer_hdr", + ":GrVkDescriptorSet_hdr", + ":GrVkGpu_hdr", + ":GrVkImageView_hdr", + ":GrVkMSAALoadManager_hdr", + ":GrVkPipeline_hdr", + ":GrVkRenderTarget_hdr", + ":GrVkResourceProvider_hdr", + ":GrVkUtil_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + ], +) + +generated_cc_atom( + name = "GrVkManagedResource_hdr", + hdrs = ["GrVkManagedResource.h"], + visibility = ["//:__subpackages__"], + deps = ["//src/gpu/ganesh:GrManagedResource_hdr"], +) + +generated_cc_atom( + name = "GrVkMemory_hdr", + hdrs = ["GrVkMemory.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu/vk:GrVkMemoryAllocator_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private:SkTArray_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + ], +) + +generated_cc_atom( + name = "GrVkMemory_src", + srcs = ["GrVkMemory.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkGpu_hdr", + ":GrVkMemory_hdr", + ":GrVkUtil_hdr", + ], +) + +generated_cc_atom( + name = "GrVkOpsRenderPass_hdr", + hdrs = ["GrVkOpsRenderPass.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkPipelineState_hdr", + ":GrVkRenderPass_hdr", + "//include/gpu:GrTypes_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + ], +) + +generated_cc_atom( + name = "GrVkOpsRenderPass_src", + srcs = ["GrVkOpsRenderPass.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkBuffer_hdr", + ":GrVkCommandBuffer_hdr", + ":GrVkCommandPool_hdr", + ":GrVkFramebuffer_hdr", + ":GrVkGpu_hdr", + ":GrVkImage_hdr", + ":GrVkOpsRenderPass_hdr", + ":GrVkPipeline_hdr", + ":GrVkRenderPass_hdr", + ":GrVkRenderTarget_hdr", + ":GrVkResourceProvider_hdr", + ":GrVkSemaphore_hdr", + ":GrVkTexture_hdr", + "//include/core:SkDrawable_hdr", + "//include/core:SkRect_hdr", + "//include/gpu:GrBackendDrawableInfo_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + ], +) + +generated_cc_atom( + name = "GrVkPipelineStateBuilder_hdr", + hdrs = ["GrVkPipelineStateBuilder.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkPipelineState_hdr", + ":GrVkUniformHandler_hdr", + ":GrVkVaryingHandler_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", + "//src/sksl:SkSLCompiler_hdr", + ], +) + +generated_cc_atom( + name = "GrVkPipelineStateBuilder_src", + srcs = ["GrVkPipelineStateBuilder.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkDescriptorSetManager_hdr", + ":GrVkGpu_hdr", + ":GrVkPipelineStateBuilder_hdr", + ":GrVkPipeline_hdr", + ":GrVkRenderPass_hdr", + ":GrVkRenderTarget_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/core:SkReadBuffer_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh:GrAutoLocaleSetter_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrPersistentCacheUtils_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + "//src/utils:SkShaderUtils_hdr", + ], +) + +generated_cc_atom( + name = "GrVkPipelineStateCache_src", + srcs = ["GrVkPipelineStateCache.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkGpu_hdr", + ":GrVkPipelineStateBuilder_hdr", + ":GrVkPipelineState_hdr", + ":GrVkResourceProvider_hdr", + "//include/gpu:GrContextOptions_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/core:SkOpts_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + ], +) + +generated_cc_atom( + name = "GrVkPipelineStateDataManager_hdr", + hdrs = ["GrVkPipelineStateDataManager.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkUniformHandler_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/gpu/ganesh:GrUniformDataManager_hdr", + ], +) + +generated_cc_atom( + name = "GrVkPipelineStateDataManager_src", + srcs = ["GrVkPipelineStateDataManager.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkCommandBuffer_hdr", + ":GrVkGpu_hdr", + ":GrVkPipelineStateDataManager_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpuBuffer_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + ], +) + +generated_cc_atom( + name = "GrVkPipelineState_hdr", + hdrs = ["GrVkPipelineState.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkDescriptorSetManager_hdr", + ":GrVkDescriptorSet_hdr", + ":GrVkPipelineStateDataManager_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/gpu/ganesh:GrRefCnt_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", + ], +) + +generated_cc_atom( + name = "GrVkPipelineState_src", + srcs = ["GrVkPipelineState.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkBuffer_hdr", + ":GrVkCommandBuffer_hdr", + ":GrVkDescriptorPool_hdr", + ":GrVkDescriptorSet_hdr", + ":GrVkGpu_hdr", + ":GrVkImageView_hdr", + ":GrVkMemory_hdr", + ":GrVkPipelineState_hdr", + ":GrVkPipeline_hdr", + ":GrVkRenderTarget_hdr", + ":GrVkSampler_hdr", + ":GrVkTexture_hdr", + "//src/core:SkMipmap_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + ], +) + +generated_cc_atom( + name = "GrVkPipeline_hdr", + hdrs = ["GrVkPipeline.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkManagedResource_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + ], +) + +generated_cc_atom( + name = "GrVkPipeline_src", + srcs = ["GrVkPipeline.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkCommandBuffer_hdr", + ":GrVkGpu_hdr", + ":GrVkPipeline_hdr", + ":GrVkRenderTarget_hdr", + ":GrVkUtil_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + ], +) + +generated_cc_atom( + name = "GrVkRenderPass_hdr", + hdrs = ["GrVkRenderPass.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkManagedResource_hdr", + "//include/gpu:GrTypes_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private:SkMacros_hdr", + ], +) + +generated_cc_atom( + name = "GrVkRenderPass_src", + srcs = ["GrVkRenderPass.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkFramebuffer_hdr", + ":GrVkGpu_hdr", + ":GrVkRenderPass_hdr", + ":GrVkRenderTarget_hdr", + ":GrVkUtil_hdr", + "//src/gpu:KeyBuilder_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + ], +) + +generated_cc_atom( + name = "GrVkRenderTarget_hdr", + hdrs = ["GrVkRenderTarget.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkImage_hdr", + ":GrVkRenderPass_hdr", + ":GrVkResourceProvider_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + ], +) + +generated_cc_atom( + name = "GrVkRenderTarget_src", + srcs = ["GrVkRenderTarget.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkCommandBuffer_hdr", + ":GrVkDescriptorSet_hdr", + ":GrVkFramebuffer_hdr", + ":GrVkGpu_hdr", + ":GrVkImageView_hdr", + ":GrVkRenderTarget_hdr", + ":GrVkResourceProvider_hdr", + ":GrVkUtil_hdr", + "//include/gpu:GrBackendSurface_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/gpu/ganesh:GrBackendSurfaceMutableStateImpl_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + ], +) + +generated_cc_atom( + name = "GrVkResourceProvider_hdr", + hdrs = ["GrVkResourceProvider.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkDescriptorPool_hdr", + ":GrVkDescriptorSetManager_hdr", + ":GrVkPipelineStateBuilder_hdr", + ":GrVkRenderPass_hdr", + ":GrVkSamplerYcbcrConversion_hdr", + ":GrVkSampler_hdr", + ":GrVkUtil_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private:SkMutex_hdr", + "//include/private:SkTArray_hdr", + "//src/core:SkLRUCache_hdr", + "//src/core:SkTDynamicHash_hdr", + "//src/core:SkTInternalLList_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrManagedResource_hdr", + "//src/gpu/ganesh:GrProgramDesc_hdr", + "//src/gpu/ganesh:GrResourceHandle_hdr", + "//src/gpu/ganesh:GrThreadSafePipelineBuilder_hdr", + ], +) + +generated_cc_atom( + name = "GrVkResourceProvider_src", + srcs = ["GrVkResourceProvider.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkCommandBuffer_hdr", + ":GrVkCommandPool_hdr", + ":GrVkGpu_hdr", + ":GrVkPipeline_hdr", + ":GrVkRenderTarget_hdr", + ":GrVkResourceProvider_hdr", + ":GrVkUtil_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/core:SkTaskGroup_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", + "//src/gpu/ganesh:GrStencilSettings_hdr", + ], +) + +generated_cc_atom( + name = "GrVkSamplerYcbcrConversion_hdr", + hdrs = ["GrVkSamplerYcbcrConversion.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkManagedResource_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/core:SkOpts_hdr", + ], +) + +generated_cc_atom( + name = "GrVkSamplerYcbcrConversion_src", + srcs = ["GrVkSamplerYcbcrConversion.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkGpu_hdr", + ":GrVkSamplerYcbcrConversion_hdr", + ], +) + +generated_cc_atom( + name = "GrVkSampler_hdr", + hdrs = ["GrVkSampler.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkManagedResource_hdr", + ":GrVkSamplerYcbcrConversion_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/core:SkOpts_hdr", + ], +) + +generated_cc_atom( + name = "GrVkSampler_src", + srcs = ["GrVkSampler.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkGpu_hdr", + ":GrVkSamplerYcbcrConversion_hdr", + ":GrVkSampler_hdr", + ], +) + +generated_cc_atom( + name = "GrVkSecondaryCBDrawContext_src", + srcs = ["GrVkSecondaryCBDrawContext.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkSecondaryCBDrawContext_impl_hdr", + "//include/core:SkDeferredDisplayList_hdr", + "//include/core:SkImageInfo_hdr", + "//include/core:SkSurfaceCharacterization_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/core:SkSurfacePriv_hdr", + "//src/gpu/ganesh:GrContextThreadSafeProxyPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrRenderTargetProxy_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", + ], +) + +generated_cc_atom( + name = "GrVkSemaphore_hdr", + hdrs = ["GrVkSemaphore.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkManagedResource_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", + ], +) + +generated_cc_atom( + name = "GrVkSemaphore_src", + srcs = ["GrVkSemaphore.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkGpu_hdr", + ":GrVkSemaphore_hdr", + ":GrVkUtil_hdr", + "//include/gpu:GrBackendSemaphore_hdr", + ], +) + +generated_cc_atom( + name = "GrVkTextureRenderTarget_hdr", + hdrs = ["GrVkTextureRenderTarget.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkRenderTarget_hdr", + ":GrVkTexture_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + ], +) + +generated_cc_atom( + name = "GrVkTextureRenderTarget_src", + srcs = ["GrVkTextureRenderTarget.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkGpu_hdr", + ":GrVkImageView_hdr", + ":GrVkImage_hdr", + ":GrVkTextureRenderTarget_hdr", + ":GrVkUtil_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/core:SkMipmap_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + ], +) + +generated_cc_atom( + name = "GrVkTexture_hdr", + hdrs = ["GrVkTexture.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkImage_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/core:SkLRUCache_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + ], +) + +generated_cc_atom( + name = "GrVkTexture_src", + srcs = ["GrVkTexture.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkDescriptorSet_hdr", + ":GrVkGpu_hdr", + ":GrVkImageView_hdr", + ":GrVkTextureRenderTarget_hdr", + ":GrVkTexture_hdr", + ":GrVkUtil_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + ], +) + +generated_cc_atom( + name = "GrVkTypesPriv_src", + srcs = ["GrVkTypesPriv.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkImageLayout_hdr", + "//include/private/gpu/ganesh:GrVkTypesPriv_hdr", + "//src/gpu/ganesh:GrBackendSurfaceMutableStateImpl_hdr", + ], +) + +generated_cc_atom( + name = "GrVkUniformHandler_hdr", + hdrs = ["GrVkUniformHandler.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkSampler_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//src/core:SkTBlockList_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", + "//src/gpu/ganesh:GrShaderVar_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + ], +) + +generated_cc_atom( + name = "GrVkUniformHandler_src", + srcs = ["GrVkUniformHandler.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkGpu_hdr", + ":GrVkPipelineStateBuilder_hdr", + ":GrVkTexture_hdr", + ":GrVkUniformHandler_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrUtil_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", + ], +) + +generated_cc_atom( + name = "GrVkUtil_hdr", + hdrs = ["GrVkUtil.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkInterface_hdr", + "//include/gpu:GrTypes_hdr", + "//include/gpu/vk:GrVkTypes_hdr", + "//include/private:SkMacros_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + "//src/sksl/ir:SkSLProgram_hdr", + ], +) + +generated_cc_atom( + name = "GrVkUtil_src", + srcs = ["GrVkUtil.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":GrVkGpu_hdr", + ":GrVkUtil_hdr", + "//include/gpu:GrDirectContext_hdr", + "//src/core:SkTraceEvent_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/sksl:SkSLCompiler_hdr", + ], +) + +generated_cc_atom( + name = "GrVkVaryingHandler_hdr", + hdrs = ["GrVkVaryingHandler.h"], + visibility = ["//:__subpackages__"], + deps = ["//src/gpu/ganesh/glsl:GrGLSLVarying_hdr"], +) + +generated_cc_atom( + name = "GrVkVaryingHandler_src", + srcs = ["GrVkVaryingHandler.cpp"], + visibility = ["//:__subpackages__"], + deps = [":GrVkVaryingHandler_hdr"], +) + +generated_cc_atom( + name = "GrVkSecondaryCBDrawContext_impl_hdr", + hdrs = ["GrVkSecondaryCBDrawContext_impl.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/core:SkSurfaceProps_hdr", + "//include/core:SkTypes_hdr", + ], +) diff --git a/third_party/skia/src/gpu/vk/GrVkAMDMemoryAllocator.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkAMDMemoryAllocator.cpp similarity index 98% rename from third_party/skia/src/gpu/vk/GrVkAMDMemoryAllocator.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkAMDMemoryAllocator.cpp index 0885aacc120a..42067207020e 100644 --- a/third_party/skia/src/gpu/vk/GrVkAMDMemoryAllocator.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkAMDMemoryAllocator.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkAMDMemoryAllocator.h" +#include "src/gpu/ganesh/vk/GrVkAMDMemoryAllocator.h" #include "include/gpu/vk/GrVkExtensions.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/vk/GrVkInterface.h" -#include "src/gpu/vk/GrVkMemory.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkInterface.h" +#include "src/gpu/ganesh/vk/GrVkMemory.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #ifndef SK_USE_VMA sk_sp GrVkAMDMemoryAllocator::Make(VkInstance instance, diff --git a/third_party/skia/src/gpu/vk/GrVkAMDMemoryAllocator.h b/third_party/skia/src/gpu/ganesh/vk/GrVkAMDMemoryAllocator.h similarity index 100% rename from third_party/skia/src/gpu/vk/GrVkAMDMemoryAllocator.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkAMDMemoryAllocator.h diff --git a/third_party/skia/src/gpu/vk/GrVkBuffer.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkBuffer.cpp similarity index 95% rename from third_party/skia/src/gpu/vk/GrVkBuffer.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkBuffer.cpp index 5727c4e9233c..0d0e51a034d2 100644 --- a/third_party/skia/src/gpu/vk/GrVkBuffer.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkBuffer.cpp @@ -5,15 +5,15 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkBuffer.h" +#include "src/gpu/ganesh/vk/GrVkBuffer.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/vk/GrVkDescriptorSet.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkMemory.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkMemory.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X) @@ -23,8 +23,9 @@ GrVkBuffer::GrVkBuffer(GrVkGpu* gpu, GrAccessPattern accessPattern, VkBuffer buffer, const GrVkAlloc& alloc, - const GrVkDescriptorSet* uniformDescriptorSet) - : GrGpuBuffer(gpu, sizeInBytes, bufferType, accessPattern) + const GrVkDescriptorSet* uniformDescriptorSet, + std::string_view label) + : GrGpuBuffer(gpu, sizeInBytes, bufferType, accessPattern, label) , fBuffer(buffer) , fAlloc(alloc) , fUniformDescriptorSet(uniformDescriptorSet) { @@ -148,8 +149,8 @@ sk_sp GrVkBuffer::Make(GrVkGpu* gpu, } } - return sk_sp(new GrVkBuffer(gpu, size, bufferType, accessPattern, buffer, alloc, - uniformDescSet)); + return sk_sp(new GrVkBuffer( + gpu, size, bufferType, accessPattern, buffer, alloc, uniformDescSet, /*label=*/{})); } void GrVkBuffer::vkMap(size_t size) { diff --git a/third_party/skia/src/gpu/vk/GrVkBuffer.h b/third_party/skia/src/gpu/ganesh/vk/GrVkBuffer.h similarity index 93% rename from third_party/skia/src/gpu/vk/GrVkBuffer.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkBuffer.h index d834cf2e91cc..6509af5a8da4 100644 --- a/third_party/skia/src/gpu/vk/GrVkBuffer.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkBuffer.h @@ -9,7 +9,7 @@ #define GrVkBuffer_DEFINED #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" class GrVkDescriptorSet; class GrVkGpu; @@ -40,7 +40,8 @@ class GrVkBuffer : public GrGpuBuffer { GrAccessPattern accessPattern, VkBuffer buffer, const GrVkAlloc& alloc, - const GrVkDescriptorSet* uniformDescriptorSet); + const GrVkDescriptorSet* uniformDescriptorSet, + std::string_view label); bool isVkMappable() const { return fAlloc.fFlags & GrVkAlloc::kMappable_Flag; } diff --git a/third_party/skia/src/gpu/vk/GrVkCaps.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkCaps.cpp similarity index 98% rename from third_party/skia/src/gpu/vk/GrVkCaps.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkCaps.cpp index 7ae1f2f49349..4f61e299d357 100644 --- a/third_party/skia/src/gpu/vk/GrVkCaps.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkCaps.cpp @@ -5,30 +5,31 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkCaps.h" +#include "src/gpu/ganesh/vk/GrVkCaps.h" #include #include "include/gpu/GrBackendSurface.h" +#include "include/gpu/GrContextOptions.h" #include "include/gpu/vk/GrVkBackendContext.h" #include "include/gpu/vk/GrVkExtensions.h" #include "src/core/SkCompressedDataUtils.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/GrUtil.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImage.h" -#include "src/gpu/vk/GrVkInterface.h" -#include "src/gpu/vk/GrVkRenderTarget.h" -#include "src/gpu/vk/GrVkTexture.h" -#include "src/gpu/vk/GrVkUniformHandler.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/GrUtil.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImage.h" +#include "src/gpu/ganesh/vk/GrVkInterface.h" +#include "src/gpu/ganesh/vk/GrVkRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkTexture.h" +#include "src/gpu/ganesh/vk/GrVkUniformHandler.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #ifdef SK_BUILD_FOR_ANDROID #include @@ -43,6 +44,7 @@ GrVkCaps::GrVkCaps(const GrContextOptions& contextOptions, const GrVkInterface* * GrCaps fields **************************************************************************/ fMipmapSupport = true; // always available in Vulkan + fAnisoSupport = true; // always available in Vulkan fNPOTTextureTileSupport = true; // always available in Vulkan fReuseScratchTextures = true; //TODO: figure this out fGpuTracingSupport = false; //TODO: figure this out @@ -390,6 +392,8 @@ void GrVkCaps::init(const GrContextOptions& contextOptions, const GrVkInterface* fMaxInputAttachmentDescriptors = properties.limits.maxDescriptorSetInputAttachments; + fMaxSamplerAnisotropy = properties.limits.maxSamplerAnisotropy; + // On desktop GPUs we have found that this does not provide much benefit. The perf results show // a mix of regressions, some improvements, and lots of no changes. Thus it is no worth enabling // this (especially with the rendering artifacts) on desktop. @@ -679,13 +683,6 @@ void GrVkCaps::initGrCaps(const GrVkInterface* vkInterface, if (kARM_VkVendor == properties.vendorID) { fShouldCollapseSrcOverToSrcWhenAble = true; } - - // We're seeing vkCmdClearAttachments take a lot of cpu time when clearing the color attachment. - // We really should only be getting in there for partial clears. So instead we will do all - // partial clears as draws. - if (kQualcomm_VkVendor == properties.vendorID) { - fPerformPartialClearsAsDraws = true; - } } void GrVkCaps::initShaderCaps(const VkPhysicalDeviceProperties& properties, diff --git a/third_party/skia/src/gpu/vk/GrVkCaps.h b/third_party/skia/src/gpu/ganesh/vk/GrVkCaps.h similarity index 99% rename from third_party/skia/src/gpu/vk/GrVkCaps.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkCaps.h index fa2d0c87bbe8..6fedcdc4eacb 100644 --- a/third_party/skia/src/gpu/vk/GrVkCaps.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkCaps.h @@ -9,7 +9,8 @@ #define GrVkCaps_DEFINED #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/GrCaps.h" +#include "include/private/SkTDArray.h" +#include "src/gpu/ganesh/GrCaps.h" class GrVkExtensions; struct GrVkInterface; @@ -175,6 +176,8 @@ class GrVkCaps : public GrCaps { uint32_t maxInputAttachmentDescriptors() const { return fMaxInputAttachmentDescriptors; } + float maxSamplerAnisotropy() const { return fMaxSamplerAnisotropy; } + bool mustInvalidatePrimaryCmdBufferStateAfterClearAttachments() const { return fMustInvalidatePrimaryCmdBufferStateAfterClearAttachments; } @@ -445,6 +448,8 @@ class GrVkCaps : public GrCaps { uint32_t fMaxInputAttachmentDescriptors = 0; + float fMaxSamplerAnisotropy = 1.f; + bool fMustLoadFullImageWithDiscardableMSAA = false; bool fSupportsDiscardableMSAAForDMSAA = true; bool fSupportsMemorylessAttachments = false; diff --git a/third_party/skia/src/gpu/vk/GrVkCommandBuffer.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkCommandBuffer.cpp similarity index 98% rename from third_party/skia/src/gpu/vk/GrVkCommandBuffer.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkCommandBuffer.cpp index 056d71dc8fd8..6e9ce1d47c5d 100644 --- a/third_party/skia/src/gpu/vk/GrVkCommandBuffer.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkCommandBuffer.cpp @@ -5,22 +5,22 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkCommandBuffer.h" +#include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" #include "include/core/SkRect.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/vk/GrVkBuffer.h" -#include "src/gpu/vk/GrVkCommandPool.h" -#include "src/gpu/vk/GrVkFramebuffer.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImage.h" -#include "src/gpu/vk/GrVkImageView.h" -#include "src/gpu/vk/GrVkPipeline.h" -#include "src/gpu/vk/GrVkPipelineState.h" -#include "src/gpu/vk/GrVkPipelineState.h" -#include "src/gpu/vk/GrVkRenderPass.h" -#include "src/gpu/vk/GrVkRenderTarget.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkBuffer.h" +#include "src/gpu/ganesh/vk/GrVkCommandPool.h" +#include "src/gpu/ganesh/vk/GrVkFramebuffer.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImage.h" +#include "src/gpu/ganesh/vk/GrVkImageView.h" +#include "src/gpu/ganesh/vk/GrVkPipeline.h" +#include "src/gpu/ganesh/vk/GrVkPipelineState.h" +#include "src/gpu/ganesh/vk/GrVkPipelineState.h" +#include "src/gpu/ganesh/vk/GrVkRenderPass.h" +#include "src/gpu/ganesh/vk/GrVkRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" void GrVkCommandBuffer::invalidateState() { for (auto& boundInputBuffer : fBoundInputBuffers) { @@ -667,7 +667,7 @@ bool GrVkPrimaryCommandBuffer::finished(GrVkGpu* gpu) { } } -void GrVkPrimaryCommandBuffer::addFinishedProc(sk_sp finishedProc) { +void GrVkPrimaryCommandBuffer::addFinishedProc(sk_sp finishedProc) { fFinishedProcs.push_back(std::move(finishedProc)); } diff --git a/third_party/skia/src/gpu/vk/GrVkCommandBuffer.h b/third_party/skia/src/gpu/ganesh/vk/GrVkCommandBuffer.h similarity index 97% rename from third_party/skia/src/gpu/vk/GrVkCommandBuffer.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkCommandBuffer.h index 458513b4cc4d..2f34179fc8c6 100644 --- a/third_party/skia/src/gpu/vk/GrVkCommandBuffer.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkCommandBuffer.h @@ -9,11 +9,11 @@ #define GrVkCommandBuffer_DEFINED #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/GrManagedResource.h" -#include "src/gpu/GrRefCnt.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkSemaphore.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrManagedResource.h" +#include "src/gpu/ganesh/GrRefCnt.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkSemaphore.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" class GrVkFramebuffer; class GrVkImage; @@ -312,7 +312,7 @@ class GrVkPrimaryCommandBuffer : public GrVkCommandBuffer { bool finished(GrVkGpu* gpu); - void addFinishedProc(sk_sp finishedProc); + void addFinishedProc(sk_sp finishedProc); void callFinishedProcs() { fFinishedProcs.reset(); @@ -331,7 +331,7 @@ class GrVkPrimaryCommandBuffer : public GrVkCommandBuffer { SkTArray, true> fSecondaryCommandBuffers; VkFence fSubmitFence; - SkTArray> fFinishedProcs; + SkTArray> fFinishedProcs; using INHERITED = GrVkCommandBuffer; }; diff --git a/third_party/skia/src/gpu/vk/GrVkCommandPool.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkCommandPool.cpp similarity index 96% rename from third_party/skia/src/gpu/vk/GrVkCommandPool.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkCommandPool.cpp index bbde9b9624c6..7e30a7d9b82e 100644 --- a/third_party/skia/src/gpu/vk/GrVkCommandPool.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkCommandPool.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkCommandPool.h" +#include "src/gpu/ganesh/vk/GrVkCommandPool.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/vk/GrVkCommandBuffer.h" -#include "src/gpu/vk/GrVkGpu.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" GrVkCommandPool* GrVkCommandPool::Create(GrVkGpu* gpu) { VkCommandPoolCreateFlags cmdPoolCreateFlags = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT; diff --git a/third_party/skia/src/gpu/vk/GrVkCommandPool.h b/third_party/skia/src/gpu/ganesh/vk/GrVkCommandPool.h similarity index 92% rename from third_party/skia/src/gpu/vk/GrVkCommandPool.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkCommandPool.h index 65fa05c6c938..f8cb08166c2a 100644 --- a/third_party/skia/src/gpu/vk/GrVkCommandPool.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkCommandPool.h @@ -8,9 +8,9 @@ #ifndef GrVkCommandPool_DEFINED #define GrVkCommandPool_DEFINED -#include "src/gpu/vk/GrVkInterface.h" -#include "src/gpu/vk/GrVkManagedResource.h" -#include "src/gpu/vk/GrVkResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkInterface.h" +#include "src/gpu/ganesh/vk/GrVkManagedResource.h" +#include "src/gpu/ganesh/vk/GrVkResourceProvider.h" #include diff --git a/third_party/skia/src/gpu/vk/GrVkDescriptorPool.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorPool.cpp similarity index 95% rename from third_party/skia/src/gpu/vk/GrVkDescriptorPool.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorPool.cpp index cac3d4306a0b..cde0fa8d8220 100644 --- a/third_party/skia/src/gpu/vk/GrVkDescriptorPool.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorPool.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkDescriptorPool.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorPool.h" #include "include/private/SkTemplates.h" -#include "src/gpu/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" GrVkDescriptorPool* GrVkDescriptorPool::Create(GrVkGpu* gpu, VkDescriptorType type, diff --git a/third_party/skia/src/gpu/vk/GrVkDescriptorPool.h b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorPool.h similarity index 96% rename from third_party/skia/src/gpu/vk/GrVkDescriptorPool.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorPool.h index 3afe8bb1d238..237ff37dd4fe 100644 --- a/third_party/skia/src/gpu/vk/GrVkDescriptorPool.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorPool.h @@ -9,7 +9,7 @@ #define GrVkDescriptorPool_DEFINED #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/vk/GrVkManagedResource.h" +#include "src/gpu/ganesh/vk/GrVkManagedResource.h" #include diff --git a/third_party/skia/src/gpu/vk/GrVkDescriptorSet.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSet.cpp similarity index 78% rename from third_party/skia/src/gpu/vk/GrVkDescriptorSet.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSet.cpp index 5b70e56f10b3..70c5524f0e67 100644 --- a/third_party/skia/src/gpu/vk/GrVkDescriptorSet.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSet.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkDescriptorSet.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" -#include "src/gpu/vk/GrVkDescriptorPool.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorPool.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkResourceProvider.h" GrVkDescriptorSet::GrVkDescriptorSet(GrVkGpu* gpu, VkDescriptorSet descSet, diff --git a/third_party/skia/src/gpu/vk/GrVkDescriptorSet.h b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSet.h similarity index 91% rename from third_party/skia/src/gpu/vk/GrVkDescriptorSet.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSet.h index 3e45d2cdd563..a033035ea077 100644 --- a/third_party/skia/src/gpu/vk/GrVkDescriptorSet.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSet.h @@ -9,8 +9,8 @@ #define GrVkDescriptorSet_DEFINED #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/vk/GrVkDescriptorSetManager.h" -#include "src/gpu/vk/GrVkManagedResource.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSetManager.h" +#include "src/gpu/ganesh/vk/GrVkManagedResource.h" #include diff --git a/third_party/skia/src/gpu/vk/GrVkDescriptorSetManager.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSetManager.cpp similarity index 98% rename from third_party/skia/src/gpu/vk/GrVkDescriptorSetManager.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSetManager.cpp index d1882b40d77f..79ca67997926 100644 --- a/third_party/skia/src/gpu/vk/GrVkDescriptorSetManager.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSetManager.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkDescriptorSetManager.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSetManager.h" -#include "src/gpu/vk/GrVkDescriptorPool.h" -#include "src/gpu/vk/GrVkDescriptorSet.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkUniformHandler.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorPool.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkUniformHandler.h" #if defined(SK_ENABLE_SCOPED_LSAN_SUPPRESSIONS) #include diff --git a/third_party/skia/src/gpu/vk/GrVkDescriptorSetManager.h b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSetManager.h similarity index 96% rename from third_party/skia/src/gpu/vk/GrVkDescriptorSetManager.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSetManager.h index c17ee9914ca5..3cf115215904 100644 --- a/third_party/skia/src/gpu/vk/GrVkDescriptorSetManager.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkDescriptorSetManager.h @@ -11,9 +11,9 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/vk/GrVkTypes.h" #include "include/private/SkTArray.h" -#include "src/gpu/GrResourceHandle.h" -#include "src/gpu/vk/GrVkDescriptorPool.h" -#include "src/gpu/vk/GrVkSampler.h" +#include "src/gpu/ganesh/GrResourceHandle.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorPool.h" +#include "src/gpu/ganesh/vk/GrVkSampler.h" class GrVkDescriptorSet; class GrVkGpu; diff --git a/third_party/skia/src/gpu/vk/GrVkExtensions.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkExtensions.cpp similarity index 100% rename from third_party/skia/src/gpu/vk/GrVkExtensions.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkExtensions.cpp diff --git a/third_party/skia/src/gpu/vk/GrVkFramebuffer.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkFramebuffer.cpp similarity index 94% rename from third_party/skia/src/gpu/vk/GrVkFramebuffer.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkFramebuffer.cpp index 79c31a34d0a3..5d859e85f7fd 100644 --- a/third_party/skia/src/gpu/vk/GrVkFramebuffer.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkFramebuffer.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkFramebuffer.h" +#include "src/gpu/ganesh/vk/GrVkFramebuffer.h" -#include "src/gpu/vk/GrVkCommandBuffer.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImage.h" -#include "src/gpu/vk/GrVkImageView.h" -#include "src/gpu/vk/GrVkRenderPass.h" +#include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImage.h" +#include "src/gpu/ganesh/vk/GrVkImageView.h" +#include "src/gpu/ganesh/vk/GrVkRenderPass.h" sk_sp GrVkFramebuffer::Make( GrVkGpu* gpu, diff --git a/third_party/skia/src/gpu/vk/GrVkFramebuffer.h b/third_party/skia/src/gpu/ganesh/vk/GrVkFramebuffer.h similarity index 97% rename from third_party/skia/src/gpu/vk/GrVkFramebuffer.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkFramebuffer.h index 623fe78e8b35..6cb0d37c23ed 100644 --- a/third_party/skia/src/gpu/vk/GrVkFramebuffer.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkFramebuffer.h @@ -10,8 +10,8 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/vk/GrVkManagedResource.h" -#include "src/gpu/vk/GrVkResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkManagedResource.h" +#include "src/gpu/ganesh/vk/GrVkResourceProvider.h" #include diff --git a/third_party/skia/src/gpu/vk/GrVkGpu.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkGpu.cpp similarity index 98% rename from third_party/skia/src/gpu/vk/GrVkGpu.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkGpu.cpp index 83ed60f608b2..20b974b3b963 100644 --- a/third_party/skia/src/gpu/vk/GrVkGpu.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkGpu.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" #include "include/gpu/GrBackendSemaphore.h" #include "include/gpu/GrBackendSurface.h" @@ -16,34 +16,34 @@ #include "src/core/SkConvertPixels.h" #include "src/core/SkMipmap.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrGpuResourceCacheAccess.h" -#include "src/gpu/GrNativeRect.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrThreadSafePipelineBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/vk/GrVkAMDMemoryAllocator.h" -#include "src/gpu/vk/GrVkBuffer.h" -#include "src/gpu/vk/GrVkCommandBuffer.h" -#include "src/gpu/vk/GrVkCommandPool.h" -#include "src/gpu/vk/GrVkFramebuffer.h" -#include "src/gpu/vk/GrVkImage.h" -#include "src/gpu/vk/GrVkInterface.h" -#include "src/gpu/vk/GrVkMemory.h" -#include "src/gpu/vk/GrVkOpsRenderPass.h" -#include "src/gpu/vk/GrVkPipeline.h" -#include "src/gpu/vk/GrVkPipelineState.h" -#include "src/gpu/vk/GrVkRenderPass.h" -#include "src/gpu/vk/GrVkResourceProvider.h" -#include "src/gpu/vk/GrVkSemaphore.h" -#include "src/gpu/vk/GrVkTexture.h" -#include "src/gpu/vk/GrVkTextureRenderTarget.h" +#include "src/gpu/ganesh/GrBackendUtils.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/GrNativeRect.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/vk/GrVkAMDMemoryAllocator.h" +#include "src/gpu/ganesh/vk/GrVkBuffer.h" +#include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" +#include "src/gpu/ganesh/vk/GrVkCommandPool.h" +#include "src/gpu/ganesh/vk/GrVkFramebuffer.h" +#include "src/gpu/ganesh/vk/GrVkImage.h" +#include "src/gpu/ganesh/vk/GrVkInterface.h" +#include "src/gpu/ganesh/vk/GrVkMemory.h" +#include "src/gpu/ganesh/vk/GrVkOpsRenderPass.h" +#include "src/gpu/ganesh/vk/GrVkPipeline.h" +#include "src/gpu/ganesh/vk/GrVkPipelineState.h" +#include "src/gpu/ganesh/vk/GrVkRenderPass.h" +#include "src/gpu/ganesh/vk/GrVkResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkSemaphore.h" +#include "src/gpu/ganesh/vk/GrVkTexture.h" +#include "src/gpu/ganesh/vk/GrVkTextureRenderTarget.h" #include "src/image/SkImage_Gpu.h" #include "src/image/SkSurface_Gpu.h" @@ -1603,7 +1603,7 @@ bool GrVkGpu::createVkImageForBackendSurface(VkFormat vkFormat, } bool GrVkGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) { GrVkImageInfo info; SkAssertResult(backendTexture.getVkImageInfo(&info)); @@ -1702,7 +1702,7 @@ GrBackendTexture GrVkGpu::onCreateCompressedBackendTexture( } bool GrVkGpu::onUpdateCompressedBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t size) { GrVkImageInfo info; @@ -1814,7 +1814,7 @@ bool GrVkGpu::setBackendSurfaceState(GrVkImageInfo info, SkISize dimensions, const GrVkSharedImageInfo& newInfo, GrBackendSurfaceMutableState* previousState, - sk_sp finishedCallback) { + sk_sp finishedCallback) { sk_sp texture = GrVkImage::MakeWrapped(this, dimensions, info, @@ -1841,7 +1841,7 @@ bool GrVkGpu::setBackendSurfaceState(GrVkImageInfo info, bool GrVkGpu::setBackendTextureState(const GrBackendTexture& backendTeture, const GrBackendSurfaceMutableState& newState, GrBackendSurfaceMutableState* previousState, - sk_sp finishedCallback) { + sk_sp finishedCallback) { GrVkImageInfo info; SkAssertResult(backendTeture.getVkImageInfo(&info)); sk_sp currentState = backendTeture.getMutableState(); @@ -1855,7 +1855,7 @@ bool GrVkGpu::setBackendTextureState(const GrBackendTexture& backendTeture, bool GrVkGpu::setBackendRenderTargetState(const GrBackendRenderTarget& backendRenderTarget, const GrBackendSurfaceMutableState& newState, GrBackendSurfaceMutableState* previousState, - sk_sp finishedCallback) { + sk_sp finishedCallback) { GrVkImageInfo info; SkAssertResult(backendRenderTarget.getVkImageInfo(&info)); sk_sp currentState = backendRenderTarget.getMutableState(); @@ -2097,10 +2097,10 @@ void GrVkGpu::prepareSurfacesForBackendAccessAndStateUpdates( void GrVkGpu::addFinishedProc(GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) { SkASSERT(finishedProc); - this->addFinishedCallback(GrRefCntedCallback::Make(finishedProc, finishedContext)); + this->addFinishedCallback(skgpu::RefCntedCallback::Make(finishedProc, finishedContext)); } -void GrVkGpu::addFinishedCallback(sk_sp finishedCallback) { +void GrVkGpu::addFinishedCallback(sk_sp finishedCallback) { SkASSERT(finishedCallback); fResourceProvider.addFinishedProcToActiveCommandBuffers(std::move(finishedCallback)); } @@ -2476,6 +2476,9 @@ bool GrVkGpu::onReadPixels(GrSurface* surface, return false; } void* mappedMemory = transferBuffer->map(); + if (!mappedMemory) { + return false; + } SkRectMemcpy(buffer, rowBytes, mappedMemory, transBufferRowBytes, tightRowBytes, rect.height()); diff --git a/third_party/skia/src/gpu/vk/GrVkGpu.h b/third_party/skia/src/gpu/ganesh/vk/GrVkGpu.h similarity index 95% rename from third_party/skia/src/gpu/vk/GrVkGpu.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkGpu.h index 121f2e1988e9..e4fe37ef997e 100644 --- a/third_party/skia/src/gpu/vk/GrVkGpu.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkGpu.h @@ -10,14 +10,14 @@ #include "include/gpu/vk/GrVkBackendContext.h" #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrStagingBufferManager.h" -#include "src/gpu/vk/GrVkCaps.h" -#include "src/gpu/vk/GrVkMSAALoadManager.h" -#include "src/gpu/vk/GrVkMemory.h" -#include "src/gpu/vk/GrVkResourceProvider.h" -#include "src/gpu/vk/GrVkSemaphore.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrStagingBufferManager.h" +#include "src/gpu/ganesh/vk/GrVkCaps.h" +#include "src/gpu/ganesh/vk/GrVkMSAALoadManager.h" +#include "src/gpu/ganesh/vk/GrVkMemory.h" +#include "src/gpu/ganesh/vk/GrVkResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkSemaphore.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" class GrDirectContext; class GrPipeline; @@ -83,12 +83,12 @@ class GrVkGpu : public GrGpu { bool setBackendTextureState(const GrBackendTexture&, const GrBackendSurfaceMutableState&, GrBackendSurfaceMutableState* previousState, - sk_sp finishedCallback) override; + sk_sp finishedCallback) override; bool setBackendRenderTargetState(const GrBackendRenderTarget&, const GrBackendSurfaceMutableState&, GrBackendSurfaceMutableState* previousState, - sk_sp finishedCallback) override; + sk_sp finishedCallback) override; void deleteBackendTexture(const GrBackendTexture&) override; @@ -222,11 +222,11 @@ class GrVkGpu : public GrGpu { GrProtected) override; bool onClearBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, std::array color) override; bool onUpdateCompressedBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, + sk_sp finishedCallback, const void* data, size_t length) override; @@ -235,7 +235,7 @@ class GrVkGpu : public GrGpu { SkISize dimensions, const GrVkSharedImageInfo& newInfo, GrBackendSurfaceMutableState* previousState, - sk_sp finishedCallback); + sk_sp finishedCallback); sk_sp onCreateTexture(SkISize, const GrBackendFormat&, @@ -307,7 +307,7 @@ class GrVkGpu : public GrGpu { void addFinishedProc(GrGpuFinishedProc finishedProc, GrGpuFinishedContext finishedContext) override; - void addFinishedCallback(sk_sp finishedCallback); + void addFinishedCallback(sk_sp finishedCallback); GrOpsRenderPass* onGetOpsRenderPass(GrRenderTarget*, bool useMSAASurface, diff --git a/third_party/skia/src/gpu/vk/GrVkImage.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkImage.cpp similarity index 97% rename from third_party/skia/src/gpu/vk/GrVkImage.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkImage.cpp index c9c7a7fb22d5..ca50cb542132 100644 --- a/third_party/skia/src/gpu/vk/GrVkImage.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkImage.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkImage.h" +#include "src/gpu/ganesh/vk/GrVkImage.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImageView.h" -#include "src/gpu/vk/GrVkMemory.h" -#include "src/gpu/vk/GrVkTexture.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImageView.h" +#include "src/gpu/ganesh/vk/GrVkMemory.h" +#include "src/gpu/ganesh/vk/GrVkTexture.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X) @@ -169,7 +169,8 @@ sk_sp GrVkImage::Make(GrVkGpu* gpu, std::move(mutableState), std::move(framebufferView), std::move(textureView), - budgeted)); + budgeted, + /*label=*/{})); } sk_sp GrVkImage::MakeWrapped(GrVkGpu* gpu, @@ -201,7 +202,8 @@ sk_sp GrVkImage::MakeWrapped(GrVkGpu* gpu, std::move(textureView), backendOwnership, cacheable, - forSecondaryCB)); + forSecondaryCB, + /*label=*/{})); } GrVkImage::GrVkImage(GrVkGpu* gpu, @@ -211,13 +213,15 @@ GrVkImage::GrVkImage(GrVkGpu* gpu, sk_sp mutableState, sk_sp framebufferView, sk_sp textureView, - SkBudgeted budgeted) + SkBudgeted budgeted, + std::string_view label) : GrAttachment(gpu, dimensions, supportedUsages, info.fSampleCount, info.fLevelCount > 1 ? GrMipmapped::kYes : GrMipmapped::kNo, info.fProtected, + label, info.fAlloc.fFlags & GrVkAlloc::kLazilyAllocated_Flag ? GrMemoryless::kYes : GrMemoryless::kNo) , fInfo(info) @@ -239,13 +243,15 @@ GrVkImage::GrVkImage(GrVkGpu* gpu, sk_sp textureView, GrBackendObjectOwnership ownership, GrWrapCacheable cacheable, - bool forSecondaryCB) + bool forSecondaryCB, + std::string_view label) : GrAttachment(gpu, dimensions, supportedUsages, info.fSampleCount, info.fLevelCount > 1 ? GrMipmapped::kYes : GrMipmapped::kNo, - info.fProtected) + info.fProtected, + label) , fInfo(info) , fInitialQueueFamily(info.fCurrentQueueFamily) , fMutableState(std::move(mutableState)) @@ -584,7 +590,7 @@ void GrVkImage::onAbandon() { GrAttachment::onAbandon(); } -void GrVkImage::setResourceRelease(sk_sp releaseHelper) { +void GrVkImage::setResourceRelease(sk_sp releaseHelper) { SkASSERT(fResource); // Forward the release proc on to GrVkImage::Resource fResource->setRelease(std::move(releaseHelper)); diff --git a/third_party/skia/src/gpu/vk/GrVkImage.h b/third_party/skia/src/gpu/ganesh/vk/GrVkImage.h similarity index 95% rename from third_party/skia/src/gpu/vk/GrVkImage.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkImage.h index a8af9daae3cc..f2a198ba6155 100644 --- a/third_party/skia/src/gpu/vk/GrVkImage.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkImage.h @@ -11,14 +11,14 @@ #include "include/core/SkTypes.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" -#include "include/private/GrTypesPriv.h" -#include "include/private/GrVkTypesPriv.h" -#include "src/gpu/GrAttachment.h" -#include "src/gpu/GrBackendSurfaceMutableStateImpl.h" -#include "src/gpu/GrManagedResource.h" -#include "src/gpu/GrRefCnt.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/vk/GrVkDescriptorSet.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrVkTypesPriv.h" +#include "src/gpu/ganesh/GrAttachment.h" +#include "src/gpu/ganesh/GrBackendSurfaceMutableStateImpl.h" +#include "src/gpu/ganesh/GrManagedResource.h" +#include "src/gpu/ganesh/GrRefCnt.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" #include @@ -199,7 +199,7 @@ class GrVkImage : public GrAttachment { typedef void* ReleaseCtx; typedef void (*ReleaseProc)(ReleaseCtx); - void setResourceRelease(sk_sp releaseHelper); + void setResourceRelease(sk_sp releaseHelper); // Helpers to use for setting the layout of the VkImage static VkPipelineStageFlags LayoutToPipelineSrcStageFlags(const VkImageLayout layout); @@ -228,7 +228,8 @@ class GrVkImage : public GrAttachment { sk_sp mutableState, sk_sp framebufferView, sk_sp textureView, - SkBudgeted); + SkBudgeted, + std::string_view label); GrVkImage(GrVkGpu* gpu, SkISize dimensions, @@ -239,7 +240,8 @@ class GrVkImage : public GrAttachment { sk_sp textureView, GrBackendObjectOwnership, GrWrapCacheable, - bool forSecondaryCB); + bool forSecondaryCB, + std::string_view label); void init(GrVkGpu*, bool forSecondaryCB); diff --git a/third_party/skia/src/gpu/vk/GrVkImageLayout.h b/third_party/skia/src/gpu/ganesh/vk/GrVkImageLayout.h similarity index 100% rename from third_party/skia/src/gpu/vk/GrVkImageLayout.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkImageLayout.h diff --git a/third_party/skia/src/gpu/vk/GrVkImageView.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkImageView.cpp similarity index 93% rename from third_party/skia/src/gpu/vk/GrVkImageView.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkImageView.cpp index b5ae8e18da2e..31bac63f3ed8 100644 --- a/third_party/skia/src/gpu/vk/GrVkImageView.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkImageView.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImageView.h" -#include "src/gpu/vk/GrVkSamplerYcbcrConversion.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImageView.h" +#include "src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" sk_sp GrVkImageView::Make(GrVkGpu* gpu, VkImage image, diff --git a/third_party/skia/src/gpu/vk/GrVkImageView.h b/third_party/skia/src/gpu/ganesh/vk/GrVkImageView.h similarity index 96% rename from third_party/skia/src/gpu/vk/GrVkImageView.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkImageView.h index ec0a2ee9ecb7..4a7a13f90433 100644 --- a/third_party/skia/src/gpu/vk/GrVkImageView.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkImageView.h @@ -10,7 +10,7 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/vk/GrVkManagedResource.h" +#include "src/gpu/ganesh/vk/GrVkManagedResource.h" #include diff --git a/third_party/skia/src/gpu/vk/GrVkInterface.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkInterface.cpp similarity index 99% rename from third_party/skia/src/gpu/vk/GrVkInterface.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkInterface.cpp index acb7bcb82ca8..2eee9c7625db 100644 --- a/third_party/skia/src/gpu/vk/GrVkInterface.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkInterface.cpp @@ -7,8 +7,8 @@ #include "include/gpu/vk/GrVkBackendContext.h" #include "include/gpu/vk/GrVkExtensions.h" -#include "src/gpu/vk/GrVkInterface.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkInterface.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #define ACQUIRE_PROC(name, instance, device) \ fFunctions.f##name = reinterpret_cast(getProc("vk" #name, instance, device)) diff --git a/third_party/skia/src/gpu/vk/GrVkInterface.h b/third_party/skia/src/gpu/ganesh/vk/GrVkInterface.h similarity index 100% rename from third_party/skia/src/gpu/vk/GrVkInterface.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkInterface.h diff --git a/third_party/skia/src/gpu/vk/GrVkMSAALoadManager.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp similarity index 94% rename from third_party/skia/src/gpu/vk/GrVkMSAALoadManager.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp index 39a878e9e1f7..887d2d32fb2b 100644 --- a/third_party/skia/src/gpu/vk/GrVkMSAALoadManager.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp @@ -5,21 +5,21 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkMSAALoadManager.h" +#include "src/gpu/ganesh/vk/GrVkMSAALoadManager.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/vk/GrVkBuffer.h" -#include "src/gpu/vk/GrVkCommandBuffer.h" -#include "src/gpu/vk/GrVkDescriptorSet.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImageView.h" -#include "src/gpu/vk/GrVkPipeline.h" -#include "src/gpu/vk/GrVkRenderTarget.h" -#include "src/gpu/vk/GrVkResourceProvider.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkBuffer.h" +#include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImageView.h" +#include "src/gpu/ganesh/vk/GrVkPipeline.h" +#include "src/gpu/ganesh/vk/GrVkRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" GrVkMSAALoadManager::GrVkMSAALoadManager() : fVertShaderModule(VK_NULL_HANDLE) diff --git a/third_party/skia/src/gpu/vk/GrVkMSAALoadManager.h b/third_party/skia/src/gpu/ganesh/vk/GrVkMSAALoadManager.h similarity index 93% rename from third_party/skia/src/gpu/vk/GrVkMSAALoadManager.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkMSAALoadManager.h index 9a5f7cbafddb..0bb9c18cb1c1 100644 --- a/third_party/skia/src/gpu/vk/GrVkMSAALoadManager.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkMSAALoadManager.h @@ -10,8 +10,8 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/GrNativeRect.h" -#include "src/gpu/vk/GrVkDescriptorSetManager.h" +#include "src/gpu/ganesh/GrNativeRect.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSetManager.h" class GrAttachment; class GrSurface; diff --git a/third_party/skia/src/gpu/vk/GrVkManagedResource.h b/third_party/skia/src/gpu/ganesh/vk/GrVkManagedResource.h similarity index 94% rename from third_party/skia/src/gpu/vk/GrVkManagedResource.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkManagedResource.h index 1489be318ec5..b058b35b24a6 100644 --- a/third_party/skia/src/gpu/vk/GrVkManagedResource.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkManagedResource.h @@ -8,7 +8,7 @@ #ifndef GrVkManagedResource_DEFINED #define GrVkManagedResource_DEFINED -#include "src/gpu/GrManagedResource.h" +#include "src/gpu/ganesh/GrManagedResource.h" class GrVkGpu; diff --git a/third_party/skia/src/gpu/vk/GrVkMemory.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkMemory.cpp similarity index 98% rename from third_party/skia/src/gpu/vk/GrVkMemory.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkMemory.cpp index 6e82ec3a9b7f..37927bc8ad4b 100644 --- a/third_party/skia/src/gpu/vk/GrVkMemory.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkMemory.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkMemory.h" +#include "src/gpu/ganesh/vk/GrVkMemory.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" using AllocationPropertyFlags = GrVkMemoryAllocator::AllocationPropertyFlags; using BufferUsage = GrVkMemoryAllocator::BufferUsage; diff --git a/third_party/skia/src/gpu/vk/GrVkMemory.h b/third_party/skia/src/gpu/ganesh/vk/GrVkMemory.h similarity index 97% rename from third_party/skia/src/gpu/vk/GrVkMemory.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkMemory.h index 4e678dd074fd..4f2a7c90a414 100644 --- a/third_party/skia/src/gpu/vk/GrVkMemory.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkMemory.h @@ -10,8 +10,8 @@ #include "include/gpu/vk/GrVkMemoryAllocator.h" #include "include/gpu/vk/GrVkTypes.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkTArray.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" class GrVkGpu; diff --git a/third_party/skia/src/gpu/vk/GrVkOpsRenderPass.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkOpsRenderPass.cpp similarity index 97% rename from third_party/skia/src/gpu/vk/GrVkOpsRenderPass.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkOpsRenderPass.cpp index f867df419d5c..6ef2775cae7f 100644 --- a/third_party/skia/src/gpu/vk/GrVkOpsRenderPass.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkOpsRenderPass.cpp @@ -5,30 +5,30 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkOpsRenderPass.h" +#include "src/gpu/ganesh/vk/GrVkOpsRenderPass.h" #include "include/core/SkDrawable.h" #include "include/core/SkRect.h" #include "include/gpu/GrBackendDrawableInfo.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/vk/GrVkBuffer.h" -#include "src/gpu/vk/GrVkCommandBuffer.h" -#include "src/gpu/vk/GrVkCommandPool.h" -#include "src/gpu/vk/GrVkFramebuffer.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImage.h" -#include "src/gpu/vk/GrVkPipeline.h" -#include "src/gpu/vk/GrVkRenderPass.h" -#include "src/gpu/vk/GrVkRenderTarget.h" -#include "src/gpu/vk/GrVkResourceProvider.h" -#include "src/gpu/vk/GrVkSemaphore.h" -#include "src/gpu/vk/GrVkTexture.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/vk/GrVkBuffer.h" +#include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" +#include "src/gpu/ganesh/vk/GrVkCommandPool.h" +#include "src/gpu/ganesh/vk/GrVkFramebuffer.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImage.h" +#include "src/gpu/ganesh/vk/GrVkPipeline.h" +#include "src/gpu/ganesh/vk/GrVkRenderPass.h" +#include "src/gpu/ganesh/vk/GrVkRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkSemaphore.h" +#include "src/gpu/ganesh/vk/GrVkTexture.h" ///////////////////////////////////////////////////////////////////////////// diff --git a/third_party/skia/src/gpu/vk/GrVkOpsRenderPass.h b/third_party/skia/src/gpu/ganesh/vk/GrVkOpsRenderPass.h similarity index 96% rename from third_party/skia/src/gpu/vk/GrVkOpsRenderPass.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkOpsRenderPass.h index 738e2bce01e8..c129c73ff87b 100644 --- a/third_party/skia/src/gpu/vk/GrVkOpsRenderPass.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkOpsRenderPass.h @@ -8,13 +8,13 @@ #ifndef GrVkOpsRenderPass_DEFINED #define GrVkOpsRenderPass_DEFINED -#include "src/gpu/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" #include "include/gpu/GrTypes.h" #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/vk/GrVkPipelineState.h" -#include "src/gpu/vk/GrVkRenderPass.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/vk/GrVkPipelineState.h" +#include "src/gpu/ganesh/vk/GrVkRenderPass.h" class GrVkFramebuffer; class GrVkGpu; diff --git a/third_party/skia/src/gpu/vk/GrVkPipeline.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkPipeline.cpp similarity index 90% rename from third_party/skia/src/gpu/vk/GrVkPipeline.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkPipeline.cpp index 8b61563d0a71..df96a3ddd761 100644 --- a/third_party/skia/src/gpu/vk/GrVkPipeline.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkPipeline.cpp @@ -5,16 +5,16 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkPipeline.h" +#include "src/gpu/ganesh/vk/GrVkPipeline.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/vk/GrVkCommandBuffer.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkRenderTarget.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #if defined(SK_ENABLE_SCOPED_LSAN_SUPPRESSIONS) #include @@ -289,47 +289,47 @@ static void setup_multisample_state(int numSamples, multisampleInfo->alphaToOneEnable = VK_FALSE; } -static VkBlendFactor blend_coeff_to_vk_blend(GrBlendCoeff coeff) { +static VkBlendFactor blend_coeff_to_vk_blend(skgpu::BlendCoeff coeff) { switch (coeff) { - case kZero_GrBlendCoeff: + case skgpu::BlendCoeff::kZero: return VK_BLEND_FACTOR_ZERO; - case kOne_GrBlendCoeff: + case skgpu::BlendCoeff::kOne: return VK_BLEND_FACTOR_ONE; - case kSC_GrBlendCoeff: + case skgpu::BlendCoeff::kSC: return VK_BLEND_FACTOR_SRC_COLOR; - case kISC_GrBlendCoeff: + case skgpu::BlendCoeff::kISC: return VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR; - case kDC_GrBlendCoeff: + case skgpu::BlendCoeff::kDC: return VK_BLEND_FACTOR_DST_COLOR; - case kIDC_GrBlendCoeff: + case skgpu::BlendCoeff::kIDC: return VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR; - case kSA_GrBlendCoeff: + case skgpu::BlendCoeff::kSA: return VK_BLEND_FACTOR_SRC_ALPHA; - case kISA_GrBlendCoeff: + case skgpu::BlendCoeff::kISA: return VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; - case kDA_GrBlendCoeff: + case skgpu::BlendCoeff::kDA: return VK_BLEND_FACTOR_DST_ALPHA; - case kIDA_GrBlendCoeff: + case skgpu::BlendCoeff::kIDA: return VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA; - case kConstC_GrBlendCoeff: + case skgpu::BlendCoeff::kConstC: return VK_BLEND_FACTOR_CONSTANT_COLOR; - case kIConstC_GrBlendCoeff: + case skgpu::BlendCoeff::kIConstC: return VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR; - case kS2C_GrBlendCoeff: + case skgpu::BlendCoeff::kS2C: return VK_BLEND_FACTOR_SRC1_COLOR; - case kIS2C_GrBlendCoeff: + case skgpu::BlendCoeff::kIS2C: return VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR; - case kS2A_GrBlendCoeff: + case skgpu::BlendCoeff::kS2A: return VK_BLEND_FACTOR_SRC1_ALPHA; - case kIS2A_GrBlendCoeff: + case skgpu::BlendCoeff::kIS2A: return VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA; - case kIllegal_GrBlendCoeff: + case skgpu::BlendCoeff::kIllegal: return VK_BLEND_FACTOR_ZERO; } SkUNREACHABLE; } -static VkBlendOp blend_equation_to_vk_blend_op(GrBlendEquation equation) { +static VkBlendOp blend_equation_to_vk_blend_op(skgpu::BlendEquation equation) { static const VkBlendOp gTable[] = { // Basic blend ops VK_BLEND_OP_ADD, @@ -356,37 +356,37 @@ static VkBlendOp blend_equation_to_vk_blend_op(GrBlendEquation equation) { // Illegal. VK_BLEND_OP_ADD, }; - static_assert(0 == kAdd_GrBlendEquation); - static_assert(1 == kSubtract_GrBlendEquation); - static_assert(2 == kReverseSubtract_GrBlendEquation); - static_assert(3 == kScreen_GrBlendEquation); - static_assert(4 == kOverlay_GrBlendEquation); - static_assert(5 == kDarken_GrBlendEquation); - static_assert(6 == kLighten_GrBlendEquation); - static_assert(7 == kColorDodge_GrBlendEquation); - static_assert(8 == kColorBurn_GrBlendEquation); - static_assert(9 == kHardLight_GrBlendEquation); - static_assert(10 == kSoftLight_GrBlendEquation); - static_assert(11 == kDifference_GrBlendEquation); - static_assert(12 == kExclusion_GrBlendEquation); - static_assert(13 == kMultiply_GrBlendEquation); - static_assert(14 == kHSLHue_GrBlendEquation); - static_assert(15 == kHSLSaturation_GrBlendEquation); - static_assert(16 == kHSLColor_GrBlendEquation); - static_assert(17 == kHSLLuminosity_GrBlendEquation); - static_assert(SK_ARRAY_COUNT(gTable) == kGrBlendEquationCnt); - - SkASSERT((unsigned)equation < kGrBlendEquationCnt); - return gTable[equation]; + static_assert(0 == (int)skgpu::BlendEquation::kAdd); + static_assert(1 == (int)skgpu::BlendEquation::kSubtract); + static_assert(2 == (int)skgpu::BlendEquation::kReverseSubtract); + static_assert(3 == (int)skgpu::BlendEquation::kScreen); + static_assert(4 == (int)skgpu::BlendEquation::kOverlay); + static_assert(5 == (int)skgpu::BlendEquation::kDarken); + static_assert(6 == (int)skgpu::BlendEquation::kLighten); + static_assert(7 == (int)skgpu::BlendEquation::kColorDodge); + static_assert(8 == (int)skgpu::BlendEquation::kColorBurn); + static_assert(9 == (int)skgpu::BlendEquation::kHardLight); + static_assert(10 == (int)skgpu::BlendEquation::kSoftLight); + static_assert(11 == (int)skgpu::BlendEquation::kDifference); + static_assert(12 == (int)skgpu::BlendEquation::kExclusion); + static_assert(13 == (int)skgpu::BlendEquation::kMultiply); + static_assert(14 == (int)skgpu::BlendEquation::kHSLHue); + static_assert(15 == (int)skgpu::BlendEquation::kHSLSaturation); + static_assert(16 == (int)skgpu::BlendEquation::kHSLColor); + static_assert(17 == (int)skgpu::BlendEquation::kHSLLuminosity); + static_assert(SK_ARRAY_COUNT(gTable) == skgpu::kBlendEquationCnt); + + SkASSERT((unsigned)equation < skgpu::kBlendEquationCnt); + return gTable[(int)equation]; } static void setup_color_blend_state(const GrXferProcessor::BlendInfo& blendInfo, VkPipelineColorBlendStateCreateInfo* colorBlendInfo, VkPipelineColorBlendAttachmentState* attachmentState) { - GrBlendEquation equation = blendInfo.fEquation; - GrBlendCoeff srcCoeff = blendInfo.fSrcBlend; - GrBlendCoeff dstCoeff = blendInfo.fDstBlend; - bool blendOff = GrBlendShouldDisable(equation, srcCoeff, dstCoeff); + skgpu::BlendEquation equation = blendInfo.fEquation; + skgpu::BlendCoeff srcCoeff = blendInfo.fSrcBlend; + skgpu::BlendCoeff dstCoeff = blendInfo.fDstBlend; + bool blendOff = skgpu::BlendShouldDisable(equation, srcCoeff, dstCoeff); memset(attachmentState, 0, sizeof(VkPipelineColorBlendAttachmentState)); attachmentState->blendEnable = !blendOff; @@ -648,10 +648,10 @@ void GrVkPipeline::SetDynamicBlendConstantState(GrVkGpu* gpu, const skgpu::Swizzle& swizzle, const GrXferProcessor& xferProcessor) { const GrXferProcessor::BlendInfo& blendInfo = xferProcessor.getBlendInfo(); - GrBlendCoeff srcCoeff = blendInfo.fSrcBlend; - GrBlendCoeff dstCoeff = blendInfo.fDstBlend; + skgpu::BlendCoeff srcCoeff = blendInfo.fSrcBlend; + skgpu::BlendCoeff dstCoeff = blendInfo.fDstBlend; float floatColors[4]; - if (GrBlendCoeffRefsConstant(srcCoeff) || GrBlendCoeffRefsConstant(dstCoeff)) { + if (skgpu::BlendCoeffRefsConstant(srcCoeff) || skgpu::BlendCoeffRefsConstant(dstCoeff)) { // Swizzle the blend to match what the shader will output. SkPMColor4f blendConst = swizzle.applyTo(blendInfo.fBlendConstant); floatColors[0] = blendConst.fR; diff --git a/third_party/skia/src/gpu/vk/GrVkPipeline.h b/third_party/skia/src/gpu/ganesh/vk/GrVkPipeline.h similarity index 94% rename from third_party/skia/src/gpu/vk/GrVkPipeline.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkPipeline.h index 18f9b6961195..e81f31a3848f 100644 --- a/third_party/skia/src/gpu/vk/GrVkPipeline.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkPipeline.h @@ -9,10 +9,10 @@ #define GrVkPipeline_DEFINED #include "include/gpu/vk/GrVkTypes.h" -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/vk/GrVkManagedResource.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/vk/GrVkManagedResource.h" #include diff --git a/third_party/skia/src/gpu/vk/GrVkPipelineState.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineState.cpp similarity index 93% rename from third_party/skia/src/gpu/vk/GrVkPipelineState.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkPipelineState.cpp index 73d00437ca2c..1ab06f27420b 100644 --- a/third_party/skia/src/gpu/vk/GrVkPipelineState.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineState.cpp @@ -5,27 +5,27 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkPipelineState.h" +#include "src/gpu/ganesh/vk/GrVkPipelineState.h" #include "src/core/SkMipmap.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/vk/GrVkBuffer.h" -#include "src/gpu/vk/GrVkCommandBuffer.h" -#include "src/gpu/vk/GrVkDescriptorPool.h" -#include "src/gpu/vk/GrVkDescriptorSet.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImageView.h" -#include "src/gpu/vk/GrVkMemory.h" -#include "src/gpu/vk/GrVkPipeline.h" -#include "src/gpu/vk/GrVkRenderTarget.h" -#include "src/gpu/vk/GrVkSampler.h" -#include "src/gpu/vk/GrVkTexture.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/vk/GrVkBuffer.h" +#include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorPool.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImageView.h" +#include "src/gpu/ganesh/vk/GrVkMemory.h" +#include "src/gpu/ganesh/vk/GrVkPipeline.h" +#include "src/gpu/ganesh/vk/GrVkRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkSampler.h" +#include "src/gpu/ganesh/vk/GrVkTexture.h" GrVkPipelineState::GrVkPipelineState( GrVkGpu* gpu, diff --git a/third_party/skia/src/gpu/vk/GrVkPipelineState.h b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineState.h similarity index 94% rename from third_party/skia/src/gpu/vk/GrVkPipelineState.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkPipelineState.h index 3a70512259ec..6fa67124dab4 100644 --- a/third_party/skia/src/gpu/vk/GrVkPipelineState.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineState.h @@ -10,11 +10,11 @@ #define GrVkPipelineState_DEFINED #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/GrRefCnt.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/vk/GrVkDescriptorSet.h" -#include "src/gpu/vk/GrVkDescriptorSetManager.h" -#include "src/gpu/vk/GrVkPipelineStateDataManager.h" +#include "src/gpu/ganesh/GrRefCnt.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSetManager.h" +#include "src/gpu/ganesh/vk/GrVkPipelineStateDataManager.h" class GrPipeline; class GrStencilSettings; diff --git a/third_party/skia/src/gpu/vk/GrVkPipelineStateBuilder.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.cpp similarity index 96% rename from third_party/skia/src/gpu/vk/GrVkPipelineStateBuilder.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.cpp index 71db42d32bf5..54bc7f857a11 100644 --- a/third_party/skia/src/gpu/vk/GrVkPipelineStateBuilder.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.cpp @@ -5,21 +5,21 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkPipelineStateBuilder.h" +#include "src/gpu/ganesh/vk/GrVkPipelineStateBuilder.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrAutoLocaleSetter.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrPersistentCacheUtils.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/vk/GrVkDescriptorSetManager.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkPipeline.h" -#include "src/gpu/vk/GrVkRenderPass.h" -#include "src/gpu/vk/GrVkRenderTarget.h" +#include "src/gpu/ganesh/GrAutoLocaleSetter.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrPersistentCacheUtils.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSetManager.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkPipeline.h" +#include "src/gpu/ganesh/vk/GrVkRenderPass.h" +#include "src/gpu/ganesh/vk/GrVkRenderTarget.h" #include "src/utils/SkShaderUtils.h" GrVkPipelineState* GrVkPipelineStateBuilder::CreatePipelineState( @@ -189,8 +189,7 @@ GrVkPipelineState* GrVkPipelineStateBuilder::finalize(const GrProgramDesc& desc, SkSL::Program::Settings settings; settings.fRTFlipBinding = this->gpu()->vkCaps().getFragmentUniformBinding(); settings.fRTFlipSet = this->gpu()->vkCaps().getFragmentUniformSet(); - settings.fSharpenTextures = - this->gpu()->getContext()->priv().options().fSharpenMipmappedTextures; + settings.fSharpenTextures = true; settings.fRTFlipOffset = fUniformHandler.getRTFlipOffset(); settings.fUsePushConstants = usePushConstants; if (fFS.fForceHighPrecision) { diff --git a/third_party/skia/src/gpu/vk/GrVkPipelineStateBuilder.h b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.h similarity index 92% rename from third_party/skia/src/gpu/vk/GrVkPipelineStateBuilder.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.h index cdcc1e526546..19aafaa0f18d 100644 --- a/third_party/skia/src/gpu/vk/GrVkPipelineStateBuilder.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.h @@ -9,11 +9,11 @@ #define GrVkPipelineStateBuilder_DEFINED #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/vk/GrVkPipelineState.h" -#include "src/gpu/vk/GrVkUniformHandler.h" -#include "src/gpu/vk/GrVkVaryingHandler.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/vk/GrVkPipelineState.h" +#include "src/gpu/ganesh/vk/GrVkUniformHandler.h" +#include "src/gpu/ganesh/vk/GrVkVaryingHandler.h" #include "src/sksl/SkSLCompiler.h" class GrProgramDesc; diff --git a/third_party/skia/src/gpu/vk/GrVkPipelineStateCache.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateCache.cpp similarity index 89% rename from third_party/skia/src/gpu/vk/GrVkPipelineStateCache.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateCache.cpp index 4c15bb311201..1205f7e7c071 100644 --- a/third_party/skia/src/gpu/vk/GrVkPipelineStateCache.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateCache.cpp @@ -8,16 +8,16 @@ #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkOpts.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrProcessor.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkPipelineState.h" -#include "src/gpu/vk/GrVkPipelineStateBuilder.h" -#include "src/gpu/vk/GrVkResourceProvider.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkPipelineState.h" +#include "src/gpu/ganesh/vk/GrVkPipelineStateBuilder.h" +#include "src/gpu/ganesh/vk/GrVkResourceProvider.h" #ifdef SK_DEBUG // Display pipeline state cache usage diff --git a/third_party/skia/src/gpu/vk/GrVkPipelineStateDataManager.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateDataManager.cpp similarity index 95% rename from third_party/skia/src/gpu/vk/GrVkPipelineStateDataManager.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateDataManager.cpp index 96e86f5248a1..00fe45dea22a 100644 --- a/third_party/skia/src/gpu/vk/GrVkPipelineStateDataManager.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateDataManager.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkPipelineStateDataManager.h" +#include "src/gpu/ganesh/vk/GrVkPipelineStateDataManager.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/vk/GrVkCommandBuffer.h" -#include "src/gpu/vk/GrVkGpu.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" GrVkPipelineStateDataManager::GrVkPipelineStateDataManager(const UniformInfoArray& uniforms, uint32_t uniformSize, diff --git a/third_party/skia/src/gpu/vk/GrVkPipelineStateDataManager.h b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateDataManager.h similarity index 94% rename from third_party/skia/src/gpu/vk/GrVkPipelineStateDataManager.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateDataManager.h index cf4451ef684c..01170efc0891 100644 --- a/third_party/skia/src/gpu/vk/GrVkPipelineStateDataManager.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkPipelineStateDataManager.h @@ -8,10 +8,10 @@ #ifndef GrVkPipelineStateDataManager_DEFINED #define GrVkPipelineStateDataManager_DEFINED -#include "src/gpu/GrUniformDataManager.h" +#include "src/gpu/ganesh/GrUniformDataManager.h" #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/vk/GrVkUniformHandler.h" +#include "src/gpu/ganesh/vk/GrVkUniformHandler.h" class GrGpuBuffer; class GrVkCommandBuffer; diff --git a/third_party/skia/src/gpu/vk/GrVkRenderPass.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkRenderPass.cpp similarity index 98% rename from third_party/skia/src/gpu/vk/GrVkRenderPass.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkRenderPass.cpp index 62e40d4ba083..0fcba14f8049 100644 --- a/third_party/skia/src/gpu/vk/GrVkRenderPass.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkRenderPass.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkRenderPass.h" +#include "src/gpu/ganesh/vk/GrVkRenderPass.h" -#include "src/gpu/GrProcessor.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/vk/GrVkFramebuffer.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkRenderTarget.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/vk/GrVkFramebuffer.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" typedef GrVkRenderPass::AttachmentsDescriptor::AttachmentDesc AttachmentDesc; diff --git a/third_party/skia/src/gpu/vk/GrVkRenderPass.h b/third_party/skia/src/gpu/ganesh/vk/GrVkRenderPass.h similarity index 98% rename from third_party/skia/src/gpu/vk/GrVkRenderPass.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkRenderPass.h index 10a40745b47a..3779cab39a3a 100644 --- a/third_party/skia/src/gpu/vk/GrVkRenderPass.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkRenderPass.h @@ -11,7 +11,7 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/vk/GrVkTypes.h" #include "include/private/SkMacros.h" -#include "src/gpu/vk/GrVkManagedResource.h" +#include "src/gpu/ganesh/vk/GrVkManagedResource.h" #include @@ -80,7 +80,7 @@ class GrVkRenderPass : public GrVkManagedResource { uint32_t fAttachmentCount; }; - enum AttachmentFlags { + enum AttachmentFlags : uint32_t { kColor_AttachmentFlag = 0x1, kStencil_AttachmentFlag = 0x2, kResolve_AttachmentFlag = 0x4, @@ -199,7 +199,6 @@ class GrVkRenderPass : public GrVkManagedResource { uint32_t fClearValueCount; // For internally created render passes we assume the color attachment index is always 0. uint32_t fColorAttachmentIndex = 0; - uint32_t fResolveAttachmentIndex = 0; using INHERITED = GrVkManagedResource; }; diff --git a/third_party/skia/src/gpu/vk/GrVkRenderTarget.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkRenderTarget.cpp similarity index 91% rename from third_party/skia/src/gpu/vk/GrVkRenderTarget.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkRenderTarget.cpp index 011833df702a..7532c82abbb2 100644 --- a/third_party/skia/src/gpu/vk/GrVkRenderTarget.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkRenderTarget.cpp @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkRenderTarget.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrBackendSurfaceMutableStateImpl.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/vk/GrVkCommandBuffer.h" -#include "src/gpu/vk/GrVkDescriptorSet.h" -#include "src/gpu/vk/GrVkFramebuffer.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImageView.h" -#include "src/gpu/vk/GrVkResourceProvider.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrBackendSurfaceMutableStateImpl.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" +#include "src/gpu/ganesh/vk/GrVkFramebuffer.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImageView.h" +#include "src/gpu/ganesh/vk/GrVkResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #include "include/gpu/vk/GrVkTypes.h" @@ -52,12 +52,18 @@ GrVkRenderTarget::GrVkRenderTarget(GrVkGpu* gpu, SkISize dimensions, sk_sp colorAttachment, sk_sp resolveAttachment, - CreateType createType) - : GrSurface(gpu, dimensions, - colorAttachment->isProtected() ? GrProtected::kYes : GrProtected::kNo) + CreateType createType, + std::string_view label) + : GrSurface(gpu, + dimensions, + colorAttachment->isProtected() ? GrProtected::kYes : GrProtected::kNo, + label) // for the moment we only support 1:1 color to stencil - , GrRenderTarget(gpu, dimensions, colorAttachment->numSamples(), - colorAttachment->isProtected() ? GrProtected::kYes : GrProtected::kNo) + , GrRenderTarget(gpu, + dimensions, + colorAttachment->numSamples(), + colorAttachment->isProtected() ? GrProtected::kYes : GrProtected::kNo, + label) , fColorAttachment(std::move(colorAttachment)) , fResolveAttachment(std::move(resolveAttachment)) , fCachedFramebuffers() { @@ -82,13 +88,19 @@ GrVkRenderTarget::GrVkRenderTarget(GrVkGpu* gpu, GrVkRenderTarget::GrVkRenderTarget(GrVkGpu* gpu, SkISize dimensions, - sk_sp externalFramebuffer) - : GrSurface(gpu, dimensions, + sk_sp externalFramebuffer, + std::string_view label) + : GrSurface(gpu, + dimensions, externalFramebuffer->colorAttachment()->isProtected() ? GrProtected::kYes - : GrProtected::kNo) - , GrRenderTarget(gpu, dimensions, 1, + : GrProtected::kNo, + label) + , GrRenderTarget(gpu, + dimensions, + 1, externalFramebuffer->colorAttachment()->isProtected() ? GrProtected::kYes - : GrProtected::kNo) + : GrProtected::kNo, + label) , fCachedFramebuffers() , fExternalFramebuffer(externalFramebuffer) { SkASSERT(fExternalFramebuffer); @@ -146,8 +158,12 @@ sk_sp GrVkRenderTarget::MakeWrappedRenderTarget( return nullptr; } - GrVkRenderTarget* vkRT = new GrVkRenderTarget(gpu,dimensions, std::move(colorAttachment), - nullptr, CreateType::kDirectlyWrapped); + GrVkRenderTarget* vkRT = new GrVkRenderTarget(gpu, + dimensions, + std::move(colorAttachment), + nullptr, + CreateType::kDirectlyWrapped, + /*label=*/{}); return sk_sp(vkRT); } @@ -194,7 +210,8 @@ sk_sp GrVkRenderTarget::MakeSecondaryCBRenderTarget( gpu, std::move(colorAttachment), sk_sp(rp), std::move(scb))); - GrVkRenderTarget* vkRT = new GrVkRenderTarget(gpu, dimensions, std::move(framebuffer)); + GrVkRenderTarget* vkRT = + new GrVkRenderTarget(gpu, dimensions, std::move(framebuffer), /*label=*/{}); return sk_sp(vkRT); } diff --git a/third_party/skia/src/gpu/vk/GrVkRenderTarget.h b/third_party/skia/src/gpu/ganesh/vk/GrVkRenderTarget.h similarity index 94% rename from third_party/skia/src/gpu/vk/GrVkRenderTarget.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkRenderTarget.h index f0bc6c66c856..c5cdcda1c2ea 100644 --- a/third_party/skia/src/gpu/vk/GrVkRenderTarget.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkRenderTarget.h @@ -9,12 +9,12 @@ #ifndef GrVkRenderTarget_DEFINED #define GrVkRenderTarget_DEFINED -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/vk/GrVkImage.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkImage.h" #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/vk/GrVkRenderPass.h" -#include "src/gpu/vk/GrVkResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkRenderPass.h" +#include "src/gpu/ganesh/vk/GrVkResourceProvider.h" class GrVkFramebuffer; class GrVkGpu; @@ -123,7 +123,8 @@ class GrVkRenderTarget : public GrRenderTarget { SkISize dimensions, sk_sp colorAttachment, sk_sp resolveImage, - CreateType createType); + CreateType createType, + std::string_view label); void onAbandon() override; void onRelease() override; @@ -135,7 +136,8 @@ class GrVkRenderTarget : public GrRenderTarget { // For external framebuffers that wrap a secondary command buffer GrVkRenderTarget(GrVkGpu* gpu, SkISize dimensions, - sk_sp externalFramebuffer); + sk_sp externalFramebuffer, + std::string_view label); void setFlags(); @@ -158,7 +160,7 @@ class GrVkRenderTarget : public GrRenderTarget { // In Vulkan we call the release proc after we are finished with the underlying // GrVkImage::Resource object (which occurs after the GPU has finished all work on it). - void onSetRelease(sk_sp releaseHelper) override { + void onSetRelease(sk_sp releaseHelper) override { // Forward the release proc on to the GrVkImage of the release attachment if we have one, // otherwise the color attachment. GrVkImage* attachment = diff --git a/third_party/skia/src/gpu/vk/GrVkResourceProvider.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkResourceProvider.cpp similarity index 97% rename from third_party/skia/src/gpu/vk/GrVkResourceProvider.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkResourceProvider.cpp index bcd453c5598c..f6040121a2ce 100644 --- a/third_party/skia/src/gpu/vk/GrVkResourceProvider.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkResourceProvider.cpp @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkResourceProvider.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkTaskGroup.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrStencilSettings.h" -#include "src/gpu/vk/GrVkCommandBuffer.h" -#include "src/gpu/vk/GrVkCommandPool.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkPipeline.h" -#include "src/gpu/vk/GrVkRenderTarget.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrStencilSettings.h" +#include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" +#include "src/gpu/ganesh/vk/GrVkCommandPool.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkPipeline.h" +#include "src/gpu/ganesh/vk/GrVkRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" GrVkResourceProvider::GrVkResourceProvider(GrVkGpu* gpu) : fGpu(gpu) @@ -466,7 +466,7 @@ void GrVkResourceProvider::forceSyncAllCommandBuffers() { } void GrVkResourceProvider::addFinishedProcToActiveCommandBuffers( - sk_sp finishedCallback) { + sk_sp finishedCallback) { for (int i = 0; i < fActiveCommandPools.count(); ++i) { GrVkCommandPool* pool = fActiveCommandPools[i]; GrVkPrimaryCommandBuffer* buffer = pool->getPrimaryCommandBuffer(); diff --git a/third_party/skia/src/gpu/vk/GrVkResourceProvider.h b/third_party/skia/src/gpu/ganesh/vk/GrVkResourceProvider.h similarity index 95% rename from third_party/skia/src/gpu/vk/GrVkResourceProvider.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkResourceProvider.h index a05fbea423ef..58f550886024 100644 --- a/third_party/skia/src/gpu/vk/GrVkResourceProvider.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkResourceProvider.h @@ -14,18 +14,18 @@ #include "src/core/SkLRUCache.h" #include "src/core/SkTDynamicHash.h" #include "src/core/SkTInternalLList.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrManagedResource.h" -#include "src/gpu/GrProgramDesc.h" -#include "src/gpu/GrResourceHandle.h" -#include "src/gpu/GrThreadSafePipelineBuilder.h" -#include "src/gpu/vk/GrVkDescriptorPool.h" -#include "src/gpu/vk/GrVkDescriptorSetManager.h" -#include "src/gpu/vk/GrVkPipelineStateBuilder.h" -#include "src/gpu/vk/GrVkRenderPass.h" -#include "src/gpu/vk/GrVkSampler.h" -#include "src/gpu/vk/GrVkSamplerYcbcrConversion.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrManagedResource.h" +#include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrResourceHandle.h" +#include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorPool.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSetManager.h" +#include "src/gpu/ganesh/vk/GrVkPipelineStateBuilder.h" +#include "src/gpu/ganesh/vk/GrVkRenderPass.h" +#include "src/gpu/ganesh/vk/GrVkSampler.h" +#include "src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" class GrVkCommandPool; class GrVkGpu; @@ -116,7 +116,7 @@ class GrVkResourceProvider { // that the client cares about before they explicitly called flush and the GPU may reorder // command execution. So we make sure all previously submitted work finishes before we call the // finishedProc. - void addFinishedProcToActiveCommandBuffers(sk_sp finishedCallback); + void addFinishedProcToActiveCommandBuffers(sk_sp finishedCallback); // Finds or creates a compatible GrVkDescriptorPool for the requested type and count. // The refcount is incremented and a pointer returned. diff --git a/third_party/skia/src/gpu/vk/GrVkSampler.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkSampler.cpp similarity index 89% rename from third_party/skia/src/gpu/vk/GrVkSampler.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkSampler.cpp index 0c9380239dca..b1b120bd316d 100644 --- a/third_party/skia/src/gpu/vk/GrVkSampler.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkSampler.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkSampler.h" +#include "src/gpu/ganesh/vk/GrVkSampler.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkSamplerYcbcrConversion.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.h" static VkSamplerAddressMode wrap_mode_to_vk_sampler_address(GrSamplerState::WrapMode wrapMode) { switch (wrapMode) { @@ -61,8 +61,9 @@ GrVkSampler* GrVkSampler::Create(GrVkGpu* gpu, GrSamplerState samplerState, createInfo.addressModeV = wrap_mode_to_vk_sampler_address(samplerState.wrapModeY()); createInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; // Shouldn't matter createInfo.mipLodBias = 0.0f; - createInfo.anisotropyEnable = VK_FALSE; - createInfo.maxAnisotropy = 1.0f; + createInfo.anisotropyEnable = samplerState.isAniso() ? VK_TRUE : VK_FALSE; + createInfo.maxAnisotropy = std::min(static_cast(samplerState.maxAniso()), + gpu->vkCaps().maxSamplerAnisotropy()); createInfo.compareEnable = VK_FALSE; createInfo.compareOp = VK_COMPARE_OP_NEVER; // Vulkan doesn't have a direct mapping of GL's nearest or linear filters for minFilter since @@ -133,5 +134,8 @@ void GrVkSampler::freeGPUData() const { GrVkSampler::Key GrVkSampler::GenerateKey(GrSamplerState samplerState, const GrVkYcbcrConversionInfo& ycbcrInfo) { - return {samplerState.asIndex(), GrVkSamplerYcbcrConversion::GenerateKey(ycbcrInfo)}; + // In VK the max aniso value is specified in addition to min/mag/mip filters and the + // driver is encouraged to consider the other filter settings when doing aniso. + return {samplerState.asKey(/*anisoIsOrthogonal=*/true), + GrVkSamplerYcbcrConversion::GenerateKey(ycbcrInfo)}; } diff --git a/third_party/skia/src/gpu/vk/GrVkSampler.h b/third_party/skia/src/gpu/ganesh/vk/GrVkSampler.h similarity index 91% rename from third_party/skia/src/gpu/vk/GrVkSampler.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkSampler.h index ff3727d89417..87ccce0ed9f3 100644 --- a/third_party/skia/src/gpu/vk/GrVkSampler.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkSampler.h @@ -10,8 +10,8 @@ #include "include/gpu/vk/GrVkTypes.h" #include "src/core/SkOpts.h" -#include "src/gpu/vk/GrVkManagedResource.h" -#include "src/gpu/vk/GrVkSamplerYcbcrConversion.h" +#include "src/gpu/ganesh/vk/GrVkManagedResource.h" +#include "src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.h" #include #include @@ -27,15 +27,15 @@ class GrVkSampler : public GrVkManagedResource { const VkSampler* samplerPtr() const { return &fSampler; } struct Key { - Key(uint8_t samplerKey, const GrVkSamplerYcbcrConversion::Key& ycbcrKey) { + Key(uint32_t samplerKey, const GrVkSamplerYcbcrConversion::Key& ycbcrKey) { // We must memset here since the GrVkSamplerYcbcrConversion has a 64 bit value which may // force alignment padding to occur in the middle of the Key struct. memset(this, 0, sizeof(Key)); fSamplerKey = samplerKey; fYcbcrKey = ycbcrKey; } - uint8_t fSamplerKey; GrVkSamplerYcbcrConversion::Key fYcbcrKey; + uint32_t fSamplerKey; bool operator==(const Key& that) const { return this->fSamplerKey == that.fSamplerKey && diff --git a/third_party/skia/src/gpu/vk/GrVkSamplerYcbcrConversion.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.cpp similarity index 98% rename from third_party/skia/src/gpu/vk/GrVkSamplerYcbcrConversion.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.cpp index d3659e407a76..0a5586118c3e 100644 --- a/third_party/skia/src/gpu/vk/GrVkSamplerYcbcrConversion.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkSamplerYcbcrConversion.h" +#include "src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.h" -#include "src/gpu/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" GrVkSamplerYcbcrConversion* GrVkSamplerYcbcrConversion::Create( GrVkGpu* gpu, const GrVkYcbcrConversionInfo& info) { diff --git a/third_party/skia/src/gpu/vk/GrVkSamplerYcbcrConversion.h b/third_party/skia/src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.h similarity index 97% rename from third_party/skia/src/gpu/vk/GrVkSamplerYcbcrConversion.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.h index 4296b7e2cf67..8b157c96c706 100644 --- a/third_party/skia/src/gpu/vk/GrVkSamplerYcbcrConversion.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion.h @@ -8,7 +8,7 @@ #ifndef GrVkSamplerYcbcrConverison_DEFINED #define GrVkSamplerYcbcrConverison_DEFINED -#include "src/gpu/vk/GrVkManagedResource.h" +#include "src/gpu/ganesh/vk/GrVkManagedResource.h" #include "include/gpu/vk/GrVkTypes.h" #include "src/core/SkOpts.h" diff --git a/third_party/skia/src/gpu/vk/GrVkSecondaryCBDrawContext.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext.cpp similarity index 95% rename from third_party/skia/src/gpu/vk/GrVkSecondaryCBDrawContext.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext.cpp index 77499d26e1d3..949058cb841a 100644 --- a/third_party/skia/src/gpu/vk/GrVkSecondaryCBDrawContext.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkSecondaryCBDrawContext.h" +#include "src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext_impl.h" #include "include/core/SkDeferredDisplayList.h" #include "include/core/SkImageInfo.h" @@ -14,12 +14,12 @@ #include "include/gpu/GrRecordingContext.h" #include "include/gpu/vk/GrVkTypes.h" #include "src/core/SkSurfacePriv.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" sk_sp GrVkSecondaryCBDrawContext::Make(GrRecordingContext* rContext, const SkImageInfo& imageInfo, diff --git a/third_party/skia/src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext_impl.h b/third_party/skia/src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext_impl.h new file mode 100644 index 000000000000..48b8b3810ac3 --- /dev/null +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext_impl.h @@ -0,0 +1,126 @@ +/* + * 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 GrVkSecondaryCBDrawContext_DEFINED +#define GrVkSecondaryCBDrawContext_DEFINED + +#include "include/core/SkRefCnt.h" +#include "include/core/SkSurfaceProps.h" +#include "include/core/SkTypes.h" + +class GrBackendSemaphore; +class GrRecordingContext; +struct GrVkDrawableInfo; +namespace skgpu { class BaseDevice; } +class SkCanvas; +class SkDeferredDisplayList; +struct SkImageInfo; +class SkSurfaceCharacterization; +class SkSurfaceProps; + +/** + * This class is a private header that is intended to only be used inside of Chromium. This requires + * Chromium to burrow in and include this specifically since it is not part of skia's public include + * directory. + */ + +/** + * This class is used to draw into an external Vulkan secondary command buffer that is imported + * by the client. The secondary command buffer that gets imported must already have had begin called + * on it with VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT. Thus any draws to the imported + * command buffer cannot require changing the render pass. This requirement means that certain types + * of draws will not be supported when using a GrVkSecondaryCBDrawContext. This includes: + * Draws that require a dst copy for blending will be dropped + * Text draws will be dropped (these may require intermediate uploads of text data) + * Read and Write pixels will not work + * Any other draw that requires a copy will fail (this includes using backdrop filter with save + * layer). + * Stenciling is also disabled, but that should not restrict any actual draws from working. + * + * While using a GrVkSecondaryCBDrawContext, the client can also draw into normal SkSurfaces and + * then draw those SkSufaces (as SkImages) into the GrVkSecondaryCBDrawContext. If any of the + * previously mentioned unsupported draws are needed by the client, they can draw them into an + * offscreen surface, and then draw that into the GrVkSecondaryCBDrawContext. + * + * After all drawing to the GrVkSecondaryCBDrawContext has been done, the client must call flush() + * on the GrVkSecondaryCBDrawContext to actually fill in the secondary VkCommandBuffer with the + * draws. + * + * Additionally, the client must keep the GrVkSecondaryCBDrawContext alive until the secondary + * VkCommandBuffer has been submitted and all work finished on the GPU. Before deleting the + * GrVkSecondaryCBDrawContext, the client must call releaseResources() so that Skia can cleanup + * any internal objects that were created for the draws into the secondary command buffer. + */ +class SK_SPI GrVkSecondaryCBDrawContext : public SkRefCnt { +public: + static sk_sp Make(GrRecordingContext*, + const SkImageInfo&, + const GrVkDrawableInfo&, + const SkSurfaceProps* props); + + ~GrVkSecondaryCBDrawContext() override; + + SkCanvas* getCanvas(); + + // Records all the draws to the imported secondary command buffer and sets any dependent + // offscreen draws to the GPU. + void flush(); + + /** Inserts a list of GPU semaphores that Skia will have the driver wait on before executing + commands for this secondary CB. The wait semaphores will get added to the VkCommandBuffer + owned by this GrContext when flush() is called, and not the command buffer which the + Secondary CB is from. This will guarantee that the driver waits on the semaphores before + the secondary command buffer gets executed. If this call returns false, then the GPU + back end will not wait on any passed in semaphores, and the client will still own the + semaphores, regardless of the value of deleteSemaphoresAfterWait. + + If deleteSemaphoresAfterWait is false then Skia will not delete the semaphores. In this case + it is the client's responsibility to not destroy or attempt to reuse the semaphores until it + knows that Skia has finished waiting on them. This can be done by using finishedProcs + on flush calls. + + @param numSemaphores size of waitSemaphores array + @param waitSemaphores array of semaphore containers + @paramm deleteSemaphoresAfterWait who owns and should delete the semaphores + @return true if GPU is waiting on semaphores + */ + bool wait(int numSemaphores, + const GrBackendSemaphore waitSemaphores[], + bool deleteSemaphoresAfterWait = true); + + // This call will release all resources held by the draw context. The client must call + // releaseResources() before deleting the drawing context. However, the resources also include + // any Vulkan resources that were created and used for draws. Therefore the client must only + // call releaseResources() after submitting the secondary command buffer, and waiting for it to + // finish on the GPU. If it is called earlier then some vulkan objects may be deleted while they + // are still in use by the GPU. + void releaseResources(); + + const SkSurfaceProps& props() const { return fProps; } + + // TODO: Fill out these calls to support DDL + bool characterize(SkSurfaceCharacterization* characterization) const; + +#ifndef SK_DDL_IS_UNIQUE_POINTER + bool draw(sk_sp deferredDisplayList); +#else + bool draw(const SkDeferredDisplayList* deferredDisplayList); +#endif + + bool isCompatible(const SkSurfaceCharacterization& characterization) const; + +private: + explicit GrVkSecondaryCBDrawContext(sk_sp, const SkSurfaceProps*); + + sk_sp fDevice; + std::unique_ptr fCachedCanvas; + const SkSurfaceProps fProps; + + using INHERITED = SkRefCnt; +}; + +#endif diff --git a/third_party/skia/src/gpu/vk/GrVkSemaphore.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkSemaphore.cpp similarity index 95% rename from third_party/skia/src/gpu/vk/GrVkSemaphore.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkSemaphore.cpp index 21e336e786c4..70c7f0ea8045 100644 --- a/third_party/skia/src/gpu/vk/GrVkSemaphore.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkSemaphore.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkSemaphore.h" +#include "src/gpu/ganesh/vk/GrVkSemaphore.h" #include "include/gpu/GrBackendSemaphore.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #ifdef VK_USE_PLATFORM_WIN32_KHR // windows wants to define this as CreateSemaphoreA or CreateSemaphoreW diff --git a/third_party/skia/src/gpu/vk/GrVkSemaphore.h b/third_party/skia/src/gpu/ganesh/vk/GrVkSemaphore.h similarity index 94% rename from third_party/skia/src/gpu/vk/GrVkSemaphore.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkSemaphore.h index 14bfce7bc619..774eb93d8553 100644 --- a/third_party/skia/src/gpu/vk/GrVkSemaphore.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkSemaphore.h @@ -8,10 +8,11 @@ #ifndef GrVkSemaphore_DEFINED #define GrVkSemaphore_DEFINED -#include "src/gpu/GrSemaphore.h" +#include "src/gpu/ganesh/GrSemaphore.h" #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/vk/GrVkManagedResource.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/vk/GrVkManagedResource.h" #include diff --git a/third_party/skia/src/gpu/vk/GrVkTexture.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkTexture.cpp similarity index 70% rename from third_party/skia/src/gpu/vk/GrVkTexture.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkTexture.cpp index ed1c52abb9a6..307ccb82ba1f 100644 --- a/third_party/skia/src/gpu/vk/GrVkTexture.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkTexture.cpp @@ -6,14 +6,14 @@ */ -#include "src/gpu/vk/GrVkTexture.h" +#include "src/gpu/ganesh/vk/GrVkTexture.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/vk/GrVkDescriptorSet.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImageView.h" -#include "src/gpu/vk/GrVkTextureRenderTarget.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImageView.h" +#include "src/gpu/ganesh/vk/GrVkTextureRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #include "include/gpu/vk/GrVkTypes.h" @@ -24,12 +24,18 @@ GrVkTexture::GrVkTexture(GrVkGpu* gpu, SkBudgeted budgeted, SkISize dimensions, sk_sp texture, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, dimensions, - texture->isProtected() ? GrProtected::kYes : GrProtected::kNo) - , GrTexture(gpu, dimensions, + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, + dimensions, texture->isProtected() ? GrProtected::kYes : GrProtected::kNo, - GrTextureType::k2D, mipmapStatus) + label) + , GrTexture(gpu, + dimensions, + texture->isProtected() ? GrProtected::kYes : GrProtected::kNo, + GrTextureType::k2D, + mipmapStatus, + label) , fTexture(std::move(texture)) , fDescSetCache(kMaxCachedDescSets) { SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == fTexture->mipLevels())); @@ -43,12 +49,24 @@ GrVkTexture::GrVkTexture(GrVkGpu* gpu, } } -GrVkTexture::GrVkTexture(GrVkGpu* gpu, SkISize dimensions, - sk_sp texture, GrMipmapStatus mipmapStatus, - GrWrapCacheable cacheable, GrIOType ioType, bool isExternal) - : GrSurface(gpu, dimensions, texture->isProtected() ? GrProtected::kYes : GrProtected::kNo) - , GrTexture(gpu, dimensions, texture->isProtected() ? GrProtected::kYes : GrProtected::kNo, - isExternal ? GrTextureType::kExternal : GrTextureType::k2D, mipmapStatus) +GrVkTexture::GrVkTexture(GrVkGpu* gpu, + SkISize dimensions, + sk_sp texture, + GrMipmapStatus mipmapStatus, + GrWrapCacheable cacheable, + GrIOType ioType, + bool isExternal, + std::string_view label) + : GrSurface(gpu, + dimensions, + texture->isProtected() ? GrProtected::kYes : GrProtected::kNo, + label) + , GrTexture(gpu, + dimensions, + texture->isProtected() ? GrProtected::kYes : GrProtected::kNo, + isExternal ? GrTextureType::kExternal : GrTextureType::k2D, + mipmapStatus, + label) , fTexture(std::move(texture)) , fDescSetCache(kMaxCachedDescSets) { SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == fTexture->mipLevels())); @@ -63,10 +81,18 @@ GrVkTexture::GrVkTexture(GrVkGpu* gpu, SkISize dimensions, GrVkTexture::GrVkTexture(GrVkGpu* gpu, SkISize dimensions, sk_sp texture, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, dimensions, texture->isProtected() ? GrProtected::kYes : GrProtected::kNo) - , GrTexture(gpu, dimensions, texture->isProtected() ? GrProtected::kYes : GrProtected::kNo, - GrTextureType::k2D, mipmapStatus) + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, + dimensions, + texture->isProtected() ? GrProtected::kYes : GrProtected::kNo, + label) + , GrTexture(gpu, + dimensions, + texture->isProtected() ? GrProtected::kYes : GrProtected::kNo, + GrTextureType::k2D, + mipmapStatus, + label) , fTexture(std::move(texture)) , fDescSetCache(kMaxCachedDescSets) { SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == fTexture->mipLevels())); @@ -88,8 +114,8 @@ sk_sp GrVkTexture::MakeNewTexture(GrVkGpu* gpu, SkBudgeted budgeted if (!texture) { return nullptr; } - return sk_sp(new GrVkTexture(gpu, budgeted, dimensions, std::move(texture), - mipmapStatus)); + return sk_sp(new GrVkTexture( + gpu, budgeted, dimensions, std::move(texture), mipmapStatus, /*label=*/{})); } sk_sp GrVkTexture::MakeWrappedTexture( @@ -117,8 +143,14 @@ sk_sp GrVkTexture::MakeWrappedTexture( bool isExternal = info.fYcbcrConversionInfo.isValid() && (info.fYcbcrConversionInfo.fExternalFormat != 0); isExternal |= (info.fImageTiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT); - return sk_sp(new GrVkTexture(gpu, dimensions, std::move(texture), mipmapStatus, - cacheable, ioType, isExternal)); + return sk_sp(new GrVkTexture(gpu, + dimensions, + std::move(texture), + mipmapStatus, + cacheable, + ioType, + isExternal, + /*label=*/{})); } GrVkTexture::~GrVkTexture() { diff --git a/third_party/skia/src/gpu/vk/GrVkTexture.h b/third_party/skia/src/gpu/ganesh/vk/GrVkTexture.h similarity index 77% rename from third_party/skia/src/gpu/vk/GrVkTexture.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkTexture.h index cbae00e4cfc8..c57ee755bd51 100644 --- a/third_party/skia/src/gpu/vk/GrVkTexture.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkTexture.h @@ -10,9 +10,9 @@ #include "include/gpu/vk/GrVkTypes.h" #include "src/core/SkLRUCache.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/vk/GrVkImage.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/vk/GrVkImage.h" class GrVkDescriptorSet; class GrVkGpu; @@ -61,7 +61,8 @@ class GrVkTexture : public GrTexture { GrVkTexture(GrVkGpu*, SkISize dimensions, sk_sp texture, - GrMipmapStatus); + GrMipmapStatus, + std::string_view label); GrVkGpu* getVkGpu() const; @@ -74,20 +75,32 @@ class GrVkTexture : public GrTexture { // In Vulkan we call the release proc after we are finished with the underlying // GrVkImage::Resource object (which occurs after the GPU has finished all work on it). - void onSetRelease(sk_sp releaseHelper) override { + void onSetRelease(sk_sp releaseHelper) override { // Forward the release proc onto the fTexture's GrVkImage fTexture->setResourceRelease(std::move(releaseHelper)); } private: - GrVkTexture(GrVkGpu*, SkBudgeted, SkISize, sk_sp texture, GrMipmapStatus); + GrVkTexture(GrVkGpu*, + SkBudgeted, + SkISize, + sk_sp texture, + GrMipmapStatus, + std::string_view label); GrVkTexture(GrVkGpu*, SkISize, sk_sp texture, GrMipmapStatus, - GrWrapCacheable, GrIOType, bool isExternal); + GrWrapCacheable, + GrIOType, + bool isExternal, + std::string_view label); sk_sp fTexture; struct SamplerHash { - uint32_t operator()(GrSamplerState state) const { return state.asIndex(); } + uint32_t operator()(GrSamplerState state) const { + // In VK the max aniso value is specified in addition to min/mag/mip filters and the + // driver is encouraged to consider the other filter settings when doing aniso. + return state.asKey(/*anisoIsOrthogonal=*/true); + } }; struct DescriptorCacheEntry; SkLRUCache, SamplerHash> diff --git a/third_party/skia/src/gpu/vk/GrVkTextureRenderTarget.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkTextureRenderTarget.cpp similarity index 76% rename from third_party/skia/src/gpu/vk/GrVkTextureRenderTarget.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkTextureRenderTarget.cpp index b05af936adb0..120b83d7fd51 100644 --- a/third_party/skia/src/gpu/vk/GrVkTextureRenderTarget.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkTextureRenderTarget.cpp @@ -5,15 +5,15 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkTextureRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkTextureRenderTarget.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImage.h" -#include "src/gpu/vk/GrVkImageView.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImage.h" +#include "src/gpu/ganesh/vk/GrVkImageView.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #include "src/core/SkMipmap.h" @@ -28,11 +28,14 @@ GrVkTextureRenderTarget::GrVkTextureRenderTarget( sk_sp texture, sk_sp colorAttachment, sk_sp resolveAttachment, - GrMipmapStatus mipmapStatus) - : GrSurface(gpu, dimensions, texture->isProtected() ? GrProtected::kYes : GrProtected::kNo) - , GrVkTexture(gpu, dimensions, std::move(texture), mipmapStatus) + GrMipmapStatus mipmapStatus, + std::string_view label) + : GrSurface(gpu, dimensions, texture->isProtected() ? GrProtected::kYes : GrProtected::kNo, label) + , GrVkTexture(gpu, dimensions, std::move(texture), mipmapStatus, label) , GrVkRenderTarget(gpu, dimensions, std::move(colorAttachment), - std::move(resolveAttachment), CreateType::kFromTextureRT) { + std::move(resolveAttachment), + CreateType::kFromTextureRT, + label) { this->registerWithCache(budgeted); } @@ -43,11 +46,15 @@ GrVkTextureRenderTarget::GrVkTextureRenderTarget( sk_sp colorAttachment, sk_sp resolveAttachment, GrMipmapStatus mipmapStatus, - GrWrapCacheable cacheable) - : GrSurface(gpu, dimensions, texture->isProtected() ? GrProtected::kYes : GrProtected::kNo) - , GrVkTexture(gpu, dimensions, std::move(texture), mipmapStatus) + GrWrapCacheable cacheable, + std::string_view label) + : GrSurface(gpu, + dimensions, + texture->isProtected() ? GrProtected::kYes : GrProtected::kNo, + label) + , GrVkTexture(gpu, dimensions, std::move(texture), mipmapStatus, label) , GrVkRenderTarget(gpu, dimensions, std::move(colorAttachment), - std::move(resolveAttachment), CreateType::kFromTextureRT) { + std::move(resolveAttachment), CreateType::kFromTextureRT, label) { this->registerWithCacheWrapped(cacheable); } @@ -101,9 +108,14 @@ sk_sp GrVkTextureRenderTarget::MakeNewTextureRenderTarg } SkASSERT(colorAttachment); SkASSERT(sampleCnt == 1 || resolveAttachment); - return sk_sp(new GrVkTextureRenderTarget( - gpu, budgeted, dimensions, std::move(texture), std::move(colorAttachment), - std::move(resolveAttachment), mipmapStatus)); + return sk_sp(new GrVkTextureRenderTarget(gpu, + budgeted, + dimensions, + std::move(texture), + std::move(colorAttachment), + std::move(resolveAttachment), + mipmapStatus, + /*label=*/{})); } sk_sp GrVkTextureRenderTarget::MakeWrappedTextureRenderTarget( @@ -146,9 +158,14 @@ sk_sp GrVkTextureRenderTarget::MakeWrappedTextureRender GrMipmapStatus mipmapStatus = info.fLevelCount > 1 ? GrMipmapStatus::kDirty : GrMipmapStatus::kNotAllocated; - return sk_sp(new GrVkTextureRenderTarget( - gpu, dimensions, std::move(texture), std::move(colorAttachment), - std::move(resolveAttachment), mipmapStatus, cacheable)); + return sk_sp(new GrVkTextureRenderTarget(gpu, + dimensions, + std::move(texture), + std::move(colorAttachment), + std::move(resolveAttachment), + mipmapStatus, + cacheable, + /*label=*/{})); } size_t GrVkTextureRenderTarget::onGpuMemorySize() const { diff --git a/third_party/skia/src/gpu/vk/GrVkTextureRenderTarget.h b/third_party/skia/src/gpu/ganesh/vk/GrVkTextureRenderTarget.h similarity index 88% rename from third_party/skia/src/gpu/vk/GrVkTextureRenderTarget.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkTextureRenderTarget.h index d089d4418481..1e2ecd7b884a 100644 --- a/third_party/skia/src/gpu/vk/GrVkTextureRenderTarget.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkTextureRenderTarget.h @@ -10,8 +10,8 @@ #define GrVkTextureRenderTarget_DEFINED #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/vk/GrVkRenderTarget.h" -#include "src/gpu/vk/GrVkTexture.h" +#include "src/gpu/ganesh/vk/GrVkRenderTarget.h" +#include "src/gpu/ganesh/vk/GrVkTexture.h" class GrVkGpu; @@ -67,7 +67,8 @@ class GrVkTextureRenderTarget: public GrVkTexture, public GrVkRenderTarget { sk_sp texture, sk_sp colorAttachment, sk_sp resolveAttachment, - GrMipmapStatus); + GrMipmapStatus, + std::string_view label); GrVkTextureRenderTarget(GrVkGpu* gpu, SkISize dimensions, @@ -75,13 +76,14 @@ class GrVkTextureRenderTarget: public GrVkTexture, public GrVkRenderTarget { sk_sp colorAttachment, sk_sp resolveAttachment, GrMipmapStatus, - GrWrapCacheable); + GrWrapCacheable, + std::string_view label); size_t onGpuMemorySize() const override; // In Vulkan we call the release proc after we are finished with the underlying // GrVkImage::Resource object (which occurs after the GPU has finished all work on it). - void onSetRelease(sk_sp releaseHelper) override { + void onSetRelease(sk_sp releaseHelper) override { // Forward the release proc on to GrVkImage GrVkTexture::onSetRelease(std::move(releaseHelper)); } diff --git a/third_party/skia/src/gpu/vk/GrVkTypesPriv.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkTypesPriv.cpp similarity index 92% rename from third_party/skia/src/gpu/vk/GrVkTypesPriv.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkTypesPriv.cpp index f1bfa3059705..20245e6cef59 100644 --- a/third_party/skia/src/gpu/vk/GrVkTypesPriv.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkTypesPriv.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "include/private/GrVkTypesPriv.h" +#include "include/private/gpu/ganesh/GrVkTypesPriv.h" -#include "src/gpu/GrBackendSurfaceMutableStateImpl.h" -#include "src/gpu/vk/GrVkImageLayout.h" +#include "src/gpu/ganesh/GrBackendSurfaceMutableStateImpl.h" +#include "src/gpu/ganesh/vk/GrVkImageLayout.h" void GrVkBackendSurfaceInfo::cleanup() {}; diff --git a/third_party/skia/src/gpu/vk/GrVkUniformHandler.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkUniformHandler.cpp similarity index 97% rename from third_party/skia/src/gpu/vk/GrVkUniformHandler.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkUniformHandler.cpp index 9f856101682e..46a91ab94fe3 100644 --- a/third_party/skia/src/gpu/vk/GrVkUniformHandler.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkUniformHandler.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkUniformHandler.h" +#include "src/gpu/ganesh/vk/GrVkUniformHandler.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrUtil.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkPipelineStateBuilder.h" -#include "src/gpu/vk/GrVkTexture.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrUtil.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkPipelineStateBuilder.h" +#include "src/gpu/ganesh/vk/GrVkTexture.h" // To determine whether a current offset is aligned, we can just 'and' the lowest bits with the // alignment mask. A value of 0 means aligned, any other value is how many bytes past alignment we @@ -198,7 +198,7 @@ GrVkUniformHandler::~GrVkUniformHandler() { } GrGLSLUniformHandler::UniformHandle GrVkUniformHandler::internalAddUniformArray( - const GrFragmentProcessor* owner, + const GrProcessor* owner, uint32_t visibility, SkSLType type, const char* name, diff --git a/third_party/skia/src/gpu/vk/GrVkUniformHandler.h b/third_party/skia/src/gpu/ganesh/vk/GrVkUniformHandler.h similarity index 94% rename from third_party/skia/src/gpu/vk/GrVkUniformHandler.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkUniformHandler.h index 9fd6eaa17017..a9802807c6b8 100644 --- a/third_party/skia/src/gpu/vk/GrVkUniformHandler.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkUniformHandler.h @@ -10,11 +10,11 @@ #include "include/gpu/vk/GrVkTypes.h" #include "src/core/SkTBlockList.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrShaderVar.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" -#include "src/gpu/vk/GrVkSampler.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/vk/GrVkSampler.h" class GrVkUniformHandler : public GrGLSLUniformHandler { public: @@ -102,7 +102,7 @@ class GrVkUniformHandler : public GrGLSLUniformHandler { , fCurrentOffsets{0, 0} { } - UniformHandle internalAddUniformArray(const GrFragmentProcessor* owner, + UniformHandle internalAddUniformArray(const GrProcessor* owner, uint32_t visibility, SkSLType type, const char* name, diff --git a/third_party/skia/src/gpu/vk/GrVkUtil.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkUtil.cpp similarity index 97% rename from third_party/skia/src/gpu/vk/GrVkUtil.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkUtil.cpp index b49fe482b89f..7c532a3b436f 100644 --- a/third_party/skia/src/gpu/vk/GrVkUtil.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkUtil.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/vk/GrVkGpu.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" #include "src/sksl/SkSLCompiler.h" bool GrVkFormatIsSupported(VkFormat format) { diff --git a/third_party/skia/src/gpu/vk/GrVkUtil.h b/third_party/skia/src/gpu/ganesh/vk/GrVkUtil.h similarity index 98% rename from third_party/skia/src/gpu/vk/GrVkUtil.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkUtil.h index a19ce3b6cfdb..f2646be7165f 100644 --- a/third_party/skia/src/gpu/vk/GrVkUtil.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkUtil.h @@ -11,9 +11,9 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/vk/GrVkTypes.h" #include "include/private/SkMacros.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/vk/GrVkInterface.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/vk/GrVkInterface.h" #include "src/sksl/ir/SkSLProgram.h" class GrVkGpu; diff --git a/third_party/skia/src/gpu/vk/GrVkVaryingHandler.cpp b/third_party/skia/src/gpu/ganesh/vk/GrVkVaryingHandler.cpp similarity index 98% rename from third_party/skia/src/gpu/vk/GrVkVaryingHandler.cpp rename to third_party/skia/src/gpu/ganesh/vk/GrVkVaryingHandler.cpp index e53949bd0f7d..86a09b863344 100644 --- a/third_party/skia/src/gpu/vk/GrVkVaryingHandler.cpp +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkVaryingHandler.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/gpu/vk/GrVkVaryingHandler.h" +#include "src/gpu/ganesh/vk/GrVkVaryingHandler.h" /** Returns the number of locations take up by a given SkSLType. We assume that all scalar values are 32 bits. */ diff --git a/third_party/skia/src/gpu/vk/GrVkVaryingHandler.h b/third_party/skia/src/gpu/ganesh/vk/GrVkVaryingHandler.h similarity index 92% rename from third_party/skia/src/gpu/vk/GrVkVaryingHandler.h rename to third_party/skia/src/gpu/ganesh/vk/GrVkVaryingHandler.h index 3d79dba842c5..d8738797933d 100644 --- a/third_party/skia/src/gpu/vk/GrVkVaryingHandler.h +++ b/third_party/skia/src/gpu/ganesh/vk/GrVkVaryingHandler.h @@ -8,7 +8,7 @@ #ifndef GrVkVaryingHandler_DEFINED #define GrVkVaryingHandler_DEFINED -#include "src/gpu/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" class GrVkVaryingHandler : public GrGLSLVaryingHandler { public: diff --git a/third_party/skia/src/gpu/gl/BUILD.bazel b/third_party/skia/src/gpu/gl/BUILD.bazel index f3f0d7a9f12b..cc550714c358 100644 --- a/third_party/skia/src/gpu/gl/BUILD.bazel +++ b/third_party/skia/src/gpu/gl/BUILD.bazel @@ -1,587 +1,9 @@ load("//bazel:macros.bzl", "generated_cc_atom") -generated_cc_atom( - name = "GrGLAssembleGLESInterfaceAutogen_src", - srcs = ["GrGLAssembleGLESInterfaceAutogen.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLUtil_hdr", - "//include/gpu/gl:GrGLAssembleHelpers_hdr", - "//include/gpu/gl:GrGLAssembleInterface_hdr", - ], -) - -generated_cc_atom( - name = "GrGLAssembleGLInterfaceAutogen_src", - srcs = ["GrGLAssembleGLInterfaceAutogen.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLUtil_hdr", - "//include/gpu/gl:GrGLAssembleHelpers_hdr", - "//include/gpu/gl:GrGLAssembleInterface_hdr", - ], -) - -generated_cc_atom( - name = "GrGLAssembleHelpers_src", - srcs = ["GrGLAssembleHelpers.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLUtil_hdr", - "//include/gpu/gl:GrGLAssembleHelpers_hdr", - ], -) - -generated_cc_atom( - name = "GrGLAssembleInterface_src", - srcs = ["GrGLAssembleInterface.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLUtil_hdr", - "//include/gpu/gl:GrGLAssembleHelpers_hdr", - "//include/gpu/gl:GrGLAssembleInterface_hdr", - ], -) - -generated_cc_atom( - name = "GrGLAssembleWebGLInterfaceAutogen_src", - srcs = ["GrGLAssembleWebGLInterfaceAutogen.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLUtil_hdr", - "//include/gpu/gl:GrGLAssembleHelpers_hdr", - "//include/gpu/gl:GrGLAssembleInterface_hdr", - ], -) - -generated_cc_atom( - name = "GrGLAttachment_hdr", - hdrs = ["GrGLAttachment.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu/gl:GrGLInterface_hdr", - "//src/gpu:GrAttachment_hdr", - ], -) - -generated_cc_atom( - name = "GrGLAttachment_src", - srcs = ["GrGLAttachment.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLAttachment_hdr", - ":GrGLGpu_hdr", - "//include/core:SkTraceMemoryDump_hdr", - ], -) - -generated_cc_atom( - name = "GrGLBuffer_hdr", - hdrs = ["GrGLBuffer.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu/gl:GrGLTypes_hdr", - "//src/gpu:GrGpuBuffer_hdr", - ], -) - -generated_cc_atom( - name = "GrGLBuffer_src", - srcs = ["GrGLBuffer.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLBuffer_hdr", - ":GrGLCaps_hdr", - ":GrGLGpu_hdr", - "//include/core:SkTraceMemoryDump_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrGpuResourcePriv_hdr", - ], -) - -generated_cc_atom( - name = "GrGLCaps_hdr", - hdrs = ["GrGLCaps.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLAttachment_hdr", - ":GrGLUtil_hdr", - "//include/private:GrGLTypesPriv_hdr", - "//include/private:SkChecksum_hdr", - "//include/private:SkTArray_hdr", - "//include/private:SkTHash_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrSwizzle_hdr", - ], -) - -generated_cc_atom( - name = "GrGLCaps_src", - srcs = ["GrGLCaps.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLCaps_hdr", - ":GrGLContext_hdr", - ":GrGLRenderTarget_hdr", - ":GrGLTexture_hdr", - "//include/gpu:GrContextOptions_hdr", - "//src/core:SkCompressedDataUtils_hdr", - "//src/core:SkMathPriv_hdr", - "//src/core:SkTSearch_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrSurfaceProxyPriv_hdr", - "//src/gpu:GrTextureProxyPriv_hdr", - "//src/gpu:SkGr_hdr", - "//src/utils:SkJSONWriter_hdr", - ], -) - -generated_cc_atom( - name = "GrGLContext_hdr", - hdrs = ["GrGLContext.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLCaps_hdr", - ":GrGLUtil_hdr", - "//include/gpu/gl:GrGLExtensions_hdr", - "//include/gpu/gl:GrGLInterface_hdr", - "//src/gpu/glsl:GrGLSL_hdr", - ], -) - -generated_cc_atom( - name = "GrGLContext_src", - srcs = ["GrGLContext.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLContext_hdr", - ":GrGLGLSL_hdr", - "//include/gpu:GrContextOptions_hdr", - ], -) +licenses(["notice"]) generated_cc_atom( name = "GrGLDefines_hdr", hdrs = ["GrGLDefines.h"], visibility = ["//:__subpackages__"], ) - -generated_cc_atom( - name = "GrGLExtensions_src", - srcs = ["GrGLExtensions.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLDefines_hdr", - ":GrGLUtil_hdr", - "//include/gpu/gl:GrGLExtensions_hdr", - "//src/core:SkTSearch_hdr", - "//src/core:SkTSort_hdr", - "//src/utils:SkJSONWriter_hdr", - ], -) - -generated_cc_atom( - name = "GrGLGLSL_hdr", - hdrs = ["GrGLGLSL.h"], - visibility = ["//:__subpackages__"], - deps = ["//src/gpu/glsl:GrGLSL_hdr"], -) - -generated_cc_atom( - name = "GrGLGLSL_src", - srcs = ["GrGLGLSL.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLGLSL_hdr", - ":GrGLUtil_hdr", - ], -) - -generated_cc_atom( - name = "GrGLGpuProgramCache_src", - srcs = ["GrGLGpuProgramCache.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLGpu_hdr", - "//include/gpu:GrContextOptions_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu/gl/builders:GrGLProgramBuilder_hdr", - ], -) - -generated_cc_atom( - name = "GrGLGpu_hdr", - hdrs = ["GrGLGpu.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLAttachment_hdr", - ":GrGLContext_hdr", - ":GrGLProgram_hdr", - ":GrGLRenderTarget_hdr", - ":GrGLTexture_hdr", - ":GrGLVertexArray_hdr", - "//include/core:SkTypes_hdr", - "//include/private:SkTArray_hdr", - "//src/core:SkLRUCache_hdr", - "//src/gpu:GrFinishCallbacks_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrNativeRect_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu:GrThreadSafePipelineBuilder_hdr", - "//src/gpu:GrWindowRectsState_hdr", - "//src/gpu:GrXferProcessor_hdr", - ], -) - -generated_cc_atom( - name = "GrGLGpu_src", - srcs = ["GrGLGpu.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLAttachment_hdr", - ":GrGLBuffer_hdr", - ":GrGLGpu_hdr", - ":GrGLOpsRenderPass_hdr", - ":GrGLSemaphore_hdr", - ":GrGLTextureRenderTarget_hdr", - "//include/core:SkPixmap_hdr", - "//include/core:SkTypes_hdr", - "//include/gpu:GrBackendSemaphore_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrTypes_hdr", - "//include/private:SkHalf_hdr", - "//include/private:SkTemplates_hdr", - "//include/private:SkTo_hdr", - "//src/core:SkAutoMalloc_hdr", - "//src/core:SkCompressedDataUtils_hdr", - "//src/core:SkMipmap_hdr", - "//src/core:SkScopeExit_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrCpuBuffer_hdr", - "//src/gpu:GrDataUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpuResourcePriv_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrSurfaceProxyPriv_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrUtil_hdr", - "//src/gpu:SkRenderEngineAbortf_hdr", - "//src/gpu/gl/builders:GrGLShaderStringBuilder_hdr", - "//src/sksl:SkSLCompiler_hdr", - "//src/utils:SkJSONWriter_hdr", - ], -) - -generated_cc_atom( - name = "GrGLInterfaceAutogen_src", - srcs = ["GrGLInterfaceAutogen.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLUtil_hdr", - "//include/gpu/gl:GrGLExtensions_hdr", - "//include/gpu/gl:GrGLInterface_hdr", - ], -) - -generated_cc_atom( - name = "GrGLMakeNativeInterface_none_src", - srcs = ["GrGLMakeNativeInterface_none.cpp"], - visibility = ["//:__subpackages__"], - deps = ["//include/gpu/gl:GrGLInterface_hdr"], -) - -generated_cc_atom( - name = "GrGLOpsRenderPass_hdr", - hdrs = ["GrGLOpsRenderPass.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLGpu_hdr", - ":GrGLRenderTarget_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - ], -) - -generated_cc_atom( - name = "GrGLOpsRenderPass_src", - srcs = ["GrGLOpsRenderPass.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLOpsRenderPass_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRenderTarget_hdr", - ], -) - -generated_cc_atom( - name = "GrGLProgramDataManager_hdr", - hdrs = ["GrGLProgramDataManager.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu/gl:GrGLTypes_hdr", - "//include/private:SkTArray_hdr", - "//src/core:SkTBlockList_hdr", - "//src/gpu:GrShaderVar_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - ], -) - -generated_cc_atom( - name = "GrGLProgramDataManager_src", - srcs = ["GrGLProgramDataManager.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLGpu_hdr", - ":GrGLProgramDataManager_hdr", - "//include/core:SkMatrix_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - ], -) - -generated_cc_atom( - name = "GrGLProgram_hdr", - hdrs = ["GrGLProgram.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLProgramDataManager_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrXferProcessor_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - ], -) - -generated_cc_atom( - name = "GrGLProgram_src", - srcs = ["GrGLProgram.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLBuffer_hdr", - ":GrGLGpu_hdr", - ":GrGLProgram_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrXferProcessor_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/sksl:SkSLCompiler_hdr", - ], -) - -generated_cc_atom( - name = "GrGLRenderTarget_hdr", - hdrs = ["GrGLRenderTarget.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLDefines_hdr", - "//include/core:SkScalar_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//src/gpu:GrRenderTarget_hdr", - ], -) - -generated_cc_atom( - name = "GrGLRenderTarget_src", - srcs = ["GrGLRenderTarget.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLGpu_hdr", - ":GrGLRenderTarget_hdr", - ":GrGLUtil_hdr", - "//include/core:SkTraceMemoryDump_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpuResourcePriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - ], -) - -generated_cc_atom( - name = "GrGLSemaphore_hdr", - hdrs = ["GrGLSemaphore.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu:GrBackendSemaphore_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrSemaphore_hdr", - ], -) - -generated_cc_atom( - name = "GrGLSemaphore_src", - srcs = ["GrGLSemaphore.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLGpu_hdr", - ":GrGLSemaphore_hdr", - ], -) - -generated_cc_atom( - name = "GrGLTextureRenderTarget_hdr", - hdrs = ["GrGLTextureRenderTarget.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLRenderTarget_hdr", - ":GrGLTexture_hdr", - ], -) - -generated_cc_atom( - name = "GrGLTextureRenderTarget_src", - srcs = ["GrGLTextureRenderTarget.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLGpu_hdr", - ":GrGLTextureRenderTarget_hdr", - "//include/core:SkTraceMemoryDump_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrTexture_hdr", - ], -) - -generated_cc_atom( - name = "GrGLTexture_hdr", - hdrs = ["GrGLTexture.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLUtil_hdr", - "//include/private:GrGLTypesPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrTexture_hdr", - ], -) - -generated_cc_atom( - name = "GrGLTexture_src", - srcs = ["GrGLTexture.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLGpu_hdr", - ":GrGLTexture_hdr", - "//include/core:SkTraceMemoryDump_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrSemaphore_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrTexture_hdr", - ], -) - -generated_cc_atom( - name = "GrGLTypesPriv_src", - srcs = ["GrGLTypesPriv.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLDefines_hdr", - "//include/core:SkScalar_hdr", - "//include/private:GrGLTypesPriv_hdr", - "//src/gpu:GrSwizzle_hdr", - ], -) - -generated_cc_atom( - name = "GrGLUniformHandler_hdr", - hdrs = ["GrGLUniformHandler.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - ], -) - -generated_cc_atom( - name = "GrGLUniformHandler_src", - srcs = ["GrGLUniformHandler.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLCaps_hdr", - ":GrGLGpu_hdr", - ":GrGLUniformHandler_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrUtil_hdr", - "//src/gpu/gl/builders:GrGLProgramBuilder_hdr", - "//src/sksl:SkSLCompiler_hdr", - ], -) - -generated_cc_atom( - name = "GrGLUtil_hdr", - hdrs = ["GrGLUtil.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLDefines_hdr", - "//include/gpu/gl:GrGLInterface_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:SkImageInfoPriv_hdr", - "//src/gpu:GrDataUtils_hdr", - "//src/gpu:GrStencilSettings_hdr", - ], -) - -generated_cc_atom( - name = "GrGLUtil_src", - srcs = ["GrGLUtil.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLUtil_hdr", - "//include/core:SkMatrix_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrDataUtils_hdr", - ], -) - -generated_cc_atom( - name = "GrGLVaryingHandler_hdr", - hdrs = ["GrGLVaryingHandler.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLProgramDataManager_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - ], -) - -generated_cc_atom( - name = "GrGLVertexArray_hdr", - hdrs = ["GrGLVertexArray.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLDefines_hdr", - "//include/gpu/gl:GrGLTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:SkTArray_hdr", - "//src/gpu:GrGpuResource_hdr", - ], -) - -generated_cc_atom( - name = "GrGLVertexArray_src", - srcs = ["GrGLVertexArray.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrGLBuffer_hdr", - ":GrGLGpu_hdr", - ":GrGLVertexArray_hdr", - "//src/gpu:GrCpuBuffer_hdr", - ], -) diff --git a/third_party/skia/src/gpu/gl/GrGLDefines.h b/third_party/skia/src/gpu/gl/GrGLDefines.h index 2f8367752a8d..9c899288d50f 100644 --- a/third_party/skia/src/gpu/gl/GrGLDefines.h +++ b/third_party/skia/src/gpu/gl/GrGLDefines.h @@ -631,6 +631,8 @@ #define GR_GL_TEXTURE_WRAP_S 0x2802 #define GR_GL_TEXTURE_WRAP_T 0x2803 #define GR_GL_TEXTURE_USAGE 0x93A2 +#define GR_GL_TEXTURE_MAX_ANISOTROPY 0x84FE +#define GR_GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF /* TextureTarget */ /* GL_TEXTURE_2D */ diff --git a/third_party/skia/src/gpu/glsl/GrGLSLBlend.cpp b/third_party/skia/src/gpu/glsl/GrGLSLBlend.cpp deleted file mode 100644 index 54921232c781..000000000000 --- a/third_party/skia/src/gpu/glsl/GrGLSLBlend.cpp +++ /dev/null @@ -1,57 +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. - */ - -#include "src/gpu/glsl/GrGLSLBlend.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" - -namespace GrGLSLBlend { - -const char* BlendFuncName(SkBlendMode mode) { - switch (mode) { - case SkBlendMode::kClear: return "blend_clear"; - case SkBlendMode::kSrc: return "blend_src"; - case SkBlendMode::kDst: return "blend_dst"; - case SkBlendMode::kSrcOver: return "blend_src_over"; - case SkBlendMode::kDstOver: return "blend_dst_over"; - case SkBlendMode::kSrcIn: return "blend_src_in"; - case SkBlendMode::kDstIn: return "blend_dst_in"; - case SkBlendMode::kSrcOut: return "blend_src_out"; - case SkBlendMode::kDstOut: return "blend_dst_out"; - case SkBlendMode::kSrcATop: return "blend_src_atop"; - case SkBlendMode::kDstATop: return "blend_dst_atop"; - case SkBlendMode::kXor: return "blend_xor"; - case SkBlendMode::kPlus: return "blend_plus"; - case SkBlendMode::kModulate: return "blend_modulate"; - case SkBlendMode::kScreen: return "blend_screen"; - case SkBlendMode::kOverlay: return "blend_overlay"; - case SkBlendMode::kDarken: return "blend_darken"; - case SkBlendMode::kLighten: return "blend_lighten"; - case SkBlendMode::kColorDodge: return "blend_color_dodge"; - case SkBlendMode::kColorBurn: return "blend_color_burn"; - case SkBlendMode::kHardLight: return "blend_hard_light"; - case SkBlendMode::kSoftLight: return "blend_soft_light"; - case SkBlendMode::kDifference: return "blend_difference"; - case SkBlendMode::kExclusion: return "blend_exclusion"; - case SkBlendMode::kMultiply: return "blend_multiply"; - case SkBlendMode::kHue: return "blend_hue"; - case SkBlendMode::kSaturation: return "blend_saturation"; - case SkBlendMode::kColor: return "blend_color"; - case SkBlendMode::kLuminosity: return "blend_luminosity"; - } - SkUNREACHABLE; -} - -void AppendMode(GrGLSLShaderBuilder* fsBuilder, - const char* srcColor, - const char* dstColor, - const char* outColor, - SkBlendMode mode) { - fsBuilder->codeAppendf("%s = %s(%s, %s);", outColor, BlendFuncName(mode), srcColor, dstColor); -} - -} // namespace GrGLSLBlend diff --git a/third_party/skia/src/gpu/glsl/GrGLSLBlend.h b/third_party/skia/src/gpu/glsl/GrGLSLBlend.h deleted file mode 100644 index 092620b7e518..000000000000 --- a/third_party/skia/src/gpu/glsl/GrGLSLBlend.h +++ /dev/null @@ -1,32 +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. - */ - -#ifndef GrGLBlend_DEFINED -#define GrGLBlend_DEFINED - -#include "include/core/SkBlendMode.h" - -class GrGLSLShaderBuilder; - -namespace GrGLSLBlend { -/* - * Returns the name of the built in blend function for a SkBlendMode. - */ -const char* BlendFuncName(SkBlendMode mode); - -/* - * Appends GLSL code to fsBuilder that assigns a specified blend of the srcColor and dstColor - * variables to the outColor variable. - */ -void AppendMode(GrGLSLShaderBuilder* fsBuilder, - const char* srcColor, - const char* dstColor, - const char* outColor, - SkBlendMode mode); -} // namespace GrGLSLBlend - -#endif diff --git a/third_party/skia/experimental/graphite/src/Attribute.h b/third_party/skia/src/gpu/graphite/Attribute.h similarity index 84% rename from third_party/skia/experimental/graphite/src/Attribute.h rename to third_party/skia/src/gpu/graphite/Attribute.h index f929eb7bb8c2..65e59bb67031 100644 --- a/third_party/skia/experimental/graphite/src/Attribute.h +++ b/third_party/skia/src/gpu/graphite/Attribute.h @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#ifndef skgpu_Attribute_DEFINED -#define skgpu_Attribute_DEFINED +#ifndef skgpu_graphite_Attribute_DEFINED +#define skgpu_graphite_Attribute_DEFINED -#include "experimental/graphite/src/DrawTypes.h" #include "src/core/SkSLTypeShared.h" +#include "src/gpu/graphite/DrawTypes.h" -namespace skgpu { +namespace skgpu::graphite { /** Describes a vertex or instance attribute. */ class Attribute { @@ -42,6 +42,6 @@ class Attribute { SkSLType fGPUType = SkSLType::kVoid; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_Attribute_DEFINED +#endif // skgpu_graphite_Attribute_DEFINED diff --git a/third_party/skia/experimental/graphite/src/BUILD.bazel b/third_party/skia/src/gpu/graphite/BUILD.bazel similarity index 73% rename from third_party/skia/experimental/graphite/src/BUILD.bazel rename to third_party/skia/src/gpu/graphite/BUILD.bazel index ea757157b8a6..1c2670c3c61f 100644 --- a/third_party/skia/experimental/graphite/src/BUILD.bazel +++ b/third_party/skia/src/gpu/graphite/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "Attribute_hdr", hdrs = ["Attribute.h"], @@ -14,7 +16,7 @@ generated_cc_atom( name = "BackendTexture_src", srcs = ["BackendTexture.cpp"], visibility = ["//:__subpackages__"], - deps = ["//experimental/graphite/include:BackendTexture_hdr"], + deps = ["//include/gpu/graphite:BackendTexture_hdr"], ) generated_cc_atom( @@ -43,6 +45,7 @@ generated_cc_atom( "//include/core:SkImageInfo_hdr", "//include/core:SkRefCnt_hdr", "//src/gpu:ResourceKey_hdr", + "//src/gpu:Swizzle_hdr", ], ) @@ -52,7 +55,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Caps_hdr", - "//experimental/graphite/include:TextureInfo_hdr", + "//include/gpu/graphite:TextureInfo_hdr", "//src/sksl:SkSLUtil_hdr", ], ) @@ -64,10 +67,10 @@ generated_cc_atom( deps = [ ":DrawTypes_hdr", ":DrawWriter_hdr", - "//experimental/graphite/include:TextureInfo_hdr", "//include/core:SkColor_hdr", "//include/core:SkRect_hdr", "//include/core:SkRefCnt_hdr", + "//include/gpu/graphite:TextureInfo_hdr", "//include/private:SkTArray_hdr", ], ) @@ -84,6 +87,7 @@ generated_cc_atom( ":TextureProxy_hdr", ":Texture_hdr", "//src/core:SkTraceEvent_hdr", + "//src/gpu:RefCntedCallback_hdr", ], ) @@ -91,7 +95,7 @@ generated_cc_atom( name = "ContextPriv_hdr", hdrs = ["ContextPriv.h"], visibility = ["//:__subpackages__"], - deps = ["//experimental/graphite/include:Context_hdr"], + deps = ["//include/gpu/graphite:Context_hdr"], ) generated_cc_atom( @@ -100,6 +104,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":ContextPriv_hdr", + ":GlobalCache_hdr", ":Gpu_hdr", ], ) @@ -108,12 +113,7 @@ generated_cc_atom( name = "ContextUtils_hdr", hdrs = ["ContextUtils.h"], visibility = ["//:__subpackages__"], - deps = [ - "//experimental/graphite/include:Context_hdr", - "//include/core:SkBlendMode_hdr", - "//include/core:SkSpan_hdr", - "//include/core:SkTileMode_hdr", - ], + deps = [":PipelineDataCache_hdr"], ) generated_cc_atom( @@ -121,17 +121,17 @@ generated_cc_atom( srcs = ["ContextUtils.cpp"], visibility = ["//:__subpackages__"], deps = [ - ":ContextPriv_hdr", ":ContextUtils_hdr", - ":DrawTypes_hdr", ":PaintParams_hdr", - "//include/core:SkPaint_hdr", + ":RecorderPriv_hdr", + ":Renderer_hdr", + ":ResourceProvider_hdr", + ":UniformManager_hdr", "//include/private:SkUniquePaintParamsID_hdr", "//src/core:SkBlenderBase_hdr", - "//src/core:SkKeyHelpers_hdr", + "//src/core:SkKeyContext_hdr", + "//src/core:SkPipelineData_hdr", "//src/core:SkShaderCodeDictionary_hdr", - "//src/core:SkUniformData_hdr", - "//src/core:SkUniform_hdr", ], ) @@ -147,15 +147,17 @@ generated_cc_atom( ":GraphicsPipelineDesc_hdr", ":Renderer_hdr", ":ResourceProvider_hdr", - "//experimental/graphite/include:BackendTexture_hdr", - "//experimental/graphite/include:Context_hdr", - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/include:Recording_hdr", - "//experimental/graphite/include:TextureInfo_hdr", - "//experimental/graphite/src/mtl:MtlTrampoline_hdr", "//include/core:SkPathTypes_hdr", + "//include/gpu/graphite:BackendTexture_hdr", + "//include/gpu/graphite:Context_hdr", + "//include/gpu/graphite:Recorder_hdr", + "//include/gpu/graphite:Recording_hdr", + "//include/gpu/graphite:TextureInfo_hdr", + "//src/core:SkKeyContext_hdr", "//src/core:SkKeyHelpers_hdr", "//src/core:SkShaderCodeDictionary_hdr", + "//src/gpu:RefCntedCallback_hdr", + "//src/gpu/graphite/mtl:MtlTrampoline_hdr", ], ) @@ -186,10 +188,12 @@ generated_cc_atom( hdrs = ["Device.h"], visibility = ["//:__subpackages__"], deps = [ + ":ClipStack_graphite_hdr", ":DrawOrder_hdr", ":EnumBitMask_hdr", - "//experimental/graphite/src/geom:Rect_hdr", "//src/core:SkDevice_hdr", + "//src/gpu/graphite/geom:Rect_hdr", + "//src/gpu/graphite/geom:Transform_graphite_hdr", ], ) @@ -200,32 +204,32 @@ generated_cc_atom( deps = [ ":Buffer_hdr", ":Caps_hdr", + ":CommandBuffer_hdr", ":ContextPriv_hdr", - ":CopyTask_hdr", ":Device_hdr", ":DrawContext_hdr", + ":DrawGeometry_hdr", ":DrawList_hdr", ":Gpu_hdr", ":Log_hdr", ":RecorderPriv_hdr", - ":ResourceProvider_hdr", + ":Renderer_hdr", ":TextureProxy_hdr", - ":Texture_hdr", - "//experimental/graphite/include:Context_hdr", - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/include:Recording_hdr", - "//experimental/graphite/include:SkStuff_hdr", - "//experimental/graphite/src/geom:BoundsManager_hdr", - "//experimental/graphite/src/geom:IntersectionTree_hdr", - "//experimental/graphite/src/geom:Shape_hdr", - "//experimental/graphite/src/geom:Transform_graphite_hdr", + ":TextureUtils_hdr", "//include/core:SkPathEffect_hdr", "//include/core:SkPath_hdr", "//include/core:SkStrokeRec_hdr", + "//include/gpu/graphite:Recorder_hdr", + "//include/gpu/graphite:SkStuff_hdr", "//src/core:SkConvertPixels_hdr", "//src/core:SkMatrixPriv_hdr", "//src/core:SkPaintPriv_hdr", "//src/core:SkSpecialImage_hdr", + "//src/core:SkStroke_hdr", + "//src/gpu/graphite/geom:BoundsManager_hdr", + "//src/gpu/graphite/geom:IntersectionTree_hdr", + "//src/gpu/graphite/geom:Shape_hdr", + "//src/gpu/graphite/geom:Transform_graphite_hdr", ], ) @@ -235,6 +239,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":DrawTypes_hdr", + ":ResourceTypes_hdr", "//include/core:SkRefCnt_hdr", "//src/gpu:BufferWriter_hdr", ], @@ -284,12 +289,13 @@ generated_cc_atom( ":ResourceTypes_hdr", ":TextureProxy_hdr", ":UploadTask_hdr", - "//experimental/graphite/include:Context_hdr", - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/src/geom:BoundsManager_hdr", - "//experimental/graphite/src/geom:Shape_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkPixmap_hdr", + "//include/gpu/graphite:Context_hdr", + "//include/gpu/graphite:Recorder_hdr", "//include/private:SkColorData_hdr", + "//src/gpu/graphite/geom:BoundsManager_hdr", + "//src/gpu/graphite/geom:Shape_hdr", ], ) @@ -298,12 +304,12 @@ generated_cc_atom( hdrs = ["DrawList.h"], visibility = ["//:__subpackages__"], deps = [ + ":DrawGeometry_hdr", ":DrawOrder_hdr", ":PaintParams_hdr", - "//experimental/graphite/src/geom:Shape_hdr", - "//experimental/graphite/src/geom:Transform_graphite_hdr", "//include/core:SkPaint_hdr", "//src/core:SkTBlockList_hdr", + "//src/gpu/graphite/geom:Transform_graphite_hdr", ], ) @@ -356,19 +362,21 @@ generated_cc_atom( ":GlobalCache_hdr", ":GraphicsPipelineDesc_hdr", ":GraphicsPipeline_hdr", + ":PipelineDataCache_hdr", ":RecorderPriv_hdr", ":Renderer_hdr", ":ResourceProvider_hdr", + ":Sampler_hdr", ":TextureProxy_hdr", - ":UniformCache_hdr", + ":Texture_hdr", ":UniformManager_hdr", - "//experimental/graphite/include:GraphiteTypes_hdr", - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/src/geom:BoundsManager_hdr", + "//include/gpu/graphite:GraphiteTypes_hdr", + "//include/gpu/graphite:Recorder_hdr", "//src/core:SkMathPriv_hdr", + "//src/core:SkPaintParamsKey_hdr", + "//src/core:SkPipelineData_hdr", "//src/core:SkTBlockList_hdr", - "//src/core:SkUniformData_hdr", - "//src/gpu:BufferWriter_hdr", + "//src/gpu/graphite/geom:BoundsManager_hdr", ], ) @@ -376,7 +384,7 @@ generated_cc_atom( name = "DrawTypes_hdr", hdrs = ["DrawTypes.h"], visibility = ["//:__subpackages__"], - deps = ["//experimental/graphite/include:GraphiteTypes_hdr"], + deps = ["//include/gpu/graphite:GraphiteTypes_hdr"], ) generated_cc_atom( @@ -384,6 +392,7 @@ generated_cc_atom( hdrs = ["DrawWriter.h"], visibility = ["//:__subpackages__"], deps = [ + ":DrawBufferManager_hdr", ":DrawTypes_hdr", "//src/gpu:BufferWriter_hdr", ], @@ -404,13 +413,14 @@ generated_cc_atom( name = "EnumBitMask_hdr", hdrs = ["EnumBitMask.h"], visibility = ["//:__subpackages__"], - deps = ["//experimental/graphite/include:GraphiteTypes_hdr"], + deps = ["//include/gpu/graphite:GraphiteTypes_hdr"], ) generated_cc_atom( name = "GpuWorkSubmission_hdr", hdrs = ["GpuWorkSubmission.h"], visibility = ["//:__subpackages__"], + deps = ["//include/core:SkRefCnt_hdr"], ) generated_cc_atom( @@ -418,9 +428,9 @@ generated_cc_atom( hdrs = ["Gpu.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include:GraphiteTypes_hdr", "//include/core:SkRefCnt_hdr", "//include/core:SkSize_hdr", + "//include/gpu/graphite:GraphiteTypes_hdr", "//include/private:SkDeque_hdr", ], ) @@ -436,8 +446,8 @@ generated_cc_atom( ":Gpu_hdr", ":Log_hdr", ":ResourceProvider_hdr", - "//experimental/graphite/include:BackendTexture_hdr", - "//experimental/graphite/include:TextureInfo_hdr", + "//include/gpu/graphite:BackendTexture_hdr", + "//include/gpu/graphite:TextureInfo_hdr", "//src/sksl:SkSLCompiler_hdr", ], ) @@ -482,7 +492,10 @@ generated_cc_atom( name = "Image_Graphite_hdr", hdrs = ["Image_Graphite.h"], visibility = ["//:__subpackages__"], - deps = ["//src/image:SkImage_Base_hdr"], + deps = [ + ":TextureProxyView_hdr", + "//src/image:SkImage_Base_hdr", + ], ) generated_cc_atom( @@ -490,8 +503,13 @@ generated_cc_atom( srcs = ["Image_Graphite.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":Caps_hdr", ":Image_Graphite_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + ":RecorderPriv_hdr", + ":TextureUtils_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkImageInfo_hdr", + "//include/gpu/graphite:Recorder_hdr", ], ) @@ -499,7 +517,7 @@ generated_cc_atom( name = "ProgramCache_src", srcs = ["ProgramCache.cpp"], visibility = ["//:__subpackages__"], - deps = [":ProgramCache_hdr"], + deps = ["//experimental/graphite/src:ProgramCache_hdr"], ) generated_cc_atom( @@ -514,12 +532,12 @@ generated_cc_atom( ":DrawBufferManager_hdr", ":GlobalCache_hdr", ":Gpu_hdr", + ":PipelineDataCache_hdr", ":ResourceProvider_hdr", ":TaskGraph_hdr", - ":UniformCache_hdr", - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/include:Recording_hdr", - "//src/core:SkUniformData_hdr", + "//include/gpu/graphite:Recorder_hdr", + "//include/gpu/graphite:Recording_hdr", + "//src/core:SkPipelineData_hdr", ], ) @@ -529,7 +547,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":CommandBuffer_hdr", - "//experimental/graphite/include:Recording_hdr", + ":PipelineDataCache_hdr", + "//include/gpu/graphite:Recording_hdr", ], ) @@ -582,7 +601,6 @@ generated_cc_atom( deps = [ ":CommandBuffer_hdr", ":GraphicsPipelineDesc_hdr", - ":ResourceCache_hdr", ":ResourceTypes_hdr", "//include/core:SkSize_hdr", "//include/core:SkTileMode_hdr", @@ -603,6 +621,7 @@ generated_cc_atom( ":GlobalCache_hdr", ":Gpu_hdr", ":GraphicsPipeline_hdr", + ":ResourceCache_hdr", ":ResourceProvider_hdr", ":Sampler_hdr", ":Texture_hdr", @@ -615,7 +634,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":EnumBitMask_hdr", - "//experimental/graphite/include:GraphiteTypes_hdr", + "//include/gpu/graphite:GraphiteTypes_hdr", ], ) @@ -633,10 +652,11 @@ generated_cc_atom( ":Surface_Graphite_hdr", ":TextureProxy_hdr", ":Texture_hdr", - "//experimental/graphite/include:BackendTexture_hdr", - "//experimental/graphite/include:Context_hdr", - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/include:SkStuff_hdr", + "//include/core:SkColorSpace_hdr", + "//include/gpu/graphite:BackendTexture_hdr", + "//include/gpu/graphite:Context_hdr", + "//include/gpu/graphite:Recorder_hdr", + "//include/gpu/graphite:SkStuff_hdr", ], ) @@ -655,8 +675,8 @@ generated_cc_atom( ":Device_hdr", ":Image_Graphite_hdr", ":Surface_Graphite_hdr", - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/include:SkStuff_hdr", + "//include/gpu/graphite:Recorder_hdr", + "//include/gpu/graphite:SkStuff_hdr", ], ) @@ -692,7 +712,7 @@ generated_cc_atom( name = "TextureInfo_src", srcs = ["TextureInfo.cpp"], visibility = ["//:__subpackages__"], - deps = ["//experimental/graphite/include:TextureInfo_hdr"], + deps = ["//include/gpu/graphite:TextureInfo_hdr"], ) generated_cc_atom( @@ -700,9 +720,9 @@ generated_cc_atom( hdrs = ["TextureProxy.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include:TextureInfo_hdr", "//include/core:SkRefCnt_hdr", "//include/core:SkSize_hdr", + "//include/gpu/graphite:TextureInfo_hdr", ], ) @@ -724,8 +744,8 @@ generated_cc_atom( deps = [ ":ResourceTypes_hdr", ":Resource_hdr", - "//experimental/graphite/include:TextureInfo_hdr", "//include/core:SkSize_hdr", + "//include/gpu/graphite:TextureInfo_hdr", ], ) @@ -736,31 +756,17 @@ generated_cc_atom( deps = [":Texture_hdr"], ) -generated_cc_atom( - name = "UniformCache_hdr", - hdrs = ["UniformCache.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/core:SkRefCnt_hdr"], -) - -generated_cc_atom( - name = "UniformCache_src", - srcs = ["UniformCache.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":UniformCache_hdr", - "//src/core:SkOpts_hdr", - "//src/core:SkUniformData_hdr", - ], -) - generated_cc_atom( name = "UniformManager_hdr", hdrs = ["UniformManager.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkRefCnt_hdr", "//include/core:SkSpan_hdr", + "//include/private:SkColorData_hdr", + "//include/private:SkTDArray_hdr", "//src/core:SkSLTypeShared_hdr", + "//src/gpu/graphite/geom:VectorTypes_hdr", ], ) @@ -774,6 +780,7 @@ generated_cc_atom( "//include/core:SkMatrix_hdr", "//include/private:SkHalf_hdr", "//include/private:SkTemplates_hdr", + "//src/core:SkPipelineData_hdr", "//src/core:SkUniform_hdr", ], ) @@ -807,8 +814,9 @@ generated_cc_atom( hdrs = ["Resource.h"], visibility = ["//:__subpackages__"], deps = [ + ":GraphiteResourceKey_hdr", ":ResourceTypes_hdr", - "//include/core:SkTypes_hdr", + "//include/private:SkMutex_hdr", ], ) @@ -816,7 +824,10 @@ generated_cc_atom( name = "Resource_src", srcs = ["Resource.cpp"], visibility = ["//:__subpackages__"], - deps = [":Resource_hdr"], + deps = [ + ":ResourceCache_hdr", + ":Resource_hdr", + ], ) generated_cc_atom( @@ -877,7 +888,7 @@ generated_cc_atom( name = "RecorderPriv_hdr", hdrs = ["RecorderPriv.h"], visibility = ["//:__subpackages__"], - deps = ["//experimental/graphite/include:Recorder_hdr"], + deps = ["//include/gpu/graphite:Recorder_hdr"], ) generated_cc_atom( @@ -885,6 +896,7 @@ generated_cc_atom( srcs = ["RecorderPriv.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":Device_hdr", ":Gpu_hdr", ":RecorderPriv_hdr", ":TaskGraph_hdr", @@ -896,10 +908,13 @@ generated_cc_atom( hdrs = ["ResourceCache.h"], visibility = ["//:__subpackages__"], deps = [ - ":Resource_hdr", + ":ResourceTypes_hdr", + "//include/core:SkRefCnt_hdr", + "//include/private:SkMutex_hdr", "//include/private:SkTArray_hdr", "//include/private:SkTHash_hdr", "//src/core:SkTDPQueue_hdr", + "//src/core:SkTMultiMap_hdr", ], ) @@ -908,9 +923,12 @@ generated_cc_atom( srcs = ["ResourceCache.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":GraphiteResourceKey_hdr", ":ResourceCache_hdr", ":Resource_hdr", "//include/private:SingleOwner_hdr", + "//include/utils:SkRandom_hdr", + "//src/core:SkTMultiMap_hdr", ], ) @@ -940,7 +958,119 @@ generated_cc_atom( ":TextureProxy_hdr", ":Texture_hdr", ":UploadTask_hdr", - "//experimental/graphite/include:Recorder_hdr", + "//include/gpu/graphite:Recorder_hdr", "//src/core:SkConvertPixels_hdr", + "//src/core:SkTraceEvent_hdr", + ], +) + +generated_cc_atom( + name = "TextureProxyView_hdr", + hdrs = ["TextureProxyView.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":TextureProxy_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkRefCnt_hdr", + "//include/gpu/graphite:GraphiteTypes_hdr", + "//src/gpu:Swizzle_hdr", + ], +) + +generated_cc_atom( + name = "PipelineDataCache_hdr", + hdrs = ["PipelineDataCache.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//src/core:SkArenaAlloc_hdr", + "//src/core:SkPipelineData_hdr", + ], +) + +generated_cc_atom( + name = "DrawGeometry_hdr", + hdrs = ["DrawGeometry.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":DrawOrder_hdr", + "//include/core:SkPaint_hdr", + "//include/core:SkRect_hdr", + "//src/gpu/graphite/geom:Rect_hdr", + "//src/gpu/graphite/geom:Shape_hdr", + "//src/gpu/graphite/geom:Transform_graphite_hdr", + ], +) + +generated_cc_atom( + name = "TextureUtils_hdr", + hdrs = ["TextureUtils.h"], + visibility = ["//:__subpackages__"], + deps = [":TextureProxyView_hdr"], +) + +generated_cc_atom( + name = "TextureUtils_src", + srcs = ["TextureUtils.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":Buffer_hdr", + ":Caps_hdr", + ":CommandBuffer_hdr", + ":CopyTask_hdr", + ":RecorderPriv_hdr", + ":ResourceProvider_hdr", + ":TextureUtils_hdr", + ":Texture_hdr", + ":UploadTask_hdr", + "//include/core:SkBitmap_hdr", + "//include/gpu/graphite:Context_hdr", + "//include/gpu/graphite:GraphiteTypes_hdr", + "//include/gpu/graphite:Recorder_hdr", + "//include/gpu/graphite:Recording_hdr", + "//src/core:SkMipmap_hdr", + ], +) + +generated_cc_atom( + name = "GpuWorkSubmission_src", + srcs = ["GpuWorkSubmission.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":CommandBuffer_hdr", + ":GpuWorkSubmission_hdr", + ], +) + +generated_cc_atom( + name = "ClipStack_graphite_hdr", + hdrs = ["ClipStack_graphite.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":DrawOrder_hdr", + "//include/core:SkClipOp_hdr", + "//src/core:SkTBlockList_hdr", + "//src/gpu/graphite/geom:Shape_hdr", + "//src/gpu/graphite/geom:Transform_graphite_hdr", + ], +) + +generated_cc_atom( + name = "ClipStack_src", + srcs = ["ClipStack.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":ClipStack_graphite_hdr", + ":Device_hdr", + ":DrawGeometry_hdr", + "//include/core:SkMatrix_hdr", + "//include/core:SkShader_hdr", + "//include/core:SkStrokeRec_hdr", + "//src/core:SkMatrixProvider_hdr", + "//src/core:SkPathPriv_hdr", + "//src/core:SkRRectPriv_hdr", + "//src/core:SkRectPriv_hdr", + "//src/core:SkTLazy_hdr", + "//src/gpu/graphite/geom:BoundsManager_hdr", ], ) diff --git a/third_party/skia/experimental/graphite/src/BackendTexture.cpp b/third_party/skia/src/gpu/graphite/BackendTexture.cpp similarity index 85% rename from third_party/skia/experimental/graphite/src/BackendTexture.cpp rename to third_party/skia/src/gpu/graphite/BackendTexture.cpp index 9dd2cc5cf590..1fe1bd74bbf0 100644 --- a/third_party/skia/experimental/graphite/src/BackendTexture.cpp +++ b/third_party/skia/src/gpu/graphite/BackendTexture.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "experimental/graphite/include/BackendTexture.h" +#include "include/gpu/graphite/BackendTexture.h" -namespace skgpu { +namespace skgpu::graphite { BackendTexture::~BackendTexture() {} @@ -62,12 +62,12 @@ bool BackendTexture::operator==(const BackendTexture& that) const { } #ifdef SK_METAL -BackendTexture::BackendTexture(SkISize dimensions, mtl::Handle mtlTexture) +BackendTexture::BackendTexture(SkISize dimensions, MtlHandle mtlTexture) : fDimensions(dimensions) - , fInfo(mtl::TextureInfo(mtlTexture)) + , fInfo(MtlTextureInfo(mtlTexture)) , fMtlTexture(mtlTexture) {} -mtl::Handle BackendTexture::getMtlTexture() const { +MtlHandle BackendTexture::getMtlTexture() const { if (this->isValid() && this->backend() == BackendApi::kMetal) { return fMtlTexture; } @@ -76,5 +76,5 @@ mtl::Handle BackendTexture::getMtlTexture() const { #endif -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/Buffer.cpp b/third_party/skia/src/gpu/graphite/Buffer.cpp similarity index 78% rename from third_party/skia/experimental/graphite/src/Buffer.cpp rename to third_party/skia/src/gpu/graphite/Buffer.cpp index fdca838809b0..80b3683245c6 100644 --- a/third_party/skia/experimental/graphite/src/Buffer.cpp +++ b/third_party/skia/src/gpu/graphite/Buffer.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/Buffer.h" +#include "src/gpu/graphite/Buffer.h" -namespace skgpu { +namespace skgpu::graphite { void* Buffer::map() { if (!this->isMapped()) { @@ -22,5 +22,5 @@ void Buffer::unmap() { fMapPtr = nullptr; } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/Buffer.h b/third_party/skia/src/gpu/graphite/Buffer.h similarity index 70% rename from third_party/skia/experimental/graphite/src/Buffer.h rename to third_party/skia/src/gpu/graphite/Buffer.h index a109aed31026..95390e8c087e 100644 --- a/third_party/skia/experimental/graphite/src/Buffer.h +++ b/third_party/skia/src/gpu/graphite/Buffer.h @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#ifndef skgpu_Buffer_DEFINED -#define skgpu_Buffer_DEFINED +#ifndef skgpu_graphite_Buffer_DEFINED +#define skgpu_graphite_Buffer_DEFINED -#include "experimental/graphite/src/Resource.h" -#include "experimental/graphite/src/ResourceTypes.h" +#include "src/gpu/graphite/Resource.h" +#include "src/gpu/graphite/ResourceTypes.h" -namespace skgpu { +namespace skgpu::graphite { class Buffer : public Resource { public: @@ -24,7 +24,10 @@ class Buffer : public Resource { protected: Buffer(const Gpu* gpu, size_t size, BufferType type, PrioritizeGpuReads prioritizeGpuReads) - : Resource(gpu), fSize(size), fType(type), fPrioritizeGpuReads(prioritizeGpuReads) {} + : Resource(gpu, Ownership::kOwned) + , fSize(size) + , fType(type) + , fPrioritizeGpuReads(prioritizeGpuReads) {} void* fMapPtr = nullptr; @@ -42,7 +45,7 @@ class Buffer : public Resource { PrioritizeGpuReads fPrioritizeGpuReads; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_Buffer_DEFINED +#endif // skgpu_graphite_Buffer_DEFINED diff --git a/third_party/skia/src/gpu/graphite/Caps.cpp b/third_party/skia/src/gpu/graphite/Caps.cpp new file mode 100644 index 000000000000..b128d267ec7b --- /dev/null +++ b/third_party/skia/src/gpu/graphite/Caps.cpp @@ -0,0 +1,55 @@ +/* + * 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 "src/gpu/graphite/Caps.h" + +#include "include/gpu/graphite/TextureInfo.h" +#include "src/sksl/SkSLUtil.h" + +namespace skgpu::graphite { + +Caps::Caps() {} +Caps::~Caps() {} + +bool Caps::isTexturable(const TextureInfo& info) const { + if (info.numSamples() > 1) { + return false; + } + return this->onIsTexturable(info); +} + +bool Caps::areColorTypeAndTextureInfoCompatible(SkColorType ct, const TextureInfo& info) const { + // TODO: add SkImage::CompressionType handling + // (can be handled by setting up the colorTypeInfo instead?) + + return SkToBool(this->getColorTypeInfo(ct, info)); +} + +skgpu::Swizzle Caps::getReadSwizzle(SkColorType ct, const TextureInfo& info) const { + // TODO: add SkImage::CompressionType handling + // (can be handled by setting up the colorTypeInfo instead?) + + auto colorTypeInfo = this->getColorTypeInfo(ct, info); + if (!colorTypeInfo) { + SkDEBUGFAILF("Illegal color type (%d) and format combination.", static_cast(ct)); + return {}; + } + + return colorTypeInfo->fReadSwizzle; +} + +skgpu::Swizzle Caps::getWriteSwizzle(SkColorType ct, const TextureInfo& info) const { + auto colorTypeInfo = this->getColorTypeInfo(ct, info); + if (!colorTypeInfo) { + SkDEBUGFAILF("Illegal color type (%d) and format combination.", static_cast(ct)); + return {}; + } + + return colorTypeInfo->fWriteSwizzle; +} + +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/Caps.h b/third_party/skia/src/gpu/graphite/Caps.h similarity index 67% rename from third_party/skia/experimental/graphite/src/Caps.h rename to third_party/skia/src/gpu/graphite/Caps.h index c7d7c608c98b..3faa46f14b11 100644 --- a/third_party/skia/experimental/graphite/src/Caps.h +++ b/third_party/skia/src/gpu/graphite/Caps.h @@ -5,19 +5,20 @@ * found in the LICENSE file. */ -#ifndef skgpu_Caps_DEFINED -#define skgpu_Caps_DEFINED +#ifndef skgpu_graphite_Caps_DEFINED +#define skgpu_graphite_Caps_DEFINED -#include "experimental/graphite/src/ResourceTypes.h" #include "include/core/SkImageInfo.h" #include "include/core/SkRefCnt.h" #include "src/gpu/ResourceKey.h" +#include "src/gpu/Swizzle.h" +#include "src/gpu/graphite/ResourceTypes.h" namespace SkSL { struct ShaderCaps; } -namespace skgpu { +namespace skgpu::graphite { class GraphicsPipelineDesc; class GraphiteResourceKey; @@ -69,9 +70,33 @@ class Caps : public SkRefCnt { bool clampToBorderSupport() const { return fClampToBorderSupport; } + // Returns the skgpu::Swizzle to use when sampling or reading back from a texture with the + // passed in SkColorType and TextureInfo. + skgpu::Swizzle getReadSwizzle(SkColorType, const TextureInfo&) const; + + // Returns the skgpu::Swizzle to use when writing colors to a surface with the passed in + // SkColorType and TextureInfo. + skgpu::Swizzle getWriteSwizzle(SkColorType, const TextureInfo&) const; + protected: Caps(); + // ColorTypeInfo for a specific format. + // Used in format tables. + struct ColorTypeInfo { + SkColorType fColorType = kUnknown_SkColorType; + enum { + kUploadData_Flag = 0x1, + // Does Graphite itself support rendering to this colorType & format pair. Renderability + // still additionally depends on if the format itself is renderable. + kRenderable_Flag = 0x2, + }; + uint32_t fFlags = 0; + + skgpu::Swizzle fReadSwizzle; + skgpu::Swizzle fWriteSwizzle; + }; + int fMaxTextureSize = 0; size_t fRequiredUniformBufferAlignment = 0; @@ -81,9 +106,9 @@ class Caps : public SkRefCnt { private: virtual bool onIsTexturable(const TextureInfo&) const = 0; - virtual bool onAreColorTypeAndTextureInfoCompatible(SkColorType, const TextureInfo&) const = 0; + virtual const ColorTypeInfo* getColorTypeInfo(SkColorType, const TextureInfo&) const = 0; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_Caps_DEFINED +#endif // skgpu_graphite_Caps_DEFINED diff --git a/third_party/skia/src/gpu/graphite/ClipStack.cpp b/third_party/skia/src/gpu/graphite/ClipStack.cpp new file mode 100644 index 000000000000..98dac990fd28 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/ClipStack.cpp @@ -0,0 +1,1155 @@ +/* + * 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/ClipStack_graphite.h" + +#include "include/core/SkMatrix.h" +#include "include/core/SkShader.h" +#include "include/core/SkStrokeRec.h" +#include "src/core/SkMatrixProvider.h" +#include "src/core/SkPathPriv.h" +#include "src/core/SkRRectPriv.h" +#include "src/core/SkRectPriv.h" +#include "src/core/SkTLazy.h" +#include "src/gpu/graphite/Device.h" +#include "src/gpu/graphite/DrawGeometry.h" +#include "src/gpu/graphite/geom/BoundsManager.h" + +namespace skgpu::graphite { + +namespace { + +Rect subtract(const Rect& a, const Rect& b, bool exact) { + SkRect diff; + if (SkRectPriv::Subtract(a.asSkRect(), b.asSkRect(), &diff) || !exact) { + // Either A-B is exactly the rectangle stored in diff, or we don't need an exact answer + // and can settle for the subrect of A excluded from B (which is also 'diff') + return Rect{diff}; + } else { + // For our purposes, we want the original A when A-B cannot be exactly represented + return a; + } +} + +static const Transform kIdentity{SkM44()}; + +} // anonymous namespace + +/////////////////////////////////////////////////////////////////////////////// +// ClipStack::TransformedShape + +// A flyweight object describing geometry, subject to a local-to-device transform. +// This can be used by SaveRecords, Elements, and draws to determine how two shape operations +// interact with each other, without needing to share a base class, friend each other, or have a +// template for each combination of two types. +struct ClipStack::TransformedShape { + const Transform& fLocalToDevice; + const Shape& fShape; + const Rect& fOuterBounds; + const Rect& fInnerBounds; + + SkClipOp fOp; + + // contains() performs a fair amount of work to be as accurate as possible since it can mean + // greatly simplifying the clip stack. However, in some contexts this isn't worth doing because + // the actual shape is only an approximation (save records), or there's no current way to take + // advantage of knowing this shape contains another (draws containing a clip hypothetically + // could replace their geometry to draw the clip directly, but that isn't implemented now). + bool fContainsChecksOnlyBounds = false; + + bool intersects(const TransformedShape&) const; + bool contains(const TransformedShape&) const; +}; + +bool ClipStack::TransformedShape::intersects(const TransformedShape& o) const { + if (!fOuterBounds.intersects(o.fOuterBounds)) { + return false; + } + if (fLocalToDevice == o.fLocalToDevice) { + // Since the two shape's local coordinate spaces are the same, we can compare shape + // bounds directly for a more accurate intersection test. We intentionally do not go + // further and do shape-specific intersection tests since these could have unknown + // complexity (for paths) and limited utility (e.g. two round rects that are disjoint + // solely from their corner curves). + return fShape.bounds().intersects(o.fShape.bounds()); + } else if (fLocalToDevice.type() > Transform::Type::kRectStaysRect || + o.fLocalToDevice.type() > Transform::Type::kRectStaysRect) { + // The shapes don't share the same coordinate system, and their approximate 'outer' + // bounds in device space could have substantial outsetting to contain the transformed + // shape (e.g. 45 degree rotation). This makes it worth mapping the corners of o' + // into this shape's local space for a more accurate test. + Rect bounds = fShape.bounds(); + SkV4 deviceQuad[4]; + o.fLocalToDevice.mapPoints(o.fShape.bounds(), deviceQuad); + SkV4 localQuad[4]; + fLocalToDevice.inverseMapPoints(deviceQuad, localQuad, 4); + for (int i = 0; i < 4; ++i) { + // TODO: Would be nice to make this consistent with how the GPU clips NDC w. + if (deviceQuad[i].w < SkPathPriv::kW0PlaneDistance || + localQuad[i].w < SkPathPriv::kW0PlaneDistance) { + // Something in 'o' actually projects behind the W = 0 plane and would be + // clipped to infinity, so pessimistically assume that they could intersect. + return true; + } + if (bounds.contains(Rect::Point(float2::Load(localQuad + i) / localQuad[i].w))) { + // If any corner of 'o's bounds are contained then it intersects our bounds + return true; + } + } + // Else no corners of 'o's bounds are inside our bounds, so no intersection + return false; + } + + // Else the two shape's coordinate spaces are different but both rect-stays-rect or simpler. + // This means, though, that their outer bounds approximations are tight to their transormed + // shape bounds. There's no point to do further tests given that and that we already found + // that these outer bounds *do* intersect. + return true; +} + +bool ClipStack::TransformedShape::contains(const TransformedShape& o) const { + if (fInnerBounds.contains(o.fOuterBounds)) { + return true; + } + if (fContainsChecksOnlyBounds) { + return false; // don't do any more work + } + + if (fLocalToDevice == o.fLocalToDevice) { + // Test the shapes directly against each other, with a special check for a rrect+rrect + // containment (a intersect b == a implies b contains a) and paths (same gen ID, or same + // path for small paths means they contain each other). + static constexpr int kMaxPathComparePoints = 16; + if (fShape.isRRect() && o.fShape.isRRect()) { + return SkRRectPriv::ConservativeIntersect(fShape.rrect(), o.fShape.rrect()) + == o.fShape.rrect(); + } else if (fShape.isPath() && o.fShape.isPath()) { + // TODO: Is this worth doing still if clips only cost as much as a single draw? + return (fShape.path().getGenerationID() == o.fShape.path().getGenerationID()) || + (fShape.path().countPoints() <= kMaxPathComparePoints && + fShape.path() == o.fShape.path()); + } else { + return fShape.conservativeContains(o.fShape.bounds()); + } + } else if (fLocalToDevice.type() <= Transform::Type::kRectStaysRect && + o.fLocalToDevice.type() <= Transform::Type::kRectStaysRect) { + // Optimize the common case where o's bounds can be mapped tightly into this coordinate + // space and then tested against our shape. + Rect localBounds = fLocalToDevice.inverseMapRect( + o.fLocalToDevice.mapRect(o.fShape.bounds())); + return fShape.conservativeContains(localBounds); + } else if (fShape.convex()) { + // Since this shape is convex, if all four corners of o's bounding box are inside it + // then the entirety of o is also guaranteed to be inside it. + SkV4 deviceQuad[4]; + o.fLocalToDevice.mapPoints(o.fShape.bounds(), deviceQuad); + SkV4 localQuad[4]; + fLocalToDevice.inverseMapPoints(deviceQuad, localQuad, 4); + for (int i = 0; i < 4; ++i) { + // TODO: Would be nice to make this consistent with how the GPU clips NDC w. + if (deviceQuad[i].w < SkPathPriv::kW0PlaneDistance || + localQuad[i].w < SkPathPriv::kW0PlaneDistance) { + // Something in O actually projects behind the W = 0 plane and would be clipped + // to infinity, so it's extremely unlikely that this contains O. + return false; + } + if (!fShape.conservativeContains(float2::Load(localQuad + i) / localQuad[i].w)) { + return false; + } + } + return true; + } + + // Else not an easily comparable pair of shapes so assume this doesn't contain O + return false; +} + +ClipStack::SimplifyResult ClipStack::Simplify(const TransformedShape& a, + const TransformedShape& b) { + enum class ClipCombo { + kDD = 0b00, + kDI = 0b01, + kID = 0b10, + kII = 0b11 + }; + + switch(static_cast(((int) a.fOp << 1) | (int) b.fOp)) { + case ClipCombo::kII: + // Intersect (A) + Intersect (B) + if (!a.intersects(b)) { + // Regions with non-zero coverage are disjoint, so intersection = empty + return SimplifyResult::kEmpty; + } else if (b.contains(a)) { + // B's full coverage region contains entirety of A, so intersection = A + return SimplifyResult::kAOnly; + } else if (a.contains(b)) { + // A's full coverage region contains entirety of B, so intersection = B + return SimplifyResult::kBOnly; + } else { + // The shapes intersect in some non-trivial manner + return SimplifyResult::kBoth; + } + case ClipCombo::kID: + // Intersect (A) + Difference (B) + if (!a.intersects(b)) { + // A only intersects B's full coverage region, so intersection = A + return SimplifyResult::kAOnly; + } else if (b.contains(a)) { + // B's zero coverage region completely contains A, so intersection = empty + return SimplifyResult::kEmpty; + } else { + // Intersection cannot be simplified. Note that the combination of a intersect + // and difference op in this order cannot produce kBOnly + return SimplifyResult::kBoth; + } + case ClipCombo::kDI: + // Difference (A) + Intersect (B) - the mirror of Intersect(A) + Difference(B), + // but combining is commutative so this is equivalent barring naming. + if (!b.intersects(a)) { + // B only intersects A's full coverage region, so intersection = B + return SimplifyResult::kBOnly; + } else if (a.contains(b)) { + // A's zero coverage region completely contains B, so intersection = empty + return SimplifyResult::kEmpty; + } else { + // Cannot be simplified + return SimplifyResult::kBoth; + } + case ClipCombo::kDD: + // Difference (A) + Difference (B) + if (a.contains(b)) { + // A's zero coverage region contains B, so B doesn't remove any extra + // coverage from their intersection. + return SimplifyResult::kAOnly; + } else if (b.contains(a)) { + // Mirror of the above case, intersection = B instead + return SimplifyResult::kBOnly; + } else { + // Intersection of the two differences cannot be simplified. Note that for + // this op combination it is not possible to produce kEmpty. + return SimplifyResult::kBoth; + } + } +} + +/////////////////////////////////////////////////////////////////////////////// +// ClipStack::Element + +ClipStack::RawElement::RawElement(const Rect& deviceBounds, + const Transform& localToDevice, + const Shape& shape, + SkClipOp op) + : Element{shape, localToDevice, op} + , fUsageBounds{Rect::InfiniteInverted()} + , fOrder(DrawOrder::kNoIntersection) + , fMaxZ(DrawOrder::kClearDepth) + , fInvalidatedByIndex(-1) { + // Discard shapes that don't have any area (including when a transform can't be inverted, since + // it means the two dimensions are collapsed to 0 or 1 dimension in device space). + if (fShape.isLine() || !localToDevice.valid()) { + fShape.reset(); + } + // Make sure the shape is not inverted. An inverted shape is equivalent to a non-inverted shape + // with the clip op toggled. + if (fShape.inverted()) { + fOp = (fOp == SkClipOp::kIntersect) ? SkClipOp::kDifference : SkClipOp::kIntersect; + } + + fOuterBounds = fLocalToDevice.mapRect(fShape.bounds()).makeIntersect(deviceBounds); + fInnerBounds = Rect::InfiniteInverted(); + + // Apply rect-stays-rect transforms to rects and round rects to reduce the number of unique + // local coordinate systems that are in play. + if (!fOuterBounds.isEmptyNegativeOrNaN() && + fLocalToDevice.type() == Transform::Type::kRectStaysRect) { + if (fShape.isRect()) { + // The actual geometry can be updated to the device-intersected bounds and we know the + // inner bounds are equal to the outer. + fShape.setRect(fOuterBounds); + fLocalToDevice = kIdentity; + fInnerBounds = fOuterBounds; + } else if (fShape.isRRect()) { + // Can't transform in place and must still check transform result since some very + // ill-formed scale+translate matrices can cause invalid rrect radii. + SkRRect xformed; + if (fShape.rrect().transform(fLocalToDevice, &xformed)) { + fShape.setRRect(xformed); + fLocalToDevice = kIdentity; + // Refresh outer bounds to match the transformed round rect in case + // SkRRect::transform produces slightly different results from Transform::mapRect. + fOuterBounds = fShape.bounds().makeIntersect(deviceBounds); + fInnerBounds = Rect{SkRRectPriv::InnerBounds(xformed)}.makeIntersect(fOuterBounds); + } + } + } + + if (fOuterBounds.isEmptyNegativeOrNaN()) { + // Either was already an empty shape or a non-empty shape is offscreen, so treat it as such. + fShape.reset(); + fInnerBounds = Rect::InfiniteInverted(); + } + + // Now that fOp and fShape are canonical, set the shape's fill type to match how it needs to be + // drawn as a depth-only shape everywhere that is clipped out (intersect is thus inverse-filled) + fShape.setInverted(fOp == SkClipOp::kIntersect); + + // Post-conditions on inner and outer bounds + SkASSERT(fShape.isEmpty() || deviceBounds.contains(fOuterBounds)); + this->validate(); +} + +ClipStack::RawElement::operator TransformedShape() const { + return {fLocalToDevice, fShape, fOuterBounds, fInnerBounds, fOp}; +} + +void ClipStack::RawElement::drawClip(Device* device) { + this->validate(); + + // Skip elements that have not affected any draws + if (!this->hasPendingDraw()) { + SkASSERT(fUsageBounds.isEmptyNegativeOrNaN()); + return; + } + + SkASSERT(!fUsageBounds.isEmptyNegativeOrNaN()); + // For clip draws, the usage bounds is the scissor. + Rect scissor = fUsageBounds.makeRoundOut(); + Rect drawBounds = fOuterBounds.makeIntersect(scissor); + if (!drawBounds.isEmptyNegativeOrNaN()) { + // Although we are recording this clip draw after all the draws it affects, 'fOrder' was + // determined at the first usage, so after sorting by DrawOrder the clip draw will be in the + // right place. Unlike regular draws that use their own "Z", by writing the max Z this clip + // affects, it will cause those draws to fail depth tests where they need to be clipped. + DrawOrder order{fMaxZ, fOrder}; + // An element's clip op is encoded in the shape's fill type. Inverse fills are intersect ops + // and regular fills are difference ops. This means fShape is already in the right state to + // draw directly. + SkASSERT((fOp == SkClipOp::kDifference && !fShape.inverted()) || + (fOp == SkClipOp::kIntersect && fShape.inverted())); + // A null paint implies depth-only rendering, a null stroke style implies fill. + device->recordDraw(fLocalToDevice, fShape, Clip{drawBounds, scissor.asSkIRect()}, order, + /*paint=*/nullptr, /*stroke=*/nullptr); + } + + // After the clip shape is drawn, reset its state. If the clip element is being popped off the + // stack or overwritten because a new clip invalidated it, this won't matter. But if the clips + // were drawn because the Device had to flush pending work while the clip stack was not empty, + // subsequent draws will still need to be clipped to the elements. In this case, the usage + // accumulation process will begin again and automatically use the Device's post-flush Z values + // and BoundsManager state. + fUsageBounds = Rect::InfiniteInverted(); + fOrder = DrawOrder::kNoIntersection; + fMaxZ = DrawOrder::kClearDepth; +} + +void ClipStack::RawElement::validate() const { + // If the shape type isn't empty, the outer bounds shouldn't be empty; if the inner bounds are + // not empty, they must be contained in outer. + SkASSERT((fShape.isEmpty() || !fOuterBounds.isEmptyNegativeOrNaN()) && + (fInnerBounds.isEmptyNegativeOrNaN() || fOuterBounds.contains(fInnerBounds))); + SkASSERT((fOp == SkClipOp::kDifference && !fShape.inverted()) || + (fOp == SkClipOp::kIntersect && fShape.inverted())); + SkASSERT(!this->hasPendingDraw() || !fUsageBounds.isEmptyNegativeOrNaN()); +} + +void ClipStack::RawElement::markInvalid(const SaveRecord& current) { + SkASSERT(!this->isInvalid()); + fInvalidatedByIndex = current.firstActiveElementIndex(); + // NOTE: We don't draw the accumulated clip usage when the element is marked invalid. Some + // invalidated elements are part of earlier save records so can become re-active after a restore + // in which case they should continue to accumulate. Invalidated elements that are part of the + // active save record are removed at the end of the stack modification, which is when they are + // explicitly drawn. +} + +void ClipStack::RawElement::restoreValid(const SaveRecord& current) { + if (current.firstActiveElementIndex() < fInvalidatedByIndex) { + fInvalidatedByIndex = -1; + } +} + +bool ClipStack::RawElement::combine(const RawElement& other, const SaveRecord& current) { + // Don't combine elements that have collected draw usage, since that changes their geometry. + if (this->hasPendingDraw() || other.hasPendingDraw()) { + return false; + } + // To reduce the number of possibilities, only consider intersect+intersect. Difference and + // mixed op cases could be analyzed to simplify one of the shapes, but that is a rare + // occurrence and the math is much more complicated. + if (other.fOp != SkClipOp::kIntersect || fOp != SkClipOp::kIntersect) { + return false; + } + + // At the moment, only rect+rect or rrect+rrect are supported (although rect+rrect is + // treated as a degenerate case of rrect+rrect). + bool shapeUpdated = false; + if (fShape.isRect() && other.fShape.isRect()) { + if (fLocalToDevice == other.fLocalToDevice) { + Rect intersection = fShape.rect().makeIntersect(other.fShape.rect()); + // Simplify() should have caught this case + SkASSERT(!intersection.isEmptyNegativeOrNaN()); + fShape.setRect(intersection); + shapeUpdated = true; + } + } else if ((fShape.isRect() || fShape.isRRect()) && + (other.fShape.isRect() || other.fShape.isRRect())) { + if (fLocalToDevice == other.fLocalToDevice) { + // Treat rrect+rect intersections as rrect+rrect + SkRRect a = fShape.isRect() ? SkRRect::MakeRect(fShape.rect().asSkRect()) + : fShape.rrect(); + SkRRect b = other.fShape.isRect() ? SkRRect::MakeRect(other.fShape.rect().asSkRect()) + : other.fShape.rrect(); + + SkRRect joined = SkRRectPriv::ConservativeIntersect(a, b); + if (!joined.isEmpty()) { + // Can reduce to a single element + if (joined.isRect()) { + // And with a simplified type + fShape.setRect(joined.rect()); + } else { + fShape.setRRect(joined); + } + shapeUpdated = true; + } + // else the intersection isn't representable as a rrect, or doesn't actually intersect. + // ConservativeIntersect doesn't disambiguate those two cases, and just testing bounding + // boxes for non-intersection would have already been caught by Simplify(), so + // just don't combine the two elements and let rasterization resolve the combination. + } + } + + if (shapeUpdated) { + // This logic works under the assumption that both combined elements were intersect. + SkASSERT(fOp == SkClipOp::kIntersect && other.fOp == SkClipOp::kIntersect); + fOuterBounds.intersect(other.fOuterBounds); + fInnerBounds.intersect(other.fInnerBounds); + // Inner bounds can become empty, but outer bounds should not be able to. + SkASSERT(!fOuterBounds.isEmptyNegativeOrNaN()); + fShape.setInverted(true); // the setR[R]ect operations reset to non-inverse + this->validate(); + return true; + } else { + return false; + } +} + +void ClipStack::RawElement::updateForElement(RawElement* added, const SaveRecord& current) { + if (this->isInvalid()) { + // Already doesn't do anything, so skip this element + return; + } + + // 'A' refers to this element, 'B' refers to 'added'. + switch (Simplify(*this, *added)) { + case SimplifyResult::kEmpty: + // Mark both elements as invalid to signal that the clip is fully empty + this->markInvalid(current); + added->markInvalid(current); + break; + + case SimplifyResult::kAOnly: + // This element already clips more than 'added', so mark 'added' is invalid to skip it + added->markInvalid(current); + break; + + case SimplifyResult::kBOnly: + // 'added' clips more than this element, so mark this as invalid + this->markInvalid(current); + break; + + case SimplifyResult::kBoth: + // Else the bounds checks think we need to keep both, but depending on the combination + // of the ops and shape kinds, we may be able to do better. + if (added->combine(*this, current)) { + // 'added' now fully represents the combination of the two elements + this->markInvalid(current); + } + break; + } +} + +std::pair +ClipStack::RawElement::updateForDraw(const BoundsManager* boundsManager, + const TransformedShape& draw, + PaintersDepth drawZ) { + if (this->isInvalid()) { + // Cannot affect the draw + return {/*clippedOut=*/false, DrawOrder::kNoIntersection}; + } + + // For this analysis, A refers to the Element and B refers to the draw + switch(Simplify(*this, draw)) { + case SimplifyResult::kEmpty: + // The more detailed per-element checks have determined the draw is clipped out. + return {/*clippedOut=*/true, DrawOrder::kNoIntersection}; + + case SimplifyResult::kBOnly: + // This element does not affect the draw + return {/*clippedOut=*/false, DrawOrder::kNoIntersection}; + + case SimplifyResult::kAOnly: + // If this were the only element, we could replace the draw's geometry but that only + // gives us a win if we know that the clip element would only be used by this draw. + // For now, just fall through to regular clip handling. + [[fallthrough]]; + + case SimplifyResult::kBoth: + if (!this->hasPendingDraw()) { + // No usage yet so we need an order that we will use when drawing to just the depth + // attachment. It is sufficient to use the next CompressedPaintersOrder after the + // most recent draw under this clip's outer bounds. It is necessary to use the + // entire clip's outer bounds because the order has to be determined before the + // final usage bounds are known and a subsequent draw could require a completely + // different portion of the clip than this triggering draw. + // + // Lazily determining the order has several benefits to computing it when the clip + // element was first created: + // - Elements that are invalidated by nested clips before draws are made do not + // waste time in the BoundsManager. + // - Elements that never actually modify a draw (e.g. a defensive clip) do not + // waste time in the BoundsManager. + // - A draw that triggers clip usage on multiple elements will more likely assign + // the same order to those elements, meaning their depth-only draws are more + // likely to batch in the final DrawPass. + // + // However, it does mean that clip elements can have the same order as each other, + // or as later draws (e.g. after the clip has been popped off the stack). Any + // overlap between clips or draws is addressed when the clip is drawn by selecting + // an appropriate DisjointStencilIndex value. Stencil-aside, this order assignment + // logic, max Z tracking, and the depth test during rasterization are able to + // resolve everything correctly even if clips have the same order value. + // See go/clip-stack-order for a detailed analysis of why this works. + fOrder = boundsManager->getMostRecentDraw(fOuterBounds).next(); + fUsageBounds = draw.fOuterBounds; + fMaxZ = drawZ; + } else { + // Earlier draws have already used this element so we cannot change where the + // depth-only draw will be sorted to, but we need to ensure we cover the new draw's + // bounds and use a Z value that will clip out its pixels as appropriate. + fUsageBounds.join(draw.fOuterBounds); + if (drawZ > fMaxZ) { + fMaxZ = drawZ; + } + } + + return {/*clippedOut=*/false, fOrder}; + } + + SkUNREACHABLE; +} + +ClipStack::ClipState ClipStack::RawElement::clipType() const { + // Map from the internal shape kind to the clip state enum + switch (fShape.type()) { + case Shape::Type::kEmpty: + return ClipState::kEmpty; + + case Shape::Type::kRect: + return fOp == SkClipOp::kIntersect && + fLocalToDevice.type() == Transform::Type::kIdentity + ? ClipState::kDeviceRect : ClipState::kComplex; + + case Shape::Type::kRRect: + return fOp == SkClipOp::kIntersect && + fLocalToDevice.type() == Transform::Type::kIdentity + ? ClipState::kDeviceRRect : ClipState::kComplex; + + case Shape::Type::kLine: + // These types should never become RawElements, but call them kComplex in release builds + SkASSERT(false); + [[fallthrough]]; + + case Shape::Type::kPath: + return ClipState::kComplex; + } + SkUNREACHABLE; +} + +/////////////////////////////////////////////////////////////////////////////// +// ClipStack::SaveRecord + +ClipStack::SaveRecord::SaveRecord(const Rect& deviceBounds) + : fInnerBounds(deviceBounds) + , fOuterBounds(deviceBounds) + , fShader(nullptr) + , fStartingElementIndex(0) + , fOldestValidIndex(0) + , fDeferredSaveCount(0) + , fStackOp(SkClipOp::kIntersect) + , fState(ClipState::kWideOpen) {} + +ClipStack::SaveRecord::SaveRecord(const SaveRecord& prior, + int startingElementIndex) + : fInnerBounds(prior.fInnerBounds) + , fOuterBounds(prior.fOuterBounds) + , fShader(prior.fShader) + , fStartingElementIndex(startingElementIndex) + , fOldestValidIndex(prior.fOldestValidIndex) + , fDeferredSaveCount(0) + , fStackOp(prior.fStackOp) + , fState(prior.fState) { + // If the prior record added an element, this one will insert into the same index + // (that's okay since we'll remove it when this record is popped off the stack). + SkASSERT(startingElementIndex >= prior.fStartingElementIndex); +} + +ClipStack::ClipState ClipStack::SaveRecord::state() const { + if (fShader && fState != ClipState::kEmpty) { + return ClipState::kComplex; + } else { + return fState; + } +} + +Rect ClipStack::SaveRecord::scissor(const Rect& deviceBounds, const Rect& drawBounds) const { + // This should only be called when the clip stack actually has something non-trivial to evaluate + // It is effectively a reduced version of Simplify() dealing only with device-space bounds and + // returning the intersection results. + SkASSERT(this->state() != ClipState::kEmpty && this->state() != ClipState::kWideOpen); + SkASSERT(deviceBounds.contains(drawBounds)); // This should have already been handled. + + if (fStackOp == SkClipOp::kDifference) { + // kDifference nominally uses the draw's bounds minus the save record's inner bounds as the + // scissor. However, if the draw doesn't intersect the clip at all then it doesn't have any + // visual effect and we can switch to the device bounds as the canonical scissor. + if (!fOuterBounds.intersects(drawBounds)) { + return deviceBounds; + } else { + // This automatically detects the case where the draw is contained in inner bounds and + // would be entirely clipped out. + return subtract(drawBounds, fInnerBounds, /*exact=*/true); + } + } else { + // kIntersect nominally uses the save record's outer bounds as the scissor. However, if the + // draw is contained entirely within those bounds, it doesn't have any visual effect so + // switch to using the device bounds as the canonical scissor to minimize state changes. + if (fOuterBounds.contains(drawBounds)) { + return deviceBounds; + } else { + // This automatically detects the case where the draw does not intersect the clip. + return fOuterBounds; + } + } +} + +void ClipStack::SaveRecord::removeElements(RawElement::Stack* elements, Device* device) { + while (elements->count() > fStartingElementIndex) { + // Since the element is being deleted now, it won't be in the ClipStack when the Device + // calls recordDeferredClipDraws(). Record the clip's draw now (if it needs it). + elements->back().drawClip(device); + elements->pop_back(); + } +} + +void ClipStack::SaveRecord::restoreElements(RawElement::Stack* elements) { + // Presumably this SaveRecord is the new top of the stack, and so it owns the elements + // from its starting index to restoreCount - 1. Elements from the old save record have + // been destroyed already, so their indices would have been >= restoreCount, and any + // still-present element can be un-invalidated based on that. + int i = elements->count() - 1; + for (RawElement& e : elements->ritems()) { + if (i < fOldestValidIndex) { + break; + } + e.restoreValid(*this); + --i; + } +} + +void ClipStack::SaveRecord::addShader(sk_sp shader) { + SkASSERT(shader); + SkASSERT(this->canBeUpdated()); + if (!fShader) { + fShader = std::move(shader); + } else { + // The total coverage is computed by multiplying the coverage from each element (shape or + // shader), but since multiplication is associative, we can use kSrcIn blending to make + // a new shader that represents 'shader' * 'fShader' + fShader = SkShaders::Blend(SkBlendMode::kSrcIn, std::move(shader), fShader); + } +} + +bool ClipStack::SaveRecord::addElement(RawElement&& toAdd, + RawElement::Stack* elements, + Device* device) { + // Validity check the element's state first + toAdd.validate(); + + // And we shouldn't be adding an element if we have a deferred save + SkASSERT(this->canBeUpdated()); + + if (fState == ClipState::kEmpty) { + // The clip is already empty, and we only shrink, so there's no need to record this element. + return false; + } else if (toAdd.shape().isEmpty()) { + // An empty difference op should have been detected earlier, since it's a no-op + SkASSERT(toAdd.op() == SkClipOp::kIntersect); + fState = ClipState::kEmpty; + this->removeElements(elements, device); + return true; + } + + // Here we treat the SaveRecord as a "TransformedShape" with the identity transform, and a shape + // equal to its outer bounds. This lets us get accurate intersection tests against the new + // element, but we pass true to skip more detailed contains checks because the SaveRecord's + // shape is potentially very different from its aggregate outer bounds. + Shape outerSaveBounds{fOuterBounds}; + TransformedShape save{kIdentity, outerSaveBounds, fOuterBounds, fInnerBounds, fStackOp, + /*containsChecksOnlyBounds=*/true}; + + // In this invocation, 'A' refers to the existing stack's bounds and 'B' refers to the new + // element. + switch (Simplify(save, toAdd)) { + case SimplifyResult::kEmpty: + // The combination results in an empty clip + fState = ClipState::kEmpty; + this->removeElements(elements, device); + return true; + + case SimplifyResult::kAOnly: + // The combination would not be any different than the existing clip + return false; + + case SimplifyResult::kBOnly: + // The combination would invalidate the entire existing stack and can be replaced with + // just the new element. + this->replaceWithElement(std::move(toAdd), elements, device); + return true; + + case SimplifyResult::kBoth: + // The new element combines in a complex manner, so update the stack's bounds based on + // the combination of its and the new element's ops (handled below) + break; + } + + if (fState == ClipState::kWideOpen) { + // When the stack was wide open and the clip effect was kBoth, the "complex" manner is + // simply to keep the element and update the stack bounds to be the element's intersected + // with the device. + this->replaceWithElement(std::move(toAdd), elements, device); + return true; + } + + // Some form of actual clip element(s) to combine with. + if (fStackOp == SkClipOp::kIntersect) { + if (toAdd.op() == SkClipOp::kIntersect) { + // Intersect (stack) + Intersect (toAdd) + // - Bounds updates is simply the paired intersections of outer and inner. + fOuterBounds.intersect(toAdd.outerBounds()); + fInnerBounds.intersect(toAdd.innerBounds()); + // Outer should not have become empty, but is allowed to if there's no intersection. + SkASSERT(!fOuterBounds.isEmptyNegativeOrNaN()); + } else { + // Intersect (stack) + Difference (toAdd) + // - Shrink the stack's outer bounds if the difference op's inner bounds completely + // cuts off an edge. + // - Shrink the stack's inner bounds to completely exclude the op's outer bounds. + fOuterBounds = subtract(fOuterBounds, toAdd.innerBounds(), /* exact */ true); + fInnerBounds = subtract(fInnerBounds, toAdd.outerBounds(), /* exact */ false); + } + } else { + if (toAdd.op() == SkClipOp::kIntersect) { + // Difference (stack) + Intersect (toAdd) + // - Bounds updates are just the mirror of Intersect(stack) + Difference(toAdd) + Rect oldOuter = fOuterBounds; + fOuterBounds = subtract(toAdd.outerBounds(), fInnerBounds, /* exact */ true); + fInnerBounds = subtract(toAdd.innerBounds(), oldOuter, /* exact */ false); + } else { + // Difference (stack) + Difference (toAdd) + // - The updated outer bounds is the union of outer bounds and the inner becomes the + // largest of the two possible inner bounds + fOuterBounds.join(toAdd.outerBounds()); + if (toAdd.innerBounds().area() > fInnerBounds.area()) { + fInnerBounds = toAdd.innerBounds(); + } + } + } + + // If we get here, we're keeping the new element and the stack's bounds have been updated. + // We ought to have caught the cases where the stack bounds resemble an empty or wide open + // clip, so assert that's the case. + SkASSERT(!fOuterBounds.isEmptyNegativeOrNaN() && + (fInnerBounds.isEmptyNegativeOrNaN() || fOuterBounds.contains(fInnerBounds))); + + return this->appendElement(std::move(toAdd), elements, device); +} + +bool ClipStack::SaveRecord::appendElement(RawElement&& toAdd, + RawElement::Stack* elements, + Device* device) { + // Update past elements to account for the new element + int i = elements->count() - 1; + + // After the loop, elements between [max(youngestValid, startingIndex)+1, count-1] can be + // removed from the stack (these are the active elements that have been invalidated by the + // newest element; since it's the active part of the stack, no restore() can bring them back). + int youngestValid = fStartingElementIndex - 1; + // After the loop, elements between [0, oldestValid-1] are all invalid. The value of oldestValid + // becomes the save record's new fLastValidIndex value. + int oldestValid = elements->count(); + // After the loop, this is the earliest active element that was invalidated. It may be + // older in the stack than earliestValid, so cannot be popped off, but can be used to store + // the new element instead of allocating more. + RawElement* oldestActiveInvalid = nullptr; + int oldestActiveInvalidIndex = elements->count(); + + for (RawElement& existing : elements->ritems()) { + if (i < fOldestValidIndex) { + break; + } + // We don't need to pass the actual index that toAdd will be saved to; just the minimum + // index of this save record, since that will result in the same restoration behavior later. + existing.updateForElement(&toAdd, *this); + + if (toAdd.isInvalid()) { + if (existing.isInvalid()) { + // Both new and old invalid implies the entire clip becomes empty + fState = ClipState::kEmpty; + return true; + } else { + // The new element doesn't change the clip beyond what the old element already does + return false; + } + } else if (existing.isInvalid()) { + // The new element cancels out the old element. The new element may have been modified + // to account for the old element's geometry. + if (i >= fStartingElementIndex) { + // Still active, so the invalidated index could be used to store the new element + oldestActiveInvalid = &existing; + oldestActiveInvalidIndex = i; + } + } else { + // Keep both new and old elements + oldestValid = i; + if (i > youngestValid) { + youngestValid = i; + } + } + + --i; + } + + // Post-iteration validity check + SkASSERT(oldestValid == elements->count() || + (oldestValid >= fOldestValidIndex && oldestValid < elements->count())); + SkASSERT(youngestValid == fStartingElementIndex - 1 || + (youngestValid >= fStartingElementIndex && youngestValid < elements->count())); + SkASSERT((oldestActiveInvalid && oldestActiveInvalidIndex >= fStartingElementIndex && + oldestActiveInvalidIndex < elements->count()) || !oldestActiveInvalid); + + // Update final state + SkASSERT(oldestValid >= fOldestValidIndex); + fOldestValidIndex = std::min(oldestValid, oldestActiveInvalidIndex); + fState = oldestValid == elements->count() ? toAdd.clipType() : ClipState::kComplex; + if (fStackOp == SkClipOp::kDifference && toAdd.op() == SkClipOp::kIntersect) { + // The stack remains in difference mode only as long as all elements are difference + fStackOp = SkClipOp::kIntersect; + } + + int targetCount = youngestValid + 1; + if (!oldestActiveInvalid || oldestActiveInvalidIndex >= targetCount) { + // toAdd will be stored right after youngestValid + targetCount++; + oldestActiveInvalid = nullptr; + } + while (elements->count() > targetCount) { + SkASSERT(oldestActiveInvalid != &elements->back()); // shouldn't delete what we'll reuse + elements->back().drawClip(device); + elements->pop_back(); + } + if (oldestActiveInvalid) { + oldestActiveInvalid->drawClip(device); + *oldestActiveInvalid = std::move(toAdd); + } else if (elements->count() < targetCount) { + elements->push_back(std::move(toAdd)); + } else { + elements->back().drawClip(device); + elements->back() = std::move(toAdd); + } + + return true; +} + +void ClipStack::SaveRecord::replaceWithElement(RawElement&& toAdd, + RawElement::Stack* elements, + Device* device) { + // The aggregate state of the save record mirrors the element + fInnerBounds = toAdd.innerBounds(); + fOuterBounds = toAdd.outerBounds(); + fStackOp = toAdd.op(); + fState = toAdd.clipType(); + + // All prior active element can be removed from the stack: [startingIndex, count - 1] + int targetCount = fStartingElementIndex + 1; + while (elements->count() > targetCount) { + elements->back().drawClip(device); + elements->pop_back(); + } + if (elements->count() < targetCount) { + elements->push_back(std::move(toAdd)); + } else { + elements->back().drawClip(device); + elements->back() = std::move(toAdd); + } + + SkASSERT(elements->count() == fStartingElementIndex + 1); + + // This invalidates all older elements that are owned by save records lower in the clip stack. + fOldestValidIndex = fStartingElementIndex; +} + +/////////////////////////////////////////////////////////////////////////////// +// ClipStack + +// NOTE: Based on draw calls in all GMs, SKPs, and SVGs as of 08/20, 98% use a clip stack with +// one Element and up to two SaveRecords, thus the inline size for RawElement::Stack and +// SaveRecord::Stack (this conveniently keeps the size of ClipStack manageable). The max +// encountered element stack depth was 5 and the max save depth was 6. Using an increment of 8 for +// these stacks means that clip management will incur a single allocation for the remaining 2% +// of the draws, with extra head room for more complex clips encountered in the wild. +static constexpr int kElementStackIncrement = 8; +static constexpr int kSaveStackIncrement = 8; + +ClipStack::ClipStack(Device* owningDevice) + : fElements(kElementStackIncrement) + , fSaves(kSaveStackIncrement) + , fDevice(owningDevice) { + // Start with a save record that is wide open + fSaves.emplace_back(this->deviceBounds()); +} + +ClipStack::~ClipStack() = default; + +void ClipStack::save() { + SkASSERT(!fSaves.empty()); + fSaves.back().pushSave(); +} + +void ClipStack::restore() { + SkASSERT(!fSaves.empty()); + SaveRecord& current = fSaves.back(); + if (current.popSave()) { + // This was just a deferred save being undone, so the record doesn't need to be removed yet + return; + } + + // When we remove a save record, we delete all elements >= its starting index and any masks + // that were rasterized for it. + current.removeElements(&fElements, fDevice); + + fSaves.pop_back(); + // Restore any remaining elements that were only invalidated by the now-removed save record. + fSaves.back().restoreElements(&fElements); +} + +Rect ClipStack::deviceBounds() const { + return Rect::WH(fDevice->width(), fDevice->height()); +} + +Rect ClipStack::conservativeBounds() const { + const SaveRecord& current = this->currentSaveRecord(); + if (current.state() == ClipState::kEmpty) { + return Rect::InfiniteInverted(); + } else if (current.state() == ClipState::kWideOpen) { + return this->deviceBounds(); + } else { + if (current.op() == SkClipOp::kDifference) { + // The outer/inner bounds represent what's cut out, so full bounds remains the device + // bounds, minus any fully clipped content that spans the device edge. + return subtract(this->deviceBounds(), current.innerBounds(), /* exact */ true); + } else { + SkASSERT(this->deviceBounds().contains(current.outerBounds())); + return current.outerBounds(); + } + } +} + +ClipStack::SaveRecord& ClipStack::writableSaveRecord(bool* wasDeferred) { + SaveRecord& current = fSaves.back(); + if (current.canBeUpdated()) { + // Current record is still open, so it can be modified directly + *wasDeferred = false; + return current; + } else { + // Must undefer the save to get a new record. + SkAssertResult(current.popSave()); + *wasDeferred = true; + return fSaves.emplace_back(current, fElements.count()); + } +} + +void ClipStack::clipShader(sk_sp shader) { + // Shaders can't bring additional coverage + if (this->currentSaveRecord().state() == ClipState::kEmpty) { + return; + } + + bool wasDeferred; + this->writableSaveRecord(&wasDeferred).addShader(std::move(shader)); + // Geometry elements are not invalidated by updating the clip shader + // TODO: Integrating clipShader into graphite needs more thought, particularly around how to + // handle the shader explosion and where to put the effects in the GraphicsPipelineDesc. + // One idea is to use sample locations and draw the clipShader into the depth buffer. + // Another is resolve the clip shader into an alpha mask image that is sampled by the draw. +} + +void ClipStack::clipShape(const Transform& localToDevice, + const Shape& shape, + SkClipOp op) { + if (this->currentSaveRecord().state() == ClipState::kEmpty) { + return; + } + + // This will apply the transform if it's shape-type preserving, and clip the element's bounds + // to the device bounds (NOT the conservative clip bounds, since those are based on the net + // effect of all elements while device bounds clipping happens implicitly. During addElement, + // we may still be able to invalidate some older elements). + // NOTE: Does not try to simplify the shape type by inspecting the SkPath. + RawElement element{this->deviceBounds(), localToDevice, shape, op}; + + // An empty op means do nothing (for difference), or close the save record, so we try and detect + // that early before doing additional unnecessary save record allocation. + if (element.shape().isEmpty()) { + if (element.op() == SkClipOp::kDifference) { + // If the shape is empty and we're subtracting, this has no effect on the clip + return; + } + // else we will make the clip empty, but we need a new save record to record that change + // in the clip state; fall through to below and updateForElement() will handle it. + } + + bool wasDeferred; + SaveRecord& save = this->writableSaveRecord(&wasDeferred); + SkDEBUGCODE(int elementCount = fElements.count();) + if (!save.addElement(std::move(element), &fElements, fDevice)) { + if (wasDeferred) { + // We made a new save record, but ended up not adding an element to the stack. + // So instead of keeping an empty save record around, pop it off and restore the counter + SkASSERT(elementCount == fElements.count()); + fSaves.pop_back(); + fSaves.back().pushSave(); + } + } +} + +std::pair ClipStack::applyClipToDraw( + const BoundsManager* boundsManager, + const Transform& localToDevice, + const Shape& shape, + const SkStrokeRec& style, + PaintersDepth z) { + const SaveRecord& cs = this->currentSaveRecord(); + if (cs.state() == ClipState::kEmpty) { + // We know the draw is clipped out so don't bother computing the base draw bounds. + return {Clip{Rect::InfiniteInverted(), SkIRect::MakeEmpty()}, DrawOrder::kNoIntersection}; + } + // Compute draw bounds, clipped only to our device bounds since we need to return that even if + // the clip stack is known to be wide-open. + const Rect deviceBounds = this->deviceBounds(); + + // When 'style' isn't fill, 'shape' describes the pre-stroke shape so we can't use it to check + // against clip elements and this will be set to the bounds of the post-stroked shape instead. + SkTCopyOnFirstWrite styledShape{shape}; + Rect drawBounds = shape.bounds(); + if (shape.inverted()) { + // Inverse-filled shapes always fill the entire device (restricted to the clip). + drawBounds = deviceBounds; + styledShape.writable()->setRect(drawBounds); + } else { + // Regular filled shapes and strokes get larger based on style and transform + if (!style.isHairlineStyle()) { + float localStyleOutset = style.getInflationRadius(); + drawBounds.outset(localStyleOutset); + + if (!style.isFillStyle()) { + // While this loses any shape type, the bounds remain local so hopefully tests are + // fairly accurate. + styledShape.writable()->setRect(drawBounds); + } + } + drawBounds = localToDevice.mapRect(drawBounds); + + // Hairlines get an extra pixel *after* transforming to device space + if (style.isHairlineStyle()) { + drawBounds.outset(0.5f); + // and the associated transform must be kIdentity since drawBounds has been mapped by + // localToDevice already. + styledShape.writable()->setRect(drawBounds); + } + } + + drawBounds.intersect(deviceBounds); + if (drawBounds.isEmptyNegativeOrNaN() || cs.state() == ClipState::kWideOpen) { + // Either the draw is off screen, so it's clipped out regardless of the state of the + // SaveRecord, or there are no elements to apply to the draw. In both cases, 'drawBounds' + // has the correct value, the scissor is the device bounds (ignored if clipped-out), and + // we can return kNoIntersection for the painter's order. + return {Clip{drawBounds, deviceBounds.asSkIRect()}, DrawOrder::kNoIntersection}; + } + + // We don't evaluate Simplify() on the SaveRecord and the draw because a reduced version of + // Simplify is effectively performed in computing the scissor rect. + // Given that, we can skip iterating over the clip elements when: + // - the draw's *scissored* bounds are empty, which happens when the draw was clipped out. + // - the draw's *bounds* are contained in our inner bounds, which happens if all we need to + // apply to the draw is the computed scissor rect. + // TODO: The Clip's scissor is defined in terms of integer pixel coords, but if we move to + // clip plane distances in the vertex shader, it can be defined in terms of the original float + // coordinates. + Rect scissor = cs.scissor(deviceBounds, drawBounds).makeRoundOut(); + drawBounds.intersect(scissor); + if (drawBounds.isEmptyNegativeOrNaN() || cs.innerBounds().contains(drawBounds)) { + // Like above, in both cases drawBounds holds the right value and can return kNoIntersection + return {Clip{drawBounds, scissor.asSkIRect()}, DrawOrder::kNoIntersection}; + } + + // If we made it here, the clip stack affects the draw in a complex way so iterate each element. + // A draw is a transformed shape that "intersects" the clip. We use empty inner bounds because + // there's currently no way to re-write the draw as the clip's geometry, so there's no need to + // check if the draw contains the clip (vice versa is still checked and represents an unclipped + // draw so is very useful to identify). + TransformedShape draw{style.isHairlineStyle() ? kIdentity : localToDevice, + *styledShape, + /*outerBounds=*/drawBounds, + /*innerBounds=*/Rect::InfiniteInverted(), + /*op=*/SkClipOp::kIntersect, + /*containsChecksOnlyBounds=*/true}; + + CompressedPaintersOrder maxClipOrder = DrawOrder::kNoIntersection; + int i = fElements.count(); + for (RawElement& e : fElements.ritems()) { + --i; + if (i < cs.oldestElementIndex()) { + // All earlier elements have been invalidated by elements already processed so the draw + // can't be affected by them and cannot contribute to their usage bounds. + break; + } + + auto [clippedOut, order] = e.updateForDraw(boundsManager, draw, z); + if (clippedOut) { + drawBounds = Rect::InfiniteInverted(); + break; + } else { + maxClipOrder = std::max(order, maxClipOrder); + } + } + + return {Clip{drawBounds, scissor.asSkIRect()}, maxClipOrder}; +} + +void ClipStack::recordDeferredClipDraws() { + for (auto& e : fElements.items()) { + // When a Device requires all clip elements to be recorded, we have to iterate all elements, + // and will draw clip shapes for elements that are still marked as invalid from the clip + // stack, including those that are older than the current save record's oldest valid index, + // because they could have accumulated draw usage prior to being invalidated, but weren't + // flushed when they were invalidated because of an intervening save. + e.drawClip(fDevice); + } +} + +} // namespace skgpu diff --git a/third_party/skia/src/gpu/graphite/ClipStack_graphite.h b/third_party/skia/src/gpu/graphite/ClipStack_graphite.h new file mode 100644 index 000000000000..f87e58936942 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/ClipStack_graphite.h @@ -0,0 +1,357 @@ +/* + * 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_ClipStack_DEFINED +#define skgpu_graphite_ClipStack_DEFINED + +#include "include/core/SkClipOp.h" +#include "src/core/SkTBlockList.h" +#include "src/gpu/graphite/DrawOrder.h" +#include "src/gpu/graphite/geom/Shape.h" +#include "src/gpu/graphite/geom/Transform_graphite.h" + +class SkShader; +class SkStrokeRec; + +namespace skgpu::graphite { + +class BoundsManager; +class Clip; +class Device; + +// TODO: Port over many of the unit tests for skgpu/v1/ClipStack defined in GrClipStackTest since +// those tests do a thorough job of enumerating the different element combinations. +class ClipStack { +public: + // TODO: Some of these states reflect what SkDevice requires. Others are based on what Ganesh + // could handle analytically. They will likely change as graphite's clips are sorted out + enum class ClipState : uint8_t { + kEmpty, kWideOpen, kDeviceRect, kDeviceRRect, kComplex + }; + + // All data describing a geometric modification to the clip + struct Element { + Shape fShape; + Transform fLocalToDevice; // TODO: reference a cached Transform like DrawList? + SkClipOp fOp; + }; + + // 'owningDevice' must outlive the clip stack. + ClipStack(Device* owningDevice); + + ~ClipStack(); + + ClipStack(const ClipStack&) = delete; + ClipStack& operator=(const ClipStack&) = delete; + + ClipState clipState() const { return this->currentSaveRecord().state(); } + int maxDeferredClipDraws() const { return fElements.count(); } + Rect conservativeBounds() const; + + class ElementIter; + // Provides for-range over active, valid clip elements from most recent to oldest. + // The iterator provides items as "const Element&". + inline ElementIter begin() const; + inline ElementIter end() const; + + // Clip stack manipulation + void save(); + void restore(); + + void clipShape(const Transform& localToDevice, const Shape& shape, SkClipOp op); + void clipShader(sk_sp shader); + + // Apply the clip stack to the draw described by the provided transform, shape, and stroke. + // The provided 'z' value is the depth value that the draw will use if it's not clipped out + // entirely. Applying clips to a draw is a mostly lazy operation except for what is returned: + // - The Clip's scissor is set to 'conservativeBounds()'. + // - The Clip stores the draw's clipped bounds, taking into account its transform, styling, and + // the above scissor. + // - The CompressedPaintersOrder is the largest order that will be used by any of the clip + // elements that affect the draw. + // + // In addition to computing these values, the clip stack updates per-clip element state for + // later rendering. Clip shapes that affect draws are later recorded into the Device's + // DrawContext with their own painter's order chosen to sort earlier than all affected draws + // but using a Z value greater than affected draws. This ensures that the draws fail the depth + // test for clipped-out pixels. + // + // If the draw is clipped out, the returned draw bounds will be empty. + std::pair applyClipToDraw(const BoundsManager*, + const Transform&, + const Shape&, + const SkStrokeRec&, + PaintersDepth z); + + void recordDeferredClipDraws(); + +private: + // SaveRecords and Elements are stored in two parallel stacks. The top-most SaveRecord is the + // active record, older records represent earlier save points and aren't modified until they + // become active again. Elements may be owned by the active SaveRecord, in which case they are + // fully mutable, or they may be owned by a prior SaveRecord. However, Elements from both the + // active SaveRecord and older records can be valid and affect draw operations. Elements are + // marked inactive when new elements are determined to supersede their effect completely. + // Inactive elements of the active SaveRecord can be deleted immediately; inactive elements of + // older SaveRecords may become active again as the save stack is popped back. + // + // See go/grclipstack-2.0 for additional details and visualization of the data structures. + class SaveRecord; + + // Internally, a lot of clip reasoning is based on an op, outer bounds, and whether a shape + // contains another (possibly just conservatively based on inner/outer device-space bounds). + // Element and SaveRecord store this information directly. A draw is equivalent to a clip + // element with the intersection op. TransformedShape is a lightweight wrapper that can convert + // these different types into a common type that Simplify() can reason about. + struct TransformedShape; + // This captures which of the two elements in (A op B) would be required when they are combined, + // where op is intersect or difference. + enum class SimplifyResult { + kEmpty, + kAOnly, + kBOnly, + kBoth + }; + static SimplifyResult Simplify(const TransformedShape& a, const TransformedShape& b); + + // Wraps the geometric Element data with logic for containment and bounds testing. + class RawElement : private Element { + public: + using Stack = SkTBlockList; + + RawElement(const Rect& deviceBounds, + const Transform& localToDevice, + const Shape& shape, + SkClipOp op); + + ~RawElement() { + // A pending draw means the element affects something already recorded, so its own + // shape needs to be recorded as a draw. Since recording requires the Device (and + // DrawContext), it must happen before we destroy the element itself. + SkASSERT(!this->hasPendingDraw()); + } + + // Silence warnings about implicit copy ctor/assignment because we're declaring a dtor + RawElement(const RawElement&) = default; + RawElement& operator=(const RawElement&) = default; + + operator TransformedShape() const; + + const Element& asElement() const { return *this; } + bool hasPendingDraw() const { return fOrder != DrawOrder::kNoIntersection; } + + const Shape& shape() const { return fShape; } + const Transform& localToDevice() const { return fLocalToDevice; } + const Rect& outerBounds() const { return fOuterBounds; } + const Rect& innerBounds() const { return fInnerBounds; } + SkClipOp op() const { return fOp; } + ClipState clipType() const; + + // As new elements are pushed on to the stack, they may make older elements redundant. + // The old elements are marked invalid so they are skipped during clip application, but may + // become active again when a save record is restored. + bool isInvalid() const { return fInvalidatedByIndex >= 0; } + void markInvalid(const SaveRecord& current); + void restoreValid(const SaveRecord& current); + + // 'added' represents a new op added to the element stack. Its combination with this element + // can result in a number of possibilities: + // 1. The entire clip is empty (signaled by both this and 'added' being invalidated). + // 2. The 'added' op supercedes this element (this element is invalidated). + // 3. This op supercedes the 'added' element (the added element is marked invalidated). + // 4. Their combination can be represented by a single new op (in which case this + // element should be invalidated, and the combined shape stored in 'added'). + // 5. Or both elements remain needed to describe the clip (both are valid and unchanged). + // + // The calling element will only modify its invalidation index since it could belong + // to part of the inactive stack (that might be restored later). All merged state/geometry + // is handled by modifying 'added'. + void updateForElement(RawElement* added, const SaveRecord& current); + + // Updates usage tracking to incorporate the bounds and Z value for the new draw call. + // If this element hasn't affected any prior draws, it will use the bounds manager to + // assign itself a compressed painters order for later rendering. + // + // Returns whether or not this element clips out the draw with more detailed analysis, and + // if not, returns the painters order the draw must sort after. + std::pair updateForDraw(const BoundsManager* boundsManager, + const TransformedShape& draw, + PaintersDepth drawZ); + + // Record a depth-only draw to the given device, restricted to the portion of the clip that + // is actually required based on prior recorded draws. Resets usage tracking for subsequent + // passes. + void drawClip(Device*); + + void validate() const; + + private: + // TODO: Should only combine elements within the same save record, that don't have pending + // draws already. Otherwise, we're changing the geometry that will be rasterized and it + // could lead to gaps even if in a perfect the world the analytically intersected shape was + // equivalent. Can't combine with other save records, since they *might* become pending + // later on. + bool combine(const RawElement& other, const SaveRecord& current); + + // Device space bounds. These bounds are not snapped to pixels with the assumption that if + // a relation (intersects, contains, etc.) is true for the bounds it will be true for the + // rasterization of the coordinates that produced those bounds. + Rect fInnerBounds; + Rect fOuterBounds; + // TODO: Convert fOuterBounds to a ComplementRect to make intersection tests faster? + // Would need to store both original and complement, since the intersection test is + // Rect + ComplementRect and Element/SaveRecord could be on either side of operation. + + // State tracking how this clip element needs to be recorded into the draw context. As the + // clip stack is applied to additional draws, the clip's Z and usage bounds grow to account + // for it; its compressed painter's order is selected the first time a draw is affected. + Rect fUsageBounds; + CompressedPaintersOrder fOrder; + PaintersDepth fMaxZ; + + // Elements are invalidated by SaveRecords as the record is updated with new elements that + // override old geometry. An invalidated element stores the index of the first element of + // the save record that invalidated it. This makes it easy to undo when the save record is + // popped from the stack, and is stable as the current save record is modified. + int fInvalidatedByIndex; + }; + + // Represents a saved point in the clip stack, and manages the life time of elements added to + // stack within the record's life time. Also provides the logic for determining active elements + // given a draw query. + class SaveRecord { + public: + using Stack = SkTBlockList; + + explicit SaveRecord(const Rect& deviceBounds); + + SaveRecord(const SaveRecord& prior, int startingElementIndex); + + const SkShader* shader() const { return fShader.get(); } + const Rect& outerBounds() const { return fOuterBounds; } + const Rect& innerBounds() const { return fInnerBounds; } + SkClipOp op() const { return fStackOp; } + ClipState state() const; + + int firstActiveElementIndex() const { return fStartingElementIndex; } + int oldestElementIndex() const { return fOldestValidIndex; } + bool canBeUpdated() const { return (fDeferredSaveCount == 0); } + + Rect scissor(const Rect& deviceBounds, const Rect& drawBounds) const; + + // Deferred save manipulation + void pushSave() { + SkASSERT(fDeferredSaveCount >= 0); + fDeferredSaveCount++; + } + // Returns true if the record should stay alive. False means the ClipStack must delete it + bool popSave() { + fDeferredSaveCount--; + SkASSERT(fDeferredSaveCount >= -1); + return fDeferredSaveCount >= 0; + } + + // Return true if the element was added to 'elements', or otherwise affected the save record + // (e.g. turned it empty). + bool addElement(RawElement&& toAdd, RawElement::Stack* elements, Device*); + + void addShader(sk_sp shader); + + // Remove the elements owned by this save record, which must happen before the save record + // itself is removed from the clip stack. Records draws for any removed elements that have + // draw usages. + void removeElements(RawElement::Stack* elements, Device*); + + // Restore element validity now that this record is the new top of the stack. + void restoreElements(RawElement::Stack* elements); + + private: + // These functions modify 'elements' and element-dependent state of the record + // (such as valid index and fState). Records draws for any clips that have deferred usages + // that are inactivated and cannot be restored (i.e. part of the active save record). + bool appendElement(RawElement&& toAdd, RawElement::Stack* elements, Device*); + void replaceWithElement(RawElement&& toAdd, RawElement::Stack* elements, Device*); + + // Inner bounds is always contained in outer bounds, or it is empty. All bounds will be + // contained in the device bounds. + Rect fInnerBounds; // Inside is full coverage (stack op == intersect) or 0 cov (diff) + Rect fOuterBounds; // Outside is 0 coverage (op == intersect) or full cov (diff) + + // A save record can have up to one shader, multiple shaders are automatically blended + sk_sp fShader; + + const int fStartingElementIndex; // First element owned by this save record + int fOldestValidIndex; // Index of oldest element that's valid for this record + int fDeferredSaveCount; // Number of save() calls without modifications (yet) + + // Will be kIntersect unless every valid element is kDifference, which is significant + // because if kDifference then there is an implicit extra outer bounds at the device edges. + SkClipOp fStackOp; + ClipState fState; + }; + + Rect deviceBounds() const; + + const SaveRecord& currentSaveRecord() const { + SkASSERT(!fSaves.empty()); + return fSaves.back(); + } + + // Will return the current save record, properly updating deferred saves + // and initializing a first record if it were empty. + SaveRecord& writableSaveRecord(bool* wasDeferred); + + RawElement::Stack fElements; + SaveRecord::Stack fSaves; // always has one wide open record at the top + + Device* fDevice; // the device this clip stack is coupled with +}; + +// Clip element iteration +class ClipStack::ElementIter { +public: + bool operator!=(const ElementIter& o) const { + return o.fItem != fItem && o.fRemaining != fRemaining; + } + + const Element& operator*() const { return (*fItem).asElement(); } + + ElementIter& operator++() { + // Skip over invalidated elements + do { + fRemaining--; + ++fItem; + } while(fRemaining > 0 && (*fItem).isInvalid()); + + return *this; + } + + ElementIter(RawElement::Stack::CRIter::Item item, int r) : fItem(item), fRemaining(r) {} + + RawElement::Stack::CRIter::Item fItem; + int fRemaining; + + friend class ClipStack; +}; + +ClipStack::ElementIter ClipStack::begin() const { + if (this->currentSaveRecord().state() == ClipState::kEmpty || + this->currentSaveRecord().state() == ClipState::kWideOpen) { + // No visible clip elements when empty or wide open + return this->end(); + } + int count = fElements.count() - this->currentSaveRecord().oldestElementIndex(); + return ElementIter(fElements.ritems().begin(), count); +} + +ClipStack::ElementIter ClipStack::end() const { + return ElementIter(fElements.ritems().end(), 0); +} + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_ClipStack_DEFINED diff --git a/third_party/skia/experimental/graphite/src/CommandBuffer.cpp b/third_party/skia/src/gpu/graphite/CommandBuffer.cpp similarity index 76% rename from third_party/skia/experimental/graphite/src/CommandBuffer.cpp rename to third_party/skia/src/gpu/graphite/CommandBuffer.cpp index 460934d6becb..14485c8c2bc6 100644 --- a/third_party/skia/experimental/graphite/src/CommandBuffer.cpp +++ b/third_party/skia/src/gpu/graphite/CommandBuffer.cpp @@ -5,17 +5,17 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/CommandBuffer.h" +#include "src/gpu/graphite/CommandBuffer.h" -#include "experimental/graphite/src/GraphicsPipeline.h" #include "src/core/SkTraceEvent.h" +#include "src/gpu/RefCntedCallback.h" +#include "src/gpu/graphite/Buffer.h" +#include "src/gpu/graphite/GraphicsPipeline.h" +#include "src/gpu/graphite/Sampler.h" +#include "src/gpu/graphite/Texture.h" +#include "src/gpu/graphite/TextureProxy.h" -#include "experimental/graphite/src/Buffer.h" -#include "experimental/graphite/src/Sampler.h" -#include "experimental/graphite/src/Texture.h" -#include "experimental/graphite/src/TextureProxy.h" - -namespace skgpu { +namespace skgpu::graphite { CommandBuffer::CommandBuffer() {} @@ -33,6 +33,19 @@ void CommandBuffer::trackResource(sk_sp resource) { fTrackedResources.push_back(std::move(resource)); } +void CommandBuffer::addFinishedProc(sk_sp finishedProc) { + fFinishedProcs.push_back(std::move(finishedProc)); +} + +void CommandBuffer::callFinishedProcs(bool success) { + if (!success) { + for (int i = 0; i < fFinishedProcs.count(); ++i) { + fFinishedProcs[i]->setFailureResult(); + } + } + fFinishedProcs.reset(); +} + bool CommandBuffer::beginRenderPass(const RenderPassDesc& renderPassDesc, sk_sp colorTexture, sk_sp resolveTexture, @@ -101,25 +114,17 @@ void CommandBuffer::bindDrawBuffers(BindBufferInfo vertices, this->bindIndexBuffer(sk_ref_sp(indices.fBuffer), indices.fOffset); } -void CommandBuffer::bindTextures(const TextureBindEntry* entries, int count) { - this->onBindTextures(entries, count); - for (int i = 0; i < count; ++i) { - SkASSERT(entries[i].fTexture); - this->trackResource(entries[i].fTexture); - } -} - -void CommandBuffer::bindSamplers(const SamplerBindEntry* entries, int count) { - this->onBindSamplers(entries, count); - for (int i = 0; i < count; ++i) { - SkASSERT(entries[i].fSampler); - this->trackResource(entries[i].fSampler); - } +void CommandBuffer::bindTextureAndSampler(sk_sp texture, + sk_sp sampler, + int bindIndex) { + this->onBindTextureAndSampler(texture, sampler, bindIndex); + this->trackResource(std::move(texture)); + this->trackResource(std::move(sampler)); } -bool CommandBuffer::copyTextureToBuffer(sk_sp texture, +bool CommandBuffer::copyTextureToBuffer(sk_sp texture, SkIRect srcRect, - sk_sp buffer, + sk_sp buffer, size_t bufferOffset, size_t bufferRowBytes) { SkASSERT(texture); @@ -138,8 +143,8 @@ bool CommandBuffer::copyTextureToBuffer(sk_sp texture, return true; } -bool CommandBuffer::copyBufferToTexture(sk_sp buffer, - sk_sp texture, +bool CommandBuffer::copyBufferToTexture(sk_sp buffer, + sk_sp texture, const BufferTextureCopyData* copyData, int count) { SkASSERT(buffer); @@ -158,4 +163,4 @@ bool CommandBuffer::copyBufferToTexture(sk_sp buffer, return true; } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/CommandBuffer.h b/third_party/skia/src/gpu/graphite/CommandBuffer.h similarity index 91% rename from third_party/skia/experimental/graphite/src/CommandBuffer.h rename to third_party/skia/src/gpu/graphite/CommandBuffer.h index 8b889ff89a14..1379fc4b3a51 100644 --- a/third_party/skia/experimental/graphite/src/CommandBuffer.h +++ b/third_party/skia/src/gpu/graphite/CommandBuffer.h @@ -5,20 +5,24 @@ * found in the LICENSE file. */ -#ifndef skgpu_CommandBuffer_DEFINED -#define skgpu_CommandBuffer_DEFINED +#ifndef skgpu_graphite_CommandBuffer_DEFINED +#define skgpu_graphite_CommandBuffer_DEFINED -#include "experimental/graphite/include/TextureInfo.h" -#include "experimental/graphite/src/DrawTypes.h" -#include "experimental/graphite/src/DrawWriter.h" #include "include/core/SkColor.h" #include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" +#include "include/gpu/graphite/TextureInfo.h" #include "include/private/SkTArray.h" +#include "src/gpu/graphite/DrawTypes.h" +#include "src/gpu/graphite/DrawWriter.h" struct SkIRect; namespace skgpu { +class RefCntedCallback; +} + +namespace skgpu::graphite { class Buffer; class Gpu; class GraphicsPipeline; @@ -75,6 +79,9 @@ class CommandBuffer : public SkRefCnt, private DrawDispatcher { void trackResource(sk_sp resource); + void addFinishedProc(sk_sp finishedProc); + void callFinishedProcs(bool success); + bool beginRenderPass(const RenderPassDesc&, sk_sp colorTexture, sk_sp resolveTexture, @@ -91,17 +98,7 @@ class CommandBuffer : public SkRefCnt, private DrawDispatcher { BindBufferInfo instances, BindBufferInfo indices) final; - struct TextureBindEntry { - sk_sp fTexture; - unsigned int fBindIndex; - }; - void bindTextures(const TextureBindEntry* entries, int count); - - struct SamplerBindEntry { - sk_sp fSampler; - unsigned int fBindIndex; - }; - void bindSamplers(const SamplerBindEntry* entries, int count); + void bindTextureAndSampler(sk_sp, sk_sp, int bindIndex); // TODO: do we want to handle multiple scissor rects and viewports? void setScissor(unsigned int left, unsigned int top, unsigned int width, unsigned int height) { @@ -181,8 +178,9 @@ class CommandBuffer : public SkRefCnt, private DrawDispatcher { const Buffer* instanceBuffer, size_t instanceOffset) = 0; virtual void onBindIndexBuffer(const Buffer* indexBuffer, size_t bufferOffset) = 0; - virtual void onBindTextures(const TextureBindEntry* entries, int count) = 0; - virtual void onBindSamplers(const SamplerBindEntry* entries, int count) = 0; + virtual void onBindTextureAndSampler(sk_sp, + sk_sp, + unsigned int bindIndex) = 0; virtual void onSetScissor(unsigned int left, unsigned int top, unsigned int width, unsigned int height) = 0; @@ -216,8 +214,9 @@ class CommandBuffer : public SkRefCnt, private DrawDispatcher { inline static constexpr int kInitialTrackedResourcesCount = 32; SkSTArray> fTrackedResources; + SkTArray> fFinishedProcs; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_CommandBuffer_DEFINED +#endif // skgpu_graphite_CommandBuffer_DEFINED diff --git a/third_party/skia/src/gpu/graphite/Context.cpp b/third_party/skia/src/gpu/graphite/Context.cpp new file mode 100644 index 000000000000..4cc776fcf4f7 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/Context.cpp @@ -0,0 +1,148 @@ +/* + * 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/gpu/graphite/Context.h" + +#include "include/core/SkPathTypes.h" +#include "include/gpu/graphite/BackendTexture.h" +#include "include/gpu/graphite/Recorder.h" +#include "include/gpu/graphite/Recording.h" +#include "include/gpu/graphite/TextureInfo.h" +#include "src/core/SkKeyContext.h" +#include "src/core/SkKeyHelpers.h" +#include "src/core/SkShaderCodeDictionary.h" +#include "src/gpu/RefCntedCallback.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/GlobalCache.h" +#include "src/gpu/graphite/Gpu.h" +#include "src/gpu/graphite/GraphicsPipelineDesc.h" +#include "src/gpu/graphite/Renderer.h" +#include "src/gpu/graphite/ResourceProvider.h" + +#ifdef SK_METAL +#include "src/gpu/graphite/mtl/MtlTrampoline.h" +#endif + +namespace skgpu::graphite { + +Context::Context(sk_sp gpu, BackendApi backend) + : fGpu(std::move(gpu)) + , fGlobalCache(sk_make_sp()) + , fBackend(backend) { +} +Context::~Context() {} + +#ifdef SK_METAL +std::unique_ptr Context::MakeMetal(const MtlBackendContext& backendContext) { + sk_sp gpu = MtlTrampoline::MakeGpu(backendContext); + if (!gpu) { + return nullptr; + } + + return std::unique_ptr(new Context(std::move(gpu), BackendApi::kMetal)); +} +#endif + +std::unique_ptr Context::makeRecorder() { + return std::unique_ptr(new Recorder(fGpu, fGlobalCache)); +} + +void Context::insertRecording(const InsertRecordingInfo& info) { + sk_sp callback; + if (info.fFinishedProc) { + callback = RefCntedCallback::Make(info.fFinishedProc, info.fFinishedContext); + } + + SkASSERT(info.fRecording); + if (!info.fRecording) { + if (callback) { + callback->setFailureResult(); + } + return; + } + + SkASSERT(!fCurrentCommandBuffer); + // For now we only allow one CommandBuffer. So we just ref it off the InsertRecordingInfo and + // hold onto it until we submit. + fCurrentCommandBuffer = info.fRecording->fCommandBuffer; + if (callback) { + fCurrentCommandBuffer->addFinishedProc(std::move(callback)); + } +} + +void Context::submit(SyncToCpu syncToCpu) { + SkASSERT(fCurrentCommandBuffer); + + fGpu->submit(std::move(fCurrentCommandBuffer)); + + fGpu->checkForFinishedWork(syncToCpu); +} + +void Context::checkAsyncWorkCompletion() { + fGpu->checkForFinishedWork(SyncToCpu::kNo); +} + +void Context::preCompile(const PaintCombo& paintCombo) { + static const Renderer* kRenderers[] = { + &Renderer::StencilTessellatedCurvesAndTris(SkPathFillType::kWinding), + &Renderer::StencilTessellatedCurvesAndTris(SkPathFillType::kEvenOdd), + &Renderer::StencilTessellatedCurvesAndTris(SkPathFillType::kInverseWinding), + &Renderer::StencilTessellatedCurvesAndTris(SkPathFillType::kInverseEvenOdd), + &Renderer::StencilTessellatedWedges(SkPathFillType::kWinding), + &Renderer::StencilTessellatedWedges(SkPathFillType::kEvenOdd), + &Renderer::StencilTessellatedWedges(SkPathFillType::kInverseWinding), + &Renderer::StencilTessellatedWedges(SkPathFillType::kInverseEvenOdd) + }; + + SkShaderCodeDictionary* dict = fGlobalCache->shaderCodeDictionary(); + SkKeyContext keyContext(dict); + + SkPaintParamsKeyBuilder builder(dict, SkBackend::kGraphite); + + for (auto bm: paintCombo.fBlendModes) { + for (auto& shaderCombo: paintCombo.fShaders) { + for (auto shaderType: shaderCombo.fTypes) { + for (auto tm: shaderCombo.fTileModes) { + auto uniqueID = CreateKey(keyContext, &builder, shaderType, tm, bm); + + GraphicsPipelineDesc desc; + + for (const Renderer* r : kRenderers) { + for (auto&& s : r->steps()) { + if (s->performsShading()) { + desc.setProgram(s, uniqueID); + } + // TODO: Combine with renderpass description set to generate full + // GraphicsPipeline and MSL program. Cache that compiled pipeline on + // the resource provider in a map from desc -> pipeline so that any + // later desc created from equivalent RenderStep + Combination get it. + } + } + } + } + } + } + // TODO: Iterate over the renderers and make descriptions for the steps that don't perform + // shading, and just use ShaderType::kNone. +} + +BackendTexture Context::createBackendTexture(SkISize dimensions, const TextureInfo& info) { + if (!info.isValid() || info.backend() != this->backend()) { + return {}; + } + return fGpu->createBackendTexture(dimensions, info); +} + +void Context::deleteBackendTexture(BackendTexture& texture) { + if (!texture.isValid() || texture.backend() != this->backend()) { + return; + } + fGpu->deleteBackendTexture(texture); +} + +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/ContextPriv.cpp b/third_party/skia/src/gpu/graphite/ContextPriv.cpp similarity index 68% rename from third_party/skia/experimental/graphite/src/ContextPriv.cpp rename to third_party/skia/src/gpu/graphite/ContextPriv.cpp index b695ecd7a347..5047dc49d363 100644 --- a/third_party/skia/experimental/graphite/src/ContextPriv.cpp +++ b/third_party/skia/src/gpu/graphite/ContextPriv.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/ContextPriv.h" +#include "src/gpu/graphite/ContextPriv.h" -#include "experimental/graphite/src/GlobalCache.h" -#include "experimental/graphite/src/Gpu.h" +#include "src/gpu/graphite/GlobalCache.h" +#include "src/gpu/graphite/Gpu.h" -namespace skgpu { +namespace skgpu::graphite { Gpu* ContextPriv::gpu() { return fContext->fGpu.get(); @@ -24,4 +24,4 @@ SkShaderCodeDictionary* ContextPriv::shaderCodeDictionary() { return fContext->fGlobalCache->shaderCodeDictionary(); } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/ContextPriv.h b/third_party/skia/src/gpu/graphite/ContextPriv.h similarity index 83% rename from third_party/skia/experimental/graphite/src/ContextPriv.h rename to third_party/skia/src/gpu/graphite/ContextPriv.h index 70f1a3b2689d..0689bf212b48 100644 --- a/third_party/skia/experimental/graphite/src/ContextPriv.h +++ b/third_party/skia/src/gpu/graphite/ContextPriv.h @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#ifndef skgpu_ContextPriv_DEFINED -#define skgpu_ContextPriv_DEFINED +#ifndef skgpu_graphite_ContextPriv_DEFINED +#define skgpu_graphite_ContextPriv_DEFINED -#include "experimental/graphite/include/Context.h" +#include "include/gpu/graphite/Context.h" class SkShaderCodeDictionary; -namespace skgpu { +namespace skgpu::graphite { class GlobalCache; class Gpu; @@ -49,6 +49,6 @@ inline const ContextPriv Context::priv() const { return ContextPriv(const_cast(this)); } -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_ContextPriv_DEFINED +#endif // skgpu_graphite_ContextPriv_DEFINED diff --git a/third_party/skia/src/gpu/graphite/ContextUtils.cpp b/third_party/skia/src/gpu/graphite/ContextUtils.cpp new file mode 100644 index 000000000000..c691f4e77036 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/ContextUtils.cpp @@ -0,0 +1,67 @@ +/* + * 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 "src/gpu/graphite/ContextUtils.h" + +#include +#include "include/private/SkUniquePaintParamsID.h" +#include "src/core/SkBlenderBase.h" +#include "src/core/SkKeyContext.h" +#include "src/core/SkPipelineData.h" +#include "src/core/SkShaderCodeDictionary.h" +#include "src/gpu/graphite/PaintParams.h" +#include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/Renderer.h" +#include "src/gpu/graphite/ResourceProvider.h" +#include "src/gpu/graphite/UniformManager.h" + +namespace skgpu::graphite { + +std::tuple +ExtractPaintData(Recorder* recorder, + SkPipelineDataGatherer* gatherer, + SkPaintParamsKeyBuilder* builder, + const PaintParams& p) { + + SkDEBUGCODE(gatherer->checkReset()); + SkDEBUGCODE(builder->checkReset()); + + SkKeyContext keyContext(recorder); + + p.toKey(keyContext, builder, gatherer); + + SkPaintParamsKey key = builder->lockAsKey(); + + auto dict = recorder->priv().resourceProvider()->shaderCodeDictionary(); + UniformDataCache* uniformDataCache = recorder->priv().uniformDataCache(); + TextureDataCache* textureDataCache = recorder->priv().textureDataCache(); + + auto entry = dict->findOrCreate(key, gatherer->blendInfo()); + UniformDataCache::Index uniformIndex = uniformDataCache->insert(gatherer->peekUniformData()); + TextureDataCache::Index textureIndex = textureDataCache->insert(gatherer->textureDataBlock()); + + gatherer->reset(); + + return { entry->uniqueID(), uniformIndex, textureIndex }; +} + +UniformDataCache::Index ExtractRenderStepData(UniformDataCache* geometryUniformDataCache, + SkPipelineDataGatherer* gatherer, + const RenderStep* step, + const DrawGeometry& geometry) { + SkDEBUGCODE(gatherer->checkReset()); + + step->writeUniforms(geometry, gatherer); + + UniformDataCache::Index uIndex = geometryUniformDataCache->insert(gatherer->peekUniformData()); + + gatherer->reset(); + + return uIndex; +} + +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/ContextUtils.h b/third_party/skia/src/gpu/graphite/ContextUtils.h new file mode 100644 index 000000000000..550ff6e022bb --- /dev/null +++ b/third_party/skia/src/gpu/graphite/ContextUtils.h @@ -0,0 +1,37 @@ +/* + * 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 skgpu_graphite_ContextUtils_DEFINED +#define skgpu_graphite_ContextUtils_DEFINED + +#include "src/gpu/graphite/PipelineDataCache.h" + +class SkPaintParamsKeyBuilder; +class SkPipelineDataGatherer; +class SkUniquePaintParamsID; + +namespace skgpu::graphite { + +class DrawGeometry; +class PaintParams; +class Recorder; +class RenderStep; + +std::tuple +ExtractPaintData(Recorder*, + SkPipelineDataGatherer* gatherer, + SkPaintParamsKeyBuilder* builder, + const PaintParams&); + +UniformDataCache::Index ExtractRenderStepData(UniformDataCache* geometryUniformDataCache, + SkPipelineDataGatherer* gatherer, + const RenderStep* step, + const DrawGeometry& geometry); + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_ContextUtils_DEFINED diff --git a/third_party/skia/experimental/graphite/src/CopyTask.cpp b/third_party/skia/src/gpu/graphite/CopyTask.cpp similarity index 86% rename from third_party/skia/experimental/graphite/src/CopyTask.cpp rename to third_party/skia/src/gpu/graphite/CopyTask.cpp index 46823d44c532..0c2ab51669ad 100644 --- a/third_party/skia/experimental/graphite/src/CopyTask.cpp +++ b/third_party/skia/src/gpu/graphite/CopyTask.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/CopyTask.h" +#include "src/gpu/graphite/CopyTask.h" -#include "experimental/graphite/src/Buffer.h" -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/Texture.h" +#include "src/gpu/graphite/Buffer.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/Texture.h" -namespace skgpu { +namespace skgpu::graphite { sk_sp CopyTextureToBufferTask::Make(sk_sp texture, SkIRect srcRect, @@ -39,12 +39,13 @@ CopyTextureToBufferTask::CopyTextureToBufferTask(sk_sp texture, CopyTextureToBufferTask::~CopyTextureToBufferTask() {} -void CopyTextureToBufferTask::addCommands(ResourceProvider*, CommandBuffer* commandBuffer) { +bool CopyTextureToBufferTask::addCommands(ResourceProvider*, CommandBuffer* commandBuffer) { commandBuffer->copyTextureToBuffer(std::move(fTexture), fSrcRect, std::move(fBuffer), fBufferOffset, fBufferRowBytes); + return true; } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/CopyTask.h b/third_party/skia/src/gpu/graphite/CopyTask.h similarity index 78% rename from third_party/skia/experimental/graphite/src/CopyTask.h rename to third_party/skia/src/gpu/graphite/CopyTask.h index 760dd14fe16b..3fa1c9f1981a 100644 --- a/third_party/skia/experimental/graphite/src/CopyTask.h +++ b/third_party/skia/src/gpu/graphite/CopyTask.h @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#ifndef skgpu_CopyTask_DEFINED -#define skgpu_CopyTask_DEFINED +#ifndef skgpu_graphite_CopyTask_DEFINED +#define skgpu_graphite_CopyTask_DEFINED -#include "experimental/graphite/src/Task.h" +#include "src/gpu/graphite/Task.h" #include "include/core/SkRect.h" -namespace skgpu { +namespace skgpu::graphite { class Buffer; class CommandBuffer; @@ -28,7 +28,7 @@ class CopyTextureToBufferTask final : public Task { ~CopyTextureToBufferTask() override; - void addCommands(ResourceProvider*, CommandBuffer*) override; + bool addCommands(ResourceProvider*, CommandBuffer*) override; private: CopyTextureToBufferTask(sk_sp, @@ -44,6 +44,6 @@ class CopyTextureToBufferTask final : public Task { size_t fBufferRowBytes; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_CopyTask_DEFINED +#endif // skgpu_graphite_CopyTask_DEFINED diff --git a/third_party/skia/experimental/graphite/src/Device.cpp b/third_party/skia/src/gpu/graphite/Device.cpp similarity index 53% rename from third_party/skia/experimental/graphite/src/Device.cpp rename to third_party/skia/src/gpu/graphite/Device.cpp index abe9098a1f86..bb92e0f01fcc 100644 --- a/third_party/skia/experimental/graphite/src/Device.cpp +++ b/third_party/skia/src/gpu/graphite/Device.cpp @@ -5,28 +5,27 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/Device.h" - -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/include/Recording.h" -#include "experimental/graphite/include/SkStuff.h" -#include "experimental/graphite/src/Buffer.h" -#include "experimental/graphite/src/Caps.h" -#include "experimental/graphite/src/ContextPriv.h" -#include "experimental/graphite/src/CopyTask.h" -#include "experimental/graphite/src/DrawContext.h" -#include "experimental/graphite/src/DrawList.h" -#include "experimental/graphite/src/Gpu.h" -#include "experimental/graphite/src/Log.h" -#include "experimental/graphite/src/RecorderPriv.h" -#include "experimental/graphite/src/ResourceProvider.h" -#include "experimental/graphite/src/Texture.h" -#include "experimental/graphite/src/TextureProxy.h" -#include "experimental/graphite/src/geom/BoundsManager.h" -#include "experimental/graphite/src/geom/IntersectionTree.h" -#include "experimental/graphite/src/geom/Shape.h" -#include "experimental/graphite/src/geom/Transform_graphite.h" +#include "src/gpu/graphite/Device.h" + +#include "include/gpu/graphite/Recorder.h" +#include "include/gpu/graphite/SkStuff.h" +#include "src/gpu/graphite/Buffer.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/DrawContext.h" +#include "src/gpu/graphite/DrawGeometry.h" +#include "src/gpu/graphite/DrawList.h" +#include "src/gpu/graphite/Gpu.h" +#include "src/gpu/graphite/Log.h" +#include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/Renderer.h" +#include "src/gpu/graphite/TextureProxy.h" +#include "src/gpu/graphite/TextureUtils.h" +#include "src/gpu/graphite/geom/BoundsManager.h" +#include "src/gpu/graphite/geom/IntersectionTree.h" +#include "src/gpu/graphite/geom/Shape.h" +#include "src/gpu/graphite/geom/Transform_graphite.h" #include "include/core/SkPath.h" #include "include/core/SkPathEffect.h" @@ -36,11 +35,12 @@ #include "src/core/SkMatrixPriv.h" #include "src/core/SkPaintPriv.h" #include "src/core/SkSpecialImage.h" +#include "src/core/SkStroke.h" #include #include -namespace skgpu { +namespace skgpu::graphite { namespace { @@ -66,6 +66,10 @@ bool paint_depends_on_dst(const PaintParams& paintParams) { } } +SkIRect rect_to_pixelbounds(const Rect& r) { + return r.makeRoundOut().asSkIRect(); +} + } // anonymous namespace /** @@ -158,8 +162,10 @@ Device::Device(Recorder* recorder, sk_sp dc) : SkBaseDevice(dc->imageInfo(), SkSurfaceProps()) , fRecorder(recorder) , fDC(std::move(dc)) + , fClip(this) , fColorDepthBoundsManager(std::make_unique()) , fDisjointStencilSet(std::make_unique()) + , fCachedLocalToDevice(SkM44()) , fCurrentDepth(DrawOrder::kClearDepth) , fDrawsOverlap(false) { SkASSERT(SkToBool(fDC) && SkToBool(fRecorder)); @@ -177,6 +183,13 @@ void Device::abandonRecorder() { fRecorder = nullptr; } +const Transform& Device::localToDeviceTransform() { + if (this->checkLocalToDeviceDirty()) { + fCachedLocalToDevice = Transform{this->localToDevice44()}; + } + return fCachedLocalToDevice; +} + SkBaseDevice* Device::onCreateDevice(const CreateInfo& info, const SkPaint*) { // TODO: Inspect the paint and create info to determine if there's anything that has to be // modified to support inline subpasses. @@ -196,67 +209,173 @@ bool Device::onReadPixels(const SkPixmap& pm, int x, int y) { bool Device::readPixels(Context* context, Recorder* recorder, const SkPixmap& pm, - int x, - int y) { - // TODO: Support more formats that we can read back into - if (pm.colorType() != kRGBA_8888_SkColorType) { + int srcX, + int srcY) { + return ReadPixelsHelper([this]() { + this->flushPendingWorkToRecorder(); + }, + context, + recorder, + fDC->target(), + pm.info(), + pm.writable_addr(), + pm.rowBytes(), + srcX, + srcY); +} + +bool Device::onWritePixels(const SkPixmap& src, int x, int y) { + // TODO: we may need to share this in a more central place to handle uploads + // to backend textures + + const TextureProxy* target = fDC->target(); + + // TODO: add mipmap support for createBackendTexture + + if (src.colorType() == kUnknown_SkColorType) { return false; } - ResourceProvider* resourceProvider = recorder->priv().resourceProvider(); + // TODO: check for readOnly or framebufferOnly target and return false if so + + const Caps* caps = fRecorder->priv().caps(); + + // TODO: canvas2DFastPath? + // TODO: check that surface supports writePixels + // TODO: handle writePixels as draw if needed (e.g., canvas2DFastPath || !supportsWritePixels) - TextureProxy* srcProxy = fDC->target(); - if (!srcProxy->instantiate(resourceProvider)) { + // TODO: check for flips and conversions and either handle here or pass info to UploadTask + + // for now, until conversions are supported + if (!caps->areColorTypeAndTextureInfoCompatible(src.colorType(), + target->textureInfo())) { return false; } - sk_sp srcTexture = srcProxy->refTexture(); - SkASSERT(srcTexture); - size_t rowBytes = pm.rowBytes(); - size_t size = rowBytes * pm.height(); - sk_sp dstBuffer = resourceProvider->findOrCreateBuffer(size, - BufferType::kXferGpuToCpu, - PrioritizeGpuReads::kNo); - if (!dstBuffer) { + std::vector levels; + levels.push_back({src.addr(), src.rowBytes()}); + + SkIRect dstRect = SkIRect::MakePtSize({x, y}, src.dimensions()); + + this->flushPendingWorkToRecorder(); + return fDC->recordUpload(fRecorder, sk_ref_sp(target), src.colorType(), levels, dstRect); +} + + +/////////////////////////////////////////////////////////////////////////////// + +bool Device::onClipIsAA() const { + // All clips are AA'ed unless it's wide-open, empty, or a device-rect with integer coordinates + ClipStack::ClipState type = fClip.clipState(); + if (type == ClipStack::ClipState::kWideOpen || type == ClipStack::ClipState::kEmpty) { return false; + } else if (type == ClipStack::ClipState::kDeviceRect) { + const ClipStack::Element rect = *fClip.begin(); + SkASSERT(rect.fShape.isRect() && rect.fLocalToDevice.type() == Transform::Type::kIdentity); + return rect.fShape.rect() != rect.fShape.rect().makeRoundOut(); + } else { + return true; } +} - SkIRect srcRect = SkIRect::MakeXYWH(x, y, pm.width(), pm.height()); - sk_sp task = - CopyTextureToBufferTask::Make(std::move(srcTexture), - srcRect, - dstBuffer, - /*bufferOffset=*/0, - rowBytes); - if (!task) { - return false; +SkBaseDevice::ClipType Device::onGetClipType() const { + ClipStack::ClipState state = fClip.clipState(); + if (state == ClipStack::ClipState::kEmpty) { + return ClipType::kEmpty; + } else if (state == ClipStack::ClipState::kDeviceRect || + state == ClipStack::ClipState::kWideOpen) { + return ClipType::kRect; + } else { + return ClipType::kComplex; } +} - this->flushPendingWorkToRecorder(); - fRecorder->priv().add(std::move(task)); +SkIRect Device::onDevClipBounds() const { + return rect_to_pixelbounds(fClip.conservativeBounds()); +} - // TODO: Can snapping ever fail? - context->insertRecording(fRecorder->snap()); - context->submit(SyncToCpu::kYes); +// TODO: This is easy enough to support, but do we still need this API in Skia at all? +void Device::onAsRgnClip(SkRegion* region) const { + SkIRect bounds = this->devClipBounds(); + // Assume wide open and then perform intersect/difference operations reducing the region + region->setRect(bounds); + const SkRegion deviceBounds(bounds); + for (const ClipStack::Element& e : fClip) { + SkRegion tmp; + if (e.fShape.isRect() && e.fLocalToDevice.type() == Transform::Type::kIdentity) { + tmp.setRect(rect_to_pixelbounds(e.fShape.rect())); + } else { + SkPath tmpPath = e.fShape.asPath(); + tmpPath.transform(e.fLocalToDevice); + tmp.setPath(tmpPath, deviceBounds); + } - void* mappedMemory = dstBuffer->map(); + region->op(tmp, (SkRegion::Op) e.fOp); + } +} - memcpy(pm.writable_addr(), mappedMemory, size); +void Device::onClipRect(const SkRect& rect, SkClipOp op, bool aa) { + SkASSERT(op == SkClipOp::kIntersect || op == SkClipOp::kDifference); + // TODO: Snap rect edges to pixel bounds if non-AA and axis-aligned? + fClip.clipShape(this->localToDeviceTransform(), Shape{rect}, op); +} - return true; +void Device::onClipRRect(const SkRRect& rrect, SkClipOp op, bool aa) { + SkASSERT(op == SkClipOp::kIntersect || op == SkClipOp::kDifference); + // TODO: Snap rrect edges to pixel bounds if non-AA and axis-aligned? Is that worth doing to + // seam with non-AA rects even if the curves themselves are AA'ed? + fClip.clipShape(this->localToDeviceTransform(), Shape{rrect}, op); } -bool Device::onWritePixels(const SkPixmap& pm, int x, int y) { - this->flushPendingWorkToRecorder(); +void Device::onClipPath(const SkPath& path, SkClipOp op, bool aa) { + SkASSERT(op == SkClipOp::kIntersect || op == SkClipOp::kDifference); + // TODO: Ensure all path inspection is handled here or in SkCanvas, and that non-AA rects as + // paths are routed appropriately. + // TODO: Must also detect paths that are lines so the clip stack can be set to empty + fClip.clipShape(this->localToDeviceTransform(), Shape{path}, op); +} - return fDC->writePixels(fRecorder, pm, {x, y}); +void Device::onClipShader(sk_sp shader) { + fClip.clipShader(std::move(shader)); } -SkIRect Device::onDevClipBounds() const { - auto target = fDC->target(); - return SkIRect::MakeSize(target->dimensions()); +// TODO: Is clipRegion() on the deprecation chopping block. If not it should be... +void Device::onClipRegion(const SkRegion& globalRgn, SkClipOp op) { + SkASSERT(op == SkClipOp::kIntersect || op == SkClipOp::kDifference); + + Transform globalToDevice{this->globalToDevice()}; + + if (globalRgn.isEmpty()) { + fClip.clipShape(globalToDevice, Shape{}, op); + } else if (globalRgn.isRect()) { + // TODO: Region clips are non-AA so this should match non-AA onClipRect(), but we use a + // different transform so can't just call that instead. + fClip.clipShape(globalToDevice, Shape{SkRect::Make(globalRgn.getBounds())}, op); + } else { + // TODO: Can we just iterate the region and do non-AA rects for each chunk? + SkPath path; + globalRgn.getBoundaryPath(&path); + fClip.clipShape(globalToDevice, Shape{path}, op); + } +} + +void Device::onReplaceClip(const SkIRect& rect) { + // ReplaceClip() is currently not intended to be supported in Graphite since it's only used + // for emulating legacy clip ops in Android Framework, and apps/devices that require that + // should not use Graphite. However, if it needs to be supported, we could probably implement + // it by: + // 1. Flush all pending clip element depth draws. + // 2. Draw a fullscreen rect to the depth attachment using a Z value greater than what's + // been used so far. + // 3. Make sure all future "unclipped" draws use this Z value instead of 0 so they aren't + // sorted before the depth reset. + // 4. Make sure all prior elements are inactive so they can't affect subsequent draws. + // + // For now, just ignore it. } +/////////////////////////////////////////////////////////////////////////////// + void Device::drawPaint(const SkPaint& paint) { // TODO: check paint params as well if (this->clipIsWideOpen()) { @@ -264,17 +383,16 @@ void Device::drawPaint(const SkPaint& paint) { fDC->clear(paint.getColor4f()); return; } - SkRect deviceBounds = SkRect::Make(this->devClipBounds()); - // TODO: Should be able to get the inverse from the matrix cache - SkM44 devToLocal; - if (!this->localToDevice44().invert(&devToLocal)) { + + const Transform& localToDevice = this->localToDeviceTransform(); + if (!localToDevice.valid()) { // TBD: This matches legacy behavior for drawPaint() that requires local coords, although // v1 handles arbitrary transforms when the paint is solid color because it just fills the // device bounds directly. In the new world it might be nice to have non-invertible // transforms formalized (i.e. no drawing ever, handled at SkCanvas level possibly?) return; } - SkRect localCoveringBounds = SkMatrixPriv::MapRect(devToLocal, deviceBounds); + Rect localCoveringBounds = localToDevice.inverseMapRect(fClip.conservativeBounds()); this->drawShape(Shape(localCoveringBounds), paint, kFillStyle, DrawFlags::kIgnorePathEffect | DrawFlags::kIgnoreMaskFilter); } @@ -329,11 +447,7 @@ void Device::drawShape(const Shape& shape, const SkPaint& paint, const SkStrokeRec& style, Mask flags) { - // TODO: Device will cache the Transform or otherwise ensure it's computed once per change to - // its local-to-device matrix, but that requires updating SkDevice's virtuals. Right now we - // re-compute the Transform every draw, as well as any time we recurse on drawShape(), but that - // goes away with the caching. - Transform localToDevice(this->localToDevice44()); + const Transform& localToDevice = this->localToDeviceTransform(); if (!localToDevice.valid()) { // If the transform is not invertible or not finite then drawing isn't well defined. SKGPU_LOG_W("Skipping draw with non-invertible/non-finite transform."); @@ -369,6 +483,10 @@ void Device::drawShape(const Shape& shape, return; } + // TODO: Manually snap pixels for rects, rrects, and lines if paint is non-AA (ideally also + // consider snapping stroke width and/or adjusting geometry for hairlines). This pixel snapping + // math should be consistent with how non-AA clip [r]rects are handled. + // If we got here, then path effects and mask filters should have been handled and the style // should be fill or stroke/hairline. Stroke-and-fill is not handled by DrawContext, but is // emulated here by drawing twice--one stroke and one fill--using the same depth value. @@ -382,7 +500,8 @@ void Device::drawShape(const Shape& shape, } DrawOrder order(fCurrentDepth.next()); - auto [clip, clipOrder] = this->applyClipToDraw(localToDevice, shape, style, order.depth()); + auto [clip, clipOrder] = fClip.applyClipToDraw( + fColorDepthBoundsManager.get(), localToDevice, shape, style, order.depth()); if (clip.drawBounds().isEmptyNegativeOrNaN()) { // Clipped out, so don't record anything return; @@ -401,38 +520,25 @@ void Device::drawShape(const Shape& shape, if (dependsOnDst) { order.dependsOnPaintersOrder(prevDraw); } - // TODO: if the chosen Renderer for a draw uses coverage AA, then it cannot be considered opaque - // regardless of what the PaintParams would do, but we won't know that until after the Renderer - // has been selected for the draw. if (styleType == SkStrokeRec::kStroke_Style || styleType == SkStrokeRec::kHairline_Style || styleType == SkStrokeRec::kStrokeAndFill_Style) { - // TODO: If DC supports stroked primitives, Device could choose one of those based on shape - StrokeParams stroke(style.getWidth(), style.getMiter(), style.getJoin(), style.getCap()); - fDC->strokePath(localToDevice, shape, stroke, clip, order, &shading); + StrokeStyle stroke(style.getWidth(), style.getMiter(), style.getJoin(), style.getCap()); + this->recordDraw(localToDevice, shape, clip, order, &shading, &stroke); } if (styleType == SkStrokeRec::kFill_Style || styleType == SkStrokeRec::kStrokeAndFill_Style) { - // TODO: If DC supports filled primitives, Device could choose one of those based on shape - - // TODO: Route all filled shapes to stencil-and-cover for the sprint; convex will draw - // correctly but uses an unnecessary stencil step. - // if (shape.convex()) { - // fDC->fillConvexPath(localToDevice, shape, clip, order, &shading); - // } else { - DisjointStencilIndex setIndex = fDisjointStencilSet->add(order.paintOrder(), - clip.drawBounds()); - order.dependsOnStencil(setIndex); - fDC->stencilAndFillPath(localToDevice, shape, clip, order, &shading); - // } + this->recordDraw(localToDevice, shape, clip, order, &shading, nullptr); } // Record the painters order and depth used for this draw + // TODO: If recordDraw picked a coverage AA renderer, 'dependsOnDst' is out of date. const bool fullyOpaque = !dependsOnDst && + clipOrder == DrawOrder::kNoIntersection && shape.isRect() && localToDevice.type() <= Transform::Type::kRectStaysRect; - fColorDepthBoundsManager->recordDraw(shape.bounds(), + fColorDepthBoundsManager->recordDraw(clip.drawBounds(), order.paintOrder(), order.depth(), fullyOpaque); @@ -441,32 +547,95 @@ void Device::drawShape(const Shape& shape, fDrawsOverlap |= (prevDraw != DrawOrder::kNoIntersection); } -std::pair Device::applyClipToDraw(const Transform& localToDevice, - const Shape& shape, - const SkStrokeRec& style, - PaintersDepth z) { - SkIRect scissor = this->devClipBounds(); - - Rect drawBounds = shape.bounds(); - if (!style.isHairlineStyle()) { - float localStyleOutset = style.getInflationRadius(); - drawBounds.outset(localStyleOutset); +void Device::recordDraw(const Transform& localToDevice, + const Shape& shape, + const Clip& clip, + DrawOrder ordering, + const PaintParams* paint, + const StrokeStyle* stroke) { + // TODO: remove after CPU-transform fallbacks are no longer needed + static const Transform kIdentity{SkM44()}; + + // TODO: For now stroked paths are converted to fills on the CPU since the fixed count + // stroke path renderer hasn't been ported to Graphite yet. + if (stroke) { + SkPath strokeAsPath = shape.asPath(); + SkStroke stroker; + stroker.setCap(stroke->cap()); + stroker.setJoin(stroke->join()); + stroker.setMiterLimit(stroke->miterLimit()); + stroker.setDoFill(false); + const Transform* transform; + if (stroke->halfWidth() == 0.f) { + // Manually transform to device space and then generate a 1px stroke filled path, which + // would require applying a local matrix to the paint but we skip that for now since all + // of this is temporary anyways and most hairlines aren't spatially-varying. + strokeAsPath.transform(localToDevice.matrix().asM33()); + stroker.setWidth(1.f); + stroker.strokePath(strokeAsPath, &strokeAsPath); + transform = &kIdentity; + } else { + stroker.setResScale(localToDevice.maxScaleFactor()); + stroker.setWidth(stroke->width()); + stroker.strokePath(strokeAsPath, &strokeAsPath); + transform = &localToDevice; + } + // Strokes as fills shouldn't be inverse filled + if (strokeAsPath.isInverseFillType()) { + strokeAsPath.toggleInverseFillType(); + } + // Stroked paths with just moveTos may produce an empty path, which shouldn't be sent on + if (!strokeAsPath.isEmpty()) { + this->recordDraw(*transform, Shape(strokeAsPath), clip, ordering, paint, nullptr); + } + return; + } + // TODO: The tessellating path renderers haven't implemented perspective yet, so transform to + // device space so we draw something approximately correct (barring local coord issues). + if (localToDevice.type() == Transform::Type::kProjection) { + SkPath devicePath = shape.asPath(); + devicePath.transform(localToDevice.matrix().asM33()); + this->recordDraw(kIdentity, Shape(devicePath), clip, ordering, paint, nullptr); + return; } - drawBounds = localToDevice.mapRect(drawBounds); - // Hairlines get an extra pixel *after* transforming to device space - if (style.isHairlineStyle()) { - drawBounds.outset(0.5f); + // TODO: Eventually the Renderer selection logic should be lifted to some external + // RendererSelector that can be reused between Device and other wrappers around DrawContext. + // TODO: All shapes that select a tessellating path renderer need to be "pre-chopped" if they + // are large enough to exceed the fixed count tessellation limits. + const Renderer* renderer = nullptr; + + if (shape.convex() && !shape.inverted()) { + // TODO: Ganesh doesn't have a curve+middle-out triangles option for convex paths, but it + // would be pretty trivial to spin up. + renderer = &Renderer::ConvexTessellatedWedges(); + } else { + // TODO: Combine this heuristic with what is used in PathStencilCoverOp to choose between + // wedges curves consistently in Graphite and Ganesh. + const bool preferWedges = (shape.isPath() && shape.path().countVerbs() < 50) || + clip.drawBounds().area() <= (256 * 256); + + if (preferWedges) { + renderer = &Renderer::StencilTessellatedWedges(shape.fillType()); + } else { + renderer = &Renderer::StencilTessellatedCurvesAndTris(shape.fillType()); + } } - drawBounds.intersect(SkRect::Make(scissor)); - if (drawBounds.isEmptyNegativeOrNaN()) { - // Trivially clipped out, so return now - return {{drawBounds, scissor}, DrawOrder::kNoIntersection}; + if (!renderer) { + SKGPU_LOG_W("Skipping draw with no supported path renderer."); + return; } - // TODO: iterate the clip stack and accumulate draw bounds into clip usage - return {{drawBounds, scissor}, DrawOrder::kNoIntersection}; + if (renderer->depthStencilFlags() & DepthStencilFlags::kStencil) { + DisjointStencilIndex setIndex = fDisjointStencilSet->add(ordering.paintOrder(), + clip.drawBounds()); + ordering.dependsOnStencil(setIndex); + } + // TODO: if the chosen Renderer uses coverage AA, then 'ordering' depends on painter's order, + // so we will need to take into account the previous draw. Since no Renderer uses coverage AA + // right now, it's not an issue yet. + fDC->recordDraw(*renderer, localToDevice, shape, clip, ordering, paint, stroke); } void Device::flushPendingWorkToRecorder() { @@ -480,8 +649,7 @@ void Device::flushPendingWorkToRecorder() { fRecorder->priv().add(std::move(uploadTask)); } - // TODO: iterate the clip stack and issue a depth-only draw for every clip element that has - // a non-empty usage bounds, using that bounds as the scissor. + fClip.recordDeferredClipDraws(); auto drawTask = fDC->snapRenderPassTask(fRecorder, fColorDepthBoundsManager.get()); if (drawTask) { fRecorder->priv().add(std::move(drawTask)); @@ -497,9 +665,8 @@ void Device::flushPendingWorkToRecorder() { } bool Device::needsFlushBeforeDraw(int numNewDraws) const { - // TODO: iterate the clip stack and count the number of clip elements (both w/ and w/o usage - // since we want to know the max # of clip shapes that flushing might add as draws). - // numNewDraws += clip element count... + // Must also account for the elements in the clip stack that might need to be recorded. + numNewDraws += fClip.maxDeferredClipDraws(); return (DrawList::kMaxDraws - fDC->pendingDrawCount()) < numNewDraws; } diff --git a/third_party/skia/experimental/graphite/src/Device.h b/third_party/skia/src/gpu/graphite/Device.h similarity index 80% rename from third_party/skia/experimental/graphite/src/Device.h rename to third_party/skia/src/gpu/graphite/Device.h index 19111cf9d436..7f798471061c 100644 --- a/third_party/skia/experimental/graphite/src/Device.h +++ b/third_party/skia/src/gpu/graphite/Device.h @@ -10,22 +10,25 @@ #include "src/core/SkDevice.h" -#include "experimental/graphite/src/DrawOrder.h" -#include "experimental/graphite/src/EnumBitMask.h" -#include "experimental/graphite/src/geom/Rect.h" +#include "src/gpu/graphite/ClipStack_graphite.h" +#include "src/gpu/graphite/DrawOrder.h" +#include "src/gpu/graphite/EnumBitMask.h" +#include "src/gpu/graphite/geom/Rect.h" +#include "src/gpu/graphite/geom/Transform_graphite.h" class SkStrokeRec; -namespace skgpu { +namespace skgpu::graphite { class BoundsManager; class Clip; class Context; class DrawContext; +class PaintParams; class Recorder; class Shape; +class StrokeStyle; class TextureProxy; -class Transform; class Device final : public SkBaseDevice { public: @@ -38,6 +41,8 @@ class Device final : public SkBaseDevice { SkColorType, SkAlphaType); + Device* asGraphiteDevice() override { return this; } + Recorder* recorder() { return fRecorder; } // This call is triggered from the Recorder on its registered Devices. It is typically called // when the Recorder is abandoned or deleted. @@ -49,21 +54,30 @@ class Device final : public SkBaseDevice { bool readPixels(Context*, Recorder*, const SkPixmap& dst, int x, int y); + const Transform& localToDeviceTransform(); + private: class IntersectionTreeSet; // Clipping - void onSave() override {} - void onRestore() override {} - - bool onClipIsAA() const override { return false; } - bool onClipIsWideOpen() const override { return true; } - ClipType onGetClipType() const override { return ClipType::kRect; } + void onSave() override { fClip.save(); } + void onRestore() override { fClip.restore(); } + + bool onClipIsWideOpen() const override { + return fClip.clipState() == ClipStack::ClipState::kWideOpen; + } + bool onClipIsAA() const override; + ClipType onGetClipType() const override; SkIRect onDevClipBounds() const override; + void onAsRgnClip(SkRegion*) const override; - void onClipRect(const SkRect& rect, SkClipOp, bool aa) override {} - void onClipRRect(const SkRRect& rrect, SkClipOp, bool aa) override {} - void onClipPath(const SkPath& path, SkClipOp, bool aa) override {} + void onClipRect(const SkRect& rect, SkClipOp, bool aa) override; + void onClipRRect(const SkRRect& rrect, SkClipOp, bool aa) override; + void onClipPath(const SkPath& path, SkClipOp, bool aa) override; + + void onClipShader(sk_sp shader) override; + void onClipRegion(const SkRegion& globalRgn, SkClipOp) override; + void onReplaceClip(const SkIRect& rect) override; // Drawing void drawPaint(const SkPaint& paint) override; @@ -88,11 +102,6 @@ class Device final : public SkBaseDevice { * out explicitly so it's easy to keep tabs on how close feature-complete actually is. */ - void onAsRgnClip(SkRegion*) const override {} - void onClipShader(sk_sp) override {} - void onClipRegion(const SkRegion& deviceRgn, SkClipOp) override {} - void onReplaceClip(const SkIRect& rect) override {} - bool onWritePixels(const SkPixmap&, int x, int y) override; // TODO: This will likely be implemented with the same primitive building block that drawRect @@ -117,7 +126,7 @@ class Device final : public SkBaseDevice { const SkPaint&) override {} void drawDrawable(SkCanvas*, SkDrawable*, const SkMatrix*) override {} - void drawVertices(const SkVertices*, sk_sp, const SkPaint&) override {} + void drawVertices(const SkVertices*, sk_sp, const SkPaint&, bool) override {} void drawCustomMesh(SkCustomMesh, sk_sp, const SkPaint&) override {} void drawShadow(const SkPath&, const SkDrawShadowRec&) override {} void onDrawGlyphRunList(SkCanvas*, const SkGlyphRunList&, const SkPaint&) override {} @@ -154,34 +163,36 @@ class Device final : public SkBaseDevice { const SkPaint&, const SkStrokeRec&, Mask = DrawFlags::kNone); - - // Determines most optimal painters order for a draw of the given shape and style. This computes - // the draw's bounds, applying both the style and scissor to the returned bounds. Low-level - // renderers must not draw outside of these bounds or decisions made about ordering draw - // operations at the Device level can be invalidated. In addition to the scissor test and draw - // bounds, this returns the largest compressed painter's order of the clip shapes that affect - // the draw (the draw's order must be greater than this value to be rendered/clipped correctly). - // - // This also records the draw's bounds to any clip elements that affect it so that they are - // recorded when popped off the stack, or making an image snapshot of the Device. - std::pair - applyClipToDraw(const Transform&, const Shape&, const SkStrokeRec&, PaintersDepth z); + // Lowest level draw recording where everything but Renderer has been decided. + void recordDraw(const Transform& localToDevice, + const Shape& shape, + const Clip& clip, + DrawOrder ordering, + const PaintParams* paint, + const StrokeStyle* stroke); bool needsFlushBeforeDraw(int numNewDraws) const; Recorder* fRecorder; sk_sp fDC; + ClipStack fClip; + // Tracks accumulated intersections for ordering dependent use of the color and depth attachment // (i.e. depth-based clipping, and transparent blending) std::unique_ptr fColorDepthBoundsManager; // Tracks disjoint stencil indices for all recordered draws std::unique_ptr fDisjointStencilSet; + // Lazily updated Transform constructed from localToDevice()'s SkM44 + Transform fCachedLocalToDevice; + // The max depth value sent to the DrawContext, incremented so each draw has a unique value. PaintersDepth fCurrentDepth; bool fDrawsOverlap; + + friend class ClipStack; // for recordDraw }; SKGPU_MAKE_MASK_OPS(Device::DrawFlags) diff --git a/third_party/skia/experimental/graphite/src/DrawBufferManager.cpp b/third_party/skia/src/gpu/graphite/DrawBufferManager.cpp similarity index 55% rename from third_party/skia/experimental/graphite/src/DrawBufferManager.cpp rename to third_party/skia/src/gpu/graphite/DrawBufferManager.cpp index 477715b531bf..4903ab6f7811 100644 --- a/third_party/skia/experimental/graphite/src/DrawBufferManager.cpp +++ b/third_party/skia/src/gpu/graphite/DrawBufferManager.cpp @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/DrawBufferManager.h" +#include "src/gpu/graphite/DrawBufferManager.h" -#include "experimental/graphite/src/Buffer.h" -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/ResourceProvider.h" +#include "src/gpu/graphite/Buffer.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/ResourceProvider.h" -namespace skgpu { +namespace skgpu::graphite { namespace { // TODO: Tune these values on real world data -static constexpr size_t kVertexBufferSize = 2 << 10; -static constexpr size_t kIndexBufferSize = 2 << 10; -static constexpr size_t kUniformBufferSize = 2 << 10; +static constexpr size_t kVertexBufferSize = 16 << 10; // 16 KB +static constexpr size_t kIndexBufferSize = 2 << 10; // 2 KB +static constexpr size_t kUniformBufferSize = 2 << 10; // 2 KB void* map_offset(BindBufferInfo binding) { // DrawBufferManager owns the Buffer, and this is only ever called when we know @@ -27,6 +27,18 @@ void* map_offset(BindBufferInfo binding) { static_cast(binding.fOffset)); } +template +size_t sufficient_block_size(size_t requiredBytes) { + // Always request a buffer at least 'requiredBytes', but keep them in multiples of + // 'BufferBlockSize' for improved reuse. + static constexpr size_t kMaxSize = std::numeric_limits::max(); + static constexpr size_t kMaxBlocks = kMaxSize / BufferBlockSize; + size_t blocks = (requiredBytes / BufferBlockSize) + 1; + size_t bufferSize = blocks > kMaxBlocks ? kMaxSize : (blocks * BufferBlockSize); + SkASSERT(requiredBytes < bufferSize); + return bufferSize; +} + } // anonymous namespace DrawBufferManager::DrawBufferManager(ResourceProvider* resourceProvider, @@ -54,8 +66,8 @@ std::tuple DrawBufferManager::getVertexWriter(size } if (!fCurrentVertexBuffer) { - SkASSERT(requiredBytes <= kVertexBufferSize); - fCurrentVertexBuffer = fResourceProvider->findOrCreateBuffer(kVertexBufferSize, + size_t bufferSize = sufficient_block_size(requiredBytes); + fCurrentVertexBuffer = fResourceProvider->findOrCreateBuffer(bufferSize, BufferType::kVertex, PrioritizeGpuReads::kNo); fVertexOffset = 0; @@ -70,6 +82,11 @@ std::tuple DrawBufferManager::getVertexWriter(size return {VertexWriter(map_offset(bindInfo), requiredBytes), bindInfo}; } +void DrawBufferManager::returnVertexBytes(size_t unusedBytes) { + SkASSERT(fVertexOffset >= unusedBytes); + fVertexOffset -= unusedBytes; +} + std::tuple DrawBufferManager::getIndexWriter(size_t requiredBytes) { if (!requiredBytes) { return {IndexWriter(), BindBufferInfo()}; @@ -80,8 +97,8 @@ std::tuple DrawBufferManager::getIndexWriter(size_t } if (!fCurrentIndexBuffer) { - SkASSERT(requiredBytes <= kIndexBufferSize); - fCurrentIndexBuffer = fResourceProvider->findOrCreateBuffer(kIndexBufferSize, + size_t bufferSize = sufficient_block_size(requiredBytes); + fCurrentIndexBuffer = fResourceProvider->findOrCreateBuffer(bufferSize, BufferType::kIndex, PrioritizeGpuReads::kNo); fIndexOffset = 0; @@ -110,8 +127,8 @@ std::tuple DrawBufferManager::getUniformWriter( } if (!fCurrentUniformBuffer) { - SkASSERT(requiredBytes <= kUniformBufferSize); - fCurrentUniformBuffer = fResourceProvider->findOrCreateBuffer(kUniformBufferSize, + size_t bufferSize = sufficient_block_size(requiredBytes); + fCurrentUniformBuffer = fResourceProvider->findOrCreateBuffer(bufferSize, BufferType::kUniform, PrioritizeGpuReads::kNo); fUniformOffset = 0; @@ -127,12 +144,61 @@ std::tuple DrawBufferManager::getUniformWriter( return {UniformWriter(map_offset(bindInfo), requiredBytes), bindInfo}; } +BindBufferInfo DrawBufferManager::getStaticBuffer(BufferType type, + InitializeBufferFn initFn, + BufferSizeFn sizeFn) { + // TODO(skbug:13059) - This should really be encapsulated in ResourceProvider using a shareable + // GraphiteResourceKey. However, this lets us track resources cleanly and since DBM "shares" the + // read-only BindBufferInfo across draw steps, we get equivalent behavior. + uintptr_t key = reinterpret_cast(initFn); + auto cachedBuffer = fStaticBuffers.find(key); + if (cachedBuffer != fStaticBuffers.end()) { + return {cachedBuffer->second.get(), 0}; + } + + // Create a new buffer and fill it in. + // TODO: Ideally created once and then copied into a vertex buffer with PrioritizeGpuReads::kYes + // but this lets us easily lazily initialize it for now. + size_t size = sizeFn(); + auto buffer = fResourceProvider->findOrCreateBuffer(size, type, PrioritizeGpuReads::kNo); + if (!buffer) { + return {}; + } + + initFn(VertexWriter{buffer->map(), size}, size); + buffer->unmap(); + fStaticBuffers.insert({key, buffer}); + return {buffer.get(), 0}; +} + void DrawBufferManager::transferToCommandBuffer(CommandBuffer* commandBuffer) { for (auto& buffer : fUsedBuffers) { buffer->unmap(); commandBuffer->trackResource(std::move(buffer)); } fUsedBuffers.clear(); + + // The current draw buffers have not been added to fUsedBuffers, + // so we need to handle them as well. + if (fCurrentVertexBuffer) { + fCurrentVertexBuffer->unmap(); + commandBuffer->trackResource(std::move(fCurrentVertexBuffer)); + } + if (fCurrentIndexBuffer) { + fCurrentIndexBuffer->unmap(); + commandBuffer->trackResource(std::move(fCurrentIndexBuffer)); + } + if (fCurrentUniformBuffer) { + fCurrentUniformBuffer->unmap(); + commandBuffer->trackResource(std::move(fCurrentUniformBuffer)); + } + // Assume all static buffers were used, but don't lose our ref + // TODO(skbug:13059) - If static buffers are stored in the ResourceProvider and queried on each + // draw or owned by the RenderStep, we still need a way to track the static buffer *once* per + // frame that relies on it. + for (auto [_, buffer] : fStaticBuffers) { + commandBuffer->trackResource(buffer); + } } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/DrawBufferManager.h b/third_party/skia/src/gpu/graphite/DrawBufferManager.h new file mode 100644 index 000000000000..4dba9ba70073 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/DrawBufferManager.h @@ -0,0 +1,76 @@ +/* + * Copyright 2021 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef skgpu_graphite_DrawBufferManager_DEFINED +#define skgpu_graphite_DrawBufferManager_DEFINED + +#include "include/core/SkRefCnt.h" +#include "src/gpu/BufferWriter.h" +#include "src/gpu/graphite/DrawTypes.h" +#include "src/gpu/graphite/ResourceTypes.h" + +#include +#include + +namespace skgpu::graphite { + +class Buffer; +class CommandBuffer; +class ResourceProvider; + +class DrawBufferManager { +public: + DrawBufferManager(ResourceProvider*, size_t uniformStartAlignment); + ~DrawBufferManager(); + + std::tuple getVertexWriter(size_t requiredBytes); + std::tuple getIndexWriter(size_t requiredBytes); + std::tuple getUniformWriter(size_t requiredBytes); + + // Returns the last 'unusedBytes' from the last call to getVertexWriter(). Assumes that + // 'unusedBytes' is less than the 'requiredBytes' to the original allocation. + void returnVertexBytes(size_t unusedBytes); + + + // Get the shared static buffer filled with contents computed by the InitializeBufferFn. + // Both InitializeBufferFn and BufferSizeFn should be static functions since their addresses are + // used in the static buffer's internal unique keys. + // TODO(skbug.com/13059): getStaticBuffer is only temporary until RenderSteps can create buffers + // during initialization of the Context. Only use with RenderSteps that will be updated + // to the new initialization pattern in the near future. + using BufferSizeFn = size_t(*)(); + using InitializeBufferFn = void(*)(skgpu::VertexWriter, size_t bufferSize); + BindBufferInfo getStaticBuffer(BufferType type, + InitializeBufferFn, + BufferSizeFn); + + // Finalizes all buffers and transfers ownership of them to the CommandBuffer. + void transferToCommandBuffer(CommandBuffer*); + +private: + ResourceProvider* fResourceProvider; + + sk_sp fCurrentVertexBuffer; + size_t fVertexOffset = 0; + + sk_sp fCurrentIndexBuffer; + size_t fIndexOffset = 0; + + sk_sp fCurrentUniformBuffer; + size_t fUniformOffset = 0; + + size_t fUniformStartAlignment; + + std::vector> fUsedBuffers; + // TODO(skbug.com/13059): This is likely not the final location for static buffers, but makes it + // convenient to maintain ownership and call trackResources() on the CommandBuffer. + std::unordered_map> fStaticBuffers; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_DrawBufferManager_DEFINED diff --git a/third_party/skia/experimental/graphite/src/DrawContext.cpp b/third_party/skia/src/gpu/graphite/DrawContext.cpp similarity index 56% rename from third_party/skia/experimental/graphite/src/DrawContext.cpp rename to third_party/skia/src/gpu/graphite/DrawContext.cpp index 46b811073767..74dee110ec5f 100644 --- a/third_party/skia/experimental/graphite/src/DrawContext.cpp +++ b/third_party/skia/src/gpu/graphite/DrawContext.cpp @@ -5,29 +5,30 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/DrawContext.h" +#include "src/gpu/graphite/DrawContext.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkPixmap.h" #include "include/private/SkColorData.h" -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/src/Buffer.h" -#include "experimental/graphite/src/Caps.h" -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/ContextPriv.h" -#include "experimental/graphite/src/DrawList.h" -#include "experimental/graphite/src/DrawPass.h" -#include "experimental/graphite/src/Gpu.h" -#include "experimental/graphite/src/RecorderPriv.h" -#include "experimental/graphite/src/RenderPassTask.h" -#include "experimental/graphite/src/ResourceTypes.h" -#include "experimental/graphite/src/TextureProxy.h" -#include "experimental/graphite/src/UploadTask.h" -#include "experimental/graphite/src/geom/BoundsManager.h" -#include "experimental/graphite/src/geom/Shape.h" - -namespace skgpu { +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Recorder.h" +#include "src/gpu/graphite/Buffer.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/DrawList.h" +#include "src/gpu/graphite/DrawPass.h" +#include "src/gpu/graphite/Gpu.h" +#include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/RenderPassTask.h" +#include "src/gpu/graphite/ResourceTypes.h" +#include "src/gpu/graphite/TextureProxy.h" +#include "src/gpu/graphite/UploadTask.h" +#include "src/gpu/graphite/geom/BoundsManager.h" +#include "src/gpu/graphite/geom/Shape.h" + +namespace skgpu::graphite { sk_sp DrawContext::Make(sk_sp target, sk_sp colorSpace, @@ -60,34 +61,6 @@ DrawContext::~DrawContext() { fDrawPasses.clear(); } -void DrawContext::stencilAndFillPath(const Transform& localToDevice, - const Shape& shape, - const Clip& clip, - DrawOrder order, - const PaintParams* paint) { - SkASSERT(SkIRect::MakeSize(fTarget->dimensions()).contains(clip.scissor())); - fPendingDraws->stencilAndFillPath(localToDevice, shape, clip, order,paint); -} - -void DrawContext::fillConvexPath(const Transform& localToDevice, - const Shape& shape, - const Clip& clip, - DrawOrder order, - const PaintParams* paint) { - SkASSERT(SkIRect::MakeSize(fTarget->dimensions()).contains(clip.scissor())); - fPendingDraws->fillConvexPath(localToDevice, shape, clip, order, paint); -} - -void DrawContext::strokePath(const Transform& localToDevice, - const Shape& shape, - const StrokeParams& stroke, - const Clip& clip, - DrawOrder order, - const PaintParams* paint) { - SkASSERT(SkIRect::MakeSize(fTarget->dimensions()).contains(clip.scissor())); - fPendingDraws->strokePath(localToDevice, shape, stroke, clip, order, paint); -} - void DrawContext::clear(const SkColor4f& clearColor) { fPendingLoadOp = LoadOp::kClear; SkPMColor4f pmColor = clearColor.premul(); @@ -99,48 +72,27 @@ void DrawContext::clear(const SkColor4f& clearColor) { fDrawPasses.clear(); } -// -// TODO: The other draw-recording APIs in DrawContext are relatively simple, just storing state -// from the caller's decision making. If possible we should consider moving the more complex logic -// somewhere above DrawContext and have this be much simpler. -bool DrawContext::writePixels(Recorder* recorder, const SkPixmap& src, SkIPoint dstPoint) { - // TODO: add mipmap support for createBackendTexture +void DrawContext::recordDraw(const Renderer& renderer, + const Transform& localToDevice, + const Shape& shape, + const Clip& clip, + DrawOrder ordering, + const PaintParams* paint, + const StrokeStyle* stroke) { + SkASSERT(SkIRect::MakeSize(fTarget->dimensions()).contains(clip.scissor())); + fPendingDraws->recordDraw(renderer, localToDevice, shape, clip, ordering, paint, stroke); +} +bool DrawContext::recordUpload(Recorder* recorder, + sk_sp targetProxy, + SkColorType colorType, + const std::vector& levels, + const SkIRect& dstRect) { // Our caller should have clipped to the bounds of the surface already. - SkASSERT(SkIRect::MakeSize(fTarget->dimensions()).contains( - SkIRect::MakePtSize(dstPoint, src.dimensions()))); - - if (!recorder) { - return false; - } - - if (src.colorType() == kUnknown_SkColorType) { - return false; - } - - // TODO: check for readOnly or framebufferOnly target and return false if so - - const Caps* caps = recorder->priv().caps(); - - // TODO: canvas2DFastPath? - // TODO: check that surface supports writePixels - // TODO: handle writePixels as draw if needed (e.g., canvas2DFastPath || !supportsWritePixels) - - // TODO: check for flips and conversions and either handle here or pass info to appendUpload - - // for now, until conversions are supported - if (!caps->areColorTypeAndTextureInfoCompatible(src.colorType(), - fTarget->textureInfo())) { - return false; - } - - std::vector levels; - levels.push_back({src.addr(), src.rowBytes()}); - - SkIRect dstRect = SkIRect::MakePtSize(dstPoint, src.dimensions()); - return fPendingUploads->appendUpload(recorder, - fTarget, - src.colorType(), + SkASSERT(SkIRect::MakeSize(targetProxy->dimensions()).contains(dstRect)); + return fPendingUploads->recordUpload(recorder, + std::move(targetProxy), + colorType, levels, dstRect); } @@ -195,7 +147,7 @@ sk_sp DrawContext::snapRenderPassTask(Recorder* recorder, } sk_sp DrawContext::snapUploadTask(Recorder* recorder) { - if (!fPendingUploads) { + if (!fPendingUploads || fPendingUploads->size() == 0) { return nullptr; } @@ -206,4 +158,4 @@ sk_sp DrawContext::snapUploadTask(Recorder* recorder) { return uploadTask; } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/DrawContext.h b/third_party/skia/src/gpu/graphite/DrawContext.h similarity index 79% rename from third_party/skia/experimental/graphite/src/DrawContext.h rename to third_party/skia/src/gpu/graphite/DrawContext.h index 31ca03cde0b2..9f5d60d6308e 100644 --- a/third_party/skia/experimental/graphite/src/DrawContext.h +++ b/third_party/skia/src/gpu/graphite/DrawContext.h @@ -5,22 +5,22 @@ * found in the LICENSE file. */ -#ifndef skgpu_DrawContext_DEFINED -#define skgpu_DrawContext_DEFINED +#ifndef skgpu_graphite_DrawContext_DEFINED +#define skgpu_graphite_DrawContext_DEFINED #include "include/core/SkImageInfo.h" #include "include/core/SkRefCnt.h" -#include "experimental/graphite/src/DrawList.h" -#include "experimental/graphite/src/DrawOrder.h" -#include "experimental/graphite/src/DrawTypes.h" -#include "experimental/graphite/src/UploadTask.h" +#include "src/gpu/graphite/DrawList.h" +#include "src/gpu/graphite/DrawOrder.h" +#include "src/gpu/graphite/DrawTypes.h" +#include "src/gpu/graphite/UploadTask.h" #include class SkPixmap; -namespace skgpu { +namespace skgpu::graphite { class BoundsManager; class Recorder; @@ -50,32 +50,21 @@ class DrawContext final : public SkRefCnt { int pendingDrawCount() const { return fPendingDraws->drawCount(); } - // TODO: need color/depth clearing functions (so DCL will probably need those too) - void clear(const SkColor4f& clearColor); - void stencilAndFillPath(const Transform& localToDevice, - const Shape& shape, - const Clip& clip, - DrawOrder order, - const PaintParams* paint); - - void fillConvexPath(const Transform& localToDevice, - const Shape& shape, - const Clip& clip, - DrawOrder order, - const PaintParams* paint); - - void strokePath(const Transform& localToDevice, + void recordDraw(const Renderer& renderer, + const Transform& localToDevice, const Shape& shape, - const StrokeParams& stroke, const Clip& clip, - DrawOrder order, - const PaintParams* paint); + DrawOrder ordering, + const PaintParams* paint, + const StrokeStyle* stroke); - bool writePixels(Recorder* recorder, - const SkPixmap& src, - SkIPoint dstPt); + bool recordUpload(Recorder* recorder, + sk_sp targetProxy, + SkColorType colorType, + const std::vector& levels, + const SkIRect& dstRect); // Ends the current DrawList being accumulated by the SDC, converting it into an optimized and // immutable DrawPass. The DrawPass will be ordered after any other snapped DrawPasses or @@ -137,6 +126,6 @@ class DrawContext final : public SkRefCnt { std::unique_ptr fPendingUploads; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_DrawContext_DEFINED +#endif // skgpu_graphite_DrawContext_DEFINED diff --git a/third_party/skia/src/gpu/graphite/DrawGeometry.h b/third_party/skia/src/gpu/graphite/DrawGeometry.h new file mode 100644 index 000000000000..5f980645c1dd --- /dev/null +++ b/third_party/skia/src/gpu/graphite/DrawGeometry.h @@ -0,0 +1,121 @@ +/* + * 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_DrawGeometry_DEFINED +#define skgpu_DrawGeometry_DEFINED + + +#include "include/core/SkPaint.h" +#include "include/core/SkRect.h" +#include "src/gpu/graphite/DrawOrder.h" +#include "src/gpu/graphite/geom/Rect.h" +#include "src/gpu/graphite/geom/Shape.h" +#include "src/gpu/graphite/geom/Transform_graphite.h" + +#include + +namespace skgpu::graphite { + +// NOTE: Only represents the stroke or hairline styles; stroke-and-fill must be handled higher up. +class StrokeStyle { +public: + StrokeStyle() : fHalfWidth(0.f), fJoinLimit(0.f), fCap(SkPaint::kButt_Cap) {} + StrokeStyle(float width, + float miterLimit, + SkPaint::Join join, + SkPaint::Cap cap) + : fHalfWidth(std::max(0.f, 0.5f * width)) + , fJoinLimit(join == SkPaint::kMiter_Join ? std::max(0.f, miterLimit) : + (join == SkPaint::kBevel_Join ? 0.f : -1.f)) + , fCap(cap) {} + + StrokeStyle(const StrokeStyle&) = default; + + StrokeStyle& operator=(const StrokeStyle&) = default; + + bool isMiterJoin() const { return fJoinLimit > 0.f; } + bool isBevelJoin() const { return fJoinLimit == 0.f; } + bool isRoundJoin() const { return fJoinLimit < 0.f; } + + float halfWidth() const { return fHalfWidth; } + float width() const { return 2.f * fHalfWidth; } + float miterLimit() const { return std::max(0.f, fJoinLimit); } + SkPaint::Cap cap() const { return fCap; } + SkPaint::Join join() const { + return fJoinLimit > 0.f ? SkPaint::kMiter_Join : + (fJoinLimit == 0.f ? SkPaint::kBevel_Join : SkPaint::kRound_Join); + } + +private: + float fHalfWidth; // >0: relative to transform; ==0: hairline, 1px in device space + float fJoinLimit; // >0: miter join; ==0: bevel join; <0: round join + SkPaint::Cap fCap; +}; + +// TBD: Separate DashParams extracted from an SkDashPathEffect? Or folded into StrokeStyle? + +class Clip { +public: + Clip(const Rect& drawBounds, const SkIRect& scissor) + : fDrawBounds(drawBounds) + , fScissor(scissor) {} + + const Rect& drawBounds() const { return fDrawBounds; } + const SkIRect& scissor() const { return fScissor; } + +private: + // Draw bounds represent the tight bounds of the draw, including any padding/outset for stroking + // and intersected with the scissor. + // - DrawList assumes the DrawBounds are correct for a given shape, transform, and style. They + // are provided to the DrawList to avoid re-calculating the same bounds. + Rect fDrawBounds; + // The scissor must contain fDrawBounds, and must already be intersected with the device bounds. + SkIRect fScissor; + // TODO: If we add more complex analytic shapes for clipping, e.g. coverage rrect, it should + // go here. +}; + +// Encapsulates all geometric state for a single high-level draw call. RenderSteps are responsible +// for transforming this state into actual rendering; shading from PaintParams is handled separately +class DrawGeometry { +public: + DrawGeometry(const Transform& transform, + const Shape& shape, + const Clip& clip, + DrawOrder drawOrder, + const StrokeStyle* stroke) + : fTransform(transform) + , fShape(shape) + , fClip(clip) + , fOrder(drawOrder) + , fStroke(stroke ? std::optional(*stroke) : std::nullopt) {} + + const Transform& transform() const { return fTransform; } + const Shape& shape() const { return fShape; } + const Clip& clip() const { return fClip; } + DrawOrder order() const { return fOrder; } + + // Optional stroke parameters if the geometry is stroked instead of filled + bool isStroke() const { return fStroke.has_value(); } + const StrokeStyle& strokeStyle() const { + SkASSERT(this->isStroke()); + return *fStroke; + } + +private: + const Transform& fTransform; // Lifetime of the transform must be held longer than the geometry + + Shape fShape; + Clip fClip; + DrawOrder fOrder; + + std::optional fStroke; // Not present implies fill +}; + +} // namespace skgpu + +#endif // skgpu_DrawGeometry_DEFINED diff --git a/third_party/skia/src/gpu/graphite/DrawList.cpp b/third_party/skia/src/gpu/graphite/DrawList.cpp new file mode 100644 index 000000000000..d19843f21fab --- /dev/null +++ b/third_party/skia/src/gpu/graphite/DrawList.cpp @@ -0,0 +1,43 @@ +/* + * 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 "src/gpu/graphite/DrawList.h" + +#include "src/gpu/BufferWriter.h" +#include "src/gpu/graphite/Renderer.h" + +namespace skgpu::graphite { + +const Transform& DrawList::deduplicateTransform(const Transform& localToDevice) { + // TODO: This is a pretty simple deduplication strategy and doesn't take advantage of the stack + // knowledge that Device has. + if (fTransforms.empty() || fTransforms.back() != localToDevice) { + fTransforms.push_back(localToDevice); + } + return fTransforms.back(); +} + +void DrawList::recordDraw(const Renderer& renderer, + const Transform& localToDevice, + const Shape& shape, + const Clip& clip, + DrawOrder ordering, + const PaintParams* paint, + const StrokeStyle* stroke) { + SkASSERT(localToDevice.valid()); + SkASSERT(!shape.isEmpty() && !clip.drawBounds().isEmptyNegativeOrNaN()); + SkASSERT(!(renderer.depthStencilFlags() & DepthStencilFlags::kStencil) || + ordering.stencilIndex() != DrawOrder::kUnassigned); + + // TODO: Add validation that the renderer's expected shape type and stroke params match provided + + fDraws.push_back({renderer, this->deduplicateTransform(localToDevice), + shape, clip, ordering, paint, stroke}); + fRenderStepCount += renderer.numRenderSteps(); +} + +} // namespace skgpu diff --git a/third_party/skia/src/gpu/graphite/DrawList.h b/third_party/skia/src/gpu/graphite/DrawList.h new file mode 100644 index 000000000000..f2f1c1b68810 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/DrawList.h @@ -0,0 +1,110 @@ +/* + * 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 skgpu_DrawList_DEFINED +#define skgpu_DrawList_DEFINED + +#include "include/core/SkPaint.h" +#include "src/core/SkTBlockList.h" + +#include "src/gpu/graphite/DrawGeometry.h" +#include "src/gpu/graphite/DrawOrder.h" +#include "src/gpu/graphite/PaintParams.h" +#include "src/gpu/graphite/geom/Transform_graphite.h" + +#include +#include + +namespace skgpu::graphite { + +class Renderer; +class Shape; + +/** + * A DrawList represents a collection of drawing commands (and related clip/shading state) in + * a form that closely mirrors what can be rendered efficiently and directly by the GPU backend + * (while balancing how much pre-processing to do for draws that might get eliminated later due to + * occlusion culling). + * + * A draw command combines: + * - a shape + * - a transform + * - a primitive clip (not affected by the transform) + * - optional shading description (shader, color filter, blend mode, etc) + * - a draw ordering (compressed painters index, stencil set, and write/test depth) + * + * Commands are accumulated in an arbitrary order and then sorted by increasing sort z when the list + * is prepared into an actual command buffer. The result of a draw command is the rasterization of + * the transformed shape, restricted by its primitive clip (e.g. a scissor rect) and a depth test + * of "GREATER" vs. its write/test z. (A test of GREATER, as opposed to GEQUAL, avoids double hits + * for draws that may have overlapping geometry, e.g. stroking.) If the command has a shading + * description, the color buffer will be modified; if not, it will be a depth-only draw. + * + * In addition to sorting the collected commands, the command list can be optimized during + * preparation. Commands that are fully occluded by later operations can be skipped entirely without + * affecting the final results. Adjacent commands (post sort) that would use equivalent GPU + * pipelines are merged to produce fewer (but larger) operations on the GPU. + * + * Other than flush-time optimizations (sort, cull, and merge), the command list does what you tell + * it to. Draw-specific simplification, style application, and advanced clipping should be handled + * at a higher layer. + */ +class DrawList { +public: + // The maximum number of draw calls that can be recorded into a DrawList before it must be + // converted to a DrawPass. The true fundamental limit is imposed by the limits of the depth + // attachment and precision of CompressedPaintersOrder and PaintDepth. These values can be + // shared by multiple draw calls so it's more difficult to reason about how much room is left + // in a DrawList. Limiting it to this keeps tracking simple and ensures that the sequences in + // DrawOrder cannot overflow since they are always less than or equal to the number of draws. + static constexpr int kMaxDraws = std::numeric_limits::max(); + + // DrawList requires that all Transforms be valid and asserts as much; invalid transforms should + // be detected at the Device level or similar. The provided Renderer must be compatible with the + // 'shape' and 'stroke' parameters. If the renderer uses coverage AA, 'ordering' must have a + // compressed painters order that reflects that. If the renderer uses stencil, the 'ordering' + // must have a valid stencil index as well. + void recordDraw(const Renderer& renderer, + const Transform& localToDevice, + const Shape& shape, + const Clip& clip, + DrawOrder ordering, + const PaintParams* paint, + const StrokeStyle* stroke); + + int drawCount() const { return fDraws.count(); } + int renderStepCount() const { return fRenderStepCount; } + +private: + friend class DrawPass; + + struct Draw { + const Renderer& fRenderer; // Statically defined by function that recorded the Draw + DrawGeometry fGeometry; // The GeomParam's transform is owned by fTransforms of the DrawList + std::optional fPaintParams; // Not present implies depth-only draw + + Draw(const Renderer& renderer, const Transform& transform, const Shape& shape, + const Clip& clip, DrawOrder order, const PaintParams* paint, + const StrokeStyle* stroke) + : fRenderer(renderer) + , fGeometry(transform, shape, clip, order, stroke) + , fPaintParams(paint ? std::optional(*paint) : std::nullopt) {} + }; + + // The returned Transform reference remains valid for the lifetime of the DrawList. + const Transform& deduplicateTransform(const Transform&); + + SkTBlockList fTransforms; + SkTBlockList fDraws; + + // Running total of RenderSteps for all draws, assuming nothing is culled + int fRenderStepCount; +}; + +} // namespace skgpu + +#endif // skgpu_DrawList_DEFINED diff --git a/third_party/skia/experimental/graphite/src/DrawOrder.h b/third_party/skia/src/gpu/graphite/DrawOrder.h similarity index 93% rename from third_party/skia/experimental/graphite/src/DrawOrder.h rename to third_party/skia/src/gpu/graphite/DrawOrder.h index 6e033413f928..dd793473c007 100644 --- a/third_party/skia/experimental/graphite/src/DrawOrder.h +++ b/third_party/skia/src/gpu/graphite/DrawOrder.h @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#ifndef skgpu_DrawOrder_DEFINED -#define skgpu_DrawOrder_DEFINED +#ifndef skgpu_graphite_DrawOrder_DEFINED +#define skgpu_graphite_DrawOrder_DEFINED #include "include/core/SkTypes.h" -namespace skgpu { +namespace skgpu::graphite { // Helper to encapsulate an unsigned number and enforce that it can only be used to create a // monotonic sequence. The template argument 'Sequence' is used to define different sequences @@ -133,10 +133,17 @@ class DrawOrder { , fStencilIndex(kUnassigned) , fDepth(originalOrder) {} + DrawOrder(PaintersDepth originalOrder, CompressedPaintersOrder compressedOrder) + : fPaintOrder(compressedOrder) + , fStencilIndex(kUnassigned) + , fDepth(originalOrder) {} + CompressedPaintersOrder paintOrder() const { return fPaintOrder; } DisjointStencilIndex stencilIndex() const { return fStencilIndex; } PaintersDepth depth() const { return fDepth; } + float depthAsFloat() const { return fDepth.bits() / (float) PaintersDepth::Last().bits(); } + DrawOrder& dependsOnPaintersOrder(CompressedPaintersOrder prevDraw) { // A draw must be ordered after all previous draws that it depends on CompressedPaintersOrder next = prevDraw.next(); @@ -159,6 +166,6 @@ class DrawOrder { PaintersDepth fDepth; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_DrawOrder_DEFINED +#endif // skgpu_graphite_DrawOrder_DEFINED diff --git a/third_party/skia/experimental/graphite/src/DrawPass.cpp b/third_party/skia/src/gpu/graphite/DrawPass.cpp similarity index 66% rename from third_party/skia/experimental/graphite/src/DrawPass.cpp rename to third_party/skia/src/gpu/graphite/DrawPass.cpp index becebff52352..2a50892ee612 100644 --- a/third_party/skia/experimental/graphite/src/DrawPass.cpp +++ b/third_party/skia/src/gpu/graphite/DrawPass.cpp @@ -5,37 +5,39 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/DrawPass.h" - -#include "experimental/graphite/include/GraphiteTypes.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/src/Buffer.h" -#include "experimental/graphite/src/ContextPriv.h" -#include "experimental/graphite/src/ContextUtils.h" -#include "experimental/graphite/src/DrawBufferManager.h" -#include "experimental/graphite/src/DrawContext.h" -#include "experimental/graphite/src/DrawList.h" -#include "experimental/graphite/src/DrawWriter.h" -#include "experimental/graphite/src/GlobalCache.h" -#include "experimental/graphite/src/GraphicsPipeline.h" -#include "experimental/graphite/src/GraphicsPipelineDesc.h" -#include "experimental/graphite/src/RecorderPriv.h" -#include "experimental/graphite/src/Renderer.h" -#include "experimental/graphite/src/ResourceProvider.h" -#include "experimental/graphite/src/TextureProxy.h" -#include "experimental/graphite/src/UniformCache.h" -#include "experimental/graphite/src/UniformManager.h" -#include "experimental/graphite/src/geom/BoundsManager.h" +#include "src/gpu/graphite/DrawPass.h" + +#include "include/gpu/graphite/GraphiteTypes.h" +#include "include/gpu/graphite/Recorder.h" +#include "src/gpu/graphite/Buffer.h" +#include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/ContextUtils.h" +#include "src/gpu/graphite/DrawBufferManager.h" +#include "src/gpu/graphite/DrawContext.h" +#include "src/gpu/graphite/DrawList.h" +#include "src/gpu/graphite/DrawWriter.h" +#include "src/gpu/graphite/GlobalCache.h" +#include "src/gpu/graphite/GraphicsPipeline.h" +#include "src/gpu/graphite/GraphicsPipelineDesc.h" +#include "src/gpu/graphite/PipelineDataCache.h" +#include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/Renderer.h" +#include "src/gpu/graphite/ResourceProvider.h" +#include "src/gpu/graphite/Sampler.h" +#include "src/gpu/graphite/Texture.h" +#include "src/gpu/graphite/TextureProxy.h" +#include "src/gpu/graphite/UniformManager.h" +#include "src/gpu/graphite/geom/BoundsManager.h" #include "src/core/SkMathPriv.h" +#include "src/core/SkPaintParamsKey.h" +#include "src/core/SkPipelineData.h" #include "src/core/SkTBlockList.h" -#include "src/core/SkUniformData.h" -#include "src/gpu/BufferWriter.h" #include #include -namespace skgpu { +namespace skgpu::graphite { // Helper to manage packed fields within a uint64_t template @@ -76,14 +78,16 @@ class DrawPass::SortKey { SortKey(const DrawList::Draw* draw, int renderStep, uint32_t pipelineIndex, - uint32_t geomUniformIndex, - uint32_t shadingUniformIndex) - : fPipelineKey(ColorDepthOrderField::set(draw->fOrder.paintOrder().bits()) | - StencilIndexField::set(draw->fOrder.stencilIndex().bits()) | - RenderStepField::set(static_cast(renderStep)) | + UniformDataCache::Index geomUniformIndex, + UniformDataCache::Index shadingUniformIndex, + TextureDataCache::Index textureDataIndex) + : fPipelineKey(ColorDepthOrderField::set(draw->fGeometry.order().paintOrder().bits()) | + StencilIndexField::set(draw->fGeometry.order().stencilIndex().bits()) | + RenderStepField::set(static_cast(renderStep)) | PipelineField::set(pipelineIndex)) - , fUniformKey(GeometryUniformField::set(geomUniformIndex) | - ShadingUniformField::set(shadingUniformIndex)) + , fUniformKey(GeometryUniformField::set(geomUniformIndex.asUInt()) | + ShadingUniformField::set(shadingUniformIndex.asUInt()) | + TextureBindingsField::set(textureDataIndex.asUInt())) , fDraw(draw) { SkASSERT(renderStep <= draw->fRenderer.numRenderSteps()); } @@ -99,9 +103,16 @@ class DrawPass::SortKey { const DrawList::Draw* draw() const { return fDraw; } - uint32_t pipeline() const { return PipelineField::get(fPipelineKey); } - uint32_t geometryUniforms() const { return GeometryUniformField::get(fUniformKey); } - uint32_t shadingUniforms() const { return ShadingUniformField::get(fUniformKey); } + uint32_t pipeline() const { return PipelineField::get(fPipelineKey); } + UniformDataCache::Index geometryUniforms() const { + return UniformDataCache::Index(GeometryUniformField::get(fUniformKey)); + } + UniformDataCache::Index shadingUniforms() const { + return UniformDataCache::Index(ShadingUniformField::get(fUniformKey)); + } + TextureDataCache::Index textureBindings() const { + return TextureDataCache::Index(TextureBindingsField::get(fUniformKey)); + } private: // Fields are ordered from most-significant to least when sorting by 128-bit value. @@ -113,8 +124,9 @@ class DrawPass::SortKey { using PipelineField = Bitfield<30, 0>; // bits >= log2(max steps*DrawList::kMaxDraws) uint64_t fPipelineKey; - using GeometryUniformField = Bitfield<32, 32>; // bits >= log2(max steps * max draw count) - using ShadingUniformField = Bitfield<32, 0>; // "" + using GeometryUniformField = Bitfield<22, 42>; // bits >= log2(max steps * max draw count) + using ShadingUniformField = Bitfield<21, 21>; // "" + using TextureBindingsField = Bitfield<21, 0>; // "" uint64_t fUniformKey; // Backpointer to the draw that produced the sort key @@ -124,9 +136,13 @@ class DrawPass::SortKey { static_assert(StencilIndexField::kBits >= sizeof(DisjointStencilIndex)); static_assert(RenderStepField::kBits >= SkNextLog2_portable(Renderer::kMaxRenderSteps)); static_assert(PipelineField::kBits >= - SkNextLog2_portable(Renderer::kMaxRenderSteps * DrawList::kMaxDraws)); - static_assert(GeometryUniformField::kBits >= PipelineField::kBits); - static_assert(ShadingUniformField::kBits >= PipelineField::kBits); + SkNextLog2_portable(Renderer::kMaxRenderSteps * DrawList::kMaxDraws)); + static_assert(GeometryUniformField::kBits >= + SkNextLog2_portable(Renderer::kMaxRenderSteps * DrawList::kMaxDraws)); + static_assert(ShadingUniformField::kBits >= + SkNextLog2_portable(Renderer::kMaxRenderSteps * DrawList::kMaxDraws)); + static_assert(TextureBindingsField::kBits >= + SkNextLog2_portable(Renderer::kMaxRenderSteps * DrawList::kMaxDraws)); }; class DrawPass::Drawer final : public DrawDispatcher { @@ -174,53 +190,54 @@ namespace { class UniformBindingCache { public: - UniformBindingCache(DrawBufferManager* bufferMgr, UniformCache* cache) - : fBufferMgr(bufferMgr), fCache(cache) {} + UniformBindingCache(DrawBufferManager* bufferMgr, UniformDataCache* uniformDataCache) + : fBufferMgr(bufferMgr) + , fUniformDataCache(uniformDataCache) { + } - uint32_t addUniforms(std::unique_ptr uniformBlock) { - if (!uniformBlock || uniformBlock->empty()) { - return UniformCache::kInvalidUniformID; + UniformDataCache::Index addUniforms(UniformDataCache::Index uIndex) { + if (!uIndex.isValid()) { + return {}; } - uint32_t index = fCache->insert(std::move(uniformBlock)); - if (fBindings.find(index) == fBindings.end()) { - SkUniformBlock* tmp = fCache->lookup(index); + const SkUniformDataBlock* udb = fUniformDataCache->lookup(uIndex); + SkASSERT(udb); + + if (fBindings.find(uIndex.asUInt()) == fBindings.end()) { // First time encountering this data, so upload to the GPU - size_t totalDataSize = tmp->totalSize(); - auto [writer, bufferInfo] = fBufferMgr->getUniformWriter(totalDataSize); - for (auto& u : *tmp) { - writer.write(u->data(), u->dataSize()); - } + SkASSERT(udb->size()); + auto[writer, bufferInfo] = fBufferMgr->getUniformWriter(udb->size()); + writer.write(udb->data(), udb->size()); - fBindings.insert({index, bufferInfo}); + fBindings.insert({uIndex.asUInt(), bufferInfo}); } - return index; + return uIndex; } - BindBufferInfo getBinding(uint32_t uniformIndex) { - auto lookup = fBindings.find(uniformIndex); + BindBufferInfo getBinding(UniformDataCache::Index uniformDataIndex) { + auto lookup = fBindings.find(uniformDataIndex.asUInt()); SkASSERT(lookup != fBindings.end()); return lookup->second; } private: DrawBufferManager* fBufferMgr; - UniformCache* fCache; + UniformDataCache* fUniformDataCache; std::unordered_map fBindings; }; // std::unordered_map implementation for GraphicsPipelineDesc* that de-reference the pointers. struct Hash { - size_t operator()(const skgpu::GraphicsPipelineDesc* desc) const noexcept { - return skgpu::GraphicsPipelineDesc::Hash()(*desc); + size_t operator()(const GraphicsPipelineDesc* desc) const noexcept { + return GraphicsPipelineDesc::Hash()(*desc); } }; struct Eq { - bool operator()(const skgpu::GraphicsPipelineDesc* a, - const skgpu::GraphicsPipelineDesc* b) const noexcept { + bool operator()(const GraphicsPipelineDesc* a, + const GraphicsPipelineDesc* b) const noexcept { return *a == *b; } }; @@ -274,18 +291,26 @@ std::unique_ptr DrawPass::Make(Recorder* recorder, Rect passBounds = Rect::InfiniteInverted(); DrawBufferManager* bufferMgr = recorder->priv().drawBufferManager(); - UniformCache geometryUniforms; - UniformBindingCache geometryUniformBindings(bufferMgr, &geometryUniforms); - UniformBindingCache shadingUniformBindings(bufferMgr, recorder->priv().uniformCache()); + + // We don't expect the uniforms from the renderSteps to reappear multiple times across a + // recorder's lifetime so we only de-dupe them w/in a given DrawPass. + UniformDataCache geometryUniformDataCache; + UniformBindingCache geometryUniformBindings(bufferMgr, &geometryUniformDataCache); + UniformBindingCache shadingUniformBindings(bufferMgr, recorder->priv().uniformDataCache()); + TextureDataCache* textureDataCache = recorder->priv().textureDataCache(); std::unordered_map pipelineDescToIndex; std::vector keys; keys.reserve(draws->renderStepCount()); // will not exceed but may use less with occluded draws + SkShaderCodeDictionary* dict = recorder->priv().resourceProvider()->shaderCodeDictionary(); + SkPaintParamsKeyBuilder builder(dict, SkBackend::kGraphite); + SkPipelineDataGatherer gatherer(Layout::kMetal); // TODO: get the layout from the recorder + for (const DrawList::Draw& draw : draws->fDraws.items()) { - if (occlusionCuller && occlusionCuller->isOccluded(draw.fClip.drawBounds(), - draw.fOrder.depth())) { + if (occlusionCuller && occlusionCuller->isOccluded(draw.fGeometry.clip().drawBounds(), + draw.fGeometry.order().depth())) { continue; } @@ -293,13 +318,13 @@ std::unique_ptr DrawPass::Make(Recorder* recorder, // bound independently of those used by the rest of the RenderStep, then we can upload now // and remember the location for re-use on any RenderStep that does shading. SkUniquePaintParamsID shaderID; - std::unique_ptr shadingUniforms; - uint32_t shadingIndex = UniformCache::kInvalidUniformID; + UniformDataCache::Index shadingUniformIndex; + TextureDataCache::Index textureBindingIndex; if (draw.fPaintParams.has_value()) { - SkShaderCodeDictionary* dict = - recorder->priv().resourceProvider()->shaderCodeDictionary(); - std::tie(shaderID, shadingUniforms) = ExtractPaintData(dict, draw.fPaintParams.value()); - shadingIndex = shadingUniformBindings.addUniforms(std::move(shadingUniforms)); + UniformDataCache::Index uniformDataIndex; + std::tie(shaderID, uniformDataIndex, textureBindingIndex) = + ExtractPaintData(recorder, &gatherer, &builder, draw.fPaintParams.value()); + shadingUniformIndex = shadingUniformBindings.addUniforms(uniformDataIndex); } // else depth-only for (int stepIndex = 0; stepIndex < draw.fRenderer.numRenderSteps(); ++stepIndex) { @@ -307,22 +332,22 @@ std::unique_ptr DrawPass::Make(Recorder* recorder, const bool performsShading = draw.fPaintParams.has_value() && step->performsShading(); SkUniquePaintParamsID stepShaderID; - uint32_t stepShadingIndex = UniformCache::kInvalidUniformID; + UniformDataCache::Index stepShadingUniformIndex; + TextureDataCache::Index stepTextureBindingIndex; if (performsShading) { stepShaderID = shaderID; - stepShadingIndex = shadingIndex; + stepShadingUniformIndex = shadingUniformIndex; + stepTextureBindingIndex = textureBindingIndex; } // else depth-only draw or stencil-only step of renderer so no shading is needed - uint32_t geometryIndex = UniformCache::kInvalidUniformID; + UniformDataCache::Index geometryUniformIndex; if (step->numUniforms() > 0) { - // TODO: Get layout from the GPU - auto uniforms = step->writeUniforms(Layout::kMetal, - draw.fClip.scissor(), - draw.fTransform, - draw.fShape); - - geometryIndex = geometryUniformBindings.addUniforms( - std::make_unique(std::move(uniforms))); + UniformDataCache::Index uniformDataIndex; + uniformDataIndex = ExtractRenderStepData(&geometryUniformDataCache, + &gatherer, + step, + draw.fGeometry); + geometryUniformIndex = geometryUniformBindings.addUniforms(uniformDataIndex); } GraphicsPipelineDesc desc; @@ -339,10 +364,13 @@ std::unique_ptr DrawPass::Make(Recorder* recorder, pipelineIndex = pipelineLookup->second; } - keys.push_back({&draw, stepIndex, pipelineIndex, geometryIndex, stepShadingIndex}); + keys.push_back({&draw, stepIndex, pipelineIndex, + geometryUniformIndex, + stepShadingUniformIndex, + stepTextureBindingIndex}); } - passBounds.join(draw.fClip.drawBounds()); + passBounds.join(draw.fGeometry.clip().drawBounds()); drawPass->fDepthStencilFlags |= draw.fRenderer.depthStencilFlags(); drawPass->fRequiresMSAA |= draw.fRenderer.requiresMSAA(); } @@ -363,18 +391,26 @@ std::unique_ptr DrawPass::Make(Recorder* recorder, // Used to track when a new pipeline or dynamic state needs recording between draw steps. // Setting to # render steps ensures the very first time through the loop will bind a pipeline. uint32_t lastPipeline = draws->renderStepCount(); - uint32_t lastShadingUniforms = UniformCache::kInvalidUniformID; - uint32_t lastGeometryUniforms = UniformCache::kInvalidUniformID; + UniformDataCache::Index lastShadingUniforms; + TextureDataCache::Index lastTextureBindings; + UniformDataCache::Index lastGeometryUniforms; SkIRect lastScissor = SkIRect::MakeSize(drawPass->fTarget->dimensions()); for (const SortKey& key : keys) { const DrawList::Draw& draw = *key.draw(); const RenderStep& renderStep = key.renderStep(); + const bool geometryUniformChange = key.geometryUniforms().isValid() && + key.geometryUniforms() != lastGeometryUniforms; + const bool shadingUniformChange = key.shadingUniforms().isValid() && + key.shadingUniforms() != lastShadingUniforms; + const bool textureBindingsChange = key.textureBindings().isValid() && + key.textureBindings() != lastTextureBindings; + const bool pipelineChange = key.pipeline() != lastPipeline; - const bool stateChange = key.geometryUniforms() != lastGeometryUniforms || - key.shadingUniforms() != lastShadingUniforms || - draw.fClip.scissor() != lastScissor; + const bool stateChange = geometryUniformChange || + shadingUniformChange || + draw.fGeometry.clip().scissor() != lastScissor; // Update DrawWriter *before* we actually change any state so that accumulated draws from // the previous state use the proper state. @@ -390,33 +426,32 @@ std::unique_ptr DrawPass::Make(Recorder* recorder, if (pipelineChange) { drawPass->fCommands.emplace_back(BindGraphicsPipeline{key.pipeline()}); lastPipeline = key.pipeline(); - lastShadingUniforms = UniformCache::kInvalidUniformID; - lastGeometryUniforms = UniformCache::kInvalidUniformID; } if (stateChange) { - if (key.geometryUniforms() != lastGeometryUniforms) { - if (key.geometryUniforms() != UniformCache::kInvalidUniformID) { - auto binding = geometryUniformBindings.getBinding(key.geometryUniforms()); - drawPass->fCommands.emplace_back( - BindUniformBuffer{binding, UniformSlot::kRenderStep}); - } + if (geometryUniformChange) { + auto binding = geometryUniformBindings.getBinding(key.geometryUniforms()); + drawPass->fCommands.emplace_back( + BindUniformBuffer{binding, UniformSlot::kRenderStep}); lastGeometryUniforms = key.geometryUniforms(); } - if (key.shadingUniforms() != lastShadingUniforms) { - if (key.shadingUniforms() != UniformCache::kInvalidUniformID) { - auto binding = shadingUniformBindings.getBinding(key.shadingUniforms()); - drawPass->fCommands.emplace_back( - BindUniformBuffer{binding, UniformSlot::kPaint}); - } + if (shadingUniformChange) { + auto binding = shadingUniformBindings.getBinding(key.shadingUniforms()); + drawPass->fCommands.emplace_back( + BindUniformBuffer{binding, UniformSlot::kPaint}); lastShadingUniforms = key.shadingUniforms(); } - if (draw.fClip.scissor() != lastScissor) { - drawPass->fCommands.emplace_back(SetScissor{draw.fClip.scissor()}); - lastScissor = draw.fClip.scissor(); + if (textureBindingsChange) { + auto textureDataBlock = textureDataCache->lookup(key.textureBindings()); + drawPass->fCommands.emplace_back(BindTexturesAndSamplers{textureDataBlock}); + lastTextureBindings = key.textureBindings(); + } + if (draw.fGeometry.clip().scissor() != lastScissor) { + drawPass->fCommands.emplace_back(SetScissor{draw.fGeometry.clip().scissor()}); + lastScissor = draw.fGeometry.clip().scissor(); } } - renderStep.writeVertices(&drawWriter, draw.fClip.scissor(), draw.fTransform, draw.fShape); + renderStep.writeVertices(&drawWriter, draw.fGeometry); } // Finish recording draw calls for any collected data at the end of the loop drawWriter.flush(); @@ -427,7 +462,7 @@ std::unique_ptr DrawPass::Make(Recorder* recorder, return drawPass; } -void DrawPass::addCommands(ResourceProvider* resourceProvider, +bool DrawPass::addCommands(ResourceProvider* resourceProvider, CommandBuffer* buffer, const RenderPassDesc& renderPassDesc) const { // TODO: Validate RenderPass state against DrawPass's target and requirements? @@ -452,11 +487,30 @@ void DrawPass::addCommands(ResourceProvider* resourceProvider, case CommandType::kBindGraphicsPipeline: { auto& d = c.fBindGraphicsPipeline; buffer->bindGraphicsPipeline(fullPipelines[d.fPipelineIndex]); - break; } + } break; case CommandType::kBindUniformBuffer: { auto& d = c.fBindUniformBuffer; buffer->bindUniformBuffer(d.fSlot, sk_ref_sp(d.fInfo.fBuffer), d.fInfo.fOffset); - break; } + } break; + case CommandType::kBindTexturesAndSamplers: { + auto& d = c.fBindTexturesAndSamplers; + + for (int i = 0; i < d.fTextureBlock->numTextures(); ++i) { + const auto &texture = d.fTextureBlock->texture(i); + if (!texture.fProxy->texture()) { + return false; + } + + sk_sp sampler = resourceProvider->findOrCreateCompatibleSampler( + texture.fSamplingOptions, texture.fTileModes[0], texture.fTileModes[1]); + SkASSERT(sampler); + + buffer->bindTextureAndSampler(texture.fProxy->refTexture(), + std::move(sampler), + i); + } + + } break; case CommandType::kBindDrawBuffers: { auto& d = c.fBindDrawBuffers; buffer->bindDrawBuffers(d.fVertices, d.fInstances, d.fIndices); @@ -482,11 +536,13 @@ void DrawPass::addCommands(ResourceProvider* resourceProvider, case CommandType::kSetScissor: { auto& d = c.fSetScissor; buffer->setScissor(d.fScissor.fLeft, d.fScissor.fTop, - d.fScissor.fRight, d.fScissor.fBottom); + d.fScissor.width(), d.fScissor.height()); break; } } } + + return true; } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/DrawPass.h b/third_party/skia/src/gpu/graphite/DrawPass.h similarity index 83% rename from third_party/skia/experimental/graphite/src/DrawPass.h rename to third_party/skia/src/gpu/graphite/DrawPass.h index d1d109abbb61..3b1c07da6745 100644 --- a/third_party/skia/experimental/graphite/src/DrawPass.h +++ b/third_party/skia/src/gpu/graphite/DrawPass.h @@ -5,20 +5,22 @@ * found in the LICENSE file. */ -#ifndef skgpu_DrawPass_DEFINED -#define skgpu_DrawPass_DEFINED +#ifndef skgpu_graphite_DrawPass_DEFINED +#define skgpu_graphite_DrawPass_DEFINED -#include "experimental/graphite/src/DrawTypes.h" -#include "experimental/graphite/src/GraphicsPipelineDesc.h" -#include "experimental/graphite/src/ResourceTypes.h" #include "include/core/SkColor.h" #include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" #include "src/core/SkTBlockList.h" +#include "src/gpu/graphite/DrawTypes.h" +#include "src/gpu/graphite/GraphicsPipelineDesc.h" +#include "src/gpu/graphite/ResourceTypes.h" #include -namespace skgpu { +class SkTextureDataBlock; + +namespace skgpu::graphite { class BoundsManager; class CommandBuffer; @@ -77,7 +79,8 @@ class DrawPass { // Transform this DrawPass into commands issued to the CommandBuffer. Assumes that the buffer // has already begun a correctly configured render pass matching this pass's target. - void addCommands(ResourceProvider*, CommandBuffer*, const RenderPassDesc&) const; + // Returns true on success; false on failure + bool addCommands(ResourceProvider*, CommandBuffer*, const RenderPassDesc&) const; private: class SortKey; @@ -92,6 +95,11 @@ class DrawPass { BindBufferInfo fInfo; UniformSlot fSlot; }; + struct BindTexturesAndSamplers { + // The data backing this pointer is stored in the TextureDataCache. Its lifetime is for + // a single Recording (thus guaranteed to be longer than this DrawPass' lifetime). + const SkTextureDataBlock* fTextureBlock; + }; struct BindDrawBuffers { BindBufferInfo fVertices; BindBufferInfo fInstances; @@ -132,6 +140,7 @@ class DrawPass { enum class CommandType { kBindGraphicsPipeline, kBindUniformBuffer, + kBindTexturesAndSamplers, kBindDrawBuffers, kDraw, kDrawIndexed, @@ -147,20 +156,23 @@ class DrawPass { struct Command { CommandType fType; union { - BindGraphicsPipeline fBindGraphicsPipeline; - BindUniformBuffer fBindUniformBuffer; - BindDrawBuffers fBindDrawBuffers; - Draw fDraw; - DrawIndexed fDrawIndexed; - DrawInstanced fDrawInstanced; - DrawIndexedInstanced fDrawIndexedInstanced; - SetScissor fSetScissor; + BindGraphicsPipeline fBindGraphicsPipeline; + BindUniformBuffer fBindUniformBuffer; + BindTexturesAndSamplers fBindTexturesAndSamplers; + BindDrawBuffers fBindDrawBuffers; + Draw fDraw; + DrawIndexed fDrawIndexed; + DrawInstanced fDrawInstanced; + DrawIndexedInstanced fDrawIndexedInstanced; + SetScissor fSetScissor; }; explicit Command(BindGraphicsPipeline d) : fType(CommandType::kBindGraphicsPipeline), fBindGraphicsPipeline(d) {} explicit Command(BindUniformBuffer d) : fType(CommandType::kBindUniformBuffer), fBindUniformBuffer(d) {} + explicit Command(BindTexturesAndSamplers d) + : fType(CommandType::kBindTexturesAndSamplers), fBindTexturesAndSamplers(d) {} explicit Command(BindDrawBuffers d) : fType(CommandType::kBindDrawBuffers), fBindDrawBuffers(d) {} explicit Command(Draw d) @@ -199,6 +211,6 @@ class DrawPass { bool fRequiresMSAA = false; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_DrawPass_DEFINED +#endif // skgpu_graphite_DrawPass_DEFINED diff --git a/third_party/skia/experimental/graphite/src/DrawTypes.h b/third_party/skia/src/gpu/graphite/DrawTypes.h similarity index 97% rename from third_party/skia/experimental/graphite/src/DrawTypes.h rename to third_party/skia/src/gpu/graphite/DrawTypes.h index 2a6497d224ed..eb76bd0c715f 100644 --- a/third_party/skia/experimental/graphite/src/DrawTypes.h +++ b/third_party/skia/src/gpu/graphite/DrawTypes.h @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#ifndef skgpu_DrawTypes_DEFINED -#define skgpu_DrawTypes_DEFINED +#ifndef skgpu_graphite_DrawTypes_DEFINED +#define skgpu_graphite_DrawTypes_DEFINED -#include "experimental/graphite/include/GraphiteTypes.h" +#include "include/gpu/graphite/GraphiteTypes.h" -namespace skgpu { +namespace skgpu::graphite { class Buffer; @@ -276,6 +276,6 @@ struct DepthStencilSettings { bool fDepthWriteEnabled = false; }; -}; // namespace skgpu +}; // namespace skgpu::graphite -#endif // skgpu_DrawTypes_DEFINED +#endif // skgpu_graphite_DrawTypes_DEFINED diff --git a/third_party/skia/experimental/graphite/src/DrawWriter.cpp b/third_party/skia/src/gpu/graphite/DrawWriter.cpp similarity index 68% rename from third_party/skia/experimental/graphite/src/DrawWriter.cpp rename to third_party/skia/src/gpu/graphite/DrawWriter.cpp index 84f612e46b99..6313f8c4d5c6 100644 --- a/third_party/skia/experimental/graphite/src/DrawWriter.cpp +++ b/third_party/skia/src/gpu/graphite/DrawWriter.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/DrawWriter.h" +#include "src/gpu/graphite/DrawWriter.h" -#include "experimental/graphite/src/DrawBufferManager.h" #include "src/gpu/BufferWriter.h" +#include "src/gpu/graphite/DrawBufferManager.h" -namespace skgpu { +namespace skgpu::graphite { DrawWriter::DrawWriter(DrawDispatcher* dispatcher, DrawBufferManager* bufferManager) : DrawWriter(dispatcher, bufferManager, PrimitiveType::kTriangles, 0, 0) {} @@ -38,7 +38,7 @@ DrawWriter::DrawWriter(DrawDispatcher* dispatcher, void DrawWriter::setTemplate(BindBufferInfo vertices, BindBufferInfo indices, BindBufferInfo instances, - unsigned int templateCount) { + int templateCount) { if (vertices != fVertices || instances != fInstances || fIndices != indices) { if (fPendingCount > 0) { this->flush(); @@ -60,7 +60,8 @@ void DrawWriter::setTemplate(BindBufferInfo vertices, fTemplateCount = templateCount; fPendingBufferBinds = true; - } else if (templateCount != fTemplateCount) { + } else if ((templateCount >= 0 && templateCount != fTemplateCount) || // vtx or reg. instances + (templateCount < 0 && fTemplateCount >= 0)) { // dynamic index instances if (fPendingCount > 0) { this->flush(); } @@ -72,10 +73,13 @@ void DrawWriter::setTemplate(BindBufferInfo vertices, fTemplateCount = templateCount; } - SkASSERT(fVertices == vertices); - SkASSERT(fInstances == instances); - SkASSERT(fIndices == indices); - SkASSERT(fTemplateCount == templateCount); + SkASSERT(fVertices == vertices); + SkASSERT(fInstances == instances); + SkASSERT(fIndices == indices); + // NOTE: This allows 'fTemplateCount' to update across multiple DynamicInstances as long + // as they have the same vertex and index buffers. + SkASSERT((fTemplateCount < 0) == (templateCount < 0)); + SkASSERT(fTemplateCount < 0 || fTemplateCount == templateCount); } void DrawWriter::flush() { @@ -89,11 +93,19 @@ void DrawWriter::flush() { if (fTemplateCount) { // Instanced drawing + unsigned int realVertexCount; + if (fTemplateCount < 0) { + realVertexCount = -fTemplateCount - 1; + fTemplateCount = -1; // reset to re-accumulate max index account for next flush + } else { + realVertexCount = fTemplateCount; + } + if (fIndices) { - fDispatcher->drawIndexedInstanced(fPrimitiveType, 0, fTemplateCount, 0, + fDispatcher->drawIndexedInstanced(fPrimitiveType, 0, realVertexCount, 0, fPendingBase, fPendingCount); } else { - fDispatcher->drawInstanced(fPrimitiveType, 0, fTemplateCount, + fDispatcher->drawInstanced(fPrimitiveType, 0, realVertexCount, fPendingBase, fPendingCount); } } else { @@ -109,28 +121,4 @@ void DrawWriter::flush() { fPendingCount = 0; } -VertexWriter DrawWriter::Appender::append(unsigned int count, - size_t stride, - BindBufferInfo& target) { - SkASSERT(&target == &fWriter.fInstances || &target == &fWriter.fVertices); - SkASSERT(this == fWriter.fAppender); - - auto [writer, nextChunk] = fWriter.fManager->getVertexWriter(count * stride); - // Check if next chunk's data is contiguous with what's previously been appended - if (nextChunk.fBuffer != target.fBuffer || - nextChunk.fOffset != - target.fOffset + (fWriter.fPendingBase + fWriter.fPendingCount) * stride) { - // Alignment mismatch, or the old buffer filled up, so must update the bindings - fWriter.flush(); - target = nextChunk; - - fWriter.fPendingBase = 0; - fWriter.fPendingBufferBinds = true; - } - - fWriter.fPendingCount += count; - - return std::move(writer); -} - -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/DrawWriter.h b/third_party/skia/src/gpu/graphite/DrawWriter.h similarity index 63% rename from third_party/skia/experimental/graphite/src/DrawWriter.h rename to third_party/skia/src/gpu/graphite/DrawWriter.h index f7272dde6526..cc35305869aa 100644 --- a/third_party/skia/experimental/graphite/src/DrawWriter.h +++ b/third_party/skia/src/gpu/graphite/DrawWriter.h @@ -5,15 +5,14 @@ * found in the LICENSE file. */ -#ifndef skgpu_DrawWriter_DEFINED -#define skgpu_DrawWriter_DEFINED +#ifndef skgpu_graphite_DrawWriter_DEFINED +#define skgpu_graphite_DrawWriter_DEFINED -#include "experimental/graphite/src/DrawTypes.h" #include "src/gpu/BufferWriter.h" +#include "src/gpu/graphite/DrawBufferManager.h" +#include "src/gpu/graphite/DrawTypes.h" -namespace skgpu { - -class DrawBufferManager; +namespace skgpu::graphite { class DrawDispatcher; // Forward declaration, handles virtual dispatch of binds/draws @@ -89,6 +88,13 @@ class DrawWriter { SkASSERT(fPendingCount == 0); } +#ifdef SK_DEBUG + // Query current pipeline state for validation + size_t instanceStride() const { return fInstanceStride; } + size_t vertexStride() const { return fVertexStride; } + PrimitiveType primitiveType() const { return fPrimitiveType; } +#endif + // Collects new vertex data for a call to CommandBuffer::draw(). Automatically accumulates // vertex data into a buffer, issuing draw and bind calls as needed when a new buffer is // required, so that it is seamless to the caller. The draws do not use instances or indices. @@ -119,6 +125,26 @@ class DrawWriter { // other per-vertex data. class Instances; + // Collects new instance data for a call to CommandBuffer::drawInstanced() or + // drawIndexedInstanced() (depending on presence of index data in the template). Unlike the + // Instances mode, the template's index or vertex count is not provided at the time of creation. + // Instead, DynamicInstances can be used with pipeline programs that can have a flexible number + // of vertices per instance. Appended instances specify the minimum index/vertex count they + // must be drawn with, but if they are later batched with instances that would use more, the + // pipeline's vertex shader knows how to handle it. + // + // Usage for drawInstanced (fixedIndices == {}) or drawIndexedInstanced: + // DrawWriter::DynamicInstances instances(writer, fixedVerts, fixedIndices); + // instances.append(minIndexCount1, n1) << ...; + // instances.append(minIndexCount2, n2) << ...; + // + // In this example, if the two sets of instances were contiguous, a single draw call with + // (n1 + n2) instances would still be made using max(minIndexCount1, minIndexCount2) as the + // index/vertex count. If the available vertex data from the DrawBufferManager forced a flush + // after the first, then the second would use minIndexCount2 unless a subsequent compatible + // DynamicInstances template appended more contiguous data. + class DynamicInstances; + // Issues a draws with fully specified data. This can be used when all instance data has already // been written to known buffers, or when the vertex shader only depends on the vertex or // instance IDs. To keep things simple, these helpers do not accept parameters for base vertices @@ -134,11 +160,13 @@ class DrawWriter { } void drawInstanced(BindBufferInfo vertices, unsigned int vertexCount, BindBufferInfo instances, unsigned int instanceCount) { + SkASSERT(vertexCount > 0); this->bindAndFlush(vertices, {}, instances, vertexCount, instanceCount); } void drawIndexedInstanced(BindBufferInfo vertices, BindBufferInfo indices, unsigned int indexCount, BindBufferInfo instances, unsigned int instanceCount) { + SkASSERT(indexCount > 0); this->bindAndFlush(vertices, indices, instances, indexCount, instanceCount); } @@ -157,18 +185,22 @@ class DrawWriter { BindBufferInfo fIndices; BindBufferInfo fInstances; // Vertex/index count for [pseudo]-instanced rendering: - // == 0 is vertex-only drawing; > 0 is regular instanced drawing - unsigned int fTemplateCount; + // == 0 is vertex-only drawing; > 0 is regular instanced drawing; < 0 is dynamic index count + // instanced drawing, where real index count = max(-fTemplateCount-1) + int fTemplateCount; unsigned int fPendingCount; // # of vertices or instances (depending on mode) to be drawn unsigned int fPendingBase; // vertex/instance offset (depending on mode) applied to buffer bool fPendingBufferBinds; // true if {fVertices,fIndices,fInstances} has changed since last draw void setTemplate(BindBufferInfo vertices, BindBufferInfo indices, BindBufferInfo instances, - unsigned int templateCount); + int templateCount); + // NOTE: bindAndFlush's templateCount is unsigned because dynamic index count instancing + // isn't applicable. void bindAndFlush(BindBufferInfo vertices, BindBufferInfo indices, BindBufferInfo instances, unsigned int templateCount, unsigned int drawCount) { - this->setTemplate(vertices, indices, instances, templateCount); + SkASSERT(drawCount > 0); + this->setTemplate(vertices, indices, instances, SkTo(templateCount)); fPendingBase = 0; fPendingCount = drawCount; this->flush(); @@ -207,32 +239,80 @@ class DrawDispatcher { // template-specific API to accumulate vertex/instance data. class DrawWriter::Appender { public: - Appender(DrawWriter& w) : fWriter(w) { + enum class Target { kVertices, kInstances }; + + Appender(DrawWriter& w, Target target) + : fDrawer(w) + , fTarget(target == Target::kVertices ? w.fVertices : w.fInstances) + , fStride(target == Target::kVertices ? w.fVertexStride : w.fInstanceStride) + , fReservedCount(0) + , fNextWriter() { + SkASSERT(fStride > 0); SkASSERT(!w.fAppender); SkDEBUGCODE(w.fAppender = this;) } ~Appender() { - SkASSERT(fWriter.fAppender == this); - SkDEBUGCODE(fWriter.fAppender = nullptr;) + if (fReservedCount > 0) { + fDrawer.fManager->returnVertexBytes(fReservedCount * fStride); + } + SkASSERT(fDrawer.fAppender == this); + SkDEBUGCODE(fDrawer.fAppender = nullptr;) } protected: - DrawWriter& fWriter; + DrawWriter& fDrawer; + BindBufferInfo& fTarget; + size_t fStride; + + unsigned int fReservedCount; // in target stride units + VertexWriter fNextWriter; // writing to the target buffer binding + + void reserve(unsigned int count) { + if (fReservedCount >= count) { + return; + } else if (fReservedCount > 0) { + // Have contiguous bytes that can't satisfy request, so return them in the event the + // DBM has additional contiguous bytes after the prior reserved range. + fDrawer.fManager->returnVertexBytes(fReservedCount * fStride); + } + + fReservedCount = count; + // NOTE: Cannot bind tuple directly to fNextWriter, compilers don't produce the right + // move assignment. + auto [writer, reservedChunk] = fDrawer.fManager->getVertexWriter(count * fStride); + if (reservedChunk.fBuffer != fTarget.fBuffer || + reservedChunk.fOffset != + (fTarget.fOffset + (fDrawer.fPendingBase + fDrawer.fPendingCount) * fStride)) { + // Not contiguous, so flush and update binding to 'reservedChunk' + fDrawer.flush(); + + fTarget = reservedChunk; + fDrawer.fPendingBase = 0; + fDrawer.fPendingBufferBinds = true; + } + fNextWriter = std::move(writer); + } - VertexWriter append(unsigned int count, size_t stride, BindBufferInfo& target); + VertexWriter append(unsigned int count) { + SkASSERT(count > 0); + this->reserve(count); + + SkASSERT(fReservedCount >= count); + fReservedCount -= count; + fDrawer.fPendingCount += count; + return std::exchange(fNextWriter, fNextWriter.makeOffset(count * fStride)); + } }; class DrawWriter::Vertices : private DrawWriter::Appender { public: - Vertices(DrawWriter& w) : Appender(w) { - SkASSERT(w.fVertexStride > 0); + Vertices(DrawWriter& w) : Appender(w, Target::kVertices) { w.setTemplate(w.fVertices, {}, {}, 0); } - VertexWriter append(unsigned int count) { - return this->Appender::append(count, fWriter.fVertexStride, fWriter.fVertices); - } + using Appender::reserve; + using Appender::append; }; class DrawWriter::Instances : private DrawWriter::Appender { @@ -241,16 +321,36 @@ class DrawWriter::Instances : private DrawWriter::Appender { BindBufferInfo vertices, BindBufferInfo indices, unsigned int vertexCount) - : Appender(w) { - SkASSERT(w.fInstanceStride > 0); - w.setTemplate(vertices, indices, w.fInstances, vertexCount); + : Appender(w, Target::kInstances) { + w.setTemplate(vertices, indices, w.fInstances, SkTo(vertexCount)); } - VertexWriter append(unsigned int count) { - return this->Appender::append(count, fWriter.fInstanceStride, fWriter.fInstances); + using Appender::reserve; + using Appender::append; +}; + +class DrawWriter::DynamicInstances : private DrawWriter::Appender { +public: + DynamicInstances(DrawWriter& w, + BindBufferInfo vertices, + BindBufferInfo indices) + : Appender(w, Target::kInstances) { + w.setTemplate(vertices, indices, w.fInstances, -1); + } + + using Appender::reserve; + + VertexWriter append(unsigned int indexCount, unsigned int instanceCount) { + SkASSERT(indexCount > 0); + VertexWriter w = this->Appender::append(instanceCount); + // Record index count after appending instance data in case the append triggered a flush + // or earlier dynamic instances and the max index count is reset. This ensures that the + // just appended instances will be flushed with a template count at least 'indexCount'. + fDrawer.fTemplateCount = std::min(fDrawer.fTemplateCount, -SkTo(indexCount) - 1); + return w; } }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_DrawWriter_DEFINED +#endif // skgpu_graphite_DrawWriter_DEFINED diff --git a/third_party/skia/experimental/graphite/src/EnumBitMask.h b/third_party/skia/src/gpu/graphite/EnumBitMask.h similarity index 62% rename from third_party/skia/experimental/graphite/src/EnumBitMask.h rename to third_party/skia/src/gpu/graphite/EnumBitMask.h index fba6bf86321d..967cd87e947f 100644 --- a/third_party/skia/experimental/graphite/src/EnumBitMask.h +++ b/third_party/skia/src/gpu/graphite/EnumBitMask.h @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#ifndef skgpu_EnumBitMask_DEFINED -#define skgpu_EnumBitMask_DEFINED +#ifndef skgpu_graphite_EnumBitMask_DEFINED +#define skgpu_graphite_EnumBitMask_DEFINED -#include "experimental/graphite/include/GraphiteTypes.h" +#include "include/gpu/graphite/GraphiteTypes.h" -namespace skgpu { +namespace skgpu::graphite { /** * Wraps an enum that is used for flags, and enables masking with type safety. Example: @@ -61,19 +61,27 @@ class Mask { * Defines functions that make it possible to use bitwise operators on an enum. */ #define SKGPU_MAKE_MASK_OPS(E) \ - SK_MAYBE_UNUSED constexpr skgpu::Mask operator|(E a, E b) { return skgpu::Mask(a) | b; } \ - SK_MAYBE_UNUSED constexpr skgpu::Mask operator&(E a, E b) { return skgpu::Mask(a) & b; } \ - SK_MAYBE_UNUSED constexpr skgpu::Mask operator^(E a, E b) { return skgpu::Mask(a) ^ b; } \ - SK_MAYBE_UNUSED constexpr skgpu::Mask operator~(E e) { return ~skgpu::Mask(e); } \ + SK_MAYBE_UNUSED constexpr skgpu::graphite::Mask operator|(E a, E b) { \ + return skgpu::graphite::Mask(a) | b; \ + } \ + SK_MAYBE_UNUSED constexpr skgpu::graphite::Mask operator&(E a, E b) { \ + return skgpu::graphite::Mask(a) & b; \ + } \ + SK_MAYBE_UNUSED constexpr skgpu::graphite::Mask operator^(E a, E b) { \ + return skgpu::graphite::Mask(a) ^ b; \ + } \ + SK_MAYBE_UNUSED constexpr skgpu::graphite::Mask operator~(E e) { \ + return ~skgpu::graphite::Mask(e); \ + } \ #define SKGPU_DECL_MASK_OPS_FRIENDS(E) \ - friend constexpr skgpu::Mask operator|(E, E); \ - friend constexpr skgpu::Mask operator&(E, E); \ - friend constexpr skgpu::Mask operator^(E, E); \ - friend constexpr skgpu::Mask operator~(E); \ + friend constexpr skgpu::graphite::Mask operator|(E, E); \ + friend constexpr skgpu::graphite::Mask operator&(E, E); \ + friend constexpr skgpu::graphite::Mask operator^(E, E); \ + friend constexpr skgpu::graphite::Mask operator~(E); \ -}; // namespace skgpu +}; // namespace skgpu::graphite -#endif // skgpu_EnumBitMask_DEFINED +#endif // skgpu_graphite_EnumBitMask_DEFINED diff --git a/third_party/skia/experimental/graphite/src/GlobalCache.cpp b/third_party/skia/src/gpu/graphite/GlobalCache.cpp similarity index 76% rename from third_party/skia/experimental/graphite/src/GlobalCache.cpp rename to third_party/skia/src/gpu/graphite/GlobalCache.cpp index 9950f44980e5..4f18fd1d6882 100644 --- a/third_party/skia/experimental/graphite/src/GlobalCache.cpp +++ b/third_party/skia/src/gpu/graphite/GlobalCache.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/GlobalCache.h" +#include "src/gpu/graphite/GlobalCache.h" #include "src/core/SkShaderCodeDictionary.h" -namespace skgpu { +namespace skgpu::graphite { GlobalCache::GlobalCache() : fShaderCodeDictionary(std::make_unique()) {} GlobalCache::~GlobalCache() {}; -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/GlobalCache.h b/third_party/skia/src/gpu/graphite/GlobalCache.h similarity index 77% rename from third_party/skia/experimental/graphite/src/GlobalCache.h rename to third_party/skia/src/gpu/graphite/GlobalCache.h index 1d977cac7712..1b88a63731be 100644 --- a/third_party/skia/experimental/graphite/src/GlobalCache.h +++ b/third_party/skia/src/gpu/graphite/GlobalCache.h @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#ifndef skgpu_GlobalCache_DEFINED -#define skgpu_GlobalCache_DEFINED +#ifndef skgpu_graphite_GlobalCache_DEFINED +#define skgpu_graphite_GlobalCache_DEFINED #include "include/core/SkRefCnt.h" class SkShaderCodeDictionary; -namespace skgpu { +namespace skgpu::graphite { // TODO: This class needs to be thread safe. In the current version there is no thread safety and // we need to go back and add protection around access to any of its memebers. @@ -27,6 +27,6 @@ class GlobalCache : public SkRefCnt { std::unique_ptr fShaderCodeDictionary; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_GlobalCache_DEFINED +#endif // skgpu_graphite_GlobalCache_DEFINED diff --git a/third_party/skia/experimental/graphite/src/Gpu.cpp b/third_party/skia/src/gpu/graphite/Gpu.cpp similarity index 80% rename from third_party/skia/experimental/graphite/src/Gpu.cpp rename to third_party/skia/src/gpu/graphite/Gpu.cpp index 6a1ebd3b7c45..5ab60031a3b5 100644 --- a/third_party/skia/experimental/graphite/src/Gpu.cpp +++ b/third_party/skia/src/gpu/graphite/Gpu.cpp @@ -5,18 +5,18 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/Gpu.h" - -#include "experimental/graphite/include/BackendTexture.h" -#include "experimental/graphite/include/TextureInfo.h" -#include "experimental/graphite/src/Caps.h" -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/GpuWorkSubmission.h" -#include "experimental/graphite/src/Log.h" -#include "experimental/graphite/src/ResourceProvider.h" +#include "src/gpu/graphite/Gpu.h" + +#include "include/gpu/graphite/BackendTexture.h" +#include "include/gpu/graphite/TextureInfo.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/GpuWorkSubmission.h" +#include "src/gpu/graphite/Log.h" +#include "src/gpu/graphite/ResourceProvider.h" #include "src/sksl/SkSLCompiler.h" -namespace skgpu { +namespace skgpu::graphite { // This constant determines how many OutstandingSubmissions are allocated together as a block in // the deque. As such it needs to balance allocating too much memory vs. incurring @@ -25,8 +25,8 @@ namespace skgpu { static constexpr int kDefaultOutstandingAllocCnt = 8; Gpu::Gpu(sk_sp caps) - : fOutstandingSubmissions(sizeof(OutstandingSubmission), kDefaultOutstandingAllocCnt) - , fCaps(std::move(caps)) { + : fCaps(std::move(caps)) + , fOutstandingSubmissions(sizeof(OutstandingSubmission), kDefaultOutstandingAllocCnt) { // subclasses create their own subclassed resource provider } @@ -58,7 +58,13 @@ bool Gpu::submit(sk_sp commandBuffer) { } #endif - return this->onSubmit(std::move(commandBuffer)); + auto submission = this->onSubmit(std::move(commandBuffer)); + if (!submission) { + return false; + } + + new (fOutstandingSubmissions.push_back()) OutstandingSubmission(std::move(submission)); + return true; } void Gpu::checkForFinishedWork(SyncToCpu sync) { @@ -103,4 +109,4 @@ void Gpu::deleteBackendTexture(BackendTexture& texture) { } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/Gpu.h b/third_party/skia/src/gpu/graphite/Gpu.h similarity index 88% rename from third_party/skia/experimental/graphite/src/Gpu.h rename to third_party/skia/src/gpu/graphite/Gpu.h index 004be6716e66..2e0b349cb828 100644 --- a/third_party/skia/experimental/graphite/src/Gpu.h +++ b/third_party/skia/src/gpu/graphite/Gpu.h @@ -5,20 +5,24 @@ * found in the LICENSE file. */ -#ifndef skgpu_Gpu_DEFINED -#define skgpu_Gpu_DEFINED +#ifndef skgpu_graphite_Gpu_DEFINED +#define skgpu_graphite_Gpu_DEFINED #include "include/core/SkRefCnt.h" #include "include/core/SkSize.h" #include "include/private/SkDeque.h" -#include "experimental/graphite/include/GraphiteTypes.h" +#include "include/gpu/graphite/GraphiteTypes.h" namespace SkSL { class Compiler; } namespace skgpu { +class SingleOwner; +} + +namespace skgpu::graphite { class BackendTexture; class Caps; @@ -26,7 +30,6 @@ class CommandBuffer; class GlobalCache; class GpuWorkSubmission; class ResourceProvider; -class SingleOwner; class TextureInfo; // TODO: Figure out if we need to fission Gpu into parts that are needed by a Recorder and parts @@ -66,10 +69,9 @@ class Gpu : public SkRefCnt { void initCompiler(); using OutstandingSubmission = std::unique_ptr; - SkDeque fOutstandingSubmissions; private: - virtual bool onSubmit(sk_sp) = 0; + virtual OutstandingSubmission onSubmit(sk_sp) = 0; virtual BackendTexture onCreateBackendTexture(SkISize dimensions, const TextureInfo&) = 0; virtual void onDeleteBackendTexture(BackendTexture&) = 0; @@ -78,8 +80,10 @@ class Gpu : public SkRefCnt { // Compiler used for compiling SkSL into backend shader code. We only want to create the // compiler once, as there is significant overhead to the first compile. std::unique_ptr fCompiler; + + SkDeque fOutstandingSubmissions; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_Gpu_DEFINED +#endif // skgpu_graphite_Gpu_DEFINED diff --git a/third_party/skia/src/gpu/graphite/GpuWorkSubmission.cpp b/third_party/skia/src/gpu/graphite/GpuWorkSubmission.cpp new file mode 100644 index 000000000000..0c91e0d3f9fd --- /dev/null +++ b/third_party/skia/src/gpu/graphite/GpuWorkSubmission.cpp @@ -0,0 +1,22 @@ +/* + * 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/GpuWorkSubmission.h" + +#include "src/gpu/graphite/CommandBuffer.h" + +namespace skgpu::graphite { + +GpuWorkSubmission::GpuWorkSubmission(sk_sp cmdBuffer) + : fCommandBuffer(std::move(cmdBuffer)) {} + +GpuWorkSubmission::~GpuWorkSubmission() { + fCommandBuffer->callFinishedProcs(/*success=*/true); +} + +} // namespace skgpu::graphite + diff --git a/third_party/skia/src/gpu/graphite/GpuWorkSubmission.h b/third_party/skia/src/gpu/graphite/GpuWorkSubmission.h new file mode 100644 index 000000000000..cba1684715d2 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/GpuWorkSubmission.h @@ -0,0 +1,35 @@ +/* + * 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 skgpu_graphite_GpuWorkSubmission_DEFINED +#define skgpu_graphite_GpuWorkSubmission_DEFINED + +#include "include/core/SkRefCnt.h" + +namespace skgpu::graphite { +class CommandBuffer; +class Gpu; + +class GpuWorkSubmission { +public: + virtual ~GpuWorkSubmission(); + + virtual bool isFinished() = 0; + virtual void waitUntilFinished(const Gpu*) = 0; + +protected: + CommandBuffer* commandBuffer() { return fCommandBuffer.get(); } + + GpuWorkSubmission(sk_sp cmdBuffer); + +private: + sk_sp fCommandBuffer; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_GpuWorkSubmission_DEFINED diff --git a/third_party/skia/experimental/graphite/src/GraphicsPipeline.cpp b/third_party/skia/src/gpu/graphite/GraphicsPipeline.cpp similarity index 66% rename from third_party/skia/experimental/graphite/src/GraphicsPipeline.cpp rename to third_party/skia/src/gpu/graphite/GraphicsPipeline.cpp index 03afb0cb8bed..1c3fbad74280 100644 --- a/third_party/skia/experimental/graphite/src/GraphicsPipeline.cpp +++ b/third_party/skia/src/gpu/graphite/GraphicsPipeline.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/GraphicsPipeline.h" +#include "src/gpu/graphite/GraphicsPipeline.h" -namespace skgpu { +namespace skgpu::graphite { -GraphicsPipeline::GraphicsPipeline(const Gpu* gpu) : Resource(gpu) { +GraphicsPipeline::GraphicsPipeline(const Gpu* gpu) : Resource(gpu, Ownership::kOwned) { } GraphicsPipeline::~GraphicsPipeline() { } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/GraphicsPipeline.h b/third_party/skia/src/gpu/graphite/GraphicsPipeline.h similarity index 75% rename from third_party/skia/experimental/graphite/src/GraphicsPipeline.h rename to third_party/skia/src/gpu/graphite/GraphicsPipeline.h index 41d35e669b82..ff66c529dff4 100644 --- a/third_party/skia/experimental/graphite/src/GraphicsPipeline.h +++ b/third_party/skia/src/gpu/graphite/GraphicsPipeline.h @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#ifndef skgpu_GraphicsPipeline_DEFINED -#define skgpu_GraphicsPipeline_DEFINED +#ifndef skgpu_graphite_GraphicsPipeline_DEFINED +#define skgpu_graphite_GraphicsPipeline_DEFINED -#include "experimental/graphite/src/Resource.h" +#include "src/gpu/graphite/Resource.h" -namespace skgpu { +namespace skgpu::graphite { /** * GraphicsPipeline corresponds to a backend specific pipeline used for rendering (vs. compute), @@ -32,6 +32,6 @@ class GraphicsPipeline : public Resource { private: }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_GraphicsPipeline_DEFINED +#endif // skgpu_graphite_GraphicsPipeline_DEFINED diff --git a/third_party/skia/experimental/graphite/src/GraphicsPipelineDesc.cpp b/third_party/skia/src/gpu/graphite/GraphicsPipelineDesc.cpp similarity index 64% rename from third_party/skia/experimental/graphite/src/GraphicsPipelineDesc.cpp rename to third_party/skia/src/gpu/graphite/GraphicsPipelineDesc.cpp index 09317896138a..a181a406e8bb 100644 --- a/third_party/skia/experimental/graphite/src/GraphicsPipelineDesc.cpp +++ b/third_party/skia/src/gpu/graphite/GraphicsPipelineDesc.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/GraphicsPipelineDesc.h" +#include "src/gpu/graphite/GraphicsPipelineDesc.h" -namespace skgpu { +namespace skgpu::graphite { GraphicsPipelineDesc::GraphicsPipelineDesc() { } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/GraphicsPipelineDesc.h b/third_party/skia/src/gpu/graphite/GraphicsPipelineDesc.h similarity index 96% rename from third_party/skia/experimental/graphite/src/GraphicsPipelineDesc.h rename to third_party/skia/src/gpu/graphite/GraphicsPipelineDesc.h index 1cd368bc7e7a..888b176fb2c5 100644 --- a/third_party/skia/experimental/graphite/src/GraphicsPipelineDesc.h +++ b/third_party/skia/src/gpu/graphite/GraphicsPipelineDesc.h @@ -10,15 +10,15 @@ #include "include/core/SkTypes.h" -#include "experimental/graphite/src/Attribute.h" -#include "experimental/graphite/src/DrawTypes.h" #include "include/core/SkSpan.h" #include "include/private/SkOpts_spi.h" #include "include/private/SkTArray.h" #include "include/private/SkUniquePaintParamsID.h" +#include "src/gpu/graphite/Attribute.h" +#include "src/gpu/graphite/DrawTypes.h" #include -namespace skgpu { +namespace skgpu::graphite { class RenderStep; diff --git a/third_party/skia/experimental/graphite/src/GraphiteResourceKey.cpp b/third_party/skia/src/gpu/graphite/GraphiteResourceKey.cpp similarity index 82% rename from third_party/skia/experimental/graphite/src/GraphiteResourceKey.cpp rename to third_party/skia/src/gpu/graphite/GraphiteResourceKey.cpp index 6846d5a0118b..186983089a44 100644 --- a/third_party/skia/experimental/graphite/src/GraphiteResourceKey.cpp +++ b/third_party/skia/src/gpu/graphite/GraphiteResourceKey.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/GraphiteResourceKey.h" +#include "src/gpu/graphite/GraphiteResourceKey.h" -namespace skgpu { +namespace skgpu::graphite { ResourceType GraphiteResourceKey::GenerateResourceType() { static std::atomic nextType{ResourceKey::kInvalidDomain + 1}; @@ -20,5 +20,5 @@ ResourceType GraphiteResourceKey::GenerateResourceType() { return static_cast(type); } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/GraphiteResourceKey.h b/third_party/skia/src/gpu/graphite/GraphiteResourceKey.h similarity index 84% rename from third_party/skia/experimental/graphite/src/GraphiteResourceKey.h rename to third_party/skia/src/gpu/graphite/GraphiteResourceKey.h index c525e5a6f106..39c5c432d5f5 100644 --- a/third_party/skia/experimental/graphite/src/GraphiteResourceKey.h +++ b/third_party/skia/src/gpu/graphite/GraphiteResourceKey.h @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#ifndef skgpu_GraphiteResourceKey_DEFINED -#define skgpu_GraphiteResourceKey_DEFINED +#ifndef skgpu_graphite_GraphiteResourceKey_DEFINED +#define skgpu_graphite_GraphiteResourceKey_DEFINED -#include "experimental/graphite/src/ResourceTypes.h" #include "src/gpu/ResourceKey.h" +#include "src/gpu/graphite/ResourceTypes.h" -namespace skgpu { +namespace skgpu::graphite { class GraphiteResourceKey : public skgpu::ResourceKey { public: @@ -34,6 +34,7 @@ class GraphiteResourceKey : public skgpu::ResourceKey { GraphiteResourceKey& operator=(const GraphiteResourceKey& that) { this->ResourceKey::operator=(that); + fShareable = that.fShareable; return *this; } @@ -58,6 +59,6 @@ class GraphiteResourceKey : public skgpu::ResourceKey { Shareable fShareable; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_GraphiteResourceKey_DEFINED +#endif // skgpu_graphite_GraphiteResourceKey_DEFINED diff --git a/third_party/skia/src/gpu/graphite/Image_Graphite.cpp b/third_party/skia/src/gpu/graphite/Image_Graphite.cpp new file mode 100644 index 000000000000..5e437fed32f3 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/Image_Graphite.cpp @@ -0,0 +1,87 @@ +/* + * 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 "src/gpu/graphite/Image_Graphite.h" + +#include "include/core/SkColorSpace.h" +#include "include/core/SkImageInfo.h" +#include "include/gpu/graphite/Recorder.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/TextureUtils.h" + +namespace skgpu::graphite { + +Image::Image(TextureProxyView view, + const SkColorInfo& info) + : SkImage_Base(SkImageInfo::Make(view.proxy()->dimensions(), info), + kNeedNewImageUniqueID) + , fTextureProxyView(std::move(view)) { +} + +Image::~Image() {} + +bool Image::testingOnly_ReadPixels(Context* context, + Recorder* recorder, + const SkImageInfo& dstInfo, + void* dstPixels, + size_t dstRowBytes, + int srcX, + int srcY) { + return ReadPixelsHelper([recorder]() { + recorder->priv().flushTrackedDevices(); + }, + context, + recorder, + fTextureProxyView.proxy(), + dstInfo, + dstPixels, + dstRowBytes, + srcX, + srcY); +} + +std::tuple Image::onAsView(Recorder*, + Mipmapped mipmapped, + SkBudgeted) const { + if (fTextureProxyView.proxy()->mipmapped() != mipmapped) { + // We will not generate miplevels + return {}; + } + SkColorType ct = this->colorType(); + return {fTextureProxyView, ct}; +} + +} // namespace skgpu::graphite + +sk_sp SkImage::makeTextureImage(skgpu::graphite::Recorder* recorder, + skgpu::graphite::Mipmapped mipmapped, + SkBudgeted budgeted) const { + if (!recorder) { + return nullptr; + } + if (this->dimensions().area() <= 1) { + mipmapped = skgpu::graphite::Mipmapped::kNo; + } + + if (as_IB(this)->isGraphiteBacked()) { + if (mipmapped == skgpu::graphite::Mipmapped::kNo || this->hasMipmaps()) { + const SkImage* image = this; + return sk_ref_sp(const_cast(image)); + } + } + auto [view, ct] = as_IB(this)->asView(recorder, mipmapped, budgeted); + if (!view) { + return nullptr; + } + SkASSERT(view.proxy()); + SkASSERT(mipmapped == skgpu::graphite::Mipmapped::kNo || + view.proxy()->mipmapped() == skgpu::graphite::Mipmapped::kYes); + SkColorInfo colorInfo(ct, this->alphaType(), this->refColorSpace()); + return sk_make_sp(std::move(view), + std::move(colorInfo)); +} diff --git a/third_party/skia/experimental/graphite/src/Image_Graphite.h b/third_party/skia/src/gpu/graphite/Image_Graphite.h similarity index 58% rename from third_party/skia/experimental/graphite/src/Image_Graphite.h rename to third_party/skia/src/gpu/graphite/Image_Graphite.h index e44476838b45..fea2177f5d07 100644 --- a/third_party/skia/experimental/graphite/src/Image_Graphite.h +++ b/third_party/skia/src/gpu/graphite/Image_Graphite.h @@ -5,19 +5,22 @@ * found in the LICENSE file. */ -#ifndef skgpu_Image_Graphite_DEFINED -#define skgpu_Image_Graphite_DEFINED +#ifndef skgpu_graphite_Image_Graphite_DEFINED +#define skgpu_graphite_Image_Graphite_DEFINED #include "src/image/SkImage_Base.h" -#include "experimental/graphite/src/TextureProxyView.h" +#include "src/gpu/graphite/TextureProxyView.h" -namespace skgpu { +namespace skgpu::graphite { -class Image_Graphite final : public SkImage_Base { +class Context; +class Recorder; + +class Image final : public SkImage_Base { public: - Image_Graphite(const SkImageInfo&); - ~Image_Graphite() override; + Image(TextureProxyView, const SkColorInfo&); + ~Image() override; bool onReadPixels(GrDirectContext*, const SkImageInfo& dstInfo, @@ -26,9 +29,20 @@ class Image_Graphite final : public SkImage_Base { int srcX, int srcY, CachingHint) const override { return false; } + // Temporary and only for testing purposes. + // To be removed once asynchronous readback is working. + bool testingOnly_ReadPixels(Context*, + Recorder*, + const SkImageInfo& dstInfo, + void* dstPixels, + size_t dstRowBytes, + int srcX, + int srcY); bool onHasMipmaps() const override { return false; } + bool isGraphiteBacked() const override { return true; } + bool getROPixels(GrDirectContext*, SkBitmap*, CachingHint = kAllow_CachingHint) const override { return false; } @@ -49,34 +63,32 @@ class Image_Graphite final : public SkImage_Base { return nullptr; } -protected: - private: #if SK_SUPPORT_GPU - std::tuple onAsView( - GrRecordingContext*, - GrMipmapped, - GrImageTexGenPolicy policy) const override { - return {}; - } - std::unique_ptr onAsFragmentProcessor( GrRecordingContext*, SkSamplingOptions, const SkTileMode[2], const SkMatrix&, const SkRect* subset, - const SkRect* domain) const override; - - std::tuple onAsView( - Recorder*, - Mipmapped) const /*override*/ { + const SkRect* domain) const override { + return nullptr; + } + std::tuple onAsView( + GrRecordingContext*, + GrMipmapped, + GrImageTexGenPolicy policy) const override { return {}; } #endif + std::tuple onAsView(Recorder*, + Mipmapped, + SkBudgeted) const override; + + TextureProxyView fTextureProxyView; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_Image_Graphite_DEFINED +#endif // skgpu_graphite_Image_Graphite_DEFINED diff --git a/third_party/skia/experimental/graphite/src/Log.h b/third_party/skia/src/gpu/graphite/Log.h similarity index 59% rename from third_party/skia/experimental/graphite/src/Log.h rename to third_party/skia/src/gpu/graphite/Log.h index a60e1ef47217..2867accc1a79 100644 --- a/third_party/skia/experimental/graphite/src/Log.h +++ b/third_party/skia/src/gpu/graphite/Log.h @@ -5,16 +5,16 @@ * found in the LICENSE file. */ -#ifndef skgpu_Log_DEFINED -#define skgpu_Log_DEFINED +#ifndef skgpu_graphite_Log_DEFINED +#define skgpu_graphite_Log_DEFINED -namespace skgpu { +namespace skgpu::graphite { enum class Priority : int { kError = 0, kWarning = 1, kDebug = 2, }; -}; // namespace skgpu +}; // namespace skgpu::graphite #if !defined(SKGPU_LOWEST_ACTIVE_PRIORITY) #ifdef SK_DEBUG @@ -29,8 +29,8 @@ enum class Priority : int { SkDebugf("[graphite] " fmt "\n", ##__VA_ARGS__); \ } \ } while (0) -#define SKGPU_LOG_E(fmt, ...) SKGPU_LOG(skgpu::Priority::kError, "** ERROR ** " fmt, ##__VA_ARGS__) -#define SKGPU_LOG_W(fmt, ...) SKGPU_LOG(skgpu::Priority::kWarning, "WARNING - " fmt, ##__VA_ARGS__) -#define SKGPU_LOG_D(fmt, ...) SKGPU_LOG(skgpu::Priority::kDebug, fmt, ##__VA_ARGS__) +#define SKGPU_LOG_E(fmt, ...) SKGPU_LOG(Priority::kError, "** ERROR ** " fmt, ##__VA_ARGS__) +#define SKGPU_LOG_W(fmt, ...) SKGPU_LOG(Priority::kWarning, "WARNING - " fmt, ##__VA_ARGS__) +#define SKGPU_LOG_D(fmt, ...) SKGPU_LOG(Priority::kDebug, fmt, ##__VA_ARGS__) -#endif // skgpu_Log_DEFINED +#endif // skgpu_graphite_Log_DEFINED diff --git a/third_party/skia/experimental/graphite/src/PaintParams.cpp b/third_party/skia/src/gpu/graphite/PaintParams.cpp similarity index 70% rename from third_party/skia/experimental/graphite/src/PaintParams.cpp rename to third_party/skia/src/gpu/graphite/PaintParams.cpp index 0f06db7056fc..e6b537c42c2c 100644 --- a/third_party/skia/experimental/graphite/src/PaintParams.cpp +++ b/third_party/skia/src/gpu/graphite/PaintParams.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/PaintParams.h" +#include "src/gpu/graphite/PaintParams.h" #include "include/core/SkShader.h" #include "src/core/SkBlenderBase.h" @@ -13,7 +13,7 @@ #include "src/core/SkPaintParamsKey.h" #include "src/shaders/SkShaderBase.h" -namespace skgpu { +namespace skgpu::graphite { PaintParams::PaintParams(const SkColor4f& color, sk_sp blender, @@ -40,24 +40,23 @@ sk_sp PaintParams::refBlender() const { return fBlender; } sk_sp PaintParams::refShader() const { return fShader; } -void PaintParams::toKey(SkShaderCodeDictionary* dict, - SkBackend backend, +void PaintParams::toKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const { + SkPipelineDataGatherer* gatherer) const { if (fShader) { - as_SB(fShader)->addToKey(dict, backend, builder, uniformBlock); + as_SB(fShader)->addToKey(keyContext, builder, gatherer); } else { - SolidColorShaderBlock::AddToKey(dict, backend, builder, uniformBlock, fColor); + SolidColorShaderBlock::AddToKey(keyContext, builder, gatherer, fColor.premul()); } if (fBlender) { - as_BB(fBlender)->addToKey(dict, backend, builder, uniformBlock); + as_BB(fBlender)->addToKey(keyContext, builder, gatherer); } else { - BlendModeBlock::AddToKey(dict, backend, builder, uniformBlock, SkBlendMode::kSrcOver); + BlendModeBlock::AddToKey(keyContext, builder, gatherer, SkBlendMode::kSrcOver); } SkASSERT(builder->sizeInBytes() > 0); } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/PaintParams.h b/third_party/skia/src/gpu/graphite/PaintParams.h similarity index 87% rename from third_party/skia/experimental/graphite/src/PaintParams.h rename to third_party/skia/src/gpu/graphite/PaintParams.h index 2ddcedc86452..05e7c9380a5c 100644 --- a/third_party/skia/experimental/graphite/src/PaintParams.h +++ b/third_party/skia/src/gpu/graphite/PaintParams.h @@ -5,19 +5,19 @@ * found in the LICENSE file. */ -#ifndef skgpu_PaintParams_DEFINED -#define skgpu_PaintParams_DEFINED +#ifndef skgpu_graphite_PaintParams_DEFINED +#define skgpu_graphite_PaintParams_DEFINED #include "include/core/SkColor.h" #include "include/core/SkPaint.h" enum class SkBackend : uint8_t; class SkPaintParamsKeyBuilder; +class SkPipelineDataGatherer; class SkShader; -class SkShaderCodeDictionary; -class SkUniformBlock; +class SkKeyContext; -namespace skgpu { +namespace skgpu::graphite { // TBD: If occlusion culling is eliminated as a phase, we can easily move the paint conversion // back to Device when the command is recorded (similar to SkPaint -> GrPaint), and then @@ -44,10 +44,9 @@ class PaintParams { SkShader* shader() const { return fShader.get(); } sk_sp refShader() const; - void toKey(SkShaderCodeDictionary*, - SkBackend, + void toKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*) const; + SkPipelineDataGatherer*) const; private: SkColor4f fColor; diff --git a/third_party/skia/src/gpu/graphite/PipelineDataCache.h b/third_party/skia/src/gpu/graphite/PipelineDataCache.h new file mode 100644 index 000000000000..6173e7c721d6 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/PipelineDataCache.h @@ -0,0 +1,152 @@ +/* + * 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 skgpu_graphite_PipelineDataCache_DEFINED +#define skgpu_graphite_PipelineDataCache_DEFINED + +#include "include/core/SkRefCnt.h" +#include "src/core/SkArenaAlloc.h" +#include "src/core/SkPipelineData.h" + +#include +#include + +namespace skgpu::graphite { + +// Add a block of data to the cache and return a unique ID that corresponds to its +// contents. If an identical block of data is already in the cache, that unique ID is returned. +// A StorageT captures how the memory of the BaseT is managed in the cache +// A BaseT captures the datatype that is stored in the cache and must have: +// uint32_t hash() const; +// operator== +// static StorageT Make(const BaseT&, SkArenaAlloc*); +// +// Note: The baseT/storageT split is only required until the SkTextureDataBlock is also stored +// in an arena. +template +class PipelineDataCache { +public: + static constexpr uint32_t kInvalidIndex = 0; + + PipelineDataCache() { + // kInvalidIndex is reserved + static_assert(kInvalidIndex == 0); + fDataBlocks.push_back({}); + fDataBlockIDs.insert({nullptr, Index()}); + } + + // TODO: For the uniform data version of this cache we should revisit the insert and Make APIs: + // 1. UniformData::Make requires knowing the data size up front, which involves two invocations + // of the UniformManager. Ideally, we could align uniforms on the fly into a dynamic buffer. + // 2. UniformData stores the offsets for each uniform, but these aren't needed after we've + // filled out the buffer. If we remember layout offsets, it should be stored per Combination + // or RenderStep that defines the uniform set. + // 3. UniformCache's ids are only fundamentally limited by the number of draws that can be + // recorded into a DrawPass, which means a very large recording with multiple passes could + // exceed uint32_t across all the passes. + // 4. The check to know if a UniformData is present in the cache is practically the same for + // checking if the data needs to be uploaded to the GPU, so UniformCache could remember the + // associated BufferBindInfos as well. + // 5. Because UniformCache only cares about the content byte hash/equality, and can memcpy to + // the GPU buffer, the cached data contents could all go into a shared byte array, instead of + // needing to extend SkRefCnt. + // 6. insert() as a name can imply that the value is always added, so we may want a better one. + // It can be a little less generic if UniformCache returns id and bind buffer info. On the + // other hand unordered_map::insert has the same semantics as this insert, so maybe it's fine + + // Simple wrapper around the returned index to keep all the uint32_ts straight + class Index { + public: + Index() : fIndex(kInvalidIndex) {} + explicit Index(uint32_t index) : fIndex(index) {} + + bool operator==(const Index& that) const { return fIndex == that.fIndex; } + bool operator!=(const Index& that) const { return !(*this == that); } + bool isValid() const { return fIndex != kInvalidIndex; } + uint32_t asUInt() const { return fIndex; } + private: + uint32_t fIndex; + }; + + Index insert(const BaseT& dataBlock) { + auto kv = fDataBlockIDs.find(const_cast(&dataBlock)); + if (kv != fDataBlockIDs.end()) { + return kv->second; + } + + Index id(SkTo(fDataBlocks.size())); + SkASSERT(id.isValid()); + + StorageT tmp(BaseT::Make(dataBlock, &fArena)); + fDataBlockIDs.insert({tmp.get(), id}); + fDataBlocks.push_back(std::move(tmp)); + this->validate(); + return id; + } + + const BaseT* lookup(Index uniqueID) { + SkASSERT(uniqueID.asUInt() < fDataBlocks.size()); + return fDataBlocks[uniqueID.asUInt()].get(); + } + + // The number of unique BaseT objects in the cache + size_t count() const { + SkASSERT(fDataBlocks.size() == fDataBlockIDs.size() && fDataBlocks.size() > 0); + return fDataBlocks.size() - 1; /* -1 to discount the invalidID's entry */ + } + +private: + struct Hash { + // This hash operator de-references and hashes the data contents + size_t operator()(const BaseT* dataBlock) const { + if (!dataBlock) { + return 0; + } + + return dataBlock->hash(); + } + }; + struct Eq { + // This equality operator de-references and compares the actual data contents + bool operator()(const BaseT* a, const BaseT* b) const { + if (!a || !b) { + return !a && !b; + } + + return *a == *b; + } + }; + + // Note: the unique IDs are only unique w/in a Recorder or a Recording _not_ globally + std::unordered_map fDataBlockIDs; + std::vector fDataBlocks; + SkArenaAlloc fArena{0}; + + void validate() const { +#ifdef SK_DEBUG + for (size_t i = 0; i < fDataBlocks.size(); ++i) { + auto kv = fDataBlockIDs.find(fDataBlocks[i].get()); + SkASSERT(kv != fDataBlockIDs.end()); + SkASSERT(kv->first == fDataBlocks[i].get()); + SkASSERT(SkTo(i) == kv->second.asUInt()); + } +#endif + } +}; + +// A UniformDataCache lives for the entire duration of a Recorder. As such it has a greater +// likelihood of overflowing a uint32_t index. +using UniformDataCache = PipelineDataCache; + +// A TextureDataCache only lives for a single Recording. When a Recording is snapped it is pulled +// off of the Recorder and goes with the Recording as a record of the required Textures and +// Samplers. +using TextureDataCache = PipelineDataCache, SkTextureDataBlock>; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_PipelineDataCache_DEFINED diff --git a/third_party/skia/experimental/graphite/src/ProgramCache.cpp b/third_party/skia/src/gpu/graphite/ProgramCache.cpp similarity index 98% rename from third_party/skia/experimental/graphite/src/ProgramCache.cpp rename to third_party/skia/src/gpu/graphite/ProgramCache.cpp index 5b4a2966d193..5e2960d45fda 100644 --- a/third_party/skia/experimental/graphite/src/ProgramCache.cpp +++ b/third_party/skia/src/gpu/graphite/ProgramCache.cpp @@ -7,7 +7,7 @@ #include "experimental/graphite/src/ProgramCache.h" -namespace skgpu { +namespace skgpu::graphite { //////////////////////////////////////////////////////////////////////////////////////////////////// ProgramCache::ProgramInfo::ProgramInfo(uint32_t uniqueID, Combination c) @@ -102,4 +102,4 @@ sk_sp ProgramCache::lookup(uint32_t uniqueID) { return fProgramVector[uniqueID]; } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/Recorder.cpp b/third_party/skia/src/gpu/graphite/Recorder.cpp similarity index 50% rename from third_party/skia/experimental/graphite/src/Recorder.cpp rename to third_party/skia/src/gpu/graphite/Recorder.cpp index 5aa59e0e7ce3..a51c939b7f48 100644 --- a/third_party/skia/experimental/graphite/src/Recorder.cpp +++ b/third_party/skia/src/gpu/graphite/Recorder.cpp @@ -5,29 +5,30 @@ * found in the LICENSE file. */ -#include "experimental/graphite/include/Recorder.h" - -#include "experimental/graphite/include/Recording.h" -#include "experimental/graphite/src/Caps.h" -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/ContextPriv.h" -#include "experimental/graphite/src/Device.h" -#include "experimental/graphite/src/DrawBufferManager.h" -#include "experimental/graphite/src/GlobalCache.h" -#include "experimental/graphite/src/Gpu.h" -#include "experimental/graphite/src/ResourceProvider.h" -#include "experimental/graphite/src/TaskGraph.h" -#include "experimental/graphite/src/UniformCache.h" -#include "src/core/SkUniformData.h" - -namespace skgpu { +#include "include/gpu/graphite/Recorder.h" + +#include "include/gpu/graphite/Recording.h" +#include "src/core/SkPipelineData.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/Device.h" +#include "src/gpu/graphite/DrawBufferManager.h" +#include "src/gpu/graphite/GlobalCache.h" +#include "src/gpu/graphite/Gpu.h" +#include "src/gpu/graphite/PipelineDataCache.h" +#include "src/gpu/graphite/ResourceProvider.h" +#include "src/gpu/graphite/TaskGraph.h" + +namespace skgpu::graphite { #define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(this->singleOwner()) Recorder::Recorder(sk_sp gpu, sk_sp globalCache) : fGpu(std::move(gpu)) , fGraph(new TaskGraph) - , fUniformCache(new UniformCache) { + , fUniformDataCache(new UniformDataCache) + , fTextureDataCache(new TextureDataCache) { fResourceProvider = fGpu->makeResourceProvider(std::move(globalCache), this->singleOwner()); fDrawBufferManager.reset(new DrawBufferManager(fResourceProvider.get(), @@ -48,13 +49,29 @@ std::unique_ptr Recorder::snap() { device->flushPendingWorkToRecorder(); } + // TODO: fulfill all promise images in the TextureDataCache here + // TODO: create all the samplers needed in the TextureDataCache here + auto commandBuffer = fResourceProvider->createCommandBuffer(); - fGraph->addCommands(fResourceProvider.get(), commandBuffer.get()); + if (!fGraph->addCommands(fResourceProvider.get(), commandBuffer.get())) { + // Leaving 'fTrackedDevices' alone since they were flushed earlier and could still be + // attached to extant SkSurfaces. + size_t requiredAlignment = fGpu->caps()->requiredUniformBufferAlignment(); + fDrawBufferManager.reset(new DrawBufferManager(fResourceProvider.get(), requiredAlignment)); + fTextureDataCache = std::make_unique(); + // We leave the UniformDataCache alone + fGraph->reset(); + return nullptr; + } + fDrawBufferManager->transferToCommandBuffer(commandBuffer.get()); fGraph->reset(); - return std::unique_ptr(new Recording(std::move(commandBuffer))); + std::unique_ptr recording(new Recording(std::move(commandBuffer), + std::move(fTextureDataCache))); + fTextureDataCache = std::make_unique(); + return recording; } void Recorder::registerDevice(Device* device) { @@ -74,6 +91,7 @@ void Recorder::deregisterDevice(const Device* device) { #if GR_TEST_UTILS bool Recorder::deviceIsRegistered(Device* device) { + ASSERT_SINGLE_OWNER for (auto& currentDevice : fTrackedDevices) { if (device == currentDevice) { return true; @@ -83,4 +101,4 @@ bool Recorder::deviceIsRegistered(Device* device) { } #endif -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/RecorderPriv.cpp b/third_party/skia/src/gpu/graphite/RecorderPriv.cpp similarity index 51% rename from third_party/skia/experimental/graphite/src/RecorderPriv.cpp rename to third_party/skia/src/gpu/graphite/RecorderPriv.cpp index 74271b5ae64a..a2d0edf33790 100644 --- a/third_party/skia/experimental/graphite/src/RecorderPriv.cpp +++ b/third_party/skia/src/gpu/graphite/RecorderPriv.cpp @@ -5,12 +5,13 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/RecorderPriv.h" +#include "src/gpu/graphite/RecorderPriv.h" -#include "experimental/graphite/src/Gpu.h" -#include "experimental/graphite/src/TaskGraph.h" +#include "src/gpu/graphite/Device.h" +#include "src/gpu/graphite/Gpu.h" +#include "src/gpu/graphite/TaskGraph.h" -namespace skgpu { +namespace skgpu::graphite { #define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(fRecorder->singleOwner()) @@ -18,8 +19,12 @@ ResourceProvider* RecorderPriv::resourceProvider() const { return fRecorder->fResourceProvider.get(); } -UniformCache* RecorderPriv::uniformCache() const { - return fRecorder->fUniformCache.get(); +UniformDataCache* RecorderPriv::uniformDataCache() const { + return fRecorder->fUniformDataCache.get(); +} + +TextureDataCache* RecorderPriv::textureDataCache() const { + return fRecorder->fTextureDataCache.get(); } const Caps* RecorderPriv::caps() const { @@ -35,4 +40,11 @@ void RecorderPriv::add(sk_sp task) { fRecorder->fGraph->add(std::move(task)); } -} // namespace skgpu +void RecorderPriv::flushTrackedDevices() { + ASSERT_SINGLE_OWNER + for (Device* device : fRecorder->fTrackedDevices) { + device->flushPendingWorkToRecorder(); + } +} + +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/RecorderPriv.h b/third_party/skia/src/gpu/graphite/RecorderPriv.h similarity index 71% rename from third_party/skia/experimental/graphite/src/RecorderPriv.h rename to third_party/skia/src/gpu/graphite/RecorderPriv.h index aa58e20ffbc3..17f6c69ce828 100644 --- a/third_party/skia/experimental/graphite/src/RecorderPriv.h +++ b/third_party/skia/src/gpu/graphite/RecorderPriv.h @@ -5,22 +5,25 @@ * found in the LICENSE file. */ -#ifndef skgpu_RecorderPriv_DEFINED -#define skgpu_RecorderPriv_DEFINED +#ifndef skgpu_graphite_RecorderPriv_DEFINED +#define skgpu_graphite_RecorderPriv_DEFINED -#include "experimental/graphite/include/Recorder.h" +#include "include/gpu/graphite/Recorder.h" -namespace skgpu { +namespace skgpu::graphite { class RecorderPriv { public: void add(sk_sp); ResourceProvider* resourceProvider() const; - UniformCache* uniformCache() const; + UniformDataCache* uniformDataCache() const; + TextureDataCache* textureDataCache() const; DrawBufferManager* drawBufferManager() const; const Caps* caps() const; + void flushTrackedDevices(); + private: explicit RecorderPriv(Recorder* recorder) : fRecorder(recorder) {} RecorderPriv& operator=(const RecorderPriv&) = delete; @@ -43,6 +46,6 @@ inline const RecorderPriv Recorder::priv() const { // NOLINT(readability-const- return RecorderPriv(const_cast(this)); } -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_RecorderPriv_DEFINED +#endif // skgpu_graphite_RecorderPriv_DEFINED diff --git a/third_party/skia/src/gpu/graphite/Recording.cpp b/third_party/skia/src/gpu/graphite/Recording.cpp new file mode 100644 index 000000000000..28fa10d7ddfb --- /dev/null +++ b/third_party/skia/src/gpu/graphite/Recording.cpp @@ -0,0 +1,23 @@ +/* + * 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/gpu/graphite/Recording.h" + +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/PipelineDataCache.h" + +namespace skgpu::graphite { + +Recording::Recording(sk_sp commandBuffer, + std::unique_ptr textureDataCache) + : fCommandBuffer(std::move(commandBuffer)) + , fTextureDataCache(std::move(textureDataCache)) { +} + +Recording::~Recording() {} + +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/RenderPassTask.cpp b/third_party/skia/src/gpu/graphite/RenderPassTask.cpp similarity index 71% rename from third_party/skia/experimental/graphite/src/RenderPassTask.cpp rename to third_party/skia/src/gpu/graphite/RenderPassTask.cpp index fb6f17655849..1537dab5c0dd 100644 --- a/third_party/skia/experimental/graphite/src/RenderPassTask.cpp +++ b/third_party/skia/src/gpu/graphite/RenderPassTask.cpp @@ -5,17 +5,17 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/RenderPassTask.h" +#include "src/gpu/graphite/RenderPassTask.h" -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/ContextPriv.h" -#include "experimental/graphite/src/DrawPass.h" -#include "experimental/graphite/src/Log.h" -#include "experimental/graphite/src/ResourceProvider.h" -#include "experimental/graphite/src/Texture.h" -#include "experimental/graphite/src/TextureProxy.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/DrawPass.h" +#include "src/gpu/graphite/Log.h" +#include "src/gpu/graphite/ResourceProvider.h" +#include "src/gpu/graphite/Texture.h" +#include "src/gpu/graphite/TextureProxy.h" -namespace skgpu { +namespace skgpu::graphite { sk_sp RenderPassTask::Make(std::vector> passes, const RenderPassDesc& desc, @@ -35,7 +35,7 @@ RenderPassTask::RenderPassTask(std::vector> passes, RenderPassTask::~RenderPassTask() = default; -void RenderPassTask::addCommands(ResourceProvider* resourceProvider, CommandBuffer* commandBuffer) { +bool RenderPassTask::addCommands(ResourceProvider* resourceProvider, CommandBuffer* commandBuffer) { // TBD: Expose the surfaces that will need to be attached within the renderpass? // TODO: for task execution, start the render pass, then iterate passes and @@ -48,16 +48,19 @@ void RenderPassTask::addCommands(ResourceProvider* resourceProvider, CommandBuff SKGPU_LOG_W("Given invalid texture proxy. Will not create renderpass!"); SKGPU_LOG_W("Dimensions are (%d, %d).", fTarget->dimensions().width(), fTarget->dimensions().height()); - return; + return false; } } sk_sp depthStencilTexture; if (fRenderPassDesc.fDepthStencilAttachment.fTextureInfo.isValid()) { // TODO: ensure this is a scratch/recycled texture - depthStencilTexture = resourceProvider->findOrCreateTexture( + depthStencilTexture = resourceProvider->findOrCreateDepthStencilAttachment( fTarget->dimensions(), fRenderPassDesc.fDepthStencilAttachment.fTextureInfo); - SkASSERT(depthStencilTexture); + if (!depthStencilTexture) { + SKGPU_LOG_W("Could not get DepthStencil attachment for RenderPassTask"); + return false; + } } if (commandBuffer->beginRenderPass(fRenderPassDesc, fTarget->refTexture(), nullptr, @@ -65,11 +68,16 @@ void RenderPassTask::addCommands(ResourceProvider* resourceProvider, CommandBuff // Assuming one draw pass per renderpasstask for now SkASSERT(fDrawPasses.size() == 1); for (const auto& drawPass: fDrawPasses) { - drawPass->addCommands(resourceProvider, commandBuffer, fRenderPassDesc); + if (!drawPass->addCommands(resourceProvider, commandBuffer, fRenderPassDesc)) { + commandBuffer->endRenderPass(); + return false; + } } commandBuffer->endRenderPass(); } + + return true; } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/RenderPassTask.h b/third_party/skia/src/gpu/graphite/RenderPassTask.h similarity index 78% rename from third_party/skia/experimental/graphite/src/RenderPassTask.h rename to third_party/skia/src/gpu/graphite/RenderPassTask.h index 720dced987f9..743cc7ec5cd5 100644 --- a/third_party/skia/experimental/graphite/src/RenderPassTask.h +++ b/third_party/skia/src/gpu/graphite/RenderPassTask.h @@ -5,15 +5,15 @@ * found in the LICENSE file. */ -#ifndef skgpu_RenderPassTask_DEFINED -#define skgpu_RenderPassTask_DEFINED +#ifndef skgpu_graphite_RenderPassTask_DEFINED +#define skgpu_graphite_RenderPassTask_DEFINED -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/Task.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/Task.h" #include -namespace skgpu { +namespace skgpu::graphite { class CommandBuffer; class Context; @@ -35,7 +35,7 @@ class RenderPassTask final : public Task { ~RenderPassTask() override; - void addCommands(ResourceProvider*, CommandBuffer*) override; + bool addCommands(ResourceProvider*, CommandBuffer*) override; private: RenderPassTask(std::vector> passes, @@ -47,6 +47,6 @@ class RenderPassTask final : public Task { sk_sp fTarget; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_RenderPassTask_DEFINED +#endif // skgpu_graphite_RenderPassTask_DEFINED diff --git a/third_party/skia/experimental/graphite/src/Renderer.h b/third_party/skia/src/gpu/graphite/Renderer.h similarity index 86% rename from third_party/skia/experimental/graphite/src/Renderer.h rename to third_party/skia/src/gpu/graphite/Renderer.h index 6c7e0953e4d7..9b591de6244b 100644 --- a/third_party/skia/experimental/graphite/src/Renderer.h +++ b/third_party/skia/src/gpu/graphite/Renderer.h @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#ifndef skgpu_Renderer_DEFINED -#define skgpu_Renderer_DEFINED +#ifndef skgpu_graphite_Renderer_DEFINED +#define skgpu_graphite_Renderer_DEFINED -#include "experimental/graphite/src/Attribute.h" -#include "experimental/graphite/src/DrawTypes.h" -#include "experimental/graphite/src/EnumBitMask.h" -#include "experimental/graphite/src/ResourceTypes.h" +#include "src/gpu/graphite/Attribute.h" +#include "src/gpu/graphite/DrawTypes.h" +#include "src/gpu/graphite/EnumBitMask.h" +#include "src/gpu/graphite/ResourceTypes.h" #include "include/core/SkSpan.h" #include "include/core/SkString.h" @@ -20,20 +20,17 @@ #include #include +#include +#include #include -struct SkIRect; enum class SkPathFillType; -class SkUniformData; - -namespace skgpu { +class SkPipelineDataGatherer; +namespace skgpu::graphite { class DrawWriter; +class DrawGeometry; class ResourceProvider; -class Shape; -class Transform; - -enum class Layout; class RenderStep { public: @@ -42,10 +39,7 @@ class RenderStep { // The DrawWriter is configured with the vertex and instance strides of the RenderStep, and its // primitive type. The recorded draws will be executed with a graphics pipeline compatible with // this RenderStep. - virtual void writeVertices(DrawWriter*, - const SkIRect& bounds, - const Transform&, - const Shape&) const = 0; + virtual void writeVertices(DrawWriter*, const DrawGeometry&) const = 0; // Write out the uniform values (aligned for the layout). These values will be de-duplicated // across all draws using the RenderStep before uploading to the GPU, but it can be assumed the @@ -56,12 +50,11 @@ class RenderStep { // nice if we could remember the offsets for the layout/gpu and reuse them across draws. // Similarly, it would be nice if this could write into reusable storage and then DrawPass or // UniformCache handles making an sk_sp if we need to assign a new unique ID to the uniform data - virtual sk_sp writeUniforms(Layout layout, - const SkIRect& bounds, - const Transform&, - const Shape&) const = 0; + virtual void writeUniforms(const DrawGeometry&, SkPipelineDataGatherer*) const = 0; - virtual const char* name() const = 0; + // Returns a name formatted as "Subclass[variant]", where "Subclass" matches the C++ class name + // and variant is a unique term describing instance's specific configuration. + const char* name() const { return fName.c_str(); } // TODO: This is only temporary. Eventually the RenderStep will define its logic in SkSL and // be able to have code operate in both the vertex and fragment shaders. Ideally the RenderStep @@ -71,7 +64,9 @@ class RenderStep { // Returns the body of a vertex function, which must define a float4 devPosition variable. // It has access to the variables declared by vertexAttributes(), instanceAttributes(), - // and uniforms(). + // and uniforms(). The 'devPosition' variable's z must store the PaintDepth normalized to a + // float from [0, 1], for each processed draw although the RenderStep can choose to upload it + // as attributes or uniforms. // // NOTE: The above contract is mainly so that the entire SkSL program can be created by just str // concatenating struct definitions generated from the RenderStep and paint Combination @@ -106,13 +101,13 @@ class RenderStep { // TODO: Actual API to do things - // 1. Provide stencil settings // 6. Some Renderers benefit from being able to share vertices between RenderSteps. Must find a // way to support that. It may mean that RenderSteps get state per draw. // - Does Renderer make RenderStepFactories that create steps for each DrawList::Draw? // - Does DrawList->DrawPass conversion build a separate array of blind data that the // stateless Renderstep can refer to for {draw,step} pairs? // - Does each DrawList::Draw have extra space (e.g. 8 bytes) that steps can cache data in? + // 7. Painter's order for the draw sent as uniform or attribute protected: enum class Flags : unsigned { kNone = 0b000, @@ -124,7 +119,9 @@ class RenderStep { // While RenderStep does not define the full program that's run for a draw, it defines the // entire vertex layout of the pipeline. This is not allowed to change, so can be provided to // the RenderStep constructor by subclasses. - RenderStep(Mask flags, + RenderStep(std::string_view className, + std::string_view variantName, + Mask flags, std::initializer_list uniforms, PrimitiveType primitiveType, DepthStencilSettings depthStencilSettings, @@ -137,13 +134,19 @@ class RenderStep { , fVertexAttrs(vertexAttrs) , fInstanceAttrs(instanceAttrs) , fVertexStride(0) - , fInstanceStride(0) { + , fInstanceStride(0) + , fName(className) { for (auto v : this->vertexAttributes()) { fVertexStride += v.sizeAlign4(); } for (auto i : this->instanceAttributes()) { fInstanceStride += i.sizeAlign4(); } + if (variantName.size() > 0) { + fName += "["; + fName += variantName; + fName += "]"; + } } private: @@ -168,6 +171,8 @@ class RenderStep { size_t fVertexStride; // derived from vertex attribute set size_t fInstanceStride; // derived from instance attribute set + + std::string fName; }; SKGPU_MAKE_MASK_OPS(RenderStep::Flags); @@ -192,9 +197,13 @@ class Renderer { // across draw calls, and reduce the number of shader permutations required. These Renderers // are stateless singletons and remain alive for the entire program. Each Renderer corresponds // to a specific recording function on DrawList and fill type. - static const Renderer& StencilAndFillPath(SkPathFillType); + static const Renderer& StencilTessellatedCurvesAndTris(SkPathFillType); + + static const Renderer& StencilTessellatedWedges(SkPathFillType); + + static const Renderer& ConvexTessellatedWedges(); + // TODO: Not on the immediate sprint target, but show what needs to be added for DrawList's API - // static const Renderer& FillConvexPath(); // static const Renderer& StrokePath(); // TODO: Will add more of these as primitive rendering etc. is fleshed out @@ -253,6 +262,6 @@ class Renderer { Mask fDepthStencilFlags = DepthStencilFlags::kNone; }; -} // skgpu namespace +} // skgpu namespace::graphite -#endif // skgpu_Renderer_DEFINED +#endif // skgpu_graphite_Renderer_DEFINED diff --git a/third_party/skia/src/gpu/graphite/Resource.cpp b/third_party/skia/src/gpu/graphite/Resource.cpp new file mode 100644 index 000000000000..af20523e003e --- /dev/null +++ b/third_party/skia/src/gpu/graphite/Resource.cpp @@ -0,0 +1,68 @@ +/* + * 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/Resource.h" + +#include "src/gpu/graphite/ResourceCache.h" + +namespace skgpu::graphite { + +Resource::Resource(const Gpu* gpu, Ownership ownership) + : fGpu(gpu) + , fUsageRefCnt(1) + , fCommandBufferRefCnt(0) + , fCacheRefCnt(0) + , fOwnership(ownership) {} + +Resource::~Resource() { + // The cache should have released or destroyed this resource. + SkASSERT(this->wasDestroyed()); +} + +void Resource::registerWithCache(sk_sp returnCache) { + SkASSERT(!fReturnCache); + SkASSERT(returnCache); + + fReturnCache = std::move(returnCache); +} + +bool Resource::notifyARefIsZero(LastRemovedRef removedRef) const { + // No resource should have been destroyed if there was still any sort of ref on it. + SkASSERT(!this->wasDestroyed()); + + Resource* mutableThis = const_cast(this); + + // TODO: We have not switched all resources to use the ResourceCache yet. Once we do we should + // be able to assert that we have an fCacheReturn. + // SkASSERT(fReturnCache); + if (removedRef != LastRemovedRef::kCache && + fReturnCache && + fReturnCache->returnResource(mutableThis, removedRef)) { + return false; + } + + if (!this->hasAnyRefs()) { + return true; + } + return false; +} + +void Resource::internalDispose() { + SkASSERT(fGpu); + this->freeGpuData(); + fGpu = nullptr; + // TODO: If we ever support freeing all the backend objects without deleting the object, we'll + // need to add a hasAnyRefs() check here. + delete this; +} + +bool Resource::isPurgeable() const { + return !this->hasAnyRefs(); +} + +} // namespace skgpu::graphite + diff --git a/third_party/skia/src/gpu/graphite/Resource.h b/third_party/skia/src/gpu/graphite/Resource.h new file mode 100644 index 000000000000..503e0f3374ce --- /dev/null +++ b/third_party/skia/src/gpu/graphite/Resource.h @@ -0,0 +1,246 @@ +/* + * 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_Resource_DEFINED +#define skgpu_graphite_Resource_DEFINED + +#include "include/private/SkMutex.h" +#include "src/gpu/graphite/GraphiteResourceKey.h" +#include "src/gpu/graphite/ResourceTypes.h" + +#include + +class SkMutex; + +namespace skgpu::graphite { + +class Gpu; +class ResourceCache; + +/** + * Base class for objects that can be kept in the ResourceCache. + */ +class Resource { +public: + Resource(const Resource&) = delete; + Resource(Resource&&) = delete; + Resource& operator=(const Resource&) = delete; + Resource& operator=(Resource&&) = delete; + + // Adds a usage ref to the resource. Named ref so we can easily manage usage refs with sk_sp. + void ref() const { + // Only the cache should be able to add the first usage ref to a resource. + SkASSERT(this->hasUsageRef()); + // No barrier required. + (void)fUsageRefCnt.fetch_add(+1, std::memory_order_relaxed); + } + + // Removes a usage ref from the resource + void unref() const { + bool shouldFree = false; + { + SkAutoMutexExclusive locked(fUnrefMutex); + SkASSERT(this->hasUsageRef()); + // A release here acts in place of all releases we "should" have been doing in ref(). + if (1 == fUsageRefCnt.fetch_add(-1, std::memory_order_acq_rel)) { + shouldFree = this->notifyARefIsZero(LastRemovedRef::kUsage); + } + } + if (shouldFree) { + Resource* mutableThis = const_cast(this); + mutableThis->internalDispose(); + } + } + + // Adds a command buffer ref to the resource + void refCommandBuffer() const { + // No barrier required. + (void)fCommandBufferRefCnt.fetch_add(+1, std::memory_order_relaxed); + } + + // Removes a command buffer ref from the resource + void unrefCommandBuffer() const { + bool shouldFree = false; + { + SkAutoMutexExclusive locked(fUnrefMutex); + SkASSERT(this->hasCommandBufferRef()); + // A release here acts in place of all releases we "should" have been doing in ref(). + if (1 == fCommandBufferRefCnt.fetch_add(-1, std::memory_order_acq_rel)) { + shouldFree = this->notifyARefIsZero(LastRemovedRef::kCommandBuffer); + } + } + if (shouldFree) { + Resource* mutableThis = const_cast(this); + mutableThis->internalDispose(); + } + } + + Ownership ownership() const { return fOwnership; } + + // Tests whether a object has been abandoned or released. All objects will be in this state + // after their creating Context is destroyed or abandoned. + // + // @return true if the object has been released or abandoned, + // false otherwise. + // TODO: As of now this function isn't really needed because in freeGpuData we are always + // deleting this object. However, I want to implement all the purging logic first to make sure + // we don't have a use case for calling internalDispose but not wanting to delete the actual + // object yet. + bool wasDestroyed() const { return fGpu == nullptr; } + + const GraphiteResourceKey& key() const { return fKey; } + // This should only ever be called by the ResourceProvider + void setKey(const GraphiteResourceKey& key) { fKey = key; } + +protected: + Resource(const Gpu*, Ownership); + virtual ~Resource(); + + // Overridden to free GPU resources in the backend API. + virtual void freeGpuData() = 0; + +private: + //////////////////////////////////////////////////////////////////////////// + // The following set of functions are only meant to be called by the ResourceCache. We don't + // want them public general users of a Resource, but they also aren't purely internal calls. + //////////////////////////////////////////////////////////////////////////// + friend ResourceCache; + + // This version of ref allows adding a ref when the usage count is 0. This should only be called + // from the ResourceCache. + void initialUsageRef() const { + // Only the cache should be able to add the first usage ref to a resource. + SkASSERT(fUsageRefCnt >= 0); + // No barrier required. + (void)fUsageRefCnt.fetch_add(+1, std::memory_order_relaxed); + } + + bool isPurgeable() const; + int* accessReturnIndex() const { return &fReturnIndex; } + int* accessCacheIndex() const { return &fCacheArrayIndex; } + + uint32_t timestamp() const { return fTimestamp; } + void setTimestamp(uint32_t ts) { fTimestamp = ts; } + + void registerWithCache(sk_sp); + + // Adds a cache ref to the resource. This is only called by ResourceCache. A Resource will only + // ever add a ref when the Resource is part of the cache (i.e. when insertResource is called) + // and while the Resource is in the ResourceCache::ReturnQueue. + void refCache() const { + // No barrier required. + (void)fCacheRefCnt.fetch_add(+1, std::memory_order_relaxed); + } + + // Removes a cache ref from the resource. The unref here should only ever be called from the + // ResourceCache and only in the Recorder thread the ResourceCache is part of. + void unrefCache() const { + bool shouldFree = false; + { + SkAutoMutexExclusive locked(fUnrefMutex); + SkASSERT(this->hasCacheRef()); + // A release here acts in place of all releases we "should" have been doing in ref(). + if (1 == fCacheRefCnt.fetch_add(-1, std::memory_order_acq_rel)) { + shouldFree = this->notifyARefIsZero(LastRemovedRef::kCache); + } + } + if (shouldFree) { + Resource* mutableThis = const_cast(this); + mutableThis->internalDispose(); + } + } + +#ifdef SK_DEBUG + bool isUsableAsScratch() const { + return fKey.shareable() == Shareable::kNo && !this->hasUsageRef() && fNonShareableInCache; + } +#endif + + //////////////////////////////////////////////////////////////////////////// + // The remaining calls are meant to be truely private + //////////////////////////////////////////////////////////////////////////// + bool hasUsageRef() const { + if (0 == fUsageRefCnt.load(std::memory_order_acquire)) { + // The acquire barrier is only really needed if we return true. It + // prevents code conditioned on the result of hasUsageRef() from running until previous + // owners are all totally done calling unref(). + return false; + } + return true; + } + + bool hasCommandBufferRef() const { + if (0 == fCommandBufferRefCnt.load(std::memory_order_acquire)) { + // The acquire barrier is only really needed if we return true. It + // prevents code conditioned on the result of hasCommandBufferRef() from running + // until previous owners are all totally done calling unrefCommandBuffer(). + return false; + } + return true; + } + + bool hasCacheRef() const { + if (0 == fCacheRefCnt.load(std::memory_order_acquire)) { + // The acquire barrier is only really needed if we return true. It + // prevents code conditioned on the result of hasUsageRef() from running until previous + // owners are all totally done calling unref(). + return false; + } + return true; + } + + bool hasAnyRefs() const { + return this->hasUsageRef() || this->hasCommandBufferRef() || this->hasCacheRef(); + } + + bool notifyARefIsZero(LastRemovedRef removedRef) const; + + // Frees the object in the underlying 3D API. + void internalDispose(); + + // We need to guard calling unref on the usage and command buffer refs since they each could be + // unreffed on different threads. This can lead to calling notifyARefIsZero twice with each + // instance thinking there are no more refs left and both trying to delete the object. + mutable SkMutex fUnrefMutex; + + SkDEBUGCODE(mutable bool fCalledRemovedFromCache = false;) + + // This is not ref'ed but internalDispose() will be called before the Gpu object is destroyed. + // That call will set this to nullptr. + const Gpu* fGpu; + + mutable std::atomic fUsageRefCnt; + mutable std::atomic fCommandBufferRefCnt; + mutable std::atomic fCacheRefCnt; + + GraphiteResourceKey fKey; + + sk_sp fReturnCache; + // An index into the return cache so we know whether or not the resource is already waiting to + // be returned or not. + mutable int fReturnIndex = -1; + + Ownership fOwnership; + + // An index into a heap when this resource is purgeable or an array when not. This is maintained + // by the cache. + mutable int fCacheArrayIndex = -1; + // This value reflects how recently this resource was accessed in the cache. This is maintained + // by the cache. + uint32_t fTimestamp; + + // This is only used during validation checking. Lots of the validation code depends on a + // resource being purgeable or not. However, purgeable itself just means having no refs. The + // refs can be removed before a Resource is returned to the cache (or even added to the + // ReturnQueue). + SkDEBUGCODE(mutable bool fNonShareableInCache = false); +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_Resource_DEFINED + diff --git a/third_party/skia/src/gpu/graphite/ResourceCache.cpp b/third_party/skia/src/gpu/graphite/ResourceCache.cpp new file mode 100644 index 000000000000..85a42b5ea4b7 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/ResourceCache.cpp @@ -0,0 +1,468 @@ +/* + * 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/ResourceCache.h" + +#include "include/private/SingleOwner.h" +#include "include/utils/SkRandom.h" +#include "src/core/SkTMultiMap.h" +#include "src/gpu/graphite/GraphiteResourceKey.h" +#include "src/gpu/graphite/Resource.h" + +namespace skgpu::graphite { + +#define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(fSingleOwner) + +sk_sp ResourceCache::Make(SingleOwner* singleOwner) { + return sk_sp(new ResourceCache(singleOwner)); +} + +ResourceCache::ResourceCache(SingleOwner* singleOwner) : fSingleOwner(singleOwner) { + // TODO: Maybe when things start using ResourceCache, then like Ganesh the compiler won't + // complain about not using fSingleOwner in Release builds and we can delete this. +#ifndef SK_DEBUG + (void)fSingleOwner; +#endif +} + +ResourceCache::~ResourceCache() { + // The ResourceCache must have been shutdown by the ResourceProvider before it is destroyed. + SkASSERT(fIsShutdown); +} + +void ResourceCache::shutdown() { + ASSERT_SINGLE_OWNER + + SkASSERT(!fIsShutdown); + + { + SkAutoMutexExclusive locked(fReturnMutex); + fIsShutdown = true; + } + this->processReturnedResources(); + + while (fNonpurgeableResources.count()) { + Resource* back = *(fNonpurgeableResources.end() - 1); + SkASSERT(!back->wasDestroyed()); + this->removeFromNonpurgeableArray(back); + back->unrefCache(); + } + + while (fPurgeableQueue.count()) { + Resource* top = fPurgeableQueue.peek(); + SkASSERT(!top->wasDestroyed()); + this->removeFromPurgeableQueue(top); + top->unrefCache(); + } +} + +void ResourceCache::insertResource(Resource* resource) { + ASSERT_SINGLE_OWNER + SkASSERT(resource); + SkASSERT(!this->isInCache(resource)); + SkASSERT(!resource->wasDestroyed()); + SkASSERT(!resource->isPurgeable()); + SkASSERT(resource->key().isValid()); + + this->processReturnedResources(); + + resource->registerWithCache(sk_ref_sp(this)); + resource->refCache(); + + // We must set the timestamp before adding to the array in case the timestamp wraps and we wind + // up iterating over all the resources that already have timestamps. + resource->setTimestamp(this->getNextTimestamp()); + + this->addToNonpurgeableArray(resource); + + SkDEBUGCODE(fCount++;) + + if (resource->key().shareable() == Shareable::kYes) { + fResourceMap.insert(resource->key(), resource); + } + + // TODO: purge resources if adding this one put us over budget (when we actually have a budget). +} + +Resource* ResourceCache::findAndRefResource(const GraphiteResourceKey& key) { + ASSERT_SINGLE_OWNER + + this->processReturnedResources(); + + SkASSERT(key.isValid()); + + Resource* resource = fResourceMap.find(key); + if (resource) { + if (key.shareable() == Shareable::kNo) { + // If a resource is not shareable (i.e. scratch resource) then we remove it from the map + // so that it isn't found again. + fResourceMap.remove(key, resource); + SkDEBUGCODE(resource->fNonShareableInCache = false;) + } + this->refAndMakeResourceMRU(resource); + this->validate(); + } + return resource; +} + +void ResourceCache::refAndMakeResourceMRU(Resource* resource) { + SkASSERT(resource); + SkASSERT(this->isInCache(resource)); + + if (this->inPurgeableQueue(resource)) { + // It's about to become unpurgeable. + this->removeFromPurgeableQueue(resource); + this->addToNonpurgeableArray(resource); + } + resource->initialUsageRef(); + + resource->setTimestamp(this->getNextTimestamp()); + this->validate(); +} + +bool ResourceCache::returnResource(Resource* resource, LastRemovedRef removedRef) { + // We should never be trying to return a LastRemovedRef of kCache. + SkASSERT(removedRef != LastRemovedRef::kCache); + SkAutoMutexExclusive locked(fReturnMutex); + if (fIsShutdown) { + return false; + } + + SkASSERT(resource); + + // We only allow one instance of a Resource to be in the return queue at a time. We do this so + // that the ReturnQueue stays small and quick to process. + // + // Because we take CacheRefs to all Resources added to the ReturnQueue, we would be safe if we + // decided to have multiple instances of a Resource. Even if an earlier returned instance of a + // Resource triggers that Resource to get purged from the cache, the Resource itself wouldn't + // get deleted until we drop all the CacheRefs in this ReturnQueue. + if (*resource->accessReturnIndex() >= 0) { + // If the resource is already in the return queue we promote the LastRemovedRef to be + // kUsage if that is what is returned here. + if (removedRef == LastRemovedRef::kUsage) { + SkASSERT(*resource->accessReturnIndex() < (int)fReturnQueue.size()); + fReturnQueue[*resource->accessReturnIndex()].second = removedRef; + } + return true; + } +#ifdef SK_DEBUG + for (auto& nextResource : fReturnQueue) { + SkASSERT(nextResource.first != resource); + } +#endif + fReturnQueue.push_back(std::make_pair(resource, removedRef)); + *resource->accessReturnIndex() = fReturnQueue.size() - 1; + resource->refCache(); + return true; +} + +void ResourceCache::processReturnedResources() { + // We need to move the returned Resources off of the ReturnQueue before we start processing them + // so that we can drop the fReturnMutex. When we process a Resource we may need to grab its + // UnrefMutex. This could cause a deadlock if on another thread the Resource has the UnrefMutex + // and is waiting on the ReturnMutex to be free. + ReturnQueue tempQueue; + { + SkAutoMutexExclusive locked(fReturnMutex); + // TODO: Instead of doing a copy of the vector, we may be able to improve the performance + // here by storing some form of linked list, then just move the pointer the first element + // and reset the ReturnQueue's top element to nullptr. + tempQueue = fReturnQueue; + fReturnQueue.clear(); + for (auto& nextResource : tempQueue) { + auto [resource, ref] = nextResource; + SkASSERT(*resource->accessReturnIndex() >= 0); + *resource->accessReturnIndex() = -1; + } + } + for (auto& nextResource : tempQueue) { + auto [resource, ref] = nextResource; + // We need this check here to handle the following scenario. A Resource is sitting in the + // ReturnQueue (say from kUsage last ref) and the Resource still has a command buffer ref + // out in the wild. When the ResourceCache calls processReturnedResources it locks the + // ReturnMutex. Immediately after this, the command buffer ref is released on another + // thread. The Resource cannot be added to the ReturnQueue since the lock is held. Back in + // the ResourceCache (we'll drop the ReturnMutex) and when we try to return the Resource we + // will see that it is purgeable. If we are overbudget it is possible that the Resource gets + // purged from the ResourceCache at this time setting its cache index to -1. The unrefCache + // call will actually block here on the Resource's UnrefMutex which is held from the command + // buffer ref. Eventually the command bufer ref thread will get to run again and with the + // ReturnMutex lock dropped it will get added to the ReturnQueue. At this point the first + // unrefCache call will continue on the main ResourceCache thread. When we call + // processReturnedResources the next time, we don't want this Resource added back into the + // cache, thus we have the check here. The Resource will then get deleted when we call + // unrefCache below to remove the cache ref added from the ReturnQueue. + if (*resource->accessCacheIndex() != -1) { + this->returnResourceToCache(resource, ref); + } + // Remove cache ref held by ReturnQueue + resource->unrefCache(); + } +} + +void ResourceCache::returnResourceToCache(Resource* resource, LastRemovedRef removedRef) { + // A resource should not have been destroyed when placed into the return queue. Also before + // purging any resources from the cache itself, it should always empty the queue first. When the + // cache releases/abandons all of its resources, it first invalidates the return queue so no new + // resources can be added. Thus we should not end up in a situation where a resource gets + // destroyed after it was added to the return queue. + SkASSERT(!resource->wasDestroyed()); + + SkASSERT(this->isInCache(resource)); + if (removedRef == LastRemovedRef::kUsage) { + if (resource->key().shareable() == Shareable::kYes) { + // Shareable resources should still be in the cache + SkASSERT(fResourceMap.find(resource->key())); + } else { + SkDEBUGCODE(resource->fNonShareableInCache = true;) + fResourceMap.insert(resource->key(), resource); + } + } + + // If we weren't using multiple threads, it is ok to assume a resource that isn't purgeable must + // be in the non purgeable array. However, since resources can be unreffed from multiple + // threads, it is possible that a resource became purgeable while we are in the middle of + // returning resources. For example, a resource could have 1 usage and 1 command buffer ref. We + // then unref the usage which puts the resource in the return queue. Then the ResourceCache + // thread locks the ReturnQueue as it returns the Resource. At this same time another thread + // unrefs the command buffer usage but can't add the Resource to the ReturnQueue as it is + // locked (but the command buffer ref has been reduced to zero). When we are processing the + // Resource (from the kUsage ref) to return it to the cache it will look like it is purgeable + // since all refs are zero. Thus we will move the Resource from the non purgeable to purgeable + // queue. Then later when we return the command buffer ref, the Resource will have already been + // moved to purgeable queue and we don't need to do it again. + if (!resource->isPurgeable() || this->inPurgeableQueue(resource)) { + this->validate(); + return; + } + + resource->setTimestamp(this->getNextTimestamp()); + + this->removeFromNonpurgeableArray(resource); + fPurgeableQueue.insert(resource); + this->validate(); +} + +void ResourceCache::addToNonpurgeableArray(Resource* resource) { + int index = fNonpurgeableResources.count(); + *fNonpurgeableResources.append() = resource; + *resource->accessCacheIndex() = index; +} + +void ResourceCache::removeFromNonpurgeableArray(Resource* resource) { + int* index = resource->accessCacheIndex(); + // Fill the hole we will create in the array with the tail object, adjust its index, and + // then pop the array + Resource* tail = *(fNonpurgeableResources.end() - 1); + SkASSERT(fNonpurgeableResources[*index] == resource); + fNonpurgeableResources[*index] = tail; + *tail->accessCacheIndex() = *index; + fNonpurgeableResources.pop(); + *index = -1; +} + +void ResourceCache::removeFromPurgeableQueue(Resource* resource) { + fPurgeableQueue.remove(resource); + // SkTDPQueue will set the index back to -1 in debug builds, but we are using the index as a + // flag for whether the Resource has been purged from the cache or not. So we need to make sure + // it always gets set. + *resource->accessCacheIndex() = -1; +} + +bool ResourceCache::inPurgeableQueue(Resource* resource) const { + SkASSERT(this->isInCache(resource)); + int index = *resource->accessCacheIndex(); + if (index < fPurgeableQueue.count() && fPurgeableQueue.at(index) == resource) { + return true; + } + return false; +} + +uint32_t ResourceCache::getNextTimestamp() { + // If we wrap then all the existing resources will appear older than any resources that get + // a timestamp after the wrap. + if (0 == fTimestamp) { + int count = this->getResourceCount(); + if (count) { + // Reset all the timestamps. We sort the resources by timestamp and then assign + // sequential timestamps beginning with 0. This is O(n*lg(n)) but it should be extremely + // rare. + SkTDArray sortedPurgeableResources; + sortedPurgeableResources.setReserve(fPurgeableQueue.count()); + + while (fPurgeableQueue.count()) { + *sortedPurgeableResources.append() = fPurgeableQueue.peek(); + fPurgeableQueue.pop(); + } + + SkTQSort(fNonpurgeableResources.begin(), fNonpurgeableResources.end(), + CompareTimestamp); + + // Pick resources out of the purgeable and non-purgeable arrays based on lowest + // timestamp and assign new timestamps. + int currP = 0; + int currNP = 0; + while (currP < sortedPurgeableResources.count() && + currNP < fNonpurgeableResources.count()) { + uint32_t tsP = sortedPurgeableResources[currP]->timestamp(); + uint32_t tsNP = fNonpurgeableResources[currNP]->timestamp(); + SkASSERT(tsP != tsNP); + if (tsP < tsNP) { + sortedPurgeableResources[currP++]->setTimestamp(fTimestamp++); + } else { + // Correct the index in the nonpurgeable array stored on the resource post-sort. + *fNonpurgeableResources[currNP]->accessCacheIndex() = currNP; + fNonpurgeableResources[currNP++]->setTimestamp(fTimestamp++); + } + } + + // The above loop ended when we hit the end of one array. Finish the other one. + while (currP < sortedPurgeableResources.count()) { + sortedPurgeableResources[currP++]->setTimestamp(fTimestamp++); + } + while (currNP < fNonpurgeableResources.count()) { + *fNonpurgeableResources[currNP]->accessCacheIndex() = currNP; + fNonpurgeableResources[currNP++]->setTimestamp(fTimestamp++); + } + + // Rebuild the queue. + for (int i = 0; i < sortedPurgeableResources.count(); ++i) { + fPurgeableQueue.insert(sortedPurgeableResources[i]); + } + + this->validate(); + SkASSERT(count == this->getResourceCount()); + + // count should be the next timestamp we return. + SkASSERT(fTimestamp == SkToU32(count)); + } + } + return fTimestamp++; +} + +//////////////////////////////////////////////////////////////////////////////// + +const GraphiteResourceKey& ResourceCache::MapTraits::GetKey(const Resource& r) { + return r.key(); +} + +uint32_t ResourceCache::MapTraits::Hash(const GraphiteResourceKey& key) { + return key.hash(); +} + +bool ResourceCache::CompareTimestamp(Resource* const& a, Resource* const& b) { + return a->timestamp() < b->timestamp(); +} + +int* ResourceCache::AccessResourceIndex(Resource* const& res) { + return res->accessCacheIndex(); +} + +#ifdef SK_DEBUG +void ResourceCache::validate() const { + // Reduce the frequency of validations for large resource counts. + static SkRandom gRandom; + int mask = (SkNextPow2(fCount + 1) >> 5) - 1; + if (~mask && (gRandom.nextU() & mask)) { + return; + } + + struct Stats { + int fShareable; + int fScratch; + const ResourceMap* fResourceMap; + + Stats(const ResourceCache* cache) { + memset(this, 0, sizeof(*this)); + fResourceMap = &cache->fResourceMap; + } + + void update(Resource* resource) { + const GraphiteResourceKey& key = resource->key(); + SkASSERT(key.isValid()); + + // We should always have at least 1 cache ref + SkASSERT(resource->hasCacheRef()); + + // We track scratch (non-shareable, no usage refs, has been returned to cache) and + // shareable resources here as those should be the only things in the fResourceMap. A + // non-shareable resources that does meet the scratch criteria will not be able to be + // given back out from a cache requests. After processing all the resources we assert + // that the fScratch + fShareable equals the count in the fResourceMap. + if (resource->isUsableAsScratch()) { + SkASSERT(key.shareable() == Shareable::kNo); + SkASSERT(!resource->hasUsageRef()); + ++fScratch; + SkASSERT(fResourceMap->has(resource, key)); + SkASSERT(resource->ownership() == Ownership::kOwned); + } else if (key.shareable() == Shareable::kNo) { + SkASSERT(resource->ownership() == Ownership::kOwned); + SkASSERT(!fResourceMap->has(resource, key)); + } else { + SkASSERT(key.shareable() == Shareable::kYes); + ++fShareable; + SkASSERT(fResourceMap->has(resource, key)); + } + } + }; + + { + int count = 0; + fResourceMap.foreach([&](const Resource& resource) { + SkASSERT(resource.isUsableAsScratch() || resource.key().shareable() == Shareable::kYes); + count++; + }); + SkASSERT(count == fResourceMap.count()); + } + + // In the below checks we can assert that anything in the purgeable queue is purgeable because + // we won't put a Resource into that queue unless all refs are zero. Thus there is no way for + // that resource to be made non-purgeable without going through the cache (which will switch + // queues back to non-purgeable). + // + // However, we can't say the same for things in the non-purgeable array. It is possible that + // Resources have removed all their refs (thus technically become purgeable) but have not been + // processed back into the cache yet. Thus we may not have moved resources to the purgeable + // queue yet. Its also possible that Resource hasn't been added to the ReturnQueue yet (thread + // paused between unref and adding to ReturnQueue) so we can't even make asserts like not + // purgeable or is in ReturnQueue. + Stats stats(this); + for (int i = 0; i < fNonpurgeableResources.count(); ++i) { + SkASSERT(*fNonpurgeableResources[i]->accessCacheIndex() == i); + SkASSERT(!fNonpurgeableResources[i]->wasDestroyed()); + SkASSERT(!this->inPurgeableQueue(fNonpurgeableResources[i])); + stats.update(fNonpurgeableResources[i]); + } + for (int i = 0; i < fPurgeableQueue.count(); ++i) { + SkASSERT(fPurgeableQueue.at(i)->isPurgeable()); + SkASSERT(*fPurgeableQueue.at(i)->accessCacheIndex() == i); + SkASSERT(!fPurgeableQueue.at(i)->wasDestroyed()); + stats.update(fPurgeableQueue.at(i)); + } + + SkASSERT((stats.fScratch + stats.fShareable) == fResourceMap.count()); +} + +bool ResourceCache::isInCache(const Resource* resource) const { + int index = *resource->accessCacheIndex(); + if (index < 0) { + return false; + } + if (index < fPurgeableQueue.count() && fPurgeableQueue.at(index) == resource) { + return true; + } + if (index < fNonpurgeableResources.count() && fNonpurgeableResources[index] == resource) { + return true; + } + SkDEBUGFAIL("Resource index should be -1 or the resource should be in the cache."); + return false; +} + +#endif // SK_DEBUG + +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/ResourceCache.h b/third_party/skia/src/gpu/graphite/ResourceCache.h new file mode 100644 index 000000000000..240b2ff56e2c --- /dev/null +++ b/third_party/skia/src/gpu/graphite/ResourceCache.h @@ -0,0 +1,119 @@ +/* + * 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_ResourceCache_DEFINED +#define skgpu_graphite_ResourceCache_DEFINED + +#include "include/core/SkRefCnt.h" +#include "include/private/SkMutex.h" +#include "include/private/SkTArray.h" +#include "include/private/SkTHash.h" +#include "src/core/SkTDPQueue.h" +#include "src/core/SkTMultiMap.h" +#include "src/gpu/graphite/ResourceTypes.h" + +#include + +namespace skgpu { +class SingleOwner; +} + +namespace skgpu::graphite { + +class GraphiteResourceKey; +class Resource; + +class ResourceCache : public SkRefCnt { +public: + static sk_sp Make(SingleOwner*); + ~ResourceCache() override; + + ResourceCache(const ResourceCache&) = delete; + ResourceCache(ResourceCache&&) = delete; + ResourceCache& operator=(const ResourceCache&) = delete; + ResourceCache& operator=(ResourceCache&&) = delete; + + // Returns the number of resources. + int getResourceCount() const { + return fPurgeableQueue.count() + fNonpurgeableResources.count(); + } + + void insertResource(Resource*); + + // Find a resource that matches a key. + Resource* findAndRefResource(const GraphiteResourceKey& key); + + // This is a thread safe call. If it fails the ResourceCache is no longer valid and the + // Resource should clean itself up if it is the last ref. + bool returnResource(Resource*, LastRemovedRef); + + // 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. + void shutdown(); + +private: + ResourceCache(SingleOwner*); + + // 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. + void refAndMakeResourceMRU(Resource*); + void addToNonpurgeableArray(Resource* resource); + void removeFromNonpurgeableArray(Resource* resource); + void removeFromPurgeableQueue(Resource* resource); + + void processReturnedResources(); + void returnResourceToCache(Resource*, LastRemovedRef); + + uint32_t getNextTimestamp(); + + bool inPurgeableQueue(Resource*) const; + +#ifdef SK_DEBUG + bool isInCache(const Resource* r) const; + void validate() const; +#else + void validate() const {} +#endif + + struct MapTraits { + static const GraphiteResourceKey& GetKey(const Resource& r); + + static uint32_t Hash(const GraphiteResourceKey& key); + static void OnFree(Resource*) {} + }; + typedef SkTMultiMap ResourceMap; + + static bool CompareTimestamp(Resource* const& a, Resource* const& b); + static int* AccessResourceIndex(Resource* const& res); + + using PurgeableQueue = SkTDPQueue; + using ResourceArray = SkTDArray; + + // Whenever a resource is added to the cache or the result of a cache lookup, fTimestamp is + // assigned as the resource's timestamp and then incremented. fPurgeableQueue orders the + // purgeable resources by this value, and thus is used to purge resources in LRU order. + uint32_t fTimestamp = 0; + PurgeableQueue fPurgeableQueue; + ResourceArray fNonpurgeableResources; + + SkDEBUGCODE(int fCount = 0;) + + ResourceMap fResourceMap; + + SingleOwner* fSingleOwner = nullptr; + + bool fIsShutdown = false; + + SkMutex fReturnMutex; + using ReturnQueue = std::vector>; + ReturnQueue fReturnQueue SK_GUARDED_BY(fReturnMutex); +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_ResourceCache_DEFINED diff --git a/third_party/skia/src/gpu/graphite/ResourceProvider.cpp b/third_party/skia/src/gpu/graphite/ResourceProvider.cpp new file mode 100644 index 000000000000..fadd0160c378 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/ResourceProvider.cpp @@ -0,0 +1,194 @@ +/* + * 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 "src/gpu/graphite/ResourceProvider.h" + +#include "src/gpu/graphite/Buffer.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/GlobalCache.h" +#include "src/gpu/graphite/Gpu.h" +#include "src/gpu/graphite/GraphicsPipeline.h" +#include "src/gpu/graphite/ResourceCache.h" +#include "src/gpu/graphite/Sampler.h" +#include "src/gpu/graphite/Texture.h" + +namespace skgpu::graphite { + +ResourceProvider::ResourceProvider(const Gpu* gpu, + sk_sp globalCache, + SingleOwner* singleOwner) + : fGpu(gpu) + , fResourceCache(ResourceCache::Make(singleOwner)) + , fGlobalCache(std::move(globalCache)) { + SkASSERT(fResourceCache); + fGraphicsPipelineCache.reset(new GraphicsPipelineCache(this)); +} + +ResourceProvider::~ResourceProvider() { + fGraphicsPipelineCache.release(); + fResourceCache->shutdown(); +} + +sk_sp ResourceProvider::findOrCreateGraphicsPipeline( + const GraphicsPipelineDesc& pipelineDesc, + const RenderPassDesc& renderPassDesc) { + return fGraphicsPipelineCache->refPipeline(fGpu->caps(), pipelineDesc, renderPassDesc); +} + +SkShaderCodeDictionary* ResourceProvider::shaderCodeDictionary() const { + return fGlobalCache->shaderCodeDictionary(); +} + +//////////////////////////////////////////////////////////////////////////////////////////////// + +struct ResourceProvider::GraphicsPipelineCache::Entry { + Entry(sk_sp pipeline) : fPipeline(std::move(pipeline)) {} + + sk_sp fPipeline; +}; + +ResourceProvider::GraphicsPipelineCache::GraphicsPipelineCache(ResourceProvider* resourceProvider) + : fMap(16) // TODO: find a good value for this + , fResourceProvider(resourceProvider) {} + +ResourceProvider::GraphicsPipelineCache::~GraphicsPipelineCache() { + SkASSERT(0 == fMap.count()); +} + +void ResourceProvider::GraphicsPipelineCache::release() { + fMap.reset(); +} + +sk_sp ResourceProvider::GraphicsPipelineCache::refPipeline( + const Caps* caps, + const GraphicsPipelineDesc& pipelineDesc, + const RenderPassDesc& renderPassDesc) { + UniqueKey pipelineKey = caps->makeGraphicsPipelineKey(pipelineDesc, renderPassDesc); + + std::unique_ptr* entry = fMap.find(pipelineKey); + + if (!entry) { + auto pipeline = fResourceProvider->onCreateGraphicsPipeline(pipelineDesc, renderPassDesc); + if (!pipeline) { + return nullptr; + } + entry = fMap.insert(pipelineKey, std::unique_ptr(new Entry(std::move(pipeline)))); + } + return (*entry)->fPipeline; +} + +sk_sp ResourceProvider::findOrCreateScratchTexture(SkISize dimensions, + const TextureInfo& info) { + SkASSERT(info.isValid()); + + static const ResourceType kType = GraphiteResourceKey::GenerateResourceType(); + + GraphiteResourceKey key; + // Scratch textures are not shareable + fGpu->caps()->buildKeyForTexture(dimensions, info, kType, Shareable::kNo, &key); + + return this->findOrCreateTextureWithKey(dimensions, info, key); +} + +sk_sp ResourceProvider::findOrCreateDepthStencilAttachment(SkISize dimensions, + const TextureInfo& info) { + SkASSERT(info.isValid()); + + static const ResourceType kType = GraphiteResourceKey::GenerateResourceType(); + + GraphiteResourceKey key; + // We always make depth and stencil attachments shareable. Between any render pass the values + // are reset. Thus it is safe to be used by multiple different render passes without worry of + // stomping on each other's data. + fGpu->caps()->buildKeyForTexture(dimensions, info, kType, Shareable::kYes, &key); + + return this->findOrCreateTextureWithKey(dimensions, info, key); +} + +sk_sp ResourceProvider::findOrCreateDiscardableMSAAAttachment(SkISize dimensions, + const TextureInfo& info) { + SkASSERT(info.isValid()); + + static const ResourceType kType = GraphiteResourceKey::GenerateResourceType(); + + GraphiteResourceKey key; + // We always make discardable msaa attachments shareable. Between any render pass we discard + // the values of the MSAA texture. Thus it is safe to be used by multiple different render + // passes without worry of stomping on each other's data. It is the callings code responsiblity + // to populate the discardable MSAA texture with data at the start of the render pass. + fGpu->caps()->buildKeyForTexture(dimensions, info, kType, Shareable::kYes, &key); + + return this->findOrCreateTextureWithKey(dimensions, info, key); +} + +sk_sp ResourceProvider::findOrCreateTextureWithKey(SkISize dimensions, + const TextureInfo& info, + const GraphiteResourceKey& key) { + if (Resource* resource = fResourceCache->findAndRefResource(key)) { + return sk_sp(static_cast(resource)); + } + + auto tex = this->createTexture(dimensions, info); + if (!tex) { + return nullptr; + } + + tex->setKey(key); + fResourceCache->insertResource(tex.get()); + + return tex; +} + +sk_sp ResourceProvider::findOrCreateCompatibleSampler(const SkSamplingOptions& smplOptions, + SkTileMode xTileMode, + SkTileMode yTileMode) { + return this->createSampler(smplOptions, xTileMode, yTileMode); +} + +sk_sp ResourceProvider::findOrCreateBuffer(size_t size, + BufferType type, + PrioritizeGpuReads prioritizeGpuReads) { + static const ResourceType kType = GraphiteResourceKey::GenerateResourceType(); + + GraphiteResourceKey key; + { + // For the key we need ((sizeof(size_t) + (sizeof(uint32_t) - 1)) / (sizeof(uint32_t)) + // uint32_t's for the size and one uint32_t for the rest. + static_assert(sizeof(uint32_t) == 4); + static const int kSizeKeyNum32DataCnt = (sizeof(size_t) + 3) / 4; + static const int kKeyNum32DataCnt = kSizeKeyNum32DataCnt + 1; + + SkASSERT(static_cast(type) < (1u << 3)); + SkASSERT(static_cast(prioritizeGpuReads) < (1u << 1)); + + GraphiteResourceKey::Builder builder(&key, kType, kKeyNum32DataCnt, Shareable::kNo); + builder[0] = (static_cast(type) << 0) | + (static_cast(prioritizeGpuReads) << 3); + size_t szKey = size; + for (int i = 0; i < kSizeKeyNum32DataCnt; ++i) { + builder[i + 1] = (uint32_t) szKey; + szKey = szKey >> 32; + } + } + + if (Resource* resource = fResourceCache->findAndRefResource(key)) { + return sk_sp(static_cast(resource)); + } + auto buffer = this->createBuffer(size, type, prioritizeGpuReads); + if (!buffer) { + return nullptr; + } + + buffer->setKey(key); + fResourceCache->insertResource(buffer.get()); + return buffer; +} + + +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/ResourceProvider.h b/third_party/skia/src/gpu/graphite/ResourceProvider.h similarity index 72% rename from third_party/skia/experimental/graphite/src/ResourceProvider.h rename to third_party/skia/src/gpu/graphite/ResourceProvider.h index 46089f6f2402..9b5f85bd16cb 100644 --- a/third_party/skia/experimental/graphite/src/ResourceProvider.h +++ b/third_party/skia/src/gpu/graphite/ResourceProvider.h @@ -5,22 +5,25 @@ * found in the LICENSE file. */ -#ifndef skgpu_ResourceProvider_DEFINED -#define skgpu_ResourceProvider_DEFINED +#ifndef skgpu_graphite_ResourceProvider_DEFINED +#define skgpu_graphite_ResourceProvider_DEFINED -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/GraphicsPipelineDesc.h" -#include "experimental/graphite/src/ResourceCache.h" -#include "experimental/graphite/src/ResourceTypes.h" #include "include/core/SkSize.h" #include "include/core/SkTileMode.h" #include "src/core/SkLRUCache.h" #include "src/gpu/ResourceKey.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/GraphicsPipelineDesc.h" +#include "src/gpu/graphite/ResourceTypes.h" struct SkSamplingOptions; class SkShaderCodeDictionary; namespace skgpu { +class SingleOwner; +} + +namespace skgpu::graphite { class BackendTexture; class Buffer; @@ -28,6 +31,8 @@ class Caps; class GlobalCache; class Gpu; class GraphicsPipeline; +class GraphiteResourceKey; +class ResourceCache; class Sampler; class Texture; class TextureInfo; @@ -41,9 +46,15 @@ class ResourceProvider { sk_sp findOrCreateGraphicsPipeline(const GraphicsPipelineDesc&, const RenderPassDesc&); - sk_sp findOrCreateTexture(SkISize, const TextureInfo&); + sk_sp findOrCreateScratchTexture(SkISize, const TextureInfo&); virtual sk_sp createWrappedTexture(const BackendTexture&) = 0; + sk_sp findOrCreateDepthStencilAttachment(SkISize dimensions, + const TextureInfo&); + + sk_sp findOrCreateDiscardableMSAAAttachment(SkISize dimensions, + const TextureInfo&); + sk_sp findOrCreateBuffer(size_t size, BufferType type, PrioritizeGpuReads); sk_sp findOrCreateCompatibleSampler(const SkSamplingOptions&, @@ -67,6 +78,10 @@ class ResourceProvider { SkTileMode xTileMode, SkTileMode yTileMode) = 0; + sk_sp findOrCreateTextureWithKey(SkISize dimensions, + const TextureInfo& info, + const GraphiteResourceKey& key); + class GraphicsPipelineCache { public: GraphicsPipelineCache(ResourceProvider* resourceProvider); @@ -89,7 +104,7 @@ class ResourceProvider { ResourceProvider* fResourceProvider; }; - ResourceCache fResourceCache; + sk_sp fResourceCache; sk_sp fGlobalCache; // Cache of GraphicsPipelines @@ -97,6 +112,6 @@ class ResourceProvider { std::unique_ptr fGraphicsPipelineCache; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_ResourceProvider_DEFINED +#endif // skgpu_graphite_ResourceProvider_DEFINED diff --git a/third_party/skia/experimental/graphite/src/ResourceTypes.h b/third_party/skia/src/gpu/graphite/ResourceTypes.h similarity index 76% rename from third_party/skia/experimental/graphite/src/ResourceTypes.h rename to third_party/skia/src/gpu/graphite/ResourceTypes.h index a3daf8287cd5..4bf629c424ec 100644 --- a/third_party/skia/experimental/graphite/src/ResourceTypes.h +++ b/third_party/skia/src/gpu/graphite/ResourceTypes.h @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#ifndef skgpu_ResourceTypes_DEFINED -#define skgpu_ResourceTypes_DEFINED +#ifndef skgpu_graphite_ResourceTypes_DEFINED +#define skgpu_graphite_ResourceTypes_DEFINED -#include "experimental/graphite/include/GraphiteTypes.h" -#include "experimental/graphite/src/EnumBitMask.h" +#include "include/gpu/graphite/GraphiteTypes.h" +#include "src/gpu/graphite/EnumBitMask.h" -namespace skgpu { +namespace skgpu::graphite { /** * Is the Texture renderable or not @@ -68,12 +68,16 @@ enum class Shareable : bool { kYes = true, }; -/** This enum is used to notify the ResourceCache which type of ref just dropped to zero. */ +/** + * This enum is used to notify the ResourceCache which type of ref just dropped to zero on a + * Resource. + */ enum class LastRemovedRef { - kUsageRef, - kCommandBufferRef, + kUsage, + kCommandBuffer, + kCache, }; -}; // namespace skgpu +}; // namespace skgpu::graphite -#endif // skgpu_ResourceTypes_DEFINED +#endif // skgpu_graphite_ResourceTypes_DEFINED diff --git a/third_party/skia/experimental/graphite/src/Sampler.cpp b/third_party/skia/src/gpu/graphite/Sampler.cpp similarity index 50% rename from third_party/skia/experimental/graphite/src/Sampler.cpp rename to third_party/skia/src/gpu/graphite/Sampler.cpp index 2163bbb1404a..aefeee10d5b7 100644 --- a/third_party/skia/experimental/graphite/src/Sampler.cpp +++ b/third_party/skia/src/gpu/graphite/Sampler.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/Sampler.h" +#include "src/gpu/graphite/Sampler.h" -namespace skgpu { +namespace skgpu::graphite { -Sampler::Sampler(const Gpu* gpu) : Resource(gpu) {} +Sampler::Sampler(const Gpu* gpu) : Resource(gpu, Ownership::kOwned) {} Sampler::~Sampler() {} -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/Sampler.h b/third_party/skia/src/gpu/graphite/Sampler.h similarity index 55% rename from third_party/skia/experimental/graphite/src/Sampler.h rename to third_party/skia/src/gpu/graphite/Sampler.h index 3b087c8ecdba..de178cb7d900 100644 --- a/third_party/skia/experimental/graphite/src/Sampler.h +++ b/third_party/skia/src/gpu/graphite/Sampler.h @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#ifndef skgpu_Sampler_DEFINED -#define skgpu_Sampler_DEFINED +#ifndef skgpu_graphite_Sampler_DEFINED +#define skgpu_graphite_Sampler_DEFINED -#include "experimental/graphite/src/Resource.h" +#include "src/gpu/graphite/Resource.h" -namespace skgpu { +namespace skgpu::graphite { class Sampler : public Resource { public: @@ -22,6 +22,6 @@ class Sampler : public Resource { private: }; -} // namepsace skgpu +} // namepsace skgpu::graphite -#endif // skgpu_Sampler_DEFINED +#endif // skgpu_graphite_Sampler_DEFINED diff --git a/third_party/skia/src/gpu/graphite/SkStuff.cpp b/third_party/skia/src/gpu/graphite/SkStuff.cpp new file mode 100644 index 000000000000..d003919bde68 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/SkStuff.cpp @@ -0,0 +1,88 @@ +/* + * 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/gpu/graphite/SkStuff.h" + +#include "include/core/SkColorSpace.h" +#include "include/gpu/graphite/BackendTexture.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Recorder.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/Device.h" +#include "src/gpu/graphite/Gpu.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" + +using namespace skgpu::graphite; + +sk_sp MakeGraphite(Recorder* recorder, const SkImageInfo& ii) { + sk_sp device = Device::Make(recorder, ii); + if (!device) { + return nullptr; + } + + return sk_make_sp(std::move(device)); +} + +static bool validate_backend_texture(const Caps* caps, + const BackendTexture& texture, + SkColorType ct) { + if (!texture.isValid()) { + return false; + } + + const TextureInfo& info = texture.info(); + if (!caps->areColorTypeAndTextureInfoCompatible(ct, info)) { + return false; + } + + if (!caps->isRenderable(info)) { + return false; + } + return true; +} + +sk_sp MakeGraphiteFromBackendTexture(Recorder* recorder, + const BackendTexture& beTexture, + SkColorType colorType, + sk_sp colorSpace, + const SkSurfaceProps* props) { + + if (!recorder) { + return nullptr; + } + + if (!validate_backend_texture(recorder->priv().caps(), + beTexture, + colorType)) { + return nullptr; + } + + sk_sp texture = + recorder->priv().resourceProvider()->createWrappedTexture(beTexture); + + if (!texture) { + return nullptr; + } + + sk_sp proxy(new TextureProxy(std::move(texture))); + + sk_sp device = Device::Make(recorder, + std::move(proxy), + std::move(colorSpace), + colorType, + kPremul_SkAlphaType); + if (!device) { + return nullptr; + } + + return sk_make_sp(std::move(device)); +} diff --git a/third_party/skia/experimental/graphite/src/Surface_Graphite.cpp b/third_party/skia/src/gpu/graphite/Surface_Graphite.cpp similarity index 68% rename from third_party/skia/experimental/graphite/src/Surface_Graphite.cpp rename to third_party/skia/src/gpu/graphite/Surface_Graphite.cpp index d0c33ced901d..d79034084d98 100644 --- a/third_party/skia/experimental/graphite/src/Surface_Graphite.cpp +++ b/third_party/skia/src/gpu/graphite/Surface_Graphite.cpp @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/Surface_Graphite.h" +#include "src/gpu/graphite/Surface_Graphite.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/include/SkStuff.h" -#include "experimental/graphite/src/Device.h" -#include "experimental/graphite/src/Image_Graphite.h" +#include "include/gpu/graphite/Recorder.h" +#include "include/gpu/graphite/SkStuff.h" +#include "src/gpu/graphite/Device.h" +#include "src/gpu/graphite/Image_Graphite.h" -namespace skgpu { +namespace skgpu::graphite { Surface::Surface(sk_sp device) : SkSurface_Base(device->width(), device->height(), &device->surfaceProps()) @@ -21,6 +21,10 @@ Surface::Surface(sk_sp device) Surface::~Surface() {} +Recorder* Surface::onGetRecorder() { + return fDevice->recorder(); +} + SkCanvas* Surface::onNewCanvas() { return new SkCanvas(fDevice); } sk_sp Surface::onNewSurface(const SkImageInfo& ii) { @@ -31,7 +35,11 @@ sk_sp Surface::onNewImageSnapshot(const SkIRect* subset) { SkImageInfo ii = subset ? this->imageInfo().makeDimensions(subset->size()) : this->imageInfo(); - return sk_sp(new Image_Graphite(ii)); + // TODO: create a real proxy view + sk_sp proxy(new TextureProxy(ii.dimensions(), {})); + TextureProxyView tpv(std::move(proxy)); + + return sk_sp(new Image(tpv, ii.colorInfo())); } void Surface::onWritePixels(const SkPixmap& pixmap, int x, int y) { @@ -48,4 +56,4 @@ bool Surface::onReadPixels(Context* context, return fDevice->readPixels(context, recorder, dst, srcX, srcY); } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/Surface_Graphite.h b/third_party/skia/src/gpu/graphite/Surface_Graphite.h similarity index 75% rename from third_party/skia/experimental/graphite/src/Surface_Graphite.h rename to third_party/skia/src/gpu/graphite/Surface_Graphite.h index 0faad2459f9a..b1f7b9bfb0a1 100644 --- a/third_party/skia/experimental/graphite/src/Surface_Graphite.h +++ b/third_party/skia/src/gpu/graphite/Surface_Graphite.h @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#ifndef skgpu_Surface_Graphite_DEFINED -#define skgpu_Surface_Graphite_DEFINED +#ifndef skgpu_graphite_Surface_Graphite_DEFINED +#define skgpu_graphite_Surface_Graphite_DEFINED #include "src/image/SkSurface_Base.h" -namespace skgpu { +namespace skgpu::graphite { class Context; class Device; @@ -21,6 +21,7 @@ class Surface final : public SkSurface_Base { Surface(sk_sp); ~Surface() override; + Recorder* onGetRecorder() override; SkCanvas* onNewCanvas() override; sk_sp onNewSurface(const SkImageInfo&) override; sk_sp onNewImageSnapshot(const SkIRect* subset) override; @@ -32,6 +33,6 @@ class Surface final : public SkSurface_Base { sk_sp fDevice; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_Surface_Graphite_DEFINED +#endif // skgpu_graphite_Surface_Graphite_DEFINED diff --git a/third_party/skia/experimental/graphite/src/Task.cpp b/third_party/skia/src/gpu/graphite/Task.cpp similarity index 65% rename from third_party/skia/experimental/graphite/src/Task.cpp rename to third_party/skia/src/gpu/graphite/Task.cpp index 8b9a9b2f6385..b83e08c66883 100644 --- a/third_party/skia/experimental/graphite/src/Task.cpp +++ b/third_party/skia/src/gpu/graphite/Task.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/Task.h" +#include "src/gpu/graphite/Task.h" -namespace skgpu { +namespace skgpu::graphite { Task::Task() {} Task::~Task() {} -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/Task.h b/third_party/skia/src/gpu/graphite/Task.h similarity index 54% rename from third_party/skia/experimental/graphite/src/Task.h rename to third_party/skia/src/gpu/graphite/Task.h index 15643cfb0abd..1572e0e864d4 100644 --- a/third_party/skia/experimental/graphite/src/Task.h +++ b/third_party/skia/src/gpu/graphite/Task.h @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#ifndef skgpu_Task_DEFINED -#define skgpu_Task_DEFINED +#ifndef skgpu_graphite_Task_DEFINED +#define skgpu_graphite_Task_DEFINED #include "include/core/SkRefCnt.h" -namespace skgpu { +namespace skgpu::graphite { class CommandBuffer; class ResourceProvider; @@ -19,7 +19,8 @@ class Task : public SkRefCnt { public: ~Task() override; - virtual void addCommands(ResourceProvider*, CommandBuffer*) = 0; + // Returns true on success; false on failure. + virtual bool addCommands(ResourceProvider*, CommandBuffer*) = 0; protected: Task(); @@ -27,6 +28,6 @@ class Task : public SkRefCnt { private: }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_Task_DEFINED +#endif // skgpu_graphite_Task_DEFINED diff --git a/third_party/skia/experimental/graphite/src/TaskGraph.cpp b/third_party/skia/src/gpu/graphite/TaskGraph.cpp similarity index 59% rename from third_party/skia/experimental/graphite/src/TaskGraph.cpp rename to third_party/skia/src/gpu/graphite/TaskGraph.cpp index 3f8ecc576205..db945dcc53c6 100644 --- a/third_party/skia/experimental/graphite/src/TaskGraph.cpp +++ b/third_party/skia/src/gpu/graphite/TaskGraph.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/TaskGraph.h" +#include "src/gpu/graphite/TaskGraph.h" -namespace skgpu { +namespace skgpu::graphite { TaskGraph::TaskGraph() {} TaskGraph::~TaskGraph() {} @@ -16,14 +16,18 @@ void TaskGraph::add(sk_sp task) { fTasks.emplace_back(std::move(task)); } -void TaskGraph::addCommands(ResourceProvider* resourceProvider, CommandBuffer* commandBuffer) { +bool TaskGraph::addCommands(ResourceProvider* resourceProvider, CommandBuffer* commandBuffer) { for (const auto& task: fTasks) { - task->addCommands(resourceProvider, commandBuffer); + if (!task->addCommands(resourceProvider, commandBuffer)) { + return false; + } } + + return true; } void TaskGraph::reset() { fTasks.clear(); } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/TaskGraph.h b/third_party/skia/src/gpu/graphite/TaskGraph.h similarity index 53% rename from third_party/skia/experimental/graphite/src/TaskGraph.h rename to third_party/skia/src/gpu/graphite/TaskGraph.h index 9111be7a2d1a..41c0a7a2ff08 100644 --- a/third_party/skia/experimental/graphite/src/TaskGraph.h +++ b/third_party/skia/src/gpu/graphite/TaskGraph.h @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#ifndef skgpu_TaskGraph_DEFINED -#define skgpu_TaskGraph_DEFINED +#ifndef skgpu_graphite_TaskGraph_DEFINED +#define skgpu_graphite_TaskGraph_DEFINED #include -#include "experimental/graphite/src/Task.h" +#include "src/gpu/graphite/Task.h" -namespace skgpu { +namespace skgpu::graphite { class CommandBuffer; class ResourceProvider; @@ -21,7 +21,9 @@ class TaskGraph { ~TaskGraph(); void add(sk_sp); - void addCommands(ResourceProvider*, CommandBuffer*); + + // Returns true on success; false on failure + bool addCommands(ResourceProvider*, CommandBuffer*); void reset(); protected: @@ -29,6 +31,6 @@ class TaskGraph { std::vector> fTasks; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_TaskGraph_DEFINED +#endif // skgpu_graphite_TaskGraph_DEFINED diff --git a/third_party/skia/experimental/graphite/src/Texture.cpp b/third_party/skia/src/gpu/graphite/Texture.cpp similarity index 58% rename from third_party/skia/experimental/graphite/src/Texture.cpp rename to third_party/skia/src/gpu/graphite/Texture.cpp index a9ac2951699c..4af074878230 100644 --- a/third_party/skia/experimental/graphite/src/Texture.cpp +++ b/third_party/skia/src/gpu/graphite/Texture.cpp @@ -5,13 +5,15 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/Texture.h" +#include "src/gpu/graphite/Texture.h" -namespace skgpu { +namespace skgpu::graphite { Texture::Texture(const Gpu* gpu, SkISize dimensions, const TextureInfo& info, Ownership ownership) - : Resource(gpu), fDimensions(dimensions), fInfo(info), fOwnership(ownership) {} + : Resource(gpu, ownership) + , fDimensions(dimensions) + , fInfo(info) {} Texture::~Texture() {} -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/Texture.h b/third_party/skia/src/gpu/graphite/Texture.h similarity index 64% rename from third_party/skia/experimental/graphite/src/Texture.h rename to third_party/skia/src/gpu/graphite/Texture.h index 78242435881a..1c96a5dd7db6 100644 --- a/third_party/skia/experimental/graphite/src/Texture.h +++ b/third_party/skia/src/gpu/graphite/Texture.h @@ -5,15 +5,15 @@ * found in the LICENSE file. */ -#ifndef skgpu_Texture_DEFINED -#define skgpu_Texture_DEFINED +#ifndef skgpu_graphite_Texture_DEFINED +#define skgpu_graphite_Texture_DEFINED -#include "experimental/graphite/include/TextureInfo.h" -#include "experimental/graphite/src/Resource.h" -#include "experimental/graphite/src/ResourceTypes.h" #include "include/core/SkSize.h" +#include "include/gpu/graphite/TextureInfo.h" +#include "src/gpu/graphite/Resource.h" +#include "src/gpu/graphite/ResourceTypes.h" -namespace skgpu { +namespace skgpu::graphite { class Texture : public Resource { public: @@ -28,14 +28,11 @@ class Texture : public Resource { protected: Texture(const Gpu*, SkISize dimensions, const TextureInfo& info, Ownership); - Ownership ownership() const { return fOwnership; } - private: SkISize fDimensions; TextureInfo fInfo; - Ownership fOwnership; }; -} // namepsace skgpu +} // namepsace skgpu::graphite -#endif // skgpu_Texture_DEFINED +#endif // skgpu_graphite_Texture_DEFINED diff --git a/third_party/skia/experimental/graphite/src/TextureInfo.cpp b/third_party/skia/src/gpu/graphite/TextureInfo.cpp similarity index 92% rename from third_party/skia/experimental/graphite/src/TextureInfo.cpp rename to third_party/skia/src/gpu/graphite/TextureInfo.cpp index 3f56338ab710..56a177220353 100644 --- a/third_party/skia/experimental/graphite/src/TextureInfo.cpp +++ b/third_party/skia/src/gpu/graphite/TextureInfo.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "experimental/graphite/include/TextureInfo.h" +#include "include/gpu/graphite/TextureInfo.h" -namespace skgpu { +namespace skgpu::graphite { TextureInfo& TextureInfo::operator=(const TextureInfo& that) { if (!that.isValid()) { @@ -61,5 +61,5 @@ bool TextureInfo::operator==(const TextureInfo& that) const { } } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/TextureProxy.cpp b/third_party/skia/src/gpu/graphite/TextureProxy.cpp similarity index 79% rename from third_party/skia/experimental/graphite/src/TextureProxy.cpp rename to third_party/skia/src/gpu/graphite/TextureProxy.cpp index f71fc03cfe6c..6270aa3fdec0 100644 --- a/third_party/skia/experimental/graphite/src/TextureProxy.cpp +++ b/third_party/skia/src/gpu/graphite/TextureProxy.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/TextureProxy.h" +#include "src/gpu/graphite/TextureProxy.h" -#include "experimental/graphite/src/ResourceProvider.h" -#include "experimental/graphite/src/Texture.h" +#include "src/gpu/graphite/ResourceProvider.h" +#include "src/gpu/graphite/Texture.h" -namespace skgpu { +namespace skgpu::graphite { TextureProxy::TextureProxy(SkISize dimensions, const TextureInfo& info) : fDimensions(dimensions), fInfo(info) {} @@ -26,7 +26,7 @@ bool TextureProxy::instantiate(ResourceProvider* resourceProvider) { if (fTexture) { return true; } - fTexture = resourceProvider->findOrCreateTexture(fDimensions, fInfo); + fTexture = resourceProvider->findOrCreateScratchTexture(fDimensions, fInfo); if (!fTexture) { return false; } @@ -49,4 +49,4 @@ void TextureProxy::validateTexture(const Texture* texture) { } #endif -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/TextureProxy.h b/third_party/skia/src/gpu/graphite/TextureProxy.h similarity index 80% rename from third_party/skia/experimental/graphite/src/TextureProxy.h rename to third_party/skia/src/gpu/graphite/TextureProxy.h index a3d95e537c75..e8acf683d117 100644 --- a/third_party/skia/experimental/graphite/src/TextureProxy.h +++ b/third_party/skia/src/gpu/graphite/TextureProxy.h @@ -5,14 +5,14 @@ * found in the LICENSE file. */ -#ifndef skgpu_TextureProxy_DEFINED -#define skgpu_TextureProxy_DEFINED +#ifndef skgpu_graphite_TextureProxy_DEFINED +#define skgpu_graphite_TextureProxy_DEFINED -#include "experimental/graphite/include/TextureInfo.h" #include "include/core/SkRefCnt.h" #include "include/core/SkSize.h" +#include "include/gpu/graphite/TextureInfo.h" -namespace skgpu { +namespace skgpu::graphite { class ResourceProvider; class Texture; @@ -45,6 +45,6 @@ class TextureProxy : public SkRefCnt { sk_sp fTexture; }; -} // namepsace skgpu +} // namepsace skgpu::graphite -#endif // skgpu_TextureProxy_DEFINED +#endif // skgpu_graphite_TextureProxy_DEFINED diff --git a/third_party/skia/experimental/graphite/src/TextureProxyView.h b/third_party/skia/src/gpu/graphite/TextureProxyView.h similarity index 91% rename from third_party/skia/experimental/graphite/src/TextureProxyView.h rename to third_party/skia/src/gpu/graphite/TextureProxyView.h index 8978ee998cb0..1506fd0fb22b 100644 --- a/third_party/skia/experimental/graphite/src/TextureProxyView.h +++ b/third_party/skia/src/gpu/graphite/TextureProxyView.h @@ -5,15 +5,16 @@ * found in the LICENSE file. */ -#ifndef skgpu_TextureProxyView_DEFINED -#define skgpu_TextureProxyView_DEFINED +#ifndef skgpu_graphite_TextureProxyView_DEFINED +#define skgpu_graphite_TextureProxyView_DEFINED -#include "experimental/graphite/include/GraphiteTypes.h" -#include "experimental/graphite/src/TextureProxy.h" +#include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" +#include "include/gpu/graphite/GraphiteTypes.h" #include "src/gpu/Swizzle.h" +#include "src/gpu/graphite/TextureProxy.h" -namespace skgpu { +namespace skgpu::graphite { class Recorder; @@ -107,7 +108,7 @@ class TextureProxyView { Swizzle fSwizzle; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif +#endif // skgpu_graphite_TextureProxyView_DEFINED diff --git a/third_party/skia/src/gpu/graphite/TextureUtils.cpp b/third_party/skia/src/gpu/graphite/TextureUtils.cpp new file mode 100644 index 000000000000..99f8beeab086 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/TextureUtils.cpp @@ -0,0 +1,171 @@ +/* + * 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/TextureUtils.h" + +#include "include/core/SkBitmap.h" +#include "src/core/SkMipmap.h" + +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/GraphiteTypes.h" +#include "include/gpu/graphite/Recorder.h" +#include "include/gpu/graphite/Recording.h" +#include "src/gpu/graphite/Buffer.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/CopyTask.h" +#include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/ResourceProvider.h" +#include "src/gpu/graphite/Texture.h" +#include "src/gpu/graphite/UploadTask.h" + +namespace skgpu::graphite { + +std::tuple MakeBitmapProxyView(Recorder* recorder, + const SkBitmap& bitmap, + Mipmapped mipmapped, + SkBudgeted budgeted) { + // Adjust params based on input and Caps + const skgpu::graphite::Caps* caps = recorder->priv().caps(); + SkColorType ct = bitmap.info().colorType(); + + if (bitmap.dimensions().area() <= 1) { + mipmapped = Mipmapped::kNo; + } + int mipLevelCount = (mipmapped == Mipmapped::kYes) ? + SkMipmap::ComputeLevelCount(bitmap.width(), bitmap.height()) + 1 : 1; + + auto textureInfo = caps->getDefaultSampledTextureInfo(ct, mipLevelCount, Protected::kNo, + Renderable::kNo); + if (!textureInfo.isValid()) { + ct = kRGBA_8888_SkColorType; + textureInfo = caps->getDefaultSampledTextureInfo(ct, mipLevelCount, Protected::kNo, + Renderable::kNo); + } + SkASSERT(textureInfo.isValid()); + + // Convert bitmap to texture colortype if necessary + SkBitmap bmpToUpload; + if (ct != bitmap.info().colorType()) { + if (!bmpToUpload.tryAllocPixels(bitmap.info().makeColorType(ct)) || + !bitmap.readPixels(bmpToUpload.pixmap())) { + return {}; + } + bmpToUpload.setImmutable(); + } else { + bmpToUpload = bitmap; + } + + if (!SkImageInfoIsValid(bmpToUpload.info())) { + return {}; + } + + // setup MipLevels + std::vector texels; + if (mipLevelCount == 1) { + texels.resize(mipLevelCount); + texels[0].fPixels = bmpToUpload.getPixels(); + texels[0].fRowBytes = bmpToUpload.rowBytes(); + } else { + sk_sp mipmaps(SkMipmap::Build(bmpToUpload.pixmap(), nullptr)); + if (!mipmaps) { + return {}; + } + + SkASSERT(mipLevelCount == mipmaps->countLevels() + 1); + texels.resize(mipLevelCount); + + texels[0].fPixels = bmpToUpload.getPixels(); + texels[0].fRowBytes = bmpToUpload.rowBytes(); + + for (int i = 1; i < mipLevelCount; ++i) { + SkMipmap::Level generatedMipLevel; + mipmaps->getLevel(i - 1, &generatedMipLevel); + texels[i].fPixels = generatedMipLevel.fPixmap.addr(); + texels[i].fRowBytes = generatedMipLevel.fPixmap.rowBytes(); + SkASSERT(texels[i].fPixels); + SkASSERT(generatedMipLevel.fPixmap.colorType() == bmpToUpload.colorType()); + } + } + + // Create proxy + sk_sp proxy(new TextureProxy(bmpToUpload.dimensions(), textureInfo)); + if (!proxy) { + return {}; + } + SkASSERT(caps->areColorTypeAndTextureInfoCompatible(ct, proxy->textureInfo())); + SkASSERT(mipmapped == Mipmapped::kNo || proxy->mipmapped() == Mipmapped::kYes); + + // Add UploadTask to Recorder + UploadInstance upload = UploadInstance::Make( + recorder, proxy, ct, texels, SkIRect::MakeSize(bmpToUpload.dimensions())); + recorder->priv().add(UploadTask::Make(upload)); + + Swizzle swizzle = caps->getReadSwizzle(ct, textureInfo); + return {{std::move(proxy), swizzle}, ct}; +} + +bool ReadPixelsHelper(FlushPendingWorkCallback&& flushPendingWork, + Context* context, + Recorder* recorder, + TextureProxy* srcProxy, + const SkImageInfo& dstInfo, + void* dstPixels, + size_t dstRowBytes, + int srcX, + int srcY) { + // TODO: Support more formats that we can read back into + if (dstInfo.colorType() != kRGBA_8888_SkColorType) { + return false; + } + + ResourceProvider* resourceProvider = recorder->priv().resourceProvider(); + if (!srcProxy->instantiate(resourceProvider)) { + return false; + } + sk_sp srcTexture = srcProxy->refTexture(); + SkASSERT(srcTexture); + + size_t size = dstRowBytes * dstInfo.height(); + sk_sp dstBuffer = resourceProvider->findOrCreateBuffer(size, + BufferType::kXferGpuToCpu, + PrioritizeGpuReads::kNo); + if (!dstBuffer) { + return false; + } + + SkIRect srcRect = SkIRect::MakeXYWH(srcX, srcY, dstInfo.width(), dstInfo.height()); + sk_sp task = + CopyTextureToBufferTask::Make(std::move(srcTexture), + srcRect, + dstBuffer, + /*bufferOffset=*/0, + dstRowBytes); + if (!task) { + return false; + } + + flushPendingWork(); + recorder->priv().add(std::move(task)); + + std::unique_ptr recording = recorder->snap(); + if (!recording) { + return false; + } + InsertRecordingInfo info; + info.fRecording = recording.get(); + context->insertRecording(info); + context->submit(SyncToCpu::kYes); + + void* mappedMemory = dstBuffer->map(); + + memcpy(dstPixels, mappedMemory, size); + + return true; +} + +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/TextureUtils.h b/third_party/skia/src/gpu/graphite/TextureUtils.h new file mode 100644 index 000000000000..5171e787312e --- /dev/null +++ b/third_party/skia/src/gpu/graphite/TextureUtils.h @@ -0,0 +1,38 @@ +/* + * 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_TextureUtils_DEFINED +#define skgpu_graphite_TextureUtils_DEFINED + +#include "src/gpu/graphite/TextureProxyView.h" + +#include + +class SkBitmap; +enum SkColorType : int; +struct SkImageInfo; + +namespace skgpu::graphite { + +class Context; + +// Create TextureProxyView and SkColorType pair using pixel data in SkBitmap, +// adding any necessary copy commands to Recorder +std::tuple MakeBitmapProxyView(Recorder* recorder, + const SkBitmap& bitmap, + Mipmapped mipmapped, + SkBudgeted budgeted); + +using FlushPendingWorkCallback = std::function; + +bool ReadPixelsHelper(FlushPendingWorkCallback&&, + Context* context, Recorder* recorder, TextureProxy* srcProxy, + const SkImageInfo& dstInfo, void* dstPixels, size_t dstRowBytes, + int srcX, int srcY); +} // namespace skgpu::graphite + +#endif // skgpu_graphite_TextureUtils_DEFINED diff --git a/third_party/skia/experimental/graphite/src/UniformManager.cpp b/third_party/skia/src/gpu/graphite/UniformManager.cpp similarity index 83% rename from third_party/skia/experimental/graphite/src/UniformManager.cpp rename to third_party/skia/src/gpu/graphite/UniformManager.cpp index 342d4934cb72..d4fd63e6c5cd 100644 --- a/third_party/skia/experimental/graphite/src/UniformManager.cpp +++ b/third_party/skia/src/gpu/graphite/UniformManager.cpp @@ -5,13 +5,14 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/UniformManager.h" +#include "src/gpu/graphite/UniformManager.h" -#include "experimental/graphite/src/DrawTypes.h" #include "include/core/SkMatrix.h" #include "include/private/SkHalf.h" #include "include/private/SkTemplates.h" +#include "src/core/SkPipelineData.h" #include "src/core/SkUniform.h" +#include "src/gpu/graphite/DrawTypes.h" // ensure that these types are the sizes the uniform data is expecting static_assert(sizeof(int32_t) == 4); @@ -19,12 +20,9 @@ static_assert(sizeof(float) == 4); static_assert(sizeof(int16_t) == 2); static_assert(sizeof(SkHalf) == 2); -namespace skgpu { +namespace skgpu::graphite { ////////////////////////////////////////////////////////////////////////////// - -UniformManager::UniformManager(Layout layout) : fLayout(layout) {} - template static constexpr size_t tight_vec_size(int vecLength) { return sizeof(BaseType) * vecLength; @@ -493,55 +491,123 @@ SkSLType UniformManager::getUniformTypeForLayout(SkSLType type) { return type; } -uint32_t UniformManager::writeUniforms(SkSpan uniforms, - const void** srcs, - uint32_t* offsets, - char *dst) { - decltype(&Writer::WriteUniform) write; - switch (fLayout) { +UniformManager::UniformManager(Layout layout) : fLayout(layout) { + + switch (layout) { case Layout::kStd140: - write = Writer::WriteUniform; + fWriteUniform = Writer::WriteUniform; break; case Layout::kStd430: - write = Writer::WriteUniform; + fWriteUniform = Writer::WriteUniform; break; case Layout::kMetal: - write = Writer::WriteUniform; + fWriteUniform = Writer::WriteUniform; break; } -#ifdef SK_DEBUG - uint32_t curUBOOffset = 0; - uint32_t curUBOMaxAlignment = 0; -#endif // SK_DEBUG + this->reset(); +} - uint32_t offset = 0; +SkUniformDataBlock UniformManager::peekData() const { + return SkUniformDataBlock(SkMakeSpan(fStorage.begin(), fStorage.count())); +} - for (int i = 0; i < (int) uniforms.size(); ++i) { - const SkUniform& u = uniforms[i]; - SkSLType uniformType = this->getUniformTypeForLayout(u.type()); +void UniformManager::reset() { +#ifdef SK_DEBUG + fCurUBOOffset = 0; + fCurUBOMaxAlignment = 0; +#endif + fOffset = 0; + fStorage.rewind(); +} #ifdef SK_DEBUG - uint32_t debugOffset = get_ubo_aligned_offset(&curUBOOffset, - &curUBOMaxAlignment, - uniformType, - u.count()); +void UniformManager::checkReset() const { + SkASSERT(fCurUBOOffset == 0); + SkASSERT(fCurUBOMaxAlignment == 0); + SkASSERT(fOffset == 0); + SkASSERT(fStorage.empty()); +} + +void UniformManager::setExpectedUniforms(SkSpan expectedUniforms) { + fExpectedUniforms = expectedUniforms; + fExpectedUniformIndex = 0; +} + +void UniformManager::checkExpected(SkSLType type, unsigned int count) { + SkASSERT(fExpectedUniforms.size()); + SkASSERT(fExpectedUniformIndex >= 0 && fExpectedUniformIndex < (int)fExpectedUniforms.size()); + + SkASSERT(fExpectedUniforms[fExpectedUniformIndex].type() == type); + SkASSERT((fExpectedUniforms[fExpectedUniformIndex].count() == 0 && count == 1) || + fExpectedUniforms[fExpectedUniformIndex].count() == count); + fExpectedUniformIndex++; + + SkSLType revisedType = this->getUniformTypeForLayout(type); + + uint32_t debugOffset = get_ubo_aligned_offset(&fCurUBOOffset, + &fCurUBOMaxAlignment, + revisedType, + count); + SkASSERT(debugOffset == fOffset); +} + +void UniformManager::doneWithExpectedUniforms() { + SkASSERT(fExpectedUniformIndex == static_cast(fExpectedUniforms.size())); + fExpectedUniforms = {}; +} #endif // SK_DEBUG - uint32_t bytesWritten = write(uniformType, - CType::kDefault, - dst ? &dst[offset] : nullptr, - u.count(), - srcs ? srcs[i] : nullptr); - SkASSERT(debugOffset == offset); +void UniformManager::write(SkSLType type, unsigned int count, const void* src) { + SkSLType revisedType = this->getUniformTypeForLayout(type); - if (offsets) { - offsets[i] = offset; - } - offset += bytesWritten; - } + uint32_t bytesNeeded = fWriteUniform(revisedType, CType::kDefault, nullptr, count, nullptr); + char* dst = fStorage.append(bytesNeeded); + uint32_t bytesWritten = fWriteUniform(revisedType, CType::kDefault, dst, count, src); + SkASSERT(bytesNeeded == bytesWritten); + fOffset += bytesWritten; +} + +void UniformManager::write(const SkColor4f* colors, int count) { + static const SkSLType kType = SkSLType::kFloat4; + SkDEBUGCODE(this->checkExpected(kType, count);) + this->write(kType, count, colors); +} + +void UniformManager::write(const SkPMColor4f* premulColors, int count) { + static const SkSLType kType = SkSLType::kFloat4; + SkDEBUGCODE(this->checkExpected(kType, count);) + this->write(kType, count, premulColors); +} + +void UniformManager::write(const SkRect& rect) { + static const SkSLType kType = SkSLType::kFloat4; + SkDEBUGCODE(this->checkExpected(kType, 1);) + this->write(kType, 1, &rect); +} + +void UniformManager::write(SkPoint point) { + static const SkSLType kType = SkSLType::kFloat2; + SkDEBUGCODE(this->checkExpected(kType, 1);) + this->write(kType, 1, &point); +} + +void UniformManager::write(const float* floats, int count) { + static const SkSLType kType = SkSLType::kFloat; + SkDEBUGCODE(this->checkExpected(kType, count);) + this->write(kType, count, floats); +} + +void UniformManager::write(int i) { + static const SkSLType kType = SkSLType::kInt; + SkDEBUGCODE(this->checkExpected(kType, 1);) + this->write(kType, 1, &i); +} - return offset; +void UniformManager::write(float2 v) { + static const SkSLType kType = SkSLType::kFloat2; + SkDEBUGCODE(this->checkExpected(kType, 1);) + this->write(kType, 1, &v); } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/UniformManager.h b/third_party/skia/src/gpu/graphite/UniformManager.h new file mode 100644 index 000000000000..16e1b645b269 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/UniformManager.h @@ -0,0 +1,86 @@ +/* + * 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 skgpu_UniformManager_DEFINED +#define skgpu_UniformManager_DEFINED + +#include "include/core/SkRefCnt.h" +#include "include/core/SkSpan.h" +#include "include/private/SkColorData.h" +#include "include/private/SkTDArray.h" +#include "src/core/SkSLTypeShared.h" +#include "src/gpu/graphite/geom/VectorTypes.h" + +struct SkPoint; +struct SkRect; +class SkUniform; +class SkUniformDataBlock; + +namespace skgpu::graphite { + +enum class CType : unsigned; + +enum class Layout { + kStd140, + kStd430, + kMetal, /** This is our own self-imposed layout we use for Metal. */ +}; + +// TODO: This is only used in the SkPipelineDataGatherer - maybe hide it better. +class UniformManager { +public: + UniformManager(Layout layout); + + SkUniformDataBlock peekData() const; + int size() const { return fStorage.count(); } + + void reset(); +#ifdef SK_DEBUG + void checkReset() const; + void setExpectedUniforms(SkSpan); + void checkExpected(SkSLType, unsigned int count); + void doneWithExpectedUniforms(); +#endif + + // TODO: do we need to add a 'makeArray' parameter to these? + void write(const SkColor4f*, int count); + void write(const SkPMColor4f*, int count); + void write(const SkPMColor4f& color) { this->write(&color, 1); } + void write(const SkRect&); + void write(SkPoint); + void write(const float*, int count); + void write(float f) { this->write(&f, 1); } + void write(int); + void write(float2); + +private: + SkSLType getUniformTypeForLayout(SkSLType type); + void write(SkSLType type, unsigned int count, const void* src); + + using WriteUniformFn = uint32_t(*)(SkSLType type, + CType ctype, + void *dest, + int n, + const void *src); + + WriteUniformFn fWriteUniform; + Layout fLayout; // TODO: eventually 'fLayout' will not need to be stored +#ifdef SK_DEBUG + uint32_t fCurUBOOffset; + uint32_t fCurUBOMaxAlignment; + + SkSpan fExpectedUniforms; + int fExpectedUniformIndex = 0; +#endif // SK_DEBUG + uint32_t fOffset; + + SkTDArray fStorage; +}; + +} // namespace skgpu + +#endif // skgpu_UniformManager_DEFINED diff --git a/third_party/skia/experimental/graphite/src/UploadTask.cpp b/third_party/skia/src/gpu/graphite/UploadTask.cpp similarity index 69% rename from third_party/skia/experimental/graphite/src/UploadTask.cpp rename to third_party/skia/src/gpu/graphite/UploadTask.cpp index 5e2629f9d039..f990581f3b09 100644 --- a/third_party/skia/experimental/graphite/src/UploadTask.cpp +++ b/third_party/skia/src/gpu/graphite/UploadTask.cpp @@ -5,39 +5,28 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/UploadTask.h" - -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/src/Buffer.h" -#include "experimental/graphite/src/Caps.h" -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/Log.h" -#include "experimental/graphite/src/RecorderPriv.h" -#include "experimental/graphite/src/ResourceProvider.h" -#include "experimental/graphite/src/Texture.h" -#include "experimental/graphite/src/TextureProxy.h" -#include "src/core/SkConvertPixels.h" - -namespace skgpu { +#include "src/gpu/graphite/UploadTask.h" -void UploadCommand::addCommand(ResourceProvider* resourceProvider, - CommandBuffer* commandBuffer) const { - if (!fTextureProxy) { - SKGPU_LOG_E("No texture proxy specified for UploadTask"); - return; - } - if (!fTextureProxy->instantiate(resourceProvider)) { - SKGPU_LOG_E("Could not instantiate texture proxy for UploadTask!"); - return; - } - - commandBuffer->copyBufferToTexture(std::move(fBuffer), - fTextureProxy->refTexture(), - fCopyData.data(), - fCopyData.size()); -} - -//--------------------------------------------------------------------------- +#include "include/gpu/graphite/Recorder.h" +#include "src/core/SkConvertPixels.h" +#include "src/core/SkTraceEvent.h" +#include "src/gpu/graphite/Buffer.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/Log.h" +#include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/ResourceProvider.h" +#include "src/gpu/graphite/Texture.h" +#include "src/gpu/graphite/TextureProxy.h" + +namespace skgpu::graphite { + +UploadInstance::UploadInstance(sk_sp buffer, + sk_sp textureProxy, + std::vector copyData) + : fBuffer(buffer) + , fTextureProxy(textureProxy) + , fCopyData(copyData) {} size_t compute_combined_buffer_size(int mipLevelCount, size_t bytesPerPixel, @@ -68,11 +57,11 @@ size_t compute_combined_buffer_size(int mipLevelCount, return combinedBufferSize; } -bool UploadList::appendUpload(Recorder* recorder, - sk_sp textureProxy, - SkColorType dataColorType, - const std::vector& levels, - const SkIRect& dstRect) { +UploadInstance UploadInstance::Make(Recorder* recorder, + sk_sp textureProxy, + SkColorType dataColorType, + const std::vector& levels, + const SkIRect& dstRect) { const Caps* caps = recorder->priv().caps(); SkASSERT(caps->isTexturable(textureProxy->textureInfo())); @@ -85,20 +74,20 @@ bool UploadList::appendUpload(Recorder* recorder, SkASSERT(mipLevelCount == 1 || mipLevelCount == textureProxy->textureInfo().numMipLevels()); if (dstRect.isEmpty()) { - return false; + return {}; } SkASSERT(caps->areColorTypeAndTextureInfoCompatible(dataColorType, textureProxy->textureInfo())); if (mipLevelCount == 1 && !levels[0].fPixels) { - return true; // no data to upload + return {}; // no data to upload } for (unsigned int i = 0; i < mipLevelCount; ++i) { // We do not allow any gaps in the mip data if (!levels[i].fPixels) { - return false; + return {}; } } @@ -118,7 +107,7 @@ bool UploadList::appendUpload(Recorder* recorder, std::vector copyData(mipLevelCount); if (!buffer) { - return false; + return {}; } char* bufferData = (char*) buffer->map(); // TODO: get from staging buffer instead size_t baseOffset = 0; @@ -149,26 +138,76 @@ bool UploadList::appendUpload(Recorder* recorder, buffer->unmap(); - fCommands.push_back({std::move(buffer), std::move(textureProxy), std::move(copyData)}); + ATRACE_ANDROID_FRAMEWORK("Upload %sTexture [%ux%u]", + mipLevelCount > 1 ? "MipMap " : "", + dstRect.width(), dstRect.height()); + + return {std::move(buffer), std::move(textureProxy), std::move(copyData)}; +} + +void UploadInstance::addCommand(ResourceProvider* resourceProvider, + CommandBuffer* commandBuffer) const { + if (!fTextureProxy) { + SKGPU_LOG_E("No texture proxy specified for UploadTask"); + return; + } + if (!fTextureProxy->instantiate(resourceProvider)) { + SKGPU_LOG_E("Could not instantiate texture proxy for UploadTask!"); + return; + } + + commandBuffer->copyBufferToTexture(std::move(fBuffer), + fTextureProxy->refTexture(), + fCopyData.data(), + fCopyData.size()); +} + +//--------------------------------------------------------------------------- +bool UploadList::recordUpload(Recorder* recorder, + sk_sp textureProxy, + SkColorType dataColorType, + const std::vector& levels, + const SkIRect& dstRect) { + UploadInstance instance = UploadInstance::Make(recorder, std::move(textureProxy), dataColorType, + levels, dstRect); + if (!instance.isValid()) { + return false; + } + + fInstances.push_back(instance); return true; } //--------------------------------------------------------------------------- sk_sp UploadTask::Make(UploadList* uploadList) { - return sk_sp(new UploadTask(std::move(uploadList->fCommands))); + SkASSERT(uploadList && uploadList->fInstances.size() > 0); + return sk_sp(new UploadTask(std::move(uploadList->fInstances))); } -UploadTask::UploadTask(std::vector commands) : fCommands(std::move(commands)) {} +sk_sp UploadTask::Make(const UploadInstance& instance) { + if (!instance.isValid()) { + return nullptr; + } + return sk_sp(new UploadTask(instance)); +} + +UploadTask::UploadTask(std::vector instances) : fInstances(std::move(instances)) {} + +UploadTask::UploadTask(const UploadInstance& instance) { + fInstances.push_back(instance); +} UploadTask::~UploadTask() {} -void UploadTask::addCommands(ResourceProvider* resourceProvider, +bool UploadTask::addCommands(ResourceProvider* resourceProvider, CommandBuffer* commandBuffer) { - for (unsigned int i = 0; i < fCommands.size(); ++i) { - fCommands[i].addCommand(resourceProvider, commandBuffer); + for (unsigned int i = 0; i < fInstances.size(); ++i) { + fInstances[i].addCommand(resourceProvider, commandBuffer); } + + return true; } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/UploadTask.h b/third_party/skia/src/gpu/graphite/UploadTask.h similarity index 57% rename from third_party/skia/experimental/graphite/src/UploadTask.h rename to third_party/skia/src/gpu/graphite/UploadTask.h index 0804f4f1172b..6bd64ac0c72a 100644 --- a/third_party/skia/experimental/graphite/src/UploadTask.h +++ b/third_party/skia/src/gpu/graphite/UploadTask.h @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#ifndef skgpu_UploadTask_DEFINED -#define skgpu_UploadTask_DEFINED +#ifndef skgpu_graphite_UploadTask_DEFINED +#define skgpu_graphite_UploadTask_DEFINED -#include "experimental/graphite/src/Task.h" +#include "src/gpu/graphite/Task.h" #include @@ -16,7 +16,7 @@ #include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" -namespace skgpu { +namespace skgpu::graphite { class Buffer; struct BufferTextureCopyData; @@ -31,12 +31,26 @@ struct MipLevel { }; /** - * An UploadCommand represents a single set of uploads from a buffer to texture that + * An UploadInstance represents a single set of uploads from a buffer to texture that * can be processed in a single command. */ -struct UploadCommand { +class UploadInstance { +public: + static UploadInstance Make(Recorder*, + sk_sp targetProxy, + SkColorType colorType, + const std::vector& levels, + const SkIRect& dstRect); + + bool isValid() const { return fBuffer != nullptr; } + + // Adds upload command to the given CommandBuffer void addCommand(ResourceProvider*, CommandBuffer*) const; +private: + UploadInstance() {} + UploadInstance(sk_sp, sk_sp, std::vector); + sk_sp fBuffer; sk_sp fTextureProxy; std::vector fCopyData; @@ -54,16 +68,18 @@ struct UploadCommand { */ class UploadList { public: - bool appendUpload(Recorder*, + bool recordUpload(Recorder*, sk_sp targetProxy, SkColorType colorType, const std::vector& levels, const SkIRect& dstRect); + int size() { return fInstances.size(); } + private: friend class UploadTask; - std::vector fCommands; + std::vector fInstances; }; /* @@ -75,17 +91,19 @@ class UploadList { class UploadTask final : public Task { public: static sk_sp Make(UploadList*); + static sk_sp Make(const UploadInstance&); ~UploadTask() override; - void addCommands(ResourceProvider*, CommandBuffer*) override; + bool addCommands(ResourceProvider*, CommandBuffer*) override; private: - UploadTask(std::vector); + UploadTask(std::vector); + UploadTask(const UploadInstance&); - std::vector fCommands; + std::vector fInstances; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_UploadTask_DEFINED +#endif // skgpu_graphite_UploadTask_DEFINED diff --git a/third_party/skia/experimental/graphite/src/geom/BUILD.bazel b/third_party/skia/src/gpu/graphite/geom/BUILD.bazel similarity index 92% rename from third_party/skia/experimental/graphite/src/geom/BUILD.bazel rename to third_party/skia/src/gpu/graphite/geom/BUILD.bazel index 3172287dae98..1c5ccd49bd5d 100644 --- a/third_party/skia/experimental/graphite/src/geom/BUILD.bazel +++ b/third_party/skia/src/gpu/graphite/geom/BUILD.bazel @@ -1,13 +1,15 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "BoundsManager_hdr", hdrs = ["BoundsManager.h"], visibility = ["//:__subpackages__"], deps = [ ":Rect_hdr", - "//experimental/graphite/src:DrawOrder_hdr", "//src/core:SkTBlockList_hdr", + "//src/gpu/graphite:DrawOrder_hdr", ], ) @@ -89,5 +91,8 @@ generated_cc_atom( name = "VectorTypes_hdr", hdrs = ["VectorTypes.h"], visibility = ["//:__subpackages__"], - deps = ["//experimental/graphite/include:GraphiteTypes_hdr"], + deps = [ + "//include/gpu/graphite:GraphiteTypes_hdr", + "//include/private:SkVx_hdr", + ], ) diff --git a/third_party/skia/experimental/graphite/src/geom/BoundsManager.h b/third_party/skia/src/gpu/graphite/geom/BoundsManager.h similarity index 93% rename from third_party/skia/experimental/graphite/src/geom/BoundsManager.h rename to third_party/skia/src/gpu/graphite/geom/BoundsManager.h index 9211ee0ac709..86b4d9e5c550 100644 --- a/third_party/skia/experimental/graphite/src/geom/BoundsManager.h +++ b/third_party/skia/src/gpu/graphite/geom/BoundsManager.h @@ -5,17 +5,17 @@ * found in the LICENSE file. */ -#ifndef skgpu_geom_BoundsManager_DEFINED -#define skgpu_geom_BoundsManager_DEFINED +#ifndef skgpu_graphite_geom_BoundsManager_DEFINED +#define skgpu_graphite_geom_BoundsManager_DEFINED -#include "experimental/graphite/src/DrawOrder.h" -#include "experimental/graphite/src/geom/Rect.h" +#include "src/gpu/graphite/DrawOrder.h" +#include "src/gpu/graphite/geom/Rect.h" #include "src/core/SkTBlockList.h" #include -namespace skgpu { +namespace skgpu::graphite { /** * BoundsManager is an acceleration structure for device-space related pixel bounds queries. @@ -120,6 +120,6 @@ class BruteForceBoundsManager : public BoundsManager { SkTBlockList fRects{16, SkBlockAllocator::GrowthPolicy::kFibonacci}; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_geom_BoundsManager_DEFINED +#endif // skgpu_graphite_geom_BoundsManager_DEFINED diff --git a/third_party/skia/experimental/graphite/src/geom/IntersectionTree.cpp b/third_party/skia/src/gpu/graphite/geom/IntersectionTree.cpp similarity index 98% rename from third_party/skia/experimental/graphite/src/geom/IntersectionTree.cpp rename to third_party/skia/src/gpu/graphite/geom/IntersectionTree.cpp index 23c13a0469c3..aca16fd2dc47 100644 --- a/third_party/skia/experimental/graphite/src/geom/IntersectionTree.cpp +++ b/third_party/skia/src/gpu/graphite/geom/IntersectionTree.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/geom/IntersectionTree.h" +#include "src/gpu/graphite/geom/IntersectionTree.h" #include "include/private/SkTPin.h" #include #include -namespace skgpu { +namespace skgpu::graphite { // BSP node. Space is partitioned by an either vertical or horizontal line. Note that if a rect // straddles the partition line, it will need to go on both sides of the tree. @@ -207,4 +207,4 @@ IntersectionTree::IntersectionTree() static_assert(kLeafNodeSize == sizeof(LeafNode)); } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/geom/IntersectionTree.h b/third_party/skia/src/gpu/graphite/geom/IntersectionTree.h similarity index 84% rename from third_party/skia/experimental/graphite/src/geom/IntersectionTree.h rename to third_party/skia/src/gpu/graphite/geom/IntersectionTree.h index a10034df1e1e..31a25ae5fe9c 100644 --- a/third_party/skia/experimental/graphite/src/geom/IntersectionTree.h +++ b/third_party/skia/src/gpu/graphite/geom/IntersectionTree.h @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#ifndef skgpu_geom_IntersectionTree_DEFINED -#define skgpu_geom_IntersectionTree_DEFINED +#ifndef skgpu_graphite_geom_IntersectionTree_DEFINED +#define skgpu_graphite_geom_IntersectionTree_DEFINED -#include "experimental/graphite/src/geom/Rect.h" #include "src/core/SkArenaAlloc.h" +#include "src/gpu/graphite/geom/Rect.h" -namespace skgpu { +namespace skgpu::graphite { /** * Maintains a collection of non-overlapping rectangles. @@ -59,6 +59,6 @@ class IntersectionTree { Node* fRoot; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_geom_IntersectionTree_DEFINED +#endif // skgpu_graphite_geom_IntersectionTree_DEFINED diff --git a/third_party/skia/experimental/graphite/src/geom/Rect.h b/third_party/skia/src/gpu/graphite/geom/Rect.h similarity index 93% rename from third_party/skia/experimental/graphite/src/geom/Rect.h rename to third_party/skia/src/gpu/graphite/geom/Rect.h index a063fd617f30..6b94f7b62c28 100644 --- a/third_party/skia/experimental/graphite/src/geom/Rect.h +++ b/third_party/skia/src/gpu/graphite/geom/Rect.h @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#ifndef skgpu_geom_Rect_DEFINED -#define skgpu_geom_Rect_DEFINED +#ifndef skgpu_graphite_geom_Rect_DEFINED +#define skgpu_graphite_geom_Rect_DEFINED -#include "experimental/graphite/src/geom/VectorTypes.h" #include "include/core/SkRect.h" +#include "src/gpu/graphite/geom/VectorTypes.h" -namespace skgpu { +namespace skgpu::graphite { #define AI SK_ALWAYS_INLINE @@ -82,11 +82,8 @@ class Rect { AI void setTopLeft(float2 topLeft) { fVals.xy() = topLeft; } AI void setBotRight(float2 botRight) { fVals.zw() = -botRight; } - AI SkRect asSkRect() const { - SkRect r; - this->ltrb().store(&r); - return r; - } + AI SkRect asSkRect() const { return skvx::bit_pun(this->ltrb()); } + AI SkIRect asSkIRect() const { return skvx::bit_pun(skvx::cast(this->ltrb())); } AI bool isEmptyNegativeOrNaN() const { return !all(fVals.xy() + fVals.zw() < 0); // !([l-r, r-b] < 0) == ([w, h] <= 0) @@ -152,6 +149,6 @@ class Rect { #undef AI -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_geom_Rect_DEFINED +#endif // skgpu_graphite_geom_Rect_DEFINED diff --git a/third_party/skia/experimental/graphite/src/geom/Shape.cpp b/third_party/skia/src/gpu/graphite/geom/Shape.cpp similarity index 97% rename from third_party/skia/experimental/graphite/src/geom/Shape.cpp rename to third_party/skia/src/gpu/graphite/geom/Shape.cpp index 07646b4f7f44..7a6ae3b8c4a8 100644 --- a/third_party/skia/experimental/graphite/src/geom/Shape.cpp +++ b/third_party/skia/src/gpu/graphite/geom/Shape.cpp @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/geom/Shape.h" +#include "src/gpu/graphite/geom/Shape.h" #include "src/core/SkPathPriv.h" #include "src/core/SkRRectPriv.h" #include "src/utils/SkPolyUtils.h" -namespace skgpu { +namespace skgpu::graphite { Shape& Shape::operator=(const Shape& shape) { switch (shape.type()) { @@ -97,4 +97,4 @@ SkPath Shape::asPath() const { return builder.detach(); } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/geom/Shape.h b/third_party/skia/src/gpu/graphite/geom/Shape.h similarity index 96% rename from third_party/skia/experimental/graphite/src/geom/Shape.h rename to third_party/skia/src/gpu/graphite/geom/Shape.h index d3c2bc0ed13c..2b58ed54f514 100644 --- a/third_party/skia/experimental/graphite/src/geom/Shape.h +++ b/third_party/skia/src/gpu/graphite/geom/Shape.h @@ -5,19 +5,19 @@ * found in the LICENSE file. */ -#ifndef skgpu_geom_Shape_DEFINED -#define skgpu_geom_Shape_DEFINED +#ifndef skgpu_graphite_geom_Shape_DEFINED +#define skgpu_graphite_geom_Shape_DEFINED #include "include/core/SkM44.h" #include "include/core/SkPath.h" #include "include/core/SkRRect.h" #include "include/core/SkRect.h" -#include "experimental/graphite/src/geom/Rect.h" +#include "src/gpu/graphite/geom/Rect.h" #include -namespace skgpu { +namespace skgpu::graphite { /** * Shape is effectively a std::variant over different geometric shapes, with the most complex @@ -170,6 +170,6 @@ class Shape { bool fInverted = false; }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_geom_Shape_DEFINED +#endif // skgpu_graphite_geom_Shape_DEFINED diff --git a/third_party/skia/src/gpu/graphite/geom/Transform.cpp b/third_party/skia/src/gpu/graphite/geom/Transform.cpp new file mode 100644 index 000000000000..aa3b7baa6d6a --- /dev/null +++ b/third_party/skia/src/gpu/graphite/geom/Transform.cpp @@ -0,0 +1,135 @@ +/* + * 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 "src/gpu/graphite/geom/Transform_graphite.h" + +#include "src/core/SkMatrixPriv.h" +#include "src/gpu/graphite/geom/Rect.h" +#include "src/gpu/graphite/geom/VectorTypes.h" + +namespace skgpu::graphite { + +namespace { + +Rect map_rect(const SkM44& m, const Rect& r) { + // TODO: Can Rect's (l,t,-r,-b) structure be used to optimize mapRect? + // TODO: Can take this opportunity to implement 100% accurate perspective plane clipping since + // it doesn't have to match raster/ganesh rendering behavior. + return SkMatrixPriv::MapRect(m, r.asSkRect()); +} + +void map_points(const SkM44& m, const SkV4* in, SkV4* out, int count) { + // TODO: These maybe should go into SkM44, since bulk point mapping seems generally useful + float4 c0 = float4::Load(SkMatrixPriv::M44ColMajor(m) + 0); + float4 c1 = float4::Load(SkMatrixPriv::M44ColMajor(m) + 4); + float4 c2 = float4::Load(SkMatrixPriv::M44ColMajor(m) + 8); + float4 c3 = float4::Load(SkMatrixPriv::M44ColMajor(m) + 12); + + for (int i = 0; i < count; ++i) { + float4 p = (c0 * in[i].x) + (c1 * in[i].y) + (c2 * in[i].z) + (c3 * in[i].w); + p.store(out + i); + } +} + +Transform::Type get_matrix_info(const SkM44& m, SkM44* inverse, SkV2* scale) { + // First compute the inverse. + // TODO: Alternatively we could compute type first and have type-specific inverses, but it seems + // useful to ensure any non-invalid matrix returns true from SkM44::invert. + if (!m.invert(inverse)) { + *scale = {1.f, 1.f}; + return Transform::Type::kInvalid; + } + + static constexpr SkV4 kNoPerspective = {0.f, 0.f, 0.f, 1.f}; + static constexpr SkV4 kNoZ = {0.f, 0.f, 1.f, 0.f}; + if (m.row(3) != kNoPerspective || m.col(2) != kNoZ || m.row(2) != kNoZ) { + // TODO: Use SkMatrixPriv::DifferentialAreaScale, but we need a representative point then. + // Or something like lengths of upper 2x2 divided by w? + *scale = {1.f, 1.f}; + return Transform::Type::kProjection; + } + + // [sx kx 0 tx] + // At this point, we know that m is of the form [ky sy 0 ty] + // [0 0 1 0 ] + // [0 0 0 1 ] + // Other than kIdentity, none of the types depend on (tx, ty). The remaining types are + // identified by considering the upper 2x2. + float sx = m.rc(0, 0); + float sy = m.rc(1, 1); + float kx = m.rc(0, 1); + float ky = m.rc(1, 0); + if (kx == 0.f && ky == 0.f) { + // 2x2 is a diagonal matrix + *scale = {std::abs(sx), std::abs(sy)}; + if (sx == 1.f && sy == 1.f && m.rc(0, 3) == 0.f && m.rc(1, 3) == 0.f) { + return Transform::Type::kIdentity; + } else if (sx > 0.f && sy > 0.f) { + return Transform::Type::kSimpleRectStaysRect; + } else { + // We don't need to worry about sx or sy being 0 here because that would imply the + // matrix wasn't invertible and that was already tested. + SkASSERT(sx != 0.f && sy != 0.f); + return Transform::Type::kRectStaysRect; + } + } else if (sx == 0.f && sy == 0.f) { + // 2x2 is an anti-diagonal matrix and represents a 90 or 270 degree rotation plus optional + // scale and translate. Similar to before, kx and ky can't be 0 or m wouldn't be invertible. + SkASSERT(kx != 0.f && ky != 0.f); + *scale = {std::abs(ky), std::abs(kx)}; + return Transform::Type::kRectStaysRect; + } else { + *scale = {SkV2{sx, ky}.length(), SkV2{kx, sy}.length()}; + return Transform::Type::kAffine; + } +} + +} // anonymous namespace + +Transform::Transform(const SkM44& m) : fM(m) { + fType = get_matrix_info(m, &fInvM, &fScale); +} + +bool Transform::operator==(const Transform& t) const { + // Checking fM should be sufficient as all other values are computed from it. + SkASSERT(fM != t.fM || (fInvM == t.fInvM && fType == t.fType && fScale == t.fScale)); + return fM == t.fM; +} + +Rect Transform::mapRect(const Rect& rect) const { return map_rect(fM, rect); } +Rect Transform::inverseMapRect(const Rect& rect) const { return map_rect(fInvM, rect); } + +void Transform::mapPoints(const Rect& localRect, SkV4 deviceOut[4]) const { + SkV2 localCorners[4] = {{localRect.left(), localRect.top()}, + {localRect.right(), localRect.top()}, + {localRect.right(), localRect.bot()}, + {localRect.left(), localRect.bot()}}; + this->mapPoints(localCorners, deviceOut, 4); +} + +void Transform::mapPoints(const SkV2* localIn, SkV4* deviceOut, int count) const { + // TODO: These maybe should go into SkM44, since bulk point mapping seems generally useful + float4 c0 = float4::Load(SkMatrixPriv::M44ColMajor(fM) + 0); + float4 c1 = float4::Load(SkMatrixPriv::M44ColMajor(fM) + 4); + // skip c2 since localIn's z is assumed to be 0 + float4 c3 = float4::Load(SkMatrixPriv::M44ColMajor(fM) + 12); + + for (int i = 0; i < count; ++i) { + float4 p = c0 * localIn[i].x + c1 * localIn[i].y /* + c2*0.f */ + c3 /* *1.f */; + p.store(deviceOut + i); + } +} + +void Transform::mapPoints(const SkV4* localIn, SkV4* deviceOut, int count) const { + return map_points(fM, localIn, deviceOut, count); +} + +void Transform::inverseMapPoints(const SkV4* deviceIn, SkV4* localOut, int count) const { + return map_points(fInvM, deviceIn, localOut, count); +} + +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/geom/Transform_graphite.h b/third_party/skia/src/gpu/graphite/geom/Transform_graphite.h similarity index 80% rename from third_party/skia/experimental/graphite/src/geom/Transform_graphite.h rename to third_party/skia/src/gpu/graphite/geom/Transform_graphite.h index 6cdc3acb3b08..dc1dddea4cc2 100644 --- a/third_party/skia/experimental/graphite/src/geom/Transform_graphite.h +++ b/third_party/skia/src/gpu/graphite/geom/Transform_graphite.h @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#ifndef skgpu_geom_Transform_DEFINED -#define skgpu_geom_Transform_DEFINED +#ifndef skgpu_graphite_geom_Transform_DEFINED +#define skgpu_graphite_geom_Transform_DEFINED #include "include/core/SkM44.h" -namespace skgpu { +namespace skgpu::graphite { class Rect; @@ -33,9 +33,10 @@ class Transform { // The matrix transform may have skew or rotation, so a mapped rect does not fill space, // but there is no need to perform perspective division or w-plane clipping. kAffine, - // The matrix includes perspective, so care must be taken when w is less than or near 0, - // and perspective division and interpolation are needed for correct rendering. - kPerspective, + // The matrix includes perspective or modifies Z and requires further projection to 2D, + // so care must be taken when w is less than or near 0, and homogeneous division and + // perspective-correct interpolation are needed when rendering. + kProjection, // The matrix is not invertible or not finite, so should not be used to draw. kInvalid, }; @@ -66,6 +67,9 @@ class Transform { void mapPoints(const Rect& localRect, SkV4 deviceOut[4]) const; void mapPoints(const SkV2* localIn, SkV4* deviceOut, int count) const; + void mapPoints(const SkV4* localIn, SkV4* deviceOut, int count) const; + void inverseMapPoints(const SkV4* deviceIn, SkV4* localOut, int count) const; + private: SkM44 fM; SkM44 fInvM; // M^-1 @@ -75,6 +79,6 @@ class Transform { SkV2 fScale; // always > 0 }; -} // namespace skgpu +} // namespace skgpu::graphite -#endif // skgpu_geom_Transform_DEFINED +#endif // skgpu_graphite_geom_Transform_DEFINED diff --git a/third_party/skia/experimental/graphite/src/geom/VectorTypes.h b/third_party/skia/src/gpu/graphite/geom/VectorTypes.h similarity index 62% rename from third_party/skia/experimental/graphite/src/geom/VectorTypes.h rename to third_party/skia/src/gpu/graphite/geom/VectorTypes.h index c0b35a9f6112..5ff6b8714d7a 100644 --- a/third_party/skia/experimental/graphite/src/geom/VectorTypes.h +++ b/third_party/skia/src/gpu/graphite/geom/VectorTypes.h @@ -5,12 +5,13 @@ * found in the LICENSE file. */ -#ifndef skgpu_geom_VectorTypes_DEFINED -#define skgpu_geom_VectorTypes_DEFINED +#ifndef skgpu_graphite_geom_VectorTypes_DEFINED +#define skgpu_graphite_geom_VectorTypes_DEFINED -#include "experimental/graphite/include/GraphiteTypes.h" +#include "include/gpu/graphite/GraphiteTypes.h" +#include "include/private/SkVx.h" -namespace skgpu { +namespace skgpu::graphite { // Use familiar type names from SkSL. template using vec = skvx::Vec; @@ -25,7 +26,7 @@ template using uvec = skvx::Vec; using uint2 = uvec<2>; using uint4 = uvec<4>; -}; // namespace skgpu +}; // namespace skgpu::graphite -#endif // skgpu_geom_VectorTypes_DEFINED +#endif // skgpu_graphite_geom_VectorTypes_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/BUILD.bazel b/third_party/skia/src/gpu/graphite/mtl/BUILD.bazel similarity index 74% rename from third_party/skia/experimental/graphite/src/mtl/BUILD.bazel rename to third_party/skia/src/gpu/graphite/mtl/BUILD.bazel index b9904aec3cc4..f76f5bf93698 100644 --- a/third_party/skia/experimental/graphite/src/mtl/BUILD.bazel +++ b/third_party/skia/src/gpu/graphite/mtl/BUILD.bazel @@ -1,14 +1,16 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "MtlBlitCommandEncoder_hdr", hdrs = ["MtlBlitCommandEncoder.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src:Resource_hdr", "//include/core:SkRect_hdr", "//include/core:SkRefCnt_hdr", "//include/ports:SkCFObject_hdr", + "//src/gpu/graphite:Resource_hdr", ], ) @@ -17,9 +19,9 @@ generated_cc_atom( hdrs = ["MtlBuffer.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include/mtl:MtlTypes_hdr", - "//experimental/graphite/src:Buffer_hdr", "//include/core:SkRefCnt_hdr", + "//include/gpu/graphite/mtl:MtlTypes_hdr", + "//src/gpu/graphite:Buffer_hdr", ], ) @@ -27,7 +29,7 @@ generated_cc_atom( name = "MtlCaps_hdr", hdrs = ["MtlCaps.h"], visibility = ["//:__subpackages__"], - deps = ["//experimental/graphite/src:Caps_hdr"], + deps = ["//src/gpu/graphite:Caps_hdr"], ) generated_cc_atom( @@ -35,11 +37,11 @@ generated_cc_atom( hdrs = ["MtlCommandBuffer.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src:CommandBuffer_hdr", - "//experimental/graphite/src:GpuWorkSubmission_hdr", - "//experimental/graphite/src:Log_hdr", "//include/core:SkTypes_hdr", "//include/ports:SkCFObject_hdr", + "//src/gpu/graphite:CommandBuffer_hdr", + "//src/gpu/graphite:GpuWorkSubmission_hdr", + "//src/gpu/graphite:Log_hdr", ], ) @@ -49,9 +51,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":MtlCaps_hdr", - "//experimental/graphite/include/mtl:MtlBackendContext_hdr", - "//experimental/graphite/src:Gpu_hdr", + "//include/gpu/graphite/mtl:MtlBackendContext_hdr", "//include/ports:SkCFObject_hdr", + "//src/gpu/graphite:Gpu_hdr", ], ) @@ -60,9 +62,9 @@ generated_cc_atom( hdrs = ["MtlGraphicsPipeline.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src:GraphicsPipeline_hdr", "//include/core:SkRefCnt_hdr", "//include/ports:SkCFObject_hdr", + "//src/gpu/graphite:GraphicsPipeline_hdr", ], ) @@ -71,9 +73,9 @@ generated_cc_atom( hdrs = ["MtlRenderCommandEncoder.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src:Resource_hdr", "//include/core:SkRefCnt_hdr", "//include/ports:SkCFObject_hdr", + "//src/gpu/graphite:Resource_hdr", ], ) @@ -82,9 +84,9 @@ generated_cc_atom( hdrs = ["MtlResourceProvider.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src:DrawTypes_hdr", - "//experimental/graphite/src:ResourceProvider_hdr", "//include/private:SkTHash_hdr", + "//src/gpu/graphite:DrawTypes_hdr", + "//src/gpu/graphite:ResourceProvider_hdr", ], ) @@ -93,8 +95,8 @@ generated_cc_atom( hdrs = ["MtlTexture.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src:Texture_hdr", "//include/core:SkRefCnt_hdr", + "//src/gpu/graphite:Texture_hdr", ], ) @@ -110,9 +112,9 @@ generated_cc_atom( hdrs = ["MtlUtils.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src:ResourceTypes_hdr", "//include/core:SkImageInfo_hdr", "//include/ports:SkCFObject_hdr", + "//src/gpu/graphite:ResourceTypes_hdr", "//src/sksl/ir:SkSLProgram_hdr", ], ) @@ -122,9 +124,9 @@ generated_cc_atom( hdrs = ["MtlSampler.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src:Sampler_hdr", "//include/core:SkRefCnt_hdr", "//include/core:SkTileMode_hdr", "//include/ports:SkCFObject_hdr", + "//src/gpu/graphite:Sampler_hdr", ], ) diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlBlitCommandEncoder.h b/third_party/skia/src/gpu/graphite/mtl/MtlBlitCommandEncoder.h similarity index 76% rename from third_party/skia/experimental/graphite/src/mtl/MtlBlitCommandEncoder.h rename to third_party/skia/src/gpu/graphite/mtl/MtlBlitCommandEncoder.h index 92dac6f22cc0..c1d59c00ff84 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlBlitCommandEncoder.h +++ b/third_party/skia/src/gpu/graphite/mtl/MtlBlitCommandEncoder.h @@ -5,29 +5,29 @@ * found in the LICENSE file. */ -#ifndef skgpu_MtlBlitCommandEncoder_DEFINED -#define skgpu_MtlBlitCommandEncoder_DEFINED +#ifndef skgpu_graphite_MtlBlitCommandEncoder_DEFINED +#define skgpu_graphite_MtlBlitCommandEncoder_DEFINED -#include "experimental/graphite/src/Resource.h" #include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" #include "include/ports/SkCFObject.h" +#include "src/gpu/graphite/Resource.h" #import -namespace skgpu::mtl { +namespace skgpu::graphite { /** - * Wraps a MTLBlitCommandEncoder object + * Wraps a MTLMtlBlitCommandEncoder object */ -class BlitCommandEncoder : public Resource { +class MtlBlitCommandEncoder : public Resource { public: - static sk_sp Make(const skgpu::Gpu* gpu, - id commandBuffer) { + static sk_sp Make(const skgpu::graphite::Gpu* gpu, + id commandBuffer) { // Adding a retain here to keep our own ref separate from the autorelease pool sk_cfp> encoder = sk_ret_cfp>([commandBuffer blitCommandEncoder]); - return sk_sp(new BlitCommandEncoder(gpu, std::move(encoder))); + return sk_sp(new MtlBlitCommandEncoder(gpu, std::move(encoder))); } void pushDebugGroup(NSString* string) { @@ -80,16 +80,17 @@ class BlitCommandEncoder : public Resource { } private: - BlitCommandEncoder(const skgpu::Gpu* gpu, sk_cfp> encoder) - : Resource(gpu), fCommandEncoder(std::move(encoder)) {} + MtlBlitCommandEncoder(const skgpu::graphite::Gpu* gpu, + sk_cfp> encoder) + : Resource(gpu, Ownership::kOwned), fCommandEncoder(std::move(encoder)) {} - void onFreeGpuData() override { + void freeGpuData() override { fCommandEncoder.reset(); } sk_cfp> fCommandEncoder; }; -} // namespace skgpu::mtl +} // namespace skgpu::graphite -#endif // skgpu_MtlBlitCommandEncoder_DEFINED +#endif // skgpu_graphite_MtlBlitCommandEncoder_DEFINED diff --git a/third_party/skia/src/gpu/graphite/mtl/MtlBuffer.h b/third_party/skia/src/gpu/graphite/mtl/MtlBuffer.h new file mode 100644 index 000000000000..9ccf5d8db7f6 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/mtl/MtlBuffer.h @@ -0,0 +1,41 @@ +/* + * Copyright 2021 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef skgpu_graphite_MtlBuffer_DEFINED +#define skgpu_graphite_MtlBuffer_DEFINED + +#include "include/core/SkRefCnt.h" +#include "include/gpu/graphite/mtl/MtlTypes.h" +#include "src/gpu/graphite/Buffer.h" + +#import + +namespace skgpu::graphite { +class MtlGpu; + +class MtlBuffer : public Buffer { +public: + static sk_sp Make(const MtlGpu*, size_t size, BufferType type, PrioritizeGpuReads); + + id mtlBuffer() const { return fBuffer.get(); } + +private: + MtlBuffer(const MtlGpu*, size_t size, BufferType type, PrioritizeGpuReads, + sk_cfp>); + + void onMap() override; + void onUnmap() override; + + void freeGpuData() override; + + sk_cfp> fBuffer; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_MtlBuffer_DEFINED + diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlBuffer.mm b/third_party/skia/src/gpu/graphite/mtl/MtlBuffer.mm similarity index 66% rename from third_party/skia/experimental/graphite/src/mtl/MtlBuffer.mm rename to third_party/skia/src/gpu/graphite/mtl/MtlBuffer.mm index 226429482308..338471b0c161 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlBuffer.mm +++ b/third_party/skia/src/gpu/graphite/mtl/MtlBuffer.mm @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/mtl/MtlBuffer.h" +#include "src/gpu/graphite/mtl/MtlBuffer.h" -#include "experimental/graphite/src/mtl/MtlGpu.h" +#include "src/gpu/graphite/mtl/MtlGpu.h" -namespace skgpu::mtl { +namespace skgpu::graphite { #ifdef SK_ENABLE_MTL_DEBUG_INFO NSString* kBufferTypeNames[kBufferTypeCount] = { @@ -21,15 +21,15 @@ }; #endif -sk_sp Buffer::Make(const Gpu* gpu, - size_t size, - BufferType type, - PrioritizeGpuReads prioritizeGpuReads) { +sk_sp MtlBuffer::Make(const MtlGpu* gpu, + size_t size, + BufferType type, + PrioritizeGpuReads prioritizeGpuReads) { if (size <= 0) { return nullptr; } - const Caps& mtlCaps = gpu->mtlCaps(); + const MtlCaps& mtlCaps = gpu->mtlCaps(); NSUInteger options = 0; if (@available(macOS 10.11, iOS 9.0, *)) { @@ -55,18 +55,18 @@ (*buffer).label = kBufferTypeNames[(int)type]; #endif - return sk_sp(new Buffer(gpu, size, type, prioritizeGpuReads, std::move(buffer))); + return sk_sp(new MtlBuffer(gpu, size, type, prioritizeGpuReads, std::move(buffer))); } -Buffer::Buffer(const Gpu* gpu, - size_t size, - BufferType type, - PrioritizeGpuReads prioritizeGpuReads, - sk_cfp> buffer) - : skgpu::Buffer(gpu, size, type, prioritizeGpuReads) +MtlBuffer::MtlBuffer(const MtlGpu* gpu, + size_t size, + BufferType type, + PrioritizeGpuReads prioritizeGpuReads, + sk_cfp> buffer) + : Buffer(gpu, size, type, prioritizeGpuReads) , fBuffer(std::move(buffer)) {} -void Buffer::onMap() { +void MtlBuffer::onMap() { SkASSERT(fBuffer); SkASSERT(!this->isMapped()); @@ -77,7 +77,7 @@ fMapPtr = static_cast((*fBuffer).contents); } -void Buffer::onUnmap() { +void MtlBuffer::onUnmap() { SkASSERT(fBuffer); SkASSERT(this->isMapped()); #ifdef SK_BUILD_FOR_MAC @@ -88,9 +88,9 @@ fMapPtr = nullptr; } -void Buffer::onFreeGpuData() { +void MtlBuffer::freeGpuData() { fBuffer.reset(); } -} // namespace skgpu::mtl +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/mtl/MtlCaps.h b/third_party/skia/src/gpu/graphite/mtl/MtlCaps.h new file mode 100644 index 000000000000..18577ae6f106 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/mtl/MtlCaps.h @@ -0,0 +1,128 @@ +/* + * 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 skgpu_graphite_MtlCaps_DEFINED +#define skgpu_graphite_MtlCaps_DEFINED + +#include + +#import + +#include "src/gpu/graphite/Caps.h" + +namespace skgpu::graphite { + +class MtlCaps final : public skgpu::graphite::Caps { +public: + MtlCaps(const id); + ~MtlCaps() override {} + + TextureInfo getDefaultSampledTextureInfo(SkColorType, + uint32_t levelCount, + Protected, + Renderable) const override; + + TextureInfo getDefaultMSAATextureInfo(SkColorType, + uint32_t sampleCount, + Protected) const override; + + TextureInfo getDefaultDepthStencilTextureInfo(Mask, + uint32_t sampleCount, + Protected) const override; + + UniqueKey makeGraphicsPipelineKey(const GraphicsPipelineDesc&, + const RenderPassDesc&) const override; + + bool isMac() const { return fGPUFamily == GPUFamily::kMac; } + bool isApple()const { return fGPUFamily == GPUFamily::kApple; } + + size_t getMinBufferAlignment() const { return this->isMac() ? 4 : 1; } + + bool isRenderable(const TextureInfo&) const override; + + void buildKeyForTexture(SkISize dimensions, + const TextureInfo&, + ResourceType, + Shareable, + GraphiteResourceKey*) const override; + +private: + void initGPUFamily(const id); + + void initCaps(const id); + void initShaderCaps(); + void initFormatTable(); + + enum class GPUFamily { + kMac, + kApple, + }; + static bool GetGPUFamily(id device, GPUFamily* gpuFamily, int* group); + static bool GetGPUFamilyFromFeatureSet(id device, GPUFamily* gpuFamily, + int* group); + + MTLPixelFormat getFormatFromColorType(SkColorType colorType) const { + int idx = static_cast(colorType); + return fColorTypeToFormatTable[idx]; + } + + const ColorTypeInfo* getColorTypeInfo(SkColorType, const TextureInfo&) const override; + + bool onIsTexturable(const TextureInfo&) const override; + bool isTexturable(MTLPixelFormat) const; + bool isRenderable(MTLPixelFormat, uint32_t numSamples) const; + uint32_t maxRenderTargetSampleCount(MTLPixelFormat) const; + + size_t getTransferBufferAlignment(size_t bytesPerPixel) const override; + + struct FormatInfo { + uint32_t colorTypeFlags(SkColorType colorType) const { + for (int i = 0; i < fColorTypeInfoCount; ++i) { + if (fColorTypeInfos[i].fColorType == colorType) { + return fColorTypeInfos[i].fFlags; + } + } + return 0; + } + + enum { + kTexturable_Flag = 0x1, + kRenderable_Flag = 0x2, // Color attachment and blendable + kMSAA_Flag = 0x4, + kResolve_Flag = 0x8, + }; + static const uint16_t kAllFlags = kTexturable_Flag | kRenderable_Flag | + kMSAA_Flag | kResolve_Flag; + + uint16_t fFlags = 0; + + std::unique_ptr fColorTypeInfos; + int fColorTypeInfoCount = 0; + }; + inline static constexpr size_t kNumMtlFormats = 8; + + static size_t GetFormatIndex(MTLPixelFormat); + FormatInfo fFormatTable[kNumMtlFormats]; + + const FormatInfo& getFormatInfo(const MTLPixelFormat pixelFormat) const { + size_t index = GetFormatIndex(pixelFormat); + return fFormatTable[index]; + } + + MTLPixelFormat fColorTypeToFormatTable[kSkColorTypeCnt]; + void setColorType(SkColorType, std::initializer_list formats); + + // A vector of the viable sample counts (e.g., { 1, 2, 4, 8 }). + std::vector fColorSampleCounts; + + GPUFamily fGPUFamily; + int fFamilyGroup; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_MtlCaps_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlCaps.mm b/third_party/skia/src/gpu/graphite/mtl/MtlCaps.mm similarity index 52% rename from third_party/skia/experimental/graphite/src/mtl/MtlCaps.mm rename to third_party/skia/src/gpu/graphite/mtl/MtlCaps.mm index a7145b4be761..738f867b0397 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlCaps.mm +++ b/third_party/skia/src/gpu/graphite/mtl/MtlCaps.mm @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/mtl/MtlCaps.h" - -#include "experimental/graphite/include/TextureInfo.h" -#include "experimental/graphite/include/mtl/MtlTypes.h" -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/GraphicsPipelineDesc.h" -#include "experimental/graphite/src/GraphiteResourceKey.h" -#include "experimental/graphite/src/mtl/MtlUtils.h" +#include "src/gpu/graphite/mtl/MtlCaps.h" + +#include "include/gpu/graphite/TextureInfo.h" +#include "include/gpu/graphite/mtl/MtlTypes.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/GraphicsPipelineDesc.h" +#include "src/gpu/graphite/GraphiteResourceKey.h" +#include "src/gpu/graphite/mtl/MtlUtils.h" #include "src/sksl/SkSLUtil.h" -namespace skgpu::mtl { +namespace skgpu::graphite { -Caps::Caps(const id device) - : skgpu::Caps() { +MtlCaps::MtlCaps(const id device) + : Caps() { fShaderCaps = std::make_unique(); this->initGPUFamily(device); @@ -27,11 +27,11 @@ this->initFormatTable(); - // Metal-specific caps + // Metal-specific MtlCaps } // translates from older MTLFeatureSet interface to MTLGPUFamily interface -bool Caps::GetGPUFamilyFromFeatureSet(id device, GPUFamily* gpuFamily, int* group) { +bool MtlCaps::GetGPUFamilyFromFeatureSet(id device, GPUFamily* gpuFamily, int* group) { #if defined(SK_BUILD_FOR_MAC) // Apple Silicon is only available in later OSes *gpuFamily = GPUFamily::kMac; @@ -134,7 +134,7 @@ return false; } -bool Caps::GetGPUFamily(id device, GPUFamily* gpuFamily, int* group) { +bool MtlCaps::GetGPUFamily(id device, GPUFamily* gpuFamily, int* group) { #if GR_METAL_SDK_VERSION >= 220 if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) { // Apple Silicon @@ -200,7 +200,7 @@ return false; } -void Caps::initGPUFamily(id device) { +void MtlCaps::initGPUFamily(id device) { if (!GetGPUFamily(device, &fGPUFamily, &fFamilyGroup) && !GetGPUFamilyFromFeatureSet(device, &fGPUFamily, &fFamilyGroup)) { // We don't know what this is, fall back to minimum defaults @@ -214,7 +214,7 @@ } } -void Caps::initCaps(const id device) { +void MtlCaps::initCaps(const id device) { if (this->isMac() || fFamilyGroup >= 3) { fMaxTextureSize = 16384; } else { @@ -236,9 +236,19 @@ } else { fClampToBorderSupport = false; } + + // Init sample counts. All devices support 1 (i.e. 0 in skia). + fColorSampleCounts.push_back(1); + if (@available(macOS 10.11, iOS 9.0, *)) { + for (auto sampleCnt : {2, 4, 8}) { + if ([device supportsTextureSampleCount:sampleCnt]) { + fColorSampleCounts.push_back(sampleCnt); + } + } + } } -void Caps::initShaderCaps() { +void MtlCaps::initShaderCaps() { SkSL::ShaderCaps* shaderCaps = fShaderCaps.get(); // Setting this true with the assumption that this cap will eventually mean we support varying @@ -266,23 +276,207 @@ shaderCaps->fFloatIs32Bits = true; } -void Caps::initFormatTable() { - // TODO +// These are all the valid MTLPixelFormats that we currently support in Skia. They are roughly +// ordered from most frequently used to least to improve look up times in arrays. +static constexpr MTLPixelFormat kMtlFormats[] = { + MTLPixelFormatRGBA8Unorm, + MTLPixelFormatR8Unorm, + MTLPixelFormatA8Unorm, + MTLPixelFormatBGRA8Unorm, + + MTLPixelFormatStencil8, + MTLPixelFormatDepth32Float, + MTLPixelFormatDepth32Float_Stencil8, + + MTLPixelFormatInvalid, +}; + +void MtlCaps::setColorType(SkColorType colorType, std::initializer_list formats) { +#ifdef SK_DEBUG + for (size_t i = 0; i < kNumMtlFormats; ++i) { + const auto& formatInfo = fFormatTable[i]; + for (int j = 0; j < formatInfo.fColorTypeInfoCount; ++j) { + const auto& ctInfo = formatInfo.fColorTypeInfos[j]; + if (ctInfo.fColorType == colorType) { + bool found = false; + for (auto it = formats.begin(); it != formats.end(); ++it) { + if (kMtlFormats[i] == *it) { + found = true; + } + } + SkASSERT(found); + } + } + } +#endif + int idx = static_cast(colorType); + for (auto it = formats.begin(); it != formats.end(); ++it) { + const auto& info = this->getFormatInfo(*it); + for (int i = 0; i < info.fColorTypeInfoCount; ++i) { + if (info.fColorTypeInfos[i].fColorType == colorType) { + fColorTypeToFormatTable[idx] = *it; + return; + } + } + } } -skgpu::TextureInfo Caps::getDefaultSampledTextureInfo(SkColorType colorType, - uint32_t levelCount, - Protected, - Renderable renderable) const { +size_t MtlCaps::GetFormatIndex(MTLPixelFormat pixelFormat) { + static_assert(SK_ARRAY_COUNT(kMtlFormats) == MtlCaps::kNumMtlFormats, + "Size of kMtlFormats array must match static value in header"); + for (size_t i = 0; i < MtlCaps::kNumMtlFormats; ++i) { + if (kMtlFormats[i] == pixelFormat) { + return i; + } + } + return GetFormatIndex(MTLPixelFormatInvalid); +} + +void MtlCaps::initFormatTable() { + FormatInfo* info; + + // Format: RGBA8Unorm + { + info = &fFormatTable[GetFormatIndex(MTLPixelFormatRGBA8Unorm)]; + info->fFlags = FormatInfo::kAllFlags; + info->fColorTypeInfoCount = 2; + info->fColorTypeInfos.reset(new ColorTypeInfo[info->fColorTypeInfoCount]()); + int ctIdx = 0; + // Format: RGBA8Unorm, Surface: kRGBA_8888 + { + auto& ctInfo = info->fColorTypeInfos[ctIdx++]; + ctInfo.fColorType = kRGBA_8888_SkColorType; + ctInfo.fFlags = ColorTypeInfo::kUploadData_Flag | ColorTypeInfo::kRenderable_Flag; + } + // Format: RGBA8Unorm, Surface: kRGB_888x + { + auto& ctInfo = info->fColorTypeInfos[ctIdx++]; + ctInfo.fColorType = kRGB_888x_SkColorType; + ctInfo.fFlags = ColorTypeInfo::kUploadData_Flag; + ctInfo.fReadSwizzle = skgpu::Swizzle::RGB1(); + } + } + + // Format: R8Unorm + { + info = &fFormatTable[GetFormatIndex(MTLPixelFormatR8Unorm)]; + info->fFlags = FormatInfo::kAllFlags; + info->fColorTypeInfoCount = 3; + info->fColorTypeInfos.reset(new ColorTypeInfo[info->fColorTypeInfoCount]()); + int ctIdx = 0; + // Format: R8Unorm, Surface: kR8_unorm + { + auto& ctInfo = info->fColorTypeInfos[ctIdx++]; + ctInfo.fColorType = kR8_unorm_SkColorType; + ctInfo.fFlags = ColorTypeInfo::kUploadData_Flag | ColorTypeInfo::kRenderable_Flag; + } + // Format: R8Unorm, Surface: kAlpha_8 + { + auto& ctInfo = info->fColorTypeInfos[ctIdx++]; + ctInfo.fColorType = kAlpha_8_SkColorType; + ctInfo.fFlags = ColorTypeInfo::kUploadData_Flag | ColorTypeInfo::kRenderable_Flag; + ctInfo.fReadSwizzle = skgpu::Swizzle("000r"); + ctInfo.fWriteSwizzle = skgpu::Swizzle("a000"); + } + // Format: R8Unorm, Surface: kGray_8 + { + auto& ctInfo = info->fColorTypeInfos[ctIdx++]; + ctInfo.fColorType = kGray_8_SkColorType; + ctInfo.fFlags = ColorTypeInfo::kUploadData_Flag; + ctInfo.fReadSwizzle = skgpu::Swizzle("rrr1"); + } + } + + // Format: A8Unorm + { + info = &fFormatTable[GetFormatIndex(MTLPixelFormatA8Unorm)]; + info->fFlags = FormatInfo::kTexturable_Flag; + info->fColorTypeInfoCount = 1; + info->fColorTypeInfos.reset(new ColorTypeInfo[info->fColorTypeInfoCount]()); + int ctIdx = 0; + // Format: A8Unorm, Surface: kAlpha_8 + { + auto& ctInfo = info->fColorTypeInfos[ctIdx++]; + ctInfo.fColorType = kAlpha_8_SkColorType; + ctInfo.fFlags = ColorTypeInfo::kUploadData_Flag | ColorTypeInfo::kRenderable_Flag; + } + } + + // Format: BGRA8Unorm + { + info = &fFormatTable[GetFormatIndex(MTLPixelFormatBGRA8Unorm)]; + info->fFlags = FormatInfo::kAllFlags; + info->fColorTypeInfoCount = 1; + info->fColorTypeInfos.reset(new ColorTypeInfo[info->fColorTypeInfoCount]()); + int ctIdx = 0; + // Format: BGRA8Unorm, Surface: kBGRA_8888 + { + auto& ctInfo = info->fColorTypeInfos[ctIdx++]; + ctInfo.fColorType = kBGRA_8888_SkColorType; + ctInfo.fFlags = ColorTypeInfo::kUploadData_Flag | ColorTypeInfo::kRenderable_Flag; + } + } + + /* + * Non-color formats + */ + + // Format: Stencil8 + { + info = &fFormatTable[GetFormatIndex(MTLPixelFormatStencil8)]; + info->fFlags = FormatInfo::kMSAA_Flag; + info->fColorTypeInfoCount = 0; + } + + // Format: Depth32Float + { + info = &fFormatTable[GetFormatIndex(MTLPixelFormatDepth32Float)]; + info->fFlags = FormatInfo::kMSAA_Flag; + if (this->isMac() || fFamilyGroup >= 3) { + info->fFlags |= FormatInfo::kResolve_Flag; + } + info->fColorTypeInfoCount = 0; + } + + // Format: Depth32Float_Stencil8 + { + info = &fFormatTable[GetFormatIndex(MTLPixelFormatDepth32Float_Stencil8)]; + info->fFlags = FormatInfo::kMSAA_Flag; + if (this->isMac() || fFamilyGroup >= 3) { + info->fFlags |= FormatInfo::kResolve_Flag; + } + info->fColorTypeInfoCount = 0; + } + + //////////////////////////////////////////////////////////////////////////// + // Map SkColorTypes (used for creating SkSurfaces) to MTLPixelFormats. The order in which the + // formats are passed into the setColorType function indicates the priority in selecting which + // format we use for a given SkColorType. + + std::fill_n(fColorTypeToFormatTable, kSkColorTypeCnt, MTLPixelFormatInvalid); + + this->setColorType(kAlpha_8_SkColorType, { MTLPixelFormatR8Unorm, + MTLPixelFormatA8Unorm }); + this->setColorType(kRGBA_8888_SkColorType, { MTLPixelFormatRGBA8Unorm }); + this->setColorType(kRGB_888x_SkColorType, { MTLPixelFormatRGBA8Unorm }); + this->setColorType(kBGRA_8888_SkColorType, { MTLPixelFormatBGRA8Unorm }); + this->setColorType(kGray_8_SkColorType, { MTLPixelFormatR8Unorm }); + this->setColorType(kR8_unorm_SkColorType, { MTLPixelFormatR8Unorm }); +} + +TextureInfo MtlCaps::getDefaultSampledTextureInfo(SkColorType colorType, + uint32_t levelCount, + Protected, + Renderable renderable) const { MTLTextureUsage usage = MTLTextureUsageShaderRead; if (renderable == Renderable::kYes) { usage |= MTLTextureUsageRenderTarget; } - TextureInfo info; + MtlTextureInfo info; info.fSampleCount = 1; info.fLevelCount = levelCount; - info.fFormat = SkColorTypeToFormat(colorType); + info.fFormat = this->getFormatFromColorType(colorType); info.fUsage = usage; info.fStorageMode = MTLStorageModePrivate; info.fFramebufferOnly = false; @@ -290,15 +484,15 @@ return info; } -skgpu::TextureInfo Caps::getDefaultMSAATextureInfo(SkColorType colorType, - uint32_t sampleCount, - Protected) const { +TextureInfo MtlCaps::getDefaultMSAATextureInfo(SkColorType colorType, + uint32_t sampleCount, + Protected) const { MTLTextureUsage usage = MTLTextureUsageRenderTarget; - TextureInfo info; + MtlTextureInfo info; info.fSampleCount = sampleCount; info.fLevelCount = 1; - info.fFormat = SkColorTypeToFormat(colorType); + info.fFormat = this->getFormatFromColorType(colorType); info.fUsage = usage; info.fStorageMode = MTLStorageModePrivate; info.fFramebufferOnly = false; @@ -306,13 +500,12 @@ return info; } -skgpu::TextureInfo Caps::getDefaultDepthStencilTextureInfo(Mask depthStencilType, - uint32_t sampleCount, - Protected) const { - TextureInfo info; +TextureInfo MtlCaps::getDefaultDepthStencilTextureInfo( + Mask depthStencilType, uint32_t sampleCount, Protected) const { + MtlTextureInfo info; info.fSampleCount = sampleCount; info.fLevelCount = 1; - info.fFormat = DepthStencilFlagsToFormat(depthStencilType); + info.fFormat = MtlDepthStencilFlagsToFormat(depthStencilType); info.fUsage = MTLTextureUsageRenderTarget; info.fStorageMode = MTLStorageModePrivate; info.fFramebufferOnly = false; @@ -320,8 +513,24 @@ return info; } -UniqueKey Caps::makeGraphicsPipelineKey(const GraphicsPipelineDesc& pipelineDesc, - const RenderPassDesc& renderPassDesc) const { +const Caps::ColorTypeInfo* MtlCaps::getColorTypeInfo( + SkColorType ct, const TextureInfo& textureInfo) const { + MTLPixelFormat mtlFormat = static_cast(textureInfo.mtlTextureSpec().fFormat); + SkASSERT(mtlFormat != MTLPixelFormatInvalid); + + const FormatInfo& info = this->getFormatInfo(mtlFormat); + for (int i = 0; i < info.fColorTypeInfoCount; ++i) { + const ColorTypeInfo& ctInfo = info.fColorTypeInfos[i]; + if (ctInfo.fColorType == ct) { + return &ctInfo; + } + } + + return nullptr; +} + +UniqueKey MtlCaps::makeGraphicsPipelineKey(const GraphicsPipelineDesc& pipelineDesc, + const RenderPassDesc& renderPassDesc) const { UniqueKey pipelineKey; { static const skgpu::UniqueKey::Domain kGraphicsPipelineDomain = UniqueKey::GenerateDomain(); @@ -333,7 +542,7 @@ builder[i] = pipelineDescKey[i]; } // add renderpassdesc key - mtl::TextureInfo colorInfo, depthStencilInfo; + MtlTextureInfo colorInfo, depthStencilInfo; renderPassDesc.fColorAttachment.fTextureInfo.getMtlTextureInfo(&colorInfo); renderPassDesc.fDepthStencilAttachment.fTextureInfo.getMtlTextureInfo(&depthStencilInfo); SkASSERT(colorInfo.fFormat < 65535 && depthStencilInfo.fFormat < 65535); @@ -345,7 +554,7 @@ return pipelineKey; } -bool Caps::onIsTexturable(const skgpu::TextureInfo& info) const { +bool MtlCaps::onIsTexturable(const TextureInfo& info) const { if (!(info.mtlTextureSpec().fUsage & MTLTextureUsageShaderRead)) { return false; } @@ -355,38 +564,33 @@ return this->isTexturable((MTLPixelFormat)info.mtlTextureSpec().fFormat); } -bool Caps::isTexturable(MTLPixelFormat format) const { - // TODO: Fill out format table so that we can query all formats. For now we only support RGBA8 - // and BGRA8 which is supported everywhere. - return format == MTLPixelFormatRGBA8Unorm || format == MTLPixelFormatBGRA8Unorm; +bool MtlCaps::isTexturable(MTLPixelFormat format) const { + const FormatInfo& formatInfo = this->getFormatInfo(format); + return SkToBool(FormatInfo::kTexturable_Flag && formatInfo.fFlags); } -bool Caps::isRenderable(const skgpu::TextureInfo& info) const { +bool MtlCaps::isRenderable(const TextureInfo& info) const { return info.mtlTextureSpec().fUsage & MTLTextureUsageRenderTarget && this->isRenderable((MTLPixelFormat)info.mtlTextureSpec().fFormat, info.numSamples()); } -bool Caps::isRenderable(MTLPixelFormat format, uint32_t numSamples) const { - // TODO: Fill out format table so that we can query all formats. For now we only support RGBA8 - // and BGRA8 with a sampleCount of 1 which is supported everywhere. - if ((format != MTLPixelFormatRGBA8Unorm && format != MTLPixelFormatBGRA8Unorm) || - numSamples != 1) { - return false; - } - return true; +bool MtlCaps::isRenderable(MTLPixelFormat format, uint32_t sampleCount) const { + return sampleCount <= this->maxRenderTargetSampleCount(format); } -bool Caps::onAreColorTypeAndTextureInfoCompatible(SkColorType type, - const skgpu::TextureInfo& info) const { - // TODO: Fill out format table so that we can query all formats. For now we only support RGBA8 - // or BGRA8 for both the color type and format. - return (type == kRGBA_8888_SkColorType && - info.mtlTextureSpec().fFormat == MTLPixelFormatRGBA8Unorm) || - (type == kBGRA_8888_SkColorType && - info.mtlTextureSpec().fFormat == MTLPixelFormatBGRA8Unorm); +uint32_t MtlCaps::maxRenderTargetSampleCount(MTLPixelFormat format) const { + const FormatInfo& formatInfo = this->getFormatInfo(format); + if (!SkToBool(formatInfo.fFlags & FormatInfo::kRenderable_Flag)) { + return 0; + } + if (SkToBool(formatInfo.fFlags & FormatInfo::kMSAA_Flag)) { + return fColorSampleCounts[fColorSampleCounts.size() - 1]; + } else { + return 1; + } } -size_t Caps::getTransferBufferAlignment(size_t bytesPerPixel) const { +size_t MtlCaps::getTransferBufferAlignment(size_t bytesPerPixel) const { return std::max(bytesPerPixel, getMinBufferAlignment()); } @@ -409,12 +613,12 @@ uint32_t samples_to_key(uint32_t numSamples) { } } -void Caps::buildKeyForTexture(SkISize dimensions, - const skgpu::TextureInfo& info, - ResourceType type, - Shareable shareable, - GraphiteResourceKey* key) const { - const TextureSpec& mtlSpec = info.mtlTextureSpec(); +void MtlCaps::buildKeyForTexture(SkISize dimensions, + const TextureInfo& info, + ResourceType type, + Shareable shareable, + GraphiteResourceKey* key) const { + const MtlTextureSpec& mtlSpec = info.mtlTextureSpec(); SkASSERT(!dimensions.isEmpty()); @@ -459,4 +663,4 @@ uint32_t samples_to_key(uint32_t numSamples) { } -} // namespace skgpu::mtl +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlCommandBuffer.h b/third_party/skia/src/gpu/graphite/mtl/MtlCommandBuffer.h similarity index 59% rename from third_party/skia/experimental/graphite/src/mtl/MtlCommandBuffer.h rename to third_party/skia/src/gpu/graphite/mtl/MtlCommandBuffer.h index 11f822f6c102..f2dceb062384 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlCommandBuffer.h +++ b/third_party/skia/src/gpu/graphite/mtl/MtlCommandBuffer.h @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#ifndef skgpu_MtlCommandBuffer_DEFINED -#define skgpu_MtlCommandBuffer_DEFINED +#ifndef skgpu_graphite_MtlCommandBuffer_DEFINED +#define skgpu_graphite_MtlCommandBuffer_DEFINED -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/GpuWorkSubmission.h" -#include "experimental/graphite/src/Log.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/GpuWorkSubmission.h" +#include "src/gpu/graphite/Log.h" #include @@ -19,15 +19,15 @@ #import -namespace skgpu::mtl { -class BlitCommandEncoder; -class Gpu; -class RenderCommandEncoder; +namespace skgpu::graphite { +class MtlBlitCommandEncoder; +class MtlGpu; +class MtlRenderCommandEncoder; -class CommandBuffer final : public skgpu::CommandBuffer { +class MtlCommandBuffer final : public CommandBuffer { public: - static sk_sp Make(const Gpu*); - ~CommandBuffer() override; + static sk_sp Make(const MtlGpu*); + ~MtlCommandBuffer() override; bool isFinished() { return (*fCommandBuffer).status == MTLCommandBufferStatusCompleted || @@ -49,22 +49,24 @@ class CommandBuffer final : public skgpu::CommandBuffer { bool commit(); private: - CommandBuffer(sk_cfp> cmdBuffer, const Gpu* gpu); + MtlCommandBuffer(sk_cfp> cmdBuffer, const MtlGpu* gpu); bool onBeginRenderPass(const RenderPassDesc&, - const skgpu::Texture* colorTexture, - const skgpu::Texture* resolveTexture, - const skgpu::Texture* depthStencilTexture) override; + const Texture* colorTexture, + const Texture* resolveTexture, + const Texture* depthStencilTexture) override; void endRenderPass() override; - void onBindGraphicsPipeline(const skgpu::GraphicsPipeline*) override; - void onBindUniformBuffer(UniformSlot, const skgpu::Buffer*, size_t offset) override; - void onBindVertexBuffers(const skgpu::Buffer* vertexBuffer, size_t vertexOffset, - const skgpu::Buffer* instanceBuffer, size_t instanceOffset) override; - void onBindIndexBuffer(const skgpu::Buffer* indexBuffer, size_t offset) override; + void onBindGraphicsPipeline(const GraphicsPipeline*) override; + void onBindUniformBuffer(UniformSlot, const Buffer*, size_t offset) override; + void onBindVertexBuffers(const Buffer* vertexBuffer, size_t vertexOffset, + const Buffer* instanceBuffer, size_t instanceOffset) override; + void onBindIndexBuffer(const Buffer* indexBuffer, size_t offset) override; - void onBindTextures(const TextureBindEntry* entries, int count) override; - void onBindSamplers(const SamplerBindEntry* entries, int count) override; + + void onBindTextureAndSampler(sk_sp, + sk_sp, + unsigned int bindIndex) override; void onSetScissor(unsigned int left, unsigned int top, unsigned int width, unsigned int height) override; @@ -82,31 +84,31 @@ class CommandBuffer final : public skgpu::CommandBuffer { unsigned int indexCount, unsigned int baseVertex, unsigned int baseInstance, unsigned int instanceCount) override; - bool onCopyTextureToBuffer(const skgpu::Texture*, + bool onCopyTextureToBuffer(const Texture*, SkIRect srcRect, - const skgpu::Buffer*, + const Buffer*, size_t bufferOffset, size_t bufferRowBytes) override; - bool onCopyBufferToTexture(const skgpu::Buffer*, - const skgpu::Texture*, + bool onCopyBufferToTexture(const Buffer*, + const Texture*, const BufferTextureCopyData* copyData, int count) override; - BlitCommandEncoder* getBlitCommandEncoder(); + MtlBlitCommandEncoder* getBlitCommandEncoder(); void endBlitCommandEncoder(); sk_cfp> fCommandBuffer; - sk_sp fActiveRenderCommandEncoder; - sk_sp fActiveBlitCommandEncoder; + sk_sp fActiveRenderCommandEncoder; + sk_sp fActiveBlitCommandEncoder; size_t fCurrentVertexStride = 0; size_t fCurrentInstanceStride = 0; id fCurrentIndexBuffer; size_t fCurrentIndexBufferOffset = 0; - const Gpu* fGpu; + const MtlGpu* fGpu; }; -} // namespace skgpu::mtl +} // namespace skgpu::graphite -#endif // skgpu_MtlCommandBuffer_DEFINED +#endif // skgpu_graphite_MtlCommandBuffer_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlCommandBuffer.mm b/third_party/skia/src/gpu/graphite/mtl/MtlCommandBuffer.mm similarity index 65% rename from third_party/skia/experimental/graphite/src/mtl/MtlCommandBuffer.mm rename to third_party/skia/src/gpu/graphite/mtl/MtlCommandBuffer.mm index 297d5e01e36b..e31447c05ec6 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlCommandBuffer.mm +++ b/third_party/skia/src/gpu/graphite/mtl/MtlCommandBuffer.mm @@ -5,23 +5,23 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/mtl/MtlCommandBuffer.h" - -#include "experimental/graphite/src/Log.h" -#include "experimental/graphite/src/TextureProxy.h" -#include "experimental/graphite/src/mtl/MtlBlitCommandEncoder.h" -#include "experimental/graphite/src/mtl/MtlBuffer.h" -#include "experimental/graphite/src/mtl/MtlCaps.h" -#include "experimental/graphite/src/mtl/MtlGpu.h" -#include "experimental/graphite/src/mtl/MtlGraphicsPipeline.h" -#include "experimental/graphite/src/mtl/MtlRenderCommandEncoder.h" -#include "experimental/graphite/src/mtl/MtlSampler.h" -#include "experimental/graphite/src/mtl/MtlTexture.h" -#include "experimental/graphite/src/mtl/MtlUtils.h" - -namespace skgpu::mtl { - -sk_sp CommandBuffer::Make(const Gpu* gpu) { +#include "src/gpu/graphite/mtl/MtlCommandBuffer.h" + +#include "src/gpu/graphite/Log.h" +#include "src/gpu/graphite/TextureProxy.h" +#include "src/gpu/graphite/mtl/MtlBlitCommandEncoder.h" +#include "src/gpu/graphite/mtl/MtlBuffer.h" +#include "src/gpu/graphite/mtl/MtlCaps.h" +#include "src/gpu/graphite/mtl/MtlGpu.h" +#include "src/gpu/graphite/mtl/MtlGraphicsPipeline.h" +#include "src/gpu/graphite/mtl/MtlRenderCommandEncoder.h" +#include "src/gpu/graphite/mtl/MtlSampler.h" +#include "src/gpu/graphite/mtl/MtlTexture.h" +#include "src/gpu/graphite/mtl/MtlUtils.h" + +namespace skgpu::graphite { + +sk_sp MtlCommandBuffer::Make(const MtlGpu* gpu) { sk_cfp> cmdBuffer; id queue = gpu->queue(); if (@available(macOS 11.0, iOS 14.0, tvOS 14.0, *)) { @@ -41,22 +41,22 @@ } #ifdef SK_ENABLE_MTL_DEBUG_INFO - (*cmdBuffer).label = @"CommandBuffer::Make"; + (*cmdBuffer).label = @"MtlCommandBuffer::Make"; #endif - return sk_sp(new CommandBuffer(std::move(cmdBuffer), gpu)); + return sk_sp(new MtlCommandBuffer(std::move(cmdBuffer), gpu)); } -CommandBuffer::CommandBuffer(sk_cfp> cmdBuffer, const Gpu* gpu) +MtlCommandBuffer::MtlCommandBuffer(sk_cfp> cmdBuffer, const MtlGpu* gpu) : fCommandBuffer(std::move(cmdBuffer)), fGpu(gpu) {} -CommandBuffer::~CommandBuffer() {} +MtlCommandBuffer::~MtlCommandBuffer() {} -bool CommandBuffer::commit() { +bool MtlCommandBuffer::commit() { SkASSERT(!fActiveRenderCommandEncoder); this->endBlitCommandEncoder(); #ifdef SK_BUILD_FOR_IOS - if (IsAppInBackground()) { + if (MtlIsAppInBackground()) { NSLog(@"CommandBuffer: Tried to commit command buffer while in background.\n"); return false; } @@ -72,14 +72,14 @@ return ((*fCommandBuffer).status != MTLCommandBufferStatusError); } -bool CommandBuffer::onBeginRenderPass(const RenderPassDesc& renderPassDesc, - const skgpu::Texture* colorTexture, - const skgpu::Texture* resolveTexture, - const skgpu::Texture* depthStencilTexture) { +bool MtlCommandBuffer::onBeginRenderPass(const RenderPassDesc& renderPassDesc, + const Texture* colorTexture, + const Texture* resolveTexture, + const Texture* depthStencilTexture) { SkASSERT(!fActiveRenderCommandEncoder); this->endBlitCommandEncoder(); #ifdef SK_BUILD_FOR_IOS - if (IsAppInBackground()) { + if (MtlIsAppInBackground()) { NSLog(@"CommandBuffer: tried to create MTLRenderCommandEncoder while in background.\n"); return false; } @@ -109,7 +109,7 @@ if (colorTexture) { // TODO: check Texture matches RenderPassDesc auto colorAttachment = (*descriptor).colorAttachments[0]; - colorAttachment.texture = ((Texture*)colorTexture)->mtlTexture(); + colorAttachment.texture = ((MtlTexture*)colorTexture)->mtlTexture(); const std::array& clearColor = renderPassDesc.fClearColor; colorAttachment.clearColor = MTLClearColorMake(clearColor[0], clearColor[1], clearColor[2], clearColor[3]); @@ -119,7 +119,7 @@ if (resolveTexture) { SkASSERT(renderPassDesc.fColorResolveAttachment.fStoreOp == StoreOp::kStore); // TODO: check Texture matches RenderPassDesc - colorAttachment.resolveTexture = ((Texture*)resolveTexture)->mtlTexture(); + 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, *)) { @@ -141,8 +141,8 @@ auto& depthStencilInfo = renderPassDesc.fDepthStencilAttachment; if (depthStencilTexture) { // TODO: check Texture matches RenderPassDesc - id mtlTexture = ((Texture*)depthStencilTexture)->mtlTexture(); - if (FormatIsDepth(mtlTexture.pixelFormat)) { + id mtlTexture = ((MtlTexture*)depthStencilTexture)->mtlTexture(); + if (MtlFormatIsDepth(mtlTexture.pixelFormat)) { auto depthAttachment = (*descriptor).depthAttachment; depthAttachment.texture = mtlTexture; depthAttachment.clearDepth = renderPassDesc.fClearDepth; @@ -151,7 +151,7 @@ depthAttachment.storeAction = mtlStoreAction[static_cast(depthStencilInfo.fStoreOp)]; } - if (FormatIsStencil(mtlTexture.pixelFormat)) { + if (MtlFormatIsStencil(mtlTexture.pixelFormat)) { auto stencilAttachment = (*descriptor).stencilAttachment; stencilAttachment.texture = mtlTexture; stencilAttachment.clearStencil = renderPassDesc.fClearStencil; @@ -164,33 +164,33 @@ SkASSERT(!depthStencilInfo.fTextureInfo.isValid()); } - fActiveRenderCommandEncoder = RenderCommandEncoder::Make(fGpu, - fCommandBuffer.get(), - descriptor.get()); + fActiveRenderCommandEncoder = MtlRenderCommandEncoder::Make(fGpu, + fCommandBuffer.get(), + descriptor.get()); this->trackResource(fActiveRenderCommandEncoder); return true; } -void CommandBuffer::endRenderPass() { +void MtlCommandBuffer::endRenderPass() { SkASSERT(fActiveRenderCommandEncoder); fActiveRenderCommandEncoder->endEncoding(); fActiveRenderCommandEncoder.reset(); } -BlitCommandEncoder* CommandBuffer::getBlitCommandEncoder() { +MtlBlitCommandEncoder* MtlCommandBuffer::getBlitCommandEncoder() { if (fActiveBlitCommandEncoder) { return fActiveBlitCommandEncoder.get(); } #ifdef SK_BUILD_FOR_IOS - if (IsAppInBackground()) { + if (MtlIsAppInBackground()) { NSLog(@"CommandBuffer: tried to create MTLBlitCommandEncoder while in background.\n"); return nullptr; } #endif - fActiveBlitCommandEncoder = BlitCommandEncoder::Make(fGpu, fCommandBuffer.get()); + fActiveBlitCommandEncoder = MtlBlitCommandEncoder::Make(fGpu, fCommandBuffer.get()); if (!fActiveBlitCommandEncoder) { return nullptr; @@ -202,17 +202,17 @@ return fActiveBlitCommandEncoder.get(); } -void CommandBuffer::endBlitCommandEncoder() { +void MtlCommandBuffer::endBlitCommandEncoder() { if (fActiveBlitCommandEncoder) { fActiveBlitCommandEncoder->endEncoding(); fActiveBlitCommandEncoder.reset(); } } -void CommandBuffer::onBindGraphicsPipeline(const skgpu::GraphicsPipeline* graphicsPipeline) { +void MtlCommandBuffer::onBindGraphicsPipeline(const GraphicsPipeline* graphicsPipeline) { SkASSERT(fActiveRenderCommandEncoder); - auto mtlPipeline = static_cast(graphicsPipeline); + auto mtlPipeline = static_cast(graphicsPipeline); auto pipelineState = mtlPipeline->mtlPipelineState(); fActiveRenderCommandEncoder->setRenderPipelineState(pipelineState); auto depthStencilState = mtlPipeline->mtlDepthStencilState(); @@ -224,21 +224,21 @@ fCurrentInstanceStride = mtlPipeline->instanceStride(); } -void CommandBuffer::onBindUniformBuffer(UniformSlot slot, - const skgpu::Buffer* uniformBuffer, - size_t uniformOffset) { +void MtlCommandBuffer::onBindUniformBuffer(UniformSlot slot, + const Buffer* uniformBuffer, + size_t uniformOffset) { SkASSERT(fActiveRenderCommandEncoder); - id mtlBuffer = uniformBuffer ? static_cast(uniformBuffer)->mtlBuffer() - : nullptr; + id mtlBuffer = uniformBuffer ? + static_cast(uniformBuffer)->mtlBuffer() : nullptr; unsigned int bufferIndex; switch(slot) { case UniformSlot::kRenderStep: - bufferIndex = GraphicsPipeline::kRenderStepUniformBufferIndex; + bufferIndex = MtlGraphicsPipeline::kRenderStepUniformBufferIndex; break; case UniformSlot::kPaint: - bufferIndex = GraphicsPipeline::kPaintUniformBufferIndex; + bufferIndex = MtlGraphicsPipeline::kPaintUniformBufferIndex; break; } @@ -246,31 +246,31 @@ fActiveRenderCommandEncoder->setFragmentBuffer(mtlBuffer, uniformOffset, bufferIndex); } -void CommandBuffer::onBindVertexBuffers(const skgpu::Buffer* vertexBuffer, - size_t vertexOffset, - const skgpu::Buffer* instanceBuffer, - size_t instanceOffset) { +void MtlCommandBuffer::onBindVertexBuffers(const Buffer* vertexBuffer, + size_t vertexOffset, + const Buffer* instanceBuffer, + size_t instanceOffset) { SkASSERT(fActiveRenderCommandEncoder); if (vertexBuffer) { - id mtlBuffer = static_cast(vertexBuffer)->mtlBuffer(); + id mtlBuffer = static_cast(vertexBuffer)->mtlBuffer(); // Metal requires buffer offsets to be aligned to the data type, which is at most 4 bytes // since we use [[attribute]] to automatically unpack float components into SIMD arrays. SkASSERT((vertexOffset & 0b11) == 0); fActiveRenderCommandEncoder->setVertexBuffer(mtlBuffer, vertexOffset, - GraphicsPipeline::kVertexBufferIndex); + MtlGraphicsPipeline::kVertexBufferIndex); } if (instanceBuffer) { - id mtlBuffer = static_cast(instanceBuffer)->mtlBuffer(); + id mtlBuffer = static_cast(instanceBuffer)->mtlBuffer(); SkASSERT((instanceOffset & 0b11) == 0); fActiveRenderCommandEncoder->setVertexBuffer(mtlBuffer, instanceOffset, - GraphicsPipeline::kInstanceBufferIndex); + MtlGraphicsPipeline::kInstanceBufferIndex); } } -void CommandBuffer::onBindIndexBuffer(const skgpu::Buffer* indexBuffer, size_t offset) { +void MtlCommandBuffer::onBindIndexBuffer(const Buffer* indexBuffer, size_t offset) { if (indexBuffer) { - fCurrentIndexBuffer = static_cast(indexBuffer)->mtlBuffer(); + fCurrentIndexBuffer = static_cast(indexBuffer)->mtlBuffer(); fCurrentIndexBufferOffset = offset; } else { fCurrentIndexBuffer = nil; @@ -278,31 +278,26 @@ } } -void CommandBuffer::onBindTextures(const TextureBindEntry* entries, int count) { - for (int i = 0; i < count; ++i) { - SkASSERT(entries[i].fTexture); - id texture = ((Texture*)entries[i].fTexture.get())->mtlTexture(); - fActiveRenderCommandEncoder->setFragmentTexture(texture, entries[i].fBindIndex); - } -} +void MtlCommandBuffer::onBindTextureAndSampler(sk_sp texture, + sk_sp sampler, + unsigned int bindIndex) { + SkASSERT(texture && sampler); -void CommandBuffer::onBindSamplers(const SamplerBindEntry* entries, int count) { - for (int i = 0; i < count; ++i) { - SkASSERT(entries[i].fSampler); - id samplerState = ((Sampler*)entries[i].fSampler.get())->mtlSamplerState(); - fActiveRenderCommandEncoder->setFragmentSamplerState(samplerState, entries[i].fBindIndex); - } + id mtlTexture = ((MtlTexture*)texture.get())->mtlTexture(); + id mtlSamplerState = ((MtlSampler*)sampler.get())->mtlSamplerState(); + fActiveRenderCommandEncoder->setFragmentTexture(mtlTexture, bindIndex); + fActiveRenderCommandEncoder->setFragmentSamplerState(mtlSamplerState, bindIndex); } -void CommandBuffer::onSetScissor(unsigned int left, unsigned int top, - unsigned int width, unsigned int height) { +void MtlCommandBuffer::onSetScissor(unsigned int left, unsigned int top, + unsigned int width, unsigned int height) { SkASSERT(fActiveRenderCommandEncoder); MTLScissorRect scissorRect = { left, top, width, height }; fActiveRenderCommandEncoder->setScissorRect(scissorRect); } -void CommandBuffer::onSetViewport(float x, float y, float width, float height, - float minDepth, float maxDepth) { +void MtlCommandBuffer::onSetViewport(float x, float y, float width, float height, + float minDepth, float maxDepth) { SkASSERT(fActiveRenderCommandEncoder); MTLViewport viewport = { x, y, width, height, minDepth, maxDepth }; fActiveRenderCommandEncoder->setViewport(viewport); @@ -314,10 +309,10 @@ // surfaces we have are TopLeft origin). float rtAdjust[4] = {invTwoW, -invTwoH, -1.f - x * invTwoW, 1.f + y * invTwoH}; fActiveRenderCommandEncoder->setVertexBytes(rtAdjust, 4 * sizeof(float), - GraphicsPipeline::kIntrinsicUniformBufferIndex); + MtlGraphicsPipeline::kIntrinsicUniformBufferIndex); } -void CommandBuffer::onSetBlendConstants(std::array blendConstants) { +void MtlCommandBuffer::onSetBlendConstants(std::array blendConstants) { SkASSERT(fActiveRenderCommandEncoder); fActiveRenderCommandEncoder->setBlendColor(blendConstants.data()); @@ -337,7 +332,9 @@ static MTLPrimitiveType graphite_to_mtl_primitive(PrimitiveType primitiveType) { return mtlPrimitiveType[static_cast(primitiveType)]; } -void CommandBuffer::onDraw(PrimitiveType type, unsigned int baseVertex, unsigned int vertexCount) { +void MtlCommandBuffer::onDraw(PrimitiveType type, + unsigned int baseVertex, + unsigned int vertexCount) { SkASSERT(fActiveRenderCommandEncoder); auto mtlPrimitiveType = graphite_to_mtl_primitive(type); @@ -345,8 +342,8 @@ static MTLPrimitiveType graphite_to_mtl_primitive(PrimitiveType primitiveType) { fActiveRenderCommandEncoder->drawPrimitives(mtlPrimitiveType, baseVertex, vertexCount); } -void CommandBuffer::onDrawIndexed(PrimitiveType type, unsigned int baseIndex, - unsigned int indexCount, unsigned int baseVertex) { +void MtlCommandBuffer::onDrawIndexed(PrimitiveType type, unsigned int baseIndex, + unsigned int indexCount, unsigned int baseVertex) { SkASSERT(fActiveRenderCommandEncoder); if (@available(macOS 10.11, iOS 9.0, *)) { @@ -364,9 +361,9 @@ static MTLPrimitiveType graphite_to_mtl_primitive(PrimitiveType primitiveType) { } } -void CommandBuffer::onDrawInstanced(PrimitiveType type, unsigned int baseVertex, - unsigned int vertexCount, unsigned int baseInstance, - unsigned int instanceCount) { +void MtlCommandBuffer::onDrawInstanced(PrimitiveType type, unsigned int baseVertex, + unsigned int vertexCount, unsigned int baseInstance, + unsigned int instanceCount) { SkASSERT(fActiveRenderCommandEncoder); auto mtlPrimitiveType = graphite_to_mtl_primitive(type); @@ -376,9 +373,12 @@ static MTLPrimitiveType graphite_to_mtl_primitive(PrimitiveType primitiveType) { instanceCount, baseInstance); } -void CommandBuffer::onDrawIndexedInstanced(PrimitiveType type, unsigned int baseIndex, - unsigned int indexCount, unsigned int baseVertex, - unsigned int baseInstance, unsigned int instanceCount) { +void MtlCommandBuffer::onDrawIndexedInstanced(PrimitiveType type, + unsigned int baseIndex, + unsigned int indexCount, + unsigned int baseVertex, + unsigned int baseInstance, + unsigned int instanceCount) { SkASSERT(fActiveRenderCommandEncoder); if (@available(macOS 10.11, iOS 9.0, *)) { @@ -402,21 +402,21 @@ static bool check_max_blit_width(int widthInPixels) { return true; } -bool CommandBuffer::onCopyTextureToBuffer(const skgpu::Texture* texture, - SkIRect srcRect, - const skgpu::Buffer* buffer, - size_t bufferOffset, - size_t bufferRowBytes) { +bool MtlCommandBuffer::onCopyTextureToBuffer(const Texture* texture, + SkIRect srcRect, + const Buffer* buffer, + size_t bufferOffset, + size_t bufferRowBytes) { SkASSERT(!fActiveRenderCommandEncoder); if (!check_max_blit_width(srcRect.width())) { return false; } - id mtlTexture = static_cast(texture)->mtlTexture(); - id mtlBuffer = static_cast(buffer)->mtlBuffer(); + id mtlTexture = static_cast(texture)->mtlTexture(); + id mtlBuffer = static_cast(buffer)->mtlBuffer(); - BlitCommandEncoder* blitCmdEncoder = this->getBlitCommandEncoder(); + MtlBlitCommandEncoder* blitCmdEncoder = this->getBlitCommandEncoder(); if (!blitCmdEncoder) { return false; } @@ -438,16 +438,16 @@ static bool check_max_blit_width(int widthInPixels) { return true; } -bool CommandBuffer::onCopyBufferToTexture(const skgpu::Buffer* buffer, - const skgpu::Texture* texture, - const BufferTextureCopyData* copyData, - int count) { +bool MtlCommandBuffer::onCopyBufferToTexture(const Buffer* buffer, + const Texture* texture, + const BufferTextureCopyData* copyData, + int count) { SkASSERT(!fActiveRenderCommandEncoder); - id mtlBuffer = static_cast(buffer)->mtlBuffer(); - id mtlTexture = static_cast(texture)->mtlTexture(); + id mtlBuffer = static_cast(buffer)->mtlBuffer(); + id mtlTexture = static_cast(texture)->mtlTexture(); - BlitCommandEncoder* blitCmdEncoder = this->getBlitCommandEncoder(); + MtlBlitCommandEncoder* blitCmdEncoder = this->getBlitCommandEncoder(); if (!blitCmdEncoder) { return false; } @@ -475,4 +475,4 @@ static bool check_max_blit_width(int widthInPixels) { } -} // namespace skgpu::mtl +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/mtl/MtlGpu.h b/third_party/skia/src/gpu/graphite/mtl/MtlGpu.h new file mode 100644 index 000000000000..a3b2b7fcc6d5 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/mtl/MtlGpu.h @@ -0,0 +1,54 @@ +/* + * 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 skgpu_graphite_MtlGpu_DEFINED +#define skgpu_graphite_MtlGpu_DEFINED + +#include "src/gpu/graphite/Gpu.h" + +#include "include/ports/SkCFObject.h" + +#include "include/gpu/graphite/mtl/MtlBackendContext.h" +#include "src/gpu/graphite/mtl/MtlCaps.h" + +#import + +namespace skgpu::graphite { + +class MtlGpu final : public Gpu { +public: + static sk_sp Make(const MtlBackendContext&); + ~MtlGpu() override; + + id device() const { return fDevice.get(); } + id queue() const { return fQueue.get(); } + + const MtlCaps& mtlCaps() const { return static_cast(*this->caps()); } + + std::unique_ptr makeResourceProvider( + sk_sp, SingleOwner*) const override; + +private: + MtlGpu(sk_cfp>, sk_cfp>, sk_sp); + + Gpu::OutstandingSubmission onSubmit(sk_sp) override; + + BackendTexture onCreateBackendTexture(SkISize dimensions, const TextureInfo&) override; + void onDeleteBackendTexture(BackendTexture&) override; + +#if GRAPHITE_TEST_UTILS + void testingOnly_startCapture() override; + void testingOnly_endCapture() override; +#endif + + sk_cfp> fDevice; + sk_cfp> fQueue; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_MtlGpu_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlGpu.mm b/third_party/skia/src/gpu/graphite/mtl/MtlGpu.mm similarity index 54% rename from third_party/skia/experimental/graphite/src/mtl/MtlGpu.mm rename to third_party/skia/src/gpu/graphite/mtl/MtlGpu.mm index 24e14eebe8b4..18efe5c6916b 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlGpu.mm +++ b/third_party/skia/src/gpu/graphite/mtl/MtlGpu.mm @@ -5,20 +5,20 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/mtl/MtlGpu.h" +#include "src/gpu/graphite/mtl/MtlGpu.h" -#include "experimental/graphite/include/BackendTexture.h" -#include "experimental/graphite/include/TextureInfo.h" -#include "experimental/graphite/src/Caps.h" -#include "experimental/graphite/src/GlobalCache.h" -#include "experimental/graphite/src/Log.h" -#include "experimental/graphite/src/mtl/MtlCommandBuffer.h" -#include "experimental/graphite/src/mtl/MtlResourceProvider.h" -#include "experimental/graphite/src/mtl/MtlTexture.h" +#include "include/gpu/graphite/BackendTexture.h" +#include "include/gpu/graphite/TextureInfo.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/GlobalCache.h" +#include "src/gpu/graphite/Log.h" +#include "src/gpu/graphite/mtl/MtlCommandBuffer.h" +#include "src/gpu/graphite/mtl/MtlResourceProvider.h" +#include "src/gpu/graphite/mtl/MtlTexture.h" -namespace skgpu::mtl { +namespace skgpu::graphite { -sk_sp Gpu::Make(const BackendContext& context) { +sk_sp MtlGpu::Make(const MtlBackendContext& context) { // TODO: This was taken from GrMtlGpu.mm's Make, does graphite deserve a higher version? if (@available(macOS 10.14, iOS 11.0, *)) { // no warning needed @@ -35,74 +35,75 @@ sk_cfp> device = sk_ret_cfp((id)(context.fDevice.get())); sk_cfp> queue = sk_ret_cfp((id)(context.fQueue.get())); - sk_sp caps(new Caps(device.get())); + sk_sp caps(new MtlCaps(device.get())); - return sk_sp(new Gpu(std::move(device), std::move(queue), std::move(caps))); + return sk_sp(new MtlGpu(std::move(device), std::move(queue), std::move(caps))); } -Gpu::Gpu(sk_cfp> device, sk_cfp> queue, sk_sp caps) - : skgpu::Gpu(std::move(caps)) +MtlGpu::MtlGpu(sk_cfp> device, + sk_cfp> queue, + sk_sp caps) + : skgpu::graphite::Gpu(std::move(caps)) , fDevice(std::move(device)) , fQueue(std::move(queue)) { this->initCompiler(); } -Gpu::~Gpu() { +MtlGpu::~MtlGpu() { } -std::unique_ptr Gpu::makeResourceProvider( +std::unique_ptr MtlGpu::makeResourceProvider( sk_sp globalCache, SingleOwner* singleOwner) const { - return std::unique_ptr(new ResourceProvider(this, - std::move(globalCache), - singleOwner)); + return std::unique_ptr(new MtlResourceProvider(this, + std::move(globalCache), + singleOwner)); } -class WorkSubmission final : public skgpu::GpuWorkSubmission { +class WorkSubmission final : public GpuWorkSubmission { public: WorkSubmission(sk_sp cmdBuffer) - : fCommandBuffer(std::move(cmdBuffer)) {} + : GpuWorkSubmission(std::move(cmdBuffer)) {} ~WorkSubmission() override {} bool isFinished() override { - return fCommandBuffer->isFinished(); + return static_cast(this->commandBuffer())->isFinished(); } - void waitUntilFinished(const skgpu::Gpu*) override { - return fCommandBuffer->waitUntilFinished(); + void waitUntilFinished(const Gpu*) override { + return static_cast(this->commandBuffer())->waitUntilFinished(); } private: sk_sp fCommandBuffer; }; -bool Gpu::onSubmit(sk_sp commandBuffer) { +skgpu::graphite::Gpu::OutstandingSubmission MtlGpu::onSubmit(sk_sp commandBuffer) { SkASSERT(commandBuffer); - sk_sp& mtlCmdBuffer = (sk_sp&)(commandBuffer); + MtlCommandBuffer* mtlCmdBuffer = static_cast(commandBuffer.get()); if (!mtlCmdBuffer->commit()) { - return false; + commandBuffer->callFinishedProcs(/*success=*/false); + return nullptr; } - std::unique_ptr submission(new WorkSubmission(mtlCmdBuffer)); - new (fOutstandingSubmissions.push_back()) OutstandingSubmission(std::move(submission)); - - return true; + std::unique_ptr submission(new WorkSubmission(std::move(commandBuffer))); + return submission; } -BackendTexture Gpu::onCreateBackendTexture(SkISize dimensions, const skgpu::TextureInfo& info) { - sk_cfp> texture = Texture::MakeMtlTexture(this, dimensions, info); +BackendTexture MtlGpu::onCreateBackendTexture(SkISize dimensions, const TextureInfo& info) { + sk_cfp> texture = MtlTexture::MakeMtlTexture(this, dimensions, info); if (!texture) { return {}; } return BackendTexture(dimensions, (Handle)texture.release()); } -void Gpu::onDeleteBackendTexture(BackendTexture& texture) { +void MtlGpu::onDeleteBackendTexture(BackendTexture& texture) { SkASSERT(texture.backend() == BackendApi::kMetal); - Handle texHandle = texture.getMtlTexture(); + MtlHandle texHandle = texture.getMtlTexture(); SkCFSafeRelease(texHandle); } #if GRAPHITE_TEST_UTILS -void Gpu::testingOnly_startCapture() { +void MtlGpu::testingOnly_startCapture() { if (@available(macOS 10.13, iOS 11.0, *)) { // TODO: add newer Metal interface as well MTLCaptureManager* captureManager = [MTLCaptureManager sharedCaptureManager]; @@ -124,7 +125,7 @@ void waitUntilFinished(const skgpu::Gpu*) override { } } -void Gpu::testingOnly_endCapture() { +void MtlGpu::testingOnly_endCapture() { if (@available(macOS 10.13, iOS 11.0, *)) { MTLCaptureManager* captureManager = [MTLCaptureManager sharedCaptureManager]; if (captureManager.isCapturing) { @@ -134,4 +135,4 @@ void waitUntilFinished(const skgpu::Gpu*) override { } #endif -} // namespace skgpu::mtl +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlGraphicsPipeline.h b/third_party/skia/src/gpu/graphite/mtl/MtlGraphicsPipeline.h similarity index 56% rename from third_party/skia/experimental/graphite/src/mtl/MtlGraphicsPipeline.h rename to third_party/skia/src/gpu/graphite/mtl/MtlGraphicsPipeline.h index fa666fd0c8d0..b14ea2f94e15 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlGraphicsPipeline.h +++ b/third_party/skia/src/gpu/graphite/mtl/MtlGraphicsPipeline.h @@ -5,29 +5,26 @@ * found in the LICENSE file. */ -#ifndef skgpu_MtlGraphicsPipeline_DEFINED -#define skgpu_MtlGraphicsPipeline_DEFINED +#ifndef skgpu_graphite_MtlGraphicsPipeline_DEFINED +#define skgpu_graphite_MtlGraphicsPipeline_DEFINED -#include "experimental/graphite/src/GraphicsPipeline.h" #include "include/core/SkRefCnt.h" #include "include/ports/SkCFObject.h" +#include "src/gpu/graphite/GraphicsPipeline.h" #include #import class SkShaderCodeDictionary; -namespace skgpu { +namespace skgpu::graphite { class Context; class GraphicsPipelineDesc; +class MtlGpu; +class MtlResourceProvider; struct RenderPassDesc; -} // namespace skgpu -namespace skgpu::mtl { -class Gpu; -class ResourceProvider; - -class GraphicsPipeline final : public skgpu::GraphicsPipeline { +class MtlGraphicsPipeline final : public GraphicsPipeline { public: inline static constexpr unsigned int kIntrinsicUniformBufferIndex = 0; inline static constexpr unsigned int kRenderStepUniformBufferIndex = 1; @@ -35,41 +32,41 @@ class GraphicsPipeline final : public skgpu::GraphicsPipeline { inline static constexpr unsigned int kVertexBufferIndex = 3; inline static constexpr unsigned int kInstanceBufferIndex = 4; - static sk_sp Make(ResourceProvider*, - const Gpu*, - const skgpu::GraphicsPipelineDesc&, - const skgpu::RenderPassDesc&); - ~GraphicsPipeline() override {} + static sk_sp Make(MtlResourceProvider*, + const MtlGpu*, + const GraphicsPipelineDesc&, + const RenderPassDesc&); + ~MtlGraphicsPipeline() override {} id mtlPipelineState() const { return fPipelineState.get(); } - id mtlDepthStencilState() const { return fDepthStencilState; } + id mtlDepthStencilState() const { return fDepthStencilState.get(); } uint32_t stencilReferenceValue() const { return fStencilReferenceValue; } size_t vertexStride() const { return fVertexStride; } size_t instanceStride() const { return fInstanceStride; } private: - GraphicsPipeline(const skgpu::Gpu* gpu, - sk_cfp> pso, - id dss, - uint32_t refValue, - size_t vertexStride, - size_t instanceStride) - : skgpu::GraphicsPipeline(gpu) + MtlGraphicsPipeline(const skgpu::graphite::Gpu* gpu, + sk_cfp> pso, + sk_cfp> dss, + uint32_t refValue, + size_t vertexStride, + size_t instanceStride) + : GraphicsPipeline(gpu) , fPipelineState(std::move(pso)) , fDepthStencilState(dss) , fStencilReferenceValue(refValue) , fVertexStride(vertexStride) , fInstanceStride(instanceStride) {} - void onFreeGpuData() override; + void freeGpuData() override; sk_cfp> fPipelineState; - id fDepthStencilState; + sk_cfp> fDepthStencilState; uint32_t fStencilReferenceValue; size_t fVertexStride = 0; size_t fInstanceStride = 0; }; -} // namespace skgpu::mtl +} // namespace skgpu::graphite -#endif // skgpu_MtlGraphicsPipeline_DEFINED +#endif // skgpu_graphite_MtlGraphicsPipeline_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlGraphicsPipeline.mm b/third_party/skia/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm similarity index 63% rename from third_party/skia/experimental/graphite/src/mtl/MtlGraphicsPipeline.mm rename to third_party/skia/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm index 421f1d953ada..7b02f61b156c 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlGraphicsPipeline.mm +++ b/third_party/skia/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm @@ -5,21 +5,24 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/mtl/MtlGraphicsPipeline.h" - -#include "experimental/graphite/include/TextureInfo.h" -#include "experimental/graphite/src/GraphicsPipelineDesc.h" -#include "experimental/graphite/src/Log.h" -#include "experimental/graphite/src/Renderer.h" -#include "experimental/graphite/src/mtl/MtlGpu.h" -#include "experimental/graphite/src/mtl/MtlResourceProvider.h" -#include "experimental/graphite/src/mtl/MtlUtils.h" +#include "src/gpu/graphite/mtl/MtlGraphicsPipeline.h" + #include "include/core/SkSpan.h" #include "include/gpu/ShaderErrorHandler.h" +#include "include/gpu/graphite/TextureInfo.h" #include "include/private/SkSLString.h" +#include "src/core/SkPipelineData.h" #include "src/core/SkShaderCodeDictionary.h" +#include "src/gpu/graphite/GraphicsPipelineDesc.h" +#include "src/gpu/graphite/Log.h" +#include "src/gpu/graphite/Renderer.h" +#include "src/gpu/graphite/mtl/MtlGpu.h" +#include "src/gpu/graphite/mtl/MtlResourceProvider.h" +#include "src/gpu/graphite/mtl/MtlUtils.h" + +#include "src/gpu/tessellate/WangsFormula.h" -namespace skgpu::mtl { +namespace skgpu::graphite { namespace { @@ -60,6 +63,10 @@ result.append("half4"); *offset += 8 * count; break; + case SkSLType::kInt: + result.append("int"); + *offset += 4 * count; + break; default: SkASSERT(0); } @@ -163,6 +170,10 @@ sksl += emit_SKSL_uniforms(1, "Step", step->uniforms()); } + // TODO: This is only needed for tessellation path renderers and should be handled using a + // helper function injector that the SkSL built-in code snippets can use. + sksl += wangs_formula::as_sksl().c_str(); + // Vertex shader function declaration sksl += "void main() {\n"; // Vertex shader body @@ -175,9 +186,9 @@ std::string get_sksl_fs(SkShaderCodeDictionary* dict, const GraphicsPipelineDesc& desc, - bool* writesColor) { + SkPipelineDataGatherer::BlendInfo* blendInfo) { if (!desc.paintParamsID().isValid()) { - *writesColor = false; + // TODO: we should return the error shader code here return {}; } @@ -185,7 +196,7 @@ dict->getShaderInfo(desc.paintParamsID(), &shaderInfo); - *writesColor = shaderInfo.writesColor(); + *blendInfo = shaderInfo.blendInfo(); #if SK_SUPPORT_GPU return shaderInfo.toSkSL(); #else @@ -283,7 +294,7 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { SkASSERT(MTLVertexFormatInvalid != format); mtlAttribute.format = format; mtlAttribute.offset = vertexAttributeOffset; - mtlAttribute.bufferIndex = GraphicsPipeline::kVertexBufferIndex; + mtlAttribute.bufferIndex = MtlGraphicsPipeline::kVertexBufferIndex; vertexAttributeOffset += attribute.sizeAlign4(); attributeIndex++; @@ -292,7 +303,7 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { if (vertexAttributeCount) { MTLVertexBufferLayoutDescriptor* vertexBufferLayout = - vertexDescriptor.layouts[GraphicsPipeline::kVertexBufferIndex]; + vertexDescriptor.layouts[MtlGraphicsPipeline::kVertexBufferIndex]; vertexBufferLayout.stepFunction = MTLVertexStepFunctionPerVertex; vertexBufferLayout.stepRate = 1; vertexBufferLayout.stride = vertexAttributeOffset; @@ -306,7 +317,7 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { SkASSERT(MTLVertexFormatInvalid != format); mtlAttribute.format = format; mtlAttribute.offset = instanceAttributeOffset; - mtlAttribute.bufferIndex = GraphicsPipeline::kInstanceBufferIndex; + mtlAttribute.bufferIndex = MtlGraphicsPipeline::kInstanceBufferIndex; instanceAttributeOffset += attribute.sizeAlign4(); attributeIndex++; @@ -315,7 +326,7 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { if (instanceAttributeCount) { MTLVertexBufferLayoutDescriptor* instanceBufferLayout = - vertexDescriptor.layouts[GraphicsPipeline::kInstanceBufferIndex]; + vertexDescriptor.layouts[MtlGraphicsPipeline::kInstanceBufferIndex]; instanceBufferLayout.stepFunction = MTLVertexStepFunctionPerInstance; instanceBufferLayout.stepRate = 1; instanceBufferLayout.stride = instanceAttributeOffset; @@ -323,14 +334,119 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { return vertexDescriptor; } +// TODO: share this w/ Ganesh Metal backend? +static MTLBlendFactor blend_coeff_to_mtl_blend(skgpu::BlendCoeff coeff) { + switch (coeff) { + case skgpu::BlendCoeff::kZero: + return MTLBlendFactorZero; + case skgpu::BlendCoeff::kOne: + return MTLBlendFactorOne; + case skgpu::BlendCoeff::kSC: + return MTLBlendFactorSourceColor; + case skgpu::BlendCoeff::kISC: + return MTLBlendFactorOneMinusSourceColor; + case skgpu::BlendCoeff::kDC: + return MTLBlendFactorDestinationColor; + case skgpu::BlendCoeff::kIDC: + return MTLBlendFactorOneMinusDestinationColor; + case skgpu::BlendCoeff::kSA: + return MTLBlendFactorSourceAlpha; + case skgpu::BlendCoeff::kISA: + return MTLBlendFactorOneMinusSourceAlpha; + case skgpu::BlendCoeff::kDA: + return MTLBlendFactorDestinationAlpha; + case skgpu::BlendCoeff::kIDA: + return MTLBlendFactorOneMinusDestinationAlpha; + case skgpu::BlendCoeff::kConstC: + return MTLBlendFactorBlendColor; + case skgpu::BlendCoeff::kIConstC: + return MTLBlendFactorOneMinusBlendColor; + case skgpu::BlendCoeff::kS2C: + if (@available(macOS 10.12, iOS 11.0, *)) { + return MTLBlendFactorSource1Color; + } else { + return MTLBlendFactorZero; + } + case skgpu::BlendCoeff::kIS2C: + if (@available(macOS 10.12, iOS 11.0, *)) { + return MTLBlendFactorOneMinusSource1Color; + } else { + return MTLBlendFactorZero; + } + case skgpu::BlendCoeff::kS2A: + if (@available(macOS 10.12, iOS 11.0, *)) { + return MTLBlendFactorSource1Alpha; + } else { + return MTLBlendFactorZero; + } + case skgpu::BlendCoeff::kIS2A: + if (@available(macOS 10.12, iOS 11.0, *)) { + return MTLBlendFactorOneMinusSource1Alpha; + } else { + return MTLBlendFactorZero; + } + case skgpu::BlendCoeff::kIllegal: + return MTLBlendFactorZero; + } + + SK_ABORT("Unknown blend coefficient"); +} + +// TODO: share this w/ Ganesh Metal backend? +static MTLBlendOperation blend_equation_to_mtl_blend_op(skgpu::BlendEquation equation) { + static const MTLBlendOperation gTable[] = { + MTLBlendOperationAdd, // skgpu::BlendEquation::kAdd + MTLBlendOperationSubtract, // skgpu::BlendEquation::kSubtract + MTLBlendOperationReverseSubtract, // skgpu::BlendEquation::kReverseSubtract + }; + static_assert(SK_ARRAY_COUNT(gTable) == (int)skgpu::BlendEquation::kFirstAdvanced); + static_assert(0 == (int)skgpu::BlendEquation::kAdd); + static_assert(1 == (int)skgpu::BlendEquation::kSubtract); + static_assert(2 == (int)skgpu::BlendEquation::kReverseSubtract); + + SkASSERT((unsigned)equation < skgpu::kBlendEquationCnt); + return gTable[(int)equation]; +} + +static MTLRenderPipelineColorAttachmentDescriptor* create_color_attachment( + MTLPixelFormat format, + const SkPipelineDataGatherer::BlendInfo& blendInfo) { + + skgpu::BlendEquation equation = blendInfo.fEquation; + skgpu::BlendCoeff srcCoeff = blendInfo.fSrcBlend; + skgpu::BlendCoeff dstCoeff = blendInfo.fDstBlend; + bool blendOn = !skgpu::BlendShouldDisable(equation, srcCoeff, dstCoeff); + + // TODO: I *think* this gets cleaned up by the pipelineDescriptor? + auto mtlColorAttachment = [[MTLRenderPipelineColorAttachmentDescriptor alloc] init]; + + mtlColorAttachment.pixelFormat = format; + + mtlColorAttachment.blendingEnabled = blendOn; + + if (blendOn) { + mtlColorAttachment.sourceRGBBlendFactor = blend_coeff_to_mtl_blend(srcCoeff); + mtlColorAttachment.destinationRGBBlendFactor = blend_coeff_to_mtl_blend(dstCoeff); + mtlColorAttachment.rgbBlendOperation = blend_equation_to_mtl_blend_op(equation); + mtlColorAttachment.sourceAlphaBlendFactor = blend_coeff_to_mtl_blend(srcCoeff); + mtlColorAttachment.destinationAlphaBlendFactor = blend_coeff_to_mtl_blend(dstCoeff); + mtlColorAttachment.alphaBlendOperation = blend_equation_to_mtl_blend_op(equation); + } + + mtlColorAttachment.writeMask = blendInfo.fWritesColor ? MTLColorWriteMaskAll + : MTLColorWriteMaskNone; + + return mtlColorAttachment; +} + } // anonymous namespace std::string GetMtlUniforms(int bufferID, const char* name, - const std::vector& codeSnippets) { + const std::vector& readers) { size_t numUniforms = 0; - for (auto e : codeSnippets) { - numUniforms += e.fUniforms.size(); + for (auto r : readers) { + numUniforms += r.entry()->fUniforms.size(); } if (!numUniforms) { @@ -340,14 +456,33 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { int offset = 0; std::string result = get_uniform_header(bufferID, name); - for (int i = 0; i < (int) codeSnippets.size(); ++i) { - result += get_uniforms(codeSnippets[i].fUniforms, &offset, i); + for (int i = 0; i < (int) readers.size(); ++i) { + result += get_uniforms(readers[i].entry()->fUniforms, &offset, i); } result.append("};\n\n"); return result; } +std::string GetMtlTexturesAndSamplers(const std::vector& readers, + int* binding) { + + std::string result; + for (int i = 0; i < (int) readers.size(); ++i) { + auto texturesAndSamplers = readers[i].entry()->fTexturesAndSamplers; + + for (int j = 0; j < (int) texturesAndSamplers.size(); ++j) { + const SkTextureAndSampler& t = texturesAndSamplers[j]; + SkSL::String::appendf(&result, + "layout(binding=%d) uniform sampler2D %s_%d_%d;\n", + *binding, t.name(), i, j); + (*binding)++; + } + } + + return result; +} + enum ShaderType { kVertex_ShaderType = 0, @@ -357,16 +492,18 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { }; static const int kShaderTypeCount = kLast_ShaderType + 1; -sk_sp GraphicsPipeline::Make(ResourceProvider* resourceProvider, - const Gpu* gpu, - const skgpu::GraphicsPipelineDesc& pipelineDesc, - const skgpu::RenderPassDesc& renderPassDesc) { +sk_sp MtlGraphicsPipeline::Make( + MtlResourceProvider* resourceProvider, const MtlGpu* gpu, + const GraphicsPipelineDesc& pipelineDesc, + const RenderPassDesc& renderPassDesc) { sk_cfp psoDescriptor([[MTLRenderPipelineDescriptor alloc] init]); std::string msl[kShaderTypeCount]; SkSL::Program::Inputs inputs[kShaderTypeCount]; SkSL::Program::Settings settings; + settings.fForceNoRTFlip = true; + ShaderErrorHandler* errorHandler = DefaultShaderErrorHandler(); if (!SkSLToMSL(gpu, get_sksl_vs(pipelineDesc), @@ -378,10 +515,10 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { return nullptr; } - bool writesColor; + SkPipelineDataGatherer::BlendInfo blendInfo; auto dict = resourceProvider->shaderCodeDictionary(); if (!SkSLToMSL(gpu, - get_sksl_fs(dict, pipelineDesc, &writesColor), + get_sksl_fs(dict, pipelineDesc, &blendInfo), SkSL::ProgramKind::kFragment, settings, &msl[kFragment_ShaderType], @@ -392,12 +529,12 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { sk_cfp> shaderLibraries[kShaderTypeCount]; - shaderLibraries[kVertex_ShaderType] = CompileShaderLibrary(gpu, - msl[kVertex_ShaderType], - errorHandler); - shaderLibraries[kFragment_ShaderType] = CompileShaderLibrary(gpu, - msl[kFragment_ShaderType], - errorHandler); + shaderLibraries[kVertex_ShaderType] = MtlCompileShaderLibrary(gpu, + msl[kVertex_ShaderType], + errorHandler); + shaderLibraries[kFragment_ShaderType] = MtlCompileShaderLibrary(gpu, + msl[kFragment_ShaderType], + errorHandler); if (!shaderLibraries[kVertex_ShaderType] || !shaderLibraries[kFragment_ShaderType]) { return nullptr; } @@ -412,28 +549,22 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { // TODO: I *think* this gets cleaned up by the pipelineDescriptor? (*psoDescriptor).vertexDescriptor = create_vertex_descriptor(pipelineDesc.renderStep()); - // TODO: I *think* this gets cleaned up by the pipelineDescriptor as well? - auto mtlColorAttachment = [[MTLRenderPipelineColorAttachmentDescriptor alloc] init]; - - mtl::TextureInfo mtlTexInfo; + MtlTextureInfo mtlTexInfo; renderPassDesc.fColorAttachment.fTextureInfo.getMtlTextureInfo(&mtlTexInfo); - mtlColorAttachment.pixelFormat = (MTLPixelFormat)mtlTexInfo.fFormat; - - mtlColorAttachment.blendingEnabled = FALSE; - - mtlColorAttachment.writeMask = writesColor ? MTLColorWriteMaskAll : MTLColorWriteMaskNone; + auto mtlColorAttachment = create_color_attachment((MTLPixelFormat)mtlTexInfo.fFormat, + blendInfo); (*psoDescriptor).colorAttachments[0] = mtlColorAttachment; renderPassDesc.fDepthStencilAttachment.fTextureInfo.getMtlTextureInfo(&mtlTexInfo); MTLPixelFormat depthStencilFormat = (MTLPixelFormat)mtlTexInfo.fFormat; - if (FormatIsStencil(depthStencilFormat)) { + if (MtlFormatIsStencil(depthStencilFormat)) { (*psoDescriptor).stencilAttachmentPixelFormat = depthStencilFormat; } else { (*psoDescriptor).stencilAttachmentPixelFormat = MTLPixelFormatInvalid; } - if (FormatIsDepth(depthStencilFormat)) { + if (MtlFormatIsDepth(depthStencilFormat)) { (*psoDescriptor).depthAttachmentPixelFormat = depthStencilFormat; } else { (*psoDescriptor).depthAttachmentPixelFormat = MTLPixelFormatInvalid; @@ -450,20 +581,20 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { const DepthStencilSettings& depthStencilSettings = pipelineDesc.renderStep()->depthStencilSettings(); - id dss = resourceProvider->findOrCreateCompatibleDepthStencilState( - depthStencilSettings); - - return sk_sp( - new GraphicsPipeline(gpu, - std::move(pso), - dss, - depthStencilSettings.fStencilReferenceValue, - pipelineDesc.renderStep()->vertexStride(), - pipelineDesc.renderStep()->instanceStride())); + sk_cfp> dss = + resourceProvider->findOrCreateCompatibleDepthStencilState(depthStencilSettings); + + return sk_sp( + new MtlGraphicsPipeline(gpu, + std::move(pso), + std::move(dss), + depthStencilSettings.fStencilReferenceValue, + pipelineDesc.renderStep()->vertexStride(), + pipelineDesc.renderStep()->instanceStride())); } -void GraphicsPipeline::onFreeGpuData() { +void MtlGraphicsPipeline::freeGpuData() { fPipelineState.reset(); } -} // namespace skgpu::mtl +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlRenderCommandEncoder.h b/third_party/skia/src/gpu/graphite/mtl/MtlRenderCommandEncoder.h similarity index 87% rename from third_party/skia/experimental/graphite/src/mtl/MtlRenderCommandEncoder.h rename to third_party/skia/src/gpu/graphite/mtl/MtlRenderCommandEncoder.h index 7e8edebf2884..d2232668eb06 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlRenderCommandEncoder.h +++ b/third_party/skia/src/gpu/graphite/mtl/MtlRenderCommandEncoder.h @@ -5,29 +5,29 @@ * found in the LICENSE file. */ -#ifndef skgpu_MtlRenderCommandEncoder_DEFINED -#define skgpu_MtlRenderCommandEncoder_DEFINED +#ifndef skgpu_graphite_MtlRenderCommandEncoder_DEFINED +#define skgpu_graphite_MtlRenderCommandEncoder_DEFINED -#include "experimental/graphite/src/Resource.h" #include "include/core/SkRefCnt.h" #include "include/ports/SkCFObject.h" +#include "src/gpu/graphite/Resource.h" #import -namespace skgpu::mtl { +namespace skgpu::graphite { /** * Wraps a MTLRenderCommandEncoder object and associated tracked state */ -class RenderCommandEncoder : public Resource { +class MtlRenderCommandEncoder : public Resource { public: - static sk_sp Make(const Gpu* gpu, - id commandBuffer, - MTLRenderPassDescriptor* descriptor) { + static sk_sp Make(const Gpu* gpu, + id commandBuffer, + MTLRenderPassDescriptor* descriptor) { // Adding a retain here to keep our own ref separate from the autorelease pool sk_cfp> encoder = sk_ret_cfp([commandBuffer renderCommandEncoderWithDescriptor:descriptor]); - return sk_sp(new RenderCommandEncoder(gpu, std::move(encoder))); + return sk_sp(new MtlRenderCommandEncoder(gpu, std::move(encoder))); } void setLabel(NSString* label) { @@ -67,6 +67,7 @@ class RenderCommandEncoder : 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 (fCurrentVertexBuffer[index] == buffer) { @@ -93,6 +94,7 @@ class RenderCommandEncoder : 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 (fCurrentFragmentBuffer[index] == buffer) { @@ -242,10 +244,27 @@ class RenderCommandEncoder : public Resource { } private: - RenderCommandEncoder(const Gpu* gpu, sk_cfp> encoder) - : Resource(gpu), fCommandEncoder(std::move(encoder)) {} + inline static constexpr int kMaxExpectedBuffers = 5; + inline static constexpr int kMaxExpectedTextures = 16; - void onFreeGpuData() override { + MtlRenderCommandEncoder(const Gpu* gpu, sk_cfp> encoder) + : Resource(gpu, Ownership::kOwned), fCommandEncoder(std::move(encoder)) { + for (int i = 0; i < kMaxExpectedBuffers; i++) { + fCurrentVertexBuffer[i] = nil; + fCurrentFragmentBuffer[i] = nil; + // We don't initialize fCurrentVertexOffset or fCurrentFragmentOffset because neither + // of those should ever be read unless we've already confirmed the current buffer + // matches the new one. That would mean we would have initialized the offset when we + // set the current buffer. + } + + for (int i = 0; i < kMaxExpectedTextures; i++) { + fCurrentTexture[i] = nil; + fCurrentSampler[i] = nil; + } + } + + void freeGpuData() override { fCommandEncoder.reset(); } @@ -255,13 +274,11 @@ class RenderCommandEncoder : public Resource { id fCurrentDepthStencilState = nil; uint32_t fCurrentStencilReferenceValue = 0; // Metal default value - inline static constexpr int kMaxExpectedBuffers = 5; id fCurrentVertexBuffer[kMaxExpectedBuffers]; NSUInteger fCurrentVertexOffset[kMaxExpectedBuffers]; id fCurrentFragmentBuffer[kMaxExpectedBuffers]; NSUInteger fCurrentFragmentOffset[kMaxExpectedBuffers]; - inline static constexpr int kMaxExpectedTextures = 16; id fCurrentTexture[kMaxExpectedTextures]; id fCurrentSampler[kMaxExpectedTextures]; @@ -269,6 +286,6 @@ class RenderCommandEncoder : public Resource { MTLTriangleFillMode fCurrentTriangleFillMode = (MTLTriangleFillMode)-1; }; -} // namespace skgpu::mtl +} // namespace skgpu::graphite -#endif // skgpu_MtlRenderCommandEncoder_DEFINED +#endif // skgpu_graphite_MtlRenderCommandEncoder_DEFINED diff --git a/third_party/skia/src/gpu/graphite/mtl/MtlResourceProvider.h b/third_party/skia/src/gpu/graphite/mtl/MtlResourceProvider.h new file mode 100644 index 000000000000..ccb96fc7bd58 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/mtl/MtlResourceProvider.h @@ -0,0 +1,51 @@ +/* + * 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 skgpu_graphite_MtlResourceProvider_DEFINED +#define skgpu_graphite_MtlResourceProvider_DEFINED + +#include "include/private/SkTHash.h" +#include "src/gpu/graphite/DrawTypes.h" +#include "src/gpu/graphite/ResourceProvider.h" + +#import + +namespace skgpu::graphite { + +class CommandBuffer; +class MtlGpu; + +class MtlResourceProvider final : public ResourceProvider { +public: + MtlResourceProvider(const Gpu* gpu, sk_sp, SingleOwner*); + ~MtlResourceProvider() override {} + + sk_sp createWrappedTexture(const BackendTexture&) override; + + // Finds or creates a compatible DepthStencilState based on the enum + sk_cfp> findOrCreateCompatibleDepthStencilState( + const DepthStencilSettings&); + +private: + const MtlGpu* mtlGpu(); + + sk_sp createCommandBuffer() override; + sk_sp onCreateGraphicsPipeline(const GraphicsPipelineDesc&, + const RenderPassDesc&) override; + sk_sp createTexture(SkISize, const TextureInfo&) override; + sk_sp createBuffer(size_t size, BufferType type, PrioritizeGpuReads) override; + + sk_sp createSampler(const SkSamplingOptions&, + SkTileMode xTileMode, + SkTileMode yTileMode) override; + + SkTHashMap>> fDepthStencilStates; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_MtlResourceProvider_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlResourceProvider.mm b/third_party/skia/src/gpu/graphite/mtl/MtlResourceProvider.mm similarity index 57% rename from third_party/skia/experimental/graphite/src/mtl/MtlResourceProvider.mm rename to third_party/skia/src/gpu/graphite/mtl/MtlResourceProvider.mm index d8bc11a61660..3c22bc386a0f 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlResourceProvider.mm +++ b/third_party/skia/src/gpu/graphite/mtl/MtlResourceProvider.mm @@ -5,72 +5,72 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/mtl/MtlResourceProvider.h" - -#include "experimental/graphite/include/BackendTexture.h" -#include "experimental/graphite/src/GlobalCache.h" -#include "experimental/graphite/src/GraphicsPipelineDesc.h" -#include "experimental/graphite/src/mtl/MtlBuffer.h" -#include "experimental/graphite/src/mtl/MtlCommandBuffer.h" -#include "experimental/graphite/src/mtl/MtlGpu.h" -#include "experimental/graphite/src/mtl/MtlGraphicsPipeline.h" -#include "experimental/graphite/src/mtl/MtlSampler.h" -#include "experimental/graphite/src/mtl/MtlTexture.h" +#include "src/gpu/graphite/mtl/MtlResourceProvider.h" + +#include "include/gpu/graphite/BackendTexture.h" +#include "src/gpu/graphite/GlobalCache.h" +#include "src/gpu/graphite/GraphicsPipelineDesc.h" +#include "src/gpu/graphite/mtl/MtlBuffer.h" +#include "src/gpu/graphite/mtl/MtlCommandBuffer.h" +#include "src/gpu/graphite/mtl/MtlGpu.h" +#include "src/gpu/graphite/mtl/MtlGraphicsPipeline.h" +#include "src/gpu/graphite/mtl/MtlSampler.h" +#include "src/gpu/graphite/mtl/MtlTexture.h" #import -namespace skgpu::mtl { +namespace skgpu::graphite { -ResourceProvider::ResourceProvider(const skgpu::Gpu* gpu, - sk_sp globalCache, - SingleOwner* singleOwner) - : skgpu::ResourceProvider(gpu, std::move(globalCache), singleOwner) { +MtlResourceProvider::MtlResourceProvider(const Gpu* gpu, + sk_sp globalCache, + SingleOwner* singleOwner) + : ResourceProvider(gpu, std::move(globalCache), singleOwner) { } -const Gpu* ResourceProvider::mtlGpu() { - return static_cast(fGpu); +const MtlGpu* MtlResourceProvider::mtlGpu() { + return static_cast(fGpu); } -sk_sp ResourceProvider::createCommandBuffer() { - return CommandBuffer::Make(this->mtlGpu()); +sk_sp MtlResourceProvider::createCommandBuffer() { + return MtlCommandBuffer::Make(this->mtlGpu()); } -sk_sp ResourceProvider::onCreateGraphicsPipeline( +sk_sp MtlResourceProvider::onCreateGraphicsPipeline( const GraphicsPipelineDesc& pipelineDesc, const RenderPassDesc& renderPassDesc) { - return GraphicsPipeline::Make(this, - this->mtlGpu(), - pipelineDesc, - renderPassDesc); + return MtlGraphicsPipeline::Make(this, + this->mtlGpu(), + pipelineDesc, + renderPassDesc); } -sk_sp ResourceProvider::createTexture(SkISize dimensions, - const skgpu::TextureInfo& info) { - return Texture::Make(this->mtlGpu(), dimensions, info); +sk_sp MtlResourceProvider::createTexture(SkISize dimensions, + const TextureInfo& info) { + return MtlTexture::Make(this->mtlGpu(), dimensions, info); } -sk_sp ResourceProvider::createWrappedTexture(const BackendTexture& texture) { - mtl::Handle mtlHandleTexture = texture.getMtlTexture(); +sk_sp MtlResourceProvider::createWrappedTexture(const BackendTexture& texture) { + MtlHandle mtlHandleTexture = texture.getMtlTexture(); if (!mtlHandleTexture) { return nullptr; } sk_cfp> mtlTexture = sk_ret_cfp((id)mtlHandleTexture); - return Texture::MakeWrapped(this->mtlGpu(), - texture.dimensions(), - texture.info(), - std::move(mtlTexture)); + return MtlTexture::MakeWrapped(this->mtlGpu(), + texture.dimensions(), + texture.info(), + std::move(mtlTexture)); } -sk_sp ResourceProvider::createBuffer(size_t size, - BufferType type, - PrioritizeGpuReads prioritizeGpuReads) { - return Buffer::Make(this->mtlGpu(), size, type, prioritizeGpuReads); +sk_sp MtlResourceProvider::createBuffer(size_t size, + BufferType type, + PrioritizeGpuReads prioritizeGpuReads) { + return MtlBuffer::Make(this->mtlGpu(), size, type, prioritizeGpuReads); } -sk_sp ResourceProvider::createSampler(const SkSamplingOptions& samplingOptions, - SkTileMode xTileMode, - SkTileMode yTileMode) { - return Sampler::Make(this->mtlGpu(), samplingOptions, xTileMode, yTileMode); +sk_sp MtlResourceProvider::createSampler(const SkSamplingOptions& samplingOptions, + SkTileMode xTileMode, + SkTileMode yTileMode) { + return MtlSampler::Make(this->mtlGpu(), samplingOptions, xTileMode, yTileMode); } namespace { @@ -127,7 +127,7 @@ MTLStencilOperation stencil_op_to_mtl(StencilOp op) { } } // anonymous namespace -id ResourceProvider::findOrCreateCompatibleDepthStencilState( +sk_cfp> MtlResourceProvider::findOrCreateCompatibleDepthStencilState( const DepthStencilSettings& depthStencilSettings) { sk_cfp>* depthStencilState; depthStencilState = fDepthStencilStates.find(depthStencilSettings); @@ -150,7 +150,7 @@ MTLStencilOperation stencil_op_to_mtl(StencilOp op) { } SkASSERT(depthStencilState); - return depthStencilState->get(); + return *depthStencilState; } -} // namespace skgpu::mtl +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/mtl/MtlSampler.h b/third_party/skia/src/gpu/graphite/mtl/MtlSampler.h new file mode 100644 index 000000000000..e091a706d711 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/mtl/MtlSampler.h @@ -0,0 +1,47 @@ +/* + * 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_MtlSampler_DEFINED +#define skgpu_graphite_MtlSampler_DEFINED + +#include "src/gpu/graphite/Sampler.h" + +#include "include/core/SkRefCnt.h" +#include "include/core/SkTileMode.h" +#include "include/ports/SkCFObject.h" + +#import + +struct SkSamplingOptions; + +namespace skgpu::graphite { + +class MtlGpu; + +class MtlSampler : public Sampler { +public: + static sk_sp Make(const MtlGpu*, + const SkSamplingOptions& samplingOptions, + SkTileMode xTileMode, + SkTileMode yTileMode); + + ~MtlSampler() override {} + + id mtlSamplerState() const { return fSamplerState.get(); } + +private: + MtlSampler(const MtlGpu* gpu, + sk_cfp>); + + void freeGpuData() override; + + sk_cfp> fSamplerState; +}; + +} // namepsace skgpu::graphite + +#endif // skgpu_graphite_MtlSampler_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlSampler.mm b/third_party/skia/src/gpu/graphite/mtl/MtlSampler.mm similarity index 82% rename from third_party/skia/experimental/graphite/src/mtl/MtlSampler.mm rename to third_party/skia/src/gpu/graphite/mtl/MtlSampler.mm index ccb19b127180..5e93c0a55ae5 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlSampler.mm +++ b/third_party/skia/src/gpu/graphite/mtl/MtlSampler.mm @@ -5,17 +5,17 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/mtl/MtlSampler.h" +#include "src/gpu/graphite/mtl/MtlSampler.h" -#include "experimental/graphite/src/mtl/MtlCaps.h" -#include "experimental/graphite/src/mtl/MtlGpu.h" #include "include/core/SkSamplingOptions.h" +#include "src/gpu/graphite/mtl/MtlCaps.h" +#include "src/gpu/graphite/mtl/MtlGpu.h" -namespace skgpu::mtl { +namespace skgpu::graphite { -Sampler::Sampler(const Gpu* gpu, - sk_cfp> samplerState) - : skgpu::Sampler(gpu) +MtlSampler::MtlSampler(const MtlGpu* gpu, + sk_cfp> samplerState) + : Sampler(gpu) , fSamplerState(std::move(samplerState)) {} static inline MTLSamplerAddressMode tile_mode_to_mtl_sampler_address(SkTileMode tileMode, @@ -44,10 +44,10 @@ static inline MTLSamplerAddressMode tile_mode_to_mtl_sampler_address(SkTileMode SkUNREACHABLE; } -sk_sp Sampler::Make(const Gpu* gpu, - const SkSamplingOptions& samplingOptions, - SkTileMode xTileMode, - SkTileMode yTileMode) { +sk_sp MtlSampler::Make(const MtlGpu* gpu, + const SkSamplingOptions& samplingOptions, + SkTileMode xTileMode, + SkTileMode yTileMode) { sk_cfp desc([[MTLSamplerDescriptor alloc] init]); MTLSamplerMinMagFilter minMagFilter = [&] { @@ -89,12 +89,12 @@ static inline MTLSamplerAddressMode tile_mode_to_mtl_sampler_address(SkTileMode if (!sampler) { return nullptr; } - return sk_sp(new Sampler(gpu, std::move(sampler))); + return sk_sp(new MtlSampler(gpu, std::move(sampler))); } -void Sampler::onFreeGpuData() { +void MtlSampler::freeGpuData() { fSamplerState.reset(); } -} // namespace skgpu::mtl +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/mtl/MtlTexture.h b/third_party/skia/src/gpu/graphite/mtl/MtlTexture.h new file mode 100644 index 000000000000..9cf5a6fc54c2 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/mtl/MtlTexture.h @@ -0,0 +1,52 @@ +/* + * 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 skgpu_graphite_MtlTexture_DEFINED +#define skgpu_graphite_MtlTexture_DEFINED + +#include "include/core/SkRefCnt.h" +#include "src/gpu/graphite/Texture.h" + +#import + +namespace skgpu::graphite { +class MtlGpu; + +class MtlTexture : public Texture { +public: + static sk_cfp> MakeMtlTexture(const MtlGpu*, + SkISize dimensions, + const TextureInfo&); + + static sk_sp Make(const MtlGpu*, + SkISize dimensions, + const TextureInfo&); + + static sk_sp MakeWrapped(const MtlGpu*, + SkISize dimensions, + const TextureInfo&, + sk_cfp>); + + ~MtlTexture() override {} + + id mtlTexture() const { return fTexture.get(); } + +private: + MtlTexture(const MtlGpu* gpu, + SkISize dimensions, + const TextureInfo& info, + sk_cfp>, + Ownership); + + void freeGpuData() override; + + sk_cfp> fTexture; +}; + +} // namepsace skgpu::graphite + +#endif // skgpu_graphite_MtlTexture_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlTexture.mm b/third_party/skia/src/gpu/graphite/mtl/MtlTexture.mm similarity index 51% rename from third_party/skia/experimental/graphite/src/mtl/MtlTexture.mm rename to third_party/skia/src/gpu/graphite/mtl/MtlTexture.mm index 2b3bdd079968..f720c4781dcd 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlTexture.mm +++ b/third_party/skia/src/gpu/graphite/mtl/MtlTexture.mm @@ -5,26 +5,26 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/mtl/MtlTexture.h" +#include "src/gpu/graphite/mtl/MtlTexture.h" -#include "experimental/graphite/include/mtl/MtlTypes.h" -#include "experimental/graphite/include/private/MtlTypesPriv.h" -#include "experimental/graphite/src/mtl/MtlCaps.h" -#include "experimental/graphite/src/mtl/MtlGpu.h" -#include "experimental/graphite/src/mtl/MtlUtils.h" +#include "include/gpu/graphite/mtl/MtlTypes.h" +#include "include/private/gpu/graphite/MtlTypesPriv.h" +#include "src/gpu/graphite/mtl/MtlCaps.h" +#include "src/gpu/graphite/mtl/MtlGpu.h" +#include "src/gpu/graphite/mtl/MtlUtils.h" -namespace skgpu::mtl { +namespace skgpu::graphite { -sk_cfp> Texture::MakeMtlTexture(const Gpu* gpu, - SkISize dimensions, - const skgpu::TextureInfo& info) { - const skgpu::Caps* caps = gpu->caps(); +sk_cfp> MtlTexture::MakeMtlTexture(const MtlGpu* gpu, + SkISize dimensions, + const TextureInfo& info) { + const skgpu::graphite::Caps* caps = gpu->caps(); if (dimensions.width() > caps->maxTextureSize() || dimensions.height() > caps->maxTextureSize()) { return nullptr; } - const TextureSpec& mtlSpec = info.mtlTextureSpec(); + const MtlTextureSpec& mtlSpec = info.mtlTextureSpec(); SkASSERT(!mtlSpec.fFramebufferOnly); if (mtlSpec.fUsage & MTLTextureUsageShaderRead && !caps->isTexturable(info)) { @@ -32,7 +32,7 @@ } if (mtlSpec.fUsage & MTLTextureUsageRenderTarget && - !(caps->isRenderable(info) || FormatIsDepthOrStencil((MTLPixelFormat)mtlSpec.fFormat))) { + !(caps->isRenderable(info) || MtlFormatIsDepthOrStencil((MTLPixelFormat)mtlSpec.fFormat))) { return nullptr; } @@ -51,7 +51,7 @@ sk_cfp> texture([gpu->device() newTextureWithDescriptor:desc.get()]); #ifdef SK_ENABLE_MTL_DEBUG_INFO if (mtlSpec.fUsage & MTLTextureUsageRenderTarget) { - if (FormatIsDepthOrStencil((MTLPixelFormat)mtlSpec.fFormat)) { + if (MtlFormatIsDepthOrStencil((MTLPixelFormat)mtlSpec.fFormat)) { (*texture).label = @"DepthStencil"; } else { if (info.numSamples() > 1) { @@ -77,42 +77,42 @@ return texture; } -Texture::Texture(const Gpu* gpu, - SkISize dimensions, - const skgpu::TextureInfo& info, - sk_cfp> texture, - Ownership ownership) - : skgpu::Texture(gpu, dimensions, info, ownership) +MtlTexture::MtlTexture(const MtlGpu* gpu, + SkISize dimensions, + const TextureInfo& info, + sk_cfp> texture, + Ownership ownership) + : Texture(gpu, dimensions, info, ownership) , fTexture(std::move(texture)) {} -sk_sp Texture::Make(const Gpu* gpu, - SkISize dimensions, - const skgpu::TextureInfo& info) { +sk_sp MtlTexture::Make(const MtlGpu* gpu, + SkISize dimensions, + const TextureInfo& info) { sk_cfp> texture = MakeMtlTexture(gpu, dimensions, info); if (!texture) { return nullptr; } - return sk_sp(new Texture(gpu, - dimensions, - info, - std::move(texture), - Ownership::kOwned)); + return sk_sp(new MtlTexture(gpu, + dimensions, + info, + std::move(texture), + Ownership::kOwned)); } -sk_sp Texture::MakeWrapped(const Gpu* gpu, - SkISize dimensions, - const skgpu::TextureInfo& info, - sk_cfp> texture) { - return sk_sp(new Texture(gpu, - dimensions, - info, - std::move(texture), - Ownership::kWrapped)); +sk_sp MtlTexture::MakeWrapped(const MtlGpu* gpu, + SkISize dimensions, + const TextureInfo& info, + sk_cfp> texture) { + return sk_sp(new MtlTexture(gpu, + dimensions, + info, + std::move(texture), + Ownership::kWrapped)); } -void Texture::onFreeGpuData() { +void MtlTexture::freeGpuData() { fTexture.reset(); } -} // namespace skgpu::mtl +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlTrampoline.h b/third_party/skia/src/gpu/graphite/mtl/MtlTrampoline.h similarity index 51% rename from third_party/skia/experimental/graphite/src/mtl/MtlTrampoline.h rename to third_party/skia/src/gpu/graphite/mtl/MtlTrampoline.h index 34de7c08af19..a664503fdce7 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlTrampoline.h +++ b/third_party/skia/src/gpu/graphite/mtl/MtlTrampoline.h @@ -5,28 +5,25 @@ * found in the LICENSE file. */ -#ifndef skgpu_MtlTrampoline_DEFINED -#define skgpu_MtlTrampoline_DEFINED +#ifndef skgpu_graphite_MtlTrampoline_DEFINED +#define skgpu_graphite_MtlTrampoline_DEFINED #include "include/core/SkRefCnt.h" -namespace skgpu { +namespace skgpu::graphite { class Gpu; -} - -namespace skgpu::mtl { -struct BackendContext; +struct MtlBackendContext; /* * This class is used to hold functions which trampoline from the Graphite cpp code * to the Mtl Objective-C files. */ -class Trampoline { +class MtlTrampoline { public: - static sk_sp MakeGpu(const BackendContext&); + static sk_sp MakeGpu(const MtlBackendContext&); }; -} // namespace skgpu::mtl +} // namespace skgpu::graphite -#endif // skgpu_MtlTrampoline_DEFINED +#endif // skgpu_graphite_MtlTrampoline_DEFINED diff --git a/third_party/skia/src/gpu/graphite/mtl/MtlTrampoline.mm b/third_party/skia/src/gpu/graphite/mtl/MtlTrampoline.mm new file mode 100644 index 000000000000..064abc09ddca --- /dev/null +++ b/third_party/skia/src/gpu/graphite/mtl/MtlTrampoline.mm @@ -0,0 +1,17 @@ +/* + * Copyright 2021 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/graphite/mtl/MtlTrampoline.h" + +#include "src/gpu/graphite/mtl/MtlGpu.h" + +namespace skgpu::graphite { +sk_sp MtlTrampoline::MakeGpu(const MtlBackendContext& backendContext) { + return MtlGpu::Make(backendContext); +} + +} // namespace skgpu::graphite diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlTypesPriv.mm b/third_party/skia/src/gpu/graphite/mtl/MtlTypesPriv.mm similarity index 66% rename from third_party/skia/experimental/graphite/src/mtl/MtlTypesPriv.mm rename to third_party/skia/src/gpu/graphite/mtl/MtlTypesPriv.mm index 6d070c7cd38c..4651033b64c9 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlTypesPriv.mm +++ b/third_party/skia/src/gpu/graphite/mtl/MtlTypesPriv.mm @@ -5,13 +5,13 @@ * found in the LICENSE file. */ -#include "experimental/graphite/include/private/MtlTypesPriv.h" +#include "include/private/gpu/graphite/MtlTypesPriv.h" #import -namespace skgpu::mtl { +namespace skgpu::graphite { -TextureInfo::TextureInfo(Handle texture) { +MtlTextureInfo::MtlTextureInfo(MtlHandle texture) { SkASSERT(texture); id mtlTex = (id)texture; @@ -24,10 +24,10 @@ fFramebufferOnly = mtlTex.framebufferOnly; } -TextureInfo TextureSpecToTextureInfo(const TextureSpec& mtlSpec, - uint32_t sampleCount, - uint32_t levelCount) { - TextureInfo info; +MtlTextureInfo MtlTextureSpecToTextureInfo(const MtlTextureSpec& mtlSpec, + uint32_t sampleCount, + uint32_t levelCount) { + MtlTextureInfo info; // Shared info info.fSampleCount = sampleCount; info.fLevelCount = levelCount; @@ -41,4 +41,4 @@ TextureInfo TextureSpecToTextureInfo(const TextureSpec& mtlSpec, return info; } -} // namespace skgpu::mtl +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/mtl/MtlUtils.h b/third_party/skia/src/gpu/graphite/mtl/MtlUtils.h new file mode 100644 index 000000000000..b3f60b995f90 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/mtl/MtlUtils.h @@ -0,0 +1,51 @@ +/* + * 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 skgpu_graphite_MtlUtils_DEFINED +#define skgpu_graphite_MtlUtils_DEFINED + +#include "include/core/SkImageInfo.h" +#include "include/ports/SkCFObject.h" +#include "src/gpu/graphite/ResourceTypes.h" +#include "src/sksl/ir/SkSLProgram.h" + +#import + +namespace skgpu { +class ShaderErrorHandler; +} + +namespace skgpu::graphite { +class MtlGpu; + +bool MtlFormatIsDepthOrStencil(MTLPixelFormat); +bool MtlFormatIsDepth(MTLPixelFormat); +bool MtlFormatIsStencil(MTLPixelFormat); + +MTLPixelFormat MtlDepthStencilFlagsToFormat(Mask); + +/** + * Produces MSL code generated by SkSLC + */ +bool SkSLToMSL(const MtlGpu* gpu, + const std::string& sksl, + SkSL::ProgramKind kind, + const SkSL::Program::Settings& settings, + std::string* msl, + SkSL::Program::Inputs* outInputs, + ShaderErrorHandler* errorHandler); + +sk_cfp> MtlCompileShaderLibrary(const MtlGpu* gpu, + const std::string& msl, + ShaderErrorHandler* errorHandler); + +#ifdef SK_BUILD_FOR_IOS +bool MtlIsAppInBackground(); +#endif +} // namespace skgpu::graphite + +#endif // skgpu_graphite_MtlUtils_DEFINED diff --git a/third_party/skia/experimental/graphite/src/mtl/MtlUtils.mm b/third_party/skia/src/gpu/graphite/mtl/MtlUtils.mm similarity index 79% rename from third_party/skia/experimental/graphite/src/mtl/MtlUtils.mm rename to third_party/skia/src/gpu/graphite/mtl/MtlUtils.mm index fc204d349b7d..1ac2a5c8fcf6 100644 --- a/third_party/skia/experimental/graphite/src/mtl/MtlUtils.mm +++ b/third_party/skia/src/gpu/graphite/mtl/MtlUtils.mm @@ -5,12 +5,12 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/mtl/MtlUtils.h" +#include "src/gpu/graphite/mtl/MtlUtils.h" -#include "experimental/graphite/src/mtl/MtlGpu.h" #include "include/gpu/ShaderErrorHandler.h" #include "include/private/SkSLString.h" #include "src/core/SkTraceEvent.h" +#include "src/gpu/graphite/mtl/MtlGpu.h" #include "src/sksl/SkSLCompiler.h" #include "src/utils/SkShaderUtils.h" @@ -18,11 +18,12 @@ #import #endif -namespace skgpu::mtl { +namespace skgpu::graphite { -bool FormatIsDepthOrStencil(MTLPixelFormat format) { +bool MtlFormatIsDepthOrStencil(MTLPixelFormat format) { switch (format) { case MTLPixelFormatStencil8: // fallthrough + case MTLPixelFormatDepth32Float: case MTLPixelFormatDepth32Float_Stencil8: return true; default: @@ -30,8 +31,9 @@ bool FormatIsDepthOrStencil(MTLPixelFormat format) { } } -bool FormatIsDepth(MTLPixelFormat format) { +bool MtlFormatIsDepth(MTLPixelFormat format) { switch (format) { + case MTLPixelFormatDepth32Float: case MTLPixelFormatDepth32Float_Stencil8: return true; default: @@ -39,7 +41,7 @@ bool FormatIsDepth(MTLPixelFormat format) { } } -bool FormatIsStencil(MTLPixelFormat format) { +bool MtlFormatIsStencil(MTLPixelFormat format) { switch (format) { case MTLPixelFormatStencil8: // fallthrough case MTLPixelFormatDepth32Float_Stencil8: @@ -49,23 +51,7 @@ bool FormatIsStencil(MTLPixelFormat format) { } } -MTLPixelFormat SkColorTypeToFormat(SkColorType colorType) { - switch (colorType) { - case kRGBA_8888_SkColorType: - return MTLPixelFormatRGBA8Unorm; - case kBGRA_8888_SkColorType: - return MTLPixelFormatBGRA8Unorm; - case kAlpha_8_SkColorType: - return MTLPixelFormatR8Unorm; - case kRGBA_F16_SkColorType: - return MTLPixelFormatRGBA16Float; - default: - // TODO: fill in the rest of the formats - SkUNREACHABLE; - } -} - -MTLPixelFormat DepthStencilFlagsToFormat(Mask mask) { +MTLPixelFormat MtlDepthStencilFlagsToFormat(Mask mask) { // TODO: Decide if we want to change this to always return a combined depth and stencil format // to allow more sharing of depth stencil allocations. if (mask == DepthStencilFlags::kDepth) { @@ -85,7 +71,7 @@ MTLPixelFormat DepthStencilFlagsToFormat(Mask mask) { static const bool gPrintSKSL = false; static const bool gPrintMSL = false; -bool SkSLToMSL(const Gpu* gpu, +bool SkSLToMSL(const MtlGpu* gpu, const std::string& sksl, SkSL::ProgramKind programKind, const SkSL::Program::Settings& settings, @@ -123,9 +109,9 @@ bool SkSLToMSL(const Gpu* gpu, return true; } -sk_cfp> CompileShaderLibrary(const Gpu* gpu, - const std::string& msl, - ShaderErrorHandler* errorHandler) { +sk_cfp> MtlCompileShaderLibrary(const MtlGpu* gpu, + const std::string& msl, + ShaderErrorHandler* errorHandler) { TRACE_EVENT0("skia.shaders", "driver_compile_shader"); auto nsSource = [[NSString alloc] initWithBytesNoCopy:const_cast(msl.c_str()) length:msl.size() @@ -156,9 +142,9 @@ bool SkSLToMSL(const Gpu* gpu, } #ifdef SK_BUILD_FOR_IOS -bool IsAppInBackground() { +bool MtlIsAppInBackground() { return [NSThread isMainThread] && ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground); } #endif -} // namespace skgpu::mtl +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/render/BUILD.bazel b/third_party/skia/src/gpu/graphite/render/BUILD.bazel new file mode 100644 index 000000000000..1ad301af64bc --- /dev/null +++ b/third_party/skia/src/gpu/graphite/render/BUILD.bazel @@ -0,0 +1,109 @@ +load("//bazel:macros.bzl", "generated_cc_atom") + +licenses(["notice"]) + +generated_cc_atom( + name = "StencilAndFillPathRenderer_src", + srcs = ["StencilAndFillPathRenderer.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":CoverBoundsRenderStep_hdr", + ":MiddleOutFanRenderStep_hdr", + ":StencilAndCoverDSS_hdr", + ":TessellateCurvesRenderStep_hdr", + ":TessellateWedgesRenderStep_hdr", + "//include/core:SkPathTypes_hdr", + "//src/gpu/graphite:Renderer_hdr", + ], +) + +generated_cc_atom( + name = "CoverBoundsRenderStep_hdr", + hdrs = ["CoverBoundsRenderStep.h"], + visibility = ["//:__subpackages__"], + deps = ["//src/gpu/graphite:Renderer_hdr"], +) + +generated_cc_atom( + name = "CoverBoundsRenderStep_src", + srcs = ["CoverBoundsRenderStep.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":CoverBoundsRenderStep_hdr", + ":StencilAndCoverDSS_hdr", + "//src/gpu/graphite:DrawGeometry_hdr", + "//src/gpu/graphite:DrawWriter_hdr", + ], +) + +generated_cc_atom( + name = "MiddleOutFanRenderStep_hdr", + hdrs = ["MiddleOutFanRenderStep.h"], + visibility = ["//:__subpackages__"], + deps = ["//src/gpu/graphite:Renderer_hdr"], +) + +generated_cc_atom( + name = "MiddleOutFanRenderStep_src", + srcs = ["MiddleOutFanRenderStep.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":MiddleOutFanRenderStep_hdr", + ":StencilAndCoverDSS_hdr", + "//src/gpu/graphite:DrawGeometry_hdr", + "//src/gpu/graphite:DrawWriter_hdr", + "//src/gpu/tessellate:FixedCountBufferUtils_hdr", + "//src/gpu/tessellate:MiddleOutPolygonTriangulator_hdr", + ], +) + +generated_cc_atom( + name = "StencilAndCoverDSS_hdr", + hdrs = ["StencilAndCoverDSS.h"], + visibility = ["//:__subpackages__"], + deps = ["//src/gpu/graphite:DrawTypes_hdr"], +) + +generated_cc_atom( + name = "TessellateCurvesRenderStep_hdr", + hdrs = ["TessellateCurvesRenderStep.h"], + visibility = ["//:__subpackages__"], + deps = ["//src/gpu/graphite:Renderer_hdr"], +) + +generated_cc_atom( + name = "TessellateCurvesRenderStep_src", + srcs = ["TessellateCurvesRenderStep.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":StencilAndCoverDSS_hdr", + ":TessellateCurvesRenderStep_hdr", + "//src/gpu/graphite:DrawGeometry_hdr", + "//src/gpu/graphite:DrawWriter_hdr", + "//src/gpu/tessellate:AffineMatrix_hdr", + "//src/gpu/tessellate:FixedCountBufferUtils_hdr", + "//src/gpu/tessellate:PatchWriter_hdr", + ], +) + +generated_cc_atom( + name = "TessellateWedgesRenderStep_hdr", + hdrs = ["TessellateWedgesRenderStep.h"], + visibility = ["//:__subpackages__"], + deps = ["//src/gpu/graphite:Renderer_hdr"], +) + +generated_cc_atom( + name = "TessellateWedgesRenderStep_src", + srcs = ["TessellateWedgesRenderStep.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":TessellateWedgesRenderStep_hdr", + "//src/gpu/graphite:DrawGeometry_hdr", + "//src/gpu/graphite:DrawWriter_hdr", + "//src/gpu/tessellate:AffineMatrix_hdr", + "//src/gpu/tessellate:FixedCountBufferUtils_hdr", + "//src/gpu/tessellate:MidpointContourParser_hdr", + "//src/gpu/tessellate:PatchWriter_hdr", + ], +) diff --git a/third_party/skia/src/gpu/graphite/render/CoverBoundsRenderStep.cpp b/third_party/skia/src/gpu/graphite/render/CoverBoundsRenderStep.cpp new file mode 100644 index 000000000000..7165f1d6ae35 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/render/CoverBoundsRenderStep.cpp @@ -0,0 +1,63 @@ +/* + * 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/render/CoverBoundsRenderStep.h" + +#include "src/gpu/graphite/DrawGeometry.h" +#include "src/gpu/graphite/DrawWriter.h" +#include "src/gpu/graphite/render/StencilAndCoverDSS.h" + +namespace skgpu::graphite { + +CoverBoundsRenderStep::CoverBoundsRenderStep(bool inverseFill) + : RenderStep("CoverBoundsRenderStep", + inverseFill ? "inverse" : "regular", + Flags::kPerformsShading, + /*uniforms=*/{}, + PrimitiveType::kTriangles, + inverseFill ? kInverseCoverPass : kRegularCoverPass, + /*vertexAttrs=*/{{"position", + VertexAttribType::kFloat4, + SkSLType::kFloat4}}, + /*instanceAttrs=*/{}) + , fInverseFill(inverseFill) {} + +CoverBoundsRenderStep::~CoverBoundsRenderStep() {} + +const char* CoverBoundsRenderStep::vertexSkSL() const { + return " float4 devPosition = position;\n"; +} + +void CoverBoundsRenderStep::writeVertices(DrawWriter* writer, const DrawGeometry& geom) const { + SkV4 devPoints[4]; // ordered TL, TR, BR, BL + + if (fInverseFill) { + // TODO: When we handle local coords, we'd need to map these corners by the inverse. + const SkIRect& bounds = geom.clip().scissor(); + devPoints[0] = {(float) bounds.fLeft, (float) bounds.fTop, 0.f, 1.f}; + devPoints[1] = {(float) bounds.fRight, (float) bounds.fTop, 0.f, 1.f}; + devPoints[2] = {(float) bounds.fRight, (float) bounds.fBottom, 0.f, 1.f}; + devPoints[3] = {(float) bounds.fLeft, (float) bounds.fBottom, 0.f, 1.f}; + } else { + geom.transform().mapPoints(geom.shape().bounds(), devPoints); + } + + float depth = geom.order().depthAsFloat(); + DrawWriter::Vertices verts{*writer}; + verts.append(6) << devPoints[0].x << devPoints[0].y << depth << devPoints[0].w // TL + << devPoints[3].x << devPoints[3].y << depth << devPoints[3].w // BL + << devPoints[1].x << devPoints[1].y << depth << devPoints[1].w // TR + << devPoints[1].x << devPoints[1].y << depth << devPoints[1].w // TR + << devPoints[3].x << devPoints[3].y << depth << devPoints[3].w // BL + << devPoints[2].x << devPoints[2].y << depth << devPoints[2].w;// BR +} + +void CoverBoundsRenderStep::writeUniforms(const DrawGeometry&, SkPipelineDataGatherer*) const { + // Control points are pre-transformed to device space on the CPU, so no uniforms needed. +} + +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/render/CoverBoundsRenderStep.h b/third_party/skia/src/gpu/graphite/render/CoverBoundsRenderStep.h new file mode 100644 index 000000000000..2c548ee6e6b2 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/render/CoverBoundsRenderStep.h @@ -0,0 +1,31 @@ +/* + * 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_render_CoverBoundsRenderStep_DEFINED +#define skgpu_graphite_render_CoverBoundsRenderStep_DEFINED + +#include "src/gpu/graphite/Renderer.h" + +namespace skgpu::graphite { + +class CoverBoundsRenderStep final : public RenderStep { +public: + CoverBoundsRenderStep(bool inverseFill); + + ~CoverBoundsRenderStep() override; + + const char* vertexSkSL() const override; + void writeVertices(DrawWriter*, const DrawGeometry&) const override; + void writeUniforms(const DrawGeometry&, SkPipelineDataGatherer*) const override; + +private: + const bool fInverseFill; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_render_CoverBoundsRenderStep_DEFINED diff --git a/third_party/skia/src/gpu/graphite/render/MiddleOutFanRenderStep.cpp b/third_party/skia/src/gpu/graphite/render/MiddleOutFanRenderStep.cpp new file mode 100644 index 000000000000..a65c2767e1e1 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/render/MiddleOutFanRenderStep.cpp @@ -0,0 +1,67 @@ +/* + * 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/render/MiddleOutFanRenderStep.h" + +#include "src/gpu/graphite/DrawGeometry.h" +#include "src/gpu/graphite/DrawWriter.h" +#include "src/gpu/graphite/render/StencilAndCoverDSS.h" + +#include "src/gpu/tessellate/FixedCountBufferUtils.h" +#include "src/gpu/tessellate/MiddleOutPolygonTriangulator.h" + +namespace skgpu::graphite { + +MiddleOutFanRenderStep::MiddleOutFanRenderStep(bool evenOdd) + : RenderStep("MiddleOutFanRenderStep", + evenOdd ? "even-odd" : "winding", + Flags::kRequiresMSAA, + /*uniforms=*/{}, + PrimitiveType::kTriangles, + evenOdd ? kEvenOddStencilPass : kWindingStencilPass, + /*vertexAttrs=*/{{"position", + VertexAttribType::kFloat4, + SkSLType::kFloat4}}, + /*instanceAttrs=*/{}) {} + +MiddleOutFanRenderStep::~MiddleOutFanRenderStep() {} + +const char* MiddleOutFanRenderStep::vertexSkSL() const { + return " float4 devPosition = position;\n"; +} + +void MiddleOutFanRenderStep::writeVertices(DrawWriter* writer, const DrawGeometry& geom) const { + // TODO: Have Shape provide a path-like iterator so we don't actually have to convert non + // paths to SkPath just to iterate their pts/verbs + SkPath path = geom.shape().asPath(); + + const int maxCombinedFanEdges = MaxCombinedFanEdgesInPaths(path.countVerbs()); + const int maxTrianglesInFans = std::max(maxCombinedFanEdges - 2, 0); + + float depth = geom.order().depthAsFloat(); + + DrawWriter::Vertices verts{*writer}; + verts.reserve(maxTrianglesInFans * 3); + for (PathMiddleOutFanIter it(path); !it.done();) { + for (auto [p0, p1, p2] : it.nextStack()) { + // TODO: PathMiddleOutFanIter should use SkV2 instead of SkPoint? + SkV2 p[3] = {{p0.fX, p0.fY}, {p1.fX, p1.fY}, {p2.fX, p2.fY}}; + SkV4 devPoints[3]; + geom.transform().mapPoints(p, devPoints, 3); + + verts.append(3) << devPoints[0].x << devPoints[0].y << depth << devPoints[0].w // p0 + << devPoints[1].x << devPoints[1].y << depth << devPoints[1].w // p1 + << devPoints[2].x << devPoints[2].y << depth << devPoints[2].w; // p2 + } + } +} + +void MiddleOutFanRenderStep::writeUniforms(const DrawGeometry&, SkPipelineDataGatherer*) const { + // Control points are pre-transformed to device space on the CPU, so no uniforms needed. +} + +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/render/MiddleOutFanRenderStep.h b/third_party/skia/src/gpu/graphite/render/MiddleOutFanRenderStep.h new file mode 100644 index 000000000000..5c082ee37f68 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/render/MiddleOutFanRenderStep.h @@ -0,0 +1,31 @@ +/* + * 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_render_MiddleOutFanRenderStep_DEFINED +#define skgpu_graphite_render_MiddleOutFanRenderStep_DEFINED + +#include "src/gpu/graphite/Renderer.h" + +namespace skgpu::graphite { + +class MiddleOutFanRenderStep final : public RenderStep { +public: + // TODO: If this takes DepthStencilSettings directly and a way to adjust the flags to specify + // that it performs shading, this RenderStep definition can be shared between the stencil and + // the convex rendering variants. + MiddleOutFanRenderStep(bool evenOdd); + + ~MiddleOutFanRenderStep() override; + + const char* vertexSkSL() const override; + void writeVertices(DrawWriter*, const DrawGeometry&) const override; + void writeUniforms(const DrawGeometry&, SkPipelineDataGatherer*) const override; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_render_MiddleOutFanRenderStep_DEFINED diff --git a/third_party/skia/src/gpu/graphite/render/StencilAndCoverDSS.h b/third_party/skia/src/gpu/graphite/render/StencilAndCoverDSS.h new file mode 100644 index 000000000000..981a5a90cc61 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/render/StencilAndCoverDSS.h @@ -0,0 +1,128 @@ +/* + * 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_render_StencilAndCoverDSS_DEFINED +#define skgpu_graphite_render_StencilAndCoverDSS_DEFINED + +#include "src/gpu/graphite/DrawTypes.h" + +namespace skgpu::graphite { + +/** + * "stencil" pass DepthAndStencilSettings reusable for RenderSteps following some form of + * stencil-then-cover multi-pass algorithm. + */ + +// Increments stencil value on clockwise triangles. Used for "winding" fill. +constexpr DepthStencilSettings::Face kIncrementCW = { + /*stencilFail=*/ StencilOp::kKeep, + /*depthFail=*/ StencilOp::kKeep, + /*dsPass=*/ StencilOp::kIncWrap, + /*stencilCompare=*/CompareOp::kAlways, + /*readMask=*/ 0xffffffff, + /*writeMask=*/ 0xffffffff +}; + +// Decrements stencil value on counterclockwise triangles. Used for "winding" fill. +constexpr DepthStencilSettings::Face kDecrementCCW = { + /*stencilFail=*/ StencilOp::kKeep, + /*depthFail=*/ StencilOp::kKeep, + /*dsPass=*/ StencilOp::kDecWrap, + /*stencilCompare=*/CompareOp::kAlways, + /*readMask=*/ 0xffffffff, + /*writeMask=*/ 0xffffffff +}; + +// Toggles the bottom stencil bit. Used for "even-odd" fill. +constexpr DepthStencilSettings::Face kToggle = { + /*stencilFail=*/ StencilOp::kKeep, + /*depthFail=*/ StencilOp::kKeep, + /*dsPass=*/ StencilOp::kInvert, + /*stencilCompare=*/CompareOp::kAlways, + /*readMask=*/ 0xffffffff, + /*writeMask=*/ 0x00000001 +}; + +// Stencil settings to use for a standard Redbook "stencil" pass corresponding to a "winding" +// fill rule (regular or inverse is selected by a follow-up pass). +constexpr DepthStencilSettings kWindingStencilPass = { + /*frontStencil=*/kIncrementCW, + /*backStencil=*/ kDecrementCCW, + /*refValue=*/ 0, + /*stencilTest=*/ true, + /*depthCompare=*/CompareOp::kGreater, + /*depthTest=*/ true, + /*depthWrite=*/ false // The depth write will be handled by the covering pass +}; + +// Stencil settings to use for a standard Redbook "stencil" pass corresponding to an "even-odd" +// fill rule (regular or inverse is selected by a follow-up pass). +constexpr DepthStencilSettings kEvenOddStencilPass = { + /*frontStencil=*/kToggle, + /*backStencil=*/ kToggle, + /*refValue=*/ 0, + /*stencilTest=*/ true, + /*depthCompare=*/CompareOp::kGreater, + /*depthTest=*/ true, + /*depthWrite=*/ false // The depth write will be handled by the covering pass +}; + +/** + * "cover" pass DepthAndStencilSettings reusable for RenderSteps following some form of + * stencil-then-cover multi-pass algorithm. + */ + +// Resets non-zero bits to 0, passes when not zero. We set depthFail to kZero because if we +// encounter that case, the kNotEqual=0 stencil test passed, so it does need to be set back to 0 +// and the dsPass op won't be run. In practice, since the stencil steps will fail the same depth +// test, the stencil value will likely not be non-zero, but best to be explicit. +constexpr DepthStencilSettings::Face kPassNonZero = { + /*stencilFail=*/ StencilOp::kKeep, + /*depthFail=*/ StencilOp::kZero, + /*dsPass=*/ StencilOp::kZero, + /*stencilCompare=*/CompareOp::kNotEqual, + /*readMask=*/ 0xffffffff, + /*writeMask=*/ 0xffffffff +}; + + // Resets non-zero bits to 0, passes when zero. +constexpr DepthStencilSettings::Face kPassZero = { + /*stencilFail=*/ StencilOp::kZero, + /*depthFail=*/ StencilOp::kKeep, + /*dsPass=*/ StencilOp::kKeep, + /*stencilCompare=*/CompareOp::kEqual, + /*readMask=*/ 0xffffffff, + /*writeMask=*/ 0xffffffff +}; + +// Stencil settings to use for a standard Redbook "cover" pass for a regular fill, assuming that the +// stencil buffer has been modified by either kWindingStencilPass or kEvenOddStencilPass. +constexpr DepthStencilSettings kRegularCoverPass = { + /*frontStencil=*/kPassNonZero, + /*backStencil=*/ kPassNonZero, + /*refValue=*/ 0, + /*stencilTest=*/ true, + /*depthCompare=*/CompareOp::kGreater, + /*depthTest=*/ true, + /*depthWrite=*/ true +}; + +// Stencil settings to use for a standard Redbook "cover" pass for inverse fills, assuming that the +// stencil buffer has been modified by either kWindingStencilPass or kEvenOddStencilPass. +constexpr DepthStencilSettings kInverseCoverPass = { + /*frontStencil=*/kPassZero, + /*backStencil=*/ kPassZero, + /*refValue=*/ 0, + /*stencilTest=*/ true, + /*depthCompare=*/CompareOp::kGreater, + /*depthTest=*/ true, + /*depthWrite=*/ true +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_render_RedbookDepthAndStencilSettings diff --git a/third_party/skia/src/gpu/graphite/render/StencilAndFillPathRenderer.cpp b/third_party/skia/src/gpu/graphite/render/StencilAndFillPathRenderer.cpp new file mode 100644 index 000000000000..0323722e85ba --- /dev/null +++ b/third_party/skia/src/gpu/graphite/render/StencilAndFillPathRenderer.cpp @@ -0,0 +1,109 @@ +/* + * 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 "src/gpu/graphite/Renderer.h" + +#include "include/core/SkPathTypes.h" +#include "src/gpu/graphite/render/CoverBoundsRenderStep.h" +#include "src/gpu/graphite/render/MiddleOutFanRenderStep.h" +#include "src/gpu/graphite/render/StencilAndCoverDSS.h" +#include "src/gpu/graphite/render/TessellateCurvesRenderStep.h" +#include "src/gpu/graphite/render/TessellateWedgesRenderStep.h" + +namespace skgpu::graphite { + +namespace { + +const RenderStep* cover_step() { + static const CoverBoundsRenderStep kFill{false}; + return &kFill; +} + +const RenderStep* inverse_cover_step() { + static const CoverBoundsRenderStep kInverseFill{true}; + return &kInverseFill; +} + +static constexpr DepthStencilSettings kDirectShadingPass = { + /*frontStencil=*/{}, + /*backStencil=*/ {}, + /*refValue=*/ 0, + /*stencilTest=*/ false, + /*depthCompare=*/CompareOp::kGreater, + /*depthTest=*/ true, + /*depthWrite=*/ true +}; + +} // namespace + +const Renderer& Renderer::StencilTessellatedCurvesAndTris(SkPathFillType fillType) { + // Because each fill type uses a different stencil settings, there is one Renderer per type. + // However, at each stage (stencil vs. cover), there are only two RenderSteps to branch on. + static const MiddleOutFanRenderStep kWindingStencilFan{false}; + static const MiddleOutFanRenderStep kEvenOddStencilFan{true}; + static const TessellateCurvesRenderStep kWindingStencilCurves{false}; + static const TessellateCurvesRenderStep kEvenOddStencilCurves{true}; + + static const Renderer kWindingRenderer{"StencilTessellatedCurvesAndTris[winding]", + &kWindingStencilFan, + &kWindingStencilCurves, + cover_step()}; + static const Renderer kInverseWindingRenderer{"StencilTessellatedCurvesAndTris[inverse-winding]", + &kWindingStencilFan, + &kWindingStencilCurves, + inverse_cover_step()}; + static const Renderer kEvenOddRenderer{"StencilTessellatedCurvesAndTris[evenodd]", + &kEvenOddStencilFan, + &kEvenOddStencilCurves, + cover_step()}; + static const Renderer kInverseEvenOddRenderer{"StencilTessellatedCurvesAndTris[inverse-evenodd]", + &kEvenOddStencilFan, + &kEvenOddStencilCurves, + inverse_cover_step()}; + + switch(fillType) { + case SkPathFillType::kWinding: return kWindingRenderer; + case SkPathFillType::kEvenOdd: return kEvenOddRenderer; + case SkPathFillType::kInverseWinding: return kInverseWindingRenderer; + case SkPathFillType::kInverseEvenOdd: return kInverseEvenOddRenderer; + } + SkUNREACHABLE; +} + +const Renderer& Renderer::StencilTessellatedWedges(SkPathFillType fillType) { + static const TessellateWedgesRenderStep kWindingStencilWedges{"winding", kWindingStencilPass}; + static const TessellateWedgesRenderStep kEvenOddStencilWedges{"even-odd", kEvenOddStencilPass}; + + static const Renderer kWindingRenderer{"StencilTessellatedWedges[winding]", + &kWindingStencilWedges, + cover_step()}; + static const Renderer kInverseWindingRenderer{"StencilTessellatedWedges[inverse-winding]", + &kWindingStencilWedges, + inverse_cover_step()}; + static const Renderer kEvenOddRenderer{"StencilTessellatedWedges[evenodd]", + &kEvenOddStencilWedges, + cover_step()}; + static const Renderer kInverseEvenOddRenderer{"StencilTessellatedWedges[inverse-evenodd]", + &kEvenOddStencilWedges, + inverse_cover_step()}; + + switch(fillType) { + case SkPathFillType::kWinding: return kWindingRenderer; + case SkPathFillType::kEvenOdd: return kEvenOddRenderer; + case SkPathFillType::kInverseWinding: return kInverseWindingRenderer; + case SkPathFillType::kInverseEvenOdd: return kInverseEvenOddRenderer; + } + SkUNREACHABLE; +} + +const Renderer& Renderer::ConvexTessellatedWedges() { + static const TessellateWedgesRenderStep kConvexWedges{"convex", kDirectShadingPass}; + static const Renderer kConvexWedgeRenderer{"ConvexTessellatedWedges", &kConvexWedges}; + return kConvexWedgeRenderer; +} + +} // namespace skgpu diff --git a/third_party/skia/src/gpu/graphite/render/TessellateCurvesRenderStep.cpp b/third_party/skia/src/gpu/graphite/render/TessellateCurvesRenderStep.cpp new file mode 100644 index 000000000000..b5f1fa411acb --- /dev/null +++ b/third_party/skia/src/gpu/graphite/render/TessellateCurvesRenderStep.cpp @@ -0,0 +1,213 @@ +/* + * 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/render/TessellateCurvesRenderStep.h" + +#include "src/gpu/graphite/DrawGeometry.h" +#include "src/gpu/graphite/DrawWriter.h" +#include "src/gpu/graphite/render/StencilAndCoverDSS.h" + +#include "src/gpu/tessellate/AffineMatrix.h" +#include "src/gpu/tessellate/FixedCountBufferUtils.h" +#include "src/gpu/tessellate/PatchWriter.h" + +namespace skgpu::graphite { + +namespace { + +// TODO: This can be shared by the other path tessellators if PatchWriter can provide the correct +// index count based on its traits (curve, wedge, or stroke). +// Satisfies API requirements for PatchAllocator template to PatchWriter, using +// DrawWriter::DynamicInstances. +struct DrawWriterAllocator { + DrawWriterAllocator(size_t stride, // required for PatchAllocator + DrawWriter& writer, + BindBufferInfo fixedVertexBuffer, + BindBufferInfo fixedIndexBuffer, + unsigned int reserveCount) + : fInstances(writer, fixedVertexBuffer, fixedIndexBuffer) { + SkASSERT(writer.instanceStride() == stride); + // TODO: Is it worth re-reserving large chunks after this preallocation is used up? Or will + // appending 1 at a time be fine since it's coming from a large vertex buffer alloc anyway? + fInstances.reserve(reserveCount); + } + + VertexWriter append() { + // TODO (skbug.com/13056): Actually compute optimal minimum required index count based on + // PatchWriter's tracked segment count^4. + static constexpr unsigned int kMaxIndexCount = + 3 * NumCurveTrianglesAtResolveLevel(kMaxFixedResolveLevel); + return fInstances.append(kMaxIndexCount, 1); + } + + DrawWriter::DynamicInstances fInstances; +}; + +// No fan point or stroke params, since this is for filled curves (not strokes or wedges) +// No explicit curve type, since we assume infinity is supported on GPUs using graphite +// No color or wide color attribs, since it might always be part of the PaintParams +// or we'll add a color-only fast path to RenderStep later. +static constexpr PatchAttribs kAttribs = PatchAttribs::kPaintDepth; +using Writer = PatchWriter, + AddTrianglesWhenChopping, + DiscardFlatCurves>; + +} // namespace + +TessellateCurvesRenderStep::TessellateCurvesRenderStep(bool evenOdd) + : RenderStep("TessellateCurvesRenderStep", + evenOdd ? "even-odd" : "winding", + Flags::kRequiresMSAA, + /*uniforms=*/{}, + PrimitiveType::kTriangles, + evenOdd ? kEvenOddStencilPass : kWindingStencilPass, + /*vertexAttrs=*/ {{"resolveLevel_and_idx", + VertexAttribType::kFloat2, SkSLType::kFloat2}}, + /*instanceAttrs=*/{{"p01", VertexAttribType::kFloat4, SkSLType::kFloat4}, + {"p23", VertexAttribType::kFloat4, SkSLType::kFloat4}, + {"depth", VertexAttribType::kFloat, SkSLType::kFloat}}) { + SkASSERT(this->instanceStride() == PatchStride(kAttribs)); +} + +TessellateCurvesRenderStep::~TessellateCurvesRenderStep() {} + +const char* TessellateCurvesRenderStep::vertexSkSL() const { + // TODO: Share SkSL with GrPathTessellationShader_MiddleOut + // TODO: This SkSL depends on wangs_formula::as_sksl(), which is currently manually added in + // MtlGraphicsPipeline but could be handled nicer. + return R"( + float resolveLevel = resolveLevel_and_idx.x; + float idxInResolveLevel = resolveLevel_and_idx.y; + float2 localcoord; + if (isinf(p23.z)) { + // This patch is an exact triangle. + localcoord = (resolveLevel != 0) ? p01.zw + : (idxInResolveLevel != 0) ? p23.xy + : p01.xy; + } else { + float2 p0=p01.xy, p1=p01.zw, p2=p23.xy, p3=p23.zw; + float w = -1; // w < 0 tells us to treat the instance as an integral cubic. + float maxResolveLevel; + if (isinf(p23.w)) { + // Conics are 3 points, with the weight in p3. + w = p3.x; + maxResolveLevel = wangs_formula_conic_log2(4, p0, p1, p2, w); + p1 *= w; // Unproject p1. + p3 = p2; // Duplicate the endpoint for shared code that also runs on cubics. + } else { + // The patch is an integral cubic. + maxResolveLevel = wangs_formula_cubic_log2(4, p0, p1, p2, p3, float2x2(1.0)); + } + if (resolveLevel > maxResolveLevel) { + // This vertex is at a higher resolve level than we need. Demote to a lower + // resolveLevel, which will produce a degenerate triangle. + idxInResolveLevel = floor(ldexp(idxInResolveLevel, + int(maxResolveLevel - resolveLevel))); + resolveLevel = maxResolveLevel; + } + // Promote our location to a discrete position in the maximum fixed resolve level. + // This is extra paranoia to ensure we get the exact same fp32 coordinates for + // colocated points from different resolve levels (e.g., the vertices T=3/4 and + // T=6/8 should be exactly colocated). + float fixedVertexID = floor(.5 + ldexp(idxInResolveLevel, int(5 - resolveLevel))); + if (0 < fixedVertexID && fixedVertexID < 32) { + float T = fixedVertexID * (1 / 32.0); + + // Evaluate at T. Use De Casteljau's for its accuracy and stability. + float2 ab = mix(p0, p1, T); + float2 bc = mix(p1, p2, T); + float2 cd = mix(p2, p3, T); + float2 abc = mix(ab, bc, T); + float2 bcd = mix(bc, cd, T); + float2 abcd = mix(abc, bcd, T); + + // Evaluate the conic weight at T. + float u = mix(1.0, w, T); + float v = w + 1 - u; // == mix(w, 1, T) + float uv = mix(u, v, T); + + localcoord = (w < 0) ? /*cubic*/ abcd : /*conic*/ abc/uv; + } else { + localcoord = (fixedVertexID == 0) ? p0.xy : p3.xy; + } + } + float4 devPosition = float4(localcoord.xy, depth, 1.0);)"; +} + +void TessellateCurvesRenderStep::writeVertices(DrawWriter* dw, const DrawGeometry& geom) const { + SkPath path = geom.shape().asPath(); // TODO: Iterate the Shape directly + + BindBufferInfo fixedVertexBuffer = dw->bufferManager()->getStaticBuffer( + BufferType::kVertex, + FixedCountCurves::WriteVertexBuffer, + FixedCountCurves::VertexBufferSize); + BindBufferInfo fixedIndexBuffer = dw->bufferManager()->getStaticBuffer( + BufferType::kIndex, + FixedCountCurves::WriteIndexBuffer, + FixedCountCurves::IndexBufferSize); + + int patchReserveCount = FixedCountCurves::PreallocCount(path.countVerbs()); + Writer writer{kAttribs, kMaxParametricSegments, + *dw, fixedVertexBuffer, fixedIndexBuffer, patchReserveCount}; + + writer.updatePaintDepthAttrib(geom.order().depthAsFloat()); + + // TODO: Is it better to pre-transform on the CPU and only have a matrix uniform to compute + // local coords, or is it better to always transform on the GPU (less CPU usage, more + // uniform data to upload, dependent on push constants or storage buffers for good batching) + + // Currently no additional transform is applied by the GPU. + wangs_formula::VectorXform shaderXform(SkMatrix::I()); + // TODO: This doesn't handle perspective yet, and ideally wouldn't go through SkMatrix. + // It may not be relevant, though, if transforms are applied on the GPU and we only need to + // determine an approximate 2x2 for 'shaderXform' and Wang's formula evaluation. + AffineMatrix m(geom.transform().matrix().asM33()); + + // TODO: For filled curves, the path verb loop is simple enough that it's not too big a deal + // to copy the logic from PathCurveTessellator::write_patches. It may be required if we end + // up switching to a shape iterator in graphite vs. a path iterator in ganesh, or if + // graphite does not control point transformation on the CPU. On the other hand, if we + // provide a templated WritePatches function, the iterator could also be a template arg in + // addition to PatchWriter's traits. Whatever pattern we choose will be based more on what's + // best for the wedge and stroke case, which have more complex loops. + for (auto [verb, pts, w] : SkPathPriv::Iterate(path)) { + switch (verb) { + case SkPathVerb::kQuad: { + auto [p0, p1] = m.map2Points(pts); + auto p2 = m.map1Point(pts+2); + + writer.writeQuadratic(p0, p1, p2, shaderXform); + break; + } + + case SkPathVerb::kConic: { + auto [p0, p1] = m.map2Points(pts); + auto p2 = m.map1Point(pts+2); + + writer.writeConic(p0, p1, p2, *w, shaderXform); + break; + } + + case SkPathVerb::kCubic: { + auto [p0, p1] = m.map2Points(pts); + auto [p2, p3] = m.map2Points(pts+2); + + writer.writeCubic(p0, p1, p2, p3, shaderXform); + break; + } + + default: break; + } + } +} + +void TessellateCurvesRenderStep::writeUniforms(const DrawGeometry&, SkPipelineDataGatherer*) const { + // Control points are pre-transformed to device space on the CPU, so no uniforms needed. +} + +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/render/TessellateCurvesRenderStep.h b/third_party/skia/src/gpu/graphite/render/TessellateCurvesRenderStep.h new file mode 100644 index 000000000000..5823a1d1094b --- /dev/null +++ b/third_party/skia/src/gpu/graphite/render/TessellateCurvesRenderStep.h @@ -0,0 +1,31 @@ +/* + * 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_render_TessellateCurvesRenderStep_DEFINED +#define skgpu_graphite_render_TessellateCurvesRenderStep_DEFINED + +#include "src/gpu/graphite/Renderer.h" + +namespace skgpu::graphite { + +class TessellateCurvesRenderStep final : public RenderStep { +public: + // TODO: If this takes DepthStencilSettings directly and a way to adjust the flags to specify + // that it performs shading, this RenderStep definition can be shared between the stencil and + // the convex rendering variants. + TessellateCurvesRenderStep(bool evenOdd); + + ~TessellateCurvesRenderStep() override; + + const char* vertexSkSL() const override; + void writeVertices(DrawWriter*, const DrawGeometry&) const override; + void writeUniforms(const DrawGeometry&, SkPipelineDataGatherer*) const override; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_render_TessellateCurvesRenderStep_DEFINED diff --git a/third_party/skia/src/gpu/graphite/render/TessellateWedgesRenderStep.cpp b/third_party/skia/src/gpu/graphite/render/TessellateWedgesRenderStep.cpp new file mode 100644 index 000000000000..d3d322aa2564 --- /dev/null +++ b/third_party/skia/src/gpu/graphite/render/TessellateWedgesRenderStep.cpp @@ -0,0 +1,248 @@ +/* + * 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/render/TessellateWedgesRenderStep.h" + +#include "src/gpu/graphite/DrawGeometry.h" +#include "src/gpu/graphite/DrawWriter.h" + +#include "src/gpu/tessellate/AffineMatrix.h" +#include "src/gpu/tessellate/FixedCountBufferUtils.h" +#include "src/gpu/tessellate/MidpointContourParser.h" +#include "src/gpu/tessellate/PatchWriter.h" + +namespace skgpu::graphite { + +namespace { + +// TODO: This is very similar to DrawWriterAllocator in TessellateCurveRenderStep except that the +// index count is calculated differently. These will be merged once skbug.com/13056 is resolved. +struct DrawWriterAllocator { + DrawWriterAllocator(size_t stride, // required for PatchAllocator + DrawWriter& writer, + BindBufferInfo fixedVertexBuffer, + BindBufferInfo fixedIndexBuffer, + unsigned int reserveCount) + : fInstances(writer, fixedVertexBuffer, fixedIndexBuffer) { + SkASSERT(writer.instanceStride() == stride); + // TODO: Is it worth re-reserving large chunks after this preallocation is used up? Or will + // appending 1 at a time be fine since it's coming from a large vertex buffer alloc anyway? + fInstances.reserve(reserveCount); + } + + VertexWriter append() { + // TODO (skbug.com/13056): Actually compute optimal minimum required index count based on + // PatchWriter's tracked segment count^4. + // Wedges use one extra triangle to connect to the fan point compared to the curve version. + static constexpr unsigned int kMaxIndexCount = + 3 * (1 + NumCurveTrianglesAtResolveLevel(kMaxFixedResolveLevel)); + return fInstances.append(kMaxIndexCount, 1); + } + + DrawWriter::DynamicInstances fInstances; +}; + +// Only kFanPoint, no stroke params, since this is for filled wedges. +// No explicit curve type, since we assume infinity is supported on GPUs using graphite +// No color or wide color attribs, since it might always be part of the PaintParams +// or we'll add a color-only fast path to RenderStep later. +static constexpr PatchAttribs kAttribs = PatchAttribs::kFanPoint | + PatchAttribs::kPaintDepth; +using Writer = PatchWriter, + Required>; + +} // namespace + +TessellateWedgesRenderStep::TessellateWedgesRenderStep(std::string_view variantName, + DepthStencilSettings depthStencilSettings) + : RenderStep("TessellateWedgesRenderStep", + variantName, + Flags::kRequiresMSAA | + (depthStencilSettings.fDepthWriteEnabled ? Flags::kPerformsShading + : Flags::kNone), + /*uniforms=*/{}, + PrimitiveType::kTriangles, + depthStencilSettings, + /*vertexAttrs=*/ {{"resolveLevel_and_idx", + VertexAttribType::kFloat2, SkSLType::kFloat2}}, + /*instanceAttrs=*/{{"p01", VertexAttribType::kFloat4, SkSLType::kFloat4}, + {"p23", VertexAttribType::kFloat4, SkSLType::kFloat4}, + {"fanPointAttrib", VertexAttribType::kFloat2, + SkSLType::kFloat2}, + {"depth", VertexAttribType::kFloat, SkSLType::kFloat}}) { + SkASSERT(this->instanceStride() == PatchStride(kAttribs)); +} + +TessellateWedgesRenderStep::~TessellateWedgesRenderStep() {} + +const char* TessellateWedgesRenderStep::vertexSkSL() const { + // TODO: Share SkSL with GrPathTessellationShader_MiddleOut + // TODO: This SkSL depends on wangs_formula::as_sksl(), which is currently manually added in + // MtlGraphicsPipeline but could be handled nicer. + return R"( + float resolveLevel = resolveLevel_and_idx.x; + float idxInResolveLevel = resolveLevel_and_idx.y; + float2 localcoord; + + // A negative resolve level means this is the fan point. + // TODO: This "if" handling a negative resolve level and reading 'fanPointAttrib' is the + // only difference between this SkSL and TessellateCurvesRenderStep's SkSL. + if (resolveLevel < 0) { + localcoord = fanPointAttrib; + } else if (isinf(p23.z)) { + // This patch is an exact triangle. + localcoord = (resolveLevel != 0) ? p01.zw + : (idxInResolveLevel != 0) ? p23.xy + : p01.xy; + } else { + float2 p0=p01.xy, p1=p01.zw, p2=p23.xy, p3=p23.zw; + float w = -1; // w < 0 tells us to treat the instance as an integral cubic. + float maxResolveLevel; + if (isinf(p23.w)) { + // Conics are 3 points, with the weight in p3. + w = p3.x; + maxResolveLevel = wangs_formula_conic_log2(4, p0, p1, p2, w); + p1 *= w; // Unproject p1. + p3 = p2; // Duplicate the endpoint for shared code that also runs on cubics. + } else { + // The patch is an integral cubic. + maxResolveLevel = wangs_formula_cubic_log2(4, p0, p1, p2, p3, float2x2(1.0)); + } + if (resolveLevel > maxResolveLevel) { + // This vertex is at a higher resolve level than we need. Demote to a lower + // resolveLevel, which will produce a degenerate triangle. + idxInResolveLevel = floor(ldexp(idxInResolveLevel, + int(maxResolveLevel - resolveLevel))); + resolveLevel = maxResolveLevel; + } + // Promote our location to a discrete position in the maximum fixed resolve level. + // This is extra paranoia to ensure we get the exact same fp32 coordinates for + // colocated points from different resolve levels (e.g., the vertices T=3/4 and + // T=6/8 should be exactly colocated). + float fixedVertexID = floor(.5 + ldexp(idxInResolveLevel, int(5 - resolveLevel))); + if (0 < fixedVertexID && fixedVertexID < 32) { + float T = fixedVertexID * (1 / 32.0); + + // Evaluate at T. Use De Casteljau's for its accuracy and stability. + float2 ab = mix(p0, p1, T); + float2 bc = mix(p1, p2, T); + float2 cd = mix(p2, p3, T); + float2 abc = mix(ab, bc, T); + float2 bcd = mix(bc, cd, T); + float2 abcd = mix(abc, bcd, T); + + // Evaluate the conic weight at T. + float u = mix(1.0, w, T); + float v = w + 1 - u; // == mix(w, 1, T) + float uv = mix(u, v, T); + + localcoord = (w < 0) ? /*cubic*/ abcd : /*conic*/ abc/uv; + } else { + localcoord = (fixedVertexID == 0) ? p0.xy : p3.xy; + } + } + float4 devPosition = float4(localcoord.xy, depth, 1.0);)"; +} + +void TessellateWedgesRenderStep::writeVertices(DrawWriter* dw, const DrawGeometry& geom) const { + SkPath path = geom.shape().asPath(); // TODO: Iterate the Shape directly + + BindBufferInfo fixedVertexBuffer = dw->bufferManager()->getStaticBuffer( + BufferType::kVertex, + FixedCountWedges::WriteVertexBuffer, + FixedCountWedges::VertexBufferSize); + BindBufferInfo fixedIndexBuffer = dw->bufferManager()->getStaticBuffer( + BufferType::kIndex, + FixedCountWedges::WriteIndexBuffer, + FixedCountWedges::IndexBufferSize); + + int patchReserveCount = FixedCountWedges::PreallocCount(path.countVerbs()); + Writer writer{kAttribs, kMaxParametricSegments, + *dw, fixedVertexBuffer, fixedIndexBuffer, patchReserveCount}; + writer.updatePaintDepthAttrib(geom.order().depthAsFloat()); + + // TODO: Is it better to pre-transform on the CPU and only have a matrix uniform to compute + // local coords, or is it better to always transform on the GPU (less CPU usage, more + // uniform data to upload, dependent on push constants or storage buffers for good batching) + + // Currently no additional transform is applied by the GPU. + wangs_formula::VectorXform shaderXform(SkMatrix::I()); + // TODO: This doesn't handle perspective yet, and ideally wouldn't go through SkMatrix. + // It may not be relevant, though, if transforms are applied on the GPU and we only need to + // determine an approximate 2x2 for 'shaderXform' and Wang's formula evaluation. + AffineMatrix m(geom.transform().matrix().asM33()); + + // TODO: Essentially the same as PathWedgeTessellator::write_patches but with a different + // PatchWriter template. + // For wedges, we iterate over each contour explicitly, using a fan point position that is in + // the midpoint of the current contour. + MidpointContourParser parser{path}; + while (parser.parseNextContour()) { + writer.updateFanPointAttrib(m.mapPoint(parser.currentMidpoint())); + float2 lastPoint = {0, 0}; + float2 startPoint = {0, 0}; + for (auto [verb, pts, w] : parser.currentContour()) { + switch (verb) { + case SkPathVerb::kMove: { + startPoint = lastPoint = m.map1Point(pts); + break; + } + + case SkPathVerb::kLine: { + // Unlike curve tessellation, wedges have to handle lines as part of the patch, + // effectively forming a single triangle with the fan point. + auto [p0, p1] = m.map2Points(pts); + writer.writeLine(p0, p1); + lastPoint = p1; + break; + } + + case SkPathVerb::kQuad: { + auto [p0, p1] = m.map2Points(pts); + auto p2 = m.map1Point(pts+2); + + writer.writeQuadratic(p0, p1, p2, shaderXform); + lastPoint = p2; + break; + } + + case SkPathVerb::kConic: { + auto [p0, p1] = m.map2Points(pts); + auto p2 = m.map1Point(pts+2); + + writer.writeConic(p0, p1, p2, *w, shaderXform); + lastPoint = p2; + break; + } + + case SkPathVerb::kCubic: { + auto [p0, p1] = m.map2Points(pts); + auto [p2, p3] = m.map2Points(pts+2); + + writer.writeCubic(p0, p1, p2, p3, shaderXform); + lastPoint = p3; + break; + } + + default: break; + } + } + + // Explicitly close the contour with another line segment, which also differs from curve + // tessellation since that approach's triangle step automatically closes the contour. + if (any(lastPoint != startPoint)) { + writer.writeLine(lastPoint, startPoint); + } + } +} + +void TessellateWedgesRenderStep::writeUniforms(const DrawGeometry&, SkPipelineDataGatherer*) const { + // Control points are pre-transformed to device space on the CPU, so no uniforms needed. +} + +} // namespace skgpu::graphite diff --git a/third_party/skia/src/gpu/graphite/render/TessellateWedgesRenderStep.h b/third_party/skia/src/gpu/graphite/render/TessellateWedgesRenderStep.h new file mode 100644 index 000000000000..af8e101bc38d --- /dev/null +++ b/third_party/skia/src/gpu/graphite/render/TessellateWedgesRenderStep.h @@ -0,0 +1,30 @@ +/* + * 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_render_TessellateWedgesRenderStep_DEFINED +#define skgpu_graphite_render_TessellateWedgesRenderStep_DEFINED + +#include "src/gpu/graphite/Renderer.h" + +namespace skgpu::graphite { + +class TessellateWedgesRenderStep final : public RenderStep { +public: + TessellateWedgesRenderStep(std::string_view variantName, + DepthStencilSettings depthStencilSettings); + + ~TessellateWedgesRenderStep() override; + + const char* vertexSkSL() const override; + void writeVertices(DrawWriter*, const DrawGeometry&) const override; + void writeUniforms(const DrawGeometry&, SkPipelineDataGatherer*) const override; + +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_render_TessellateWedgesRenderStep_DEFINED diff --git a/third_party/skia/src/gpu/tessellate/BUILD.bazel b/third_party/skia/src/gpu/tessellate/BUILD.bazel index ad918e4f06e3..949bb6851508 100644 --- a/third_party/skia/src/gpu/tessellate/BUILD.bazel +++ b/third_party/skia/src/gpu/tessellate/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "AffineMatrix_hdr", hdrs = ["AffineMatrix.h"], @@ -38,135 +40,11 @@ generated_cc_atom( hdrs = ["PatchWriter.h"], visibility = ["//:__subpackages__"], deps = [ - ":Tessellation_hdr", - ":WangsFormula_hdr", - "//include/private:SkColorData_hdr", - "//src/gpu:GrVertexChunkArray_hdr", - ], -) - -generated_cc_atom( - name = "PatchWriter_src", - srcs = ["PatchWriter.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":MiddleOutPolygonTriangulator_hdr", - ":PatchWriter_hdr", - ":PathTessellator_hdr", - ":StrokeTessellator_hdr", - ], -) - -generated_cc_atom( - name = "PathCurveTessellator_hdr", - hdrs = ["PathCurveTessellator.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":PathTessellator_hdr", - "//src/core:SkArenaAlloc_hdr", - ], -) - -generated_cc_atom( - name = "PathCurveTessellator_src", - srcs = ["PathCurveTessellator.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":AffineMatrix_hdr", ":MiddleOutPolygonTriangulator_hdr", - ":PatchWriter_hdr", - ":PathCurveTessellator_hdr", - ":WangsFormula_hdr", - "//src/gpu:GrMeshDrawTarget_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrResourceProvider_hdr", - ], -) - -generated_cc_atom( - name = "PathTessellator_hdr", - hdrs = ["PathTessellator.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":PatchWriter_hdr", ":Tessellation_hdr", - "//src/gpu:GrGpuBuffer_hdr", - "//src/gpu:GrVertexChunkArray_hdr", - ], -) - -generated_cc_atom( - name = "PathWedgeTessellator_hdr", - hdrs = ["PathWedgeTessellator.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":PathTessellator_hdr", - "//src/core:SkArenaAlloc_hdr", - ], -) - -generated_cc_atom( - name = "PathWedgeTessellator_src", - srcs = ["PathWedgeTessellator.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":AffineMatrix_hdr", - ":PatchWriter_hdr", - ":PathCurveTessellator_hdr", - ":PathWedgeTessellator_hdr", ":WangsFormula_hdr", - "//src/core:SkPathPriv_hdr", - "//src/gpu:GrMeshDrawTarget_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrResourceProvider_hdr", - ], -) - -generated_cc_atom( - name = "StrokeFixedCountTessellator_hdr", - hdrs = ["StrokeFixedCountTessellator.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":StrokeTessellator_hdr", - "//src/gpu:GrGpuBuffer_hdr", - ], -) - -generated_cc_atom( - name = "StrokeFixedCountTessellator_src", - srcs = ["StrokeFixedCountTessellator.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":PatchWriter_hdr", - ":StrokeFixedCountTessellator_hdr", - ":StrokeIterator_hdr", - ":WangsFormula_hdr", - "//src/core:SkGeometry_hdr", - "//src/gpu:GrMeshDrawTarget_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrResourceProvider_hdr", - ], -) - -generated_cc_atom( - name = "StrokeHardwareTessellator_hdr", - hdrs = ["StrokeHardwareTessellator.h"], - visibility = ["//:__subpackages__"], - deps = [":StrokeTessellator_hdr"], -) - -generated_cc_atom( - name = "StrokeHardwareTessellator_src", - srcs = ["StrokeHardwareTessellator.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":PatchWriter_hdr", - ":StrokeHardwareTessellator_hdr", - ":WangsFormula_hdr", - "//src/core:SkGeometry_hdr", - "//src/core:SkPathPriv_hdr", - "//src/gpu:GrMeshDrawTarget_hdr", - "//src/gpu:GrOpFlushState_hdr", + "//include/private:SkColorData_hdr", + "//src/gpu:BufferWriter_hdr", ], ) @@ -181,24 +59,12 @@ generated_cc_atom( ], ) -generated_cc_atom( - name = "StrokeTessellator_hdr", - hdrs = ["StrokeTessellator.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":Tessellation_hdr", - "//include/core:SkPath_hdr", - "//include/core:SkStrokeRec_hdr", - "//include/private:SkColorData_hdr", - "//src/gpu:GrVertexChunkArray_hdr", - ], -) - generated_cc_atom( name = "Tessellation_hdr", hdrs = ["Tessellation.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkPoint_hdr", "//include/core:SkStrokeRec_hdr", "//include/gpu:GrTypes_hdr", "//include/private:SkVx_hdr", @@ -234,3 +100,32 @@ generated_cc_atom( "//include/private:SkFloatingPoint_hdr", ], ) + +generated_cc_atom( + name = "MidpointContourParser_hdr", + hdrs = ["MidpointContourParser.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkPath_hdr", + "//src/core:SkPathPriv_hdr", + ], +) + +generated_cc_atom( + name = "FixedCountBufferUtils_hdr", + hdrs = ["FixedCountBufferUtils.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/core:SkPaint_hdr"], +) + +generated_cc_atom( + name = "FixedCountBufferUtils_src", + srcs = ["FixedCountBufferUtils.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":FixedCountBufferUtils_hdr", + "//include/private:SkTArray_hdr", + "//src/core:SkMathPriv_hdr", + "//src/gpu:BufferWriter_hdr", + ], +) diff --git a/third_party/skia/src/gpu/tessellate/FixedCountBufferUtils.cpp b/third_party/skia/src/gpu/tessellate/FixedCountBufferUtils.cpp new file mode 100644 index 000000000000..7b28a2996a15 --- /dev/null +++ b/third_party/skia/src/gpu/tessellate/FixedCountBufferUtils.cpp @@ -0,0 +1,134 @@ +/* + * 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/tessellate/FixedCountBufferUtils.h" + +#include "include/private/SkTArray.h" +#include "src/core/SkMathPriv.h" +#include "src/gpu/BufferWriter.h" + +#include + +namespace skgpu { + +namespace { + +void write_curve_index_buffer_base_index(VertexWriter vertexWriter, + size_t bufferSize, + uint16_t baseIndex) { + SkASSERT(bufferSize % (sizeof(uint16_t) * 3) == 0); + int triangleCount = bufferSize / (sizeof(uint16_t) * 3); + SkASSERT(triangleCount >= 1); + SkTArray> indexData(triangleCount); + + // Connect the vertices with a middle-out triangulation. Refer to InitFixedCountVertexBuffer() + // for the exact vertex ordering. + // + // Resolve level 1 is just a single triangle at T=[0, 1/2, 1]. + const auto* neighborInLastResolveLevel = &indexData.push_back({baseIndex, + (uint16_t)(baseIndex + 2), + (uint16_t)(baseIndex + 1)}); + + // Resolve levels 2..maxResolveLevel + int maxResolveLevel = SkPrevLog2(triangleCount + 1); + uint16_t nextIndex = baseIndex + 3; + SkASSERT(NumCurveTrianglesAtResolveLevel(maxResolveLevel) == triangleCount); + for (int resolveLevel = 2; resolveLevel <= maxResolveLevel; ++resolveLevel) { + SkDEBUGCODE(auto* firstTriangleInCurrentResolveLevel = indexData.end()); + int numOuterTrianglelsInResolveLevel = 1 << (resolveLevel - 1); + SkASSERT(numOuterTrianglelsInResolveLevel % 2 == 0); + int numTrianglePairsInResolveLevel = numOuterTrianglelsInResolveLevel >> 1; + for (int i = 0; i < numTrianglePairsInResolveLevel; ++i) { + // First triangle shares the left edge of "neighborInLastResolveLevel". + indexData.push_back({(*neighborInLastResolveLevel)[0], + nextIndex++, + (*neighborInLastResolveLevel)[1]}); + // Second triangle shares the right edge of "neighborInLastResolveLevel". + indexData.push_back({(*neighborInLastResolveLevel)[1], + nextIndex++, + (*neighborInLastResolveLevel)[2]}); + ++neighborInLastResolveLevel; + } + SkASSERT(neighborInLastResolveLevel == firstTriangleInCurrentResolveLevel); + } + SkASSERT(indexData.count() == triangleCount); + SkASSERT(nextIndex == baseIndex + triangleCount + 2); + + vertexWriter << VertexWriter::Array(indexData.data(), indexData.count()); +} + +} // namespace + +void FixedCountCurves::WriteVertexBuffer(VertexWriter vertexWriter, size_t bufferSize) { + SkASSERT(bufferSize >= sizeof(SkPoint) * 2); + SkASSERT(bufferSize % sizeof(SkPoint) == 0); + int vertexCount = bufferSize / sizeof(SkPoint); + SkASSERT(vertexCount > 3); + SkDEBUGCODE(auto end = vertexWriter.mark(vertexCount * sizeof(SkPoint));) + + // Lay out the vertices in "middle-out" order: + // + // T= 0/1, 1/1, ; resolveLevel=0 + // 1/2, ; resolveLevel=1 (0/2 and 2/2 are already in resolveLevel 0) + // 1/4, 3/4, ; resolveLevel=2 (2/4 is already in resolveLevel 1) + // 1/8, 3/8, 5/8, 7/8, ; resolveLevel=3 (2/8 and 6/8 are already in resolveLevel 2) + // ... ; resolveLevel=... + // + // Resolve level 0 is just the beginning and ending vertices. + vertexWriter << (float)0/*resolveLevel*/ << (float)0/*idx*/; + vertexWriter << (float)0/*resolveLevel*/ << (float)1/*idx*/; + + // Resolve levels 1..kMaxResolveLevel. + int maxResolveLevel = SkPrevLog2(vertexCount - 1); + SkASSERT((1 << maxResolveLevel) + 1 == vertexCount); + for (int resolveLevel = 1; resolveLevel <= maxResolveLevel; ++resolveLevel) { + int numSegmentsInResolveLevel = 1 << resolveLevel; + // Write out the odd vertices in this resolveLevel. The even vertices were already written + // out in previous resolveLevels and will be indexed from there. + for (int i = 1; i < numSegmentsInResolveLevel; i += 2) { + vertexWriter << (float)resolveLevel << (float)i; + } + } + + SkASSERT(vertexWriter.mark() == end); +} + +void FixedCountCurves::WriteIndexBuffer(VertexWriter vertexWriter, size_t bufferSize) { + write_curve_index_buffer_base_index(std::move(vertexWriter), bufferSize, /*baseIndex=*/0); +} + +void FixedCountWedges::WriteVertexBuffer(VertexWriter vertexWriter, size_t bufferSize) { + SkASSERT(bufferSize >= sizeof(SkPoint)); + + // Start out with the fan point. A negative resolve level indicates the fan point. + vertexWriter << -1.f/*resolveLevel*/ << -1.f/*idx*/; + + // The rest is the same as for curves. + FixedCountCurves::WriteVertexBuffer(std::move(vertexWriter), bufferSize - sizeof(SkPoint)); +} + +void FixedCountWedges::WriteIndexBuffer(VertexWriter vertexWriter, size_t bufferSize) { + SkASSERT(bufferSize >= sizeof(uint16_t) * 3); + + // Start out with the fan triangle. + vertexWriter << (uint16_t)0 << (uint16_t)1 << (uint16_t)2; + + // The rest is the same as for curves, with a baseIndex of 1. + write_curve_index_buffer_base_index(std::move(vertexWriter), + bufferSize - sizeof(uint16_t) * 3, + /*baseIndex=*/1); +} + +void FixedCountStrokes::WriteVertexBuffer(VertexWriter vertexWriter, size_t bufferSize) { + SkASSERT(bufferSize % (sizeof(float) * 2) == 0); + int edgeCount = bufferSize / (sizeof(float) * 2); + for (int i = 0; i < edgeCount; ++i) { + vertexWriter << (float)i << (float)-i; + } +} + +} // namespace skgpu diff --git a/third_party/skia/src/gpu/tessellate/FixedCountBufferUtils.h b/third_party/skia/src/gpu/tessellate/FixedCountBufferUtils.h new file mode 100644 index 000000000000..2ef57d93f7d4 --- /dev/null +++ b/third_party/skia/src/gpu/tessellate/FixedCountBufferUtils.h @@ -0,0 +1,189 @@ +/* + * 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 tessellate_FixedCountBufferUtils_DEFINED +#define tessellate_FixedCountBufferUtils_DEFINED + +#include "include/core/SkPaint.h" + +#include + +namespace skgpu { + +struct VertexWriter; + +// This is the maximum number of segments contained in our vertex and index buffers for +// fixed-count rendering. If rendering in fixed-count mode and a curve requires more segments, +// it must be chopped. +constexpr static int kMaxFixedResolveLevel = 5; + +// This is the maximum number of parametric segments (linear sections) that a curve can be split +// into. This is the same for path filling and stroking, although fixed-count stroking also uses +// additional vertices to handle radial segments, joins, and caps. Additionally the fixed-count +// path filling algorithms snap their dynamic vertex counts to powers-of-two, whereas the stroking +// algorithm does not. +constexpr static int kMaxParametricSegments = 1 << kMaxFixedResolveLevel; + +// Returns an upper bound on the number of combined edges there might be from all inner fans in +// a list of paths (specified by their total combined verb count). +constexpr static int MaxCombinedFanEdgesInPaths(int totalCombinedPathVerbCnt) { + // Path fans might have an extra edge from an implicit kClose at the end, but they also + // always begin with kMove. So the max possible number of edges in a single path is equal to + // the number of verbs. Therefore, the max number of combined fan edges in a path list is + // the number of combined verbs from the paths in the list. + return totalCombinedPathVerbCnt; +} + +// How many triangles are in a curve with 2^resolveLevel line segments? +// Resolve level defines the tessellation factor for filled paths drawn using curves or wedges. +constexpr static int NumCurveTrianglesAtResolveLevel(int resolveLevel) { + // resolveLevel=0 -> 0 line segments -> 0 triangles + // resolveLevel=1 -> 2 line segments -> 1 triangle + // resolveLevel=2 -> 4 line segments -> 3 triangles + // resolveLevel=3 -> 8 line segments -> 7 triangles + // ... + return (1 << resolveLevel) - 1; +} + +// Returns the fixed number of edges that are always emitted with the given join type. If the +// join is round, the caller needs to account for the additional radial edges on their own. +// Specifically, each join always emits: +// +// * Two colocated edges at the beginning (a full-width edge to seam with the preceding stroke +// and a half-width edge to begin the join). +// +// * An extra edge in the middle for miter joins, or else a variable number of radial edges +// for round joins (the caller is responsible for counting radial edges from round joins). +// +// * A half-width edge at the end of the join that will be colocated with the first +// (full-width) edge of the stroke. +// +constexpr static int NumFixedEdgesInJoin(SkPaint::Join joinType) { + switch (joinType) { + case SkPaint::kMiter_Join: + return 4; + case SkPaint::kRound_Join: + // The caller is responsible for counting the variable number of middle, radial + // segments on round joins. + [[fallthrough]]; + case SkPaint::kBevel_Join: + return 3; + } + SkUNREACHABLE; +} + +// Returns the worst-case number of edges we will need in order to draw a join of the given type. +constexpr static int WorstCaseEdgesInJoin(SkPaint::Join joinType, + float numRadialSegmentsPerRadian) { + int numEdges = NumFixedEdgesInJoin(joinType); + if (joinType == SkPaint::kRound_Join) { + // For round joins we need to count the radial edges on our own. Account for a worst-case + // join of 180 degrees (SK_ScalarPI radians). + numEdges += std::max(SkScalarCeilToInt(numRadialSegmentsPerRadian * SK_ScalarPI) - 1, 0); + } + return numEdges; +} + +/** + * Fixed-count tessellation operates in three modes, two for filling paths, and one for stroking. + * These modes may have additional sub-variations, but in terms of vertex buffer management, these + * three categories are sufficient: + * + * - FixedCountCurves: for filling paths where just the curves are tessellated. Additional measures + * to fill space between the inner control points of the paths are needed. + * - FixedCountWedges: for filling paths by tessellating the curves and adding an additional inline + * triangle with a shared vertex that all verbs connect to. Works with PatchAttribs::kFanPoint. + * - FixedCountStrokes: for stroking a path. Likely paired with PatchAttribs::kJoinControlPoint and + * PatchAttribs::kStrokeParams. + * + * The three types defined below for these three modes provide utility functions for heuristics to + * choose pre-allocation size when accumulating instance attributes with a PatchWriter, and + * functions for creating static/GPU-private vertex and index buffers that are used as the template + * for instanced rendering. + */ +class FixedCountCurves { + FixedCountCurves() = delete; +public: + // A heuristic function for reserving instance attribute space before using a PatchWriter. + static constexpr int PreallocCount(int totalCombinedPathVerbCnt) { + // Over-allocate enough curves for 1 in 4 to chop. Every chop introduces 2 new patches: + // another curve patch and a triangle patch that glues the two chops together, + // i.e. + 2 * ((count + 3) / 4) == (count + 3) / 2 + return totalCombinedPathVerbCnt + (totalCombinedPathVerbCnt + 3) / 2; + } + + // Return the number of bytes to allocate for a buffer filled via WriteVertexBuffer, assuming + // the shader and curve instances do require more than kMaxParametricSegments segments. + static constexpr size_t VertexBufferSize() { + return (kMaxParametricSegments + 1) * (2 * sizeof(float)); + } + + // As above but for the corresponding index buffer, written via WriteIndexBuffer. + static constexpr size_t IndexBufferSize() { + return NumCurveTrianglesAtResolveLevel(kMaxFixedResolveLevel) * 3 * sizeof(uint16_t); + } + + static void WriteVertexBuffer(VertexWriter, size_t bufferSize); + + static void WriteIndexBuffer(VertexWriter, size_t bufferSize); +}; + +class FixedCountWedges { + FixedCountWedges() = delete; +public: + // These functions provide equivalent functionality to the matching ones in FixedCountCurves, + // but are intended for use with a shader and PatchWriter that has enabled the kFanPoint attrib. + + static constexpr int PreallocCount(int totalCombinedPathVerbCnt) { + // Over-allocate enough wedges for 1 in 4 to chop, i.e., ceil(maxWedges * 5/4) + return (MaxCombinedFanEdgesInPaths(totalCombinedPathVerbCnt) * 5 + 3) / 4; + } + + static constexpr size_t VertexBufferSize() { + return ((kMaxParametricSegments + 1) + 1/*fan vertex*/) * (2 * sizeof(float)); + } + + static constexpr size_t IndexBufferSize() { + return (NumCurveTrianglesAtResolveLevel(kMaxFixedResolveLevel) + 1/*fan triangle*/) * + 3 * sizeof(uint16_t); + } + + static void WriteVertexBuffer(VertexWriter, size_t bufferSize); + + static void WriteIndexBuffer(VertexWriter, size_t bufferSize); +}; + +class FixedCountStrokes { + FixedCountStrokes() = delete; +public: + // These functions provide equivalent functionality to the matching ones in FixedCountCurves, + // but are intended for a shader that that strokes a path instead of filling, where vertices + // are associated with joins, caps, radial segments, or parametric segments. + // + // NOTE: The fixed-count stroke buffer is only needed when vertex IDs are not available as an + // SkSL built-in. And unlike the curve and wedge variants, stroke drawing never relies on an + // index buffer so those functions are not provided. + + static constexpr int PreallocCount(int totalCombinedPathVerbCnt) { + // Over-allocate enough patches for each stroke to chop once, and for 8 extra caps. Since + // we have to chop at inflections, points of 180 degree rotation, and anywhere a stroke + // requires too many parametric segments, many strokes will end up getting choppped. + return (totalCombinedPathVerbCnt * 2) + 8/* caps */; + } + + static constexpr size_t VertexBufferSize(int edgeCount) { + // Each vertex is a single float (explicit id) and each edge is composed of two vertices. + return 2 * edgeCount * sizeof(float); + } + + // Initializes the fallback vertex buffer that should be bound when sk_VertexID is not supported + static void WriteVertexBuffer(VertexWriter, size_t bufferSize); +}; + +} // namespace skgpu + +#endif // tessellate_FixedCountBufferUtils diff --git a/third_party/skia/src/gpu/tessellate/MidpointContourParser.h b/third_party/skia/src/gpu/tessellate/MidpointContourParser.h new file mode 100644 index 000000000000..a633d4c1c83b --- /dev/null +++ b/third_party/skia/src/gpu/tessellate/MidpointContourParser.h @@ -0,0 +1,117 @@ +/* + * 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 tessellate_MidpointContourParser_DEFINED +#define tessellate_MidpointContourParser_DEFINED + +#include "include/core/SkPath.h" +#include "src/core/SkPathPriv.h" + +namespace skgpu { + +// Parses out each contour in a path and tracks the midpoint. Example usage: +// +// MidpointContourParser parser; +// while (parser.parseNextContour()) { +// SkPoint midpoint = parser.currentMidpoint(); +// for (auto [verb, pts] : parser.currentContour()) { +// ... +// } +// } +// +class MidpointContourParser { +public: + MidpointContourParser(const SkPath& path) + : fPath(path) + , fVerbs(SkPathPriv::VerbData(fPath)) + , fNumRemainingVerbs(fPath.countVerbs()) + , fPoints(SkPathPriv::PointData(fPath)) + , fWeights(SkPathPriv::ConicWeightData(fPath)) {} + // Advances the internal state to the next contour in the path. Returns false if there are no + // more contours. + bool parseNextContour() { + bool hasGeometry = false; + for (; fVerbsIdx < fNumRemainingVerbs; ++fVerbsIdx) { + switch (fVerbs[fVerbsIdx]) { + case SkPath::kMove_Verb: + if (!hasGeometry) { + fMidpoint = {0,0}; + fMidpointWeight = 0; + this->advance(); // Resets fPtsIdx to 0 and advances fPoints. + fPtsIdx = 1; // Increment fPtsIdx past the kMove. + continue; + } + if (fPoints[0] != fPoints[fPtsIdx - 1]) { + // There's an implicit close at the end. Add the start point to our mean. + fMidpoint += fPoints[0]; + ++fMidpointWeight; + } + return true; + default: + continue; + case SkPath::kLine_Verb: + ++fPtsIdx; + break; + case SkPath::kConic_Verb: + ++fWtsIdx; + [[fallthrough]]; + case SkPath::kQuad_Verb: + fPtsIdx += 2; + break; + case SkPath::kCubic_Verb: + fPtsIdx += 3; + break; + } + fMidpoint += fPoints[fPtsIdx - 1]; + ++fMidpointWeight; + hasGeometry = true; + } + if (hasGeometry && fPoints[0] != fPoints[fPtsIdx - 1]) { + // There's an implicit close at the end. Add the start point to our mean. + fMidpoint += fPoints[0]; + ++fMidpointWeight; + } + return hasGeometry; + } + + // Allows for iterating the current contour using a range-for loop. + SkPathPriv::Iterate currentContour() { + return SkPathPriv::Iterate(fVerbs, fVerbs + fVerbsIdx, fPoints, fWeights); + } + + SkPoint currentMidpoint() { return fMidpoint * (1.f / fMidpointWeight); } + +private: + void advance() { + fVerbs += fVerbsIdx; + fNumRemainingVerbs -= fVerbsIdx; + fVerbsIdx = 0; + fPoints += fPtsIdx; + fPtsIdx = 0; + fWeights += fWtsIdx; + fWtsIdx = 0; + } + + const SkPath& fPath; + + const uint8_t* fVerbs; + int fNumRemainingVerbs = 0; + int fVerbsIdx = 0; + + const SkPoint* fPoints; + int fPtsIdx = 0; + + const float* fWeights; + int fWtsIdx = 0; + + SkPoint fMidpoint; + int fMidpointWeight; +}; + +} // namespace skgpu + +#endif // tessellate_MidpointContourParser_DEFINED diff --git a/third_party/skia/src/gpu/tessellate/PatchWriter.cpp b/third_party/skia/src/gpu/tessellate/PatchWriter.cpp deleted file mode 100644 index 3c06ca7191aa..000000000000 --- a/third_party/skia/src/gpu/tessellate/PatchWriter.cpp +++ /dev/null @@ -1,185 +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 "src/gpu/tessellate/PatchWriter.h" - -#include "src/gpu/tessellate/MiddleOutPolygonTriangulator.h" - -#if SK_GPU_V1 -#include "src/gpu/tessellate/PathTessellator.h" -#include "src/gpu/tessellate/StrokeTessellator.h" -#endif - -namespace skgpu { - -SK_ALWAYS_INLINE SkPoint to_skpoint(float2 p) { return skvx::bit_pun(p); } - -void write_triangle_stack(PatchWriter* writer, - MiddleOutPolygonTriangulator::PoppedTriangleStack&& stack) { - for (auto [p0, p1, p2] : stack) { - writer->writeTriangle(p0, p1, p2); - } -} - -#if SK_GPU_V1 -PatchWriter::PatchWriter(GrMeshDrawTarget* target, - PathTessellator* tessellator, - int maxTessellationSegments, - int initialPatchAllocCount) - : PatchWriter(target, - &tessellator->fVertexChunkArray, - tessellator->fAttribs, - maxTessellationSegments, - sizeof(SkPoint) * 4 + PatchAttribsStride(tessellator->fAttribs), - initialPatchAllocCount) { -} - -PatchWriter::PatchWriter(GrMeshDrawTarget* target, - StrokeTessellator* tessellator, - int maxTessellationSegments, - int initialPatchAllocCount) - : PatchWriter(target, - &tessellator->fVertexChunkArray, - tessellator->fAttribs, - maxTessellationSegments, - sizeof(SkPoint) * 4 + PatchAttribsStride(tessellator->fAttribs), - initialPatchAllocCount) { -} -#endif - -void PatchWriter::chopAndWriteQuads(float2 p0, float2 p1, float2 p2, int numPatches) { - // If we aren't fanning or stroking, we need to fill the space between chops with triangles. - const bool needsInnerTriangles = this->writesCurvesOnly(); - MiddleOutPolygonTriangulator innerTriangulator(numPatches, to_skpoint(p0)); - for (; numPatches >= 3; numPatches -= 2) { - // Chop into 3 quads. - float4 T = float4(1,1,2,2) / numPatches; - float4 ab = mix(p0.xyxy(), p1.xyxy(), T); - float4 bc = mix(p1.xyxy(), p2.xyxy(), T); - float4 abc = mix(ab, bc, T); - // p1 & p2 of the cubic representation of the middle quad. - float4 middle = mix(ab, bc, mix(T, T.zwxy(), 2/3.f)); - - this->writeQuadPatch(p0, ab.lo, abc.lo); // Write the 1st quad. - if (needsInnerTriangles) { - this->writeTriangle(p0, abc.lo, abc.hi); - } - this->writeCubicPatch(abc.lo, middle, abc.hi); // Write the 2nd quad (as a cubic already) - if (needsInnerTriangles) { - write_triangle_stack(this, innerTriangulator.pushVertex(to_skpoint(abc.hi))); - } - std::tie(p0, p1) = {abc.hi, bc.hi}; // Save the 3rd quad. - } - if (numPatches == 2) { - // Chop into 2 quads. - float2 ab = (p0 + p1) * .5f; - float2 bc = (p1 + p2) * .5f; - float2 abc = (ab + bc) * .5f; - - this->writeQuadPatch(p0, ab, abc); // Write the 1st quad. - if (needsInnerTriangles) { - this->writeTriangle(p0, abc, p2); - } - this->writeQuadPatch(abc, bc, p2); // Write the 2nd quad. - } else { - SkASSERT(numPatches == 1); - this->writeQuadPatch(p0, p1, p2); // Write the single remaining quad. - } - if (needsInnerTriangles) { - write_triangle_stack(this, innerTriangulator.pushVertex(to_skpoint(p2))); - write_triangle_stack(this, innerTriangulator.close()); - } -} - -void PatchWriter::chopAndWriteConics(float2 p0, float2 p1, float2 p2, float w, int numPatches) { - // If we aren't fanning or stroking, we need to fill the space between chops with triangles. - const bool needsInnerTriangles = this->writesCurvesOnly(); - MiddleOutPolygonTriangulator innerTriangulator(numPatches, to_skpoint(p0)); - // Load the conic in 3d homogeneous (unprojected) space. - float4 h0 = float4(p0,1,1); - float4 h1 = float4(p1,1,1) * w; - float4 h2 = float4(p2,1,1); - for (; numPatches >= 2; --numPatches) { - // Chop in homogeneous space. - float T = 1.f/numPatches; - float4 ab = mix(h0, h1, T); - float4 bc = mix(h1, h2, T); - float4 abc = mix(ab, bc, T); - - // Project and write the 1st conic. - float2 midpoint = abc.xy() / abc.w(); - this->writeConicPatch(h0.xy() / h0.w(), - ab.xy() / ab.w(), - midpoint, - ab.w() / sqrtf(h0.w() * abc.w())); - if (needsInnerTriangles) { - write_triangle_stack(this, innerTriangulator.pushVertex(to_skpoint(midpoint))); - } - std::tie(h0, h1) = {abc, bc}; // Save the 2nd conic (in homogeneous space). - } - // Project and write the remaining conic. - SkASSERT(numPatches == 1); - this->writeConicPatch(h0.xy() / h0.w(), - h1.xy() / h1.w(), - h2.xy(), // h2.w == 1 - h1.w() / sqrtf(h0.w())); - if (needsInnerTriangles) { - write_triangle_stack(this, innerTriangulator.pushVertex(to_skpoint(h2.xy()))); - write_triangle_stack(this, innerTriangulator.close()); - } -} - -void PatchWriter::chopAndWriteCubics(float2 p0, float2 p1, float2 p2, float2 p3, int numPatches) { - // If we aren't fanning or stroking, we need to fill the space between chops with triangles. - const bool needsInnerTriangles = this->writesCurvesOnly(); - MiddleOutPolygonTriangulator innerTriangulator(numPatches, to_skpoint(p0)); - for (; numPatches >= 3; numPatches -= 2) { - // Chop into 3 cubics. - float4 T = float4(1,1,2,2) / numPatches; - float4 ab = mix(p0.xyxy(), p1.xyxy(), T); - float4 bc = mix(p1.xyxy(), p2.xyxy(), T); - float4 cd = mix(p2.xyxy(), p3.xyxy(), T); - float4 abc = mix(ab, bc, T); - float4 bcd = mix(bc, cd, T); - float4 abcd = mix(abc, bcd, T); - float4 middle = mix(abc, bcd, T.zwxy()); // p1 & p2 of the middle cubic. - - this->writeCubicPatch(p0, ab.lo, abc.lo, abcd.lo); // Write the 1st cubic. - if (needsInnerTriangles) { - this->writeTriangle(p0, abcd.lo, abcd.hi); - } - this->writeCubicPatch(abcd.lo, middle, abcd.hi); // Write the 2nd cubic. - if (needsInnerTriangles) { - write_triangle_stack(this, innerTriangulator.pushVertex(to_skpoint(abcd.hi))); - } - std::tie(p0, p1, p2) = {abcd.hi, bcd.hi, cd.hi}; // Save the 3rd cubic. - } - if (numPatches == 2) { - // Chop into 2 cubics. - float2 ab = (p0 + p1) * .5f; - float2 bc = (p1 + p2) * .5f; - float2 cd = (p2 + p3) * .5f; - float2 abc = (ab + bc) * .5f; - float2 bcd = (bc + cd) * .5f; - float2 abcd = (abc + bcd) * .5f; - - this->writeCubicPatch(p0, ab, abc, abcd); // Write the 1st cubic. - if (needsInnerTriangles) { - this->writeTriangle(p0, abcd, p3); - } - this->writeCubicPatch(abcd, bcd, cd, p3); // Write the 2nd cubic. - } else { - SkASSERT(numPatches == 1); - this->writeCubicPatch(p0, p1, p2, p3); // Write the single remaining cubic. - } - if (needsInnerTriangles) { - write_triangle_stack(this, innerTriangulator.pushVertex(to_skpoint(p3))); - write_triangle_stack(this, innerTriangulator.close()); - } -} - -} // namespace skgpu diff --git a/third_party/skia/src/gpu/tessellate/PatchWriter.h b/third_party/skia/src/gpu/tessellate/PatchWriter.h index da0241bec744..a593431635df 100644 --- a/third_party/skia/src/gpu/tessellate/PatchWriter.h +++ b/third_party/skia/src/gpu/tessellate/PatchWriter.h @@ -9,52 +9,253 @@ #define tessellate_PatchWriter_DEFINED #include "include/private/SkColorData.h" -#include "src/gpu/GrVertexChunkArray.h" +#include "src/gpu/BufferWriter.h" +#include "src/gpu/tessellate/MiddleOutPolygonTriangulator.h" #include "src/gpu/tessellate/Tessellation.h" #include "src/gpu/tessellate/WangsFormula.h" -#define AI SK_ALWAYS_INLINE +#include +#include namespace skgpu { -#if SK_GPU_V1 -class PathTessellator; -class StrokeTessellator; -#endif +/** + * PatchWriter writes out tessellation patches, formatted with their specific attribs, to a GPU + * buffer. + * + * PatchWriter is a template class that takes traits to configure both its compile-time and runtime + * behavior for the different tessellation rendering algorithms and GPU backends. The complexity of + * this system is worthwhile because the attribute writing operations and math already require + * heavy inlining for performance, and the algorithmic variations tend to only differ slightly, but + * do so in the inner most loops. Additionally, Graphite and Ganesh use the same fundamental + * algorithms, but Graphite's architecture and higher required hardware level mean that its + * attribute configurations can be determined entirely at compile time. + * + * Traits are specified in PatchWriter's single var-args template pack. Traits come in two main + * categories: PatchAttribs configuration and feature/processing configuration. A given PatchAttrib + * can be always enabled, enabled at runtime, or always disabled. A feature can be either enabled + * or disabled and are coupled more closely with the control points of the curve. Across the two + * GPU backends and different path rendering strategies, a "patch" has the following structure: + * + * - 4 control points (8 floats total) defining the curve's geometry + * - quadratic curves are converted to equivalent cubics on the CPU during writing + * - conic curves store {w, inf} in their last control point + * - triangles store {inf, inf} in their last control point + * - everything else is presumed to be a cubic defined by all 4 control points + * - Enabled PatchAttrib values, constant for the entire instance + * - layout is identical to PatchAttrib's definition, skipping disabled attribs + * - attribs can be enabled/disabled at runtime by building a mask of attrib values + * + * Currently PatchWriter supports the following traits: + * - Required + * - Optional + * - TrackJoinControlPoints + * - AddTrianglesWhenChopping + * - DiscardFlatCurves + * + * In addition to variable traits, PatchWriter's first template argument defines the type used for + * allocating the GPU instance data. The templated "PatchAllocator" can be any type that provides: + * size_t stride() const; // the stride of each instance + * skgpu::VertexWriter append(); // a GPU-backed vertex writer for a single instance worth of data + * + * Additionally, it must have a constructor that takes the stride as its first argument. + * PatchWriter forwards any additional constructor args from its ctor to the allocator after + * computing the necessary stride for its PatchAttribs configuration. + */ + +// *** TRAITS *** + +// Marks a PatchAttrib is enabled at compile time, i.e. it must always be set and will always be +// written to each patch's instance data. If present, will assert if the runtime attribs do not fit. +template struct Required {}; +// Marks a PatchAttrib as supported, i.e. it can be enabled or disabled at runtime. Optional is +// overridden by Required. If neither Required nor Optional are in a PatchWriter's trait +// list, then the attrib is disabled at compile time and it will assert if the runtime attribs +// attempt to enable it. +template struct Optional {}; + +// Enables tracking of the kJoinControlPointAttrib based on control points of the previously +// written patch (automatically taking into account curve chopping). When a patch is first written +// (and there is no prior patch to define the join control point), the PatchWriter automatically +// records the patch to a temporary buffer--sans join--until writeDeferredStrokePatch() is called, +// filling in the now-defined join control point. +// +// This feature must be paired with Required +struct TrackJoinControlPoints {}; + +// Write additional triangular patches to fill the resulting empty area when a curve is chopped. +// Normally, the patch geometry covers the curve defined by its control points, up to the implicitly +// closing edge between its first and last control points. When a curve is chopped to fit within +// the maximum segment count, the resulting space between the original closing edge and new closing +// edges is not filled, unless some mechanism of the shader makes it so (e.g. a fan point or +// stroking). +// +// This feature enables automatically writing triangular patches to fill this empty space when a +// curve is chopped. +struct AddTrianglesWhenChopping {}; + +// If a curve requires at most 1 segment to render accurately, it's effectively a straight line. +// This feature turns on automatically ignoring those curves, with the assumption that some other +// render pass will produce equivalent geometry (e.g. middle-out or inner triangulations). +struct DiscardFlatCurves {}; + +// *** PatchWriter internals *** + +// AttribValue exposes a consistent store and write interface for a PatchAttrib's value while +// abstracting over compile-time enabled, conditionally-enabled, or compile-time disabled attribs. +template +struct AttribValue { + using DataType = std::conditional_t, + /* else */ std::monostate>>; + + static constexpr bool kEnabled = Required || Optional; + + explicit AttribValue(PatchAttribs attribs) : AttribValue(attribs, {}) {} + AttribValue(PatchAttribs attribs, const T& t) { + (void) attribs; // may be unused on release builds + if constexpr (Required) { + SkASSERT(attribs & A); + } else if constexpr (Optional) { + std::get<1>(fV) = attribs & A; + } else { + SkASSERT(!(attribs & A)); + } + *this = t; + } + + AttribValue& operator=(const T& v) { + if constexpr (Required) { + fV = v; + } else if constexpr (Optional) { + // for simplicity, store even if disabled and won't be written out to VertexWriter + std::get<0>(fV) = v; + } // else ignore for disabled values + return *this; + } + + DataType fV; +}; + +template +VertexWriter& operator<<(VertexWriter& w, const AttribValue& v) { + if constexpr (Required) { + w << v.fV; // always write + } else if constexpr (Optional) { + if (std::get<1>(v.fV)) { + w << std::get<0>(v.fV); // write if enabled + } + } // else never write + return w; +} + +// Stores state and deferred patch data when TrackJoinControlPoints is used for a PatchWriter. +template +struct PatchStorage { + bool fHasPending = false; // True means the deferred patch in fData needs to be written out + bool fMustDefer = true; // True means next patch must be deferred + + // Holds an entire patch, except with an undefined join control point. + char fData[Stride]; +}; + +// An empty object that has the same constructor signature as MiddleOutPolygonTriangulator, used +// as a stand-in when AddTrianglesWhenChopping is not a defined trait. +struct NullTriangulator { + NullTriangulator(int, SkPoint) {} +}; + +#define AI SK_ALWAYS_INLINE +#define ENABLE_IF(cond) template std::enable_if_t -// Writes out tessellation patches, formatted with their specific attribs, to a GPU buffer. +// *** PatchWriter *** +template class PatchWriter { + // Helpers to extract specifics from the template traits pack. + template struct has_trait : std::disjunction...> {}; + template using req_attrib = has_trait>; + template using opt_attrib = has_trait>; + + // Enabled features and attribute configuration + static constexpr bool kTrackJoinControlPoints = has_trait::value; + static constexpr bool kAddTrianglesWhenChopping = has_trait::value; + static constexpr bool kDiscardFlatCurves = has_trait::value; + + // NOTE: MSVC 19.24 cannot compile constexpr fold expressions referenced in templates, so + // extract everything into constexpr bool's instead of using `req_attrib` directly, etc. :( + template */, bool Opt/*=opt_attrib*/> + using attrib_t = AttribValue; + + // TODO: Remove when MSVC compiler is fixed, in favor of `using Name = attrib_t<>` directly. +#define DEF_ATTRIB_TYPE(name, A, T) \ + static constexpr bool kRequire##name = req_attrib::value; \ + static constexpr bool kOptional##name = opt_attrib::value; \ + using name = attrib_t + + DEF_ATTRIB_TYPE(JoinAttrib, PatchAttribs::kJoinControlPoint, SkPoint); + DEF_ATTRIB_TYPE(FanPointAttrib, PatchAttribs::kFanPoint, SkPoint); + DEF_ATTRIB_TYPE(StrokeAttrib, PatchAttribs::kStrokeParams, StrokeParams); + + // kWideColorIfEnabled does not define an attribute, but changes the type of the kColor attrib. + static constexpr bool kRequireWideColor = req_attrib::value; + static constexpr bool kOptionalWideColor = opt_attrib::value; + using Color = std::conditional_t>; + + DEF_ATTRIB_TYPE(ColorAttrib, PatchAttribs::kColor, Color); + DEF_ATTRIB_TYPE(DepthAttrib, PatchAttribs::kPaintDepth, float); + DEF_ATTRIB_TYPE(CurveTypeAttrib, PatchAttribs::kExplicitCurveType, float); +#undef DEF_ATTRIB_TYPE + + static constexpr size_t kMaxStride = 4 * sizeof(SkPoint) + // control points + (JoinAttrib::kEnabled ? sizeof(SkPoint) : 0) + + (FanPointAttrib::kEnabled ? sizeof(SkPoint) : 0) + + (StrokeAttrib::kEnabled ? sizeof(StrokeParams) : 0) + + (ColorAttrib::kEnabled ? std::min(sizeof(Color), sizeof(SkPMColor4f)) : 0) + + (DepthAttrib::kEnabled ? sizeof(float) : 0) + + (CurveTypeAttrib::kEnabled ? sizeof(float) : 0); + + // Types that vary depending on the activated features, but do not define the patch data. + using DeferredPatch = std::conditional_t, std::monostate>; + using InnerTriangulator = std::conditional_t; using VectorXform = wangs_formula::VectorXform; + + static_assert(!kTrackJoinControlPoints || req_attrib::value, + "Deferred patches and auto-updating joins requires kJoinControlPoint attrib"); public: - PatchWriter(GrMeshDrawTarget* target, - GrVertexChunkArray* vertexChunkArray, - PatchAttribs attribs, + template // forwarded to PatchAllocator + PatchWriter(PatchAttribs attribs, int maxTessellationSegments, - size_t patchStride, - int initialAllocCount) + Args&&... allocArgs) : fAttribs(attribs) , fMaxSegments_pow2(pow2(maxTessellationSegments)) , fMaxSegments_pow4(pow2(fMaxSegments_pow2)) - , fChunker(target, vertexChunkArray, patchStride, initialAllocCount) { - // For fans or strokes, the minimum required segment count is 1 (making either a triangle - // with the fan point, or a stroked line). Otherwise, we need 2 segments to represent - // triangles purely from the tessellated vertices. - fCurrMinSegments_pow4 = (attribs & PatchAttribs::kFanPoint || - attribs & PatchAttribs::kJoinControlPoint) ? 1.f : 16.f; // 2^4 - } - -#if SK_GPU_V1 - // Create PatchWriters that write directly to the GrVertexChunkArrays stored on the provided - // tessellators. - PatchWriter(GrMeshDrawTarget*, PathTessellator*, - int maxTessellationSegments, int initialPatchAllocCount); - PatchWriter(GrMeshDrawTarget*, StrokeTessellator*, - int maxTessellationSegments, int initialPatchAllocCount); -#endif + , fCurrMinSegments_pow4(1.f) + , fPatchAllocator(PatchStride(attribs), std::forward(allocArgs)...) + , fJoin(attribs) + , fFanPoint(attribs) + , fStrokeParams(attribs) + , fColor(attribs) + , fDepth(attribs) { + // Explicit curve types are provided on the writePatch signature, and not a field of + // PatchWriter, so initialize one in the ctor to validate the provided runtime attribs. + SkDEBUGCODE((void) CurveTypeAttrib(attribs);) + // Validate the kWideColorIfEnabled attribute variant flag as well + if constexpr (req_attrib::value) { + SkASSERT(attribs & PatchAttribs::kWideColorIfEnabled); // required + } else if constexpr (!opt_attrib::value) { + SkASSERT(!(attribs & PatchAttribs::kWideColorIfEnabled)); // disabled + } + } ~PatchWriter() { - // finishStrokeContour() should have been called before this was deleted (or never used). - SkASSERT(!fHasDeferredPatch && !fHasJoinControlPoint); + if constexpr (kTrackJoinControlPoints) { + // flush any pending patch + this->writeDeferredStrokePatch(); + } } PatchAttribs attribs() const { return fAttribs; } @@ -68,67 +269,66 @@ class PatchWriter { return SkScalarCeilToInt(wangs_formula::root4(fCurrMinSegments_pow4)); } - // Updates the stroke's join control point that will be written out with each patch. This is - // automatically adjusted when appending various geometries (e.g. Conic/Cubic), but sometimes - // must be set explicitly. - // - // PatchAttribs::kJoinControlPoint must be enabled. - void updateJoinControlPointAttrib(SkPoint lastControlPoint) { - SkASSERT(fAttribs & PatchAttribs::kJoinControlPoint && lastControlPoint.isFinite()); - fJoinControlPointAttrib = lastControlPoint; - fHasJoinControlPoint = true; - } // Completes a closed contour of a stroke by rewriting a deferred patch with now-available // join control point information. Automatically resets the join control point attribute. - // - // PatchAttribs::kJoinControlPoint must be enabled. - void writeDeferredStrokePatch() { - SkASSERT(fAttribs & PatchAttribs::kJoinControlPoint); - if (fHasDeferredPatch) { - SkASSERT(fHasJoinControlPoint); + ENABLE_IF(kTrackJoinControlPoints) writeDeferredStrokePatch() { + if (fDeferredPatch.fHasPending) { + SkASSERT(!fDeferredPatch.fMustDefer); // Overwrite join control point with updated value, which is the first attribute // after the 4 control points. - memcpy(SkTAddOffset(fDeferredPatchStorage, 4 * sizeof(SkPoint)), - &fJoinControlPointAttrib, sizeof(SkPoint)); - if (VertexWriter vw = fChunker.appendVertex()) { - vw << VertexWriter::Array(fDeferredPatchStorage, fChunker.stride()); + memcpy(SkTAddOffset(fDeferredPatch.fData, 4 * sizeof(SkPoint)), + &fJoin, sizeof(SkPoint)); + if (VertexWriter vw = fPatchAllocator.append()) { + vw << VertexWriter::Array(fDeferredPatch.fData, fPatchAllocator.stride()); } } - fHasDeferredPatch = false; - fHasJoinControlPoint = false; + fDeferredPatch.fHasPending = false; + fDeferredPatch.fMustDefer = true; } - // TODO: These are only used by StrokeHardwareTessellator and ideally its patch writing logic - // should be simplified like StrokeFixedCountTessellator's, and then this can go away. - void resetJoinControlPointAttrib() { - SkASSERT(fAttribs & PatchAttribs::kJoinControlPoint); - // Should have already been written or caller should manually defer - SkASSERT(!fHasDeferredPatch); - fHasJoinControlPoint = false; + + // Updates the stroke's join control point that will be written out with each patch. This is + // automatically adjusted when appending various geometries (e.g. Conic/Cubic), but sometimes + // must be set explicitly. + ENABLE_IF(JoinAttrib::kEnabled) updateJoinControlPointAttrib(SkPoint lastControlPoint) { + SkASSERT(fAttribs & PatchAttribs::kJoinControlPoint); // must be runtime enabled as well + fJoin = lastControlPoint; + if constexpr (kTrackJoinControlPoints) { + fDeferredPatch.fMustDefer = false; + } } - SkPoint joinControlPoint() const { return fJoinControlPointAttrib; } - bool hasJoinControlPoint() const { return fHasJoinControlPoint; } // Updates the fan point that will be written out with each patch (i.e., the point that wedges // fan around). - // PatchAttribs::kFanPoint must be enabled. - void updateFanPointAttrib(SkPoint fanPoint) { + ENABLE_IF(FanPointAttrib::kEnabled) updateFanPointAttrib(SkPoint fanPoint) { SkASSERT(fAttribs & PatchAttribs::kFanPoint); - fFanPointAttrib = fanPoint; + fFanPoint = fanPoint; } // Updates the stroke params that are written out with each patch. - // PatchAttribs::kStrokeParams must be enabled. - void updateStrokeParamsAttrib(StrokeParams strokeParams) { + ENABLE_IF(StrokeAttrib::kEnabled) updateStrokeParamsAttrib(StrokeParams strokeParams) { SkASSERT(fAttribs & PatchAttribs::kStrokeParams); - fStrokeParamsAttrib = strokeParams; + fStrokeParams = strokeParams; } // Updates the color that will be written out with each patch. - // PatchAttribs::kColor must be enabled. - void updateColorAttrib(const SkPMColor4f& color) { + ENABLE_IF(ColorAttrib::kEnabled) updateColorAttrib(const SkPMColor4f& color) { SkASSERT(fAttribs & PatchAttribs::kColor); - fColorAttrib.set(color, fAttribs & PatchAttribs::kWideColorIfEnabled); + // Converts SkPMColor4f to the selected 'Color' attrib type. The always-wide and never-wide + // branches match what VertexColor does based on the runtime check. + if constexpr (req_attrib::value) { + fColor = color; + } else if constexpr (opt_attrib::value) { + fColor = VertexColor(color, fAttribs & PatchAttribs::kWideColorIfEnabled); + } else { + fColor = color.toBytes_RGBA(); + } + } + + // Updates the paint depth written out with each patch. + ENABLE_IF(DepthAttrib::kEnabled) updatePaintDepthAttrib(float depth) { + SkASSERT(fAttribs & PatchAttribs::kPaintDepth); + fDepth = depth; } /** @@ -138,27 +338,19 @@ class PatchWriter { * writes the current values of all attributes enabled in its PatchAttribs flags. */ - // Writes four control points manually prepared. - // TODO: Only used by StrokeHardwareTessellator - AI void writeHwPatch(const SkPoint p[4]) { - float4 p0p1 = float4::Load(p); - float4 p2p3 = float4::Load(p + 2); - this->writePatch(p0p1.lo, p0p1.hi, p2p3.lo, p2p3.hi, /*unused*/0.f); - } - // Write a cubic curve with its four control points. AI void writeCubic(float2 p0, float2 p1, float2 p2, float2 p3, const VectorXform& shaderXform, float precision = kTessellationPrecision) { float n4 = wangs_formula::cubic_pow4(precision, p0, p1, p2, p3, shaderXform); - if (this->writesCurvesOnly()) { + if constexpr (kDiscardFlatCurves) { if (n4 <= 1.f) { // This cubic only needs one segment (e.g. a line) but we're not filling space with // fans or stroking, so nothing actually needs to be drawn. return; } } - if (this->updateRequiredSegments(n4)) { + if (this->curveFitsInMaxSegments(n4)) { this->writeCubicPatch(p0, p1, p2, p3); } else { int numPatches = SkScalarCeilToInt(wangs_formula::root4( @@ -180,14 +372,14 @@ class PatchWriter { const VectorXform& shaderXform, float precision = kTessellationPrecision) { float n2 = wangs_formula::conic_pow2(precision, p0, p1, p2, w, shaderXform); - if (this->writesCurvesOnly()) { + if constexpr (kDiscardFlatCurves) { if (n2 <= 1.f) { // This conic only needs one segment (e.g. a line) but we're not filling space with // fans or stroking, so nothing actually needs to be drawn. return; } } - if (this->updateRequiredSegments(n2*n2)) { + if (this->curveFitsInMaxSegments(n2*n2)) { this->writeConicPatch(p0, p1, p2, w); } else { int numPatches = SkScalarCeilToInt(sqrtf( @@ -210,14 +402,14 @@ class PatchWriter { const VectorXform& shaderXform, float precision = kTessellationPrecision) { float n4 = wangs_formula::quadratic_pow4(precision, p0, p1, p2, shaderXform); - if (this->writesCurvesOnly()) { + if constexpr (kDiscardFlatCurves) { if (n4 <= 1.f) { // This quad only needs one segment (e.g. a line) but we're not filling space with // fans or stroking, so nothing actually needs to be drawn. return; } } - if (this->updateRequiredSegments(n4)) { + if (this->curveFitsInMaxSegments(n4)) { this->writeQuadPatch(p0, p1, p2); } else { int numPatches = SkScalarCeilToInt(wangs_formula::root4( @@ -236,8 +428,7 @@ class PatchWriter { // Write a line that is automatically converted into an equivalent cubic. AI void writeLine(float4 p0p1) { - // No chopping needed, and should have been reset to 1 segment if using writeLine - SkASSERT(fCurrMinSegments_pow4 >= 1.f); + // No chopping needed, minimum segments is always at least 1 this->writeCubicPatch(p0p1.lo, (p0p1.zwxy() - p0p1) * (1/3.f) + p0p1, p0p1.hi); } AI void writeLine(float2 p0, float2 p1) { this->writeLine({p0, p1}); } @@ -248,8 +439,9 @@ class PatchWriter { // Write a triangle by setting it to a conic with w=Inf, and using a distinct // explicit curve type for when inf isn't supported in shaders. AI void writeTriangle(float2 p0, float2 p1, float2 p2) { - // No chopping needed, and should have been reset to 2 segments if using writeTriangle. - SkASSERT(fCurrMinSegments_pow4 >= (2*2*2*2)); + // No chopping needed, the max supported segment count should always support 2 lines + // (which form a triangle when implicitly closed). + SkAssertResult(this->curveFitsInMaxSegments(2.f * 2.f * 2.f * 2.f)); this->writePatch(p0, p1, p2, {SK_FloatInfinity, SK_FloatInfinity}, kTriangularConicCurveType); } @@ -263,62 +455,63 @@ class PatchWriter { // identical control points and an empty join. AI void writeCircle(SkPoint p) { // This does not use writePatch() because it uses its own location as the join attribute - // value instead of fJoinControlPointAttrib and never defers. - SkASSERT(fAttribs & PatchAttribs::kJoinControlPoint); - if (VertexWriter vw = fChunker.appendVertex()) { + // value instead of fJoin and never defers. + if (VertexWriter vw = fPatchAllocator.append()) { vw << VertexWriter::Repeat<4>(p); // p0,p1,p2,p3 = p -> 4 copies - this->emitPatchAttribs(std::move(vw), p, kCubicCurveType); + this->emitPatchAttribs(std::move(vw), {fAttribs, p}, kCubicCurveType); } } -private: - template - static VertexWriter::Conditional If(bool c, const T& v) { return VertexWriter::If(c,v); } - - AI void emitPatchAttribs(VertexWriter vertexWriter, - SkPoint joinControlPoint, - float explicitCurveType) { - vertexWriter << If((fAttribs & PatchAttribs::kJoinControlPoint), joinControlPoint) - << If((fAttribs & PatchAttribs::kFanPoint), fFanPointAttrib) - << If((fAttribs & PatchAttribs::kStrokeParams), fStrokeParamsAttrib) - << If((fAttribs & PatchAttribs::kColor), fColorAttrib) - << If((fAttribs & PatchAttribs::kExplicitCurveType), explicitCurveType); - } - +protected: + // TODO: Exposed as protected for StrokeHardwareTessellator's patch writer. Can be made private + // if/when the hardware stroker is deleted. AI void writePatch(float2 p0, float2 p1, float2 p2, float2 p3, float explicitCurveType) { - const bool defer = (fAttribs & PatchAttribs::kJoinControlPoint) && - !fHasJoinControlPoint; - - SkASSERT(!defer || !fHasDeferredPatch); - SkASSERT(fChunker.stride() <= kMaxStride); - VertexWriter vw = defer ? VertexWriter{fDeferredPatchStorage, fChunker.stride()} - : fChunker.appendVertex(); - fHasDeferredPatch |= defer; - - if (vw) { + if (VertexWriter vw = this->appendPatch()) { + // NOTE: fJoin will be undefined if we're writing to a deferred patch. If that's the + // case, correct data will overwrite it when the contour is closed (this is fine since a + // deferred patch writes to CPU memory instead of directly to the GPU buffer). vw << p0 << p1 << p2 << p3; - // NOTE: fJoinControlPointAttrib will contain NaN if we're writing to a deferred - // patch. If that's the case, correct data will overwrite it when the contour is - // closed (this is fine since a deferred patch writes to CPU memory instead of - // directly to the GPU buffer). - this->emitPatchAttribs(std::move(vw), fJoinControlPointAttrib, explicitCurveType); + this->emitPatchAttribs(std::move(vw), fJoin, explicitCurveType); + // Automatically update join control point for next patch. - if (fAttribs & PatchAttribs::kJoinControlPoint) { - fHasJoinControlPoint = true; + if constexpr (kTrackJoinControlPoints) { if (explicitCurveType == kCubicCurveType && any(p3 != p2)) { // p2 is control point defining the tangent vector into the next patch. - p2.store(&fJoinControlPointAttrib); + p2.store(&fJoin); } else if (any(p2 != p1)) { // p1 is the control point defining the tangent vector. - p1.store(&fJoinControlPointAttrib); + p1.store(&fJoin); } else { // p0 is the control point defining the tangent vector. - p0.store(&fJoinControlPointAttrib); + p0.store(&fJoin); } + fDeferredPatch.fMustDefer = false; + } + } + } + +private: + AI void emitPatchAttribs(VertexWriter vertexWriter, + const JoinAttrib& join, + float explicitCurveType) { + // NOTE: operator<< overrides automatically handle optional and disabled attribs. + vertexWriter << join << fFanPoint << fStrokeParams << fColor << fDepth + << CurveTypeAttrib{fAttribs, explicitCurveType}; + } + + AI VertexWriter appendPatch() { + if constexpr (kTrackJoinControlPoints) { + if (fDeferredPatch.fMustDefer) { + SkASSERT(!fDeferredPatch.fHasPending); + SkASSERT(fPatchAllocator.stride() <= kMaxStride); + fDeferredPatch.fHasPending = true; + return {fDeferredPatch.fData, fPatchAllocator.stride()}; } } + return fPatchAllocator.append(); } - // Helpers that normalize curves to a generic patch, but does no other work. + + // Helpers that normalize curves to a generic patch, but do no other work. AI void writeCubicPatch(float2 p0, float2 p1, float2 p2, float2 p3) { this->writePatch(p0, p1, p2, p3, kCubicCurveType); } @@ -332,15 +525,8 @@ class PatchWriter { this->writePatch(p0, p1, p2, {w, SK_FloatInfinity}, kConicCurveType); } - // Helpers that chop the curve type into 'numPatches' parametrically uniform curves. It is - // assumed that 'numPatches' is calculated such that the resulting curves require the maximum - // number of segments to draw appropriately (since the original presumably needed even more). - void chopAndWriteQuads(float2 p0, float2 p1, float2 p2, int numPatches); - void chopAndWriteConics(float2 p0, float2 p1, float2 p2, float w, int numPatches); - void chopAndWriteCubics(float2 p0, float2 p1, float2 p2, float2 p3, int numPatches); - - // Returns true if curve can be written w/o needing to chop - bool updateRequiredSegments(float n4) { + // Returns true if curve can be written w/o needing to chop (e.g. represented by one instance) + bool curveFitsInMaxSegments(float n4) { if (n4 <= fMaxSegments_pow4) { fCurrMinSegments_pow4 = std::max(n4, fCurrMinSegments_pow4); return true; @@ -350,42 +536,163 @@ class PatchWriter { } } - // True if the patch writer only draws curves (presumably for filling), e.g. does not add a - // wedge fan point to help fill space, or a join control point for stroking. - bool writesCurvesOnly() const { - return !(fAttribs & (PatchAttribs::kJoinControlPoint | PatchAttribs::kFanPoint)); + // Helpers that chop the curve type into 'numPatches' parametrically uniform curves. It is + // assumed that 'numPatches' is calculated such that the resulting curves require the maximum + // number of segments to draw appropriately (since the original presumably needed even more). + void chopAndWriteQuads(float2 p0, float2 p1, float2 p2, int numPatches) { + InnerTriangulator triangulator(numPatches, skvx::bit_pun(p0)); + for (; numPatches >= 3; numPatches -= 2) { + // Chop into 3 quads. + float4 T = float4(1,1,2,2) / numPatches; + float4 ab = mix(p0.xyxy(), p1.xyxy(), T); + float4 bc = mix(p1.xyxy(), p2.xyxy(), T); + float4 abc = mix(ab, bc, T); + // p1 & p2 of the cubic representation of the middle quad. + float4 middle = mix(ab, bc, mix(T, T.zwxy(), 2/3.f)); + + this->writeQuadPatch(p0, ab.lo, abc.lo); // Write the 1st quad. + if constexpr (kAddTrianglesWhenChopping) { + this->writeTriangle(p0, abc.lo, abc.hi); + } + this->writeCubicPatch(abc.lo, middle, abc.hi); // Write the 2nd quad (already a cubic) + if constexpr (kAddTrianglesWhenChopping) { + this->writeTriangleStack(triangulator.pushVertex(skvx::bit_pun(abc.hi))); + } + std::tie(p0, p1) = {abc.hi, bc.hi}; // Save the 3rd quad. + } + if (numPatches == 2) { + // Chop into 2 quads. + float2 ab = (p0 + p1) * .5f; + float2 bc = (p1 + p2) * .5f; + float2 abc = (ab + bc) * .5f; + + this->writeQuadPatch(p0, ab, abc); // Write the 1st quad. + if constexpr (kAddTrianglesWhenChopping) { + this->writeTriangle(p0, abc, p2); + } + this->writeQuadPatch(abc, bc, p2); // Write the 2nd quad. + } else { + SkASSERT(numPatches == 1); + this->writeQuadPatch(p0, p1, p2); // Write the single remaining quad. + } + if constexpr (kAddTrianglesWhenChopping) { + this->writeTriangleStack(triangulator.pushVertex(skvx::bit_pun(p2))); + this->writeTriangleStack(triangulator.close()); + } + } + + void chopAndWriteConics(float2 p0, float2 p1, float2 p2, float w, int numPatches) { + InnerTriangulator triangulator(numPatches, skvx::bit_pun(p0)); + // Load the conic in 3d homogeneous (unprojected) space. + float4 h0 = float4(p0,1,1); + float4 h1 = float4(p1,1,1) * w; + float4 h2 = float4(p2,1,1); + for (; numPatches >= 2; --numPatches) { + // Chop in homogeneous space. + float T = 1.f/numPatches; + float4 ab = mix(h0, h1, T); + float4 bc = mix(h1, h2, T); + float4 abc = mix(ab, bc, T); + + // Project and write the 1st conic. + float2 midpoint = abc.xy() / abc.w(); + this->writeConicPatch(h0.xy() / h0.w(), + ab.xy() / ab.w(), + midpoint, + ab.w() / sqrtf(h0.w() * abc.w())); + if constexpr (kAddTrianglesWhenChopping) { + this->writeTriangleStack(triangulator.pushVertex(skvx::bit_pun(midpoint))); + } + std::tie(h0, h1) = {abc, bc}; // Save the 2nd conic (in homogeneous space). + } + // Project and write the remaining conic. + SkASSERT(numPatches == 1); + this->writeConicPatch(h0.xy() / h0.w(), + h1.xy() / h1.w(), + h2.xy(), // h2.w == 1 + h1.w() / sqrtf(h0.w())); + if constexpr (kAddTrianglesWhenChopping) { + this->writeTriangleStack(triangulator.pushVertex(skvx::bit_pun(h2.xy()))); + this->writeTriangleStack(triangulator.close()); + } } + void chopAndWriteCubics(float2 p0, float2 p1, float2 p2, float2 p3, int numPatches) { + InnerTriangulator triangulator(numPatches, skvx::bit_pun(p0)); + for (; numPatches >= 3; numPatches -= 2) { + // Chop into 3 cubics. + float4 T = float4(1,1,2,2) / numPatches; + float4 ab = mix(p0.xyxy(), p1.xyxy(), T); + float4 bc = mix(p1.xyxy(), p2.xyxy(), T); + float4 cd = mix(p2.xyxy(), p3.xyxy(), T); + float4 abc = mix(ab, bc, T); + float4 bcd = mix(bc, cd, T); + float4 abcd = mix(abc, bcd, T); + float4 middle = mix(abc, bcd, T.zwxy()); // p1 & p2 of the middle cubic. + + this->writeCubicPatch(p0, ab.lo, abc.lo, abcd.lo); // Write the 1st cubic. + if constexpr (kAddTrianglesWhenChopping) { + this->writeTriangle(p0, abcd.lo, abcd.hi); + } + this->writeCubicPatch(abcd.lo, middle, abcd.hi); // Write the 2nd cubic. + if constexpr (kAddTrianglesWhenChopping) { + this->writeTriangleStack(triangulator.pushVertex(skvx::bit_pun(abcd.hi))); + } + std::tie(p0, p1, p2) = {abcd.hi, bcd.hi, cd.hi}; // Save the 3rd cubic. + } + if (numPatches == 2) { + // Chop into 2 cubics. + float2 ab = (p0 + p1) * .5f; + float2 bc = (p1 + p2) * .5f; + float2 cd = (p2 + p3) * .5f; + float2 abc = (ab + bc) * .5f; + float2 bcd = (bc + cd) * .5f; + float2 abcd = (abc + bcd) * .5f; + + this->writeCubicPatch(p0, ab, abc, abcd); // Write the 1st cubic. + if constexpr (kAddTrianglesWhenChopping) { + this->writeTriangle(p0, abcd, p3); + } + this->writeCubicPatch(abcd, bcd, cd, p3); // Write the 2nd cubic. + } else { + SkASSERT(numPatches == 1); + this->writeCubicPatch(p0, p1, p2, p3); // Write the single remaining cubic. + } + if constexpr (kAddTrianglesWhenChopping) { + this->writeTriangleStack(triangulator.pushVertex(skvx::bit_pun(p3))); + this->writeTriangleStack(triangulator.close()); + } + } + + ENABLE_IF(kAddTrianglesWhenChopping) + writeTriangleStack(MiddleOutPolygonTriangulator::PoppedTriangleStack&& stack) { + for (auto [p0, p1, p2] : stack) { + this->writeTriangle(p0, p1, p2); + } + } + + // Runtime configuration, will always contain required attribs but may not have all optional + // attribs enabled (e.g. depending on caps or batching). const PatchAttribs fAttribs; const float fMaxSegments_pow2; const float fMaxSegments_pow4; float fCurrMinSegments_pow4; - GrVertexChunkBuilder fChunker; - - SkPoint fJoinControlPointAttrib; - SkPoint fFanPointAttrib; - StrokeParams fStrokeParamsAttrib; - VertexColor fColorAttrib; - - static constexpr size_t kMaxStride = - 4 * sizeof(SkPoint) + // control points - sizeof(SkPoint) + // join control point or fan attrib point (not used at same time) - sizeof(StrokeParams) + // stroke params - 4 * sizeof(uint32_t); // wide vertex color - - // Only used if kJoinControlPointAttrib is set in fAttribs, in which case it holds data for - // a single patch waiting for the incoming join control point to be computed. - // Contents are valid (sans join control point) if fHasDeferredPatch is true. - char fDeferredPatchStorage[kMaxStride]; - bool fHasDeferredPatch = false; + PatchAllocator fPatchAllocator; + DeferredPatch fDeferredPatch; // only usable if kTrackJoinControlPoints is true - bool fHasJoinControlPoint = false; + // Instance attribute state written after the 4 control points of a patch + JoinAttrib fJoin; + FanPointAttrib fFanPoint; + StrokeAttrib fStrokeParams; + ColorAttrib fColor; + DepthAttrib fDepth; }; } // namespace skgpu +#undef ENABLE_IF #undef AI #endif // tessellate_PatchWriter_DEFINED diff --git a/third_party/skia/src/gpu/tessellate/PathCurveTessellator.cpp b/third_party/skia/src/gpu/tessellate/PathCurveTessellator.cpp deleted file mode 100644 index c730f1a3c932..000000000000 --- a/third_party/skia/src/gpu/tessellate/PathCurveTessellator.cpp +++ /dev/null @@ -1,207 +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 "src/gpu/tessellate/PathCurveTessellator.h" - -#include "src/gpu/tessellate/AffineMatrix.h" -#include "src/gpu/tessellate/MiddleOutPolygonTriangulator.h" -#include "src/gpu/tessellate/PatchWriter.h" -#include "src/gpu/tessellate/WangsFormula.h" - -#if SK_GPU_V1 -#include "src/gpu/GrMeshDrawTarget.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrResourceProvider.h" -#endif - -namespace skgpu { - -int PathCurveTessellator::patchPreallocCount(int totalCombinedPathVerbCnt) const { - // Over-allocate enough curves for 1 in 4 to chop. - int approxNumChops = (totalCombinedPathVerbCnt + 3) / 4; - // Every chop introduces 2 new patches: another curve patch and a triangle patch that glues the - // two chops together. - return totalCombinedPathVerbCnt + approxNumChops * 2; -} - -void PathCurveTessellator::writePatches(PatchWriter& patchWriter, - const SkMatrix& shaderMatrix, - const PathDrawList& pathDrawList) { - wangs_formula::VectorXform shaderXform(shaderMatrix); - for (auto [pathMatrix, path, color] : pathDrawList) { - AffineMatrix m(pathMatrix); - if (fAttribs & PatchAttribs::kColor) { - patchWriter.updateColorAttrib(color); - } - for (auto [verb, pts, w] : SkPathPriv::Iterate(path)) { - switch (verb) { - case SkPathVerb::kQuad: { - auto [p0, p1] = m.map2Points(pts); - auto p2 = m.map1Point(pts+2); - - patchWriter.writeQuadratic(p0, p1, p2, shaderXform); - break; - } - - case SkPathVerb::kConic: { - auto [p0, p1] = m.map2Points(pts); - auto p2 = m.map1Point(pts+2); - - patchWriter.writeConic(p0, p1, p2, *w, shaderXform); - break; - } - - case SkPathVerb::kCubic: { - auto [p0, p1] = m.map2Points(pts); - auto [p2, p3] = m.map2Points(pts+2); - - patchWriter.writeCubic(p0, p1, p2, p3, shaderXform); - break; - } - - default: break; - } - } - } - - // We already chopped curves to make sure none needed a higher resolveLevel than - // kMaxFixedResolveLevel. - fFixedResolveLevel = SkTPin(patchWriter.requiredResolveLevel(), - fFixedResolveLevel, - int(kMaxFixedResolveLevel)); -} - -void PathCurveTessellator::WriteFixedVertexBuffer(VertexWriter vertexWriter, size_t bufferSize) { - SkASSERT(bufferSize >= sizeof(SkPoint) * 2); - SkASSERT(bufferSize % sizeof(SkPoint) == 0); - int vertexCount = bufferSize / sizeof(SkPoint); - SkASSERT(vertexCount > 3); - SkDEBUGCODE(auto end = vertexWriter.mark(vertexCount * sizeof(SkPoint));) - - // Lay out the vertices in "middle-out" order: - // - // T= 0/1, 1/1, ; resolveLevel=0 - // 1/2, ; resolveLevel=1 (0/2 and 2/2 are already in resolveLevel 0) - // 1/4, 3/4, ; resolveLevel=2 (2/4 is already in resolveLevel 1) - // 1/8, 3/8, 5/8, 7/8, ; resolveLevel=3 (2/8 and 6/8 are already in resolveLevel 2) - // ... ; resolveLevel=... - // - // Resolve level 0 is just the beginning and ending vertices. - vertexWriter << (float)0/*resolveLevel*/ << (float)0/*idx*/; - vertexWriter << (float)0/*resolveLevel*/ << (float)1/*idx*/; - - // Resolve levels 1..kMaxResolveLevel. - int maxResolveLevel = SkPrevLog2(vertexCount - 1); - SkASSERT((1 << maxResolveLevel) + 1 == vertexCount); - for (int resolveLevel = 1; resolveLevel <= maxResolveLevel; ++resolveLevel) { - int numSegmentsInResolveLevel = 1 << resolveLevel; - // Write out the odd vertices in this resolveLevel. The even vertices were already written - // out in previous resolveLevels and will be indexed from there. - for (int i = 1; i < numSegmentsInResolveLevel; i += 2) { - vertexWriter << (float)resolveLevel << (float)i; - } - } - - SkASSERT(vertexWriter.mark() == end); -} - -void PathCurveTessellator::WriteFixedIndexBufferBaseIndex(VertexWriter vertexWriter, - size_t bufferSize, - uint16_t baseIndex) { - SkASSERT(bufferSize % (sizeof(uint16_t) * 3) == 0); - int triangleCount = bufferSize / (sizeof(uint16_t) * 3); - SkASSERT(triangleCount >= 1); - SkTArray> indexData(triangleCount); - - // Connect the vertices with a middle-out triangulation. Refer to InitFixedCountVertexBuffer() - // for the exact vertex ordering. - // - // Resolve level 1 is just a single triangle at T=[0, 1/2, 1]. - const auto* neighborInLastResolveLevel = &indexData.push_back({baseIndex, - (uint16_t)(baseIndex + 2), - (uint16_t)(baseIndex + 1)}); - - // Resolve levels 2..maxResolveLevel - int maxResolveLevel = SkPrevLog2(triangleCount + 1); - uint16_t nextIndex = baseIndex + 3; - SkASSERT(NumCurveTrianglesAtResolveLevel(maxResolveLevel) == triangleCount); - for (int resolveLevel = 2; resolveLevel <= maxResolveLevel; ++resolveLevel) { - SkDEBUGCODE(auto* firstTriangleInCurrentResolveLevel = indexData.end()); - int numOuterTrianglelsInResolveLevel = 1 << (resolveLevel - 1); - SkASSERT(numOuterTrianglelsInResolveLevel % 2 == 0); - int numTrianglePairsInResolveLevel = numOuterTrianglelsInResolveLevel >> 1; - for (int i = 0; i < numTrianglePairsInResolveLevel; ++i) { - // First triangle shares the left edge of "neighborInLastResolveLevel". - indexData.push_back({(*neighborInLastResolveLevel)[0], - nextIndex++, - (*neighborInLastResolveLevel)[1]}); - // Second triangle shares the right edge of "neighborInLastResolveLevel". - indexData.push_back({(*neighborInLastResolveLevel)[1], - nextIndex++, - (*neighborInLastResolveLevel)[2]}); - ++neighborInLastResolveLevel; - } - SkASSERT(neighborInLastResolveLevel == firstTriangleInCurrentResolveLevel); - } - SkASSERT(indexData.count() == triangleCount); - SkASSERT(nextIndex == baseIndex + triangleCount + 2); - - vertexWriter << VertexWriter::Array(indexData.data(), indexData.count()); -} - -#if SK_GPU_V1 - -SKGPU_DECLARE_STATIC_UNIQUE_KEY(gFixedVertexBufferKey); -SKGPU_DECLARE_STATIC_UNIQUE_KEY(gFixedIndexBufferKey); - -void PathCurveTessellator::prepareFixedCountBuffers(GrMeshDrawTarget* target) { - GrResourceProvider* rp = target->resourceProvider(); - - SKGPU_DEFINE_STATIC_UNIQUE_KEY(gFixedVertexBufferKey); - - fFixedVertexBuffer = rp->findOrMakeStaticBuffer(GrGpuBufferType::kVertex, - FixedVertexBufferSize(kMaxFixedResolveLevel), - gFixedVertexBufferKey, - WriteFixedVertexBuffer); - - SKGPU_DEFINE_STATIC_UNIQUE_KEY(gFixedIndexBufferKey); - - fFixedIndexBuffer = rp->findOrMakeStaticBuffer(GrGpuBufferType::kIndex, - FixedIndexBufferSize(kMaxFixedResolveLevel), - gFixedIndexBufferKey, - WriteFixedIndexBuffer); -} - -void PathCurveTessellator::drawTessellated(GrOpFlushState* flushState) const { - for (const GrVertexChunk& chunk : fVertexChunkArray) { - flushState->bindBuffers(nullptr, nullptr, chunk.fBuffer); - flushState->draw(chunk.fCount * 4, chunk.fBase * 4); - } -} - -void PathCurveTessellator::drawFixedCount(GrOpFlushState* flushState) const { - if (!fFixedVertexBuffer || !fFixedIndexBuffer) { - return; - } - int fixedIndexCount = NumCurveTrianglesAtResolveLevel(fFixedResolveLevel) * 3; - for (const GrVertexChunk& chunk : fVertexChunkArray) { - flushState->bindBuffers(fFixedIndexBuffer, chunk.fBuffer, fFixedVertexBuffer); - flushState->drawIndexedInstanced(fixedIndexCount, 0, chunk.fCount, chunk.fBase, 0); - } -} - -void PathCurveTessellator::drawHullInstances(GrOpFlushState* flushState, - sk_sp vertexBufferIfNeeded) const { - for (const GrVertexChunk& chunk : fVertexChunkArray) { - flushState->bindBuffers(nullptr, chunk.fBuffer, vertexBufferIfNeeded); - flushState->drawInstanced(chunk.fCount, chunk.fBase, 4, 0); - } -} - -#endif - -} // namespace skgpu diff --git a/third_party/skia/src/gpu/tessellate/PathCurveTessellator.h b/third_party/skia/src/gpu/tessellate/PathCurveTessellator.h deleted file mode 100644 index 1d81b5bf7c71..000000000000 --- a/third_party/skia/src/gpu/tessellate/PathCurveTessellator.h +++ /dev/null @@ -1,72 +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 tessellate_PathCurveTessellator_DEFINED -#define tessellate_PathCurveTessellator_DEFINED - -#include "src/core/SkArenaAlloc.h" -#include "src/gpu/tessellate/PathTessellator.h" - -namespace skgpu { - -// Draws an array of "outer curve" patches. Each patch is an independent 4-point curve, representing -// either a cubic or a conic. Quadratics are converted to cubics and triangles are converted to -// conics with w=Inf. -class PathCurveTessellator final : public PathTessellator { -public: - static PathCurveTessellator* Make(SkArenaAlloc* arena, - bool infinitySupport, - PatchAttribs attribs = PatchAttribs::kNone) { - return arena->make(infinitySupport, attribs); - } - - PathCurveTessellator(bool infinitySupport, - PatchAttribs attribs = PatchAttribs::kNone) - : PathTessellator(infinitySupport, attribs) {} - - int patchPreallocCount(int totalCombinedPathVerbCnt) const final; - - void writePatches(PatchWriter& patchWriter, - const SkMatrix& shaderMatrix, - const PathDrawList& pathDrawList) final; - - // Size of the vertex buffer to use when rendering with a fixed count shader. - constexpr static int FixedVertexBufferSize(int maxFixedResolveLevel) { - return ((1 << maxFixedResolveLevel) + 1) * sizeof(SkPoint); - } - - // Writes the vertex buffer to use when rendering with a fixed count shader. - static void WriteFixedVertexBuffer(VertexWriter, size_t bufferSize); - - // Size of the index buffer to use when rendering with a fixed count shader. - constexpr static int FixedIndexBufferSize(int maxFixedResolveLevel) { - return NumCurveTrianglesAtResolveLevel(maxFixedResolveLevel) * 3 * sizeof(uint16_t); - } - - // Writes the index buffer to use when rendering with a fixed count shader. - static void WriteFixedIndexBuffer(VertexWriter vertexWriter, size_t bufferSize) { - WriteFixedIndexBufferBaseIndex(std::move(vertexWriter), bufferSize, 0); - } - - static void WriteFixedIndexBufferBaseIndex(VertexWriter, size_t bufferSize, uint16_t baseIndex); - -#if SK_GPU_V1 - void prepareFixedCountBuffers(GrMeshDrawTarget*) final; - - void drawTessellated(GrOpFlushState*) const final; - void drawFixedCount(GrOpFlushState*) const final; - - // Draws a 4-point instance for each patch. This method is used for drawing convex hulls over - // each cubic with GrFillCubicHullShader. The caller is responsible for binding its desired - // pipeline ahead of time. - void drawHullInstances(GrOpFlushState*, sk_sp vertexBufferIfNeeded) const; -#endif -}; - -} // namespace skgpu - -#endif // tessellate_PathCurveTessellator_DEFINED diff --git a/third_party/skia/src/gpu/tessellate/PathTessellator.h b/third_party/skia/src/gpu/tessellate/PathTessellator.h deleted file mode 100644 index bb698e4ec332..000000000000 --- a/third_party/skia/src/gpu/tessellate/PathTessellator.h +++ /dev/null @@ -1,162 +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 tessellate_PathTessellator_DEFINED -#define tessellate_PathTessellator_DEFINED - -#include "src/gpu/tessellate/Tessellation.h" - -class SkPath; - -#if SK_GPU_V1 -#include "src/gpu/GrGpuBuffer.h" -#include "src/gpu/GrVertexChunkArray.h" -#include "src/gpu/tessellate/PatchWriter.h" - -class GrMeshDrawTarget; -class GrOpFlushState; -#endif - -namespace skgpu { - -class PatchWriter; - -// Prepares GPU data for, and then draws a path's tessellated geometry. Depending on the subclass, -// the caller may or may not be required to draw the path's inner fan separately. -class PathTessellator { -public: - // This is the maximum number of segments contained in our vertex and index buffers for - // fixed-count rendering. If rendering in fixed-count mode and a curve requires more segments, - // it must be chopped. - constexpr static int kMaxFixedResolveLevel = 5; - - struct PathDrawList { - PathDrawList(const SkMatrix& pathMatrix, - const SkPath& path, - const SkPMColor4f& color, - PathDrawList* next = nullptr) - : fPathMatrix(pathMatrix), fPath(path), fColor(color), fNext(next) {} - - SkMatrix fPathMatrix; - SkPath fPath; - SkPMColor4f fColor; - PathDrawList* fNext; - - struct Iter { - void operator++() { fHead = fHead->fNext; } - bool operator!=(const Iter& b) const { return fHead != b.fHead; } - std::tuple operator*() const { - return {fHead->fPathMatrix, fHead->fPath, fHead->fColor}; - } - const PathDrawList* fHead; - }; - Iter begin() const { return {this}; } - Iter end() const { return {nullptr}; } - }; - - virtual ~PathTessellator() {} - - PatchAttribs patchAttribs() const { return fAttribs; } - - // Gives an approximate initial buffer size for this class to write patches into. Ideally the - // whole path will fit into this initial buffer, but if it requires a lot of chopping, the - // PatchWriter will allocate more buffer(s). - virtual int patchPreallocCount(int totalCombinedPathVerbCnt) const = 0; - - // Writes out patches to the given PatchWriter, chopping as necessary so the curves all fit in - // maxTessellationSegments or fewer. - // - // Each path's fPathMatrix in the list is applied on the CPU while the geometry is being written - // out. This is a tool for batching, and is applied in addition to the shader's on-GPU matrix. - virtual void writePatches(PatchWriter&, - const SkMatrix& shaderMatrix, - const PathDrawList&) = 0; - -#if SK_GPU_V1 - // Initializes the internal vertex and index buffers required for drawFixedCount(). - virtual void prepareFixedCountBuffers(GrMeshDrawTarget*) = 0; - - // Called before draw(). Prepares GPU buffers containing the geometry to tessellate. - void prepare(GrMeshDrawTarget* target, - int maxTessellationSegments, - const SkMatrix& shaderMatrix, - const PathDrawList& pathDrawList, - int totalCombinedPathVerbCnt, - bool willUseTessellationShaders) { - if (int patchPreallocCount = this->patchPreallocCount(totalCombinedPathVerbCnt)) { - PatchWriter patchWriter(target, this, maxTessellationSegments, patchPreallocCount); - this->writePatches(patchWriter, shaderMatrix, pathDrawList); - } - if (!willUseTessellationShaders) { - this->prepareFixedCountBuffers(target); - } - } - - // Issues hardware tessellation draw calls over the patches. The caller is responsible for - // binding its desired pipeline ahead of time. - virtual void drawTessellated(GrOpFlushState*) const = 0; - - // Issues fixed-count instanced draw calls over the patches. The caller is responsible for - // binding its desired pipeline ahead of time. - virtual void drawFixedCount(GrOpFlushState*) const = 0; - - void draw(GrOpFlushState* flushState, bool willUseTessellationShaders) { - if (willUseTessellationShaders) { - this->drawTessellated(flushState); - } else { - this->drawFixedCount(flushState); - } - } -#endif - - // Returns an upper bound on the number of combined edges there might be from all inner fans in - // a PathDrawList. - static int MaxCombinedFanEdgesInPathDrawList(int totalCombinedPathVerbCnt) { - // Path fans might have an extra edge from an implicit kClose at the end, but they also - // always begin with kMove. So the max possible number of edges in a single path is equal to - // the number of verbs. Therefore, the max number of combined fan edges in a PathDrawList is - // the number of combined path verbs in that PathDrawList. - return totalCombinedPathVerbCnt; - } - -protected: - // How many triangles are in a curve with 2^resolveLevel line segments? - constexpr static int NumCurveTrianglesAtResolveLevel(int resolveLevel) { - // resolveLevel=0 -> 0 line segments -> 0 triangles - // resolveLevel=1 -> 2 line segments -> 1 triangle - // resolveLevel=2 -> 4 line segments -> 3 triangles - // resolveLevel=3 -> 8 line segments -> 7 triangles - // ... - return (1 << resolveLevel) - 1; - } - - PathTessellator(bool infinitySupport, PatchAttribs attribs) : fAttribs(attribs) { - if (!infinitySupport) { - fAttribs |= PatchAttribs::kExplicitCurveType; - } - } - - PatchAttribs fAttribs; - - // Calculated during prepare(). If using fixed count, this is the resolveLevel to use on our - // instanced draws. 2^resolveLevel == numSegments. - int fFixedResolveLevel = 0; - -#if SK_GPU_V1 - friend class PatchWriter; // To access fVertexChunkArray. - - GrVertexChunkArray fVertexChunkArray; - - // If using fixed-count rendering, these are the vertex and index buffers. - sk_sp fFixedVertexBuffer; - sk_sp fFixedIndexBuffer; -#endif -}; - -} // namespace skgpu - -#endif // tessellate_PathTessellator_DEFINED diff --git a/third_party/skia/src/gpu/tessellate/PathWedgeTessellator.cpp b/third_party/skia/src/gpu/tessellate/PathWedgeTessellator.cpp deleted file mode 100644 index 4e02ba7f2ef3..000000000000 --- a/third_party/skia/src/gpu/tessellate/PathWedgeTessellator.cpp +++ /dev/null @@ -1,275 +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 "src/gpu/tessellate/PathWedgeTessellator.h" - -#include "src/core/SkPathPriv.h" -#include "src/gpu/tessellate/AffineMatrix.h" -#include "src/gpu/tessellate/PatchWriter.h" -#include "src/gpu/tessellate/PathCurveTessellator.h" -#include "src/gpu/tessellate/WangsFormula.h" - -#if SK_GPU_V1 -#include "src/gpu/GrMeshDrawTarget.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrResourceProvider.h" -#endif - -namespace skgpu { - -namespace { - -// Parses out each contour in a path and tracks the midpoint. Example usage: -// -// SkTPathContourParser parser; -// while (parser.parseNextContour()) { -// SkPoint midpoint = parser.currentMidpoint(); -// for (auto [verb, pts] : parser.currentContour()) { -// ... -// } -// } -// -class MidpointContourParser { -public: - MidpointContourParser(const SkPath& path) - : fPath(path) - , fVerbs(SkPathPriv::VerbData(fPath)) - , fNumRemainingVerbs(fPath.countVerbs()) - , fPoints(SkPathPriv::PointData(fPath)) - , fWeights(SkPathPriv::ConicWeightData(fPath)) {} - // Advances the internal state to the next contour in the path. Returns false if there are no - // more contours. - bool parseNextContour() { - bool hasGeometry = false; - for (; fVerbsIdx < fNumRemainingVerbs; ++fVerbsIdx) { - switch (fVerbs[fVerbsIdx]) { - case SkPath::kMove_Verb: - if (!hasGeometry) { - fMidpoint = {0,0}; - fMidpointWeight = 0; - this->advance(); // Resets fPtsIdx to 0 and advances fPoints. - fPtsIdx = 1; // Increment fPtsIdx past the kMove. - continue; - } - if (fPoints[0] != fPoints[fPtsIdx - 1]) { - // There's an implicit close at the end. Add the start point to our mean. - fMidpoint += fPoints[0]; - ++fMidpointWeight; - } - return true; - default: - continue; - case SkPath::kLine_Verb: - ++fPtsIdx; - break; - case SkPath::kConic_Verb: - ++fWtsIdx; - [[fallthrough]]; - case SkPath::kQuad_Verb: - fPtsIdx += 2; - break; - case SkPath::kCubic_Verb: - fPtsIdx += 3; - break; - } - fMidpoint += fPoints[fPtsIdx - 1]; - ++fMidpointWeight; - hasGeometry = true; - } - if (hasGeometry && fPoints[0] != fPoints[fPtsIdx - 1]) { - // There's an implicit close at the end. Add the start point to our mean. - fMidpoint += fPoints[0]; - ++fMidpointWeight; - } - return hasGeometry; - } - - // Allows for iterating the current contour using a range-for loop. - SkPathPriv::Iterate currentContour() { - return SkPathPriv::Iterate(fVerbs, fVerbs + fVerbsIdx, fPoints, fWeights); - } - - SkPoint currentMidpoint() { return fMidpoint * (1.f / fMidpointWeight); } - -private: - void advance() { - fVerbs += fVerbsIdx; - fNumRemainingVerbs -= fVerbsIdx; - fVerbsIdx = 0; - fPoints += fPtsIdx; - fPtsIdx = 0; - fWeights += fWtsIdx; - fWtsIdx = 0; - } - - const SkPath& fPath; - - const uint8_t* fVerbs; - int fNumRemainingVerbs = 0; - int fVerbsIdx = 0; - - const SkPoint* fPoints; - int fPtsIdx = 0; - - const float* fWeights; - int fWtsIdx = 0; - - SkPoint fMidpoint; - int fMidpointWeight; -}; - -} // namespace - -int PathWedgeTessellator::patchPreallocCount(int totalCombinedPathVerbCnt) const { - // Over-allocate enough wedges for 1 in 4 to chop. - int maxWedges = MaxCombinedFanEdgesInPathDrawList(totalCombinedPathVerbCnt); - return (maxWedges * 5 + 3) / 4; // i.e., ceil(maxWedges * 5/4) -} - -void PathWedgeTessellator::writePatches(PatchWriter& patchWriter, - const SkMatrix& shaderMatrix, - const PathDrawList& pathDrawList) { - wangs_formula::VectorXform shaderXform(shaderMatrix); - for (auto [pathMatrix, path, color] : pathDrawList) { - AffineMatrix m(pathMatrix); - if (fAttribs & PatchAttribs::kColor) { - patchWriter.updateColorAttrib(color); - } - MidpointContourParser parser(path); - while (parser.parseNextContour()) { - patchWriter.updateFanPointAttrib(m.mapPoint(parser.currentMidpoint())); - SkPoint lastPoint = {0, 0}; - SkPoint startPoint = {0, 0}; - for (auto [verb, pts, w] : parser.currentContour()) { - switch (verb) { - case SkPathVerb::kMove: { - startPoint = lastPoint = pts[0]; - break; - } - - case SkPathVerb::kLine: { - // Explicitly convert the line to an equivalent cubic w/ four distinct - // control points because it fans better and avoids double-hitting pixels. - patchWriter.writeLine(m.map2Points(pts)); - lastPoint = pts[1]; - break; - } - - case SkPathVerb::kQuad: { - auto [p0, p1] = m.map2Points(pts); - auto p2 = m.map1Point(pts+2); - - patchWriter.writeQuadratic(p0, p1, p2, shaderXform); - lastPoint = pts[2]; - break; - } - - case SkPathVerb::kConic: { - auto [p0, p1] = m.map2Points(pts); - auto p2 = m.map1Point(pts+2); - - patchWriter.writeConic(p0, p1, p2, *w, shaderXform); - lastPoint = pts[2]; - break; - } - - case SkPathVerb::kCubic: { - auto [p0, p1] = m.map2Points(pts); - auto [p2, p3] = m.map2Points(pts+2); - - patchWriter.writeCubic(p0, p1, p2, p3, shaderXform); - lastPoint = pts[3]; - break; - } - - case SkPathVerb::kClose: { - break; // Ignore. We can assume an implicit close at the end. - } - } - } - if (lastPoint != startPoint) { - SkPoint pts[2] = {lastPoint, startPoint}; - patchWriter.writeLine(m.map2Points(pts)); - } - } - } - - // We already chopped curves to make sure none needed a higher resolveLevel than - // kMaxFixedResolveLevel. - fFixedResolveLevel = SkTPin(patchWriter.requiredResolveLevel(), - fFixedResolveLevel, - int(kMaxFixedResolveLevel)); -} - -void PathWedgeTessellator::WriteFixedVertexBuffer(VertexWriter vertexWriter, size_t bufferSize) { - SkASSERT(bufferSize >= sizeof(SkPoint)); - - // Start out with the fan point. A negative resolve level indicates the fan point. - vertexWriter << -1.f/*resolveLevel*/ << -1.f/*idx*/; - - // The rest is the same as for curves. - PathCurveTessellator::WriteFixedVertexBuffer(std::move(vertexWriter), - bufferSize - sizeof(SkPoint)); -} - -void PathWedgeTessellator::WriteFixedIndexBuffer(VertexWriter vertexWriter, size_t bufferSize) { - SkASSERT(bufferSize >= sizeof(uint16_t) * 3); - - // Start out with the fan triangle. - vertexWriter << (uint16_t)0 << (uint16_t)1 << (uint16_t)2; - - // The rest is the same as for curves, with a baseIndex of 1. - PathCurveTessellator::WriteFixedIndexBufferBaseIndex(std::move(vertexWriter), - bufferSize - sizeof(uint16_t) * 3, - 1); -} - -#if SK_GPU_V1 - -SKGPU_DECLARE_STATIC_UNIQUE_KEY(gFixedVertexBufferKey); -SKGPU_DECLARE_STATIC_UNIQUE_KEY(gFixedIndexBufferKey); - -void PathWedgeTessellator::prepareFixedCountBuffers(GrMeshDrawTarget* target) { - GrResourceProvider* rp = target->resourceProvider(); - - SKGPU_DEFINE_STATIC_UNIQUE_KEY(gFixedVertexBufferKey); - - fFixedVertexBuffer = rp->findOrMakeStaticBuffer(GrGpuBufferType::kVertex, - FixedVertexBufferSize(kMaxFixedResolveLevel), - gFixedVertexBufferKey, - WriteFixedVertexBuffer); - - SKGPU_DEFINE_STATIC_UNIQUE_KEY(gFixedIndexBufferKey); - - fFixedIndexBuffer = rp->findOrMakeStaticBuffer(GrGpuBufferType::kIndex, - FixedIndexBufferSize(kMaxFixedResolveLevel), - gFixedIndexBufferKey, - WriteFixedIndexBuffer); -} - -void PathWedgeTessellator::drawTessellated(GrOpFlushState* flushState) const { - for (const GrVertexChunk& chunk : fVertexChunkArray) { - flushState->bindBuffers(nullptr, nullptr, chunk.fBuffer); - flushState->draw(chunk.fCount * 5, chunk.fBase * 5); - } -} - -void PathWedgeTessellator::drawFixedCount(GrOpFlushState* flushState) const { - if (!fFixedVertexBuffer || !fFixedIndexBuffer) { - return; - } - // Emit 3 vertices per curve triangle, plus 3 more for the fan triangle. - int fixedIndexCount = (NumCurveTrianglesAtResolveLevel(fFixedResolveLevel) + 1) * 3; - for (const GrVertexChunk& chunk : fVertexChunkArray) { - flushState->bindBuffers(fFixedIndexBuffer, chunk.fBuffer, fFixedVertexBuffer); - flushState->drawIndexedInstanced(fixedIndexCount, 0, chunk.fCount, chunk.fBase, 0); - } -} - -#endif - -} // namespace skgpu diff --git a/third_party/skia/src/gpu/tessellate/PathWedgeTessellator.h b/third_party/skia/src/gpu/tessellate/PathWedgeTessellator.h deleted file mode 100644 index 1c5a584ea626..000000000000 --- a/third_party/skia/src/gpu/tessellate/PathWedgeTessellator.h +++ /dev/null @@ -1,67 +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 tessellate_PathWedgeTessellator_DEFINED -#define tessellate_PathWedgeTessellator_DEFINED - -#include "src/gpu/tessellate/PathTessellator.h" - -#include "src/core/SkArenaAlloc.h" - -namespace skgpu { - -// Prepares an array of "wedge" patches. A wedge is an independent, 5-point closed contour -// consisting of 4 control points plus an anchor point fanning from the center of the curve's -// resident contour. A wedge can be either a cubic or a conic. Quadratics and lines are converted to -// cubics. Once stencilled, these wedges alone define the complete path. -class PathWedgeTessellator final : public PathTessellator { -public: - static PathWedgeTessellator* Make(SkArenaAlloc* arena, - bool infinitySupport, - PatchAttribs attribs = PatchAttribs::kNone) { - return arena->make(infinitySupport, attribs); - } - - PathWedgeTessellator(bool infinitySupport, PatchAttribs attribs = PatchAttribs::kNone) - : PathTessellator(infinitySupport, attribs) { - fAttribs |= PatchAttribs::kFanPoint; - } - - int patchPreallocCount(int totalCombinedPathVerbCnt) const final; - - void writePatches(PatchWriter&, - const SkMatrix& shaderMatrix, - const PathDrawList&) final; - - // Size of the vertex buffer to use when rendering with a fixed count shader. - constexpr static int FixedVertexBufferSize(int maxFixedResolveLevel) { - return (((1 << maxFixedResolveLevel) + 1) + 1/*fan vertex*/) * sizeof(SkPoint); - } - - // Writes the vertex buffer to use when rendering with a fixed count shader. - static void WriteFixedVertexBuffer(VertexWriter, size_t bufferSize); - - // Size of the index buffer to use when rendering with a fixed count shader. - constexpr static int FixedIndexBufferSize(int maxFixedResolveLevel) { - return (NumCurveTrianglesAtResolveLevel(maxFixedResolveLevel) + 1/*fan triangle*/) * - 3 * sizeof(uint16_t); - } - - // Writes the index buffer to use when rendering with a fixed count shader. - static void WriteFixedIndexBuffer(VertexWriter vertexWriter, size_t bufferSize); - -#if SK_GPU_V1 - void prepareFixedCountBuffers(GrMeshDrawTarget*) final; - - void drawTessellated(GrOpFlushState*) const final; - void drawFixedCount(GrOpFlushState*) const final; -#endif -}; - -} // namespace skgpu - -#endif // tessellate_PathWedgeTessellator_DEFINED diff --git a/third_party/skia/src/gpu/tessellate/StrokeFixedCountTessellator.cpp b/third_party/skia/src/gpu/tessellate/StrokeFixedCountTessellator.cpp deleted file mode 100644 index 5d42071c1247..000000000000 --- a/third_party/skia/src/gpu/tessellate/StrokeFixedCountTessellator.cpp +++ /dev/null @@ -1,324 +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 "src/gpu/tessellate/StrokeFixedCountTessellator.h" - -#include "src/core/SkGeometry.h" -#include "src/gpu/tessellate/PatchWriter.h" -#include "src/gpu/tessellate/StrokeIterator.h" -#include "src/gpu/tessellate/WangsFormula.h" - -#if SK_GPU_V1 -#include "src/gpu/GrMeshDrawTarget.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrResourceProvider.h" -#endif - -namespace skgpu { - -namespace { - -// Writes out strokes to the given instance chunk array, chopping if necessary so that all instances -// require 32 parametric segments or less. (We don't consider radial segments here. The tessellator -// will just add enough additional segments to handle a worst-case 180 degree stroke.) -class InstanceWriter { - using VectorXform = wangs_formula::VectorXform; -public: - InstanceWriter(PatchWriter& patchWriter, float matrixMaxScale) - : fPatchWriter(patchWriter) - , fParametricPrecision(StrokeTolerances::CalcParametricPrecision(matrixMaxScale)) { - SkASSERT(fPatchWriter.attribs() & PatchAttribs::kJoinControlPoint); - } - - float parametricPrecision() const { return fParametricPrecision; } - - SK_ALWAYS_INLINE void lineTo(SkPoint start, SkPoint end) { - fPatchWriter.writeLine(start, end); - } - - SK_ALWAYS_INLINE void quadraticTo(const SkPoint p[3]) { - fPatchWriter.writeQuadratic(p, VectorXform(), fParametricPrecision); - } - - SK_ALWAYS_INLINE void conicTo(const SkPoint p[3], float w) { - fPatchWriter.writeConic(p, w, VectorXform(), fParametricPrecision); - } - - SK_ALWAYS_INLINE void cubicConvex180To(const SkPoint p[4]) { - fPatchWriter.writeCubic(p, VectorXform(), fParametricPrecision); - } - - // Called when we encounter the verb "kMoveWithinContour". Moves invalidate the previous control - // point. The stroke iterator tells us the new value to use for the previous control point. - void setLastControlPoint(SkPoint newLastControlPoint) { - fPatchWriter.updateJoinControlPointAttrib(newLastControlPoint); - } - - // Draws a circle whose diameter is equal to the stroke width. We emit circles at cusp points - // round caps, and empty strokes that are specified to be drawn as circles. - void writeCircle(SkPoint location) { - fPatchWriter.writeCircle(location); - } - - void finishContour() { - fPatchWriter.writeDeferredStrokePatch(); - } - -private: - PatchWriter& fPatchWriter; - const float fParametricPrecision; -}; - -// Returns the worst-case number of edges we will need in order to draw a join of the given type. -int worst_case_edges_in_join(SkPaint::Join joinType, float numRadialSegmentsPerRadian) { - int numEdges = StrokeFixedCountTessellator::NumFixedEdgesInJoin(joinType); - if (joinType == SkPaint::kRound_Join) { - // For round joins we need to count the radial edges on our own. Account for a worst-case - // join of 180 degrees (SK_ScalarPI radians). - numEdges += std::max(SkScalarCeilToInt(numRadialSegmentsPerRadian * SK_ScalarPI) - 1, 0); - } - return numEdges; -} - -} // namespace - - -int StrokeFixedCountTessellator::patchPreallocCount(int totalCombinedStrokeVerbCnt) const { - // Over-allocate enough patches for each stroke to chop once, and for 8 extra caps. Since we - // have to chop at inflections, points of 180 degree rotation, and anywhere a stroke requires - // too many parametric segments, many strokes will end up getting choppped. - int strokePreallocCount = totalCombinedStrokeVerbCnt * 2; - int capPreallocCount = 8; - return strokePreallocCount + capPreallocCount; -} - -int StrokeFixedCountTessellator::writePatches(PatchWriter& patchWriter, - const SkMatrix& shaderMatrix, - std::array matrixMinMaxScales, - PathStrokeList* pathStrokeList) { - int maxEdgesInJoin = 0; - float maxRadialSegmentsPerRadian = 0; - - InstanceWriter instanceWriter(patchWriter, matrixMinMaxScales[1]); - - if (!(fAttribs & PatchAttribs::kStrokeParams)) { - // Strokes are static. Calculate tolerances once. - const SkStrokeRec& stroke = pathStrokeList->fStroke; - float localStrokeWidth = StrokeTolerances::GetLocalStrokeWidth(matrixMinMaxScales.data(), - stroke.getWidth()); - float numRadialSegmentsPerRadian = StrokeTolerances::CalcNumRadialSegmentsPerRadian( - instanceWriter.parametricPrecision(), localStrokeWidth); - maxEdgesInJoin = worst_case_edges_in_join(stroke.getJoin(), numRadialSegmentsPerRadian); - maxRadialSegmentsPerRadian = numRadialSegmentsPerRadian; - } - - // Fast SIMD queue that buffers up values for "numRadialSegmentsPerRadian". Only used when we - // have dynamic stroke. - StrokeToleranceBuffer toleranceBuffer(instanceWriter.parametricPrecision()); - - for (PathStrokeList* pathStroke = pathStrokeList; pathStroke; pathStroke = pathStroke->fNext) { - const SkStrokeRec& stroke = pathStroke->fStroke; - if (fAttribs & PatchAttribs::kStrokeParams) { - // Strokes are dynamic. Calculate tolerances every time. - float numRadialSegmentsPerRadian = - toleranceBuffer.fetchRadialSegmentsPerRadian(pathStroke); - maxEdgesInJoin = std::max( - worst_case_edges_in_join(stroke.getJoin(), numRadialSegmentsPerRadian), - maxEdgesInJoin); - maxRadialSegmentsPerRadian = std::max(numRadialSegmentsPerRadian, - maxRadialSegmentsPerRadian); - patchWriter.updateStrokeParamsAttrib(stroke); - } - if (fAttribs & PatchAttribs::kColor) { - patchWriter.updateColorAttrib(pathStroke->fColor); - } - StrokeIterator strokeIter(pathStroke->fPath, &pathStroke->fStroke, &shaderMatrix); - while (strokeIter.next()) { - using Verb = StrokeIterator::Verb; - const SkPoint* p = strokeIter.pts(); - int numChops; - switch (strokeIter.verb()) { - case Verb::kContourFinished: - instanceWriter.finishContour(); - break; - case Verb::kCircle: - // Round cap or else an empty stroke that is specified to be drawn as a circle. - instanceWriter.writeCircle(p[0]); - [[fallthrough]]; - case Verb::kMoveWithinContour: - instanceWriter.setLastControlPoint(p[0]); - break; - case Verb::kLine: - instanceWriter.lineTo(p[0], p[1]); - break; - case Verb::kQuad: - if (ConicHasCusp(p)) { - // The cusp is always at the midtandent. - SkPoint cusp = SkEvalQuadAt(p, SkFindQuadMidTangent(p)); - instanceWriter.writeCircle(cusp); - // A quad can only have a cusp if it's flat with a 180-degree turnaround. - instanceWriter.lineTo(p[0], cusp); - instanceWriter.lineTo(cusp, p[2]); - } else { - instanceWriter.quadraticTo(p); - } - break; - case Verb::kConic: - if (ConicHasCusp(p)) { - // The cusp is always at the midtandent. - SkConic conic(p, strokeIter.w()); - SkPoint cusp = conic.evalAt(conic.findMidTangent()); - instanceWriter.writeCircle(cusp); - // A conic can only have a cusp if it's flat with a 180-degree turnaround. - instanceWriter.lineTo(p[0], cusp); - instanceWriter.lineTo(cusp, p[2]); - } else { - instanceWriter.conicTo(p, strokeIter.w()); - } - break; - case Verb::kCubic: - SkPoint chops[10]; - float T[2]; - bool areCusps; - numChops = FindCubicConvex180Chops(p, T, &areCusps); - if (numChops == 0) { - instanceWriter.cubicConvex180To(p); - } else if (numChops == 1) { - SkChopCubicAt(p, chops, T[0]); - if (areCusps) { - instanceWriter.writeCircle(chops[3]); - // In a perfect world, these 3 points would be be equal after chopping - // on a cusp. - chops[2] = chops[4] = chops[3]; - } - instanceWriter.cubicConvex180To(chops); - instanceWriter.cubicConvex180To(chops + 3); - } else { - SkASSERT(numChops == 2); - SkChopCubicAt(p, chops, T[0], T[1]); - if (areCusps) { - instanceWriter.writeCircle(chops[3]); - instanceWriter.writeCircle(chops[6]); - // Two cusps are only possible if it's a flat line with two 180-degree - // turnarounds. - instanceWriter.lineTo(chops[0], chops[3]); - instanceWriter.lineTo(chops[3], chops[6]); - instanceWriter.lineTo(chops[6], chops[9]); - } else { - instanceWriter.cubicConvex180To(chops); - instanceWriter.cubicConvex180To(chops + 3); - instanceWriter.cubicConvex180To(chops + 6); - } - } - break; - } - } - } - - // The maximum rotation we can have in a stroke is 180 degrees (SK_ScalarPI radians). - int maxRadialSegmentsInStroke = - std::max(SkScalarCeilToInt(maxRadialSegmentsPerRadian * SK_ScalarPI), 1); - - int maxParametricSegmentsInStroke = patchWriter.requiredFixedSegments(); - SkASSERT(maxParametricSegmentsInStroke >= 1); - - // Now calculate the maximum number of edges we will need in the stroke portion of the instance. - // The first and last edges in a stroke are shared by both the parametric and radial sets of - // edges, so the total number of edges is: - // - // numCombinedEdges = numParametricEdges + numRadialEdges - 2 - // - // It's also important to differentiate between the number of edges and segments in a strip: - // - // numSegments = numEdges - 1 - // - // So the total number of combined edges in the stroke is: - // - // numEdgesInStroke = numParametricSegments + 1 + numRadialSegments + 1 - 2 - // = numParametricSegments + numRadialSegments - // - int maxEdgesInStroke = maxRadialSegmentsInStroke + maxParametricSegmentsInStroke; - - // Each triangle strip has two sections: It starts with a join then transitions to a stroke. The - // number of edges in an instance is the sum of edges from the join and stroke sections both. - // NOTE: The final join edge and the first stroke edge are co-located, however we still need to - // emit both because the join's edge is half-width and the stroke's is full-width. - return maxEdgesInJoin + maxEdgesInStroke; -} - -void StrokeFixedCountTessellator::InitializeVertexIDFallbackBuffer(VertexWriter vertexWriter, - size_t bufferSize) { - SkASSERT(bufferSize % (sizeof(float) * 2) == 0); - int edgeCount = bufferSize / (sizeof(float) * 2); - for (int i = 0; i < edgeCount; ++i) { - vertexWriter << (float)i << (float)-i; - } -} - -#if SK_GPU_V1 - -SKGPU_DECLARE_STATIC_UNIQUE_KEY(gVertexIDFallbackBufferKey); - -int StrokeFixedCountTessellator::prepare(GrMeshDrawTarget* target, - const SkMatrix& shaderMatrix, - std::array matrixMinMaxScales, - PathStrokeList* pathStrokeList, - int totalCombinedStrokeVerbCnt) { - // NOTE: For now InstanceWriter manually chops curves that exceed kMaxParametricSegments_pow4, - // so passing in kMaxParametricSegments to PatchWriter avoids its auto-chopping while still - // correctly accumulating the min required segment count. - PatchWriter patchWriter(target, this, kMaxParametricSegments, - this->patchPreallocCount(totalCombinedStrokeVerbCnt)); - - fFixedEdgeCount = this->writePatches(patchWriter, - shaderMatrix, - matrixMinMaxScales, - pathStrokeList); - - // Don't draw more vertices than can be indexed by a signed short. We just have to draw the line - // somewhere and this seems reasonable enough. (There are two vertices per edge, so 2^14 edges - // make 2^15 vertices.) - fFixedEdgeCount = std::min(fFixedEdgeCount, (1 << 14) - 1); - - if (!target->caps().shaderCaps()->vertexIDSupport()) { - // Our shader won't be able to use sk_VertexID. Bind a fallback vertex buffer with the IDs - // in it instead. - constexpr static int kMaxVerticesInFallbackBuffer = 2048; - fFixedEdgeCount = std::min(fFixedEdgeCount, kMaxVerticesInFallbackBuffer/2); - - SKGPU_DEFINE_STATIC_UNIQUE_KEY(gVertexIDFallbackBufferKey); - - fVertexBufferIfNoIDSupport = target->resourceProvider()->findOrMakeStaticBuffer( - GrGpuBufferType::kVertex, - kMaxVerticesInFallbackBuffer * sizeof(float), - gVertexIDFallbackBufferKey, - InitializeVertexIDFallbackBuffer); - } - - return fFixedEdgeCount; -} - -void StrokeFixedCountTessellator::draw(GrOpFlushState* flushState) const { - if (fVertexChunkArray.empty() || fFixedEdgeCount <= 0) { - return; - } - if (!flushState->caps().shaderCaps()->vertexIDSupport() && - !fVertexBufferIfNoIDSupport) { - return; - } - for (const auto& instanceChunk : fVertexChunkArray) { - flushState->bindBuffers(nullptr, instanceChunk.fBuffer, fVertexBufferIfNoIDSupport); - flushState->drawInstanced(instanceChunk.fCount, - instanceChunk.fBase, - fFixedEdgeCount * 2, - 0); - } -} - -#endif - -} // namespace skgpu diff --git a/third_party/skia/src/gpu/tessellate/StrokeFixedCountTessellator.h b/third_party/skia/src/gpu/tessellate/StrokeFixedCountTessellator.h deleted file mode 100644 index b30d13a0a887..000000000000 --- a/third_party/skia/src/gpu/tessellate/StrokeFixedCountTessellator.h +++ /dev/null @@ -1,89 +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 tessellate_StrokeFixedCountTessellator_DEFINED -#define tessellate_StrokeFixedCountTessellator_DEFINED - -#include "src/gpu/tessellate/StrokeTessellator.h" - -#if SK_GPU_V1 -#include "src/gpu/GrGpuBuffer.h" -#endif - -namespace skgpu { - -// Renders strokes as fixed-count triangle strip instances. Any extra triangles not needed by the -// instance are emitted as degenerate triangles. -class StrokeFixedCountTessellator final : public StrokeTessellator { -public: - constexpr static int kMaxParametricSegments = 32; - constexpr static int8_t kMaxParametricSegments_log2 = 5; // log2(32) - - StrokeFixedCountTessellator(PatchAttribs attribs) : StrokeTessellator(attribs) {} - - int patchPreallocCount(int totalCombinedStrokeVerbCnt) const final; - - int writePatches(PatchWriter&, - const SkMatrix& shaderMatrix, - std::array matrixMinMaxScales, - PathStrokeList*) final; - -#if SK_GPU_V1 - int prepare(GrMeshDrawTarget*, - const SkMatrix& shaderMatrix, - std::array matrixMinMaxScales, - PathStrokeList*, - int totalCombinedStrokeVerbCnt) final; - - void draw(GrOpFlushState*) const final; -#endif - - // Initializes the fallback vertex buffer that should be bound when sk_VertexID is not - // supported. Each vertex is a single float and each edge is composed of two vertices, so the - // desired edge count in the buffer is presumed to be "bufferSize / (sizeof(float) * 2)". The - // caller cannot draw more vertices than edgeCount * 2. - static void InitializeVertexIDFallbackBuffer(VertexWriter vertexWriter, size_t bufferSize); - - // Returns the fixed number of edges that are always emitted with the given join type. If the - // join is round, the caller needs to account for the additional radial edges on their own. - // Specifically, each join always emits: - // - // * Two colocated edges at the beginning (a full-width edge to seam with the preceding stroke - // and a half-width edge to begin the join). - // - // * An extra edge in the middle for miter joins, or else a variable number of radial edges - // for round joins (the caller is responsible for counting radial edges from round joins). - // - // * A half-width edge at the end of the join that will be colocated with the first - // (full-width) edge of the stroke. - // - constexpr static int NumFixedEdgesInJoin(SkPaint::Join joinType) { - switch (joinType) { - case SkPaint::kMiter_Join: - return 4; - case SkPaint::kRound_Join: - // The caller is responsible for counting the variable number of middle, radial - // segments on round joins. - [[fallthrough]]; - case SkPaint::kBevel_Join: - return 3; - } - SkUNREACHABLE; - } - -private: -#if SK_GPU_V1 - int fFixedEdgeCount = 0; - - // Only used if sk_VertexID is not supported. - sk_sp fVertexBufferIfNoIDSupport; -#endif -}; - -} // namespace skgpu - -#endif // tessellate_StrokeFixedCountTessellator_DEFINED diff --git a/third_party/skia/src/gpu/tessellate/StrokeHardwareTessellator.h b/third_party/skia/src/gpu/tessellate/StrokeHardwareTessellator.h deleted file mode 100644 index 7562a4eeb199..000000000000 --- a/third_party/skia/src/gpu/tessellate/StrokeHardwareTessellator.h +++ /dev/null @@ -1,46 +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 tessellate_StrokeHardwareTessellator_DEFINED -#define tessellate_StrokeHardwareTessellator_DEFINED - -#include "src/gpu/tessellate/StrokeTessellator.h" - -namespace skgpu { - -// Renders opaque, constant-color strokes by decomposing them into standalone tessellation patches. -// Each patch is either a "cubic" (single stroked bezier curve with butt caps) or a "join". Requires -// MSAA if antialiasing is desired. -class StrokeHardwareTessellator final : public StrokeTessellator { -public: - StrokeHardwareTessellator(PatchAttribs attribs, int maxTessellationSegments) - : StrokeTessellator(attribs), fMaxTessellationSegments(maxTessellationSegments) {} - - int patchPreallocCount(int totalCombinedStrokeVerbCnt) const final; - - int writePatches(PatchWriter&, - const SkMatrix& shaderMatrix, - std::array matrixMinMaxScales, - PathStrokeList*) final; - -#if SK_GPU_V1 - int prepare(GrMeshDrawTarget*, - const SkMatrix& shaderMatrix, - std::array matrixMinMaxScales, - PathStrokeList*, - int totalCombinedStrokeVerbCnt) final; - - void draw(GrOpFlushState*) const final; -#endif - -private: - const int fMaxTessellationSegments; -}; - -} // namespace skgpu - -#endif // tessellate_StrokeHardwareTessellator_DEFINED diff --git a/third_party/skia/src/gpu/tessellate/StrokeTessellator.h b/third_party/skia/src/gpu/tessellate/StrokeTessellator.h deleted file mode 100644 index 403b9ce91953..000000000000 --- a/third_party/skia/src/gpu/tessellate/StrokeTessellator.h +++ /dev/null @@ -1,185 +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 tessellate_StrokeTessellator_DEFINED -#define tessellate_StrokeTessellator_DEFINED - -#include "include/core/SkPath.h" -#include "include/core/SkStrokeRec.h" -#include "include/private/SkColorData.h" -#include "src/gpu/tessellate/Tessellation.h" - -#if SK_GPU_V1 -#include "src/gpu/GrVertexChunkArray.h" - -class GrMeshDrawTarget; -class GrOpFlushState; -#endif - -namespace skgpu { - -class PatchWriter; - -// Prepares GPU data for, and then draws a stroke's tessellated geometry. -class StrokeTessellator { -public: - struct PathStrokeList { - PathStrokeList(const SkPath& path, const SkStrokeRec& stroke, const SkPMColor4f& color) - : fPath(path), fStroke(stroke), fColor(color) {} - SkPath fPath; - SkStrokeRec fStroke; - SkPMColor4f fColor; - PathStrokeList* fNext = nullptr; - }; - - StrokeTessellator(PatchAttribs attribs) : fAttribs(attribs | PatchAttribs::kJoinControlPoint) {} - - // Gives an approximate initial buffer size for this class to write patches into. Ideally the - // whole stroke will fit into this initial buffer, but if it requires a lot of chopping, the - // PatchWriter will allocate more buffer(s). - virtual int patchPreallocCount(int totalCombinedStrokeVerbCnt) const = 0; - - // Writes out patches to the given PatchWriter, chopping as necessary. - // - // Returns the fixed number of edges the tessellator will draw per patch, if using fixed-count - // rendering, otherwise 0. - virtual int writePatches(PatchWriter&, - const SkMatrix& shaderMatrix, - std::array matrixMinMaxScales, - PathStrokeList*) = 0; - -#if SK_GPU_V1 - // Called before draw(). Prepares GPU buffers containing the geometry to tessellate. - // - // Returns the fixed number of edges the tessellator will draw per patch, if using fixed-count - // rendering, otherwise 0. - virtual int prepare(GrMeshDrawTarget*, - const SkMatrix& shaderMatrix, - std::array matrixMinMaxScales, - PathStrokeList*, - int totalCombinedStrokeVerbCnt) = 0; - - // Issues draw calls for the tessellated stroke. The caller is responsible for creating and - // binding a pipeline that uses this class's shader() before calling draw(). - virtual void draw(GrOpFlushState*) const = 0; -#endif - - virtual ~StrokeTessellator() {} - -protected: - const PatchAttribs fAttribs; - -#if SK_GPU_V1 - GrVertexChunkArray fVertexChunkArray; - - friend class PatchWriter; // To access fVertexChunkArray. -#endif -}; - -// These tolerances decide the number of parametric and radial segments the tessellator will -// linearize strokes into. These decisions are made in (pre-viewMatrix) local path space. -struct StrokeTolerances { - // Decides the number of parametric segments the tessellator adds for each curve. (Uniform - // steps in parametric space.) The tessellator will add enough parametric segments so that, - // once transformed into device space, they never deviate by more than - // 1/kTessellationPrecision pixels from the true curve. - constexpr static float CalcParametricPrecision(float matrixMaxScale) { - return matrixMaxScale * kTessellationPrecision; - } - // Decides the number of radial segments the tessellator adds for each curve. (Uniform steps - // in tangent angle.) The tessellator will add this number of radial segments for each - // radian of rotation in local path space. - static float CalcNumRadialSegmentsPerRadian(float parametricPrecision, - float strokeWidth) { - return .5f / acosf(std::max(1 - 2 / (parametricPrecision * strokeWidth), -1.f)); - } - template static vec ApproxNumRadialSegmentsPerRadian(float parametricPrecision, - vec strokeWidths) { - vec cosTheta = skvx::max(1 - 2 / (parametricPrecision * strokeWidths), -1); - // Subtract SKVX_APPROX_ACOS_MAX_ERROR so we never account for too few segments. - return .5f / (skvx::approx_acos(cosTheta) - SKVX_APPROX_ACOS_MAX_ERROR); - } - // Returns the equivalent stroke width in (pre-viewMatrix) local path space that the - // tessellator will use when rendering this stroke. This only differs from the actual stroke - // width for hairlines. - static float GetLocalStrokeWidth(const float matrixMinMaxScales[2], float strokeWidth) { - SkASSERT(strokeWidth >= 0); - float localStrokeWidth = strokeWidth; - if (localStrokeWidth == 0) { // Is the stroke a hairline? - float matrixMinScale = matrixMinMaxScales[0]; - float matrixMaxScale = matrixMinMaxScales[1]; - // If the stroke is hairline then the tessellator will operate in post-transform - // space instead. But for the sake of CPU methods that need to conservatively - // approximate the number of segments to emit, we use - // localStrokeWidth ~= 1/matrixMinScale. - float approxScale = matrixMinScale; - // If the matrix has strong skew, don't let the scale shoot off to infinity. (This - // does not affect the tessellator; only the CPU methods that approximate the number - // of segments to emit.) - approxScale = std::max(matrixMinScale, matrixMaxScale * .25f); - localStrokeWidth = 1/approxScale; - if (localStrokeWidth == 0) { - // We just can't accidentally return zero from this method because zero means - // "hairline". Otherwise return whatever we calculated above. - localStrokeWidth = SK_ScalarNearlyZero; - } - } - return localStrokeWidth; - } - static StrokeTolerances Make(const float matrixMinMaxScales[2], float strokeWidth) { - return MakeNonHairline(matrixMinMaxScales[1], - GetLocalStrokeWidth(matrixMinMaxScales, strokeWidth)); - } - static StrokeTolerances MakeNonHairline(float matrixMaxScale, float strokeWidth) { - SkASSERT(strokeWidth > 0); - float parametricPrecision = CalcParametricPrecision(matrixMaxScale); - return {parametricPrecision, - CalcNumRadialSegmentsPerRadian(parametricPrecision, strokeWidth)}; - } - float fParametricPrecision; - float fNumRadialSegmentsPerRadian; -}; - -// Calculates and buffers up future values for "numRadialSegmentsPerRadian" using SIMD. -class alignas(sizeof(float) * 4) StrokeToleranceBuffer { -public: - using PathStrokeList = StrokeTessellator::PathStrokeList; - - StrokeToleranceBuffer(float parametricPrecision) : fParametricPrecision(parametricPrecision) {} - - float fetchRadialSegmentsPerRadian(PathStrokeList* head) { - // StrokeTessellateOp::onCombineIfPossible does not allow hairlines to become dynamic. If - // this changes, we will need to call StrokeTolerances::GetLocalStrokeWidth() for each - // stroke. - SkASSERT(!head->fStroke.isHairlineStyle()); - if (fBufferIdx == 4) { - // We ran out of values. Peek ahead and buffer up 4 more. - PathStrokeList* peekAhead = head; - int i = 0; - do { - fStrokeWidths[i++] = peekAhead->fStroke.getWidth(); - } while ((peekAhead = peekAhead->fNext) && i < 4); - auto tol = StrokeTolerances::ApproxNumRadialSegmentsPerRadian(fParametricPrecision, - fStrokeWidths); - tol.store(fNumRadialSegmentsPerRadian); - fBufferIdx = 0; - } - SkASSERT(0 <= fBufferIdx && fBufferIdx < 4); - SkASSERT(fStrokeWidths[fBufferIdx] == head->fStroke.getWidth()); - return fNumRadialSegmentsPerRadian[fBufferIdx++]; - } - -private: - float4 fStrokeWidths{}; // Must be first for alignment purposes. - float fNumRadialSegmentsPerRadian[4]; - const float fParametricPrecision; - int fBufferIdx = 4; // Initialize the buffer as "empty"; -}; - -} // namespace skgpu - -#endif // tessellate_StrokeTessellator_DEFINED diff --git a/third_party/skia/src/gpu/tessellate/Tessellation.cpp b/third_party/skia/src/gpu/tessellate/Tessellation.cpp index 18abf6e29f83..2a6d5ce9dca2 100644 --- a/third_party/skia/src/gpu/tessellate/Tessellation.cpp +++ b/third_party/skia/src/gpu/tessellate/Tessellation.cpp @@ -327,4 +327,5 @@ int FindCubicConvex180Chops(const SkPoint pts[], float T[2], bool* areCusps) { } return 0; } + } // namespace skgpu diff --git a/third_party/skia/src/gpu/tessellate/Tessellation.h b/third_party/skia/src/gpu/tessellate/Tessellation.h index 942d113291e7..01515bb9d930 100644 --- a/third_party/skia/src/gpu/tessellate/Tessellation.h +++ b/third_party/skia/src/gpu/tessellate/Tessellation.h @@ -8,6 +8,7 @@ #ifndef skgpu_tessellate_Tessellation_DEFINED #define skgpu_tessellate_Tessellation_DEFINED +#include "include/core/SkPoint.h" #include "include/core/SkStrokeRec.h" #include "include/gpu/GrTypes.h" #include "include/private/SkVx.h" @@ -76,47 +77,15 @@ enum class PatchAttribs { kFanPoint = 1 << 1, // [float2] Used by wedges. This is the center point the wedges fan around. kStrokeParams = 1 << 2, // [float2] Used when strokes have different widths or join types. kColor = 1 << 3, // [ubyte4 or float4] Used when patches have different colors. - kExplicitCurveType = 1 << 4, // [float] Used when GPU can't infer curve type based on infinity. + kPaintDepth = 1 << 4, // [float] Used in Graphite to specify depth attachment value for draw. + kExplicitCurveType = 1 << 5, // [float] Used when GPU can't infer curve type based on infinity. // Extra flags. - kWideColorIfEnabled = 1 << 5, // If kColor is set, specifies it to be float4 wide color. + kWideColorIfEnabled = 1 << 6, // If kColor is set, specifies it to be float4 wide color. }; GR_MAKE_BITFIELD_CLASS_OPS(PatchAttribs) -// We encode all of a join's information in a single float value: -// -// Negative => Round Join -// Zero => Bevel Join -// Positive => Miter join, and the value is also the miter limit -// -static float GetJoinType(const SkStrokeRec& stroke) { - switch (stroke.getJoin()) { - case SkPaint::kRound_Join: return -1; - case SkPaint::kBevel_Join: return 0; - case SkPaint::kMiter_Join: SkASSERT(stroke.getMiter() >= 0); return stroke.getMiter(); - } - SkUNREACHABLE; -} - -// This float2 gets written out with each patch/instance if PatchAttribs::kStrokeParams is enabled. -struct StrokeParams { - StrokeParams() = default; - StrokeParams(const SkStrokeRec& stroke) { - this->set(stroke); - } - void set(const SkStrokeRec& stroke) { - fRadius = stroke.getWidth() * .5f; - fJoinType = GetJoinType(stroke); - } - static bool StrokesHaveEqualParams(const SkStrokeRec& a, const SkStrokeRec& b) { - return a.getWidth() == b.getWidth() && a.getJoin() == b.getJoin() && - (a.getJoin() != SkPaint::kMiter_Join || a.getMiter() == b.getMiter()); - } - float fRadius; - float fJoinType; // See GetJoinType(). -}; - // When PatchAttribs::kExplicitCurveType is set, these are the values that tell the GPU what type of // curve is being drawn. constexpr static float kCubicCurveType SK_MAYBE_UNUSED = 0; @@ -132,8 +101,12 @@ constexpr size_t PatchAttribsStride(PatchAttribs attribs) { (attribs & PatchAttribs::kColor ? (attribs & PatchAttribs::kWideColorIfEnabled ? sizeof(float) : sizeof(uint8_t)) * 4 : 0) + + (attribs & PatchAttribs::kPaintDepth ? sizeof(float) : 0) + (attribs & PatchAttribs::kExplicitCurveType ? sizeof(float) : 0); } +constexpr size_t PatchStride(PatchAttribs attribs) { + return 4*sizeof(SkPoint) + PatchAttribsStride(attribs); +} // Don't tessellate paths that might have an individual curve that requires more than 1024 segments. // (See wangs_formula::worst_case_cubic). If this is the case, call "PreChopPathCurves" first. @@ -170,6 +143,86 @@ inline bool ConicHasCusp(const SkPoint p[3]) { return a.cross(b) == 0 && a.dot(b) < 0; } +// We encode all of a join's information in a single float value: +// +// Negative => Round Join +// Zero => Bevel Join +// Positive => Miter join, and the value is also the miter limit +// +static float GetJoinType(const SkStrokeRec& stroke) { + switch (stroke.getJoin()) { + case SkPaint::kRound_Join: return -1; + case SkPaint::kBevel_Join: return 0; + case SkPaint::kMiter_Join: SkASSERT(stroke.getMiter() >= 0); return stroke.getMiter(); + } + SkUNREACHABLE; +} + +// This float2 gets written out with each patch/instance if PatchAttribs::kStrokeParams is enabled. +struct StrokeParams { + StrokeParams() = default; + StrokeParams(const SkStrokeRec& stroke) { + this->set(stroke); + } + void set(const SkStrokeRec& stroke) { + fRadius = stroke.getWidth() * .5f; + fJoinType = GetJoinType(stroke); + } + static bool StrokesHaveEqualParams(const SkStrokeRec& a, const SkStrokeRec& b) { + return a.getWidth() == b.getWidth() && a.getJoin() == b.getJoin() && + (a.getJoin() != SkPaint::kMiter_Join || a.getMiter() == b.getMiter()); + } + float fRadius; + float fJoinType; // See GetJoinType(). +}; + +// These tolerances decide the number of parametric and radial segments the tessellator will +// linearize strokes into. These decisions are made in (pre-viewMatrix) local path space. +class StrokeTolerances { + StrokeTolerances() = delete; +public: + // Decides the number of radial segments the tessellator adds for each curve. (Uniform steps + // in tangent angle.) The tessellator will add this number of radial segments for each + // radian of rotation in local path space. + static float CalcNumRadialSegmentsPerRadian(float matrixMaxScale, float strokeWidth) { + float cosTheta = 1.f - (1.f / kTessellationPrecision) / (matrixMaxScale * strokeWidth); + return .5f / acosf(std::max(cosTheta, -1.f)); + } + template + static vec ApproxNumRadialSegmentsPerRadian(float matrixMaxScale, vec strokeWidths) { + vec cosTheta = 1.f - (1.f / kTessellationPrecision) / (matrixMaxScale * strokeWidths); + // Subtract SKVX_APPROX_ACOS_MAX_ERROR so we never account for too few segments. + return .5f / (approx_acos(max(cosTheta, -1.f)) - SKVX_APPROX_ACOS_MAX_ERROR); + } + // Returns the equivalent stroke width in (pre-viewMatrix) local path space that the + // tessellator will use when rendering this stroke. This only differs from the actual stroke + // width for hairlines. + static float GetLocalStrokeWidth(const float matrixMinMaxScales[2], float strokeWidth) { + SkASSERT(strokeWidth >= 0); + float localStrokeWidth = strokeWidth; + if (localStrokeWidth == 0) { // Is the stroke a hairline? + float matrixMinScale = matrixMinMaxScales[0]; + float matrixMaxScale = matrixMinMaxScales[1]; + // If the stroke is hairline then the tessellator will operate in post-transform + // space instead. But for the sake of CPU methods that need to conservatively + // approximate the number of segments to emit, we use + // localStrokeWidth ~= 1/matrixMinScale. + float approxScale = matrixMinScale; + // If the matrix has strong skew, don't let the scale shoot off to infinity. (This + // does not affect the tessellator; only the CPU methods that approximate the number + // of segments to emit.) + approxScale = std::max(matrixMinScale, matrixMaxScale * .25f); + localStrokeWidth = 1/approxScale; + if (localStrokeWidth == 0) { + // We just can't accidentally return zero from this method because zero means + // "hairline". Otherwise return whatever we calculated above. + localStrokeWidth = SK_ScalarNearlyZero; + } + } + return localStrokeWidth; + } +}; + } // namespace skgpu #endif // tessellate_Tessellation_DEFINED diff --git a/third_party/skia/src/gpu/text/GrSlug.cpp b/third_party/skia/src/gpu/text/GrSlug.cpp deleted file mode 100644 index 0bf4eb9ef0e9..000000000000 --- a/third_party/skia/src/gpu/text/GrSlug.cpp +++ /dev/null @@ -1,32 +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/chromium/GrSlug.h" - -#include "include/core/SkCanvas.h" - -GrTextReferenceFrame::~GrTextReferenceFrame() = default; - -GrSlug::~GrSlug() = default; -sk_sp GrSlug::ConvertBlob( - SkCanvas* canvas, const SkTextBlob& blob, SkPoint origin, const SkPaint& paint) { - return canvas->convertBlobToSlug(blob, origin, paint); -} - -sk_sp SkMakeSlugFromBuffer(SkReadBuffer& buffer, const SkStrikeClient* client); -sk_sp GrSlug::MakeFromBuffer(SkReadBuffer& buffer, const SkStrikeClient* client) { - return SkMakeSlugFromBuffer(buffer, client); -} - -void GrSlug::draw(SkCanvas* canvas) { - canvas->drawSlug(this); -} - -// Most of GrSlug's implementation is in GrTextBlob.cpp to share common code. - - - diff --git a/third_party/skia/src/gpu/v1/BUILD.bazel b/third_party/skia/src/gpu/v1/BUILD.bazel deleted file mode 100644 index 615edbf85569..000000000000 --- a/third_party/skia/src/gpu/v1/BUILD.bazel +++ /dev/null @@ -1,376 +0,0 @@ -load("//bazel:macros.bzl", "generated_cc_atom") - -generated_cc_atom( - name = "ClipStack_hdr", - hdrs = ["ClipStack.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkClipOp_hdr", - "//include/core:SkMatrix_hdr", - "//include/core:SkShader_hdr", - "//src/core:SkTBlockList_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrSurfaceProxyView_hdr", - "//src/gpu:ResourceKey_hdr", - "//src/gpu/geometry:GrShape_hdr", - ], -) - -generated_cc_atom( - name = "ClipStack_src", - srcs = ["ClipStack.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":ClipStack_hdr", - ":StencilMaskHelper_hdr", - ":SurfaceDrawContext_v1_hdr", - "//include/core:SkMatrix_hdr", - "//src/core:SkMatrixProvider_hdr", - "//src/core:SkPathPriv_hdr", - "//src/core:SkRRectPriv_hdr", - "//src/core:SkRectPriv_hdr", - "//src/core:SkTaskGroup_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrDeferredProxyUploader_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrSWMaskHelper_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", - "//src/gpu/effects:GrConvexPolyEffect_hdr", - "//src/gpu/effects:GrRRectEffect_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/geometry:GrQuadUtils_hdr", - "//src/gpu/ops:AtlasPathRenderer_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - ], -) - -generated_cc_atom( - name = "Device_drawTexture_src", - srcs = ["Device_drawTexture.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":Device_v1_hdr", - ":SurfaceDrawContext_v1_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//include/private:SkTPin_hdr", - "//src/core:SkDraw_hdr", - "//src/core:SkImagePriv_hdr", - "//src/core:SkMaskFilterBase_hdr", - "//src/core:SkSpecialImage_hdr", - "//src/gpu:GrBlurUtils_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrOpsTypes_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrBicubicEffect_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/geometry:GrRect_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/image:SkImage_Base_hdr", - "//src/image:SkImage_Gpu_hdr", - ], -) - -generated_cc_atom( - name = "Device_src", - srcs = ["Device.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":Device_v1_hdr", - "//include/core:SkImageFilter_hdr", - "//include/core:SkMaskFilter_hdr", - "//include/core:SkPathEffect_hdr", - "//include/core:SkPicture_hdr", - "//include/core:SkSurface_hdr", - "//include/core:SkVertices_hdr", - "//include/effects:SkRuntimeEffect_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//include/private:SkShadowFlags_hdr", - "//include/private:SkTo_hdr", - "//include/private/chromium:GrSlug_hdr", - "//src/core:SkCanvasPriv_hdr", - "//src/core:SkClipStack_hdr", - "//src/core:SkCustomMeshPriv_hdr", - "//src/core:SkDraw_hdr", - "//src/core:SkImageFilterCache_hdr", - "//src/core:SkImageFilter_Base_hdr", - "//src/core:SkLatticeIter_hdr", - "//src/core:SkPictureData_hdr", - "//src/core:SkRRectPriv_hdr", - "//src/core:SkRasterClip_hdr", - "//src/core:SkRecord_hdr", - "//src/core:SkStroke_hdr", - "//src/core:SkTLazy_hdr", - "//src/core:SkVerticesPriv_hdr", - "//src/gpu:GrBlurUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:GrSurfaceProxyPriv_hdr", - "//src/gpu:GrTracing_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrDisableColorXP_hdr", - "//src/gpu/effects:GrRRectEffect_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/image:SkImage_Base_hdr", - "//src/image:SkReadPixelsRec_hdr", - "//src/image:SkSurface_Gpu_hdr", - "//src/utils:SkUTF_hdr", - ], -) - -generated_cc_atom( - name = "Device_v1_hdr", - hdrs = ["Device_v1.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":ClipStack_hdr", - ":SurfaceDrawContext_v1_hdr", - "//include/core:SkBitmap_hdr", - "//include/core:SkPicture_hdr", - "//include/core:SkRegion_hdr", - "//include/core:SkSurface_hdr", - "//include/gpu:GrTypes_hdr", - "//src/gpu:BaseDevice_hdr", - "//src/gpu:SkGr_hdr", - ], -) - -generated_cc_atom( - name = "PathRendererChain_hdr", - hdrs = ["PathRendererChain.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":PathRenderer_hdr", - "//include/core:SkTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:SkNoncopyable_hdr", - "//include/private:SkTArray_hdr", - ], -) - -generated_cc_atom( - name = "PathRendererChain_src", - srcs = ["PathRendererChain.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":PathRendererChain_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/ops:AAConvexPathRenderer_hdr", - "//src/gpu/ops:AAHairLinePathRenderer_hdr", - "//src/gpu/ops:AALinearizingConvexPathRenderer_hdr", - "//src/gpu/ops:AtlasPathRenderer_hdr", - "//src/gpu/ops:DashLinePathRenderer_hdr", - "//src/gpu/ops:DefaultPathRenderer_hdr", - "//src/gpu/ops:SmallPathRenderer_hdr", - "//src/gpu/ops:TessellationPathRenderer_hdr", - "//src/gpu/ops:TriangulatingPathRenderer_hdr", - ], -) - -generated_cc_atom( - name = "PathRenderer_hdr", - hdrs = ["PathRenderer.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:SkTArray_hdr", - ], -) - -generated_cc_atom( - name = "PathRenderer_src", - srcs = ["PathRenderer.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":PathRenderer_hdr", - ":SurfaceDrawContext_v1_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//src/core:SkDrawProcs_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrUserStencilSettings_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - ], -) - -generated_cc_atom( - name = "StencilClip_hdr", - hdrs = ["StencilClip.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//src/gpu:GrAppliedClip_hdr", - "//src/gpu:GrFixedClip_hdr", - ], -) - -generated_cc_atom( - name = "StencilMaskHelper_hdr", - hdrs = ["StencilMaskHelper.h"], - visibility = ["//:__subpackages__"], - deps = [":StencilClip_hdr"], -) - -generated_cc_atom( - name = "StencilMaskHelper_src", - srcs = ["StencilMaskHelper.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":StencilMaskHelper_hdr", - ":SurfaceDrawContext_v1_hdr", - "//include/core:SkMatrix_hdr", - "//include/core:SkPath_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrStencilSettings_hdr", - "//src/gpu/effects:GrDisableColorXP_hdr", - "//src/gpu/geometry:GrShape_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - ], -) - -generated_cc_atom( - name = "SurfaceDrawContext_src", - srcs = ["SurfaceDrawContext.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":PathRenderer_hdr", - ":SurfaceDrawContext_v1_hdr", - "//include/core:SkDrawable_hdr", - "//include/core:SkVertices_hdr", - "//include/gpu:GrBackendSemaphore_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//include/private:GrImageContext_hdr", - "//include/private:SkShadowFlags_hdr", - "//include/private:SkVx_hdr", - "//include/utils:SkShadowUtils_hdr", - "//src/core:SkAutoPixmapStorage_hdr", - "//src/core:SkConvertPixels_hdr", - "//src/core:SkCustomMeshPriv_hdr", - "//src/core:SkDrawProcs_hdr", - "//src/core:SkDrawShadowInfo_hdr", - "//src/core:SkGlyphRunPainter_hdr", - "//src/core:SkLatticeIter_hdr", - "//src/core:SkMatrixPriv_hdr", - "//src/core:SkMatrixProvider_hdr", - "//src/core:SkRRectPriv_hdr", - "//src/gpu:GrAppliedClip_hdr", - "//src/gpu:GrAttachment_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrDataUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrGpuResourcePriv_hdr", - "//src/gpu:GrImageContextPriv_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrSemaphore_hdr", - "//src/gpu:GrStencilSettings_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:GrTracing_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrBicubicEffect_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", - "//src/gpu/effects:GrDisableColorXP_hdr", - "//src/gpu/effects:GrRRectEffect_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/geometry:GrQuadUtils_hdr", - "//src/gpu/geometry:GrQuad_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/ops:ClearOp_hdr", - "//src/gpu/ops:DrawAtlasOp_hdr", - "//src/gpu/ops:DrawCustomMeshOp_hdr", - "//src/gpu/ops:DrawableOp_hdr", - "//src/gpu/ops:FillRRectOp_hdr", - "//src/gpu/ops:FillRectOp_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/ops:GrOp_hdr", - "//src/gpu/ops:GrOvalOpFactory_hdr", - "//src/gpu/ops:LatticeOp_hdr", - "//src/gpu/ops:RegionOp_hdr", - "//src/gpu/ops:ShadowRRectOp_hdr", - "//src/gpu/ops:StrokeRectOp_hdr", - "//src/gpu/ops:TextureOp_hdr", - "//src/gpu/text:GrSDFTControl_hdr", - "//src/gpu/text:GrTextBlobRedrawCoordinator_hdr", - ], -) - -generated_cc_atom( - name = "SurfaceDrawContext_v1_hdr", - hdrs = ["SurfaceDrawContext_v1.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":SurfaceFillContext_v1_hdr", - "//include/core:SkCanvas_hdr", - "//include/core:SkDrawable_hdr", - "//include/core:SkRefCnt_hdr", - "//include/core:SkSurfaceProps_hdr", - "//include/core:SkSurface_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/core:SkGlyphRunPainter_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:GrRenderTargetProxy_hdr", - "//src/gpu:GrSurfaceProxyView_hdr", - "//src/gpu:GrXferProcessor_hdr", - "//src/gpu/geometry:GrQuad_hdr", - "//src/gpu/ops:OpsTask_hdr", - ], -) - -generated_cc_atom( - name = "SurfaceFillContext_v1_hdr", - hdrs = ["SurfaceFillContext_v1.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkSize_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrSwizzle_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/ops:OpsTask_hdr", - ], -) - -generated_cc_atom( - name = "SurfaceFillContext_v1_src", - srcs = ["SurfaceFillContext_v1.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":SurfaceDrawContext_v1_hdr", - ":SurfaceFillContext_v1_hdr", - "//include/private:GrImageContext_hdr", - "//src/gpu:GrDstProxyView_hdr", - "//src/gpu:GrImageContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrTextureResolveRenderTask_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/geometry:GrRect_hdr", - "//src/gpu/ops:ClearOp_hdr", - "//src/gpu/ops:FillRectOp_hdr", - ], -) diff --git a/third_party/skia/src/gpu/vk/BUILD.bazel b/third_party/skia/src/gpu/vk/BUILD.bazel index ffa7943679ce..b3171d7ef803 100644 --- a/third_party/skia/src/gpu/vk/BUILD.bazel +++ b/third_party/skia/src/gpu/vk/BUILD.bazel @@ -1,1031 +1,10 @@ load("//bazel:macros.bzl", "generated_cc_atom") -generated_cc_atom( - name = "GrVkAMDMemoryAllocator_hdr", - hdrs = ["GrVkAMDMemoryAllocator.h"], - visibility = ["//:__subpackages__"], - deps = ["//include/gpu/vk:GrVkMemoryAllocator_hdr"], -) - -generated_cc_atom( - name = "GrVkAMDMemoryAllocator_src", - srcs = ["GrVkAMDMemoryAllocator.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkAMDMemoryAllocator_hdr", - ":GrVkInterface_hdr", - ":GrVkMemory_hdr", - ":GrVkUtil_hdr", - "//include/gpu/vk:GrVkExtensions_hdr", - "//src/core:SkTraceEvent_hdr", - ], -) - -generated_cc_atom( - name = "GrVkBuffer_hdr", - hdrs = ["GrVkBuffer.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrGpuBuffer_hdr", - ], -) - -generated_cc_atom( - name = "GrVkBuffer_src", - srcs = ["GrVkBuffer.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkBuffer_hdr", - ":GrVkDescriptorSet_hdr", - ":GrVkGpu_hdr", - ":GrVkMemory_hdr", - ":GrVkUtil_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - ], -) - -generated_cc_atom( - name = "GrVkCaps_hdr", - hdrs = ["GrVkCaps.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrCaps_hdr", - ], -) - -generated_cc_atom( - name = "GrVkCaps_src", - srcs = ["GrVkCaps.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkCaps_hdr", - ":GrVkGpu_hdr", - ":GrVkImage_hdr", - ":GrVkInterface_hdr", - ":GrVkRenderTarget_hdr", - ":GrVkTexture_hdr", - ":GrVkUniformHandler_hdr", - ":GrVkUtil_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu/vk:GrVkBackendContext_hdr", - "//include/gpu/vk:GrVkExtensions_hdr", - "//src/core:SkCompressedDataUtils_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu:GrRenderTargetProxy_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrStencilSettings_hdr", - "//src/gpu:GrUtil_hdr", - "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SkGr_hdr", - ], -) - -generated_cc_atom( - name = "GrVkCommandBuffer_hdr", - hdrs = ["GrVkCommandBuffer.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkGpu_hdr", - ":GrVkSemaphore_hdr", - ":GrVkUtil_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrManagedResource_hdr", - "//src/gpu:GrRefCnt_hdr", - ], -) - -generated_cc_atom( - name = "GrVkCommandBuffer_src", - srcs = ["GrVkCommandBuffer.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkBuffer_hdr", - ":GrVkCommandBuffer_hdr", - ":GrVkCommandPool_hdr", - ":GrVkFramebuffer_hdr", - ":GrVkGpu_hdr", - ":GrVkImageView_hdr", - ":GrVkImage_hdr", - ":GrVkPipelineState_hdr", - ":GrVkPipeline_hdr", - ":GrVkRenderPass_hdr", - ":GrVkRenderTarget_hdr", - ":GrVkUtil_hdr", - "//include/core:SkRect_hdr", - "//src/core:SkTraceEvent_hdr", - ], -) - -generated_cc_atom( - name = "GrVkCommandPool_hdr", - hdrs = ["GrVkCommandPool.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkInterface_hdr", - ":GrVkManagedResource_hdr", - ":GrVkResourceProvider_hdr", - ], -) - -generated_cc_atom( - name = "GrVkCommandPool_src", - srcs = ["GrVkCommandPool.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkCommandBuffer_hdr", - ":GrVkCommandPool_hdr", - ":GrVkGpu_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - ], -) - -generated_cc_atom( - name = "GrVkDescriptorPool_hdr", - hdrs = ["GrVkDescriptorPool.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkManagedResource_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrVkDescriptorPool_src", - srcs = ["GrVkDescriptorPool.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkDescriptorPool_hdr", - ":GrVkGpu_hdr", - "//include/private:SkTemplates_hdr", - ], -) - -generated_cc_atom( - name = "GrVkDescriptorSetManager_hdr", - hdrs = ["GrVkDescriptorSetManager.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkDescriptorPool_hdr", - ":GrVkSampler_hdr", - "//include/core:SkRefCnt_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:SkTArray_hdr", - "//src/gpu:GrResourceHandle_hdr", - ], -) - -generated_cc_atom( - name = "GrVkDescriptorSetManager_src", - srcs = ["GrVkDescriptorSetManager.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkDescriptorPool_hdr", - ":GrVkDescriptorSetManager_hdr", - ":GrVkDescriptorSet_hdr", - ":GrVkGpu_hdr", - ":GrVkUniformHandler_hdr", - ], -) - -generated_cc_atom( - name = "GrVkDescriptorSet_hdr", - hdrs = ["GrVkDescriptorSet.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkDescriptorSetManager_hdr", - ":GrVkManagedResource_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrVkDescriptorSet_src", - srcs = ["GrVkDescriptorSet.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkDescriptorPool_hdr", - ":GrVkDescriptorSet_hdr", - ":GrVkGpu_hdr", - ":GrVkResourceProvider_hdr", - ], -) - -generated_cc_atom( - name = "GrVkExtensions_src", - srcs = ["GrVkExtensions.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu/vk:GrVkBackendContext_hdr", - "//include/gpu/vk:GrVkExtensions_hdr", - "//src/core:SkTSearch_hdr", - "//src/core:SkTSort_hdr", - ], -) - -generated_cc_atom( - name = "GrVkFramebuffer_hdr", - hdrs = ["GrVkFramebuffer.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkManagedResource_hdr", - ":GrVkResourceProvider_hdr", - "//include/gpu:GrTypes_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrVkFramebuffer_src", - srcs = ["GrVkFramebuffer.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkCommandBuffer_hdr", - ":GrVkFramebuffer_hdr", - ":GrVkGpu_hdr", - ":GrVkImageView_hdr", - ":GrVkImage_hdr", - ":GrVkRenderPass_hdr", - ], -) - -generated_cc_atom( - name = "GrVkGpu_hdr", - hdrs = ["GrVkGpu.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkCaps_hdr", - ":GrVkMSAALoadManager_hdr", - ":GrVkMemory_hdr", - ":GrVkResourceProvider_hdr", - ":GrVkSemaphore_hdr", - ":GrVkUtil_hdr", - "//include/gpu/vk:GrVkBackendContext_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrStagingBufferManager_hdr", - ], -) - -generated_cc_atom( - name = "GrVkGpu_src", - srcs = ["GrVkGpu.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkAMDMemoryAllocator_hdr", - ":GrVkBuffer_hdr", - ":GrVkCommandBuffer_hdr", - ":GrVkCommandPool_hdr", - ":GrVkFramebuffer_hdr", - ":GrVkGpu_hdr", - ":GrVkImage_hdr", - ":GrVkInterface_hdr", - ":GrVkMemory_hdr", - ":GrVkOpsRenderPass_hdr", - ":GrVkPipelineState_hdr", - ":GrVkPipeline_hdr", - ":GrVkRenderPass_hdr", - ":GrVkResourceProvider_hdr", - ":GrVkSemaphore_hdr", - ":GrVkTextureRenderTarget_hdr", - ":GrVkTexture_hdr", - "//include/gpu:GrBackendSemaphore_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu:GrContextOptions_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu/vk:GrVkExtensions_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:SkTo_hdr", - "//src/core:SkCompressedDataUtils_hdr", - "//src/core:SkConvertPixels_hdr", - "//src/core:SkMipmap_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrDataUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrGpuResourceCacheAccess_hdr", - "//src/gpu:GrNativeRect_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrThreadSafePipelineBuilder_hdr", - "//src/gpu:SkGr_hdr", - "//src/image:SkImage_Gpu_hdr", - "//src/image:SkSurface_Gpu_hdr", - ], -) - -generated_cc_atom( - name = "GrVkImageLayout_hdr", - hdrs = ["GrVkImageLayout.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrVkImageView_hdr", - hdrs = ["GrVkImageView.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkManagedResource_hdr", - "//include/gpu:GrTypes_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrVkImageView_src", - srcs = ["GrVkImageView.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkGpu_hdr", - ":GrVkImageView_hdr", - ":GrVkSamplerYcbcrConversion_hdr", - ":GrVkUtil_hdr", - ], -) - -generated_cc_atom( - name = "GrVkImage_hdr", - hdrs = ["GrVkImage.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkDescriptorSet_hdr", - "//include/core:SkTypes_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:GrVkTypesPriv_hdr", - "//src/gpu:GrAttachment_hdr", - "//src/gpu:GrBackendSurfaceMutableStateImpl_hdr", - "//src/gpu:GrManagedResource_hdr", - "//src/gpu:GrRefCnt_hdr", - "//src/gpu:GrTexture_hdr", - ], -) - -generated_cc_atom( - name = "GrVkImage_src", - srcs = ["GrVkImage.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkGpu_hdr", - ":GrVkImageView_hdr", - ":GrVkImage_hdr", - ":GrVkMemory_hdr", - ":GrVkTexture_hdr", - ":GrVkUtil_hdr", - ], -) - -generated_cc_atom( - name = "GrVkInterface_hdr", - hdrs = ["GrVkInterface.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/gpu/vk:GrVkBackendContext_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrVkInterface_src", - srcs = ["GrVkInterface.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkInterface_hdr", - ":GrVkUtil_hdr", - "//include/gpu/vk:GrVkBackendContext_hdr", - "//include/gpu/vk:GrVkExtensions_hdr", - ], -) - -generated_cc_atom( - name = "GrVkMSAALoadManager_hdr", - hdrs = ["GrVkMSAALoadManager.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkDescriptorSetManager_hdr", - "//include/gpu:GrTypes_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrNativeRect_hdr", - ], -) - -generated_cc_atom( - name = "GrVkMSAALoadManager_src", - srcs = ["GrVkMSAALoadManager.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkBuffer_hdr", - ":GrVkCommandBuffer_hdr", - ":GrVkDescriptorSet_hdr", - ":GrVkGpu_hdr", - ":GrVkImageView_hdr", - ":GrVkMSAALoadManager_hdr", - ":GrVkPipeline_hdr", - ":GrVkRenderTarget_hdr", - ":GrVkResourceProvider_hdr", - ":GrVkUtil_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - ], -) - -generated_cc_atom( - name = "GrVkManagedResource_hdr", - hdrs = ["GrVkManagedResource.h"], - visibility = ["//:__subpackages__"], - deps = ["//src/gpu:GrManagedResource_hdr"], -) - -generated_cc_atom( - name = "GrVkMemory_hdr", - hdrs = ["GrVkMemory.h"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/gpu/vk:GrVkMemoryAllocator_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:SkTArray_hdr", - ], -) - -generated_cc_atom( - name = "GrVkMemory_src", - srcs = ["GrVkMemory.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkGpu_hdr", - ":GrVkMemory_hdr", - ":GrVkUtil_hdr", - ], -) - -generated_cc_atom( - name = "GrVkOpsRenderPass_hdr", - hdrs = ["GrVkOpsRenderPass.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkPipelineState_hdr", - ":GrVkRenderPass_hdr", - "//include/gpu:GrTypes_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - ], -) - -generated_cc_atom( - name = "GrVkOpsRenderPass_src", - srcs = ["GrVkOpsRenderPass.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkBuffer_hdr", - ":GrVkCommandBuffer_hdr", - ":GrVkCommandPool_hdr", - ":GrVkFramebuffer_hdr", - ":GrVkGpu_hdr", - ":GrVkImage_hdr", - ":GrVkOpsRenderPass_hdr", - ":GrVkPipeline_hdr", - ":GrVkRenderPass_hdr", - ":GrVkRenderTarget_hdr", - ":GrVkResourceProvider_hdr", - ":GrVkSemaphore_hdr", - ":GrVkTexture_hdr", - "//include/core:SkDrawable_hdr", - "//include/core:SkRect_hdr", - "//include/gpu:GrBackendDrawableInfo_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - ], -) - -generated_cc_atom( - name = "GrVkPipelineStateBuilder_hdr", - hdrs = ["GrVkPipelineStateBuilder.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkPipelineState_hdr", - ":GrVkUniformHandler_hdr", - ":GrVkVaryingHandler_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", - "//src/sksl:SkSLCompiler_hdr", - ], -) - -generated_cc_atom( - name = "GrVkPipelineStateBuilder_src", - srcs = ["GrVkPipelineStateBuilder.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkDescriptorSetManager_hdr", - ":GrVkGpu_hdr", - ":GrVkPipelineStateBuilder_hdr", - ":GrVkPipeline_hdr", - ":GrVkRenderPass_hdr", - ":GrVkRenderTarget_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/core:SkReadBuffer_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrAutoLocaleSetter_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrPersistentCacheUtils_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrStencilSettings_hdr", - "//src/utils:SkShaderUtils_hdr", - ], -) - -generated_cc_atom( - name = "GrVkPipelineStateCache_src", - srcs = ["GrVkPipelineStateCache.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkGpu_hdr", - ":GrVkPipelineStateBuilder_hdr", - ":GrVkPipelineState_hdr", - ":GrVkResourceProvider_hdr", - "//include/gpu:GrContextOptions_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/core:SkOpts_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrStencilSettings_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - ], -) - -generated_cc_atom( - name = "GrVkPipelineStateDataManager_hdr", - hdrs = ["GrVkPipelineStateDataManager.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkUniformHandler_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrUniformDataManager_hdr", - ], -) - -generated_cc_atom( - name = "GrVkPipelineStateDataManager_src", - srcs = ["GrVkPipelineStateDataManager.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkCommandBuffer_hdr", - ":GrVkGpu_hdr", - ":GrVkPipelineStateDataManager_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpuBuffer_hdr", - "//src/gpu:GrResourceProvider_hdr", - ], -) - -generated_cc_atom( - name = "GrVkPipelineState_hdr", - hdrs = ["GrVkPipelineState.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkDescriptorSetManager_hdr", - ":GrVkDescriptorSet_hdr", - ":GrVkPipelineStateDataManager_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrRefCnt_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", - ], -) - -generated_cc_atom( - name = "GrVkPipelineState_src", - srcs = ["GrVkPipelineState.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkBuffer_hdr", - ":GrVkCommandBuffer_hdr", - ":GrVkDescriptorPool_hdr", - ":GrVkDescriptorSet_hdr", - ":GrVkGpu_hdr", - ":GrVkImageView_hdr", - ":GrVkMemory_hdr", - ":GrVkPipelineState_hdr", - ":GrVkPipeline_hdr", - ":GrVkRenderTarget_hdr", - ":GrVkSampler_hdr", - ":GrVkTexture_hdr", - "//src/core:SkMipmap_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrXferProcessor_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - ], -) - -generated_cc_atom( - name = "GrVkPipeline_hdr", - hdrs = ["GrVkPipeline.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkManagedResource_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrXferProcessor_hdr", - ], -) - -generated_cc_atom( - name = "GrVkPipeline_src", - srcs = ["GrVkPipeline.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkCommandBuffer_hdr", - ":GrVkGpu_hdr", - ":GrVkPipeline_hdr", - ":GrVkRenderTarget_hdr", - ":GrVkUtil_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrStencilSettings_hdr", - ], -) - -generated_cc_atom( - name = "GrVkRenderPass_hdr", - hdrs = ["GrVkRenderPass.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkManagedResource_hdr", - "//include/gpu:GrTypes_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:SkMacros_hdr", - ], -) - -generated_cc_atom( - name = "GrVkRenderPass_src", - srcs = ["GrVkRenderPass.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkFramebuffer_hdr", - ":GrVkGpu_hdr", - ":GrVkRenderPass_hdr", - ":GrVkRenderTarget_hdr", - ":GrVkUtil_hdr", - "//src/gpu:GrProcessor_hdr", - "//src/gpu:KeyBuilder_hdr", - ], -) - -generated_cc_atom( - name = "GrVkRenderTarget_hdr", - hdrs = ["GrVkRenderTarget.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkImage_hdr", - ":GrVkRenderPass_hdr", - ":GrVkResourceProvider_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrRenderTarget_hdr", - ], -) - -generated_cc_atom( - name = "GrVkRenderTarget_src", - srcs = ["GrVkRenderTarget.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkCommandBuffer_hdr", - ":GrVkDescriptorSet_hdr", - ":GrVkFramebuffer_hdr", - ":GrVkGpu_hdr", - ":GrVkImageView_hdr", - ":GrVkRenderTarget_hdr", - ":GrVkResourceProvider_hdr", - ":GrVkUtil_hdr", - "//include/gpu:GrBackendSurface_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrBackendSurfaceMutableStateImpl_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - ], -) - -generated_cc_atom( - name = "GrVkResourceProvider_hdr", - hdrs = ["GrVkResourceProvider.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkDescriptorPool_hdr", - ":GrVkDescriptorSetManager_hdr", - ":GrVkPipelineStateBuilder_hdr", - ":GrVkRenderPass_hdr", - ":GrVkSamplerYcbcrConversion_hdr", - ":GrVkSampler_hdr", - ":GrVkUtil_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:SkMutex_hdr", - "//include/private:SkTArray_hdr", - "//src/core:SkLRUCache_hdr", - "//src/core:SkTDynamicHash_hdr", - "//src/core:SkTInternalLList_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrManagedResource_hdr", - "//src/gpu:GrProgramDesc_hdr", - "//src/gpu:GrResourceHandle_hdr", - "//src/gpu:GrThreadSafePipelineBuilder_hdr", - ], -) - -generated_cc_atom( - name = "GrVkResourceProvider_src", - srcs = ["GrVkResourceProvider.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkCommandBuffer_hdr", - ":GrVkCommandPool_hdr", - ":GrVkGpu_hdr", - ":GrVkPipeline_hdr", - ":GrVkRenderTarget_hdr", - ":GrVkResourceProvider_hdr", - ":GrVkUtil_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/core:SkTaskGroup_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrSamplerState_hdr", - "//src/gpu:GrStencilSettings_hdr", - ], -) - -generated_cc_atom( - name = "GrVkSamplerYcbcrConversion_hdr", - hdrs = ["GrVkSamplerYcbcrConversion.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkManagedResource_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/core:SkOpts_hdr", - ], -) - -generated_cc_atom( - name = "GrVkSamplerYcbcrConversion_src", - srcs = ["GrVkSamplerYcbcrConversion.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkGpu_hdr", - ":GrVkSamplerYcbcrConversion_hdr", - ], -) - -generated_cc_atom( - name = "GrVkSampler_hdr", - hdrs = ["GrVkSampler.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkManagedResource_hdr", - ":GrVkSamplerYcbcrConversion_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/core:SkOpts_hdr", - ], -) - -generated_cc_atom( - name = "GrVkSampler_src", - srcs = ["GrVkSampler.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkGpu_hdr", - ":GrVkSamplerYcbcrConversion_hdr", - ":GrVkSampler_hdr", - ], -) +licenses(["notice"]) generated_cc_atom( name = "GrVkSecondaryCBDrawContext_hdr", hdrs = ["GrVkSecondaryCBDrawContext.h"], visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkRefCnt_hdr", - "//include/core:SkSurfaceProps_hdr", - "//include/core:SkTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrVkSecondaryCBDrawContext_src", - srcs = ["GrVkSecondaryCBDrawContext.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkSecondaryCBDrawContext_hdr", - "//include/core:SkDeferredDisplayList_hdr", - "//include/core:SkImageInfo_hdr", - "//include/core:SkSurfaceCharacterization_hdr", - "//include/gpu:GrDirectContext_hdr", - "//include/gpu:GrRecordingContext_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/core:SkSurfacePriv_hdr", - "//src/gpu:GrContextThreadSafeProxyPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrRenderTargetProxy_hdr", - "//src/gpu:GrSurfaceProxyView_hdr", - ], -) - -generated_cc_atom( - name = "GrVkSemaphore_hdr", - hdrs = ["GrVkSemaphore.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkManagedResource_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrSemaphore_hdr", - ], -) - -generated_cc_atom( - name = "GrVkSemaphore_src", - srcs = ["GrVkSemaphore.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkGpu_hdr", - ":GrVkSemaphore_hdr", - ":GrVkUtil_hdr", - "//include/gpu:GrBackendSemaphore_hdr", - ], -) - -generated_cc_atom( - name = "GrVkTextureRenderTarget_hdr", - hdrs = ["GrVkTextureRenderTarget.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkRenderTarget_hdr", - ":GrVkTexture_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - ], -) - -generated_cc_atom( - name = "GrVkTextureRenderTarget_src", - srcs = ["GrVkTextureRenderTarget.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkGpu_hdr", - ":GrVkImageView_hdr", - ":GrVkImage_hdr", - ":GrVkTextureRenderTarget_hdr", - ":GrVkUtil_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/core:SkMipmap_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrTexture_hdr", - ], -) - -generated_cc_atom( - name = "GrVkTexture_hdr", - hdrs = ["GrVkTexture.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkImage_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/core:SkLRUCache_hdr", - "//src/gpu:GrSamplerState_hdr", - "//src/gpu:GrTexture_hdr", - ], -) - -generated_cc_atom( - name = "GrVkTexture_src", - srcs = ["GrVkTexture.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkDescriptorSet_hdr", - ":GrVkGpu_hdr", - ":GrVkImageView_hdr", - ":GrVkTextureRenderTarget_hdr", - ":GrVkTexture_hdr", - ":GrVkUtil_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrTexture_hdr", - ], -) - -generated_cc_atom( - name = "GrVkTypesPriv_src", - srcs = ["GrVkTypesPriv.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkImageLayout_hdr", - "//include/private:GrVkTypesPriv_hdr", - "//src/gpu:GrBackendSurfaceMutableStateImpl_hdr", - ], -) - -generated_cc_atom( - name = "GrVkUniformHandler_hdr", - hdrs = ["GrVkUniformHandler.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkSampler_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//src/core:SkTBlockList_hdr", - "//src/gpu:GrSamplerState_hdr", - "//src/gpu:GrShaderVar_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", - ], -) - -generated_cc_atom( - name = "GrVkUniformHandler_src", - srcs = ["GrVkUniformHandler.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkGpu_hdr", - ":GrVkPipelineStateBuilder_hdr", - ":GrVkTexture_hdr", - ":GrVkUniformHandler_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrUtil_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", - ], -) - -generated_cc_atom( - name = "GrVkUtil_hdr", - hdrs = ["GrVkUtil.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkInterface_hdr", - "//include/gpu:GrTypes_hdr", - "//include/gpu/vk:GrVkTypes_hdr", - "//include/private:SkMacros_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrDataUtils_hdr", - "//src/sksl/ir:SkSLProgram_hdr", - ], -) - -generated_cc_atom( - name = "GrVkUtil_src", - srcs = ["GrVkUtil.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":GrVkGpu_hdr", - ":GrVkUtil_hdr", - "//include/gpu:GrDirectContext_hdr", - "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrDataUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/sksl:SkSLCompiler_hdr", - ], -) - -generated_cc_atom( - name = "GrVkVaryingHandler_hdr", - hdrs = ["GrVkVaryingHandler.h"], - visibility = ["//:__subpackages__"], - deps = ["//src/gpu/glsl:GrGLSLVarying_hdr"], -) - -generated_cc_atom( - name = "GrVkVaryingHandler_src", - srcs = ["GrVkVaryingHandler.cpp"], - visibility = ["//:__subpackages__"], - deps = [":GrVkVaryingHandler_hdr"], + deps = ["//src/gpu/ganesh/vk:GrVkSecondaryCBDrawContext_impl_hdr"], ) diff --git a/third_party/skia/src/gpu/vk/GrVkSecondaryCBDrawContext.h b/third_party/skia/src/gpu/vk/GrVkSecondaryCBDrawContext.h index 48b8b3810ac3..ede0e119e2f5 100644 --- a/third_party/skia/src/gpu/vk/GrVkSecondaryCBDrawContext.h +++ b/third_party/skia/src/gpu/vk/GrVkSecondaryCBDrawContext.h @@ -5,122 +5,7 @@ * found in the LICENSE file. */ -#ifndef GrVkSecondaryCBDrawContext_DEFINED -#define GrVkSecondaryCBDrawContext_DEFINED +// TODO: Once we can get Chrome to use the ganesh version of the file we can remove this one. At +// that time we should also rename the ganesh file to drop the _impl. +#include "src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext_impl.h" -#include "include/core/SkRefCnt.h" -#include "include/core/SkSurfaceProps.h" -#include "include/core/SkTypes.h" - -class GrBackendSemaphore; -class GrRecordingContext; -struct GrVkDrawableInfo; -namespace skgpu { class BaseDevice; } -class SkCanvas; -class SkDeferredDisplayList; -struct SkImageInfo; -class SkSurfaceCharacterization; -class SkSurfaceProps; - -/** - * This class is a private header that is intended to only be used inside of Chromium. This requires - * Chromium to burrow in and include this specifically since it is not part of skia's public include - * directory. - */ - -/** - * This class is used to draw into an external Vulkan secondary command buffer that is imported - * by the client. The secondary command buffer that gets imported must already have had begin called - * on it with VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT. Thus any draws to the imported - * command buffer cannot require changing the render pass. This requirement means that certain types - * of draws will not be supported when using a GrVkSecondaryCBDrawContext. This includes: - * Draws that require a dst copy for blending will be dropped - * Text draws will be dropped (these may require intermediate uploads of text data) - * Read and Write pixels will not work - * Any other draw that requires a copy will fail (this includes using backdrop filter with save - * layer). - * Stenciling is also disabled, but that should not restrict any actual draws from working. - * - * While using a GrVkSecondaryCBDrawContext, the client can also draw into normal SkSurfaces and - * then draw those SkSufaces (as SkImages) into the GrVkSecondaryCBDrawContext. If any of the - * previously mentioned unsupported draws are needed by the client, they can draw them into an - * offscreen surface, and then draw that into the GrVkSecondaryCBDrawContext. - * - * After all drawing to the GrVkSecondaryCBDrawContext has been done, the client must call flush() - * on the GrVkSecondaryCBDrawContext to actually fill in the secondary VkCommandBuffer with the - * draws. - * - * Additionally, the client must keep the GrVkSecondaryCBDrawContext alive until the secondary - * VkCommandBuffer has been submitted and all work finished on the GPU. Before deleting the - * GrVkSecondaryCBDrawContext, the client must call releaseResources() so that Skia can cleanup - * any internal objects that were created for the draws into the secondary command buffer. - */ -class SK_SPI GrVkSecondaryCBDrawContext : public SkRefCnt { -public: - static sk_sp Make(GrRecordingContext*, - const SkImageInfo&, - const GrVkDrawableInfo&, - const SkSurfaceProps* props); - - ~GrVkSecondaryCBDrawContext() override; - - SkCanvas* getCanvas(); - - // Records all the draws to the imported secondary command buffer and sets any dependent - // offscreen draws to the GPU. - void flush(); - - /** Inserts a list of GPU semaphores that Skia will have the driver wait on before executing - commands for this secondary CB. The wait semaphores will get added to the VkCommandBuffer - owned by this GrContext when flush() is called, and not the command buffer which the - Secondary CB is from. This will guarantee that the driver waits on the semaphores before - the secondary command buffer gets executed. If this call returns false, then the GPU - back end will not wait on any passed in semaphores, and the client will still own the - semaphores, regardless of the value of deleteSemaphoresAfterWait. - - If deleteSemaphoresAfterWait is false then Skia will not delete the semaphores. In this case - it is the client's responsibility to not destroy or attempt to reuse the semaphores until it - knows that Skia has finished waiting on them. This can be done by using finishedProcs - on flush calls. - - @param numSemaphores size of waitSemaphores array - @param waitSemaphores array of semaphore containers - @paramm deleteSemaphoresAfterWait who owns and should delete the semaphores - @return true if GPU is waiting on semaphores - */ - bool wait(int numSemaphores, - const GrBackendSemaphore waitSemaphores[], - bool deleteSemaphoresAfterWait = true); - - // This call will release all resources held by the draw context. The client must call - // releaseResources() before deleting the drawing context. However, the resources also include - // any Vulkan resources that were created and used for draws. Therefore the client must only - // call releaseResources() after submitting the secondary command buffer, and waiting for it to - // finish on the GPU. If it is called earlier then some vulkan objects may be deleted while they - // are still in use by the GPU. - void releaseResources(); - - const SkSurfaceProps& props() const { return fProps; } - - // TODO: Fill out these calls to support DDL - bool characterize(SkSurfaceCharacterization* characterization) const; - -#ifndef SK_DDL_IS_UNIQUE_POINTER - bool draw(sk_sp deferredDisplayList); -#else - bool draw(const SkDeferredDisplayList* deferredDisplayList); -#endif - - bool isCompatible(const SkSurfaceCharacterization& characterization) const; - -private: - explicit GrVkSecondaryCBDrawContext(sk_sp, const SkSurfaceProps*); - - sk_sp fDevice; - std::unique_ptr fCachedCanvas; - const SkSurfaceProps fProps; - - using INHERITED = SkRefCnt; -}; - -#endif diff --git a/third_party/skia/src/image/BUILD.bazel b/third_party/skia/src/image/BUILD.bazel index d48d6f654ad7..0c77e89184ac 100644 --- a/third_party/skia/src/image/BUILD.bazel +++ b/third_party/skia/src/image/BUILD.bazel @@ -1,7 +1,7 @@ -# https://github.com/bazelbuild/bazel-skylib -load("@bazel_skylib//lib:selects.bzl", "selects") load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "core_srcs", deps = [ @@ -27,8 +27,8 @@ cc_library( cc_library( name = "srcs", visibility = ["//:__subpackages__"], - deps = [":core_srcs"] + selects.with_or({ - ("//bazel/common_config_settings:gl_backend", "//bazel/common_config_settings:vulkan_backend"): [ + deps = [":core_srcs"] + select({ + "//bazel/common_config_settings:has_gpu_backend": [ ":gpu_srcs", ], "//conditions:default": [], @@ -40,13 +40,15 @@ generated_cc_atom( hdrs = ["SkImage_Base.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkData_hdr", "//include/core:SkImage_hdr", "//include/core:SkSurface_hdr", "//include/private:SkTDArray_hdr", "//src/core:SkMipmap_hdr", - "//src/gpu:GrSurfaceProxyView_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/graphite:TextureProxyView_hdr", ], ) @@ -58,7 +60,7 @@ generated_cc_atom( ":SkImage_Base_hdr", "//include/core:SkDeferredDisplayListRecorder_hdr", "//include/gpu:GrBackendSurface_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkYUVAInfoLocation_hdr", ], ) @@ -78,16 +80,16 @@ generated_cc_atom( "//include/gpu:GrRecordingContext_hdr", "//include/gpu:GrYUVABackendTextures_hdr", "//src/core:SkBitmapCache_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrImageContextPriv_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrYUVATextureProxies_hdr", - "//src/gpu:SurfaceContext_hdr", - "//src/gpu/effects:GrYUVtoRGBEffect_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrImageContextPriv_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrYUVATextureProxies_hdr", + "//src/gpu/ganesh:SurfaceContext_hdr", + "//src/gpu/ganesh/effects:GrYUVtoRGBEffect_hdr", ], ) @@ -99,7 +101,7 @@ generated_cc_atom( ":SkImage_GpuBase_hdr", "//include/gpu:GrBackendSurface_hdr", "//src/core:SkCachedData_hdr", - "//src/gpu:GrYUVATextureProxies_hdr", + "//src/gpu/ganesh:GrYUVATextureProxies_hdr", ], ) @@ -110,6 +112,7 @@ generated_cc_atom( deps = [ ":SkImage_GpuYUVA_hdr", ":SkImage_Gpu_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkYUVAPixmaps_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrRecordingContext_hdr", @@ -117,16 +120,16 @@ generated_cc_atom( "//src/core:SkAutoPixmapStorage_hdr", "//src/core:SkMipmap_hdr", "//src/core:SkScopeExit_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrImageContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrBicubicEffect_hdr", - "//src/gpu/effects:GrYUVtoRGBEffect_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrImageContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrBicubicEffect_hdr", + "//src/gpu/ganesh/effects:GrYUVtoRGBEffect_hdr", ], ) @@ -138,9 +141,9 @@ generated_cc_atom( ":SkImage_GpuBase_hdr", "//include/private:SkSpinlock_hdr", "//src/core:SkImagePriv_hdr", - "//src/gpu:GrGpuResourcePriv_hdr", - "//src/gpu:GrSurfaceProxyPriv_hdr", - "//src/gpu:GrSurfaceProxyView_hdr", + "//src/gpu/ganesh:GrGpuResourcePriv_hdr", + "//src/gpu/ganesh:GrSurfaceProxyPriv_hdr", + "//src/gpu/ganesh:GrSurfaceProxyView_hdr", ], ) @@ -161,28 +164,28 @@ generated_cc_atom( "//src/core:SkMipmap_hdr", "//src/core:SkScopeExit_hdr", "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrAHardwareBufferImageGenerator_hdr", - "//src/gpu:GrAHardwareBufferUtils_hdr", - "//src/gpu:GrBackendTextureImageGenerator_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrContextThreadSafeProxyPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrImageContextPriv_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrSemaphore_hdr", - "//src/gpu:GrTextureProxyPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:GrYUVATextureProxies_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/gl:GrGLTexture_hdr", + "//src/gpu/ganesh:GrAHardwareBufferImageGenerator_hdr", + "//src/gpu/ganesh:GrAHardwareBufferUtils_impl_hdr", + "//src/gpu/ganesh:GrBackendTextureImageGenerator_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrContextThreadSafeProxyPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrImageContextPriv_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", + "//src/gpu/ganesh:GrTextureProxyPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:GrYUVATextureProxies_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/gl:GrGLTexture_hdr", ], ) @@ -205,6 +208,7 @@ generated_cc_atom( deps = [ ":SkImage_Lazy_hdr", "//include/core:SkBitmap_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkData_hdr", "//include/core:SkImageGenerator_hdr", "//include/gpu:GrDirectContext_hdr", @@ -215,18 +219,18 @@ generated_cc_atom( "//src/core:SkNextID_hdr", "//src/core:SkResourceCache_hdr", "//src/core:SkYUVPlanesCache_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrGpuResourcePriv_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrSamplerState_hdr", - "//src/gpu:GrYUVATextureProxies_hdr", "//src/gpu:ResourceKey_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrYUVtoRGBEffect_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrGpuResourcePriv_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrSamplerState_hdr", + "//src/gpu/ganesh:GrYUVATextureProxies_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrYUVtoRGBEffect_hdr", ], ) @@ -238,19 +242,28 @@ generated_cc_atom( ":SkImage_Base_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkData_hdr", "//include/core:SkPixelRef_hdr", "//include/core:SkSurface_hdr", + "//include/gpu/graphite:GraphiteTypes_hdr", + "//include/gpu/graphite:Recorder_hdr", "//include/private:SkImageInfoPriv_hdr", "//src/codec:SkColorTable_hdr", "//src/core:SkCompressedDataUtils_hdr", "//src/core:SkConvertPixels_hdr", "//src/core:SkImagePriv_hdr", "//src/core:SkTLazy_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrBicubicEffect_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrBicubicEffect_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/graphite:Buffer_hdr", + "//src/gpu/graphite:Caps_hdr", + "//src/gpu/graphite:CommandBuffer_hdr", + "//src/gpu/graphite:RecorderPriv_hdr", + "//src/gpu/graphite:TextureUtils_hdr", + "//src/gpu/graphite:UploadTask_hdr", "//src/shaders:SkBitmapProcShader_hdr", ], ) @@ -283,18 +296,16 @@ generated_cc_atom( "//src/core:SkMipmapBuilder_hdr", "//src/core:SkMipmap_hdr", "//src/core:SkNextID_hdr", - "//src/core:SkReadBuffer_hdr", "//src/core:SkSamplingPriv_hdr", "//src/core:SkSpecialImage_hdr", - "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrImageContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrBicubicEffect_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrImageContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrBicubicEffect_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", "//src/shaders:SkImageShader_hdr", ], ) @@ -327,6 +338,7 @@ generated_cc_atom( deps = [ "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImageInfo_hdr", "//include/core:SkPaint_hdr", "//include/core:SkRect_hdr", @@ -353,7 +365,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSurface_Base_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", ], ) @@ -374,16 +386,15 @@ generated_cc_atom( "//include/gpu:GrRecordingContext_hdr", "//src/core:SkImagePriv_hdr", "//src/core:SkSurfacePriv_hdr", - "//src/gpu:BaseDevice_hdr", - "//src/gpu:GrAHardwareBufferUtils_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrContextThreadSafeProxyPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkRenderEngineAbortf_hdr", + "//src/gpu/ganesh:BaseDevice_hdr", + "//src/gpu/ganesh:GrAHardwareBufferUtils_impl_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrContextThreadSafeProxyPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) diff --git a/third_party/skia/src/image/SkImage.cpp b/third_party/skia/src/image/SkImage.cpp index 3496bead5785..f4204f0a9857 100644 --- a/third_party/skia/src/image/SkImage.cpp +++ b/third_party/skia/src/image/SkImage.cpp @@ -21,6 +21,7 @@ #include "src/core/SkMipmap.h" #include "src/core/SkMipmapBuilder.h" #include "src/core/SkNextID.h" +#include "src/core/SkSamplingPriv.h" #include "src/core/SkSpecialImage.h" #include "src/image/SkImage_Base.h" #include "src/image/SkReadPixelsRec.h" @@ -31,14 +32,14 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrContextThreadSafeProxy.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrBicubicEffect.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrBicubicEffect.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #include "src/image/SkImage_Gpu.h" #endif @@ -216,7 +217,9 @@ sk_sp SkImage::makeSubset(const SkIRect& subset, GrDirectContext* direc #if SK_SUPPORT_GPU -bool SkImage::isTextureBacked() const { return as_IB(this)->onIsTextureBacked(); } +bool SkImage::isTextureBacked() const { + return as_IB(this)->isGaneshBacked() || as_IB(this)->isGraphiteBacked(); +} size_t SkImage::textureSize() const { return as_IB(this)->onTextureSize(); } @@ -453,6 +456,20 @@ GrBackendTexture SkImage_Base::onGetBackendTexture(bool flushPendingGrContextIO, #endif // SK_SUPPORT_GPU +#ifdef SK_GRAPHITE_ENABLED +std::tuple SkImage_Base::asView( + skgpu::graphite::Recorder* recorder, skgpu::graphite::Mipmapped mipmapped, + SkBudgeted budgeted) const { + if (!recorder) { + return {}; + } + if (this->dimensions().area() <= 1) { + mipmapped = skgpu::graphite::Mipmapped::kNo; + } + return this->onAsView(recorder, mipmapped, budgeted); +} +#endif // SK_GRAPHITE_ENABLED + GrDirectContext* SkImage_Base::directContext() const { #if SK_SUPPORT_GPU return GrAsDirectContext(this->context()); @@ -723,10 +740,6 @@ sk_sp SkMipmapBuilder::attachTo(const SkImage* src) { ////////////////////////////////////////////////////////////////////////////////////////////////// -#include "src/core/SkReadBuffer.h" -#include "src/core/SkSamplingPriv.h" -#include "src/core/SkWriteBuffer.h" - SkSamplingOptions SkSamplingPriv::FromFQ(SkLegacyFQ fq, SkMediumAs behavior) { switch (fq) { case kHigh_SkLegacyFQ: @@ -742,26 +755,3 @@ SkSamplingOptions SkSamplingPriv::FromFQ(SkLegacyFQ fq, SkMediumAs behavior) { } return SkSamplingOptions(SkFilterMode::kNearest, SkMipmapMode::kNone); } - -SkSamplingOptions SkSamplingPriv::Read(SkReadBuffer& buffer) { - if (buffer.readBool()) { - SkScalar B = buffer.readScalar(), - C = buffer.readScalar(); - return SkSamplingOptions({B,C}); - } else { - auto filter = buffer.read32LE(SkFilterMode::kLinear); - auto mipmap = buffer.read32LE(SkMipmapMode::kLinear); - return SkSamplingOptions(filter, mipmap); - } -} - -void SkSamplingPriv::Write(SkWriteBuffer& buffer, const SkSamplingOptions& sampling) { - buffer.writeBool(sampling.useCubic); - if (sampling.useCubic) { - buffer.writeScalar(sampling.cubic.B); - buffer.writeScalar(sampling.cubic.C); - } else { - buffer.writeUInt((unsigned)sampling.filter); - buffer.writeUInt((unsigned)sampling.mipmap); - } -} diff --git a/third_party/skia/src/image/SkImage_Base.h b/third_party/skia/src/image/SkImage_Base.h index 8c8662a968e8..6b2b2d71f92d 100644 --- a/third_party/skia/src/image/SkImage_Base.h +++ b/third_party/skia/src/image/SkImage_Base.h @@ -8,6 +8,7 @@ #ifndef SkImage_Base_DEFINED #define SkImage_Base_DEFINED +#include "include/core/SkData.h" #include "include/core/SkImage.h" #include "include/core/SkSurface.h" #include "src/core/SkMipmap.h" @@ -15,13 +16,17 @@ #if SK_SUPPORT_GPU #include "include/private/SkTDArray.h" -#include "src/gpu/GrSurfaceProxyView.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" class GrTexture; #endif +#ifdef SK_GRAPHITE_ENABLED +#include "src/gpu/graphite/TextureProxyView.h" +#endif + #include class GrDirectContext; @@ -121,6 +126,16 @@ class SkImage_Base : public SkImage { virtual GrBackendTexture onGetBackendTexture(bool flushPendingGrContextIO, GrSurfaceOrigin* origin) const; #endif +#ifdef SK_GRAPHITE_ENABLED + // Returns a TextureProxyView representation of the image, if possible. This also returns + // a color type. This may be different than the image's color type when the image is not + // texture-backed and the capabilities of the GPU require a data type conversion to put + // the data in a texture. + std::tuple asView( + skgpu::graphite::Recorder*, + skgpu::graphite::Mipmapped mipmapped, + SkBudgeted) const; +#endif virtual bool onPinAsTexture(GrRecordingContext*) const { return false; } virtual void onUnpinAsTexture(GrRecordingContext*) const {} @@ -140,8 +155,11 @@ class SkImage_Base : public SkImage { // True for picture-backed and codec-backed virtual bool onIsLazyGenerated() const { return false; } - // True for images instantiated in GPU memory - virtual bool onIsTextureBacked() const { return false; } + // True for images instantiated by Ganesh in GPU memory + virtual bool isGaneshBacked() const { return false; } + + // True for images instantiated by Graphite in GPU memory + virtual bool isGraphiteBacked() const { return false; } // Amount of texture memory used by texture-backed images. virtual size_t onTextureSize() const { return 0; } @@ -209,6 +227,14 @@ class SkImage_Base : public SkImage { const SkMatrix&, const SkRect* subset, const SkRect* domain) const = 0; +#endif +#ifdef SK_GRAPHITE_ENABLED + virtual std::tuple onAsView( + skgpu::graphite::Recorder*, + skgpu::graphite::Mipmapped mipmapped, + SkBudgeted) const { + return {}; // TODO: once incompatible derived classes are removed make this pure virtual + } #endif // Set true by caches when they cache content that's derived from the current pixels. mutable std::atomic fAddedToRasterCache; diff --git a/third_party/skia/src/image/SkImage_Gpu.cpp b/third_party/skia/src/image/SkImage_Gpu.cpp index eb4084a1143b..be21fdbf60b9 100644 --- a/third_party/skia/src/image/SkImage_Gpu.cpp +++ b/third_party/skia/src/image/SkImage_Gpu.cpp @@ -18,28 +18,28 @@ #include "src/core/SkMipmap.h" #include "src/core/SkScopeExit.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/GrAHardwareBufferImageGenerator.h" -#include "src/gpu/GrAHardwareBufferUtils.h" -#include "src/gpu/GrBackendTextureImageGenerator.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/GrTextureProxyPriv.h" -#include "src/gpu/GrYUVATextureProxies.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/gl/GrGLTexture.h" +#include "src/gpu/ganesh/GrAHardwareBufferImageGenerator.h" +#include "src/gpu/ganesh/GrAHardwareBufferUtils_impl.h" +#include "src/gpu/ganesh/GrBackendTextureImageGenerator.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/GrTextureProxyPriv.h" +#include "src/gpu/ganesh/GrYUVATextureProxies.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/gl/GrGLTexture.h" #include #include @@ -389,7 +389,7 @@ static sk_sp new_wrapped_texture_common(GrRecordingContext* rContext, SkAlphaType at, sk_sp colorSpace, GrWrapOwnership ownership, - sk_sp releaseHelper) { + sk_sp releaseHelper) { if (!backendTex.isValid() || backendTex.width() <= 0 || backendTex.height() <= 0) { return nullptr; } @@ -418,7 +418,7 @@ sk_sp SkImage::MakeFromCompressedTexture(GrRecordingContext* rContext, sk_sp cs, TextureReleaseProc releaseP, ReleaseContext releaseC) { - auto releaseHelper = GrRefCntedCallback::Make(releaseP, releaseC); + auto releaseHelper = skgpu::RefCntedCallback::Make(releaseP, releaseC); if (!rContext) { return nullptr; @@ -451,7 +451,7 @@ sk_sp SkImage::MakeFromTexture(GrRecordingContext* rContext, const GrBackendTexture& tex, GrSurfaceOrigin origin, SkColorType ct, SkAlphaType at, sk_sp cs, TextureReleaseProc releaseP, ReleaseContext releaseC) { - auto releaseHelper = GrRefCntedCallback::Make(releaseP, releaseC); + auto releaseHelper = skgpu::RefCntedCallback::Make(releaseP, releaseC); if (!rContext) { return nullptr; @@ -472,6 +472,22 @@ sk_sp SkImage::MakeFromTexture(GrRecordingContext* rContext, kBorrow_GrWrapOwnership, std::move(releaseHelper)); } +sk_sp SkImage::MakeFromAdoptedTexture(GrRecordingContext* context, + const GrBackendTexture& backendTexture, + GrSurfaceOrigin textureOrigin, + SkColorType colorType) { + return SkImage::MakeFromAdoptedTexture(context, backendTexture, textureOrigin, + colorType, kPremul_SkAlphaType, nullptr); +} +sk_sp SkImage::MakeFromAdoptedTexture(GrRecordingContext* context, + const GrBackendTexture& backendTexture, + GrSurfaceOrigin textureOrigin, + SkColorType colorType, + SkAlphaType alphaType) { + return SkImage::MakeFromAdoptedTexture(context, backendTexture, textureOrigin, + colorType, alphaType, nullptr); +} + sk_sp SkImage::MakeFromAdoptedTexture(GrRecordingContext* rContext, const GrBackendTexture& tex, GrSurfaceOrigin origin, SkColorType ct, SkAlphaType at, @@ -540,12 +556,12 @@ sk_sp SkImage::makeTextureImage(GrDirectContext* dContext, mipmapped = GrMipmapped::kNo; } - if (this->isTextureBacked()) { + if (as_IB(this)->isGaneshBacked()) { if (!as_IB(this)->context()->priv().matches(dContext)) { return nullptr; } - if (this->isTextureBacked() && (mipmapped == GrMipmapped::kNo || this->hasMipmaps())) { + if (mipmapped == GrMipmapped::kNo || this->hasMipmaps()) { return sk_ref_sp(const_cast(this)); } } @@ -583,7 +599,7 @@ sk_sp SkImage::MakePromiseTexture(sk_sp threa // Our contract is that we will always call the release proc even on failure. // We use the helper to convey the context, so we need to ensure make doesn't fail. textureReleaseProc = textureReleaseProc ? textureReleaseProc : [](void*) {}; - auto releaseHelper = GrRefCntedCallback::Make(textureReleaseProc, textureContext); + auto releaseHelper = skgpu::RefCntedCallback::Make(textureReleaseProc, textureContext); SkImageInfo info = SkImageInfo::Make(dimensions, colorType, alphaType, colorSpace); if (!SkImageInfoIsValid(info)) { return nullptr; @@ -727,7 +743,7 @@ sk_sp SkImage::MakeFromAHardwareBufferWithData(GrDirectContext* dContex } SkASSERT(deleteImageProc); - auto releaseHelper = GrRefCntedCallback::Make(deleteImageProc, deleteImageCtx); + auto releaseHelper = skgpu::RefCntedCallback::Make(deleteImageProc, deleteImageCtx); SkColorType colorType = GrAHardwareBufferUtils::GetSkColorTypeFromBufferFormat(bufferDesc.format); diff --git a/third_party/skia/src/image/SkImage_Gpu.h b/third_party/skia/src/image/SkImage_Gpu.h index 0d2427ea52b8..4e9bbe589547 100644 --- a/third_party/skia/src/image/SkImage_Gpu.h +++ b/third_party/skia/src/image/SkImage_Gpu.h @@ -10,9 +10,9 @@ #include "include/private/SkSpinlock.h" #include "src/core/SkImagePriv.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" #include "src/image/SkImage_GpuBase.h" class GrDirectContext; @@ -46,7 +46,7 @@ class SkImage_Gpu final : public SkImage_GpuBase { GrBackendTexture onGetBackendTexture(bool flushPendingGrContextIO, GrSurfaceOrigin* origin) const final; - bool onIsTextureBacked() const override { return true; } + bool isGaneshBacked() const override { return true; } size_t onTextureSize() const override; diff --git a/third_party/skia/src/image/SkImage_GpuBase.cpp b/third_party/skia/src/image/SkImage_GpuBase.cpp index f79caf9e165e..f5b0b407d280 100644 --- a/third_party/skia/src/image/SkImage_GpuBase.cpp +++ b/third_party/skia/src/image/SkImage_GpuBase.cpp @@ -14,16 +14,16 @@ #include "include/gpu/GrRecordingContext.h" #include "include/gpu/GrYUVABackendTextures.h" #include "src/core/SkBitmapCache.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrYUVATextureProxies.h" -#include "src/gpu/SurfaceContext.h" -#include "src/gpu/effects/GrYUVtoRGBEffect.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrYUVATextureProxies.h" +#include "src/gpu/ganesh/SurfaceContext.h" +#include "src/gpu/ganesh/effects/GrYUVtoRGBEffect.h" #include "src/image/SkImage_Gpu.h" #include "src/image/SkReadPixelsRec.h" @@ -200,7 +200,7 @@ sk_sp SkImage_GpuBase::MakePromiseImageLazyProxy( GrBackendFormat backendFormat, GrMipmapped mipMapped, PromiseImageTextureFulfillProc fulfillProc, - sk_sp releaseHelper) { + sk_sp releaseHelper) { SkASSERT(tsp); SkASSERT(!dimensions.isEmpty()); SkASSERT(releaseHelper); @@ -233,7 +233,7 @@ sk_sp SkImage_GpuBase::MakePromiseImageLazyProxy( class PromiseLazyInstantiateCallback { public: PromiseLazyInstantiateCallback(PromiseImageTextureFulfillProc fulfillProc, - sk_sp releaseHelper) + sk_sp releaseHelper) : fFulfillProc(fulfillProc), fReleaseHelper(std::move(releaseHelper)) {} PromiseLazyInstantiateCallback(PromiseLazyInstantiateCallback&&) = default; PromiseLazyInstantiateCallback(const PromiseLazyInstantiateCallback&) { @@ -318,7 +318,7 @@ sk_sp SkImage_GpuBase::MakePromiseImageLazyProxy( private: PromiseImageTextureFulfillProc fFulfillProc; - sk_sp fReleaseHelper; + sk_sp fReleaseHelper; GrTexture* fTexture = nullptr; GrDirectContext::DirectContextID fTextureContextID; bool fFulfillProcFailed = false; diff --git a/third_party/skia/src/image/SkImage_GpuBase.h b/third_party/skia/src/image/SkImage_GpuBase.h index d5331af9e7d5..af00b0d298f5 100644 --- a/third_party/skia/src/image/SkImage_GpuBase.h +++ b/third_party/skia/src/image/SkImage_GpuBase.h @@ -10,7 +10,7 @@ #include "include/core/SkDeferredDisplayListRecorder.h" #include "include/gpu/GrBackendSurface.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkYUVAInfoLocation.h" #include "src/image/SkImage_Base.h" @@ -44,12 +44,13 @@ class SkImage_GpuBase : public SkImage_Base { // Helper for making a lazy proxy for a promise image. // PromiseImageTextureFulfillProc must not be null. - static sk_sp MakePromiseImageLazyProxy(GrContextThreadSafeProxy*, - SkISize dimensions, - GrBackendFormat, - GrMipmapped, - PromiseImageTextureFulfillProc, - sk_sp releaseHelper); + static sk_sp MakePromiseImageLazyProxy( + GrContextThreadSafeProxy*, + SkISize dimensions, + GrBackendFormat, + GrMipmapped, + PromiseImageTextureFulfillProc, + sk_sp releaseHelper); protected: SkImage_GpuBase(sk_sp, SkImageInfo, uint32_t uniqueID); diff --git a/third_party/skia/src/image/SkImage_GpuYUVA.cpp b/third_party/skia/src/image/SkImage_GpuYUVA.cpp index 4a49e57e4d39..1389a9706d8d 100644 --- a/third_party/skia/src/image/SkImage_GpuYUVA.cpp +++ b/third_party/skia/src/image/SkImage_GpuYUVA.cpp @@ -9,6 +9,7 @@ #include #include +#include "include/core/SkBitmap.h" #include "include/core/SkYUVAPixmaps.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" @@ -16,16 +17,16 @@ #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkMipmap.h" #include "src/core/SkScopeExit.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrBicubicEffect.h" -#include "src/gpu/effects/GrYUVtoRGBEffect.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrBicubicEffect.h" +#include "src/gpu/ganesh/effects/GrYUVtoRGBEffect.h" #include "src/image/SkImage_Gpu.h" #include "src/image/SkImage_GpuYUVA.h" @@ -194,7 +195,10 @@ std::unique_ptr SkImage_GpuYUVA::onAsFragmentProcessor( auto wmy = SkTileModeToWrapMode(tileModes[1]); GrSamplerState sampler(wmx, wmy, sampling.filter, sampling.mipmap); if (sampler.mipmapped() == GrMipmapped::kYes && !this->setupMipmapsForPlanes(context)) { - sampler.setMipmapMode(GrSamplerState::MipmapMode::kNone); + sampler = GrSamplerState(sampler.wrapModeX(), + sampler.wrapModeY(), + sampler.filter(), + GrSamplerState::MipmapMode::kNone); } const auto& yuvM = sampling.useCubic ? SkMatrix::I() : m; @@ -226,7 +230,7 @@ sk_sp SkImage::MakeFromYUVATextures(GrRecordingContext* context, sk_sp imageColorSpace, TextureReleaseProc textureReleaseProc, ReleaseContext releaseContext) { - auto releaseHelper = GrRefCntedCallback::Make(textureReleaseProc, releaseContext); + auto releaseHelper = skgpu::RefCntedCallback::Make(textureReleaseProc, releaseContext); GrProxyProvider* proxyProvider = context->priv().proxyProvider(); int numPlanes = yuvaTextures.yuvaInfo().numPlanes(); @@ -344,9 +348,9 @@ sk_sp SkImage::MakePromiseYUVATexture(sk_sp t // Our contract is that we will always call the release proc even on failure. // We use the helper to convey the context, so we need to ensure make doesn't fail. textureReleaseProc = textureReleaseProc ? textureReleaseProc : [](void*) {}; - sk_sp releaseHelpers[4]; + sk_sp releaseHelpers[4]; for (int i = 0; i < n; ++i) { - releaseHelpers[i] = GrRefCntedCallback::Make(textureReleaseProc, textureContexts[i]); + releaseHelpers[i] = skgpu::RefCntedCallback::Make(textureReleaseProc, textureContexts[i]); } if (!threadSafeProxy) { diff --git a/third_party/skia/src/image/SkImage_GpuYUVA.h b/third_party/skia/src/image/SkImage_GpuYUVA.h index b82c774199b3..0db4f18a838b 100644 --- a/third_party/skia/src/image/SkImage_GpuYUVA.h +++ b/third_party/skia/src/image/SkImage_GpuYUVA.h @@ -10,7 +10,7 @@ #include "include/gpu/GrBackendSurface.h" #include "src/core/SkCachedData.h" -#include "src/gpu/GrYUVATextureProxies.h" +#include "src/gpu/ganesh/GrYUVATextureProxies.h" #include "src/image/SkImage_GpuBase.h" class GrDirectContext; @@ -32,7 +32,7 @@ class SkImage_GpuYUVA final : public SkImage_GpuBase { GrSemaphoresSubmitted onFlush(GrDirectContext*, const GrFlushInfo&) const override; - bool onIsTextureBacked() const override { return true; } + bool isGaneshBacked() const override { return true; } size_t onTextureSize() const override; diff --git a/third_party/skia/src/image/SkImage_Lazy.cpp b/third_party/skia/src/image/SkImage_Lazy.cpp index e20a1e9e07c5..fb394dc4094f 100644 --- a/third_party/skia/src/image/SkImage_Lazy.cpp +++ b/third_party/skia/src/image/SkImage_Lazy.cpp @@ -8,6 +8,7 @@ #include "src/image/SkImage_Lazy.h" #include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkData.h" #include "include/core/SkImageGenerator.h" #include "src/core/SkBitmapCache.h" @@ -20,18 +21,18 @@ #include "include/gpu/GrRecordingContext.h" #include "src/core/SkResourceCache.h" #include "src/core/SkYUVPlanesCache.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrSamplerState.h" -#include "src/gpu/GrYUVATextureProxies.h" #include "src/gpu/ResourceKey.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrYUVtoRGBEffect.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrYUVATextureProxies.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrYUVtoRGBEffect.h" #endif // Ref-counted tuple(SkImageGenerator, SkMutex) which allows sharing one generator among N images diff --git a/third_party/skia/src/image/SkImage_Raster.cpp b/third_party/skia/src/image/SkImage_Raster.cpp index 3000c53979b3..89001d4e5082 100644 --- a/third_party/skia/src/image/SkImage_Raster.cpp +++ b/third_party/skia/src/image/SkImage_Raster.cpp @@ -7,6 +7,7 @@ #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkData.h" #include "include/core/SkPixelRef.h" #include "include/core/SkSurface.h" @@ -20,10 +21,21 @@ #include "src/shaders/SkBitmapProcShader.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrBicubicEffect.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrBicubicEffect.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#endif + +#ifdef SK_GRAPHITE_ENABLED +#include "include/gpu/graphite/GraphiteTypes.h" +#include "include/gpu/graphite/Recorder.h" +#include "src/gpu/graphite/Buffer.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/TextureUtils.h" +#include "src/gpu/graphite/UploadTask.h" #endif // fixes https://bug.skia.org/5096 @@ -124,13 +136,20 @@ class SkImage_Raster : public SkImage_Base { SkMipmap* onPeekMips() const override { return fBitmap.fMips.get(); } sk_sp onMakeWithMipmaps(sk_sp mips) const override { - auto img = new SkImage_Raster(fBitmap); + // It's dangerous to have two SkBitmaps that share a SkPixelRef but have different SkMipmaps + // since various caches key on SkPixelRef's generation ID. Also, SkPixelRefs that back + // SkSurfaces are marked "temporarily immutable" and making an image that uses the same + // SkPixelRef can interact badly with SkSurface/SkImage copy-on-write. So we just always + // make a copy with a new ID. + static auto constexpr kCopyMode = SkCopyPixelsMode::kAlways_SkCopyPixelsMode; + sk_sp img = SkMakeImageFromRasterBitmap(fBitmap, kCopyMode); + auto imgRaster = static_cast(img.get()); if (mips) { - img->fBitmap.fMips = std::move(mips); + imgRaster->fBitmap.fMips = std::move(mips); } else { - img->fBitmap.fMips.reset(SkMipmap::Build(fBitmap.pixmap(), nullptr)); + imgRaster->fBitmap.fMips.reset(SkMipmap::Build(fBitmap.pixmap(), nullptr)); } - return sk_sp(img); + return img; } private: @@ -146,6 +165,10 @@ class SkImage_Raster : public SkImage_Base { const SkRect*, const SkRect*) const override; #endif +#ifdef SK_GRAPHITE_ENABLED + std::tuple onAsView( + skgpu::graphite::Recorder*, skgpu::graphite::Mipmapped, SkBudgeted) const override; +#endif SkBitmap fBitmap; @@ -460,3 +483,13 @@ std::unique_ptr SkImage_Raster::onAsFragmentProcessor( domain); } #endif + +#ifdef SK_GRAPHITE_ENABLED +std::tuple SkImage_Raster::onAsView( + skgpu::graphite::Recorder* recorder, + skgpu::graphite::Mipmapped mipmapped, + SkBudgeted budgeted) const { + return MakeBitmapProxyView(recorder, fBitmap, mipmapped, budgeted); +} + +#endif diff --git a/third_party/skia/src/image/SkRescaleAndReadPixels.cpp b/third_party/skia/src/image/SkRescaleAndReadPixels.cpp index 44815149a124..79d365d3be19 100644 --- a/third_party/skia/src/image/SkRescaleAndReadPixels.cpp +++ b/third_party/skia/src/image/SkRescaleAndReadPixels.cpp @@ -7,6 +7,7 @@ #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImageInfo.h" #include "include/core/SkPaint.h" #include "include/core/SkRect.h" diff --git a/third_party/skia/src/image/SkSurface.cpp b/third_party/skia/src/image/SkSurface.cpp index 9be89f36e8ed..622e22c51ca1 100644 --- a/third_party/skia/src/image/SkSurface.cpp +++ b/third_party/skia/src/image/SkSurface.cpp @@ -54,6 +54,10 @@ GrRecordingContext* SkSurface_Base::onGetRecordingContext() { return nullptr; } +skgpu::graphite::Recorder* SkSurface_Base::onGetRecorder() { + return nullptr; +} + #if SK_SUPPORT_GPU GrBackendTexture SkSurface_Base::onGetBackendTexture(BackendHandleAccess) { return GrBackendTexture(); // invalid @@ -318,6 +322,10 @@ GrRecordingContext* SkSurface::recordingContext() { return asSB(this)->onGetRecordingContext(); } +skgpu::graphite::Recorder* SkSurface::recorder() { + return asSB(this)->onGetRecorder(); +} + bool SkSurface::wait(int numSemaphores, const GrBackendSemaphore* waitSemaphores, bool deleteSemaphoresAfterWait) { return asSB(this)->onWait(numSemaphores, waitSemaphores, deleteSemaphoresAfterWait); diff --git a/third_party/skia/src/image/SkSurface_Base.h b/third_party/skia/src/image/SkSurface_Base.h index 7c3112139d46..f018d9472ee5 100644 --- a/third_party/skia/src/image/SkSurface_Base.h +++ b/third_party/skia/src/image/SkSurface_Base.h @@ -21,6 +21,7 @@ class SkSurface_Base : public SkSurface { ~SkSurface_Base() override; virtual GrRecordingContext* onGetRecordingContext(); + virtual skgpu::graphite::Recorder* onGetRecorder(); #if SK_SUPPORT_GPU virtual GrBackendTexture onGetBackendTexture(BackendHandleAccess); diff --git a/third_party/skia/src/image/SkSurface_Gpu.cpp b/third_party/skia/src/image/SkSurface_Gpu.cpp index f151a18615e0..b0d2c099288e 100644 --- a/third_party/skia/src/image/SkSurface_Gpu.cpp +++ b/third_party/skia/src/image/SkSurface_Gpu.cpp @@ -15,16 +15,15 @@ #include "include/gpu/GrRecordingContext.h" #include "src/core/SkImagePriv.h" #include "src/core/SkSurfacePriv.h" -#include "src/gpu/BaseDevice.h" -#include "src/gpu/GrAHardwareBufferUtils.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrContextThreadSafeProxyPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/SkRenderEngineAbortf.h" +#include "src/gpu/ganesh/BaseDevice.h" +#include "src/gpu/ganesh/GrAHardwareBufferUtils_impl.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrTexture.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_Gpu.h" #include "src/image/SkSurface_Base.h" @@ -437,29 +436,18 @@ static bool validate_backend_texture(const GrCaps* caps, const GrBackendTexture& GrBackendFormat backendFormat = tex.getBackendFormat(); if (!backendFormat.isValid()) { - RENDERENGINE_ABORTF("%s failed due to an invalid format", __func__); return false; } if (!caps->areColorTypeAndFormatCompatible(grCT, backendFormat)) { - RENDERENGINE_ABORTF("%s failed due to an invalid format and colorType combination", - __func__); return false; } if (!caps->isFormatAsColorTypeRenderable(grCT, backendFormat, sampleCnt)) { - RENDERENGINE_ABORTF( - "%s failed due to no supported rendering path for the selected " - "format and colorType", - __func__); return false; } if (texturable && !caps->isFormatTexturable(backendFormat, tex.textureType())) { - RENDERENGINE_ABORTF( - "%s failed due to no texturing support for the selected format and " - "colorType", - __func__); return false; } @@ -499,18 +487,15 @@ sk_sp SkSurface::MakeFromBackendTexture(GrRecordingContext* rContext, const SkSurfaceProps* props, SkSurface::TextureReleaseProc textureReleaseProc, SkSurface::ReleaseContext releaseContext) { - auto releaseHelper = GrRefCntedCallback::Make(textureReleaseProc, releaseContext); + auto releaseHelper = skgpu::RefCntedCallback::Make(textureReleaseProc, releaseContext); if (!rContext) { - RENDERENGINE_ABORTF("%s failed due to a null context ", __func__); return nullptr; } sampleCnt = std::max(1, sampleCnt); GrColorType grColorType = SkColorTypeToGrColorType(colorType); if (grColorType == GrColorType::kUnknown) { - RENDERENGINE_ABORTF( - "%s failed due to an unsupported colorType %d", __func__, colorType); return nullptr; } @@ -522,18 +507,6 @@ sk_sp SkSurface::MakeFromBackendTexture(GrRecordingContext* rContext, tex, sampleCnt, kBorrow_GrWrapOwnership, GrWrapCacheable::kNo, std::move(releaseHelper))); if (!proxy) { -#ifdef SK_IN_RENDERENGINE - GrGLTextureInfo textureInfo; - bool retrievedTextureInfo = tex.getGLTextureInfo(&textureInfo); - RENDERENGINE_ABORTF("%s failed to wrap the texture into a renderable target " - "\n\tGrBackendTexture: (%i x %i) hasMipmaps: %i isProtected: %i texType: %i" - "\n\t\tGrGLTextureInfo: success: %i fTarget: %u fFormat: %u" - "\n\tmaxRenderTargetSize: %d", - __func__, tex.width(), tex.height(), tex.hasMipmaps(), - tex.isProtected(), static_cast(tex.textureType()), - retrievedTextureInfo, textureInfo.fTarget, textureInfo.fFormat, - rContext->priv().caps()->maxRenderTargetSize()); -#endif return nullptr; } @@ -542,7 +515,6 @@ sk_sp SkSurface::MakeFromBackendTexture(GrRecordingContext* rContext, SkSurfacePropsCopyOrDefault(props), skgpu::BaseDevice::InitContents::kUninit); if (!device) { - RENDERENGINE_ABORTF("%s failed to wrap the renderTarget into a surface", __func__); return nullptr; } @@ -554,7 +526,7 @@ bool SkSurface_Gpu::onReplaceBackendTexture(const GrBackendTexture& backendTextu ContentChangeMode mode, TextureReleaseProc releaseProc, ReleaseContext releaseContext) { - auto releaseHelper = GrRefCntedCallback::Make(releaseProc, releaseContext); + auto releaseHelper = skgpu::RefCntedCallback::Make(releaseProc, releaseContext); auto rContext = fDevice->recordingContext(); if (rContext->abandoned()) { @@ -633,7 +605,7 @@ sk_sp SkSurface::MakeFromBackendRenderTarget(GrRecordingContext* rCon const SkSurfaceProps* props, SkSurface::RenderTargetReleaseProc relProc, SkSurface::ReleaseContext releaseContext) { - auto releaseHelper = GrRefCntedCallback::Make(relProc, releaseContext); + auto releaseHelper = skgpu::RefCntedCallback::Make(relProc, releaseContext); if (!rContext) { return nullptr; diff --git a/third_party/skia/src/image/SkSurface_Gpu.h b/third_party/skia/src/image/SkSurface_Gpu.h index 813abead58a3..39e5ed76e13b 100644 --- a/third_party/skia/src/image/SkSurface_Gpu.h +++ b/third_party/skia/src/image/SkSurface_Gpu.h @@ -8,7 +8,7 @@ #ifndef SkSurface_Gpu_DEFINED #define SkSurface_Gpu_DEFINED -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/image/SkSurface_Base.h" #if SK_SUPPORT_GPU diff --git a/third_party/skia/src/image/SkSurface_GpuMtl.mm b/third_party/skia/src/image/SkSurface_GpuMtl.mm index 713644227c76..e6ffd29e4183 100644 --- a/third_party/skia/src/image/SkSurface_GpuMtl.mm +++ b/third_party/skia/src/image/SkSurface_GpuMtl.mm @@ -9,17 +9,17 @@ #include "include/core/SkSurface.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/mtl/GrMtlTypes.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrResourceProviderPriv.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrResourceProviderPriv.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "src/image/SkSurface_Gpu.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrSurface.h" -#include "src/gpu/mtl/GrMtlTextureRenderTarget.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.h" #ifdef SK_METAL #import diff --git a/third_party/skia/src/images/BUILD.bazel b/third_party/skia/src/images/BUILD.bazel index 3243617fa039..8c57beb8d949 100644 --- a/third_party/skia/src/images/BUILD.bazel +++ b/third_party/skia/src/images/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom", "select_multi") +licenses(["notice"]) + cc_library( name = "core_srcs", deps = [ @@ -49,6 +51,7 @@ generated_cc_atom( hdrs = ["SkImageEncoderFns.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkColorSpace_hdr", "//include/core:SkColor_hdr", "//include/core:SkICC_hdr", "//include/core:SkTypes_hdr", diff --git a/third_party/skia/src/images/SkImageEncoderFns.h b/third_party/skia/src/images/SkImageEncoderFns.h index fece76cf0257..1047dac06a59 100644 --- a/third_party/skia/src/images/SkImageEncoderFns.h +++ b/third_party/skia/src/images/SkImageEncoderFns.h @@ -9,6 +9,7 @@ #define SkImageEncoderFns_DEFINED #include "include/core/SkColor.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkICC.h" #include "include/core/SkTypes.h" #include "include/private/SkColorData.h" diff --git a/third_party/skia/src/lazy/BUILD.bazel b/third_party/skia/src/lazy/BUILD.bazel index 0961b0103b24..f077ab11214d 100644 --- a/third_party/skia/src/lazy/BUILD.bazel +++ b/third_party/skia/src/lazy/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkDiscardableMemoryPool_hdr", hdrs = ["SkDiscardableMemoryPool.h"], diff --git a/third_party/skia/src/opts/BUILD.bazel b/third_party/skia/src/opts/BUILD.bazel index 142ba749eeae..dc813633a3fa 100644 --- a/third_party/skia/src/opts/BUILD.bazel +++ b/third_party/skia/src/opts/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + # TODO(kjlubick) make these sources dependent on target platform, as necessary cc_library( @@ -157,6 +159,7 @@ generated_cc_atom( deps = [ "//include/core:SkData_hdr", "//include/core:SkTypes_hdr", + "//include/third_party/skcms:skcms_hdr", "//src/core:SkUtils_hdr", ], ) diff --git a/third_party/skia/src/opts/SkRasterPipeline_opts.h b/third_party/skia/src/opts/SkRasterPipeline_opts.h index 84c9aec1c766..94c5cb902f5f 100644 --- a/third_party/skia/src/opts/SkRasterPipeline_opts.h +++ b/third_party/skia/src/opts/SkRasterPipeline_opts.h @@ -10,6 +10,7 @@ #include "include/core/SkData.h" #include "include/core/SkTypes.h" +#include "include/third_party/skcms/skcms.h" #include "src/core/SkUtils.h" // unaligned_{load,store} #include @@ -2651,16 +2652,11 @@ STAGE(bilinear_py, SkRasterPipeline_SamplerCtx* ctx) { bilinear_y<+1>(ctx, &g); // In bicubic interpolation, the 16 pixels and +/- 0.5 and +/- 1.5 offsets from the sample // pixel center are combined with a non-uniform cubic filter, with higher values near the center. // -// We break this function into two parts, one for near 0.5 offsets and one for far 1.5 offsets. -// See GrCubicEffect for details of this particular filter. +// This helper computes the total weight along one axis (our bicubic filter is separable), given one +// column of the sampling matrix, and a fractional pixel offset. See SkCubicResampler for details. -SI F bicubic_near(F t) { - // 1/18 + 9/18t + 27/18t^2 - 21/18t^3 == t ( t ( -21/18t + 27/18) + 9/18) + 1/18 - return mad(t, mad(t, mad((-21/18.0f), t, (27/18.0f)), (9/18.0f)), (1/18.0f)); -} -SI F bicubic_far(F t) { - // 0/18 + 0/18*t - 6/18t^2 + 7/18t^3 == t^2 (7/18t - 6/18) - return (t*t)*mad((7/18.0f), t, (-6/18.0f)); +SI F bicubic_wts(F t, float A, float B, float C, float D) { + return mad(t, mad(t, mad(t, D, C), B), A); } template @@ -2669,10 +2665,11 @@ SI void bicubic_x(SkRasterPipeline_SamplerCtx* ctx, F* x) { F fx = sk_unaligned_load(ctx->fx); F scalex; - if (kScale == -3) { scalex = bicubic_far (1.0f - fx); } - if (kScale == -1) { scalex = bicubic_near(1.0f - fx); } - if (kScale == +1) { scalex = bicubic_near( fx); } - if (kScale == +3) { scalex = bicubic_far ( fx); } + const float* w = ctx->weights; + if (kScale == -3) { scalex = bicubic_wts(fx, w[0], w[4], w[ 8], w[12]); } + if (kScale == -1) { scalex = bicubic_wts(fx, w[1], w[5], w[ 9], w[13]); } + if (kScale == +1) { scalex = bicubic_wts(fx, w[2], w[6], w[10], w[14]); } + if (kScale == +3) { scalex = bicubic_wts(fx, w[3], w[7], w[11], w[15]); } sk_unaligned_store(ctx->scalex, scalex); } template @@ -2681,10 +2678,11 @@ SI void bicubic_y(SkRasterPipeline_SamplerCtx* ctx, F* y) { F fy = sk_unaligned_load(ctx->fy); F scaley; - if (kScale == -3) { scaley = bicubic_far (1.0f - fy); } - if (kScale == -1) { scaley = bicubic_near(1.0f - fy); } - if (kScale == +1) { scaley = bicubic_near( fy); } - if (kScale == +3) { scaley = bicubic_far ( fy); } + const float* w = ctx->weights; + if (kScale == -3) { scaley = bicubic_wts(fy, w[0], w[4], w[ 8], w[12]); } + if (kScale == -1) { scaley = bicubic_wts(fy, w[1], w[5], w[ 9], w[13]); } + if (kScale == +1) { scaley = bicubic_wts(fy, w[2], w[6], w[10], w[14]); } + if (kScale == +3) { scaley = bicubic_wts(fy, w[3], w[7], w[11], w[15]); } sk_unaligned_store(ctx->scaley, scaley); } @@ -2788,8 +2786,15 @@ STAGE(bilinear, const SkRasterPipeline_SamplerCtx2* ctx) { STAGE(bicubic, SkRasterPipeline_SamplerCtx2* ctx) { F x = r, fx = fract(x + 0.5f), y = g, fy = fract(y + 0.5f); - const F wx[] = { bicubic_far(1-fx), bicubic_near(1-fx), bicubic_near(fx), bicubic_far(fx) }; - const F wy[] = { bicubic_far(1-fy), bicubic_near(1-fy), bicubic_near(fy), bicubic_far(fy) }; + const float* w = ctx->weights; + const F wx[] = {bicubic_wts(fx, w[0], w[4], w[ 8], w[12]), + bicubic_wts(fx, w[1], w[5], w[ 9], w[13]), + bicubic_wts(fx, w[2], w[6], w[10], w[14]), + bicubic_wts(fx, w[3], w[7], w[11], w[15])}; + const F wy[] = {bicubic_wts(fy, w[0], w[4], w[ 8], w[12]), + bicubic_wts(fy, w[1], w[5], w[ 9], w[13]), + bicubic_wts(fy, w[2], w[6], w[10], w[14]), + bicubic_wts(fy, w[3], w[7], w[11], w[15])}; sampler(ctx, x,y, wx,wy, &r,&g,&b,&a); } @@ -2850,14 +2855,15 @@ STAGE(bicubic_clamp_8888, const SkRasterPipeline_GatherCtx* ctx) { // We'll accumulate the color of all four samples into {r,g,b,a} directly. r = g = b = a = 0; - const F scaley[4] = { - bicubic_far (1.0f - fy), bicubic_near(1.0f - fy), - bicubic_near( fy), bicubic_far ( fy), - }; - const F scalex[4] = { - bicubic_far (1.0f - fx), bicubic_near(1.0f - fx), - bicubic_near( fx), bicubic_far ( fx), - }; + const float* w = ctx->weights; + const F scaley[4] = {bicubic_wts(fy, w[0], w[4], w[ 8], w[12]), + bicubic_wts(fy, w[1], w[5], w[ 9], w[13]), + bicubic_wts(fy, w[2], w[6], w[10], w[14]), + bicubic_wts(fy, w[3], w[7], w[11], w[15])}; + const F scalex[4] = {bicubic_wts(fx, w[0], w[4], w[ 8], w[12]), + bicubic_wts(fx, w[1], w[5], w[ 9], w[13]), + bicubic_wts(fx, w[2], w[6], w[10], w[14]), + bicubic_wts(fx, w[3], w[7], w[11], w[15])}; F sample_y = cy - 1.5f; for (int yy = 0; yy <= 3; ++yy) { diff --git a/third_party/skia/src/pathops/BUILD.bazel b/third_party/skia/src/pathops/BUILD.bazel index 2650835089e8..fb945196b8c5 100644 --- a/third_party/skia/src/pathops/BUILD.bazel +++ b/third_party/skia/src/pathops/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "srcs", visibility = ["//:__subpackages__"], diff --git a/third_party/skia/src/pdf/BUILD.bazel b/third_party/skia/src/pdf/BUILD.bazel index 0e124ddc31ea..bca054f2f1b9 100644 --- a/third_party/skia/src/pdf/BUILD.bazel +++ b/third_party/skia/src/pdf/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkBitmapKey_hdr", hdrs = ["SkBitmapKey.h"], @@ -118,6 +120,7 @@ generated_cc_atom( ":SkPDFUtils_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkData_hdr", + "//include/core:SkEncodedImageFormat_hdr", "//include/core:SkExecutor_hdr", "//include/core:SkImage_hdr", "//include/core:SkStream_hdr", diff --git a/third_party/skia/src/pdf/SkPDFBitmap.cpp b/third_party/skia/src/pdf/SkPDFBitmap.cpp index 2d5e77b8a91c..a2de621cf356 100644 --- a/third_party/skia/src/pdf/SkPDFBitmap.cpp +++ b/third_party/skia/src/pdf/SkPDFBitmap.cpp @@ -9,6 +9,7 @@ #include "include/core/SkBitmap.h" #include "include/core/SkData.h" +#include "include/core/SkEncodedImageFormat.h" #include "include/core/SkExecutor.h" #include "include/core/SkImage.h" #include "include/core/SkStream.h" diff --git a/third_party/skia/src/pdf/SkPDFDevice.cpp b/third_party/skia/src/pdf/SkPDFDevice.cpp index 873460d83b1e..ae66acbe2408 100644 --- a/third_party/skia/src/pdf/SkPDFDevice.cpp +++ b/third_party/skia/src/pdf/SkPDFDevice.cpp @@ -965,7 +965,7 @@ void SkPDFDevice::onDrawGlyphRunList(SkCanvas*, } } -void SkPDFDevice::drawVertices(const SkVertices*, sk_sp, const SkPaint&) { +void SkPDFDevice::drawVertices(const SkVertices*, sk_sp, const SkPaint&, bool) { if (this->hasEmptyClip()) { return; } diff --git a/third_party/skia/src/pdf/SkPDFDevice.h b/third_party/skia/src/pdf/SkPDFDevice.h index bad2cda29869..76df936ce5ed 100644 --- a/third_party/skia/src/pdf/SkPDFDevice.h +++ b/third_party/skia/src/pdf/SkPDFDevice.h @@ -85,7 +85,7 @@ class SkPDFDevice final : public SkClipStackDevice { const SkPaint&, SkCanvas::SrcRectConstraint) override; void onDrawGlyphRunList(SkCanvas*, const SkGlyphRunList&, const SkPaint&) override; - void drawVertices(const SkVertices*, sk_sp, const SkPaint&) override; + void drawVertices(const SkVertices*, sk_sp, const SkPaint&, bool) override; void drawCustomMesh(SkCustomMesh, sk_sp, const SkPaint&) override; // PDF specific methods. diff --git a/third_party/skia/src/pdf/SkPDFFont.cpp b/third_party/skia/src/pdf/SkPDFFont.cpp index b5409f2acdba..cecca26f9eb5 100644 --- a/third_party/skia/src/pdf/SkPDFFont.cpp +++ b/third_party/skia/src/pdf/SkPDFFont.cpp @@ -530,7 +530,7 @@ SkStrikeSpec make_small_strike(const SkTypeface& typeface) { return SkStrikeSpec::MakeMask(font, SkPaint(), SkSurfaceProps(0, kUnknown_SkPixelGeometry), - kFakeGammaAndBoostContrast, + SkScalerContextFlags::kFakeGammaAndBoostContrast, SkMatrix::I()); } diff --git a/third_party/skia/src/ports/BUILD.bazel b/third_party/skia/src/ports/BUILD.bazel index 5a820b35fcd6..e875995873e5 100644 --- a/third_party/skia/src/ports/BUILD.bazel +++ b/third_party/skia/src/ports/BUILD.bazel @@ -1,6 +1,6 @@ -# https://github.com/bazelbuild/bazel-skylib -load("@bazel_skylib//lib:selects.bzl", "selects") -load("//bazel:macros.bzl", "generated_cc_atom", "select_multi") +load("//bazel:macros.bzl", "generated_cc_atom", "select_multi", "selects") + +licenses(["notice"]) cc_library( name = "typeface_freetype", @@ -109,6 +109,7 @@ cc_library( cc_library( name = "osfile", + visibility = ["//tools/skslc:__pkg__"], deps = [":SkOSFile_stdio_src"] + select({ "@platforms//os:windows": [":SkOSFile_win_src"], "//conditions:default": [":SkOSFile_posix_src"], @@ -268,6 +269,7 @@ generated_cc_atom( "//include/core:SkFontMgr_hdr", "//include/core:SkTypeface_hdr", "//include/core:SkTypes_hdr", + "//include/private:SkMutex_hdr", "//src/core:SkGlyph_hdr", "//src/core:SkScalerContext_hdr", "//src/core:SkSharedMutex_hdr", @@ -286,8 +288,8 @@ generated_cc_atom( "//include/core:SkColor_hdr", "//include/core:SkDrawable_hdr", "//include/core:SkPath_hdr", - "//include/core:SkPictureRecorder_hdr", "//include/effects:SkGradientShader_hdr", + "//include/pathops:SkPathOps_hdr", "//include/private:SkColorData_hdr", "//include/private:SkTo_hdr", "//src/core:SkFDot6_hdr", @@ -308,6 +310,7 @@ generated_cc_atom( "//include/core:SkDrawable_hdr", "//include/core:SkFontMetrics_hdr", "//include/core:SkPath_hdr", + "//include/core:SkPictureRecorder_hdr", "//include/core:SkStream_hdr", "//include/core:SkString_hdr", "//include/private:SkColorData_hdr", @@ -1044,6 +1047,7 @@ generated_cc_atom( ":SkTypeface_win_dw_hdr", "//include/core:SkScalar_hdr", "//include/core:SkTypes_hdr", + "//include/private:SkTDArray_hdr", "//src/core:SkScalerContext_hdr", ], ) @@ -1057,6 +1061,7 @@ generated_cc_atom( ":SkTypeface_win_dw_hdr", "//include/codec:SkCodec_hdr", "//include/core:SkBitmap_hdr", + "//include/core:SkData_hdr", "//include/core:SkDrawable_hdr", "//include/core:SkFontMetrics_hdr", "//include/core:SkPath_hdr", @@ -1168,6 +1173,7 @@ generated_cc_atom( hdrs = ["SkTypeface_win_dw.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkFontArguments_hdr", "//include/core:SkTypeface_hdr", "//src/core:SkAdvancedTypefaceMetrics_hdr", "//src/core:SkLeanWindows_hdr", diff --git a/third_party/skia/src/ports/SkDebug_android.cpp b/third_party/skia/src/ports/SkDebug_android.cpp index 5e32174797ca..49ba4ae7f7d4 100644 --- a/third_party/skia/src/ports/SkDebug_android.cpp +++ b/third_party/skia/src/ports/SkDebug_android.cpp @@ -10,6 +10,9 @@ #include +#ifdef LOG_TAG + #undef LOG_TAG +#endif #define LOG_TAG "skia" #include diff --git a/third_party/skia/src/ports/SkFontHost_FreeType.cpp b/third_party/skia/src/ports/SkFontHost_FreeType.cpp index 7a677f2d68e5..cdbbd52ba83c 100644 --- a/third_party/skia/src/ports/SkFontHost_FreeType.cpp +++ b/third_party/skia/src/ports/SkFontHost_FreeType.cpp @@ -11,6 +11,7 @@ #include "include/core/SkDrawable.h" #include "include/core/SkFontMetrics.h" #include "include/core/SkPath.h" +#include "include/core/SkPictureRecorder.h" #include "include/core/SkStream.h" #include "include/core/SkString.h" #include "include/private/SkColorData.h" @@ -55,6 +56,11 @@ #include #include + +namespace { +[[maybe_unused]] static inline const constexpr bool kSkShowTextBlitCoverage = false; +} + // SK_FREETYPE_MINIMUM_RUNTIME_VERSION 0x // Flag SK_FREETYPE_DLOPEN: also try dlopen to get newer features. #define SK_FREETYPE_DLOPEN (0x0) @@ -312,26 +318,32 @@ void SkTypeface_FreeType::FaceRec::setupPalette(const SkFontData& data) { if (FT_Palette_Data_Get(fFace.get(), &paletteData)) { return; } - if (paletteData.num_palettes < data.getPaletteIndex() ) { - return; + + // Treat out of range values as 0. Still apply overrides. + // https://www.w3.org/TR/css-fonts-4/#base-palette-desc + FT_UShort basePaletteIndex = 0; + if (SkTFitsIn(data.getPaletteIndex()) && + SkTo(data.getPaletteIndex()) < paletteData.num_palettes) + { + basePaletteIndex = data.getPaletteIndex(); } + FT_Color* ftPalette = nullptr; - if (FT_Palette_Select(fFace.get(), data.getPaletteIndex(), &ftPalette)) { + if (FT_Palette_Select(fFace.get(), basePaletteIndex, &ftPalette)) { return; } fFTPaletteEntryCount = paletteData.num_palette_entries; for (int i = 0; i < data.getPaletteOverrideCount(); ++i) { const SkFontArguments::Palette::Override& paletteOverride = data.getPaletteOverrides()[i]; - if (paletteOverride.index < 0 || fFTPaletteEntryCount <= paletteOverride.index) { - continue; + if (0 <= paletteOverride.index && paletteOverride.index < fFTPaletteEntryCount) { + const SkColor& skColor = paletteOverride.color; + FT_Color& ftColor = ftPalette[paletteOverride.index]; + ftColor.blue = SkColorGetB(skColor); + ftColor.green = SkColorGetG(skColor); + ftColor.red = SkColorGetR(skColor); + ftColor.alpha = SkColorGetA(skColor); } - const SkColor& skColor = paletteOverride.color; - FT_Color& ftColor = ftPalette[paletteOverride.index]; - ftColor.blue = SkColorGetB(skColor); - ftColor.green = SkColorGetG(skColor); - ftColor.red = SkColorGetR(skColor); - ftColor.alpha = SkColorGetA(skColor); } fSkPalette.reset(new SkColor[fFTPaletteEntryCount]); @@ -455,8 +467,9 @@ class SkScalerContext_FreeType : public SkScalerContext_FreeType_Base { bool fLCDIsVert; FT_Error setupSize(); - void getBBoxForCurrentGlyph(const SkGlyph* glyph, FT_BBox* bbox, + bool getBBoxForCurrentGlyph(const SkGlyph* glyph, FT_BBox* bbox, bool snapToPixelBoundary = false); + static void setGlyphBounds(SkGlyph* glyph, FT_BBox& bounds); bool getCBoxForLetter(char letter, FT_BBox* bbox); // Caller must lock f_t_mutex() before calling this function. void updateGlyphIfLCD(SkGlyph* glyph); @@ -851,7 +864,7 @@ SkScalerContext_FreeType::SkScalerContext_FreeType(sk_sp ty // See http://code.google.com/p/chromium/issues/detail?id=43252#c24 loadFlags = FT_LOAD_TARGET_MONO; if (fRec.getHinting() == SkFontHinting::kNone) { - loadFlags = FT_LOAD_NO_HINTING; + loadFlags |= FT_LOAD_NO_HINTING; linearMetrics = true; } } else { @@ -931,7 +944,7 @@ SkScalerContext_FreeType::SkScalerContext_FreeType(sk_sp ty return; } - fRec.computeMatrices(SkScalerContextRec::kFull_PreMatrixScale, &fScale, &fMatrix22Scalar); + fRec.computeMatrices(SkScalerContextRec::PreMatrixScale::kFull, &fScale, &fMatrix22Scalar); FT_F26Dot6 scaleX = SkScalarToFDot6(fScale.fX); FT_F26Dot6 scaleY = SkScalarToFDot6(fScale.fY); @@ -1055,9 +1068,12 @@ bool SkScalerContext_FreeType::generateAdvance(SkGlyph* glyph) { return true; } -void SkScalerContext_FreeType::getBBoxForCurrentGlyph(const SkGlyph* glyph, +bool SkScalerContext_FreeType::getBBoxForCurrentGlyph(const SkGlyph* glyph, FT_BBox* bbox, bool snapToPixelBoundary) { + if (0 == fFace->glyph->outline.n_contours) { + return false; + } FT_Outline_Get_CBox(&fFace->glyph->outline, bbox); @@ -1092,6 +1108,8 @@ void SkScalerContext_FreeType::getBBoxForCurrentGlyph(const SkGlyph* glyph, bbox->yMin += vector.y; bbox->yMax += vector.y; } + + return true; } bool SkScalerContext_FreeType::getCBoxForLetter(char letter, FT_BBox* bbox) { @@ -1107,6 +1125,31 @@ bool SkScalerContext_FreeType::getCBoxForLetter(char letter, FT_BBox* bbox) { return true; } +void SkScalerContext_FreeType::setGlyphBounds(SkGlyph* glyph, FT_BBox& bounds) { + // Round out, no longer dot6. + bounds.xMin = SkFDot6Floor(bounds.xMin); + bounds.yMin = SkFDot6Floor(bounds.yMin); + bounds.xMax = SkFDot6Ceil (bounds.xMax); + bounds.yMax = SkFDot6Ceil (bounds.yMax); + + FT_Pos width = bounds.xMax - bounds.xMin; + FT_Pos height = bounds.yMax - bounds.yMin; + FT_Pos top = -bounds.yMax; // Freetype y-up, Skia y-down. + FT_Pos left = bounds.xMin; + if (!SkTFitsInfWidth )>(width ) || + !SkTFitsInfHeight)>(height) || + !SkTFitsInfTop )>(top ) || + !SkTFitsInfLeft )>(left ) ) + { + width = height = top = left = 0; + } + + glyph->fWidth = SkToU16(width ); + glyph->fHeight = SkToU16(height); + glyph->fTop = SkToS16(top ); + glyph->fLeft = SkToS16(left ); +}; + void SkScalerContext_FreeType::updateGlyphIfLCD(SkGlyph* glyph) { if (glyph->fMaskFormat == SkMask::kLCD16_Format) { if (fLCDIsVert) { @@ -1143,105 +1186,66 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph, SkArenaAlloc* all return; } - FT_Error err; - err = FT_Load_Glyph( fFace, glyph->getGlyphID(), - fLoadGlyphFlags | FT_LOAD_BITMAP_METRICS_ONLY ); - if (err != 0) { - glyph->zeroMetrics(); - return; - } - emboldenIfNeeded(fFace, fFace->glyph, glyph->getGlyphID()); - - if (fFace->glyph->format == FT_GLYPH_FORMAT_OUTLINE) { + FT_Bool haveLayers = false; +#ifdef FT_COLOR_H + // See https://skbug.com/12945, if the face isn't marked scalable then paths cannot be loaded. + if (FT_IS_SCALABLE(fFace)) { using FT_PosLimits = std::numeric_limits; FT_BBox bounds = { FT_PosLimits::max(), FT_PosLimits::max(), FT_PosLimits::min(), FT_PosLimits::min() }; -#ifdef FT_COLOR_H - FT_Bool haveLayers = false; - FT_LayerIterator layerIterator = { 0, 0, nullptr }; - FT_UInt layerGlyphIndex; - FT_UInt layerColorIndex; - #ifdef TT_SUPPORT_COLRV1 - FT_OpaquePaint opaqueLayerPaint; - opaqueLayerPaint.p = nullptr; + FT_OpaquePaint opaqueLayerPaint{nullptr, 1}; if (FT_Get_Color_Glyph_Paint(fFace, glyph->getGlyphID(), FT_COLOR_INCLUDE_ROOT_TRANSFORM, &opaqueLayerPaint)) { haveLayers = true; - - FT_ClipBox colrGlyphBbox; - - // COLRv1 optionally provides a ClipBox that we can use for allocation. - if (FT_Get_Color_Glyph_ClipBox(fFace, glyph->getGlyphID(), &colrGlyphBbox)) { - // Find enclosing bounding box of clip box corner points, needed - // when clipbox is transformed. - bounds.xMin = colrGlyphBbox.bottom_left.x; - bounds.xMax = colrGlyphBbox.bottom_left.x; - bounds.yMin = colrGlyphBbox.bottom_left.y; - bounds.yMax = colrGlyphBbox.bottom_left.y; - - for (auto& corner : {colrGlyphBbox.top_left, - colrGlyphBbox.top_right, - colrGlyphBbox.bottom_right}) { - if (corner.x < bounds.xMin) { - bounds.xMin = corner.x; - } - if (corner.y < bounds.yMin) { - bounds.yMin = corner.y; - } - if (corner.x > bounds.xMax) { - bounds.xMax = corner.x; - } - if (corner.y > bounds.yMax) { - bounds.yMax = corner.y; - } + glyph->fScalerContextBits = ScalerContextBits::COLRv1; + + // COLRv1 optionally provides a ClipBox. + FT_ClipBox clipBox; + if (FT_Get_Color_Glyph_ClipBox(fFace, glyph->getGlyphID(), &clipBox)) { + // Find bounding box of clip box corner points, needed when clipbox is transformed. + bounds.xMin = clipBox.bottom_left.x; + bounds.xMax = clipBox.bottom_left.x; + bounds.yMin = clipBox.bottom_left.y; + bounds.yMax = clipBox.bottom_left.y; + for (auto& corner : {clipBox.top_left, clipBox.top_right, clipBox.bottom_right}) { + bounds.xMin = std::min(bounds.xMin, corner.x); + bounds.yMin = std::min(bounds.yMin, corner.y); + bounds.xMax = std::max(bounds.xMax, corner.x); + bounds.yMax = std::max(bounds.yMax, corner.y); } - } else { - // Otherwise we need to traverse the glyph graph with a focus on measuring the - // required bounding box. - FT_BBox computed_bounds; - if (!computeColrV1GlyphBoundingBox(fFace, glyph->getGlyphID(), &computed_bounds)) { - glyph->zeroMetrics(); - return; - } - - // Reset face so the main glyph slot contains information about the - // base glyph again, for usage for computing and copying horizontal - // metrics from FreeType to Skia below. - if (this->setupSize()) { - glyph->zeroMetrics(); - return; - } - - err = FT_Load_Glyph( - fFace, glyph->getGlyphID(), fLoadGlyphFlags | FT_LOAD_BITMAP_METRICS_ONLY); - if (err != 0) { - glyph->zeroMetrics(); - return; - } - - bounds = computed_bounds; - } + } else { + // Traverse the glyph graph with a focus on measuring the required bounding box. + // The call to computeColrV1GlyphBoundingBox may modify the face. + // Reset the face to load the base glyph for metrics. + if (!computeColrV1GlyphBoundingBox(fFace, glyph->getGlyphID(), &bounds) || + this->setupSize()) + { + glyph->zeroMetrics(); + return; + } + } } #endif // #TT_SUPPORT_COLRV1 if (!haveLayers) { + FT_LayerIterator layerIterator = { 0, 0, nullptr }; + FT_UInt layerGlyphIndex; + FT_UInt layerColorIndex; // For COLRv0 compute the glyph bounding box from the union of layer bounding boxes. while (FT_Get_Color_Glyph_Layer(fFace, glyph->getGlyphID(), &layerGlyphIndex, &layerColorIndex, &layerIterator)) { haveLayers = true; - err = FT_Load_Glyph(fFace, layerGlyphIndex, - fLoadGlyphFlags | FT_LOAD_BITMAP_METRICS_ONLY); - if (err != 0) { + if (FT_Load_Glyph(fFace, layerGlyphIndex, + fLoadGlyphFlags | FT_LOAD_BITMAP_METRICS_ONLY)) + { glyph->zeroMetrics(); return; } emboldenIfNeeded(fFace, fFace->glyph, layerGlyphIndex); - if (0 < fFace->glyph->outline.n_contours) { - FT_BBox bbox; - getBBoxForCurrentGlyph(glyph, &bbox, true); - + FT_BBox bbox; + if (getBBoxForCurrentGlyph(glyph, &bbox, true)) { // Union bounds.xMin = std::min(bbox.xMin, bounds.xMin); bounds.yMin = std::min(bbox.yMin, bounds.yMin); @@ -1249,6 +1253,9 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph, SkArenaAlloc* all bounds.yMax = std::max(bbox.yMax, bounds.yMax); } } + if (haveLayers) { + glyph->fScalerContextBits = ScalerContextBits::COLRv0; + } } if (haveLayers) { @@ -1257,74 +1264,65 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph, SkArenaAlloc* all if (!(bounds.xMin < bounds.xMax && bounds.yMin < bounds.yMax)) { bounds = { 0, 0, 0, 0 }; } - } else { -#endif - if (0 < fFace->glyph->outline.n_contours) { - getBBoxForCurrentGlyph(glyph, &bounds, true); - } else { + setGlyphBounds(glyph, bounds); + } + } +#endif //FT_COLOR_H + + // Even if haveLayers, the base glyph must be loaded to get the metrics. + if (FT_Load_Glyph(fFace, glyph->getGlyphID(), fLoadGlyphFlags | FT_LOAD_BITMAP_METRICS_ONLY)) { + glyph->zeroMetrics(); + return; + } + + if (!haveLayers) { + emboldenIfNeeded(fFace, fFace->glyph, glyph->getGlyphID()); + + if (fFace->glyph->format == FT_GLYPH_FORMAT_OUTLINE) { + FT_BBox bounds; + if (!getBBoxForCurrentGlyph(glyph, &bounds, true)) { bounds = { 0, 0, 0, 0 }; } -#ifdef FT_COLOR_H - } -#endif - // Round out, no longer dot6. - bounds.xMin = SkFDot6Floor(bounds.xMin); - bounds.yMin = SkFDot6Floor(bounds.yMin); - bounds.xMax = SkFDot6Ceil (bounds.xMax); - bounds.yMax = SkFDot6Ceil (bounds.yMax); - - FT_Pos width = bounds.xMax - bounds.xMin; - FT_Pos height = bounds.yMax - bounds.yMin; - FT_Pos top = -bounds.yMax; // Freetype y-up, Skia y-down. - FT_Pos left = bounds.xMin; - if (!SkTFitsInfWidth )>(width ) || - !SkTFitsInfHeight)>(height) || - !SkTFitsInfTop )>(top ) || - !SkTFitsInfLeft )>(left ) ) - { - width = height = top = left = 0; - } + setGlyphBounds(glyph, bounds); + updateGlyphIfLCD(glyph); - glyph->fWidth = SkToU16(width ); - glyph->fHeight = SkToU16(height); - glyph->fTop = SkToS16(top ); - glyph->fLeft = SkToS16(left ); - updateGlyphIfLCD(glyph); + } else if (fFace->glyph->format == FT_GLYPH_FORMAT_BITMAP) { + glyph->setPath(alloc, nullptr, false); - } else if (fFace->glyph->format == FT_GLYPH_FORMAT_BITMAP) { - if (this->isVertical()) { - FT_Vector vector; - vector.x = fFace->glyph->metrics.vertBearingX - fFace->glyph->metrics.horiBearingX; - vector.y = -fFace->glyph->metrics.vertBearingY - fFace->glyph->metrics.horiBearingY; - FT_Vector_Transform(&vector, &fMatrix22); - fFace->glyph->bitmap_left += SkFDot6Floor(vector.x); - fFace->glyph->bitmap_top += SkFDot6Floor(vector.y); - } + if (this->isVertical()) { + FT_Vector vector; + vector.x = fFace->glyph->metrics.vertBearingX - fFace->glyph->metrics.horiBearingX; + vector.y = -fFace->glyph->metrics.vertBearingY - fFace->glyph->metrics.horiBearingY; + FT_Vector_Transform(&vector, &fMatrix22); + fFace->glyph->bitmap_left += SkFDot6Floor(vector.x); + fFace->glyph->bitmap_top += SkFDot6Floor(vector.y); + } - if (fFace->glyph->bitmap.pixel_mode == FT_PIXEL_MODE_BGRA) { - glyph->fMaskFormat = SkMask::kARGB32_Format; - } + if (fFace->glyph->bitmap.pixel_mode == FT_PIXEL_MODE_BGRA) { + glyph->fMaskFormat = SkMask::kARGB32_Format; + } - { - SkRect rect = SkRect::MakeXYWH(SkIntToScalar(fFace->glyph->bitmap_left), - -SkIntToScalar(fFace->glyph->bitmap_top), - SkIntToScalar(fFace->glyph->bitmap.width), - SkIntToScalar(fFace->glyph->bitmap.rows)); - fMatrix22Scalar.mapRect(&rect); - if (this->shouldSubpixelBitmap(*glyph, fMatrix22Scalar)) { - rect.offset(SkFixedToScalar(glyph->getSubXFixed()), - SkFixedToScalar(glyph->getSubYFixed())); + { + SkRect rect = SkRect::MakeXYWH(SkIntToScalar(fFace->glyph->bitmap_left), + -SkIntToScalar(fFace->glyph->bitmap_top), + SkIntToScalar(fFace->glyph->bitmap.width), + SkIntToScalar(fFace->glyph->bitmap.rows)); + fMatrix22Scalar.mapRect(&rect); + if (this->shouldSubpixelBitmap(*glyph, fMatrix22Scalar)) { + rect.offset(SkFixedToScalar(glyph->getSubXFixed()), + SkFixedToScalar(glyph->getSubYFixed())); + } + SkIRect irect = rect.roundOut(); + glyph->fWidth = SkToU16(irect.width()); + glyph->fHeight = SkToU16(irect.height()); + glyph->fTop = SkToS16(irect.top()); + glyph->fLeft = SkToS16(irect.left()); } - SkIRect irect = rect.roundOut(); - glyph->fWidth = SkToU16(irect.width()); - glyph->fHeight = SkToU16(irect.height()); - glyph->fTop = SkToS16(irect.top()); - glyph->fLeft = SkToS16(irect.left()); + } else { + SkDEBUGFAIL("unknown glyph format"); + glyph->zeroMetrics(); + return; } - } else { - SkDEBUGFAIL("unknown glyph format"); - glyph->zeroMetrics(); - return; } if (this->isVertical()) { @@ -1334,7 +1332,7 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph, SkArenaAlloc* all glyph->fAdvanceY = SkScalarToFloat(fMatrix22Scalar.getScaleY() * advanceScalar); } else { glyph->fAdvanceX = -SkFDot6ToFloat(fFace->glyph->advance.x); - glyph->fAdvanceY = SkFDot6ToFloat(fFace->glyph->advance.y); + glyph->fAdvanceY = SkFDot6ToFloat(fFace->glyph->advance.y); } } else { if (fDoLinearMetrics) { @@ -1342,7 +1340,7 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph, SkArenaAlloc* all glyph->fAdvanceX = SkScalarToFloat(fMatrix22Scalar.getScaleX() * advanceScalar); glyph->fAdvanceY = SkScalarToFloat(fMatrix22Scalar.getSkewY() * advanceScalar); } else { - glyph->fAdvanceX = SkFDot6ToFloat(fFace->glyph->advance.x); + glyph->fAdvanceX = SkFDot6ToFloat(fFace->glyph->advance.x); glyph->fAdvanceY = -SkFDot6ToFloat(fFace->glyph->advance.y); } } @@ -1360,17 +1358,45 @@ void SkScalerContext_FreeType::generateImage(const SkGlyph& glyph) { return; } - FT_Error err = FT_Load_Glyph(fFace, glyph.getGlyphID(), fLoadGlyphFlags); - if (err != 0) { - SK_TRACEFTR(err, "SkScalerContext_FreeType::generateImage: FT_Load_Glyph(glyph:%d " - "width:%d height:%d rb:%zu flags:%d) failed.", - glyph.getGlyphID(), glyph.width(), glyph.height(), glyph.rowBytes(), - fLoadGlyphFlags); - sk_bzero(glyph.fImage, glyph.imageSize()); + if (glyph.fScalerContextBits == ScalerContextBits::COLRv0 || + glyph.fScalerContextBits == ScalerContextBits::COLRv1) + { +#ifdef FT_COLOR_H + SkASSERT(glyph.maskFormat() == SkMask::kARGB32_Format); + SkBitmap dstBitmap; + // TODO: mark this as sRGB when the blits will be sRGB. + dstBitmap.setInfo(SkImageInfo::Make(glyph.fWidth, glyph.fHeight, + kN32_SkColorType, + kPremul_SkAlphaType), + glyph.rowBytes()); + dstBitmap.setPixels(glyph.fImage); + + SkCanvas canvas(dstBitmap); + if constexpr (kSkShowTextBlitCoverage) { + canvas.clear(0x33FF0000); + } else { + canvas.clear(SK_ColorTRANSPARENT); + } + canvas.translate(-glyph.fLeft, -glyph.fTop); + + SkSpan palette(fFaceRec->fSkPalette.get(), fFaceRec->fFTPaletteEntryCount); + if (glyph.fScalerContextBits == ScalerContextBits::COLRv0) { + this->drawCOLRv0Glyph(fFace, glyph, fLoadGlyphFlags, palette, &canvas); + } else if (glyph.fScalerContextBits == ScalerContextBits::COLRv1) { +#ifdef TT_SUPPORT_COLRV1 + this->drawCOLRv1Glyph(fFace, glyph, fLoadGlyphFlags, palette, &canvas); +#endif + } +#endif // FT_COLOR_H return; } + if (FT_Load_Glyph(fFace, glyph.getGlyphID(), fLoadGlyphFlags)) { + sk_bzero(glyph.fImage, glyph.imageSize()); + return; + } emboldenIfNeeded(fFace, fFace->glyph, glyph.getGlyphID()); + SkMatrix* bitmapMatrix = &fMatrix22Scalar; SkMatrix subpixelBitmapMatrix; if (this->shouldSubpixelBitmap(glyph, *bitmapMatrix)) { @@ -1380,8 +1406,7 @@ void SkScalerContext_FreeType::generateImage(const SkGlyph& glyph) { bitmapMatrix = &subpixelBitmapMatrix; } - SkSpan palette(fFaceRec->fSkPalette.get(), fFaceRec->fFTPaletteEntryCount); - generateGlyphImage(fFace, glyph, fLoadGlyphFlags, palette, *bitmapMatrix); + generateGlyphImage(fFace, glyph, *bitmapMatrix); } sk_sp SkScalerContext_FreeType::generateDrawable(const SkGlyph& glyph) { @@ -1398,18 +1423,30 @@ sk_sp SkScalerContext_FreeType::generateDrawable(const SkGlyph& glyp return nullptr; } - FT_Error err = FT_Load_Glyph(fFace, glyph.getGlyphID(), fLoadGlyphFlags); - if (err != 0) { - SK_TRACEFTR(err, "SkScalerContext_FreeType::generateDrawable: FT_Load_Glyph(glyph:%d " - "width:%d height:%d rb:%zu flags:%d) failed.", - glyph.getGlyphID(), glyph.width(), glyph.height(), glyph.rowBytes(), - fLoadGlyphFlags); - return nullptr; + if (glyph.fScalerContextBits == ScalerContextBits::COLRv0 || + glyph.fScalerContextBits == ScalerContextBits::COLRv1) + { +#ifdef FT_COLOR_H + SkSpan palette(fFaceRec->fSkPalette.get(), fFaceRec->fFTPaletteEntryCount); + SkPictureRecorder recorder; + SkCanvas* recordingCanvas = recorder.beginRecording(SkRect::Make(glyph.mask().fBounds)); + if (glyph.fScalerContextBits == ScalerContextBits::COLRv0) { + if (!this->drawCOLRv0Glyph(fFace, glyph, fLoadGlyphFlags, palette, recordingCanvas)) { + return nullptr; + } + } else if (glyph.fScalerContextBits == ScalerContextBits::COLRv1) { +#ifdef TT_SUPPORT_COLRV1 + if (!this->drawCOLRv1Glyph(fFace, glyph, fLoadGlyphFlags, palette, recordingCanvas)) { + return nullptr; + } +#else + return nullptr; +#endif + } + return recorder.finishRecordingAsDrawable(); +#endif // FT_COLOR_H } - - emboldenIfNeeded(fFace, fFace->glyph, glyph.getGlyphID()); - SkSpan palette(fFaceRec->fSkPalette.get(), fFaceRec->fFTPaletteEntryCount); - return generateGlyphDrawable(fFace, glyph, fLoadGlyphFlags, palette); + return nullptr; } bool SkScalerContext_FreeType::generatePath(const SkGlyph& glyph, SkPath* path) { @@ -1873,7 +1910,7 @@ std::unique_ptr SkTypeface_FreeType::makeFontData() const { void SkTypeface_FreeType::FontDataPaletteToDescriptorPalette(const SkFontData& fontData, SkFontDescriptor* desc) { - desc->setPaleteIndex(fontData.getPaletteIndex()); + desc->setPaletteIndex(fontData.getPaletteIndex()); int paletteOverrideCount = fontData.getPaletteOverrideCount(); auto overrides = desc->setPaletteEntryOverrides(paletteOverrideCount); for (int i = 0; i < paletteOverrideCount; ++i) { diff --git a/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp b/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp index 92a16991402f..fa6069e256bb 100644 --- a/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp +++ b/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp @@ -11,13 +11,14 @@ #include "include/core/SkColor.h" #include "include/core/SkDrawable.h" #include "include/core/SkPath.h" -#include "include/core/SkPictureRecorder.h" #include "include/effects/SkGradientShader.h" +#include "include/pathops/SkPathOps.h" #include "include/private/SkColorData.h" #include "include/private/SkTo.h" #include "src/core/SkFDot6.h" #include "src/ports/SkFontHost_FreeType_common.h" +#include #include #include @@ -32,6 +33,10 @@ // In the past, FT_GlyphSlot_Own_Bitmap was defined in this header file. #include +namespace { +[[maybe_unused]] static inline const constexpr bool kSkShowTextBlitCoverage = false; +} + #ifdef TT_SUPPORT_COLRV1 // FT_ClipBox and FT_Get_Color_Glyph_ClipBox introduced VER-2-11-0-18-g47cf8ebf4 // FT_COLR_COMPOSITE_PLUS and renumbering introduced VER-2-11-0-21-ge40ae7569 @@ -49,6 +54,11 @@ #endif #endif +// FT_OUTLINE_OVERLAP was added in FreeType 2.10.3 +#ifndef FT_OUTLINE_OVERLAP +# define FT_OUTLINE_OVERLAP 0x40 +#endif + // FT_LOAD_COLOR and the corresponding FT_Pixel_Mode::FT_PIXEL_MODE_BGRA // were introduced in FreeType 2.5.0. // The following may be removed once FreeType 2.5.0 is required to build. @@ -94,18 +104,18 @@ FT_Pixel_Mode compute_pixel_mode(SkMask::Format format) { /////////////////////////////////////////////////////////////////////////////// uint16_t packTriple(U8CPU r, U8CPU g, U8CPU b) { -#ifdef SK_SHOW_TEXT_BLIT_COVERAGE - r = std::max(r, (U8CPU)0x40); - g = std::max(g, (U8CPU)0x40); - b = std::max(b, (U8CPU)0x40); -#endif + if constexpr (kSkShowTextBlitCoverage) { + r = std::max(r, (U8CPU)0x40); + g = std::max(g, (U8CPU)0x40); + b = std::max(b, (U8CPU)0x40); + } return SkPack888ToRGB16(r, g, b); } uint16_t grayToRGB16(U8CPU gray) { -#ifdef SK_SHOW_TEXT_BLIT_COVERAGE - gray = std::max(gray, (U8CPU)0x40); -#endif + if constexpr (kSkShowTextBlitCoverage) { + gray = std::max(gray, (U8CPU)0x40); + } return SkPack888ToRGB16(gray, gray, gray); } @@ -296,9 +306,9 @@ void copyFTBitmap(const FT_Bitmap& srcFTBitmap, SkMask& dstMask) { uint8_t r = *src_row++; uint8_t a = *src_row++; *dst_row++ = SkPackARGB32(a, r, g, b); -#ifdef SK_SHOW_TEXT_BLIT_COVERAGE - *(dst_row-1) = SkFourByteInterp256(*(dst_row-1), SK_ColorWHITE, 0x40); -#endif + if constexpr (kSkShowTextBlitCoverage) { + *(dst_row-1) = SkFourByteInterp256(*(dst_row-1), SK_ColorWHITE, 0x40); + } } src += srcPitch; dst += dstRowBytes; @@ -403,9 +413,9 @@ inline SkColorType SkColorType_for_SkMaskFormat(SkMask::Format format) { const uint16_t kForegroundColorPaletteIndex = 0xFFFF; struct OpaquePaintHasher { - size_t operator()(const FT_OpaquePaint& opaque_paint) { - return SkGoodHash()(opaque_paint.p) ^ - SkGoodHash()(opaque_paint.insert_root_transform); + size_t operator()(const FT_OpaquePaint& opaquePaint) { + return SkGoodHash()(opaquePaint.p) ^ + SkGoodHash()(opaquePaint.insert_root_transform); } }; @@ -416,8 +426,8 @@ bool generateFacePathCOLRv1(FT_Face face, SkGlyphID glyphID, SkPath* path); inline float SkColrV1AlphaToFloat(uint16_t alpha) { return (alpha / float(1 << 14)); } -inline SkTileMode ToSkTileMode(FT_PaintExtend extend_mode) { - switch (extend_mode) { +inline SkTileMode ToSkTileMode(FT_PaintExtend extendMode) { + switch (extendMode) { case FT_COLR_PAINT_EXTEND_REPEAT: return SkTileMode::kRepeat; case FT_COLR_PAINT_EXTEND_REFLECT: @@ -427,8 +437,8 @@ inline SkTileMode ToSkTileMode(FT_PaintExtend extend_mode) { } } -inline SkBlendMode ToSkBlendMode(FT_Composite_Mode composite) { - switch (composite) { +inline SkBlendMode ToSkBlendMode(FT_Composite_Mode compositeMode) { + switch (compositeMode) { case FT_COLR_COMPOSITE_CLEAR: return SkBlendMode::kClear; case FT_COLR_COMPOSITE_SRC: @@ -491,78 +501,81 @@ inline SkBlendMode ToSkBlendMode(FT_Composite_Mode composite) { } inline SkMatrix ToSkMatrix(FT_Affine23 affine23) { - // Adjust order to convert from FreeType's FT_Affine23 column major order to SkMatrix row-major - // order. + // Convert from FreeType's FT_Affine23 column major order to SkMatrix row-major order. return SkMatrix::MakeAll( - SkFixedToScalar(affine23.xx), -SkFixedToScalar(affine23.xy), SkFixedToScalar(affine23.dx), + SkFixedToScalar(affine23.xx), -SkFixedToScalar(affine23.xy), SkFixedToScalar(affine23.dx), -SkFixedToScalar(affine23.yx), SkFixedToScalar(affine23.yy), -SkFixedToScalar(affine23.dy), - 0, 0, 1); + 0, 0, 1); } inline SkPoint SkVectorProjection(SkPoint a, SkPoint b) { SkScalar length = b.length(); - if (!length) return SkPoint(); - SkPoint b_normalized = b; - b_normalized.normalize(); - b_normalized.scale(SkPoint::DotProduct(a, b) / length); - return b_normalized; + if (!length) { + return SkPoint(); + } + SkPoint bNormalized = b; + bNormalized.normalize(); + bNormalized.scale(SkPoint::DotProduct(a, b) / length); + return bNormalized; } bool colrv1_configure_skpaint(FT_Face face, const SkSpan& palette, const SkColor foregroundColor, - FT_COLR_Paint colrv1_paint, + const FT_COLR_Paint& colrPaint, SkPaint* paint) { - auto fetch_color_stops = [&face, &palette, &foregroundColor]( - FT_ColorStopIterator& color_stop_iterator, + auto fetchColorStops = [&face, &palette, &foregroundColor]( + const FT_ColorStopIterator& colorStopIterator, std::vector& stops, std::vector& colors) -> bool { - const FT_UInt num_color_stops = color_stop_iterator.num_color_stops; + const FT_UInt colorStopCount = colorStopIterator.num_color_stops; + if (colorStopCount == 0) { + return false; + } // 5.7.11.2.4 ColorIndex, ColorStop and ColorLine // "Applications shall apply the colorStops in increasing stopOffset order." struct ColorStop { - SkScalar stop_pos; - SkColor color; + SkScalar pos; + SkColor color; }; - std::vector sorted_stops; - sorted_stops.resize(num_color_stops); + std::vector colorStopsSorted; + colorStopsSorted.resize(colorStopCount); FT_ColorStop color_stop; - while (FT_Get_Colorline_Stops(face, &color_stop, &color_stop_iterator)) { - FT_UInt index = color_stop_iterator.current_color_stop - 1; - sorted_stops[index].stop_pos = color_stop.stop_offset / float(1 << 14); + 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 / float(1 << 14); FT_UInt16& palette_index = color_stop.color.palette_index; if (palette_index == kForegroundColorPaletteIndex) { U8CPU newAlpha = SkColorGetA(foregroundColor) * SkColrV1AlphaToFloat(color_stop.color.alpha); - sorted_stops[index].color = SkColorSetA(foregroundColor, newAlpha); + 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); - sorted_stops[index].color = SkColorSetA(palette[palette_index], newAlpha); + colorStopsSorted[index].color = SkColorSetA(palette[palette_index], newAlpha); } } - std::stable_sort( - sorted_stops.begin(), - sorted_stops.end(), - [](const ColorStop& a, const ColorStop& b) { return a.stop_pos < b.stop_pos; }); + std::stable_sort(colorStopsSorted.begin(), colorStopsSorted.end(), + [](const ColorStop& a, const ColorStop& b) { return a.pos < b.pos; }); - stops.resize(num_color_stops); - colors.resize(num_color_stops); - for (size_t i = 0; i < num_color_stops; ++i) { - stops[i] = sorted_stops[i].stop_pos; - colors[i] = sorted_stops[i].color; + stops.resize(colorStopCount); + colors.resize(colorStopCount); + for (size_t i = 0; i < colorStopCount; ++i) { + stops[i] = colorStopsSorted[i].pos; + colors[i] = colorStopsSorted[i].color; } return true; }; - switch (colrv1_paint.format) { + switch (colrPaint.format) { case FT_COLR_PAINTFORMAT_SOLID: { - FT_PaintSolid solid = colrv1_paint.u.solid; + FT_PaintSolid solid = colrPaint.u.solid; // Dont' draw anything with this color if the palette index is out of bounds. SkColor color = SK_ColorTRANSPARENT; @@ -579,203 +592,240 @@ bool colrv1_configure_skpaint(FT_Face face, } paint->setShader(nullptr); paint->setColor(color); - break; + return true; } case FT_COLR_PAINTFORMAT_LINEAR_GRADIENT: { - FT_PaintLinearGradient& linear_gradient = colrv1_paint.u.linear_gradient; - SkPoint line_positions[2] = {SkPoint::Make(SkFixedToScalar(linear_gradient.p0.x), - -SkFixedToScalar(linear_gradient.p0.y)), - SkPoint::Make(SkFixedToScalar(linear_gradient.p1.x), - -SkFixedToScalar(linear_gradient.p1.y))}; - SkPoint p0 = line_positions[0]; - SkPoint p1 = line_positions[1]; - SkPoint p2 = SkPoint::Make(SkFixedToScalar(linear_gradient.p2.x), - -SkFixedToScalar(linear_gradient.p2.y)); - - // Do not draw the gradient if p0p1 is parallel to p0p2. - if (p1 == p0 || p2 == p0 || !SkPoint::CrossProduct(p1 - p0, p2 - p0)) break; - - // Follow implementation note in nanoemoji: - // https://github.com/googlefonts/nanoemoji/blob/0ac6e7bb4d8202db692574d8530a9b643f1b3b3c/src/nanoemoji/svg.py#L188 - // to compute a new gradient end point P3 as the orthogonal - // projection of the vector from p0 to p1 onto a line perpendicular - // to line p0p2 and passing through p0. - SkVector perpendicular_to_p2_p0 = (p2 - p0); - perpendicular_to_p2_p0 = SkPoint::Make(perpendicular_to_p2_p0.y(), -perpendicular_to_p2_p0.x()); - SkVector p3 = p0 + SkVectorProjection((p1 - p0), perpendicular_to_p2_p0); - + const FT_PaintLinearGradient& linearGradient = colrPaint.u.linear_gradient; std::vector stops; std::vector colors; - if (!fetch_color_stops(linear_gradient.colorline.color_stop_iterator, stops, colors) || - stops.empty()) { + if (!fetchColorStops(linearGradient.colorline.color_stop_iterator, stops, colors)) { return false; } if (stops.size() == 1) { paint->setColor(colors[0]); - break; + return true; } + SkPoint linePositions[2] = {SkPoint::Make( SkFixedToScalar(linearGradient.p0.x), + -SkFixedToScalar(linearGradient.p0.y)), + SkPoint::Make( SkFixedToScalar(linearGradient.p1.x), + -SkFixedToScalar(linearGradient.p1.y))}; + SkPoint p0 = linePositions[0]; + SkPoint p1 = linePositions[1]; + SkPoint p2 = SkPoint::Make( SkFixedToScalar(linearGradient.p2.x), + -SkFixedToScalar(linearGradient.p2.y)); + + // If p0p1 or p0p2 are degenerate probably nothing should be drawn. + // If p0p1 and p0p2 are parallel then one side is the first color and the other side is + // the last color, depending on the direction. + // For now, just use the first color. + if (p1 == p0 || p2 == p0 || !SkPoint::CrossProduct(p1 - p0, p2 - p0)) { + paint->setColor(colors[0]); + return true; + } + + // Follow implementation note in nanoemoji: + // https://github.com/googlefonts/nanoemoji/blob/0ac6e7bb4d8202db692574d8530a9b643f1b3b3c/src/nanoemoji/svg.py#L188 + // to compute a new gradient end point P3 as the orthogonal + // projection of the vector from p0 to p1 onto a line perpendicular + // to line p0p2 and passing through p0. + SkVector perpendicularToP2P0 = (p2 - p0); + perpendicularToP2P0 = SkPoint::Make( perpendicularToP2P0.y(), + -perpendicularToP2P0.x()); + SkVector p3 = p0 + SkVectorProjection((p1 - p0), perpendicularToP2P0); + // Project/scale points according to stop extrema along p0p3 line, // p3 being the result of the projection above, then scale stops to // to [0, 1] range so that repeat modes work. The Skia linear // gradient shader performs the repeat modes over the 0 to 1 range, // that's why we need to scale the stops to within that range. SkVector p0p3 = p3 - p0; - SkVector new_p0_offset = p0p3; - new_p0_offset.scale(stops.front()); - SkVector new_p1_offset = p0p3; - new_p1_offset.scale(stops.back()); + SkVector p0Offset = p0p3; + p0Offset.scale(stops.front()); + SkVector p1Offset = p0p3; + p1Offset.scale(stops.back()); - line_positions[0] = p0 + new_p0_offset; - line_positions[1] = p0 + new_p1_offset; + linePositions[0] = p0 + p0Offset; + linePositions[1] = p0 + p1Offset; - SkScalar scale_factor = 1 / (stops.back() - stops.front()); - SkScalar start_offset = stops.front(); + SkScalar scaleFactor = 1 / (stops.back() - stops.front()); + SkScalar startOffset = stops.front(); for (SkScalar& stop : stops) { - stop = (stop - start_offset) * scale_factor; + stop = (stop - startOffset) * scaleFactor; } sk_sp shader(SkGradientShader::MakeLinear( - line_positions, - colors.data(), - stops.data(), - stops.size(), - ToSkTileMode(linear_gradient.colorline.extend))); + linePositions, + colors.data(), stops.data(), stops.size(), + ToSkTileMode(linearGradient.colorline.extend))); SkASSERT(shader); // An opaque color is needed to ensure the gradient is not modulated by alpha. paint->setColor(SK_ColorBLACK); paint->setShader(shader); - - break; + return true; } case FT_COLR_PAINTFORMAT_RADIAL_GRADIENT: { - FT_PaintRadialGradient& radial_gradient = colrv1_paint.u.radial_gradient; - SkPoint start = SkPoint::Make(SkFixedToScalar(radial_gradient.c0.x), - -SkFixedToScalar(radial_gradient.c0.y)); - SkScalar radius = SkFixedToScalar(radial_gradient.r0); - SkPoint end = SkPoint::Make(SkFixedToScalar(radial_gradient.c1.x), - -SkFixedToScalar(radial_gradient.c1.y)); - SkScalar end_radius = SkFixedToScalar(radial_gradient.r1); + const FT_PaintRadialGradient& radialGradient = colrPaint.u.radial_gradient; + SkPoint start = SkPoint::Make( SkFixedToScalar(radialGradient.c0.x), + -SkFixedToScalar(radialGradient.c0.y)); + SkScalar startRadius = SkFixedToScalar(radialGradient.r0); + SkPoint end = SkPoint::Make( SkFixedToScalar(radialGradient.c1.x), + -SkFixedToScalar(radialGradient.c1.y)); + SkScalar endRadius = SkFixedToScalar(radialGradient.r1); std::vector stops; std::vector colors; - if (!fetch_color_stops(radial_gradient.colorline.color_stop_iterator, stops, colors)) { + if (!fetchColorStops(radialGradient.colorline.color_stop_iterator, stops, colors)) { return false; } + if (stops.size() == 1) { + paint->setColor(colors[0]); + return true; + } + // An opaque color is needed to ensure the gradient is not modulated by alpha. paint->setColor(SK_ColorBLACK); paint->setShader(SkGradientShader::MakeTwoPointConical( - start, radius, end, end_radius, colors.data(), stops.data(), stops.size(), - ToSkTileMode(radial_gradient.colorline.extend))); - break; + start, startRadius, end, endRadius, colors.data(), stops.data(), stops.size(), + ToSkTileMode(radialGradient.colorline.extend))); + return true; } case FT_COLR_PAINTFORMAT_SWEEP_GRADIENT: { - FT_PaintSweepGradient& sweep_gradient = colrv1_paint.u.sweep_gradient; - SkPoint center = SkPoint::Make(SkFixedToScalar(sweep_gradient.center.x), - -SkFixedToScalar(sweep_gradient.center.y)); - SkScalar startAngle = SkFixedToScalar(sweep_gradient.start_angle * 180.0f); - SkScalar endAngle = SkFixedToScalar(sweep_gradient.end_angle * 180.0f); + const FT_PaintSweepGradient& sweepGradient = colrPaint.u.sweep_gradient; + SkPoint center = SkPoint::Make( SkFixedToScalar(sweepGradient.center.x), + -SkFixedToScalar(sweepGradient.center.y)); + SkScalar startAngle = SkFixedToScalar(sweepGradient.start_angle * 180.0f); + SkScalar endAngle = SkFixedToScalar(sweepGradient.end_angle * 180.0f); std::vector stops; std::vector colors; - if (!fetch_color_stops(sweep_gradient.colorline.color_stop_iterator, stops, colors)) { + if (!fetchColorStops(sweepGradient.colorline.color_stop_iterator, stops, colors)) { return false; } + if (stops.size() == 1) { + paint->setColor(colors[0]); + return true; + } + // An opaque color is needed to ensure the gradient is not modulated by alpha. paint->setColor(SK_ColorBLACK); // Prepare angles to be within range for the shader. - auto clampAngleToRange= [](SkScalar angle) { - SkScalar clamped_angle = SkScalarMod(angle, 360.f); - if (clamped_angle < 0) - return clamped_angle + 360.f; - return clamped_angle; + auto clampAngleToRange = [](SkScalar angle) { + SkScalar clampedAngle = SkScalarMod(angle, 360.f); + if (clampedAngle < 0) { + return clampedAngle + 360.f; + } + return clampedAngle; }; startAngle = clampAngleToRange(startAngle); endAngle = clampAngleToRange(endAngle); +#ifdef SK_IGNORE_COLRV1_SWEEP_FIX /* TODO: Spec clarifications on which side of the gradient is to be * painted, repeat modes, how to handle 0 degrees transition, see * https://github.com/googlefonts/colr-gradients-spec/issues/250 */ - if (startAngle >= endAngle) - endAngle += 360.f; + if (startAngle >= endAngle) { + endAngle += 360.f; + } // Skia's angles start from the horizontal x-Axis, rotate left 90 // degrees and then mirror horizontally to correct for Skia angles // going clockwise, COLR v1 angles going counterclockwise. - SkMatrix angle_adjust = SkMatrix::RotateDeg(-90.f, center); - angle_adjust.postScale(-1, 1, center.x(), center.y()); + SkMatrix angleAdjust = SkMatrix::RotateDeg(-90.f, center); + angleAdjust.postScale(-1, 1, center.x(), center.y()); paint->setShader(SkGradientShader::MakeSweep( center.x(), center.y(), colors.data(), stops.data(), stops.size(), - SkTileMode::kDecal, startAngle, endAngle, 0, &angle_adjust)); - break; + SkTileMode::kDecal, startAngle, endAngle, 0, &angleAdjust)); +#else + SkScalar sectorAngle = + endAngle > startAngle ? endAngle - startAngle : endAngle + 360.0f - startAngle; + + /* https://docs.microsoft.com/en-us/typography/opentype/spec/colr#sweep-gradients + * "The angles are expressed in counter-clockwise degrees from the + * direction of the positive x-axis on the design grid. [...] The + * color line progresses from the start angle to the end angle in + * the counter-clockwise direction;" + */ + + SkMatrix localMatrix; + localMatrix.postRotate(startAngle, center.x(), center.y()); + /* Mirror along x-axis to change angle direction. */ + localMatrix.postScale(1, -1, center.x(), center.y()); + SkTileMode tileMode = ToSkTileMode(sweepGradient.colorline.extend); + + paint->setShader(SkGradientShader::MakeSweep( + center.x(), center.y(), colors.data(), stops.data(), stops.size(), + tileMode, 0, sectorAngle, 0, &localMatrix)); +#endif + return true; } default: { - SkASSERT(false); /* not reached */ + SkASSERT(false); + return false; } } - return true; + SkUNREACHABLE; } -void colrv1_draw_paint(SkCanvas* canvas, +bool colrv1_draw_paint(SkCanvas* canvas, const SkSpan& palette, const SkColor foregroundColor, FT_Face face, - FT_COLR_Paint colrv1_paint) { - SkPaint paint; - - switch (colrv1_paint.format) { + const FT_COLR_Paint& colrPaint) { + switch (colrPaint.format) { case FT_COLR_PAINTFORMAT_GLYPH: { - FT_UInt glyphID = colrv1_paint.u.glyph.glyphID; + FT_UInt glyphID = colrPaint.u.glyph.glyphID; SkPath path; /* TODO: Currently this call retrieves the path at units_per_em size. If we want to get * correct hinting for the scaled size under the transforms at this point in the color * glyph graph, we need to extract at least the requested glyph width and height and * pass that to the path generation. */ - if (generateFacePathCOLRv1(face, glyphID, &path)) { - -#ifdef SK_SHOW_TEXT_BLIT_COVERAGE - SkPaint highlight_paint; - highlight_paint.setColor(0x33FF0000); - canvas->drawRect(path.getBounds(), highlight_paint); -#endif - canvas->clipPath(path, true /* doAntiAlias */); + if (!generateFacePathCOLRv1(face, glyphID, &path)) { + return false; } - break; + if constexpr (kSkShowTextBlitCoverage) { + SkPaint highlight_paint; + highlight_paint.setColor(0x33FF0000); + canvas->drawRect(path.getBounds(), highlight_paint); + } + canvas->clipPath(path, true /* doAntiAlias */); + return true; } case FT_COLR_PAINTFORMAT_SOLID: case FT_COLR_PAINTFORMAT_LINEAR_GRADIENT: case FT_COLR_PAINTFORMAT_RADIAL_GRADIENT: case FT_COLR_PAINTFORMAT_SWEEP_GRADIENT: { - SkPaint colrPaint; - if (colrv1_configure_skpaint( - face, palette, foregroundColor, colrv1_paint, &colrPaint)) { - canvas->drawPaint(colrPaint); + SkPaint skPaint; + if (!colrv1_configure_skpaint(face, palette, foregroundColor, colrPaint, &skPaint)) { + return false; } - break; + canvas->drawPaint(skPaint); + return true; } case FT_COLR_PAINTFORMAT_TRANSFORM: case FT_COLR_PAINTFORMAT_TRANSLATE: case FT_COLR_PAINTFORMAT_SCALE: case FT_COLR_PAINTFORMAT_ROTATE: case FT_COLR_PAINTFORMAT_SKEW: - SkASSERT(false); // Transforms handled in colrv1_transform. - break; + [[fallthrough]]; // Transforms handled in colrv1_transform. default: - paint.setShader(nullptr); - paint.setColor(SK_ColorCYAN); - break; + SkASSERT(false); + return false; } + SkUNREACHABLE; } -void colrv1_draw_glyph_with_path(SkCanvas* canvas, const SkSpan& palette, SkColor foregroundColor, FT_Face face, - FT_COLR_Paint glyphPaint, FT_COLR_Paint fillPaint) { +bool colrv1_draw_glyph_with_path(SkCanvas* canvas, + const SkSpan& palette, SkColor foregroundColor, + FT_Face face, + const FT_COLR_Paint& glyphPaint, const FT_COLR_Paint& fillPaint) { SkASSERT(glyphPaint.format == FT_COLR_PAINTFORMAT_GLYPH); SkASSERT(fillPaint.format == FT_COLR_PAINTFORMAT_SOLID || fillPaint.format == FT_COLR_PAINTFORMAT_LINEAR_GRADIENT || @@ -785,7 +835,7 @@ void colrv1_draw_glyph_with_path(SkCanvas* canvas, const SkSpan& palett SkPaint skiaFillPaint; skiaFillPaint.setAntiAlias(true); if (!colrv1_configure_skpaint(face, palette, foregroundColor, fillPaint, &skiaFillPaint)) { - return; + return false; } FT_UInt glyphID = glyphPaint.u.glyph.glyphID; @@ -794,16 +844,16 @@ void colrv1_draw_glyph_with_path(SkCanvas* canvas, const SkSpan& palett * correct hinting for the scaled size under the transforms at this point in the color * glyph graph, we need to extract at least the requested glyph width and height and * pass that to the path generation. */ - if (generateFacePathCOLRv1(face, glyphID, &path)) { -#ifdef SK_SHOW_TEXT_BLIT_COVERAGE - SkPaint highlight_paint; - highlight_paint.setColor(0x33FF0000); - canvas->drawRect(path.getBounds(), highlight_paint); -#endif - { - canvas->drawPath(path, skiaFillPaint); - } + if (!generateFacePathCOLRv1(face, glyphID, &path)) { + return false; + } + if constexpr (kSkShowTextBlitCoverage) { + SkPaint highlightPaint; + highlightPaint.setColor(0x33FF0000); + canvas->drawRect(path.getBounds(), highlightPaint); } + canvas->drawPath(path, skiaFillPaint); + return true; } @@ -811,112 +861,119 @@ void colrv1_draw_glyph_with_path(SkCanvas* canvas, const SkSpan& palett * bounding box calculation mode, no SkCanvas is specified, but we only want to * retrieve the transform from the FreeType paint object. */ void colrv1_transform(FT_Face face, - FT_COLR_Paint colrv1_paint, + const FT_COLR_Paint& colrPaint, SkCanvas* canvas, - SkMatrix* out_transform = nullptr) { + SkMatrix* outTransform = nullptr) { SkMatrix transform; - SkASSERT(canvas || out_transform); + SkASSERT(canvas || outTransform); - switch (colrv1_paint.format) { + switch (colrPaint.format) { case FT_COLR_PAINTFORMAT_TRANSFORM: { - transform = ToSkMatrix(colrv1_paint.u.transform.affine); + transform = ToSkMatrix(colrPaint.u.transform.affine); break; } case FT_COLR_PAINTFORMAT_TRANSLATE: { - transform = SkMatrix::Translate( - SkFixedToScalar(colrv1_paint.u.translate.dx), - -SkFixedToScalar(colrv1_paint.u.translate.dy)); + transform = SkMatrix::Translate( SkFixedToScalar(colrPaint.u.translate.dx), + -SkFixedToScalar(colrPaint.u.translate.dy)); break; } case FT_COLR_PAINTFORMAT_SCALE: { - transform.setScale(SkFixedToScalar(colrv1_paint.u.scale.scale_x), - SkFixedToScalar(colrv1_paint.u.scale.scale_y), - SkFixedToScalar(colrv1_paint.u.scale.center_x), - -SkFixedToScalar(colrv1_paint.u.scale.center_y)); + transform.setScale( SkFixedToScalar(colrPaint.u.scale.scale_x), + SkFixedToScalar(colrPaint.u.scale.scale_y), + SkFixedToScalar(colrPaint.u.scale.center_x), + -SkFixedToScalar(colrPaint.u.scale.center_y)); break; } case FT_COLR_PAINTFORMAT_ROTATE: { + // COLRv1 angles are counter-clockwise, compare + // https://docs.microsoft.com/en-us/typography/opentype/spec/colr#formats-24-to-27-paintrotate-paintvarrotate-paintrotatearoundcenter-paintvarrotatearoundcenter transform = SkMatrix::RotateDeg( - SkFixedToScalar(colrv1_paint.u.rotate.angle) * 180.0f, - SkPoint::Make(SkFixedToScalar(colrv1_paint.u.rotate.center_x), - -SkFixedToScalar(colrv1_paint.u.rotate.center_y))); +#ifdef SK_IGNORE_COLRV1_TRANSFORM_FIX + SkFixedToScalar(colrPaint.u.rotate.angle) * 180.0f, +#else + -SkFixedToScalar(colrPaint.u.rotate.angle) * 180.0f, +#endif + SkPoint::Make( SkFixedToScalar(colrPaint.u.rotate.center_x), + -SkFixedToScalar(colrPaint.u.rotate.center_y))); break; } case FT_COLR_PAINTFORMAT_SKEW: { // In the PAINTFORMAT_ROTATE implementation, SkMatrix setRotate // snaps to 0 for values very close to 0. Do the same here. - SkScalar rad_x = - SkDegreesToRadians(-SkFixedToFloat(colrv1_paint.u.skew.x_skew_angle) * 180.0f); - float tan_x = SkScalarTan(rad_x); - tan_x = SkScalarNearlyZero(tan_x) ? 0.0f : tan_x; - - SkScalar rad_y = - SkDegreesToRadians(-SkFixedToFloat(colrv1_paint.u.skew.y_skew_angle) * 180.0f); - float tan_y = SkScalarTan(rad_y); - tan_y = SkScalarNearlyZero(tan_y) ? 0.0f : tan_y; - - transform.setSkew(tan_x, - tan_y, - SkFixedToScalar(colrv1_paint.u.skew.center_x), - -SkFixedToFloat(colrv1_paint.u.skew.center_y)); + SkScalar xDeg = SkFixedToScalar(colrPaint.u.skew.x_skew_angle) * 180.0f; +#ifdef SK_IGNORE_COLRV1_TRANSFORM_FIX + SkScalar xRad = SkDegreesToRadians(-xDeg); +#else + SkScalar xRad = SkDegreesToRadians(xDeg); +#endif + SkScalar xTan = SkScalarTan(xRad); + xTan = SkScalarNearlyZero(xTan) ? 0.0f : xTan; + + SkScalar yDeg = SkFixedToScalar(colrPaint.u.skew.y_skew_angle) * 180.0f; + // Negate y_skew_angle due to Skia's y-down coordinate system to achieve + // counter-clockwise skew along the y-axis. + SkScalar yRad = SkDegreesToRadians(-yDeg); + SkScalar yTan = SkScalarTan(yRad); + yTan = SkScalarNearlyZero(yTan) ? 0.0f : yTan; + + transform.setSkew(xTan, yTan, + SkFixedToScalar(colrPaint.u.skew.center_x), + -SkFixedToScalar(colrPaint.u.skew.center_y)); break; } default: { - // Only transforms are handled in this function. - SkASSERT(false); + SkASSERT(false); // Only transforms are handled in this function. } } if (canvas) { canvas->concat(transform); } - if (out_transform) { - *out_transform = transform; + if (outTransform) { + *outTransform = transform; } } bool colrv1_start_glyph(SkCanvas* canvas, const SkSpan& palette, const SkColor foregroundColor, - FT_Face ft_face, - uint16_t glyph_id, - FT_Color_Root_Transform root_transform, - VisitedSet* visited_set); + FT_Face face, + uint16_t glyphId, + FT_Color_Root_Transform rootTransform, + VisitedSet* activePaints); bool colrv1_traverse_paint(SkCanvas* canvas, const SkSpan& palette, const SkColor foregroundColor, FT_Face face, - FT_OpaquePaint opaque_paint, - VisitedSet* visited_set) { + FT_OpaquePaint opaquePaint, + VisitedSet* activePaints) { // Cycle detection, see section "5.7.11.1.9 Color glyphs as a directed acyclic graph". - if (visited_set->contains(opaque_paint)) { + if (activePaints->contains(opaquePaint)) { return false; } - visited_set->add(opaque_paint); - SK_AT_SCOPE_EXIT(visited_set->remove(opaque_paint)); + activePaints->add(opaquePaint); + SK_AT_SCOPE_EXIT(activePaints->remove(opaquePaint)); FT_COLR_Paint paint; - if (!FT_Get_Paint(face, opaque_paint, &paint)) { - return false; + if (!FT_Get_Paint(face, opaquePaint, &paint)) { + return false; } - // Keep track of failures to retrieve the FT_COLR_Paint from FreeType in the - // recursion, cancel recursion when a paint retrieval fails. - bool traverse_result = true; - SkAutoCanvasRestore autoRestore(canvas, true /* do_save */); + SkAutoCanvasRestore autoRestore(canvas, true /* doSave */); switch (paint.format) { case FT_COLR_PAINTFORMAT_COLR_LAYERS: { - FT_LayerIterator& layer_iterator = paint.u.colr_layers.layer_iterator; - FT_OpaquePaint opaque_paint_fetch; - opaque_paint_fetch.p = nullptr; - while (FT_Get_Paint_Layers(face, &layer_iterator, &opaque_paint_fetch)) { - colrv1_traverse_paint(canvas, palette, foregroundColor, face, - opaque_paint_fetch, visited_set); + FT_LayerIterator& layerIterator = paint.u.colr_layers.layer_iterator; + FT_OpaquePaint layerPaint{nullptr, 1}; + while (FT_Get_Paint_Layers(face, &layerIterator, &layerPaint)) { + if (!colrv1_traverse_paint(canvas, palette, foregroundColor, face, + layerPaint, activePaints)) { + return false; + } } - break; + return true; } case FT_COLR_PAINTFORMAT_GLYPH: // Special case paint graph leaf situations to improve @@ -931,104 +988,86 @@ bool colrv1_traverse_paint(SkCanvas* canvas, if (fillPaint.format == FT_COLR_PAINTFORMAT_SOLID || fillPaint.format == FT_COLR_PAINTFORMAT_LINEAR_GRADIENT || fillPaint.format == FT_COLR_PAINTFORMAT_RADIAL_GRADIENT || - fillPaint.format == FT_COLR_PAINTFORMAT_SWEEP_GRADIENT) { - colrv1_draw_glyph_with_path(canvas, palette, foregroundColor, - face, paint, fillPaint); - } else { - colrv1_draw_paint(canvas, palette, foregroundColor, face, paint); - traverse_result = colrv1_traverse_paint(canvas, palette, - foregroundColor, face, - paint.u.glyph.paint, - visited_set); + fillPaint.format == FT_COLR_PAINTFORMAT_SWEEP_GRADIENT) + { + return colrv1_draw_glyph_with_path(canvas, palette, foregroundColor, + face, paint, fillPaint); } - break; + if (!colrv1_draw_paint(canvas, palette, foregroundColor, face, paint)) { + return false; + } + return colrv1_traverse_paint(canvas, palette, foregroundColor, + face, paint.u.glyph.paint, activePaints); case FT_COLR_PAINTFORMAT_COLR_GLYPH: - traverse_result = colrv1_start_glyph(canvas, palette, foregroundColor, - face, paint.u.colr_glyph.glyphID, - FT_COLOR_NO_ROOT_TRANSFORM, - visited_set); - break; + return colrv1_start_glyph(canvas, palette, foregroundColor, + face, paint.u.colr_glyph.glyphID, FT_COLOR_NO_ROOT_TRANSFORM, + activePaints); case FT_COLR_PAINTFORMAT_TRANSFORM: colrv1_transform(face, paint, canvas); - traverse_result = colrv1_traverse_paint(canvas, palette, foregroundColor, - face, paint.u.transform.paint, - visited_set); - break; + return colrv1_traverse_paint(canvas, palette, foregroundColor, + face, paint.u.transform.paint, activePaints); case FT_COLR_PAINTFORMAT_TRANSLATE: colrv1_transform(face, paint, canvas); - traverse_result = colrv1_traverse_paint(canvas, palette, foregroundColor, - face, paint.u.translate.paint, - visited_set); - break; + return colrv1_traverse_paint(canvas, palette, foregroundColor, + face, paint.u.translate.paint, activePaints); case FT_COLR_PAINTFORMAT_SCALE: colrv1_transform(face, paint, canvas); - traverse_result = colrv1_traverse_paint(canvas, palette, foregroundColor, - face, paint.u.scale.paint, - visited_set); - break; + return colrv1_traverse_paint(canvas, palette, foregroundColor, + face, paint.u.scale.paint, activePaints); case FT_COLR_PAINTFORMAT_ROTATE: colrv1_transform(face, paint, canvas); - traverse_result = - colrv1_traverse_paint(canvas, palette, foregroundColor, face, - paint.u.rotate.paint, visited_set); - break; + return colrv1_traverse_paint(canvas, palette, foregroundColor, + face, paint.u.rotate.paint, activePaints); case FT_COLR_PAINTFORMAT_SKEW: colrv1_transform(face, paint, canvas); - traverse_result = - colrv1_traverse_paint(canvas, palette, foregroundColor, face, - paint.u.skew.paint, visited_set); - break; + return colrv1_traverse_paint(canvas, palette, foregroundColor, + face, paint.u.skew.paint, activePaints); case FT_COLR_PAINTFORMAT_COMPOSITE: { + SkAutoCanvasRestore acr(canvas, false); canvas->saveLayer(nullptr, nullptr); - traverse_result = colrv1_traverse_paint( - canvas, palette, foregroundColor, face, - paint.u.composite.backdrop_paint, visited_set); - SkPaint blend_mode_paint; - blend_mode_paint.setBlendMode(ToSkBlendMode(paint.u.composite.composite_mode)); - canvas->saveLayer(nullptr, &blend_mode_paint); - traverse_result = - traverse_result && - colrv1_traverse_paint( - canvas, palette, foregroundColor, - face, paint.u.composite.source_paint, visited_set); - canvas->restore(); - canvas->restore(); - break; + if (!colrv1_traverse_paint(canvas, palette, foregroundColor, + face, paint.u.composite.backdrop_paint, activePaints)) { + return false; + } + SkPaint blendModePaint; + blendModePaint.setBlendMode(ToSkBlendMode(paint.u.composite.composite_mode)); + canvas->saveLayer(nullptr, &blendModePaint); + return colrv1_traverse_paint(canvas, palette, foregroundColor, + face, paint.u.composite.source_paint, activePaints); } case FT_COLR_PAINTFORMAT_SOLID: case FT_COLR_PAINTFORMAT_LINEAR_GRADIENT: case FT_COLR_PAINTFORMAT_RADIAL_GRADIENT: case FT_COLR_PAINTFORMAT_SWEEP_GRADIENT: { - colrv1_draw_paint(canvas, palette, foregroundColor, face, paint); - break; + return colrv1_draw_paint(canvas, palette, foregroundColor, face, paint); } default: SkASSERT(false); - break; + return false; } - return traverse_result; + SkUNREACHABLE; } -SkPath GetClipBoxPath(FT_Face ft_face, uint16_t glyph_id, bool untransformed) { +SkPath GetClipBoxPath(FT_Face face, uint16_t glyphId, bool untransformed) { SkPath resultPath; using DoneFTSize = SkFunctionWrapper; std::unique_ptr, DoneFTSize> unscaledFtSize = nullptr; - FT_Size oldSize = ft_face->size; + FT_Size oldSize = face->size; FT_Matrix oldTransform; FT_Vector oldDelta; FT_Error err = 0; if (untransformed) { unscaledFtSize.reset( - [ft_face]() -> FT_Size { + [face]() -> FT_Size { FT_Size size; - FT_Error err = FT_New_Size(ft_face, &size); + FT_Error err = FT_New_Size(face, &size); if (err != 0) { SK_TRACEFTR(err, "FT_New_Size(%s) failed in generateFacePathStaticCOLRv1.", - ft_face->family_name); + face->family_name); return nullptr; } return size; @@ -1039,27 +1078,27 @@ SkPath GetClipBoxPath(FT_Face ft_face, uint16_t glyph_id, bool untransformed) { err = FT_Activate_Size(unscaledFtSize.get()); if (err != 0) { - return resultPath; + return resultPath; } - err = FT_Set_Char_Size(ft_face, SkIntToFDot6(ft_face->units_per_EM), 0, 0, 0); + err = FT_Set_Char_Size(face, SkIntToFDot6(face->units_per_EM), 0, 0, 0); if (err != 0) { - return resultPath; + return resultPath; } - FT_Get_Transform(ft_face, &oldTransform, &oldDelta); - FT_Set_Transform(ft_face, nullptr, nullptr); + FT_Get_Transform(face, &oldTransform, &oldDelta); + FT_Set_Transform(face, nullptr, nullptr); } FT_ClipBox colrGlyphClipBox; - if (FT_Get_Color_Glyph_ClipBox(ft_face, glyph_id, &colrGlyphClipBox)) { - resultPath = SkPath::Polygon({{SkFDot6ToScalar(colrGlyphClipBox.bottom_left.x), + if (FT_Get_Color_Glyph_ClipBox(face, glyphId, &colrGlyphClipBox)) { + resultPath = SkPath::Polygon({{ SkFDot6ToScalar(colrGlyphClipBox.bottom_left.x), -SkFDot6ToScalar(colrGlyphClipBox.bottom_left.y)}, - {SkFDot6ToScalar(colrGlyphClipBox.top_left.x), + { SkFDot6ToScalar(colrGlyphClipBox.top_left.x), -SkFDot6ToScalar(colrGlyphClipBox.top_left.y)}, - {SkFDot6ToScalar(colrGlyphClipBox.top_right.x), + { SkFDot6ToScalar(colrGlyphClipBox.top_right.x), -SkFDot6ToScalar(colrGlyphClipBox.top_right.y)}, - {SkFDot6ToScalar(colrGlyphClipBox.bottom_right.x), + { SkFDot6ToScalar(colrGlyphClipBox.bottom_right.x), -SkFDot6ToScalar(colrGlyphClipBox.bottom_right.y)}}, true); } @@ -1069,7 +1108,7 @@ SkPath GetClipBoxPath(FT_Face ft_face, uint16_t glyph_id, bool untransformed) { if (err != 0) { return resultPath; } - FT_Set_Transform(ft_face, &oldTransform, &oldDelta); + FT_Set_Transform(face, &oldTransform, &oldDelta); } return resultPath; @@ -1078,193 +1117,193 @@ SkPath GetClipBoxPath(FT_Face ft_face, uint16_t glyph_id, bool untransformed) { bool colrv1_start_glyph(SkCanvas* canvas, const SkSpan& palette, const SkColor foregroundColor, - FT_Face ft_face, - uint16_t glyph_id, - FT_Color_Root_Transform root_transform, - VisitedSet* visited_set) { - FT_OpaquePaint opaque_paint; - opaque_paint.p = nullptr; - bool has_colrv1_layers = false; - if (FT_Get_Color_Glyph_Paint(ft_face, glyph_id, root_transform, &opaque_paint)) { - has_colrv1_layers = true; - - SkPath clipBoxPath = - GetClipBoxPath(ft_face, glyph_id, root_transform == FT_COLOR_NO_ROOT_TRANSFORM); - if (!clipBoxPath.isEmpty()) { - canvas->clipPath(clipBoxPath, true); - } + FT_Face face, + uint16_t glyphId, + FT_Color_Root_Transform rootTransform, + VisitedSet* activePaints) { + FT_OpaquePaint opaquePaint{nullptr, 1}; + if (!FT_Get_Color_Glyph_Paint(face, glyphId, rootTransform, &opaquePaint)) { + return false; + } - colrv1_traverse_paint(canvas, palette, foregroundColor, - ft_face, opaque_paint, visited_set); + bool untransformed = rootTransform == FT_COLOR_NO_ROOT_TRANSFORM; + SkPath clipBoxPath = GetClipBoxPath(face, glyphId, untransformed); + if (!clipBoxPath.isEmpty()) { + canvas->clipPath(clipBoxPath, true); } - return has_colrv1_layers; + + if (!colrv1_traverse_paint(canvas, palette, foregroundColor, + face, opaquePaint, activePaints)) { + return false; + } + + return true; } bool colrv1_start_glyph_bounds(SkMatrix *ctm, SkRect* bounds, - FT_Face ft_face, - uint16_t glyph_id, - FT_Color_Root_Transform root_transform, - VisitedSet* visited_set); + FT_Face face, + uint16_t glyphId, + FT_Color_Root_Transform rootTransform, + VisitedSet* activePaints); bool colrv1_traverse_paint_bounds(SkMatrix* ctm, SkRect* bounds, FT_Face face, - FT_OpaquePaint opaque_paint, - VisitedSet* visited_set) { + FT_OpaquePaint opaquePaint, + VisitedSet* activePaints) { // Cycle detection, see section "5.7.11.1.9 Color glyphs as a directed acyclic graph". - if (visited_set->contains(opaque_paint)) { + if (activePaints->contains(opaquePaint)) { return false; } - visited_set->add(opaque_paint); - SK_AT_SCOPE_EXIT(visited_set->remove(opaque_paint)); + activePaints->add(opaquePaint); + SK_AT_SCOPE_EXIT(activePaints->remove(opaquePaint)); FT_COLR_Paint paint; - if (!FT_Get_Paint(face, opaque_paint, &paint)) { - return false; + if (!FT_Get_Paint(face, opaquePaint, &paint)) { + return false; } - // Keep track of failures to retrieve the FT_COLR_Paint from FreeType in the - // recursion, cancel recursion when a paint retrieval fails. - bool traverse_result = true; - SkMatrix restore_matrix = *ctm; - SK_AT_SCOPE_EXIT(*ctm = restore_matrix); + SkMatrix restoreMatrix = *ctm; + SK_AT_SCOPE_EXIT(*ctm = restoreMatrix); switch (paint.format) { case FT_COLR_PAINTFORMAT_COLR_LAYERS: { - FT_LayerIterator& layer_iterator = paint.u.colr_layers.layer_iterator; - FT_OpaquePaint opaque_paint_fetch; - opaque_paint_fetch.p = nullptr; - while (FT_Get_Paint_Layers(face, &layer_iterator, &opaque_paint_fetch)) { - colrv1_traverse_paint_bounds(ctm, bounds, face, opaque_paint_fetch, visited_set); + FT_LayerIterator& layerIterator = paint.u.colr_layers.layer_iterator; + FT_OpaquePaint layerPaint{nullptr, 1}; + while (FT_Get_Paint_Layers(face, &layerIterator, &layerPaint)) { + if (!colrv1_traverse_paint_bounds(ctm, bounds, face, layerPaint, activePaints)) { + return false; + } } - break; + return true; } case FT_COLR_PAINTFORMAT_GLYPH: { FT_UInt glyphID = paint.u.glyph.glyphID; SkPath path; - if ((traverse_result = generateFacePathCOLRv1(face, glyphID, &path))) { - path.transform(*ctm); - bounds->join(path.getBounds()); + if (!generateFacePathCOLRv1(face, glyphID, &path)) { + return false; } - break; + path.transform(*ctm); + bounds->join(path.getBounds()); + return true; + } + case FT_COLR_PAINTFORMAT_COLR_GLYPH: { + FT_UInt glyphID = paint.u.colr_glyph.glyphID; + return colrv1_start_glyph_bounds(ctm, bounds, face, glyphID, FT_COLOR_NO_ROOT_TRANSFORM, + activePaints); } - case FT_COLR_PAINTFORMAT_COLR_GLYPH: - traverse_result = colrv1_start_glyph_bounds(ctm, bounds, face, - paint.u.colr_glyph.glyphID, - FT_COLOR_NO_ROOT_TRANSFORM, - visited_set); - break; - case FT_COLR_PAINTFORMAT_TRANSFORM: { - SkMatrix transform_matrix; - colrv1_transform(face, paint, nullptr, &transform_matrix); - ctm->preConcat(transform_matrix); - traverse_result = colrv1_traverse_paint_bounds( - ctm, bounds, face, paint.u.transform.paint, visited_set); - break; + SkMatrix transformMatrix; + colrv1_transform(face, paint, nullptr, &transformMatrix); + ctm->preConcat(transformMatrix); + FT_OpaquePaint& transformPaint = paint.u.transform.paint; + return colrv1_traverse_paint_bounds(ctm, bounds, face, transformPaint, activePaints); } case FT_COLR_PAINTFORMAT_TRANSLATE: { - SkMatrix transform_matrix; - colrv1_transform(face, paint, nullptr, &transform_matrix); - ctm->preConcat(transform_matrix); - traverse_result = colrv1_traverse_paint_bounds( - ctm, bounds, face, paint.u.translate.paint, visited_set); - break; + SkMatrix transformMatrix; + colrv1_transform(face, paint, nullptr, &transformMatrix); + ctm->preConcat(transformMatrix); + FT_OpaquePaint& translatePaint = paint.u.translate.paint; + return colrv1_traverse_paint_bounds(ctm, bounds, face, translatePaint, activePaints); } case FT_COLR_PAINTFORMAT_SCALE: { - SkMatrix transform_matrix; - colrv1_transform(face, paint, nullptr, &transform_matrix); - ctm->preConcat(transform_matrix); - traverse_result = colrv1_traverse_paint_bounds( - ctm, bounds, face, paint.u.scale.paint, visited_set); - break; + SkMatrix transformMatrix; + colrv1_transform(face, paint, nullptr, &transformMatrix); + ctm->preConcat(transformMatrix); + FT_OpaquePaint& scalePaint = paint.u.scale.paint; + return colrv1_traverse_paint_bounds(ctm, bounds, face, scalePaint, activePaints); } case FT_COLR_PAINTFORMAT_ROTATE: { - SkMatrix transform_matrix; - colrv1_transform(face, paint, nullptr, &transform_matrix); - ctm->preConcat(transform_matrix); - traverse_result = colrv1_traverse_paint_bounds( - ctm, bounds, face, paint.u.rotate.paint, visited_set); - break; + SkMatrix transformMatrix; + colrv1_transform(face, paint, nullptr, &transformMatrix); + ctm->preConcat(transformMatrix); + FT_OpaquePaint& rotatePaint = paint.u.rotate.paint; + return colrv1_traverse_paint_bounds(ctm, bounds, face, rotatePaint, activePaints); } case FT_COLR_PAINTFORMAT_SKEW: { - SkMatrix transform_matrix; - colrv1_transform(face, paint, nullptr, &transform_matrix); - ctm->preConcat(transform_matrix); - traverse_result = colrv1_traverse_paint_bounds( - ctm, bounds, face, paint.u.skew.paint, visited_set); - break; + SkMatrix transformMatrix; + colrv1_transform(face, paint, nullptr, &transformMatrix); + ctm->preConcat(transformMatrix); + FT_OpaquePaint& skewPaint = paint.u.skew.paint; + return colrv1_traverse_paint_bounds(ctm, bounds, face, skewPaint, activePaints); } case FT_COLR_PAINTFORMAT_COMPOSITE: { - traverse_result = colrv1_traverse_paint_bounds( - ctm, bounds, face, paint.u.composite.backdrop_paint, visited_set); - traverse_result = colrv1_traverse_paint_bounds( - ctm, bounds, face, paint.u.composite.source_paint, visited_set); - break; + FT_OpaquePaint& backdropPaint = paint.u.composite.backdrop_paint; + FT_OpaquePaint& sourcePaint = paint.u.composite. source_paint; + return colrv1_traverse_paint_bounds(ctm, bounds, face, backdropPaint, activePaints) && + colrv1_traverse_paint_bounds(ctm, bounds, face, sourcePaint, activePaints); } case FT_COLR_PAINTFORMAT_SOLID: case FT_COLR_PAINTFORMAT_LINEAR_GRADIENT: case FT_COLR_PAINTFORMAT_RADIAL_GRADIENT: case FT_COLR_PAINTFORMAT_SWEEP_GRADIENT: { - break; + return true; } default: SkASSERT(false); - break; -} - return traverse_result; + return false; + } + SkUNREACHABLE; } bool colrv1_start_glyph_bounds(SkMatrix *ctm, SkRect* bounds, - FT_Face ft_face, - uint16_t glyph_id, - FT_Color_Root_Transform root_transform, - VisitedSet* visited_set) { - FT_OpaquePaint opaque_paint; - opaque_paint.p = nullptr; - bool has_colrv1_layers = false; - if (FT_Get_Color_Glyph_Paint(ft_face, glyph_id, root_transform, &opaque_paint)) { - has_colrv1_layers = true; - colrv1_traverse_paint_bounds(ctm, bounds, ft_face, opaque_paint, visited_set); - } - return has_colrv1_layers; + FT_Face face, + uint16_t glyphId, + FT_Color_Root_Transform rootTransform, + VisitedSet* activePaints) { + FT_OpaquePaint opaquePaint{nullptr, 1}; + return FT_Get_Color_Glyph_Paint(face, glyphId, rootTransform, &opaquePaint) && + colrv1_traverse_paint_bounds(ctm, bounds, face, opaquePaint, activePaints); } #endif // TT_SUPPORT_COLRV1 } // namespace -#ifdef FT_COLOR_H -bool SkScalerContext_FreeType_Base::drawColorGlyph(FT_Face face, - const SkGlyph& glyph, - uint32_t loadGlyphFlags, - SkSpan palette, - SkCanvas* canvas) { - SkPaint paint; - paint.setAntiAlias(true); - // Only attempt to draw a COLRv1 glyph if FreeType is new enough to have the COLRv1 support. #ifdef TT_SUPPORT_COLRV1 - VisitedSet visited_set; - if (colrv1_start_glyph(canvas, palette, - fRec.fForegroundColor, - face, glyph.getGlyphID(), - FT_COLOR_INCLUDE_ROOT_TRANSFORM, - &visited_set)) - { - return true; +bool SkScalerContext_FreeType_Base::drawCOLRv1Glyph(FT_Face face, + const SkGlyph& glyph, + uint32_t loadGlyphFlags, + SkSpan palette, + SkCanvas* canvas) { + if (this->isSubpixel()) { + canvas->translate(SkFixedToScalar(glyph.getSubXFixed()), + SkFixedToScalar(glyph.getSubYFixed())); } + + VisitedSet activePaints; + bool haveLayers = colrv1_start_glyph(canvas, palette, + fRec.fForegroundColor, + face, glyph.getGlyphID(), + FT_COLOR_INCLUDE_ROOT_TRANSFORM, + &activePaints); + SkASSERTF(haveLayers, "Could not get COLRv1 layers from '%s'.", face->family_name); + return haveLayers; +} #endif // TT_SUPPORT_COLRV1 - // If we didn't have colr v1 layers, try v0 layers. +#ifdef FT_COLOR_H +bool SkScalerContext_FreeType_Base::drawCOLRv0Glyph(FT_Face face, + const SkGlyph& glyph, + uint32_t loadGlyphFlags, + SkSpan palette, + SkCanvas* canvas) { + if (this->isSubpixel()) { + canvas->translate(SkFixedToScalar(glyph.getSubXFixed()), + SkFixedToScalar(glyph.getSubYFixed())); + } + bool haveLayers = false; FT_LayerIterator layerIterator; layerIterator.p = nullptr; FT_UInt layerGlyphIndex = 0; FT_UInt layerColorIndex = 0; + SkPaint paint; + paint.setAntiAlias(!(loadGlyphFlags & FT_LOAD_TARGET_MONO)); while (FT_Get_Color_Glyph_Layer(face, glyph.getGlyphID(), &layerGlyphIndex, &layerColorIndex, &layerIterator)) { haveLayers = true; @@ -1278,19 +1317,15 @@ bool SkScalerContext_FreeType_Base::drawColorGlyph(FT_Face face, canvas->drawPath(path, paint); } } + SkASSERTF(haveLayers, "Could not get COLRv0 layers from '%s'.", face->family_name); return haveLayers; } #endif // FT_COLOR_H void SkScalerContext_FreeType_Base::generateGlyphImage(FT_Face face, const SkGlyph& glyph, - uint32_t loadGlyphFlags, - SkSpan customPalette, const SkMatrix& bitmapTransform) { - const bool doBGR = SkToBool(fRec.fFlags & SkScalerContext::kLCD_BGROrder_Flag); - const bool doVert = SkToBool(fRec.fFlags & SkScalerContext::kLCD_Vertical_Flag); - switch ( face->glyph->format ) { case FT_GLYPH_FORMAT_OUTLINE: { FT_Outline* outline = &face->glyph->outline; @@ -1305,41 +1340,10 @@ void SkScalerContext_FreeType_Base::generateGlyphImage(FT_Face face, memset(glyph.fImage, 0, glyph.rowBytes() * glyph.fHeight); -#ifdef FT_COLOR_H - if (SkMask::kARGB32_Format == glyph.fMaskFormat) { - SkBitmap dstBitmap; - // TODO: mark this as sRGB when the blits will be sRGB. - dstBitmap.setInfo(SkImageInfo::Make(glyph.fWidth, glyph.fHeight, - kN32_SkColorType, - kPremul_SkAlphaType), - glyph.rowBytes()); - dstBitmap.setPixels(glyph.fImage); - - // Scale unscaledBitmap into dstBitmap. - SkCanvas canvas(dstBitmap); -#ifdef SK_SHOW_TEXT_BLIT_COVERAGE - canvas.clear(0x33FF0000); -#else - canvas.clear(SK_ColorTRANSPARENT); -#endif - canvas.translate(-glyph.fLeft, -glyph.fTop); - - if (this->isSubpixel()) { - canvas.translate(SkFixedToScalar(glyph.getSubXFixed()), - SkFixedToScalar(glyph.getSubYFixed())); - } - - bool haveLayers = this->drawColorGlyph(face, glyph, loadGlyphFlags, - customPalette, &canvas); - - if (!haveLayers) { - SkDebugf("Could not get layers (neither v0, nor v1) from %s fontFace.", - face->family_name); - return; - } - } else -#endif if (SkMask::kLCD16_Format == glyph.fMaskFormat) { + const bool doBGR = SkToBool(fRec.fFlags & SkScalerContext::kLCD_BGROrder_Flag); + const bool doVert = SkToBool(fRec.fFlags & SkScalerContext::kLCD_Vertical_Flag); + FT_Outline_Translate(outline, dx, dy); FT_Error err = FT_Render_Glyph(face->glyph, doVert ? FT_RENDER_MODE_LCD_V : FT_RENDER_MODE_LCD); @@ -1349,9 +1353,9 @@ void SkScalerContext_FreeType_Base::generateGlyphImage(FT_Face face, } SkMask mask = glyph.mask(); -#ifdef SK_SHOW_TEXT_BLIT_COVERAGE - memset(mask.fImage, 0x80, mask.fBounds.height() * mask.fRowBytes); -#endif + if constexpr (kSkShowTextBlitCoverage) { + memset(mask.fImage, 0x80, mask.fBounds.height() * mask.fRowBytes); + } FT_GlyphSlotRec& ftGlyph = *face->glyph; if (!SkIRect::Intersects(mask.fBounds, @@ -1434,14 +1438,23 @@ void SkScalerContext_FreeType_Base::generateGlyphImage(FT_Face face, target.num_grays = 256; FT_Outline_Get_Bitmap(face->glyph->library, outline, &target); -#ifdef SK_SHOW_TEXT_BLIT_COVERAGE - for (int y = 0; y < glyph.fHeight; ++y) { - for (int x = 0; x < glyph.fWidth; ++x) { - uint8_t& a = ((uint8_t*)glyph.fImage)[(glyph.rowBytes() * y) + x]; - a = std::max(a, 0x20); + if constexpr (kSkShowTextBlitCoverage) { + if (glyph.fMaskFormat == SkMask::kBW_Format) { + for (unsigned y = 0; y < target.rows; y += 2) { + for (unsigned x = (y & 0x2); x < target.width; x+=4) { + uint8_t& b = target.buffer[(target.pitch * y) + (x >> 3)]; + b = b ^ (1 << (0x7 - (x & 0x7))); + } + } + } else { + for (unsigned y = 0; y < target.rows; ++y) { + for (unsigned x = 0; x < target.width; ++x) { + uint8_t& a = target.buffer[(target.pitch * y) + x]; + a = std::max(a, 0x20); + } + } } } -#endif } } break; @@ -1506,11 +1519,11 @@ void SkScalerContext_FreeType_Base::generateGlyphImage(FT_Face face, // Scale unscaledBitmap into dstBitmap. SkCanvas canvas(dstBitmap); -#ifdef SK_SHOW_TEXT_BLIT_COVERAGE - canvas.clear(0x33FF0000); -#else - canvas.clear(SK_ColorTRANSPARENT); -#endif + if constexpr (kSkShowTextBlitCoverage) { + canvas.clear(0x33FF0000); + } else { + canvas.clear(SK_ColorTRANSPARENT); + } canvas.translate(-glyph.fLeft, -glyph.fTop); canvas.concat(bitmapTransform); canvas.translate(face->glyph->bitmap_left, -face->glyph->bitmap_top); @@ -1649,9 +1662,6 @@ bool generateGlyphPathStatic(FT_Face face, SkPath* path) { } bool generateFacePathStatic(FT_Face face, SkGlyphID glyphID, uint32_t loadGlyphFlags, SkPath* path){ -#ifdef SK_IGNORE_FREETYPE_COLRV0_LOAD_FLAGS_FIX - loadGlyphFlags = 0; -#endif loadGlyphFlags |= FT_LOAD_NO_BITMAP; // ignore embedded bitmaps so we're sure to get the outline loadGlyphFlags &= ~FT_LOAD_RENDER; // don't scan convert (we just want the outline) @@ -1695,7 +1705,7 @@ bool generateFacePathCOLRv1(FT_Face face, SkGlyphID glyphID, SkPath* path) { FT_Size oldSize = face->size; - auto try_generate_path = [face, &unscaledFtSize, glyphID, flags, path]() { + auto tryGeneratePath = [face, &unscaledFtSize, glyphID, flags, path]() { FT_Error err = 0; err = FT_Activate_Size(unscaledFtSize.get()); @@ -1704,7 +1714,7 @@ bool generateFacePathCOLRv1(FT_Face face, SkGlyphID glyphID, SkPath* path) { } err = FT_Set_Char_Size(face, SkIntToFDot6(face->units_per_EM), - SkIntToFDot6(face->units_per_EM), 72, 72); + SkIntToFDot6(face->units_per_EM), 72, 72); if (err != 0) { return false; } @@ -1723,18 +1733,24 @@ bool generateFacePathCOLRv1(FT_Face face, SkGlyphID glyphID, SkPath* path) { return true; }; - bool path_generation_result = try_generate_path(); + bool pathGenerationResult = tryGeneratePath(); FT_Activate_Size(oldSize); - return path_generation_result; + return pathGenerationResult; } #endif } // namespace bool SkScalerContext_FreeType_Base::generateGlyphPath(FT_Face face, SkPath* path) { - return generateGlyphPathStatic(face, path); + if (!generateGlyphPathStatic(face, path)) { + return false; + } + if (face->glyph->outline.flags & FT_OUTLINE_OVERLAP) { + Simplify(*path, path); + } + return true; } bool SkScalerContext_FreeType_Base::generateFacePath(FT_Face face, @@ -1750,9 +1766,9 @@ bool SkScalerContext_FreeType_Base::computeColrV1GlyphBoundingBox(FT_Face face, #ifdef TT_SUPPORT_COLRV1 SkMatrix ctm; SkRect bounds = SkRect::MakeEmpty(); - VisitedSet visited_set; + VisitedSet activePaints; if (!colrv1_start_glyph_bounds(&ctm, &bounds, face, glyphID, - FT_COLOR_INCLUDE_ROOT_TRANSFORM, &visited_set)) { + FT_COLOR_INCLUDE_ROOT_TRANSFORM, &activePaints)) { return false; } @@ -1769,18 +1785,3 @@ bool SkScalerContext_FreeType_Base::computeColrV1GlyphBoundingBox(FT_Face face, return false; #endif } - -sk_sp SkScalerContext_FreeType_Base::generateGlyphDrawable( - FT_Face face, const SkGlyph& glyph, uint32_t loadGlyphFlags, SkSpan palette) { -#ifdef FT_COLOR_H - if (face->glyph->format == FT_GLYPH_FORMAT_OUTLINE && glyph.isColor()) { - SkPictureRecorder recorder; - SkCanvas* recordingCanvas = recorder.beginRecording(SkRect::Make(glyph.mask().fBounds)); - if (!this->drawColorGlyph(face, glyph, loadGlyphFlags, palette, recordingCanvas)) { - return nullptr; - } - return recorder.finishRecordingAsDrawable(); - } -#endif // FT_COLOR_H - return nullptr; -} diff --git a/third_party/skia/src/ports/SkFontHost_FreeType_common.h b/third_party/skia/src/ports/SkFontHost_FreeType_common.h index ed4869c3edd7..979367d060a8 100644 --- a/third_party/skia/src/ports/SkFontHost_FreeType_common.h +++ b/third_party/skia/src/ports/SkFontHost_FreeType_common.h @@ -11,6 +11,7 @@ #include "include/core/SkTypeface.h" #include "include/core/SkTypes.h" +#include "include/private/SkMutex.h" #include "src/core/SkGlyph.h" #include "src/core/SkScalerContext.h" #include "src/core/SkSharedMutex.h" @@ -47,14 +48,13 @@ class SkScalerContext_FreeType_Base : public SkScalerContext { : INHERITED(std::move(typeface), effects, desc) {} - bool drawColorGlyph(FT_Face, const SkGlyph&, uint32_t loadGlyphFlags, - SkSpan palette, SkCanvas*); - void generateGlyphImage(FT_Face, const SkGlyph&, uint32_t loadGlyphFlags, - SkSpan palette, const SkMatrix& bitmapTransform); + bool drawCOLRv0Glyph(FT_Face, const SkGlyph&, uint32_t loadGlyphFlags, + SkSpan palette, SkCanvas*); + bool drawCOLRv1Glyph(FT_Face, const SkGlyph&, uint32_t loadGlyphFlags, + SkSpan palette, SkCanvas*); + void generateGlyphImage(FT_Face, const SkGlyph&, const SkMatrix& bitmapTransform); bool generateGlyphPath(FT_Face, SkPath*); bool generateFacePath(FT_Face, SkGlyphID, uint32_t loadGlyphFlags, SkPath*); - sk_sp generateGlyphDrawable(FT_Face, const SkGlyph&, uint32_t loadGlyphFlags, - SkSpan palette); // Computes a bounding box for a COLRv1 glyph id in FT_BBox 26.6 format and FreeType's y-up // coordinate space. @@ -65,6 +65,10 @@ class SkScalerContext_FreeType_Base : public SkScalerContext { // state of FT_Face. bool computeColrV1GlyphBoundingBox(FT_Face face, SkGlyphID glyphID, FT_BBox* boundingBox); + struct ScalerContextBits { + static const constexpr uint32_t COLRv0 = 1; + static const constexpr uint32_t COLRv1 = 2; + }; private: using INHERITED = SkScalerContext; }; diff --git a/third_party/skia/src/ports/SkFontHost_win.cpp b/third_party/skia/src/ports/SkFontHost_win.cpp index f322723a1623..8e097ca42e3a 100644 --- a/third_party/skia/src/ports/SkFontHost_win.cpp +++ b/third_party/skia/src/ports/SkFontHost_win.cpp @@ -41,6 +41,10 @@ #include #include +namespace { +static inline const constexpr bool kSkShowTextBlitCoverage = false; +} + static void (*gEnsureLOGFONTAccessibleProc)(const LOGFONT&); void SkTypeface_SetEnsureLOGFONTAccessibleProc(void (*proc)(const LOGFONT&)) { @@ -653,8 +657,8 @@ SkScalerContext_GDI::SkScalerContext_GDI(sk_sp rawTypeface, // When not hinting, remove only the integer Y scale from sA and GsA. (Applied by GDI.) SkScalerContextRec::PreMatrixScale scaleConstraints = (fRec.getHinting() == SkFontHinting::kNone || fRec.getHinting() == SkFontHinting::kSlight) - ? SkScalerContextRec::kVerticalInteger_PreMatrixScale - : SkScalerContextRec::kVertical_PreMatrixScale; + ? SkScalerContextRec::PreMatrixScale::kVerticalInteger + : SkScalerContextRec::PreMatrixScale::kVertical; SkVector scale; SkMatrix sA; SkMatrix GsA; @@ -982,8 +986,6 @@ void SkScalerContext_GDI::generateFontMetrics(SkFontMetrics* metrics) { //////////////////////////////////////////////////////////////////////////////////////// -#define SK_SHOW_TEXT_BLIT_COVERAGE 0 - static void build_power_table(uint8_t table[], float ee) { for (int i = 0; i < 256; i++) { float x = i / 255.f; @@ -1052,9 +1054,11 @@ static inline uint16_t rgb_to_lcd16(SkGdiRGB rgb, const uint8_t* tableR, U8CPU r = sk_apply_lut_if((rgb >> 16) & 0xFF, tableR); U8CPU g = sk_apply_lut_if((rgb >> 8) & 0xFF, tableG); U8CPU b = sk_apply_lut_if((rgb >> 0) & 0xFF, tableB); -#if SK_SHOW_TEXT_BLIT_COVERAGE - r = std::max(r, 10); g = std::max(g, 10); b = std::max(b, 10); -#endif + if constexpr (kSkShowTextBlitCoverage) { + r = std::max(r, 10u); + g = std::max(g, 10u); + b = std::max(b, 10u); + } return SkPack888ToRGB16(r, g, b); } @@ -1068,9 +1072,9 @@ void SkScalerContext_GDI::RGBToA8(const SkGdiRGB* SK_RESTRICT src, size_t srcRB, for (int y = 0; y < glyph.fHeight; y++) { for (int i = 0; i < width; i++) { dst[i] = rgb_to_a8(src[i], table8); -#if SK_SHOW_TEXT_BLIT_COVERAGE - dst[i] = std::max(dst[i], 10); -#endif + if constexpr (kSkShowTextBlitCoverage) { + dst[i] = std::max(dst[i], 10u); + } } src = SkTAddOffset(src, srcRB); dst -= dstRB; @@ -1146,7 +1150,7 @@ void SkScalerContext_GDI::generateImage(const SkGlyph& glyph) { src += srcRB; dst -= dstRB; } -#if SK_SHOW_TEXT_BLIT_COVERAGE + if constexpr (kSkShowTextBlitCoverage) { if (glyph.width() > 0 && glyph.fHeight > 0) { int bitCount = glyph.width() & 7; uint8_t* first = (uint8_t*)glyph.fImage; @@ -1154,7 +1158,7 @@ void SkScalerContext_GDI::generateImage(const SkGlyph& glyph) { *first |= 1 << 7; *last |= bitCount == 0 ? 1 : 1 << (8 - bitCount); } -#endif + } } else if (isAA) { // since the caller may require A8 for maskfilters, we can't check for BW // ... until we have the caller tell us that explicitly diff --git a/third_party/skia/src/ports/SkFontMgr_mac_ct.cpp b/third_party/skia/src/ports/SkFontMgr_mac_ct.cpp index 23efa6e6b136..f5af81e36cbe 100644 --- a/third_party/skia/src/ports/SkFontMgr_mac_ct.cpp +++ b/third_party/skia/src/ports/SkFontMgr_mac_ct.cpp @@ -563,7 +563,8 @@ class SkFontMgr_Mac : public SkFontMgr { return nullptr; } - CTFontVariation ctVariation = SkCTVariationFromSkFontArguments(ct.get(), args); + SkUniqueCFRef axes(CTFontCopyVariationAxes(ct.get())); + CTFontVariation ctVariation = SkCTVariationFromSkFontArguments(ct.get(), axes.get(), args); SkUniqueCFRef ctVariant; if (ctVariation.variation) { diff --git a/third_party/skia/src/ports/SkFontMgr_win_dw.cpp b/third_party/skia/src/ports/SkFontMgr_win_dw.cpp index 58fc6e7378f6..47b5e7f8e112 100644 --- a/third_party/skia/src/ports/SkFontMgr_win_dw.cpp +++ b/third_party/skia/src/ports/SkFontMgr_win_dw.cpp @@ -531,7 +531,8 @@ sk_sp SkFontMgr_DirectWrite::makeTypefaceFromDWriteFont( ProtoDWriteTypeface spec = { fontFace, font, fontFamily }; sk_sp face = fTFCache.findByProcAndRef(FindByDWriteFont, &spec); if (nullptr == face) { - face = DWriteFontTypeface::Make(fFactory.get(), fontFace, font, fontFamily, nullptr); + face = DWriteFontTypeface::Make(fFactory.get(), fontFace, font, fontFamily, nullptr, + SkFontArguments::Palette{0, nullptr, 0}); if (face) { fTFCache.add(face); } @@ -1113,7 +1114,8 @@ sk_sp SkFontMgr_DirectWrite::onMakeFromStreamArgs(std::unique_ptr( fFactory.get(), autoUnregisterFontFileLoader.detatch(), - autoUnregisterFontCollectionLoader.detatch())); + autoUnregisterFontCollectionLoader.detatch()), + args.getPalette()); } } diff --git a/third_party/skia/src/ports/SkScalerContext_mac_ct.cpp b/third_party/skia/src/ports/SkScalerContext_mac_ct.cpp index 5a24bf479ecc..bba1840a552e 100644 --- a/third_party/skia/src/ports/SkScalerContext_mac_ct.cpp +++ b/third_party/skia/src/ports/SkScalerContext_mac_ct.cpp @@ -54,8 +54,9 @@ class SkDescriptor; -// Set to make glyph bounding boxes visible. -#define SK_SHOW_TEXT_BLIT_COVERAGE 0 +namespace { +static inline const constexpr bool kSkShowTextBlitCoverage = false; +} static void sk_memset_rect32(uint32_t* ptr, uint32_t value, int width, int height, size_t rowBytes) { @@ -128,7 +129,7 @@ SkScalerContext_Mac::SkScalerContext_Mac(sk_sp typeface, // As a result, it is necessary to know the actual device size and request that. SkVector scale; SkMatrix skTransform; - bool invertible = fRec.computeMatrices(SkScalerContextRec::kVertical_PreMatrixScale, + bool invertible = fRec.computeMatrices(SkScalerContextRec::PreMatrixScale::kVertical, &scale, &skTransform, nullptr, nullptr, nullptr); fTransform = MatrixToCGAffineTransform(skTransform); // CGAffineTransformInvert documents that if the transform is non-invertible it will return the @@ -409,9 +410,9 @@ static inline uint8_t rgb_to_a8(CGRGBPixel rgb, const uint8_t* table8) { U8CPU g = 0xFF - ((rgb >> 8) & 0xFF); U8CPU b = 0xFF - ((rgb >> 0) & 0xFF); U8CPU lum = sk_apply_lut_if(SkComputeLuminance(r, g, b), table8); -#if SK_SHOW_TEXT_BLIT_COVERAGE - lum = std::max(lum, (U8CPU)0x30); -#endif + if constexpr (kSkShowTextBlitCoverage) { + lum = std::max(lum, (U8CPU)0x30); + } return lum; } @@ -438,11 +439,11 @@ static uint16_t RGBToLcd16(CGRGBPixel rgb, U8CPU r = sk_apply_lut_if(0xFF - ((rgb >> 16) & 0xFF), tableR); U8CPU g = sk_apply_lut_if(0xFF - ((rgb >> 8) & 0xFF), tableG); U8CPU b = sk_apply_lut_if(0xFF - ((rgb >> 0) & 0xFF), tableB); -#if SK_SHOW_TEXT_BLIT_COVERAGE - r = std::max(r, (U8CPU)0x30); - g = std::max(g, (U8CPU)0x30); - b = std::max(b, (U8CPU)0x30); -#endif + if constexpr (kSkShowTextBlitCoverage) { + r = std::max(r, (U8CPU)0x30); + g = std::max(g, (U8CPU)0x30); + b = std::max(b, (U8CPU)0x30); + } return SkPack888ToRGB16(r, g, b); } @@ -469,9 +470,9 @@ static SkPMColor cgpixels_to_pmcolor(CGRGBPixel rgb) { U8CPU r = (rgb >> 16) & 0xFF; U8CPU g = (rgb >> 8) & 0xFF; U8CPU b = (rgb >> 0) & 0xFF; -#if SK_SHOW_TEXT_BLIT_COVERAGE - a = std::max(a, (U8CPU)0x30); -#endif + if constexpr (kSkShowTextBlitCoverage) { + a = std::max(a, (U8CPU)0x30); + } return SkPackARGB32(a, r, g, b); } @@ -659,10 +660,10 @@ bool SkScalerContext_Mac::generatePath(const SkGlyph& glyph, SkPath* path) { scaleX = scaleY = kScaleForSubPixelPositionHinting; // now see if we need to restore hinting for axis-aligned baselines switch (this->computeAxisAlignmentForHText()) { - case kX_SkAxisAlignment: + case SkAxisAlignment::kX: scaleY = SK_Scalar1; // want hinting in the Y direction break; - case kY_SkAxisAlignment: + case SkAxisAlignment::kY: scaleX = SK_Scalar1; // want hinting in the X direction break; default: @@ -718,8 +719,8 @@ void SkScalerContext_Mac::generateFontMetrics(SkFontMetrics* metrics) { metrics->fFlags |= SkFontMetrics::kUnderlineThicknessIsValid_Flag; metrics->fFlags |= SkFontMetrics::kUnderlinePositionIsValid_Flag; - SkUniqueCFRef ctAxes(CTFontCopyVariationAxes(fCTFont.get())); - if (ctAxes && CFArrayGetCount(ctAxes.get()) > 0) { + CFArrayRef ctAxes = ((SkTypeface_Mac*)this->getTypeface())->getVariationAxes(); + if (ctAxes && CFArrayGetCount(ctAxes) > 0) { // The bounds are only valid for the default variation. metrics->fFlags |= SkFontMetrics::kBoundsInvalid_Flag; } diff --git a/third_party/skia/src/ports/SkScalerContext_win_dw.cpp b/third_party/skia/src/ports/SkScalerContext_win_dw.cpp index c3637833dc51..f1bf2e947fc3 100644 --- a/third_party/skia/src/ports/SkScalerContext_win_dw.cpp +++ b/third_party/skia/src/ports/SkScalerContext_win_dw.cpp @@ -13,6 +13,7 @@ #include "include/codec/SkCodec.h" #include "include/core/SkBitmap.h" +#include "include/core/SkData.h" #include "include/core/SkDrawable.h" #include "include/core/SkFontMetrics.h" #include "include/core/SkPath.h" @@ -43,6 +44,7 @@ #include namespace { +static inline const constexpr bool kSkShowTextBlitCoverage = false; /* Note: * In versions 8 and 8.1 of Windows, some calls in DWrite are not thread safe. @@ -281,7 +283,7 @@ SkScalerContext_DW::SkScalerContext_DW(sk_sp typefaceRef, // horizontal glyphs and the subpixel flag should not affect glyph shapes. SkVector scale; - fRec.computeMatrices(SkScalerContextRec::kVertical_PreMatrixScale, &scale, &fSkXform); + fRec.computeMatrices(SkScalerContextRec::PreMatrixScale::kVertical, &scale, &fSkXform); fXform.m11 = SkScalarToFloat(fSkXform.getScaleX()); fXform.m12 = SkScalarToFloat(fSkXform.getSkewY()); @@ -775,7 +777,7 @@ void SkScalerContext_DW::generateMetrics(SkGlyph* glyph, SkArenaAlloc* alloc) { &bbox), "Fallback bounding box could not be determined."); if (glyphCheckAndSetBounds(glyph, bbox)) { - glyph->fForceBW = 1; + glyph->fScalerContextBits |= ScalerContextBits::ForceBW; glyph->fMaskFormat = SkMask::kBW_Format; } } @@ -1067,21 +1069,22 @@ void SkScalerContext_DW::drawColorGlyphImage(const SkGlyph& glyph, SkCanvas& can } canvas.concat(fSkXform); + DWriteFontTypeface* typeface = this->getDWriteTypeface(); + size_t paletteEntryCount = typeface->fPaletteEntryCount; + SkColor* palette = typeface->fPalette.get(); BOOL hasNextRun = FALSE; while (SUCCEEDED(colorLayers->MoveNext(&hasNextRun)) && hasNextRun) { const DWRITE_COLOR_GLYPH_RUN* colorGlyph; HRVM(colorLayers->GetCurrentRun(&colorGlyph), "Could not get current color glyph run"); SkColor color; - if (colorGlyph->paletteIndex != 0xffff) { - color = SkColorSetARGB(sk_float_round2int(colorGlyph->runColor.a * 255), - sk_float_round2int(colorGlyph->runColor.r * 255), - sk_float_round2int(colorGlyph->runColor.g * 255), - sk_float_round2int(colorGlyph->runColor.b * 255)); - } else { - // If all components of runColor are 0 or (equivalently) paletteIndex is 0xFFFF then - // the 'foreground color' is used. + if (colorGlyph->paletteIndex == 0xffff) { color = fRec.fForegroundColor; + } else if (colorGlyph->paletteIndex < paletteEntryCount) { + color = palette[colorGlyph->paletteIndex]; + } else { + SK_TRACEHR(DWRITE_E_NOCOLOR, "Invalid palette index."); + color = SK_ColorBLACK; } paint.setColor(color); @@ -1117,11 +1120,11 @@ void SkScalerContext_DW::generateColorGlyphImage(const SkGlyph& glyph) { dstBitmap.setPixels(glyph.fImage); SkCanvas canvas(dstBitmap); -#ifdef SK_SHOW_TEXT_BLIT_COVERAGE - canvas.clear(0x33FF0000); -#else - canvas.clear(SK_ColorTRANSPARENT); -#endif + if constexpr (kSkShowTextBlitCoverage) { + canvas.clear(0x33FF0000); + } else { + canvas.clear(SK_ColorTRANSPARENT); + } canvas.translate(-SkIntToScalar(glyph.fLeft), -SkIntToScalar(glyph.fTop)); this->drawColorGlyphImage(glyph, canvas); @@ -1177,7 +1180,7 @@ void SkScalerContext_DW::generateImage(const SkGlyph& glyph) { //Create the mask. DWRITE_RENDERING_MODE renderingMode = fRenderingMode; DWRITE_TEXTURE_TYPE textureType = fTextureType; - if (glyph.fForceBW) { + if (glyph.fScalerContextBits & ScalerContextBits::ForceBW) { renderingMode = DWRITE_RENDERING_MODE_ALIASED; textureType = DWRITE_TEXTURE_ALIASED_1x1; } diff --git a/third_party/skia/src/ports/SkScalerContext_win_dw.h b/third_party/skia/src/ports/SkScalerContext_win_dw.h index b3dfb61442d9..7d66a2a32d43 100644 --- a/third_party/skia/src/ports/SkScalerContext_win_dw.h +++ b/third_party/skia/src/ports/SkScalerContext_win_dw.h @@ -10,6 +10,7 @@ #include "include/core/SkScalar.h" #include "include/core/SkTypes.h" +#include "include/private/SkTDArray.h" #include "src/core/SkScalerContext.h" #include "src/ports/SkTypeface_win_dw.h" @@ -35,6 +36,11 @@ class SkScalerContext_DW : public SkScalerContext { void generateFontMetrics(SkFontMetrics*) override; private: + struct ScalerContextBits { + using value_type = decltype(SkGlyph::fScalerContextBits); + static const constexpr value_type ForceBW = 1 << 0; + }; + static void BilevelToBW(const uint8_t* SK_RESTRICT src, const SkGlyph& glyph); template diff --git a/third_party/skia/src/ports/SkTypeface_mac_ct.cpp b/third_party/skia/src/ports/SkTypeface_mac_ct.cpp index fda759251571..970e131b6f5f 100644 --- a/third_party/skia/src/ports/SkTypeface_mac_ct.cpp +++ b/third_party/skia/src/ports/SkTypeface_mac_ct.cpp @@ -566,8 +566,8 @@ std::unique_ptr SkTypeface_Mac::onGetAdvancedMetrics( } } - SkUniqueCFRef ctAxes(CTFontCopyVariationAxes(ctFont.get())); - if (ctAxes && CFArrayGetCount(ctAxes.get()) > 0) { + CFArrayRef ctAxes = this->getVariationAxes(); + if (ctAxes && CFArrayGetCount(ctAxes) > 0) { info->fFlags |= SkAdvancedTypefaceMetrics::kVariable_FontFlag; } @@ -780,36 +780,28 @@ std::unique_ptr SkTypeface_Mac::onOpenExistingStream(int* ttcInde return fStream ? fStream->duplicate() : nullptr; } -static bool has_table(CTFontRef ctFont, SkFontTableTag tableTag) { - SkUniqueCFRef cfArray( - CTFontCopyAvailableTables(ctFont, kCTFontTableOptionNoOptions)); - if (!cfArray) { - return 0; - } - CFIndex count = CFArrayGetCount(cfArray.get()); - for (CFIndex i = 0; i < count; ++i) { - uintptr_t fontTag = reinterpret_cast( - CFArrayGetValueAtIndex(cfArray.get(), i)); - if (tableTag == static_cast(fontTag)) { - return true; - } - } - return false; -} bool SkTypeface_Mac::onGlyphMaskNeedsCurrentColor() const { - constexpr SkFontTableTag cpalTag = SkSetFourByteTag('C', 'P', 'A', 'L'); - // CoreText only provides the size of a table with a copy, so do not use this->getTableSize(). - return has_table(fFontRef.get(), cpalTag); + // `CPAL` (`COLR` and `SVG`) fonts may need the current color. + // However, even `sbix` fonts can have glyphs which need the current color. + // These may be glyphs with paths but no `sbix` entries, which are impossible to distinguish. + return this->fHasColorGlyphs; +} + +CFArrayRef SkTypeface_Mac::getVariationAxes() const { + fInitVariationAxes([this]{ + fVariationAxes.reset(CTFontCopyVariationAxes(fFontRef.get())); + }); + return fVariationAxes.get(); } int SkTypeface_Mac::onGetVariationDesignPosition( SkFontArguments::VariationPosition::Coordinate coordinates[], int coordinateCount) const { - SkUniqueCFRef ctAxes(CTFontCopyVariationAxes(fFontRef.get())); + CFArrayRef ctAxes = this->getVariationAxes(); if (!ctAxes) { return -1; } - CFIndex axisCount = CFArrayGetCount(ctAxes.get()); + CFIndex axisCount = CFArrayGetCount(ctAxes); if (!coordinates || coordinateCount < axisCount) { return axisCount; } @@ -822,7 +814,7 @@ int SkTypeface_Mac::onGetVariationDesignPosition( for (int i = 0; i < axisCount; ++i) { CFDictionaryRef axisInfoDict; - if (!SkCFDynamicCast(CFArrayGetValueAtIndex(ctAxes.get(), i), &axisInfoDict, "Axis")) { + if (!SkCFDynamicCast(CFArrayGetValueAtIndex(ctAxes, i), &axisInfoDict, "Axis")) { return -1; } @@ -1134,15 +1126,15 @@ int SkTypeface_Mac::onCountGlyphs() const { } /** Creates a dictionary suitable for setting the axes on a CTFont. */ -CTFontVariation SkCTVariationFromSkFontArguments(CTFontRef ct, const SkFontArguments& args) { +CTFontVariation SkCTVariationFromSkFontArguments(CTFontRef ct, CFArrayRef ctAxes, + const SkFontArguments& args) { OpszVariation opsz; constexpr const SkFourByteTag opszTag = SkSetFourByteTag('o','p','s','z'); - SkUniqueCFRef ctAxes(CTFontCopyVariationAxes(ct)); if (!ctAxes) { return CTFontVariation(); } - CFIndex axisCount = CFArrayGetCount(ctAxes.get()); + CFIndex axisCount = CFArrayGetCount(ctAxes); // On 10.12 and later, this only returns non-default variations. SkUniqueCFRef oldCtVariation(CTFontCopyVariation(ct)); @@ -1157,7 +1149,7 @@ CTFontVariation SkCTVariationFromSkFontArguments(CTFontRef ct, const SkFontArgum for (int i = 0; i < axisCount; ++i) { CFDictionaryRef axisInfoDict; - if (!SkCFDynamicCast(CFArrayGetValueAtIndex(ctAxes.get(), i), &axisInfoDict, "Axis")) { + if (!SkCFDynamicCast(CFArrayGetValueAtIndex(ctAxes, i), &axisInfoDict, "Axis")) { return CTFontVariation(); } @@ -1239,7 +1231,9 @@ CTFontVariation SkCTVariationFromSkFontArguments(CTFontRef ct, const SkFontArgum } sk_sp SkTypeface_Mac::onMakeClone(const SkFontArguments& args) const { - CTFontVariation ctVariation = SkCTVariationFromSkFontArguments(fFontRef.get(), args); + CTFontVariation ctVariation = SkCTVariationFromSkFontArguments(fFontRef.get(), + this->getVariationAxes(), + args); SkUniqueCFRef ctVariant; if (ctVariation.variation) { @@ -1288,11 +1282,11 @@ sk_sp SkTypeface_Mac::onMakeClone(const SkFontArguments& args) const int SkTypeface_Mac::onGetVariationDesignParameters(SkFontParameters::Variation::Axis parameters[], int parameterCount) const { - SkUniqueCFRef ctAxes(CTFontCopyVariationAxes(fFontRef.get())); + CFArrayRef ctAxes = this->getVariationAxes(); if (!ctAxes) { return -1; } - CFIndex axisCount = CFArrayGetCount(ctAxes.get()); + CFIndex axisCount = CFArrayGetCount(ctAxes); if (!parameters || parameterCount < axisCount) { return axisCount; @@ -1304,7 +1298,7 @@ int SkTypeface_Mac::onGetVariationDesignParameters(SkFontParameters::Variation:: for (int i = 0; i < axisCount; ++i) { CFDictionaryRef axisInfoDict; - if (!SkCFDynamicCast(CFArrayGetValueAtIndex(ctAxes.get(), i), &axisInfoDict, "Axis")) { + if (!SkCFDynamicCast(CFArrayGetValueAtIndex(ctAxes, i), &axisInfoDict, "Axis")) { return -1; } diff --git a/third_party/skia/src/ports/SkTypeface_mac_ct.h b/third_party/skia/src/ports/SkTypeface_mac_ct.h index 70cfa98c2d37..0a490e81efcb 100644 --- a/third_party/skia/src/ports/SkTypeface_mac_ct.h +++ b/third_party/skia/src/ports/SkTypeface_mac_ct.h @@ -55,7 +55,8 @@ struct CTFontVariation { OpszVariation opsz; }; -CTFontVariation SkCTVariationFromSkFontArguments(CTFontRef ct, const SkFontArguments& args); +CTFontVariation SkCTVariationFromSkFontArguments(CTFontRef ct, CFArrayRef ctAxes, + const SkFontArguments& args); SkUniqueCFRef SkCTFontCreateExactCopy(CTFontRef baseFont, CGFloat textSize, OpszVariation opsz); @@ -91,6 +92,15 @@ class SkTypeface_Mac : public SkTypeface { const OpszVariation fOpszVariation; const bool fHasColorGlyphs; + /** + * CTFontCopyVariationAxes provides the localized name of all axes, making it very slow. + * This is unfortunate, its result is needed just to see if there are any axes at all. + * To avoid calling internal APIs cache the result of CTFontCopyVariationAxes. + * https://github.com/WebKit/WebKit/commit/1842365d413ed87868e7d33d4fad1691fa3a8129 + * https://bugs.webkit.org/show_bug.cgi?id=232690 + */ + CFArrayRef getVariationAxes() const; + protected: int onGetUPEM() const override; std::unique_ptr onOpenStream(int* ttcIndex) const override; @@ -121,8 +131,10 @@ class SkTypeface_Mac : public SkTypeface { private: mutable std::unique_ptr fStream; + mutable SkUniqueCFRef fVariationAxes; bool fIsFromStream; mutable SkOnce fInitStream; + mutable SkOnce fInitVariationAxes; using INHERITED = SkTypeface; }; diff --git a/third_party/skia/src/ports/SkTypeface_win_dw.cpp b/third_party/skia/src/ports/SkTypeface_win_dw.cpp index 141a0f2effa3..64cb4fcc5d8f 100644 --- a/third_party/skia/src/ports/SkTypeface_win_dw.cpp +++ b/third_party/skia/src/ports/SkTypeface_win_dw.cpp @@ -33,6 +33,100 @@ #include "src/utils/win/SkDWrite.h" #include "src/utils/win/SkDWriteFontFileStream.h" +HRESULT DWriteFontTypeface::initializePalette() { + if (!fIsColorFont) { + return S_OK; + } + + UINT32 dwPaletteCount = fDWriteFontFace2->GetColorPaletteCount(); + if (dwPaletteCount == 0) { + return S_OK; + } + + // Treat out of range palette index values as 0. Still apply overrides. + // https://www.w3.org/TR/css-fonts-4/#base-palette-desc + UINT32 basePaletteIndex = 0; + if (SkTFitsIn(fRequestedPalette.index) && + SkTo(fRequestedPalette.index) < dwPaletteCount) + { + basePaletteIndex = fRequestedPalette.index; + } + + UINT32 dwPaletteEntryCount = fDWriteFontFace2->GetPaletteEntryCount(); + SkAutoSTMalloc<8, DWRITE_COLOR_F> dwPaletteEntry(dwPaletteEntryCount); + HRM(fDWriteFontFace2->GetPaletteEntries(basePaletteIndex, + 0, dwPaletteEntryCount, + dwPaletteEntry), + "Could not retrieve palette entries."); + + fPalette.reset(new SkColor[dwPaletteEntryCount]); + for (UINT32 i = 0; i < dwPaletteEntryCount; ++i) { + fPalette[i] = SkColorSetARGB(sk_float_round2int(dwPaletteEntry[i].a * 255), + sk_float_round2int(dwPaletteEntry[i].r * 255), + sk_float_round2int(dwPaletteEntry[i].g * 255), + sk_float_round2int(dwPaletteEntry[i].b * 255)); + } + + for (int i = 0; i < fRequestedPalette.overrideCount; ++i) { + const SkFontArguments::Palette::Override& paletteOverride = fRequestedPalette.overrides[i]; + if (SkTFitsIn(paletteOverride.index) && + SkTo(paletteOverride.index) < dwPaletteEntryCount) + { + fPalette[paletteOverride.index] = paletteOverride.color; + } + } + fPaletteEntryCount = dwPaletteEntryCount; + + return S_OK; +} + +DWriteFontTypeface::DWriteFontTypeface(const SkFontStyle& style, + IDWriteFactory* factory, + IDWriteFontFace* fontFace, + IDWriteFont* font, + IDWriteFontFamily* fontFamily, + sk_sp loaders, + const SkFontArguments::Palette& palette) + : SkTypeface(style, false) + , fFactory(SkRefComPtr(factory)) + , fDWriteFontFamily(SkRefComPtr(fontFamily)) + , fDWriteFont(SkRefComPtr(font)) + , fDWriteFontFace(SkRefComPtr(fontFace)) + , fRequestedPaletteEntryOverrides(palette.overrideCount + ? (SkFontArguments::Palette::Override*)memcpy( + new SkFontArguments::Palette::Override[palette.overrideCount], + palette.overrides, + palette.overrideCount * sizeof(palette.overrides[0])) + : nullptr) + , fRequestedPalette{palette.index, + fRequestedPaletteEntryOverrides.get(), palette.overrideCount } + , fPaletteEntryCount(0) + , fLoaders(std::move(loaders)) +{ + if (!SUCCEEDED(fDWriteFontFace->QueryInterface(&fDWriteFontFace1))) { + // IUnknown::QueryInterface states that if it fails, punk will be set to nullptr. + // http://blogs.msdn.com/b/oldnewthing/archive/2004/03/26/96777.aspx + SkASSERT_RELEASE(nullptr == fDWriteFontFace1.get()); + } + if (!SUCCEEDED(fDWriteFontFace->QueryInterface(&fDWriteFontFace2))) { + SkASSERT_RELEASE(nullptr == fDWriteFontFace2.get()); + } + if (!SUCCEEDED(fDWriteFontFace->QueryInterface(&fDWriteFontFace4))) { + SkASSERT_RELEASE(nullptr == fDWriteFontFace4.get()); + } + if (!SUCCEEDED(fFactory->QueryInterface(&fFactory2))) { + SkASSERT_RELEASE(nullptr == fFactory2.get()); + } + + if (fDWriteFontFace1 && fDWriteFontFace1->IsMonospacedFont()) { + this->setIsFixedPitch(true); + } + + fIsColorFont = fFactory2 && fDWriteFontFace2 && fDWriteFontFace2->IsColorFont(); + this->initializePalette(); +} + + DWriteFontTypeface::Loaders::~Loaders() { // Don't return if any fail, just keep going to free up as much as possible. HRESULT hr; @@ -85,6 +179,12 @@ void DWriteFontTypeface::onGetFontDescriptor(SkFontDescriptor* desc, desc->setFamilyName(utf8FamilyName.c_str()); desc->setStyle(this->fontStyle()); + + desc->setPaletteIndex(fRequestedPalette.index); + sk_careful_memcpy(desc->setPaletteEntryOverrides(fRequestedPalette.overrideCount), + fRequestedPalette.overrides, + fRequestedPalette.overrideCount * sizeof(fRequestedPalette.overrides[0])); + *isLocalStream = SkToBool(fLoaders); } @@ -357,11 +457,26 @@ sk_sp DWriteFontTypeface::onMakeClone(const SkFontArguments& args) c newFontFace.get(), fDWriteFont.get(), fDWriteFontFamily.get(), - fLoaders); + fLoaders, + args.getPalette()); } #endif + // If the palette args have changed, a new font will need to be created. + if (args.getPalette().index != fRequestedPalette.index || + args.getPalette().overrideCount != fRequestedPalette.overrideCount || + memcmp(args.getPalette().overrides, fRequestedPalette.overrides, + fRequestedPalette.overrideCount * sizeof(fRequestedPalette.overrides[0]))) + { + return DWriteFontTypeface::Make(fFactory.get(), + fDWriteFontFace.get(), + fDWriteFont.get(), + fDWriteFontFamily.get(), + fLoaders, + args.getPalette()); + } + return sk_ref_sp(this); } diff --git a/third_party/skia/src/ports/SkTypeface_win_dw.h b/third_party/skia/src/ports/SkTypeface_win_dw.h index 77180adc0c0f..08c6a038e252 100644 --- a/third_party/skia/src/ports/SkTypeface_win_dw.h +++ b/third_party/skia/src/ports/SkTypeface_win_dw.h @@ -8,6 +8,7 @@ #ifndef SkTypeface_win_dw_DEFINED #define SkTypeface_win_dw_DEFINED +#include "include/core/SkFontArguments.h" #include "include/core/SkTypeface.h" #include "src/core/SkAdvancedTypefaceMetrics.h" #include "src/core/SkLeanWindows.h" @@ -64,35 +65,9 @@ class DWriteFontTypeface : public SkTypeface { IDWriteFontFace* fontFace, IDWriteFont* font, IDWriteFontFamily* fontFamily, - sk_sp loaders) - : SkTypeface(style, false) - , fFactory(SkRefComPtr(factory)) - , fDWriteFontFamily(SkRefComPtr(fontFamily)) - , fDWriteFont(SkRefComPtr(font)) - , fDWriteFontFace(SkRefComPtr(fontFace)) - , fLoaders(std::move(loaders)) - { - if (!SUCCEEDED(fDWriteFontFace->QueryInterface(&fDWriteFontFace1))) { - // IUnknown::QueryInterface states that if it fails, punk will be set to nullptr. - // http://blogs.msdn.com/b/oldnewthing/archive/2004/03/26/96777.aspx - SkASSERT_RELEASE(nullptr == fDWriteFontFace1.get()); - } - if (!SUCCEEDED(fDWriteFontFace->QueryInterface(&fDWriteFontFace2))) { - SkASSERT_RELEASE(nullptr == fDWriteFontFace2.get()); - } - if (!SUCCEEDED(fDWriteFontFace->QueryInterface(&fDWriteFontFace4))) { - SkASSERT_RELEASE(nullptr == fDWriteFontFace4.get()); - } - if (!SUCCEEDED(fFactory->QueryInterface(&fFactory2))) { - SkASSERT_RELEASE(nullptr == fFactory2.get()); - } - - if (fDWriteFontFace1 && fDWriteFontFace1->IsMonospacedFont()) { - this->setIsFixedPitch(true); - } - - fIsColorFont = fFactory2 && fDWriteFontFace2 && fDWriteFontFace2->IsColorFont(); - } + sk_sp loaders, + const SkFontArguments::Palette&); + HRESULT initializePalette(); public: SkTScopedComPtr fFactory; @@ -105,15 +80,22 @@ class DWriteFontTypeface : public SkTypeface { SkTScopedComPtr fDWriteFontFace4; bool fIsColorFont; + std::unique_ptr fRequestedPaletteEntryOverrides; + SkFontArguments::Palette fRequestedPalette; + + size_t fPaletteEntryCount; + std::unique_ptr fPalette; + static sk_sp Make( IDWriteFactory* factory, IDWriteFontFace* fontFace, IDWriteFont* font, IDWriteFontFamily* fontFamily, - sk_sp loaders) + sk_sp loaders, + const SkFontArguments::Palette& palette) { return sk_sp(new DWriteFontTypeface( - get_style(font), factory, fontFace, font, fontFamily, std::move(loaders))); + get_style(font), factory, fontFace, font, fontFamily, std::move(loaders), palette)); } protected: diff --git a/third_party/skia/src/sfnt/BUILD.bazel b/third_party/skia/src/sfnt/BUILD.bazel index d871976faf9b..6ac7e74b0b77 100644 --- a/third_party/skia/src/sfnt/BUILD.bazel +++ b/third_party/skia/src/sfnt/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "srcs", visibility = ["//:__subpackages__"], @@ -329,3 +331,13 @@ generated_cc_atom( ":SkSFNTHeader_hdr", ], ) + +generated_cc_atom( + name = "SkOTTable_hmtx_hdr", + hdrs = ["SkOTTable_hmtx.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":SkOTTableTypes_hdr", + "//src/core:SkEndian_hdr", + ], +) diff --git a/third_party/skia/src/sfnt/SkOTTable_glyf.h b/third_party/skia/src/sfnt/SkOTTable_glyf.h index 98c4b2021dd9..df4b3f71371b 100644 --- a/third_party/skia/src/sfnt/SkOTTable_glyf.h +++ b/third_party/skia/src/sfnt/SkOTTable_glyf.h @@ -17,8 +17,6 @@ struct SkOTTableGlyphData; -extern uint8_t const * const SK_OT_GlyphData_NoOutline; - struct SkOTTableGlyph { static const SK_OT_CHAR TAG0 = 'g'; static const SK_OT_CHAR TAG1 = 'l'; @@ -28,38 +26,45 @@ struct SkOTTableGlyph { class Iterator { public: - Iterator(const SkOTTableGlyph& glyf, + Iterator(SkOTTableGlyph& glyf, const SkOTTableIndexToLocation& loca, SkOTTableHead::IndexToLocFormat locaFormat) : fGlyf(glyf) - , fLocaFormat(SkOTTableHead::IndexToLocFormat::ShortOffsets == locaFormat.value ? 0 : 1) + , fLoca(loca) + , fLocaFormat(locaFormat) + , fCurrentGlyph(0) , fCurrentGlyphOffset(0) - { fLocaPtr.shortOffset = reinterpret_cast(&loca); } + { + SkASSERT(locaFormat.value == SkOTTableHead::IndexToLocFormat::ShortOffsets || + locaFormat.value == SkOTTableHead::IndexToLocFormat::LongOffsets); + } void advance(uint16_t num) { - fLocaPtr.shortOffset += num << fLocaFormat; - fCurrentGlyphOffset = fLocaFormat ? SkEndian_SwapBE32(*fLocaPtr.longOffset) - : uint32_t(SkEndian_SwapBE16(*fLocaPtr.shortOffset) << 1); + fCurrentGlyph += num; + if (fLocaFormat.value == SkOTTableHead::IndexToLocFormat::ShortOffsets) { + fCurrentGlyphOffset = + SkEndian_SwapBE16(fLoca.offsets.shortOffset[fCurrentGlyph]) << 1; + } else if (fLocaFormat.value == SkOTTableHead::IndexToLocFormat::LongOffsets) { + fCurrentGlyphOffset = SkEndian_SwapBE32(fLoca.offsets.longOffset[fCurrentGlyph]); + } } - const SkOTTableGlyphData* next() { + SkOTTableGlyphData* next() { uint32_t previousGlyphOffset = fCurrentGlyphOffset; advance(1); if (previousGlyphOffset == fCurrentGlyphOffset) { - return reinterpret_cast(&SK_OT_GlyphData_NoOutline); + return nullptr; } else { - return reinterpret_cast( - reinterpret_cast(&fGlyf) + previousGlyphOffset + return reinterpret_cast( + reinterpret_cast(&fGlyf) + previousGlyphOffset ); } } private: - const SkOTTableGlyph& fGlyf; - uint16_t fLocaFormat; //0 or 1 + SkOTTableGlyph& fGlyf; + const SkOTTableIndexToLocation& fLoca; + SkOTTableHead::IndexToLocFormat fLocaFormat; + uint32_t fCurrentGlyph; uint32_t fCurrentGlyphOffset; - union LocaPtr { - const SK_OT_USHORT* shortOffset; - const SK_OT_ULONG* longOffset; - } fLocaPtr; }; }; diff --git a/third_party/skia/src/sfnt/SkOTTable_hmtx.h b/third_party/skia/src/sfnt/SkOTTable_hmtx.h new file mode 100644 index 000000000000..99da249a6727 --- /dev/null +++ b/third_party/skia/src/sfnt/SkOTTable_hmtx.h @@ -0,0 +1,34 @@ +/* + * Copyright 2022 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkOTTable_hmtx_DEFINED +#define SkOTTable_hmtx_DEFINED + +#include "src/core/SkEndian.h" +#include "src/sfnt/SkOTTableTypes.h" + +#pragma pack(push, 1) + +struct SkOTTableHorizontalMetrics { + static const SK_OT_CHAR TAG0 = 'h'; + static const SK_OT_CHAR TAG1 = 'm'; + static const SK_OT_CHAR TAG2 = 't'; + static const SK_OT_CHAR TAG3 = 'x'; + static const SK_OT_ULONG TAG = SkOTTableTAG::value; + + struct FullMetric { + SK_OT_USHORT advanceWidth; + SK_OT_SHORT lsb; + } longHorMetric[1/*hhea::numberOfHMetrics*/]; + struct ShortMetric { + SK_OT_SHORT lsb; + }; /* maxp::numGlyphs - hhea::numberOfHMetrics */ +}; + +#pragma pack(pop) + +#endif diff --git a/third_party/skia/src/sfnt/SkOTUtils.cpp b/third_party/skia/src/sfnt/SkOTUtils.cpp index 343acb252a98..b80f969aa223 100644 --- a/third_party/skia/src/sfnt/SkOTUtils.cpp +++ b/third_party/skia/src/sfnt/SkOTUtils.cpp @@ -19,16 +19,6 @@ #include "src/sfnt/SkOTTable_name.h" #include "src/sfnt/SkSFNTHeader.h" -extern const uint8_t SK_OT_GlyphData_NoOutline[] = { - 0x0,0x0, //SkOTTableGlyphData::numberOfContours - 0x0,0x0, //SkOTTableGlyphData::xMin - 0x0,0x0, //SkOTTableGlyphData::yMin - 0x0,0x0, //SkOTTableGlyphData::xMax - 0x0,0x0, //SkOTTableGlyphData::yMax - - 0x0,0x0, //SkOTTableGlyphDataInstructions::length -}; - uint32_t SkOTUtils::CalcTableChecksum(SK_OT_ULONG *data, size_t length) { uint32_t sum = 0; SK_OT_ULONG *dataEnd = data + ((length + 3) & ~3) / sizeof(SK_OT_ULONG); diff --git a/third_party/skia/src/shaders/BUILD.bazel b/third_party/skia/src/shaders/BUILD.bazel index fa7db3e1e227..0c60955fc4ec 100644 --- a/third_party/skia/src/shaders/BUILD.bazel +++ b/third_party/skia/src/shaders/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "srcs", visibility = ["//:__subpackages__"], @@ -71,7 +73,7 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkVM_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", ], ) @@ -97,10 +99,10 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkUtils_hdr", "//src/core:SkVM_hdr", - "//src/gpu:GrColorInfo_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrColorInfo_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:SkGr_hdr", ], ) @@ -136,8 +138,8 @@ generated_cc_atom( "//src/core:SkRuntimeEffectPriv_hdr", "//src/core:SkVM_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", ], ) @@ -174,6 +176,7 @@ generated_cc_atom( "//src/core:SkColorSpacePriv_hdr", "//src/core:SkColorSpaceXformSteps_hdr", "//src/core:SkImagePriv_hdr", + "//src/core:SkKeyContext_hdr", "//src/core:SkKeyHelpers_hdr", "//src/core:SkMatrixPriv_hdr", "//src/core:SkMatrixProvider_hdr", @@ -181,12 +184,11 @@ generated_cc_atom( "//src/core:SkOpts_hdr", "//src/core:SkRasterPipeline_hdr", "//src/core:SkReadBuffer_hdr", - "//src/core:SkSamplingPriv_hdr", - "//src/core:SkScopeExit_hdr", "//src/core:SkVM_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrColorInfo_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh:GrColorInfo_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/graphite:Image_Graphite_hdr", "//src/image:SkImage_Base_hdr", ], ) @@ -211,8 +213,8 @@ generated_cc_atom( "//src/core:SkMatrixProvider_hdr", "//src/core:SkTLazy_hdr", "//src/core:SkVM_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu/effects:GrMatrixEffect_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrMatrixEffect_hdr", ], ) @@ -234,15 +236,15 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkVM_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrMatrixEffect_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramDataManager_hdr", - "//src/gpu/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrMatrixEffect_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -279,13 +281,13 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkResourceCache_hdr", "//src/core:SkVM_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColorInfo_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColorInfo_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", "//src/image:SkImage_Base_hdr", ], ) @@ -304,7 +306,7 @@ generated_cc_atom( "//src/core:SkMask_hdr", "//src/core:SkTLazy_hdr", "//src/core:SkVM_fwd_hdr", - "//src/gpu:GrFPArgs_hdr", + "//src/gpu/ganesh:GrFPArgs_hdr", ], ) @@ -334,7 +336,7 @@ generated_cc_atom( "//src/core:SkTLazy_hdr", "//src/core:SkVM_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", ], ) diff --git a/third_party/skia/src/shaders/SkColorFilterShader.cpp b/third_party/skia/src/shaders/SkColorFilterShader.cpp index 93e39c6751a3..90f5d055895d 100644 --- a/third_party/skia/src/shaders/SkColorFilterShader.cpp +++ b/third_party/skia/src/shaders/SkColorFilterShader.cpp @@ -16,7 +16,7 @@ #include "src/shaders/SkColorFilterShader.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" #endif SkColorFilterShader::SkColorFilterShader(sk_sp shader, diff --git a/third_party/skia/src/shaders/SkColorShader.cpp b/third_party/skia/src/shaders/SkColorShader.cpp index 062b938fe40c..566ba2c63f24 100644 --- a/third_party/skia/src/shaders/SkColorShader.cpp +++ b/third_party/skia/src/shaders/SkColorShader.cpp @@ -11,12 +11,15 @@ #include "src/core/SkArenaAlloc.h" #include "src/core/SkColorSpacePriv.h" #include "src/core/SkColorSpaceXformSteps.h" -#include "src/core/SkKeyHelpers.h" #include "src/core/SkRasterPipeline.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkUtils.h" #include "src/core/SkVM.h" +#ifdef SK_ENABLE_SKSL +#include "src/core/SkKeyHelpers.h" +#endif + SkColorShader::SkColorShader(SkColor c) : fColor(c) {} bool SkColorShader::isOpaque() const { @@ -116,10 +119,10 @@ skvm::Color SkColor4Shader::onProgram(skvm::Builder* p, #if SK_SUPPORT_GPU -#include "src/gpu/GrColorInfo.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/SkGr.h" std::unique_ptr SkColorShader::asFragmentProcessor( const GrFPArgs& args) const { @@ -137,17 +140,17 @@ std::unique_ptr SkColor4Shader::asFragmentProcessor( #endif -void SkColorShader::addToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +#ifdef SK_ENABLE_SKSL +void SkColorShader::addToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const { - SolidColorShaderBlock::AddToKey(dict, backend, builder, uniformBlock, - SkColor4f::FromColor(fColor)); + SkPipelineDataGatherer* gatherer) const { + SolidColorShaderBlock::AddToKey(keyContext, builder, gatherer, + SkColor4f::FromColor(fColor).premul()); } -void SkColor4Shader::addToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +void SkColor4Shader::addToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const { - SolidColorShaderBlock::AddToKey(dict, backend, builder, uniformBlock, fColor); + SkPipelineDataGatherer* gatherer) const { + SolidColorShaderBlock::AddToKey(keyContext, builder, gatherer, fColor.premul()); } +#endif diff --git a/third_party/skia/src/shaders/SkColorShader.h b/third_party/skia/src/shaders/SkColorShader.h index 58b0a0291796..f24474b5fb51 100644 --- a/third_party/skia/src/shaders/SkColorShader.h +++ b/third_party/skia/src/shaders/SkColorShader.h @@ -10,6 +10,8 @@ #include "src/shaders/SkShaderBase.h" +class SkShaderCodeDictionary; + /** \class SkColorShader A Shader that represents a single color. In general, this effect can be accomplished by just using the color field on the paint, but if an @@ -31,10 +33,12 @@ class SkColorShader : public SkShaderBase { #if SK_SUPPORT_GPU std::unique_ptr asFragmentProcessor(const GrFPArgs&) const override; #endif - void addToKey(SkShaderCodeDictionary*, - SkBackend, + +#ifdef SK_ENABLE_SKSL + void addToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*) const override; + SkPipelineDataGatherer*) const override; +#endif private: SK_FLATTENABLE_HOOKS(SkColorShader) @@ -65,10 +69,11 @@ class SkColor4Shader : public SkShaderBase { #if SK_SUPPORT_GPU std::unique_ptr asFragmentProcessor(const GrFPArgs&) const override; #endif - void addToKey(SkShaderCodeDictionary*, - SkBackend, +#ifdef SK_ENABLE_SKSL + void addToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*) const override; + SkPipelineDataGatherer*) const override; +#endif private: SK_FLATTENABLE_HOOKS(SkColor4Shader) diff --git a/third_party/skia/src/shaders/SkComposeShader.cpp b/third_party/skia/src/shaders/SkComposeShader.cpp index 32d6ad672c09..c2978936b2ac 100644 --- a/third_party/skia/src/shaders/SkComposeShader.cpp +++ b/third_party/skia/src/shaders/SkComposeShader.cpp @@ -11,7 +11,6 @@ #include "src/core/SkArenaAlloc.h" #include "src/core/SkBlendModePriv.h" #include "src/core/SkBlenderBase.h" -#include "src/core/SkKeyHelpers.h" #include "src/core/SkRasterPipeline.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkRuntimeEffectPriv.h" @@ -20,6 +19,10 @@ #include "src/shaders/SkColorShader.h" #include "src/shaders/SkComposeShader.h" +#ifdef SK_ENABLE_SKSL +#include "src/core/SkKeyHelpers.h" +#endif + namespace { struct LocalMatrixStageRec final : public SkStageRec { @@ -169,8 +172,8 @@ skvm::Color SkShader_Blend::onProgram(skvm::Builder* p, #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" std::unique_ptr SkShader_Blend::asFragmentProcessor( const GrFPArgs& orig_args) const { @@ -189,13 +192,14 @@ std::unique_ptr SkShader_Blend::asFragmentProcessor( } #endif -void SkShader_Blend::addToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +#ifdef SK_ENABLE_SKSL +void SkShader_Blend::addToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const { + SkPipelineDataGatherer* gatherer) const { // TODO: add blender support SkASSERT(!fBlender); - BlendShaderBlock::AddToKey(dict, backend, builder, uniformBlock, + BlendShaderBlock::AddToKey(keyContext, builder, gatherer, { fDst.get(), fSrc.get(), fMode }); } +#endif diff --git a/third_party/skia/src/shaders/SkComposeShader.h b/third_party/skia/src/shaders/SkComposeShader.h index 6066b4283f77..7a3c467626b7 100644 --- a/third_party/skia/src/shaders/SkComposeShader.h +++ b/third_party/skia/src/shaders/SkComposeShader.h @@ -13,6 +13,8 @@ #include "src/core/SkBlenderBase.h" #include "src/shaders/SkShaderBase.h" +class SkShaderCodeDictionary; + class SkShader_Blend final : public SkShaderBase { public: SkShader_Blend(SkBlendMode mode, sk_sp dst, sk_sp src) @@ -28,10 +30,11 @@ class SkShader_Blend final : public SkShaderBase { std::unique_ptr asFragmentProcessor(const GrFPArgs&) const override; #endif - void addToKey(SkShaderCodeDictionary*, - SkBackend, +#ifdef SK_ENABLE_SKSL + void addToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*) const override; + SkPipelineDataGatherer*) const override; +#endif protected: SkShader_Blend(SkReadBuffer&); diff --git a/third_party/skia/src/shaders/SkImageShader.cpp b/third_party/skia/src/shaders/SkImageShader.cpp index c8a157166314..108e326ad763 100755 --- a/third_party/skia/src/shaders/SkImageShader.cpp +++ b/third_party/skia/src/shaders/SkImageShader.cpp @@ -11,15 +11,12 @@ #include "src/core/SkArenaAlloc.h" #include "src/core/SkColorSpacePriv.h" #include "src/core/SkColorSpaceXformSteps.h" -#include "src/core/SkKeyHelpers.h" #include "src/core/SkMatrixPriv.h" #include "src/core/SkMatrixProvider.h" #include "src/core/SkMipmapAccessor.h" #include "src/core/SkOpts.h" #include "src/core/SkRasterPipeline.h" #include "src/core/SkReadBuffer.h" -#include "src/core/SkSamplingPriv.h" -#include "src/core/SkScopeExit.h" #include "src/core/SkVM.h" #include "src/core/SkWriteBuffer.h" #include "src/image/SkImage_Base.h" @@ -27,6 +24,16 @@ #include "src/shaders/SkEmptyShader.h" #include "src/shaders/SkTransformShader.h" +#ifdef SK_ENABLE_SKSL + +#ifdef SK_GRAPHITE_ENABLED +#include "src/gpu/graphite/Image_Graphite.h" +#endif + +#include "src/core/SkKeyContext.h" +#include "src/core/SkKeyHelpers.h" +#endif + SkM44 SkImageShader::CubicResamplerMatrix(float B, float C) { #if 0 constexpr SkM44 kMitchell = SkM44( 1.f/18.f, -9.f/18.f, 15.f/18.f, -7.f/18.f, @@ -129,7 +136,7 @@ sk_sp SkImageShader::CreateProc(SkReadBuffer& buffer) { // we just default to Nearest in sampling } if (readSampling) { - sampling = SkSamplingPriv::Read(buffer); + sampling = buffer.readSampling(); } SkMatrix localMatrix; @@ -153,7 +160,7 @@ void SkImageShader::flatten(SkWriteBuffer& buffer) const { buffer.writeUInt((unsigned)fTileModeX); buffer.writeUInt((unsigned)fTileModeY); - SkSamplingPriv::Write(buffer, fSampling); + buffer.writeSampling(fSampling); buffer.writeMatrix(this->getLocalMatrix()); buffer.writeImage(fImage.get()); @@ -171,13 +178,6 @@ bool SkImageShader::isOpaque() const { fTileModeX != SkTileMode::kDecal && fTileModeY != SkTileMode::kDecal; } -constexpr SkCubicResampler kDefaultCubicResampler{1.0f/3, 1.0f/3}; - -static bool is_default_cubic_resampler(SkCubicResampler cubic) { - return SkScalarNearlyEqual(cubic.B, kDefaultCubicResampler.B) && - SkScalarNearlyEqual(cubic.C, kDefaultCubicResampler.C); -} - #ifdef SK_ENABLE_LEGACY_SHADERCONTEXT static bool legacy_shader_can_handle(const SkMatrix& inv) { @@ -334,8 +334,8 @@ sk_sp SkImageShader::MakeSubset(sk_sp image, #if SK_SUPPORT_GPU -#include "src/gpu/GrColorInfo.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" std::unique_ptr SkImageShader::asFragmentProcessor( const GrFPArgs& args) const { @@ -364,7 +364,7 @@ std::unique_ptr SkImageShader::asFragmentProcessor( kPremul_SkAlphaType); if (fImage->isAlphaOnly()) { - fp = GrBlendFragmentProcessor::Make(std::move(fp), nullptr, SkBlendMode::kDstIn); + fp = GrBlendFragmentProcessor::Make(std::move(fp), nullptr); } } @@ -373,12 +373,28 @@ std::unique_ptr SkImageShader::asFragmentProcessor( #endif -void SkImageShader::addToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +#ifdef SK_ENABLE_SKSL +void SkImageShader::addToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const { - ImageShaderBlock::AddToKey(dict, backend, builder, uniformBlock, { fTileModeX, fTileModeY }); + SkPipelineDataGatherer* gatherer) const { + ImageShaderBlock::ImageData imgData(fSampling, fTileModeX, fTileModeY, fSubset); + +#ifdef SK_GRAPHITE_ENABLED + if (as_IB(fImage)->isGraphiteBacked()) { + skgpu::graphite::Image* grImage = static_cast(fImage.get()); + + auto mipmapped = (fSampling.mipmap != SkMipmapMode::kNone) ? + skgpu::graphite::Mipmapped::kYes : skgpu::graphite::Mipmapped::kNo; + // TODO: In practice which SkBudgeted value used shouldn't matter because we're not going + // to create a new texture here. But should the SkImage know its SkBudgeted state? + auto[view, ct] = grImage->asView(keyContext.recorder(), mipmapped, SkBudgeted::kNo); + imgData.fTextureProxy = view.refProxy(); + } +#endif + + ImageShaderBlock::AddToKey(keyContext, builder, gatherer, imgData); } +#endif /////////////////////////////////////////////////////////////////////////////////////////////////// #include "src/core/SkImagePriv.h" @@ -455,15 +471,9 @@ bool SkImageShader::doStages(const SkStageRec& rec, TransformShader* updater) co SkASSERT(!needs_subset(fImage.get(), fSubset)); // TODO(skbug.com/12784) // We only support certain sampling options in stages so far auto sampling = fSampling; - if (sampling.useCubic) { - if (!is_default_cubic_resampler(sampling.cubic)) { - return false; - } - } else if (sampling.mipmap == SkMipmapMode::kLinear) { + if (sampling.mipmap == SkMipmapMode::kLinear) { return false; } - - if (updater && (sampling.mipmap != SkMipmapMode::kNone)) { // TODO: medium: recall RequestBitmap and update width/height accordingly return false; @@ -506,6 +516,9 @@ bool SkImageShader::doStages(const SkStageRec& rec, TransformShader* updater) co gather->stride = pm.rowBytesAsPixels(); gather->width = pm.width(); gather->height = pm.height(); + if (sampling.useCubic) { + CubicResamplerMatrix(sampling.cubic.B, sampling.cubic.C).getColMajor(gather->weights); + } auto limit_x = alloc->make(), limit_y = alloc->make(); @@ -689,6 +702,8 @@ bool SkImageShader::doStages(const SkStageRec& rec, TransformShader* updater) co }; if (sampling.useCubic) { + CubicResamplerMatrix(sampling.cubic.B, sampling.cubic.C).getColMajor(sampler->weights); + p->append(SkRasterPipeline::save_xy, sampler); sample(SkRasterPipeline::bicubic_n3x, SkRasterPipeline::bicubic_n3y); diff --git a/third_party/skia/src/shaders/SkImageShader.h b/third_party/skia/src/shaders/SkImageShader.h index 74c4a219dfad..c2b298de89d2 100644 --- a/third_party/skia/src/shaders/SkImageShader.h +++ b/third_party/skia/src/shaders/SkImageShader.h @@ -13,6 +13,8 @@ #include "src/shaders/SkBitmapProcShader.h" #include "src/shaders/SkShaderBase.h" +class SkKeyContext; + class SkImageShader : public SkShaderBase { public: static sk_sp Make(sk_sp, @@ -43,12 +45,11 @@ class SkImageShader : public SkShaderBase { #if SK_SUPPORT_GPU std::unique_ptr asFragmentProcessor(const GrFPArgs&) const override; #endif - - void addToKey(SkShaderCodeDictionary*, - SkBackend, +#ifdef SK_ENABLE_SKSL + void addToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*) const override; - + SkPipelineDataGatherer*) const override; +#endif static SkM44 CubicResamplerMatrix(float B, float C); private: diff --git a/third_party/skia/src/shaders/SkLocalMatrixShader.cpp b/third_party/skia/src/shaders/SkLocalMatrixShader.cpp index 3d564389cc4d..84fdb8c128f7 100644 --- a/third_party/skia/src/shaders/SkLocalMatrixShader.cpp +++ b/third_party/skia/src/shaders/SkLocalMatrixShader.cpp @@ -11,8 +11,8 @@ #include "src/shaders/SkLocalMatrixShader.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/effects/GrMatrixEffect.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrMatrixEffect.h" #endif #if SK_SUPPORT_GPU diff --git a/third_party/skia/src/shaders/SkPerlinNoiseShader.cpp b/third_party/skia/src/shaders/SkPerlinNoiseShader.cpp index 9719aaf915cd..2a629fd04b95 100644 --- a/third_party/skia/src/shaders/SkPerlinNoiseShader.cpp +++ b/third_party/skia/src/shaders/SkPerlinNoiseShader.cpp @@ -21,15 +21,15 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrRecordingContextPriv.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrMatrixEffect.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrMatrixEffect.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" #endif static const int kBlockSize = 256; diff --git a/third_party/skia/src/shaders/SkPictureShader.cpp b/third_party/skia/src/shaders/SkPictureShader.cpp index 03fb3d7b8dc9..418d236188b0 100644 --- a/third_party/skia/src/shaders/SkPictureShader.cpp +++ b/third_party/skia/src/shaders/SkPictureShader.cpp @@ -27,12 +27,12 @@ #if SK_SUPPORT_GPU #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColorInfo.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColorInfo.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #include "src/image/SkImage_Base.h" #endif @@ -368,7 +368,7 @@ void SkPictureShader::PictureShaderContext::shadeSpan(int x, int y, SkPMColor ds #if SK_SUPPORT_GPU -#include "src/gpu/GrProxyProvider.h" +#include "src/gpu/ganesh/GrProxyProvider.h" std::unique_ptr SkPictureShader::asFragmentProcessor( const GrFPArgs& args) const { diff --git a/third_party/skia/src/shaders/SkShader.cpp b/third_party/skia/src/shaders/SkShader.cpp index ba8ca8e13353..8db896a6535b 100644 --- a/third_party/skia/src/shaders/SkShader.cpp +++ b/third_party/skia/src/shaders/SkShader.cpp @@ -12,7 +12,6 @@ #include "src/core/SkArenaAlloc.h" #include "src/core/SkColorSpacePriv.h" #include "src/core/SkColorSpaceXformSteps.h" -#include "src/core/SkKeyHelpers.h" #include "src/core/SkMatrixProvider.h" #include "src/core/SkRasterPipeline.h" #include "src/core/SkReadBuffer.h" @@ -28,7 +27,11 @@ #include "src/shaders/SkTransformShader.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#endif + +#ifdef SK_ENABLE_SKSL +#include "src/core/SkKeyHelpers.h" #endif SkShaderBase::SkShaderBase(const SkMatrix* localMatrix) @@ -149,13 +152,14 @@ SkUpdatableShader* SkShaderBase::onUpdatableShader(SkArenaAlloc* alloc) const { return nullptr; } +#ifdef SK_ENABLE_SKSL // TODO: add implementations for derived classes -void SkShaderBase::addToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +void SkShaderBase::addToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const { - SolidColorShaderBlock::AddToKey(dict, backend, builder, uniformBlock, SkColors::kRed); + SkPipelineDataGatherer* gatherer) const { + SolidColorShaderBlock::AddToKey(keyContext, builder, gatherer, {1, 0, 0, 1}); } +#endif sk_sp SkShaders::Empty() { return sk_make_sp(); } sk_sp SkShaders::Color(SkColor color) { return sk_make_sp(color); } diff --git a/third_party/skia/src/shaders/SkShaderBase.h b/third_party/skia/src/shaders/SkShaderBase.h index 61517c66cfe6..f35afd2ab5a8 100644 --- a/third_party/skia/src/shaders/SkShaderBase.h +++ b/third_party/skia/src/shaders/SkShaderBase.h @@ -19,7 +19,7 @@ #include "src/core/SkVM_fwd.h" #if SK_SUPPORT_GPU -#include "src/gpu/GrFPArgs.h" +#include "src/gpu/ganesh/GrFPArgs.h" #endif class GrFragmentProcessor; @@ -30,10 +30,10 @@ class SkImage; struct SkImageInfo; class SkPaint; class SkPaintParamsKeyBuilder; +class SkPipelineDataGatherer; class SkRasterPipeline; class SkRuntimeEffect; -class SkShaderCodeDictionary; -class SkUniformBlock; +class SkKeyContext; class SkStageUpdater; class SkUpdatableShader; @@ -214,19 +214,19 @@ class SkShaderBase : public SkShader { skvm::Uniforms* uniforms, SkArenaAlloc* alloc) const; +#ifdef SK_ENABLE_SKSL /** Add implementation details, for the specified backend, of this SkShader to the provided key. - @param dictionary dictionary of code fragments available to be used in the key - @param backend the backend that would be carrying out the drawing - @param builder builder for creating the key for this SkShader - @param uniformBlock if non-null, storage for this shader's uniform data + @param keyContext backend context for key creation + @param builder builder for creating the key for this SkShader + @param gatherer if non-null, storage for this shader's data */ - virtual void addToKey(SkShaderCodeDictionary* dictionary, - SkBackend backend, + virtual void addToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const; + SkPipelineDataGatherer* gatherer) const; +#endif protected: SkShaderBase(const SkMatrix* localMatrix = nullptr); diff --git a/third_party/skia/src/shaders/SkTransformShader.cpp b/third_party/skia/src/shaders/SkTransformShader.cpp index 2498f0759e15..aee2c9c885cd 100644 --- a/third_party/skia/src/shaders/SkTransformShader.cpp +++ b/third_party/skia/src/shaders/SkTransformShader.cpp @@ -57,7 +57,7 @@ void SkTransformShader::appendMatrix(const SkMatrix& matrix, SkRasterPipeline* p } bool SkTransformShader::update(const SkMatrix& ctm) const { - if (SkMatrix matrix; this->computeTotalInverse(ctm, nullptr, &matrix)) { + if (SkMatrix matrix; fShader.computeTotalInverse(ctm, nullptr, &matrix)) { if (!fProcessingAsPerspective) { SkASSERT(!matrix.hasPerspective()); if (matrix.hasPerspective()) { diff --git a/third_party/skia/src/shaders/gradients/BUILD.bazel b/third_party/skia/src/shaders/gradients/BUILD.bazel index ad50bbe87725..a4509a07b4b7 100644 --- a/third_party/skia/src/shaders/gradients/BUILD.bazel +++ b/third_party/skia/src/shaders/gradients/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "Sk4fGradientBase_hdr", hdrs = ["Sk4fGradientBase.h"], @@ -86,6 +88,7 @@ generated_cc_atom( ":SkRadialGradient_hdr", ":SkSweepGradient_hdr", ":SkTwoPointConicalGradient_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkMallocPixelRef_hdr", "//include/private:SkFloatBits_hdr", "//include/private:SkHalf_hdr", @@ -117,7 +120,7 @@ generated_cc_atom( "//src/core:SkKeyHelpers_hdr", "//src/core:SkReadBuffer_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu/gradients:GrGradientShader_hdr", + "//src/gpu/ganesh/gradients:GrGradientShader_hdr", ], ) @@ -138,7 +141,7 @@ generated_cc_atom( "//src/core:SkRasterPipeline_hdr", "//src/core:SkReadBuffer_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu/gradients:GrGradientShader_hdr", + "//src/gpu/ganesh/gradients:GrGradientShader_hdr", ], ) @@ -160,7 +163,7 @@ generated_cc_atom( "//src/core:SkRasterPipeline_hdr", "//src/core:SkReadBuffer_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu/gradients:GrGradientShader_hdr", + "//src/gpu/ganesh/gradients:GrGradientShader_hdr", ], ) @@ -182,6 +185,6 @@ generated_cc_atom( "//src/core:SkRasterPipeline_hdr", "//src/core:SkReadBuffer_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu/gradients:GrGradientShader_hdr", + "//src/gpu/ganesh/gradients:GrGradientShader_hdr", ], ) diff --git a/third_party/skia/src/shaders/gradients/SkGradientShader.cpp b/third_party/skia/src/shaders/gradients/SkGradientShader.cpp index 1c2602c266b0..d20a8e4eca88 100644 --- a/third_party/skia/src/shaders/gradients/SkGradientShader.cpp +++ b/third_party/skia/src/shaders/gradients/SkGradientShader.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include +#include "include/core/SkColorSpace.h" #include "include/core/SkMallocPixelRef.h" #include "include/private/SkFloatBits.h" #include "include/private/SkHalf.h" @@ -24,6 +24,8 @@ #include "src/shaders/gradients/SkSweepGradient.h" #include "src/shaders/gradients/SkTwoPointConicalGradient.h" +#include + enum GradientSerializationFlags { // Bits 29:31 used for various boolean flags kHasPosition_GSF = 0x80000000, @@ -41,6 +43,12 @@ enum GradientSerializationFlags { kGradFlagsMask_GSF = 0xFF, }; +SkGradientShaderBase::Descriptor::Descriptor() { + sk_bzero(this, sizeof(*this)); + fTileMode = SkTileMode::kClamp; +} +SkGradientShaderBase::Descriptor::~Descriptor() = default; + void SkGradientShaderBase::Descriptor::flatten(SkWriteBuffer& buffer) const { uint32_t flags = 0; if (fPos) { @@ -851,6 +859,13 @@ sk_sp SkGradientShader::MakeLinear(const SkPoint pts[2], localMatrix); } +sk_sp SkGradientShader::MakeLinear(const SkPoint pts[2], + const SkColor4f colors[], + sk_sp colorSpace, + const SkScalar pos[], int count, SkTileMode mode) { + return MakeLinear(pts, colors, std::move(colorSpace), pos, count, mode, 0, nullptr); +} + sk_sp SkGradientShader::MakeLinear(const SkPoint pts[2], const SkColor4f colors[], sk_sp colorSpace, @@ -898,6 +913,13 @@ sk_sp SkGradientShader::MakeRadial(const SkPoint& center, SkScalar rad flags, localMatrix); } +sk_sp SkGradientShader::MakeRadial(const SkPoint& center, SkScalar radius, + const SkColor4f colors[], + sk_sp colorSpace, + const SkScalar pos[], int count, SkTileMode mode) { + return MakeRadial(center, radius, colors, std::move(colorSpace), pos, count, mode, 0, nullptr); +} + sk_sp SkGradientShader::MakeRadial(const SkPoint& center, SkScalar radius, const SkColor4f colors[], sk_sp colorSpace, @@ -946,6 +968,18 @@ sk_sp SkGradientShader::MakeTwoPointConical(const SkPoint& start, nullptr, pos, colorCount, mode, flags, localMatrix); } +sk_sp SkGradientShader::MakeTwoPointConical(const SkPoint& start, + SkScalar startRadius, + const SkPoint& end, + SkScalar endRadius, + const SkColor4f colors[], + sk_sp colorSpace, + const SkScalar pos[], + int count, SkTileMode mode) { + return MakeTwoPointConical(start, startRadius, end, endRadius, colors, + std::move(colorSpace), pos, count, mode, 0, nullptr); +} + sk_sp SkGradientShader::MakeTwoPointConical(const SkPoint& start, SkScalar startRadius, const SkPoint& end, @@ -1021,6 +1055,21 @@ sk_sp SkGradientShader::MakeSweep(SkScalar cx, SkScalar cy, mode, startAngle, endAngle, flags, localMatrix); } +sk_sp SkGradientShader::MakeSweep(SkScalar cx, SkScalar cy, + const SkColor4f colors[], + sk_sp colorSpace, + const SkScalar pos[], int count, + uint32_t flags, const SkMatrix* localMatrix) { + return MakeSweep(cx, cy, colors, std::move(colorSpace), pos, count, + SkTileMode::kClamp, 0, 360, flags, localMatrix); +} +sk_sp SkGradientShader::MakeSweep(SkScalar cx, SkScalar cy, + const SkColor4f colors[], + sk_sp colorSpace, + const SkScalar pos[], int count) { + return MakeSweep(cx, cy, colors, std::move(colorSpace), pos, count, 0, nullptr); +} + sk_sp SkGradientShader::MakeSweep(SkScalar cx, SkScalar cy, const SkColor4f colors[], sk_sp colorSpace, diff --git a/third_party/skia/src/shaders/gradients/SkGradientShaderPriv.h b/third_party/skia/src/shaders/gradients/SkGradientShaderPriv.h index 0c12384450f6..3de22b76d008 100644 --- a/third_party/skia/src/shaders/gradients/SkGradientShaderPriv.h +++ b/third_party/skia/src/shaders/gradients/SkGradientShaderPriv.h @@ -25,10 +25,8 @@ class SkWriteBuffer; class SkGradientShaderBase : public SkShaderBase { public: struct Descriptor { - Descriptor() { - sk_bzero(this, sizeof(*this)); - fTileMode = SkTileMode::kClamp; - } + Descriptor(); + ~Descriptor(); const SkMatrix* fLocalMatrix; const SkColor4f* fColors; diff --git a/third_party/skia/src/shaders/gradients/SkLinearGradient.cpp b/third_party/skia/src/shaders/gradients/SkLinearGradient.cpp index 32e908f22999..619c4261ee56 100644 --- a/third_party/skia/src/shaders/gradients/SkLinearGradient.cpp +++ b/third_party/skia/src/shaders/gradients/SkLinearGradient.cpp @@ -7,11 +7,15 @@ #include "src/shaders/gradients/SkLinearGradient.h" -#include "src/core/SkKeyHelpers.h" + #include "src/core/SkReadBuffer.h" #include "src/core/SkWriteBuffer.h" #include "src/shaders/gradients/Sk4fLinearGradient.h" +#ifdef SK_ENABLE_SKSL +#include "src/core/SkKeyHelpers.h" +#endif + static SkMatrix pts_to_unit_matrix(const SkPoint pts[2]) { SkVector vec = pts[1] - pts[0]; SkScalar mag = vec.length(); @@ -95,7 +99,7 @@ SkShader::GradientType SkLinearGradient::asAGradient(GradientInfo* info) const { #if SK_SUPPORT_GPU -#include "src/gpu/gradients/GrGradientShader.h" +#include "src/gpu/ganesh/gradients/GrGradientShader.h" std::unique_ptr SkLinearGradient::asFragmentProcessor( const GrFPArgs& args) const { @@ -104,10 +108,10 @@ std::unique_ptr SkLinearGradient::asFragmentProcessor( #endif -void SkLinearGradient::addToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +#ifdef SK_ENABLE_SKSL +void SkLinearGradient::addToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const { + SkPipelineDataGatherer* gatherer) const { GradientShaderBlocks::GradientData data(kLinear_GradientType, fStart, fEnd, 0.0f, 0.0f, @@ -116,5 +120,6 @@ void SkLinearGradient::addToKey(SkShaderCodeDictionary* dict, fOrigColors4f, fOrigPos); - GradientShaderBlocks::AddToKey(dict, backend, builder, uniformBlock, data); + GradientShaderBlocks::AddToKey(keyContext, builder, gatherer, data); } +#endif diff --git a/third_party/skia/src/shaders/gradients/SkLinearGradient.h b/third_party/skia/src/shaders/gradients/SkLinearGradient.h index b545fca4138e..66d620fe28be 100644 --- a/third_party/skia/src/shaders/gradients/SkLinearGradient.h +++ b/third_party/skia/src/shaders/gradients/SkLinearGradient.h @@ -10,6 +10,8 @@ #include "src/shaders/gradients/SkGradientShaderPriv.h" +class SkShaderCodeDictionary; + class SkLinearGradient : public SkGradientShaderBase { public: SkLinearGradient(const SkPoint pts[2], const Descriptor&); @@ -18,10 +20,11 @@ class SkLinearGradient : public SkGradientShaderBase { #if SK_SUPPORT_GPU std::unique_ptr asFragmentProcessor(const GrFPArgs&) const override; #endif - void addToKey(SkShaderCodeDictionary*, - SkBackend, +#ifdef SK_ENABLE_SKSL + void addToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*) const override; + SkPipelineDataGatherer*) const override; +#endif protected: SkLinearGradient(SkReadBuffer& buffer); diff --git a/third_party/skia/src/shaders/gradients/SkRadialGradient.cpp b/third_party/skia/src/shaders/gradients/SkRadialGradient.cpp index d25ffcc186e5..e487df9ed069 100644 --- a/third_party/skia/src/shaders/gradients/SkRadialGradient.cpp +++ b/third_party/skia/src/shaders/gradients/SkRadialGradient.cpp @@ -7,11 +7,14 @@ #include "src/shaders/gradients/SkRadialGradient.h" -#include "src/core/SkKeyHelpers.h" #include "src/core/SkRasterPipeline.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkWriteBuffer.h" +#ifdef SK_ENABLE_SKSL +#include "src/core/SkKeyHelpers.h" +#endif + namespace { SkMatrix rad_to_unit_matrix(const SkPoint& center, SkScalar radius) { @@ -74,7 +77,7 @@ skvm::F32 SkRadialGradient::transformT(skvm::Builder* p, skvm::Uniforms*, #if SK_SUPPORT_GPU -#include "src/gpu/gradients/GrGradientShader.h" +#include "src/gpu/ganesh/gradients/GrGradientShader.h" std::unique_ptr SkRadialGradient::asFragmentProcessor( const GrFPArgs& args) const { @@ -83,10 +86,10 @@ std::unique_ptr SkRadialGradient::asFragmentProcessor( #endif -void SkRadialGradient::addToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +#ifdef SK_ENABLE_SKSL +void SkRadialGradient::addToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const { + SkPipelineDataGatherer* gatherer) const { GradientShaderBlocks::GradientData data(kRadial_GradientType, fCenter, { 0.0f, 0.0f }, fRadius, 0.0f, @@ -95,5 +98,6 @@ void SkRadialGradient::addToKey(SkShaderCodeDictionary* dict, fOrigColors4f, fOrigPos); - GradientShaderBlocks::AddToKey(dict, backend, builder, uniformBlock, data); + GradientShaderBlocks::AddToKey(keyContext, builder, gatherer, data); } +#endif diff --git a/third_party/skia/src/shaders/gradients/SkRadialGradient.h b/third_party/skia/src/shaders/gradients/SkRadialGradient.h index 768d72b193fa..50e469d212c1 100644 --- a/third_party/skia/src/shaders/gradients/SkRadialGradient.h +++ b/third_party/skia/src/shaders/gradients/SkRadialGradient.h @@ -10,6 +10,8 @@ #include "src/shaders/gradients/SkGradientShaderPriv.h" +class SkShaderCodeDictionary; + class SkRadialGradient final : public SkGradientShaderBase { public: SkRadialGradient(const SkPoint& center, SkScalar radius, const Descriptor&); @@ -18,11 +20,11 @@ class SkRadialGradient final : public SkGradientShaderBase { #if SK_SUPPORT_GPU std::unique_ptr asFragmentProcessor(const GrFPArgs&) const override; #endif - void addToKey(SkShaderCodeDictionary*, - SkBackend, +#ifdef SK_ENABLE_SKSL + void addToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*) const override; - + SkPipelineDataGatherer*) const override; +#endif protected: SkRadialGradient(SkReadBuffer& buffer); void flatten(SkWriteBuffer& buffer) const override; diff --git a/third_party/skia/src/shaders/gradients/SkSweepGradient.cpp b/third_party/skia/src/shaders/gradients/SkSweepGradient.cpp index 88640aeb932c..5314e0e16d39 100644 --- a/third_party/skia/src/shaders/gradients/SkSweepGradient.cpp +++ b/third_party/skia/src/shaders/gradients/SkSweepGradient.cpp @@ -8,11 +8,14 @@ #include "src/shaders/gradients/SkSweepGradient.h" #include "include/private/SkFloatingPoint.h" -#include "src/core/SkKeyHelpers.h" #include "src/core/SkRasterPipeline.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkWriteBuffer.h" +#ifdef SK_ENABLE_SKSL +#include "src/core/SkKeyHelpers.h" +#endif + SkSweepGradient::SkSweepGradient(const SkPoint& center, SkScalar t0, SkScalar t1, const Descriptor& desc) : SkGradientShaderBase(desc, SkMatrix::Translate(-center.x(), -center.y())) @@ -98,7 +101,7 @@ skvm::F32 SkSweepGradient::transformT(skvm::Builder* p, skvm::Uniforms* uniforms #if SK_SUPPORT_GPU -#include "src/gpu/gradients/GrGradientShader.h" +#include "src/gpu/ganesh/gradients/GrGradientShader.h" std::unique_ptr SkSweepGradient::asFragmentProcessor( const GrFPArgs& args) const { @@ -107,10 +110,10 @@ std::unique_ptr SkSweepGradient::asFragmentProcessor( #endif -void SkSweepGradient::addToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +#ifdef SK_ENABLE_SKSL +void SkSweepGradient::addToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const { + SkPipelineDataGatherer* gatherer) const { GradientShaderBlocks::GradientData data(kSweep_GradientType, fCenter, { 0.0f, 0.0f }, 0.0, 0.0f, @@ -119,5 +122,6 @@ void SkSweepGradient::addToKey(SkShaderCodeDictionary* dict, fOrigColors4f, fOrigPos); - GradientShaderBlocks::AddToKey(dict, backend, builder, uniformBlock, data); + GradientShaderBlocks::AddToKey(keyContext, builder, gatherer, data); } +#endif diff --git a/third_party/skia/src/shaders/gradients/SkSweepGradient.h b/third_party/skia/src/shaders/gradients/SkSweepGradient.h index 6df721eb056e..93490cfb4ea4 100644 --- a/third_party/skia/src/shaders/gradients/SkSweepGradient.h +++ b/third_party/skia/src/shaders/gradients/SkSweepGradient.h @@ -10,6 +10,8 @@ #include "src/shaders/gradients/SkGradientShaderPriv.h" +class SkShaderCodeDictionary; + class SkSweepGradient final : public SkGradientShaderBase { public: SkSweepGradient(const SkPoint& center, SkScalar t0, SkScalar t1, const Descriptor&); @@ -19,10 +21,11 @@ class SkSweepGradient final : public SkGradientShaderBase { #if SK_SUPPORT_GPU std::unique_ptr asFragmentProcessor(const GrFPArgs&) const override; #endif - void addToKey(SkShaderCodeDictionary*, - SkBackend, +#ifdef SK_ENABLE_SKSL + void addToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*) const override; + SkPipelineDataGatherer*) const override; +#endif SkScalar getTBias() const { return fTBias; } diff --git a/third_party/skia/src/shaders/gradients/SkTwoPointConicalGradient.cpp b/third_party/skia/src/shaders/gradients/SkTwoPointConicalGradient.cpp index 1c13268220e6..5dc4c80e5c3f 100644 --- a/third_party/skia/src/shaders/gradients/SkTwoPointConicalGradient.cpp +++ b/third_party/skia/src/shaders/gradients/SkTwoPointConicalGradient.cpp @@ -8,13 +8,16 @@ #include "src/shaders/gradients/SkTwoPointConicalGradient.h" #include "include/private/SkFloatingPoint.h" -#include "src/core/SkKeyHelpers.h" #include "src/core/SkRasterPipeline.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkWriteBuffer.h" #include +#ifdef SK_ENABLE_SKSL +#include "src/core/SkKeyHelpers.h" +#endif + // Please see https://skia.org/dev/design/conical for how our shader works. bool SkTwoPointConicalGradient::FocalData::set(SkScalar r0, SkScalar r1, SkMatrix* matrix) { @@ -268,7 +271,7 @@ skvm::F32 SkTwoPointConicalGradient::transformT(skvm::Builder* p, skvm::Uniforms #if SK_SUPPORT_GPU -#include "src/gpu/gradients/GrGradientShader.h" +#include "src/gpu/ganesh/gradients/GrGradientShader.h" std::unique_ptr SkTwoPointConicalGradient::asFragmentProcessor( const GrFPArgs& args) const { @@ -277,10 +280,10 @@ std::unique_ptr SkTwoPointConicalGradient::asFragmentProces #endif -void SkTwoPointConicalGradient::addToKey(SkShaderCodeDictionary* dict, - SkBackend backend, +#ifdef SK_ENABLE_SKSL +void SkTwoPointConicalGradient::addToKey(const SkKeyContext& keyContext, SkPaintParamsKeyBuilder* builder, - SkUniformBlock* uniformBlock) const { + SkPipelineDataGatherer* gatherer) const { GradientShaderBlocks::GradientData data(kConical_GradientType, fCenter1, fCenter2, fRadius1, fRadius2, @@ -289,5 +292,6 @@ void SkTwoPointConicalGradient::addToKey(SkShaderCodeDictionary* dict, fOrigColors4f, fOrigPos); - GradientShaderBlocks::AddToKey(dict, backend, builder, uniformBlock, data); + GradientShaderBlocks::AddToKey(keyContext, builder, gatherer, data); } +#endif diff --git a/third_party/skia/src/shaders/gradients/SkTwoPointConicalGradient.h b/third_party/skia/src/shaders/gradients/SkTwoPointConicalGradient.h index c5c1eab18c5a..44bc37f5588a 100644 --- a/third_party/skia/src/shaders/gradients/SkTwoPointConicalGradient.h +++ b/third_party/skia/src/shaders/gradients/SkTwoPointConicalGradient.h @@ -10,6 +10,8 @@ #include "src/shaders/gradients/SkGradientShaderPriv.h" +class SkShaderCodeDictionary; + class SkTwoPointConicalGradient final : public SkGradientShaderBase { public: // See https://skia.org/dev/design/conical for what focal data means and how our shader works. @@ -51,11 +53,11 @@ class SkTwoPointConicalGradient final : public SkGradientShaderBase { #if SK_SUPPORT_GPU std::unique_ptr asFragmentProcessor(const GrFPArgs&) const override; #endif - void addToKey(SkShaderCodeDictionary*, - SkBackend, +#ifdef SK_ENABLE_SKSL + void addToKey(const SkKeyContext&, SkPaintParamsKeyBuilder*, - SkUniformBlock*) const override; - + SkPipelineDataGatherer*) const override; +#endif bool isOpaque() const override; SkScalar getCenterX1() const { return SkPoint::Distance(fCenter1, fCenter2); } diff --git a/third_party/skia/src/sksl/BUILD.bazel b/third_party/skia/src/sksl/BUILD.bazel index a7584d205717..74a10a24e82b 100644 --- a/third_party/skia/src/sksl/BUILD.bazel +++ b/third_party/skia/src/sksl/BUILD.bazel @@ -1,4 +1,8 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") + +licenses(["notice"]) + +enforce_iwyu_on_package() filegroup( name = "txts", @@ -13,8 +17,7 @@ filegroup( ) cc_library( - name = "srcs", - visibility = ["//:__subpackages__"], + name = "core_srcs", deps = [ ":SkSLAnalysis_src", ":SkSLBuiltinMap_src", @@ -28,9 +31,10 @@ cc_library( ":SkSLInliner_src", ":SkSLLexer_src", ":SkSLMangler_src", - ":SkSLOperators_src", + ":SkSLOperator_src", ":SkSLOutputStream_src", ":SkSLPool_src", + ":SkSLPosition_src", ":SkSLRehydrator_src", ":SkSLSampleUsage_src", ":SkSLSharedCompiler_src", @@ -42,6 +46,7 @@ cc_library( "//src/sksl/analysis:SkSLFinalizationChecks_src", "//src/sksl/analysis:SkSLGetLoopUnrollInfo_src", "//src/sksl/analysis:SkSLIsConstantExpression_src", + "//src/sksl/analysis:SkSLIsSameExpressionTree_src", "//src/sksl/analysis:SkSLProgramUsage_src", "//src/sksl/analysis:SkSLSwitchCaseContainsExit_src", "//src/sksl/codegen:SkSLGLSLCodeGenerator_src", @@ -50,6 +55,7 @@ cc_library( "//src/sksl/codegen:SkSLSPIRVCodeGenerator_src", "//src/sksl/codegen:SkSLSPIRVtoHLSL_src", "//src/sksl/codegen:SkSLVMCodeGenerator_src", + "//src/sksl/codegen:SkSLWGSLCodeGenerator_src", "//src/sksl/dsl:DSLBlock_src", "//src/sksl/dsl:DSLCase_src", "//src/sksl/dsl:DSLCore_src", @@ -113,6 +119,54 @@ cc_library( ], ) +cc_library( + name = "skslc_deps", + visibility = ["//:__subpackages__"], + deps = [ + "//src/core:SkArenaAlloc_src", + "//src/core:SkBlockAllocator_src", + "//src/core:SkCpu_src", + "//src/core:SkData_src", + "//src/core:SkHalf_src", + "//src/core:SkMalloc_src", + "//src/core:SkMath_src", + "//src/core:SkMatrixInvert_src", + "//src/core:SkSemaphore_src", + "//src/core:SkStream_src", + "//src/core:SkStringUtils_src", + "//src/core:SkString_src", + "//src/core:SkThreadID_src", + "//src/core:SkUtils_src", + "//src/core:SkVM_src", + "//src/gpu/ganesh:GrMemoryPool_src", + "//src/ports:SkMemory_malloc_src", + "//src/ports:SkOSFile_stdio_src", + "//src/utils:SkJSONWriter_src", + "//src/utils:SkJSON_src", + "//src/utils:SkParse_src", + "//src/utils:SkShaderUtils_src", + "//src/utils:SkUTF_src", + "//src/utils:SkVMVisualizer_src", + ], +) + +cc_library( + name = "tracing_srcs", + deps = [ + "//src/sksl/tracing:SkVMDebugTracePlayer_src", + "//src/utils:json_srcs", + ], +) + +cc_library( + name = "srcs", + visibility = ["//:__subpackages__"], + deps = [":core_srcs"] + select({ + "//bazel/common_config_settings:enable_sksl_tracing_true": [":tracing_srcs"], + "//bazel/common_config_settings:enable_sksl_tracing_false": [], + }), +) + generated_cc_atom( name = "GLSL.std.450_hdr", hdrs = ["GLSL.std.450.h"], @@ -123,11 +177,7 @@ generated_cc_atom( name = "SkSLAnalysis_hdr", hdrs = ["SkSLAnalysis.h"], visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkSpan_hdr", - "//include/private:SkSLDefines_hdr", - "//include/private:SkSLSampleUsage_hdr", - ], + deps = ["//include/private:SkSLSampleUsage_hdr"], ) generated_cc_atom( @@ -136,53 +186,51 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLAnalysis_hdr", + ":SkSLBuiltinTypes_hdr", ":SkSLCompiler_hdr", ":SkSLConstantFolder_hdr", - "//include/private:SkFloatingPoint_hdr", + ":SkSLContext_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLLayout_hdr", "//include/private:SkSLModifiers_hdr", "//include/private:SkSLProgramElement_hdr", "//include/private:SkSLSampleUsage_hdr", "//include/private:SkSLStatement_hdr", + "//include/private:SkTArray_hdr", + "//include/private:SkTHash_hdr", "//include/sksl:SkSLErrorReporter_hdr", - "//src/core:SkSafeMath_hdr", + "//src/sksl/analysis:SkSLNoOpErrorReporter_hdr", "//src/sksl/analysis:SkSLProgramVisitor_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", "//src/sksl/ir:SkSLBlock_hdr", - "//src/sksl/ir:SkSLBreakStatement_hdr", "//src/sksl/ir:SkSLChildCall_hdr", - "//src/sksl/ir:SkSLConstructorDiagonalMatrix_hdr", - "//src/sksl/ir:SkSLConstructorMatrixResize_hdr", "//src/sksl/ir:SkSLConstructor_hdr", - "//src/sksl/ir:SkSLContinueStatement_hdr", - "//src/sksl/ir:SkSLDiscardStatement_hdr", "//src/sksl/ir:SkSLDoStatement_hdr", "//src/sksl/ir:SkSLExpressionStatement_hdr", "//src/sksl/ir:SkSLExpression_hdr", - "//src/sksl/ir:SkSLExtension_hdr", "//src/sksl/ir:SkSLExternalFunctionCall_hdr", - "//src/sksl/ir:SkSLExternalFunctionReference_hdr", "//src/sksl/ir:SkSLFieldAccess_hdr", "//src/sksl/ir:SkSLForStatement_hdr", "//src/sksl/ir:SkSLFunctionCall_hdr", + "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", - "//src/sksl/ir:SkSLFunctionReference_hdr", "//src/sksl/ir:SkSLIfStatement_hdr", "//src/sksl/ir:SkSLIndexExpression_hdr", - "//src/sksl/ir:SkSLInlineMarker_hdr", - "//src/sksl/ir:SkSLInterfaceBlock_hdr", "//src/sksl/ir:SkSLLiteral_hdr", - "//src/sksl/ir:SkSLNop_hdr", "//src/sksl/ir:SkSLPostfixExpression_hdr", "//src/sksl/ir:SkSLPrefixExpression_hdr", "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLReturnStatement_hdr", - "//src/sksl/ir:SkSLSetting_hdr", + "//src/sksl/ir:SkSLSwitchCase_hdr", "//src/sksl/ir:SkSLSwitchStatement_hdr", "//src/sksl/ir:SkSLSwizzle_hdr", "//src/sksl/ir:SkSLTernaryExpression_hdr", - "//src/sksl/ir:SkSLTypeReference_hdr", + "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", "//src/sksl/ir:SkSLVariableReference_hdr", + "//src/sksl/ir:SkSLVariable_hdr", "//src/sksl/transform:SkSLProgramWriter_hdr", ], ) @@ -202,8 +250,6 @@ generated_cc_atom( ":SkSLBuiltinTypes_hdr", ":SkSLCompiler_hdr", ":spirv_hdr", - "//include/private:SkSLModifiers_hdr", - "//src/sksl/ir:SkSLExpression_hdr", ], ) @@ -212,14 +258,18 @@ generated_cc_atom( hdrs = ["SkSLCompiler.h"], visibility = ["//:__subpackages__"], deps = [ - ":SkSLAnalysis_hdr", - ":SkSLContext_hdr", ":SkSLInliner_hdr", + ":SkSLMangler_hdr", + ":SkSLModifiersPool_hdr", ":SkSLParsedModule_hdr", "//include/core:SkSize_hdr", - "//src/gpu:GrShaderVar_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLProgramKind_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/sksl/ir:SkSLProgram_hdr", - "//src/sksl/ir:SkSLSymbolTable_hdr", ], ) @@ -229,44 +279,49 @@ generated_cc_atom( textual_hdrs = [":txts"], visibility = ["//:__subpackages__"], deps = [ + ":SkSLAnalysis_hdr", ":SkSLBuiltinMap_hdr", + ":SkSLBuiltinTypes_hdr", ":SkSLCompiler_hdr", - ":SkSLConstantFolder_hdr", + ":SkSLContext_hdr", ":SkSLDSLParser_hdr", - ":SkSLOperators_hdr", + ":SkSLOutputStream_hdr", ":SkSLProgramSettings_hdr", ":SkSLRehydrator_hdr", + ":SkSLStringStream_hdr", ":SkSLThreadContext_hdr", - "//include/gpu:GrContextOptions_hdr", + ":SkSLUtil_hdr", + "//include/private:SkSLLayout_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkSLSymbol_hdr", "//include/sksl:DSLCore_hdr", + "//include/sksl:DSLModifiers_hdr", + "//include/sksl:DSLType_hdr", "//src/core:SkTraceEvent_hdr", - "//src/gpu:GrShaderCaps_hdr", "//src/sksl/codegen:SkSLGLSLCodeGenerator_hdr", "//src/sksl/codegen:SkSLMetalCodeGenerator_hdr", "//src/sksl/codegen:SkSLSPIRVCodeGenerator_hdr", "//src/sksl/codegen:SkSLSPIRVtoHLSL_hdr", - "//src/sksl/dsl/priv:DSLWriter_hdr", - "//src/sksl/dsl/priv:DSL_priv_hdr", - "//src/sksl/ir:SkSLExpressionStatement_hdr", + "//src/sksl/codegen:SkSLWGSLCodeGenerator_hdr", "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLExternalFunctionReference_hdr", + "//src/sksl/ir:SkSLExternalFunction_hdr", "//src/sksl/ir:SkSLFieldAccess_hdr", "//src/sksl/ir:SkSLField_hdr", - "//src/sksl/ir:SkSLFunctionCall_hdr", + "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", "//src/sksl/ir:SkSLFunctionReference_hdr", "//src/sksl/ir:SkSLInterfaceBlock_hdr", - "//src/sksl/ir:SkSLLiteral_hdr", - "//src/sksl/ir:SkSLModifiersDeclaration_hdr", - "//src/sksl/ir:SkSLNop_hdr", "//src/sksl/ir:SkSLSymbolTable_hdr", - "//src/sksl/ir:SkSLTernaryExpression_hdr", "//src/sksl/ir:SkSLTypeReference_hdr", + "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLUnresolvedFunction_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", - "//src/sksl/transform:SkSLProgramWriter_hdr", + "//src/sksl/ir:SkSLVariableReference_hdr", + "//src/sksl/ir:SkSLVariable_hdr", "//src/sksl/transform:SkSLTransform_hdr", - "//src/utils:SkBitSet_hdr", + "@spirv_tools", ], ) @@ -275,8 +330,8 @@ generated_cc_atom( hdrs = ["SkSLConstantFolder.h"], visibility = ["//:__subpackages__"], deps = [ - ":SkSLOperators_hdr", "//include/private:SkSLDefines_hdr", + "//include/sksl:SkSLOperator_hdr", ], ) @@ -288,9 +343,10 @@ generated_cc_atom( ":SkSLAnalysis_hdr", ":SkSLConstantFolder_hdr", ":SkSLContext_hdr", - ":SkSLProgramSettings_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLModifiers_hdr", "//include/sksl:SkSLErrorReporter_hdr", - "//src/sksl/ir:SkSLBinaryExpression_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/sksl/ir:SkSLConstructorCompound_hdr", "//src/sksl/ir:SkSLConstructorSplat_hdr", "//src/sksl/ir:SkSLConstructor_hdr", @@ -307,11 +363,7 @@ generated_cc_atom( name = "SkSLContext_hdr", hdrs = ["SkSLContext.h"], visibility = ["//:__subpackages__"], - deps = [ - ":SkSLBuiltinTypes_hdr", - ":SkSLUtil_hdr", - "//src/sksl/ir:SkSLType_hdr", - ], + deps = [":SkSLBuiltinTypes_hdr"], ) generated_cc_atom( @@ -321,34 +373,63 @@ generated_cc_atom( deps = [ ":SkSLContext_hdr", ":SkSLPool_hdr", + "//include/core:SkTypes_hdr", ], ) generated_cc_atom( name = "SkSLDSLParser_hdr", hdrs = ["SkSLDSLParser.h"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ + ":SkSLCompiler_hdr", ":SkSLLexer_hdr", + ":SkSLProgramSettings_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", "//include/private:SkSLProgramKind_hdr", - "//include/sksl:DSLSymbols_hdr", - "//include/sksl:DSL_hdr", - "//src/sksl/ir:SkSLProgram_hdr", + "//include/private:SkTArray_hdr", + "//include/private:SkTHash_hdr", + "//include/sksl:DSLCore_hdr", + "//include/sksl:DSLExpression_hdr", + "//include/sksl:DSLLayout_hdr", + "//include/sksl:DSLModifiers_hdr", + "//include/sksl:DSLStatement_hdr", + "//include/sksl:DSLType_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLOperator_hdr", + "//include/sksl:SkSLPosition_hdr", ], ) generated_cc_atom( name = "SkSLDSLParser_src", srcs = ["SkSLDSLParser.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":SkSLCompiler_hdr", ":SkSLConstantFolder_hdr", ":SkSLDSLParser_hdr", + ":SkSLParsedModule_hdr", ":SkSLThreadContext_hdr", + "//include/core:SkSpan_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLProgramElement_hdr", "//include/private:SkSLString_hdr", + "//include/sksl:DSLBlock_hdr", + "//include/sksl:DSLCase_hdr", + "//include/sksl:DSLFunction_hdr", + "//include/sksl:DSLSymbols_hdr", + "//include/sksl:DSLVar_hdr", + "//include/sksl:DSLWrapper_hdr", + "//include/sksl:DSL_hdr", + "//include/sksl:SkSLOperator_hdr", "//src/sksl/dsl/priv:DSLWriter_hdr", "//src/sksl/dsl/priv:DSL_priv_hdr", + "//src/sksl/ir:SkSLExpression_hdr", + "//src/sksl/ir:SkSLProgram_hdr", ], ) @@ -357,11 +438,8 @@ generated_cc_atom( hdrs = ["SkSLDehydrator.h"], visibility = ["//:__subpackages__"], deps = [ - ":SkSLOutputStream_hdr", ":SkSLStringStream_hdr", - "//include/core:SkSpan_hdr", - "//include/private:SkSLModifiers_hdr", - "//include/private:SkSLSymbol_hdr", + "//include/core:SkTypes_hdr", "//include/private:SkTHash_hdr", ], ) @@ -372,12 +450,20 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLDehydrator_hdr", + ":SkSLOutputStream_hdr", + ":SkSLProgramSettings_hdr", ":SkSLRehydrator_hdr", + "//include/core:SkSpan_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLLayout_hdr", + "//include/private:SkSLModifiers_hdr", "//include/private:SkSLProgramElement_hdr", "//include/private:SkSLStatement_hdr", "//include/private:SkSLSymbol_hdr", + "//include/private:SkTArray_hdr", + "//include/sksl:SkSLOperator_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", - "//src/sksl/ir:SkSLBreakStatement_hdr", + "//src/sksl/ir:SkSLBlock_hdr", "//src/sksl/ir:SkSLConstructorArrayCast_hdr", "//src/sksl/ir:SkSLConstructorArray_hdr", "//src/sksl/ir:SkSLConstructorCompoundCast_hdr", @@ -387,11 +473,9 @@ generated_cc_atom( "//src/sksl/ir:SkSLConstructorScalarCast_hdr", "//src/sksl/ir:SkSLConstructorSplat_hdr", "//src/sksl/ir:SkSLConstructorStruct_hdr", - "//src/sksl/ir:SkSLConstructor_hdr", - "//src/sksl/ir:SkSLContinueStatement_hdr", - "//src/sksl/ir:SkSLDiscardStatement_hdr", "//src/sksl/ir:SkSLDoStatement_hdr", "//src/sksl/ir:SkSLExpressionStatement_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLFieldAccess_hdr", "//src/sksl/ir:SkSLField_hdr", "//src/sksl/ir:SkSLForStatement_hdr", @@ -406,6 +490,7 @@ generated_cc_atom( "//src/sksl/ir:SkSLLiteral_hdr", "//src/sksl/ir:SkSLPostfixExpression_hdr", "//src/sksl/ir:SkSLPrefixExpression_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLReturnStatement_hdr", "//src/sksl/ir:SkSLSetting_hdr", "//src/sksl/ir:SkSLStructDefinition_hdr", @@ -414,8 +499,10 @@ generated_cc_atom( "//src/sksl/ir:SkSLSwizzle_hdr", "//src/sksl/ir:SkSLSymbolTable_hdr", "//src/sksl/ir:SkSLTernaryExpression_hdr", + "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLUnresolvedFunction_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", + "//src/sksl/ir:SkSLVariableReference_hdr", "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -428,7 +515,7 @@ generated_cc_atom( ":SkSLCompiler_hdr", "//include/private:SkStringView_hdr", "//include/sksl:SkSLErrorReporter_hdr", - "//src/sksl/dsl/priv:DSLWriter_hdr", + "//include/sksl:SkSLPosition_hdr", ], ) @@ -453,9 +540,12 @@ generated_cc_atom( hdrs = ["SkSLInliner.h"], visibility = ["//:__subpackages__"], deps = [ - ":SkSLMangler_hdr", + ":SkSLContext_hdr", + ":SkSLProgramSettings_hdr", + "//include/private:SkTHash_hdr", + "//src/sksl/ir:SkSLBlock_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLProgram_hdr", - "//src/sksl/ir:SkSLVariableReference_hdr", ], ) @@ -464,11 +554,21 @@ generated_cc_atom( srcs = ["SkSLInliner.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":SkSLAnalysis_hdr", ":SkSLInliner_hdr", - "//include/private:SkSLLayout_hdr", + ":SkSLMangler_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkTArray_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLOperator_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/sksl/analysis:SkSLProgramVisitor_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", - "//src/sksl/ir:SkSLBreakStatement_hdr", "//src/sksl/ir:SkSLChildCall_hdr", "//src/sksl/ir:SkSLConstructorArrayCast_hdr", "//src/sksl/ir:SkSLConstructorArray_hdr", @@ -480,34 +580,28 @@ generated_cc_atom( "//src/sksl/ir:SkSLConstructorSplat_hdr", "//src/sksl/ir:SkSLConstructorStruct_hdr", "//src/sksl/ir:SkSLConstructor_hdr", - "//src/sksl/ir:SkSLContinueStatement_hdr", - "//src/sksl/ir:SkSLDiscardStatement_hdr", "//src/sksl/ir:SkSLDoStatement_hdr", "//src/sksl/ir:SkSLExpressionStatement_hdr", "//src/sksl/ir:SkSLExternalFunctionCall_hdr", - "//src/sksl/ir:SkSLExternalFunctionReference_hdr", "//src/sksl/ir:SkSLFieldAccess_hdr", - "//src/sksl/ir:SkSLField_hdr", "//src/sksl/ir:SkSLForStatement_hdr", "//src/sksl/ir:SkSLFunctionCall_hdr", "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", - "//src/sksl/ir:SkSLFunctionReference_hdr", "//src/sksl/ir:SkSLIfStatement_hdr", "//src/sksl/ir:SkSLIndexExpression_hdr", "//src/sksl/ir:SkSLInlineMarker_hdr", - "//src/sksl/ir:SkSLInterfaceBlock_hdr", "//src/sksl/ir:SkSLLiteral_hdr", "//src/sksl/ir:SkSLNop_hdr", "//src/sksl/ir:SkSLPostfixExpression_hdr", "//src/sksl/ir:SkSLPrefixExpression_hdr", "//src/sksl/ir:SkSLReturnStatement_hdr", - "//src/sksl/ir:SkSLSetting_hdr", "//src/sksl/ir:SkSLSwitchCase_hdr", "//src/sksl/ir:SkSLSwitchStatement_hdr", "//src/sksl/ir:SkSLSwizzle_hdr", + "//src/sksl/ir:SkSLSymbolTable_hdr", "//src/sksl/ir:SkSLTernaryExpression_hdr", - "//src/sksl/ir:SkSLUnresolvedFunction_hdr", + "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", "//src/sksl/ir:SkSLVariableReference_hdr", "//src/sksl/ir:SkSLVariable_hdr", @@ -533,38 +627,10 @@ generated_cc_atom( deps = [":SkSLLexer_hdr"], ) -generated_cc_atom( - name = "SkSLMain_src", - srcs = ["SkSLMain.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":SkSLCompiler_hdr", - ":SkSLDehydrator_hdr", - ":SkSLFileOutputStream_hdr", - ":SkSLStringStream_hdr", - ":SkSLUtil_hdr", - "//include/core:SkGraphics_hdr", - "//include/core:SkStream_hdr", - "//include/private:SkStringView_hdr", - "//src/core:SkCpu_hdr", - "//src/core:SkOpts_hdr", - "//src/opts:SkChecksum_opts_hdr", - "//src/opts:SkVM_opts_hdr", - "//src/sksl/codegen:SkSLPipelineStageCodeGenerator_hdr", - "//src/sksl/codegen:SkSLVMCodeGenerator_hdr", - "//src/sksl/ir:SkSLUnresolvedFunction_hdr", - "//src/sksl/ir:SkSLVarDeclarations_hdr", - "//src/sksl/tracing:SkVMDebugTrace_hdr", - "//src/utils:SkShaderUtils_hdr", - "//src/utils:SkVMVisualizer_hdr", - ], -) - generated_cc_atom( name = "SkSLMangler_hdr", hdrs = ["SkSLMangler.h"], visibility = ["//:__subpackages__"], - deps = ["//include/private:SkSLString_hdr"], ) generated_cc_atom( @@ -573,6 +639,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLMangler_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLString_hdr", "//include/private:SkStringView_hdr", "//src/sksl/ir:SkSLSymbolTable_hdr", ], @@ -591,7 +659,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/core:SkTypes_hdr", - "//src/gpu:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", ], ) @@ -602,38 +670,11 @@ generated_cc_atom( deps = ["//include/private:SkSLModifiers_hdr"], ) -generated_cc_atom( - name = "SkSLOperators_hdr", - hdrs = ["SkSLOperators.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":SkSLLexer_hdr", - "//include/private:SkSLDefines_hdr", - ], -) - -generated_cc_atom( - name = "SkSLOperators_src", - srcs = ["SkSLOperators.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":SkSLContext_hdr", - ":SkSLOperators_hdr", - ":SkSLProgramSettings_hdr", - "//include/core:SkTypes_hdr", - "//include/private:SkStringView_hdr", - "//src/sksl/ir:SkSLType_hdr", - ], -) - generated_cc_atom( name = "SkSLOutputStream_hdr", hdrs = ["SkSLOutputStream.h"], visibility = ["//:__subpackages__"], - deps = [ - "//include/private:SkSLDefines_hdr", - "//include/private:SkSLString_hdr", - ], + deps = ["//include/core:SkTypes_hdr"], ) generated_cc_atom( @@ -662,7 +703,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLPool_hdr", - "//include/private:SkSLDefines_hdr", + "//include/core:SkTypes_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", ], ) @@ -682,10 +724,12 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLContext_hdr", + "//include/core:SkTypes_hdr", "//include/private:SkSLDefines_hdr", + "//include/private:SkSLLayout_hdr", "//include/private:SkSLModifiers_hdr", "//include/private:SkSLSymbol_hdr", - "//src/sksl/ir:SkSLProgram_hdr", + "//src/sksl/ir:SkSLSymbolTable_hdr", ], ) @@ -696,13 +740,24 @@ generated_cc_atom( deps = [ ":SkSLAnalysis_hdr", ":SkSLCompiler_hdr", + ":SkSLModifiersPool_hdr", + ":SkSLParsedModule_hdr", + ":SkSLPool_hdr", + ":SkSLProgramSettings_hdr", ":SkSLRehydrator_hdr", ":SkSLThreadContext_hdr", "//include/private:SkSLModifiers_hdr", "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLProgramKind_hdr", "//include/private:SkSLStatement_hdr", + "//include/private:SkTArray_hdr", + "//include/sksl:DSLCore_hdr", + "//include/sksl:SkSLOperator_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", + "//src/sksl/ir:SkSLBlock_hdr", "//src/sksl/ir:SkSLBreakStatement_hdr", + "//src/sksl/ir:SkSLConstructorArrayCast_hdr", "//src/sksl/ir:SkSLConstructorArray_hdr", "//src/sksl/ir:SkSLConstructorCompoundCast_hdr", "//src/sksl/ir:SkSLConstructorCompound_hdr", @@ -711,7 +766,6 @@ generated_cc_atom( "//src/sksl/ir:SkSLConstructorScalarCast_hdr", "//src/sksl/ir:SkSLConstructorSplat_hdr", "//src/sksl/ir:SkSLConstructorStruct_hdr", - "//src/sksl/ir:SkSLConstructor_hdr", "//src/sksl/ir:SkSLContinueStatement_hdr", "//src/sksl/ir:SkSLDiscardStatement_hdr", "//src/sksl/ir:SkSLDoStatement_hdr", @@ -732,6 +786,7 @@ generated_cc_atom( "//src/sksl/ir:SkSLNop_hdr", "//src/sksl/ir:SkSLPostfixExpression_hdr", "//src/sksl/ir:SkSLPrefixExpression_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLReturnStatement_hdr", "//src/sksl/ir:SkSLSetting_hdr", "//src/sksl/ir:SkSLStructDefinition_hdr", @@ -743,6 +798,7 @@ generated_cc_atom( "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLUnresolvedFunction_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", + "//src/sksl/ir:SkSLVariableReference_hdr", "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -769,10 +825,7 @@ generated_cc_atom( name = "SkSLString_src", srcs = ["SkSLString.cpp"], visibility = ["//:__subpackages__"], - deps = [ - ":SkSLUtil_hdr", - "//include/private:SkSLString_hdr", - ], + deps = ["//include/private:SkSLString_hdr"], ) generated_cc_atom( @@ -780,9 +833,14 @@ generated_cc_atom( hdrs = ["SkSLThreadContext.h"], visibility = ["//:__subpackages__"], deps = [ + ":SkSLContext_hdr", ":SkSLMangler_hdr", - "//include/private:SkSLModifiers_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + ":SkSLProgramSettings_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLProgramKind_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", "//src/sksl/ir:SkSLProgram_hdr", ], ) @@ -794,10 +852,17 @@ generated_cc_atom( deps = [ ":SkSLBuiltinMap_hdr", ":SkSLCompiler_hdr", + ":SkSLModifiersPool_hdr", + ":SkSLParsedModule_hdr", + ":SkSLPool_hdr", ":SkSLThreadContext_hdr", + ":SkSLUtil_hdr", + "//include/private:SkSLProgramElement_hdr", "//include/sksl:DSLSymbols_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//include/sksl:SkSLPosition_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", "//src/sksl/ir:SkSLExternalFunction_hdr", + "//src/sksl/ir:SkSLSymbolTable_hdr", ], ) @@ -807,11 +872,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLGLSL_hdr", - ":SkSLLexer_hdr", "//include/core:SkTypes_hdr", - "//include/gpu:GrContextOptions_hdr", - "//include/private:GrTypesPriv_hdr", - "//include/private:SkSLDefines_hdr", "//src/core:SkSLTypeShared_hdr", ], ) @@ -821,10 +882,12 @@ generated_cc_atom( srcs = ["SkSLUtil.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":SkSLBuiltinTypes_hdr", ":SkSLContext_hdr", + ":SkSLOutputStream_hdr", ":SkSLStringStream_hdr", ":SkSLUtil_hdr", - "//src/gpu:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", "//src/sksl/ir:SkSLType_hdr", ], ) @@ -839,7 +902,10 @@ generated_cc_atom( name = "SkSLBuiltinMap_hdr", hdrs = ["SkSLBuiltinMap.h"], visibility = ["//:__subpackages__"], - deps = ["//include/private:SkSLString_hdr"], + deps = [ + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkTHash_hdr", + ], ) generated_cc_atom( @@ -848,8 +914,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLBuiltinMap_hdr", + "//include/core:SkTypes_hdr", "//include/private:SkSLProgramElement_hdr", - "//include/private:SkSLString_hdr", ], ) @@ -858,7 +924,7 @@ generated_cc_atom( hdrs = ["SkSLSharedCompiler.h"], visibility = ["//:__subpackages__"], deps = [ - ":SkSLCompiler_hdr", + "//include/core:SkTypes_hdr", "//include/private:SkMutex_hdr", ], ) @@ -867,5 +933,31 @@ generated_cc_atom( name = "SkSLSharedCompiler_src", srcs = ["SkSLSharedCompiler.cpp"], visibility = ["//:__subpackages__"], - deps = [":SkSLSharedCompiler_hdr"], + deps = [ + ":SkSLCompiler_hdr", + ":SkSLSharedCompiler_hdr", + ":SkSLUtil_hdr", + ], +) + +generated_cc_atom( + name = "SkSLPosition_src", + srcs = ["SkSLPosition.cpp"], + visibility = ["//:__subpackages__"], + deps = ["//include/sksl:SkSLPosition_hdr"], +) + +generated_cc_atom( + name = "SkSLOperator_src", + srcs = ["SkSLOperator.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":SkSLBuiltinTypes_hdr", + ":SkSLContext_hdr", + ":SkSLProgramSettings_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkStringView_hdr", + "//include/sksl:SkSLOperator_hdr", + "//src/sksl/ir:SkSLType_hdr", + ], ) diff --git a/third_party/skia/src/sksl/SkSLAnalysis.cpp b/third_party/skia/src/sksl/SkSLAnalysis.cpp index 9a0b917fcab4..eb597442f524 100644 --- a/third_party/skia/src/sksl/SkSLAnalysis.cpp +++ b/third_party/skia/src/sksl/SkSLAnalysis.cpp @@ -7,60 +7,55 @@ #include "src/sksl/SkSLAnalysis.h" -#include "include/private/SkFloatingPoint.h" +#include "include/core/SkSpan.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLLayout.h" #include "include/private/SkSLModifiers.h" #include "include/private/SkSLProgramElement.h" #include "include/private/SkSLSampleUsage.h" #include "include/private/SkSLStatement.h" +#include "include/private/SkTArray.h" +#include "include/private/SkTHash.h" #include "include/sksl/SkSLErrorReporter.h" -#include "src/core/SkSafeMath.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/SkSLConstantFolder.h" +#include "src/sksl/SkSLContext.h" +#include "src/sksl/analysis/SkSLNoOpErrorReporter.h" #include "src/sksl/analysis/SkSLProgramVisitor.h" -#include "src/sksl/ir/SkSLExpression.h" -#include "src/sksl/ir/SkSLProgram.h" -#include "src/sksl/transform/SkSLProgramWriter.h" - -// ProgramElements -#include "src/sksl/ir/SkSLExtension.h" -#include "src/sksl/ir/SkSLFunctionDefinition.h" -#include "src/sksl/ir/SkSLInterfaceBlock.h" -#include "src/sksl/ir/SkSLVarDeclarations.h" - -// Statements -#include "src/sksl/ir/SkSLBlock.h" -#include "src/sksl/ir/SkSLBreakStatement.h" -#include "src/sksl/ir/SkSLContinueStatement.h" -#include "src/sksl/ir/SkSLDiscardStatement.h" -#include "src/sksl/ir/SkSLDoStatement.h" -#include "src/sksl/ir/SkSLExpressionStatement.h" -#include "src/sksl/ir/SkSLForStatement.h" -#include "src/sksl/ir/SkSLIfStatement.h" -#include "src/sksl/ir/SkSLNop.h" -#include "src/sksl/ir/SkSLReturnStatement.h" -#include "src/sksl/ir/SkSLSwitchStatement.h" - -// Expressions #include "src/sksl/ir/SkSLBinaryExpression.h" +#include "src/sksl/ir/SkSLBlock.h" #include "src/sksl/ir/SkSLChildCall.h" #include "src/sksl/ir/SkSLConstructor.h" -#include "src/sksl/ir/SkSLConstructorDiagonalMatrix.h" -#include "src/sksl/ir/SkSLConstructorMatrixResize.h" +#include "src/sksl/ir/SkSLDoStatement.h" +#include "src/sksl/ir/SkSLExpression.h" +#include "src/sksl/ir/SkSLExpressionStatement.h" #include "src/sksl/ir/SkSLExternalFunctionCall.h" -#include "src/sksl/ir/SkSLExternalFunctionReference.h" #include "src/sksl/ir/SkSLFieldAccess.h" +#include "src/sksl/ir/SkSLForStatement.h" #include "src/sksl/ir/SkSLFunctionCall.h" -#include "src/sksl/ir/SkSLFunctionReference.h" +#include "src/sksl/ir/SkSLFunctionDeclaration.h" +#include "src/sksl/ir/SkSLFunctionDefinition.h" +#include "src/sksl/ir/SkSLIfStatement.h" #include "src/sksl/ir/SkSLIndexExpression.h" -#include "src/sksl/ir/SkSLInlineMarker.h" #include "src/sksl/ir/SkSLLiteral.h" #include "src/sksl/ir/SkSLPostfixExpression.h" #include "src/sksl/ir/SkSLPrefixExpression.h" -#include "src/sksl/ir/SkSLSetting.h" +#include "src/sksl/ir/SkSLProgram.h" +#include "src/sksl/ir/SkSLReturnStatement.h" +#include "src/sksl/ir/SkSLSwitchCase.h" +#include "src/sksl/ir/SkSLSwitchStatement.h" #include "src/sksl/ir/SkSLSwizzle.h" #include "src/sksl/ir/SkSLTernaryExpression.h" -#include "src/sksl/ir/SkSLTypeReference.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" +#include "src/sksl/transform/SkSLProgramWriter.h" + +#include +#include namespace SkSL { @@ -245,13 +240,6 @@ class VariableWriteVisitor : public ProgramVisitor { using INHERITED = ProgramVisitor; }; -// If a caller doesn't care about errors, we can use this trivial reporter that just counts up. -class TrivialErrorReporter : public ErrorReporter { -public: - ~TrivialErrorReporter() override { this->reportPendingErrors({}); } - void handleError(std::string_view, PositionInfo) override {} -}; - // This isn't actually using ProgramVisitor, because it only considers a subset of the fields for // any given expression kind. For instance, when indexing an array (e.g. `x[1]`), we only want to // know if the base (`x`) is assignable; the index expression (`1`) doesn't need to be. @@ -274,8 +262,8 @@ class IsAssignableVisitor { VariableReference& varRef = expr.as(); const Variable* var = varRef.variable(); if (var->modifiers().fFlags & (Modifiers::kConst_Flag | Modifiers::kUniform_Flag)) { - fErrors->error(expr.fLine, "cannot modify immutable variable '" + - std::string(var->name()) + "'"); + fErrors->error(expr.fPosition, "cannot modify immutable variable '" + + std::string(var->name()) + "'"); } else { SkASSERT(fAssignedVar == nullptr); fAssignedVar = &varRef; @@ -300,7 +288,7 @@ class IsAssignableVisitor { break; default: - fErrors->error(expr.fLine, "cannot assign to this expression"); + fErrors->error(expr.fPosition, "cannot assign to this expression"); break; } } @@ -312,7 +300,7 @@ class IsAssignableVisitor { SkASSERT(idx >= SwizzleComponent::X && idx <= SwizzleComponent::W); int bit = 1 << idx; if (bits & bit) { - fErrors->error(swizzle.fLine, + fErrors->error(swizzle.fPosition, "cannot write to the same swizzle field more than once"); break; } @@ -403,8 +391,8 @@ bool Analysis::DetectVarDeclarationWithoutScope(const Statement& stmt, ErrorRepo // Report an error. SkASSERT(var); if (errors) { - errors->error(stmt.fLine, "variable '" + std::string(var->name()) + - "' must be created in a scope"); + errors->error(var->fPosition, + "variable '" + std::string(var->name()) + "' must be created in a scope"); } return true; } @@ -418,8 +406,8 @@ bool Analysis::StatementWritesToVariable(const Statement& stmt, const Variable& } bool Analysis::IsAssignable(Expression& expr, AssignmentInfo* info, ErrorReporter* errors) { - TrivialErrorReporter trivialErrors; - return IsAssignableVisitor{errors ? errors : &trivialErrors}.visit(expr, info); + NoOpErrorReporter unusedErrors; + return IsAssignableVisitor{errors ? errors : &unusedErrors}.visit(expr, info); } bool Analysis::UpdateVariableRefKind(Expression* expr, @@ -431,7 +419,8 @@ bool Analysis::UpdateVariableRefKind(Expression* expr, } if (!info.fAssignedVar) { if (errors) { - errors->error(expr->fLine, "can't assign to expression '" + expr->description() + "'"); + errors->error(expr->fPosition, "can't assign to expression '" + expr->description() + + "'"); } return false; } @@ -456,69 +445,6 @@ bool Analysis::IsTrivialExpression(const Expression& expr) { IsTrivialExpression(*expr.as().base())); } -bool Analysis::IsSameExpressionTree(const Expression& left, const Expression& right) { - if (left.kind() != right.kind() || !left.type().matches(right.type())) { - return false; - } - - // This isn't a fully exhaustive list of expressions by any stretch of the imagination; for - // instance, `x[y+1] = x[y+1]` isn't detected because we don't look at BinaryExpressions. - // Since this is intended to be used for optimization purposes, handling the common cases is - // sufficient. - switch (left.kind()) { - case Expression::Kind::kLiteral: - return left.as().value() == right.as().value(); - - case Expression::Kind::kConstructorArray: - case Expression::Kind::kConstructorArrayCast: - case Expression::Kind::kConstructorCompound: - case Expression::Kind::kConstructorCompoundCast: - case Expression::Kind::kConstructorDiagonalMatrix: - case Expression::Kind::kConstructorMatrixResize: - case Expression::Kind::kConstructorScalarCast: - case Expression::Kind::kConstructorStruct: - case Expression::Kind::kConstructorSplat: { - if (left.kind() != right.kind()) { - return false; - } - const AnyConstructor& leftCtor = left.asAnyConstructor(); - const AnyConstructor& rightCtor = right.asAnyConstructor(); - const auto leftSpan = leftCtor.argumentSpan(); - const auto rightSpan = rightCtor.argumentSpan(); - if (leftSpan.size() != rightSpan.size()) { - return false; - } - for (size_t index = 0; index < leftSpan.size(); ++index) { - if (!IsSameExpressionTree(*leftSpan[index], *rightSpan[index])) { - return false; - } - } - return true; - } - case Expression::Kind::kFieldAccess: - return left.as().fieldIndex() == right.as().fieldIndex() && - IsSameExpressionTree(*left.as().base(), - *right.as().base()); - - case Expression::Kind::kIndex: - return IsSameExpressionTree(*left.as().index(), - *right.as().index()) && - IsSameExpressionTree(*left.as().base(), - *right.as().base()); - - case Expression::Kind::kSwizzle: - return left.as().components() == right.as().components() && - IsSameExpressionTree(*left.as().base(), *right.as().base()); - - case Expression::Kind::kVariableReference: - return left.as().variable() == - right.as().variable(); - - default: - return false; - } -} - class ES2IndexingVisitor : public ProgramVisitor { public: ES2IndexingVisitor(ErrorReporter& errors) : fErrors(errors) {} @@ -541,7 +467,7 @@ class ES2IndexingVisitor : public ProgramVisitor { if (e.is()) { const IndexExpression& i = e.as(); if (!Analysis::IsConstantIndexExpression(*i.index(), &fLoopIndices)) { - fErrors.error(i.fLine, "index expression must be constant"); + fErrors.error(i.fPosition, "index expression must be constant"); return true; } } diff --git a/third_party/skia/src/sksl/SkSLAnalysis.h b/third_party/skia/src/sksl/SkSLAnalysis.h index 3353df311d30..b94f3b336629 100644 --- a/third_party/skia/src/sksl/SkSLAnalysis.h +++ b/third_party/skia/src/sksl/SkSLAnalysis.h @@ -8,10 +8,9 @@ #ifndef SkSLAnalysis_DEFINED #define SkSLAnalysis_DEFINED -#include "include/core/SkSpan.h" -#include "include/private/SkSLDefines.h" #include "include/private/SkSLSampleUsage.h" +#include #include #include @@ -19,18 +18,18 @@ namespace SkSL { class ErrorReporter; class Expression; -class ForStatement; class FunctionDeclaration; class FunctionDefinition; -struct LoadedModule; -struct Program; +class Position; class ProgramElement; class ProgramUsage; class Statement; -struct LoopUnrollInfo; class Variable; class VariableReference; enum class VariableRefKind : int8_t; +struct LoadedModule; +struct LoopUnrollInfo; +struct Program; /** * Provides utilities for analyzing SkSL statically before it's composed into a full program. @@ -165,7 +164,7 @@ bool IsConstantIndexExpression(const Expression& expr, * If the requirements are not met, the problem is reported via `errors` (if not nullptr), and * null is returned. */ -std::unique_ptr GetLoopUnrollInfo(int line, +std::unique_ptr GetLoopUnrollInfo(Position pos, const Statement* loopInitializer, const Expression* loopTest, const Expression* loopNext, diff --git a/third_party/skia/src/sksl/SkSLBuiltinMap.cpp b/third_party/skia/src/sksl/SkSLBuiltinMap.cpp index fa33ad84287b..e88adf7d4858 100644 --- a/third_party/skia/src/sksl/SkSLBuiltinMap.cpp +++ b/third_party/skia/src/sksl/SkSLBuiltinMap.cpp @@ -5,42 +5,45 @@ * found in the LICENSE file. */ -#include "include/private/SkSLProgramElement.h" -#include "include/private/SkSLString.h" #include "src/sksl/SkSLBuiltinMap.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLProgramElement.h" + +#include + namespace SkSL { void BuiltinMap::insertOrDie(std::string key, std::unique_ptr element) { - SkASSERT(fElements.find(key) == fElements.end()); - fElements[key] = BuiltinElement{std::move(element), false}; + SkASSERT(!fElements.find(key)); + fElements.set(std::move(key), BuiltinElement{std::move(element), /*fAlreadyIncluded=*/false}); } const ProgramElement* BuiltinMap::find(const std::string& key) { - auto iter = fElements.find(key); - if (iter == fElements.end()) { + BuiltinElement* elem = fElements.find(key); + if (!elem) { return fParent ? fParent->find(key) : nullptr; } - return iter->second.fElement.get(); + return elem->fElement.get(); } // Only returns a builtin element that isn't already marked as included, and then marks it. const ProgramElement* BuiltinMap::findAndInclude(const std::string& key) { - auto iter = fElements.find(key); - if (iter == fElements.end()) { + BuiltinElement* elem = fElements.find(key); + if (!elem) { return fParent ? fParent->findAndInclude(key) : nullptr; } - if (iter->second.fAlreadyIncluded) { + if (elem->fAlreadyIncluded) { return nullptr; } - iter->second.fAlreadyIncluded = true; - return iter->second.fElement.get(); + elem->fAlreadyIncluded = true; + return elem->fElement.get(); } void BuiltinMap::resetAlreadyIncluded() { - for (auto& pair : fElements) { - pair.second.fAlreadyIncluded = false; - } + fElements.foreach([](const std::string&, BuiltinElement* elem) { + elem->fAlreadyIncluded = false; + }); if (fParent) { fParent->resetAlreadyIncluded(); } diff --git a/third_party/skia/src/sksl/SkSLBuiltinMap.h b/third_party/skia/src/sksl/SkSLBuiltinMap.h index 3c4c707b3952..55bf0003e0cf 100644 --- a/third_party/skia/src/sksl/SkSLBuiltinMap.h +++ b/third_party/skia/src/sksl/SkSLBuiltinMap.h @@ -8,15 +8,14 @@ #ifndef SKSL_BUILTINMAP #define SKSL_BUILTINMAP -#include "include/private/SkSLString.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkTHash.h" #include -#include +#include namespace SkSL { -class ProgramElement; - /** * Represents the builtin elements in the Context. */ @@ -38,7 +37,7 @@ class BuiltinMap { bool fAlreadyIncluded = false; }; - std::unordered_map fElements; + SkTHashMap fElements; BuiltinMap* fParent = nullptr; }; diff --git a/third_party/skia/src/sksl/SkSLBuiltinTypes.cpp b/third_party/skia/src/sksl/SkSLBuiltinTypes.cpp index 84ab9485cc68..31ad14fdc0be 100644 --- a/third_party/skia/src/sksl/SkSLBuiltinTypes.cpp +++ b/third_party/skia/src/sksl/SkSLBuiltinTypes.cpp @@ -7,9 +7,7 @@ #include "src/sksl/SkSLBuiltinTypes.h" -#include "include/private/SkSLModifiers.h" #include "src/sksl/SkSLCompiler.h" -#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/spirv.h" namespace SkSL { diff --git a/third_party/skia/src/sksl/SkSLCompiler.cpp b/third_party/skia/src/sksl/SkSLCompiler.cpp index 156989310655..1fedca95c5b0 100644 --- a/third_party/skia/src/sksl/SkSLCompiler.cpp +++ b/third_party/skia/src/sksl/SkSLCompiler.cpp @@ -7,51 +7,53 @@ #include "src/sksl/SkSLCompiler.h" -#include -#include - +#include "include/private/SkSLLayout.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkSLSymbol.h" #include "include/sksl/DSLCore.h" +#include "include/sksl/DSLModifiers.h" +#include "include/sksl/DSLType.h" #include "src/core/SkTraceEvent.h" +#include "src/sksl/SkSLAnalysis.h" #include "src/sksl/SkSLBuiltinMap.h" -#include "src/sksl/SkSLConstantFolder.h" +#include "src/sksl/SkSLBuiltinTypes.h" +#include "src/sksl/SkSLContext.h" #include "src/sksl/SkSLDSLParser.h" -#include "src/sksl/SkSLOperators.h" +#include "src/sksl/SkSLOutputStream.h" #include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/SkSLRehydrator.h" +#include "src/sksl/SkSLStringStream.h" #include "src/sksl/SkSLThreadContext.h" +#include "src/sksl/SkSLUtil.h" #include "src/sksl/codegen/SkSLGLSLCodeGenerator.h" #include "src/sksl/codegen/SkSLMetalCodeGenerator.h" #include "src/sksl/codegen/SkSLSPIRVCodeGenerator.h" #include "src/sksl/codegen/SkSLSPIRVtoHLSL.h" -#include "src/sksl/dsl/priv/DSLWriter.h" -#include "src/sksl/dsl/priv/DSL_priv.h" +#include "src/sksl/codegen/SkSLWGSLCodeGenerator.h" #include "src/sksl/ir/SkSLExpression.h" -#include "src/sksl/ir/SkSLExpressionStatement.h" +#include "src/sksl/ir/SkSLExternalFunction.h" #include "src/sksl/ir/SkSLExternalFunctionReference.h" #include "src/sksl/ir/SkSLField.h" #include "src/sksl/ir/SkSLFieldAccess.h" -#include "src/sksl/ir/SkSLFunctionCall.h" +#include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" #include "src/sksl/ir/SkSLFunctionReference.h" #include "src/sksl/ir/SkSLInterfaceBlock.h" -#include "src/sksl/ir/SkSLLiteral.h" -#include "src/sksl/ir/SkSLModifiersDeclaration.h" -#include "src/sksl/ir/SkSLNop.h" #include "src/sksl/ir/SkSLSymbolTable.h" -#include "src/sksl/ir/SkSLTernaryExpression.h" +#include "src/sksl/ir/SkSLType.h" #include "src/sksl/ir/SkSLTypeReference.h" #include "src/sksl/ir/SkSLUnresolvedFunction.h" #include "src/sksl/ir/SkSLVarDeclarations.h" -#include "src/sksl/transform/SkSLProgramWriter.h" +#include "src/sksl/ir/SkSLVariable.h" +#include "src/sksl/ir/SkSLVariableReference.h" #include "src/sksl/transform/SkSLTransform.h" -#include "src/utils/SkBitSet.h" -#include - -#if !defined(SKSL_STANDALONE) & SK_SUPPORT_GPU -#include "include/gpu/GrContextOptions.h" -#include "src/gpu/GrShaderCaps.h" -#endif +#include +#include +#include +#include +#include #ifdef SK_ENABLE_SPIRV_VALIDATION #include "spirv-tools/libspirv.hpp" @@ -63,6 +65,7 @@ #ifdef SKSL_STANDALONE #define REHYDRATE 0 +#include #else #define REHYDRATE 1 #endif @@ -97,14 +100,14 @@ using RefKind = VariableReference::RefKind; class AutoSource { public: - AutoSource(Compiler* compiler, const char* source) + AutoSource(Compiler* compiler, std::string_view source) : fCompiler(compiler) { - SkASSERT(!fCompiler->errorReporter().source()); + SkASSERT(!fCompiler->errorReporter().source().data()); fCompiler->errorReporter().setSource(source); } ~AutoSource() { - fCompiler->errorReporter().setSource(nullptr); + fCompiler->errorReporter().setSource(std::string_view()); } Compiler* fCompiler; @@ -227,7 +230,8 @@ std::shared_ptr Compiler::makePrivateSymbolTable(std::shared_ptradd(std::make_unique(/*line=*/-1, + privateSymbolTable->add(std::make_unique(/*pos=*/Position(), + /*modifiersPosition=*/Position(), fCoreModifiers.add(Modifiers{}), "sk_Caps", fContext->fTypes.fSkCaps.get(), @@ -277,6 +281,16 @@ static void add_glsl_type_aliases(SkSL::SymbolTable* symbols, const SkSL::Builti symbols->addWithoutOwnership(types.fMat3.get()); symbols->addWithoutOwnership(types.fMat4.get()); + symbols->addWithoutOwnership(types.fMat2x2.get()); + symbols->addWithoutOwnership(types.fMat2x3.get()); + symbols->addWithoutOwnership(types.fMat2x4.get()); + symbols->addWithoutOwnership(types.fMat3x2.get()); + symbols->addWithoutOwnership(types.fMat3x3.get()); + symbols->addWithoutOwnership(types.fMat3x4.get()); + symbols->addWithoutOwnership(types.fMat4x2.get()); + symbols->addWithoutOwnership(types.fMat4x3.get()); + symbols->addWithoutOwnership(types.fMat4x4.get()); + // Alias every private type to "invalid". This will prevent code from using built-in names like // `sampler2D` as variable names. for (BuiltinTypePtr privateType : kPrivateTypes) { @@ -474,10 +488,25 @@ std::unique_ptr Compiler::convertProgram(ProgramKind kind, return DSLParser(this, settings, kind, std::move(text)).program(); } -std::unique_ptr Compiler::convertIdentifier(int line, std::string_view name) { +void Compiler::updateInputsForBuiltinVariable(const Variable& var) { + switch (var.modifiers().fLayout.fBuiltin) { + case SK_FRAGCOORD_BUILTIN: + if (fContext->fCaps.canUseFragCoord()) { + ThreadContext::Inputs().fUseFlipRTUniform = + !fContext->fConfig->fSettings.fForceNoRTFlip; + } + break; + case SK_CLOCKWISE_BUILTIN: + ThreadContext::Inputs().fUseFlipRTUniform = + !fContext->fConfig->fSettings.fForceNoRTFlip; + break; + } +} + +std::unique_ptr Compiler::convertIdentifier(Position pos, std::string_view name) { const Symbol* result = (*fSymbolTable)[name]; if (!result) { - this->errorReporter().error(line, "unknown identifier '" + std::string(name) + "'"); + this->errorReporter().error(pos, "unknown identifier '" + std::string(name) + "'"); return nullptr; } switch (result->kind()) { @@ -485,44 +514,33 @@ std::unique_ptr Compiler::convertIdentifier(int line, std::string_vi std::vector f = { &result->as() }; - return std::make_unique(*fContext, line, f); + return std::make_unique(*fContext, pos, f); } case Symbol::Kind::kUnresolvedFunction: { const UnresolvedFunction* f = &result->as(); - return std::make_unique(*fContext, line, f->functions()); + return std::make_unique(*fContext, pos, f->functions()); } case Symbol::Kind::kVariable: { const Variable* var = &result->as(); - const Modifiers& modifiers = var->modifiers(); - switch (modifiers.fLayout.fBuiltin) { - case SK_FRAGCOORD_BUILTIN: - if (fContext->fCaps.canUseFragCoord()) { - ThreadContext::Inputs().fUseFlipRTUniform = true; - } - break; - case SK_CLOCKWISE_BUILTIN: - ThreadContext::Inputs().fUseFlipRTUniform = true; - break; - } // default to kRead_RefKind; this will be corrected later if the variable is written to - return VariableReference::Make(line, var, VariableReference::RefKind::kRead); + return VariableReference::Make(pos, var, VariableReference::RefKind::kRead); } case Symbol::Kind::kField: { const Field* field = &result->as(); - auto base = VariableReference::Make(line, &field->owner(), + auto base = VariableReference::Make(pos, &field->owner(), VariableReference::RefKind::kRead); - return FieldAccess::Make(*fContext, std::move(base), field->fieldIndex(), + return FieldAccess::Make(*fContext, pos, std::move(base), field->fieldIndex(), FieldAccess::OwnerKind::kAnonymousInterfaceBlock); } case Symbol::Kind::kType: { // go through DSLType so we report errors on private types dsl::DSLModifiers modifiers; - dsl::DSLType dslType(result->name(), &modifiers, PositionInfo(/*file=*/nullptr, line)); - return TypeReference::Convert(*fContext, line, &dslType.skslType()); + dsl::DSLType dslType(result->name(), &modifiers, pos); + return TypeReference::Convert(*fContext, pos, &dslType.skslType()); } case Symbol::Kind::kExternal: { const ExternalFunction* r = &result->as(); - return std::make_unique(line, r); + return std::make_unique(pos, r); } default: SK_ABORT("unsupported symbol type %d\n", (int) result->kind()); @@ -624,11 +642,11 @@ bool Compiler::finalize(Program& program) { return this->errorCount() == 0; } -#if defined(SKSL_STANDALONE) || SK_SUPPORT_GPU +#if defined(SKSL_STANDALONE) || SK_SUPPORT_GPU || SK_GRAPHITE_ENABLED bool Compiler::toSPIRV(Program& program, OutputStream& out) { TRACE_EVENT0("skia.shaders", "SkSL::Compiler::toSPIRV"); - AutoSource as(this, program.fSource->c_str()); + AutoSource as(this, *program.fSource); ProgramSettings settings; settings.fDSLUseMemoryPool = false; dsl::Start(this, program.fConfig->fKind, settings); @@ -661,8 +679,8 @@ bool Compiler::toSPIRV(Program& program, OutputStream& out) { if (tools.Disassemble((const uint32_t*)data.data(), data.size() / 4, &disassembly)) { errors.append(disassembly); } - this->errorReporter().error(-1, errors); - this->errorReporter().reportPendingErrors(PositionInfo()); + this->errorReporter().error(Position(), errors); + this->errorReporter().reportPendingErrors(Position()); #else SkDEBUGFAILF("%s", errors.c_str()); #endif @@ -688,7 +706,7 @@ bool Compiler::toSPIRV(Program& program, std::string* out) { bool Compiler::toGLSL(Program& program, OutputStream& out) { TRACE_EVENT0("skia.shaders", "SkSL::Compiler::toGLSL"); - AutoSource as(this, program.fSource->c_str()); + AutoSource as(this, *program.fSource); GLSLCodeGenerator cg(fContext.get(), &program, &out); bool result = cg.generateCode(); return result; @@ -733,7 +751,7 @@ bool Compiler::toMetal(Program& program, OutputStream& out) { return false; #else TRACE_EVENT0("skia.shaders", "SkSL::Compiler::toMetal"); - AutoSource as(this, program.fSource->c_str()); + AutoSource as(this, *program.fSource); MetalCodeGenerator cg(fContext.get(), &program, &out); bool result = cg.generateCode(); return result; @@ -754,14 +772,69 @@ bool Compiler::toMetal(Program& program, std::string* out) { #endif } -#endif // defined(SKSL_STANDALONE) || SK_SUPPORT_GPU +bool Compiler::toWGSL(Program& program, OutputStream& out) { + TRACE_EVENT0("skia.shaders", "SkSL::Compiler::toWGSL"); + AutoSource as(this, *program.fSource); + WGSLCodeGenerator cg(fContext.get(), &program, &out); + return cg.generateCode(); +} + +#endif // defined(SKSL_STANDALONE) || SK_SUPPORT_GPU || SK_GRAPHITE_ENABLED -void Compiler::handleError(std::string_view msg, PositionInfo pos) { +void Compiler::handleError(std::string_view msg, Position pos) { fErrorText += "error: "; - if (pos.line() >= 1) { - fErrorText += std::to_string(pos.line()) + ": "; + bool printLocation = false; + std::string_view src = this->errorReporter().source(); + int line = -1; + if (pos.valid()) { + line = pos.line(src); + printLocation = pos.startOffset() < (int)src.length(); + fErrorText += std::to_string(line) + ": "; } fErrorText += std::string(msg) + "\n"; + if (printLocation) { + // Find the beginning of the line + int lineStart = pos.startOffset(); + while (lineStart > 0) { + if (src[lineStart - 1] == '\n') { + break; + } + --lineStart; + } + + // echo the line + for (int i = lineStart; i < (int)src.length(); i++) { + switch (src[i]) { + case '\t': fErrorText += " "; break; + case '\0': fErrorText += " "; break; + case '\n': i = src.length(); break; + default: fErrorText += src[i]; break; + } + } + fErrorText += '\n'; + + // print the carets underneath it, pointing to the range in question + for (int i = lineStart; i < (int)src.length(); i++) { + if (i >= pos.endOffset()) { + break; + } + switch (src[i]) { + case '\t': + fErrorText += (i >= pos.startOffset()) ? "^^^^" : " "; + break; + case '\n': + SkASSERT(i >= pos.startOffset()); + // use an ellipsis if the error continues past the end of the line + fErrorText += (pos.endOffset() > i + 1) ? "..." : "^"; + i = src.length(); + break; + default: + fErrorText += (i >= pos.startOffset()) ? '^' : ' '; + break; + } + } + fErrorText += '\n'; + } } std::string Compiler::errorText(bool showCount) { diff --git a/third_party/skia/src/sksl/SkSLCompiler.h b/third_party/skia/src/sksl/SkSLCompiler.h index 0aabf4362407..8ae47f53d5de 100644 --- a/third_party/skia/src/sksl/SkSLCompiler.h +++ b/third_party/skia/src/sksl/SkSLCompiler.h @@ -8,20 +8,26 @@ #ifndef SKSL_COMPILER #define SKSL_COMPILER -#include -#include -#include #include "include/core/SkSize.h" -#include "src/sksl/SkSLAnalysis.h" -#include "src/sksl/SkSLContext.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLProgramKind.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLPosition.h" #include "src/sksl/SkSLInliner.h" +#include "src/sksl/SkSLMangler.h" +#include "src/sksl/SkSLModifiersPool.h" #include "src/sksl/SkSLParsedModule.h" #include "src/sksl/ir/SkSLProgram.h" -#include "src/sksl/ir/SkSLSymbolTable.h" -#if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU -#include "src/gpu/GrShaderVar.h" -#endif +#include +#include +#include +#include +#include +#include +#include #define SK_FRAGCOLOR_BUILTIN 10001 #define SK_LASTFRAGCOLOR_BUILTIN 10008 @@ -35,19 +41,21 @@ #define SK_INSTANCEID_BUILTIN 43 #define SK_POSITION_BUILTIN 0 -class SkBitSet; class SkSLCompileBench; namespace SkSL { namespace dsl { class DSLCore; - class DSLWriter; } -class ExternalFunction; -class FunctionDeclaration; -class ProgramUsage; +class Context; +class Expression; +class IRNode; +class OutputStream; +class SymbolTable; +class Variable; + struct ShaderCaps; struct LoadedModule { @@ -142,7 +150,10 @@ class SK_API Compiler { std::string text, Program::Settings settings); - std::unique_ptr convertIdentifier(int line, std::string_view name); + std::unique_ptr convertIdentifier(Position pos, std::string_view name); + + /** Updates the Program's Inputs when a builtin variable is referenced. */ + void updateInputsForBuiltinVariable(const Variable& var); bool toSPIRV(Program& program, OutputStream& out); @@ -160,7 +171,9 @@ class SK_API Compiler { bool toMetal(Program& program, std::string* out); - void handleError(std::string_view msg, PositionInfo pos); + bool toWGSL(Program& program, OutputStream& out); + + void handleError(std::string_view msg, Position pos); std::string errorText(bool showCount = true); @@ -211,7 +224,7 @@ class SK_API Compiler { CompilerErrorReporter(Compiler* compiler) : fCompiler(*compiler) {} - void handleError(std::string_view msg, PositionInfo pos) override { + void handleError(std::string_view msg, Position pos) override { fCompiler.handleError(msg, pos); } diff --git a/third_party/skia/src/sksl/SkSLConstantFolder.cpp b/third_party/skia/src/sksl/SkSLConstantFolder.cpp index f4290786523d..1c4558fab9ee 100644 --- a/third_party/skia/src/sksl/SkSLConstantFolder.cpp +++ b/third_party/skia/src/sksl/SkSLConstantFolder.cpp @@ -7,13 +7,12 @@ #include "src/sksl/SkSLConstantFolder.h" -#include - +#include "include/core/SkTypes.h" +#include "include/private/SkSLModifiers.h" #include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLPosition.h" #include "src/sksl/SkSLAnalysis.h" #include "src/sksl/SkSLContext.h" -#include "src/sksl/SkSLProgramSettings.h" -#include "src/sksl/ir/SkSLBinaryExpression.h" #include "src/sksl/ir/SkSLConstructor.h" #include "src/sksl/ir/SkSLConstructorCompound.h" #include "src/sksl/ir/SkSLConstructorSplat.h" @@ -24,6 +23,12 @@ #include "src/sksl/ir/SkSLVariable.h" #include "src/sksl/ir/SkSLVariableReference.h" +#include +#include +#include +#include +#include + namespace SkSL { static bool is_vec_or_mat(const Type& type) { @@ -37,47 +42,54 @@ static bool is_vec_or_mat(const Type& type) { } } -static std::unique_ptr eliminate_no_op_boolean(const Expression& left, +static std::unique_ptr eliminate_no_op_boolean(Position pos, + const Expression& left, Operator op, const Expression& right) { bool rightVal = right.as().boolValue(); // Detect no-op Boolean expressions and optimize them away. - if ((op.kind() == Token::Kind::TK_LOGICALAND && rightVal) || // (expr && true) -> (expr) - (op.kind() == Token::Kind::TK_LOGICALOR && !rightVal) || // (expr || false) -> (expr) - (op.kind() == Token::Kind::TK_LOGICALXOR && !rightVal) || // (expr ^^ false) -> (expr) - (op.kind() == Token::Kind::TK_EQEQ && rightVal) || // (expr == true) -> (expr) - (op.kind() == Token::Kind::TK_NEQ && !rightVal)) { // (expr != false) -> (expr) - - return left.clone(); + if ((op.kind() == Operator::Kind::LOGICALAND && rightVal) || // (expr && true) -> (expr) + (op.kind() == Operator::Kind::LOGICALOR && !rightVal) || // (expr || false) -> (expr) + (op.kind() == Operator::Kind::LOGICALXOR && !rightVal) || // (expr ^^ false) -> (expr) + (op.kind() == Operator::Kind::EQEQ && rightVal) || // (expr == true) -> (expr) + (op.kind() == Operator::Kind::NEQ && !rightVal)) { // (expr != false) -> (expr) + + std::unique_ptr result = left.clone(); + result->fPosition = pos; + return result; } return nullptr; } -static std::unique_ptr short_circuit_boolean(const Expression& left, +static std::unique_ptr short_circuit_boolean(Position pos, + const Expression& left, Operator op, const Expression& right) { bool leftVal = left.as().boolValue(); // When the literal is on the left, we can sometimes eliminate the other expression entirely. - if ((op.kind() == Token::Kind::TK_LOGICALAND && !leftVal) || // (false && expr) -> (false) - (op.kind() == Token::Kind::TK_LOGICALOR && leftVal)) { // (true || expr) -> (true) + if ((op.kind() == Operator::Kind::LOGICALAND && !leftVal) || // (false && expr) -> (false) + (op.kind() == Operator::Kind::LOGICALOR && leftVal)) { // (true || expr) -> (true) - return left.clone(); + std::unique_ptr result = left.clone(); + result->fPosition = pos; + return result; } // We can't eliminate the right-side expression via short-circuit, but we might still be able to // simplify away a no-op expression. - return eliminate_no_op_boolean(right, op, left); + return eliminate_no_op_boolean(pos, right, op, left); } static std::unique_ptr simplify_constant_equality(const Context& context, + Position pos, const Expression& left, Operator op, const Expression& right) { - if (op.kind() == Token::Kind::TK_EQEQ || op.kind() == Token::Kind::TK_NEQ) { - bool equality = (op.kind() == Token::Kind::TK_EQEQ); + if (op.kind() == Operator::Kind::EQEQ || op.kind() == Operator::Kind::NEQ) { + bool equality = (op.kind() == Operator::Kind::EQEQ); switch (left.compareConstant(right)) { case Expression::ComparisonResult::kNotEqual: @@ -85,7 +97,7 @@ static std::unique_ptr simplify_constant_equality(const Context& con [[fallthrough]]; case Expression::ComparisonResult::kEqual: - return Literal::MakeBool(context, left.fLine, equality); + return Literal::MakeBool(context, pos, equality); case Expression::ComparisonResult::kUnknown: break; @@ -94,26 +106,16 @@ static std::unique_ptr simplify_constant_equality(const Context& con return nullptr; } -static std::unique_ptr simplify_matrix_times_matrix(const Context& context, - const Expression& left, - const Expression& right) { - const Type& leftType = left.type(); - const Type& rightType = right.type(); - - SkASSERT(leftType.isMatrix()); - SkASSERT(rightType.isMatrix()); - - const Type& componentType = leftType.componentType(); - SkASSERT(componentType.matches(rightType.componentType())); - - const int leftColumns = leftType.columns(), - leftRows = leftType.rows(), - rightColumns = rightType.columns(), - rightRows = rightType.rows(), - outColumns = rightColumns, - outRows = leftRows; - SkASSERT(leftColumns == rightRows); - const Type& resultType = componentType.toCompound(context, outColumns, outRows); +static std::unique_ptr simplify_matrix_multiplication(const Context& context, + Position pos, + const Expression& left, + const Expression& right, + int leftColumns, + int leftRows, + int rightColumns, + int rightRows) { + const Type& componentType = left.type().componentType(); + SkASSERT(componentType.matches(right.type().componentType())); // Fetch the left matrix. double leftVals[4][4]; @@ -130,6 +132,10 @@ static std::unique_ptr simplify_matrix_times_matrix(const Context& c } } + SkASSERT(leftColumns == rightRows); + int outColumns = rightColumns, + outRows = leftRows; + ExpressionArray args; args.reserve_back(outColumns * outRows); for (int c = 0; c < outColumns; ++c) { @@ -139,14 +145,66 @@ static std::unique_ptr simplify_matrix_times_matrix(const Context& c for (int dotIdx = 0; dotIdx < leftColumns; ++dotIdx) { val += leftVals[dotIdx][r] * rightVals[c][dotIdx]; } - args.push_back(Literal::Make(left.fLine, val, &componentType)); + args.push_back(Literal::Make(pos, val, &componentType)); } } - return ConstructorCompound::Make(context, left.fLine, resultType, std::move(args)); + if (outColumns == 1) { + // Matrix-times-vector conceptually makes a 1-column N-row matrix, but we return vecN. + std::swap(outColumns, outRows); + } + + const Type& resultType = componentType.toCompound(context, outColumns, outRows); + return ConstructorCompound::Make(context, pos, resultType, std::move(args)); +} + +static std::unique_ptr simplify_matrix_times_matrix(const Context& context, + Position pos, + const Expression& left, + const Expression& right) { + const Type& leftType = left.type(); + const Type& rightType = right.type(); + + SkASSERT(leftType.isMatrix()); + SkASSERT(rightType.isMatrix()); + + return simplify_matrix_multiplication(context, pos, left, right, + leftType.columns(), leftType.rows(), + rightType.columns(), rightType.rows()); +} + +static std::unique_ptr simplify_vector_times_matrix(const Context& context, + Position pos, + const Expression& left, + const Expression& right) { + const Type& leftType = left.type(); + const Type& rightType = right.type(); + + SkASSERT(leftType.isVector()); + SkASSERT(rightType.isMatrix()); + + return simplify_matrix_multiplication(context, pos, left, right, + /*leftColumns=*/leftType.columns(), /*leftRows=*/1, + rightType.columns(), rightType.rows()); +} + +static std::unique_ptr simplify_matrix_times_vector(const Context& context, + Position pos, + const Expression& left, + const Expression& right) { + const Type& leftType = left.type(); + const Type& rightType = right.type(); + + SkASSERT(leftType.isMatrix()); + SkASSERT(rightType.isVector()); + + return simplify_matrix_multiplication(context, pos, left, right, + leftType.columns(), leftType.rows(), + /*rightColumns=*/1, /*rightRows=*/rightType.columns()); } static std::unique_ptr simplify_componentwise(const Context& context, + Position pos, const Expression& left, Operator op, const Expression& right) { @@ -155,7 +213,8 @@ static std::unique_ptr simplify_componentwise(const Context& context const Type& type = left.type(); // Handle equality operations: == != - if (std::unique_ptr result = simplify_constant_equality(context, left, op, right)) { + if (std::unique_ptr result = simplify_constant_equality(context, pos, left, op, + right)) { return result; } @@ -163,10 +222,10 @@ static std::unique_ptr simplify_componentwise(const Context& context using FoldFn = double (*)(double, double); FoldFn foldFn; switch (op.kind()) { - case Token::Kind::TK_PLUS: foldFn = +[](double a, double b) { return a + b; }; break; - case Token::Kind::TK_MINUS: foldFn = +[](double a, double b) { return a - b; }; break; - case Token::Kind::TK_STAR: foldFn = +[](double a, double b) { return a * b; }; break; - case Token::Kind::TK_SLASH: foldFn = +[](double a, double b) { return a / b; }; break; + case Operator::Kind::PLUS: foldFn = +[](double a, double b) { return a + b; }; break; + case Operator::Kind::MINUS: foldFn = +[](double a, double b) { return a - b; }; break; + case Operator::Kind::STAR: foldFn = +[](double a, double b) { return a * b; }; break; + case Operator::Kind::SLASH: foldFn = +[](double a, double b) { return a / b; }; break; default: return nullptr; } @@ -189,16 +248,16 @@ static std::unique_ptr simplify_componentwise(const Context& context return nullptr; } - args.push_back(Literal::Make(left.fLine, value, &componentType)); + args.push_back(Literal::Make(pos, value, &componentType)); } - return ConstructorCompound::Make(context, left.fLine, type, std::move(args)); + return ConstructorCompound::Make(context, pos, type, std::move(args)); } static std::unique_ptr splat_scalar(const Context& context, const Expression& scalar, const Type& type) { if (type.isVector()) { - return ConstructorSplat::Make(context, scalar.fLine, type, scalar.clone()); + return ConstructorSplat::Make(context, scalar.fPosition, type, scalar.clone()); } if (type.isMatrix()) { int numSlots = type.slotCount(); @@ -207,18 +266,28 @@ static std::unique_ptr splat_scalar(const Context& context, for (int index = 0; index < numSlots; ++index) { splatMatrix.push_back(scalar.clone()); } - return ConstructorCompound::Make(context, scalar.fLine, type, std::move(splatMatrix)); + return ConstructorCompound::Make(context, scalar.fPosition, type, std::move(splatMatrix)); } SkDEBUGFAILF("unsupported type %s", type.description().c_str()); return nullptr; } static std::unique_ptr cast_expression(const Context& context, + Position pos, const Expression& expr, const Type& type) { ExpressionArray ctorArgs; ctorArgs.push_back(expr.clone()); - return Constructor::Convert(context, expr.fLine, type, std::move(ctorArgs)); + return Constructor::Convert(context, pos, type, std::move(ctorArgs)); +} + +static std::unique_ptr negate_expression(const Context& context, + Position pos, + const Expression& expr, + const Type& type) { + std::unique_ptr ctor = cast_expression(context, pos, expr, type); + return ctor ? PrefixExpression::Make(context, pos, Operator::Kind::MINUS, std::move(ctor)) + : nullptr; } bool ConstantFolder::GetConstantInt(const Expression& value, SKSL_INT* out) { @@ -261,15 +330,15 @@ static bool is_constant_value(const Expression& expr, double value) { return true; } -static bool error_on_divide_by_zero(const Context& context, int line, Operator op, +static bool error_on_divide_by_zero(const Context& context, Position pos, Operator op, const Expression& right) { switch (op.kind()) { - case Token::Kind::TK_SLASH: - case Token::Kind::TK_SLASHEQ: - case Token::Kind::TK_PERCENT: - case Token::Kind::TK_PERCENTEQ: + case Operator::Kind::SLASH: + case Operator::Kind::SLASHEQ: + case Operator::Kind::PERCENT: + case Operator::Kind::PERCENTEQ: if (contains_constant_zero(right)) { - context.fErrors->error(line, "division by zero"); + context.fErrors->error(pos, "division by zero"); return true; } return false; @@ -304,76 +373,84 @@ const Expression* ConstantFolder::GetConstantValueForVariable(const Expression& return &inExpr; } -std::unique_ptr ConstantFolder::MakeConstantValueForVariable( +std::unique_ptr ConstantFolder::MakeConstantValueForVariable(Position pos, std::unique_ptr expr) { const Expression* constantExpr = GetConstantValueForVariable(*expr); if (constantExpr != expr.get()) { expr = constantExpr->clone(); + expr->fPosition = pos; } return expr; } static std::unique_ptr simplify_no_op_arithmetic(const Context& context, + Position pos, const Expression& left, Operator op, const Expression& right, const Type& resultType) { switch (op.kind()) { - case Token::Kind::TK_PLUS: + case Operator::Kind::PLUS: if (is_constant_value(right, 0.0)) { // x + 0 - return cast_expression(context, left, resultType); + return cast_expression(context, pos, left, resultType); } if (is_constant_value(left, 0.0)) { // 0 + x - return cast_expression(context, right, resultType); + return cast_expression(context, pos, right, resultType); } break; - case Token::Kind::TK_STAR: + case Operator::Kind::STAR: if (is_constant_value(right, 1.0)) { // x * 1 - return cast_expression(context, left, resultType); + return cast_expression(context, pos, left, resultType); } if (is_constant_value(left, 1.0)) { // 1 * x - return cast_expression(context, right, resultType); + return cast_expression(context, pos, right, resultType); } if (is_constant_value(right, 0.0) && !left.hasSideEffects()) { // x * 0 - return cast_expression(context, right, resultType); + return cast_expression(context, pos, right, resultType); } if (is_constant_value(left, 0.0) && !right.hasSideEffects()) { // 0 * x - return cast_expression(context, left, resultType); + return cast_expression(context, pos, left, resultType); + } + if (is_constant_value(right, -1.0)) { // x * -1 (to `-x`) + return negate_expression(context, pos, left, resultType); + } + if (is_constant_value(left, -1.0)) { // -1 * x (to `-x`) + return negate_expression(context, pos, right, resultType); } break; - case Token::Kind::TK_MINUS: + case Operator::Kind::MINUS: if (is_constant_value(right, 0.0)) { // x - 0 - return cast_expression(context, left, resultType); + return cast_expression(context, pos, left, resultType); } if (is_constant_value(left, 0.0)) { // 0 - x (to `-x`) - if (std::unique_ptr val = cast_expression(context, right, resultType)) { - return PrefixExpression::Make(context, Token::Kind::TK_MINUS, std::move(val)); - } + return negate_expression(context, pos, right, resultType); } break; - case Token::Kind::TK_SLASH: + case Operator::Kind::SLASH: if (is_constant_value(right, 1.0)) { // x / 1 - return cast_expression(context, left, resultType); + return cast_expression(context, pos, left, resultType); } break; - case Token::Kind::TK_PLUSEQ: - case Token::Kind::TK_MINUSEQ: + case Operator::Kind::PLUSEQ: + case Operator::Kind::MINUSEQ: if (is_constant_value(right, 0.0)) { // x += 0, x -= 0 - if (std::unique_ptr var = cast_expression(context, left, resultType)) { + if (std::unique_ptr var = cast_expression(context, pos, left, + resultType)) { Analysis::UpdateVariableRefKind(var.get(), VariableRefKind::kRead); return var; } } break; - case Token::Kind::TK_STAREQ: - case Token::Kind::TK_SLASHEQ: + case Operator::Kind::STAREQ: + case Operator::Kind::SLASHEQ: if (is_constant_value(right, 1.0)) { // x *= 1, x /= 1 - if (std::unique_ptr var = cast_expression(context, left, resultType)) { + if (std::unique_ptr var = cast_expression(context, pos, left, + resultType)) { Analysis::UpdateVariableRefKind(var.get(), VariableRefKind::kRead); return var; } @@ -388,7 +465,7 @@ static std::unique_ptr simplify_no_op_arithmetic(const Context& cont } template -static std::unique_ptr fold_float_expression(int line, +static std::unique_ptr fold_float_expression(Position pos, T result, const Type* resultType) { // If constant-folding this expression would generate a NaN/infinite result, leave it as-is. @@ -398,11 +475,11 @@ static std::unique_ptr fold_float_expression(int line, } } - return Literal::Make(line, result, resultType); + return Literal::Make(pos, result, resultType); } template -static std::unique_ptr fold_int_expression(int line, +static std::unique_ptr fold_int_expression(Position pos, T result, const Type* resultType) { // If constant-folding this expression would overflow the result type, leave it as-is. @@ -412,11 +489,11 @@ static std::unique_ptr fold_int_expression(int line, } } - return Literal::Make(line, result, resultType); + return Literal::Make(pos, result, resultType); } std::unique_ptr ConstantFolder::Simplify(const Context& context, - int line, + Position pos, const Expression& leftExpr, Operator op, const Expression& rightExpr, @@ -427,15 +504,19 @@ std::unique_ptr ConstantFolder::Simplify(const Context& context, // If this is the comma operator, the left side is evaluated but not otherwise used in any way. // So if the left side has no side effects, it can just be eliminated entirely. - if (op.kind() == Token::Kind::TK_COMMA && !left->hasSideEffects()) { - return right->clone(); + if (op.kind() == Operator::Kind::COMMA && !left->hasSideEffects()) { + std::unique_ptr result = right->clone(); + result->fPosition = pos; + return result; } // If this is the assignment operator, and both sides are the same trivial expression, this is // self-assignment (i.e., `var = var`) and can be reduced to just a variable reference (`var`). // This can happen when other parts of the assignment are optimized away. - if (op.kind() == Token::Kind::TK_EQ && Analysis::IsSameExpressionTree(*left, *right)) { - return right->clone(); + if (op.kind() == Operator::Kind::EQ && Analysis::IsSameExpressionTree(*left, *right)) { + std::unique_ptr result = right->clone(); + result->fPosition = pos; + return result; } // Simplify the expression when both sides are constant Boolean literals. @@ -444,19 +525,19 @@ std::unique_ptr ConstantFolder::Simplify(const Context& context, bool rightVal = right->as().boolValue(); bool result; switch (op.kind()) { - case Token::Kind::TK_LOGICALAND: result = leftVal && rightVal; break; - case Token::Kind::TK_LOGICALOR: result = leftVal || rightVal; break; - case Token::Kind::TK_LOGICALXOR: result = leftVal ^ rightVal; break; - case Token::Kind::TK_EQEQ: result = leftVal == rightVal; break; - case Token::Kind::TK_NEQ: result = leftVal != rightVal; break; + case Operator::Kind::LOGICALAND: result = leftVal && rightVal; break; + case Operator::Kind::LOGICALOR: result = leftVal || rightVal; break; + case Operator::Kind::LOGICALXOR: result = leftVal ^ rightVal; break; + case Operator::Kind::EQEQ: result = leftVal == rightVal; break; + case Operator::Kind::NEQ: result = leftVal != rightVal; break; default: return nullptr; } - return Literal::MakeBool(context, line, result); + return Literal::MakeBool(context, pos, result); } // If the left side is a Boolean literal, apply short-circuit optimizations. if (left->isBoolLiteral()) { - return short_circuit_boolean(*left, op, *right); + return short_circuit_boolean(pos, *left, op, *right); } // If the right side is a Boolean literal... @@ -464,26 +545,26 @@ std::unique_ptr ConstantFolder::Simplify(const Context& context, // ... and the left side has no side effects... if (!left->hasSideEffects()) { // We can reverse the expressions and short-circuit optimizations are still valid. - return short_circuit_boolean(*right, op, *left); + return short_circuit_boolean(pos, *right, op, *left); } // We can't use short-circuiting, but we can still optimize away no-op Boolean expressions. - return eliminate_no_op_boolean(*left, op, *right); + return eliminate_no_op_boolean(pos, *left, op, *right); } - if (op.kind() == Token::Kind::TK_EQEQ && Analysis::IsSameExpressionTree(*left, *right)) { + if (op.kind() == Operator::Kind::EQEQ && Analysis::IsSameExpressionTree(*left, *right)) { // With == comparison, if both sides are the same trivial expression, this is self- // comparison and is always true. (We are not concerned with NaN.) - return Literal::MakeBool(context, leftExpr.fLine, /*value=*/true); + return Literal::MakeBool(context, pos, /*value=*/true); } - if (op.kind() == Token::Kind::TK_NEQ && Analysis::IsSameExpressionTree(*left, *right)) { + if (op.kind() == Operator::Kind::NEQ && Analysis::IsSameExpressionTree(*left, *right)) { // With != comparison, if both sides are the same trivial expression, this is self- // comparison and is always false. (We are not concerned with NaN.) - return Literal::MakeBool(context, leftExpr.fLine, /*value=*/false); + return Literal::MakeBool(context, pos, /*value=*/false); } - if (error_on_divide_by_zero(context, line, op, *right)) { + if (error_on_divide_by_zero(context, pos, op, *right)) { return nullptr; } @@ -492,8 +573,8 @@ std::unique_ptr ConstantFolder::Simplify(const Context& context, const Type& rightType = right->type(); if ((leftType.isScalar() || leftType.isVector()) && (rightType.isScalar() || rightType.isVector())) { - std::unique_ptr expr = simplify_no_op_arithmetic(context, *left, op, *right, - resultType); + std::unique_ptr expr = simplify_no_op_arithmetic(context, pos, *left, op, + *right, resultType); if (expr) { return expr; } @@ -510,48 +591,48 @@ std::unique_ptr ConstantFolder::Simplify(const Context& context, SKSL_INT leftVal = left->as().intValue(); SKSL_INT rightVal = right->as().intValue(); - #define RESULT(Op) fold_int_expression(line, \ + #define RESULT(Op) fold_int_expression(pos, \ (SKSL_INT)(leftVal) Op (SKSL_INT)(rightVal), &resultType) - #define URESULT(Op) fold_int_expression(line, \ + #define URESULT(Op) fold_int_expression(pos, \ (SKSL_INT)((SKSL_UINT)(leftVal) Op (SKSL_UINT)(rightVal)), &resultType) switch (op.kind()) { - case Token::Kind::TK_PLUS: return URESULT(+); - case Token::Kind::TK_MINUS: return URESULT(-); - case Token::Kind::TK_STAR: return URESULT(*); - case Token::Kind::TK_SLASH: + case Operator::Kind::PLUS: return URESULT(+); + case Operator::Kind::MINUS: return URESULT(-); + case Operator::Kind::STAR: return URESULT(*); + case Operator::Kind::SLASH: if (leftVal == std::numeric_limits::min() && rightVal == -1) { - context.fErrors->error(line, "arithmetic overflow"); + context.fErrors->error(pos, "arithmetic overflow"); return nullptr; } return RESULT(/); - case Token::Kind::TK_PERCENT: + case Operator::Kind::PERCENT: if (leftVal == std::numeric_limits::min() && rightVal == -1) { - context.fErrors->error(line, "arithmetic overflow"); + context.fErrors->error(pos, "arithmetic overflow"); return nullptr; } return RESULT(%); - case Token::Kind::TK_BITWISEAND: return RESULT(&); - case Token::Kind::TK_BITWISEOR: return RESULT(|); - case Token::Kind::TK_BITWISEXOR: return RESULT(^); - case Token::Kind::TK_EQEQ: return RESULT(==); - case Token::Kind::TK_NEQ: return RESULT(!=); - case Token::Kind::TK_GT: return RESULT(>); - case Token::Kind::TK_GTEQ: return RESULT(>=); - case Token::Kind::TK_LT: return RESULT(<); - case Token::Kind::TK_LTEQ: return RESULT(<=); - case Token::Kind::TK_SHL: + case Operator::Kind::BITWISEAND: return RESULT(&); + case Operator::Kind::BITWISEOR: return RESULT(|); + case Operator::Kind::BITWISEXOR: return RESULT(^); + case Operator::Kind::EQEQ: return RESULT(==); + case Operator::Kind::NEQ: return RESULT(!=); + case Operator::Kind::GT: return RESULT(>); + case Operator::Kind::GTEQ: return RESULT(>=); + case Operator::Kind::LT: return RESULT(<); + case Operator::Kind::LTEQ: return RESULT(<=); + case Operator::Kind::SHL: if (rightVal >= 0 && rightVal <= 31) { // Left-shifting a negative (or really, any signed) value is undefined behavior // in C++, but not GLSL. Do the shift on unsigned values, to avoid UBSAN. return URESULT(<<); } - context.fErrors->error(line, "shift value out of range"); + context.fErrors->error(pos, "shift value out of range"); return nullptr; - case Token::Kind::TK_SHR: + case Operator::Kind::SHR: if (rightVal >= 0 && rightVal <= 31) { return RESULT(>>); } - context.fErrors->error(line, "shift value out of range"); + context.fErrors->error(pos, "shift value out of range"); return nullptr; default: @@ -566,51 +647,59 @@ std::unique_ptr ConstantFolder::Simplify(const Context& context, SKSL_FLOAT leftVal = left->as().floatValue(); SKSL_FLOAT rightVal = right->as().floatValue(); - #define RESULT(Op) fold_float_expression(line, leftVal Op rightVal, &resultType) + #define RESULT(Op) fold_float_expression(pos, leftVal Op rightVal, &resultType) switch (op.kind()) { - case Token::Kind::TK_PLUS: return RESULT(+); - case Token::Kind::TK_MINUS: return RESULT(-); - case Token::Kind::TK_STAR: return RESULT(*); - case Token::Kind::TK_SLASH: return RESULT(/); - case Token::Kind::TK_EQEQ: return RESULT(==); - case Token::Kind::TK_NEQ: return RESULT(!=); - case Token::Kind::TK_GT: return RESULT(>); - case Token::Kind::TK_GTEQ: return RESULT(>=); - case Token::Kind::TK_LT: return RESULT(<); - case Token::Kind::TK_LTEQ: return RESULT(<=); + case Operator::Kind::PLUS: return RESULT(+); + case Operator::Kind::MINUS: return RESULT(-); + case Operator::Kind::STAR: return RESULT(*); + case Operator::Kind::SLASH: return RESULT(/); + case Operator::Kind::EQEQ: return RESULT(==); + case Operator::Kind::NEQ: return RESULT(!=); + case Operator::Kind::GT: return RESULT(>); + case Operator::Kind::GTEQ: return RESULT(>=); + case Operator::Kind::LT: return RESULT(<); + case Operator::Kind::LTEQ: return RESULT(<=); default: return nullptr; } #undef RESULT } - // Perform matrix * matrix multiplication. - if (op.kind() == Token::Kind::TK_STAR && leftType.isMatrix() && rightType.isMatrix()) { - return simplify_matrix_times_matrix(context, *left, *right); + // Perform matrix multiplication. + if (op.kind() == Operator::Kind::STAR) { + if (leftType.isMatrix() && rightType.isMatrix()) { + return simplify_matrix_times_matrix(context, pos, *left, *right); + } + if (leftType.isVector() && rightType.isMatrix()) { + return simplify_vector_times_matrix(context, pos, *left, *right); + } + if (leftType.isMatrix() && rightType.isVector()) { + return simplify_matrix_times_vector(context, pos, *left, *right); + } } // Perform constant folding on pairs of vectors/matrices. if (is_vec_or_mat(leftType) && leftType.matches(rightType)) { - return simplify_componentwise(context, *left, op, *right); + return simplify_componentwise(context, pos, *left, op, *right); } // Perform constant folding on vectors/matrices against scalars, e.g.: half4(2) + 2 if (rightType.isScalar() && is_vec_or_mat(leftType) && leftType.componentType().matches(rightType)) { - return simplify_componentwise(context, *left, op, + return simplify_componentwise(context, pos, *left, op, *splat_scalar(context, *right, left->type())); } // Perform constant folding on scalars against vectors/matrices, e.g.: 2 + half4(2) if (leftType.isScalar() && is_vec_or_mat(rightType) && rightType.componentType().matches(leftType)) { - return simplify_componentwise(context, *splat_scalar(context, *left, right->type()), + return simplify_componentwise(context, pos, *splat_scalar(context, *left, right->type()), op, *right); } // Perform constant folding on pairs of matrices or arrays. if ((leftType.isMatrix() && rightType.isMatrix()) || (leftType.isArray() && rightType.isArray())) { - return simplify_constant_equality(context, *left, op, *right); + return simplify_constant_equality(context, pos, *left, op, *right); } // We aren't able to constant-fold. diff --git a/third_party/skia/src/sksl/SkSLConstantFolder.h b/third_party/skia/src/sksl/SkSLConstantFolder.h index 45643e01bc33..8611270c2feb 100644 --- a/third_party/skia/src/sksl/SkSLConstantFolder.h +++ b/third_party/skia/src/sksl/SkSLConstantFolder.h @@ -11,12 +11,14 @@ #include #include "include/private/SkSLDefines.h" -#include "src/sksl/SkSLOperators.h" +#include "include/sksl/SkSLOperator.h" namespace SkSL { class Context; class Expression; +class Position; +class Type; /** * Performs constant folding on IR expressions. This simplifies expressions containing @@ -46,12 +48,12 @@ class ConstantFolder { * If the expression is a const variable with a known compile-time-constant value, returns a * clone of that value. If not, returns the original expression as-is. */ - static std::unique_ptr MakeConstantValueForVariable( + static std::unique_ptr MakeConstantValueForVariable(Position pos, std::unique_ptr expr); /** Simplifies the binary expression `left OP right`. Returns null if it can't be simplified. */ static std::unique_ptr Simplify(const Context& context, - int line, + Position pos, const Expression& left, Operator op, const Expression& right, diff --git a/third_party/skia/src/sksl/SkSLContext.cpp b/third_party/skia/src/sksl/SkSLContext.cpp index 264c25730abd..e0bc0738df27 100644 --- a/third_party/skia/src/sksl/SkSLContext.cpp +++ b/third_party/skia/src/sksl/SkSLContext.cpp @@ -6,7 +6,11 @@ */ #include "src/sksl/SkSLContext.h" + +#include "include/core/SkTypes.h" +#ifdef SK_DEBUG #include "src/sksl/SkSLPool.h" +#endif namespace SkSL { diff --git a/third_party/skia/src/sksl/SkSLContext.h b/third_party/skia/src/sksl/SkSLContext.h index 42bfb5573dc0..3c5ecb5be9e2 100644 --- a/third_party/skia/src/sksl/SkSLContext.h +++ b/third_party/skia/src/sksl/SkSLContext.h @@ -8,11 +8,7 @@ #ifndef SKSL_CONTEXT #define SKSL_CONTEXT -#include - #include "src/sksl/SkSLBuiltinTypes.h" -#include "src/sksl/SkSLUtil.h" -#include "src/sksl/ir/SkSLType.h" namespace SkSL { @@ -21,6 +17,7 @@ class ErrorReporter; class Mangler; class ModifiersPool; struct ProgramConfig; +struct ShaderCaps; /** * Contains compiler-wide objects, which currently means the core types. diff --git a/third_party/skia/src/sksl/SkSLDSLParser.cpp b/third_party/skia/src/sksl/SkSLDSLParser.cpp index 1dbdb8b55c81..8936fb51e460 100644 --- a/third_party/skia/src/sksl/SkSLDSLParser.cpp +++ b/third_party/skia/src/sksl/SkSLDSLParser.cpp @@ -7,13 +7,33 @@ #include "src/sksl/SkSLDSLParser.h" +#include "include/core/SkSpan.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLProgramElement.h" #include "include/private/SkSLString.h" +#include "include/sksl/DSL.h" +#include "include/sksl/DSLBlock.h" +#include "include/sksl/DSLCase.h" +#include "include/sksl/DSLFunction.h" +#include "include/sksl/DSLSymbols.h" +#include "include/sksl/DSLVar.h" +#include "include/sksl/DSLWrapper.h" +#include "include/sksl/SkSLOperator.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/SkSLConstantFolder.h" +#include "src/sksl/SkSLParsedModule.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/dsl/priv/DSLWriter.h" #include "src/sksl/dsl/priv/DSL_priv.h" +#include "src/sksl/ir/SkSLExpression.h" +#include "src/sksl/ir/SkSLProgram.h" + #include +#include +#include +#include +#include +#include using namespace SkSL::dsl; @@ -78,11 +98,11 @@ class AutoDSLSymbolTable { } }; -std::unordered_map* DSLParser::layoutTokens; +SkTHashMap* DSLParser::sLayoutTokens; void DSLParser::InitLayoutMap() { - layoutTokens = new std::unordered_map; - #define TOKEN(name, text) (*layoutTokens)[text] = LayoutToken::name + sLayoutTokens = new SkTHashMap; + #define TOKEN(name, text) sLayoutTokens->set(text, LayoutToken::name) TOKEN(LOCATION, "location"); TOKEN(OFFSET, "offset"); TOKEN(BINDING, "binding"); @@ -103,7 +123,7 @@ DSLParser::DSLParser(Compiler* compiler, const ProgramSettings& settings, Progra , fSettings(settings) , fKind(kind) , fText(std::make_unique(std::move(text))) - , fPushback(Token::Kind::TK_NONE, /*offset=*/-1, /*length=*/-1, /*line=*/-1) { + , fPushback(Token::Kind::TK_NONE, /*offset=*/-1, /*length=*/-1) { // We don't want to have to worry about manually releasing all of the objects in the event that // an error occurs fSettings.fAssertDSLObjectsReleased = false; @@ -144,17 +164,23 @@ Token DSLParser::nextRawToken() { return token; } +static bool is_whitespace(Token::Kind kind) { + switch (kind) { + case Token::Kind::TK_WHITESPACE: + case Token::Kind::TK_LINE_COMMENT: + case Token::Kind::TK_BLOCK_COMMENT: + return true; + + default: + return false; + } +} + Token DSLParser::nextToken() { for (;;) { Token token = this->nextRawToken(); - switch (token.fKind) { - case Token::Kind::TK_WHITESPACE: - case Token::Kind::TK_LINE_COMMENT: - case Token::Kind::TK_BLOCK_COMMENT: - continue; - - default: - return token; + if (!is_whitespace(token.fKind)) { + return token; } } } @@ -229,20 +255,30 @@ std::string_view DSLParser::text(Token token) { return std::string_view(fText->data() + token.fOffset, token.fLength); } -PositionInfo DSLParser::position(Token t) { - return this->position(t.fLine); +Position DSLParser::position(Token t) { + if (t.fOffset >= 0) { + return Position::Range(t.fOffset, t.fOffset + t.fLength); + } else { + return Position(); + } } -PositionInfo DSLParser::position(int line) { - return PositionInfo("", line); +void DSLParser::error(Token token, std::string msg) { + this->error(this->position(token), msg); } -void DSLParser::error(Token token, std::string msg) { - this->error(token.fLine, msg); +void DSLParser::error(Position position, std::string msg) { + GetErrorReporter().error(msg.c_str(), position); } -void DSLParser::error(int line, std::string msg) { - GetErrorReporter().error(msg.c_str(), this->position(line)); +Position DSLParser::rangeFrom(Position start) { + int offset = fPushback.fKind != Token::Kind::TK_NONE ? fPushback.fOffset + : fLexer.getCheckpoint().fOffset; + return Position::Range(start.startOffset(), offset); +} + +Position DSLParser::rangeFrom(Token start) { + return this->rangeFrom(this->position(start)); } /* declaration* END_OF_FILE */ @@ -250,13 +286,13 @@ std::unique_ptr DSLParser::program() { ErrorReporter* errorReporter = &fCompiler.errorReporter(); Start(&fCompiler, fKind, fSettings); SetErrorReporter(errorReporter); - errorReporter->setSource(fText->c_str()); + errorReporter->setSource(*fText); this->declarations(); std::unique_ptr result; if (!GetErrorReporter().errorCount()) { result = dsl::ReleaseProgram(std::move(fText)); } - errorReporter->setSource(nullptr); + errorReporter->setSource(std::string_view()); End(); return result; } @@ -265,12 +301,12 @@ SkSL::LoadedModule DSLParser::moduleInheritingFrom(SkSL::ParsedModule baseModule ErrorReporter* errorReporter = &fCompiler.errorReporter(); StartModule(&fCompiler, fKind, fSettings, std::move(baseModule)); SetErrorReporter(errorReporter); - errorReporter->setSource(fText->c_str()); + errorReporter->setSource(*fText); this->declarations(); CurrentSymbolTable()->takeOwnershipOfString(std::move(*fText)); SkSL::LoadedModule result{ fKind, CurrentSymbolTable(), std::move(ThreadContext::ProgramElements()) }; - errorReporter->setSource(nullptr); + errorReporter->setSource(std::string_view()); End(); return result; } @@ -287,8 +323,8 @@ void DSLParser::declarations() { this->directive(); break; case Token::Kind::TK_INVALID: { - this->nextToken(); this->error(this->peek(), "invalid token"); + this->nextToken(); done = true; break; } @@ -337,25 +373,25 @@ void DSLParser::directive() { /* modifiers (structVarDeclaration | type IDENTIFIER ((LPAREN parameter (COMMA parameter)* RPAREN (block | SEMICOLON)) | SEMICOLON) | interfaceBlock) */ bool DSLParser::declaration() { - Token lookahead = this->peek(); - if (lookahead.fKind == Token::Kind::TK_SEMICOLON) { + Token start = this->peek(); + if (start.fKind == Token::Kind::TK_SEMICOLON) { this->nextToken(); - this->error(lookahead, "expected a declaration, but found ';'"); + this->error(start, "expected a declaration, but found ';'"); return false; } DSLModifiers modifiers = this->modifiers(); - lookahead = this->peek(); + Token lookahead = this->peek(); if (lookahead.fKind == Token::Kind::TK_IDENTIFIER && !IsType(this->text(lookahead))) { // we have an identifier that's not a type, could be the start of an interface block return this->interfaceBlock(modifiers); } if (lookahead.fKind == Token::Kind::TK_SEMICOLON) { this->nextToken(); - Declare(modifiers, position(lookahead)); + Declare(modifiers, this->position(start)); return true; } if (lookahead.fKind == Token::Kind::TK_STRUCT) { - this->structVarDeclaration(modifiers); + this->structVarDeclaration(this->position(start), modifiers); return true; } std::optional type = this->type(&modifiers); @@ -367,15 +403,16 @@ bool DSLParser::declaration() { return false; } if (this->checkNext(Token::Kind::TK_LPAREN)) { - return this->functionDeclarationEnd(modifiers, *type, name); + return this->functionDeclarationEnd(this->position(start), modifiers, *type, name); } else { - this->globalVarDeclarationEnd(this->position(name), modifiers, *type, this->text(name)); + this->globalVarDeclarationEnd(this->position(start), modifiers, *type, this->text(name)); return true; } } /* (RPAREN | VOID RPAREN | parameter (COMMA parameter)* RPAREN) (block | SEMICOLON) */ -bool DSLParser::functionDeclarationEnd(const DSLModifiers& modifiers, +bool DSLParser::functionDeclarationEnd(Position start, + const DSLModifiers& modifiers, DSLType type, const Token& name) { SkTArray> parameters; @@ -405,58 +442,71 @@ bool DSLParser::functionDeclarationEnd(const DSLModifiers& modifiers, for (DSLWrapper& param : parameters) { parameterPointers.push_back(¶m.get()); } - DSLFunction result(modifiers, type, this->text(name), parameterPointers, this->position(name)); + DSLFunction result(modifiers, type, this->text(name), parameterPointers, + this->rangeFrom(start)); if (!this->checkNext(Token::Kind::TK_SEMICOLON)) { AutoDSLSymbolTable symbols; for (DSLParameter* var : parameterPointers) { AddToSymbolTable(*var); } + Token bodyStart = this->peek(); std::optional body = this->block(); if (!body) { return false; } - result.define(std::move(*body), this->position(name)); + result.define(std::move(*body), this->rangeFrom(bodyStart)); } return true; } -SKSL_INT DSLParser::arraySize() { +bool DSLParser::arraySize(SKSL_INT* outResult) { DSLExpression sizeExpr = this->expression(); - if (!sizeExpr.isValid()) { - return 1; - } - std::unique_ptr sizeLiteral = sizeExpr.release(); - SKSL_INT size; - if (!ConstantFolder::GetConstantInt(*sizeLiteral, &size)) { - this->error(sizeLiteral->fLine, "array size must be an integer"); - return 1; - } - if (size > INT32_MAX) { - this->error(sizeLiteral->fLine, "array size out of bounds"); - return 1; + if (!sizeExpr.hasValue()) { + return false; } - if (size <= 0) { - this->error(sizeLiteral->fLine, "array size must be positive"); - return 1; + // Start out with a safe value that won't generate any errors downstream + *outResult = 1; + if (sizeExpr.isValid()) { + std::unique_ptr sizeLiteral = sizeExpr.release(); + SKSL_INT size; + if (!ConstantFolder::GetConstantInt(*sizeLiteral, &size)) { + this->error(sizeLiteral->fPosition, "array size must be an integer"); + return true; + } + if (size > INT32_MAX) { + this->error(sizeLiteral->fPosition, "array size out of bounds"); + return true; + } + if (size <= 0) { + this->error(sizeLiteral->fPosition, "array size must be positive"); + return true; + } + // Now that we've validated it, output the real value + *outResult = size; } - return size; + return true; } -bool DSLParser::parseArrayDimensions(int line, DSLType* type) { - while (this->checkNext(Token::Kind::TK_LBRACKET)) { +bool DSLParser::parseArrayDimensions(Position pos, DSLType* type) { + Token next; + while (this->checkNext(Token::Kind::TK_LBRACKET, &next)) { if (this->checkNext(Token::Kind::TK_RBRACKET)) { - this->error(line, "expected array dimension"); + this->error(this->rangeFrom(next), "expected array dimension"); } else { - *type = Array(*type, this->arraySize(), this->position(line)); + SKSL_INT size; + if (!this->arraySize(&size)) { + return false; + } if (!this->expect(Token::Kind::TK_RBRACKET, "']'")) { return false; } + *type = Array(*type, size, this->rangeFrom(pos)); } } return true; } -bool DSLParser::parseInitializer(int line, DSLExpression* initializer) { +bool DSLParser::parseInitializer(Position pos, DSLExpression* initializer) { if (this->checkNext(Token::Kind::TK_EQ)) { DSLExpression value = this->assignmentExpression(); if (!value.hasValue()) { @@ -469,19 +519,18 @@ bool DSLParser::parseInitializer(int line, DSLExpression* initializer) { /* (LBRACKET expression? RBRACKET)* (EQ assignmentExpression)? (COMMA IDENTIFER (LBRACKET expression? RBRACKET)* (EQ assignmentExpression)?)* SEMICOLON */ -void DSLParser::globalVarDeclarationEnd(PositionInfo pos, const dsl::DSLModifiers& mods, +void DSLParser::globalVarDeclarationEnd(Position pos, const dsl::DSLModifiers& mods, dsl::DSLType baseType, std::string_view name) { using namespace dsl; - int line = this->peek().fLine; DSLType type = baseType; DSLExpression initializer; - if (!this->parseArrayDimensions(line, &type)) { + if (!this->parseArrayDimensions(pos, &type)) { return; } - if (!this->parseInitializer(line, &initializer)) { + if (!this->parseInitializer(pos, &initializer)) { return; } - DSLGlobalVar first(mods, type, name, std::move(initializer), pos); + DSLGlobalVar first(mods, type, name, std::move(initializer), this->rangeFrom(pos)); Declare(first); AddToSymbolTable(first); @@ -491,15 +540,15 @@ void DSLParser::globalVarDeclarationEnd(PositionInfo pos, const dsl::DSLModifier if (!this->expectIdentifier(&identifierName)) { return; } - if (!this->parseArrayDimensions(line, &type)) { + if (!this->parseArrayDimensions(pos, &type)) { return; } DSLExpression anotherInitializer; - if (!this->parseInitializer(line, &anotherInitializer)) { + if (!this->parseInitializer(pos, &anotherInitializer)) { return; } DSLGlobalVar next(mods, type, this->text(identifierName), std::move(anotherInitializer), - this->position(line)); + this->rangeFrom(identifierName)); Declare(next); AddToSymbolTable(next, this->position(identifierName)); } @@ -508,19 +557,18 @@ void DSLParser::globalVarDeclarationEnd(PositionInfo pos, const dsl::DSLModifier /* (LBRACKET expression? RBRACKET)* (EQ assignmentExpression)? (COMMA IDENTIFER (LBRACKET expression? RBRACKET)* (EQ assignmentExpression)?)* SEMICOLON */ -DSLStatement DSLParser::localVarDeclarationEnd(PositionInfo pos, const dsl::DSLModifiers& mods, +DSLStatement DSLParser::localVarDeclarationEnd(Position pos, const dsl::DSLModifiers& mods, dsl::DSLType baseType, std::string_view name) { using namespace dsl; - int line = this->peek().fLine; DSLType type = baseType; DSLExpression initializer; - if (!this->parseArrayDimensions(line, &type)) { + if (!this->parseArrayDimensions(pos, &type)) { return {}; } - if (!this->parseInitializer(line, &initializer)) { + if (!this->parseInitializer(pos, &initializer)) { return {}; } - DSLVar first(mods, type, name, std::move(initializer), pos); + DSLVar first(mods, type, name, std::move(initializer), this->rangeFrom(pos)); DSLStatement result = Declare(first); AddToSymbolTable(first); @@ -530,15 +578,15 @@ DSLStatement DSLParser::localVarDeclarationEnd(PositionInfo pos, const dsl::DSLM if (!this->expectIdentifier(&identifierName)) { return result; } - if (!this->parseArrayDimensions(line, &type)) { + if (!this->parseArrayDimensions(pos, &type)) { return result; } DSLExpression anotherInitializer; - if (!this->parseInitializer(line, &anotherInitializer)) { + if (!this->parseInitializer(pos, &anotherInitializer)) { return result; } DSLVar next(mods, type, this->text(identifierName), std::move(anotherInitializer), - this->position(line)); + this->rangeFrom(identifierName)); DSLWriter::AddVarDeclaration(result, next); AddToSymbolTable(next, this->position(identifierName)); } @@ -602,6 +650,7 @@ DSLStatement DSLParser::varDeclarations() { /* STRUCT IDENTIFIER LBRACE varDeclaration* RBRACE */ std::optional DSLParser::structDeclaration() { + Position start = this->position(this->peek()); if (!this->expect(Token::Kind::TK_STRUCT, "'struct'")) { return std::nullopt; } @@ -619,6 +668,7 @@ std::optional DSLParser::structDeclaration() { SkTArray fields; std::unordered_set field_names; while (!this->checkNext(Token::Kind::TK_RBRACE)) { + Token fieldStart = this->peek(); DSLModifiers modifiers = this->modifiers(); std::optional type = this->type(&modifiers); if (!type) { @@ -633,10 +683,15 @@ std::optional DSLParser::structDeclaration() { } while (this->checkNext(Token::Kind::TK_LBRACKET)) { - actualType = dsl::Array(actualType, this->arraySize(), this->position(memberName)); + SKSL_INT size; + if (!this->arraySize(&size)) { + return std::nullopt; + } if (!this->expect(Token::Kind::TK_RBRACKET, "']'")) { return std::nullopt; } + actualType = dsl::Array(actualType, size, + this->rangeFrom(this->position(fieldStart))); } std::string key(this->text(memberName)); @@ -645,11 +700,12 @@ std::optional DSLParser::structDeclaration() { fields.push_back(DSLField(modifiers, std::move(actualType), this->text(memberName), - this->position(memberName))); + this->rangeFrom(fieldStart))); field_names.emplace(key); } else { - this->error(name, "field '" + key + "' was already defined in the same struct ('" + - std::string(this->text(name)) + "')"); + this->error(memberName, "field '" + key + + "' was already defined in the same struct ('" + std::string(this->text(name)) + + "')"); } } while (this->checkNext(Token::Kind::TK_COMMA)); if (!this->expect(Token::Kind::TK_SEMICOLON, "';'")) { @@ -657,21 +713,22 @@ std::optional DSLParser::structDeclaration() { } } if (fields.empty()) { - this->error(name, "struct '" + std::string(this->text(name)) + - "' must contain at least one field"); + this->error(this->rangeFrom(start), "struct '" + std::string(this->text(name)) + + "' must contain at least one field"); } - return dsl::Struct(this->text(name), SkMakeSpan(fields), this->position(name)); + return dsl::Struct(this->text(name), SkMakeSpan(fields), this->rangeFrom(start)); } /* structDeclaration ((IDENTIFIER varDeclarationEnd) | SEMICOLON) */ -SkTArray DSLParser::structVarDeclaration(const DSLModifiers& modifiers) { +SkTArray DSLParser::structVarDeclaration(Position start, + const DSLModifiers& modifiers) { std::optional type = this->structDeclaration(); if (!type) { return {}; } Token name; if (this->checkIdentifier(&name)) { - this->globalVarDeclarationEnd(this->position(name), modifiers, std::move(*type), + this->globalVarDeclarationEnd(this->rangeFrom(name), modifiers, std::move(*type), this->text(name)); } else { this->expect(Token::Kind::TK_SEMICOLON, "';'"); @@ -681,6 +738,7 @@ SkTArray DSLParser::structVarDeclaration(const DSLModifiers& /* modifiers type IDENTIFIER (LBRACKET INT_LITERAL RBRACKET)? */ std::optional> DSLParser::parameter(size_t paramIndex) { + Position pos = this->position(this->peek()); DSLModifiers modifiers = this->modifiers(); std::optional type = this->type(&modifiers); if (!type) { @@ -688,19 +746,16 @@ std::optional> DSLParser::parameter(size_t paramIndex) } Token name; std::string_view paramText; - PositionInfo paramPos; if (this->checkIdentifier(&name)) { - paramPos = this->position(name); paramText = this->text(name); } else { std::string anonymousName = String::printf("_skAnonymousParam%zu", paramIndex); - paramPos = this->position(this->peek()); paramText = *CurrentSymbolTable()->takeOwnershipOfString(std::move(anonymousName)); } - if (!this->parseArrayDimensions(name.fLine, &type.value())) { + if (!this->parseArrayDimensions(pos, &type.value())) { return std::nullopt; } - return {{DSLParameter(modifiers, *type, paramText, paramPos)}}; + return {{DSLParameter(modifiers, *type, paramText, this->rangeFrom(pos))}}; } /** EQ INT_LITERAL */ @@ -743,9 +798,9 @@ DSLLayout DSLParser::layout() { for (;;) { Token t = this->nextToken(); std::string text(this->text(t)); - auto found = layoutTokens->find(text); - if (found != layoutTokens->end()) { - switch (found->second) { + LayoutToken* found = sLayoutTokens->find(text); + if (found != nullptr) { + switch (*found) { case LayoutToken::ORIGIN_UPPER_LEFT: result.originUpperLeft(this->position(t)); break; @@ -800,7 +855,13 @@ DSLLayout DSLParser::layout() { /* layout? (UNIFORM | CONST | IN | OUT | INOUT | LOWP | MEDIUMP | HIGHP | FLAT | NOPERSPECTIVE | VARYING | INLINE)* */ DSLModifiers DSLParser::modifiers() { + int start = this->peek().fOffset; DSLLayout layout = this->layout(); + Token raw = this->nextRawToken(); + int end = raw.fOffset; + if (!is_whitespace(raw.fKind)) { + this->pushback(raw); + } int flags = 0; for (;;) { // TODO(ethannicholas): handle duplicate / incompatible flags @@ -809,9 +870,9 @@ DSLModifiers DSLParser::modifiers() { break; } flags |= tokenFlag; - this->nextToken(); + end = this->position(this->nextToken()).endOffset(); } - return DSLModifiers(std::move(layout), flags); + return DSLModifiers(std::move(layout), flags, Position::Range(start, end)); } /* ifStatement | forStatement | doStatement | whileStatement | block | expression */ @@ -874,24 +935,29 @@ std::optional DSLParser::type(DSLModifiers* modifiers) { DSLType result(this->text(type), modifiers, this->position(type)); while (this->checkNext(Token::Kind::TK_LBRACKET)) { if (this->peek().fKind != Token::Kind::TK_RBRACKET) { - result = Array(result, this->arraySize(), this->position(type)); + SKSL_INT size; + if (!this->arraySize(&size)) { + return std::nullopt; + } + this->expect(Token::Kind::TK_RBRACKET, "']'"); + result = Array(result, size, this->rangeFrom(type)); } else { this->error(this->peek(), "expected array dimension"); + this->expect(Token::Kind::TK_RBRACKET, "']'"); } - this->expect(Token::Kind::TK_RBRACKET, "']'"); } return result; } /* IDENTIFIER LBRACE varDeclaration+ - RBRACE (IDENTIFIER (LBRACKET expression? RBRACKET)*)? SEMICOLON */ + RBRACE (IDENTIFIER (LBRACKET expression RBRACKET)*)? SEMICOLON */ bool DSLParser::interfaceBlock(const dsl::DSLModifiers& modifiers) { Token typeName; if (!this->expectIdentifier(&typeName)) { return false; } - if (peek().fKind != Token::Kind::TK_LBRACE) { + if (this->peek().fKind != Token::Kind::TK_LBRACE) { // we only get into interfaceBlock if we found a top-level identifier which was not a type. // 99% of the time, the user was not actually intending to create an interface block, so // it's better to report it as an unknown type @@ -902,6 +968,7 @@ bool DSLParser::interfaceBlock(const dsl::DSLModifiers& modifiers) { SkTArray fields; std::unordered_set field_names; while (!this->checkNext(Token::Kind::TK_RBRACE)) { + Position fieldPos = this->position(this->peek()); DSLModifiers fieldModifiers = this->modifiers(); std::optional type = this->type(&fieldModifiers); if (!type) { @@ -916,8 +983,11 @@ bool DSLParser::interfaceBlock(const dsl::DSLModifiers& modifiers) { if (this->checkNext(Token::Kind::TK_LBRACKET)) { Token sizeToken = this->peek(); if (sizeToken.fKind != Token::Kind::TK_RBRACKET) { - actualType = Array(std::move(actualType), this->arraySize(), - this->position(typeName)); + SKSL_INT size; + if (!this->arraySize(&size)) { + return false; + } + actualType = Array(std::move(actualType), size, this->position(typeName)); } else { this->error(sizeToken, "unsized arrays are not permitted"); } @@ -932,10 +1002,10 @@ bool DSLParser::interfaceBlock(const dsl::DSLModifiers& modifiers) { fields.push_back(dsl::Field(fieldModifiers, std::move(actualType), this->text(fieldName), - this->position(fieldName))); + this->rangeFrom(fieldPos))); field_names.emplace(key); } else { - this->error(typeName, + this->error(fieldName, "field '" + key + "' was already defined in the same interface block ('" + std::string(this->text(typeName)) + "')"); @@ -943,24 +1013,27 @@ bool DSLParser::interfaceBlock(const dsl::DSLModifiers& modifiers) { } while (this->checkNext(Token::Kind::TK_COMMA)); } + if (fields.empty()) { + this->error(this->rangeFrom(typeName), "interface block '" + + std::string(this->text(typeName)) + "' must contain at least one member"); + } std::string_view instanceName; Token instanceNameToken; - SKSL_INT arraySize = 0; + SKSL_INT size = 0; if (this->checkIdentifier(&instanceNameToken)) { instanceName = this->text(instanceNameToken); if (this->checkNext(Token::Kind::TK_LBRACKET)) { - arraySize = this->arraySize(); + if (!this->arraySize(&size)) { + return false; + } this->expect(Token::Kind::TK_RBRACKET, "']'"); } } - this->expect(Token::Kind::TK_SEMICOLON, "';'"); - if (fields.empty()) { - this->error(typeName, "interface block '" + std::string(this->text(typeName)) + - "' must contain at least one member"); - } else { + if (!fields.empty()) { dsl::InterfaceBlock(modifiers, this->text(typeName), std::move(fields), instanceName, - arraySize, this->position(typeName)); + size, this->position(typeName)); } + this->expect(Token::Kind::TK_SEMICOLON, "';'"); return true; } @@ -992,12 +1065,13 @@ DSLStatement DSLParser::ifStatement() { return {}; } } + Position pos = this->rangeFrom(start); if (isStatic) { return StaticIf(std::move(test), std::move(ifTrue), - ifFalse.hasValue() ? std::move(ifFalse) : DSLStatement(), this->position(start)); + ifFalse.hasValue() ? std::move(ifFalse) : DSLStatement(), pos); } else { return If(std::move(test), std::move(ifTrue), - ifFalse.hasValue() ? std::move(ifFalse) : DSLStatement(), this->position(start)); + ifFalse.hasValue() ? std::move(ifFalse) : DSLStatement(), pos); } } @@ -1027,7 +1101,7 @@ DSLStatement DSLParser::doStatement() { if (!this->expect(Token::Kind::TK_SEMICOLON, "';'")) { return {}; } - return Do(std::move(statement), std::move(test), this->position(start)); + return Do(std::move(statement), std::move(test), this->rangeFrom(start)); } /* WHILE LPAREN expression RPAREN STATEMENT */ @@ -1050,7 +1124,7 @@ DSLStatement DSLParser::whileStatement() { if (!statement.hasValue()) { return {}; } - return While(std::move(test), std::move(statement), this->position(start)); + return While(std::move(test), std::move(statement), this->rangeFrom(start)); } /* CASE expression COLON statement* */ @@ -1128,10 +1202,11 @@ DSLStatement DSLParser::switchStatement() { if (!this->expect(Token::Kind::TK_RBRACE, "'}'")) { return {}; } + Position pos = this->rangeFrom(start); if (isStatic) { - return StaticSwitch(std::move(value), std::move(cases), this->position(start)); + return StaticSwitch(std::move(value), std::move(cases), pos); } else { - return Switch(std::move(value), std::move(cases), this->position(start)); + return Switch(std::move(value), std::move(cases), pos); } } @@ -1188,7 +1263,7 @@ dsl::DSLStatement DSLParser::forStatement() { test.hasValue() ? std::move(test) : DSLExpression(), next.hasValue() ? std::move(next) : DSLExpression(), std::move(statement), - this->position(start)); + this->rangeFrom(start)); } /* RETURN expression? SEMICOLON */ @@ -1209,7 +1284,7 @@ DSLStatement DSLParser::returnStatement() { return {}; } return Return(expression.hasValue() ? std::move(expression) : DSLExpression(), - this->position(start)); + this->rangeFrom(start)); } /* BREAK SEMICOLON */ @@ -1264,7 +1339,8 @@ std::optional DSLParser::block() { switch (this->peek().fKind) { case Token::Kind::TK_RBRACE: this->nextToken(); - return DSLBlock(std::move(statements), CurrentSymbolTable()); + return DSLBlock(std::move(statements), CurrentSymbolTable(), + this->rangeFrom(start)); case Token::Kind::TK_END_OF_FILE: this->error(this->peek(), "expected '}', but found end of file"); return std::nullopt; @@ -1294,42 +1370,47 @@ DSLStatement DSLParser::expressionStatement() { return {}; } +bool DSLParser::operatorRight(AutoDSLDepth& depth, Operator::Kind op, BinaryParseFn rightFn, + DSLExpression& result) { + this->nextToken(); + if (!depth.increase()) { + return false; + } + DSLExpression right = (this->*rightFn)(); + if (!right.hasValue()) { + return false; + } + Position pos = result.position().rangeThrough(right.position()); + DSLExpression next = result.binary(op, std::move(right), pos); + result.swap(next); + return true; +} + /* assignmentExpression (COMMA assignmentExpression)* */ DSLExpression DSLParser::expression() { + [[maybe_unused]] Token start = this->peek(); DSLExpression result = this->assignmentExpression(); if (!result.hasValue()) { return {}; } Token t; AutoDSLDepth depth(this); - while (this->checkNext(Token::Kind::TK_COMMA, &t)) { - if (!depth.increase()) { - return {}; - } - DSLExpression right = this->assignmentExpression(); - if (!right.hasValue()) { + while (this->peek().fKind == Token::Kind::TK_COMMA) { + if (!operatorRight(depth, Operator::Kind::COMMA, &DSLParser::assignmentExpression, + result)) { return {}; } - DSLExpression next = dsl::operator,(std::move(result), std::move(right)); - result.swap(next); } + SkASSERTF(result.position().valid(), "Expression %s has invalid position", + result.description().c_str()); + SkASSERTF(result.position().startOffset() == this->position(start).startOffset(), + "Expected %s to start at %d (first token: '%.*s'), but it has range %d-%d\n", + result.description().c_str(), this->position(start).startOffset(), + (int)this->text(start).length(), this->text(start).data(), + result.position().startOffset(), result.position().endOffset()); return result; } -#define OPERATOR_RIGHT(op, exprType) \ - do { \ - this->nextToken(); \ - if (!depth.increase()) { \ - return {}; \ - } \ - DSLExpression right = this->exprType(); \ - if (!right.hasValue()) { \ - return {}; \ - } \ - DSLExpression next = std::move(result) op std::move(right); \ - result.swap(next); \ - } while (false) - /* ternaryExpression ((EQEQ | STAREQ | SLASHEQ | PERCENTEQ | PLUSEQ | MINUSEQ | SHLEQ | SHREQ | BITWISEANDEQ | BITWISEXOREQ | BITWISEOREQ | LOGICALANDEQ | LOGICALXOREQ | LOGICALOREQ) assignmentExpression)* @@ -1342,17 +1423,72 @@ DSLExpression DSLParser::assignmentExpression() { } for (;;) { switch (this->peek().fKind) { - case Token::Kind::TK_EQ: OPERATOR_RIGHT(=, assignmentExpression); break; - case Token::Kind::TK_STAREQ: OPERATOR_RIGHT(*=, assignmentExpression); break; - case Token::Kind::TK_SLASHEQ: OPERATOR_RIGHT(/=, assignmentExpression); break; - case Token::Kind::TK_PERCENTEQ: OPERATOR_RIGHT(%=, assignmentExpression); break; - case Token::Kind::TK_PLUSEQ: OPERATOR_RIGHT(+=, assignmentExpression); break; - case Token::Kind::TK_MINUSEQ: OPERATOR_RIGHT(-=, assignmentExpression); break; - case Token::Kind::TK_SHLEQ: OPERATOR_RIGHT(<<=, assignmentExpression); break; - case Token::Kind::TK_SHREQ: OPERATOR_RIGHT(>>=, assignmentExpression); break; - case Token::Kind::TK_BITWISEANDEQ: OPERATOR_RIGHT(&=, assignmentExpression); break; - case Token::Kind::TK_BITWISEXOREQ: OPERATOR_RIGHT(^=, assignmentExpression); break; - case Token::Kind::TK_BITWISEOREQ: OPERATOR_RIGHT(|=, assignmentExpression); break; + case Token::Kind::TK_EQ: + if (!operatorRight(depth, Operator::Kind::EQ, &DSLParser::assignmentExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_STAREQ: + if (!operatorRight(depth, Operator::Kind::STAREQ, &DSLParser::assignmentExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_SLASHEQ: + if (!operatorRight(depth, Operator::Kind::SLASHEQ, &DSLParser::assignmentExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_PERCENTEQ: + if (!operatorRight(depth, Operator::Kind::PERCENTEQ, + &DSLParser::assignmentExpression, result)) { + return {}; + } + break; + case Token::Kind::TK_PLUSEQ: + if (!operatorRight(depth, Operator::Kind::PLUSEQ, &DSLParser::assignmentExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_MINUSEQ: + if (!operatorRight(depth, Operator::Kind::MINUSEQ, &DSLParser::assignmentExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_SHLEQ: + if (!operatorRight(depth, Operator::Kind::SHLEQ, &DSLParser::assignmentExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_SHREQ: + if (!operatorRight(depth, Operator::Kind::SHREQ, &DSLParser::assignmentExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_BITWISEANDEQ: + if (!operatorRight(depth, Operator::Kind::BITWISEANDEQ, + &DSLParser::assignmentExpression, result)) { + return {}; + } + break; + case Token::Kind::TK_BITWISEXOREQ: + if (!operatorRight(depth, Operator::Kind::BITWISEXOREQ, + &DSLParser::assignmentExpression, result)) { + return {}; + } + break; + case Token::Kind::TK_BITWISEOREQ: + if (!operatorRight(depth, Operator::Kind::BITWISEOREQ, + &DSLParser::assignmentExpression, result)) { + return {}; + } + break; default: return result; } @@ -1383,7 +1519,8 @@ DSLExpression DSLParser::ternaryExpression() { if (!falseExpr.hasValue()) { return {}; } - return Select(std::move(base), std::move(trueExpr), std::move(falseExpr)); + Position pos = base.position().rangeThrough(falseExpr.position()); + return Select(std::move(base), std::move(trueExpr), std::move(falseExpr), pos); } /* logicalXorExpression (LOGICALOR logicalXorExpression)* */ @@ -1394,7 +1531,10 @@ DSLExpression DSLParser::logicalOrExpression() { return {}; } while (this->peek().fKind == Token::Kind::TK_LOGICALOR) { - OPERATOR_RIGHT(||, logicalXorExpression); + if (!operatorRight(depth, Operator::Kind::LOGICALOR, &DSLParser::logicalXorExpression, + result)) { + return {}; + } } return result; } @@ -1406,16 +1546,11 @@ DSLExpression DSLParser::logicalXorExpression() { if (!result.hasValue()) { return {}; } - while (this->checkNext(Token::Kind::TK_LOGICALXOR)) { - if (!depth.increase()) { - return {}; - } - DSLExpression right = this->logicalAndExpression(); - if (!right.hasValue()) { + while (this->peek().fKind == Token::Kind::TK_LOGICALXOR) { + if (!operatorRight(depth, Operator::Kind::LOGICALXOR, &DSLParser::logicalAndExpression, + result)) { return {}; } - DSLExpression next = LogicalXor(std::move(result), std::move(right)); - result.swap(next); } return result; } @@ -1428,7 +1563,10 @@ DSLExpression DSLParser::logicalAndExpression() { return {}; } while (this->peek().fKind == Token::Kind::TK_LOGICALAND) { - OPERATOR_RIGHT(&&, bitwiseOrExpression); + if (!operatorRight(depth, Operator::Kind::LOGICALAND, &DSLParser::bitwiseOrExpression, + result)) { + return {}; + } } return result; } @@ -1441,7 +1579,10 @@ DSLExpression DSLParser::bitwiseOrExpression() { return {}; } while (this->peek().fKind == Token::Kind::TK_BITWISEOR) { - OPERATOR_RIGHT(|, bitwiseXorExpression); + if (!operatorRight(depth, Operator::Kind::BITWISEOR, &DSLParser::bitwiseXorExpression, + result)) { + return {}; + } } return result; } @@ -1454,7 +1595,10 @@ DSLExpression DSLParser::bitwiseXorExpression() { return {}; } while (this->peek().fKind == Token::Kind::TK_BITWISEXOR) { - OPERATOR_RIGHT(^, bitwiseAndExpression); + if (!operatorRight(depth, Operator::Kind::BITWISEXOR, &DSLParser::bitwiseAndExpression, + result)) { + return {}; + } } return result; } @@ -1467,7 +1611,10 @@ DSLExpression DSLParser::bitwiseAndExpression() { return {}; } while (this->peek().fKind == Token::Kind::TK_BITWISEAND) { - OPERATOR_RIGHT(&, equalityExpression); + if (!operatorRight(depth, Operator::Kind::BITWISEAND, &DSLParser::equalityExpression, + result)) { + return {}; + } } return result; } @@ -1481,8 +1628,18 @@ DSLExpression DSLParser::equalityExpression() { } for (;;) { switch (this->peek().fKind) { - case Token::Kind::TK_EQEQ: OPERATOR_RIGHT(==, relationalExpression); break; - case Token::Kind::TK_NEQ: OPERATOR_RIGHT(!=, relationalExpression); break; + case Token::Kind::TK_EQEQ: + if (!operatorRight(depth, Operator::Kind::EQEQ, &DSLParser::relationalExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_NEQ: + if (!operatorRight(depth, Operator::Kind::NEQ, &DSLParser::relationalExpression, + result)) { + return {}; + } + break; default: return result; } } @@ -1497,11 +1654,32 @@ DSLExpression DSLParser::relationalExpression() { } for (;;) { switch (this->peek().fKind) { - case Token::Kind::TK_LT: OPERATOR_RIGHT(<, shiftExpression); break; - case Token::Kind::TK_GT: OPERATOR_RIGHT(>, shiftExpression); break; - case Token::Kind::TK_LTEQ: OPERATOR_RIGHT(<=, shiftExpression); break; - case Token::Kind::TK_GTEQ: OPERATOR_RIGHT(>=, shiftExpression); break; - default: return result; + case Token::Kind::TK_LT: + if (!operatorRight(depth, Operator::Kind::LT, &DSLParser::shiftExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_GT: + if (!operatorRight(depth, Operator::Kind::GT, &DSLParser::shiftExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_LTEQ: + if (!operatorRight(depth, Operator::Kind::LTEQ, &DSLParser::shiftExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_GTEQ: + if (!operatorRight(depth, Operator::Kind::GTEQ, &DSLParser::shiftExpression, + result)) { + return {}; + } + break; + default: + return result; } } } @@ -1515,9 +1693,20 @@ DSLExpression DSLParser::shiftExpression() { } for (;;) { switch (this->peek().fKind) { - case Token::Kind::TK_SHL: OPERATOR_RIGHT(<<, additiveExpression); break; - case Token::Kind::TK_SHR: OPERATOR_RIGHT(>>, additiveExpression); break; - default: return result; + case Token::Kind::TK_SHL: + if (!operatorRight(depth, Operator::Kind::SHL, &DSLParser::additiveExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_SHR: + if (!operatorRight(depth, Operator::Kind::SHR, &DSLParser::additiveExpression, + result)) { + return {}; + } + break; + default: + return result; } } } @@ -1531,9 +1720,20 @@ DSLExpression DSLParser::additiveExpression() { } for (;;) { switch (this->peek().fKind) { - case Token::Kind::TK_PLUS: OPERATOR_RIGHT(+, multiplicativeExpression); break; - case Token::Kind::TK_MINUS: OPERATOR_RIGHT(-, multiplicativeExpression); break; - default: return result; + case Token::Kind::TK_PLUS: + if (!operatorRight(depth, Operator::Kind::PLUS, + &DSLParser::multiplicativeExpression, result)) { + return {}; + } + break; + case Token::Kind::TK_MINUS: + if (!operatorRight(depth, Operator::Kind::MINUS, + &DSLParser::multiplicativeExpression, result)) { + return {}; + } + break; + default: + return result; } } } @@ -1547,9 +1747,24 @@ DSLExpression DSLParser::multiplicativeExpression() { } for (;;) { switch (this->peek().fKind) { - case Token::Kind::TK_STAR: OPERATOR_RIGHT(*, unaryExpression); break; - case Token::Kind::TK_SLASH: OPERATOR_RIGHT(/, unaryExpression); break; - case Token::Kind::TK_PERCENT: OPERATOR_RIGHT(%, unaryExpression); break; + case Token::Kind::TK_STAR: + if (!operatorRight(depth, Operator::Kind::STAR, &DSLParser::unaryExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_SLASH: + if (!operatorRight(depth, Operator::Kind::SLASH, &DSLParser::unaryExpression, + result)) { + return {}; + } + break; + case Token::Kind::TK_PERCENT: + if (!operatorRight(depth, Operator::Kind::PERCENT, &DSLParser::unaryExpression, + result)) { + return {}; + } + break; default: return result; } } @@ -1558,8 +1773,8 @@ DSLExpression DSLParser::multiplicativeExpression() { /* postfixExpression | (PLUS | MINUS | NOT | PLUSPLUS | MINUSMINUS) unaryExpression */ DSLExpression DSLParser::unaryExpression() { AutoDSLDepth depth(this); - Token next = this->peek(); - switch (next.fKind) { + Token start = this->peek(); + switch (start.fKind) { case Token::Kind::TK_PLUS: case Token::Kind::TK_MINUS: case Token::Kind::TK_LOGICALNOT: @@ -1574,13 +1789,14 @@ DSLExpression DSLParser::unaryExpression() { if (!expr.hasValue()) { return {}; } - switch (next.fKind) { - case Token::Kind::TK_PLUS: return {{ +std::move(expr)}}; - case Token::Kind::TK_MINUS: return {{ -std::move(expr)}}; - case Token::Kind::TK_LOGICALNOT: return {{ !std::move(expr)}}; - case Token::Kind::TK_BITWISENOT: return {{ ~std::move(expr)}}; - case Token::Kind::TK_PLUSPLUS: return {{++std::move(expr)}}; - case Token::Kind::TK_MINUSMINUS: return {{--std::move(expr)}}; + Position p = Position::Range(start.fOffset, expr.position().endOffset()); + switch (start.fKind) { + case Token::Kind::TK_PLUS: return expr.prefix(Operator::Kind::PLUS, p); + case Token::Kind::TK_MINUS: return expr.prefix(Operator::Kind::MINUS, p); + case Token::Kind::TK_LOGICALNOT: return expr.prefix(Operator::Kind::LOGICALNOT, p); + case Token::Kind::TK_BITWISENOT: return expr.prefix(Operator::Kind::BITWISENOT, p); + case Token::Kind::TK_PLUSPLUS: return expr.prefix(Operator::Kind::PLUSPLUS, p); + case Token::Kind::TK_MINUSMINUS: return expr.prefix(Operator::Kind::MINUSMINUS, p); default: SkUNREACHABLE; } } @@ -1625,17 +1841,18 @@ DSLExpression DSLParser::postfixExpression() { } } -DSLExpression DSLParser::swizzle(int line, DSLExpression base, std::string_view swizzleMask) { +DSLExpression DSLParser::swizzle(Position pos, DSLExpression base, + std::string_view swizzleMask) { SkASSERT(swizzleMask.length() > 0); if (!base.type().isVector() && !base.type().isScalar()) { - return base.field(swizzleMask, this->position(line)); + return base.field(swizzleMask, pos); } int length = swizzleMask.length(); SkSL::SwizzleComponent::Type components[4]; for (int i = 0; i < length; ++i) { if (i >= 4) { - this->error(line, "too many components in swizzle mask"); - return DSLExpression::Poison(); + this->error(pos, "too many components in swizzle mask"); + return DSLExpression::Poison(pos); } switch (swizzleMask[i]) { case '0': components[i] = SwizzleComponent::ZERO; break; @@ -1657,23 +1874,24 @@ DSLExpression DSLParser::swizzle(int line, DSLExpression base, std::string_view case 'q': components[i] = SwizzleComponent::Q; break; case 'B': components[i] = SwizzleComponent::UB; break; default: - this->error(line, String::printf("invalid swizzle component '%c'", - swizzleMask[i]).c_str()); - return DSLExpression::Poison(); + this->error(pos, String::printf("invalid swizzle component '%c'", + swizzleMask[i]).c_str()); + return DSLExpression::Poison(pos); } } switch (length) { - case 1: return dsl::Swizzle(std::move(base), components[0]); - case 2: return dsl::Swizzle(std::move(base), components[0], components[1]); - case 3: return dsl::Swizzle(std::move(base), components[0], components[1], components[2]); + case 1: return dsl::Swizzle(std::move(base), components[0], pos); + case 2: return dsl::Swizzle(std::move(base), components[0], components[1], pos); + case 3: return dsl::Swizzle(std::move(base), components[0], components[1], components[2], + pos); case 4: return dsl::Swizzle(std::move(base), components[0], components[1], components[2], - components[3]); + components[3], pos); default: SkUNREACHABLE; } } -dsl::DSLExpression DSLParser::call(int line, dsl::DSLExpression base, ExpressionArray args) { - return DSLExpression(base(std::move(args), this->position(line)), this->position(line)); +dsl::DSLExpression DSLParser::call(Position pos, dsl::DSLExpression base, ExpressionArray args) { + return DSLExpression(base(std::move(args), pos), pos); } /* LBRACKET expression? RBRACKET | DOT IDENTIFIER | LPAREN arguments RPAREN | @@ -1687,25 +1905,21 @@ DSLExpression DSLParser::suffix(DSLExpression base) { switch (next.fKind) { case Token::Kind::TK_LBRACKET: { if (this->checkNext(Token::Kind::TK_RBRACKET)) { - this->error(next, "missing index in '[]'"); - return DSLExpression::Poison(); + this->error(this->rangeFrom(next), "missing index in '[]'"); + return DSLExpression::Poison(this->rangeFrom(base.position())); } DSLExpression index = this->expression(); if (!index.hasValue()) { return {}; } this->expect(Token::Kind::TK_RBRACKET, "']' to complete array access expression"); - DSLPossibleExpression result = base[std::move(index)]; - if (!result.valid()) { - result.reportErrors(this->position(next)); - } - return std::move(result); + return base.index(std::move(index), this->rangeFrom(base.position())); } case Token::Kind::TK_DOT: { - int line = this->peek().fLine; std::string_view text; if (this->identifier(&text)) { - return this->swizzle(line, std::move(base), text); + Position pos = this->rangeFrom(base.position()); + return this->swizzle(pos, std::move(base), text); } [[fallthrough]]; } @@ -1717,16 +1931,18 @@ DSLExpression DSLParser::suffix(DSLExpression base) { field.remove_prefix(1); // use the next *raw* token so we don't ignore whitespace - we only care about // identifiers that directly follow the float + Position pos = this->rangeFrom(base.position()); Token id = this->nextRawToken(); if (id.fKind == Token::Kind::TK_IDENTIFIER) { - return this->swizzle(next.fLine, std::move(base), - std::string(field) + std::string(this->text(id))); + pos = this->rangeFrom(base.position()); + return this->swizzle(pos, std::move(base), std::string(field) + + std::string(this->text(id))); } else if (field.empty()) { - this->error(next, "expected field name or swizzle mask after '.'"); - return {{DSLExpression::Poison()}}; + this->error(pos, "expected field name or swizzle mask after '.'"); + return {{DSLExpression::Poison(pos)}}; } this->pushback(id); - return this->swizzle(next.fLine, std::move(base), field); + return this->swizzle(pos, std::move(base), field); } case Token::Kind::TK_LPAREN: { ExpressionArray args; @@ -1743,12 +1959,13 @@ DSLExpression DSLParser::suffix(DSLExpression base) { } } this->expect(Token::Kind::TK_RPAREN, "')' to complete function arguments"); - return this->call(next.fLine, std::move(base), std::move(args)); + Position pos = this->rangeFrom(base.position()); + return this->call(pos, std::move(base), std::move(args)); } case Token::Kind::TK_PLUSPLUS: - return std::move(base)++; + return base.postfix(Operator::Kind::PLUSPLUS, this->rangeFrom(base.position())); case Token::Kind::TK_MINUSMINUS: - return std::move(base)--; + return base.postfix(Operator::Kind::MINUSMINUS, this->rangeFrom(base.position())); default: { this->error(next, "expected expression suffix, but found '" + std::string(this->text(next)) + "'"); @@ -1797,6 +2014,7 @@ DSLExpression DSLParser::term() { DSLExpression result = this->expression(); if (result.hasValue()) { this->expect(Token::Kind::TK_RPAREN, "')' to complete expression"); + result.setPosition(this->rangeFrom(this->position(t))); return result; } break; diff --git a/third_party/skia/src/sksl/SkSLDSLParser.h b/third_party/skia/src/sksl/SkSLDSLParser.h index b3ca41ed4c8c..996a0fb578fe 100644 --- a/third_party/skia/src/sksl/SkSLDSLParser.h +++ b/third_party/skia/src/sksl/SkSLDSLParser.h @@ -8,23 +8,44 @@ #ifndef SKSL_DSLPARSER #define SKSL_DSLPARSER +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" #include "include/private/SkSLProgramKind.h" -#include "include/sksl/DSL.h" -#include "include/sksl/DSLSymbols.h" +#include "include/private/SkTArray.h" +#include "include/private/SkTHash.h" +#include "include/sksl/DSLCore.h" +#include "include/sksl/DSLExpression.h" +#include "include/sksl/DSLLayout.h" +#include "include/sksl/DSLModifiers.h" +#include "include/sksl/DSLStatement.h" +#include "include/sksl/DSLType.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLOperator.h" +#include "include/sksl/SkSLPosition.h" +#include "src/sksl/SkSLCompiler.h" #include "src/sksl/SkSLLexer.h" -#include "src/sksl/ir/SkSLProgram.h" +#include "src/sksl/SkSLProgramSettings.h" #include #include +#include #include -#include namespace SkSL { -class ErrorReporter; -struct Modifiers; struct ParsedModule; -class SymbolTable; +struct Program; + +namespace dsl { +class DSLBlock; +class DSLCase; +class DSLGlobalVar; +class DSLParameter; +template class DSLWrapper; + +} + +class AutoDSLDepth; /** * Consumes .sksl text and invokes DSL functions to instantiate the program. @@ -54,9 +75,7 @@ class DSLParser { std::string_view text(Token token); - PositionInfo position(Token token); - - PositionInfo position(int line); + Position position(Token token); private: static void InitLayoutMap(); @@ -117,7 +136,11 @@ class DSLParser { bool expectIdentifier(Token* result); void error(Token token, std::string msg); - void error(int line, std::string msg); + void error(Position position, std::string msg); + + // Returns the range from `start` to the current parse position. + Position rangeFrom(Position start); + Position rangeFrom(Token start); // these functions parse individual grammar rules from the current parse position; you probably // don't need to call any of these outside of the parser. The function declarations in the .cpp @@ -125,18 +148,26 @@ class DSLParser { void declarations(); - SKSL_INT arraySize(); + /** + * Parses an expression representing an array size. Reports errors if the array size is not + * valid (out of bounds, not a literal integer). Returns true if an expression was + * successfully parsed, even if that array size is not actually valid. In the event of a true + * return, outResult always contains a valid array size (even if the parsed array size was not + * actually valid; invalid array sizes result in a 1 to avoid additional errors downstream). + */ + bool arraySize(SKSL_INT* outResult); void directive(); bool declaration(); - bool functionDeclarationEnd(const dsl::DSLModifiers& modifiers, + bool functionDeclarationEnd(Position start, + const dsl::DSLModifiers& modifiers, dsl::DSLType type, const Token& name); struct VarDeclarationsPrefix { - PositionInfo fPosition; + Position fPosition; dsl::DSLModifiers fModifiers; dsl::DSLType fType = dsl::DSLType(dsl::kVoid_Type); Token fName; @@ -150,16 +181,17 @@ class DSLParser { std::optional structDeclaration(); - SkTArray structVarDeclaration(const dsl::DSLModifiers& modifiers); + SkTArray structVarDeclaration(Position start, + const dsl::DSLModifiers& modifiers); - bool parseArrayDimensions(int line, dsl::DSLType* type); + bool parseArrayDimensions(Position pos, dsl::DSLType* type); - bool parseInitializer(int line, dsl::DSLExpression* initializer); + bool parseInitializer(Position pos, dsl::DSLExpression* initializer); - void globalVarDeclarationEnd(PositionInfo position, const dsl::DSLModifiers& mods, + void globalVarDeclarationEnd(Position position, const dsl::DSLModifiers& mods, dsl::DSLType baseType, std::string_view name); - dsl::DSLStatement localVarDeclarationEnd(PositionInfo position, const dsl::DSLModifiers& mods, + dsl::DSLStatement localVarDeclarationEnd(Position position, const dsl::DSLModifiers& mods, dsl::DSLType baseType, std::string_view name); std::optional> parameter(size_t paramIndex); @@ -202,6 +234,10 @@ class DSLParser { dsl::DSLStatement expressionStatement(); + using BinaryParseFn = dsl::DSLExpression (DSLParser::*)(); + bool SK_WARN_UNUSED_RESULT operatorRight(AutoDSLDepth& depth, Operator::Kind op, + BinaryParseFn rightFn, dsl::DSLExpression& result); + dsl::DSLExpression expression(); dsl::DSLExpression assignmentExpression(); @@ -234,9 +270,10 @@ class DSLParser { dsl::DSLExpression postfixExpression(); - dsl::DSLExpression swizzle(int line, dsl::DSLExpression base, std::string_view swizzleMask); + dsl::DSLExpression swizzle(Position pos, dsl::DSLExpression base, + std::string_view swizzleMask); - dsl::DSLExpression call(int line, dsl::DSLExpression base, ExpressionArray args); + dsl::DSLExpression call(Position pos, dsl::DSLExpression base, ExpressionArray args); dsl::DSLExpression suffix(dsl::DSLExpression base); @@ -284,7 +321,7 @@ class DSLParser { private: class ForwardingErrorReporter : public ErrorReporter { public: - void handleError(std::string_view msg, PositionInfo pos) override { + void handleError(std::string_view msg, Position pos) override { fErrors.push_back({std::string(msg), pos}); } @@ -297,7 +334,7 @@ class DSLParser { private: struct Error { std::string fMsg; - PositionInfo fPos; + Position fPos; }; SkTArray fErrors; @@ -305,7 +342,7 @@ class DSLParser { void restoreErrorReporter() { SkASSERT(fOldErrorReporter); - fErrorReporter.reportPendingErrors(PositionInfo()); + fErrorReporter.reportPendingErrors(Position()); dsl::SetErrorReporter(fOldErrorReporter); fOldErrorReporter = nullptr; } @@ -318,7 +355,7 @@ class DSLParser { bool fOldEncounteredFatalError; }; - static std::unordered_map* layoutTokens; + static SkTHashMap* sLayoutTokens; Compiler& fCompiler; ProgramSettings fSettings; diff --git a/third_party/skia/src/sksl/SkSLDehydrator.cpp b/third_party/skia/src/sksl/SkSLDehydrator.cpp index d9b94ab21951..2bb83182d54e 100644 --- a/third_party/skia/src/sksl/SkSLDehydrator.cpp +++ b/third_party/skia/src/sksl/SkSLDehydrator.cpp @@ -7,15 +7,20 @@ #include "src/sksl/SkSLDehydrator.h" -#include - +#include "include/core/SkSpan.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLLayout.h" +#include "include/private/SkSLModifiers.h" #include "include/private/SkSLProgramElement.h" #include "include/private/SkSLStatement.h" #include "include/private/SkSLSymbol.h" +#include "include/private/SkTArray.h" +#include "include/sksl/SkSLOperator.h" +#include "src/sksl/SkSLOutputStream.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/SkSLRehydrator.h" #include "src/sksl/ir/SkSLBinaryExpression.h" -#include "src/sksl/ir/SkSLBreakStatement.h" -#include "src/sksl/ir/SkSLConstructor.h" +#include "src/sksl/ir/SkSLBlock.h" #include "src/sksl/ir/SkSLConstructorArray.h" #include "src/sksl/ir/SkSLConstructorArrayCast.h" #include "src/sksl/ir/SkSLConstructorCompound.h" @@ -25,9 +30,8 @@ #include "src/sksl/ir/SkSLConstructorScalarCast.h" #include "src/sksl/ir/SkSLConstructorSplat.h" #include "src/sksl/ir/SkSLConstructorStruct.h" -#include "src/sksl/ir/SkSLContinueStatement.h" -#include "src/sksl/ir/SkSLDiscardStatement.h" #include "src/sksl/ir/SkSLDoStatement.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLExpressionStatement.h" #include "src/sksl/ir/SkSLField.h" #include "src/sksl/ir/SkSLFieldAccess.h" @@ -43,6 +47,7 @@ #include "src/sksl/ir/SkSLLiteral.h" #include "src/sksl/ir/SkSLPostfixExpression.h" #include "src/sksl/ir/SkSLPrefixExpression.h" +#include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLReturnStatement.h" #include "src/sksl/ir/SkSLSetting.h" #include "src/sksl/ir/SkSLStructDefinition.h" @@ -51,9 +56,13 @@ #include "src/sksl/ir/SkSLSwizzle.h" #include "src/sksl/ir/SkSLSymbolTable.h" #include "src/sksl/ir/SkSLTernaryExpression.h" +#include "src/sksl/ir/SkSLType.h" #include "src/sksl/ir/SkSLUnresolvedFunction.h" #include "src/sksl/ir/SkSLVarDeclarations.h" #include "src/sksl/ir/SkSLVariable.h" +#include "src/sksl/ir/SkSLVariableReference.h" + +#include namespace SkSL { @@ -395,7 +404,11 @@ void Dehydrator::write(const Expression* e) { SkASSERT(l.type().isInteger()); this->writeCommand(Rehydrator::kIntLiteral_Command); this->write(l.type()); - this->writeS32(l.intValue()); + if (l.type().isUnsigned()) { + this->writeU32(l.intValue()); + } else { + this->writeS32(l.intValue()); + } } break; } @@ -467,7 +480,7 @@ void Dehydrator::write(const Statement* s) { for (const std::unique_ptr& blockStmt : b.children()) { this->write(blockStmt.get()); } - this->writeU8(b.isScope()); + this->writeU8((int8_t)b.blockKind()); break; } case Statement::Kind::kBreak: diff --git a/third_party/skia/src/sksl/SkSLDehydrator.h b/third_party/skia/src/sksl/SkSLDehydrator.h index 1ed1a1a09012..f6d678171840 100644 --- a/third_party/skia/src/sksl/SkSLDehydrator.h +++ b/third_party/skia/src/sksl/SkSLDehydrator.h @@ -8,26 +8,31 @@ #ifndef SKSL_DEHYDRATOR #define SKSL_DEHYDRATOR -#include "include/core/SkSpan.h" -#include "include/private/SkSLModifiers.h" -#include "include/private/SkSLSymbol.h" +#include "include/core/SkTypes.h" #include "include/private/SkTHash.h" -#include "src/sksl/SkSLOutputStream.h" #include "src/sksl/SkSLStringStream.h" -#include +#include +#include +#include +#include #include +#include #include +template class SkSpan; + namespace SkSL { -class AnyConstructor; class Expression; -struct Program; +class OutputStream; class ProgramElement; class Statement; class Symbol; class SymbolTable; +struct Layout; +struct Modifiers; +struct Program; /** * Converts SkSL objects into a binary file. See binary_format.md for a description of the file @@ -56,7 +61,7 @@ class Dehydrator { private: void writeS8(int32_t i) { - SkASSERT(i >= -128 && i <= 127); + SkASSERT(SkTFitsIn(i)); fBody.write8(i); } @@ -66,22 +71,27 @@ class Dehydrator { } void writeU8(int32_t i) { - SkASSERT(i >= 0 && i <= 255); + SkASSERT(SkTFitsIn(i)); fBody.write8(i); } void writeS16(int32_t i) { - SkASSERT(i >= -32768 && i <= 32767); + SkASSERT(SkTFitsIn(i)); fBody.write16(i); } void writeU16(int32_t i) { - SkASSERT(i >= 0 && i <= 65535); + SkASSERT(SkTFitsIn(i)); fBody.write16(i); } void writeS32(int64_t i) { - SkASSERT(i >= -2147483648LL && i <= 2147483647); + SkASSERT(SkTFitsIn(i)); + fBody.write32(i); + } + + void writeU32(int64_t i) { + SkASSERT(SkTFitsIn(i)); fBody.write32(i); } diff --git a/third_party/skia/src/sksl/SkSLErrorReporter.cpp b/third_party/skia/src/sksl/SkSLErrorReporter.cpp index 64f7867d161d..c8efe2a8275f 100644 --- a/third_party/skia/src/sksl/SkSLErrorReporter.cpp +++ b/third_party/skia/src/sksl/SkSLErrorReporter.cpp @@ -8,12 +8,12 @@ #include "include/sksl/SkSLErrorReporter.h" #include "include/private/SkStringView.h" +#include "include/sksl/SkSLPosition.h" #include "src/sksl/SkSLCompiler.h" -#include "src/sksl/dsl/priv/DSLWriter.h" namespace SkSL { -void ErrorReporter::error(std::string_view msg, PositionInfo position) { +void ErrorReporter::error(std::string_view msg, Position position) { if (skstd::contains(msg, Compiler::POISON_TAG)) { // don't report errors on poison values return; @@ -22,17 +22,28 @@ void ErrorReporter::error(std::string_view msg, PositionInfo position) { this->handleError(msg, position); } -void ErrorReporter::error(int line, std::string_view msg) { +void ErrorReporter::error(Position pos, std::string_view msg) { if (skstd::contains(msg, Compiler::POISON_TAG)) { // don't report errors on poison values return; } - if (line == -1) { + if (pos.valid()) { + this->error(msg, pos); + } else { ++fErrorCount; fPendingErrors.push_back(std::string(msg)); - } else { - this->error(msg, PositionInfo(/*file=*/nullptr, line)); } } +void ErrorReporter::reportPendingErrors(Position pos) { + for (const std::string& msg : fPendingErrors) { + this->handleError(msg, pos); + } + fPendingErrors.clear(); +} + +void TestingOnly_AbortErrorReporter::handleError(std::string_view msg, Position pos) { + SK_ABORT("%.*s", (int)msg.length(), msg.data()); +} + } // namespace SkSL diff --git a/third_party/skia/src/sksl/SkSLGLSL.h b/third_party/skia/src/sksl/SkSLGLSL.h index 3e29c8349928..55c8bc87e55a 100644 --- a/third_party/skia/src/sksl/SkSLGLSL.h +++ b/third_party/skia/src/sksl/SkSLGLSL.h @@ -17,6 +17,7 @@ enum class GLSLGeneration { * Desktop GLSL 1.10 and ES2 shading language (based on desktop GLSL 1.20) */ k110, + k100es = k110, /** * Desktop GLSL 1.30 */ @@ -33,6 +34,7 @@ enum class GLSLGeneration { * Desktop GLSL 3.30, and ES GLSL 3.00 */ k330, + k300es = k330, /** * Desktop GLSL 4.00 */ diff --git a/third_party/skia/src/sksl/SkSLInliner.cpp b/third_party/skia/src/sksl/SkSLInliner.cpp index fc3c2677b36d..8cbd6de9d865 100644 --- a/third_party/skia/src/sksl/SkSLInliner.cpp +++ b/third_party/skia/src/sksl/SkSLInliner.cpp @@ -7,14 +7,20 @@ #include "src/sksl/SkSLInliner.h" -#include -#include -#include - -#include "include/private/SkSLLayout.h" +#include "include/core/SkSpan.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkTArray.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLOperator.h" +#include "include/sksl/SkSLPosition.h" +#include "src/sksl/SkSLAnalysis.h" +#include "src/sksl/SkSLMangler.h" #include "src/sksl/analysis/SkSLProgramVisitor.h" #include "src/sksl/ir/SkSLBinaryExpression.h" -#include "src/sksl/ir/SkSLBreakStatement.h" #include "src/sksl/ir/SkSLChildCall.h" #include "src/sksl/ir/SkSLConstructor.h" #include "src/sksl/ir/SkSLConstructorArray.h" @@ -26,38 +32,38 @@ #include "src/sksl/ir/SkSLConstructorScalarCast.h" #include "src/sksl/ir/SkSLConstructorSplat.h" #include "src/sksl/ir/SkSLConstructorStruct.h" -#include "src/sksl/ir/SkSLContinueStatement.h" -#include "src/sksl/ir/SkSLDiscardStatement.h" #include "src/sksl/ir/SkSLDoStatement.h" #include "src/sksl/ir/SkSLExpressionStatement.h" #include "src/sksl/ir/SkSLExternalFunctionCall.h" -#include "src/sksl/ir/SkSLExternalFunctionReference.h" -#include "src/sksl/ir/SkSLField.h" #include "src/sksl/ir/SkSLFieldAccess.h" #include "src/sksl/ir/SkSLForStatement.h" #include "src/sksl/ir/SkSLFunctionCall.h" #include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" -#include "src/sksl/ir/SkSLFunctionReference.h" #include "src/sksl/ir/SkSLIfStatement.h" #include "src/sksl/ir/SkSLIndexExpression.h" #include "src/sksl/ir/SkSLInlineMarker.h" -#include "src/sksl/ir/SkSLInterfaceBlock.h" #include "src/sksl/ir/SkSLLiteral.h" #include "src/sksl/ir/SkSLNop.h" #include "src/sksl/ir/SkSLPostfixExpression.h" #include "src/sksl/ir/SkSLPrefixExpression.h" #include "src/sksl/ir/SkSLReturnStatement.h" -#include "src/sksl/ir/SkSLSetting.h" #include "src/sksl/ir/SkSLSwitchCase.h" #include "src/sksl/ir/SkSLSwitchStatement.h" #include "src/sksl/ir/SkSLSwizzle.h" +#include "src/sksl/ir/SkSLSymbolTable.h" #include "src/sksl/ir/SkSLTernaryExpression.h" -#include "src/sksl/ir/SkSLUnresolvedFunction.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" +#include +#include +#include +#include +#include + namespace SkSL { namespace { @@ -219,13 +225,13 @@ class CountReturnsWithLimit : public ProgramVisitor { const Variable* Inliner::RemapVariable(const Variable* variable, const VariableRewriteMap* varMap) { - auto iter = varMap->find(variable); - if (iter == varMap->end()) { + std::unique_ptr* remap = varMap->find(variable); + if (!remap) { SkDEBUGFAILF("rewrite map does not contain variable '%.*s'", (int)variable->name().size(), variable->name().data()); return variable; } - Expression* expr = iter->second.get(); + Expression* expr = remap->get(); SkASSERT(expr); if (!expr->is()) { SkDEBUGFAILF("rewrite map contains non-variable replacement for '%.*s'", @@ -279,7 +285,7 @@ void Inliner::ensureScopedBlocks(Statement* inlinedBody, Statement* parentStmt) if (nestedBlock->children().size() != 1) { // We found a block with multiple (or zero) statements, but no scope? Let's add a scope // to the outermost block. - block.setIsScope(true); + block.setBlockKind(Block::Kind::kBracedScope); return; } if (!nestedBlock->children()[0]->is()) { @@ -297,13 +303,13 @@ void Inliner::reset() { fInlinedStatementCounter = 0; } -std::unique_ptr Inliner::inlineExpression(int line, +std::unique_ptr Inliner::inlineExpression(Position pos, VariableRewriteMap* varMap, SymbolTable* symbolTableForExpression, const Expression& expression) { auto expr = [&](const std::unique_ptr& e) -> std::unique_ptr { if (e) { - return this->inlineExpression(line, varMap, symbolTableForExpression, *e); + return this->inlineExpression(pos, varMap, symbolTableForExpression, *e); } return nullptr; }; @@ -320,6 +326,7 @@ std::unique_ptr Inliner::inlineExpression(int line, case Expression::Kind::kBinary: { const BinaryExpression& binaryExpr = expression.as(); return BinaryExpression::Make(*fContext, + pos, expr(binaryExpr.left()), binaryExpr.getOperator(), expr(binaryExpr.right())); @@ -329,80 +336,80 @@ std::unique_ptr Inliner::inlineExpression(int line, case Expression::Kind::kChildCall: { const ChildCall& childCall = expression.as(); return ChildCall::Make(*fContext, - line, + pos, childCall.type().clone(symbolTableForExpression), childCall.child(), argList(childCall.arguments())); } case Expression::Kind::kConstructorArray: { const ConstructorArray& ctor = expression.as(); - return ConstructorArray::Make(*fContext, line, + return ConstructorArray::Make(*fContext, pos, *ctor.type().clone(symbolTableForExpression), argList(ctor.arguments())); } case Expression::Kind::kConstructorArrayCast: { const ConstructorArrayCast& ctor = expression.as(); - return ConstructorArrayCast::Make(*fContext, line, + return ConstructorArrayCast::Make(*fContext, pos, *ctor.type().clone(symbolTableForExpression), expr(ctor.argument())); } case Expression::Kind::kConstructorCompound: { const ConstructorCompound& ctor = expression.as(); - return ConstructorCompound::Make(*fContext, line, + return ConstructorCompound::Make(*fContext, pos, *ctor.type().clone(symbolTableForExpression), argList(ctor.arguments())); } case Expression::Kind::kConstructorCompoundCast: { const ConstructorCompoundCast& ctor = expression.as(); - return ConstructorCompoundCast::Make(*fContext, line, + return ConstructorCompoundCast::Make(*fContext, pos, *ctor.type().clone(symbolTableForExpression), expr(ctor.argument())); } case Expression::Kind::kConstructorDiagonalMatrix: { const ConstructorDiagonalMatrix& ctor = expression.as(); - return ConstructorDiagonalMatrix::Make(*fContext, line, + return ConstructorDiagonalMatrix::Make(*fContext, pos, *ctor.type().clone(symbolTableForExpression), expr(ctor.argument())); } case Expression::Kind::kConstructorMatrixResize: { const ConstructorMatrixResize& ctor = expression.as(); - return ConstructorMatrixResize::Make(*fContext, line, + return ConstructorMatrixResize::Make(*fContext, pos, *ctor.type().clone(symbolTableForExpression), expr(ctor.argument())); } case Expression::Kind::kConstructorScalarCast: { const ConstructorScalarCast& ctor = expression.as(); - return ConstructorScalarCast::Make(*fContext, line, + return ConstructorScalarCast::Make(*fContext, pos, *ctor.type().clone(symbolTableForExpression), expr(ctor.argument())); } case Expression::Kind::kConstructorSplat: { const ConstructorSplat& ctor = expression.as(); - return ConstructorSplat::Make(*fContext, line, + return ConstructorSplat::Make(*fContext, pos, *ctor.type().clone(symbolTableForExpression), expr(ctor.argument())); } case Expression::Kind::kConstructorStruct: { const ConstructorStruct& ctor = expression.as(); - return ConstructorStruct::Make(*fContext, line, + return ConstructorStruct::Make(*fContext, pos, *ctor.type().clone(symbolTableForExpression), argList(ctor.arguments())); } case Expression::Kind::kExternalFunctionCall: { const ExternalFunctionCall& externalCall = expression.as(); - return std::make_unique(line, &externalCall.function(), + return std::make_unique(pos, &externalCall.function(), argList(externalCall.arguments())); } case Expression::Kind::kExternalFunctionReference: return expression.clone(); case Expression::Kind::kFieldAccess: { const FieldAccess& f = expression.as(); - return FieldAccess::Make(*fContext, expr(f.base()), f.fieldIndex(), f.ownerKind()); + return FieldAccess::Make(*fContext, pos, expr(f.base()), f.fieldIndex(), f.ownerKind()); } case Expression::Kind::kFunctionCall: { const FunctionCall& funcCall = expression.as(); return FunctionCall::Make(*fContext, - line, + pos, funcCall.type().clone(symbolTableForExpression), funcCall.function(), argList(funcCall.arguments())); @@ -411,36 +418,36 @@ std::unique_ptr Inliner::inlineExpression(int line, return expression.clone(); case Expression::Kind::kIndex: { const IndexExpression& idx = expression.as(); - return IndexExpression::Make(*fContext, expr(idx.base()), expr(idx.index())); + return IndexExpression::Make(*fContext, pos, expr(idx.base()), expr(idx.index())); } case Expression::Kind::kMethodReference: return expression.clone(); case Expression::Kind::kPrefix: { const PrefixExpression& p = expression.as(); - return PrefixExpression::Make(*fContext, p.getOperator(), expr(p.operand())); + return PrefixExpression::Make(*fContext, pos, p.getOperator(), expr(p.operand())); } case Expression::Kind::kPostfix: { const PostfixExpression& p = expression.as(); - return PostfixExpression::Make(*fContext, expr(p.operand()), p.getOperator()); + return PostfixExpression::Make(*fContext, pos, expr(p.operand()), p.getOperator()); } case Expression::Kind::kSetting: return expression.clone(); case Expression::Kind::kSwizzle: { const Swizzle& s = expression.as(); - return Swizzle::Make(*fContext, expr(s.base()), s.components()); + return Swizzle::Make(*fContext, pos, expr(s.base()), s.components()); } case Expression::Kind::kTernary: { const TernaryExpression& t = expression.as(); - return TernaryExpression::Make(*fContext, expr(t.test()), + return TernaryExpression::Make(*fContext, pos, expr(t.test()), expr(t.ifTrue()), expr(t.ifFalse())); } case Expression::Kind::kTypeReference: return expression.clone(); case Expression::Kind::kVariableReference: { const VariableReference& v = expression.as(); - auto varMapIter = varMap->find(v.variable()); - if (varMapIter != varMap->end()) { - return clone_with_ref_kind(*varMapIter->second, v.refKind()); + std::unique_ptr* remap = varMap->find(v.variable()); + if (remap) { + return clone_with_ref_kind(**remap, v.refKind()); } return v.clone(); } @@ -450,7 +457,7 @@ std::unique_ptr Inliner::inlineExpression(int line, } } -std::unique_ptr Inliner::inlineStatement(int line, +std::unique_ptr Inliner::inlineStatement(Position pos, VariableRewriteMap* varMap, SymbolTable* symbolTableForStatement, std::unique_ptr* resultExpr, @@ -459,7 +466,7 @@ std::unique_ptr Inliner::inlineStatement(int line, bool isBuiltinCode) { auto stmt = [&](const std::unique_ptr& s) -> std::unique_ptr { if (s) { - return this->inlineStatement(line, varMap, symbolTableForStatement, resultExpr, + return this->inlineStatement(pos, varMap, symbolTableForStatement, resultExpr, returnComplexity, *s, isBuiltinCode); } return nullptr; @@ -474,7 +481,7 @@ std::unique_ptr Inliner::inlineStatement(int line, }; auto expr = [&](const std::unique_ptr& e) -> std::unique_ptr { if (e) { - return this->inlineExpression(line, varMap, symbolTableForStatement, *e); + return this->inlineExpression(pos, varMap, symbolTableForStatement, *e); } return nullptr; }; @@ -484,9 +491,8 @@ std::unique_ptr Inliner::inlineStatement(int line, switch (statement.kind()) { case Statement::Kind::kBlock: { const Block& b = statement.as(); - return Block::Make(line, blockStmts(b), - SymbolTable::WrapIfBuiltin(b.symbolTable()), - b.isScope()); + return Block::Make(pos, blockStmts(b), b.blockKind(), + SymbolTable::WrapIfBuiltin(b.symbolTable())); } case Statement::Kind::kBreak: @@ -496,7 +502,7 @@ std::unique_ptr Inliner::inlineStatement(int line, case Statement::Kind::kDo: { const DoStatement& d = statement.as(); - return DoStatement::Make(*fContext, stmt(d.statement()), expr(d.test())); + return DoStatement::Make(*fContext, pos, stmt(d.statement()), expr(d.test())); } case Statement::Kind::kExpression: { const ExpressionStatement& e = statement.as(); @@ -516,13 +522,13 @@ std::unique_ptr Inliner::inlineStatement(int line, unrollInfo = std::make_unique(*f.unrollInfo()); unrollInfo->fIndex = RemapVariable(unrollInfo->fIndex, varMap); } - return ForStatement::Make(*fContext, line, std::move(initializer), expr(f.test()), + return ForStatement::Make(*fContext, pos, std::move(initializer), expr(f.test()), expr(f.next()), stmt(f.statement()), std::move(unrollInfo), SymbolTable::WrapIfBuiltin(f.symbols())); } case Statement::Kind::kIf: { const IfStatement& i = statement.as(); - return IfStatement::Make(*fContext, line, i.isStatic(), expr(i.test()), + return IfStatement::Make(*fContext, pos, i.isStatic(), expr(i.test()), stmt(i.ifTrue()), stmt(i.ifFalse())); } case Statement::Kind::kInlineMarker: @@ -552,8 +558,9 @@ std::unique_ptr Inliner::inlineStatement(int line, *fContext, BinaryExpression::Make( *fContext, + pos, clone_with_ref_kind(**resultExpr, VariableRefKind::kWrite), - Token::Kind::TK_EQ, + Operator::Kind::EQ, expr(r.expression()))); // Functions without early returns aren't wrapped in a for loop and don't need to worry @@ -567,12 +574,12 @@ std::unique_ptr Inliner::inlineStatement(int line, for (const std::unique_ptr& switchCaseStmt : ss.cases()) { const SwitchCase& sc = switchCaseStmt->as(); if (sc.isDefault()) { - cases.push_back(SwitchCase::MakeDefault(line, stmt(sc.statement()))); + cases.push_back(SwitchCase::MakeDefault(pos, stmt(sc.statement()))); } else { - cases.push_back(SwitchCase::Make(line, sc.value(), stmt(sc.statement()))); + cases.push_back(SwitchCase::Make(pos, sc.value(), stmt(sc.statement()))); } } - return SwitchStatement::Make(*fContext, line, ss.isStatic(), expr(ss.value()), + return SwitchStatement::Make(*fContext, pos, ss.isStatic(), expr(ss.value()), std::move(cases), SymbolTable::WrapIfBuiltin(ss.symbols())); } case Statement::Kind::kVarDeclaration: { @@ -586,13 +593,14 @@ std::unique_ptr Inliner::inlineStatement(int line, const std::string* name = symbolTableForStatement->takeOwnershipOfString( fContext->fMangler->uniqueName(variable.name(), symbolTableForStatement)); auto clonedVar = std::make_unique( - line, + pos, + variable.modifiersPosition(), &variable.modifiers(), name->c_str(), variable.type().clone(symbolTableForStatement), isBuiltinCode, variable.storage()); - (*varMap)[&variable] = VariableReference::Make(line, clonedVar.get()); + varMap->set(&variable, VariableReference::Make(pos, clonedVar.get())); auto result = VarDeclaration::Make(*fContext, clonedVar.get(), decl.baseType().clone(symbolTableForStatement), @@ -627,7 +635,7 @@ Inliner::InlinedCall Inliner::inlineCall(FunctionCall* call, SkASSERT(this->isSafeToInline(call->function().definition(), usage)); ExpressionArray& arguments = call->arguments(); - const int line = call->fLine; + const Position pos = call->fPosition; const FunctionDefinition& function = *call->function().definition(); const Block& body = function.body()->as(); const ReturnComplexity returnComplexity = GetReturnComplexity(function); @@ -654,7 +662,7 @@ Inliner::InlinedCall Inliner::inlineCall(FunctionCall* call, symbolTable.get(), /*initialValue=*/nullptr); inlineStatements.push_back(std::move(var.fVarDecl)); - resultExpr = VariableReference::Make(/*line=*/-1, var.fVarSymbol); + resultExpr = VariableReference::Make(Position(), var.fVarSymbol); } // Create variables in the extra statements to hold the arguments, and assign the arguments to @@ -671,7 +679,7 @@ Inliner::InlinedCall Inliner::inlineCall(FunctionCall* call, if ((paramUsage.fRead > 1) ? Analysis::IsTrivialExpression(*arg) : !arg->hasSideEffects()) { // ... we don't need to copy it at all! We can just use the existing expression. - varMap[param] = arg->clone(); + varMap.set(param, arg->clone()); continue; } } @@ -682,38 +690,37 @@ Inliner::InlinedCall Inliner::inlineCall(FunctionCall* call, symbolTable.get(), std::move(arguments[i])); inlineStatements.push_back(std::move(var.fVarDecl)); - varMap[param] = VariableReference::Make(/*line=*/-1, var.fVarSymbol); + varMap.set(param, VariableReference::Make(Position(), var.fVarSymbol)); } for (const std::unique_ptr& stmt : body.children()) { - inlineStatements.push_back(this->inlineStatement(line, &varMap, symbolTable.get(), + inlineStatements.push_back(this->inlineStatement(pos, &varMap, symbolTable.get(), &resultExpr, returnComplexity, *stmt, caller->isBuiltin())); } SkASSERT(inlineStatements.count() <= expectedStmtCount); - // Wrap all of the generated statements in a block. We need a real Block here, so we can't use - // MakeUnscoped. This is because we need to add another child statement to the Block later. + // Wrap all of the generated statements in a block. We need a real Block here, because we need + // to add another child statement to the Block later. InlinedCall inlinedCall; - inlinedCall.fInlinedBody = Block::Make(line, std::move(inlineStatements), - /*symbols=*/nullptr, /*isScope=*/false); - + inlinedCall.fInlinedBody = Block::MakeBlock(pos, std::move(inlineStatements), + Block::Kind::kUnbracedBlock); if (resultExpr) { // Return our result expression as-is. inlinedCall.fReplacementExpr = std::move(resultExpr); } else if (function.declaration().returnType().isVoid()) { // It's a void function, so it doesn't actually result in anything, but we have to return // something non-null as a standin. - inlinedCall.fReplacementExpr = Literal::MakeBool(*fContext, line, /*value=*/false); + inlinedCall.fReplacementExpr = Literal::MakeBool(*fContext, pos, /*value=*/false); } else { // It's a non-void function, but it never created a result expression--that is, it never // returned anything on any path! This should have been detected in the function finalizer. // Still, discard our output and generate an error. SkDEBUGFAIL("inliner found non-void function that fails to return a value on any path"); - fContext->fErrors->error(function.fLine, "inliner found non-void function '" + - std::string(function.declaration().name()) + - "' that fails to return a value on any path"); + fContext->fErrors->error(function.fPosition, "inliner found non-void function '" + + std::string(function.declaration().name()) + + "' that fails to return a value on any path"); inlinedCall = {}; } @@ -961,8 +968,8 @@ class InlineCandidateAnalyzer { // enforce that rule is to avoid inlining the right side entirely. However, it is // safe for other types of binary expression to inline both sides. Operator op = binaryExpr.getOperator(); - bool shortCircuitable = (op.kind() == Token::Kind::TK_LOGICALAND || - op.kind() == Token::Kind::TK_LOGICALOR); + bool shortCircuitable = (op.kind() == Operator::Kind::LOGICALAND || + op.kind() == Operator::Kind::LOGICALOR); if (!shortCircuitable) { this->visitExpression(&binaryExpr.right()); } @@ -1057,23 +1064,24 @@ bool Inliner::candidateCanBeInlined(const InlineCandidate& candidate, const ProgramUsage& usage, InlinabilityCache* cache) { const FunctionDeclaration& funcDecl = candidate_func(candidate); - auto [iter, wasInserted] = cache->insert({&funcDecl, false}); - if (wasInserted) { - // Recursion is forbidden here to avoid an infinite death spiral of inlining. - iter->second = this->isSafeToInline(funcDecl.definition(), usage) && - !contains_recursive_call(funcDecl); + if (const bool* cachedInlinability = cache->find(&funcDecl)) { + return *cachedInlinability; } - - return iter->second; + // Recursion is forbidden here to avoid an infinite death spiral of inlining. + bool inlinability = this->isSafeToInline(funcDecl.definition(), usage) && + !contains_recursive_call(funcDecl); + cache->set(&funcDecl, inlinability); + return inlinability; } int Inliner::getFunctionSize(const FunctionDeclaration& funcDecl, FunctionSizeCache* cache) { - auto [iter, wasInserted] = cache->insert({&funcDecl, 0}); - if (wasInserted) { - iter->second = Analysis::NodeCountUpToLimit(*funcDecl.definition(), - this->settings().fInlineThreshold); + if (const int* cachedSize = cache->find(&funcDecl)) { + return *cachedSize; } - return iter->second; + int size = Analysis::NodeCountUpToLimit(*funcDecl.definition(), + this->settings().fInlineThreshold); + cache->set(&funcDecl, size); + return size; } void Inliner::buildCandidateList(const std::vector>& elements, @@ -1156,8 +1164,8 @@ bool Inliner::analyze(const std::vector>& elemen this->buildCandidateList(elements, symbols, usage, &candidateList); // Inline the candidates where we've determined that it's safe to do so. - using StatementRemappingTable = std::unordered_map*, - std::unique_ptr*>; + using StatementRemappingTable = SkTHashMap*, + std::unique_ptr*>; StatementRemappingTable statementRemappingTable; bool madeChanges = false; @@ -1182,11 +1190,11 @@ bool Inliner::analyze(const std::vector>& elemen // Look up the enclosing statement; remap it if necessary. std::unique_ptr* enclosingStmt = candidate.fEnclosingStmt; for (;;) { - auto iter = statementRemappingTable.find(enclosingStmt); - if (iter == statementRemappingTable.end()) { + std::unique_ptr** remappedStmt = statementRemappingTable.find(enclosingStmt); + if (!remappedStmt) { break; } - enclosingStmt = iter->second; + enclosingStmt = *remappedStmt; } // Move the enclosing statement to the end of the unscoped Block containing the inlined @@ -1208,7 +1216,7 @@ bool Inliner::analyze(const std::vector>& elemen // If anything else pointed at our enclosing statement, it's now pointing at a Block // containing many other statements as well. Maintain a fix-up table to account for this. - statementRemappingTable[enclosingStmt] = &(*enclosingStmt)->as().children().back(); + statementRemappingTable.set(enclosingStmt,&(*enclosingStmt)->as().children().back()); // Stop inlining if we've reached our hard cap on new statements. if (fInlinedStatementCounter >= kInlinedStatementLimit) { diff --git a/third_party/skia/src/sksl/SkSLInliner.h b/third_party/skia/src/sksl/SkSLInliner.h index e2ba331107de..65dec3e409cf 100644 --- a/third_party/skia/src/sksl/SkSLInliner.h +++ b/third_party/skia/src/sksl/SkSLInliner.h @@ -8,26 +8,28 @@ #ifndef SKSL_INLINER #define SKSL_INLINER -#include -#include - -#include "src/sksl/SkSLMangler.h" +#include "include/private/SkTHash.h" +#include "src/sksl/SkSLContext.h" +#include "src/sksl/SkSLProgramSettings.h" +#include "src/sksl/ir/SkSLBlock.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLProgram.h" -#include "src/sksl/ir/SkSLVariableReference.h" + +#include +#include namespace SkSL { -class Block; -class Context; -class Expression; class FunctionCall; +class FunctionDeclaration; class FunctionDefinition; -struct InlineCandidate; -struct InlineCandidateList; -class ModifiersPool; +class Position; +class ProgramElement; class Statement; class SymbolTable; class Variable; +struct InlineCandidate; +struct InlineCandidateList; /** * Converts a FunctionCall in the IR to a set of statements to be injected ahead of the function @@ -47,7 +49,7 @@ class Inliner { ProgramUsage* usage); private: - using VariableRewriteMap = std::unordered_map>; + using VariableRewriteMap = SkTHashMap>; enum class ReturnComplexity { kSingleSafeReturn, @@ -61,11 +63,11 @@ class Inliner { std::shared_ptr symbols, ProgramUsage* usage, InlineCandidateList* candidateList); - std::unique_ptr inlineExpression(int line, + std::unique_ptr inlineExpression(Position pos, VariableRewriteMap* varMap, SymbolTable* symbolTableForExpression, const Expression& expression); - std::unique_ptr inlineStatement(int line, + std::unique_ptr inlineStatement(Position pos, VariableRewriteMap* varMap, SymbolTable* symbolTableForStatement, std::unique_ptr* resultExpr, @@ -83,12 +85,12 @@ class Inliner { /** Determines if a given function has multiple and/or early returns. */ static ReturnComplexity GetReturnComplexity(const FunctionDefinition& funcDef); - using InlinabilityCache = std::unordered_map; + using InlinabilityCache = SkTHashMap; bool candidateCanBeInlined(const InlineCandidate& candidate, const ProgramUsage& usage, InlinabilityCache* cache); - using FunctionSizeCache = std::unordered_map; + using FunctionSizeCache = SkTHashMap; int getFunctionSize(const FunctionDeclaration& fnDecl, FunctionSizeCache* cache); /** diff --git a/third_party/skia/src/sksl/SkSLLexer.cpp b/third_party/skia/src/sksl/SkSLLexer.cpp index 6e021b327766..44a4de86e7ff 100644 --- a/third_party/skia/src/sksl/SkSLLexer.cpp +++ b/third_party/skia/src/sksl/SkSLLexer.cpp @@ -2036,13 +2036,13 @@ Token Lexer::next() { // a bit. int32_t startOffset = fOffset; if (startOffset == (int32_t)fText.length()) { - return Token(Token::Kind::TK_END_OF_FILE, startOffset, 0, fLine); + return Token(Token::Kind::TK_END_OF_FILE, startOffset, 0); } State state = 1; for (;;) { if (fOffset >= (int32_t)fText.length()) { if (kAccepts[state] == -1) { - return Token(Token::Kind::TK_END_OF_FILE, startOffset, 0, fLine); + return Token(Token::Kind::TK_END_OF_FILE, startOffset, 0); } break; } @@ -2056,12 +2056,9 @@ Token Lexer::next() { } state = newState; ++fOffset; - if (c == '\n') { - ++fLine; - } } Token::Kind kind = (Token::Kind)kAccepts[state]; - return Token(kind, startOffset, fOffset - startOffset, fLine); + return Token(kind, startOffset, fOffset - startOffset); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/SkSLLexer.h b/third_party/skia/src/sksl/SkSLLexer.h index b68a0576745c..6d1e08681240 100644 --- a/third_party/skia/src/sksl/SkSLLexer.h +++ b/third_party/skia/src/sksl/SkSLLexer.h @@ -9,7 +9,6 @@ *****************************************************************************************/ #ifndef SKSL_Lexer #define SKSL_Lexer -#include #include #include namespace SkSL { @@ -108,13 +107,12 @@ struct Token { }; Token() {} - Token(Kind kind, int32_t offset, int32_t length, int32_t line) - : fKind(kind), fOffset(offset), fLength(length), fLine(line) {} + Token(Kind kind, int32_t offset, int32_t length) + : fKind(kind), fOffset(offset), fLength(length) {} Kind fKind = Kind::TK_NONE; int32_t fOffset = -1; int32_t fLength = -1; - int32_t fLine = -1; }; class Lexer { @@ -122,27 +120,21 @@ class Lexer { void start(std::string_view text) { fText = text; fOffset = 0; - fLine = 1; } Token next(); struct Checkpoint { int32_t fOffset; - int32_t fLine; }; - Checkpoint getCheckpoint() const { return {fOffset, fLine}; } + Checkpoint getCheckpoint() const { return {fOffset}; } - void rewindToCheckpoint(Checkpoint checkpoint) { - fOffset = checkpoint.fOffset; - fLine = checkpoint.fLine; - } + void rewindToCheckpoint(Checkpoint checkpoint) { fOffset = checkpoint.fOffset; } private: std::string_view fText; int32_t fOffset; - int32_t fLine; }; } // namespace SkSL diff --git a/third_party/skia/src/sksl/SkSLMangler.cpp b/third_party/skia/src/sksl/SkSLMangler.cpp index 59050c666a6f..5947788c1e57 100644 --- a/third_party/skia/src/sksl/SkSLMangler.cpp +++ b/third_party/skia/src/sksl/SkSLMangler.cpp @@ -7,13 +7,23 @@ #include "src/sksl/SkSLMangler.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLString.h" #include "include/private/SkStringView.h" #include "src/sksl/ir/SkSLSymbolTable.h" +#include + namespace SkSL { std::string Mangler::uniqueName(std::string_view baseName, SymbolTable* symbolTable) { SkASSERT(symbolTable); + + // Private names might begin with a $. Strip that off. + if (skstd::starts_with(baseName, '$')) { + baseName.remove_prefix(1); + } + // The inliner runs more than once, so the base name might already have been mangled and have a // prefix like "_123_x". Let's strip that prefix off to make the generated code easier to read. if (skstd::starts_with(baseName, '_')) { diff --git a/third_party/skia/src/sksl/SkSLMangler.h b/third_party/skia/src/sksl/SkSLMangler.h index 14089f827db1..8c0dd5e6e00f 100644 --- a/third_party/skia/src/sksl/SkSLMangler.h +++ b/third_party/skia/src/sksl/SkSLMangler.h @@ -8,7 +8,8 @@ #ifndef SKSL_MANGLER #define SKSL_MANGLER -#include "include/private/SkSLString.h" +#include +#include namespace SkSL { diff --git a/third_party/skia/src/sksl/SkSLMemoryPool.h b/third_party/skia/src/sksl/SkSLMemoryPool.h index f616c3bdbcf1..dd9e5398d13e 100644 --- a/third_party/skia/src/sksl/SkSLMemoryPool.h +++ b/third_party/skia/src/sksl/SkSLMemoryPool.h @@ -14,7 +14,7 @@ #if SK_SUPPORT_GPU -#include "src/gpu/GrMemoryPool.h" +#include "src/gpu/ganesh/GrMemoryPool.h" namespace SkSL { using MemoryPool = ::GrMemoryPool; diff --git a/third_party/skia/src/sksl/SkSLOperators.cpp b/third_party/skia/src/sksl/SkSLOperator.cpp similarity index 51% rename from third_party/skia/src/sksl/SkSLOperators.cpp rename to third_party/skia/src/sksl/SkSLOperator.cpp index f1344d0486a8..ed5f569d1e0f 100644 --- a/third_party/skia/src/sksl/SkSLOperators.cpp +++ b/third_party/skia/src/sksl/SkSLOperator.cpp @@ -5,134 +5,95 @@ * found in the LICENSE file. */ +#include "include/sksl/SkSLOperator.h" + #include "include/core/SkTypes.h" #include "include/private/SkStringView.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLContext.h" -#include "src/sksl/SkSLOperators.h" #include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/ir/SkSLType.h" +#include +#include + namespace SkSL { Operator::Precedence Operator::getBinaryPrecedence() const { switch (this->kind()) { - case Kind::TK_STAR: // fall through - case Kind::TK_SLASH: // fall through - case Kind::TK_PERCENT: return Precedence::kMultiplicative; - case Kind::TK_PLUS: // fall through - case Kind::TK_MINUS: return Precedence::kAdditive; - case Kind::TK_SHL: // fall through - case Kind::TK_SHR: return Precedence::kShift; - case Kind::TK_LT: // fall through - case Kind::TK_GT: // fall through - case Kind::TK_LTEQ: // fall through - case Kind::TK_GTEQ: return Precedence::kRelational; - case Kind::TK_EQEQ: // fall through - case Kind::TK_NEQ: return Precedence::kEquality; - case Kind::TK_BITWISEAND: return Precedence::kBitwiseAnd; - case Kind::TK_BITWISEXOR: return Precedence::kBitwiseXor; - case Kind::TK_BITWISEOR: return Precedence::kBitwiseOr; - case Kind::TK_LOGICALAND: return Precedence::kLogicalAnd; - case Kind::TK_LOGICALXOR: return Precedence::kLogicalXor; - case Kind::TK_LOGICALOR: return Precedence::kLogicalOr; - case Kind::TK_EQ: // fall through - case Kind::TK_PLUSEQ: // fall through - case Kind::TK_MINUSEQ: // fall through - case Kind::TK_STAREQ: // fall through - case Kind::TK_SLASHEQ: // fall through - case Kind::TK_PERCENTEQ: // fall through - case Kind::TK_SHLEQ: // fall through - case Kind::TK_SHREQ: // fall through - case Kind::TK_BITWISEANDEQ: // fall through - case Kind::TK_BITWISEXOREQ: // fall through - case Kind::TK_BITWISEOREQ: return Precedence::kAssignment; - case Kind::TK_COMMA: return Precedence::kSequence; + case Kind::STAR: // fall through + case Kind::SLASH: // fall through + case Kind::PERCENT: return Precedence::kMultiplicative; + case Kind::PLUS: // fall through + case Kind::MINUS: return Precedence::kAdditive; + case Kind::SHL: // fall through + case Kind::SHR: return Precedence::kShift; + case Kind::LT: // fall through + case Kind::GT: // fall through + case Kind::LTEQ: // fall through + case Kind::GTEQ: return Precedence::kRelational; + case Kind::EQEQ: // fall through + case Kind::NEQ: return Precedence::kEquality; + case Kind::BITWISEAND: return Precedence::kBitwiseAnd; + case Kind::BITWISEXOR: return Precedence::kBitwiseXor; + case Kind::BITWISEOR: return Precedence::kBitwiseOr; + case Kind::LOGICALAND: return Precedence::kLogicalAnd; + case Kind::LOGICALXOR: return Precedence::kLogicalXor; + case Kind::LOGICALOR: return Precedence::kLogicalOr; + case Kind::EQ: // fall through + case Kind::PLUSEQ: // fall through + case Kind::MINUSEQ: // fall through + case Kind::STAREQ: // fall through + case Kind::SLASHEQ: // fall through + case Kind::PERCENTEQ: // fall through + case Kind::SHLEQ: // fall through + case Kind::SHREQ: // fall through + case Kind::BITWISEANDEQ: // fall through + case Kind::BITWISEXOREQ: // fall through + case Kind::BITWISEOREQ: return Precedence::kAssignment; + case Kind::COMMA: return Precedence::kSequence; default: SK_ABORT("unsupported binary operator"); } } -bool Operator::isOperator() const { - switch (this->kind()) { - case Kind::TK_PLUS: - case Kind::TK_MINUS: - case Kind::TK_STAR: - case Kind::TK_SLASH: - case Kind::TK_PERCENT: - case Kind::TK_SHL: - case Kind::TK_SHR: - case Kind::TK_LOGICALNOT: - case Kind::TK_LOGICALAND: - case Kind::TK_LOGICALOR: - case Kind::TK_LOGICALXOR: - case Kind::TK_BITWISENOT: - case Kind::TK_BITWISEAND: - case Kind::TK_BITWISEOR: - case Kind::TK_BITWISEXOR: - case Kind::TK_EQ: - case Kind::TK_EQEQ: - case Kind::TK_NEQ: - case Kind::TK_LT: - case Kind::TK_GT: - case Kind::TK_LTEQ: - case Kind::TK_GTEQ: - case Kind::TK_PLUSEQ: - case Kind::TK_MINUSEQ: - case Kind::TK_STAREQ: - case Kind::TK_SLASHEQ: - case Kind::TK_PERCENTEQ: - case Kind::TK_SHLEQ: - case Kind::TK_SHREQ: - case Kind::TK_BITWISEANDEQ: - case Kind::TK_BITWISEOREQ: - case Kind::TK_BITWISEXOREQ: - case Kind::TK_PLUSPLUS: - case Kind::TK_MINUSMINUS: - case Kind::TK_COMMA: - return true; - default: - return false; - } -} - const char* Operator::operatorName() const { switch (this->kind()) { - case Kind::TK_PLUS: return " + "; - case Kind::TK_MINUS: return " - "; - case Kind::TK_STAR: return " * "; - case Kind::TK_SLASH: return " / "; - case Kind::TK_PERCENT: return " % "; - case Kind::TK_SHL: return " << "; - case Kind::TK_SHR: return " >> "; - case Kind::TK_LOGICALNOT: return "!"; - case Kind::TK_LOGICALAND: return " && "; - case Kind::TK_LOGICALOR: return " || "; - case Kind::TK_LOGICALXOR: return " ^^ "; - case Kind::TK_BITWISENOT: return "~"; - case Kind::TK_BITWISEAND: return " & "; - case Kind::TK_BITWISEOR: return " | "; - case Kind::TK_BITWISEXOR: return " ^ "; - case Kind::TK_EQ: return " = "; - case Kind::TK_EQEQ: return " == "; - case Kind::TK_NEQ: return " != "; - case Kind::TK_LT: return " < "; - case Kind::TK_GT: return " > "; - case Kind::TK_LTEQ: return " <= "; - case Kind::TK_GTEQ: return " >= "; - case Kind::TK_PLUSEQ: return " += "; - case Kind::TK_MINUSEQ: return " -= "; - case Kind::TK_STAREQ: return " *= "; - case Kind::TK_SLASHEQ: return " /= "; - case Kind::TK_PERCENTEQ: return " %= "; - case Kind::TK_SHLEQ: return " <<= "; - case Kind::TK_SHREQ: return " >>= "; - case Kind::TK_BITWISEANDEQ: return " &= "; - case Kind::TK_BITWISEOREQ: return " |= "; - case Kind::TK_BITWISEXOREQ: return " ^= "; - case Kind::TK_PLUSPLUS: return "++"; - case Kind::TK_MINUSMINUS: return "--"; - case Kind::TK_COMMA: return ", "; - default: - SK_ABORT("unsupported operator: %d\n", (int) fKind); + case Kind::PLUS: return " + "; + case Kind::MINUS: return " - "; + case Kind::STAR: return " * "; + case Kind::SLASH: return " / "; + case Kind::PERCENT: return " % "; + case Kind::SHL: return " << "; + case Kind::SHR: return " >> "; + case Kind::LOGICALNOT: return "!"; + case Kind::LOGICALAND: return " && "; + case Kind::LOGICALOR: return " || "; + case Kind::LOGICALXOR: return " ^^ "; + case Kind::BITWISENOT: return "~"; + case Kind::BITWISEAND: return " & "; + case Kind::BITWISEOR: return " | "; + case Kind::BITWISEXOR: return " ^ "; + case Kind::EQ: return " = "; + case Kind::EQEQ: return " == "; + case Kind::NEQ: return " != "; + case Kind::LT: return " < "; + case Kind::GT: return " > "; + case Kind::LTEQ: return " <= "; + case Kind::GTEQ: return " >= "; + case Kind::PLUSEQ: return " += "; + case Kind::MINUSEQ: return " -= "; + case Kind::STAREQ: return " *= "; + case Kind::SLASHEQ: return " /= "; + case Kind::PERCENTEQ: return " %= "; + case Kind::SHLEQ: return " <<= "; + case Kind::SHREQ: return " >>= "; + case Kind::BITWISEANDEQ: return " &= "; + case Kind::BITWISEOREQ: return " |= "; + case Kind::BITWISEXOREQ: return " ^= "; + case Kind::PLUSPLUS: return "++"; + case Kind::MINUSMINUS: return "--"; + case Kind::COMMA: return ", "; + default: SkUNREACHABLE; } } @@ -149,17 +110,17 @@ std::string_view Operator::tightOperatorName() const { bool Operator::isAssignment() const { switch (this->kind()) { - case Kind::TK_EQ: // fall through - case Kind::TK_PLUSEQ: // fall through - case Kind::TK_MINUSEQ: // fall through - case Kind::TK_STAREQ: // fall through - case Kind::TK_SLASHEQ: // fall through - case Kind::TK_PERCENTEQ: // fall through - case Kind::TK_SHLEQ: // fall through - case Kind::TK_SHREQ: // fall through - case Kind::TK_BITWISEOREQ: // fall through - case Kind::TK_BITWISEXOREQ: // fall through - case Kind::TK_BITWISEANDEQ: + case Kind::EQ: // fall through + case Kind::PLUSEQ: // fall through + case Kind::MINUSEQ: // fall through + case Kind::STAREQ: // fall through + case Kind::SLASHEQ: // fall through + case Kind::PERCENTEQ: // fall through + case Kind::SHLEQ: // fall through + case Kind::SHREQ: // fall through + case Kind::BITWISEOREQ: // fall through + case Kind::BITWISEXOREQ: // fall through + case Kind::BITWISEANDEQ: return true; default: return false; @@ -168,26 +129,26 @@ bool Operator::isAssignment() const { Operator Operator::removeAssignment() const { switch (this->kind()) { - case Kind::TK_PLUSEQ: return Operator{Kind::TK_PLUS}; - case Kind::TK_MINUSEQ: return Operator{Kind::TK_MINUS}; - case Kind::TK_STAREQ: return Operator{Kind::TK_STAR}; - case Kind::TK_SLASHEQ: return Operator{Kind::TK_SLASH}; - case Kind::TK_PERCENTEQ: return Operator{Kind::TK_PERCENT}; - case Kind::TK_SHLEQ: return Operator{Kind::TK_SHL}; - case Kind::TK_SHREQ: return Operator{Kind::TK_SHR}; - case Kind::TK_BITWISEOREQ: return Operator{Kind::TK_BITWISEOR}; - case Kind::TK_BITWISEXOREQ: return Operator{Kind::TK_BITWISEXOR}; - case Kind::TK_BITWISEANDEQ: return Operator{Kind::TK_BITWISEAND}; + case Kind::PLUSEQ: return Kind::PLUS; + case Kind::MINUSEQ: return Kind::MINUS; + case Kind::STAREQ: return Kind::STAR; + case Kind::SLASHEQ: return Kind::SLASH; + case Kind::PERCENTEQ: return Kind::PERCENT; + case Kind::SHLEQ: return Kind::SHL; + case Kind::SHREQ: return Kind::SHR; + case Kind::BITWISEOREQ: return Kind::BITWISEOR; + case Kind::BITWISEXOREQ: return Kind::BITWISEXOR; + case Kind::BITWISEANDEQ: return Kind::BITWISEAND; default: return *this; } } -bool Operator::isLogical() const { +bool Operator::isRelational() const { switch (this->kind()) { - case Token::Kind::TK_LT: - case Token::Kind::TK_GT: - case Token::Kind::TK_LTEQ: - case Token::Kind::TK_GTEQ: + case Kind::LT: + case Kind::GT: + case Kind::LTEQ: + case Kind::GTEQ: return true; default: return false; @@ -196,18 +157,18 @@ bool Operator::isLogical() const { bool Operator::isOnlyValidForIntegralTypes() const { switch (this->kind()) { - case Token::Kind::TK_SHL: - case Token::Kind::TK_SHR: - case Token::Kind::TK_BITWISEAND: - case Token::Kind::TK_BITWISEOR: - case Token::Kind::TK_BITWISEXOR: - case Token::Kind::TK_PERCENT: - case Token::Kind::TK_SHLEQ: - case Token::Kind::TK_SHREQ: - case Token::Kind::TK_BITWISEANDEQ: - case Token::Kind::TK_BITWISEOREQ: - case Token::Kind::TK_BITWISEXOREQ: - case Token::Kind::TK_PERCENTEQ: + case Kind::SHL: + case Kind::SHR: + case Kind::BITWISEAND: + case Kind::BITWISEOR: + case Kind::BITWISEXOR: + case Kind::PERCENT: + case Kind::SHLEQ: + case Kind::SHREQ: + case Kind::BITWISEANDEQ: + case Kind::BITWISEOREQ: + case Kind::BITWISEXOREQ: + case Kind::PERCENTEQ: return true; default: return false; @@ -216,26 +177,26 @@ bool Operator::isOnlyValidForIntegralTypes() const { bool Operator::isValidForMatrixOrVector() const { switch (this->kind()) { - case Token::Kind::TK_PLUS: - case Token::Kind::TK_MINUS: - case Token::Kind::TK_STAR: - case Token::Kind::TK_SLASH: - case Token::Kind::TK_PERCENT: - case Token::Kind::TK_SHL: - case Token::Kind::TK_SHR: - case Token::Kind::TK_BITWISEAND: - case Token::Kind::TK_BITWISEOR: - case Token::Kind::TK_BITWISEXOR: - case Token::Kind::TK_PLUSEQ: - case Token::Kind::TK_MINUSEQ: - case Token::Kind::TK_STAREQ: - case Token::Kind::TK_SLASHEQ: - case Token::Kind::TK_PERCENTEQ: - case Token::Kind::TK_SHLEQ: - case Token::Kind::TK_SHREQ: - case Token::Kind::TK_BITWISEANDEQ: - case Token::Kind::TK_BITWISEOREQ: - case Token::Kind::TK_BITWISEXOREQ: + case Kind::PLUS: + case Kind::MINUS: + case Kind::STAR: + case Kind::SLASH: + case Kind::PERCENT: + case Kind::SHL: + case Kind::SHR: + case Kind::BITWISEAND: + case Kind::BITWISEOR: + case Kind::BITWISEXOR: + case Kind::PLUSEQ: + case Kind::MINUSEQ: + case Kind::STAREQ: + case Kind::SLASHEQ: + case Kind::PERCENTEQ: + case Kind::SHLEQ: + case Kind::SHREQ: + case Kind::BITWISEANDEQ: + case Kind::BITWISEOREQ: + case Kind::BITWISEXOREQ: return true; default: return false; @@ -243,7 +204,7 @@ bool Operator::isValidForMatrixOrVector() const { } bool Operator::isMatrixMultiply(const Type& left, const Type& right) const { - if (this->kind() != Token::Kind::TK_STAR && this->kind() != Token::Kind::TK_STAREQ) { + if (this->kind() != Kind::STAR && this->kind() != Kind::STAREQ) { return false; } if (left.isMatrix()) { @@ -264,14 +225,20 @@ bool Operator::determineBinaryType(const Context& context, const Type** outResultType) const { const bool allowNarrowing = context.fConfig->fSettings.fAllowNarrowingConversions; switch (this->kind()) { - case Token::Kind::TK_EQ: // left = right + case Kind::EQ: // left = right + if (left.isVoid()) { + return false; + } *outLeftType = &left; *outRightType = &left; *outResultType = &left; return right.canCoerceTo(left, allowNarrowing); - case Token::Kind::TK_EQEQ: // left == right - case Token::Kind::TK_NEQ: { // left != right + case Kind::EQEQ: // left == right + case Kind::NEQ: { // left != right + if (left.isVoid() || left.isOpaque()) { + return false; + } CoercionCost rightToLeft = right.coercionCost(left), leftToRight = left.coercionCost(right); if (rightToLeft < leftToRight) { @@ -291,16 +258,16 @@ bool Operator::determineBinaryType(const Context& context, } return false; } - case Token::Kind::TK_LOGICALOR: // left || right - case Token::Kind::TK_LOGICALAND: // left && right - case Token::Kind::TK_LOGICALXOR: // left ^^ right + case Kind::LOGICALOR: // left || right + case Kind::LOGICALAND: // left && right + case Kind::LOGICALXOR: // left ^^ right *outLeftType = context.fTypes.fBool.get(); *outRightType = context.fTypes.fBool.get(); *outResultType = context.fTypes.fBool.get(); return left.canCoerceTo(*context.fTypes.fBool, allowNarrowing) && right.canCoerceTo(*context.fTypes.fBool, allowNarrowing); - case Token::Kind::TK_COMMA: // left, right + case Operator::Kind::COMMA: // left, right if (left.isOpaque() || right.isOpaque()) { return false; } @@ -362,7 +329,7 @@ bool Operator::determineBinaryType(const Context& context, } // Convert component type to compound. *outLeftType = &(*outLeftType)->toCompound(context, left.columns(), left.rows()); - if (!this->isLogical()) { + if (!this->isRelational()) { *outResultType = &(*outResultType)->toCompound(context, left.columns(), left.rows()); } return true; @@ -378,7 +345,7 @@ bool Operator::determineBinaryType(const Context& context, } // Convert component type to compound. *outRightType = &(*outRightType)->toCompound(context, right.columns(), right.rows()); - if (!this->isLogical()) { + if (!this->isRelational()) { *outResultType = &(*outResultType)->toCompound(context, right.columns(), right.rows()); } return true; @@ -407,7 +374,7 @@ bool Operator::determineBinaryType(const Context& context, } else { return false; } - if (this->isLogical()) { + if (this->isRelational()) { *outResultType = context.fTypes.fBool.get(); } return true; diff --git a/third_party/skia/src/sksl/SkSLOutputStream.cpp b/third_party/skia/src/sksl/SkSLOutputStream.cpp index cce5f6053649..7972c9fd19cd 100644 --- a/third_party/skia/src/sksl/SkSLOutputStream.cpp +++ b/third_party/skia/src/sksl/SkSLOutputStream.cpp @@ -7,6 +7,7 @@ #include "src/sksl/SkSLOutputStream.h" +#include #include namespace SkSL { diff --git a/third_party/skia/src/sksl/SkSLOutputStream.h b/third_party/skia/src/sksl/SkSLOutputStream.h index 2bcb2ff70a72..e9b409ba11da 100644 --- a/third_party/skia/src/sksl/SkSLOutputStream.h +++ b/third_party/skia/src/sksl/SkSLOutputStream.h @@ -8,8 +8,10 @@ #ifndef SKSL_OUTPUTSTREAM #define SKSL_OUTPUTSTREAM -#include "include/private/SkSLDefines.h" -#include "include/private/SkSLString.h" +#include "include/core/SkTypes.h" + +#include +#include namespace SkSL { diff --git a/third_party/skia/src/sksl/SkSLPool.cpp b/third_party/skia/src/sksl/SkSLPool.cpp index 7effa40b0d60..0ad56f367cc6 100644 --- a/third_party/skia/src/sksl/SkSLPool.cpp +++ b/third_party/skia/src/sksl/SkSLPool.cpp @@ -7,7 +7,8 @@ #include "src/sksl/SkSLPool.h" -#include "include/private/SkSLDefines.h" +#include "include/core/SkTypes.h" +#include "src/gpu/ganesh/GrMemoryPool.h" #define VLOG(...) // printf(__VA_ARGS__) #ifdef STARBOARD diff --git a/third_party/skia/src/sksl/SkSLPool.h b/third_party/skia/src/sksl/SkSLPool.h index 0b3d33a0d602..74ce03364ab5 100644 --- a/third_party/skia/src/sksl/SkSLPool.h +++ b/third_party/skia/src/sksl/SkSLPool.h @@ -8,10 +8,11 @@ #ifndef SKSL_POOL #define SKSL_POOL -#include - #include "src/sksl/SkSLMemoryPool.h" +#include +#include + namespace SkSL { /** diff --git a/third_party/skia/src/sksl/SkSLPosition.cpp b/third_party/skia/src/sksl/SkSLPosition.cpp new file mode 100644 index 000000000000..d2eb9ed2cc29 --- /dev/null +++ b/third_party/skia/src/sksl/SkSLPosition.cpp @@ -0,0 +1,34 @@ +/* + * 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 "include/sksl/SkSLPosition.h" + +#include + +namespace SkSL { + +int Position::line(std::string_view source) const { + SkASSERT(this->valid()); + if (fEndOffset == -1) { + return fStartOffset; + } + if (!source.data()) { + return -1; + } + // we allow the offset to equal the length, because that's where TK_END_OF_FILE is reported + SkASSERT(fStartOffset <= (int)source.length()); + int offset = std::min(fStartOffset, (int)source.length()); + int line = 1; + for (int i = 0; i < offset; i++) { + if (source[i] == '\n') { + ++line; + } + } + return line; +} + +} // namespace SkSL diff --git a/third_party/skia/src/sksl/SkSLProgramSettings.h b/third_party/skia/src/sksl/SkSLProgramSettings.h index 0ceb541a28b6..ea079592d14f 100644 --- a/third_party/skia/src/sksl/SkSLProgramSettings.h +++ b/third_party/skia/src/sksl/SkSLProgramSettings.h @@ -30,6 +30,10 @@ struct ProgramSettings { bool fForceHighPrecision = false; // if true, add -0.5 bias to LOD of all texture lookups bool fSharpenTextures = false; + // If true, sk_FragCoord, the dFdy gradient, and sk_Clockwise won't be modified by the + // rtFlip. Additionally, the 'fUseFlipRTUniform' boolean will be forced to false so no rtFlip + // uniform will be emitted. + bool fForceNoRTFlip = false; // if the program needs to create an RTFlip uniform, this is its offset in the uniform buffer int fRTFlipOffset = -1; // if the program needs to create an RTFlip uniform and is creating SPIR-V, this is the binding @@ -61,10 +65,6 @@ struct ProgramSettings { bool fValidateSPIRV = true; // If true, any synthetic uniforms must use push constant syntax bool fUsePushConstants = false; - // Permits static if/switch statements to be used with non-constant tests. This is used when - // producing H and CPP code; the static tests don't have to have constant values *yet*, but - // the generated code will contain a static test which then does have to be a constant. - bool fPermitInvalidStaticTests = false; // If true, configurations which demand strict ES2 conformance (runtime effects, generic // programs, and SkVM rendering) will fail during compilation if ES2 restrictions are violated. bool fEnforceES2Restrictions = true; diff --git a/third_party/skia/src/sksl/SkSLRehydrator.cpp b/third_party/skia/src/sksl/SkSLRehydrator.cpp index c692f2a47b7c..4475b230c537 100644 --- a/third_party/skia/src/sksl/SkSLRehydrator.cpp +++ b/third_party/skia/src/sksl/SkSLRehydrator.cpp @@ -7,19 +7,26 @@ #include "src/sksl/SkSLRehydrator.h" -#include -#include - #include "include/private/SkSLModifiers.h" #include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLProgramKind.h" #include "include/private/SkSLStatement.h" +#include "include/private/SkTArray.h" +#include "include/sksl/DSLCore.h" +#include "include/sksl/SkSLOperator.h" +#include "include/sksl/SkSLPosition.h" #include "src/sksl/SkSLAnalysis.h" #include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLModifiersPool.h" +#include "src/sksl/SkSLParsedModule.h" +#include "src/sksl/SkSLPool.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/ir/SkSLBinaryExpression.h" +#include "src/sksl/ir/SkSLBlock.h" #include "src/sksl/ir/SkSLBreakStatement.h" -#include "src/sksl/ir/SkSLConstructor.h" #include "src/sksl/ir/SkSLConstructorArray.h" +#include "src/sksl/ir/SkSLConstructorArrayCast.h" #include "src/sksl/ir/SkSLConstructorCompound.h" #include "src/sksl/ir/SkSLConstructorCompoundCast.h" #include "src/sksl/ir/SkSLConstructorDiagonalMatrix.h" @@ -47,6 +54,7 @@ #include "src/sksl/ir/SkSLNop.h" #include "src/sksl/ir/SkSLPostfixExpression.h" #include "src/sksl/ir/SkSLPrefixExpression.h" +#include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLReturnStatement.h" #include "src/sksl/ir/SkSLSetting.h" #include "src/sksl/ir/SkSLStructDefinition.h" @@ -59,6 +67,13 @@ #include "src/sksl/ir/SkSLUnresolvedFunction.h" #include "src/sksl/ir/SkSLVarDeclarations.h" #include "src/sksl/ir/SkSLVariable.h" +#include "src/sksl/ir/SkSLVariableReference.h" + +#include +#include +#include +#include +#include namespace SkSL { @@ -183,7 +198,7 @@ const Symbol* Rehydrator::symbol() { const Type* returnType = this->type(); const FunctionDeclaration* result = fSymbolTable->takeOwnershipOfSymbol(std::make_unique( - /*line=*/-1, + Position(), this->modifiersPool().add(modifiers), name, std::move(parameters), @@ -196,7 +211,7 @@ const Symbol* Rehydrator::symbol() { const Variable* owner = this->symbolRef(Symbol::Kind::kVariable); uint8_t index = this->readU8(); const Field* result = fSymbolTable->takeOwnershipOfSymbol( - std::make_unique(/*line=*/-1, owner, index)); + std::make_unique(Position(), owner, index)); return result; } case kStructType_Command: { @@ -209,12 +224,12 @@ const Symbol* Rehydrator::symbol() { Modifiers m = this->modifiers(); std::string_view fieldName = this->readString(); const Type* type = this->type(); - fields.emplace_back(m, fieldName, type); + fields.emplace_back(Position(), m, fieldName, type); } bool interfaceBlock = this->readU8(); std::string_view nameChars(*fSymbolTable->takeOwnershipOfString(std::move(name))); const Type* result = fSymbolTable->takeOwnershipOfSymbol(Type::MakeStructType( - /*line=*/-1, nameChars, std::move(fields), interfaceBlock)); + Position(), nameChars, std::move(fields), interfaceBlock)); this->addSymbol(id, result); return result; } @@ -248,7 +263,8 @@ const Symbol* Rehydrator::symbol() { const Type* type = this->type(); Variable::Storage storage = (Variable::Storage) this->readU8(); const Variable* result = fSymbolTable->takeOwnershipOfSymbol(std::make_unique( - /*line=*/-1, m, name, type, fSymbolTable->isBuiltin(), storage)); + /*pos=*/Position(), /*modifiersPosition=*/Position(), m, name, type, + fSymbolTable->isBuiltin(), storage)); this->addSymbol(id, result); return result; } @@ -267,14 +283,21 @@ const Type* Rehydrator::type() { std::unique_ptr Rehydrator::program() { [[maybe_unused]] uint8_t command = this->readU8(); - Context& context = this->context(); SkASSERT(command == kProgram_Command); - ProgramConfig* oldConfig = context.fConfig; - ModifiersPool* oldModifiersPool = context.fModifiersPool; + + // Initialize the temporary config used to generate the complete program. We explicitly avoid + // enforcing ES2 restrictions when rehydrating a program, which we assume to be already + // well-formed when dehydrated. auto config = std::make_unique(); config->fKind = (ProgramKind)this->readU8(); + config->fSettings.fEnforceES2Restrictions = false; + + Context& context = this->context(); + ProgramConfig* oldConfig = context.fConfig; + ModifiersPool* oldModifiersPool = context.fModifiersPool; context.fConfig = config.get(); fSymbolTable = fCompiler.moduleForProgramKind(config->fKind).fSymbols; + dsl::Start(&fCompiler, config->fKind, config->fSettings); auto modifiers = std::make_unique(); context.fModifiersPool = modifiers.get(); this->symbolTable(); @@ -283,9 +306,15 @@ std::unique_ptr Rehydrator::program() { context.fModifiersPool = oldModifiersPool; Program::Inputs inputs; inputs.fUseFlipRTUniform = this->readU8(); - return std::make_unique(nullptr, std::move(config), fCompiler.fContext, - std::move(elements), /*sharedElements=*/std::vector(), - std::move(modifiers), fSymbolTable, /*pool=*/nullptr, inputs); + std::unique_ptr pool = std::move(ThreadContext::MemoryPool()); + pool->detachFromThread(); + std::unique_ptr result = std::make_unique(nullptr, std::move(config), + fCompiler.fContext, std::move(elements), + /*sharedElements=*/std::vector(), std::move(modifiers), + fSymbolTable, std::move(pool), inputs); + fSymbolTable = fSymbolTable->fParent; + dsl::End(); + return result; } std::vector> Rehydrator::elements() { @@ -305,7 +334,7 @@ std::unique_ptr Rehydrator::element() { const FunctionDeclaration* decl = this->symbolRef( Symbol::Kind::kFunctionDeclaration); std::unique_ptr body = this->statement(); - auto result = FunctionDefinition::Convert(this->context(), /*line=*/-1, *decl, + auto result = FunctionDefinition::Convert(this->context(), Position(), *decl, std::move(body), fSymbolTable->isBuiltin()); decl->setDefinition(result.get()); return std::move(result); @@ -315,7 +344,7 @@ std::unique_ptr Rehydrator::element() { Symbol::Kind::kFunctionDeclaration); // since we skip over builtin prototypes when dehydrating, we know that this // builtin=false - return std::make_unique(/*line=*/-1, decl, /*builtin=*/false); + return std::make_unique(Position(), decl, /*builtin=*/false); } case Rehydrator::kGlobalVar_Command: { std::unique_ptr decl = this->statement(); @@ -327,13 +356,13 @@ std::unique_ptr Rehydrator::element() { std::string_view typeName = this->readString(); std::string_view instanceName = this->readString(); int arraySize = this->readU8(); - return std::make_unique(/*line=*/-1, var->as(), typeName, + return std::make_unique(Position(), var->as(), typeName, instanceName, arraySize, nullptr); } case Rehydrator::kStructDefinition_Command: { const Symbol* type = this->symbol(); SkASSERT(type && type->is()); - return std::make_unique(/*line=*/-1, type->as()); + return std::make_unique(Position(), type->as()); } case Rehydrator::kSharedFunction_Command: { int count = this->readU8(); @@ -366,19 +395,19 @@ std::unique_ptr Rehydrator::statement() { for (int i = 0; i < count; ++i) { statements.push_back(this->statement()); } - bool isScope = this->readU8(); - return Block::Make(/*line=*/-1, std::move(statements), fSymbolTable, isScope); + Block::Kind blockKind = (Block::Kind)this->readU8(); + return Block::Make(Position(), std::move(statements), blockKind, fSymbolTable); } case Rehydrator::kBreak_Command: - return BreakStatement::Make(/*line=*/-1); + return BreakStatement::Make(Position()); case Rehydrator::kContinue_Command: - return ContinueStatement::Make(/*line=*/-1); + return ContinueStatement::Make(Position()); case Rehydrator::kDiscard_Command: - return DiscardStatement::Make(/*line=*/-1); + return DiscardStatement::Make(Position()); case Rehydrator::kDo_Command: { std::unique_ptr stmt = this->statement(); std::unique_ptr expr = this->expression(); - return DoStatement::Make(this->context(), std::move(stmt), std::move(expr)); + return DoStatement::Make(this->context(), Position(), std::move(stmt), std::move(expr)); } case Rehydrator::kExpressionStatement_Command: { std::unique_ptr expr = this->expression(); @@ -391,9 +420,9 @@ std::unique_ptr Rehydrator::statement() { std::unique_ptr next = this->expression(); std::unique_ptr body = this->statement(); std::unique_ptr unrollInfo = - Analysis::GetLoopUnrollInfo(/*line=*/-1, initializer.get(), test.get(), + Analysis::GetLoopUnrollInfo(Position(), initializer.get(), test.get(), next.get(), body.get(), /*errors=*/nullptr); - return ForStatement::Make(this->context(), /*line=*/-1, std::move(initializer), + return ForStatement::Make(this->context(), Position(), std::move(initializer), std::move(test), std::move(next), std::move(body), std::move(unrollInfo), fSymbolTable); } @@ -402,7 +431,7 @@ std::unique_ptr Rehydrator::statement() { std::unique_ptr test = this->expression(); std::unique_ptr ifTrue = this->statement(); std::unique_ptr ifFalse = this->statement(); - return IfStatement::Make(this->context(), /*line=*/-1, isStatic, std::move(test), + return IfStatement::Make(this->context(), Position(), isStatic, std::move(test), std::move(ifTrue), std::move(ifFalse)); } case Rehydrator::kInlineMarker_Command: { @@ -414,7 +443,7 @@ std::unique_ptr Rehydrator::statement() { return std::make_unique(); case Rehydrator::kReturn_Command: { std::unique_ptr expr = this->expression(); - return ReturnStatement::Make(/*line=*/-1, std::move(expr)); + return ReturnStatement::Make(Position(), std::move(expr)); } case Rehydrator::kSwitch_Command: { bool isStatic = this->readU8(); @@ -427,15 +456,15 @@ std::unique_ptr Rehydrator::statement() { bool isDefault = this->readU8(); if (isDefault) { std::unique_ptr statement = this->statement(); - cases.push_back(SwitchCase::MakeDefault(/*line=*/-1, std::move(statement))); + cases.push_back(SwitchCase::MakeDefault(Position(), std::move(statement))); } else { SKSL_INT value = this->readS32(); std::unique_ptr statement = this->statement(); - cases.push_back(SwitchCase::Make(/*line=*/-1, std::move(value), + cases.push_back(SwitchCase::Make(Position(), std::move(value), std::move(statement))); } } - return SwitchStatement::Make(this->context(), /*line=*/-1, isStatic, std::move(expr), + return SwitchStatement::Make(this->context(), Position(), isStatic, std::move(expr), std::move(cases), fSymbolTable); } case Rehydrator::kVarDeclaration_Command: { @@ -466,79 +495,80 @@ ExpressionArray Rehydrator::expressionArray() { } std::unique_ptr Rehydrator::expression() { + Position pos; int kind = this->readU8(); switch (kind) { case Rehydrator::kBinary_Command: { std::unique_ptr left = this->expression(); - Token::Kind op = (Token::Kind) this->readU8(); + Operator::Kind op = (Operator::Kind)this->readU8(); std::unique_ptr right = this->expression(); - return BinaryExpression::Make(this->context(), std::move(left), op, std::move(right)); + return BinaryExpression::Make(this->context(), pos, std::move(left), op, + std::move(right)); } case Rehydrator::kBoolLiteral_Command: { bool value = this->readU8(); - return Literal::MakeBool(this->context(), /*line=*/-1, value); + return Literal::MakeBool(this->context(), pos, value); } case Rehydrator::kConstructorArray_Command: { const Type* type = this->type(); - return ConstructorArray::Make(this->context(), /*line=*/-1, *type, - this->expressionArray()); + return ConstructorArray::Make(this->context(), pos, *type, this->expressionArray()); + } + case Rehydrator::kConstructorArrayCast_Command: { + const Type* type = this->type(); + ExpressionArray args = this->expressionArray(); + SkASSERT(args.size() == 1); + return ConstructorArrayCast::Make(this->context(), pos, *type, std::move(args[0])); } case Rehydrator::kConstructorCompound_Command: { const Type* type = this->type(); - return ConstructorCompound::Make(this->context(), /*line=*/-1, *type, - this->expressionArray()); + return ConstructorCompound::Make(this->context(), pos, *type, this->expressionArray()); } case Rehydrator::kConstructorDiagonalMatrix_Command: { const Type* type = this->type(); ExpressionArray args = this->expressionArray(); SkASSERT(args.size() == 1); - return ConstructorDiagonalMatrix::Make(this->context(), /*line=*/-1, *type, - std::move(args[0])); + return ConstructorDiagonalMatrix::Make(this->context(), pos, *type, std::move(args[0])); } case Rehydrator::kConstructorMatrixResize_Command: { const Type* type = this->type(); ExpressionArray args = this->expressionArray(); SkASSERT(args.size() == 1); - return ConstructorMatrixResize::Make(this->context(), /*line=*/-1, *type, - std::move(args[0])); + return ConstructorMatrixResize::Make(this->context(), pos, *type, std::move(args[0])); } case Rehydrator::kConstructorScalarCast_Command: { const Type* type = this->type(); ExpressionArray args = this->expressionArray(); SkASSERT(args.size() == 1); - return ConstructorScalarCast::Make(this->context(), /*line=*/-1, *type, - std::move(args[0])); + return ConstructorScalarCast::Make(this->context(), pos, *type, std::move(args[0])); } case Rehydrator::kConstructorSplat_Command: { const Type* type = this->type(); ExpressionArray args = this->expressionArray(); SkASSERT(args.size() == 1); - return ConstructorSplat::Make(this->context(), /*line=*/-1, *type, std::move(args[0])); + return ConstructorSplat::Make(this->context(), pos, *type, std::move(args[0])); } case Rehydrator::kConstructorStruct_Command: { const Type* type = this->type(); - return ConstructorStruct::Make(this->context(), /*line=*/-1, *type, - this->expressionArray()); + return ConstructorStruct::Make(this->context(), pos, *type, this->expressionArray()); } case Rehydrator::kConstructorCompoundCast_Command: { const Type* type = this->type(); ExpressionArray args = this->expressionArray(); SkASSERT(args.size() == 1); - return ConstructorCompoundCast::Make(this->context(),/*line=*/-1, *type, - std::move(args[0])); + return ConstructorCompoundCast::Make(this->context(), pos, *type, std::move(args[0])); } case Rehydrator::kFieldAccess_Command: { std::unique_ptr base = this->expression(); int index = this->readU8(); FieldAccess::OwnerKind ownerKind = (FieldAccess::OwnerKind) this->readU8(); - return FieldAccess::Make(this->context(), std::move(base), index, ownerKind); + return FieldAccess::Make(this->context(), pos, std::move(base), index, ownerKind); } case Rehydrator::kFloatLiteral_Command: { const Type* type = this->type(); int32_t floatBits = this->readS32(); float value; memcpy(&value, &floatBits, sizeof(value)); - return Literal::MakeFloat(/*line=*/-1, value, type); + return Literal::MakeFloat(pos, value, type); } case Rehydrator::kFunctionCall_Command: { const Type* type = this->type(); @@ -556,31 +586,36 @@ std::unique_ptr Rehydrator::expression() { SkASSERT(false); return nullptr; } - return FunctionCall::Make(this->context(), /*line=*/-1, type, *f, std::move(args)); + return FunctionCall::Make(this->context(), pos, type, *f, std::move(args)); } case Rehydrator::kIndex_Command: { std::unique_ptr base = this->expression(); std::unique_ptr index = this->expression(); - return IndexExpression::Make(this->context(), std::move(base), std::move(index)); + return IndexExpression::Make(this->context(), pos, std::move(base), std::move(index)); } case Rehydrator::kIntLiteral_Command: { const Type* type = this->type(); - int value = this->readS32(); - return Literal::MakeInt(/*line=*/-1, value, type); + if (type->isUnsigned()) { + unsigned int value = this->readU32(); + return Literal::MakeInt(pos, value, type); + } else { + int value = this->readS32(); + return Literal::MakeInt(pos, value, type); + } } case Rehydrator::kPostfix_Command: { - Token::Kind op = (Token::Kind) this->readU8(); + Operator::Kind op = (Operator::Kind)this->readU8(); std::unique_ptr operand = this->expression(); - return PostfixExpression::Make(this->context(), std::move(operand), op); + return PostfixExpression::Make(this->context(), pos, std::move(operand), op); } case Rehydrator::kPrefix_Command: { - Token::Kind op = (Token::Kind) this->readU8(); + Operator::Kind op = (Operator::Kind)this->readU8(); std::unique_ptr operand = this->expression(); - return PrefixExpression::Make(this->context(), op, std::move(operand)); + return PrefixExpression::Make(this->context(), pos, op, std::move(operand)); } case Rehydrator::kSetting_Command: { std::string name(this->readString()); - return Setting::Convert(this->context(), /*line=*/-1, name); + return Setting::Convert(this->context(), pos, name); } case Rehydrator::kSwizzle_Command: { std::unique_ptr base = this->expression(); @@ -589,19 +624,19 @@ std::unique_ptr Rehydrator::expression() { for (int i = 0; i < count; ++i) { components.push_back(this->readU8()); } - return Swizzle::Make(this->context(), std::move(base), components); + return Swizzle::Make(this->context(), pos, std::move(base), components); } case Rehydrator::kTernary_Command: { std::unique_ptr test = this->expression(); std::unique_ptr ifTrue = this->expression(); std::unique_ptr ifFalse = this->expression(); - return TernaryExpression::Make(this->context(), std::move(test), + return TernaryExpression::Make(this->context(), pos, std::move(test), std::move(ifTrue), std::move(ifFalse)); } case Rehydrator::kVariableReference_Command: { const Variable* var = this->symbolRef(Symbol::Kind::kVariable); VariableReference::RefKind refKind = (VariableReference::RefKind) this->readU8(); - return VariableReference::Make(/*line=*/-1, var, refKind); + return VariableReference::Make(pos, var, refKind); } case Rehydrator::kVoid_Command: return nullptr; diff --git a/third_party/skia/src/sksl/SkSLRehydrator.h b/third_party/skia/src/sksl/SkSLRehydrator.h index 45eca0984590..35e230238338 100644 --- a/third_party/skia/src/sksl/SkSLRehydrator.h +++ b/third_party/skia/src/sksl/SkSLRehydrator.h @@ -8,24 +8,28 @@ #ifndef SKSL_REHYDRATOR #define SKSL_REHYDRATOR +#include "include/core/SkTypes.h" #include "include/private/SkSLDefines.h" +#include "include/private/SkSLLayout.h" #include "include/private/SkSLModifiers.h" #include "include/private/SkSLSymbol.h" #include "src/sksl/SkSLContext.h" -#include "src/sksl/ir/SkSLProgram.h" +#include "src/sksl/ir/SkSLSymbolTable.h" +#include +#include #include namespace SkSL { class Compiler; -class Context; class ErrorReporter; class Expression; +class ModifiersPool; class ProgramElement; class Statement; -class SymbolTable; class Type; +struct Program; /** * Interprets a simple bytecode format that encodes the structure of an SkSL IR tree. This is used @@ -34,7 +38,7 @@ class Type; */ class Rehydrator { public: - static constexpr uint16_t kVersion = 8; + static constexpr uint16_t kVersion = 10; // see binary_format.md for a description of the command data enum Command { @@ -114,6 +118,9 @@ class Rehydrator { std::vector> elements(); // Reads an entire program. + // + // NOTE: The program is initialized using a new ProgramConfig that may differ from the one that + // was assigned to the context of the Compiler this Rehydrator was constructed with. std::unique_ptr program(); private: diff --git a/third_party/skia/src/sksl/SkSLSampleUsage.cpp b/third_party/skia/src/sksl/SkSLSampleUsage.cpp index a3987286810f..c91163b7cb0e 100644 --- a/third_party/skia/src/sksl/SkSLSampleUsage.cpp +++ b/third_party/skia/src/sksl/SkSLSampleUsage.cpp @@ -8,6 +8,7 @@ #include "include/private/SkSLSampleUsage.h" #include +#include namespace SkSL { diff --git a/third_party/skia/src/sksl/SkSLSharedCompiler.cpp b/third_party/skia/src/sksl/SkSLSharedCompiler.cpp index f6226ca37cae..8227f19ecb6d 100644 --- a/third_party/skia/src/sksl/SkSLSharedCompiler.cpp +++ b/third_party/skia/src/sksl/SkSLSharedCompiler.cpp @@ -9,6 +9,11 @@ #ifdef SK_ENABLE_SKSL +#include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLUtil.h" + +#include + namespace SkSL { struct SharedCompiler::Impl { Impl() { diff --git a/third_party/skia/src/sksl/SkSLSharedCompiler.h b/third_party/skia/src/sksl/SkSLSharedCompiler.h index 7eb667ea225f..6848811a1cf1 100644 --- a/third_party/skia/src/sksl/SkSLSharedCompiler.h +++ b/third_party/skia/src/sksl/SkSLSharedCompiler.h @@ -8,13 +8,16 @@ #ifndef SkSLSharedCompiler_DEFINED #define SkSLSharedCompiler_DEFINED -#include "include/private/SkMutex.h" -#include "src/sksl/SkSLCompiler.h" +#include "include/core/SkTypes.h" #ifdef SK_ENABLE_SKSL +#include "include/private/SkMutex.h" + namespace SkSL { +class Compiler; + /** A shared compiler instance for runtime client SkSL that is internally guarded by a mutex. */ class SharedCompiler { public: diff --git a/third_party/skia/src/sksl/SkSLString.cpp b/third_party/skia/src/sksl/SkSLString.cpp index 7da73fe37864..a06a3c5d1787 100644 --- a/third_party/skia/src/sksl/SkSLString.cpp +++ b/third_party/skia/src/sksl/SkSLString.cpp @@ -6,14 +6,14 @@ */ #include "include/private/SkSLString.h" -#include "src/sksl/SkSLUtil.h" -#include -#include + #include #include -#include #include +#include #include +#include +#include #include std::string skstd::to_string(float value) { diff --git a/third_party/skia/src/sksl/SkSLThreadContext.cpp b/third_party/skia/src/sksl/SkSLThreadContext.cpp index 63d3404580b4..07133e869356 100644 --- a/third_party/skia/src/sksl/SkSLThreadContext.cpp +++ b/third_party/skia/src/sksl/SkSLThreadContext.cpp @@ -7,13 +7,23 @@ #include "src/sksl/SkSLThreadContext.h" +#include "include/private/SkSLProgramElement.h" #include "include/sksl/DSLSymbols.h" -#if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#endif // !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU +#include "include/sksl/SkSLPosition.h" #include "src/sksl/SkSLBuiltinMap.h" #include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLModifiersPool.h" +#include "src/sksl/SkSLParsedModule.h" +#include "src/sksl/SkSLPool.h" +#include "src/sksl/SkSLUtil.h" #include "src/sksl/ir/SkSLExternalFunction.h" +#include "src/sksl/ir/SkSLSymbolTable.h" + +#include + +#if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#endif // !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU #if defined(STARBOARD) #include @@ -76,58 +86,14 @@ ThreadContext::~ThreadContext() { void ThreadContext::setupSymbolTable() { SkSL::Context& context = *fCompiler->fContext; SymbolTable::Push(&fCompiler->fSymbolTable, context.fConfig->fIsBuiltinCode); - SkSL::SymbolTable& symbols = *fCompiler->fSymbolTable; if (fSettings.fExternalFunctions) { // Add any external values to the new symbol table, so they're only visible to this Program. + SkSL::SymbolTable& symbols = *fCompiler->fSymbolTable; for (const std::unique_ptr& ef : *fSettings.fExternalFunctions) { symbols.addWithoutOwnership(ef.get()); } } - - bool runtimeEffect = ProgramConfig::IsRuntimeEffect(context.fConfig->fKind); - if (runtimeEffect && !context.fConfig->fSettings.fEnforceES2Restrictions) { - // We're compiling a runtime effect, but we're not enforcing ES2 restrictions. Add various - // non-ES2 types to our symbol table to allow them to be tested. - symbols.addWithoutOwnership(context.fTypes.fMat2x2.get()); - symbols.addWithoutOwnership(context.fTypes.fMat2x3.get()); - symbols.addWithoutOwnership(context.fTypes.fMat2x4.get()); - symbols.addWithoutOwnership(context.fTypes.fMat3x2.get()); - symbols.addWithoutOwnership(context.fTypes.fMat3x3.get()); - symbols.addWithoutOwnership(context.fTypes.fMat3x4.get()); - symbols.addWithoutOwnership(context.fTypes.fMat4x2.get()); - symbols.addWithoutOwnership(context.fTypes.fMat4x3.get()); - symbols.addWithoutOwnership(context.fTypes.fMat4x4.get()); - - symbols.addWithoutOwnership(context.fTypes.fFloat2x3.get()); - symbols.addWithoutOwnership(context.fTypes.fFloat2x4.get()); - symbols.addWithoutOwnership(context.fTypes.fFloat3x2.get()); - symbols.addWithoutOwnership(context.fTypes.fFloat3x4.get()); - symbols.addWithoutOwnership(context.fTypes.fFloat4x2.get()); - symbols.addWithoutOwnership(context.fTypes.fFloat4x3.get()); - - symbols.addWithoutOwnership(context.fTypes.fHalf2x3.get()); - symbols.addWithoutOwnership(context.fTypes.fHalf2x4.get()); - symbols.addWithoutOwnership(context.fTypes.fHalf3x2.get()); - symbols.addWithoutOwnership(context.fTypes.fHalf3x4.get()); - symbols.addWithoutOwnership(context.fTypes.fHalf4x2.get()); - symbols.addWithoutOwnership(context.fTypes.fHalf4x3.get()); - - symbols.addWithoutOwnership(context.fTypes.fUInt.get()); - symbols.addWithoutOwnership(context.fTypes.fUInt2.get()); - symbols.addWithoutOwnership(context.fTypes.fUInt3.get()); - symbols.addWithoutOwnership(context.fTypes.fUInt4.get()); - - symbols.addWithoutOwnership(context.fTypes.fShort.get()); - symbols.addWithoutOwnership(context.fTypes.fShort2.get()); - symbols.addWithoutOwnership(context.fTypes.fShort3.get()); - symbols.addWithoutOwnership(context.fTypes.fShort4.get()); - - symbols.addWithoutOwnership(context.fTypes.fUShort.get()); - symbols.addWithoutOwnership(context.fTypes.fUShort2.get()); - symbols.addWithoutOwnership(context.fTypes.fUShort3.get()); - symbols.addWithoutOwnership(context.fTypes.fUShort4.get()); - } } SkSL::Context& ThreadContext::Context() { @@ -173,22 +139,16 @@ void ThreadContext::SetErrorReporter(ErrorReporter* errorReporter) { Context().fErrors = errorReporter; } -void ThreadContext::ReportError(std::string_view msg, PositionInfo info) { - GetErrorReporter().error(msg, info); +void ThreadContext::ReportError(std::string_view msg, Position pos) { + GetErrorReporter().error(msg, pos); } -void ThreadContext::DefaultErrorReporter::handleError(std::string_view msg, PositionInfo pos) { - if (pos.line() > -1) { - SK_ABORT("error: %s: %d: %.*sNo SkSL error reporter configured, treating this as a fatal " - "error\n", pos.file_name(), pos.line(), (int)msg.length(), msg.data()); - } else { - SK_ABORT("error: %.*s\nNo SkSL error reporter configured, treating this as a fatal error\n", - (int)msg.length(), msg.data()); - } - +void ThreadContext::DefaultErrorReporter::handleError(std::string_view msg, Position pos) { + SK_ABORT("error: %.*s\nNo SkSL error reporter configured, treating this as a fatal error\n", + (int)msg.length(), msg.data()); } -void ThreadContext::ReportErrors(PositionInfo pos) { +void ThreadContext::ReportErrors(Position pos) { GetErrorReporter().reportPendingErrors(pos); } diff --git a/third_party/skia/src/sksl/SkSLThreadContext.h b/third_party/skia/src/sksl/SkSLThreadContext.h index ab238af1b405..b737600fdd48 100644 --- a/third_party/skia/src/sksl/SkSLThreadContext.h +++ b/third_party/skia/src/sksl/SkSLThreadContext.h @@ -8,25 +8,36 @@ #ifndef SKSL_THREADCONTEXT #define SKSL_THREADCONTEXT -#include "include/private/SkSLModifiers.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLProgramKind.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "src/sksl/SkSLContext.h" #include "src/sksl/SkSLMangler.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/ir/SkSLProgram.h" -#if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU -#include "src/gpu/GrFragmentProcessor.h" -#endif // !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU + #include +#include #include #include +#include + +#if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#endif namespace SkSL { class Compiler; -class Context; -struct ParsedModule; +class ModifiersPool; +class Pool; +class Position; class ProgramElement; class SymbolTable; -class Type; class Variable; +struct Modifiers; +struct ParsedModule; namespace dsl { @@ -161,6 +172,14 @@ class ThreadContext { } #endif // !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU + static const char* Filename() { + return Instance().fFilename; + } + + static void SetFilename(const char* filename) { + Instance().fFilename = filename; + } + /** * Returns the ErrorReporter associated with the current thread. This object will be notified * when any DSL errors occur. @@ -175,12 +194,12 @@ class ThreadContext { * Notifies the current ErrorReporter that an error has occurred. The default error handler * prints the message to stderr and aborts. */ - static void ReportError(std::string_view msg, PositionInfo info = PositionInfo::Capture()); + static void ReportError(std::string_view msg, Position pos = {}); /** * Forwards any pending errors to the DSL ErrorReporter. */ - static void ReportErrors(PositionInfo pos); + static void ReportErrors(Position pos); static ThreadContext& Instance(); @@ -188,7 +207,7 @@ class ThreadContext { private: class DefaultErrorReporter : public ErrorReporter { - void handleError(std::string_view msg, PositionInfo pos) override; + void handleError(std::string_view msg, Position pos) override; }; void setupSymbolTable(); @@ -207,6 +226,8 @@ class ThreadContext { Mangler fMangler; RTAdjustData fRTAdjust; Program::Inputs fInputs; + // for DSL error reporting purposes + const char* fFilename = ""; #if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU struct StackFrame { diff --git a/third_party/skia/src/sksl/SkSLUtil.cpp b/third_party/skia/src/sksl/SkSLUtil.cpp index ad02fc6b582e..1dc38b32de8c 100644 --- a/third_party/skia/src/sksl/SkSLUtil.cpp +++ b/third_party/skia/src/sksl/SkSLUtil.cpp @@ -7,18 +7,23 @@ #include "src/sksl/SkSLUtil.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLContext.h" +#include "src/sksl/SkSLOutputStream.h" #include "src/sksl/SkSLStringStream.h" #include "src/sksl/ir/SkSLType.h" -#include "src/gpu/GrShaderCaps.h" +#include -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS +#if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU +#include "src/gpu/ganesh/GrShaderCaps.h" #endif namespace SkSL { +// TODO: Once Graphite has its own GPU-caps system, SK_GRAPHITE_ENABLED should get its own mode. +// At the moment, it either mimics what GrShaderCaps reports, or it uses these hard-coded values +// depending on the build. #if defined(SKSL_STANDALONE) || !SK_SUPPORT_GPU std::unique_ptr ShaderCapsFactory::MakeShaderCaps() { std::unique_ptr standalone = std::make_unique(); @@ -39,7 +44,7 @@ void write_stringstream(const StringStream& s, OutputStream& out) { out.write(s.str().c_str(), s.str().size()); } -#if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU +#if !defined(SKSL_STANDALONE) && (SK_SUPPORT_GPU || SK_SUPPORT_GRAPHITE) bool type_to_sksltype(const Context& context, const Type& type, SkSLType* outType) { // If a new GrSL type is added, this function will need to be updated. static_assert(kSkSLTypeCount == 41); diff --git a/third_party/skia/src/sksl/SkSLUtil.h b/third_party/skia/src/sksl/SkSLUtil.h index f8204ea71c7c..f9095f22783b 100644 --- a/third_party/skia/src/sksl/SkSLUtil.h +++ b/third_party/skia/src/sksl/SkSLUtil.h @@ -8,28 +8,19 @@ #ifndef SKSL_UTIL #define SKSL_UTIL -#include -#include -#include -#include -#include "include/private/SkSLDefines.h" #include "src/core/SkSLTypeShared.h" #include "src/sksl/SkSLGLSL.h" -#include "src/sksl/SkSLLexer.h" + +#include #ifndef SKSL_STANDALONE #include "include/core/SkTypes.h" -#if SK_SUPPORT_GPU -#include "include/gpu/GrContextOptions.h" -#include "include/private/GrTypesPriv.h" -#endif // SK_SUPPORT_GPU #endif // SKSL_STANDALONE namespace SkSL { class Context; class OutputStream; -class ShaderCapsFactory; class StringStream; class Type; @@ -410,7 +401,7 @@ class ShaderCapsFactory { static std::unique_ptr MakeShaderCaps(); }; -#if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU +#if !defined(SKSL_STANDALONE) && (SK_SUPPORT_GPU || SK_GRAPHITE_ENABLED) bool type_to_sksltype(const Context& context, const Type& type, SkSLType* outType); #endif diff --git a/third_party/skia/src/sksl/analysis/BUILD.bazel b/third_party/skia/src/sksl/analysis/BUILD.bazel index fcef96ff8adc..25a4c4e659eb 100644 --- a/third_party/skia/src/sksl/analysis/BUILD.bazel +++ b/third_party/skia/src/sksl/analysis/BUILD.bazel @@ -1,4 +1,8 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") + +licenses(["notice"]) + +enforce_iwyu_on_package() generated_cc_atom( name = "SkSLCanExitWithoutReturningValue_src", @@ -6,13 +10,17 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLProgramVisitor_hdr", + "//include/private:SkSLDefines_hdr", "//include/private:SkSLStatement_hdr", + "//include/private:SkTArray_hdr", "//src/sksl:SkSLAnalysis_hdr", "//src/sksl/ir:SkSLDoStatement_hdr", "//src/sksl/ir:SkSLForStatement_hdr", "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLIfStatement_hdr", + "//src/sksl/ir:SkSLSwitchCase_hdr", "//src/sksl/ir:SkSLSwitchStatement_hdr", + "//src/sksl/ir:SkSLType_hdr", ], ) @@ -22,14 +30,19 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLProgramVisitor_hdr", + "//include/core:SkTypes_hdr", "//include/private:SkSLProgramElement_hdr", "//include/private:SkSLStatement_hdr", + "//include/private:SkTHash_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/core:SkSafeMath_hdr", "//src/sksl:SkSLAnalysis_hdr", "//src/sksl:SkSLContext_hdr", - "//src/sksl:SkSLProgramSettings_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLForStatement_hdr", "//src/sksl/ir:SkSLFunctionCall_hdr", + "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", "//src/sksl/ir:SkSLProgram_hdr", ], @@ -40,14 +53,21 @@ generated_cc_atom( srcs = ["SkSLGetLoopUnrollInfo.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":SkSLNoOpErrorReporter_hdr", + "//include/core:SkTypes_hdr", "//include/private:SkFloatingPoint_hdr", + "//include/private:SkSLStatement_hdr", "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLOperator_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/sksl:SkSLAnalysis_hdr", "//src/sksl:SkSLConstantFolder_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLForStatement_hdr", "//src/sksl/ir:SkSLPostfixExpression_hdr", "//src/sksl/ir:SkSLPrefixExpression_hdr", + "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", "//src/sksl/ir:SkSLVariableReference_hdr", ], @@ -59,13 +79,12 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLProgramVisitor_hdr", - "//include/private:SkSLStatement_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLModifiers_hdr", "//src/sksl:SkSLAnalysis_hdr", - "//src/sksl/ir:SkSLDoStatement_hdr", - "//src/sksl/ir:SkSLForStatement_hdr", - "//src/sksl/ir:SkSLFunctionDeclaration_hdr", - "//src/sksl/ir:SkSLIfStatement_hdr", - "//src/sksl/ir:SkSLSwitchStatement_hdr", + "//src/sksl/ir:SkSLExpression_hdr", + "//src/sksl/ir:SkSLVariableReference_hdr", + "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -75,8 +94,14 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLProgramVisitor_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkTHash_hdr", "//src/sksl:SkSLAnalysis_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLFunctionCall_hdr", "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", @@ -84,6 +109,7 @@ generated_cc_atom( "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", "//src/sksl/ir:SkSLVariableReference_hdr", + "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -110,18 +136,55 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLProgramVisitor_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLProgramElement_hdr", "//include/private:SkSLStatement_hdr", + "//include/sksl:SkSLErrorReporter_hdr", "//src/core:SkSafeMath_hdr", "//src/sksl:SkSLAnalysis_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", "//src/sksl:SkSLContext_hdr", - "//src/sksl:SkSLProgramSettings_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLFunctionCall_hdr", "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", "//src/sksl/ir:SkSLIfStatement_hdr", "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLSwitchStatement_hdr", + "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", "//src/sksl/ir:SkSLVariable_hdr", ], ) + +generated_cc_atom( + name = "SkSLNoOpErrorReporter_hdr", + hdrs = ["SkSLNoOpErrorReporter.h"], + visibility = ["//:__subpackages__"], + deps = ["//include/sksl:SkSLErrorReporter_hdr"], +) + +generated_cc_atom( + name = "SkSLIsSameExpressionTree_src", + srcs = ["SkSLIsSameExpressionTree.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkSpan_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkTArray_hdr", + "//include/sksl:SkSLOperator_hdr", + "//src/sksl:SkSLAnalysis_hdr", + "//src/sksl/ir:SkSLConstructor_hdr", + "//src/sksl/ir:SkSLExpression_hdr", + "//src/sksl/ir:SkSLFieldAccess_hdr", + "//src/sksl/ir:SkSLIndexExpression_hdr", + "//src/sksl/ir:SkSLLiteral_hdr", + "//src/sksl/ir:SkSLPrefixExpression_hdr", + "//src/sksl/ir:SkSLSwizzle_hdr", + "//src/sksl/ir:SkSLType_hdr", + "//src/sksl/ir:SkSLVariableReference_hdr", + ], +) diff --git a/third_party/skia/src/sksl/analysis/SkSLCanExitWithoutReturningValue.cpp b/third_party/skia/src/sksl/analysis/SkSLCanExitWithoutReturningValue.cpp index aa6796e4f9b3..4aa601bf3aed 100644 --- a/third_party/skia/src/sksl/analysis/SkSLCanExitWithoutReturningValue.cpp +++ b/third_party/skia/src/sksl/analysis/SkSLCanExitWithoutReturningValue.cpp @@ -5,16 +5,23 @@ * found in the LICENSE file. */ +#include "include/private/SkSLDefines.h" #include "include/private/SkSLStatement.h" +#include "include/private/SkTArray.h" #include "src/sksl/SkSLAnalysis.h" #include "src/sksl/analysis/SkSLProgramVisitor.h" #include "src/sksl/ir/SkSLDoStatement.h" #include "src/sksl/ir/SkSLForStatement.h" #include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLIfStatement.h" +#include "src/sksl/ir/SkSLSwitchCase.h" #include "src/sksl/ir/SkSLSwitchStatement.h" +#include "src/sksl/ir/SkSLType.h" + +#include namespace SkSL { +class Expression; namespace { class ReturnsOnAllPathsVisitor : public ProgramVisitor { diff --git a/third_party/skia/src/sksl/analysis/SkSLCheckProgramUnrolledSize.cpp b/third_party/skia/src/sksl/analysis/SkSLCheckProgramUnrolledSize.cpp index 2deb6ec9b464..0a7ebf85e1ba 100644 --- a/third_party/skia/src/sksl/analysis/SkSLCheckProgramUnrolledSize.cpp +++ b/third_party/skia/src/sksl/analysis/SkSLCheckProgramUnrolledSize.cpp @@ -5,20 +5,28 @@ * found in the LICENSE file. */ -#include "src/sksl/SkSLAnalysis.h" - +#include "include/core/SkTypes.h" #include "include/private/SkSLProgramElement.h" #include "include/private/SkSLStatement.h" +#include "include/private/SkTHash.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLPosition.h" #include "src/core/SkSafeMath.h" +#include "src/sksl/SkSLAnalysis.h" #include "src/sksl/SkSLContext.h" -#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/analysis/SkSLProgramVisitor.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLForStatement.h" #include "src/sksl/ir/SkSLFunctionCall.h" +#include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" #include "src/sksl/ir/SkSLProgram.h" -#include +#include +#include +#include +#include +#include #include namespace SkSL { @@ -55,10 +63,9 @@ bool Analysis::CheckProgramUnrolledSize(const Program& program) { // Check the function-size cache map first. We don't need to visit this function if // we already processed it before. const FunctionDeclaration* decl = &pe.as().declaration(); - auto [iter, wasInserted] = fFunctionCostMap.insert({decl, kUnknownCost}); - if (!wasInserted) { + if (size_t *cachedCost = fFunctionCostMap.find(decl)) { // We already have this function in our map. We don't need to check it again. - if (iter->second == kUnknownCost) { + if (*cachedCost == kUnknownCost) { // If the function is present in the map with an unknown cost, we're // recursively processing it--in other words, we found a cycle in the code. // Unwind our stack into a string. @@ -70,12 +77,13 @@ bool Analysis::CheckProgramUnrolledSize(const Program& program) { } } msg = "potential recursion (function call cycle) not allowed:" + msg; - fContext.fErrors->error(pe.fLine, std::move(msg)); - fFunctionSize = iter->second = 0; + fContext.fErrors->error(pe.fPosition, std::move(msg)); + fFunctionSize = 0; + *cachedCost = 0; return true; } // Set the size to its known value. - fFunctionSize = iter->second; + fFunctionSize = *cachedCost; return false; } @@ -86,16 +94,18 @@ bool Analysis::CheckProgramUnrolledSize(const Program& program) { msg += "\n\t" + (*unwind)->description(); } msg += "\n\t" + decl->description(); - fContext.fErrors->error(pe.fLine, std::move(msg)); - fFunctionSize = iter->second = 0; + fContext.fErrors->error(pe.fPosition, std::move(msg)); + fFunctionSize = 0; + fFunctionCostMap.set(decl, 0); return true; } // Calculate the function cost and store it in our cache. + fFunctionCostMap.set(decl, kUnknownCost); fStack.push_back(decl); fFunctionSize = 0; bool result = INHERITED::visitProgramElement(pe); - iter->second = fFunctionSize; + fFunctionCostMap.set(decl, fFunctionSize); fStack.pop_back(); return result; @@ -184,7 +194,7 @@ bool Analysis::CheckProgramUnrolledSize(const Program& program) { const Context& fContext; size_t fFunctionSize = 0; - std::unordered_map fFunctionCostMap; + SkTHashMap fFunctionCostMap; std::vector fStack; }; @@ -198,7 +208,7 @@ bool Analysis::CheckProgramUnrolledSize(const Program& program) { // Report an error when main()'s flattened size is larger than our program limit. if (visitor.functionSize() > kProgramSizeLimit && element->as().declaration().isMain()) { - context.fErrors->error(/*line=*/-1, "program is too large"); + context.fErrors->error(Position(), "program is too large"); } } } diff --git a/third_party/skia/src/sksl/analysis/SkSLFinalizationChecks.cpp b/third_party/skia/src/sksl/analysis/SkSLFinalizationChecks.cpp index 04c13205faaf..9d2dbefeb259 100644 --- a/third_party/skia/src/sksl/analysis/SkSLFinalizationChecks.cpp +++ b/third_party/skia/src/sksl/analysis/SkSLFinalizationChecks.cpp @@ -5,21 +5,32 @@ * found in the LICENSE file. */ +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLProgramElement.h" #include "include/private/SkSLStatement.h" +#include "include/sksl/SkSLErrorReporter.h" #include "src/core/SkSafeMath.h" #include "src/sksl/SkSLAnalysis.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLContext.h" -#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/analysis/SkSLProgramVisitor.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLFunctionCall.h" #include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" #include "src/sksl/ir/SkSLIfStatement.h" #include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLSwitchStatement.h" +#include "src/sksl/ir/SkSLType.h" #include "src/sksl/ir/SkSLVarDeclarations.h" #include "src/sksl/ir/SkSLVariable.h" +#include +#include +#include + namespace SkSL { namespace { @@ -51,7 +62,7 @@ class FinalizationVisitor : public ProgramVisitor { // To avoid overzealous error reporting, only trigger the error at the first place where the // global limit is exceeded. if (prevSlotsUsed < kVariableSlotLimit && fGlobalSlotsUsed >= kVariableSlotLimit) { - fContext.fErrors->error(decl.fLine, + fContext.fErrors->error(decl.fPosition, "global variable '" + std::string(decl.var().name()) + "' exceeds the size limit"); } @@ -70,7 +81,7 @@ class FinalizationVisitor : public ProgramVisitor { if (!param->type().isStruct() && paramInout == Modifiers::Flag::kOut_Flag) { ProgramUsage::VariableCounts counts = fUsage.get(*param); if (counts.fWrite <= 0) { - fContext.fErrors->error(funcDecl.fLine, + fContext.fErrors->error(param->fPosition, "function '" + std::string(funcDecl.name()) + "' never assigns a value to out parameter '" + std::string(param->name()) + "'"); @@ -80,23 +91,23 @@ class FinalizationVisitor : public ProgramVisitor { } bool visitStatement(const Statement& stmt) override { - if (!fContext.fConfig->fSettings.fPermitInvalidStaticTests) { - switch (stmt.kind()) { - case Statement::Kind::kIf: - if (stmt.as().isStatic()) { - fContext.fErrors->error(stmt.fLine, "static if has non-static test"); - } - break; - - case Statement::Kind::kSwitch: - if (stmt.as().isStatic()) { - fContext.fErrors->error(stmt.fLine, "static switch has non-static test"); - } - break; - - default: - break; - } + switch (stmt.kind()) { + case Statement::Kind::kIf: + if (stmt.as().isStatic()) { + fContext.fErrors->error(stmt.as().test()->fPosition, + "static if has non-static test"); + } + break; + + case Statement::Kind::kSwitch: + if (stmt.as().isStatic()) { + fContext.fErrors->error(stmt.as().value()->fPosition, + "static switch has non-static test"); + } + break; + + default: + break; } return INHERITED::visitStatement(stmt); } @@ -106,8 +117,8 @@ class FinalizationVisitor : public ProgramVisitor { case Expression::Kind::kFunctionCall: { const FunctionDeclaration& decl = expr.as().function(); if (!decl.isBuiltin() && !decl.definition()) { - fContext.fErrors->error(expr.fLine, "function '" + decl.description() + - "' is not defined"); + fContext.fErrors->error(expr.fPosition, "function '" + decl.description() + + "' is not defined"); } break; } @@ -116,11 +127,11 @@ class FinalizationVisitor : public ProgramVisitor { case Expression::Kind::kMethodReference: case Expression::Kind::kTypeReference: SkDEBUGFAIL("invalid reference-expr, should have been reported by coerce()"); - fContext.fErrors->error(expr.fLine, "invalid expression"); + fContext.fErrors->error(expr.fPosition, "invalid expression"); break; default: if (expr.type().matches(*fContext.fTypes.fInvalid)) { - fContext.fErrors->error(expr.fLine, "invalid expression"); + fContext.fErrors->error(expr.fPosition, "invalid expression"); } break; } diff --git a/third_party/skia/src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp b/third_party/skia/src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp index ef29da74580c..b64f8d0245d6 100644 --- a/third_party/skia/src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp +++ b/third_party/skia/src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp @@ -5,14 +5,21 @@ * found in the LICENSE file. */ +#include "include/core/SkTypes.h" #include "include/private/SkFloatingPoint.h" +#include "include/private/SkSLStatement.h" #include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLOperator.h" +#include "include/sksl/SkSLPosition.h" #include "src/sksl/SkSLAnalysis.h" #include "src/sksl/SkSLConstantFolder.h" +#include "src/sksl/analysis/SkSLNoOpErrorReporter.h" #include "src/sksl/ir/SkSLBinaryExpression.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLForStatement.h" #include "src/sksl/ir/SkSLPostfixExpression.h" #include "src/sksl/ir/SkSLPrefixExpression.h" +#include "src/sksl/ir/SkSLType.h" #include "src/sksl/ir/SkSLVarDeclarations.h" #include "src/sksl/ir/SkSLVariableReference.h" @@ -45,69 +52,86 @@ static int calculate_count(double start, double end, double delta, bool forwards return (int)count; } -static const char* get_es2_loop_unroll_info(const Statement* loopInitializer, - const Expression* loopTest, - const Expression* loopNext, - const Statement* loopStatement, - LoopUnrollInfo& loopInfo) { +std::unique_ptr Analysis::GetLoopUnrollInfo(Position loopPos, + const Statement* loopInitializer, + const Expression* loopTest, + const Expression* loopNext, + const Statement* loopStatement, + ErrorReporter* errorPtr) { + NoOpErrorReporter unused; + ErrorReporter& errors = errorPtr ? *errorPtr : unused; + auto loopInfo = std::make_unique(); + // // init_declaration has the form: type_specifier identifier = constant_expression // if (!loopInitializer) { - return "missing init declaration"; + errors.error(loopPos, "missing init declaration"); + return nullptr; } if (!loopInitializer->is()) { - return "invalid init declaration"; + errors.error(loopInitializer->fPosition, "invalid init declaration"); + return nullptr; } const VarDeclaration& initDecl = loopInitializer->as(); if (!initDecl.baseType().isNumber()) { - return "invalid type for loop index"; + errors.error(loopInitializer->fPosition, "invalid type for loop index"); + return nullptr; } if (initDecl.arraySize() != 0) { - return "invalid type for loop index"; + errors.error(loopInitializer->fPosition, "invalid type for loop index"); + return nullptr; } if (!initDecl.value()) { - return "missing loop index initializer"; + errors.error(loopInitializer->fPosition, "missing loop index initializer"); + return nullptr; } - if (!ConstantFolder::GetConstantValue(*initDecl.value(), &loopInfo.fStart)) { - return "loop index initializer must be a constant expression"; + if (!ConstantFolder::GetConstantValue(*initDecl.value(), &loopInfo->fStart)) { + errors.error(loopInitializer->fPosition, + "loop index initializer must be a constant expression"); + return nullptr; } - loopInfo.fIndex = &initDecl.var(); + loopInfo->fIndex = &initDecl.var(); auto is_loop_index = [&](const std::unique_ptr& expr) { return expr->is() && - expr->as().variable() == loopInfo.fIndex; + expr->as().variable() == loopInfo->fIndex; }; // // condition has the form: loop_index relational_operator constant_expression // if (!loopTest) { - return "missing condition"; + errors.error(loopPos, "missing condition"); + return nullptr; } if (!loopTest->is()) { - return "invalid condition"; + errors.error(loopTest->fPosition, "invalid condition"); + return nullptr; } const BinaryExpression& cond = loopTest->as(); if (!is_loop_index(cond.left())) { - return "expected loop index on left hand side of condition"; + errors.error(loopTest->fPosition, "expected loop index on left hand side of condition"); + return nullptr; } // relational_operator is one of: > >= < <= == or != switch (cond.getOperator().kind()) { - case Token::Kind::TK_GT: - case Token::Kind::TK_GTEQ: - case Token::Kind::TK_LT: - case Token::Kind::TK_LTEQ: - case Token::Kind::TK_EQEQ: - case Token::Kind::TK_NEQ: + case Operator::Kind::GT: + case Operator::Kind::GTEQ: + case Operator::Kind::LT: + case Operator::Kind::LTEQ: + case Operator::Kind::EQEQ: + case Operator::Kind::NEQ: break; default: - return "invalid relational operator"; + errors.error(loopTest->fPosition, "invalid relational operator"); + return nullptr; } double loopEnd = 0; if (!ConstantFolder::GetConstantValue(*cond.right(), &loopEnd)) { - return "loop index must be compared with a constant expression"; + errors.error(loopTest->fPosition, "loop index must be compared with a constant expression"); + return nullptr; } // @@ -120,50 +144,60 @@ static const char* get_es2_loop_unroll_info(const Statement* loopInitializer, // it's an oversight, so we allow those as well. // if (!loopNext) { - return "missing loop expression"; + errors.error(loopPos, "missing loop expression"); + return nullptr; } switch (loopNext->kind()) { case Expression::Kind::kBinary: { const BinaryExpression& next = loopNext->as(); if (!is_loop_index(next.left())) { - return "expected loop index in loop expression"; + errors.error(loopNext->fPosition, "expected loop index in loop expression"); + return nullptr; } - if (!ConstantFolder::GetConstantValue(*next.right(), &loopInfo.fDelta)) { - return "loop index must be modified by a constant expression"; + if (!ConstantFolder::GetConstantValue(*next.right(), &loopInfo->fDelta)) { + errors.error(loopNext->fPosition, + "loop index must be modified by a constant expression"); + return nullptr; } switch (next.getOperator().kind()) { - case Token::Kind::TK_PLUSEQ: break; - case Token::Kind::TK_MINUSEQ: loopInfo.fDelta = -loopInfo.fDelta; break; + case Operator::Kind::PLUSEQ: break; + case Operator::Kind::MINUSEQ: loopInfo->fDelta = -loopInfo->fDelta; break; default: - return "invalid operator in loop expression"; + errors.error(loopNext->fPosition, "invalid operator in loop expression"); + return nullptr; } } break; case Expression::Kind::kPrefix: { const PrefixExpression& next = loopNext->as(); if (!is_loop_index(next.operand())) { - return "expected loop index in loop expression"; + errors.error(loopNext->fPosition, "expected loop index in loop expression"); + return nullptr; } switch (next.getOperator().kind()) { - case Token::Kind::TK_PLUSPLUS: loopInfo.fDelta = 1; break; - case Token::Kind::TK_MINUSMINUS: loopInfo.fDelta = -1; break; + case Operator::Kind::PLUSPLUS: loopInfo->fDelta = 1; break; + case Operator::Kind::MINUSMINUS: loopInfo->fDelta = -1; break; default: - return "invalid operator in loop expression"; + errors.error(loopNext->fPosition, "invalid operator in loop expression"); + return nullptr; } } break; case Expression::Kind::kPostfix: { const PostfixExpression& next = loopNext->as(); if (!is_loop_index(next.operand())) { - return "expected loop index in loop expression"; + errors.error(loopNext->fPosition, "expected loop index in loop expression"); + return nullptr; } switch (next.getOperator().kind()) { - case Token::Kind::TK_PLUSPLUS: loopInfo.fDelta = 1; break; - case Token::Kind::TK_MINUSMINUS: loopInfo.fDelta = -1; break; + case Operator::Kind::PLUSPLUS: loopInfo->fDelta = 1; break; + case Operator::Kind::MINUSMINUS: loopInfo->fDelta = -1; break; default: - return "invalid operator in loop expression"; + errors.error(loopNext->fPosition, "invalid operator in loop expression"); + return nullptr; } } break; default: - return "invalid loop expression"; + errors.error(loopNext->fPosition, "invalid loop expression"); + return nullptr; } // @@ -171,85 +205,71 @@ static const char* get_es2_loop_unroll_info(const Statement* loopInitializer, // argument to a function 'out' or 'inout' parameter. // if (Analysis::StatementWritesToVariable(*loopStatement, initDecl.var())) { - return "loop index must not be modified within body of the loop"; + errors.error(loopStatement->fPosition, + "loop index must not be modified within body of the loop"); + return nullptr; } // Finally, compute the iteration count, based on the bounds, and the termination operator. - loopInfo.fCount = 0; + loopInfo->fCount = 0; switch (cond.getOperator().kind()) { - case Token::Kind::TK_LT: - loopInfo.fCount = calculate_count(loopInfo.fStart, loopEnd, loopInfo.fDelta, + case Operator::Kind::LT: + loopInfo->fCount = calculate_count(loopInfo->fStart, loopEnd, loopInfo->fDelta, /*forwards=*/true, /*inclusive=*/false); break; - case Token::Kind::TK_GT: - loopInfo.fCount = calculate_count(loopInfo.fStart, loopEnd, loopInfo.fDelta, + case Operator::Kind::GT: + loopInfo->fCount = calculate_count(loopInfo->fStart, loopEnd, loopInfo->fDelta, /*forwards=*/false, /*inclusive=*/false); break; - case Token::Kind::TK_LTEQ: - loopInfo.fCount = calculate_count(loopInfo.fStart, loopEnd, loopInfo.fDelta, + case Operator::Kind::LTEQ: + loopInfo->fCount = calculate_count(loopInfo->fStart, loopEnd, loopInfo->fDelta, /*forwards=*/true, /*inclusive=*/true); break; - case Token::Kind::TK_GTEQ: - loopInfo.fCount = calculate_count(loopInfo.fStart, loopEnd, loopInfo.fDelta, + case Operator::Kind::GTEQ: + loopInfo->fCount = calculate_count(loopInfo->fStart, loopEnd, loopInfo->fDelta, /*forwards=*/false, /*inclusive=*/true); break; - case Token::Kind::TK_NEQ: { - float iterations = sk_ieee_double_divide(loopEnd - loopInfo.fStart, loopInfo.fDelta); - loopInfo.fCount = std::ceil(iterations); - if (loopInfo.fCount < 0 || loopInfo.fCount != iterations || + case Operator::Kind::NEQ: { + float iterations = sk_ieee_double_divide(loopEnd - loopInfo->fStart, loopInfo->fDelta); + loopInfo->fCount = std::ceil(iterations); + if (loopInfo->fCount < 0 || loopInfo->fCount != iterations || !std::isfinite(iterations)) { // The loop doesn't reach the exact endpoint and so will never terminate. - loopInfo.fCount = kLoopTerminationLimit; + loopInfo->fCount = kLoopTerminationLimit; } break; } - case Token::Kind::TK_EQEQ: { - if (loopInfo.fStart == loopEnd) { + case Operator::Kind::EQEQ: { + if (loopInfo->fStart == loopEnd) { // Start and end begin in the same place, so we can run one iteration... - if (loopInfo.fDelta) { + if (loopInfo->fDelta) { // ... and then they diverge, so the loop terminates. - loopInfo.fCount = 1; + loopInfo->fCount = 1; } else { // ... but they never diverge, so the loop runs forever. - loopInfo.fCount = kLoopTerminationLimit; + loopInfo->fCount = kLoopTerminationLimit; } } else { // Start never equals end, so the loop will not run a single iteration. - loopInfo.fCount = 0; + loopInfo->fCount = 0; } break; } default: SkUNREACHABLE; } - SkASSERT(loopInfo.fCount >= 0); - if (loopInfo.fCount >= kLoopTerminationLimit) { - return "loop must guarantee termination in fewer iterations"; + SkASSERT(loopInfo->fCount >= 0); + if (loopInfo->fCount >= kLoopTerminationLimit) { + errors.error(loopPos, "loop must guarantee termination in fewer iterations"); + return nullptr; } - return nullptr; // All checks pass -} - -std::unique_ptr Analysis::GetLoopUnrollInfo(int line, - const Statement* loopInitializer, - const Expression* loopTest, - const Expression* loopNext, - const Statement* loopStatement, - ErrorReporter* errors) { - auto result = std::make_unique(); - if (const char* msg = get_es2_loop_unroll_info(loopInitializer, loopTest, loopNext, - loopStatement, *result)) { - result = nullptr; - if (errors) { - errors->error(line, msg); - } - } - return result; + return loopInfo; } } // namespace SkSL diff --git a/third_party/skia/src/sksl/analysis/SkSLIsConstantExpression.cpp b/third_party/skia/src/sksl/analysis/SkSLIsConstantExpression.cpp index e46411268683..86fccacf61a1 100644 --- a/third_party/skia/src/sksl/analysis/SkSLIsConstantExpression.cpp +++ b/third_party/skia/src/sksl/analysis/SkSLIsConstantExpression.cpp @@ -5,14 +5,15 @@ * found in the LICENSE file. */ -#include "include/private/SkSLStatement.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLModifiers.h" #include "src/sksl/SkSLAnalysis.h" #include "src/sksl/analysis/SkSLProgramVisitor.h" -#include "src/sksl/ir/SkSLDoStatement.h" -#include "src/sksl/ir/SkSLForStatement.h" -#include "src/sksl/ir/SkSLFunctionDeclaration.h" -#include "src/sksl/ir/SkSLIfStatement.h" -#include "src/sksl/ir/SkSLSwitchStatement.h" +#include "src/sksl/ir/SkSLExpression.h" +#include "src/sksl/ir/SkSLVariable.h" +#include "src/sksl/ir/SkSLVariableReference.h" + +#include namespace SkSL { diff --git a/third_party/skia/src/sksl/analysis/SkSLIsSameExpressionTree.cpp b/third_party/skia/src/sksl/analysis/SkSLIsSameExpressionTree.cpp new file mode 100644 index 000000000000..9c5242de31da --- /dev/null +++ b/third_party/skia/src/sksl/analysis/SkSLIsSameExpressionTree.cpp @@ -0,0 +1,97 @@ +/* + * 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 "include/core/SkSpan.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkTArray.h" +#include "include/sksl/SkSLOperator.h" +#include "src/sksl/SkSLAnalysis.h" +#include "src/sksl/ir/SkSLConstructor.h" +#include "src/sksl/ir/SkSLExpression.h" +#include "src/sksl/ir/SkSLFieldAccess.h" +#include "src/sksl/ir/SkSLIndexExpression.h" +#include "src/sksl/ir/SkSLLiteral.h" +#include "src/sksl/ir/SkSLPrefixExpression.h" +#include "src/sksl/ir/SkSLSwizzle.h" +#include "src/sksl/ir/SkSLType.h" +#include "src/sksl/ir/SkSLVariableReference.h" + +#include + +namespace SkSL { + +bool Analysis::IsSameExpressionTree(const Expression& left, const Expression& right) { + if (left.kind() != right.kind() || !left.type().matches(right.type())) { + return false; + } + + // This isn't a fully exhaustive list of expressions by any stretch of the imagination; for + // instance, `x[y+1] = x[y+1]` isn't detected because we don't look at BinaryExpressions. + // Since this is intended to be used for optimization purposes, handling the common cases is + // sufficient. + switch (left.kind()) { + case Expression::Kind::kLiteral: + return left.as().value() == right.as().value(); + + case Expression::Kind::kConstructorArray: + case Expression::Kind::kConstructorArrayCast: + case Expression::Kind::kConstructorCompound: + case Expression::Kind::kConstructorCompoundCast: + case Expression::Kind::kConstructorDiagonalMatrix: + case Expression::Kind::kConstructorMatrixResize: + case Expression::Kind::kConstructorScalarCast: + case Expression::Kind::kConstructorStruct: + case Expression::Kind::kConstructorSplat: { + if (left.kind() != right.kind()) { + return false; + } + const AnyConstructor& leftCtor = left.asAnyConstructor(); + const AnyConstructor& rightCtor = right.asAnyConstructor(); + const auto leftSpan = leftCtor.argumentSpan(); + const auto rightSpan = rightCtor.argumentSpan(); + if (leftSpan.size() != rightSpan.size()) { + return false; + } + for (size_t index = 0; index < leftSpan.size(); ++index) { + if (!IsSameExpressionTree(*leftSpan[index], *rightSpan[index])) { + return false; + } + } + return true; + } + case Expression::Kind::kFieldAccess: + return left.as().fieldIndex() == right.as().fieldIndex() && + IsSameExpressionTree(*left.as().base(), + *right.as().base()); + + case Expression::Kind::kIndex: + return IsSameExpressionTree(*left.as().index(), + *right.as().index()) && + IsSameExpressionTree(*left.as().base(), + *right.as().base()); + + case Expression::Kind::kPrefix: + return (left.as().getOperator().kind() == + right.as().getOperator().kind()) && + IsSameExpressionTree(*left.as().operand(), + *right.as().operand()); + + case Expression::Kind::kSwizzle: + return left.as().components() == right.as().components() && + IsSameExpressionTree(*left.as().base(), *right.as().base()); + + case Expression::Kind::kVariableReference: + return left.as().variable() == + right.as().variable(); + + default: + return false; + } +} + +} // namespace SkSL diff --git a/third_party/skia/src/sksl/analysis/SkSLNoOpErrorReporter.h b/third_party/skia/src/sksl/analysis/SkSLNoOpErrorReporter.h new file mode 100644 index 000000000000..8f0c0de32178 --- /dev/null +++ b/third_party/skia/src/sksl/analysis/SkSLNoOpErrorReporter.h @@ -0,0 +1,24 @@ +/* + * 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 SkSLNoOpErrorReporter_DEFINED +#define SkSLNoOpErrorReporter_DEFINED + +#include "include/sksl/SkSLErrorReporter.h" + +namespace SkSL { + +// We can use a no-op error reporter to silently ignore errors. +class NoOpErrorReporter : public ErrorReporter { +public: + ~NoOpErrorReporter() override { this->reportPendingErrors({}); } + void handleError(std::string_view, Position) override {} +}; + +} // namespace SkSL + +#endif diff --git a/third_party/skia/src/sksl/analysis/SkSLProgramUsage.cpp b/third_party/skia/src/sksl/analysis/SkSLProgramUsage.cpp index 6ba478bd65e7..1cc9169f029a 100644 --- a/third_party/skia/src/sksl/analysis/SkSLProgramUsage.cpp +++ b/third_party/skia/src/sksl/analysis/SkSLProgramUsage.cpp @@ -5,17 +5,27 @@ * found in the LICENSE file. */ +#include "include/core/SkTypes.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkTHash.h" #include "src/sksl/SkSLAnalysis.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/analysis/SkSLProgramVisitor.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLFunctionCall.h" #include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" #include "src/sksl/ir/SkSLInterfaceBlock.h" #include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLVarDeclarations.h" +#include "src/sksl/ir/SkSLVariable.h" #include "src/sksl/ir/SkSLVariableReference.h" +#include +#include + namespace SkSL { namespace { diff --git a/third_party/skia/src/sksl/binary_format.md b/third_party/skia/src/sksl/binary_format.md index 2afadc5cbe6c..5f31f90e51d7 100644 --- a/third_party/skia/src/sksl/binary_format.md +++ b/third_party/skia/src/sksl/binary_format.md @@ -58,7 +58,7 @@ byte ordering. | `String` | a `uint8` length, followed by a `uint16` offset [^1] | | `ProgramKind` | a `uint8` mapping to a value in the `SkSL::ProgramKind` enum | | `VariableStorage` | a `uint8` mapping to a value in the `SkSL::VariableStorage` enum | -| `Operator` | a `uint8` mapping to a value in the `SkSL::Token::Kind` enum | +| `Operator` | a `uint8` mapping to a value in the `SkSL::Operator::Kind` enum | | `FieldAccessOwnerKind` | a `uint8` mapping to a value in the `SkSL::FieldAccessOwnerKind` enum | | `VariableRefKind` | a `uint8` mapping to a value in the `SkSL::VariableRefKind` enum | | `SwizzleComponent` | a `uint8` mapping to a value in the `SkSL::SwizzleComponent::Type` enum | @@ -621,7 +621,7 @@ Represents a reference to the variable `var`. | `kSymbolTable_Command` | symbolTable | | `uint8` | statementCount | | `Statement[statementCount]` | statements | -| `bool` | isScope | +| `uint8` | blockKind | A block of statements. diff --git a/third_party/skia/src/sksl/codegen/BUILD.bazel b/third_party/skia/src/sksl/codegen/BUILD.bazel index ae335db09dd7..db981667aa3a 100644 --- a/third_party/skia/src/sksl/codegen/BUILD.bazel +++ b/third_party/skia/src/sksl/codegen/BUILD.bazel @@ -1,4 +1,8 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") + +licenses(["notice"]) + +enforce_iwyu_on_package() generated_cc_atom( name = "SkSLCodeGenerator_hdr", @@ -16,7 +20,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLCodeGenerator_hdr", - "//src/sksl:SkSLOperators_hdr", + "//include/sksl:SkSLOperator_hdr", + "//src/sksl:SkSLContext_hdr", "//src/sksl:SkSLStringStream_hdr", ], ) @@ -27,33 +32,59 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLGLSLCodeGenerator_hdr", - "//include/private:SkOnce_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLLayout_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLProgramKind_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkSLString_hdr", + "//include/private:SkTArray_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLPosition_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLGLSL_hdr", + "//src/sksl:SkSLOutputStream_hdr", + "//src/sksl:SkSLProgramSettings_hdr", + "//src/sksl:SkSLUtil_hdr", + "//src/sksl:spirv_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", + "//src/sksl/ir:SkSLBlock_hdr", "//src/sksl/ir:SkSLConstructorArrayCast_hdr", "//src/sksl/ir:SkSLConstructorDiagonalMatrix_hdr", + "//src/sksl/ir:SkSLConstructor_hdr", "//src/sksl/ir:SkSLDoStatement_hdr", "//src/sksl/ir:SkSLExpressionStatement_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLExtension_hdr", "//src/sksl/ir:SkSLFieldAccess_hdr", "//src/sksl/ir:SkSLForStatement_hdr", "//src/sksl/ir:SkSLFunctionCall_hdr", + "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", "//src/sksl/ir:SkSLFunctionPrototype_hdr", "//src/sksl/ir:SkSLIfStatement_hdr", "//src/sksl/ir:SkSLIndexExpression_hdr", "//src/sksl/ir:SkSLInterfaceBlock_hdr", + "//src/sksl/ir:SkSLLiteral_hdr", "//src/sksl/ir:SkSLModifiersDeclaration_hdr", - "//src/sksl/ir:SkSLNop_hdr", "//src/sksl/ir:SkSLPostfixExpression_hdr", "//src/sksl/ir:SkSLPrefixExpression_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLReturnStatement_hdr", "//src/sksl/ir:SkSLSetting_hdr", "//src/sksl/ir:SkSLStructDefinition_hdr", "//src/sksl/ir:SkSLSwitchCase_hdr", "//src/sksl/ir:SkSLSwitchStatement_hdr", "//src/sksl/ir:SkSLSwizzle_hdr", + "//src/sksl/ir:SkSLTernaryExpression_hdr", + "//src/sksl/ir:SkSLType_hdr", + "//src/sksl/ir:SkSLVarDeclarations_hdr", "//src/sksl/ir:SkSLVariableReference_hdr", + "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -63,8 +94,12 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLCodeGenerator_hdr", - "//src/sksl:SkSLOperators_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkTArray_hdr", + "//include/private:SkTHash_hdr", + "//include/sksl:SkSLOperator_hdr", "//src/sksl:SkSLStringStream_hdr", + "//src/sksl/ir:SkSLType_hdr", ], ) @@ -74,21 +109,35 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLMetalCodeGenerator_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLLayout_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLProgramKind_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkSLString_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/core:SkScopeExit_hdr", + "//src/sksl:SkSLAnalysis_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLContext_hdr", "//src/sksl:SkSLMemoryLayout_hdr", + "//src/sksl:SkSLOutputStream_hdr", + "//src/sksl:SkSLProgramSettings_hdr", + "//src/sksl:SkSLUtil_hdr", + "//src/sksl:spirv_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", "//src/sksl/ir:SkSLBlock_hdr", "//src/sksl/ir:SkSLConstructorArrayCast_hdr", - "//src/sksl/ir:SkSLConstructorArray_hdr", - "//src/sksl/ir:SkSLConstructorCompoundCast_hdr", "//src/sksl/ir:SkSLConstructorCompound_hdr", - "//src/sksl/ir:SkSLConstructorDiagonalMatrix_hdr", "//src/sksl/ir:SkSLConstructorMatrixResize_hdr", - "//src/sksl/ir:SkSLConstructorSplat_hdr", - "//src/sksl/ir:SkSLConstructorStruct_hdr", + "//src/sksl/ir:SkSLConstructor_hdr", "//src/sksl/ir:SkSLDoStatement_hdr", "//src/sksl/ir:SkSLExpressionStatement_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLExtension_hdr", "//src/sksl/ir:SkSLFieldAccess_hdr", "//src/sksl/ir:SkSLForStatement_hdr", @@ -99,17 +148,22 @@ generated_cc_atom( "//src/sksl/ir:SkSLIfStatement_hdr", "//src/sksl/ir:SkSLIndexExpression_hdr", "//src/sksl/ir:SkSLInterfaceBlock_hdr", + "//src/sksl/ir:SkSLLiteral_hdr", "//src/sksl/ir:SkSLModifiersDeclaration_hdr", "//src/sksl/ir:SkSLNop_hdr", "//src/sksl/ir:SkSLPostfixExpression_hdr", "//src/sksl/ir:SkSLPrefixExpression_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLReturnStatement_hdr", "//src/sksl/ir:SkSLSetting_hdr", "//src/sksl/ir:SkSLStructDefinition_hdr", + "//src/sksl/ir:SkSLSwitchCase_hdr", "//src/sksl/ir:SkSLSwitchStatement_hdr", "//src/sksl/ir:SkSLSwizzle_hdr", + "//src/sksl/ir:SkSLTernaryExpression_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", "//src/sksl/ir:SkSLVariableReference_hdr", + "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -117,7 +171,7 @@ generated_cc_atom( name = "SkSLPipelineStageCodeGenerator_hdr", hdrs = ["SkSLPipelineStageCodeGenerator.h"], visibility = ["//:__subpackages__"], - deps = ["//include/private:SkSLString_hdr"], + deps = ["//include/core:SkTypes_hdr"], ) generated_cc_atom( @@ -126,34 +180,48 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLPipelineStageCodeGenerator_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLLayout_hdr", + "//include/private:SkSLModifiers_hdr", "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLProgramKind_hdr", "//include/private:SkSLStatement_hdr", + "//include/private:SkSLString_hdr", + "//include/private:SkTArray_hdr", + "//include/private:SkTHash_hdr", + "//include/sksl:SkSLOperator_hdr", "//src/sksl:SkSLCompiler_hdr", - "//src/sksl:SkSLOperators_hdr", + "//src/sksl:SkSLProgramSettings_hdr", "//src/sksl:SkSLStringStream_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", + "//src/sksl/ir:SkSLBlock_hdr", "//src/sksl/ir:SkSLChildCall_hdr", - "//src/sksl/ir:SkSLConstructorArrayCast_hdr", "//src/sksl/ir:SkSLConstructor_hdr", "//src/sksl/ir:SkSLDoStatement_hdr", "//src/sksl/ir:SkSLExpressionStatement_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLFieldAccess_hdr", "//src/sksl/ir:SkSLForStatement_hdr", "//src/sksl/ir:SkSLFunctionCall_hdr", "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", - "//src/sksl/ir:SkSLFunctionPrototype_hdr", "//src/sksl/ir:SkSLIfStatement_hdr", "//src/sksl/ir:SkSLIndexExpression_hdr", "//src/sksl/ir:SkSLPostfixExpression_hdr", "//src/sksl/ir:SkSLPrefixExpression_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLReturnStatement_hdr", "//src/sksl/ir:SkSLStructDefinition_hdr", + "//src/sksl/ir:SkSLSwitchCase_hdr", "//src/sksl/ir:SkSLSwitchStatement_hdr", "//src/sksl/ir:SkSLSwizzle_hdr", "//src/sksl/ir:SkSLTernaryExpression_hdr", + "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", "//src/sksl/ir:SkSLVariableReference_hdr", + "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -163,9 +231,21 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLCodeGenerator_hdr", - "//src/core:SkOpts_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLLayout_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLProgramKind_hdr", + "//include/private:SkTArray_hdr", + "//include/private:SkTHash_hdr", "//src/sksl:SkSLMemoryLayout_hdr", "//src/sksl:SkSLStringStream_hdr", + "//src/sksl:spirv_hdr", + "//src/sksl/ir:SkSLFunctionDeclaration_hdr", + "//src/sksl/ir:SkSLFunctionDefinition_hdr", + "//src/sksl/ir:SkSLInterfaceBlock_hdr", + "//src/sksl/ir:SkSLSymbolTable_hdr", + "//src/sksl/ir:SkSLType_hdr", + "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -175,12 +255,30 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLSPIRVCodeGenerator_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkOpts_spi_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkSLSymbol_hdr", + "//include/private:SkTArray_hdr", "//include/sksl:DSLCore_hdr", - "//src/gpu/vk:GrVkCaps_hdr", + "//include/sksl:DSLExpression_hdr", + "//include/sksl:DSLType_hdr", + "//include/sksl:DSLVar_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLOperator_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/sksl:GLSL.std.450_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", "//src/sksl:SkSLCompiler_hdr", - "//src/sksl:SkSLOperators_hdr", + "//src/sksl:SkSLContext_hdr", + "//src/sksl:SkSLModifiersPool_hdr", + "//src/sksl:SkSLOutputStream_hdr", + "//src/sksl:SkSLPool_hdr", + "//src/sksl:SkSLProgramSettings_hdr", "//src/sksl:SkSLThreadContext_hdr", + "//src/sksl:SkSLUtil_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", "//src/sksl/ir:SkSLBlock_hdr", "//src/sksl/ir:SkSLConstructorArrayCast_hdr", @@ -190,8 +288,10 @@ generated_cc_atom( "//src/sksl/ir:SkSLConstructorMatrixResize_hdr", "//src/sksl/ir:SkSLConstructorScalarCast_hdr", "//src/sksl/ir:SkSLConstructorSplat_hdr", + "//src/sksl/ir:SkSLConstructor_hdr", "//src/sksl/ir:SkSLDoStatement_hdr", "//src/sksl/ir:SkSLExpressionStatement_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLExtension_hdr", "//src/sksl/ir:SkSLFieldAccess_hdr", "//src/sksl/ir:SkSLField_hdr", @@ -202,9 +302,12 @@ generated_cc_atom( "//src/sksl/ir:SkSLIfStatement_hdr", "//src/sksl/ir:SkSLIndexExpression_hdr", "//src/sksl/ir:SkSLInterfaceBlock_hdr", + "//src/sksl/ir:SkSLLiteral_hdr", "//src/sksl/ir:SkSLPostfixExpression_hdr", "//src/sksl/ir:SkSLPrefixExpression_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLReturnStatement_hdr", + "//src/sksl/ir:SkSLSwitchCase_hdr", "//src/sksl/ir:SkSLSwitchStatement_hdr", "//src/sksl/ir:SkSLSwizzle_hdr", "//src/sksl/ir:SkSLTernaryExpression_hdr", @@ -217,14 +320,16 @@ generated_cc_atom( name = "SkSLSPIRVtoHLSL_hdr", hdrs = ["SkSLSPIRVtoHLSL.h"], visibility = ["//:__subpackages__"], - deps = ["//include/private:SkSLString_hdr"], ) generated_cc_atom( name = "SkSLSPIRVtoHLSL_src", srcs = ["SkSLSPIRVtoHLSL.cpp"], visibility = ["//:__subpackages__"], - deps = [":SkSLSPIRVtoHLSL_hdr"], + deps = [ + ":SkSLSPIRVtoHLSL_hdr", + "//third_party:spirv_cross", + ], ) generated_cc_atom( @@ -232,8 +337,6 @@ generated_cc_atom( hdrs = ["SkSLVMCodeGenerator.h"], visibility = ["//:__subpackages__"], deps = [ - "//include/core:SkSpan_hdr", - "//include/private:SkSLString_hdr", "//src/core:SkVM_hdr", "//src/sksl/ir:SkSLType_hdr", ], @@ -244,30 +347,39 @@ generated_cc_atom( srcs = ["SkSLVMCodeGenerator.cpp"], visibility = ["//:__subpackages__"], deps = [ - ":SkSLCodeGenerator_hdr", ":SkSLVMCodeGenerator_hdr", + "//include/core:SkBlendMode_hdr", + "//include/core:SkColorType_hdr", + "//include/core:SkColor_hdr", + "//include/core:SkPoint_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkFloatingPoint_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLLayout_hdr", + "//include/private:SkSLModifiers_hdr", "//include/private:SkSLProgramElement_hdr", "//include/private:SkSLStatement_hdr", + "//include/private:SkSLString_hdr", "//include/private:SkTArray_hdr", + "//include/private:SkTHash_hdr", "//include/private:SkTPin_hdr", + "//include/sksl:SkSLOperator_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/sksl:SkSLCompiler_hdr", - "//src/sksl:SkSLOperators_hdr", + "//src/sksl:SkSLProgramSettings_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", "//src/sksl/ir:SkSLBlock_hdr", - "//src/sksl/ir:SkSLBreakStatement_hdr", "//src/sksl/ir:SkSLChildCall_hdr", "//src/sksl/ir:SkSLConstructorArrayCast_hdr", - "//src/sksl/ir:SkSLConstructorArray_hdr", "//src/sksl/ir:SkSLConstructorDiagonalMatrix_hdr", "//src/sksl/ir:SkSLConstructorMatrixResize_hdr", "//src/sksl/ir:SkSLConstructorSplat_hdr", - "//src/sksl/ir:SkSLConstructorStruct_hdr", "//src/sksl/ir:SkSLConstructor_hdr", - "//src/sksl/ir:SkSLContinueStatement_hdr", - "//src/sksl/ir:SkSLDoStatement_hdr", "//src/sksl/ir:SkSLExpressionStatement_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLExternalFunctionCall_hdr", - "//src/sksl/ir:SkSLExternalFunctionReference_hdr", + "//src/sksl/ir:SkSLExternalFunction_hdr", "//src/sksl/ir:SkSLFieldAccess_hdr", "//src/sksl/ir:SkSLForStatement_hdr", "//src/sksl/ir:SkSLFunctionCall_hdr", @@ -278,12 +390,75 @@ generated_cc_atom( "//src/sksl/ir:SkSLLiteral_hdr", "//src/sksl/ir:SkSLPostfixExpression_hdr", "//src/sksl/ir:SkSLPrefixExpression_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLReturnStatement_hdr", + "//src/sksl/ir:SkSLSwitchCase_hdr", "//src/sksl/ir:SkSLSwitchStatement_hdr", "//src/sksl/ir:SkSLSwizzle_hdr", "//src/sksl/ir:SkSLTernaryExpression_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", "//src/sksl/ir:SkSLVariableReference_hdr", + "//src/sksl/ir:SkSLVariable_hdr", "//src/sksl/tracing:SkVMDebugTrace_hdr", ], ) + +generated_cc_atom( + name = "SkSLWGSLCodeGenerator_hdr", + hdrs = ["SkSLWGSLCodeGenerator.h"], + visibility = ["//:__subpackages__"], + deps = [ + ":SkSLCodeGenerator_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkTHash_hdr", + "//include/sksl:SkSLOperator_hdr", + ], +) + +generated_cc_atom( + name = "SkSLWGSLCodeGenerator_src", + srcs = ["SkSLWGSLCodeGenerator.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":SkSLWGSLCodeGenerator_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkBitmaskEnum_hdr", + "//include/private:SkSLLayout_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLProgramKind_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkSLString_hdr", + "//include/private:SkSLSymbol_hdr", + "//include/private:SkTArray_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLPosition_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", + "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLContext_hdr", + "//src/sksl:SkSLOutputStream_hdr", + "//src/sksl:SkSLProgramSettings_hdr", + "//src/sksl:SkSLStringStream_hdr", + "//src/sksl:SkSLUtil_hdr", + "//src/sksl/analysis:SkSLProgramVisitor_hdr", + "//src/sksl/ir:SkSLBinaryExpression_hdr", + "//src/sksl/ir:SkSLBlock_hdr", + "//src/sksl/ir:SkSLConstructorCompound_hdr", + "//src/sksl/ir:SkSLConstructor_hdr", + "//src/sksl/ir:SkSLExpressionStatement_hdr", + "//src/sksl/ir:SkSLExpression_hdr", + "//src/sksl/ir:SkSLFunctionCall_hdr", + "//src/sksl/ir:SkSLFunctionDeclaration_hdr", + "//src/sksl/ir:SkSLFunctionDefinition_hdr", + "//src/sksl/ir:SkSLInterfaceBlock_hdr", + "//src/sksl/ir:SkSLLiteral_hdr", + "//src/sksl/ir:SkSLProgram_hdr", + "//src/sksl/ir:SkSLReturnStatement_hdr", + "//src/sksl/ir:SkSLSymbolTable_hdr", + "//src/sksl/ir:SkSLType_hdr", + "//src/sksl/ir:SkSLVarDeclarations_hdr", + "//src/sksl/ir:SkSLVariableReference_hdr", + "//src/sksl/ir:SkSLVariable_hdr", + ], +) diff --git a/third_party/skia/src/sksl/codegen/SkSLCodeGenerator.h b/third_party/skia/src/sksl/codegen/SkSLCodeGenerator.h index 77a9ac634cfb..fd58648cd9c1 100644 --- a/third_party/skia/src/sksl/codegen/SkSLCodeGenerator.h +++ b/third_party/skia/src/sksl/codegen/SkSLCodeGenerator.h @@ -33,6 +33,21 @@ class CodeGenerator { void setOutputStream(OutputStream* output) { fOut = output; } protected: +#if defined(SK_USE_LEGACY_MIPMAP_LOD_BIAS) + static constexpr float kSharpenTexturesBias = -.5f; +#else + // For SkMipmapMode::kLinear we want a bias such that when the unbiased LOD value is + // midway between levels we select just the larger level, i.e. a bias of -.5. However, using + // this bias with kNearest mode with a draw that is a perfect power of two downscale puts us + // right on the rounding edge where it could go up or down depending on the particular GPU. + // Experimentally we found that at -.49 most iOS devices (iPhone 7, 8, and iPad Pro + // [PowerVRGT7800 version]) all round to the level twice as big as the device space footprint + // for some such draws in our unit tests on GLES. However, the iPhone 11 still fails and so + // we are using -.475. They do not at -.48. All other GPUs passed tests with -.499. Though, at + // this time the bias is not implemented in the MSL codegen and so iOS/Metal was not tested. + static constexpr float kSharpenTexturesBias = -.475f; +#endif + const Context& fContext; const Program& fProgram; OutputStream* fOut; diff --git a/third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp b/third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp index c9fd453b8b12..67ae803ee913 100644 --- a/third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp +++ b/third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp @@ -7,38 +7,63 @@ #include "src/sksl/codegen/SkSLGLSLCodeGenerator.h" -#include - +#include "include/core/SkSpan.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLLayout.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLProgramKind.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkSLString.h" +#include "include/private/SkTArray.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLPosition.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLGLSL.h" +#include "src/sksl/SkSLOutputStream.h" +#include "src/sksl/SkSLProgramSettings.h" +#include "src/sksl/SkSLUtil.h" #include "src/sksl/ir/SkSLBinaryExpression.h" +#include "src/sksl/ir/SkSLBlock.h" +#include "src/sksl/ir/SkSLConstructor.h" #include "src/sksl/ir/SkSLConstructorArrayCast.h" #include "src/sksl/ir/SkSLConstructorDiagonalMatrix.h" #include "src/sksl/ir/SkSLDoStatement.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLExpressionStatement.h" #include "src/sksl/ir/SkSLExtension.h" #include "src/sksl/ir/SkSLFieldAccess.h" #include "src/sksl/ir/SkSLForStatement.h" #include "src/sksl/ir/SkSLFunctionCall.h" +#include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" #include "src/sksl/ir/SkSLFunctionPrototype.h" #include "src/sksl/ir/SkSLIfStatement.h" #include "src/sksl/ir/SkSLIndexExpression.h" #include "src/sksl/ir/SkSLInterfaceBlock.h" +#include "src/sksl/ir/SkSLLiteral.h" #include "src/sksl/ir/SkSLModifiersDeclaration.h" -#include "src/sksl/ir/SkSLNop.h" #include "src/sksl/ir/SkSLPostfixExpression.h" #include "src/sksl/ir/SkSLPrefixExpression.h" +#include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLReturnStatement.h" #include "src/sksl/ir/SkSLSetting.h" #include "src/sksl/ir/SkSLStructDefinition.h" #include "src/sksl/ir/SkSLSwitchCase.h" #include "src/sksl/ir/SkSLSwitchStatement.h" #include "src/sksl/ir/SkSLSwizzle.h" +#include "src/sksl/ir/SkSLTernaryExpression.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" +#include "src/sksl/spirv.h" -#ifndef SKSL_STANDALONE -#include "include/private/SkOnce.h" -#endif +#include +#include +#include namespace SkSL { @@ -57,7 +82,7 @@ void GLSLCodeGenerator::write(std::string_view s) { void GLSLCodeGenerator::writeLine(std::string_view s) { this->write(s); - fOut->writeText(fLineEnding); + fOut->writeText("\n"); fAtLineStart = true; } @@ -472,7 +497,7 @@ void GLSLCodeGenerator::writeFunctionCall(const FunctionCall& c) { arguments.size() == 2 && arguments[1]->kind() == Expression::Kind::kPrefix) { const PrefixExpression& p = (PrefixExpression&) *arguments[1]; - if (p.getOperator().kind() == Token::Kind::TK_MINUS) { + if (p.getOperator().kind() == Operator::Kind::MINUS) { this->write("atan("); this->writeExpression(*arguments[0], Precedence::kSequence); this->write(", -1.0 * "); @@ -487,7 +512,7 @@ void GLSLCodeGenerator::writeFunctionCall(const FunctionCall& c) { arguments.size() == 2 && arguments[1]->is()) { const PrefixExpression& p = arguments[1]->as(); - if (p.getOperator().kind() == Token::Kind::TK_MINUS) { + if (p.getOperator().kind() == Operator::Kind::MINUS) { this->write("ldexp("); this->writeExpression(*arguments[0], Precedence::kSequence); this->write(", "); @@ -500,7 +525,11 @@ void GLSLCodeGenerator::writeFunctionCall(const FunctionCall& c) { case k_dFdy_IntrinsicKind: // Flipping Y also negates the Y derivatives. closingParen = "))"; - this->write("(" SKSL_RTFLIP_NAME ".y * dFdy"); + this->write("("); + if (!fProgram.fConfig->fSettings.fForceNoRTFlip) { + this->write(SKSL_RTFLIP_NAME ".y * "); + } + this->write("dFdy"); nameWritten = true; [[fallthrough]]; case k_dFdx_IntrinsicKind: @@ -650,16 +679,12 @@ void GLSLCodeGenerator::writeFunctionCall(const FunctionCall& c) { proj = false; break; } - if (!fTextureFunctionOverride.empty()) { - this->write(fTextureFunctionOverride.c_str()); - } else { - this->write("texture"); - if (this->caps().generation() < SkSL::GLSLGeneration::k130) { - this->write(dim); - } - if (proj) { - this->write("Proj"); - } + this->write("texture"); + if (this->caps().generation() < SkSL::GLSLGeneration::k130) { + this->write(dim); + } + if (proj) { + this->write("Proj"); } nameWritten = true; break; @@ -686,7 +711,7 @@ void GLSLCodeGenerator::writeFunctionCall(const FunctionCall& c) { this->writeExpression(*arg, Precedence::kSequence); } if (fProgram.fConfig->fSettings.fSharpenTextures && isTextureFunctionWithBias) { - this->write(", -0.5"); + this->write(String::printf(", %g", kSharpenTexturesBias)); } this->write(closingParen); } @@ -758,10 +783,15 @@ void GLSLCodeGenerator::writeFragCoord() { } if (!fSetupFragPosition) { - fFunctionHeader += usesPrecisionModifiers() ? "highp " : ""; + fFunctionHeader += this->usesPrecisionModifiers() ? "highp " : ""; fFunctionHeader += " vec4 sk_FragCoord = vec4(" - "gl_FragCoord.x, " - SKSL_RTFLIP_NAME ".x + " SKSL_RTFLIP_NAME ".y * gl_FragCoord.y, " + "gl_FragCoord.x, "; + if (fProgram.fConfig->fSettings.fForceNoRTFlip) { + fFunctionHeader += "gl_FragCoord.y, "; + } else { + fFunctionHeader += SKSL_RTFLIP_NAME ".x + " SKSL_RTFLIP_NAME ".y * gl_FragCoord.y, "; + } + fFunctionHeader += "gl_FragCoord.z, " "gl_FragCoord.w);\n"; fSetupFragPosition = true; @@ -786,11 +816,12 @@ void GLSLCodeGenerator::writeVariableReference(const VariableReference& ref) { break; case SK_CLOCKWISE_BUILTIN: if (!fSetupClockwise) { - fFunctionHeader += - " bool sk_Clockwise = gl_FrontFacing;\n" - " if (" SKSL_RTFLIP_NAME ".y < 0.0) {\n" - " sk_Clockwise = !sk_Clockwise;\n" - " }\n"; + fFunctionHeader += " bool sk_Clockwise = gl_FrontFacing;\n"; + if (!fProgram.fConfig->fSettings.fForceNoRTFlip) { + fFunctionHeader += " if (" SKSL_RTFLIP_NAME ".y < 0.0) {\n" + " sk_Clockwise = !sk_Clockwise;\n" + " }\n"; + } fSetupClockwise = true; } this->write("sk_Clockwise"); @@ -805,7 +836,7 @@ void GLSLCodeGenerator::writeVariableReference(const VariableReference& ref) { if (this->caps().fbFetchSupport()) { this->write(this->caps().fbFetchColorName()); } else { - fContext.fErrors->error(ref.fLine, + fContext.fErrors->error(ref.fPosition, "sk_LastFragColor requires framebuffer fetch support"); } break; @@ -856,7 +887,7 @@ void GLSLCodeGenerator::writeMatrixComparisonWorkaround(const BinaryExpression& const Expression& right = *b.right(); Operator op = b.getOperator(); - SkASSERT(op.kind() == Token::Kind::TK_EQEQ || op.kind() == Token::Kind::TK_NEQ); + SkASSERT(op.kind() == Operator::Kind::EQEQ || op.kind() == Operator::Kind::NEQ); SkASSERT(left.type().isMatrix()); SkASSERT(right.type().isMatrix()); @@ -882,14 +913,14 @@ void GLSLCodeGenerator::writeBinaryExpression(const BinaryExpression& b, const Expression& right = *b.right(); Operator op = b.getOperator(); if (this->caps().unfoldShortCircuitAsTernary() && - (op.kind() == Token::Kind::TK_LOGICALAND || op.kind() == Token::Kind::TK_LOGICALOR)) { + (op.kind() == Operator::Kind::LOGICALAND || op.kind() == Operator::Kind::LOGICALOR)) { this->writeShortCircuitWorkaroundExpression(b, parentPrecedence); return; } if (this->caps().rewriteMatrixComparisons() && left.type().isMatrix() && right.type().isMatrix() && - (op.kind() == Token::Kind::TK_EQEQ || op.kind() == Token::Kind::TK_NEQ)) { + (op.kind() == Operator::Kind::EQEQ || op.kind() == Operator::Kind::NEQ)) { this->writeMatrixComparisonWorkaround(b); return; } @@ -929,15 +960,15 @@ void GLSLCodeGenerator::writeShortCircuitWorkaroundExpression(const BinaryExpres // a || b => a ? true : b this->writeExpression(*b.left(), Precedence::kTernary); this->write(" ? "); - if (b.getOperator().kind() == Token::Kind::TK_LOGICALAND) { + if (b.getOperator().kind() == Operator::Kind::LOGICALAND) { this->writeExpression(*b.right(), Precedence::kTernary); } else { - Literal boolTrue(/*line=*/-1, /*value=*/1, fContext.fTypes.fBool.get()); + Literal boolTrue(Position(), /*value=*/1, fContext.fTypes.fBool.get()); this->writeLiteral(boolTrue); } this->write(" : "); - if (b.getOperator().kind() == Token::Kind::TK_LOGICALAND) { - Literal boolFalse(/*line=*/-1, /*value=*/0, fContext.fTypes.fBool.get()); + if (b.getOperator().kind() == Operator::Kind::LOGICALAND) { + Literal boolFalse(Position(), /*value=*/0, fContext.fTypes.fBool.get()); this->writeLiteral(boolFalse); } else { this->writeExpression(*b.right(), Precedence::kTernary); @@ -1312,8 +1343,8 @@ void GLSLCodeGenerator::writeForStatement(const ForStatement& f) { if (f.test()) { if (this->caps().addAndTrueToLoopCondition()) { std::unique_ptr and_true(new BinaryExpression( - /*line=*/-1, f.test()->clone(), Token::Kind::TK_LOGICALAND, - Literal::MakeBool(fContext, /*line=*/-1, /*value=*/true), + Position(), f.test()->clone(), Operator::Kind::LOGICALAND, + Literal::MakeBool(fContext, Position(), /*value=*/true), fContext.fTypes.fBool.get())); this->writeExpression(*and_true, Precedence::kTopLevel); } else { diff --git a/third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.h b/third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.h index 6b4308e46141..d1ac52737506 100644 --- a/third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.h +++ b/third_party/skia/src/sksl/codegen/SkSLGLSLCodeGenerator.h @@ -8,21 +8,24 @@ #ifndef SKSL_GLSLCODEGENERATOR #define SKSL_GLSLCODEGENERATOR -#include - -#include "src/sksl/SkSLOperators.h" +#include "include/sksl/SkSLOperator.h" +#include "src/sksl/SkSLContext.h" #include "src/sksl/SkSLStringStream.h" #include "src/sksl/codegen/SkSLCodeGenerator.h" +#include +#include +#include + namespace SkSL { +class AnyConstructor; class BinaryExpression; class Block; class ConstructorDiagonalMatrix; -class ConstructorScalarCast; class DoStatement; +class Expression; class ExpressionStatement; -class Extension; class FieldAccess; class ForStatement; class FunctionCall; @@ -30,19 +33,28 @@ class FunctionDeclaration; class FunctionDefinition; class FunctionPrototype; class IfStatement; -struct IndexExpression; class InterfaceBlock; class Literal; +class OutputStream; class PostfixExpression; class PrefixExpression; +class ProgramElement; class ReturnStatement; class Setting; +class Statement; class StructDefinition; class SwitchStatement; -struct Swizzle; class TernaryExpression; +class Type; class VarDeclaration; +class Variable; class VariableReference; +struct IndexExpression; +struct Layout; +struct Modifiers; +struct Program; +struct ShaderCaps; +struct Swizzle; /** * Converts a Program into GLSL code. @@ -50,8 +62,7 @@ class VariableReference; class GLSLCodeGenerator : public CodeGenerator { public: GLSLCodeGenerator(const Context* context, const Program* program, OutputStream* out) - : INHERITED(context, program, out) - , fLineEnding("\n") {} + : INHERITED(context, program, out) {} bool generateCode() override; @@ -78,8 +89,6 @@ class GLSLCodeGenerator : public CodeGenerator { void writeInterfaceBlock(const InterfaceBlock& intf); - void writeFunctionStart(const FunctionDeclaration& f); - void writeFunctionDeclaration(const FunctionDeclaration& f); void writeFunctionPrototype(const FunctionPrototype& f); @@ -170,7 +179,6 @@ class GLSLCodeGenerator : public CodeGenerator { const ShaderCaps& caps() const { return fContext.fCaps; } - const char* fLineEnding; StringStream fExtensions; StringStream fGlobals; StringStream fExtraFunctions; @@ -186,29 +194,6 @@ class GLSLCodeGenerator : public CodeGenerator { bool fSetupClockwise = false; bool fSetupFragPosition = false; bool fSetupFragCoordWorkaround = false; - // if non-empty, replace all texture / texture2D / textureProj / etc. calls with this name - std::string fTextureFunctionOverride; - - // We map function names to function class so we can quickly deal with function calls that need - // extra processing - enum class FunctionClass { - kAbs, - kAtan, - kDeterminant, - kDFdx, - kDFdy, - kFwidth, - kFMA, - kFract, - kInverse, - kInverseSqrt, - kMin, - kPow, - kSaturate, - kTexture, - kTranspose - }; - static std::unordered_map* fFunctionClasses; using INHERITED = CodeGenerator; }; diff --git a/third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.cpp b/third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.cpp index e02c07c1f8fd..ac52d9e93334 100644 --- a/third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.cpp +++ b/third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.cpp @@ -7,20 +7,33 @@ #include "src/sksl/codegen/SkSLMetalCodeGenerator.h" +#include "include/core/SkSpan.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLLayout.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLProgramKind.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkSLString.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLPosition.h" #include "src/core/SkScopeExit.h" +#include "src/sksl/SkSLAnalysis.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLContext.h" #include "src/sksl/SkSLMemoryLayout.h" +#include "src/sksl/SkSLOutputStream.h" +#include "src/sksl/SkSLProgramSettings.h" +#include "src/sksl/SkSLUtil.h" #include "src/sksl/ir/SkSLBinaryExpression.h" #include "src/sksl/ir/SkSLBlock.h" -#include "src/sksl/ir/SkSLConstructorArray.h" +#include "src/sksl/ir/SkSLConstructor.h" #include "src/sksl/ir/SkSLConstructorArrayCast.h" #include "src/sksl/ir/SkSLConstructorCompound.h" -#include "src/sksl/ir/SkSLConstructorCompoundCast.h" -#include "src/sksl/ir/SkSLConstructorDiagonalMatrix.h" #include "src/sksl/ir/SkSLConstructorMatrixResize.h" -#include "src/sksl/ir/SkSLConstructorSplat.h" -#include "src/sksl/ir/SkSLConstructorStruct.h" #include "src/sksl/ir/SkSLDoStatement.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLExpressionStatement.h" #include "src/sksl/ir/SkSLExtension.h" #include "src/sksl/ir/SkSLFieldAccess.h" @@ -32,25 +45,35 @@ #include "src/sksl/ir/SkSLIfStatement.h" #include "src/sksl/ir/SkSLIndexExpression.h" #include "src/sksl/ir/SkSLInterfaceBlock.h" +#include "src/sksl/ir/SkSLLiteral.h" #include "src/sksl/ir/SkSLModifiersDeclaration.h" #include "src/sksl/ir/SkSLNop.h" #include "src/sksl/ir/SkSLPostfixExpression.h" #include "src/sksl/ir/SkSLPrefixExpression.h" +#include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLReturnStatement.h" #include "src/sksl/ir/SkSLSetting.h" #include "src/sksl/ir/SkSLStructDefinition.h" +#include "src/sksl/ir/SkSLSwitchCase.h" #include "src/sksl/ir/SkSLSwitchStatement.h" #include "src/sksl/ir/SkSLSwizzle.h" +#include "src/sksl/ir/SkSLTernaryExpression.h" #include "src/sksl/ir/SkSLVarDeclarations.h" +#include "src/sksl/ir/SkSLVariable.h" #include "src/sksl/ir/SkSLVariableReference.h" +#include "src/sksl/spirv.h" #include +#include +#include +#include +#include namespace SkSL { static const char* operator_name(Operator op) { switch (op.kind()) { - case Token::Kind::TK_LOGICALXOR: return " != "; + case Operator::Kind::LOGICALXOR: return " != "; default: return op.operatorName(); } } @@ -119,7 +142,7 @@ void MetalCodeGenerator::writeStructDefinition(const StructDefinition& s) { const Type& type = s.type(); this->writeLine("struct " + type.displayName() + " {"); fIndentation++; - this->writeFields(type.fields(), type.fLine); + this->writeFields(type.fields(), type.fPosition); fIndentation--; this->writeLine("};"); } @@ -223,7 +246,7 @@ std::string MetalCodeGenerator::getOutParamHelper(const FunctionCall& call, // We need to detect cases where the caller passes the same variable as an out-param more than // once, and avoid reusing the variable name. (In those cases we can actually just ignore the // redundant input parameter entirely, and not give it any name.) - std::unordered_set writtenVars; + SkTHashSet writtenVars; for (int index = 0; index < arguments.count(); ++index) { this->write(separator); @@ -239,8 +262,10 @@ std::string MetalCodeGenerator::getOutParamHelper(const FunctionCall& call, this->write("&"); } if (outVars[index]) { - auto [iter, didInsert] = writtenVars.insert(outVars[index]->variable()); - if (didInsert) { + const Variable* var = outVars[index]->variable(); + if (!writtenVars.contains(var)) { + writtenVars.add(var); + this->write(" "); fIgnoreVariableReferenceModifiers = true; this->writeVariableReference(*outVars[index]); @@ -707,7 +732,11 @@ bool MetalCodeGenerator::writeIntrinsicCall(const FunctionCall& c, IntrinsicKind return true; } case k_dFdy_IntrinsicKind: { - this->write("(" + fRTFlipName + ".y * dfdy"); + if (!fRTFlipName.empty()) { + this->write("(" + fRTFlipName + ".y * dfdy"); + } else { + this->write("(dfdy"); + } this->writeArgumentList(c.arguments()); this->write(")"); return true; @@ -1071,34 +1100,33 @@ std::string MetalCodeGenerator::getMatrixConstructHelper(const AnyConstructor& c String::appendf(&name, "_%s", this->typeName(expr->type()).c_str()); } - // If a helper-method has already been synthesized, we don't need to synthesize it again. - auto [iter, newlyCreated] = fHelpers.insert(name); - if (!newlyCreated) { - return name; - } + // If a helper-method has not been synthesized yet, create it now. + if (!fHelpers.contains(name)) { + fHelpers.add(name); - // Unlike GLSL, Metal requires that matrices are initialized with exactly R vectors of C - // components apiece. (In Metal 2.0, you can also supply R*C scalars, but you still cannot - // supply a mixture of scalars and vectors.) - fExtraFunctions.printf("%s %s(", typeName.c_str(), name.c_str()); + // Unlike GLSL, Metal requires that matrices are initialized with exactly R vectors of C + // components apiece. (In Metal 2.0, you can also supply R*C scalars, but you still cannot + // supply a mixture of scalars and vectors.) + fExtraFunctions.printf("%s %s(", typeName.c_str(), name.c_str()); - size_t argIndex = 0; - const char* argSeparator = ""; - for (const std::unique_ptr& expr : args) { - fExtraFunctions.printf("%s%s x%zu", argSeparator, - this->typeName(expr->type()).c_str(), argIndex++); - argSeparator = ", "; - } + size_t argIndex = 0; + const char* argSeparator = ""; + for (const std::unique_ptr& expr : args) { + fExtraFunctions.printf("%s%s x%zu", argSeparator, + this->typeName(expr->type()).c_str(), argIndex++); + argSeparator = ", "; + } - fExtraFunctions.printf(") {\n return %s(", typeName.c_str()); + fExtraFunctions.printf(") {\n return %s(", typeName.c_str()); - if (args.size() == 1 && args.front()->type().isMatrix()) { - this->assembleMatrixFromMatrix(args.front()->type(), rows, columns); - } else { - this->assembleMatrixFromExpressions(c, columns, rows); - } + if (args.size() == 1 && args.front()->type().isMatrix()) { + this->assembleMatrixFromMatrix(args.front()->type(), rows, columns); + } else { + this->assembleMatrixFromExpressions(c, columns, rows); + } - fExtraFunctions.writeText(");\n}\n"); + fExtraFunctions.writeText(");\n}\n"); + } return name; } @@ -1163,7 +1191,7 @@ void MetalCodeGenerator::writeConstructorCompound(const ConstructorCompound& c, } else if (c.type().isMatrix()) { this->writeConstructorCompoundMatrix(c, parentPrecedence); } else { - fContext.fErrors->error(c.fLine, "unsupported compound constructor"); + fContext.fErrors->error(c.fPosition, "unsupported compound constructor"); } } @@ -1175,8 +1203,8 @@ void MetalCodeGenerator::writeConstructorArrayCast(const ConstructorArrayCast& c std::string outTypeName = this->typeName(outType); std::string name = "array_of_" + outTypeName + "_from_" + inTypeName; - auto [iter, didInsert] = fHelpers.insert(name); - if (didInsert) { + if (!fHelpers.contains(name)) { + fHelpers.add(name); fExtraFunctions.printf(R"( template array<%s, N> %s(thread const array<%s, N>& x) { @@ -1205,8 +1233,8 @@ std::string MetalCodeGenerator::getVectorFromMat2x2ConstructorHelper(const Type& std::string baseType = this->typeName(matrixType.componentType()); std::string name = String::printf("%s4_from_%s2x2", baseType.c_str(), baseType.c_str()); - if (fHelpers.find(name) == fHelpers.end()) { - fHelpers.insert(name); + if (!fHelpers.contains(name)) { + fHelpers.add(name); fExtraFunctions.printf(R"( %s4 %s(%s2x2 x) { @@ -1312,12 +1340,15 @@ void MetalCodeGenerator::writeCastConstructor(const AnyConstructor& c, } void MetalCodeGenerator::writeFragCoord() { - SkASSERT(fRTFlipName.length()); - this->write("float4(_fragCoord.x, "); - this->write(fRTFlipName.c_str()); - this->write(".x + "); - this->write(fRTFlipName.c_str()); - this->write(".y * _fragCoord.y, 0.0, _fragCoord.w)"); + if (!fRTFlipName.empty()) { + this->write("float4(_fragCoord.x, "); + this->write(fRTFlipName.c_str()); + this->write(".x + "); + this->write(fRTFlipName.c_str()); + this->write(".y * _fragCoord.y, 0.0, _fragCoord.w)"); + } else { + this->write("float4(_fragCoord.x, _fragCoord.y, 0.0, _fragCoord.w)"); + } } void MetalCodeGenerator::writeVariableReference(const VariableReference& ref) { @@ -1345,7 +1376,11 @@ void MetalCodeGenerator::writeVariableReference(const VariableReference& ref) { case SK_CLOCKWISE_BUILTIN: // We'd set the front facing winding in the MTLRenderCommandEncoder to be counter // clockwise to match Skia convention. - this->write("(" + fRTFlipName + ".y < 0 ? _frontFacing : !_frontFacing)"); + if (!fRTFlipName.empty()) { + this->write("(" + fRTFlipName + ".y < 0 ? _frontFacing : !_frontFacing)"); + } else { + this->write("_frontFacing"); + } break; default: const Variable& var = *ref.variable(); @@ -1417,8 +1452,8 @@ void MetalCodeGenerator::writeMatrixTimesEqualHelper(const Type& left, const Typ std::string key = "Matrix *= " + this->typeName(left) + ":" + this->typeName(right); - auto [iter, wasInserted] = fHelpers.insert(key); - if (wasInserted) { + if (!fHelpers.contains(key)) { + fHelpers.add(key); fExtraFunctions.printf("thread %s& operator*=(thread %s& left, thread const %s& right) {\n" " left = left * right;\n" " return left;\n" @@ -1436,8 +1471,8 @@ void MetalCodeGenerator::writeMatrixEqualityHelpers(const Type& left, const Type std::string key = "Matrix == " + this->typeName(left) + ":" + this->typeName(right); - auto [iter, wasInserted] = fHelpers.insert(key); - if (wasInserted) { + if (!fHelpers.contains(key)) { + fHelpers.add(key); fExtraFunctionPrototypes.printf(R"( thread bool operator==(const %s left, const %s right); thread bool operator!=(const %s left, const %s right); @@ -1473,8 +1508,8 @@ void MetalCodeGenerator::writeMatrixDivisionHelpers(const Type& type) { std::string key = "Matrix / " + this->typeName(type); - auto [iter, wasInserted] = fHelpers.insert(key); - if (wasInserted) { + if (!fHelpers.contains(key)) { + fHelpers.add(key); std::string typeName = this->typeName(type); fExtraFunctions.printf( @@ -1504,8 +1539,9 @@ void MetalCodeGenerator::writeArrayEqualityHelpers(const Type& type) { // If the array's component type needs a helper as well, we need to emit that one first. this->writeEqualityHelpers(type.componentType(), type.componentType()); - auto [iter, wasInserted] = fHelpers.insert("ArrayEquality []"); - if (wasInserted) { + std::string key = "ArrayEquality []"; + if (!fHelpers.contains(key)) { + fHelpers.add(key); fExtraFunctionPrototypes.writeText(R"( template bool operator==(thread const array& left, thread const array& right); @@ -1535,8 +1571,8 @@ void MetalCodeGenerator::writeStructEqualityHelpers(const Type& type) { SkASSERT(type.isStruct()); std::string key = "StructEquality " + this->typeName(type); - auto [iter, wasInserted] = fHelpers.insert(key); - if (wasInserted) { + if (!fHelpers.contains(key)) { + fHelpers.add(key); // If one of the struct's fields needs a helper as well, we need to emit that one first. for (const Type::Field& field : type.fields()) { this->writeEqualityHelpers(*field.fType, *field.fType); @@ -1624,14 +1660,14 @@ void MetalCodeGenerator::writeBinaryExpression(const BinaryExpression& b, Precedence precedence = op.getBinaryPrecedence(); bool needParens = precedence >= parentPrecedence; switch (op.kind()) { - case Token::Kind::TK_EQEQ: + case Operator::Kind::EQEQ: this->writeEqualityHelpers(leftType, rightType); if (leftType.isVector()) { this->write("all"); needParens = true; } break; - case Token::Kind::TK_NEQ: + case Operator::Kind::NEQ: this->writeEqualityHelpers(leftType, rightType); if (leftType.isVector()) { this->write("any"); @@ -1641,10 +1677,10 @@ void MetalCodeGenerator::writeBinaryExpression(const BinaryExpression& b, default: break; } - if (leftType.isMatrix() && rightType.isMatrix() && op.kind() == Token::Kind::TK_STAREQ) { + if (leftType.isMatrix() && rightType.isMatrix() && op.kind() == Operator::Kind::STAREQ) { this->writeMatrixTimesEqualHelper(leftType, rightType, b.type()); } - if (op.removeAssignment().kind() == Token::Kind::TK_SLASH && + if (op.removeAssignment().kind() == Operator::Kind::SLASH && ((leftType.isMatrix() && rightType.isMatrix()) || (leftType.isScalar() && rightType.isMatrix()) || (leftType.isMatrix() && rightType.isScalar()))) { @@ -1655,13 +1691,13 @@ void MetalCodeGenerator::writeBinaryExpression(const BinaryExpression& b, } bool needMatrixSplatOnScalar = rightType.isMatrix() && leftType.isNumber() && op.isValidForMatrixOrVector() && - op.removeAssignment().kind() != Token::Kind::TK_STAR; + op.removeAssignment().kind() != Operator::Kind::STAR; if (needMatrixSplatOnScalar) { this->writeNumberAsMatrix(left, rightType); } else { this->writeExpression(left, precedence); } - if (op.kind() != Token::Kind::TK_EQ && op.isAssignment() && + if (op.kind() != Operator::Kind::EQ && op.isAssignment() && left.kind() == Expression::Kind::kSwizzle && !left.hasSideEffects()) { // This doesn't compile in Metal: // float4 x = float4(1); @@ -1678,7 +1714,7 @@ void MetalCodeGenerator::writeBinaryExpression(const BinaryExpression& b, needMatrixSplatOnScalar = leftType.isMatrix() && rightType.isNumber() && op.isValidForMatrixOrVector() && - op.removeAssignment().kind() != Token::Kind::TK_STAR; + op.removeAssignment().kind() != Operator::Kind::STAR; if (needMatrixSplatOnScalar) { this->writeNumberAsMatrix(right, leftType); } else { @@ -1706,12 +1742,30 @@ void MetalCodeGenerator::writeTernaryExpression(const TernaryExpression& t, void MetalCodeGenerator::writePrefixExpression(const PrefixExpression& p, Precedence parentPrecedence) { - if (Precedence::kPrefix >= parentPrecedence) { + // According to the MSL specification, the arithmetic unary operators (+ and –) do not act + // upon matrix type operands. We treat the unary "+" as NOP for all operands. + const Operator op = p.getOperator(); + if (op.kind() == Operator::Kind::PLUS) { + return this->writeExpression(*p.operand(), Precedence::kPrefix); + } + + const bool matrixNegation = + op.kind() == Operator::Kind::MINUS && p.operand()->type().isMatrix(); + const bool needParens = Precedence::kPrefix >= parentPrecedence || matrixNegation; + + if (needParens) { this->write("("); } - this->write(p.getOperator().tightOperatorName()); + + // Transform the unary "-" on a matrix type to a multiplication by -1. + if (matrixNegation) { + this->write("-1.0 * "); + } else { + this->write(p.getOperator().tightOperatorName()); + } this->writeExpression(*p.operand(), Precedence::kPrefix); - if (Precedence::kPrefix >= parentPrecedence) { + + if (needParens) { this->write(")"); } } @@ -1841,7 +1895,7 @@ bool MetalCodeGenerator::writeFunctionDeclaration(const FunctionDeclaration& f) this->write("vertex Outputs vertexMain"); break; default: - fContext.fErrors->error(-1, "unsupported kind of program"); + fContext.fErrors->error(Position(), "unsupported kind of program"); return false; } this->write("(Inputs _in [[stage_in]]"); @@ -1856,7 +1910,7 @@ bool MetalCodeGenerator::writeFunctionDeclaration(const FunctionDeclaration& f) if (var.var().type().typeKind() == Type::TypeKind::kSampler) { if (var.var().type().dimensions() != SpvDim2D) { // Not yet implemented--Skia currently only uses 2D textures. - fContext.fErrors->error(decls.fLine, "Unsupported texture dimensions"); + fContext.fErrors->error(decls.fPosition, "Unsupported texture dimensions"); return false; } int binding = getUniformBinding(var.var().modifiers()); @@ -2013,7 +2067,7 @@ void MetalCodeGenerator::writeInterfaceBlock(const InterfaceBlock& intf) { structType = &structType->componentType(); } fIndentation++; - this->writeFields(structType->fields(), structType->fLine, &intf); + this->writeFields(structType->fields(), structType->fPosition, &intf); if (fProgram.fInputs.fUseFlipRTUniform) { this->writeLine("float2 " SKSL_RTFLIP_NAME ";"); } @@ -2027,29 +2081,29 @@ void MetalCodeGenerator::writeInterfaceBlock(const InterfaceBlock& intf) { this->write(std::to_string(intf.arraySize())); this->write("]"); } - fInterfaceBlockNameMap[&intf] = intf.instanceName(); + fInterfaceBlockNameMap.set(&intf, intf.instanceName()); } else { - fInterfaceBlockNameMap[&intf] = *fProgram.fSymbols->takeOwnershipOfString( - "_anonInterface" + std::to_string(fAnonInterfaceCount++)); + fInterfaceBlockNameMap.set(&intf, *fProgram.fSymbols->takeOwnershipOfString( + "_anonInterface" + std::to_string(fAnonInterfaceCount++))); } this->writeLine(";"); } -void MetalCodeGenerator::writeFields(const std::vector& fields, int parentLine, - const InterfaceBlock* parentIntf) { +void MetalCodeGenerator::writeFields(const std::vector& fields, Position parentPos, + const InterfaceBlock* parentIntf) { MemoryLayout memoryLayout(MemoryLayout::kMetal_Standard); int currentOffset = 0; for (const Type::Field& field : fields) { int fieldOffset = field.fModifiers.fLayout.fOffset; const Type* fieldType = field.fType; if (!MemoryLayout::LayoutIsSupported(*fieldType)) { - fContext.fErrors->error(parentLine, "type '" + std::string(fieldType->name()) + + fContext.fErrors->error(parentPos, "type '" + std::string(fieldType->name()) + "' is not permitted here"); return; } if (fieldOffset != -1) { if (currentOffset > fieldOffset) { - fContext.fErrors->error(parentLine, + fContext.fErrors->error(field.fPosition, "offset of field '" + std::string(field.fName) + "' must be at least " + std::to_string(currentOffset)); return; @@ -2063,7 +2117,7 @@ void MetalCodeGenerator::writeFields(const std::vector& fields, int } int alignment = memoryLayout.alignment(*fieldType); if (fieldOffset % alignment) { - fContext.fErrors->error(parentLine, + fContext.fErrors->error(field.fPosition, "offset of field '" + std::string(field.fName) + "' must be a multiple of " + std::to_string(alignment)); return; @@ -2071,7 +2125,7 @@ void MetalCodeGenerator::writeFields(const std::vector& fields, int } size_t fieldSize = memoryLayout.size(*fieldType); if (fieldSize > static_cast(std::numeric_limits::max() - currentOffset)) { - fContext.fErrors->error(parentLine, "field offset overflow"); + fContext.fErrors->error(parentPos, "field offset overflow"); return; } currentOffset += fieldSize; @@ -2081,7 +2135,7 @@ void MetalCodeGenerator::writeFields(const std::vector& fields, int this->writeName(field.fName); this->writeLine(";"); if (parentIntf) { - fInterfaceBlockMap[&field] = parentIntf; + fInterfaceBlockMap.set(&field, parentIntf); } } } @@ -2091,7 +2145,7 @@ void MetalCodeGenerator::writeVarInitializer(const Variable& var, const Expressi } void MetalCodeGenerator::writeName(std::string_view name) { - if (fReservedWords.find(name) != fReservedWords.end()) { + if (fReservedWords.contains(name)) { this->write("_"); // adding underscore before name to avoid conflict with reserved words } this->write(name); @@ -2272,7 +2326,7 @@ void MetalCodeGenerator::writeReturnStatement(const ReturnStatement& r) { this->writeExpression(*r.expression(), Precedence::kTopLevel); this->writeLine(";"); } else { - fContext.fErrors->error(r.fLine, + fContext.fErrors->error(r.fPosition, "Metal does not support returning '" + r.expression()->type().description() + "' from main()"); } @@ -2308,7 +2362,7 @@ void MetalCodeGenerator::writeUniformStruct() { this->write("struct Uniforms {\n"); fUniformBuffer = uniformSet; } else if (uniformSet != fUniformBuffer) { - fContext.fErrors->error(decls.fLine, + fContext.fErrors->error(decls.fPosition, "Metal backend requires all uniforms to have the same " "'layout(set=...)'"); } @@ -2373,7 +2427,7 @@ void MetalCodeGenerator::writeOutputStruct() { int location = var.modifiers().fLayout.fLocation; if (location < 0) { - fContext.fErrors->error(var.fLine, + fContext.fErrors->error(var.fPosition, "Metal out variables must have 'layout(location=...)'"); } else if (fProgram.fConfig->fKind == ProgramKind::kVertex) { this->write(" [[user(locn" + std::to_string(location) + ")]]"); @@ -2712,18 +2766,15 @@ MetalCodeGenerator::Requirements MetalCodeGenerator::requirements(const Statemen } MetalCodeGenerator::Requirements MetalCodeGenerator::requirements(const FunctionDeclaration& f) { - if (f.isBuiltin()) { - return kNo_Requirements; - } - auto found = fRequirements.find(&f); - if (found == fRequirements.end()) { - fRequirements[&f] = kNo_Requirements; + Requirements* found = fRequirements.find(&f); + if (!found) { + fRequirements.set(&f, kNo_Requirements); for (const ProgramElement* e : fProgram.elements()) { if (e->is()) { const FunctionDefinition& def = e->as(); if (&def.declaration() == &f) { Requirements reqs = this->requirements(def.body().get()); - fRequirements[&f] = reqs; + fRequirements.set(&f, reqs); return reqs; } } @@ -2732,7 +2783,7 @@ MetalCodeGenerator::Requirements MetalCodeGenerator::requirements(const Function // function without ever giving a definition, as long as you don't call it. return kNo_Requirements; } - return found->second; + return *found; } bool MetalCodeGenerator::generateCode() { @@ -2758,7 +2809,7 @@ bool MetalCodeGenerator::generateCode() { write_stringstream(fExtraFunctionPrototypes, *fOut); write_stringstream(fExtraFunctions, *fOut); write_stringstream(body, *fOut); - fContext.fErrors->reportPendingErrors(PositionInfo()); + fContext.fErrors->reportPendingErrors(Position()); return fContext.fErrors->errorCount() == 0; } diff --git a/third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.h b/third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.h index 09652a831b22..01da5f58ebb1 100644 --- a/third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.h +++ b/third_party/skia/src/sksl/codegen/SkSLMetalCodeGenerator.h @@ -8,21 +8,32 @@ #ifndef SKSL_METALCODEGENERATOR #define SKSL_METALCODEGENERATOR -#include -#include - -#include "src/sksl/SkSLOperators.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkTArray.h" +#include "include/private/SkTHash.h" +#include "include/sksl/SkSLOperator.h" #include "src/sksl/SkSLStringStream.h" #include "src/sksl/codegen/SkSLCodeGenerator.h" +#include "src/sksl/ir/SkSLType.h" + +#include +#include +#include +#include +#include +#include namespace SkSL { +class AnyConstructor; class BinaryExpression; class Block; class ConstructorArrayCast; class ConstructorCompound; class ConstructorMatrixResize; +class Context; class DoStatement; +class Expression; class ExpressionStatement; class Extension; class FieldAccess; @@ -32,20 +43,28 @@ class FunctionDeclaration; class FunctionDefinition; class FunctionPrototype; class IfStatement; -struct IndexExpression; class InterfaceBlock; -enum IntrinsicKind : int8_t; class Literal; +class OutputStream; +class Position; class PostfixExpression; class PrefixExpression; +class ProgramElement; class ReturnStatement; class Setting; +class Statement; class StructDefinition; class SwitchStatement; -struct Swizzle; class TernaryExpression; class VarDeclaration; +class Variable; class VariableReference; +enum IntrinsicKind : int8_t; +struct IndexExpression; +struct Layout; +struct Modifiers; +struct Program; +struct Swizzle; /** * Converts a Program into Metal code. @@ -94,7 +113,7 @@ class MetalCodeGenerator : public CodeGenerator { void writeStructDefinitions(); - void writeFields(const std::vector& fields, int parentLine, + void writeFields(const std::vector& fields, Position pos, const InterfaceBlock* parentIntf = nullptr); int size(const Type* type, bool isPacked) const; @@ -117,8 +136,6 @@ class MetalCodeGenerator : public CodeGenerator { void writeInterfaceBlock(const InterfaceBlock& intf); - void writeFunctionStart(const FunctionDeclaration& f); - void writeFunctionRequirementParams(const FunctionDeclaration& f, const char*& separator); @@ -263,9 +280,9 @@ class MetalCodeGenerator : public CodeGenerator { int getUniformSet(const Modifiers& m); - std::unordered_set fReservedWords; - std::unordered_map fInterfaceBlockMap; - std::unordered_map fInterfaceBlockNameMap; + SkTHashSet fReservedWords; + SkTHashMap fInterfaceBlockMap; + SkTHashMap fInterfaceBlockNameMap; int fAnonInterfaceCount = 0; int fPaddingCount = 0; const char* fLineEnding; @@ -278,10 +295,8 @@ class MetalCodeGenerator : public CodeGenerator { std::set fWrittenIntrinsics; // true if we have run into usages of dFdx / dFdy bool fFoundDerivatives = false; - std::unordered_map fRequirements; - bool fSetupFragPositionGlobal = false; - bool fSetupFragPositionLocal = false; - std::unordered_set fHelpers; + SkTHashMap fRequirements; + SkTHashSet fHelpers; int fUniformBuffer = -1; std::string fRTFlipName; const FunctionDeclaration* fCurrentFunction = nullptr; diff --git a/third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp b/third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp index e6df08a9303e..36e07b590a07 100644 --- a/third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp +++ b/third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp @@ -7,38 +7,54 @@ #include "src/sksl/codegen/SkSLPipelineStageCodeGenerator.h" +#if defined(SKSL_STANDALONE) || SK_SUPPORT_GPU || SK_GRAPHITE_ENABLED + +#include "include/core/SkSpan.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLLayout.h" +#include "include/private/SkSLModifiers.h" #include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLProgramKind.h" #include "include/private/SkSLStatement.h" +#include "include/private/SkSLString.h" +#include "include/private/SkTArray.h" +#include "include/private/SkTHash.h" +#include "include/sksl/SkSLOperator.h" #include "src/sksl/SkSLCompiler.h" -#include "src/sksl/SkSLOperators.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/SkSLStringStream.h" #include "src/sksl/ir/SkSLBinaryExpression.h" +#include "src/sksl/ir/SkSLBlock.h" #include "src/sksl/ir/SkSLChildCall.h" #include "src/sksl/ir/SkSLConstructor.h" -#include "src/sksl/ir/SkSLConstructorArrayCast.h" #include "src/sksl/ir/SkSLDoStatement.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLExpressionStatement.h" #include "src/sksl/ir/SkSLFieldAccess.h" #include "src/sksl/ir/SkSLForStatement.h" #include "src/sksl/ir/SkSLFunctionCall.h" #include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" -#include "src/sksl/ir/SkSLFunctionPrototype.h" #include "src/sksl/ir/SkSLIfStatement.h" #include "src/sksl/ir/SkSLIndexExpression.h" #include "src/sksl/ir/SkSLPostfixExpression.h" #include "src/sksl/ir/SkSLPrefixExpression.h" +#include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLReturnStatement.h" #include "src/sksl/ir/SkSLStructDefinition.h" +#include "src/sksl/ir/SkSLSwitchCase.h" #include "src/sksl/ir/SkSLSwitchStatement.h" #include "src/sksl/ir/SkSLSwizzle.h" #include "src/sksl/ir/SkSLTernaryExpression.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" - -#include - -#if defined(SKSL_STANDALONE) || SK_SUPPORT_GPU +#include +#include +#include +#include namespace SkSL { namespace PipelineStage { @@ -126,9 +142,9 @@ class PipelineStageCodeGenerator { const char* fDestColor; Callbacks* fCallbacks; - std::unordered_map fVariableNames; - std::unordered_map fFunctionNames; - std::unordered_map fStructNames; + SkTHashMap fVariableNames; + SkTHashMap fFunctionNames; + SkTHashMap fStructNames; StringStream* fBuffer = nullptr; bool fCastReturnsToHalf = false; @@ -268,12 +284,8 @@ void PipelineStageCodeGenerator::writeVariableReference(const VariableReference& return; } - auto it = fVariableNames.find(var); - if (it != fVariableNames.end()) { - this->write(it->second); - } else { - this->write(var->name()); - } + std::string* name = fVariableNames.find(var); + this->write(name ? *name : var->name()); } void PipelineStageCodeGenerator::writeIfStatement(const IfStatement& stmt) { @@ -332,13 +344,13 @@ std::string PipelineStageCodeGenerator::functionName(const FunctionDeclaration& return std::string(fCallbacks->getMainName()); } - auto it = fFunctionNames.find(&decl); - if (it != fFunctionNames.end()) { - return it->second; + std::string* name = fFunctionNames.find(&decl); + if (name) { + return *name; } std::string mangledName = fCallbacks->getMangledName(std::string(decl.name()).c_str()); - fFunctionNames.insert({&decl, mangledName}); + fFunctionNames.set(&decl, mangledName); return mangledName; } @@ -405,7 +417,7 @@ void PipelineStageCodeGenerator::writeGlobalVarDeclaration(const GlobalVarDeclar // Don't re-declare these. (eg, sk_FragCoord, or fragmentProcessor children) } else if (var.modifiers().fFlags & Modifiers::kUniform_Flag) { std::string uniformName = fCallbacks->declareUniform(&decl); - fVariableNames.insert({&var, std::move(uniformName)}); + fVariableNames.set(&var, std::move(uniformName)); } else { std::string mangledName = fCallbacks->getMangledName(std::string(var.name()).c_str()); std::string declaration = this->modifierString(var.modifiers()) + @@ -419,7 +431,7 @@ void PipelineStageCodeGenerator::writeGlobalVarDeclaration(const GlobalVarDeclar } declaration += ";\n"; fCallbacks->declareGlobal(declaration.c_str()); - fVariableNames.insert({&var, std::move(mangledName)}); + fVariableNames.set(&var, std::move(mangledName)); } } @@ -431,7 +443,7 @@ void PipelineStageCodeGenerator::writeStructDefinition(const StructDefinition& s definition += this->typedVariable(*f.fType, f.fName) + ";\n"; } definition += "};\n"; - fStructNames.insert({&type, std::move(mangledName)}); + fStructNames.set(&type, std::move(mangledName)); fCallbacks->defineStruct(definition.c_str()); } @@ -477,8 +489,8 @@ std::string PipelineStageCodeGenerator::typeName(const Type& raw) { return arrayName; } - auto it = fStructNames.find(&type); - return it != fStructNames.end() ? it->second : std::string(type.name()); + std::string* name = fStructNames.find(&type); + return name ? *name : std::string(type.name()); } void PipelineStageCodeGenerator::writeType(const Type& type) { diff --git a/third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.h b/third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.h index e4398edd1e42..256b00d67c9e 100644 --- a/third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.h +++ b/third_party/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator.h @@ -8,9 +8,11 @@ #ifndef SKSL_PIPELINESTAGECODEGENERATOR #define SKSL_PIPELINESTAGECODEGENERATOR -#include "include/private/SkSLString.h" +#include "include/core/SkTypes.h" // IWYU pragma: keep -#if defined(SKSL_STANDALONE) || SK_SUPPORT_GPU +#if defined(SKSL_STANDALONE) || SK_SUPPORT_GPU || SK_GRAPHITE_ENABLED + +#include namespace SkSL { diff --git a/third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp b/third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp index 52a6d1ab49bd..35d6c18b6b1e 100644 --- a/third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp +++ b/third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp @@ -7,14 +7,33 @@ #include "src/sksl/codegen/SkSLSPIRVCodeGenerator.h" -#include "src/sksl/GLSL.std.450.h" - +#include "include/core/SkSpan.h" +#include "include/core/SkTypes.h" +#include "include/private/SkOpts_spi.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkSLSymbol.h" +#include "include/private/SkTArray.h" #include "include/sksl/DSLCore.h" +#include "include/sksl/DSLExpression.h" +#include "include/sksl/DSLType.h" +#include "include/sksl/DSLVar.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLOperator.h" +#include "include/sksl/SkSLPosition.h" +#include "src/sksl/GLSL.std.450.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLCompiler.h" -#include "src/sksl/SkSLOperators.h" +#include "src/sksl/SkSLContext.h" +#include "src/sksl/SkSLModifiersPool.h" +#include "src/sksl/SkSLOutputStream.h" +#include "src/sksl/SkSLPool.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/SkSLThreadContext.h" +#include "src/sksl/SkSLUtil.h" #include "src/sksl/ir/SkSLBinaryExpression.h" #include "src/sksl/ir/SkSLBlock.h" +#include "src/sksl/ir/SkSLConstructor.h" #include "src/sksl/ir/SkSLConstructorArrayCast.h" #include "src/sksl/ir/SkSLConstructorCompound.h" #include "src/sksl/ir/SkSLConstructorCompoundCast.h" @@ -23,6 +42,7 @@ #include "src/sksl/ir/SkSLConstructorScalarCast.h" #include "src/sksl/ir/SkSLConstructorSplat.h" #include "src/sksl/ir/SkSLDoStatement.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLExpressionStatement.h" #include "src/sksl/ir/SkSLExtension.h" #include "src/sksl/ir/SkSLField.h" @@ -34,18 +54,22 @@ #include "src/sksl/ir/SkSLIfStatement.h" #include "src/sksl/ir/SkSLIndexExpression.h" #include "src/sksl/ir/SkSLInterfaceBlock.h" +#include "src/sksl/ir/SkSLLiteral.h" #include "src/sksl/ir/SkSLPostfixExpression.h" #include "src/sksl/ir/SkSLPrefixExpression.h" +#include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLReturnStatement.h" +#include "src/sksl/ir/SkSLSwitchCase.h" #include "src/sksl/ir/SkSLSwitchStatement.h" #include "src/sksl/ir/SkSLSwizzle.h" #include "src/sksl/ir/SkSLTernaryExpression.h" #include "src/sksl/ir/SkSLVarDeclarations.h" #include "src/sksl/ir/SkSLVariableReference.h" -#ifdef SK_VULKAN -#include "src/gpu/vk/GrVkCaps.h" -#endif +#include +#include +#include +#include #define kLast_Capability SpvCapabilityMultiViewport @@ -54,6 +78,64 @@ constexpr int DEVICE_CLOCKWISE_BUILTIN = -1001; namespace SkSL { +// Equality and hash operators for Instructions. +bool SPIRVCodeGenerator::Instruction::operator==(const SPIRVCodeGenerator::Instruction& that) const { + return fOp == that.fOp && + fResultKind == that.fResultKind && + fWords == that.fWords; +} + +struct SPIRVCodeGenerator::Instruction::Hash { + uint32_t operator()(const SPIRVCodeGenerator::Instruction& key) const { + uint32_t hash = key.fResultKind; + hash = SkOpts::hash_fn(&key.fOp, sizeof(key.fOp), hash); + hash = SkOpts::hash_fn(key.fWords.data(), key.fWords.size() * sizeof(int32_t), hash); + return hash; + } +}; + +// This class is used to pass values and result placeholder slots to writeInstruction. +struct SPIRVCodeGenerator::Word { + enum Kind { + kNone, // intended for use as a sentinel, not part of any Instruction + kSpvId, + kNumber, + kDefaultPrecisionResult, + kRelaxedPrecisionResult, + kUncachedResult, + }; + + Word(SpvId id) : fValue(id), fKind(Kind::kSpvId) {} + Word(int32_t val, Kind kind) : fValue(val), fKind(kind) {} + + static Word Number(int32_t val) { + return Word{val, Kind::kNumber}; + } + + static Word Result(const Type& type) { + return (type.hasPrecision() && !type.highPrecision()) ? RelaxedResult() : Result(); + } + + static Word RelaxedResult() { + Kind kind = ThreadContext::Settings().fForceHighPrecision ? kDefaultPrecisionResult + : kRelaxedPrecisionResult; + return Word{(int32_t)NA, kind}; + } + + static Word UncachedResult() { + return Word{(int32_t)NA, kUncachedResult}; + } + + static Word Result() { + return Word{(int32_t)NA, kDefaultPrecisionResult}; + } + + bool isResult() const { return fKind >= Kind::kDefaultPrecisionResult; } + + int32_t fValue; + Kind fKind; +}; + // Skia's magic number is 31 and goes in the top 16 bits. We can use the lower bits to version the // sksl generator if we want. // https://github.com/KhronosGroup/SPIRV-Headers/blob/master/include/spirv/spir-v.xml#L84 @@ -166,7 +248,7 @@ void SPIRVCodeGenerator::setupIntrinsics() { SpvOpFOrdEqual, SpvOpIEqual, SpvOpIEqual, SpvOpLogicalEqual}; fIntrinsicMap[k_notEqual_IntrinsicKind] = Intrinsic{kSPIRV_IntrinsicOpcodeKind, - SpvOpFOrdNotEqual, SpvOpINotEqual, + SpvOpFUnordNotEqual, SpvOpINotEqual, SpvOpINotEqual, SpvOpLogicalNotEqual}; fIntrinsicMap[k_lessThan_IntrinsicKind] = Intrinsic{kSPIRV_IntrinsicOpcodeKind, @@ -231,66 +313,79 @@ static bool is_in(const Modifiers& m) { } } -void SPIRVCodeGenerator::writeOpCode(SpvOp_ opCode, int length, OutputStream& out) { - SkASSERT(opCode != SpvOpLoad || &out != &fConstantBuffer); - SkASSERT(opCode != SpvOpUndef); - switch (opCode) { - case SpvOpReturn: // fall through - case SpvOpReturnValue: // fall through - case SpvOpKill: // fall through - case SpvOpSwitch: // fall through - case SpvOpBranch: // fall through +static bool is_control_flow_op(SpvOp_ op) { + switch (op) { + case SpvOpReturn: + case SpvOpReturnValue: + case SpvOpKill: + case SpvOpSwitch: + case SpvOpBranch: case SpvOpBranchConditional: - if (fCurrentBlock == 0) { - // We just encountered dead code--instructions that don't have an associated block. - // Synthesize a label if this happens; this is necessary to satisfy the validator. - this->writeLabel(this->nextId(nullptr), out); - } - fCurrentBlock = 0; - break; - case SpvOpConstant: // fall through - case SpvOpConstantTrue: // fall through - case SpvOpConstantFalse: // fall through - case SpvOpConstantComposite: // fall through - case SpvOpTypeVoid: // fall through - case SpvOpTypeInt: // fall through - case SpvOpTypeFloat: // fall through - case SpvOpTypeBool: // fall through - case SpvOpTypeVector: // fall through - case SpvOpTypeMatrix: // fall through - case SpvOpTypeArray: // fall through - case SpvOpTypePointer: // fall through - case SpvOpTypeFunction: // fall through - case SpvOpTypeRuntimeArray: // fall through - case SpvOpTypeStruct: // fall through - case SpvOpTypeImage: // fall through - case SpvOpTypeSampledImage: // fall through - case SpvOpTypeSampler: // fall through - case SpvOpVariable: // fall through - case SpvOpFunction: // fall through - case SpvOpFunctionParameter: // fall through - case SpvOpFunctionEnd: // fall through - case SpvOpExecutionMode: // fall through - case SpvOpMemoryModel: // fall through - case SpvOpCapability: // fall through - case SpvOpExtInstImport: // fall through - case SpvOpEntryPoint: // fall through - case SpvOpSource: // fall through - case SpvOpSourceExtension: // fall through - case SpvOpName: // fall through - case SpvOpMemberName: // fall through - case SpvOpDecorate: // fall through + return true; + default: + return false; + } +} + +static bool is_globally_reachable_op(SpvOp_ op) { + switch (op) { + case SpvOpConstant: + case SpvOpConstantTrue: + case SpvOpConstantFalse: + case SpvOpConstantComposite: + case SpvOpTypeVoid: + case SpvOpTypeInt: + case SpvOpTypeFloat: + case SpvOpTypeBool: + case SpvOpTypeVector: + case SpvOpTypeMatrix: + case SpvOpTypeArray: + case SpvOpTypePointer: + case SpvOpTypeFunction: + case SpvOpTypeRuntimeArray: + case SpvOpTypeStruct: + case SpvOpTypeImage: + case SpvOpTypeSampledImage: + case SpvOpTypeSampler: + case SpvOpVariable: + case SpvOpFunction: + case SpvOpFunctionParameter: + case SpvOpFunctionEnd: + case SpvOpExecutionMode: + case SpvOpMemoryModel: + case SpvOpCapability: + case SpvOpExtInstImport: + case SpvOpEntryPoint: + case SpvOpSource: + case SpvOpSourceExtension: + case SpvOpName: + case SpvOpMemberName: + case SpvOpDecorate: case SpvOpMemberDecorate: - break; + return true; default: - // We may find ourselves with dead code--instructions that don't have an associated - // block. This should be a rare event, but if it happens, synthesize a label; this is - // necessary to satisfy the validator. - if (fCurrentBlock == 0) { - this->writeLabel(this->nextId(nullptr), out); - } - break; + return false; + } +} + +void SPIRVCodeGenerator::writeOpCode(SpvOp_ opCode, int length, OutputStream& out) { + SkASSERT(opCode != SpvOpLoad || &out != &fConstantBuffer); + SkASSERT(opCode != SpvOpUndef); + bool foundDeadCode = false; + if (is_control_flow_op(opCode)) { + // This instruction causes us to leave the current block. + foundDeadCode = (fCurrentBlock == 0); + fCurrentBlock = 0; + } else if (!is_globally_reachable_op(opCode)) { + foundDeadCode = (fCurrentBlock == 0); + } + + if (foundDeadCode) { + // We just encountered dead code--an instruction that don't have an associated block. + // Synthesize a label if this happens; this is necessary to satisfy the validator. + this->writeLabel(this->nextId(nullptr), out); } + this->writeWord((length << 16) | opCode, out); } @@ -424,6 +519,242 @@ void SPIRVCodeGenerator::writeInstruction(SpvOp_ opCode, int32_t word1, int32_t this->writeWord(word8, out); } +SPIRVCodeGenerator::Instruction SPIRVCodeGenerator::BuildInstructionKey( + SpvOp_ opCode, const SkTArray& words) { + // Assemble a cache key for this instruction. + Instruction key; + key.fOp = opCode; + key.fWords.resize(words.count()); + key.fResultKind = Word::Kind::kNone; + + for (int index = 0; index < words.count(); ++index) { + const Word& word = words[index]; + key.fWords[index] = word.fValue; + if (word.isResult()) { + SkASSERT(key.fResultKind == Word::Kind::kNone); + key.fResultKind = word.fKind; + } + } + + return key; +} + +SpvId SPIRVCodeGenerator::writeInstruction(SpvOp_ opCode, + const SkTArray& words, + OutputStream& out) { + // If this instruction exists in our op cache, return the cached SpvId. + Instruction key = BuildInstructionKey(opCode, words); + if (SpvId* cachedOp = fOpCache.find(key)) { + return *cachedOp; + } + + SpvId result = NA; + + switch (key.fResultKind) { + case Word::Kind::kUncachedResult: + // The instruction returns a SpvId, but we do not want caching or deduplication. + result = fIdCount++; + break; + + case Word::Kind::kNone: + // The instruction doesn't return a SpvId, but we can still cache and deduplicate it. + fOpCache.set(key, result); + break; + + case Word::Kind::kDefaultPrecisionResult: + case Word::Kind::kRelaxedPrecisionResult: + // Consume a new SpvId and cache the instruction. + result = fIdCount++; + fOpCache.set(key, result); + fSpvIdCache.set(result, key); + + // Globally-reachable ops are not subject to the whims of flow control. + if (!is_globally_reachable_op(opCode)) { + fReachableOps.push_back(result); + } + // If the result is relaxed-precision, add the requisite decoration. + if (key.fResultKind == Word::Kind::kRelaxedPrecisionResult) { + this->writeInstruction(SpvOpDecorate, result, SpvDecorationRelaxedPrecision, + fDecorationBuffer); + } + break; + + default: + SkDEBUGFAIL("unexpected result kind"); + break; + } + + // Write the requested instruction. + this->writeOpCode(opCode, words.size() + 1, out); + for (const Word& word : words) { + if (word.isResult()) { + SkASSERT(result != NA); + this->writeWord(result, out); + } else { + this->writeWord(word.fValue, out); + } + } + + // Return the result. + return result; +} + +SpvId SPIRVCodeGenerator::writeOpConstantTrue(const Type& type) { + return this->writeInstruction(SpvOpConstantTrue, + Words{this->getType(type), Word::Result()}, + fConstantBuffer); +} + +SpvId SPIRVCodeGenerator::writeOpConstantFalse(const Type& type) { + return this->writeInstruction(SpvOpConstantFalse, + Words{this->getType(type), Word::Result()}, + fConstantBuffer); +} + +SpvId SPIRVCodeGenerator::writeOpConstant(const Type& type, int32_t valueBits) { + return this->writeInstruction( + SpvOpConstant, + Words{this->getType(type), Word::Result(), Word::Number(valueBits)}, + fConstantBuffer); +} + +SpvId SPIRVCodeGenerator::writeOpConstantComposite(const Type& type, + const SkTArray& values) { + SkASSERT(values.size() == (type.isStruct() ? type.fields().size() : (size_t)type.columns())); + + Words words; + words.push_back(this->getType(type)); + words.push_back(Word::Result()); + for (SpvId value : values) { + words.push_back(value); + } + return this->writeInstruction(SpvOpConstantComposite, words, fConstantBuffer); +} + +bool SPIRVCodeGenerator::toConstants(SpvId value, SkTArray* constants) { + Instruction* instr = fSpvIdCache.find(value); + if (!instr) { + return false; + } + switch (instr->fOp) { + case SpvOpConstant: + case SpvOpConstantTrue: + case SpvOpConstantFalse: + constants->push_back(value); + return true; + + case SpvOpConstantComposite: // OpConstantComposite ResultType ResultID Constituents... + // Start at word 2 to skip past ResultType and ResultID. + for (int i = 2; i < instr->fWords.count(); ++i) { + if (!this->toConstants(instr->fWords[i], constants)) { + return false; + } + } + return true; + + default: + return false; + } +} + +bool SPIRVCodeGenerator::toConstants(SkSpan values, SkTArray* constants) { + for (SpvId value : values) { + if (!this->toConstants(value, constants)) { + return false; + } + } + return true; +} + +SpvId SPIRVCodeGenerator::writeOpCompositeConstruct(const Type& type, + const SkTArray& values, + OutputStream& out) { + // If this is a vector composed entirely of literals, write a constant-composite instead. + if (type.isVector()) { + SkSTArray<4, SpvId> constants; + if (this->toConstants(SkMakeSpan(values), &constants)) { + // Create a vector from literals. + return this->writeOpConstantComposite(type, constants); + } + } + + // If this is a matrix composed entirely of literals, constant-composite them instead. + if (type.isMatrix()) { + SkSTArray<16, SpvId> constants; + if (this->toConstants(SkMakeSpan(values), &constants)) { + // Create each matrix column. + SkASSERT(type.isMatrix()); + const Type& vecType = type.componentType().toCompound(fContext, + /*columns=*/type.rows(), + /*rows=*/1); + SkSTArray<4, SpvId> columnIDs; + for (int index=0; index < type.columns(); ++index) { + SkSTArray<4, SpvId> columnConstants(&constants[index * type.rows()], + type.rows()); + columnIDs.push_back(this->writeOpConstantComposite(vecType, columnConstants)); + } + // Compose the matrix from its columns. + return this->writeOpConstantComposite(type, columnIDs); + } + } + + Words words; + words.push_back(this->getType(type)); + words.push_back(Word::Result(type)); + for (SpvId value : values) { + words.push_back(value); + } + + return this->writeInstruction(SpvOpCompositeConstruct, words, out); +} + +SpvId SPIRVCodeGenerator::toComponent(const SPIRVCodeGenerator::Instruction& instr, int component) { + if (instr.fOp == SpvOpConstantComposite) { + // Add 2 to the component index to skip past ResultType and ResultID. + return instr.fWords[2 + component]; + } + // TODO(johnstiles): add support for SpvOpCompositeConstruct + return NA; +} + +SpvId SPIRVCodeGenerator::writeOpCompositeExtract(const Type& type, + SpvId base, + int component, + OutputStream& out) { + // If the base op is a composite, we can extract from it directly. + if (Instruction* instr = fSpvIdCache.find(base)) { + SpvId result = this->toComponent(*instr, component); + if (result != NA) { + return result; + } + } + return this->writeInstruction( + SpvOpCompositeExtract, + {this->getType(type), Word::Result(type), base, Word::Number(component)}, + out); +} + +SpvId SPIRVCodeGenerator::writeOpCompositeExtract(const Type& type, + SpvId base, + int componentA, + int componentB, + OutputStream& out) { + // If the base op is a composite, we can extract from it directly. + if (Instruction* instr = fSpvIdCache.find(base)) { + SpvId result = this->toComponent(*instr, componentA); + if (result != NA) { + return this->writeOpCompositeExtract(type, result, componentB, out); + } + } + return this->writeInstruction(SpvOpCompositeExtract, + {this->getType(type), + Word::Result(type), + base, + Word::Number(componentA), + Word::Number(componentB)}, + out); +} + void SPIRVCodeGenerator::writeCapabilities(OutputStream& out) { for (uint64_t i = 0, bit = 1; i <= kLast_Capability; i++, bit <<= 1) { if (fCapabilities & bit) { @@ -447,38 +778,41 @@ SpvId SPIRVCodeGenerator::nextId(Precision precision) { return fIdCount++; } -void SPIRVCodeGenerator::writeStruct(const Type& type, const MemoryLayout& memoryLayout, - SpvId resultId) { - this->writeInstruction(SpvOpName, resultId, type.name(), fNameBuffer); - // go ahead and write all of the field types, so we don't inadvertently write them while we're - // in the middle of writing the struct instruction - std::vector types; - for (const auto& f : type.fields()) { - types.push_back(this->getType(*f.fType, memoryLayout)); +SpvId SPIRVCodeGenerator::writeStruct(const Type& type, const MemoryLayout& memoryLayout) { + // If we've already written out this struct, return its existing SpvId. + if (SpvId* cachedStructId = fStructMap.find(&type)) { + return *cachedStructId; } - this->writeOpCode(SpvOpTypeStruct, 2 + (int32_t) types.size(), fConstantBuffer); - this->writeWord(resultId, fConstantBuffer); - for (SpvId id : types) { - this->writeWord(id, fConstantBuffer); + + // Write all of the field types first, so we don't inadvertently write them while we're in the + // middle of writing the struct instruction. + Words words; + words.push_back(Word::UncachedResult()); + for (const auto& f : type.fields()) { + words.push_back(this->getType(*f.fType, memoryLayout)); } + SpvId resultId = this->writeInstruction(SpvOpTypeStruct, words, fConstantBuffer); + this->writeInstruction(SpvOpName, resultId, type.name(), fNameBuffer); + fStructMap.set(&type, resultId); + size_t offset = 0; for (int32_t i = 0; i < (int32_t) type.fields().size(); i++) { const Type::Field& field = type.fields()[i]; if (!MemoryLayout::LayoutIsSupported(*field.fType)) { - fContext.fErrors->error(type.fLine, "type '" + field.fType->displayName() + - "' is not permitted here"); - return; + fContext.fErrors->error(type.fPosition, "type '" + field.fType->displayName() + + "' is not permitted here"); + return resultId; } size_t size = memoryLayout.size(*field.fType); size_t alignment = memoryLayout.alignment(*field.fType); const Layout& fieldLayout = field.fModifiers.fLayout; if (fieldLayout.fOffset >= 0) { if (fieldLayout.fOffset < (int) offset) { - fContext.fErrors->error(type.fLine, "offset of field '" + std::string(field.fName) + - "' must be at least " + std::to_string(offset)); + fContext.fErrors->error(field.fPosition, "offset of field '" + + std::string(field.fName) + "' must be at least " + std::to_string(offset)); } if (fieldLayout.fOffset % alignment) { - fContext.fErrors->error(type.fLine, + fContext.fErrors->error(field.fPosition, "offset of field '" + std::string(field.fName) + "' must be a multiple of " + std::to_string(alignment)); } @@ -511,6 +845,8 @@ void SPIRVCodeGenerator::writeStruct(const Type& type, const MemoryLayout& memor offset += alignment - offset % alignment; } } + + return resultId; } const Type& SPIRVCodeGenerator::getActualType(const Type& type) { @@ -542,217 +878,148 @@ SpvId SPIRVCodeGenerator::getType(const Type& type) { } SpvId SPIRVCodeGenerator::getType(const Type& rawType, const MemoryLayout& layout) { - const Type* type; - std::unique_ptr arrayType; - std::string arrayName; - - if (rawType.isArray()) { - // For arrays, we need to synthesize a temporary Array type using the "actual" component - // type. That is, if `short[10]` is passed in, we need to synthesize a `int[10]` Type. - // Otherwise, we can end up with two different SpvIds for the same array type. - const Type& component = this->getActualType(rawType.componentType()); - arrayName = component.getArrayName(rawType.columns()); - arrayType = Type::MakeArrayType(arrayName, component, rawType.columns()); - type = arrayType.get(); - } else { - // For non-array types, we can simply look up the "actual" type and use it. - type = &this->getActualType(rawType); - } - - std::string key(type->name()); - if (type->isStruct() || type->isArray()) { - key += std::to_string(layout.fStd); -#ifdef SK_DEBUG - SkASSERT(layout.fStd == MemoryLayout::Standard::k140_Standard || - layout.fStd == MemoryLayout::Standard::k430_Standard); - MemoryLayout::Standard otherStd = layout.fStd == MemoryLayout::Standard::k140_Standard - ? MemoryLayout::Standard::k430_Standard - : MemoryLayout::Standard::k140_Standard; - std::string otherKey = type->displayName() + std::to_string(otherStd); - SkASSERT(fTypeMap.find(otherKey) == fTypeMap.end()); -#endif - } - auto entry = fTypeMap.find(key); - if (entry == fTypeMap.end()) { - SpvId result = this->nextId(nullptr); - switch (type->typeKind()) { - case Type::TypeKind::kScalar: - if (type->isBoolean()) { - this->writeInstruction(SpvOpTypeBool, result, fConstantBuffer); - } else if (type->isSigned()) { - this->writeInstruction(SpvOpTypeInt, result, 32, 1, fConstantBuffer); - } else if (type->isUnsigned()) { - this->writeInstruction(SpvOpTypeInt, result, 32, 0, fConstantBuffer); - } else if (type->isFloat()) { - this->writeInstruction(SpvOpTypeFloat, result, 32, fConstantBuffer); - } else { - SkDEBUGFAILF("unrecognized scalar type '%s'", type->description().c_str()); - } - break; - case Type::TypeKind::kVector: - this->writeInstruction(SpvOpTypeVector, result, - this->getType(type->componentType(), layout), - type->columns(), fConstantBuffer); - break; - case Type::TypeKind::kMatrix: - this->writeInstruction( - SpvOpTypeMatrix, - result, - this->getType(IndexExpression::IndexType(fContext, *type), layout), - type->columns(), - fConstantBuffer); - break; - case Type::TypeKind::kStruct: - this->writeStruct(*type, layout, result); - break; - case Type::TypeKind::kArray: { - if (!MemoryLayout::LayoutIsSupported(*type)) { - fContext.fErrors->error(type->fLine, "type '" + type->displayName() + - "' is not permitted here"); - return this->nextId(nullptr); - } - if (type->columns() > 0) { - SpvId typeId = this->getType(type->componentType(), layout); - SpvId countId = this->writeLiteral(type->columns(), *fContext.fTypes.fInt); - this->writeInstruction(SpvOpTypeArray, result, typeId, countId, - fConstantBuffer); - this->writeInstruction(SpvOpDecorate, result, SpvDecorationArrayStride, - (int32_t) layout.stride(*type), - fDecorationBuffer); - } else { - // We shouldn't have any runtime-sized arrays right now - fContext.fErrors->error(type->fLine, - "runtime-sized arrays are not supported in SPIR-V"); - this->writeInstruction(SpvOpTypeRuntimeArray, result, - this->getType(type->componentType(), layout), - fConstantBuffer); - this->writeInstruction(SpvOpDecorate, result, SpvDecorationArrayStride, - (int32_t) layout.stride(*type), - fDecorationBuffer); - } - break; + const Type* type = &rawType; + + switch (type->typeKind()) { + case Type::TypeKind::kVoid: { + return this->writeInstruction(SpvOpTypeVoid, {Word::Result()}, fConstantBuffer); + } + case Type::TypeKind::kScalar: + case Type::TypeKind::kLiteral: { + if (type->isBoolean()) { + return this->writeInstruction(SpvOpTypeBool, {Word::Result()}, fConstantBuffer); } - case Type::TypeKind::kSampler: { - SpvId image = result; - if (SpvDimSubpassData != type->dimensions()) { - image = this->getType(type->textureType(), layout); - } - if (SpvDimBuffer == type->dimensions()) { - fCapabilities |= (((uint64_t) 1) << SpvCapabilitySampledBuffer); - } - if (SpvDimSubpassData != type->dimensions()) { - this->writeInstruction(SpvOpTypeSampledImage, result, image, fConstantBuffer); - } - break; + if (type->isSigned()) { + return this->writeInstruction(SpvOpTypeInt, + {Word::Result(), Word::Number(32), Word::Number(1)}, + fConstantBuffer); } - case Type::TypeKind::kSeparateSampler: { - this->writeInstruction(SpvOpTypeSampler, result, fConstantBuffer); - break; + if (type->isUnsigned()) { + return this->writeInstruction(SpvOpTypeInt, + {Word::Result(), Word::Number(32), Word::Number(0)}, + fConstantBuffer); } - case Type::TypeKind::kTexture: { - this->writeInstruction(SpvOpTypeImage, result, - this->getType(*fContext.fTypes.fFloat, layout), - type->dimensions(), type->isDepth(), - type->isArrayedTexture(), type->isMultisampled(), - type->isSampled() ? 1 : 2, SpvImageFormatUnknown, - fConstantBuffer); - fImageTypeMap[key] = result; - break; + if (type->isFloat()) { + return this->writeInstruction(SpvOpTypeFloat, + {Word::Result(), Word::Number(32)}, + fConstantBuffer); } - default: - if (type->isVoid()) { - this->writeInstruction(SpvOpTypeVoid, result, fConstantBuffer); - } else { - SkDEBUGFAILF("invalid type: %s", type->description().c_str()); - } - break; + SkDEBUGFAILF("unrecognized scalar type '%s'", type->description().c_str()); + return (SpvId)-1; + } + case Type::TypeKind::kVector: { + SpvId scalarTypeId = this->getType(type->componentType(), layout); + return this->writeInstruction( + SpvOpTypeVector, + {Word::Result(), scalarTypeId, Word::Number(type->columns())}, + fConstantBuffer); + } + case Type::TypeKind::kMatrix: { + SpvId vectorTypeId = this->getType(IndexExpression::IndexType(fContext, *type), layout); + return this->writeInstruction( + SpvOpTypeMatrix, + {Word::Result(), vectorTypeId, Word::Number(type->columns())}, + fConstantBuffer); + } + case Type::TypeKind::kArray: { + if (!MemoryLayout::LayoutIsSupported(*type)) { + fContext.fErrors->error(type->fPosition, "type '" + type->displayName() + + "' is not permitted here"); + return NA; + } + if (type->columns() == 0) { + // We do not support runtime-sized arrays. + fContext.fErrors->error(type->fPosition, "runtime-sized arrays are not supported"); + return NA; + } + SpvId typeId = this->getType(type->componentType(), layout); + SpvId countId = this->writeLiteral(type->columns(), *fContext.fTypes.fInt); + SpvId result = this->writeInstruction(SpvOpTypeArray, {Word::Result(), typeId, countId}, + fConstantBuffer); + this->writeInstruction( + SpvOpDecorate, + {result, SpvDecorationArrayStride, Word::Number(layout.stride(*type))}, + fDecorationBuffer); + return result; + } + case Type::TypeKind::kStruct: { + return this->writeStruct(*type, layout); + } + case Type::TypeKind::kSeparateSampler: { + return this->writeInstruction(SpvOpTypeSampler, {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; + } + SpvId imageTypeId = this->getType(type->textureType(), layout); + return this->writeInstruction(SpvOpTypeSampledImage, + {Word::Result(), imageTypeId}, + fConstantBuffer); + } + case Type::TypeKind::kTexture: { + SpvId floatTypeId = this->getType(*fContext.fTypes.fFloat, layout); + return this->writeInstruction(SpvOpTypeImage, + {Word::Result(), + floatTypeId, + Word::Number(type->dimensions()), + Word::Number(type->isDepth()), + Word::Number(type->isArrayedTexture()), + Word::Number(type->isMultisampled()), + Word::Number(type->isSampled() ? 1 : 2), + SpvImageFormatUnknown}, + fConstantBuffer); + } + default: { + SkDEBUGFAILF("invalid type: %s", type->description().c_str()); + return NA; } - fTypeMap[key] = result; - return result; } - return entry->second; -} - -SpvId SPIRVCodeGenerator::getImageType(const Type& type) { - SkASSERT(type.typeKind() == Type::TypeKind::kSampler); - this->getType(type); - std::string key = type.displayName() + std::to_string(fDefaultLayout.fStd); - SkASSERT(fImageTypeMap.find(key) != fImageTypeMap.end()); - return fImageTypeMap[key]; } SpvId SPIRVCodeGenerator::getFunctionType(const FunctionDeclaration& function) { - std::string key = std::to_string(this->getType(function.returnType())) + "("; - std::string separator; - const std::vector& parameters = function.parameters(); - for (size_t i = 0; i < parameters.size(); i++) { - key += separator; - separator = ", "; - key += std::to_string(this->getType(parameters[i]->type())); - } - key += ")"; - auto entry = fTypeMap.find(key); - if (entry == fTypeMap.end()) { - SpvId result = this->nextId(nullptr); - int32_t length = 3 + (int32_t) parameters.size(); - SpvId returnType = this->getType(function.returnType()); - std::vector parameterTypes; - for (size_t i = 0; i < parameters.size(); i++) { - // glslang seems to treat all function arguments as pointers whether they need to be or - // not. I was initially puzzled by this until I ran bizarre failures with certain - // patterns of function calls and control constructs, as exemplified by this minimal - // failure case: - // - // void sphere(float x) { - // } - // - // void map() { - // sphere(1.0); - // } - // - // void main() { - // for (int i = 0; i < 1; i++) { - // map(); - // } - // } - // - // As of this writing, compiling this in the "obvious" way (with sphere taking a float) - // crashes. Making it take a float* and storing the argument in a temporary variable, - // as glslang does, fixes it. It's entirely possible I simply missed whichever part of - // the spec makes this make sense. - parameterTypes.push_back(this->getPointerType(parameters[i]->type(), - SpvStorageClassFunction)); - } - this->writeOpCode(SpvOpTypeFunction, length, fConstantBuffer); - this->writeWord(result, fConstantBuffer); - this->writeWord(returnType, fConstantBuffer); - for (SpvId id : parameterTypes) { - this->writeWord(id, fConstantBuffer); - } - fTypeMap[key] = result; - return result; - } - return entry->second; + Words words; + words.push_back(Word::Result()); + words.push_back(this->getType(function.returnType())); + for (const Variable* parameter : function.parameters()) { + // glslang seems to treat all function arguments as pointers whether they need to be or + // not. I was initially puzzled by this until I ran bizarre failures with certain + // patterns of function calls and control constructs, as exemplified by this minimal + // failure case: + // + // void sphere(float x) { + // } + // + // void map() { + // sphere(1.0); + // } + // + // void main() { + // for (int i = 0; i < 1; i++) { + // map(); + // } + // } + // + // As of this writing, compiling this in the "obvious" way (with sphere taking a float) + // crashes. Making it take a float* and storing the argument in a temporary variable, + // as glslang does, fixes it. It's entirely possible I simply missed whichever part of + // the spec makes this make sense. + words.push_back(this->getPointerType(parameter->type(), SpvStorageClassFunction)); + } + return this->writeInstruction(SpvOpTypeFunction, words, fConstantBuffer); } SpvId SPIRVCodeGenerator::getPointerType(const Type& type, SpvStorageClass_ storageClass) { return this->getPointerType(type, fDefaultLayout, storageClass); } -SpvId SPIRVCodeGenerator::getPointerType(const Type& rawType, const MemoryLayout& layout, +SpvId SPIRVCodeGenerator::getPointerType(const Type& type, const MemoryLayout& layout, SpvStorageClass_ storageClass) { - const Type& type = this->getActualType(rawType); - std::string key = type.displayName() + "*" + std::to_string(layout.fStd) + - std::to_string(storageClass); - auto entry = fTypeMap.find(key); - if (entry == fTypeMap.end()) { - SpvId result = this->nextId(nullptr); - this->writeInstruction(SpvOpTypePointer, result, storageClass, - this->getType(type), fConstantBuffer); - fTypeMap[key] = result; - return result; - } - return entry->second; + return this->writeInstruction(SpvOpTypePointer, + {Word::Result(), Word::Number(storageClass), this->getType(type)}, + fConstantBuffer); } SpvId SPIRVCodeGenerator::writeExpression(const Expression& expr, OutputStream& out) { @@ -798,32 +1065,32 @@ SpvId SPIRVCodeGenerator::writeExpression(const Expression& expr, OutputStream& SkDEBUGFAILF("unsupported expression: %s", expr.description().c_str()); break; } - return -1; + return NA; } SpvId SPIRVCodeGenerator::writeIntrinsicCall(const FunctionCall& c, OutputStream& out) { const FunctionDeclaration& function = c.function(); - auto iter = fIntrinsicMap.find(function.intrinsicKind()); - if (iter == fIntrinsicMap.end()) { - fContext.fErrors->error(c.fLine, "unsupported intrinsic '" + function.description() + "'"); - return -1; + Intrinsic* intrinsic = fIntrinsicMap.find(function.intrinsicKind()); + if (!intrinsic) { + fContext.fErrors->error(c.fPosition, "unsupported intrinsic '" + function.description() + + "'"); + return NA; } const ExpressionArray& arguments = c.arguments(); - const Intrinsic& intrinsic = iter->second; - int32_t intrinsicId = intrinsic.floatOp; + int32_t intrinsicId = intrinsic->floatOp; if (arguments.size() > 0) { const Type& type = arguments[0]->type(); - if (intrinsic.opKind == kSpecial_IntrinsicOpcodeKind || is_float(fContext, type)) { + if (intrinsic->opKind == kSpecial_IntrinsicOpcodeKind || is_float(fContext, type)) { // Keep the default float op. } else if (is_signed(fContext, type)) { - intrinsicId = intrinsic.signedOp; + intrinsicId = intrinsic->signedOp; } else if (is_unsigned(fContext, type)) { - intrinsicId = intrinsic.unsignedOp; + intrinsicId = intrinsic->unsignedOp; } else if (is_bool(fContext, type)) { - intrinsicId = intrinsic.boolOp; + intrinsicId = intrinsic->boolOp; } } - switch (intrinsic.opKind) { + switch (intrinsic->opKind) { case kGLSL_STD_450_IntrinsicOpcodeKind: { SpvId result = this->nextId(&c.type()); std::vector argumentIds; @@ -871,32 +1138,24 @@ SpvId SPIRVCodeGenerator::writeIntrinsicCall(const FunctionCall& c, OutputStream case kSpecial_IntrinsicOpcodeKind: return this->writeSpecialIntrinsic(c, (SpecialIntrinsic) intrinsicId, out); default: - fContext.fErrors->error(c.fLine, "unsupported intrinsic '" + function.description() + - "'"); - return -1; + fContext.fErrors->error(c.fPosition, "unsupported intrinsic '" + + function.description() + "'"); + return NA; } } SpvId SPIRVCodeGenerator::vectorize(const Expression& arg, int vectorSize, OutputStream& out) { SkASSERT(vectorSize >= 1 && vectorSize <= 4); const Type& argType = arg.type(); - SpvId raw = this->writeExpression(arg, out); - if (argType.isScalar()) { - if (vectorSize == 1) { - return raw; - } - SpvId vector = this->nextId(&argType); - this->writeOpCode(SpvOpCompositeConstruct, 3 + vectorSize, out); - this->writeWord(this->getType(argType.toCompound(fContext, vectorSize, 1)), out); - this->writeWord(vector, out); - for (int i = 0; i < vectorSize; i++) { - this->writeWord(raw, out); - } - return vector; - } else { - SkASSERT(vectorSize == argType.columns()); - return raw; + if (argType.isScalar() && vectorSize > 1) { + ConstructorSplat splat{arg.fPosition, + argType.toCompound(fContext, vectorSize, /*rows=*/1), + arg.clone()}; + return this->writeConstructorSplat(splat, out); } + + SkASSERT(vectorSize == argType.columns()); + return this->writeExpression(arg, out); } std::vector SPIRVCodeGenerator::vectorize(const ExpressionArray& args, OutputStream& out) { @@ -979,10 +1238,10 @@ SpvId SPIRVCodeGenerator::writeSpecialIntrinsic(const FunctionCall& c, SpecialIn SpvId img = this->writeExpression(*arguments[0], out); ExpressionArray args; args.reserve_back(2); - args.push_back(Literal::MakeInt(fContext, /*line=*/-1, /*value=*/0)); - args.push_back(Literal::MakeInt(fContext, /*line=*/-1, /*value=*/0)); - ConstructorCompound ctor(/*line=*/-1, *fContext.fTypes.fInt2, std::move(args)); - SpvId coords = this->writeConstantVector(ctor); + args.push_back(Literal::MakeInt(fContext, Position(), /*value=*/0)); + args.push_back(Literal::MakeInt(fContext, Position(), /*value=*/0)); + ConstructorCompound ctor(Position(), *fContext.fTypes.fInt2, std::move(args)); + SpvId coords = this->writeExpression(ctor, out); if (arguments.size() == 1) { this->writeInstruction(SpvOpImageRead, this->getType(callType), @@ -1046,7 +1305,8 @@ SpvId SPIRVCodeGenerator::writeSpecialIntrinsic(const FunctionCall& c, SpecialIn } else { SkASSERT(arguments.size() == 2); if (fProgram.fConfig->fSettings.fSharpenTextures) { - SpvId lodBias = this->writeLiteral(-0.5, *fContext.fTypes.fFloat); + SpvId lodBias = this->writeLiteral(kSharpenTexturesBias, + *fContext.fTypes.fFloat); this->writeInstruction(op, type, result, sampler, uv, SpvImageOperandsBiasMask, lodBias, out); } else { @@ -1079,14 +1339,17 @@ SpvId SPIRVCodeGenerator::writeSpecialIntrinsic(const FunctionCall& c, SpecialIn break; } case kDFdy_SpecialIntrinsic: { + // TODO: This needs to be updated so SKSL_RTFLIP_NAME isn't accessed when + // fContext.fConfig->fSettings.fForceNoRTFlip is true. Additionally, the call to + // addRTFlipUniform needs to be skipped. SpvId fn = this->writeExpression(*arguments[0], out); this->writeOpCode(SpvOpDPdy, 4, out); this->writeWord(this->getType(callType), out); this->writeWord(result, out); this->writeWord(fn, out); - this->addRTFlipUniform(c.fLine); + this->addRTFlipUniform(c.fPosition); using namespace dsl; - DSLExpression rtFlip(ThreadContext::Compiler().convertIdentifier(/*line=*/-1, + DSLExpression rtFlip(ThreadContext::Compiler().convertIdentifier(Position(), SKSL_RTFLIP_NAME)); SpvId rtFlipY = this->vectorize(*rtFlip.y().release(), callType.columns(), out); SpvId flipped = this->nextId(&callType); @@ -1137,8 +1400,8 @@ SpvId SPIRVCodeGenerator::writeSpecialIntrinsic(const FunctionCall& c, SpecialIn ExpressionArray finalArgs; finalArgs.reserve_back(3); finalArgs.push_back(arguments[0]->clone()); - finalArgs.push_back(Literal::MakeFloat(fContext, /*line=*/-1, /*value=*/0)); - finalArgs.push_back(Literal::MakeFloat(fContext, /*line=*/-1, /*value=*/1)); + finalArgs.push_back(Literal::MakeFloat(fContext, Position(), /*value=*/0)); + finalArgs.push_back(Literal::MakeFloat(fContext, Position(), /*value=*/1)); std::vector spvArgs = this->vectorize(finalArgs, out); this->writeGLSLExtendedInstruction(callType, result, GLSLstd450FClamp, GLSLstd450SClamp, GLSLstd450UClamp, spvArgs, out); @@ -1181,7 +1444,7 @@ SpvId SPIRVCodeGenerator::writeFunctionCallArgument(const FunctionCall& call, // passed directly SpvId tmpVar; // if we need a temporary var to store this argument, this is the value to store in the var - SpvId tmpValueId = -1; + SpvId tmpValueId = NA; if (is_out(paramModifiers)) { std::unique_ptr lv = this->getLValue(arg, out); @@ -1208,7 +1471,7 @@ SpvId SPIRVCodeGenerator::writeFunctionCallArgument(const FunctionCall& call, tmpVar, SpvStorageClassFunction, fVariableBuffer); - if (tmpValueId != (SpvId)-1) { + if (tmpValueId != NA) { this->writeInstruction(SpvOpStore, tmpVar, tmpValueId, out); } return tmpVar; @@ -1228,11 +1491,11 @@ SpvId SPIRVCodeGenerator::writeFunctionCall(const FunctionCall& c, OutputStream& return this->writeIntrinsicCall(c, out); } const ExpressionArray& arguments = c.arguments(); - const auto& entry = fFunctionMap.find(&function); - if (entry == fFunctionMap.end()) { - fContext.fErrors->error(c.fLine, "function '" + function.description() + - "' is not defined"); - return -1; + SpvId* entry = fFunctionMap.find(&function); + if (!entry) { + fContext.fErrors->error(c.fPosition, "function '" + function.description() + + "' is not defined"); + return NA; } // Temp variables are used to write back out-parameters after the function call is complete. std::vector tempVars; @@ -1245,7 +1508,7 @@ SpvId SPIRVCodeGenerator::writeFunctionCall(const FunctionCall& c, OutputStream& this->writeOpCode(SpvOpFunctionCall, 4 + (int32_t) arguments.size(), out); this->writeWord(this->getType(c.type()), out); this->writeWord(result, out); - this->writeWord(entry->second, out); + this->writeWord(*entry, out); for (SpvId id : argumentIds) { this->writeWord(id, out); } @@ -1254,40 +1517,6 @@ SpvId SPIRVCodeGenerator::writeFunctionCall(const FunctionCall& c, OutputStream& return result; } -SpvId SPIRVCodeGenerator::writeConstantVector(const AnyConstructor& c) { - const Type& type = c.type(); - SkASSERT(type.isVector() && c.isCompileTimeConstant()); - - // Get each of the constructor components as SPIR-V constants. - SPIRVVectorConstant key{this->getType(type), - /*fValueId=*/{SpvId(-1), SpvId(-1), SpvId(-1), SpvId(-1)}}; - - const Type& scalarType = type.componentType(); - for (int n = 0; n < type.columns(); n++) { - std::optional slotVal = c.getConstantValue(n); - if (!slotVal.has_value()) { - SkDEBUGFAILF("writeConstantVector: %s not actually constant", c.description().c_str()); - return (SpvId)-1; - } - key.fValueId[n] = this->writeLiteral(*slotVal, scalarType); - } - - // Check to see if we've already synthesized this vector constant. - auto [iter, newlyCreated] = fVectorConstants.insert({key, (SpvId)-1}); - if (newlyCreated) { - // Emit an OpConstantComposite instruction for this constant. - SpvId result = this->nextId(&type); - this->writeOpCode(SpvOpConstantComposite, 3 + type.columns(), fConstantBuffer); - this->writeWord(key.fTypeId, fConstantBuffer); - this->writeWord(result, fConstantBuffer); - for (int i = 0; i < type.columns(); i++) { - this->writeWord(key.fValueId[i], fConstantBuffer); - } - iter->second = result; - } - return iter->second; -} - SpvId SPIRVCodeGenerator::castScalarToType(SpvId inputExprId, const Type& inputType, const Type& outputType, @@ -1305,8 +1534,8 @@ SpvId SPIRVCodeGenerator::castScalarToType(SpvId inputExprId, return this->castScalarToBoolean(inputExprId, inputType, outputType, out); } - fContext.fErrors->error(-1, "unsupported cast: " + inputType.description() + - " to " + outputType.description()); + fContext.fErrors->error(Position(), "unsupported cast: " + inputType.description() + " to " + + outputType.description()); return inputExprId; } @@ -1339,7 +1568,7 @@ SpvId SPIRVCodeGenerator::castScalarToFloat(SpvId inputId, const Type& inputType this->writeInstruction(SpvOpConvertUToF, this->getType(outputType), result, inputId, out); } else { SkDEBUGFAILF("unsupported type for float typecast: %s", inputType.description().c_str()); - return (SpvId)-1; + return NA; } return result; } @@ -1374,7 +1603,7 @@ SpvId SPIRVCodeGenerator::castScalarToSignedInt(SpvId inputId, const Type& input } else { SkDEBUGFAILF("unsupported type for signed int typecast: %s", inputType.description().c_str()); - return (SpvId)-1; + return NA; } return result; } @@ -1409,7 +1638,7 @@ SpvId SPIRVCodeGenerator::castScalarToUnsignedInt(SpvId inputId, const Type& inp } else { SkDEBUGFAILF("unsupported type for unsigned int typecast: %s", inputType.description().c_str()); - return (SpvId)-1; + return NA; } return result; } @@ -1448,60 +1677,28 @@ SpvId SPIRVCodeGenerator::castScalarToBoolean(SpvId inputId, const Type& inputTy inputId, zeroID, out); } else { SkDEBUGFAILF("unsupported type for boolean typecast: %s", inputType.description().c_str()); - return (SpvId)-1; + return NA; } return result; } -void SPIRVCodeGenerator::writeUniformScaleMatrix(SpvId id, SpvId diagonal, const Type& type, - OutputStream& out) { - SpvId zeroId = this->writeLiteral(0.0, *fContext.fTypes.fFloat); - std::vector columnIds; - columnIds.reserve(type.columns()); - for (int column = 0; column < type.columns(); column++) { - this->writeOpCode(SpvOpCompositeConstruct, 3 + type.rows(), - out); - this->writeWord(this->getType(type.componentType().toCompound( - fContext, /*columns=*/type.rows(), /*rows=*/1)), - out); - SpvId columnId = this->nextId(&type); - this->writeWord(columnId, out); - columnIds.push_back(columnId); - for (int row = 0; row < type.rows(); row++) { - this->writeWord(row == column ? diagonal : zeroId, out); - } - } - this->writeOpCode(SpvOpCompositeConstruct, 3 + type.columns(), - out); - this->writeWord(this->getType(type), out); - this->writeWord(id, out); - for (SpvId columnId : columnIds) { - this->writeWord(columnId, out); - } -} - SpvId SPIRVCodeGenerator::writeMatrixCopy(SpvId src, const Type& srcType, const Type& dstType, OutputStream& out) { SkASSERT(srcType.isMatrix()); SkASSERT(dstType.isMatrix()); SkASSERT(srcType.componentType().matches(dstType.componentType())); - SpvId id = this->nextId(&dstType); - SpvId srcColumnType = this->getType(srcType.componentType().toCompound(fContext, - srcType.rows(), - 1)); - SpvId dstColumnType = this->getType(dstType.componentType().toCompound(fContext, - dstType.rows(), - 1)); + const Type& srcColumnType = srcType.componentType().toCompound(fContext, srcType.rows(), 1); + const Type& dstColumnType = dstType.componentType().toCompound(fContext, dstType.rows(), 1); SkASSERT(dstType.componentType().isFloat()); + SpvId dstColumnTypeId = this->getType(dstColumnType); const SpvId zeroId = this->writeLiteral(0.0, dstType.componentType()); const SpvId oneId = this->writeLiteral(1.0, dstType.componentType()); - SpvId columns[4]; + SkSTArray<4, SpvId> columns; for (int i = 0; i < dstType.columns(); i++) { if (i < srcType.columns()) { // we're still inside the src matrix, copy the column - SpvId srcColumn = this->nextId(&dstType); - this->writeInstruction(SpvOpCompositeExtract, srcColumnType, srcColumn, src, i, out); + SpvId srcColumn = this->writeOpCompositeExtract(srcColumnType, src, i, out); SpvId dstColumn; if (srcType.rows() == dstType.rows()) { // columns are equal size, don't need to do anything @@ -1509,21 +1706,18 @@ SpvId SPIRVCodeGenerator::writeMatrixCopy(SpvId src, const Type& srcType, const } else if (dstType.rows() > srcType.rows()) { // dst column is bigger, need to zero-pad it - dstColumn = this->nextId(&dstType); - int delta = dstType.rows() - srcType.rows(); - this->writeOpCode(SpvOpCompositeConstruct, 4 + delta, out); - this->writeWord(dstColumnType, out); - this->writeWord(dstColumn, out); - this->writeWord(srcColumn, out); + SkSTArray<4, SpvId> values; + values.push_back(srcColumn); for (int j = srcType.rows(); j < dstType.rows(); ++j) { - this->writeWord((i == j) ? oneId : zeroId, out); + values.push_back((i == j) ? oneId : zeroId); } + dstColumn = this->writeOpCompositeConstruct(dstColumnType, values, out); } else { // dst column is smaller, need to swizzle the src column dstColumn = this->nextId(&dstType); this->writeOpCode(SpvOpVectorShuffle, 5 + dstType.rows(), out); - this->writeWord(dstColumnType, out); + this->writeWord(dstColumnTypeId, out); this->writeWord(dstColumn, out); this->writeWord(srcColumn, out); this->writeWord(srcColumn, out); @@ -1531,41 +1725,33 @@ SpvId SPIRVCodeGenerator::writeMatrixCopy(SpvId src, const Type& srcType, const this->writeWord(j, out); } } - columns[i] = dstColumn; + columns.push_back(dstColumn); } else { // we're past the end of the src matrix, need to synthesize an identity-matrix column - SpvId identityColumn = this->nextId(&dstType); - this->writeOpCode(SpvOpCompositeConstruct, 3 + dstType.rows(), out); - this->writeWord(dstColumnType, out); - this->writeWord(identityColumn, out); + SkSTArray<4, SpvId> values; for (int j = 0; j < dstType.rows(); ++j) { - this->writeWord((i == j) ? oneId : zeroId, out); + values.push_back((i == j) ? oneId : zeroId); } - columns[i] = identityColumn; + columns.push_back(this->writeOpCompositeConstruct(dstColumnType, values, out)); } } - this->writeOpCode(SpvOpCompositeConstruct, 3 + dstType.columns(), out); - this->writeWord(this->getType(dstType), out); - this->writeWord(id, out); - for (int i = 0; i < dstType.columns(); i++) { - this->writeWord(columns[i], out); - } - return id; + + return this->writeOpCompositeConstruct(dstType, columns, out); } void SPIRVCodeGenerator::addColumnEntry(const Type& columnType, - std::vector* currentColumn, - std::vector* columnIds, + SkTArray* currentColumn, + SkTArray* columnIds, int rows, SpvId entry, OutputStream& out) { - SkASSERT((int)currentColumn->size() < rows); + SkASSERT(currentColumn->count() < rows); currentColumn->push_back(entry); - if ((int)currentColumn->size() == rows) { + if (currentColumn->count() == rows) { // Synthesize this column into a vector. - SpvId columnId = this->writeComposite(*currentColumn, columnType, out); + SpvId columnId = this->writeOpCompositeConstruct(columnType, *currentColumn, out); columnIds->push_back(columnId); - currentColumn->clear(); + currentColumn->reset(); } } @@ -1586,26 +1772,23 @@ SpvId SPIRVCodeGenerator::writeMatrixConstructor(const ConstructorCompound& c, O // Special-case handling of float4 -> mat2x2. SkASSERT(type.rows() == 2 && type.columns() == 2); SkASSERT(arg0Type.columns() == 4); - SpvId componentType = this->getType(type.componentType()); SpvId v[4]; for (int i = 0; i < 4; ++i) { - v[i] = this->nextId(&type); - this->writeInstruction(SpvOpCompositeExtract, componentType, v[i], arguments[0], i, - out); + v[i] = this->writeOpCompositeExtract(type.componentType(), arguments[0], i, out); } const Type& vecType = type.componentType().toCompound(fContext, /*columns=*/2, /*rows=*/1); - SpvId v0v1 = this->writeComposite({v[0], v[1]}, vecType, out); - SpvId v2v3 = this->writeComposite({v[2], v[3]}, vecType, out); - return this->writeComposite({v0v1, v2v3}, type, out); + SpvId v0v1 = this->writeOpCompositeConstruct(vecType, {v[0], v[1]}, out); + SpvId v2v3 = this->writeOpCompositeConstruct(vecType, {v[2], v[3]}, out); + return this->writeOpCompositeConstruct(type, {v0v1, v2v3}, out); } int rows = type.rows(); const Type& columnType = type.componentType().toCompound(fContext, /*columns=*/rows, /*rows=*/1); // SpvIds of completed columns of the matrix. - std::vector columnIds; + SkSTArray<4, SpvId> columnIds; // SpvIds of scalars we have written to the current column so far. - std::vector currentColumn; + SkSTArray<4, SpvId> currentColumn; for (size_t i = 0; i < arguments.size(); i++) { const Type& argType = c.arguments()[i]->type(); if (currentColumn.empty() && argType.isVector() && argType.columns() == rows) { @@ -1616,17 +1799,15 @@ SpvId SPIRVCodeGenerator::writeMatrixConstructor(const ConstructorCompound& c, O this->addColumnEntry(columnType, ¤tColumn, &columnIds, rows, arguments[i], out); } else { // This argument needs to be decomposed into its constituent scalars. - SpvId componentType = this->getType(argType.componentType()); for (int j = 0; j < argType.columns(); ++j) { - SpvId swizzle = this->nextId(&argType); - this->writeInstruction(SpvOpCompositeExtract, componentType, swizzle, - arguments[i], j, out); + SpvId swizzle = this->writeOpCompositeExtract(argType.componentType(), + arguments[i], j, out); this->addColumnEntry(columnType, ¤tColumn, &columnIds, rows, swizzle, out); } } } - SkASSERT(columnIds.size() == (size_t) type.columns()); - return this->writeComposite(columnIds, type, out); + SkASSERT(columnIds.count() == type.columns()); + return this->writeOpCompositeConstruct(type, columnIds, out); } SpvId SPIRVCodeGenerator::writeConstructorCompound(const ConstructorCompound& c, @@ -1640,15 +1821,10 @@ SpvId SPIRVCodeGenerator::writeVectorConstructor(const ConstructorCompound& c, O const Type& componentType = type.componentType(); SkASSERT(type.isVector()); - if (c.isCompileTimeConstant()) { - return this->writeConstantVector(c); - } - - std::vector arguments; - arguments.reserve(c.arguments().size()); + SkSTArray<4, SpvId> arguments; for (size_t i = 0; i < c.arguments().size(); i++) { const Type& argType = c.arguments()[i]->type(); - SkASSERT(componentType.matches(argType.componentType())); + SkASSERT(componentType.numberKind() == argType.componentType().numberKind()); SpvId arg = this->writeExpression(*c.arguments()[i], out); if (argType.isMatrix()) { @@ -1657,70 +1833,44 @@ SpvId SPIRVCodeGenerator::writeVectorConstructor(const ConstructorCompound& c, O SkASSERT(argType.rows() == 2); SkASSERT(argType.columns() == 2); for (int j = 0; j < 4; ++j) { - SpvId componentId = this->nextId(&componentType); - this->writeInstruction(SpvOpCompositeExtract, this->getType(componentType), - componentId, arg, j / 2, j % 2, out); - arguments.push_back(componentId); + arguments.push_back(this->writeOpCompositeExtract(componentType, arg, + j / 2, j % 2, out)); } } else if (argType.isVector()) { // There's a bug in the Intel Vulkan driver where OpCompositeConstruct doesn't handle // vector arguments at all, so we always extract each vector component and pass them // into OpCompositeConstruct individually. for (int j = 0; j < argType.columns(); j++) { - SpvId componentId = this->nextId(&componentType); - this->writeInstruction(SpvOpCompositeExtract, this->getType(componentType), - componentId, arg, j, out); - arguments.push_back(componentId); + arguments.push_back(this->writeOpCompositeExtract(componentType, arg, j, out)); } } else { arguments.push_back(arg); } } - return this->writeComposite(arguments, type, out); -} - -SpvId SPIRVCodeGenerator::writeComposite(const std::vector& arguments, - const Type& type, - OutputStream& out) { - SkASSERT(arguments.size() == (type.isStruct() ? type.fields().size() : (size_t)type.columns())); - - SpvId result = this->nextId(&type); - this->writeOpCode(SpvOpCompositeConstruct, 3 + (int32_t) arguments.size(), out); - this->writeWord(this->getType(type), out); - this->writeWord(result, out); - for (SpvId id : arguments) { - this->writeWord(id, out); - } - return result; + return this->writeOpCompositeConstruct(type, arguments, out); } SpvId SPIRVCodeGenerator::writeConstructorSplat(const ConstructorSplat& c, OutputStream& out) { - // Use writeConstantVector to deduplicate constant splats. - if (c.isCompileTimeConstant()) { - return this->writeConstantVector(c); - } - // Write the splat argument. SpvId argument = this->writeExpression(*c.argument(), out); // Generate a OpCompositeConstruct which repeats the argument N times. - std::vector arguments(/*count*/ c.type().columns(), /*value*/ argument); - return this->writeComposite(arguments, c.type(), out); + SkSTArray<4, SpvId> values; + values.push_back_n(/*n=*/c.type().columns(), /*t=*/argument); + return this->writeOpCompositeConstruct(c.type(), values, out); } - SpvId SPIRVCodeGenerator::writeCompositeConstructor(const AnyConstructor& c, OutputStream& out) { SkASSERT(c.type().isArray() || c.type().isStruct()); auto ctorArgs = c.argumentSpan(); - std::vector arguments; - arguments.reserve(ctorArgs.size()); + SkSTArray<4, SpvId> arguments; for (const std::unique_ptr& arg : ctorArgs) { arguments.push_back(this->writeExpression(*arg, out)); } - return this->writeComposite(arguments, c.type(), out); + return this->writeOpCompositeConstruct(c.type(), arguments, out); } SpvId SPIRVCodeGenerator::writeConstructorScalarCast(const ConstructorScalarCast& c, @@ -1757,16 +1907,13 @@ SpvId SPIRVCodeGenerator::writeConstructorCompoundCast(const ConstructorCompound const Type& srcType = argType.componentType(); const Type& dstType = ctorType.componentType(); - std::vector arguments; - arguments.reserve(argType.columns()); + SkSTArray<4, SpvId> arguments; for (int index = 0; index < argType.columns(); ++index) { - SpvId componentId = this->nextId(&srcType); - this->writeInstruction(SpvOpCompositeExtract, this->getType(srcType), componentId, - compositeId, index, out); + SpvId componentId = this->writeOpCompositeExtract(srcType, compositeId, index, out); arguments.push_back(this->castScalarToType(componentId, srcType, dstType, out)); } - return this->writeComposite(arguments, ctorType, out); + return this->writeOpCompositeConstruct(ctorType, arguments, out); } SpvId SPIRVCodeGenerator::writeConstructorDiagonalMatrix(const ConstructorDiagonalMatrix& c, @@ -1776,12 +1923,24 @@ SpvId SPIRVCodeGenerator::writeConstructorDiagonalMatrix(const ConstructorDiagon SkASSERT(c.argument()->type().isScalar()); // Write out the scalar argument. - SpvId argument = this->writeExpression(*c.argument(), out); + SpvId diagonal = this->writeExpression(*c.argument(), out); // Build the diagonal matrix. - SpvId result = this->nextId(&type); - this->writeUniformScaleMatrix(result, argument, type, out); - return result; + SpvId zeroId = this->writeLiteral(0.0, *fContext.fTypes.fFloat); + + const Type& vecType = type.componentType().toCompound(fContext, + /*columns=*/type.rows(), + /*rows=*/1); + SkSTArray<4, SpvId> columnIds; + SkSTArray<4, SpvId> arguments; + arguments.resize(type.rows()); + for (int column = 0; column < type.columns(); column++) { + for (int row = 0; row < type.rows(); row++) { + arguments[row] = (row == column) ? diagonal : zeroId; + } + columnIds.push_back(this->writeOpCompositeConstruct(vecType, arguments, out)); + } + return this->writeOpCompositeConstruct(type, columnIds, out); } SpvId SPIRVCodeGenerator::writeConstructorMatrixResize(const ConstructorMatrixResize& c, @@ -1853,7 +2012,7 @@ std::vector SPIRVCodeGenerator::getAccessChain(const Expression& expr, Ou } default: { SpvId id = this->getLValue(expr, out)->getPointer(); - SkASSERT(id != (SpvId) -1); + SkASSERT(id != NA); chain.push_back(id); break; } @@ -1983,8 +2142,8 @@ class SwizzleLValue : public SPIRVCodeGenerator::LValue { }; int SPIRVCodeGenerator::findUniformFieldIndex(const Variable& var) const { - auto iter = fTopLevelUniformMap.find(&var); - return (iter != fTopLevelUniformMap.end()) ? iter->second : -1; + int* fieldIndex = fTopLevelUniformMap.find(&var); + return fieldIndex ? *fieldIndex : -1; } std::unique_ptr SPIRVCodeGenerator::getLValue(const Expression& expr, @@ -2006,9 +2165,9 @@ std::unique_ptr SPIRVCodeGenerator::getLValue(const this->getType(type), precision); } SpvId typeId = this->getType(type, this->memoryLayoutForVariable(var)); - auto entry = fVariableMap.find(&var); - SkASSERTF(entry != fVariableMap.end(), "%s", expr.description().c_str()); - return std::make_unique(*this, entry->second, + SpvId* entry = fVariableMap.find(&var); + SkASSERTF(entry, "%s", expr.description().c_str()); + return std::make_unique(*this, *entry, /*isMemoryObjectPointer=*/true, typeId, precision); } @@ -2032,8 +2191,9 @@ std::unique_ptr SPIRVCodeGenerator::getLValue(const return lvalue; } SpvId base = lvalue->getPointer(); - if (base == (SpvId) -1) { - fContext.fErrors->error(swizzle.fLine, "unable to retrieve lvalue from swizzle"); + if (base == NA) { + fContext.fErrors->error(swizzle.fPosition, + "unable to retrieve lvalue from swizzle"); } if (swizzle.components().size() == 1) { SpvId member = this->nextId(nullptr); @@ -2068,91 +2228,109 @@ std::unique_ptr SPIRVCodeGenerator::getLValue(const SpvId SPIRVCodeGenerator::writeVariableReference(const VariableReference& ref, OutputStream& out) { const Variable* variable = ref.variable(); - if (variable->modifiers().fLayout.fBuiltin == DEVICE_FRAGCOORDS_BUILTIN) { - // Down below, we rewrite raw references to sk_FragCoord with expressions that reference - // DEVICE_FRAGCOORDS_BUILTIN. This is a fake variable that means we need to directly access - // the fragcoord; do so now. - dsl::DSLGlobalVar fragCoord("sk_FragCoord"); - return this->getLValue(*dsl::DSLExpression(fragCoord).release(), out)->load(out); - } - if (variable->modifiers().fLayout.fBuiltin == DEVICE_CLOCKWISE_BUILTIN) { - // Down below, we rewrite raw references to sk_Clockwise with expressions that reference - // DEVICE_CLOCKWISE_BUILTIN. This is a fake variable that means we need to directly - // access front facing; do so now. - dsl::DSLGlobalVar clockwise("sk_Clockwise"); - return this->getLValue(*dsl::DSLExpression(clockwise).release(), out)->load(out); - } - - // Handle inserting use of uniform to flip y when referencing sk_FragCoord. - if (variable->modifiers().fLayout.fBuiltin == SK_FRAGCOORD_BUILTIN) { - this->addRTFlipUniform(ref.fLine); - // Use sk_RTAdjust to compute the flipped coordinate - using namespace dsl; - const char* DEVICE_COORDS_NAME = "$device_FragCoords"; - SymbolTable& symbols = *ThreadContext::SymbolTable(); - // Use a uniform to flip the Y coordinate. The new expression will be written in - // terms of $device_FragCoords, which is a fake variable that means "access the - // underlying fragcoords directly without flipping it". - DSLExpression rtFlip(ThreadContext::Compiler().convertIdentifier(/*line=*/-1, - SKSL_RTFLIP_NAME)); - if (!symbols[DEVICE_COORDS_NAME]) { - AutoAttachPoolToThread attach(fProgram.fPool.get()); - Modifiers modifiers; - modifiers.fLayout.fBuiltin = DEVICE_FRAGCOORDS_BUILTIN; - auto coordsVar = std::make_unique(/*line=*/-1, - fContext.fModifiersPool->add(modifiers), - DEVICE_COORDS_NAME, - fContext.fTypes.fFloat4.get(), - /*builtin=*/true, - Variable::Storage::kGlobal); - fSPIRVBonusVariables.insert(coordsVar.get()); - symbols.add(std::move(coordsVar)); - } - DSLGlobalVar deviceCoord(DEVICE_COORDS_NAME); - std::unique_ptr rtFlipSkSLExpr = rtFlip.release(); - DSLExpression x = DSLExpression(rtFlipSkSLExpr->clone()).x(); - DSLExpression y = DSLExpression(std::move(rtFlipSkSLExpr)).y(); - return this->writeExpression(*dsl::Float4(deviceCoord.x(), - std::move(x) + std::move(y) * deviceCoord.y(), - deviceCoord.z(), - deviceCoord.w()).release(), - out); - } - - // Handle flipping sk_Clockwise. - if (variable->modifiers().fLayout.fBuiltin == SK_CLOCKWISE_BUILTIN) { - this->addRTFlipUniform(ref.fLine); - using namespace dsl; - const char* DEVICE_CLOCKWISE_NAME = "$device_Clockwise"; - SymbolTable& symbols = *ThreadContext::SymbolTable(); - // Use a uniform to flip the Y coordinate. The new expression will be written in - // terms of $device_Clockwise, which is a fake variable that means "access the - // underlying FrontFacing directly". - DSLExpression rtFlip(ThreadContext::Compiler().convertIdentifier(/*line=*/-1, - SKSL_RTFLIP_NAME)); - if (!symbols[DEVICE_CLOCKWISE_NAME]) { - AutoAttachPoolToThread attach(fProgram.fPool.get()); - Modifiers modifiers; - modifiers.fLayout.fBuiltin = DEVICE_CLOCKWISE_BUILTIN; - auto clockwiseVar = std::make_unique(/*line=*/-1, - fContext.fModifiersPool->add(modifiers), - DEVICE_CLOCKWISE_NAME, - fContext.fTypes.fBool.get(), - /*builtin=*/true, - Variable::Storage::kGlobal); - fSPIRVBonusVariables.insert(clockwiseVar.get()); - symbols.add(std::move(clockwiseVar)); + switch (variable->modifiers().fLayout.fBuiltin) { + case DEVICE_FRAGCOORDS_BUILTIN: { + // Down below, we rewrite raw references to sk_FragCoord with expressions that reference + // DEVICE_FRAGCOORDS_BUILTIN. This is a fake variable that means we need to directly + // access the fragcoord; do so now. + dsl::DSLGlobalVar fragCoord("sk_FragCoord"); + return this->getLValue(*dsl::DSLExpression(fragCoord).release(), out)->load(out); + } + case DEVICE_CLOCKWISE_BUILTIN: { + // Down below, we rewrite raw references to sk_Clockwise with expressions that reference + // DEVICE_CLOCKWISE_BUILTIN. This is a fake variable that means we need to directly + // access front facing; do so now. + dsl::DSLGlobalVar clockwise("sk_Clockwise"); + return this->getLValue(*dsl::DSLExpression(clockwise).release(), out)->load(out); + } + case SK_SECONDARYFRAGCOLOR_BUILTIN: { + // sk_SecondaryFragColor corresponds to gl_SecondaryFragColorEXT, which isn't supposed + // to appear in a SPIR-V program (it's only valid in ES2). Report an error. + fContext.fErrors->error(ref.fPosition, + "sk_SecondaryFragColor is not allowed in SPIR-V"); + return NA; + } + case SK_FRAGCOORD_BUILTIN: { + // TODO: This needs to be updated so SKSL_RTFLIP_NAME isn't accessed when + // fContext.fConfig->fSettings.fForceNoRTFlip is true. Additionally, the call to + // addRTFlipUniform needs to be skipped. + + // Handle inserting use of uniform to flip y when referencing sk_FragCoord. + this->addRTFlipUniform(ref.fPosition); + // Use sk_RTAdjust to compute the flipped coordinate + using namespace dsl; + const char* DEVICE_COORDS_NAME = "$device_FragCoords"; + SymbolTable& symbols = *ThreadContext::SymbolTable(); + // Use a uniform to flip the Y coordinate. The new expression will be written in + // terms of $device_FragCoords, which is a fake variable that means "access the + // underlying fragcoords directly without flipping it". + DSLExpression rtFlip(ThreadContext::Compiler().convertIdentifier(Position(), + SKSL_RTFLIP_NAME)); + if (!symbols[DEVICE_COORDS_NAME]) { + AutoAttachPoolToThread attach(fProgram.fPool.get()); + Modifiers modifiers; + modifiers.fLayout.fBuiltin = DEVICE_FRAGCOORDS_BUILTIN; + auto coordsVar = std::make_unique(/*pos=*/Position(), + /*modifiersPosition=*/Position(), + fContext.fModifiersPool->add(modifiers), + DEVICE_COORDS_NAME, + fContext.fTypes.fFloat4.get(), + /*builtin=*/true, + Variable::Storage::kGlobal); + fSPIRVBonusVariables.add(coordsVar.get()); + symbols.add(std::move(coordsVar)); + } + DSLGlobalVar deviceCoord(DEVICE_COORDS_NAME); + std::unique_ptr rtFlipSkSLExpr = rtFlip.release(); + DSLExpression x = DSLExpression(rtFlipSkSLExpr->clone()).x(); + DSLExpression y = DSLExpression(std::move(rtFlipSkSLExpr)).y(); + return this->writeExpression(*dsl::Float4(deviceCoord.x(), + std::move(x) + std::move(y) * deviceCoord.y(), + deviceCoord.z(), + deviceCoord.w()).release(), + out); + } + case SK_CLOCKWISE_BUILTIN: { + // TODO: This needs to be updated so SKSL_RTFLIP_NAME isn't accessed when + // fContext.fConfig->fSettings.fForceNoRTFlip is true. Additionally, the call to + // addRTFlipUniform needs to be skipped. + + // Handle flipping sk_Clockwise. + this->addRTFlipUniform(ref.fPosition); + using namespace dsl; + const char* DEVICE_CLOCKWISE_NAME = "$device_Clockwise"; + SymbolTable& symbols = *ThreadContext::SymbolTable(); + // Use a uniform to flip the Y coordinate. The new expression will be written in + // terms of $device_Clockwise, which is a fake variable that means "access the + // underlying FrontFacing directly". + DSLExpression rtFlip(ThreadContext::Compiler().convertIdentifier(Position(), + SKSL_RTFLIP_NAME)); + if (!symbols[DEVICE_CLOCKWISE_NAME]) { + AutoAttachPoolToThread attach(fProgram.fPool.get()); + Modifiers modifiers; + modifiers.fLayout.fBuiltin = DEVICE_CLOCKWISE_BUILTIN; + auto clockwiseVar = std::make_unique(/*pos=*/Position(), + /*modifiersPosition=*/Position(), + fContext.fModifiersPool->add(modifiers), + DEVICE_CLOCKWISE_NAME, + fContext.fTypes.fBool.get(), + /*builtin=*/true, + Variable::Storage::kGlobal); + fSPIRVBonusVariables.add(clockwiseVar.get()); + symbols.add(std::move(clockwiseVar)); + } + DSLGlobalVar deviceClockwise(DEVICE_CLOCKWISE_NAME); + // FrontFacing in Vulkan is defined in terms of a top-down render target. In skia, + // we use the default convention of "counter-clockwise face is front". + return this->writeExpression(*dsl::Bool(Select(rtFlip.y() > 0, + !deviceClockwise, + deviceClockwise)).release(), + out); } - DSLGlobalVar deviceClockwise(DEVICE_CLOCKWISE_NAME); - // FrontFacing in Vulkan is defined in terms of a top-down render target. In skia, - // we use the default convention of "counter-clockwise face is front". - return this->writeExpression(*dsl::Bool(Select(rtFlip.y() > 0, - !deviceClockwise, - deviceClockwise)).release(), - out); + default: + return this->getLValue(ref, out)->load(out); } - return this->getLValue(ref, out)->load(out); } SpvId SPIRVCodeGenerator::writeIndexExpression(const IndexExpression& expr, OutputStream& out) { @@ -2173,20 +2351,19 @@ SpvId SPIRVCodeGenerator::writeFieldAccess(const FieldAccess& f, OutputStream& o SpvId SPIRVCodeGenerator::writeSwizzle(const Swizzle& swizzle, OutputStream& out) { SpvId base = this->writeExpression(*swizzle.base(), out); - SpvId result = this->nextId(&swizzle.type()); size_t count = swizzle.components().size(); if (count == 1) { - this->writeInstruction(SpvOpCompositeExtract, this->getType(swizzle.type()), result, base, - swizzle.components()[0], out); - } else { - this->writeOpCode(SpvOpVectorShuffle, 5 + (int32_t) count, out); - this->writeWord(this->getType(swizzle.type()), out); - this->writeWord(result, out); - this->writeWord(base, out); - this->writeWord(base, out); - for (int component : swizzle.components()) { - this->writeWord(component, out); - } + return this->writeOpCompositeExtract(swizzle.type(), base, swizzle.components()[0], out); + } + + SpvId result = this->nextId(&swizzle.type()); + this->writeOpCode(SpvOpVectorShuffle, 5 + (int32_t) count, out); + this->writeWord(this->getType(swizzle.type()), out); + this->writeWord(result, out); + this->writeWord(base, out); + this->writeWord(base, out); + for (int component : swizzle.components()) { + this->writeWord(component, out); } return result; } @@ -2205,7 +2382,7 @@ SpvId SPIRVCodeGenerator::writeBinaryOperation(const Type& resultType, } else if (is_bool(fContext, operandType)) { this->writeInstruction(ifBool, this->getType(resultType), result, lhs, rhs, out); } else { - fContext.fErrors->error(operandType.fLine, + fContext.fErrors->error(operandType.fPosition, "unsupported operand for binary expression: " + operandType.description()); } return result; @@ -2227,19 +2404,17 @@ SpvId SPIRVCodeGenerator::writeMatrixComparison(const Type& operandType, SpvId l OutputStream& out) { SpvOp_ compareOp = is_float(fContext, operandType) ? floatOperator : intOperator; SkASSERT(operandType.isMatrix()); - SpvId columnType = this->getType(operandType.componentType().toCompound(fContext, - operandType.rows(), - 1)); - SpvId bvecType = this->getType(fContext.fTypes.fBool->toCompound(fContext, + const Type& columnType = operandType.componentType().toCompound(fContext, operandType.rows(), - 1)); + 1); + SpvId bvecType = this->getType(fContext.fTypes.fBool->toCompound(fContext, + operandType.rows(), + 1)); SpvId boolType = this->getType(*fContext.fTypes.fBool); SpvId result = 0; for (int i = 0; i < operandType.columns(); i++) { - SpvId columnL = this->nextId(&operandType); - this->writeInstruction(SpvOpCompositeExtract, columnType, columnL, lhs, i, out); - SpvId columnR = this->nextId(&operandType); - this->writeInstruction(SpvOpCompositeExtract, columnType, columnR, rhs, i, out); + SpvId columnL = this->writeOpCompositeExtract(columnType, lhs, i, out); + SpvId columnR = this->writeOpCompositeExtract(columnType, rhs, i, out); SpvId compare = this->nextId(&operandType); this->writeInstruction(compareOp, bvecType, compare, columnL, columnR, out); SpvId merge = this->nextId(nullptr); @@ -2248,31 +2423,50 @@ SpvId SPIRVCodeGenerator::writeMatrixComparison(const Type& operandType, SpvId l SpvId next = this->nextId(nullptr); this->writeInstruction(mergeOperator, boolType, next, result, merge, out); result = next; - } - else { + } else { result = merge; } } return result; } +SpvId SPIRVCodeGenerator::writeComponentwiseMatrixUnary(const Type& operandType, + SpvId operand, + SpvOp_ op, + OutputStream& out) { + SkASSERT(operandType.isMatrix()); + const Type& columnType = operandType.componentType().toCompound(fContext, + /*columns=*/operandType.rows(), + /*rows=*/1); + SpvId columnTypeId = this->getType(columnType); + + SkSTArray<4, SpvId> columns; + for (int i = 0; i < operandType.columns(); i++) { + SpvId srcColumn = this->writeOpCompositeExtract(columnType, operand, i, out); + SpvId dstColumn = this->nextId(&operandType); + this->writeInstruction(op, columnTypeId, dstColumn, srcColumn, out); + columns.push_back(dstColumn); + } + + return this->writeOpCompositeConstruct(operandType, columns, out); +} + SpvId SPIRVCodeGenerator::writeComponentwiseMatrixBinary(const Type& operandType, SpvId lhs, SpvId rhs, SpvOp_ op, OutputStream& out) { SkASSERT(operandType.isMatrix()); - SpvId columnType = this->getType(operandType.componentType().toCompound(fContext, - operandType.rows(), - 1)); - std::vector columns; - columns.reserve(operandType.columns()); + const Type& columnType = operandType.componentType().toCompound(fContext, + /*columns=*/operandType.rows(), + /*rows=*/1); + SpvId columnTypeId = this->getType(columnType); + + SkSTArray<4, SpvId> columns; for (int i = 0; i < operandType.columns(); i++) { - SpvId columnL = this->nextId(&operandType); - this->writeInstruction(SpvOpCompositeExtract, columnType, columnL, lhs, i, out); - SpvId columnR = this->nextId(&operandType); - this->writeInstruction(SpvOpCompositeExtract, columnType, columnR, rhs, i, out); + SpvId columnL = this->writeOpCompositeExtract(columnType, lhs, i, out); + SpvId columnR = this->writeOpCompositeExtract(columnType, rhs, i, out); columns.push_back(this->nextId(&operandType)); - this->writeInstruction(op, columnType, columns[i], columnL, columnR, out); + this->writeInstruction(op, columnTypeId, columns[i], columnL, columnR, out); } - return this->writeComposite(columns, operandType, out); + return this->writeOpCompositeConstruct(operandType, columns, out); } SpvId SPIRVCodeGenerator::writeReciprocal(const Type& type, SpvId value, OutputStream& out) { @@ -2290,19 +2484,21 @@ SpvId SPIRVCodeGenerator::writeScalarToMatrixSplat(const Type& matrixType, const Type& vectorType = matrixType.componentType().toCompound(fContext, /*columns=*/matrixType.rows(), /*rows=*/1); - std::vector vecArguments(/*count*/ matrixType.rows(), /*value*/ scalarId); - SpvId vectorId = this->writeComposite(vecArguments, vectorType, out); + SkSTArray<4, SpvId> vecArguments; + vecArguments.push_back_n(/*n=*/matrixType.rows(), /*t=*/scalarId); + SpvId vectorId = this->writeOpCompositeConstruct(vectorType, vecArguments, out); // Splat the vector into a matrix. - std::vector matArguments(/*count*/ matrixType.columns(), /*value*/ vectorId); - return this->writeComposite(matArguments, matrixType, out); + SkSTArray<4, SpvId> matArguments; + matArguments.push_back_n(/*n=*/matrixType.columns(), /*t=*/vectorId); + return this->writeOpCompositeConstruct(matrixType, matArguments, out); } SpvId SPIRVCodeGenerator::writeBinaryExpression(const Type& leftType, SpvId lhs, Operator op, const Type& rightType, SpvId rhs, const Type& resultType, OutputStream& out) { // The comma operator ignores the type of the left-hand side entirely. - if (op.kind() == Token::Kind::TK_COMMA) { + if (op.kind() == Operator::Kind::COMMA) { return rhs; } // overall type we are operating on: float2, int, uint4... @@ -2313,11 +2509,11 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const Type& leftType, SpvId lhs, if (leftType.isVector() && rightType.isNumber()) { if (resultType.componentType().isFloat()) { switch (op.kind()) { - case Token::Kind::TK_SLASH: { + case Operator::Kind::SLASH: { rhs = this->writeReciprocal(rightType, rhs, out); [[fallthrough]]; } - case Token::Kind::TK_STAR: { + case Operator::Kind::STAR: { SpvId result = this->nextId(&resultType); this->writeInstruction(SpvOpVectorTimesScalar, this->getType(resultType), result, lhs, rhs, out); @@ -2327,39 +2523,27 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const Type& leftType, SpvId lhs, break; } } - // promote number to vector - const Type& vecType = leftType; - SpvId vec = this->nextId(&vecType); - this->writeOpCode(SpvOpCompositeConstruct, 3 + vecType.columns(), out); - this->writeWord(this->getType(vecType), out); - this->writeWord(vec, out); - for (int i = 0; i < vecType.columns(); i++) { - this->writeWord(rhs, out); - } - rhs = vec; + // Vectorize the right-hand side. + SkSTArray<4, SpvId> arguments; + arguments.push_back_n(/*n=*/leftType.columns(), /*t=*/rhs); + rhs = this->writeOpCompositeConstruct(leftType, arguments, out); operandType = &leftType; } else if (rightType.isVector() && leftType.isNumber()) { if (resultType.componentType().isFloat()) { - if (op.kind() == Token::Kind::TK_STAR) { + if (op.kind() == Operator::Kind::STAR) { SpvId result = this->nextId(&resultType); this->writeInstruction(SpvOpVectorTimesScalar, this->getType(resultType), result, rhs, lhs, out); return result; } } - // promote number to vector - const Type& vecType = rightType; - SpvId vec = this->nextId(&vecType); - this->writeOpCode(SpvOpCompositeConstruct, 3 + vecType.columns(), out); - this->writeWord(this->getType(vecType), out); - this->writeWord(vec, out); - for (int i = 0; i < vecType.columns(); i++) { - this->writeWord(lhs, out); - } - lhs = vec; + // Vectorize the left-hand side. + SkSTArray<4, SpvId> arguments; + arguments.push_back_n(/*n=*/rightType.columns(), /*t=*/lhs); + lhs = this->writeOpCompositeConstruct(rightType, arguments, out); operandType = &rightType; } else if (leftType.isMatrix()) { - if (op.kind() == Token::Kind::TK_STAR) { + if (op.kind() == Operator::Kind::STAR) { // Matrix-times-vector and matrix-times-scalar have dedicated ops in SPIR-V. SpvOp_ spvop; if (rightType.isMatrix()) { @@ -2386,7 +2570,7 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const Type& leftType, SpvId lhs, resultType, out); } } else if (rightType.isMatrix()) { - if (op.kind() == Token::Kind::TK_STAR) { + if (op.kind() == Operator::Kind::STAR) { // Matrix-times-vector and matrix-times-scalar have dedicated ops in SPIR-V. SpvId result = this->nextId(&resultType); if (leftType.isVector()) { @@ -2411,15 +2595,15 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const Type& leftType, SpvId lhs, resultType, out); } } else { - fContext.fErrors->error(leftType.fLine, "unsupported mixed-type expression"); - return -1; + fContext.fErrors->error(leftType.fPosition, "unsupported mixed-type expression"); + return NA; } } else { operandType = &this->getActualType(leftType); SkASSERT(operandType->matches(this->getActualType(rightType))); } switch (op.kind()) { - case Token::Kind::TK_EQEQ: { + case Operator::Kind::EQEQ: { if (operandType->isMatrix()) { return this->writeMatrixComparison(*operandType, lhs, rhs, SpvOpFOrdEqual, SpvOpIEqual, SpvOpAll, SpvOpLogicalAnd, out); @@ -2444,9 +2628,9 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const Type& leftType, SpvId lhs, SpvOpIEqual, SpvOpLogicalEqual, out), *operandType, SpvOpAll, out); } - case Token::Kind::TK_NEQ: + case Operator::Kind::NEQ: if (operandType->isMatrix()) { - return this->writeMatrixComparison(*operandType, lhs, rhs, SpvOpFOrdNotEqual, + return this->writeMatrixComparison(*operandType, lhs, rhs, SpvOpFUnordNotEqual, SpvOpINotEqual, SpvOpAny, SpvOpLogicalOr, out); } if (operandType->isStruct()) { @@ -2456,7 +2640,7 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const Type& leftType, SpvId lhs, return this->writeArrayComparison(*operandType, lhs, op, rhs, out); } [[fallthrough]]; - case Token::Kind::TK_LOGICALXOR: + case Operator::Kind::LOGICALXOR: SkASSERT(resultType.isBoolean()); const Type* tmpType; if (operandType->isVector()) { @@ -2467,44 +2651,44 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const Type& leftType, SpvId lhs, tmpType = &resultType; } return this->foldToBool(this->writeBinaryOperation(*tmpType, *operandType, lhs, rhs, - SpvOpFOrdNotEqual, SpvOpINotEqual, + SpvOpFUnordNotEqual, SpvOpINotEqual, SpvOpINotEqual, SpvOpLogicalNotEqual, out), *operandType, SpvOpAny, out); - case Token::Kind::TK_GT: + case Operator::Kind::GT: SkASSERT(resultType.isBoolean()); return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFOrdGreaterThan, SpvOpSGreaterThan, SpvOpUGreaterThan, SpvOpUndef, out); - case Token::Kind::TK_LT: + case Operator::Kind::LT: SkASSERT(resultType.isBoolean()); return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFOrdLessThan, SpvOpSLessThan, SpvOpULessThan, SpvOpUndef, out); - case Token::Kind::TK_GTEQ: + case Operator::Kind::GTEQ: SkASSERT(resultType.isBoolean()); return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFOrdGreaterThanEqual, SpvOpSGreaterThanEqual, SpvOpUGreaterThanEqual, SpvOpUndef, out); - case Token::Kind::TK_LTEQ: + case Operator::Kind::LTEQ: SkASSERT(resultType.isBoolean()); return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFOrdLessThanEqual, SpvOpSLessThanEqual, SpvOpULessThanEqual, SpvOpUndef, out); - case Token::Kind::TK_PLUS: + case Operator::Kind::PLUS: if (leftType.isMatrix() && rightType.isMatrix()) { SkASSERT(leftType.matches(rightType)); return this->writeComponentwiseMatrixBinary(leftType, lhs, rhs, SpvOpFAdd, out); } return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFAdd, SpvOpIAdd, SpvOpIAdd, SpvOpUndef, out); - case Token::Kind::TK_MINUS: + case Operator::Kind::MINUS: if (leftType.isMatrix() && rightType.isMatrix()) { SkASSERT(leftType.matches(rightType)); return this->writeComponentwiseMatrixBinary(leftType, lhs, rhs, SpvOpFSub, out); } return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFSub, SpvOpISub, SpvOpISub, SpvOpUndef, out); - case Token::Kind::TK_STAR: + case Operator::Kind::STAR: if (leftType.isMatrix() && rightType.isMatrix()) { // matrix multiply SpvId result = this->nextId(&resultType); @@ -2514,58 +2698,55 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const Type& leftType, SpvId lhs, } return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFMul, SpvOpIMul, SpvOpIMul, SpvOpUndef, out); - case Token::Kind::TK_SLASH: + case Operator::Kind::SLASH: if (leftType.isMatrix() && rightType.isMatrix()) { SkASSERT(leftType.matches(rightType)); return this->writeComponentwiseMatrixBinary(leftType, lhs, rhs, SpvOpFDiv, out); } return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFDiv, SpvOpSDiv, SpvOpUDiv, SpvOpUndef, out); - case Token::Kind::TK_PERCENT: + case Operator::Kind::PERCENT: return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFMod, SpvOpSMod, SpvOpUMod, SpvOpUndef, out); - case Token::Kind::TK_SHL: + case Operator::Kind::SHL: return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpUndef, SpvOpShiftLeftLogical, SpvOpShiftLeftLogical, SpvOpUndef, out); - case Token::Kind::TK_SHR: + case Operator::Kind::SHR: return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpUndef, SpvOpShiftRightArithmetic, SpvOpShiftRightLogical, SpvOpUndef, out); - case Token::Kind::TK_BITWISEAND: + case Operator::Kind::BITWISEAND: return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpUndef, SpvOpBitwiseAnd, SpvOpBitwiseAnd, SpvOpUndef, out); - case Token::Kind::TK_BITWISEOR: + case Operator::Kind::BITWISEOR: return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpUndef, SpvOpBitwiseOr, SpvOpBitwiseOr, SpvOpUndef, out); - case Token::Kind::TK_BITWISEXOR: + case Operator::Kind::BITWISEXOR: return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpUndef, SpvOpBitwiseXor, SpvOpBitwiseXor, SpvOpUndef, out); default: - fContext.fErrors->error(0, "unsupported token"); - return -1; + fContext.fErrors->error(Position(), "unsupported token"); + return NA; } } SpvId SPIRVCodeGenerator::writeArrayComparison(const Type& arrayType, SpvId lhs, Operator op, SpvId rhs, OutputStream& out) { // The inputs must be arrays, and the op must be == or !=. - SkASSERT(op.kind() == Token::Kind::TK_EQEQ || op.kind() == Token::Kind::TK_NEQ); + SkASSERT(op.kind() == Operator::Kind::EQEQ || op.kind() == Operator::Kind::NEQ); SkASSERT(arrayType.isArray()); const Type& componentType = arrayType.componentType(); - const SpvId componentTypeId = this->getType(componentType); const int arraySize = arrayType.columns(); SkASSERT(arraySize > 0); // Synthesize equality checks for each item in the array. const Type& boolType = *fContext.fTypes.fBool; - SpvId allComparisons = (SpvId)-1; + SpvId allComparisons = NA; for (int index = 0; index < arraySize; ++index) { // Get the left and right item in the array. - SpvId itemL = this->nextId(&componentType); - this->writeInstruction(SpvOpCompositeExtract, componentTypeId, itemL, lhs, index, out); - SpvId itemR = this->nextId(&componentType); - this->writeInstruction(SpvOpCompositeExtract, componentTypeId, itemR, rhs, index, out); + SpvId itemL = this->writeOpCompositeExtract(componentType, lhs, index, out); + SpvId itemR = this->writeOpCompositeExtract(componentType, rhs, index, out); // Use `writeBinaryExpression` with the requested == or != operator on these items. SpvId comparison = this->writeBinaryExpression(componentType, itemL, op, componentType, itemR, boolType, out); @@ -2578,23 +2759,20 @@ SpvId SPIRVCodeGenerator::writeArrayComparison(const Type& arrayType, SpvId lhs, SpvId SPIRVCodeGenerator::writeStructComparison(const Type& structType, SpvId lhs, Operator op, SpvId rhs, OutputStream& out) { // The inputs must be structs containing fields, and the op must be == or !=. - SkASSERT(op.kind() == Token::Kind::TK_EQEQ || op.kind() == Token::Kind::TK_NEQ); + SkASSERT(op.kind() == Operator::Kind::EQEQ || op.kind() == Operator::Kind::NEQ); SkASSERT(structType.isStruct()); const std::vector& fields = structType.fields(); SkASSERT(!fields.empty()); // Synthesize equality checks for each field in the struct. const Type& boolType = *fContext.fTypes.fBool; - SpvId allComparisons = (SpvId)-1; + SpvId allComparisons = NA; for (int index = 0; index < (int)fields.size(); ++index) { // Get the left and right versions of this field. const Type& fieldType = *fields[index].fType; - const SpvId fieldTypeId = this->getType(fieldType); - SpvId fieldL = this->nextId(&fieldType); - this->writeInstruction(SpvOpCompositeExtract, fieldTypeId, fieldL, lhs, index, out); - SpvId fieldR = this->nextId(&fieldType); - this->writeInstruction(SpvOpCompositeExtract, fieldTypeId, fieldR, rhs, index, out); + SpvId fieldL = this->writeOpCompositeExtract(fieldType, lhs, index, out); + SpvId fieldR = this->writeOpCompositeExtract(fieldType, rhs, index, out); // Use `writeBinaryExpression` with the requested == or != operator on these fields. SpvId comparison = this->writeBinaryExpression(fieldType, fieldL, op, fieldType, fieldR, boolType, out); @@ -2607,7 +2785,7 @@ SpvId SPIRVCodeGenerator::writeStructComparison(const Type& structType, SpvId lh SpvId SPIRVCodeGenerator::mergeComparisons(SpvId comparison, SpvId allComparisons, Operator op, OutputStream& out) { // If this is the first entry, we don't need to merge comparison results with anything. - if (allComparisons == (SpvId)-1) { + if (allComparisons == NA) { return comparison; } // Use LogicalAnd or LogicalOr to combine the comparison with all the other comparisons. @@ -2615,24 +2793,24 @@ SpvId SPIRVCodeGenerator::mergeComparisons(SpvId comparison, SpvId allComparison SpvId boolTypeId = this->getType(boolType); SpvId logicalOp = this->nextId(&boolType); switch (op.kind()) { - case Token::Kind::TK_EQEQ: + case Operator::Kind::EQEQ: this->writeInstruction(SpvOpLogicalAnd, boolTypeId, logicalOp, comparison, allComparisons, out); break; - case Token::Kind::TK_NEQ: + case Operator::Kind::NEQ: this->writeInstruction(SpvOpLogicalOr, boolTypeId, logicalOp, comparison, allComparisons, out); break; default: SkDEBUGFAILF("mergeComparisons only supports == and !=, not %s", op.operatorName()); - return (SpvId)-1; + return NA; } return logicalOp; } static float division_by_literal_value(Operator op, const Expression& right) { // If this is a division by a literal value, returns that literal value. Otherwise, returns 0. - if (op.kind() == Token::Kind::TK_SLASH && right.isFloatLiteral()) { + if (op.kind() == Operator::Kind::SLASH && right.isFloatLiteral()) { float rhsValue = right.as().floatValue(); if (std::isfinite(rhsValue)) { return rhsValue; @@ -2647,17 +2825,17 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const BinaryExpression& b, Outpu Operator op = b.getOperator(); switch (op.kind()) { - case Token::Kind::TK_EQ: { + case Operator::Kind::EQ: { // Handles assignment. SpvId rhs = this->writeExpression(*right, out); this->getLValue(*left, out)->store(rhs, out); return rhs; } - case Token::Kind::TK_LOGICALAND: + case Operator::Kind::LOGICALAND: // Handles short-circuiting; we don't necessarily evaluate both LHS and RHS. return this->writeLogicalAnd(*b.left(), *b.right(), out); - case Token::Kind::TK_LOGICALOR: + case Operator::Kind::LOGICALOR: // Handles short-circuiting; we don't necessarily evaluate both LHS and RHS. return this->writeLogicalOr(*b.left(), *b.right(), out); @@ -2681,7 +2859,7 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const BinaryExpression& b, Outpu // Rewrite floating-point division by a literal into multiplication by the reciprocal. // This converts `expr / 2` into `expr * 0.5` // This improves codegen, especially for certain types of divides (e.g. vector/scalar). - op = Operator(Token::Kind::TK_STAR); + op = Operator(Operator::Kind::STAR); rhs = this->writeLiteral(1.0 / rhsValue, right->type()); } else { // Write the right-hand side expression normally. @@ -2700,6 +2878,9 @@ SpvId SPIRVCodeGenerator::writeLogicalAnd(const Expression& left, const Expressi OutputStream& out) { SpvId falseConstant = this->writeLiteral(0.0, *fContext.fTypes.fBool); SpvId lhs = this->writeExpression(left, out); + + size_t numReachableOps = fReachableOps.size(); + SpvId rhsLabel = this->nextId(nullptr); SpvId end = this->nextId(nullptr); SpvId lhsBlock = fCurrentBlock; @@ -2713,6 +2894,9 @@ SpvId SPIRVCodeGenerator::writeLogicalAnd(const Expression& left, const Expressi SpvId result = this->nextId(nullptr); this->writeInstruction(SpvOpPhi, this->getType(*fContext.fTypes.fBool), result, falseConstant, lhsBlock, rhs, rhsBlock, out); + + this->pruneReachableOps(numReachableOps); + return result; } @@ -2720,6 +2904,9 @@ SpvId SPIRVCodeGenerator::writeLogicalOr(const Expression& left, const Expressio OutputStream& out) { SpvId trueConstant = this->writeLiteral(1.0, *fContext.fTypes.fBool); SpvId lhs = this->writeExpression(left, out); + + size_t numReachableOps = fReachableOps.size(); + SpvId rhsLabel = this->nextId(nullptr); SpvId end = this->nextId(nullptr); SpvId lhsBlock = fCurrentBlock; @@ -2733,6 +2920,9 @@ SpvId SPIRVCodeGenerator::writeLogicalOr(const Expression& left, const Expressio SpvId result = this->nextId(nullptr); this->writeInstruction(SpvOpPhi, this->getType(*fContext.fTypes.fBool), result, trueConstant, lhsBlock, rhs, rhsBlock, out); + + this->pruneReachableOps(numReachableOps); + return result; } @@ -2750,6 +2940,9 @@ SpvId SPIRVCodeGenerator::writeTernaryExpression(const TernaryExpression& t, Out out); return result; } + + size_t numReachableOps = fReachableOps.size(); + // was originally using OpPhi to choose the result, but for some reason that is crashing on // Adreno. Switched to storing the result in a temp variable as glslang does. SpvId var = this->nextId(nullptr); @@ -2769,28 +2962,37 @@ SpvId SPIRVCodeGenerator::writeTernaryExpression(const TernaryExpression& t, Out this->writeLabel(end, out); SpvId result = this->nextId(&type); this->writeInstruction(SpvOpLoad, this->getType(type), result, var, out); + + this->pruneReachableOps(numReachableOps); + return result; } SpvId SPIRVCodeGenerator::writePrefixExpression(const PrefixExpression& p, OutputStream& out) { const Type& type = p.type(); - if (p.getOperator().kind() == Token::Kind::TK_MINUS) { - SpvId result = this->nextId(&type); - SpvId typeId = this->getType(type); - SpvId expr = this->writeExpression(*p.operand(), out); + if (p.getOperator().kind() == Operator::Kind::MINUS) { + SpvOp_ negateOp = SpvOpFNegate; if (is_float(fContext, type)) { - this->writeInstruction(SpvOpFNegate, typeId, result, expr, out); + negateOp = SpvOpFNegate; } else if (is_signed(fContext, type) || is_unsigned(fContext, type)) { - this->writeInstruction(SpvOpSNegate, typeId, result, expr, out); + negateOp = SpvOpSNegate; } else { SkDEBUGFAILF("unsupported prefix expression %s", p.description().c_str()); } + + SpvId expr = this->writeExpression(*p.operand(), out); + if (type.isMatrix()) { + return this->writeComponentwiseMatrixUnary(type, expr, negateOp, out); + } + SpvId result = this->nextId(&type); + SpvId typeId = this->getType(type); + this->writeInstruction(negateOp, typeId, result, expr, out); return result; } switch (p.getOperator().kind()) { - case Token::Kind::TK_PLUS: + case Operator::Kind::PLUS: return this->writeExpression(*p.operand(), out); - case Token::Kind::TK_PLUSPLUS: { + case Operator::Kind::PLUSPLUS: { std::unique_ptr lv = this->getLValue(*p.operand(), out); SpvId one = this->writeLiteral(1.0, type); SpvId result = this->writeBinaryOperation(type, type, lv->load(out), one, @@ -2799,7 +3001,7 @@ SpvId SPIRVCodeGenerator::writePrefixExpression(const PrefixExpression& p, Outpu lv->store(result, out); return result; } - case Token::Kind::TK_MINUSMINUS: { + case Operator::Kind::MINUSMINUS: { std::unique_ptr lv = this->getLValue(*p.operand(), out); SpvId one = this->writeLiteral(1.0, type); SpvId result = this->writeBinaryOperation(type, type, lv->load(out), one, SpvOpFSub, @@ -2807,14 +3009,14 @@ SpvId SPIRVCodeGenerator::writePrefixExpression(const PrefixExpression& p, Outpu lv->store(result, out); return result; } - case Token::Kind::TK_LOGICALNOT: { + case Operator::Kind::LOGICALNOT: { SkASSERT(p.operand()->type().isBoolean()); SpvId result = this->nextId(nullptr); this->writeInstruction(SpvOpLogicalNot, this->getType(type), result, this->writeExpression(*p.operand(), out), out); return result; } - case Token::Kind::TK_BITWISENOT: { + case Operator::Kind::BITWISENOT: { SpvId result = this->nextId(nullptr); this->writeInstruction(SpvOpNot, this->getType(type), result, this->writeExpression(*p.operand(), out), out); @@ -2822,7 +3024,7 @@ SpvId SPIRVCodeGenerator::writePrefixExpression(const PrefixExpression& p, Outpu } default: SkDEBUGFAILF("unsupported prefix expression: %s", p.description().c_str()); - return -1; + return NA; } } @@ -2832,13 +3034,13 @@ SpvId SPIRVCodeGenerator::writePostfixExpression(const PostfixExpression& p, Out SpvId result = lv->load(out); SpvId one = this->writeLiteral(1.0, type); switch (p.getOperator().kind()) { - case Token::Kind::TK_PLUSPLUS: { + case Operator::Kind::PLUSPLUS: { SpvId temp = this->writeBinaryOperation(type, type, result, one, SpvOpFAdd, SpvOpIAdd, SpvOpIAdd, SpvOpUndef, out); lv->store(temp, out); return result; } - case Token::Kind::TK_MINUSMINUS: { + case Operator::Kind::MINUSMINUS: { SpvId temp = this->writeBinaryOperation(type, type, result, one, SpvOpFSub, SpvOpISub, SpvOpISub, SpvOpUndef, out); lv->store(temp, out); @@ -2846,7 +3048,7 @@ SpvId SPIRVCodeGenerator::writePostfixExpression(const PostfixExpression& p, Out } default: SkDEBUGFAILF("unsupported postfix expression %s", p.description().c_str()); - return -1; + return NA; } } @@ -2855,31 +3057,21 @@ SpvId SPIRVCodeGenerator::writeLiteral(const Literal& l) { } SpvId SPIRVCodeGenerator::writeLiteral(double value, const Type& type) { - int32_t valueBits; - if (type.isFloat()) { - float fValue = value; - memcpy(&valueBits, &fValue, sizeof(valueBits)); - } else { - SKSL_INT iValue = value; - valueBits = iValue; - } - - SPIRVNumberConstant key{valueBits, type.numberKind()}; - auto [iter, newlyCreated] = fNumberConstants.insert({key, (SpvId)-1}); - if (newlyCreated) { - SpvId result = this->nextId(nullptr); - iter->second = result; - - if (type.isBoolean()) { - this->writeInstruction(valueBits ? SpvOpConstantTrue : SpvOpConstantFalse, - this->getType(type), result, fConstantBuffer); - } else { - this->writeInstruction(SpvOpConstant, this->getType(type), result, - (SpvId)valueBits, fConstantBuffer); + switch (type.numberKind()) { + case Type::NumberKind::kFloat: { + float floatVal = value; + int32_t valueBits; + memcpy(&valueBits, &floatVal, sizeof(valueBits)); + return this->writeOpConstant(type, valueBits); + } + case Type::NumberKind::kBoolean: { + return value ? this->writeOpConstantTrue(type) + : this->writeOpConstantFalse(type); + } + default: { + return this->writeOpConstant(type, (SKSL_INT)value); } } - - return iter->second; } SpvId SPIRVCodeGenerator::writeFunctionStart(const FunctionDeclaration& f, OutputStream& out) { @@ -2895,7 +3087,7 @@ SpvId SPIRVCodeGenerator::writeFunctionStart(const FunctionDeclaration& f, Outpu fNameBuffer); for (const Variable* parameter : f.parameters()) { SpvId id = this->nextId(nullptr); - fVariableMap[parameter] = id; + fVariableMap.set(parameter, id); SpvId type = this->getPointerType(parameter->type(), SpvStorageClassFunction); this->writeInstruction(SpvOpFunctionParameter, type, id, out); } @@ -2903,6 +3095,8 @@ SpvId SPIRVCodeGenerator::writeFunctionStart(const FunctionDeclaration& f, Outpu } SpvId SPIRVCodeGenerator::writeFunction(const FunctionDefinition& f, OutputStream& out) { + size_t numReachableOps = fReachableOps.size(); + fVariableBuffer.reset(); SpvId result = this->writeFunctionStart(f.declaration(), out); fCurrentBlock = 0; @@ -2922,10 +3116,11 @@ SpvId SPIRVCodeGenerator::writeFunction(const FunctionDefinition& f, OutputStrea } } this->writeInstruction(SpvOpFunctionEnd, out); + this->pruneReachableOps(numReachableOps); return result; } -void SPIRVCodeGenerator::writeLayout(const Layout& layout, SpvId target, int line) { +void SPIRVCodeGenerator::writeLayout(const Layout& layout, SpvId target, Position pos) { bool isPushConstant = (layout.fFlags & Layout::kPushConstant_Flag); if (layout.fLocation >= 0) { this->writeInstruction(SpvOpDecorate, target, SpvDecorationLocation, layout.fLocation, @@ -2933,7 +3128,7 @@ void SPIRVCodeGenerator::writeLayout(const Layout& layout, SpvId target, int lin } if (layout.fBinding >= 0) { if (isPushConstant) { - fContext.fErrors->error(line, "Can't apply 'binding' to push constants"); + fContext.fErrors->error(pos, "Can't apply 'binding' to push constants"); } else { this->writeInstruction(SpvOpDecorate, target, SpvDecorationBinding, layout.fBinding, fDecorationBuffer); @@ -2945,7 +3140,7 @@ void SPIRVCodeGenerator::writeLayout(const Layout& layout, SpvId target, int lin } if (layout.fSet >= 0) { if (isPushConstant) { - fContext.fErrors->error(line, "Can't apply 'set' to push constants"); + fContext.fErrors->error(pos, "Can't apply 'set' to push constants"); } else { this->writeInstruction(SpvOpDecorate, target, SpvDecorationDescriptorSet, layout.fSet, fDecorationBuffer); @@ -2995,7 +3190,7 @@ SpvId SPIRVCodeGenerator::writeInterfaceBlock(const InterfaceBlock& intf, bool a const Variable& intfVar = intf.variable(); const Type& type = intfVar.type(); if (!MemoryLayout::LayoutIsSupported(type)) { - fContext.fErrors->error(type.fLine, "type '" + type.displayName() + + fContext.fErrors->error(type.fPosition, "type '" + type.displayName() + "' is not permitted here"); return this->nextId(nullptr); } @@ -3006,7 +3201,8 @@ SpvId SPIRVCodeGenerator::writeInterfaceBlock(const InterfaceBlock& intf, bool a // entirely new block when the variable is referenced. And we can't modify the existing // block, so we instead create a modified copy of it and write that. std::vector fields = type.fields(); - fields.emplace_back(Modifiers(Layout(/*flags=*/0, + fields.emplace_back(Position(), + Modifiers(Layout(/*flags=*/0, /*location=*/-1, fProgram.fConfig->fSettings.fRTFlipOffset, /*binding=*/-1, @@ -3021,26 +3217,28 @@ SpvId SPIRVCodeGenerator::writeInterfaceBlock(const InterfaceBlock& intf, bool a AutoAttachPoolToThread attach(fProgram.fPool.get()); const Type* rtFlipStructType = fProgram.fSymbols->takeOwnershipOfSymbol(Type::MakeStructType( - type.fLine, type.name(), std::move(fields), /*interfaceBlock=*/true)); + type.fPosition, type.name(), std::move(fields), + /*interfaceBlock=*/true)); const Variable* modifiedVar = fProgram.fSymbols->takeOwnershipOfSymbol( - std::make_unique(intfVar.fLine, + std::make_unique(intfVar.fPosition, + intfVar.modifiersPosition(), &intfVar.modifiers(), intfVar.name(), rtFlipStructType, intfVar.isBuiltin(), intfVar.storage())); - fSPIRVBonusVariables.insert(modifiedVar); - InterfaceBlock modifiedCopy(intf.fLine, + fSPIRVBonusVariables.add(modifiedVar); + InterfaceBlock modifiedCopy(intf.fPosition, *modifiedVar, intf.typeName(), intf.instanceName(), intf.arraySize(), intf.typeOwner()); result = this->writeInterfaceBlock(modifiedCopy, false); - fProgram.fSymbols->add(std::make_unique( - /*line=*/-1, modifiedVar, rtFlipStructType->fields().size() - 1)); + fProgram.fSymbols->add(std::make_unique(Position(), modifiedVar, + rtFlipStructType->fields().size() - 1)); } - fVariableMap[&intfVar] = result; + fVariableMap.set(&intfVar, result); fWroteRTFlip = true; return result; } @@ -3056,15 +3254,15 @@ SpvId SPIRVCodeGenerator::writeInterfaceBlock(const InterfaceBlock& intf, bool a if (storageClass == SpvStorageClassUniform && layout.fSet < 0) { layout.fSet = fProgram.fConfig->fSettings.fDefaultUniformSet; } - this->writeLayout(layout, result, intfVar.fLine); - fVariableMap[&intfVar] = result; + this->writeLayout(layout, result, intfVar.fPosition); + fVariableMap.set(&intfVar, result); return result; } bool SPIRVCodeGenerator::isDead(const Variable& var) const { // During SPIR-V code generation, we synthesize some extra bonus variables that don't actually // exist in the Program at all and aren't tracked by the ProgramUsage. They aren't dead, though. - if (fSPIRVBonusVariables.count(&var)) { + if (fSPIRVBonusVariables.contains(&var)) { return false; } ProgramUsage::VariableCounts counts = fProgram.usage()->get(var); @@ -3096,13 +3294,7 @@ void SPIRVCodeGenerator::writeGlobalVar(ProgramKind kind, const VarDeclaration& // Add this global to the variable map. const Type& type = var.type(); SpvId id = this->nextId(&type); - fVariableMap[&var] = id; - if (var.modifiers().fLayout.fBuiltin == SK_SECONDARYFRAGCOLOR_BUILTIN) { - // sk_SecondaryFragColor corresponds to gl_SecondaryFragColorEXT, which isn't supposed to - // appear in a SPIR-V program (it's only valid in ES2). Report an error. - fContext.fErrors->error(varDecl.fLine, "sk_SecondaryFragColor is not allowed in SPIR-V"); - return; - } + fVariableMap.set(&var, id); Layout layout = var.modifiers().fLayout; if (layout.fSet < 0 && storageClass == SpvStorageClassUniformConstant) { layout.fSet = fProgram.fConfig->fSettings.fDefaultUniformSet; @@ -3112,12 +3304,12 @@ void SPIRVCodeGenerator::writeGlobalVar(ProgramKind kind, const VarDeclaration& this->writeInstruction(SpvOpName, id, var.name(), fNameBuffer); if (varDecl.value()) { SkASSERT(!fCurrentBlock); - fCurrentBlock = -1; + fCurrentBlock = NA; SpvId value = this->writeExpression(*varDecl.value(), fGlobalInitializersBuffer); this->writeInstruction(SpvOpStore, id, value, fGlobalInitializersBuffer); fCurrentBlock = 0; } - this->writeLayout(layout, id, var.fLine); + this->writeLayout(layout, id, var.fPosition); if (var.modifiers().fFlags & Modifiers::kFlat_Flag) { this->writeInstruction(SpvOpDecorate, id, SpvDecorationFlat, fDecorationBuffer); } @@ -3130,7 +3322,7 @@ void SPIRVCodeGenerator::writeGlobalVar(ProgramKind kind, const VarDeclaration& void SPIRVCodeGenerator::writeVarDeclaration(const VarDeclaration& varDecl, OutputStream& out) { const Variable& var = varDecl.var(); SpvId id = this->nextId(&var.type()); - fVariableMap[&var] = id; + fVariableMap.set(&var, id); SpvId type = this->getPointerType(var.type(), SpvStorageClassFunction); this->writeInstruction(SpvOpVariable, type, id, SpvStorageClassFunction, fVariableBuffer); this->writeInstruction(SpvOpName, id, var.name(), fNameBuffer); @@ -3190,10 +3382,29 @@ void SPIRVCodeGenerator::writeBlock(const Block& b, OutputStream& out) { } } +void SPIRVCodeGenerator::pruneReachableOps(size_t numReachableOps) { + while (fReachableOps.size() > numReachableOps) { + SpvId prunableSpvId = fReachableOps.back(); + const Instruction* prunableOp = fSpvIdCache.find(prunableSpvId); + + if (prunableOp) { + fOpCache.remove(*prunableOp); + fSpvIdCache.remove(prunableSpvId); + } else { + SkDEBUGFAIL("reachable-op list contains unrecognized SpvId"); + } + + fReachableOps.pop_back(); + } +} + void SPIRVCodeGenerator::writeIfStatement(const IfStatement& stmt, OutputStream& out) { SpvId test = this->writeExpression(*stmt.test(), out); SpvId ifTrue = this->nextId(nullptr); SpvId ifFalse = this->nextId(nullptr); + + size_t numReachableOps = fReachableOps.size(); + if (stmt.ifFalse()) { SpvId end = this->nextId(nullptr); this->writeInstruction(SpvOpSelectionMerge, end, SpvSelectionControlMaskNone, out); @@ -3203,6 +3414,8 @@ void SPIRVCodeGenerator::writeIfStatement(const IfStatement& stmt, OutputStream& if (fCurrentBlock) { this->writeInstruction(SpvOpBranch, end, out); } + this->pruneReachableOps(numReachableOps); + this->writeLabel(ifFalse, out); this->writeStatement(*stmt.ifFalse(), out); if (fCurrentBlock) { @@ -3219,12 +3432,17 @@ void SPIRVCodeGenerator::writeIfStatement(const IfStatement& stmt, OutputStream& } this->writeLabel(ifFalse, out); } + + this->pruneReachableOps(numReachableOps); } void SPIRVCodeGenerator::writeForStatement(const ForStatement& f, OutputStream& out) { if (f.initializer()) { this->writeStatement(*f.initializer(), out); } + + size_t numReachableOps = fReachableOps.size(); + SpvId header = this->nextId(nullptr); SpvId start = this->nextId(nullptr); SpvId body = this->nextId(nullptr); @@ -3256,9 +3474,13 @@ void SPIRVCodeGenerator::writeForStatement(const ForStatement& f, OutputStream& this->writeLabel(end, out); fBreakTarget.pop(); fContinueTarget.pop(); + + this->pruneReachableOps(numReachableOps); } void SPIRVCodeGenerator::writeDoStatement(const DoStatement& d, OutputStream& out) { + size_t numReachableOps = fReachableOps.size(); + SpvId header = this->nextId(nullptr); SpvId start = this->nextId(nullptr); SpvId next = this->nextId(nullptr); @@ -3283,10 +3505,15 @@ void SPIRVCodeGenerator::writeDoStatement(const DoStatement& d, OutputStream& ou this->writeLabel(end, out); fBreakTarget.pop(); fContinueTarget.pop(); + + this->pruneReachableOps(numReachableOps); } void SPIRVCodeGenerator::writeSwitchStatement(const SwitchStatement& s, OutputStream& out) { SpvId value = this->writeExpression(*s.value(), out); + + size_t numReachableOps = fReachableOps.size(); + std::vector labels; SpvId end = this->nextId(nullptr); SpvId defaultLabel = end; @@ -3323,6 +3550,7 @@ void SPIRVCodeGenerator::writeSwitchStatement(const SwitchStatement& s, OutputSt if (fCurrentBlock) { this->writeInstruction(SpvOpBranch, labels[i + 1], out); } + this->pruneReachableOps(numReachableOps); } this->writeLabel(end, out); fBreakTarget.pop(); @@ -3354,46 +3582,46 @@ SPIRVCodeGenerator::EntrypointAdapter SPIRVCodeGenerator::writeEntrypointAdapter const Symbol* skFragColorSymbol = (*symbolTable)["sk_FragColor"]; SkASSERT(skFragColorSymbol); const Variable& skFragColorVar = skFragColorSymbol->as(); - auto skFragColorRef = std::make_unique(/*line=*/-1, &skFragColorVar, + auto skFragColorRef = std::make_unique(Position(), &skFragColorVar, VariableReference::RefKind::kWrite); // Synthesize a call to the `main()` function. if (!main.returnType().matches(skFragColorRef->type())) { - fContext.fErrors->error(main.fLine, "SPIR-V does not support returning '" + - main.returnType().description() + "' from main()"); + fContext.fErrors->error(main.fPosition, "SPIR-V does not support returning '" + + main.returnType().description() + "' from main()"); return {}; } ExpressionArray args; if (main.parameters().size() == 1) { if (!main.parameters()[0]->type().matches(*fContext.fTypes.fFloat2)) { - fContext.fErrors->error(main.fLine, + fContext.fErrors->error(main.fPosition, "SPIR-V does not support parameter of type '" + main.parameters()[0]->type().description() + "' to main()"); return {}; } args.push_back(dsl::Float2(0).release()); } - auto callMainFn = std::make_unique(/*line=*/-1, &main.returnType(), &main, + auto callMainFn = std::make_unique(Position(), &main.returnType(), &main, std::move(args)); // Synthesize `skFragColor = main()` as a BinaryExpression. auto assignmentStmt = std::make_unique(std::make_unique( - /*line=*/-1, + Position(), std::move(skFragColorRef), - Token::Kind::TK_EQ, + Operator::Kind::EQ, std::move(callMainFn), &main.returnType())); // Function bodies are always wrapped in a Block. StatementArray entrypointStmts; entrypointStmts.push_back(std::move(assignmentStmt)); - auto entrypointBlock = Block::Make(/*line=*/-1, std::move(entrypointStmts), - symbolTable, /*isScope=*/true); + auto entrypointBlock = Block::Make(Position(), std::move(entrypointStmts), + Block::Kind::kBracedScope, symbolTable); // Declare an entrypoint function. EntrypointAdapter adapter; adapter.fLayout = {}; adapter.fModifiers = Modifiers{adapter.fLayout, Modifiers::kHasSideEffects_Flag}; adapter.entrypointDecl = - std::make_unique(/*line=*/-1, + std::make_unique(Position(), &adapter.fModifiers, "_entrypoint", /*parameters=*/std::vector{}, @@ -3401,7 +3629,7 @@ SPIRVCodeGenerator::EntrypointAdapter SPIRVCodeGenerator::writeEntrypointAdapter /*builtin=*/false); // Define it. adapter.entrypointDef = FunctionDefinition::Convert(fContext, - /*line=*/-1, + Position(), *adapter.entrypointDecl, std::move(entrypointBlock), /*builtin=*/false); @@ -3418,14 +3646,13 @@ void SPIRVCodeGenerator::writeUniformBuffer(std::shared_ptr topLeve // a lookup table of variables to UniformBuffer field indices. std::vector fields; fields.reserve(fTopLevelUniforms.size()); - fTopLevelUniformMap.reserve(fTopLevelUniforms.size()); for (const VarDeclaration* topLevelUniform : fTopLevelUniforms) { const Variable* var = &topLevelUniform->var(); - fTopLevelUniformMap[var] = (int)fields.size(); - fields.emplace_back(var->modifiers(), var->name(), &var->type()); + fTopLevelUniformMap.set(var, (int)fields.size()); + fields.emplace_back(var->fPosition, var->modifiers(), var->name(), &var->type()); } - fUniformBuffer.fStruct = Type::MakeStructType( - /*line=*/-1, kUniformBufferName, std::move(fields), /*interfaceBlock=*/true); + fUniformBuffer.fStruct = Type::MakeStructType(Position(), kUniformBufferName, std::move(fields), + /*interfaceBlock=*/true); // Create a global variable to contain this struct. Layout layout; @@ -3434,19 +3661,22 @@ void SPIRVCodeGenerator::writeUniformBuffer(std::shared_ptr topLeve Modifiers modifiers{layout, Modifiers::kUniform_Flag}; fUniformBuffer.fInnerVariable = std::make_unique( - /*line=*/-1, fProgram.fModifiers->add(modifiers), kUniformBufferName, - fUniformBuffer.fStruct.get(), /*builtin=*/false, Variable::Storage::kGlobal); + /*pos=*/Position(), /*modifiersPosition=*/Position(), + fProgram.fModifiers->add(modifiers), kUniformBufferName, fUniformBuffer.fStruct.get(), + /*builtin=*/false, Variable::Storage::kGlobal); // Create an interface block object for this global variable. fUniformBuffer.fInterfaceBlock = std::make_unique( - /*offset=*/-1, *fUniformBuffer.fInnerVariable, kUniformBufferName, + Position(), *fUniformBuffer.fInnerVariable, kUniformBufferName, kUniformBufferName, /*arraySize=*/0, topLevelSymbolTable); // Generate an interface block and hold onto its ID. fUniformBufferId = this->writeInterfaceBlock(*fUniformBuffer.fInterfaceBlock); } -void SPIRVCodeGenerator::addRTFlipUniform(int line) { +void SPIRVCodeGenerator::addRTFlipUniform(Position pos) { + SkASSERT(!fProgram.fConfig->fSettings.fForceNoRTFlip); + if (fWroteRTFlip) { return; } @@ -3455,9 +3685,10 @@ void SPIRVCodeGenerator::addRTFlipUniform(int line) { fWroteRTFlip = true; std::vector fields; if (fProgram.fConfig->fSettings.fRTFlipOffset < 0) { - fContext.fErrors->error(line, "RTFlipOffset is negative"); + fContext.fErrors->error(pos, "RTFlipOffset is negative"); } - fields.emplace_back(Modifiers(Layout(/*flags=*/0, + fields.emplace_back(pos, + Modifiers(Layout(/*flags=*/0, /*location=*/-1, fProgram.fConfig->fSettings.fRTFlipOffset, /*binding=*/-1, @@ -3470,17 +3701,17 @@ void SPIRVCodeGenerator::addRTFlipUniform(int line) { fContext.fTypes.fFloat2.get()); std::string_view name = "sksl_synthetic_uniforms"; const Type* intfStruct = fSynthetics.takeOwnershipOfSymbol( - Type::MakeStructType(/*line=*/-1, name, fields, /*interfaceBlock=*/true)); + Type::MakeStructType(Position(), name, fields, /*interfaceBlock=*/true)); bool usePushConstants = fProgram.fConfig->fSettings.fUsePushConstants; int binding = -1, set = -1; if (!usePushConstants) { binding = fProgram.fConfig->fSettings.fRTFlipBinding; if (binding == -1) { - fContext.fErrors->error(line, "layout(binding=...) is required in SPIR-V"); + fContext.fErrors->error(pos, "layout(binding=...) is required in SPIR-V"); } set = fProgram.fConfig->fSettings.fRTFlipSet; if (set == -1) { - fContext.fErrors->error(line, "layout(set=...) is required in SPIR-V"); + fContext.fErrors->error(pos, "layout(set=...) is required in SPIR-V"); } } int flags = usePushConstants ? Layout::Flag::kPushConstant_Flag : 0; @@ -3499,18 +3730,19 @@ void SPIRVCodeGenerator::addRTFlipUniform(int line) { modsPtr = fProgram.fModifiers->add(modifiers); } const Variable* intfVar = fSynthetics.takeOwnershipOfSymbol( - std::make_unique(/*line=*/-1, + std::make_unique(/*pos=*/Position(), + /*modifiersPosition=*/Position(), modsPtr, name, intfStruct, /*builtin=*/false, Variable::Storage::kGlobal)); - fSPIRVBonusVariables.insert(intfVar); + fSPIRVBonusVariables.add(intfVar); { AutoAttachPoolToThread attach(fProgram.fPool.get()); - fProgram.fSymbols->add(std::make_unique(/*line=*/-1, intfVar, /*field=*/0)); + fProgram.fSymbols->add(std::make_unique(Position(), intfVar, /*field=*/0)); } - InterfaceBlock intf(/*line=*/-1, + InterfaceBlock intf(Position(), *intfVar, name, /*instanceName=*/"", @@ -3529,7 +3761,7 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream& if (e->is()) { const FunctionDefinition& funcDef = e->as(); const FunctionDeclaration& funcDecl = funcDef.declaration(); - fFunctionMap[&funcDecl] = this->nextId(nullptr); + fFunctionMap.set(&funcDecl, this->nextId(nullptr)); if (funcDecl.isMain()) { main = &funcDecl; } @@ -3537,7 +3769,7 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream& } // Make sure we have a main() function. if (!main) { - fContext.fErrors->error(/*line=*/-1, "program does not contain a main() function"); + fContext.fErrors->error(Position(), "program does not contain a main() function"); return; } // Emit interface blocks. @@ -3571,7 +3803,7 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream& if (main->returnType().matches(*fContext.fTypes.fHalf4)) { adapter = this->writeEntrypointAdapter(*main); if (adapter.entrypointDecl) { - fFunctionMap[adapter.entrypointDecl.get()] = this->nextId(nullptr); + fFunctionMap.set(adapter.entrypointDecl.get(), this->nextId(nullptr)); this->writeFunction(*adapter.entrypointDef, body); main = adapter.entrypointDecl.get(); } @@ -3583,12 +3815,11 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream& } } // Add global in/out variables to the list of interface variables. - for (auto entry : fVariableMap) { - const Variable* var = entry.first; + for (const auto& [var, spvId] : fVariableMap) { if (var->storage() == Variable::Storage::kGlobal && (var->modifiers().fFlags & (Modifiers::kIn_Flag | Modifiers::kOut_Flag)) && !this->isDead(*var)) { - interfaceVars.insert(entry.second); + interfaceVars.insert(spvId); } } this->writeCapabilities(out); @@ -3624,7 +3855,6 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream& } } - write_stringstream(fExtraGlobalsBuffer, out); write_stringstream(fNameBuffer, out); write_stringstream(fDecorationBuffer, out); write_stringstream(fConstantBuffer, out); @@ -3641,7 +3871,7 @@ bool SPIRVCodeGenerator::generateCode() { this->writeWord(fIdCount, *fOut); this->writeWord(0, *fOut); // reserved, always zero write_stringstream(buffer, *fOut); - fContext.fErrors->reportPendingErrors(PositionInfo()); + fContext.fErrors->reportPendingErrors(Position()); return fContext.fErrors->errorCount() == 0; } diff --git a/third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.h b/third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.h index d1730203266f..84f766541638 100644 --- a/third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.h +++ b/third_party/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator.h @@ -8,17 +8,35 @@ #ifndef SKSL_SPIRVCODEGENERATOR #define SKSL_SPIRVCODEGENERATOR -#include -#include -#include - -#include "src/core/SkOpts.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLLayout.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLProgramKind.h" +#include "include/private/SkTArray.h" +#include "include/private/SkTHash.h" #include "src/sksl/SkSLMemoryLayout.h" #include "src/sksl/SkSLStringStream.h" #include "src/sksl/codegen/SkSLCodeGenerator.h" +#include "src/sksl/ir/SkSLFunctionDeclaration.h" +#include "src/sksl/ir/SkSLFunctionDefinition.h" +#include "src/sksl/ir/SkSLInterfaceBlock.h" +#include "src/sksl/ir/SkSLSymbolTable.h" +#include "src/sksl/ir/SkSLType.h" +#include "src/sksl/ir/SkSLVariable.h" +#include "src/sksl/spirv.h" + +#include +#include +#include +#include +#include +#include + +template class SkSpan; namespace SkSL { +class AnyConstructor; class BinaryExpression; class Block; class ConstructorCompound; @@ -27,89 +45,50 @@ class ConstructorDiagonalMatrix; class ConstructorMatrixResize; class ConstructorScalarCast; class ConstructorSplat; +class Context; class DoStatement; +class Expression; class FieldAccess; class ForStatement; class FunctionCall; -class FunctionDeclaration; -class FunctionDefinition; -class FunctionPrototype; class IfStatement; -struct IndexExpression; -class InterfaceBlock; -enum IntrinsicKind : int8_t; class Literal; class Operator; +class OutputStream; +class Position; class PostfixExpression; class PrefixExpression; +class ProgramElement; class ReturnStatement; -class Setting; -class StructDefinition; +class Statement; class SwitchStatement; -struct Swizzle; class TernaryExpression; class VarDeclaration; class VariableReference; - -struct SPIRVNumberConstant { - bool operator==(const SPIRVNumberConstant& that) const { - return fValueBits == that.fValueBits && - fKind == that.fKind; - } - int32_t fValueBits; - SkSL::Type::NumberKind fKind; -}; - -struct SPIRVVectorConstant { - bool operator==(const SPIRVVectorConstant& that) const { - return fTypeId == that.fTypeId && - fValueId[0] == that.fValueId[0] && - fValueId[1] == that.fValueId[1] && - fValueId[2] == that.fValueId[2] && - fValueId[3] == that.fValueId[3]; - } - SpvId fTypeId; - SpvId fValueId[4]; -}; - -} // namespace SkSL - -namespace std { - -template <> -struct hash { - size_t operator()(const SkSL::SPIRVNumberConstant& key) const { - return key.fValueBits ^ (int)key.fKind; - } -}; - -template <> -struct hash { - size_t operator()(const SkSL::SPIRVVectorConstant& key) const { - return SkOpts::hash(&key, sizeof(key)); - } -}; - -} // namespace std - -namespace SkSL { +enum IntrinsicKind : int8_t; +struct IndexExpression; +struct Program; +struct Swizzle; /** * Converts a Program into a SPIR-V binary. */ class SPIRVCodeGenerator : public CodeGenerator { public: + // We reserve an impossible SpvId as a sentinel. (NA meaning none, n/a, etc.) + static constexpr SpvId NA = (SpvId)-1; + class LValue { public: virtual ~LValue() {} // returns a pointer to the lvalue, if possible. If the lvalue cannot be directly referenced - // by a pointer (e.g. vector swizzles), returns -1. - virtual SpvId getPointer() { return -1; } + // by a pointer (e.g. vector swizzles), returns NA. + virtual SpvId getPointer() { return NA; } // Returns true if a valid pointer returned by getPointer represents a memory object // (see https://github.com/KhronosGroup/SPIRV-Tools/issues/2892). Has no meaning if - // getPointer() returns -1. + // getPointer() returns NA. virtual bool isMemoryObjectPointer() const { return true; } // Applies a swizzle to the components of the LValue, if possible. This is used to create @@ -130,7 +109,6 @@ class SPIRVCodeGenerator : public CodeGenerator { , fDefaultLayout(MemoryLayout::k140_Standard) , fCapabilities(0) , fIdCount(1) - , fSetupFragPosition(false) , fCurrentBlock(0) , fSynthetics(fContext, /*builtin=*/true) { this->setupIntrinsics(); @@ -189,8 +167,6 @@ class SPIRVCodeGenerator : public CodeGenerator { SpvId getType(const Type& type, const MemoryLayout& layout); - SpvId getImageType(const Type& type); - SpvId getFunctionType(const FunctionDeclaration& function); SpvId getPointerType(const Type& type, SpvStorageClass_ storageClass); @@ -200,11 +176,11 @@ class SPIRVCodeGenerator : public CodeGenerator { std::vector getAccessChain(const Expression& expr, OutputStream& out); - void writeLayout(const Layout& layout, SpvId target, int line); + void writeLayout(const Layout& layout, SpvId target, Position pos); void writeFieldLayout(const Layout& layout, SpvId target, int member); - void writeStruct(const Type& type, const MemoryLayout& layout, SpvId resultId); + SpvId writeStruct(const Type& type, const MemoryLayout& memoryLayout); void writeProgramElement(const ProgramElement& pe, OutputStream& out); @@ -262,8 +238,6 @@ class SPIRVCodeGenerator : public CodeGenerator { SpvId writeSpecialIntrinsic(const FunctionCall& c, SpecialIntrinsic kind, OutputStream& out); - SpvId writeConstantVector(const AnyConstructor& c); - SpvId writeScalarToMatrixSplat(const Type& matrixType, SpvId scalarId, OutputStream& out); SpvId writeFloatConstructor(const AnyConstructor& c, OutputStream& out); @@ -289,12 +263,6 @@ class SPIRVCodeGenerator : public CodeGenerator { SpvId castScalarToType(SpvId inputExprId, const Type& inputType, const Type& outputType, OutputStream& out); - /** - * Writes a matrix with the diagonal entries all equal to the provided expression, and all other - * entries equal to zero. - */ - void writeUniformScaleMatrix(SpvId id, SpvId diagonal, const Type& type, OutputStream& out); - /** * Writes a potentially-different-sized copy of a matrix. Entries which do not exist in the * source matrix are filled with zero; entries which do not exist in the destination matrix are @@ -302,8 +270,8 @@ class SPIRVCodeGenerator : public CodeGenerator { */ SpvId writeMatrixCopy(SpvId src, const Type& srcType, const Type& dstType, OutputStream& out); - void addColumnEntry(const Type& columnType, std::vector* currentColumn, - std::vector* columnIds, int rows, SpvId entry, OutputStream& out); + void addColumnEntry(const Type& columnType, SkTArray* currentColumn, + SkTArray* columnIds, int rows, SpvId entry, OutputStream& out); SpvId writeConstructorCompound(const ConstructorCompound& c, OutputStream& out); @@ -353,6 +321,11 @@ class SPIRVCodeGenerator : public CodeGenerator { // - `a.x != b.x` merged with `a.y != b.y` generates `(a.x != b.x) || (a.y != b.y)` SpvId mergeComparisons(SpvId comparison, SpvId allComparisons, Operator op, OutputStream& out); + SpvId writeComponentwiseMatrixUnary(const Type& operandType, + SpvId operand, + SpvOp_ op, + OutputStream& out); + SpvId writeComponentwiseMatrixBinary(const Type& operandType, SpvId lhs, SpvId rhs, SpvOp_ op, OutputStream& out); @@ -446,6 +419,43 @@ class SPIRVCodeGenerator : public CodeGenerator { int32_t word5, int32_t word6, int32_t word7, int32_t word8, OutputStream& out); + // This form of writeInstruction can deduplicate redundant ops. + struct Word; + // 8 Words is enough for nearly all instructions (except variable-length instructions like + // OpAccessChain or OpConstantComposite). + using Words = SkSTArray<8, Word>; + SpvId writeInstruction(SpvOp_ opCode, const SkTArray& words, OutputStream& out); + + struct Instruction { + SpvId fOp; + int32_t fResultKind; + SkSTArray<8, int32_t> fWords; + + bool operator==(const Instruction& that) const; + struct Hash; + }; + + static Instruction BuildInstructionKey(SpvOp_ opCode, const SkTArray& words); + + // The writeOpXxxxx calls will simplify and deduplicate ops where possible. + SpvId writeOpConstantTrue(const Type& type); + SpvId writeOpConstantFalse(const Type& type); + SpvId writeOpConstant(const Type& type, int32_t valueBits); + SpvId writeOpConstantComposite(const Type& type, const SkTArray& values); + SpvId writeOpCompositeConstruct(const Type& type, const SkTArray&, OutputStream& out); + SpvId writeOpCompositeExtract(const Type& type, SpvId base, int component, OutputStream& out); + SpvId writeOpCompositeExtract(const Type& type, SpvId base, int componentA, int componentB, + OutputStream& out); + + // Converts the provided SpvId(s) into an array of scalar OpConstants, if it can be done. + bool toConstants(SpvId value, SkTArray* constants); + bool toConstants(SkSpan values, SkTArray* constants); + + // Extracts the requested component SpvId from a composite instruction, if it can be done. + SpvId toComponent(const Instruction& instr, int component); + + void pruneReachableOps(size_t numReachableOps); + bool isDead(const Variable& var) const; MemoryLayout memoryLayoutForVariable(const Variable&) const; @@ -467,7 +477,7 @@ class SPIRVCodeGenerator : public CodeGenerator { void writeUniformBuffer(std::shared_ptr topLevelSymbolTable); - void addRTFlipUniform(int line); + void addRTFlipUniform(Position pos); const MemoryLayout fDefaultLayout; @@ -481,23 +491,32 @@ class SPIRVCodeGenerator : public CodeGenerator { int32_t unsignedOp; int32_t boolOp; }; - std::unordered_map fIntrinsicMap; - std::unordered_map fFunctionMap; - std::unordered_map fVariableMap; - std::unordered_map fInterfaceBlockMap; - std::unordered_map fImageTypeMap; - std::unordered_map fTypeMap; - StringStream fCapabilitiesBuffer; + SkTHashMap fIntrinsicMap; + SkTHashMap fFunctionMap; + SkTHashMap fVariableMap; + SkTHashMap fStructMap; StringStream fGlobalInitializersBuffer; StringStream fConstantBuffer; - StringStream fExtraGlobalsBuffer; StringStream fVariableBuffer; StringStream fNameBuffer; StringStream fDecorationBuffer; - std::unordered_map fNumberConstants; - std::unordered_map fVectorConstants; - bool fSetupFragPosition; + // These caches map SpvIds to Instructions, and vice-versa. This enables us to deduplicate code + // (by detecting an Instruction we've already issued and reusing the SpvId), and to introspect + // and simplify code we've already emitted (by taking a SpvId from an Instruction and following + // it back to its source). + SkTHashMap fOpCache; // maps instruction -> SpvId + SkTHashMap fSpvIdCache; // maps SpvId -> instruction + + // "Reachable" ops are instructions which can safely be accessed from the current block. + // For instance, if our SPIR-V contains `%3 = OpFAdd %1 %2`, we would be able to access and + // reuse that computation on following lines. However, if that Add operation occurred inside an + // `if` block, then its SpvId becomes inaccessible once we complete the if statement (since + // depending on the if condition, we may or may not have actually done that computation). The + // same logic applies to other control-flow blocks as well. Once an instruction becomes + // unreachable, we remove it from both op-caches. + std::vector fReachableOps; + // label of the current block, or 0 if we are not in a block SpvId fCurrentBlock; std::stack fBreakTarget; @@ -505,14 +524,13 @@ class SPIRVCodeGenerator : public CodeGenerator { bool fWroteRTFlip = false; // holds variables synthesized during output, for lifetime purposes SymbolTable fSynthetics; - int fSkInCount = 1; // Holds a list of uniforms that were declared as globals at the top-level instead of in an // interface block. UniformBuffer fUniformBuffer; std::vector fTopLevelUniforms; - std::unordered_map fTopLevelUniformMap; // - std::unordered_set fSPIRVBonusVariables; - SpvId fUniformBufferId = -1; + SkTHashMap fTopLevelUniformMap; // + SkTHashSet fSPIRVBonusVariables; + SpvId fUniformBufferId = NA; friend class PointerLValue; friend class SwizzleLValue; diff --git a/third_party/skia/src/sksl/codegen/SkSLSPIRVtoHLSL.h b/third_party/skia/src/sksl/codegen/SkSLSPIRVtoHLSL.h index bcb6a1cb338e..5207546a676a 100644 --- a/third_party/skia/src/sksl/codegen/SkSLSPIRVtoHLSL.h +++ b/third_party/skia/src/sksl/codegen/SkSLSPIRVtoHLSL.h @@ -8,7 +8,7 @@ #ifndef SKSL_SPIRVTOHLSL #define SKSL_SPIRVTOHLSL -#include "include/private/SkSLString.h" +#include namespace SkSL { diff --git a/third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.cpp b/third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.cpp index 542a0a69b671..c3f9801e40ee 100644 --- a/third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.cpp +++ b/third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.cpp @@ -5,30 +5,40 @@ * found in the LICENSE file. */ +#include "src/sksl/codegen/SkSLVMCodeGenerator.h" + +#include "include/core/SkBlendMode.h" +#include "include/core/SkColor.h" +#include "include/core/SkColorType.h" +#include "include/core/SkPoint.h" +#include "include/core/SkSpan.h" +#include "include/core/SkTypes.h" +#include "include/private/SkFloatingPoint.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLLayout.h" +#include "include/private/SkSLModifiers.h" #include "include/private/SkSLProgramElement.h" #include "include/private/SkSLStatement.h" +#include "include/private/SkSLString.h" #include "include/private/SkTArray.h" +#include "include/private/SkTHash.h" #include "include/private/SkTPin.h" +#include "include/sksl/SkSLOperator.h" +#include "include/sksl/SkSLPosition.h" #include "src/sksl/SkSLCompiler.h" -#include "src/sksl/SkSLOperators.h" -#include "src/sksl/codegen/SkSLCodeGenerator.h" -#include "src/sksl/codegen/SkSLVMCodeGenerator.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/ir/SkSLBinaryExpression.h" #include "src/sksl/ir/SkSLBlock.h" -#include "src/sksl/ir/SkSLBreakStatement.h" #include "src/sksl/ir/SkSLChildCall.h" #include "src/sksl/ir/SkSLConstructor.h" -#include "src/sksl/ir/SkSLConstructorArray.h" #include "src/sksl/ir/SkSLConstructorArrayCast.h" #include "src/sksl/ir/SkSLConstructorDiagonalMatrix.h" #include "src/sksl/ir/SkSLConstructorMatrixResize.h" #include "src/sksl/ir/SkSLConstructorSplat.h" -#include "src/sksl/ir/SkSLConstructorStruct.h" -#include "src/sksl/ir/SkSLContinueStatement.h" -#include "src/sksl/ir/SkSLDoStatement.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLExpressionStatement.h" +#include "src/sksl/ir/SkSLExternalFunction.h" #include "src/sksl/ir/SkSLExternalFunctionCall.h" -#include "src/sksl/ir/SkSLExternalFunctionReference.h" #include "src/sksl/ir/SkSLFieldAccess.h" #include "src/sksl/ir/SkSLForStatement.h" #include "src/sksl/ir/SkSLFunctionCall.h" @@ -39,16 +49,22 @@ #include "src/sksl/ir/SkSLLiteral.h" #include "src/sksl/ir/SkSLPostfixExpression.h" #include "src/sksl/ir/SkSLPrefixExpression.h" +#include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLReturnStatement.h" +#include "src/sksl/ir/SkSLSwitchCase.h" #include "src/sksl/ir/SkSLSwitchStatement.h" #include "src/sksl/ir/SkSLSwizzle.h" #include "src/sksl/ir/SkSLTernaryExpression.h" #include "src/sksl/ir/SkSLVarDeclarations.h" +#include "src/sksl/ir/SkSLVariable.h" #include "src/sksl/ir/SkSLVariableReference.h" #include "src/sksl/tracing/SkVMDebugTrace.h" #include -#include +#include +#include +#include +#include namespace { // sksl allows the optimizations of fast_mul(), so we want to use that most of the time. @@ -93,6 +109,7 @@ namespace { } // namespace namespace SkSL { +class IRNode; namespace { @@ -172,8 +189,8 @@ class SkVMGenerator { * addition to a scalar). * * For a VariableReference, producing a Value is straightforward - we get the slot of the - * Variable (from fVariableMap), use that to look up the current skvm::Vals holding the - * variable's contents, and construct a Value with those ids. + * Variable (from fSlotMap), use that to look up the current skvm::Vals holding the variable's + * contents, and construct a Value with those ids. */ /** Creates a Value from a collection of adjacent slots. */ @@ -203,16 +220,23 @@ class SkVMGenerator { size_t getSlot(const Variable& v); /** - * Returns the slot holding fn's return value. Allocates storage if this is first time accessing - * the slot. + * Returns the slot holding fn's return value. Each call site is given a distinct slot, since + * multiple calls to the same function can occur in a single statement. This is generally the + * FunctionCall or ChildCall node, but main() doesn't have one of these so it uses the + * FunctionDefinition. Allocates storage if this is first time accessing the slot. */ - size_t getSlot(const FunctionDefinition& fn); + size_t getFunctionSlot(const IRNode& callSite, const FunctionDefinition& fn); /** * Writes a value to a slot previously created by getSlot. */ void writeToSlot(int slot, skvm::Val value); + /** + * Returns the line number corresponding to a position. + */ + int getLine(Position pos); + /** * Emits an trace_line opcode. writeStatement does this, and statements that alter control flow * may need to explicitly add additional traces. @@ -226,7 +250,9 @@ class SkVMGenerator { void setupGlobals(SkSpan uniforms, skvm::Coord device); /** Emits an SkSL function. Returns the slot index of the SkSL function's return value. */ - size_t writeFunction(const FunctionDefinition& function, SkSpan arguments); + size_t writeFunction(const IRNode& caller, + const FunctionDefinition& function, + SkSpan arguments); skvm::F32 f32(skvm::Val id) { SkASSERT(id != skvm::NA); return {fBuilder, id}; } skvm::I32 i32(skvm::Val id) { SkASSERT(id != skvm::NA); return {fBuilder, id}; } @@ -319,10 +345,8 @@ class SkVMGenerator { }; std::vector fSlots; - // [Variable, first slot in fSlots] - std::unordered_map fVariableMap; - // [Function, first slot in fSlots] - std::unordered_map fReturnValueMap; + // [Variable/Function, first slot in fSlots] + SkTHashMap fSlotMap; // Debug trace mask (set to true when fTraceCoord matches device coordinates) skvm::I32 fTraceMask; @@ -337,6 +361,10 @@ class SkVMGenerator { skvm::I32 fLoopMask; skvm::I32 fContinueMask; + // `fInsideCompoundStatement` will be nonzero if we are currently writing statements inside of a + // compound-statement Block. (Conceptually those statements should all count as one.) + int fInsideCompoundStatement = 0; + // // State that's local to the generation of a single function: // @@ -390,7 +418,7 @@ void SkVMGenerator::writeProgram(SkSpan uniforms, fConditionMask = fLoopMask = fBuilder->splat(0xffff'ffff); this->setupGlobals(uniforms, device); - size_t returnSlot = this->writeFunction(function, arguments); + size_t returnSlot = this->writeFunction(function, function, arguments); // Copy the value from the return slot into outReturn. SkASSERT(function.declaration().returnType().slotCount() == outReturn.size()); @@ -422,7 +450,7 @@ void SkVMGenerator::setupGlobals(SkSpan uniforms, skvm::Coord device) } // Add storage for each global variable (including uniforms) to fSlots, and entries in - // fVariableMap to remember where every variable is stored. + // fSlotMap to remember where every variable is stored. const skvm::Val* uniformIter = uniforms.begin(); size_t fpCount = 0; for (const ProgramElement* e : fProgram.elements()) { @@ -430,12 +458,12 @@ void SkVMGenerator::setupGlobals(SkSpan uniforms, skvm::Coord device) const GlobalVarDeclaration& gvd = e->as(); const VarDeclaration& decl = gvd.declaration()->as(); const Variable& var = decl.var(); - SkASSERT(fVariableMap.find(&var) == fVariableMap.end()); + SkASSERT(!fSlotMap.find(&var)); - // For most variables, fVariableMap stores an index into fSlots, but for children, - // fVariableMap stores the index to pass to fSample(Shader|ColorFilter|Blender) + // For most variables, fSlotMap stores an index into fSlots, but for children, + // fSlotMap stores the index to pass to fSample(Shader|ColorFilter|Blender) if (var.type().isEffectChild()) { - fVariableMap[&var] = fpCount++; + fSlotMap.set(&var, fpCount++); continue; } @@ -445,7 +473,7 @@ void SkVMGenerator::setupGlobals(SkSpan uniforms, skvm::Coord device) SkASSERT(!var.type().isOpaque()); // getSlot() allocates space for the variable's value in fSlots, initializes it to zero, - // and populates fVariableMap. + // and populates fSlotMap. size_t slot = this->getSlot(var), nslots = var.type().slotCount(); @@ -514,7 +542,8 @@ int SkVMGenerator::getDebugFunctionInfo(const FunctionDeclaration& decl) { return slot; } -size_t SkVMGenerator::writeFunction(const FunctionDefinition& function, +size_t SkVMGenerator::writeFunction(const IRNode& caller, + const FunctionDefinition& function, SkSpan arguments) { const FunctionDeclaration& decl = function.declaration(); @@ -524,7 +553,7 @@ size_t SkVMGenerator::writeFunction(const FunctionDefinition& function, fBuilder->trace_enter(fTraceHookID, this->mask(), fTraceMask, funcIndex); } - size_t returnSlot = this->getSlot(function); + size_t returnSlot = this->getFunctionSlot(caller, function); fFunctionStack.push_back({/*fReturnSlot=*/returnSlot, /*fReturned=*/fBuilder->splat(0)}); // For all parameters, copy incoming argument IDs to our vector of (all) variable IDs @@ -541,7 +570,7 @@ size_t SkVMGenerator::writeFunction(const FunctionDefinition& function, } SkASSERT(argIdx == arguments.size()); - this->writeStatement(*function.body()); + this->writeBlock(function.body()->as()); // Copy 'out' and 'inout' parameters back to their caller-supplied argument storage argIdx = 0; @@ -659,31 +688,39 @@ size_t SkVMGenerator::createSlot(const std::string& name, return slot; } +// TODO(skia:13058): remove this and track positions directly +int SkVMGenerator::getLine(Position pos) { + if (pos.valid()) { + return pos.line(*fProgram.fSource); + } else { + return -1; + } +} + size_t SkVMGenerator::getSlot(const Variable& v) { - auto entry = fVariableMap.find(&v); - if (entry != fVariableMap.end()) { - return entry->second; + size_t* entry = fSlotMap.find(&v); + if (entry != nullptr) { + return *entry; } - size_t slot = this->createSlot(std::string(v.name()), v.type(), v.fLine, /*fnReturnValue=*/-1); - fVariableMap[&v] = slot; + size_t slot = this->createSlot(std::string(v.name()), v.type(), this->getLine(v.fPosition), + /*fnReturnValue=*/-1); + fSlotMap.set(&v, slot); return slot; } -size_t SkVMGenerator::getSlot(const FunctionDefinition& fn) { - auto entry = fReturnValueMap.find(&fn); - if (entry != fReturnValueMap.end()) { - return entry->second; +size_t SkVMGenerator::getFunctionSlot(const IRNode& callSite, const FunctionDefinition& fn) { + size_t* entry = fSlotMap.find(&callSite); + if (entry != nullptr) { + return *entry; } const FunctionDeclaration& decl = fn.declaration(); - int fnReturnValue = fDebugTrace ? this->getDebugFunctionInfo(decl) : -1; - size_t slot = this->createSlot("[" + std::string(decl.name()) + "].result", decl.returnType(), - fn.fLine, - fnReturnValue); - fReturnValueMap[&fn] = slot; + this->getLine(fn.fPosition), + /*fnReturnValue=*/1); + fSlotMap.set(&callSite, slot); return slot; } @@ -749,7 +786,7 @@ Value SkVMGenerator::writeBinaryExpression(const BinaryExpression& b) { const Expression& left = *b.left(); const Expression& right = *b.right(); Operator op = b.getOperator(); - if (op.kind() == Token::Kind::TK_EQ) { + if (op.kind() == Operator::Kind::EQ) { return this->writeStore(left, this->writeExpression(right)); } @@ -765,7 +802,7 @@ Value SkVMGenerator::writeBinaryExpression(const BinaryExpression& b) { // A few ops require special treatment: switch (op.kind()) { - case Token::Kind::TK_LOGICALAND: { + case Operator::Kind::LOGICALAND: { SkASSERT(!isAssignment); SkASSERT(nk == Type::NumberKind::kBoolean); skvm::I32 lVal = i32(this->writeExpression(left)); @@ -773,7 +810,7 @@ Value SkVMGenerator::writeBinaryExpression(const BinaryExpression& b) { skvm::I32 rVal = i32(this->writeExpression(right)); return lVal & rVal; } - case Token::Kind::TK_LOGICALOR: { + case Operator::Kind::LOGICALOR: { SkASSERT(!isAssignment); SkASSERT(nk == Type::NumberKind::kBoolean); skvm::I32 lVal = i32(this->writeExpression(left)); @@ -781,7 +818,7 @@ Value SkVMGenerator::writeBinaryExpression(const BinaryExpression& b) { skvm::I32 rVal = i32(this->writeExpression(right)); return lVal | rVal; } - case Token::Kind::TK_COMMA: + case Operator::Kind::COMMA: // We write the left side of the expression to preserve its side effects, even though we // immediately discard the result. this->writeExpression(left); @@ -795,7 +832,7 @@ Value SkVMGenerator::writeBinaryExpression(const BinaryExpression& b) { rVal = this->writeExpression(right); // Special case for M*V, V*M, M*M (but not V*V!) - if (op.kind() == Token::Kind::TK_STAR + if (op.kind() == Operator::Kind::STAR && lVecOrMtx && rVecOrMtx && !(lType.isVector() && rType.isVector())) { int rCols = rType.columns(), rRows = rType.rows(), @@ -829,8 +866,7 @@ Value SkVMGenerator::writeBinaryExpression(const BinaryExpression& b) { bool foldResults = false) -> Value { Value result(nslots); - if (op.isEquality() && (lType.typeKind() == Type::TypeKind::kStruct || - lType.typeKind() == Type::TypeKind::kArray)) { + if (op.isEquality() && (lType.isStruct() || lType.isArray())) { // Shifting over lVal and rVal size_t slotOffset = 0; this->recursiveBinaryCompare( @@ -850,12 +886,11 @@ Value SkVMGenerator::writeBinaryExpression(const BinaryExpression& b) { } } - if (foldResults) { - // Just to be more explicit here we ask for a parameter and not detect it ourselves + if (foldResults && nslots > 1) { SkASSERT(op.isEquality()); skvm::I32 folded = i32(result[0]); for (size_t i = 1; i < nslots; ++i) { - if (op.kind() == Token::Kind::TK_NEQ) { + if (op.kind() == Operator::Kind::NEQ) { folded |= i32(result[i]); } else { folded &= i32(result[i]); @@ -873,37 +908,37 @@ Value SkVMGenerator::writeBinaryExpression(const BinaryExpression& b) { }; switch (op.kind()) { - case Token::Kind::TK_EQEQ: + case Operator::Kind::EQEQ: SkASSERT(!isAssignment); return binary([](skvm::F32 x, skvm::F32 y) { return x == y; }, [](skvm::I32 x, skvm::I32 y) { return x == y; }, /*foldResults=*/ true); - case Token::Kind::TK_NEQ: + case Operator::Kind::NEQ: SkASSERT(!isAssignment); return binary([](skvm::F32 x, skvm::F32 y) { return x != y; }, [](skvm::I32 x, skvm::I32 y) { return x != y; }, /*foldResults=*/ true); - case Token::Kind::TK_GT: + case Operator::Kind::GT: return binary([](skvm::F32 x, skvm::F32 y) { return x > y; }, [](skvm::I32 x, skvm::I32 y) { return x > y; }); - case Token::Kind::TK_GTEQ: + case Operator::Kind::GTEQ: return binary([](skvm::F32 x, skvm::F32 y) { return x >= y; }, [](skvm::I32 x, skvm::I32 y) { return x >= y; }); - case Token::Kind::TK_LT: + case Operator::Kind::LT: return binary([](skvm::F32 x, skvm::F32 y) { return x < y; }, [](skvm::I32 x, skvm::I32 y) { return x < y; }); - case Token::Kind::TK_LTEQ: + case Operator::Kind::LTEQ: return binary([](skvm::F32 x, skvm::F32 y) { return x <= y; }, [](skvm::I32 x, skvm::I32 y) { return x <= y; }); - case Token::Kind::TK_PLUS: + case Operator::Kind::PLUS: return binary([](skvm::F32 x, skvm::F32 y) { return x + y; }, [](skvm::I32 x, skvm::I32 y) { return x + y; }); - case Token::Kind::TK_MINUS: + case Operator::Kind::MINUS: return binary([](skvm::F32 x, skvm::F32 y) { return x - y; }, [](skvm::I32 x, skvm::I32 y) { return x - y; }); - case Token::Kind::TK_STAR: + case Operator::Kind::STAR: return binary([](skvm::F32 x, skvm::F32 y) { return x ** y; }, [](skvm::I32 x, skvm::I32 y) { return x * y; }); - case Token::Kind::TK_SLASH: + case Operator::Kind::SLASH: // Minimum spec (GLSL ES 1.0) has very loose requirements for integer operations. // (Low-end GPUs may not have integer ALUs). Given that, we are allowed to do floating // point division plus rounding. Section 10.28 of the spec even clarifies that the @@ -913,19 +948,19 @@ Value SkVMGenerator::writeBinaryExpression(const BinaryExpression& b) { return skvm::trunc(skvm::to_F32(x) / skvm::to_F32(y)); }); - case Token::Kind::TK_BITWISEXOR: - case Token::Kind::TK_LOGICALXOR: + case Operator::Kind::BITWISEXOR: + case Operator::Kind::LOGICALXOR: return binary(unsupported_f, [](skvm::I32 x, skvm::I32 y) { return x ^ y; }); - case Token::Kind::TK_BITWISEAND: + case Operator::Kind::BITWISEAND: return binary(unsupported_f, [](skvm::I32 x, skvm::I32 y) { return x & y; }); - case Token::Kind::TK_BITWISEOR: + case Operator::Kind::BITWISEOR: return binary(unsupported_f, [](skvm::I32 x, skvm::I32 y) { return x | y; }); // These three operators are all 'reserved' (illegal) in our minimum spec, but will require // implementation in the future. - case Token::Kind::TK_PERCENT: - case Token::Kind::TK_SHL: - case Token::Kind::TK_SHR: + case Operator::Kind::PERCENT: + case Operator::Kind::SHL: + case Operator::Kind::SHR: default: SkDEBUGFAIL("Unsupported operator"); return {}; @@ -1223,8 +1258,8 @@ Value SkVMGenerator::writeMatrixInverse4x4(const Value& m) { } Value SkVMGenerator::writeChildCall(const ChildCall& c) { - auto child_it = fVariableMap.find(&c.child()); - SkASSERT(child_it != fVariableMap.end()); + size_t* childPtr = fSlotMap.find(&c.child()); + SkASSERT(childPtr != nullptr); const Expression* arg = c.arguments()[0].get(); Value argVal = this->writeExpression(*arg); @@ -1235,7 +1270,7 @@ Value SkVMGenerator::writeChildCall(const ChildCall& c) { SkASSERT(c.arguments().size() == 1); SkASSERT(arg->type().matches(*fProgram.fContext->fTypes.fFloat2)); skvm::Coord coord = {f32(argVal[0]), f32(argVal[1])}; - color = fCallbacks->sampleShader(child_it->second, coord); + color = fCallbacks->sampleShader(*childPtr, coord); break; } case Type::TypeKind::kColorFilter: { @@ -1243,7 +1278,7 @@ Value SkVMGenerator::writeChildCall(const ChildCall& c) { SkASSERT(arg->type().matches(*fProgram.fContext->fTypes.fHalf4) || arg->type().matches(*fProgram.fContext->fTypes.fFloat4)); skvm::Color inColor = {f32(argVal[0]), f32(argVal[1]), f32(argVal[2]), f32(argVal[3])}; - color = fCallbacks->sampleColorFilter(child_it->second, inColor); + color = fCallbacks->sampleColorFilter(*childPtr, inColor); break; } case Type::TypeKind::kBlender: { @@ -1258,7 +1293,7 @@ Value SkVMGenerator::writeChildCall(const ChildCall& c) { arg->type().matches(*fProgram.fContext->fTypes.fFloat4)); skvm::Color dstColor = {f32(argVal[0]), f32(argVal[1]), f32(argVal[2]), f32(argVal[3])}; - color = fCallbacks->sampleBlender(child_it->second, srcColor, dstColor); + color = fCallbacks->sampleBlender(*childPtr, srcColor, dstColor); break; } default: { @@ -1516,18 +1551,18 @@ Value SkVMGenerator::writeIntrinsicCall(const FunctionCall& c) { SkUNREACHABLE; } -Value SkVMGenerator::writeFunctionCall(const FunctionCall& f) { - if (f.function().isIntrinsic() && !f.function().definition()) { - return this->writeIntrinsicCall(f); +Value SkVMGenerator::writeFunctionCall(const FunctionCall& call) { + if (call.function().isIntrinsic() && !call.function().definition()) { + return this->writeIntrinsicCall(call); } - const FunctionDeclaration& decl = f.function(); + const FunctionDeclaration& decl = call.function(); SkASSERTF(decl.definition(), "no definition for function '%s'", decl.description().c_str()); const FunctionDefinition& funcDef = *decl.definition(); // Evaluate all arguments, gather the results into a contiguous list of IDs std::vector argVals; - for (const auto& arg : f.arguments()) { + for (const auto& arg : call.arguments()) { Value v = this->writeExpression(*arg); for (size_t i = 0; i < v.slots(); ++i) { argVals.push_back(v[i]); @@ -1539,11 +1574,11 @@ Value SkVMGenerator::writeFunctionCall(const FunctionCall& f) { // This merges currentFunction().fReturned into fConditionMask. Lanes that conditionally // returned in the current function would otherwise resume execution within the child. ScopedCondition m(this, ~currentFunction().fReturned); - returnSlot = this->writeFunction(funcDef, SkMakeSpan(argVals)); + returnSlot = this->writeFunction(call, funcDef, SkMakeSpan(argVals)); } // Propagate new values of any 'out' params back to the original arguments - const std::unique_ptr* argIter = f.arguments().begin(); + const std::unique_ptr* argIter = call.arguments().begin(); size_t valIdx = 0; for (const Variable* p : decl.parameters()) { size_t nslots = p->type().slotCount(); @@ -1560,7 +1595,7 @@ Value SkVMGenerator::writeFunctionCall(const FunctionCall& f) { } // Create a result Value from the return slot - return this->getSlotValue(returnSlot, f.type().slotCount()); + return this->getSlotValue(returnSlot, call.type().slotCount()); } Value SkVMGenerator::writeExternalFunctionCall(const ExternalFunctionCall& c) { @@ -1603,9 +1638,9 @@ Value SkVMGenerator::writePrefixExpression(const PrefixExpression& p) { Value val = this->writeExpression(*p.operand()); switch (p.getOperator().kind()) { - case Token::Kind::TK_PLUSPLUS: - case Token::Kind::TK_MINUSMINUS: { - bool incr = p.getOperator().kind() == Token::Kind::TK_PLUSPLUS; + case Operator::Kind::PLUSPLUS: + case Operator::Kind::MINUSMINUS: { + bool incr = p.getOperator().kind() == Operator::Kind::PLUSPLUS; switch (base_number_kind(p.type())) { case Type::NumberKind::kFloat: @@ -1620,7 +1655,7 @@ Value SkVMGenerator::writePrefixExpression(const PrefixExpression& p) { } return this->writeStore(*p.operand(), val); } - case Token::Kind::TK_MINUS: { + case Operator::Kind::MINUS: { switch (base_number_kind(p.type())) { case Type::NumberKind::kFloat: return this->unary(val, [](skvm::F32 x) { return -x; }); @@ -1631,8 +1666,8 @@ Value SkVMGenerator::writePrefixExpression(const PrefixExpression& p) { return {}; } } - case Token::Kind::TK_LOGICALNOT: - case Token::Kind::TK_BITWISENOT: + case Operator::Kind::LOGICALNOT: + case Operator::Kind::BITWISENOT: return this->unary(val, [](skvm::I32 x) { return ~x; }); default: SkASSERT(false); @@ -1642,12 +1677,12 @@ Value SkVMGenerator::writePrefixExpression(const PrefixExpression& p) { Value SkVMGenerator::writePostfixExpression(const PostfixExpression& p) { switch (p.getOperator().kind()) { - case Token::Kind::TK_PLUSPLUS: - case Token::Kind::TK_MINUSMINUS: { + case Operator::Kind::PLUSPLUS: + case Operator::Kind::MINUSMINUS: { Value old = this->writeExpression(*p.operand()), val = old; SkASSERT(val.slots() == 1); - bool incr = p.getOperator().kind() == Token::Kind::TK_PLUSPLUS; + bool incr = p.getOperator().kind() == Operator::Kind::PLUSPLUS; switch (base_number_kind(p.type())) { case Type::NumberKind::kFloat: @@ -1828,7 +1863,10 @@ skvm::Val SkVMGenerator::writeConditionalStore(skvm::Val lhs, skvm::Val rhs, skv void SkVMGenerator::writeBlock(const Block& b) { skvm::I32 mask = this->mask(); - if (b.isScope()) { + if (b.blockKind() == Block::Kind::kCompoundStatement) { + this->emitTraceLine(this->getLine(b.fPosition)); + ++fInsideCompoundStatement; + } else { this->emitTraceScope(mask, +1); } @@ -1836,7 +1874,9 @@ void SkVMGenerator::writeBlock(const Block& b) { this->writeStatement(*stmt); } - if (b.isScope()) { + if (b.blockKind() == Block::Kind::kCompoundStatement) { + --fInsideCompoundStatement; + } else { this->emitTraceScope(mask, -1); } } @@ -1872,6 +1912,7 @@ void SkVMGenerator::writeForStatement(const ForStatement& f) { // We want the loop index to disappear at the end of the loop, so wrap the for statement in a // trace scope. if (loop.fCount > 0) { + int line = this->getLine(f.test() ? f.test()->fPosition : f.fPosition); skvm::I32 mask = this->mask(); this->emitTraceScope(mask, +1); @@ -1884,7 +1925,7 @@ void SkVMGenerator::writeForStatement(const ForStatement& f) { this->writeStatement(*f.statement()); fLoopMask |= fContinueMask; - this->emitTraceLine(f.test() ? f.test()->fLine : f.fLine); + this->emitTraceLine(line); val += loop.fDelta; } @@ -1976,7 +2017,7 @@ void SkVMGenerator::writeVarDeclaration(const VarDeclaration& decl) { } void SkVMGenerator::emitTraceLine(int line) { - if (fDebugTrace && line > 0) { + if (fDebugTrace && line > 0 && fInsideCompoundStatement == 0) { fBuilder->trace_line(fTraceHookID, this->mask(), fTraceMask, line); } } @@ -1988,7 +2029,10 @@ void SkVMGenerator::emitTraceScope(skvm::I32 executionMask, int delta) { } void SkVMGenerator::writeStatement(const Statement& s) { - this->emitTraceLine(s.fLine); + // The debugger should stop on all types of statements, except for Blocks. + if (!s.is()) { + this->emitTraceLine(this->getLine(s.fPosition)); + } switch (s.kind()) { case Statement::Kind::kBlock: diff --git a/third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.h b/third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.h index a88f0b378594..d8777ad35822 100644 --- a/third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.h +++ b/third_party/skia/src/sksl/codegen/SkSLVMCodeGenerator.h @@ -8,12 +8,14 @@ #ifndef SKSL_VMGENERATOR #define SKSL_VMGENERATOR -#include "include/core/SkSpan.h" -#include "include/private/SkSLString.h" #include "src/core/SkVM.h" #include "src/sksl/ir/SkSLType.h" -#include +#include +#include +#include + +template class SkSpan; namespace SkSL { diff --git a/third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp new file mode 100644 index 000000000000..90d7003b30b2 --- /dev/null +++ b/third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -0,0 +1,853 @@ +/* + * Copyright 2022 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "src/sksl/codegen/SkSLWGSLCodeGenerator.h" + +#include +#include +#include +#include + +#include "include/core/SkSpan.h" +#include "include/core/SkTypes.h" +#include "include/private/SkBitmaskEnum.h" +#include "include/private/SkSLLayout.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLProgramKind.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkSLString.h" +#include "include/private/SkSLSymbol.h" +#include "include/private/SkTArray.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLPosition.h" +#include "src/sksl/SkSLBuiltinTypes.h" +#include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLContext.h" +#include "src/sksl/SkSLOutputStream.h" +#include "src/sksl/SkSLProgramSettings.h" +#include "src/sksl/SkSLStringStream.h" +#include "src/sksl/SkSLUtil.h" +#include "src/sksl/analysis/SkSLProgramVisitor.h" +#include "src/sksl/ir/SkSLBinaryExpression.h" +#include "src/sksl/ir/SkSLBlock.h" +#include "src/sksl/ir/SkSLConstructor.h" +#include "src/sksl/ir/SkSLConstructorCompound.h" +#include "src/sksl/ir/SkSLExpression.h" +#include "src/sksl/ir/SkSLExpressionStatement.h" +#include "src/sksl/ir/SkSLFunctionCall.h" +#include "src/sksl/ir/SkSLFunctionDeclaration.h" +#include "src/sksl/ir/SkSLFunctionDefinition.h" +#include "src/sksl/ir/SkSLInterfaceBlock.h" +#include "src/sksl/ir/SkSLLiteral.h" +#include "src/sksl/ir/SkSLProgram.h" +#include "src/sksl/ir/SkSLReturnStatement.h" +#include "src/sksl/ir/SkSLSymbolTable.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" + +// TODO(skia:13092): This is a temporary debug feature. Remove when the implementation is +// complete and this is no longer needed. +#define DUMP_SRC_IR 0 + +namespace SkSL { +namespace { + +// See https://www.w3.org/TR/WGSL/#memory-view-types +enum class PtrAddressSpace { + kFunction, + kPrivate, + kStorage, +}; + +std::string_view pipeline_struct_prefix(ProgramKind kind) { + switch (kind) { + case ProgramKind::kVertex: + return "VS"; + case ProgramKind::kFragment: + return "FS"; + default: + break; + } + return ""; +} + +std::string_view address_space_to_str(PtrAddressSpace addressSpace) { + switch (addressSpace) { + case PtrAddressSpace::kFunction: + return "function"; + case PtrAddressSpace::kPrivate: + return "private"; + case PtrAddressSpace::kStorage: + return "storage"; + } + SkDEBUGFAIL("unsupported ptr address space"); + return "unsupported"; +} + +std::string_view to_scalar_type(const Type& type) { + SkASSERT(type.typeKind() == Type::TypeKind::kScalar); + switch (type.numberKind()) { + // Floating-point numbers in WebGPU currently always have 32-bit footprint and + // relaxed-precision is not supported without extensions. f32 is the only floating-point + // number type in WGSL (see the discussion on https://github.com/gpuweb/gpuweb/issues/658). + case Type::NumberKind::kFloat: + return "f32"; + case Type::NumberKind::kSigned: + return "i32"; + case Type::NumberKind::kUnsigned: + return "u32"; + case Type::NumberKind::kBoolean: + return "bool"; + case Type::NumberKind::kNonnumeric: + [[fallthrough]]; + default: + break; + } + return type.name(); +} + +// Convert a SkSL type to a WGSL type. Handles all plain types except structure types +// (see https://www.w3.org/TR/WGSL/#plain-types-section). +std::string to_wgsl_type(const Type& type) { + // TODO(skia:13092): Handle array, matrix, sampler types. + switch (type.typeKind()) { + case Type::TypeKind::kScalar: + return std::string(to_scalar_type(type)); + case Type::TypeKind::kVector: + return "vec" + std::to_string(type.columns()) + "<" + + std::string(to_scalar_type(type.componentType())) + ">"; + default: + break; + } + return std::string(type.name()); +} + +std::string to_ptr_type(const Type& type, + PtrAddressSpace addressSpace = PtrAddressSpace::kFunction) { + return "ptr<" + std::string(address_space_to_str(addressSpace)) + ", " + to_wgsl_type(type) + + ">"; +} + +std::string_view to_wgsl_builtin_name(WGSLCodeGenerator::Builtin kind) { + using Builtin = WGSLCodeGenerator::Builtin; + switch (kind) { + case Builtin::kVertexIndex: + return "vertex_index"; + case Builtin::kInstanceIndex: + return "instance_index"; + case Builtin::kPosition: + return "position"; + case Builtin::kFrontFacing: + return "front_facing"; + case Builtin::kSampleIndex: + return "sample_index"; + case Builtin::kFragDepth: + return "frag_depth"; + case Builtin::kSampleMask: + return "sample_mask"; + case Builtin::kLocalInvocationId: + return "local_invocation_id"; + case Builtin::kLocalInvocationIndex: + return "local_invocation_index"; + case Builtin::kGlobalInvocationId: + return "global_invocation_id"; + case Builtin::kWorkgroupId: + return "workgroup_id"; + case Builtin::kNumWorkgroups: + return "num_workgroups"; + default: + break; + } + + SkDEBUGFAIL("unsupported builtin"); + return "unsupported"; +} + +// Map a SkSL builtin flag to a WGSL builtin kind. Returns std::nullopt if `builtin` is not +// not supported for WGSL. +// +// Also see //src/sksl/sksl_vert.sksl and //src/sksl/sksl_frag.sksl for supported built-ins. +std::optional builtin_from_sksl_name(int builtin) { + using Builtin = WGSLCodeGenerator::Builtin; + switch (builtin) { + case SK_POSITION_BUILTIN: + [[fallthrough]]; + case SK_FRAGCOORD_BUILTIN: + return {Builtin::kPosition}; + case SK_VERTEXID_BUILTIN: + return {Builtin::kVertexIndex}; + case SK_INSTANCEID_BUILTIN: + return {Builtin::kInstanceIndex}; + case SK_CLOCKWISE_BUILTIN: + // TODO(skia:13092): While `front_facing` is the corresponding built-in, it does not + // imply a particular winding order. We correctly compute the face orientation based + // on how Skia configured the render pipeline for all references to this built-in + // variable (see `SkSL::Program::Inputs::fUseFlipRTUniform`). + return {Builtin::kFrontFacing}; + default: + break; + } + return std::nullopt; +} + +std::shared_ptr top_level_symbol_table(const FunctionDefinition& f) { + return f.body()->as().symbolTable()->fParent; +} + +// FunctionDependencyResolver visits the IR tree rooted at a particular function definition and +// computes that function's dependencies on pipeline stage IO parameters. These are later used to +// synthesize arguments when writing out function definitions. +class FunctionDependencyResolver : public ProgramVisitor { +public: + using Deps = WGSLCodeGenerator::FunctionDependencies; + using DepsMap = WGSLCodeGenerator::ProgramRequirements::DepsMap; + + FunctionDependencyResolver(const Program* p, + const FunctionDeclaration* f, + DepsMap* programDependencyMap) + : fProgram(p), fFunction(f), fDependencyMap(programDependencyMap) {} + + Deps resolve() { + fDeps = Deps::kNone; + this->visit(*fProgram); + return fDeps; + } + +private: + bool visitProgramElement(const ProgramElement& p) override { + // Only visit the program that matches the requested function. + if (p.is() && &p.as().declaration() == fFunction) { + return INHERITED::visitProgramElement(p); + } + // Continue visiting other program elements. + return false; + } + + bool visitExpression(const Expression& e) override { + if (e.is()) { + const VariableReference& v = e.as(); + const Modifiers& modifiers = v.variable()->modifiers(); + if (v.variable()->storage() == Variable::Storage::kGlobal) { + if (modifiers.fFlags & Modifiers::kIn_Flag) { + fDeps |= Deps::kPipelineInputs; + } + if (modifiers.fFlags & Modifiers::kOut_Flag) { + fDeps |= Deps::kPipelineOutputs; + } + } + } else if (e.is()) { + // The current function that we're processing (`fFunction`) inherits the dependencies of + // functions that it makes calls to, because the pipeline stage IO parameters need to be + // passed down as an argument. + const FunctionCall& callee = e.as(); + + // Don't process a function again if we have already resolved it. + Deps* found = fDependencyMap->find(&callee.function()); + if (found) { + fDeps |= *found; + } else { + // Store the dependencies that have been discovered for the current function so far. + // If `callee` directly or indirectly calls the current function, then this value + // will prevent an infinite recursion. + fDependencyMap->set(fFunction, fDeps); + + // Separately traverse the called function's definition and determine its + // dependencies. + FunctionDependencyResolver resolver(fProgram, &callee.function(), fDependencyMap); + Deps calleeDeps = resolver.resolve(); + + // Store the callee's dependencies in the global map to avoid processing + // the function again for future calls. + fDependencyMap->set(&callee.function(), calleeDeps); + + // Add to the current function's dependencies. + fDeps |= calleeDeps; + } + } + return INHERITED::visitExpression(e); + } + + const Program* const fProgram; + const FunctionDeclaration* const fFunction; + DepsMap* const fDependencyMap; + Deps fDeps = Deps::kNone; + + using INHERITED = ProgramVisitor; +}; + +WGSLCodeGenerator::ProgramRequirements resolve_program_requirements(const Program* program) { + bool mainNeedsCoordsArgument = false; + WGSLCodeGenerator::ProgramRequirements::DepsMap dependencies; + + for (const ProgramElement* e : program->elements()) { + if (!e->is()) { + continue; + } + + const FunctionDeclaration& decl = e->as().declaration(); + if (decl.isMain()) { + for (const Variable* v : decl.parameters()) { + if (v->modifiers().fLayout.fBuiltin == SK_MAIN_COORDS_BUILTIN) { + mainNeedsCoordsArgument = true; + break; + } + } + } + + FunctionDependencyResolver resolver(program, &decl, &dependencies); + dependencies.set(&decl, resolver.resolve()); + } + + return WGSLCodeGenerator::ProgramRequirements(std::move(dependencies), mainNeedsCoordsArgument); +} + +} // namespace + +bool WGSLCodeGenerator::generateCode() { + // The resources of a WGSL program are structured in the following way: + // - Vertex and fragment stage attribute inputs and outputs are bundled + // inside synthetic structs called VSIn/VSOut/FSIn/FSOut. + // - All uniform and storage type resources are declared in global scope. + this->preprocessProgram(); + + StringStream header; + { + AutoOutputStream outputToHeader(this, &header, &fIndentation); + // TODO(skia:13092): Implement the following: + // - struct definitions + // - global uniform/storage resource declarations, including interface blocks. + this->writeStageInputStruct(); + this->writeStageOutputStruct(); + } + StringStream body; + { + AutoOutputStream outputToBody(this, &body, &fIndentation); + for (const ProgramElement* e : fProgram.elements()) { + this->writeProgramElement(*e); + } + +// TODO(skia:13092): This is a temporary debug feature. Remove when the implementation is +// complete and this is no longer needed. +#if DUMP_SRC_IR + this->writeLine("\n----------"); + this->writeLine("Source IR:\n"); + for (const ProgramElement* e : fProgram.elements()) { + this->writeLine(e->description().c_str()); + } +#endif + } + + write_stringstream(header, *fOut); + write_stringstream(body, *fOut); + fContext.fErrors->reportPendingErrors(Position()); + return fContext.fErrors->errorCount() == 0; +} + +void WGSLCodeGenerator::preprocessProgram() { + fRequirements = resolve_program_requirements(&fProgram); +} + +void WGSLCodeGenerator::write(std::string_view s) { + if (s.empty()) { + return; + } + if (fAtLineStart) { + for (int i = 0; i < fIndentation; i++) { + fOut->writeText(" "); + } + } + fOut->writeText(std::string(s).c_str()); + fAtLineStart = false; +} + +void WGSLCodeGenerator::writeLine(std::string_view s) { + this->write(s); + fOut->writeText("\n"); + fAtLineStart = true; +} + +void WGSLCodeGenerator::finishLine() { + if (!fAtLineStart) { + this->writeLine(); + } +} + +void WGSLCodeGenerator::writeName(std::string_view name) { + // Add underscore before name to avoid conflict with reserved words. + if (fReservedWords.contains(name)) { + this->write("_"); + } + this->write(name); +} + +void WGSLCodeGenerator::writePipelineIODeclaration(Modifiers modifiers, + const Type& type, + std::string_view name) { + // In WGSL, an entry-point IO parameter is "one of either a built-in value or + // assigned a location". However, some SkSL declarations, specifically sk_FragColor, can + // contain both a location and a builtin modifier. In addition, WGSL doesn't have a built-in + // equivalent for sk_FragColor as it relies on the user-defined location for a render + // target. + // + // Instead of special-casing sk_FragColor, we just give higher precedence to a location + // modifier if a declaration happens to both have a location and it's a built-in. + // + // Also see: + // https://www.w3.org/TR/WGSL/#input-output-locations + // https://www.w3.org/TR/WGSL/#attribute-location + // https://www.w3.org/TR/WGSL/#builtin-inputs-outputs + int location = modifiers.fLayout.fLocation; + if (location >= 0) { + this->writeUserDefinedVariableDecl(type, name, location); + } else if (modifiers.fLayout.fBuiltin >= 0) { + auto builtin = builtin_from_sksl_name(modifiers.fLayout.fBuiltin); + if (builtin.has_value()) { + this->writeBuiltinVariableDecl(type, name, *builtin); + } + } +} + +void WGSLCodeGenerator::writeUserDefinedVariableDecl(const Type& type, + std::string_view name, + int location) { + this->write("@location(" + std::to_string(location) + ") "); + this->writeName(name); + this->write(": " + to_wgsl_type(type)); + this->writeLine(";"); +} + +void WGSLCodeGenerator::writeBuiltinVariableDecl(const Type& type, + std::string_view name, + Builtin kind) { + this->write("@builtin("); + this->write(to_wgsl_builtin_name(kind)); + this->write(") "); + + this->writeName(name); + this->write(": " + to_wgsl_type(type)); + this->writeLine(";"); +} + +void WGSLCodeGenerator::writeFunction(const FunctionDefinition& f) { + this->writeFunctionDeclaration(f.declaration()); + this->write(" "); + this->writeBlock(f.body()->as()); + + 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); + } +} + +void WGSLCodeGenerator::writeFunctionDeclaration(const FunctionDeclaration& f) { + this->write("fn "); + this->write(f.mangledName()); + this->write("("); + const char* separator = ""; + FunctionDependencies* deps = fRequirements.dependencies.find(&f); + if (deps) { + std::string_view structNamePrefix = pipeline_struct_prefix(fProgram.fConfig->fKind); + if (structNamePrefix.length() != 0) { + if ((*deps & FunctionDependencies::kPipelineInputs) != FunctionDependencies::kNone) { + separator = ", "; + this->write("_stageIn: "); + this->write(structNamePrefix); + this->write("In"); + } + if ((*deps & FunctionDependencies::kPipelineOutputs) != FunctionDependencies::kNone) { + this->write(separator); + separator = ", "; + this->write("_stageOut: ptrwrite(structNamePrefix); + this->write("Out>"); + } + } + } + for (const Variable* param : f.parameters()) { + this->write(separator); + separator = ", "; + this->writeName(param->name()); + this->write(": "); + + // Declare an "out" function parameter as a pointer. + if (param->modifiers().fFlags & Modifiers::kOut_Flag) { + this->write(to_ptr_type(param->type())); + } else { + this->write(to_wgsl_type(param->type())); + } + } + this->write(")"); + if (!f.returnType().isVoid()) { + this->write(" -> "); + this->write(to_wgsl_type(f.returnType())); + } +} + +void WGSLCodeGenerator::writeEntryPoint(const FunctionDefinition& main) { + SkASSERT(main.declaration().isMain()); + + // The input and output parameters for a vertex/fragment stage entry point function have the + // FSIn/FSOut/VSIn/VSOut struct types that have been synthesized in generateCode(). An entry + // point always has the same signature and acts as a trampoline to the user-defined main + // function. + std::string outputType; + if (fProgram.fConfig->fKind == ProgramKind::kVertex) { + this->writeLine("@stage(vertex) fn vertexMain(_stageIn: VSIn) -> VSOut {"); + outputType = "VSOut"; + } else if (fProgram.fConfig->fKind == ProgramKind::kFragment) { + this->writeLine("@stage(fragment) fn fragmentMain(_stageIn: FSIn) -> FSOut {"); + outputType = "FSOut"; + } else { + fContext.fErrors->error(Position(), "program kind not supported"); + return; + } + + // Declare the stage output struct. + fIndentation++; + this->write("var _stageOut: "); + this->write(outputType); + this->writeLine(";"); + + // Generate assignment to sk_FragColor built-in if the user-defined main returns a color. + if (fProgram.fConfig->fKind == ProgramKind::kFragment) { + auto symbolTable = top_level_symbol_table(main); + const Symbol* symbol = (*symbolTable)["sk_FragColor"]; + SkASSERT(symbol); + if (main.declaration().returnType().matches(symbol->type())) { + this->write("_stageOut.sk_FragColor = "); + } + } + + // Generate the function call to the user-defined main: + this->write(main.declaration().mangledName()); + this->write("("); + const char* separator = ""; + FunctionDependencies* deps = fRequirements.dependencies.find(&main.declaration()); + if (deps) { + if ((*deps & FunctionDependencies::kPipelineInputs) != FunctionDependencies::kNone) { + separator = ", "; + this->write("_stageIn"); + } + if ((*deps & FunctionDependencies::kPipelineOutputs) != FunctionDependencies::kNone) { + this->write(separator); + separator = ", "; + this->write("&_stageOut"); + } + } + // TODO(armansito): Handle arbitrary parameters. + if (main.declaration().parameters().size() != 0) { + const Variable* v = main.declaration().parameters()[0]; + const Type& type = v->type(); + if (v->modifiers().fLayout.fBuiltin == SK_MAIN_COORDS_BUILTIN) { + if (!type.matches(*fContext.fTypes.fFloat2)) { + fContext.fErrors->error( + main.fPosition, + "main function has unsupported parameter: " + type.description()); + return; + } + + this->write(separator); + separator = ", "; + this->write("_stageIn.sk_FragCoord.xy"); + } + } + this->writeLine(");"); + this->writeLine("return _stageOut;"); + + fIndentation--; + this->writeLine("}"); +} + +void WGSLCodeGenerator::writeStatement(const Statement& s) { + switch (s.kind()) { + case Statement::Kind::kBlock: + this->writeBlock(s.as()); + break; + case Statement::Kind::kExpression: + this->writeExpressionStatement(s.as()); + break; + case Statement::Kind::kReturn: + this->writeReturnStatement(s.as()); + break; + case Statement::Kind::kVarDeclaration: + this->writeVarDeclaration(s.as()); + break; + default: + SkDEBUGFAILF("unsupported statement (kind: %d) %s", s.kind(), s.description().c_str()); + break; + } +} + +void WGSLCodeGenerator::writeStatements(const StatementArray& statements) { + for (const auto& s : statements) { + if (!s->isEmpty()) { + this->writeStatement(*s); + this->finishLine(); + } + } +} + +void WGSLCodeGenerator::writeBlock(const Block& b) { + // Write scope markers if this block is a scope, or if the block is empty (since we need to emit + // something here to make the code valid). + bool isScope = b.isScope() || b.isEmpty(); + if (isScope) { + this->writeLine("{"); + fIndentation++; + } + this->writeStatements(b.children()); + if (isScope) { + fIndentation--; + this->writeLine("}"); + } +} + +void WGSLCodeGenerator::writeExpressionStatement(const ExpressionStatement& s) { + if (s.expression()->hasSideEffects()) { + this->writeExpression(*s.expression(), Precedence::kTopLevel); + this->write(";"); + } +} + +void WGSLCodeGenerator::writeReturnStatement(const ReturnStatement& s) { + this->write("return"); + if (s.expression()) { + this->write(" "); + this->writeExpression(*s.expression(), Precedence::kTopLevel); + } + this->write(";"); +} + +void WGSLCodeGenerator::writeVarDeclaration(const VarDeclaration& varDecl) { + bool isConst = varDecl.var().modifiers().fFlags & Modifiers::kConst_Flag; + if (isConst) { + this->write("let "); + } else { + this->write("var "); + } + this->writeName(varDecl.var().name()); + this->write(": "); + this->write(to_wgsl_type(varDecl.var().type())); + + if (varDecl.value()) { + this->write(" = "); + this->writeExpression(*varDecl.value(), Precedence::kTopLevel); + } else if (isConst) { + SkDEBUGFAILF("A let-declared constant must specify a value"); + } + + this->write(";"); +} + +void WGSLCodeGenerator::writeExpression(const Expression& e, Precedence parentPrecedence) { + switch (e.kind()) { + case Expression::Kind::kBinary: + this->writeBinaryExpression(e.as(), parentPrecedence); + break; + case Expression::Kind::kConstructorCompound: + this->writeConstructorCompound(e.as(), parentPrecedence); + break; + case Expression::Kind::kLiteral: + this->writeLiteral(e.as()); + break; + default: + SkDEBUGFAILF("unsupported expression (kind: %d) %s", + static_cast(e.kind()), + e.description().c_str()); + break; + } +} + +void WGSLCodeGenerator::writeBinaryExpression(const BinaryExpression& b, + Precedence parentPrecedence) { + // TODO(skia:13092): implement +} + +void WGSLCodeGenerator::writeLiteral(const Literal& l) { + const Type& type = l.type(); + if (type.isFloat()) { + this->write(skstd::to_string(l.floatValue())); + return; + } + if (type.isBoolean()) { + this->write(l.boolValue() ? "true" : "false"); + return; + } + SkASSERT(type.isInteger()); + if (type.matches(*fContext.fTypes.fUInt)) { + this->write(std::to_string(l.intValue() & 0xffffffff)); + this->write("u"); + } else if (type.matches(*fContext.fTypes.fUShort)) { + this->write(std::to_string(l.intValue() & 0xffff)); + this->write("u"); + } else { + this->write(std::to_string(l.intValue())); + } +} + +void WGSLCodeGenerator::writeAnyConstructor(const AnyConstructor& c, Precedence parentPrecedence) { + this->write(to_wgsl_type(c.type())); + this->write("("); + const char* separator = ""; + for (const auto& e : c.argumentSpan()) { + this->write(separator); + separator = ", "; + this->writeExpression(*e, Precedence::kSequence); + } + this->write(")"); +} + +void WGSLCodeGenerator::writeConstructorCompound(const ConstructorCompound& c, + Precedence parentPrecedence) { + // TODO(skia:13092): Support matrix constructors + if (c.type().isVector()) { + this->writeConstructorCompoundVector(c, parentPrecedence); + } else { + fContext.fErrors->error(c.fPosition, "unsupported compound constructor"); + } +} + +void WGSLCodeGenerator::writeConstructorCompoundVector(const ConstructorCompound& c, + Precedence parentPrecedence) { + // TODO(skia:13092): WGSL supports constructing vectors from a mix of scalars and vectors but + // not matrices. SkSL supports vec4(mat2x2) which we need to handle here + // (see https://www.w3.org/TR/WGSL/#type-constructor-expr). + this->writeAnyConstructor(c, parentPrecedence); +} + +void WGSLCodeGenerator::writeProgramElement(const ProgramElement& e) { + switch (e.kind()) { + case ProgramElement::Kind::kExtension: + // TODO(skia:13092): WGSL supports extensions via the "enable" directive + // (https://www.w3.org/TR/WGSL/#language-extensions). While we could easily emit this + // directive, we should first ensure that all possible SkSL extension names are + // converted to their appropriate WGSL extension. Currently there are no known supported + // WGSL extensions aside from the hypotheticals listed in the spec. + break; + case ProgramElement::Kind::kGlobalVar: + // All global declarations are handled explicitly as the "program header" in + // generateCode(). + break; + case ProgramElement::Kind::kInterfaceBlock: + // All interface block declarations are handled explicitly as the "program header" in + // generateCode(). + break; + case ProgramElement::Kind::kStructDefinition: + // All struct type declarations are handled explicitly as the "program header" in + // generateCode(). + break; + case ProgramElement::Kind::kFunctionPrototype: + // A WGSL function declaration must contain its body and the function name is in scope + // for the entire program (see https://www.w3.org/TR/WGSL/#function-declaration and + // https://www.w3.org/TR/WGSL/#declaration-and-scope). + // + // As such, we don't emit function prototypes. + break; + case ProgramElement::Kind::kFunction: + this->writeFunction(e.as()); + break; + default: + SkDEBUGFAILF("unsupported program element: %s\n", e.description().c_str()); + break; + } +} + +void WGSLCodeGenerator::writeStageInputStruct() { + std::string_view structNamePrefix = pipeline_struct_prefix(fProgram.fConfig->fKind); + if (structNamePrefix.empty()) { + // There's no need to declare pipeline stage outputs. + return; + } + + this->write("struct "); + this->write(structNamePrefix); + this->writeLine("In {"); + fIndentation++; + + bool declaredFragCoordsBuiltin = false; + for (const ProgramElement* e : fProgram.elements()) { + if (e->is()) { + const Variable& v = + e->as().declaration()->as().var(); + if (v.modifiers().fFlags & Modifiers::kIn_Flag) { + this->writePipelineIODeclaration(v.modifiers(), v.type(), v.name()); + if (v.modifiers().fLayout.fBuiltin == SK_FRAGCOORD_BUILTIN) { + declaredFragCoordsBuiltin = true; + } + } + } else if (e->is()) { + const Variable& v = e->as().variable(); + // Merge all the members of `in` interface blocks to the input struct, which are + // specified as either "builtin" or with a "layout(location=". + // + // TODO(armansito): Is it legal to have an interface block without a storage qualifier + // but with members that have individual storage qualifiers? + if (v.modifiers().fFlags & Modifiers::kIn_Flag) { + for (const auto& f : v.type().fields()) { + this->writePipelineIODeclaration(f.fModifiers, *f.fType, f.fName); + if (f.fModifiers.fLayout.fBuiltin == SK_FRAGCOORD_BUILTIN) { + declaredFragCoordsBuiltin = true; + } + } + } + } + } + + if (fProgram.fConfig->fKind == ProgramKind::kFragment && + fRequirements.mainNeedsCoordsArgument && !declaredFragCoordsBuiltin) { + this->writeLine("@builtin(position) sk_FragCoord: vec4;"); + } + + fIndentation--; + this->writeLine("};"); +} + +void WGSLCodeGenerator::writeStageOutputStruct() { + std::string_view structNamePrefix = pipeline_struct_prefix(fProgram.fConfig->fKind); + if (structNamePrefix.empty()) { + // There's no need to declare pipeline stage outputs. + return; + } + + this->write("struct "); + this->write(structNamePrefix); + this->writeLine("Out {"); + fIndentation++; + + // TODO(skia:13092): Remember all variables that are added to the output struct here so they + // can be referenced correctly when handling variable references. + for (const ProgramElement* e : fProgram.elements()) { + if (e->is()) { + const Variable& v = + e->as().declaration()->as().var(); + if (v.modifiers().fFlags & Modifiers::kOut_Flag) { + this->writePipelineIODeclaration(v.modifiers(), v.type(), v.name()); + } + } else if (e->is()) { + const Variable& v = e->as().variable(); + // Merge all the members of `out` interface blocks to the output struct, which are + // specified as either "builtin" or with a "layout(location=". + // + // TODO(armansito): Is it legal to have an interface block without a storage qualifier + // but with members that have individual storage qualifiers? + if (v.modifiers().fFlags & Modifiers::kOut_Flag) { + for (const auto& f : v.type().fields()) { + this->writePipelineIODeclaration(f.fModifiers, *f.fType, f.fName); + } + } + } + } + + fIndentation--; + this->writeLine("};"); +} + +} // namespace SkSL diff --git a/third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.h b/third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.h new file mode 100644 index 000000000000..fe6d3a58b496 --- /dev/null +++ b/third_party/skia/src/sksl/codegen/SkSLWGSLCodeGenerator.h @@ -0,0 +1,171 @@ +/* + * Copyright 2022 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SKSL_WGSLCODEGENERATOR +#define SKSL_WGSLCODEGENERATOR + +#include +#include +#include +#include + +#include "include/private/SkSLDefines.h" +#include "include/private/SkTHash.h" +#include "include/sksl/SkSLOperator.h" +#include "src/sksl/codegen/SkSLCodeGenerator.h" + +namespace sknonstd { +template struct is_bitmask_enum; +} // namespace sknonstd + +namespace SkSL { + +class AnyConstructor; +class BinaryExpression; +class Block; +class Context; +class ConstructorCompound; +class Expression; +class ExpressionStatement; +class FunctionDeclaration; +class FunctionDefinition; +class Literal; +class OutputStream; +class ProgramElement; +class ReturnStatement; +class Statement; +class Type; +class VarDeclaration; +struct Modifiers; +struct Program; + +/** + * Convert a Program into WGSL code. + */ +class WGSLCodeGenerator : public CodeGenerator { +public: + // See https://www.w3.org/TR/WGSL/#builtin-values + enum class Builtin { + // Vertex stage: + kVertexIndex, // input + kInstanceIndex, // input + kPosition, // output, fragment stage input + + // Fragment stage: + kFrontFacing, // input + kSampleIndex, // input + kFragDepth, // output + kSampleMask, // input, output + + // Compute stage: + kLocalInvocationId, // input + kLocalInvocationIndex, // input + kGlobalInvocationId, // input + kWorkgroupId, // input + kNumWorkgroups, // input + }; + + // Represents a function's dependencies that are not accessible in global scope. For instance, + // pipeline stage input and output parameters must be passed in as an argument. + // + // This is a bitmask enum. + enum class FunctionDependencies : uint8_t { + kNone = 0, + kPipelineInputs = 1, + kPipelineOutputs = 2, + }; + + struct ProgramRequirements { + using DepsMap = SkTHashMap; + + ProgramRequirements() = default; + ProgramRequirements(DepsMap dependencies, bool mainNeedsCoordsArgument) + : dependencies(std::move(dependencies)) + , mainNeedsCoordsArgument(mainNeedsCoordsArgument) {} + + // Mappings used to synthesize function parameters according to dependencies on pipeline + // input/output variables. + DepsMap dependencies; + + // True, if the main function takes a coordinate parameter. This is used to ensure that + // sk_FragCoord is declared as part of pipeline inputs. + bool mainNeedsCoordsArgument; + }; + + WGSLCodeGenerator(const Context* context, const Program* program, OutputStream* out) + : INHERITED(context, program, out) {} + + bool generateCode() override; + +private: + using INHERITED = CodeGenerator; + using Precedence = Operator::Precedence; + + // Called by generateCode() as the first step. + void preprocessProgram(); + + // Write output content while correctly handling indentation. + void write(std::string_view s); + void writeLine(std::string_view s = std::string_view()); + void finishLine(); + void writeName(std::string_view name); + + // Helpers to declare a pipeline stage IO parameter declaration. + void writePipelineIODeclaration(Modifiers modifiers, const Type& type, std::string_view name); + void writeUserDefinedVariableDecl(const Type& type, std::string_view name, int location); + void writeBuiltinVariableDecl(const Type& type, std::string_view name, Builtin kind); + + // Write a function definition. + void writeFunction(const FunctionDefinition& f); + void writeFunctionDeclaration(const FunctionDeclaration& f); + + // Write the program entry point. + void writeEntryPoint(const FunctionDefinition& f); + + // Writers for supported statement types. + void writeStatement(const Statement& s); + void writeStatements(const StatementArray& statements); + void writeBlock(const Block& b); + void writeExpressionStatement(const ExpressionStatement& s); + void writeReturnStatement(const ReturnStatement& s); + void writeVarDeclaration(const VarDeclaration& varDecl); + + // Writers for expressions. + void writeExpression(const Expression& e, Precedence parentPrecedence); + void writeBinaryExpression(const BinaryExpression& b, Precedence parentPrecedence); + void writeLiteral(const Literal& l); + + // Constructor expressions + void writeAnyConstructor(const AnyConstructor& c, Precedence parentPrecedence); + void writeConstructorCompound(const ConstructorCompound& c, Precedence parentPrecedence); + void writeConstructorCompoundVector(const ConstructorCompound& c, Precedence parentPrecedence); + + // Generic recursive ProgramElement visitor. + void writeProgramElement(const ProgramElement& e); + + // We bundle all varying pipeline stage inputs and outputs in a struct. + void writeStageInputStruct(); + void writeStageOutputStruct(); + + // Stores the disallowed identifier names. + // TODO(skia:13092): populate this + SkTHashSet fReservedWords; + ProgramRequirements fRequirements; + + // Output processing state. + int fIndentation = 0; + bool fAtLineStart = false; +}; + +} // namespace SkSL + +namespace sknonstd { +template <> +struct is_bitmask_enum : std::true_type {}; +} // namespace sknonstd + +#endif // SKSL_WGSLCODEGENERATOR diff --git a/third_party/skia/src/sksl/dsl/BUILD.bazel b/third_party/skia/src/sksl/dsl/BUILD.bazel index fe59f0fb19c5..6bbad41cd5c2 100644 --- a/third_party/skia/src/sksl/dsl/BUILD.bazel +++ b/third_party/skia/src/sksl/dsl/BUILD.bazel @@ -1,4 +1,8 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") + +licenses(["notice"]) + +enforce_iwyu_on_package() generated_cc_atom( name = "DSLBlock_src", @@ -7,6 +11,7 @@ generated_cc_atom( deps = [ "//include/sksl:DSLBlock_hdr", "//include/sksl:DSLStatement_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/sksl/ir:SkSLBlock_hdr", ], ) @@ -15,10 +20,7 @@ generated_cc_atom( name = "DSLCase_src", srcs = ["DSLCase.cpp"], visibility = ["//:__subpackages__"], - deps = [ - "//include/private:SkSLStatement_hdr", - "//include/sksl:DSLCase_hdr", - ], + deps = ["//include/sksl:DSLCase_hdr"], ) generated_cc_atom( @@ -26,11 +28,24 @@ generated_cc_atom( srcs = ["DSLCore.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkTypes_hdr", "//include/private:SkSLDefines_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkSLSymbol_hdr", "//include/sksl:DSLCore_hdr", + "//include/sksl:DSLModifiers_hdr", "//include/sksl:DSLSymbols_hdr", + "//include/sksl:DSLType_hdr", "//include/sksl:DSLVar_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLPosition_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLContext_hdr", + "//src/sksl:SkSLParsedModule_hdr", + "//src/sksl:SkSLPool_hdr", + "//src/sksl:SkSLProgramSettings_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl/dsl/priv:DSLWriter_hdr", "//src/sksl/ir:SkSLBlock_hdr", @@ -38,6 +53,7 @@ generated_cc_atom( "//src/sksl/ir:SkSLContinueStatement_hdr", "//src/sksl/ir:SkSLDiscardStatement_hdr", "//src/sksl/ir:SkSLDoStatement_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLExtension_hdr", "//src/sksl/ir:SkSLField_hdr", "//src/sksl/ir:SkSLForStatement_hdr", @@ -45,11 +61,15 @@ generated_cc_atom( "//src/sksl/ir:SkSLIfStatement_hdr", "//src/sksl/ir:SkSLInterfaceBlock_hdr", "//src/sksl/ir:SkSLModifiersDeclaration_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLReturnStatement_hdr", - "//src/sksl/ir:SkSLStructDefinition_hdr", "//src/sksl/ir:SkSLSwitchStatement_hdr", "//src/sksl/ir:SkSLSwizzle_hdr", + "//src/sksl/ir:SkSLSymbolTable_hdr", "//src/sksl/ir:SkSLTernaryExpression_hdr", + "//src/sksl/ir:SkSLType_hdr", + "//src/sksl/ir:SkSLVarDeclarations_hdr", + "//src/sksl/ir:SkSLVariable_hdr", "//src/sksl/transform:SkSLTransform_hdr", ], ) @@ -59,14 +79,21 @@ generated_cc_atom( srcs = ["DSLExpression.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", "//include/sksl:DSLCore_hdr", "//include/sksl:DSLExpression_hdr", + "//include/sksl:DSLStatement_hdr", + "//include/sksl:DSLType_hdr", "//include/sksl:DSLVar_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/sksl:SkSLCompiler_hdr", + "//include/sksl:DSLWrapper_hdr", + "//include/sksl:SkSLOperator_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl/dsl/priv:DSLWriter_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLFieldAccess_hdr", "//src/sksl/ir:SkSLFunctionCall_hdr", "//src/sksl/ir:SkSLIndexExpression_hdr", @@ -74,6 +101,7 @@ generated_cc_atom( "//src/sksl/ir:SkSLPoison_hdr", "//src/sksl/ir:SkSLPostfixExpression_hdr", "//src/sksl/ir:SkSLPrefixExpression_hdr", + "//src/sksl/ir:SkSLVariableReference_hdr", ], ) @@ -82,16 +110,24 @@ generated_cc_atom( srcs = ["DSLFunction.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkTypes_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkSLString_hdr", "//include/sksl:DSLFunction_hdr", "//include/sksl:DSLVar_hdr", - "//src/sksl:SkSLAnalysis_hdr", - "//src/sksl:SkSLCompiler_hdr", + "//include/sksl:DSLWrapper_hdr", + "//src/sksl:SkSLProgramSettings_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl/dsl/priv:DSLWriter_hdr", + "//src/sksl/ir:SkSLBlock_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLFunctionCall_hdr", + "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", "//src/sksl/ir:SkSLFunctionPrototype_hdr", - "//src/sksl/ir:SkSLReturnStatement_hdr", + "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -110,11 +146,15 @@ generated_cc_atom( srcs = ["DSLRuntimeEffects.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//include/effects:SkRuntimeEffect_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLProgramKind_hdr", "//include/sksl:DSLCore_hdr", "//include/sksl:DSLRuntimeEffects_hdr", - "//src/sksl:SkSLCompiler_hdr", + "//include/sksl:SkSLPosition_hdr", + "//src/sksl:SkSLContext_hdr", + "//src/sksl:SkSLProgramSettings_hdr", "//src/sksl:SkSLThreadContext_hdr", + "//src/sksl/ir:SkSLProgram_hdr", ], ) @@ -123,14 +163,17 @@ generated_cc_atom( srcs = ["DSLStatement.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/private:SkSLDefines_hdr", "//include/sksl:DSLBlock_hdr", "//include/sksl:DSLExpression_hdr", "//include/sksl:DSLStatement_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/sksl:SkSLCompiler_hdr", + "//include/sksl:SkSLPosition_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl/ir:SkSLBlock_hdr", "//src/sksl/ir:SkSLExpressionStatement_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLNop_hdr", ], ) @@ -140,10 +183,14 @@ generated_cc_atom( srcs = ["DSLSymbols.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/private:SkSLSymbol_hdr", "//include/sksl:DSLSymbols_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/sksl:SkSLCompiler_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl/dsl/priv:DSLWriter_hdr", + "//src/sksl/ir:SkSLSymbolTable_hdr", + "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -153,10 +200,24 @@ generated_cc_atom( srcs = ["DSLType.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLLayout_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLString_hdr", + "//include/private:SkSLSymbol_hdr", "//include/sksl:DSLType_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", + "//src/sksl:SkSLContext_hdr", + "//src/sksl:SkSLProgramSettings_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl/ir:SkSLConstructor_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLStructDefinition_hdr", + "//src/sksl/ir:SkSLSymbolTable_hdr", + "//src/sksl/ir:SkSLType_hdr", ], ) @@ -165,17 +226,34 @@ generated_cc_atom( srcs = ["DSLVar.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLLayout_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkSLString_hdr", + "//include/private:SkSLSymbol_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//include/sksl:DSLModifiers_hdr", "//include/sksl:DSLType_hdr", "//include/sksl:DSLVar_hdr", + "//include/sksl:SkSLOperator_hdr", + "//src/core:SkSLTypeShared_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLContext_hdr", + "//src/sksl:SkSLModifiersPool_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl:SkSLUtil_hdr", "//src/sksl/dsl/priv:DSLWriter_hdr", "//src/sksl/ir:SkSLBinaryExpression_hdr", + "//src/sksl/ir:SkSLExpression_hdr", + "//src/sksl/ir:SkSLFieldAccess_hdr", "//src/sksl/ir:SkSLFunctionCall_hdr", "//src/sksl/ir:SkSLSymbolTable_hdr", - "//src/sksl/ir:SkSLVariableReference_hdr", + "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLVariable_hdr", ], ) diff --git a/third_party/skia/src/sksl/dsl/DSLBlock.cpp b/third_party/skia/src/sksl/dsl/DSLBlock.cpp index 24f23358f501..7273497e16d8 100644 --- a/third_party/skia/src/sksl/dsl/DSLBlock.cpp +++ b/third_party/skia/src/sksl/dsl/DSLBlock.cpp @@ -8,18 +8,23 @@ #include "include/sksl/DSLBlock.h" #include "include/sksl/DSLStatement.h" +#include "include/sksl/SkSLPosition.h" #include "src/sksl/ir/SkSLBlock.h" namespace SkSL { namespace dsl { -DSLBlock::DSLBlock(SkSL::StatementArray statements, std::shared_ptr symbols) +DSLBlock::DSLBlock(SkSL::StatementArray statements, std::shared_ptr symbols, + Position pos) : fStatements(std::move(statements)) - , fSymbols(std::move(symbols)) {} + , fSymbols(std::move(symbols)) + , fPosition(pos) {} -DSLBlock::DSLBlock(SkTArray statements, std::shared_ptr symbols) - : fSymbols(std::move(symbols)) { +DSLBlock::DSLBlock(SkTArray statements, std::shared_ptr symbols, + Position pos) + : fSymbols(std::move(symbols)) + , fPosition(pos) { fStatements.reserve_back(statements.count()); for (DSLStatement& s : statements) { fStatements.push_back(s.release()); @@ -36,8 +41,8 @@ DSLBlock::~DSLBlock() { } std::unique_ptr DSLBlock::release() { - return std::make_unique(/*line=*/-1, std::move(fStatements), - std::move(fSymbols)); + return std::make_unique(fPosition, std::move(fStatements), + Block::Kind::kBracedScope, std::move(fSymbols)); } void DSLBlock::append(DSLStatement stmt) { diff --git a/third_party/skia/src/sksl/dsl/DSLCase.cpp b/third_party/skia/src/sksl/dsl/DSLCase.cpp index 7912e9dcd204..4625ad3e20ae 100644 --- a/third_party/skia/src/sksl/dsl/DSLCase.cpp +++ b/third_party/skia/src/sksl/dsl/DSLCase.cpp @@ -7,18 +7,16 @@ #include "include/sksl/DSLCase.h" -#include "include/private/SkSLStatement.h" - namespace SkSL { namespace dsl { -DSLCase::DSLCase(DSLExpression value, SkSL::StatementArray statements, PositionInfo pos) +DSLCase::DSLCase(DSLExpression value, SkSL::StatementArray statements, Position pos) : fValue(std::move(value)) , fStatements(std::move(statements)) , fPosition(pos) {} -DSLCase::DSLCase(DSLExpression value, SkTArray statements, PositionInfo pos) +DSLCase::DSLCase(DSLExpression value, SkTArray statements, Position pos) : fValue(std::move(value)) , fPosition(pos) { fStatements.reserve_back(statements.count()); diff --git a/third_party/skia/src/sksl/dsl/DSLCore.cpp b/third_party/skia/src/sksl/dsl/DSLCore.cpp index 691109da7f29..827b183d6add 100644 --- a/third_party/skia/src/sksl/dsl/DSLCore.cpp +++ b/third_party/skia/src/sksl/dsl/DSLCore.cpp @@ -7,10 +7,23 @@ #include "include/sksl/DSLCore.h" +#include "include/core/SkTypes.h" #include "include/private/SkSLDefines.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkSLSymbol.h" +#include "include/sksl/DSLModifiers.h" #include "include/sksl/DSLSymbols.h" +#include "include/sksl/DSLType.h" #include "include/sksl/DSLVar.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLPosition.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLContext.h" +#include "src/sksl/SkSLParsedModule.h" +#include "src/sksl/SkSLPool.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/dsl/priv/DSLWriter.h" #include "src/sksl/ir/SkSLBlock.h" @@ -18,6 +31,7 @@ #include "src/sksl/ir/SkSLContinueStatement.h" #include "src/sksl/ir/SkSLDiscardStatement.h" #include "src/sksl/ir/SkSLDoStatement.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLExtension.h" #include "src/sksl/ir/SkSLField.h" #include "src/sksl/ir/SkSLForStatement.h" @@ -25,13 +39,20 @@ #include "src/sksl/ir/SkSLIfStatement.h" #include "src/sksl/ir/SkSLInterfaceBlock.h" #include "src/sksl/ir/SkSLModifiersDeclaration.h" +#include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLReturnStatement.h" -#include "src/sksl/ir/SkSLStructDefinition.h" #include "src/sksl/ir/SkSLSwitchStatement.h" #include "src/sksl/ir/SkSLSwizzle.h" +#include "src/sksl/ir/SkSLSymbolTable.h" #include "src/sksl/ir/SkSLTernaryExpression.h" +#include "src/sksl/ir/SkSLType.h" +#include "src/sksl/ir/SkSLVarDeclarations.h" +#include "src/sksl/ir/SkSLVariable.h" #include "src/sksl/transform/SkSLTransform.h" +#include +#include + namespace SkSL { namespace dsl { @@ -97,7 +118,7 @@ class DSLCore { success = true; } if (!success) { - ThreadContext::ReportErrors(PositionInfo()); + ThreadContext::ReportErrors(Position()); } if (pool) { pool->detachFromThread(); @@ -129,16 +150,17 @@ class DSLCore { int unused[] = {0, (static_cast(argArray.push_back(args.release())), 0)...}; static_cast(unused); - return SkSL::FunctionCall::Convert(ThreadContext::Context(), /*line=*/-1, - ThreadContext::Compiler().convertIdentifier(-1, name), std::move(argArray)); + return SkSL::FunctionCall::Convert(ThreadContext::Context(), Position(), + ThreadContext::Compiler().convertIdentifier(Position(), name), + std::move(argArray)); } - static DSLStatement Break(PositionInfo pos) { - return SkSL::BreakStatement::Make(pos.line()); + static DSLStatement Break(Position pos) { + return SkSL::BreakStatement::Make(pos); } - static DSLStatement Continue(PositionInfo pos) { - return SkSL::ContinueStatement::Make(pos.line()); + static DSLStatement Continue(Position pos) { + return SkSL::ContinueStatement::Make(pos); } static void Declare(const DSLModifiers& modifiers) { @@ -146,7 +168,7 @@ class DSLCore { ThreadContext::Modifiers(modifiers.fModifiers))); } - static DSLStatement Declare(DSLVar& var, PositionInfo pos) { + static DSLStatement Declare(DSLVar& var, Position pos) { if (var.fDeclared) { ThreadContext::ReportError("variable has already been declared", pos); } @@ -154,15 +176,15 @@ class DSLCore { return DSLWriter::Declaration(var); } - static DSLStatement Declare(SkTArray& vars, PositionInfo pos) { + static DSLStatement Declare(SkTArray& vars, Position pos) { StatementArray statements; for (DSLVar& v : vars) { statements.push_back(Declare(v, pos).release()); } - return SkSL::Block::MakeUnscoped(pos.line(), std::move(statements)); + return SkSL::Block::Make(pos, std::move(statements), Block::Kind::kCompoundStatement); } - static void Declare(DSLGlobalVar& var, PositionInfo pos) { + static void Declare(DSLGlobalVar& var, Position pos) { if (var.fDeclared) { ThreadContext::ReportError("variable has already been declared", pos); } @@ -185,35 +207,36 @@ class DSLCore { } } - static void Declare(SkTArray& vars, PositionInfo pos) { + static void Declare(SkTArray& vars, Position pos) { for (DSLGlobalVar& v : vars) { Declare(v, pos); } } - static DSLStatement Discard(PositionInfo pos) { - return SkSL::DiscardStatement::Make(pos.line()); + static DSLStatement Discard(Position pos) { + return SkSL::DiscardStatement::Make(pos); } - static DSLPossibleStatement Do(DSLStatement stmt, DSLExpression test) { - return DoStatement::Convert(ThreadContext::Context(), stmt.release(), test.release()); + static DSLStatement Do(DSLStatement stmt, DSLExpression test, Position pos) { + return DSLStatement(DoStatement::Convert(ThreadContext::Context(), pos, stmt.release(), + test.release()), pos); } static DSLPossibleStatement For(DSLStatement initializer, DSLExpression test, - DSLExpression next, DSLStatement stmt, PositionInfo pos) { - return ForStatement::Convert(ThreadContext::Context(), pos.line(), + DSLExpression next, DSLStatement stmt, Position pos) { + return ForStatement::Convert(ThreadContext::Context(), pos, initializer.releaseIfPossible(), test.releaseIfPossible(), next.releaseIfPossible(), stmt.release(), ThreadContext::SymbolTable()); } - static DSLPossibleStatement If(DSLExpression test, DSLStatement ifTrue, DSLStatement ifFalse, - bool isStatic) { - return IfStatement::Convert(ThreadContext::Context(), /*line=*/-1, isStatic, test.release(), - ifTrue.release(), ifFalse.releaseIfPossible()); + static DSLStatement If(DSLExpression test, DSLStatement ifTrue, DSLStatement ifFalse, + bool isStatic, Position pos) { + return DSLStatement(IfStatement::Convert(ThreadContext::Context(), pos, isStatic, + test.release(), ifTrue.release(), ifFalse.releaseIfPossible()), pos); } - static void FindRTAdjust(SkSL::InterfaceBlock& intf, PositionInfo pos) { + static void FindRTAdjust(SkSL::InterfaceBlock& intf, Position pos) { const std::vector& fields = intf.variable().type().componentType().fields(); const Context& context = ThreadContext::Context(); @@ -234,7 +257,7 @@ class DSLCore { static DSLGlobalVar InterfaceBlock(const DSLModifiers& modifiers, std::string_view typeName, SkTArray fields, std::string_view varName, - int arraySize, PositionInfo pos) { + int arraySize, Position pos) { // We need to create a new struct type for the interface block, but we don't want it in the // symbol table. Since dsl::Struct automatically sticks it in the symbol table, we create it // the old fashioned way with MakeStructType. @@ -245,15 +268,16 @@ class DSLCore { if (baseType->isArray()) { baseType = &baseType->componentType(); } - SkSL::VarDeclaration::ErrorCheck(ThreadContext::Context(), field.fPosition.line(), - field.fModifiers.fModifiers, baseType, Variable::Storage::kInterfaceBlock); + SkSL::VarDeclaration::ErrorCheck(ThreadContext::Context(), field.fPosition, + field.fModifiers.fPosition, field.fModifiers.fModifiers, baseType, + Variable::Storage::kInterfaceBlock); GetErrorReporter().reportPendingErrors(field.fPosition); - skslFields.push_back(SkSL::Type::Field(field.fModifiers.fModifiers, field.fName, - &field.fType.skslType())); + skslFields.push_back(SkSL::Type::Field(field.fPosition, field.fModifiers.fModifiers, + field.fName, &field.fType.skslType())); } const SkSL::Type* structType = ThreadContext::SymbolTable()->takeOwnershipOfSymbol(SkSL::Type::MakeStructType( - pos.line(), typeName, std::move(skslFields), /*interfaceBlock=*/true)); + pos, typeName, std::move(skslFields), /*interfaceBlock=*/true)); DSLType varType = arraySize > 0 ? Array(structType, arraySize) : DSLType(structType); DSLGlobalVar var(modifiers, varType, !varName.empty() ? varName : typeName, DSLExpression(), pos); @@ -264,16 +288,15 @@ class DSLCore { } const SkSL::Variable* skslVar = DSLWriter::Var(var); if (skslVar) { - auto intf = std::make_unique(pos.line(), - *skslVar, typeName, varName, arraySize, ThreadContext::SymbolTable()); + auto intf = std::make_unique(pos, *skslVar, typeName, varName, + arraySize, ThreadContext::SymbolTable()); FindRTAdjust(*intf, pos); ThreadContext::ProgramElements().push_back(std::move(intf)); if (varName.empty()) { const std::vector& structFields = structType->fields(); for (size_t i = 0; i < structFields.size(); ++i) { - ThreadContext::SymbolTable()->add(std::make_unique(pos.line(), - skslVar, - i)); + ThreadContext::SymbolTable()->add(std::make_unique( + structFields[i].fPosition, skslVar, i)); } } else { AddToSymbolTable(var); @@ -283,17 +306,17 @@ class DSLCore { return var; } - static DSLStatement Return(DSLExpression value, PositionInfo pos) { + static DSLStatement Return(DSLExpression value, Position pos) { // Note that because Return is called before the function in which it resides exists, at // this point we do not know the function's return type. We therefore do not check for // errors, or coerce the value to the correct type, until the return statement is actually // added to a function. (This is done in FunctionDefinition::Convert.) - return SkSL::ReturnStatement::Make(pos.line(), value.releaseIfPossible()); + return SkSL::ReturnStatement::Make(pos, value.releaseIfPossible()); } static DSLExpression Swizzle(DSLExpression base, SkSL::SwizzleComponent::Type a, - PositionInfo pos) { - return DSLExpression(Swizzle::Convert(ThreadContext::Context(), base.release(), + Position pos) { + return DSLExpression(Swizzle::Convert(ThreadContext::Context(), pos, base.release(), ComponentArray{a}), pos); } @@ -301,8 +324,8 @@ class DSLCore { static DSLExpression Swizzle(DSLExpression base, SkSL::SwizzleComponent::Type a, SkSL::SwizzleComponent::Type b, - PositionInfo pos) { - return DSLExpression(Swizzle::Convert(ThreadContext::Context(), base.release(), + Position pos) { + return DSLExpression(Swizzle::Convert(ThreadContext::Context(), pos, base.release(), ComponentArray{a, b}), pos); } @@ -311,8 +334,8 @@ class DSLCore { SkSL::SwizzleComponent::Type a, SkSL::SwizzleComponent::Type b, SkSL::SwizzleComponent::Type c, - PositionInfo pos) { - return DSLExpression(Swizzle::Convert(ThreadContext::Context(), base.release(), + Position pos) { + return DSLExpression(Swizzle::Convert(ThreadContext::Context(), pos, base.release(), ComponentArray{a, b, c}), pos); } @@ -322,16 +345,18 @@ class DSLCore { SkSL::SwizzleComponent::Type b, SkSL::SwizzleComponent::Type c, SkSL::SwizzleComponent::Type d, - PositionInfo pos) { - return DSLExpression(Swizzle::Convert(ThreadContext::Context(), base.release(), + Position pos) { + return DSLExpression(Swizzle::Convert(ThreadContext::Context(), pos, base.release(), ComponentArray{a,b,c,d}), pos); } - static DSLPossibleExpression Select(DSLExpression test, DSLExpression ifTrue, - DSLExpression ifFalse) { - return TernaryExpression::Convert(ThreadContext::Context(), test.release(), + static DSLExpression Select(DSLExpression test, DSLExpression ifTrue, DSLExpression ifFalse, + Position pos) { + auto result = TernaryExpression::Convert(ThreadContext::Context(), pos, test.release(), ifTrue.release(), ifFalse.release()); + SkASSERT(!result || result->fPosition == pos); + return DSLExpression(std::move(result), pos); } static DSLPossibleStatement Switch(DSLExpression value, SkTArray cases, @@ -342,16 +367,16 @@ class DSLCore { caseBlocks.reserve_back(cases.count()); for (DSLCase& c : cases) { values.push_back(c.fValue.releaseIfPossible()); - caseBlocks.push_back(SkSL::Block::Make(/*line=*/-1, - std::move(c.fStatements), /*symbols=*/nullptr, /*isScope=*/false)); + caseBlocks.push_back(SkSL::Block::Make(Position(), std::move(c.fStatements), + Block::Kind::kUnbracedBlock)); } - return SwitchStatement::Convert(ThreadContext::Context(), /*line=*/-1, isStatic, + return SwitchStatement::Convert(ThreadContext::Context(), Position(), isStatic, value.release(), std::move(values), std::move(caseBlocks), ThreadContext::SymbolTable()); } static DSLPossibleStatement While(DSLExpression test, DSLStatement stmt) { - return ForStatement::ConvertWhile(ThreadContext::Context(), /*line=*/-1, test.release(), + return ForStatement::ConvertWhile(ThreadContext::Context(), Position(), test.release(), stmt.release(), ThreadContext::SymbolTable()); } }; @@ -372,20 +397,20 @@ DSLExpression sk_Position() { return DSLCore::sk_Position(); } -void AddExtension(std::string_view name, PositionInfo pos) { - ThreadContext::ProgramElements().push_back(std::make_unique(pos.line(), name)); +void AddExtension(std::string_view name, Position pos) { + ThreadContext::ProgramElements().push_back(std::make_unique(pos, name)); ThreadContext::ReportErrors(pos); } -DSLStatement Break(PositionInfo pos) { +DSLStatement Break(Position pos) { return DSLCore::Break(pos); } -DSLStatement Continue(PositionInfo pos) { +DSLStatement Continue(Position pos) { return DSLCore::Continue(pos); } -void Declare(const DSLModifiers& modifiers, PositionInfo pos) { +void Declare(const DSLModifiers& modifiers, Position pos) { SkSL::ProgramKind kind = ThreadContext::GetProgramConfig()->fKind; if (kind != ProgramKind::kFragment && kind != ProgramKind::kVertex) { @@ -408,48 +433,47 @@ void Declare(const DSLModifiers& modifiers, PositionInfo pos) { // // So, we put the initial value onto the Var itself instead of the Declare to guarantee that it is // always executed in the correct order. -DSLStatement Declare(DSLVar& var, PositionInfo pos) { +DSLStatement Declare(DSLVar& var, Position pos) { return DSLCore::Declare(var, pos); } -DSLStatement Declare(SkTArray& vars, PositionInfo pos) { +DSLStatement Declare(SkTArray& vars, Position pos) { return DSLCore::Declare(vars, pos); } -void Declare(DSLGlobalVar& var, PositionInfo pos) { +void Declare(DSLGlobalVar& var, Position pos) { DSLCore::Declare(var, pos); } -void Declare(SkTArray& vars, PositionInfo pos) { +void Declare(SkTArray& vars, Position pos) { DSLCore::Declare(vars, pos); } -DSLStatement Discard(PositionInfo pos) { +DSLStatement Discard(Position pos) { if (ThreadContext::GetProgramConfig()->fKind != ProgramKind::kFragment) { ThreadContext::ReportError("discard statement is only permitted in fragment shaders", pos); } return DSLCore::Discard(pos); } -DSLStatement Do(DSLStatement stmt, DSLExpression test, PositionInfo pos) { - return DSLStatement(DSLCore::Do(std::move(stmt), std::move(test)), pos); +DSLStatement Do(DSLStatement stmt, DSLExpression test, Position pos) { + return DSLCore::Do(std::move(stmt), std::move(test), pos); } DSLStatement For(DSLStatement initializer, DSLExpression test, DSLExpression next, - DSLStatement stmt, PositionInfo pos) { + DSLStatement stmt, Position pos) { return DSLStatement(DSLCore::For(std::move(initializer), std::move(test), std::move(next), std::move(stmt), pos), pos); } -DSLStatement If(DSLExpression test, DSLStatement ifTrue, DSLStatement ifFalse, PositionInfo pos) { - return DSLStatement(DSLCore::If(std::move(test), std::move(ifTrue), std::move(ifFalse), - /*isStatic=*/false), - pos); +DSLStatement If(DSLExpression test, DSLStatement ifTrue, DSLStatement ifFalse, Position pos) { + return DSLCore::If(std::move(test), std::move(ifTrue), std::move(ifFalse), /*isStatic=*/false, + pos); } DSLGlobalVar InterfaceBlock(const DSLModifiers& modifiers, std::string_view typeName, SkTArray fields, std::string_view varName, int arraySize, - PositionInfo pos) { + Position pos) { SkSL::ProgramKind kind = ThreadContext::GetProgramConfig()->fKind; if (kind != ProgramKind::kFragment && kind != ProgramKind::kVertex) { @@ -459,28 +483,26 @@ DSLGlobalVar InterfaceBlock(const DSLModifiers& modifiers, std::string_view typ return DSLCore::InterfaceBlock(modifiers, typeName, std::move(fields), varName, arraySize, pos); } -DSLStatement Return(DSLExpression expr, PositionInfo pos) { +DSLStatement Return(DSLExpression expr, Position pos) { return DSLCore::Return(std::move(expr), pos); } DSLExpression Select(DSLExpression test, DSLExpression ifTrue, DSLExpression ifFalse, - PositionInfo pos) { - return DSLExpression(DSLCore::Select(std::move(test), std::move(ifTrue), std::move(ifFalse)), - pos); + Position pos) { + return DSLCore::Select(std::move(test), std::move(ifTrue), std::move(ifFalse), pos); } DSLStatement StaticIf(DSLExpression test, DSLStatement ifTrue, DSLStatement ifFalse, - PositionInfo pos) { - return DSLStatement(DSLCore::If(std::move(test), std::move(ifTrue), std::move(ifFalse), - /*isStatic=*/true), - pos); + Position pos) { + return DSLCore::If(std::move(test), std::move(ifTrue), std::move(ifFalse), /*isStatic=*/true, + pos); } DSLPossibleStatement PossibleStaticSwitch(DSLExpression value, SkTArray cases) { return DSLCore::Switch(std::move(value), std::move(cases), /*isStatic=*/true); } -DSLStatement StaticSwitch(DSLExpression value, SkTArray cases, PositionInfo pos) { +DSLStatement StaticSwitch(DSLExpression value, SkTArray cases, Position pos) { return DSLStatement(PossibleStaticSwitch(std::move(value), std::move(cases)), pos); } @@ -488,203 +510,203 @@ DSLPossibleStatement PossibleSwitch(DSLExpression value, SkTArray cases return DSLCore::Switch(std::move(value), std::move(cases), /*isStatic=*/false); } -DSLStatement Switch(DSLExpression value, SkTArray cases, PositionInfo pos) { +DSLStatement Switch(DSLExpression value, SkTArray cases, Position pos) { return DSLStatement(PossibleSwitch(std::move(value), std::move(cases)), pos); } -DSLStatement While(DSLExpression test, DSLStatement stmt, PositionInfo pos) { +DSLStatement While(DSLExpression test, DSLStatement stmt, Position pos) { return DSLStatement(DSLCore::While(std::move(test), std::move(stmt)), pos); } -DSLExpression Abs(DSLExpression x, PositionInfo pos) { +DSLExpression Abs(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("abs", std::move(x)), pos); } -DSLExpression All(DSLExpression x, PositionInfo pos) { +DSLExpression All(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("all", std::move(x)), pos); } -DSLExpression Any(DSLExpression x, PositionInfo pos) { +DSLExpression Any(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("any", std::move(x)), pos); } -DSLExpression Atan(DSLExpression y_over_x, PositionInfo pos) { +DSLExpression Atan(DSLExpression y_over_x, Position pos) { return DSLExpression(DSLCore::Call("atan", std::move(y_over_x)), pos); } -DSLExpression Atan(DSLExpression y, DSLExpression x, PositionInfo pos) { +DSLExpression Atan(DSLExpression y, DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("atan", std::move(y), std::move(x)), pos); } -DSLExpression Ceil(DSLExpression x, PositionInfo pos) { +DSLExpression Ceil(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("ceil", std::move(x)), pos); } -DSLExpression Clamp(DSLExpression x, DSLExpression min, DSLExpression max, PositionInfo pos) { +DSLExpression Clamp(DSLExpression x, DSLExpression min, DSLExpression max, Position pos) { return DSLExpression(DSLCore::Call("clamp", std::move(x), std::move(min), std::move(max)), pos); } -DSLExpression Cos(DSLExpression x, PositionInfo pos) { +DSLExpression Cos(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("cos", std::move(x)), pos); } -DSLExpression Cross(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression Cross(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("cross", std::move(x), std::move(y)), pos); } -DSLExpression Degrees(DSLExpression x, PositionInfo pos) { +DSLExpression Degrees(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("degrees", std::move(x)), pos); } -DSLExpression Distance(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression Distance(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("distance", std::move(x), std::move(y)), pos); } -DSLExpression Dot(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression Dot(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("dot", std::move(x), std::move(y)), pos); } -DSLExpression Equal(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression Equal(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("equal", std::move(x), std::move(y)), pos); } -DSLExpression Exp(DSLExpression x, PositionInfo pos) { +DSLExpression Exp(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("exp", std::move(x)), pos); } -DSLExpression Exp2(DSLExpression x, PositionInfo pos) { +DSLExpression Exp2(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("exp2", std::move(x)), pos); } -DSLExpression Faceforward(DSLExpression n, DSLExpression i, DSLExpression nref, PositionInfo pos) { +DSLExpression Faceforward(DSLExpression n, DSLExpression i, DSLExpression nref, Position pos) { return DSLExpression(DSLCore::Call("faceforward", std::move(n), std::move(i), std::move(nref)), pos); } -DSLExpression Fract(DSLExpression x, PositionInfo pos) { +DSLExpression Fract(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("fract", std::move(x)), pos); } -DSLExpression Floor(DSLExpression x, PositionInfo pos) { +DSLExpression Floor(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("floor", std::move(x)), pos); } -DSLExpression GreaterThan(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression GreaterThan(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("greaterThan", std::move(x), std::move(y)), pos); } -DSLExpression GreaterThanEqual(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression GreaterThanEqual(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("greaterThanEqual", std::move(x), std::move(y)), pos); } -DSLExpression Inverse(DSLExpression x, PositionInfo pos) { +DSLExpression Inverse(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("inverse", std::move(x)), pos); } -DSLExpression Inversesqrt(DSLExpression x, PositionInfo pos) { +DSLExpression Inversesqrt(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("inversesqrt", std::move(x)), pos); } -DSLExpression Length(DSLExpression x, PositionInfo pos) { +DSLExpression Length(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("length", std::move(x)), pos); } -DSLExpression LessThan(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression LessThan(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("lessThan", std::move(x), std::move(y)), pos); } -DSLExpression LessThanEqual(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression LessThanEqual(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("lessThanEqual", std::move(x), std::move(y)), pos); } -DSLExpression Log(DSLExpression x, PositionInfo pos) { +DSLExpression Log(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("log", std::move(x)), pos); } -DSLExpression Log2(DSLExpression x, PositionInfo pos) { +DSLExpression Log2(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("log2", std::move(x)), pos); } -DSLExpression Max(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression Max(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("max", std::move(x), std::move(y)), pos); } -DSLExpression Min(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression Min(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("min", std::move(x), std::move(y)), pos); } -DSLExpression Mix(DSLExpression x, DSLExpression y, DSLExpression a, PositionInfo pos) { +DSLExpression Mix(DSLExpression x, DSLExpression y, DSLExpression a, Position pos) { return DSLExpression(DSLCore::Call("mix", std::move(x), std::move(y), std::move(a)), pos); } -DSLExpression Mod(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression Mod(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("mod", std::move(x), std::move(y)), pos); } -DSLExpression Normalize(DSLExpression x, PositionInfo pos) { +DSLExpression Normalize(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("normalize", std::move(x)), pos); } -DSLExpression NotEqual(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression NotEqual(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("notEqual", std::move(x), std::move(y)), pos); } -DSLExpression Pow(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression Pow(DSLExpression x, DSLExpression y, Position pos) { return DSLExpression(DSLCore::Call("pow", std::move(x), std::move(y)), pos); } -DSLExpression Radians(DSLExpression x, PositionInfo pos) { +DSLExpression Radians(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("radians", std::move(x)), pos); } -DSLExpression Reflect(DSLExpression i, DSLExpression n, PositionInfo pos) { +DSLExpression Reflect(DSLExpression i, DSLExpression n, Position pos) { return DSLExpression(DSLCore::Call("reflect", std::move(i), std::move(n)), pos); } -DSLExpression Refract(DSLExpression i, DSLExpression n, DSLExpression eta, PositionInfo pos) { +DSLExpression Refract(DSLExpression i, DSLExpression n, DSLExpression eta, Position pos) { return DSLExpression(DSLCore::Call("refract", std::move(i), std::move(n), std::move(eta)), pos); } -DSLExpression Round(DSLExpression x, PositionInfo pos) { +DSLExpression Round(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("round", std::move(x)), pos); } -DSLExpression Saturate(DSLExpression x, PositionInfo pos) { +DSLExpression Saturate(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("saturate", std::move(x)), pos); } -DSLExpression Sign(DSLExpression x, PositionInfo pos) { +DSLExpression Sign(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("sign", std::move(x)), pos); } -DSLExpression Sin(DSLExpression x, PositionInfo pos) { +DSLExpression Sin(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("sin", std::move(x)), pos); } DSLExpression Smoothstep(DSLExpression edge1, DSLExpression edge2, DSLExpression x, - PositionInfo pos) { + Position pos) { return DSLExpression(DSLCore::Call("smoothstep", std::move(edge1), std::move(edge2), std::move(x)), pos); } -DSLExpression Sqrt(DSLExpression x, PositionInfo pos) { +DSLExpression Sqrt(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("sqrt", std::move(x)), pos); } -DSLExpression Step(DSLExpression edge, DSLExpression x, PositionInfo pos) { +DSLExpression Step(DSLExpression edge, DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("step", std::move(edge), std::move(x)), pos); } DSLExpression Swizzle(DSLExpression base, SkSL::SwizzleComponent::Type a, - PositionInfo pos) { + Position pos) { return DSLCore::Swizzle(std::move(base), a, pos); } DSLExpression Swizzle(DSLExpression base, SkSL::SwizzleComponent::Type a, SkSL::SwizzleComponent::Type b, - PositionInfo pos) { + Position pos) { return DSLCore::Swizzle(std::move(base), a, b, pos); } @@ -692,7 +714,7 @@ DSLExpression Swizzle(DSLExpression base, SkSL::SwizzleComponent::Type a, SkSL::SwizzleComponent::Type b, SkSL::SwizzleComponent::Type c, - PositionInfo pos) { + Position pos) { return DSLCore::Swizzle(std::move(base), a, b, c, pos); } @@ -701,15 +723,15 @@ DSLExpression Swizzle(DSLExpression base, SkSL::SwizzleComponent::Type b, SkSL::SwizzleComponent::Type c, SkSL::SwizzleComponent::Type d, - PositionInfo pos) { + Position pos) { return DSLCore::Swizzle(std::move(base), a, b, c, d, pos); } -DSLExpression Tan(DSLExpression x, PositionInfo pos) { +DSLExpression Tan(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("tan", std::move(x)), pos); } -DSLExpression Unpremul(DSLExpression x, PositionInfo pos) { +DSLExpression Unpremul(DSLExpression x, Position pos) { return DSLExpression(DSLCore::Call("unpremul", std::move(x)), pos); } diff --git a/third_party/skia/src/sksl/dsl/DSLExpression.cpp b/third_party/skia/src/sksl/dsl/DSLExpression.cpp index f0d4fdcbb4dd..42a5a4f5543b 100644 --- a/third_party/skia/src/sksl/dsl/DSLExpression.cpp +++ b/third_party/skia/src/sksl/dsl/DSLExpression.cpp @@ -7,12 +7,18 @@ #include "include/sksl/DSLExpression.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" #include "include/sksl/DSLCore.h" +#include "include/sksl/DSLStatement.h" +#include "include/sksl/DSLType.h" #include "include/sksl/DSLVar.h" -#include "src/sksl/SkSLCompiler.h" +#include "include/sksl/DSLWrapper.h" +#include "include/sksl/SkSLOperator.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/dsl/priv/DSLWriter.h" #include "src/sksl/ir/SkSLBinaryExpression.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLFieldAccess.h" #include "src/sksl/ir/SkSLFunctionCall.h" #include "src/sksl/ir/SkSLIndexExpression.h" @@ -20,11 +26,14 @@ #include "src/sksl/ir/SkSLPoison.h" #include "src/sksl/ir/SkSLPostfixExpression.h" #include "src/sksl/ir/SkSLPrefixExpression.h" +#include "src/sksl/ir/SkSLVariableReference.h" #include +#include #if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" #endif namespace SkSL { @@ -41,9 +50,18 @@ DSLExpression::DSLExpression(std::unique_ptr expression) SkASSERT(this->hasValue()); } -DSLExpression::DSLExpression(float value, PositionInfo pos) +DSLExpression::DSLExpression(std::unique_ptr expression, Position pos) + : fExpression(expression ? std::move(expression) + : SkSL::Poison::Make(pos, ThreadContext::Context())) { + ThreadContext::ReportErrors(pos); + SkASSERTF(this->position() == pos, "expected expression position (%d-%d), but received (%d-%d)", + pos.startOffset(), pos.endOffset(), this->position().startOffset(), + this->position().endOffset()); +} + +DSLExpression::DSLExpression(float value, Position pos) : fExpression(SkSL::Literal::MakeFloat(ThreadContext::Context(), - pos.line(), + pos, value)) { if (!isfinite(value)) { if (isinf(value)) { @@ -54,45 +72,48 @@ DSLExpression::DSLExpression(float value, PositionInfo pos) } } -DSLExpression::DSLExpression(int value, PositionInfo pos) +DSLExpression::DSLExpression(int value, Position pos) : fExpression(SkSL::Literal::MakeInt(ThreadContext::Context(), - pos.line(), + pos, value)) {} -DSLExpression::DSLExpression(int64_t value, PositionInfo pos) +DSLExpression::DSLExpression(int64_t value, Position pos) : fExpression(SkSL::Literal::MakeInt(ThreadContext::Context(), - pos.line(), + pos, value)) {} -DSLExpression::DSLExpression(unsigned int value, PositionInfo pos) +DSLExpression::DSLExpression(unsigned int value, Position pos) : fExpression(SkSL::Literal::MakeInt(ThreadContext::Context(), - pos.line(), + pos, value)) {} -DSLExpression::DSLExpression(bool value, PositionInfo pos) +DSLExpression::DSLExpression(bool value, Position pos) : fExpression(SkSL::Literal::MakeBool(ThreadContext::Context(), - pos.line(), + pos, value)) {} -DSLExpression::DSLExpression(DSLVarBase& var, PositionInfo pos) { - fExpression = std::make_unique(pos.line(), DSLWriter::Var(var), +DSLExpression::DSLExpression(DSLVarBase& var, Position pos) { + fExpression = std::make_unique(pos, DSLWriter::Var(var), SkSL::VariableReference::RefKind::kRead); } -DSLExpression::DSLExpression(DSLVarBase&& var, PositionInfo pos) +DSLExpression::DSLExpression(DSLVarBase&& var, Position pos) : DSLExpression(var) {} -DSLExpression::DSLExpression(DSLPossibleExpression expr, PositionInfo pos) { +DSLExpression::DSLExpression(DSLPossibleExpression expr, Position pos) { ThreadContext::ReportErrors(pos); if (expr.valid()) { fExpression = std::move(expr.fExpression); + if (!this->position().valid()) { + fExpression->fPosition = pos; + } } else { - fExpression = SkSL::Poison::Make(pos.line(), ThreadContext::Context()); + fExpression = SkSL::Poison::Make(pos, ThreadContext::Context()); } } -DSLExpression DSLExpression::Poison(PositionInfo pos) { - return DSLExpression(SkSL::Poison::Make(pos.line(), ThreadContext::Context())); +DSLExpression DSLExpression::Poison(Position pos) { + return DSLExpression(SkSL::Poison::Make(pos, ThreadContext::Context())); } DSLExpression::~DSLExpression() { @@ -125,62 +146,85 @@ std::unique_ptr DSLExpression::releaseIfPossible() { return std::move(fExpression); } -DSLType DSLExpression::type() { +DSLType DSLExpression::type() const { if (!this->hasValue()) { return kVoid_Type; } return &fExpression->type(); } -DSLExpression DSLExpression::x(PositionInfo pos) { +std::string DSLExpression::description() const { + SkASSERT(this->hasValue()); + return fExpression->description(); +} + +Position DSLExpression::position() const { + SkASSERT(this->hasValue()); + return fExpression->fPosition; +} + +void DSLExpression::setPosition(Position pos) { + SkASSERT(this->hasValue()); + fExpression->fPosition = pos; +} + +DSLExpression DSLExpression::x(Position pos) { return Swizzle(std::move(*this), X, pos); } -DSLExpression DSLExpression::y(PositionInfo pos) { +DSLExpression DSLExpression::y(Position pos) { return Swizzle(std::move(*this), Y, pos); } -DSLExpression DSLExpression::z(PositionInfo pos) { +DSLExpression DSLExpression::z(Position pos) { return Swizzle(std::move(*this), Z, pos); } -DSLExpression DSLExpression::w(PositionInfo pos) { +DSLExpression DSLExpression::w(Position pos) { return Swizzle(std::move(*this), W, pos); } -DSLExpression DSLExpression::r(PositionInfo pos) { +DSLExpression DSLExpression::r(Position pos) { return Swizzle(std::move(*this), R, pos); } -DSLExpression DSLExpression::g(PositionInfo pos) { +DSLExpression DSLExpression::g(Position pos) { return Swizzle(std::move(*this), G, pos); } -DSLExpression DSLExpression::b(PositionInfo pos) { +DSLExpression DSLExpression::b(Position pos) { return Swizzle(std::move(*this), B, pos); } -DSLExpression DSLExpression::a(PositionInfo pos) { +DSLExpression DSLExpression::a(Position pos) { return Swizzle(std::move(*this), A, pos); } -DSLExpression DSLExpression::field(std::string_view name, PositionInfo pos) { - return DSLExpression(FieldAccess::Convert(ThreadContext::Context(), +DSLExpression DSLExpression::field(std::string_view name, Position pos) { + return DSLExpression(FieldAccess::Convert(ThreadContext::Context(), pos, *ThreadContext::SymbolTable(), this->release(), name), pos); } DSLPossibleExpression DSLExpression::operator=(DSLExpression right) { - return BinaryExpression::Convert(ThreadContext::Context(), this->release(), - SkSL::Token::Kind::TK_EQ, right.release()); + Position pos = this->position().rangeThrough(right.position()); + return BinaryExpression::Convert(ThreadContext::Context(), pos, this->release(), + SkSL::Operator::Kind::EQ, right.release()); } DSLPossibleExpression DSLExpression::operator[](DSLExpression right) { - return IndexExpression::Convert(ThreadContext::Context(), *ThreadContext::SymbolTable(), + Position pos = this->position().rangeThrough(right.position()); + return IndexExpression::Convert(ThreadContext::Context(), *ThreadContext::SymbolTable(), pos, this->release(), right.release()); } +DSLExpression DSLExpression::index(DSLExpression index, Position pos) { + std::unique_ptr result = IndexExpression::Convert(ThreadContext::Context(), + *ThreadContext::SymbolTable(), pos, this->release(), index.release()); + return DSLExpression(std::move(result), pos); +} + DSLPossibleExpression DSLExpression::operator()(SkTArray> args, - PositionInfo pos) { + Position pos) { ExpressionArray converted; converted.reserve_back(args.count()); for (DSLWrapper& arg : args) { @@ -189,89 +233,107 @@ DSLPossibleExpression DSLExpression::operator()(SkTArrayrelease(), +DSLPossibleExpression DSLExpression::operator()(ExpressionArray args, Position pos) { + return SkSL::FunctionCall::Convert(ThreadContext::Context(), pos, this->release(), std::move(args)); } +DSLExpression DSLExpression::prefix(Operator::Kind op, Position pos) { + std::unique_ptr result = PrefixExpression::Convert(ThreadContext::Context(), + pos, op, this->release()); + return DSLExpression(std::move(result), pos); +} + +DSLExpression DSLExpression::postfix(Operator::Kind op, Position pos) { + std::unique_ptr result = PostfixExpression::Convert(ThreadContext::Context(), + pos, this->release(), op); + return DSLExpression(std::move(result), pos); +} + +DSLExpression DSLExpression::binary(Operator::Kind op, DSLExpression right, Position pos) { + std::unique_ptr result = BinaryExpression::Convert(ThreadContext::Context(), + pos, this->release(), op, right.release()); + return DSLExpression(std::move(result), pos); +} + #define OP(op, token) \ DSLPossibleExpression operator op(DSLExpression left, DSLExpression right) { \ - return BinaryExpression::Convert(ThreadContext::Context(), left.release(), \ - SkSL::Token::Kind::token, right.release()); \ + return BinaryExpression::Convert(ThreadContext::Context(), Position(), left.release(), \ + Operator::Kind::token, right.release()); \ } #define PREFIXOP(op, token) \ DSLPossibleExpression operator op(DSLExpression expr) { \ - return PrefixExpression::Convert(ThreadContext::Context(), SkSL::Token::Kind::token, \ + return PrefixExpression::Convert(ThreadContext::Context(), Position(), Operator::Kind::token, \ expr.release()); \ } #define POSTFIXOP(op, token) \ DSLPossibleExpression operator op(DSLExpression expr, int) { \ - return PostfixExpression::Convert(ThreadContext::Context(), expr.release(), \ - SkSL::Token::Kind::token); \ -} - -OP(+, TK_PLUS) -OP(+=, TK_PLUSEQ) -OP(-, TK_MINUS) -OP(-=, TK_MINUSEQ) -OP(*, TK_STAR) -OP(*=, TK_STAREQ) -OP(/, TK_SLASH) -OP(/=, TK_SLASHEQ) -OP(%, TK_PERCENT) -OP(%=, TK_PERCENTEQ) -OP(<<, TK_SHL) -OP(<<=, TK_SHLEQ) -OP(>>, TK_SHR) -OP(>>=, TK_SHREQ) -OP(&&, TK_LOGICALAND) -OP(||, TK_LOGICALOR) -OP(&, TK_BITWISEAND) -OP(&=, TK_BITWISEANDEQ) -OP(|, TK_BITWISEOR) -OP(|=, TK_BITWISEOREQ) -OP(^, TK_BITWISEXOR) -OP(^=, TK_BITWISEXOREQ) + return PostfixExpression::Convert(ThreadContext::Context(), Position(), expr.release(), \ + Operator::Kind::token); \ +} + +OP(+, PLUS) +OP(+=, PLUSEQ) +OP(-, MINUS) +OP(-=, MINUSEQ) +OP(*, STAR) +OP(*=, STAREQ) +OP(/, SLASH) +OP(/=, SLASHEQ) +OP(%, PERCENT) +OP(%=, PERCENTEQ) +OP(<<, SHL) +OP(<<=, SHLEQ) +OP(>>, SHR) +OP(>>=, SHREQ) +OP(&&, LOGICALAND) +OP(||, LOGICALOR) +OP(&, BITWISEAND) +OP(&=, BITWISEANDEQ) +OP(|, BITWISEOR) +OP(|=, BITWISEOREQ) +OP(^, BITWISEXOR) +OP(^=, BITWISEXOREQ) DSLPossibleExpression LogicalXor(DSLExpression left, DSLExpression right) { - return BinaryExpression::Convert(ThreadContext::Context(), left.release(), - SkSL::Token::Kind::TK_LOGICALXOR, right.release()); -} -OP(==, TK_EQEQ) -OP(!=, TK_NEQ) -OP(>, TK_GT) -OP(<, TK_LT) -OP(>=, TK_GTEQ) -OP(<=, TK_LTEQ) - -PREFIXOP(+, TK_PLUS) -PREFIXOP(-, TK_MINUS) -PREFIXOP(!, TK_LOGICALNOT) -PREFIXOP(~, TK_BITWISENOT) -PREFIXOP(++, TK_PLUSPLUS) -POSTFIXOP(++, TK_PLUSPLUS) -PREFIXOP(--, TK_MINUSMINUS) -POSTFIXOP(--, TK_MINUSMINUS) + return BinaryExpression::Convert(ThreadContext::Context(), Position(), left.release(), + SkSL::Operator::Kind::LOGICALXOR, right.release()); +} +OP(==, EQEQ) +OP(!=, NEQ) +OP(>, GT) +OP(<, LT) +OP(>=, GTEQ) +OP(<=, LTEQ) + +PREFIXOP(+, PLUS) +PREFIXOP(-, MINUS) +PREFIXOP(!, LOGICALNOT) +PREFIXOP(~, BITWISENOT) +PREFIXOP(++, PLUSPLUS) +POSTFIXOP(++, PLUSPLUS) +PREFIXOP(--, MINUSMINUS) +POSTFIXOP(--, MINUSMINUS) DSLPossibleExpression operator,(DSLExpression left, DSLExpression right) { - return BinaryExpression::Convert(ThreadContext::Context(), left.release(), - SkSL::Token::Kind::TK_COMMA, right.release()); + return BinaryExpression::Convert(ThreadContext::Context(), Position(), left.release(), + SkSL::Operator::Kind::COMMA, right.release()); } DSLPossibleExpression operator,(DSLPossibleExpression left, DSLExpression right) { - return BinaryExpression::Convert(ThreadContext::Context(), - DSLExpression(std::move(left)).release(), SkSL::Token::Kind::TK_COMMA, right.release()); + return BinaryExpression::Convert(ThreadContext::Context(), Position(), + DSLExpression(std::move(left)).release(), SkSL::Operator::Kind::COMMA, right.release()); } DSLPossibleExpression operator,(DSLExpression left, DSLPossibleExpression right) { - return BinaryExpression::Convert(ThreadContext::Context(), left.release(), - SkSL::Token::Kind::TK_COMMA, DSLExpression(std::move(right)).release()); + return BinaryExpression::Convert(ThreadContext::Context(), Position(), left.release(), + SkSL::Operator::Kind::COMMA, DSLExpression(std::move(right)).release()); } DSLPossibleExpression operator,(DSLPossibleExpression left, DSLPossibleExpression right) { - return BinaryExpression::Convert(ThreadContext::Context(), - DSLExpression(std::move(left)).release(), SkSL::Token::Kind::TK_COMMA, + return BinaryExpression::Convert(ThreadContext::Context(), Position(), + DSLExpression(std::move(left)).release(), SkSL::Operator::Kind::COMMA, DSLExpression(std::move(right)).release()); } @@ -288,51 +350,61 @@ DSLPossibleExpression::~DSLPossibleExpression() { } } -void DSLPossibleExpression::reportErrors(PositionInfo pos) { +void DSLPossibleExpression::reportErrors(Position pos) { SkASSERT(!this->valid()); ThreadContext::ReportErrors(pos); } -DSLType DSLPossibleExpression::type() { +DSLType DSLPossibleExpression::type() const { if (!this->valid()) { return kVoid_Type; } return &fExpression->type(); } -DSLExpression DSLPossibleExpression::x(PositionInfo pos) { +std::string DSLPossibleExpression::description() const { + SkASSERT(this->valid()); + return fExpression->description(); +} + +Position DSLPossibleExpression::position() const { + SkASSERT(this->valid()); + return fExpression->fPosition; +} + +DSLExpression DSLPossibleExpression::x(Position pos) { return DSLExpression(this->release()).x(pos); } -DSLExpression DSLPossibleExpression::y(PositionInfo pos) { +DSLExpression DSLPossibleExpression::y(Position pos) { return DSLExpression(this->release()).y(pos); } -DSLExpression DSLPossibleExpression::z(PositionInfo pos) { +DSLExpression DSLPossibleExpression::z(Position pos) { return DSLExpression(this->release()).z(pos); } -DSLExpression DSLPossibleExpression::w(PositionInfo pos) { +DSLExpression DSLPossibleExpression::w(Position pos) { return DSLExpression(this->release()).w(pos); } -DSLExpression DSLPossibleExpression::r(PositionInfo pos) { +DSLExpression DSLPossibleExpression::r(Position pos) { return DSLExpression(this->release()).r(pos); } -DSLExpression DSLPossibleExpression::g(PositionInfo pos) { +DSLExpression DSLPossibleExpression::g(Position pos) { return DSLExpression(this->release()).g(pos); } -DSLExpression DSLPossibleExpression::b(PositionInfo pos) { +DSLExpression DSLPossibleExpression::b(Position pos) { return DSLExpression(this->release()).b(pos); } -DSLExpression DSLPossibleExpression::a(PositionInfo pos) { +DSLExpression DSLPossibleExpression::a(Position pos) { return DSLExpression(this->release()).a(pos); } -DSLExpression DSLPossibleExpression::field(std::string_view name, PositionInfo pos) { +DSLExpression DSLPossibleExpression::field(std::string_view name, Position pos) { return DSLExpression(this->release()).field(name, pos); } @@ -357,11 +429,11 @@ DSLPossibleExpression DSLPossibleExpression::operator[](DSLExpression index) { } DSLPossibleExpression DSLPossibleExpression::operator()(SkTArray> args, - PositionInfo pos) { + Position pos) { return DSLExpression(this->release())(std::move(args), pos); } -DSLPossibleExpression DSLPossibleExpression::operator()(ExpressionArray args, PositionInfo pos) { +DSLPossibleExpression DSLPossibleExpression::operator()(ExpressionArray args, Position pos) { return DSLExpression(this->release())(std::move(args), pos); } @@ -381,7 +453,7 @@ DSLPossibleExpression DSLPossibleExpression::operator--(int) { return DSLExpression(this->release())--; } -std::unique_ptr DSLPossibleExpression::release(PositionInfo pos) { +std::unique_ptr DSLPossibleExpression::release(Position pos) { return DSLExpression(std::move(*this), pos).release(); } diff --git a/third_party/skia/src/sksl/dsl/DSLFunction.cpp b/third_party/skia/src/sksl/dsl/DSLFunction.cpp index 713d3a62b901..4e1e5da0b029 100644 --- a/third_party/skia/src/sksl/dsl/DSLFunction.cpp +++ b/third_party/skia/src/sksl/dsl/DSLFunction.cpp @@ -7,22 +7,34 @@ #include "include/sksl/DSLFunction.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkSLString.h" #include "include/sksl/DSLVar.h" -#include "src/sksl/SkSLAnalysis.h" -#include "src/sksl/SkSLCompiler.h" +#include "include/sksl/DSLWrapper.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/dsl/priv/DSLWriter.h" +#include "src/sksl/ir/SkSLBlock.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLFunctionCall.h" +#include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" #include "src/sksl/ir/SkSLFunctionPrototype.h" -#include "src/sksl/ir/SkSLReturnStatement.h" +#include "src/sksl/ir/SkSLVariable.h" + +#include +#include +#include namespace SkSL { namespace dsl { void DSLFunction::init(DSLModifiers modifiers, const DSLType& returnType, std::string_view name, - SkTArray params, PositionInfo pos) { + SkTArray params, Position pos) { fPosition = pos; // Conservatively assume all user-defined functions have side effects. if (!ThreadContext::IsModule()) { @@ -54,7 +66,8 @@ void DSLFunction::init(DSLModifiers modifiers, const DSLType& returnType, std::s SkASSERT(paramVars.size() == params.size()); fDecl = SkSL::FunctionDeclaration::Convert(ThreadContext::Context(), *ThreadContext::SymbolTable(), - pos.line(), + pos, + modifiers.fPosition, ThreadContext::Modifiers(modifiers.fModifiers), name == "main" ? name : DSLWriter::Name(name), std::move(paramVars), &returnType.skslType()); @@ -68,12 +81,13 @@ void DSLFunction::init(DSLModifiers modifiers, const DSLType& returnType, std::s // case the definition is delayed. If we end up defining the function immediately, we'll // remove the prototype in define(). ThreadContext::ProgramElements().push_back(std::make_unique( - pos.line(), fDecl, ThreadContext::IsModule())); + pos, fDecl, ThreadContext::IsModule())); } } -void DSLFunction::define(DSLBlock block, PositionInfo pos) { +void DSLFunction::define(DSLBlock block, Position pos) { std::unique_ptr body = block.release(); + body->fPosition = pos; if (!fDecl) { // Evidently we failed to create the declaration; error should already have been reported. // Release the block so we don't fail its destructor assert. @@ -98,7 +112,7 @@ void DSLFunction::define(DSLBlock block, PositionInfo pos) { } std::unique_ptr function = FunctionDefinition::Convert( ThreadContext::Context(), - pos.line(), + pos, *fDecl, std::move(body), /*builtin=*/false); @@ -107,7 +121,7 @@ void DSLFunction::define(DSLBlock block, PositionInfo pos) { ThreadContext::ProgramElements().push_back(std::move(function)); } -DSLExpression DSLFunction::call(SkTArray> args, PositionInfo pos) { +DSLExpression DSLFunction::call(SkTArray> args, Position pos) { ExpressionArray released; released.reserve_back(args.size()); for (DSLWrapper& arg : args) { @@ -116,9 +130,9 @@ DSLExpression DSLFunction::call(SkTArray> args, Positi return this->call(std::move(released)); } -DSLExpression DSLFunction::call(ExpressionArray args, PositionInfo pos) { +DSLExpression DSLFunction::call(ExpressionArray args, Position pos) { std::unique_ptr result = SkSL::FunctionCall::Convert(ThreadContext::Context(), - pos.line(), *fDecl, std::move(args)); + pos, *fDecl, std::move(args)); return DSLExpression(std::move(result), pos); } diff --git a/third_party/skia/src/sksl/dsl/DSLLayout.cpp b/third_party/skia/src/sksl/dsl/DSLLayout.cpp index f3ec013c621b..766cfeead753 100644 --- a/third_party/skia/src/sksl/dsl/DSLLayout.cpp +++ b/third_party/skia/src/sksl/dsl/DSLLayout.cpp @@ -9,11 +9,13 @@ #include "src/sksl/SkSLThreadContext.h" +#include + namespace SkSL { namespace dsl { -DSLLayout& DSLLayout::flag(SkSL::Layout::Flag mask, const char* name, PositionInfo pos) { +DSLLayout& DSLLayout::flag(SkSL::Layout::Flag mask, const char* name, Position pos) { if (fSkSLLayout.fFlags & mask) { ThreadContext::ReportError( "layout qualifier '" + std::string(name) + "' appears more than once", pos); @@ -23,7 +25,7 @@ DSLLayout& DSLLayout::flag(SkSL::Layout::Flag mask, const char* name, PositionIn } DSLLayout& DSLLayout::intValue(int* target, int value, SkSL::Layout::Flag flag, const char* name, - PositionInfo pos) { + Position pos) { this->flag(flag, name, pos); *target = value; return *this; diff --git a/third_party/skia/src/sksl/dsl/DSLRuntimeEffects.cpp b/third_party/skia/src/sksl/dsl/DSLRuntimeEffects.cpp index c71fbcbacd6c..50e89f1156a2 100644 --- a/third_party/skia/src/sksl/dsl/DSLRuntimeEffects.cpp +++ b/third_party/skia/src/sksl/dsl/DSLRuntimeEffects.cpp @@ -7,10 +7,17 @@ #include "include/sksl/DSLRuntimeEffects.h" -#include "include/effects/SkRuntimeEffect.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLProgramKind.h" #include "include/sksl/DSLCore.h" -#include "src/sksl/SkSLCompiler.h" +#include "include/sksl/SkSLPosition.h" +#include "src/sksl/SkSLContext.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/SkSLThreadContext.h" +#include "src/sksl/ir/SkSLProgram.h" + +#include +#include namespace SkSL { @@ -29,7 +36,7 @@ void StartRuntimeShader(SkSL::Compiler* compiler) { sk_sp EndRuntimeShader(SkRuntimeEffect::Options options) { std::unique_ptr program = ReleaseProgram(); - ThreadContext::ReportErrors(PositionInfo{}); + ThreadContext::ReportErrors(Position{}); sk_sp result; if (program) { result = SkRuntimeEffect::MakeForShader(std::move(program), options, &GetErrorReporter()); diff --git a/third_party/skia/src/sksl/dsl/DSLStatement.cpp b/third_party/skia/src/sksl/dsl/DSLStatement.cpp index ca55b2f6e849..f51e4310a47d 100644 --- a/third_party/skia/src/sksl/dsl/DSLStatement.cpp +++ b/third_party/skia/src/sksl/dsl/DSLStatement.cpp @@ -7,16 +7,19 @@ #include "include/sksl/DSLStatement.h" +#include "include/private/SkSLDefines.h" #include "include/sksl/DSLBlock.h" #include "include/sksl/DSLExpression.h" -#include "src/sksl/SkSLCompiler.h" +#include "include/sksl/SkSLPosition.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/ir/SkSLBlock.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLExpressionStatement.h" #include "src/sksl/ir/SkSLNop.h" #if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" #endif namespace SkSL { @@ -45,18 +48,18 @@ DSLStatement::DSLStatement(std::unique_ptr stmt) SkASSERT(this->hasValue()); } -DSLStatement::DSLStatement(DSLPossibleExpression expr, PositionInfo pos) +DSLStatement::DSLStatement(DSLPossibleExpression expr, Position pos) : DSLStatement(DSLExpression(std::move(expr), pos)) {} -DSLStatement::DSLStatement(DSLPossibleStatement stmt, PositionInfo pos) { +DSLStatement::DSLStatement(DSLPossibleStatement stmt, Position pos) { ThreadContext::ReportErrors(pos); if (stmt.hasValue()) { fStatement = std::move(stmt.fStatement); } else { fStatement = SkSL::Nop::Make(); } - if (pos.line() != -1) { - fStatement->fLine = pos.line(); + if (pos.valid() && !fStatement->fPosition.valid()) { + fStatement->fPosition = pos; } } @@ -83,12 +86,12 @@ DSLPossibleStatement::~DSLPossibleStatement() { } DSLStatement operator,(DSLStatement left, DSLStatement right) { - int line = left.fStatement->fLine; + Position pos = left.fStatement->fPosition; StatementArray stmts; stmts.reserve_back(2); stmts.push_back(left.release()); stmts.push_back(right.release()); - return DSLStatement(SkSL::Block::MakeUnscoped(line, std::move(stmts))); + return DSLStatement(SkSL::Block::Make(pos, std::move(stmts), Block::Kind::kCompoundStatement)); } } // namespace dsl diff --git a/third_party/skia/src/sksl/dsl/DSLSymbols.cpp b/third_party/skia/src/sksl/dsl/DSLSymbols.cpp index 9d6c8e6bce4a..6a46833d01a3 100644 --- a/third_party/skia/src/sksl/dsl/DSLSymbols.cpp +++ b/third_party/skia/src/sksl/dsl/DSLSymbols.cpp @@ -7,15 +7,25 @@ #include "include/sksl/DSLSymbols.h" +#include "include/private/SkSLSymbol.h" +#include "include/sksl/SkSLPosition.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/dsl/priv/DSLWriter.h" +#include "src/sksl/ir/SkSLSymbolTable.h" +#include "src/sksl/ir/SkSLType.h" #include "src/sksl/ir/SkSLVariable.h" +#include +#include +#include + namespace SkSL { namespace dsl { +class DSLVarBase; + static bool is_type_in_symbol_table(std::string_view name, SkSL::SymbolTable* symbols) { const SkSL::Symbol* s = (*symbols)[name]; return s && s->is(); @@ -33,8 +43,8 @@ std::shared_ptr CurrentSymbolTable() { return ThreadContext::SymbolTable(); } -DSLPossibleExpression Symbol(std::string_view name, PositionInfo pos) { - return ThreadContext::Compiler().convertIdentifier(pos.line(), name); +DSLExpression Symbol(std::string_view name, Position pos) { + return DSLExpression(ThreadContext::Compiler().convertIdentifier(pos, name), pos); } bool IsType(std::string_view name) { @@ -45,7 +55,7 @@ bool IsBuiltinType(std::string_view name) { return is_type_in_symbol_table(name, CurrentSymbolTable()->builtinParent()); } -void AddToSymbolTable(DSLVarBase& var, PositionInfo pos) { +void AddToSymbolTable(DSLVarBase& var, Position pos) { const SkSL::Variable* skslVar = DSLWriter::Var(var); if (skslVar) { CurrentSymbolTable()->addWithoutOwnership(skslVar); diff --git a/third_party/skia/src/sksl/dsl/DSLType.cpp b/third_party/skia/src/sksl/dsl/DSLType.cpp index 04cfd02dff04..524124b4eb7f 100644 --- a/third_party/skia/src/sksl/dsl/DSLType.cpp +++ b/third_party/skia/src/sksl/dsl/DSLType.cpp @@ -7,9 +7,28 @@ #include "include/sksl/DSLType.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLLayout.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLString.h" +#include "include/private/SkSLSymbol.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "src/sksl/SkSLBuiltinTypes.h" +#include "src/sksl/SkSLContext.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/ir/SkSLConstructor.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLStructDefinition.h" +#include "src/sksl/ir/SkSLSymbolTable.h" +#include "src/sksl/ir/SkSLType.h" + +#include +#include +#include +#include namespace SkSL { @@ -18,7 +37,7 @@ namespace dsl { static const SkSL::Type* verify_type(const Context& context, const SkSL::Type* type, bool allowPrivateTypes, - PositionInfo pos) { + Position pos) { if (!context.fConfig->fIsBuiltinCode) { if (!allowPrivateTypes && type->isPrivate()) { context.fErrors->error("type '" + std::string(type->name()) + "' is private", pos); @@ -34,8 +53,8 @@ static const SkSL::Type* verify_type(const Context& context, } static const SkSL::Type* find_type(const Context& context, - std::string_view name, - PositionInfo pos) { + Position pos, + std::string_view name) { const Symbol* symbol = (*ThreadContext::SymbolTable())[name]; if (!symbol) { context.fErrors->error(String::printf("no symbol named '%.*s'", @@ -52,13 +71,14 @@ static const SkSL::Type* find_type(const Context& context, } static const SkSL::Type* find_type(const Context& context, + Position overallPos, std::string_view name, - Modifiers* modifiers, - PositionInfo pos) { - const Type* type = find_type(context, name, pos); + Position modifiersPos, + Modifiers* modifiers) { + const Type* type = find_type(context, overallPos, name); type = type->applyPrecisionQualifiers(context, modifiers, ThreadContext::SymbolTable().get(), - pos.line()); - ThreadContext::ReportErrors(pos); + modifiersPos); + ThreadContext::ReportErrors(overallPos); return type; } @@ -168,14 +188,15 @@ static const SkSL::Type* get_type_from_type_constant(const Context& context, Typ } DSLType::DSLType(std::string_view name) - : fSkSLType(find_type(ThreadContext::Context(), name, PositionInfo())) {} + : fSkSLType(find_type(ThreadContext::Context(), Position(), name)) {} -DSLType::DSLType(std::string_view name, DSLModifiers* modifiers, PositionInfo position) - : fSkSLType(find_type(ThreadContext::Context(), name, &modifiers->fModifiers, position)) {} +DSLType::DSLType(std::string_view name, DSLModifiers* modifiers, Position pos) + : fSkSLType(find_type(ThreadContext::Context(), pos, name, modifiers->fPosition, + &modifiers->fModifiers)) {} DSLType::DSLType(const SkSL::Type* type) - : fSkSLType(verify_type(ThreadContext::Context(), type, /*allowPrivateTypes=*/true, - PositionInfo())) {} + : fSkSLType(verify_type(ThreadContext::Context(), type, /*allowPrivateTypes=*/true, + Position())) {} bool DSLType::isBoolean() const { return this->skslType().isBoolean(); @@ -233,7 +254,7 @@ const SkSL::Type& DSLType::skslType() const { return *verify_type(context, get_type_from_type_constant(context, fTypeConstant), /*allowPrivateTypes=*/true, - PositionInfo()); + Position()); } DSLPossibleExpression DSLType::Construct(DSLType type, SkSpan argArray) { @@ -246,12 +267,12 @@ DSLPossibleExpression DSLType::Construct(DSLType type, SkSpan arg } skslArgs.push_back(arg.release()); } - return SkSL::Constructor::Convert(ThreadContext::Context(), /*line=*/-1, type.skslType(), + return SkSL::Constructor::Convert(ThreadContext::Context(), Position(), type.skslType(), std::move(skslArgs)); } -DSLType Array(const DSLType& base, int count, PositionInfo pos) { - count = base.skslType().convertArraySize(ThreadContext::Context(), +DSLType Array(const DSLType& base, int count, Position pos) { + count = base.skslType().convertArraySize(ThreadContext::Context(), pos, DSLExpression(count, pos).release()); ThreadContext::ReportErrors(pos); if (!count) { @@ -260,7 +281,7 @@ DSLType Array(const DSLType& base, int count, PositionInfo pos) { return ThreadContext::SymbolTable()->addArrayDimension(&base.skslType(), count); } -DSLType Struct(std::string_view name, SkSpan fields, PositionInfo pos) { +DSLType Struct(std::string_view name, SkSpan fields, Position pos) { std::vector skslFields; skslFields.reserve(fields.size()); for (const DSLField& field : fields) { @@ -268,16 +289,16 @@ DSLType Struct(std::string_view name, SkSpan fields, PositionInfo pos) std::string desc = field.fModifiers.fModifiers.description(); desc.pop_back(); // remove trailing space ThreadContext::ReportError("modifier '" + desc + "' is not permitted on a struct field", - field.fPosition); + field.fModifiers.fPosition); } if (field.fModifiers.fModifiers.fLayout.fFlags & Layout::kBinding_Flag) { ThreadContext::ReportError( "layout qualifier 'binding' is not permitted on a struct field", - field.fPosition); + field.fModifiers.fPosition); } if (field.fModifiers.fModifiers.fLayout.fFlags & Layout::kSet_Flag) { ThreadContext::ReportError("layout qualifier 'set' is not permitted on a struct field", - field.fPosition); + field.fModifiers.fPosition); } const SkSL::Type& type = field.fType.skslType(); @@ -287,14 +308,14 @@ DSLType Struct(std::string_view name, SkSpan fields, PositionInfo pos) ThreadContext::ReportError("opaque type '" + type.displayName() + "' is not permitted in a struct", field.fPosition); } - skslFields.emplace_back(field.fModifiers.fModifiers, field.fName, &type); + skslFields.emplace_back(field.fPosition, field.fModifiers.fModifiers, field.fName, &type); } - const SkSL::Type* result = ThreadContext::SymbolTable()->add(Type::MakeStructType(pos.line(), - name, skslFields)); + const SkSL::Type* result = ThreadContext::SymbolTable()->add(Type::MakeStructType(pos, name, + skslFields)); if (result->isTooDeeplyNested()) { ThreadContext::ReportError("struct '" + std::string(name) + "' is too deeply nested", pos); } - ThreadContext::ProgramElements().push_back(std::make_unique(/*line=*/-1, + ThreadContext::ProgramElements().push_back(std::make_unique(Position(), *result)); return result; } diff --git a/third_party/skia/src/sksl/dsl/DSLVar.cpp b/third_party/skia/src/sksl/dsl/DSLVar.cpp index da4a29b66d9d..10f3f452f3ce 100644 --- a/third_party/skia/src/sksl/dsl/DSLVar.cpp +++ b/third_party/skia/src/sksl/dsl/DSLVar.cpp @@ -7,35 +7,58 @@ #include "include/sksl/DSLVar.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLLayout.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkSLString.h" +#include "include/private/SkSLSymbol.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "include/sksl/DSLModifiers.h" #include "include/sksl/DSLType.h" +#include "include/sksl/SkSLOperator.h" +#include "src/core/SkSLTypeShared.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLContext.h" +#include "src/sksl/SkSLModifiersPool.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/SkSLUtil.h" #include "src/sksl/dsl/priv/DSLWriter.h" #include "src/sksl/ir/SkSLBinaryExpression.h" +#include "src/sksl/ir/SkSLExpression.h" +#include "src/sksl/ir/SkSLFieldAccess.h" #include "src/sksl/ir/SkSLFunctionCall.h" #include "src/sksl/ir/SkSLSymbolTable.h" +#include "src/sksl/ir/SkSLType.h" #include "src/sksl/ir/SkSLVariable.h" -#include "src/sksl/ir/SkSLVariableReference.h" + +#include +#include + +#if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#endif namespace SkSL { namespace dsl { DSLVarBase::DSLVarBase(DSLType type, std::string_view name, DSLExpression initialValue, - PositionInfo pos) + Position pos) : DSLVarBase(DSLModifiers(), std::move(type), name, std::move(initialValue), pos) {} -DSLVarBase::DSLVarBase(DSLType type, DSLExpression initialValue, PositionInfo pos) +DSLVarBase::DSLVarBase(DSLType type, DSLExpression initialValue, Position pos) : DSLVarBase(type, "var", std::move(initialValue), pos) {} DSLVarBase::DSLVarBase(const DSLModifiers& modifiers, DSLType type, DSLExpression initialValue, - PositionInfo pos) + Position pos) : DSLVarBase(modifiers, type, "var", std::move(initialValue), pos) {} DSLVarBase::DSLVarBase(const DSLModifiers& modifiers, DSLType type, std::string_view name, - DSLExpression initialValue, PositionInfo pos) + DSLExpression initialValue, Position pos) : fModifiers(std::move(modifiers)) , fType(std::move(type)) , fRawName(name) @@ -103,7 +126,7 @@ VariableStorage DSLVar::storage() const { } DSLGlobalVar::DSLGlobalVar(const char* name) - : INHERITED(kVoid_Type, name, DSLExpression(), PositionInfo()) { + : INHERITED(kVoid_Type, name, DSLExpression(), Position()) { fName = name; DSLWriter::MarkDeclared(*this); #if SK_SUPPORT_GPU && !defined(SKSL_STANDALONE) @@ -121,7 +144,8 @@ DSLGlobalVar::DSLGlobalVar(const char* name) SkSL::Modifiers::kNo_Flag)); fVar = ThreadContext::SymbolTable()->takeOwnershipOfIRNode(std::make_unique( - /*line=*/-1, + /*pos=*/Position(), + /*modifiersPosition=*/Position(), modifiers, fName, ThreadContext::Context().fTypes.fFloat2.get(), @@ -155,12 +179,12 @@ VariableStorage DSLParameter::storage() const { DSLPossibleExpression DSLVarBase::operator[](DSLExpression&& index) { - return DSLExpression(*this, PositionInfo())[std::move(index)]; + return DSLExpression(*this, Position())[std::move(index)]; } DSLPossibleExpression DSLVarBase::assign(DSLExpression expr) { - return BinaryExpression::Convert(ThreadContext::Context(), - DSLExpression(*this, PositionInfo()).release(), SkSL::Token::Kind::TK_EQ, + return BinaryExpression::Convert(ThreadContext::Context(), Position(), + DSLExpression(*this, Position()).release(), SkSL::Operator::Kind::EQ, expr.release()); } @@ -177,31 +201,31 @@ DSLPossibleExpression DSLParameter::operator=(DSLExpression expr) { } std::unique_ptr DSLGlobalVar::methodCall(std::string_view methodName, - PositionInfo pos) { + Position pos) { if (!this->fType.isEffectChild()) { ThreadContext::ReportError("type does not support method calls", pos); return nullptr; } - return FieldAccess::Convert(ThreadContext::Context(), *ThreadContext::SymbolTable(), - DSLExpression(*this, PositionInfo()).release(), methodName); + return FieldAccess::Convert(ThreadContext::Context(), pos, *ThreadContext::SymbolTable(), + DSLExpression(*this, pos).release(), methodName); } -DSLExpression DSLGlobalVar::eval(ExpressionArray args, PositionInfo pos) { +DSLExpression DSLGlobalVar::eval(ExpressionArray args, Position pos) { auto method = this->methodCall("eval", pos); return DSLExpression( - method ? SkSL::FunctionCall::Convert(ThreadContext::Context(), pos.line(), - std::move(method), std::move(args)) + method ? SkSL::FunctionCall::Convert(ThreadContext::Context(), pos, std::move(method), + std::move(args)) : nullptr, pos); } -DSLExpression DSLGlobalVar::eval(DSLExpression x, PositionInfo pos) { +DSLExpression DSLGlobalVar::eval(DSLExpression x, Position pos) { ExpressionArray converted; converted.push_back(x.release()); return this->eval(std::move(converted), pos); } -DSLExpression DSLGlobalVar::eval(DSLExpression x, DSLExpression y, PositionInfo pos) { +DSLExpression DSLGlobalVar::eval(DSLExpression x, DSLExpression y, Position pos) { ExpressionArray converted; converted.push_back(x.release()); converted.push_back(y.release()); diff --git a/third_party/skia/src/sksl/dsl/priv/BUILD.bazel b/third_party/skia/src/sksl/dsl/priv/BUILD.bazel index cb6ce11f3f12..41123b0bd321 100644 --- a/third_party/skia/src/sksl/dsl/priv/BUILD.bazel +++ b/third_party/skia/src/sksl/dsl/priv/BUILD.bazel @@ -1,12 +1,19 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") + +licenses(["notice"]) + +enforce_iwyu_on_package() generated_cc_atom( name = "DSLFPs_hdr", hdrs = ["DSLFPs.h"], visibility = ["//:__subpackages__"], deps = [ - "//include/sksl:DSL_hdr", - "//src/gpu:GrFragmentProcessor_hdr", + "//include/core:SkTypes_hdr", + "//include/sksl:DSLExpression_hdr", + "//include/sksl:DSLVar_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -17,8 +24,14 @@ generated_cc_atom( deps = [ ":DSLFPs_hdr", ":DSLWriter_hdr", + "//include/core:SkString_hdr", + "//include/core:SkTypes_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", + "//src/sksl:SkSLContext_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl/ir:SkSLCodeStringExpression_hdr", + "//src/sksl/ir:SkSLExpression_hdr", + "//src/sksl/ir:SkSLType_hdr", ], ) @@ -28,8 +41,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/core:SkTypes_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", ], ) @@ -39,13 +51,26 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":DSLWriter_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLDefines_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLStatement_hdr", "//include/sksl:DSLCore_hdr", + "//include/sksl:DSLExpression_hdr", + "//include/sksl:DSLModifiers_hdr", "//include/sksl:DSLStatement_hdr", "//include/sksl:DSLSymbols_hdr", + "//include/sksl:DSLType_hdr", "//include/sksl:DSLVar_hdr", + "//include/sksl:SkSLPosition_hdr", + "//src/sksl:SkSLMangler_hdr", + "//src/sksl:SkSLModifiersPool_hdr", + "//src/sksl:SkSLProgramSettings_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl/ir:SkSLBlock_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLNop_hdr", + "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", "//src/sksl/ir:SkSLVariable_hdr", ], diff --git a/third_party/skia/src/sksl/dsl/priv/DSLFPs.cpp b/third_party/skia/src/sksl/dsl/priv/DSLFPs.cpp index 17182a3f2a94..2fba5e63b9cd 100644 --- a/third_party/skia/src/sksl/dsl/priv/DSLFPs.cpp +++ b/third_party/skia/src/sksl/dsl/priv/DSLFPs.cpp @@ -7,11 +7,20 @@ #include "src/sksl/dsl/priv/DSLFPs.h" +#if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU + +#include "include/core/SkString.h" +#include "include/core/SkTypes.h" +#include "src/sksl/SkSLBuiltinTypes.h" +#include "src/sksl/SkSLContext.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/dsl/priv/DSLWriter.h" #include "src/sksl/ir/SkSLCodeStringExpression.h" +#include "src/sksl/ir/SkSLExpression.h" +#include "src/sksl/ir/SkSLType.h" -#if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU +#include +#include namespace SkSL { diff --git a/third_party/skia/src/sksl/dsl/priv/DSLFPs.h b/third_party/skia/src/sksl/dsl/priv/DSLFPs.h index 3fa801d35f6d..e5d5257f5731 100644 --- a/third_party/skia/src/sksl/dsl/priv/DSLFPs.h +++ b/third_party/skia/src/sksl/dsl/priv/DSLFPs.h @@ -8,11 +8,14 @@ #ifndef SKSL_DSL_FPS #define SKSL_DSL_FPS -#include "include/sksl/DSL.h" +#include "include/core/SkTypes.h" // IWYU pragma: keep #if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU -#include "src/gpu/GrFragmentProcessor.h" +#include "include/sksl/DSLExpression.h" +#include "include/sksl/DSLVar.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" namespace SkSL { diff --git a/third_party/skia/src/sksl/dsl/priv/DSLWriter.cpp b/third_party/skia/src/sksl/dsl/priv/DSLWriter.cpp index e0bacbbf94b3..b7a25e556fb8 100644 --- a/third_party/skia/src/sksl/dsl/priv/DSLWriter.cpp +++ b/third_party/skia/src/sksl/dsl/priv/DSLWriter.cpp @@ -7,16 +7,34 @@ #include "src/sksl/dsl/priv/DSLWriter.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLDefines.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLStatement.h" #include "include/sksl/DSLCore.h" +#include "include/sksl/DSLExpression.h" +#include "include/sksl/DSLModifiers.h" #include "include/sksl/DSLStatement.h" #include "include/sksl/DSLSymbols.h" +#include "include/sksl/DSLType.h" #include "include/sksl/DSLVar.h" +#include "include/sksl/SkSLPosition.h" +#include "src/sksl/SkSLMangler.h" +#include "src/sksl/SkSLModifiersPool.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/ir/SkSLBlock.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLNop.h" +#include "src/sksl/ir/SkSLType.h" #include "src/sksl/ir/SkSLVarDeclarations.h" #include "src/sksl/ir/SkSLVariable.h" +#include +#include +#include +#include + namespace SkSL { namespace dsl { @@ -50,8 +68,9 @@ const SkSL::Variable* DSLWriter::Var(DSLVarBase& var) { } } std::unique_ptr skslvar = SkSL::Variable::Convert(ThreadContext::Context(), - var.fPosition.line(), var.fModifiers.fModifiers, &var.fType.skslType(), var.fName, - /*isArray=*/false, /*arraySize=*/nullptr, var.storage()); + var.fPosition, var.fModifiers.fPosition, var.fModifiers.fModifiers, + &var.fType.skslType(), var.fName, /*isArray=*/false, /*arraySize=*/nullptr, + var.storage()); SkSL::Variable* varPtr = skslvar.get(); if (var.storage() != SkSL::VariableStorage::kParameter) { var.fDeclaration = VarDeclaration::Convert(ThreadContext::Context(), std::move(skslvar), @@ -70,9 +89,9 @@ std::unique_ptr DSLWriter::CreateParameterVar(DSLParameter& var) // This should only be called on undeclared parameter variables, but we allow the creation to go // ahead regardless so we don't have to worry about null pointers potentially sneaking in and // breaking things. DSLFunction is responsible for reporting errors for invalid parameters. - return SkSL::Variable::Convert(ThreadContext::Context(), var.fPosition.line(), - var.fModifiers.fModifiers, &var.fType.skslType(), var.fName, /*isArray=*/false, - /*arraySize=*/nullptr, var.storage()); + return SkSL::Variable::Convert(ThreadContext::Context(), var.fPosition, + var.fModifiers.fPosition, var.fModifiers.fModifiers, &var.fType.skslType(), var.fName, + /*isArray=*/false, /*arraySize=*/nullptr, var.storage()); } std::unique_ptr DSLWriter::Declaration(DSLVarBase& var) { @@ -101,11 +120,13 @@ void DSLWriter::AddVarDeclaration(DSLStatement& existing, DSLVar& additional) { SkASSERT(!block.isScope()); block.children().push_back(Declare(additional).release()); } else if (existing.fStatement->is()) { + Position pos = existing.fStatement->fPosition; StatementArray stmts; stmts.reserve_back(2); stmts.push_back(std::move(existing.fStatement)); stmts.push_back(Declare(additional).release()); - existing.fStatement = SkSL::Block::MakeUnscoped(/*line=*/-1, std::move(stmts)); + existing.fStatement = SkSL::Block::Make(pos, std::move(stmts), + Block::Kind::kCompoundStatement); } else if (existing.fStatement->isEmpty()) { // If the variable declaration generated an error, we can end up with a Nop statement here. existing.fStatement = Declare(additional).release(); diff --git a/third_party/skia/src/sksl/dsl/priv/DSLWriter.h b/third_party/skia/src/sksl/dsl/priv/DSLWriter.h index f44967b8944e..306c3bc5ae2f 100644 --- a/third_party/skia/src/sksl/dsl/priv/DSLWriter.h +++ b/third_party/skia/src/sksl/dsl/priv/DSLWriter.h @@ -8,10 +8,10 @@ #ifndef SKSL_DSLWRITER #define SKSL_DSLWRITER -#include "include/core/SkTypes.h" +#include "include/core/SkTypes.h" // IWYU pragma: keep + #if !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" #endif // !defined(SKSL_STANDALONE) && SK_SUPPORT_GPU #include diff --git a/third_party/skia/src/sksl/generated/sksl_frag.dehydrated.sksl b/third_party/skia/src/sksl/generated/sksl_frag.dehydrated.sksl index 3d84a4dbf7df..dc1e1ae819d7 100644 --- a/third_party/skia/src/sksl/generated/sksl_frag.dehydrated.sksl +++ b/third_party/skia/src/sksl/generated/sksl_frag.dehydrated.sksl @@ -1,4 +1,4 @@ -static uint8_t SKSL_INCLUDE_sksl_frag[] = {8,0,96,0, +static uint8_t SKSL_INCLUDE_sksl_frag[] = {10,0,96,0, 12,115,107,95,70,114,97,103,67,111,111,114,100, 6,102,108,111,97,116,52, 12,115,107,95,67,108,111,99,107,119,105,115,101, diff --git a/third_party/skia/src/sksl/generated/sksl_gpu.dehydrated.sksl b/third_party/skia/src/sksl/generated/sksl_gpu.dehydrated.sksl index d2e4693d96f3..55ccfcfc71e4 100644 --- a/third_party/skia/src/sksl/generated/sksl_gpu.dehydrated.sksl +++ b/third_party/skia/src/sksl/generated/sksl_gpu.dehydrated.sksl @@ -1,4 +1,4 @@ -static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, +static uint8_t SKSL_INCLUDE_sksl_gpu[] = {10,0,189,8, 7,100,101,103,114,101,101,115, 8,36,103,101,110,84,121,112,101, 7,114,97,100,105,97,110,115, @@ -186,13 +186,17 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 14,98,108,101,110,100,95,100,115,116,95,97,116,111,112, 9,98,108,101,110,100,95,120,111,114, 10,98,108,101,110,100,95,112,108,117,115, +7,98,108,101,110,100,79,112, +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, 1,100, 24,36,98,108,101,110,100,95,111,118,101,114,108,97,121,95,99,111,109,112,111,110,101,110,116, 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, +4,102,108,105,112, 13,98,108,101,110,100,95,108,105,103,104,116,101,110, +4,109,111,100,101, +12,98,108,101,110,100,95,100,97,114,107,101,110, 1,110, 15,36,103,117,97,114,100,101,100,95,100,105,118,105,100,101, 22,36,99,111,108,111,114,95,100,111,100,103,101,95,99,111,109,112,111,110,101,110,116, @@ -212,12 +216,9 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 8,108,117,109,67,111,108,111,114, 26,36,98,108,101,110,100,95,115,101,116,95,99,111,108,111,114,95,108,117,109,105,110,97,110,99,101, 23,36,98,108,101,110,100,95,99,111,108,111,114,95,115,97,116,117,114,97,116,105,111,110, -9,109,105,110,77,105,100,77,97,120, -3,115,97,116, -34,36,98,108,101,110,100,95,115,101,116,95,99,111,108,111,114,95,115,97,116,117,114,97,116,105,111,110,95,104,101,108,112,101,114, -11,104,117,101,76,117,109,67,111,108,111,114, 8,115,97,116,67,111,108,111,114, 27,36,98,108,101,110,100,95,115,101,116,95,99,111,108,111,114,95,115,97,116,117,114,97,116,105,111,110, +10,98,108,101,110,100,95,104,115,108,99, 9,98,108,101,110,100,95,104,117,101, 16,98,108,101,110,100,95,115,97,116,117,114,97,116,105,111,110, 11,98,108,101,110,100,95,99,111,108,111,114, @@ -225,6 +226,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 8,117,110,112,114,101,109,117,108, 4,112,114,111,106, 15,99,114,111,115,115,95,108,101,110,103,116,104,95,50,100, +5,99,111,101,102,102, 6,114,101,115,117,108,116, 43,109,117,115,116,71,117,97,114,100,68,105,118,105,115,105,111,110,69,118,101,110,65,102,116,101,114,69,120,112,108,105,99,105,116,90,101,114,111,67,104,101,99,107, 5,100,101,108,116,97, @@ -235,12 +237,15 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 3,108,117,109, 7,109,105,110,67,111,109,112, 7,109,97,120,67,111,109,112, +2,109,110, +2,109,120, 3,115,100,97, 3,100,115,97, +1,108, 25,98,117,105,108,116,105,110,68,101,116,101,114,109,105,110,97,110,116,83,117,112,112,111,114,116, 8,102,108,111,97,116,50,120,50, 7,104,97,108,102,50,120,50, -52,1,210,3, +52,1,226,3, 55,1,0, 17,2,0, 51,255,255,10,0,3, @@ -3265,295 +3270,342 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 55,117,3, 17,49,5, 51,255,255,81,3,3, -28,118,3, -17,220,5,2,116,3,117,3, +55,118,3, +17,220,5, +51,255,255,81,3,3, +28,119,3, +17,228,5,3,116,3,117,3,118,3, 51,255,255,81,3, -55,119,3, +55,120,3, 17,45,5, 51,255,255,81,3,3, -55,120,3, +55,121,3, +17,49,5, +51,255,255,81,3,3, +28,122,3, +17,246,5,2,120,3,121,3, +51,255,255,81,3, +55,123,3, +17,45,5, +51,255,255,81,3,3, +55,124,3, 17,49,5, 51,255,255,81,3,3, -28,121,3, -17,235,5,2,119,3,120,3, +28,125,3, +17,5,6,2,123,3,124,3, 51,255,255,81,3, -55,122,3, +55,126,3, 17,53,4, 51,255,255,59,3,3, -55,123,3, -17,248,5, +55,127,3, +17,18,6, 51,255,255,59,3,3, -28,124,3, -17,250,5,2,122,3,123,3, +28,128,3, +17,20,6,2,126,3,127,3, 51,255,255,223,0, -55,125,3, +55,129,3, 17,45,5, 51,255,255,81,3,3, -55,126,3, +55,130,3, 17,49,5, 51,255,255,81,3,3, -28,127,3, -17,19,6,2,125,3,126,3, +28,131,3, +17,45,6,2,129,3,130,3, +51,255,255,81,3, +55,132,3, +17,35,1, +51,255,255,81,3,3, +55,133,3, +17,164,1, +51,255,255,81,3,3, +55,134,3, +17,59,6, +51,255,255,253,3,3, +54,135,3,2, +51,131,3, +28,136,3, +17,45,6,3,132,3,133,3,134,3, 51,255,255,81,3, -55,128,3, +51,136,3, +55,137,3, 17,45,5, 51,255,255,81,3,3, -55,129,3, +55,138,3, 17,49,5, 51,255,255,81,3,3, -28,130,3, -17,33,6,2,128,3,129,3, +28,139,3, +17,64,6,2,137,3,138,3, 51,255,255,81,3, -55,131,3, +55,140,3, 17,45,5, 51,255,255,81,3,3, -55,132,3, +55,141,3, +17,49,5, +51,255,255,81,3,3, +55,142,3, +17,78,6, +51,255,255,223,0,3, +28,143,3, +17,83,6,3,140,3,141,3,142,3, +51,255,255,81,3, +55,144,3, +17,45,5, +51,255,255,81,3,3, +55,145,3, 17,49,5, 51,255,255,81,3,3, -28,133,3, -17,46,6,2,131,3,132,3, +54,146,3,2, +51,143,3, +28,147,3, +17,83,6,2,144,3,145,3, 51,255,255,81,3, -55,134,3, -17,60,6, +51,147,3, +55,148,3, +17,96,6, 51,255,255,223,0,3, -55,135,3, -17,248,5, +55,149,3, +17,18,6, 51,255,255,223,0,3, -28,136,3, -17,62,6,2,134,3,135,3, +28,150,3, +17,98,6,2,148,3,149,3, 51,255,255,223,0, -55,137,3, -17,60,6, +55,151,3, +17,96,6, 51,255,255,129,2,3, -55,138,3, -17,248,5, +55,152,3, +17,18,6, 51,255,255,223,0,3, -54,139,3,2, -51,136,3, -28,140,3, -17,62,6,2,137,3,138,3, +54,153,3,2, +51,150,3, +28,154,3, +17,98,6,2,151,3,152,3, 51,255,255,129,2, -51,140,3, -55,141,3, +51,154,3, +55,155,3, 17,53,4, 51,255,255,59,3,3, -55,142,3, -17,248,5, +55,156,3, +17,18,6, 51,255,255,59,3,3, -28,143,3, -17,78,6,2,141,3,142,3, +28,157,3, +17,114,6,2,155,3,156,3, 51,255,255,223,0, -55,144,3, +55,158,3, 17,45,5, 51,255,255,81,3,3, -55,145,3, +55,159,3, 17,49,5, 51,255,255,81,3,3, -28,146,3, -17,101,6,2,144,3,145,3, +28,160,3, +17,137,6,2,158,3,159,3, 51,255,255,81,3, -55,147,3, +55,161,3, 17,53,4, 51,255,255,59,3,3, -55,148,3, -17,248,5, +55,162,3, +17,18,6, 51,255,255,59,3,3, -28,149,3, -17,119,6,2,147,3,148,3, +28,163,3, +17,155,6,2,161,3,162,3, 51,255,255,223,0, -55,150,3, +55,164,3, 17,45,5, 51,255,255,81,3,3, -55,151,3, +55,165,3, 17,49,5, 51,255,255,81,3,3, -28,152,3, -17,141,6,2,150,3,151,3, +28,166,3, +17,177,6,2,164,3,165,3, 51,255,255,81,3, -55,153,3, +55,167,3, 17,45,5, 51,255,255,81,3,3, -55,154,3, +55,168,3, 17,49,5, 51,255,255,81,3,3, -28,155,3, -17,158,6,2,153,3,154,3, +28,169,3, +17,194,6,2,167,3,168,3, 51,255,255,81,3, -55,156,3, +55,170,3, 17,53,4, 51,255,255,59,3,3, -55,157,3, -17,248,5, +55,171,3, +17,18,6, 51,255,255,59,3,3, -28,158,3, -17,175,6,2,156,3,157,3, +28,172,3, +17,211,6,2,170,3,171,3, 51,255,255,223,0, -55,159,3, +55,173,3, 17,45,5, 51,255,255,81,3,3, -55,160,3, +55,174,3, 17,49,5, 51,255,255,81,3,3, -28,161,3, -17,197,6,2,159,3,160,3, +28,175,3, +17,233,6,2,173,3,174,3, 51,255,255,81,3, -55,162,3, +55,176,3, 17,45,5, 51,255,255,81,3,3, -55,163,3, +55,177,3, 17,49,5, 51,255,255,81,3,3, -28,164,3, -17,214,6,2,162,3,163,3, +28,178,3, +17,250,6,2,176,3,177,3, 51,255,255,81,3, -55,165,3, +55,179,3, 17,45,5, 51,255,255,81,3,3, -55,166,3, +55,180,3, 17,49,5, 51,255,255,81,3,3, -28,167,3, -17,231,6,2,165,3,166,3, +28,181,3, +17,11,7,2,179,3,180,3, 51,255,255,81,3, -55,168,3, +55,182,3, 17,45,5, 51,255,255,81,3,3, -55,169,3, +55,183,3, 17,49,5, 51,255,255,81,3,3, -28,170,3, -17,247,6,2,168,3,169,3, +28,184,3, +17,27,7,2,182,3,183,3, 51,255,255,81,3, -55,171,3, -17,6,7, +55,185,3, +17,42,7, 51,255,255,129,2,3, -28,172,3, -17,12,7,1,171,3, +28,186,3, +17,48,7,1,185,3, 51,255,255,223,0, -55,173,3, -17,35,7, +55,187,3, +17,71,7, 51,255,255,129,2,3, -55,174,3, -17,47,7, +55,188,3, +17,83,7, 51,255,255,223,0,3, -55,175,3, -17,53,7, +55,189,3, +17,89,7, 51,255,255,129,2,3, -28,176,3, -17,62,7,3,173,3,174,3,175,3, +28,190,3, +17,98,7,3,187,3,188,3,189,3, 51,255,255,129,2, -55,177,3, -17,6,7, +55,191,3, +17,42,7, 51,255,255,129,2,3, -28,178,3, -17,89,7,1,177,3, +28,192,3, +17,125,7,1,191,3, 51,255,255,223,0, -55,179,3, -17,113,7, -51,255,255,129,2,3, -55,180,3, -17,123,7, -51,255,255,223,0,3, -28,181,3, -17,127,7,2,179,3,180,3, -51,255,255,129,2, -55,182,3, -17,162,7, +55,193,3, +17,42,7, 51,255,255,129,2,3, -55,183,3, -17,174,7, +55,194,3, +17,149,7, 51,255,255,129,2,3, -28,184,3, -17,183,7,2,182,3,183,3, +28,195,3, +17,158,7,2,193,3,194,3, 51,255,255,129,2, -55,185,3, +55,196,3, 17,45,5, 51,255,255,81,3,3, -55,186,3, +55,197,3, 17,49,5, 51,255,255,81,3,3, -28,187,3, -17,211,7,2,185,3,186,3, +55,198,3, +17,59,6, +51,255,255,253,3,3, +55,199,3, +17,26,1, +51,255,255,253,3,3, +28,200,3, +17,186,7,4,196,3,197,3,198,3,199,3, 51,255,255,81,3, -55,188,3, +55,201,3, 17,45,5, 51,255,255,81,3,3, -55,189,3, +55,202,3, 17,49,5, 51,255,255,81,3,3, -28,190,3, -17,221,7,2,188,3,189,3, +28,203,3, +17,197,7,2,201,3,202,3, 51,255,255,81,3, -55,191,3, +55,204,3, 17,45,5, 51,255,255,81,3,3, -55,192,3, +55,205,3, 17,49,5, 51,255,255,81,3,3, -28,193,3, -17,238,7,2,191,3,192,3, +28,206,3, +17,207,7,2,204,3,205,3, 51,255,255,81,3, -55,194,3, +55,207,3, 17,45,5, 51,255,255,81,3,3, -55,195,3, +55,208,3, 17,49,5, 51,255,255,81,3,3, -28,196,3, -17,250,7,2,194,3,195,3, +28,209,3, +17,224,7,2,207,3,208,3, 51,255,255,81,3, -55,197,3, -17,6,7, +55,210,3, +17,45,5, +51,255,255,81,3,3, +55,211,3, +17,49,5, 51,255,255,81,3,3, -28,198,3, -17,11,8,1,197,3, +28,212,3, +17,236,7,2,210,3,211,3, 51,255,255,81,3, -55,199,3, -17,6,7, +55,213,3, +17,42,7, +51,255,255,81,3,3, +28,214,3, +17,253,7,1,213,3, +51,255,255,81,3, +55,215,3, +17,42,7, 51,255,255,221,1,3, -54,200,3,2, -51,198,3, -28,201,3, -17,11,8,1,199,3, +54,216,3,2, +51,214,3, +28,217,3, +17,253,7,1,215,3, 51,255,255,221,1, -51,201,3, -55,202,3, +51,217,3, +55,218,3, 17,254,1, 51,255,255,116,2,3, -28,203,3, -17,20,8,1,202,3, +28,219,3, +17,6,8,1,218,3, 51,255,255,186,1, -55,204,3, +55,220,3, 17,35,1, 51,255,255,186,1,3, -55,205,3, +55,221,3, 17,164,1, 51,255,255,186,1,3, -28,206,3, -17,25,8,2,204,3,205,3, +28,222,3, +17,11,8,2,220,3,221,3, 51,255,255,213,0, -55,207,3, +55,223,3, 17,35,1, 51,255,255,59,3,3, -55,208,3, +55,224,3, 17,164,1, 51,255,255,59,3,3, -54,209,3,2, -51,206,3, -28,210,3, -17,25,8,2,207,3,208,3, +54,225,3,2, +51,222,3, +28,226,3, +17,11,8,2,223,3,224,3, 51,255,255,223,0, -51,210,3,133,0, +51,226,3,134,0, +185,3, +191,3, +127,3, +189,3, +194,3, +162,3, +156,3, +152,3, 171,3, -177,3, -123,3, -175,3, -183,3, -180,3, -148,3, -142,3, -138,3, -157,3, 121,0, 64,0, 86,0, @@ -3565,28 +3617,30 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 89,0, 213,2, 78,3, -192,3, -151,3, +208,3, +165,3, +159,3, 145,3, -129,3, -163,3, +177,3, 84,3, 108,3, 96,3, 102,3, 90,3, -166,3, -154,3, -186,3, -132,3, -195,3, -117,3, -169,3, -126,3, +180,3, +168,3, +199,3, +202,3, +138,3, +211,3, +121,3, +183,3, +134,3, 114,3, -189,3, -120,3, -160,3, +118,3, +205,3, +124,3, +174,3, 81,3, 105,3, 93,3, @@ -3598,7 +3652,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 55,0, 77,0, 169,1, -208,3, +224,3, 36,3, 39,3, 49,0, @@ -3650,7 +3704,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 126,1, 130,1, 93,0, -202,3, +218,3, 46,0, 190,1, 199,1, @@ -3676,7 +3730,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 140,1, 134,1, 138,1, -199,3, +215,3, 20, 29,79,3, 2, @@ -3701,13 +3755,13 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 52,1,0,0,0,0,1, 44, 1, -57,86,3,0,49, +57,86,3,0,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,86,3,0,1,3,51, +57,86,3,0,1,3,2, 57,87,3,0,1, 29,91,3, 2, @@ -3717,17 +3771,17 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,90,3,0,1,3,51, -57,89,3,0,49, +57,90,3,0,1,3,2, +57,89,3,0,0, 57,90,3,0,1, 29,94,3, 2, 52,1,0,0,0,0,1, 44, 1, -57,92,3,0,51, +57,92,3,0,2, 50, 57,93,3,0,1,3,1, 29,97,3, @@ -3735,7 +3789,7 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 52,1,0,0,0,0,1, 44, 1, -57,96,3,0,51, +57,96,3,0,2, 50, 57,95,3,0,1,3,1, 29,100,3, @@ -3745,9 +3799,9 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,99,3,0,1,3,51, +57,99,3,0,1,3,2, 57,98,3,0,1, 29,103,3, 2, @@ -3756,9 +3810,9 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,101,3,0,1,3,51, +57,101,3,0,1,3,2, 57,102,3,0,1, 29,106,3, 2, @@ -3767,14 +3821,14 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 50, -57,105,3,0,1,3,51, -57,104,3,0,49, +57,105,3,0,1,3,2, +57,104,3,0,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,104,3,0,1,3,51, +57,104,3,0,1,3,2, 57,105,3,0,1, 29,109,3, 2, @@ -3784,13 +3838,13 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,108,3,0,1,3,51, -57,107,3,0,49, +57,108,3,0,1,3,2, +57,107,3,0,0, 1, 50, -57,107,3,0,1,3,51, +57,107,3,0,1,3,2, 57,108,3,0,1, 29,112,3, 2, @@ -3800,16 +3854,16 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,111,3,0,1,3,51, -57,110,3,0,49, +57,111,3,0,1,3,2, +57,110,3,0,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,110,3,0,1,3,51, +57,110,3,0,1,3,2, 57,111,3,0,1, 29,115,3, 2, @@ -3818,30 +3872,74 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 27, 51,255,255,81,3,198,0,2, 1, -57,113,3,0,49, +57,113,3,0,0, 57,114,3,0, 25, 51,255,255,223,0,0,0,128,63,1, -29,118,3, +29,119,3, +2, +52,1,1,0, +55,227,3, +17,27,8, +51,255,255,59,3,2,1,0, +0,0,2, +56,227,3, +51,255,255,59,3,0, +1, +50, +57,118,3,0,2,0,1,0, +1, +50, +57,118,3,0,2,2,3,2, +1, +8, +51,255,255,59,3,2, +50, +57,117,3,0,1,3, +50, +57,116,3,0,1,3,0, +27, +51,255,255,59,3,198,0,2, +50, +57,118,3,0,2,2,3, +25, +51,255,255,223,0,0,0,0,0, +44, +27, +51,255,255,81,3,194,0,2, +13, +51,255,255,81,3,1, +25, +51,255,255,223,0,0,0,128,63, +1, +1, +57,116,3,0,2, +50, +57,227,3,0,1,0,0, +1, +57,117,3,0,2, +50, +57,227,3,0,1,1,1, +29,122,3, 2, 52,1,0,0,0,0,1, 44, 1, -57,116,3,0,51, -57,117,3,0,1, -29,121,3, +57,120,3,0,2, +57,121,3,0,1, +29,125,3, 2, 52,1,0,0,0,0,1, 44, 1, -57,119,3,0,49, +57,123,3,0,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, -57,119,3,0,51, -57,120,3,0,1, -29,124,3, +51,255,255,223,0,0,0,128,63,1, +57,123,3,0,2, +57,124,3,0,1, +29,128,3, 2, 52,1,0,0,0,0,1, 44, @@ -3849,207 +3947,244 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 50, -57,123,3,0,1,0,72, +57,127,3,0,1,0,20, 50, -57,123,3,0,1,1, +57,127,3,0,1,1, 1, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 50, -57,122,3,0,1,0,51, +57,126,3,0,1,0,2, 50, -57,123,3,0,1,0, +57,127,3,0,1,0, 1, 1, 50, -57,122,3,0,1,1,51, +57,126,3,0,1,1,2, 50, -57,123,3,0,1,1,50, +57,127,3,0,1,1,1, 1, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 1, 50, -57,123,3,0,1,1,50, +57,127,3,0,1,1,1, 50, -57,123,3,0,1,0,51, +57,127,3,0,1,0,2, 1, 50, -57,122,3,0,1,1,50, +57,126,3,0,1,1,1, 50, -57,122,3,0,1,0,1, -29,127,3, +57,126,3,0,1,0,1, +29,131,3, 2, 52,1,1,0, -55,211,3, -17,41,8, +55,228,3, +17,33,8, 51,255,255,81,3,2,1,0, 0,0,3, -56,211,3, +56,228,3, 51,255,255,81,3,0, 8, 51,255,255,81,3,4, 27, -51,255,255,223,0,124,3,2, +51,255,255,223,0,128,3,2, 50, -57,125,3,0,2,0,3, +57,129,3,0,2,0,3, 50, -57,126,3,0,2,0,3, +57,130,3,0,2,0,3, 27, -51,255,255,223,0,124,3,2, +51,255,255,223,0,128,3,2, 50, -57,125,3,0,2,1,3, +57,129,3,0,2,1,3, 50, -57,126,3,0,2,1,3, +57,130,3,0,2,1,3, 27, -51,255,255,223,0,124,3,2, +51,255,255,223,0,128,3,2, 50, -57,125,3,0,2,2,3, +57,129,3,0,2,2,3, 50, -57,126,3,0,2,2,3, +57,130,3,0,2,2,3, 1, 50, -57,125,3,0,1,3,49, +57,129,3,0,1,3,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,125,3,0,1,3,51, +57,129,3,0,1,3,2, 50, -57,126,3,0,1,3, +57,130,3,0,1,3, 22, 1, 50, -57,211,3,2,3,0,1,2,73, +57,228,3,2,3,0,1,2,22, 1, 1, 50, -57,126,3,0,3,0,1,2,51, +57,130,3,0,3,0,1,2,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,125,3,0,1,3,49, +57,129,3,0,1,3,0, 1, 50, -57,125,3,0,3,0,1,2,51, +57,129,3,0,3,0,1,2,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,126,3,0,1,3, +57,130,3,0,1,3, +44, +57,228,3,0,1, +29,136,3, +2, +52,1,0,0,0,0,1, 44, -57,211,3,0,1, -29,130,3, +27, +51,255,255,81,3,131,3,2, +53, +57,134,3,0, +57,133,3,0, +57,132,3,0, +53, +57,134,3,0, +57,132,3,0, +57,133,3,0,1, +29,139,3, 2, 52,1,1,0, -55,212,3, -17,41,8, +55,229,3, +17,33,8, 51,255,255,81,3,2,1,0, 0,0,3, -56,212,3, +56,229,3, 51,255,255,81,3,0, 27, 51,255,255,81,3,88,3,2, -57,128,3,0, -57,129,3,0, +57,137,3,0, +57,138,3,0, 22, 1, 50, -57,212,3,1,3,0,1,2,66, +57,229,3,1,3,0,1,2,15, 27, -51,255,255,129,2,194,0,2, +51,255,255,129,2,217,0,2, 50, -57,212,3,0,3,0,1,2, +57,229,3,0,3,0,1,2, 1, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,129,3,0,1,3,51, +57,138,3,0,1,3,2, 50, -57,128,3,0,3,0,1,2,49, +57,137,3,0,3,0,1,2,0, 50, -57,129,3,0,3,0,1,2, +57,138,3,0,3,0,1,2, 44, -57,212,3,0,1, -29,133,3, +57,229,3,0,1, +29,143,3, 2, -52,1,1,0, -55,213,3, -17,41,8, -51,255,255,81,3,2,1,0, -0,0,3, -56,213,3, +52,1,2,0, +55,230,3, +17,35,1, +51,255,255,81,3,2, +55,231,3, +17,164,1, +51,255,255,129,2,2,2,0, +0,0, +1,0,4, +56,230,3, 51,255,255,81,3,0, 27, 51,255,255,81,3,88,3,2, -57,131,3,0, -57,132,3,0, -22, -1, -50, -57,213,3,1,3,0,1,2,66, -27, -51,255,255,129,2,217,0,2, -50, -57,213,3,0,3,0,1,2, +57,140,3,0, +57,141,3,0, +56,231,3, +51,255,255,129,2,0, 1, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, +50, +57,141,3,0,1,3,2, 50, -57,132,3,0,1,3,51, +57,140,3,0,3,0,1,2,0, +50, +57,141,3,0,3,0,1,2, +22, +1, 50, -57,131,3,0,3,0,1,2,49, +57,230,3,1,3,0,1,2,15, +1, +57,142,3,0,2, +27, +51,255,255,129,2,194,0,2, +1, 50, -57,132,3,0,3,0,1,2, +57,230,3,0,3,0,1,2,2, +57,142,3,0, +1, +57,231,3,0,2, +57,142,3,0, 44, -57,213,3,0,1, -29,136,3, +57,230,3,0,1, +29,147,3, +2, +52,1,0,0,0,0,1, +44, +27, +51,255,255,81,3,143,3,3, +57,144,3,0, +57,145,3,0, +25, +51,255,255,223,0,0,0,128,63,1, +29,150,3, 2, 52,1,0,0,0,0,1, 44, 53, -45,48,8, +45,40,8, 1, -57,134,3,0,52, +57,148,3,0,3, 1, -57,135,3,0,49, +57,149,3,0,0, 25, 51,255,255,223,0,119,204,43,50, 1, -57,134,3,0,52, -57,135,3,0,1, -29,140,3, +57,148,3,0,3, +57,149,3,0,1, +29,154,3, 2, 52,1,0,0,0,0,1, 44, 53, -45,48,8, +45,40,8, 1, -57,137,3,0,52, +57,151,3,0,3, 1, -57,138,3,0,49, +57,152,3,0,0, 25, 51,255,255,223,0,119,204,43,50, 1, -57,137,3,0,52, -57,138,3,0,1, -29,143,3, +57,151,3,0,3, +57,152,3,0,1, +29,157,3, 2, 52,1,0,0,0,0,1, 32,0, 1, 50, -57,142,3,0,1,0,67, +57,156,3,0,1,0,16, 25, 51,255,255,223,0,0,0,0,0, 2, @@ -4057,28 +4192,28 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 44, 1, 50, -57,141,3,0,1,0,51, +57,155,3,0,1,0,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,142,3,0,1,1,1, +57,156,3,0,1,1,1, 2, 52,1,1,0, -55,214,3, -17,92,8, +55,232,3, +17,84,8, 51,255,255,223,0,2,1,0, 0,0,2, -56,214,3, +56,232,3, 51,255,255,223,0,0, 1, 50, -57,141,3,0,1,1,50, +57,155,3,0,1,1,1, 50, -57,141,3,0,1,0, +57,155,3,0,1,0, 32,0, 1, -57,214,3,0,67, +57,232,3,0,16, 25, 51,255,255,223,0,0,0,0,0, 2, @@ -4088,109 +4223,109 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 50, -57,141,3,0,1,1,51, +57,155,3,0,1,1,2, 50, -57,142,3,0,1,1,49, +57,156,3,0,1,1,0, 1, 50, -57,141,3,0,1,0,51, +57,155,3,0,1,0,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,142,3,0,1,1,49, +57,156,3,0,1,1,0, 1, 50, -57,142,3,0,1,0,51, +57,156,3,0,1,0,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,141,3,0,1,1,1, +57,155,3,0,1,1,1, 2, 52,1,0,0,0,0,2, 22, 1, -57,214,3,1,66, +57,232,3,1,15, 27, 51,255,255,223,0,194,0,2, 50, -57,142,3,0,1,1, +57,156,3,0,1,1, 27, -51,255,255,223,0,136,3,2, +51,255,255,223,0,150,3,2, 1, 50, -57,142,3,0,1,0,51, +57,156,3,0,1,0,2, 50, -57,141,3,0,1,1, -57,214,3,0, +57,155,3,0,1,1, +57,232,3,0, 44, 1, 1, 1, -57,214,3,0,51, +57,232,3,0,2, 50, -57,141,3,0,1,1,49, +57,155,3,0,1,1,0, 1, 50, -57,141,3,0,1,0,51, +57,155,3,0,1,0,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,142,3,0,1,1,49, +57,156,3,0,1,1,0, 1, 50, -57,142,3,0,1,0,51, +57,156,3,0,1,0,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,141,3,0,1,1,1,1,1, -29,146,3, +57,155,3,0,1,1,1,1,1, +29,160,3, 2, 52,1,0,0,0,0,1, 44, 8, 51,255,255,81,3,4, 27, -51,255,255,223,0,143,3,2, +51,255,255,223,0,157,3,2, 50, -57,144,3,0,2,0,3, +57,158,3,0,2,0,3, 50, -57,145,3,0,2,0,3, +57,159,3,0,2,0,3, 27, -51,255,255,223,0,143,3,2, +51,255,255,223,0,157,3,2, 50, -57,144,3,0,2,1,3, +57,158,3,0,2,1,3, 50, -57,145,3,0,2,1,3, +57,159,3,0,2,1,3, 27, -51,255,255,223,0,143,3,2, +51,255,255,223,0,157,3,2, 50, -57,144,3,0,2,2,3, +57,158,3,0,2,2,3, 50, -57,145,3,0,2,2,3, +57,159,3,0,2,2,3, 1, 50, -57,144,3,0,1,3,49, +57,158,3,0,1,3,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,144,3,0,1,3,51, +57,158,3,0,1,3,2, 50, -57,145,3,0,1,3,1, -29,149,3, +57,159,3,0,1,3,1, +29,163,3, 2, 52,1,0,0,0,0,1, 32,0, 1, 50, -57,148,3,0,1,1,67, +57,162,3,0,1,1,16, 50, -57,148,3,0,1,0, +57,162,3,0,1,0, 2, 52,1,0,0,0,0,1, 44, @@ -4198,29 +4333,29 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 50, -57,147,3,0,1,1,51, +57,161,3,0,1,1,2, 50, -57,148,3,0,1,1,49, +57,162,3,0,1,1,0, 1, 50, -57,147,3,0,1,0,51, +57,161,3,0,1,0,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,148,3,0,1,1,49, +57,162,3,0,1,1,0, 1, 50, -57,148,3,0,1,0,51, +57,162,3,0,1,0,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,147,3,0,1,1,1, +57,161,3,0,1,1,1, 32,0, 1, 50, -57,147,3,0,1,0,67, +57,161,3,0,1,0,16, 25, 51,255,255,223,0,0,0,0,0, 2, @@ -4228,19 +4363,19 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 44, 1, 50, -57,148,3,0,1,0,51, +57,162,3,0,1,0,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,147,3,0,1,1,1, +57,161,3,0,1,1,1, 2, 52,1,1,0, -55,215,3, -17,92,8, +55,233,3, +17,84,8, 51,255,255,223,0,2,1,0, 0,0,2, -56,215,3, +56,233,3, 51,255,255,223,0,0, 27, 51,255,255,223,0,217,0,2, @@ -4248,258 +4383,258 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 51,255,255,223,0,0,0,0,0, 1, 50, -57,148,3,0,1,1,50, +57,162,3,0,1,1,1, 27, -51,255,255,223,0,136,3,2, +51,255,255,223,0,150,3,2, 1, 1, 50, -57,148,3,0,1,1,50, +57,162,3,0,1,1,1, 50, -57,148,3,0,1,0,51, +57,162,3,0,1,0,2, 50, -57,147,3,0,1,1, +57,161,3,0,1,1, 50, -57,147,3,0,1,0, +57,161,3,0,1,0, 44, 1, 1, 1, -57,215,3,0,51, +57,233,3,0,2, 50, -57,147,3,0,1,1,49, +57,161,3,0,1,1,0, 1, 50, -57,147,3,0,1,0,51, +57,161,3,0,1,0,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,148,3,0,1,1,49, +57,162,3,0,1,1,0, 1, 50, -57,148,3,0,1,0,51, +57,162,3,0,1,0,2, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,147,3,0,1,1,1,1, -29,152,3, +57,161,3,0,1,1,1,1, +29,166,3, 2, 52,1,0,0,0,0,1, 44, 8, 51,255,255,81,3,4, 27, -51,255,255,223,0,149,3,2, +51,255,255,223,0,163,3,2, 50, -57,150,3,0,2,0,3, +57,164,3,0,2,0,3, 50, -57,151,3,0,2,0,3, +57,165,3,0,2,0,3, 27, -51,255,255,223,0,149,3,2, +51,255,255,223,0,163,3,2, 50, -57,150,3,0,2,1,3, +57,164,3,0,2,1,3, 50, -57,151,3,0,2,1,3, +57,165,3,0,2,1,3, 27, -51,255,255,223,0,149,3,2, +51,255,255,223,0,163,3,2, 50, -57,150,3,0,2,2,3, +57,164,3,0,2,2,3, 50, -57,151,3,0,2,2,3, +57,165,3,0,2,2,3, 1, 50, -57,150,3,0,1,3,49, +57,164,3,0,1,3,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,150,3,0,1,3,51, +57,164,3,0,1,3,2, 50, -57,151,3,0,1,3,1, -29,155,3, +57,165,3,0,1,3,1, +29,169,3, 2, 52,1,0,0,0,0,1, 44, 27, -51,255,255,81,3,127,3,2, -57,154,3,0, -57,153,3,0,1, -29,158,3, +51,255,255,81,3,131,3,2, +57,168,3,0, +57,167,3,0,1, +29,172,3, 2, 52,1,0,0,0,0,1, 32,0, 1, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 50, -57,156,3,0,1,0,72, +57,170,3,0,1,0,20, 50, -57,156,3,0,1,1, +57,170,3,0,1,1, 2, 52,1,0,0,0,0,1, 44, 1, 1, 27, -51,255,255,223,0,136,3,2, +51,255,255,223,0,150,3,2, 1, 1, 50, -57,157,3,0,1,0,51, +57,171,3,0,1,0,2, 50, -57,157,3,0,1,0,51, +57,171,3,0,1,0,2, 1, 50, -57,156,3,0,1,1,50, +57,170,3,0,1,1,1, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 50, -57,156,3,0,1,0, +57,170,3,0,1,0, 50, -57,157,3,0,1,1,49, +57,171,3,0,1,1,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,157,3,0,1,1,51, +57,171,3,0,1,1,2, 50, -57,156,3,0,1,0,49, +57,170,3,0,1,0,0, 1, 50, -57,157,3,0,1,0,51, +57,171,3,0,1,0,2, 1, 1, -42,50, +42,1, 50, -57,156,3,0,1,1,49, +57,170,3,0,1,1,0, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 50, -57,156,3,0,1,0,49, +57,170,3,0,1,0,0, 25, 51,255,255,223,0,0,0,128,63,1, 32,0, 1, 1, 25, -51,255,255,223,0,0,0,128,64,51, +51,255,255,223,0,0,0,128,64,2, 50, -57,157,3,0,1,0,72, +57,171,3,0,1,0,20, 50, -57,157,3,0,1,1, +57,171,3,0,1,1, 2, 52,1,4,0, -55,216,3, -17,98,8, +55,234,3, +17,90,8, 51,255,255,223,0,2, -55,217,3, -17,103,8, +55,235,3, +17,95,8, 51,255,255,223,0,2, -55,218,3, -17,108,8, +55,236,3, +17,100,8, 51,255,255,223,0,2, -55,219,3, -17,114,8, +55,237,3, +17,106,8, 51,255,255,223,0,2,4,0, 1,0, 0,0, 3,0, 2,0,5, -56,216,3, +56,234,3, 51,255,255,223,0,0, 1, 50, -57,157,3,0,1,0,51, +57,171,3,0,1,0,2, 50, -57,157,3,0,1,0, -56,217,3, +57,171,3,0,1,0, +56,235,3, 51,255,255,223,0,0, 1, -57,216,3,0,51, +57,234,3,0,2, 50, -57,157,3,0,1,0, -56,218,3, +57,171,3,0,1,0, +56,236,3, 51,255,255,223,0,0, 1, 50, -57,157,3,0,1,1,51, +57,171,3,0,1,1,2, 50, -57,157,3,0,1,1, -56,219,3, +57,171,3,0,1,1, +56,237,3, 51,255,255,223,0,0, 1, -57,218,3,0,51, +57,236,3,0,2, 50, -57,157,3,0,1,1, +57,171,3,0,1,1, 44, 27, -51,255,255,223,0,136,3,2, +51,255,255,223,0,150,3,2, 1, 1, 1, 1, -57,218,3,0,51, +57,236,3,0,2, 1, 50, -57,156,3,0,1,0,50, +57,170,3,0,1,0,1, 1, 50, -57,157,3,0,1,0,51, +57,171,3,0,1,0,2, 1, 1, 1, 25, -51,255,255,223,0,0,0,64,64,51, +51,255,255,223,0,0,0,64,64,2, 50, -57,156,3,0,1,1,50, +57,170,3,0,1,1,1, 1, 25, -51,255,255,223,0,0,0,192,64,51, +51,255,255,223,0,0,0,192,64,2, 50, -57,156,3,0,1,0,50, +57,170,3,0,1,0,1, 25, -51,255,255,223,0,0,0,128,63,49, +51,255,255,223,0,0,0,128,63,0, 1, 1, 1, 25, -51,255,255,223,0,0,0,64,65,51, +51,255,255,223,0,0,0,64,65,2, 50, -57,157,3,0,1,1,51, -57,216,3,0,51, +57,171,3,0,1,1,2, +57,234,3,0,2, 1, 50, -57,156,3,0,1,1,50, +57,170,3,0,1,1,1, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 50, -57,156,3,0,1,0,50, +57,170,3,0,1,0,1, 1, 1, 25, -51,255,255,223,0,0,0,128,65,51, -57,217,3,0,51, +51,255,255,223,0,0,0,128,65,2, +57,235,3,0,2, 1, 50, -57,156,3,0,1,1,50, +57,170,3,0,1,1,1, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 50, -57,156,3,0,1,0,50, +57,170,3,0,1,0,1, 1, -57,219,3,0,51, +57,237,3,0,2, 50, -57,156,3,0,1,0, -57,218,3,0,1, +57,170,3,0,1,0, +57,236,3,0,1, 2, 52,1,0,0,0,0,1, 44, @@ -4508,84 +4643,84 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 50, -57,157,3,0,1,0,51, +57,171,3,0,1,0,2, 1, 1, 50, -57,156,3,0,1,1,50, +57,170,3,0,1,1,1, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 50, -57,156,3,0,1,0,49, +57,170,3,0,1,0,0, 25, -51,255,255,223,0,0,0,128,63,49, +51,255,255,223,0,0,0,128,63,0, 50, -57,156,3,0,1,0,50, +57,170,3,0,1,0,1, 1, 27, 51,255,255,223,0,110,0,1, 1, 50, -57,157,3,0,1,1,51, +57,171,3,0,1,1,2, 50, -57,157,3,0,1,0,51, +57,171,3,0,1,0,2, 1, 50, -57,156,3,0,1,1,50, +57,170,3,0,1,1,1, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 50, -57,156,3,0,1,0,50, +57,170,3,0,1,0,1, 1, 50, -57,157,3,0,1,1,51, +57,171,3,0,1,1,2, 50, -57,156,3,0,1,0,1,1, -29,161,3, +57,170,3,0,1,0,1,1, +29,175,3, 2, 52,1,0,0,0,0,1, 44, 53, 1, 50, -57,160,3,0,1,3,67, +57,174,3,0,1,3,16, 25, 51,255,255,223,0,0,0,0,0, -57,159,3,0, +57,173,3,0, 8, 51,255,255,81,3,4, 27, -51,255,255,223,0,158,3,2, +51,255,255,223,0,172,3,2, 50, -57,159,3,0,2,0,3, +57,173,3,0,2,0,3, 50, -57,160,3,0,2,0,3, +57,174,3,0,2,0,3, 27, -51,255,255,223,0,158,3,2, +51,255,255,223,0,172,3,2, 50, -57,159,3,0,2,1,3, +57,173,3,0,2,1,3, 50, -57,160,3,0,2,1,3, +57,174,3,0,2,1,3, 27, -51,255,255,223,0,158,3,2, +51,255,255,223,0,172,3,2, 50, -57,159,3,0,2,2,3, +57,173,3,0,2,2,3, 50, -57,160,3,0,2,2,3, +57,174,3,0,2,2,3, 1, 50, -57,159,3,0,1,3,49, +57,173,3,0,1,3,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,159,3,0,1,3,51, +57,173,3,0,1,3,2, 50, -57,160,3,0,1,3,1, -29,164,3, +57,174,3,0,1,3,1, +29,178,3, 2, 52,1,0,0,0,0,1, 44, @@ -4594,36 +4729,36 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 50, -57,162,3,0,3,0,1,2,49, +57,176,3,0,3,0,1,2,0, 50, -57,163,3,0,3,0,1,2,50, +57,177,3,0,3,0,1,2,1, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 27, 51,255,255,129,2,194,0,2, 1, 50, -57,162,3,0,3,0,1,2,51, +57,176,3,0,3,0,1,2,2, 50, -57,163,3,0,1,3, +57,177,3,0,1,3, 1, 50, -57,163,3,0,3,0,1,2,51, +57,177,3,0,3,0,1,2,2, 50, -57,162,3,0,1,3, +57,176,3,0,1,3, 1, 50, -57,162,3,0,1,3,49, +57,176,3,0,1,3,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,162,3,0,1,3,51, +57,176,3,0,1,3,2, 50, -57,163,3,0,1,3,1, -29,167,3, +57,177,3,0,1,3,1, +29,181,3, 2, 52,1,0,0,0,0,1, 44, @@ -4632,29 +4767,29 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 50, -57,166,3,0,3,0,1,2,49, +57,180,3,0,3,0,1,2,0, 50, -57,165,3,0,3,0,1,2,50, +57,179,3,0,3,0,1,2,1, 1, 1, 25, -51,255,255,223,0,0,0,0,64,51, +51,255,255,223,0,0,0,0,64,2, 50, -57,166,3,0,3,0,1,2,51, +57,180,3,0,3,0,1,2,2, 50, -57,165,3,0,3,0,1,2, +57,179,3,0,3,0,1,2, 1, 50, -57,165,3,0,1,3,49, +57,179,3,0,1,3,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,165,3,0,1,3,51, +57,179,3,0,1,3,2, 50, -57,166,3,0,1,3,1, -29,170,3, +57,180,3,0,1,3,1, +29,184,3, 2, 52,1,0,0,0,0,1, 44, @@ -4665,36 +4800,36 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,168,3,0,1,3,51, +57,182,3,0,1,3,2, 50, -57,169,3,0,3,0,1,2,49, +57,183,3,0,3,0,1,2,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,169,3,0,1,3,51, +57,183,3,0,1,3,2, 50, -57,168,3,0,3,0,1,2,49, +57,182,3,0,3,0,1,2,0, 1, 50, -57,168,3,0,3,0,1,2,51, +57,182,3,0,3,0,1,2,2, 50, -57,169,3,0,3,0,1,2, +57,183,3,0,3,0,1,2, 1, 50, -57,168,3,0,1,3,49, +57,182,3,0,1,3,0, 1, 1, 25, -51,255,255,223,0,0,0,128,63,50, +51,255,255,223,0,0,0,128,63,1, 50, -57,168,3,0,1,3,51, +57,182,3,0,1,3,2, 50, -57,169,3,0,1,3,1, -29,172,3, +57,183,3,0,1,3,1, +29,186,3, 2, 52,1,0,0,0,0,1, 44, @@ -4708,121 +4843,122 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 51,255,255,223,0,61,10,23,63, 25, 51,255,255,223,0,174,71,225,61, -57,171,3,0,1, -29,176,3, +57,185,3,0,1, +29,190,3, 2, 52,1,4,0, -55,220,3, -17,120,8, +55,238,3, +17,112,8, 51,255,255,223,0,2, -55,221,3, -17,41,8, +55,239,3, +17,33,8, 51,255,255,129,2,2, -55,222,3, -17,124,8, +55,240,3, +17,116,8, 51,255,255,223,0,2, -55,223,3, -17,132,8, +55,241,3, +17,124,8, 51,255,255,223,0,2,4,0, 0,0, 3,0, 2,0, -1,0,6, -56,220,3, +1,0,7, +56,238,3, 51,255,255,223,0,0, 27, -51,255,255,223,0,172,3,1, -57,175,3,0, -56,221,3, +51,255,255,223,0,186,3,1, +57,189,3,0, +56,239,3, 51,255,255,129,2,0, 1, 1, -57,220,3,0,50, +57,238,3,0,1, 27, -51,255,255,223,0,172,3,1, -57,173,3,0,49, -57,173,3,0, -56,222,3, +51,255,255,223,0,186,3,1, +57,187,3,0,0, +57,187,3,0, +56,240,3, 51,255,255,223,0,0, 27, 51,255,255,223,0,194,0,2, 27, 51,255,255,223,0,194,0,2, 50, -57,221,3,0,1,0, +57,239,3,0,1,0, 50, -57,221,3,0,1,1, +57,239,3,0,1,1, 50, -57,221,3,0,1,2, -56,223,3, +57,239,3,0,1,2, +56,241,3, 51,255,255,223,0,0, 27, 51,255,255,223,0,217,0,2, 27, 51,255,255,223,0,217,0,2, 50, -57,221,3,0,1,0, +57,239,3,0,1,0, 50, -57,221,3,0,1,1, +57,239,3,0,1,1, 50, -57,221,3,0,1,2, +57,239,3,0,1,2, 32,0, 1, 1, -57,222,3,0,70, +57,240,3,0,18, 25, -51,255,255,223,0,0,0,0,0,62, +51,255,255,223,0,0,0,0,0,8, 1, -57,220,3,0,68, -57,222,3,0, +57,238,3,0,17, +57,240,3,0, 2, 52,1,0,0,0,0,1, 22, 1, -57,221,3,1,66, +57,239,3,1,15, 1, -57,220,3,0,49, +57,238,3,0,0, 1, 1, -57,221,3,0,50, -57,220,3,0,51, +57,239,3,0,1, +57,238,3,0,2, 27, -51,255,255,223,0,136,3,2, -57,220,3,0, +51,255,255,223,0,150,3,2, +57,238,3,0, 1, -57,220,3,0,50, -57,222,3,0,1, +57,238,3,0,1, +57,240,3,0,1, 58, 32,0, 1, 1, -57,223,3,0,69, -57,174,3,0,62, +57,241,3,0,19, +57,188,3,0,8, 1, -57,223,3,0,68, -57,220,3,0, +57,241,3,0,17, +57,238,3,0, 2, 52,1,0,0,0,0,1, -44, +22, 1, -57,220,3,0,49, +57,239,3,1,15, +1, +57,238,3,0,0, 27, -51,255,255,129,2,140,3,2, +51,255,255,129,2,154,3,2, 1, 1, -57,221,3,0,50, -57,220,3,0,51, +57,239,3,0,1, +57,238,3,0,2, 1, -57,174,3,0,50, -57,220,3,0, +57,188,3,0,1, +57,238,3,0, 1, -57,223,3,0,50, -57,220,3,0,1, -2, -52,1,0,0,0,0,1, +57,241,3,0,1, +57,238,3,0,1, +58, 44, -57,221,3,0,1,1, -29,178,3, +57,239,3,0,1, +29,192,3, 2, 52,1,0,0,0,0,1, 44, @@ -4832,319 +4968,148 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 27, 51,255,255,223,0,217,0,2, 50, -57,177,3,0,1,0, +57,191,3,0,1,0, 50, -57,177,3,0,1,1, +57,191,3,0,1,1, 50, -57,177,3,0,1,2,50, +57,191,3,0,1,2,1, 27, 51,255,255,223,0,194,0,2, 27, 51,255,255,223,0,194,0,2, 50, -57,177,3,0,1,0, -50, -57,177,3,0,1,1, -50, -57,177,3,0,1,2,1, -29,181,3, -2, -52,1,0,0,0,0,1, -32,0, -1, -50, -57,179,3,0,1,0,70, -50, -57,179,3,0,1,2, -2, -52,1,0,0,0,0,1, -44, -8, -51,255,255,129,2,3, -25, -51,255,255,223,0,0,0,0,0, -27, -51,255,255,223,0,136,3,2, -1, -57,180,3,0,51, -1, -50, -57,179,3,0,1,1,50, -50, -57,179,3,0,1,0, -1, +57,191,3,0,1,0, 50, -57,179,3,0,1,2,50, +57,191,3,0,1,1, 50, -57,179,3,0,1,0, -57,180,3,0,1, +57,191,3,0,1,2,1, +29,195,3, 2, -52,1,0,0,0,0,1, -44, -13, -51,255,255,129,2,1, -25, -51,255,255,223,0,0,0,0,0,1,1, -29,184,3, -2, -52,1,1,0, -55,224,3, -17,123,7, -51,255,255,223,0,2,1,0, -0,0,2, -56,224,3, +52,1,2,0, +55,242,3, +17,132,8, +51,255,255,223,0,2, +55,243,3, +17,135,8, +51,255,255,223,0,2,2,0, +0,0, +1,0,3, +56,242,3, 51,255,255,223,0,0, 27, -51,255,255,223,0,178,3,1, -57,183,3,0, -32,0, -1, -50, -57,182,3,0,1,0,72, -50, -57,182,3,0,1,1, -2, -52,1,0,0,0,0,1, -32,0, -1, -50, -57,182,3,0,1,1,72, -50, -57,182,3,0,1,2, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,129,2,181,3,2, -57,182,3,0, -57,224,3,0,1, -32,0, -1, -50, -57,182,3,0,1,0,72, -50, -57,182,3,0,1,2, -2, -52,1,0,0,0,0,1, -44, -50, -27, -51,255,255,129,2,181,3,2, -50, -57,182,3,0,3,0,2,1, -57,224,3,0,3,0,2,1,1, -2, -52,1,0,0,0,0,1, -44, -50, -27, -51,255,255,129,2,181,3,2, -50, -57,182,3,0,3,2,0,1, -57,224,3,0,3,1,2,0,1,1, -32,0, -1, -50, -57,182,3,0,1,0,72, -50, -57,182,3,0,1,2, -2, -52,1,0,0,0,0,1, -44, -50, +51,255,255,223,0,194,0,2, 27, -51,255,255,129,2,181,3,2, -50, -57,182,3,0,3,1,0,2, -57,224,3,0,3,1,0,2,1, -32,0, -1, +51,255,255,223,0,194,0,2, 50, -57,182,3,0,1,1,72, +57,193,3,0,1,0, 50, -57,182,3,0,1,2, -2, -52,1,0,0,0,0,1, -44, +57,193,3,0,1,1, 50, +57,193,3,0,1,2, +56,243,3, +51,255,255,223,0,0, 27, -51,255,255,129,2,181,3,2, -50, -57,182,3,0,3,1,2,0, -57,224,3,0,3,2,0,1,1, -2, -52,1,0,0,0,0,1, -44, -50, +51,255,255,223,0,217,0,2, 27, -51,255,255,129,2,181,3,2, -50, -57,182,3,0,3,2,1,0, -57,224,3,0,3,2,1,0,1,1, -29,187,3, -2, -52,1,3,0, -55,225,3, -17,47,7, -51,255,255,223,0,2, -55,226,3, -17,140,8, -51,255,255,129,2,2, -55,227,3, -17,144,8, -51,255,255,129,2,2,3,0, -0,0, -2,0, -1,0,4, -56,225,3, -51,255,255,223,0,0, -1, -50, -57,186,3,0,1,3,51, -50, -57,185,3,0,1,3, -56,226,3, -51,255,255,129,2,0, -1, -50, -57,185,3,0,3,0,1,2,51, +51,255,255,223,0,217,0,2, 50, -57,186,3,0,1,3, -56,227,3, -51,255,255,129,2,0, -1, +57,193,3,0,1,0, 50, -57,186,3,0,3,0,1,2,51, +57,193,3,0,1,1, 50, -57,185,3,0,1,3, +57,193,3,0,1,2, 44, -8, -51,255,255,81,3,2, +53, 1, +57,243,3,0,19, +57,242,3,0, 1, 1, 1, +57,193,3,0,1, +57,242,3,0,2, 27, -51,255,255,129,2,176,3,3, -27, -51,255,255,129,2,184,3,2, -57,226,3,0, -57,227,3,0, -57,225,3,0, -57,227,3,0,49, -50, -57,186,3,0,3,0,1,2,50, -57,227,3,0,49, -50, -57,185,3,0,3,0,1,2,50, -57,226,3,0, -1, +51,255,255,223,0,192,3,1, +57,194,3,0,3, 1, -50, -57,185,3,0,1,3,49, -50, -57,186,3,0,1,3,50, -57,225,3,0,1, -29,190,3, +57,243,3,0,1, +57,242,3,0, +13, +51,255,255,129,2,1, +25, +51,255,255,223,0,0,0,0,0,1, +29,200,3, 2, -52,1,3,0, -55,228,3, -17,47,7, +52,1,5,0, +55,244,3, +17,83,7, 51,255,255,223,0,2, -55,229,3, -17,140,8, +55,245,3, +17,138,8, 51,255,255,129,2,2, -55,230,3, -17,144,8, -51,255,255,129,2,2,3,0, +55,246,3, +17,142,8, +51,255,255,129,2,2, +55,247,3, +17,146,8, +51,255,255,129,2,2, +55,248,3, +17,217,2, +51,255,255,129,2,2,5,0, 0,0, 2,0, -1,0,4, -56,228,3, +3,0, +4,0, +1,0,7, +56,244,3, 51,255,255,223,0,0, 1, 50, -57,189,3,0,1,3,51, +57,197,3,0,1,3,2, 50, -57,188,3,0,1,3, -56,229,3, +57,196,3,0,1,3, +56,245,3, 51,255,255,129,2,0, 1, 50, -57,188,3,0,3,0,1,2,51, +57,196,3,0,3,0,1,2,2, 50, -57,189,3,0,1,3, -56,230,3, +57,197,3,0,1,3, +56,246,3, 51,255,255,129,2,0, 1, 50, -57,189,3,0,3,0,1,2,51, -50, -57,188,3,0,1,3, -44, -8, -51,255,255,81,3,2, -1, -1, -1, -1, -27, -51,255,255,129,2,176,3,3, -27, -51,255,255,129,2,184,3,2, -57,230,3,0, -57,229,3,0, -57,228,3,0, -57,230,3,0,49, -50, -57,189,3,0,3,0,1,2,50, -57,230,3,0,49, -50, -57,188,3,0,3,0,1,2,50, -57,229,3,0, -1, -1, -50, -57,188,3,0,1,3,49, -50, -57,189,3,0,1,3,50, -57,228,3,0,1, -29,193,3, -2, -52,1,3,0, -55,231,3, -17,47,7, -51,255,255,223,0,2, -55,232,3, -17,140,8, -51,255,255,129,2,2, -55,233,3, -17,144,8, -51,255,255,129,2,2,3,0, -0,0, -2,0, -1,0,4, -56,231,3, -51,255,255,223,0,0, -1, -50, -57,192,3,0,1,3,51, +57,197,3,0,3,0,1,2,2, 50, -57,191,3,0,1,3, -56,232,3, +57,196,3,0,1,3, +56,247,3, 51,255,255,129,2,0, -1, -50, -57,191,3,0,3,0,1,2,51, -50, -57,192,3,0,1,3, -56,233,3, +53, +57,198,3,0, +57,246,3,0, +57,245,3,0, +56,248,3, 51,255,255,129,2,0, +53, +57,198,3,0, +57,245,3,0, +57,246,3,0, +32,0, +57,199,3,0, +2, +52,1,0,0,0,0,2, +22, 1, -50, -57,192,3,0,3,0,1,2,51, -50, -57,191,3,0,1,3, +57,247,3,1,15, +27, +51,255,255,129,2,195,3,2, +57,247,3,0, +57,248,3,0, +22, +1, +57,248,3,1,15, +57,246,3,0,1, +58, 44, 8, 51,255,255,81,3,2, @@ -5153,85 +5118,64 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 1, 1, 27, -51,255,255,129,2,176,3,3, -57,232,3,0, -57,231,3,0, -57,233,3,0,49, +51,255,255,129,2,190,3,3, +57,247,3,0, +57,244,3,0, +57,248,3,0,0, 50, -57,192,3,0,3,0,1,2,50, -57,233,3,0,49, +57,197,3,0,3,0,1,2,1, +57,246,3,0,0, 50, -57,191,3,0,3,0,1,2,50, -57,232,3,0, +57,196,3,0,3,0,1,2,1, +57,245,3,0, 1, 1, 50, -57,191,3,0,1,3,49, +57,196,3,0,1,3,0, 50, -57,192,3,0,1,3,50, -57,231,3,0,1, -29,196,3, +57,197,3,0,1,3,1, +57,244,3,0,1, +29,203,3, 2, -52,1,3,0, -55,234,3, -17,47,7, -51,255,255,223,0,2, -55,235,3, -17,140,8, -51,255,255,129,2,2, -55,236,3, -17,144,8, -51,255,255,129,2,2,3,0, -0,0, -2,0, -1,0,4, -56,234,3, -51,255,255,223,0,0, -1, -50, -57,195,3,0,1,3,51, -50, -57,194,3,0,1,3, -56,235,3, -51,255,255,129,2,0, -1, -50, -57,194,3,0,3,0,1,2,51, -50, -57,195,3,0,1,3, -56,236,3, -51,255,255,129,2,0, -1, -50, -57,195,3,0,3,0,1,2,51, -50, -57,194,3,0,1,3, +52,1,0,0,0,0,1, 44, -8, -51,255,255,81,3,2, -1, -1, -1, -1, 27, -51,255,255,129,2,176,3,3, -57,236,3,0, -57,234,3,0, -57,235,3,0,49, -50, -57,195,3,0,3,0,1,2,50, -57,236,3,0,49, -50, -57,194,3,0,3,0,1,2,50, -57,235,3,0, -1, -1, -50, -57,194,3,0,1,3,49, -50, -57,195,3,0,1,3,50, -57,234,3,0,1, -29,198,3, +51,255,255,81,3,200,3,4, +57,201,3,0, +57,202,3,0, +3,0, +3,1,1, +29,206,3, +2, +52,1,0,0,0,0,1, +44, +27, +51,255,255,81,3,200,3,4, +57,204,3,0, +57,205,3,0, +3,1, +3,1,1, +29,209,3, +2, +52,1,0,0,0,0,1, +44, +27, +51,255,255,81,3,200,3,4, +57,207,3,0, +57,208,3,0, +3,0, +3,0,1, +29,212,3, +2, +52,1,0,0,0,0,1, +44, +27, +51,255,255,81,3,200,3,4, +57,210,3,0, +57,211,3,0, +3,1, +3,0,1, +29,214,3, 2, 52,1,0,0,0,0,1, 44, @@ -5239,16 +5183,16 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 51,255,255,81,3,2, 1, 50, -57,197,3,0,3,0,1,2,52, +57,213,3,0,3,0,1,2,3, 27, 51,255,255,223,0,217,0,2, 50, -57,197,3,0,1,3, +57,213,3,0,1,3, 25, 51,255,255,223,0,23,183,209,56, 50, -57,197,3,0,1,3,1, -29,201,3, +57,213,3,0,1,3,1, +29,217,3, 2, 52,1,0,0,0,0,1, 44, @@ -5256,25 +5200,25 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 51,255,255,221,1,2, 1, 50, -57,199,3,0,3,0,1,2,52, +57,215,3,0,3,0,1,2,3, 27, 51,255,255,213,0,209,0,2, 50, -57,199,3,0,1,3, +57,215,3,0,1,3, 25, 51,255,255,213,0,23,183,209,56, 50, -57,199,3,0,1,3,1, -29,203,3, +57,215,3,0,1,3,1, +29,219,3, 2, 52,1,0,0,0,0,1, 44, 1, 50, -57,202,3,0,2,0,1,52, +57,218,3,0,2,0,1,3, 50, -57,202,3,0,1,2,1, -29,206,3, +57,218,3,0,1,2,1, +29,222,3, 2, 52,1,0,0,0,0,1, 44, @@ -5284,20 +5228,20 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 51,255,255,213,0,50,2,1, 8, 51,255,255,174,8,2, -57,204,3,0, -57,205,3,0, +57,220,3,0, +57,221,3,0, 1, 1, 50, -57,204,3,0,1,0,51, +57,220,3,0,1,0,2, 50, -57,205,3,0,1,1,50, +57,221,3,0,1,1,1, 1, 50, -57,204,3,0,1,1,51, +57,220,3,0,1,1,2, 50, -57,205,3,0,1,0,1, -29,210,3, +57,221,3,0,1,0,1, +29,226,3, 2, 52,1,0,0,0,0,1, 44, @@ -5307,18 +5251,18 @@ static uint8_t SKSL_INCLUDE_sksl_gpu[] = {8,0,189,8, 51,255,255,223,0,53,2,1, 8, 51,255,255,183,8,2, -57,207,3,0, -57,208,3,0, +57,223,3,0, +57,224,3,0, 1, 1, 50, -57,207,3,0,1,0,51, +57,223,3,0,1,0,2, 50, -57,208,3,0,1,1,50, +57,224,3,0,1,1,1, 1, 50, -57,207,3,0,1,1,51, +57,223,3,0,1,1,2, 50, -57,208,3,0,1,0,1, +57,224,3,0,1,0,1, 21,}; static constexpr size_t SKSL_INCLUDE_sksl_gpu_LENGTH = sizeof(SKSL_INCLUDE_sksl_gpu); diff --git a/third_party/skia/src/sksl/generated/sksl_public.dehydrated.sksl b/third_party/skia/src/sksl/generated/sksl_public.dehydrated.sksl index 38e4f38fb5a2..a39b3641f022 100644 --- a/third_party/skia/src/sksl/generated/sksl_public.dehydrated.sksl +++ b/third_party/skia/src/sksl/generated/sksl_public.dehydrated.sksl @@ -1,4 +1,4 @@ -static uint8_t SKSL_INCLUDE_sksl_public[] = {8,0,227,3, +static uint8_t SKSL_INCLUDE_sksl_public[] = {10,0,227,3, 7,100,101,103,114,101,101,115, 8,36,103,101,110,84,121,112,101, 7,114,97,100,105,97,110,115, @@ -2498,7 +2498,7 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {8,0,227,3, 51,255,255,13,3,2, 1, 50, -57,119,2,0,3,0,1,2,52, +57,119,2,0,3,0,1,2,3, 27, 51,255,255,191,0,181,0,2, 50, @@ -2515,7 +2515,7 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {8,0,227,3, 51,255,255,6,3,2, 1, 50, -57,121,2,0,3,0,1,2,52, +57,121,2,0,3,0,1,2,3, 27, 51,255,255,181,0,173,0,2, 50, diff --git a/third_party/skia/src/sksl/generated/sksl_rt_shader.dehydrated.sksl b/third_party/skia/src/sksl/generated/sksl_rt_shader.dehydrated.sksl index 51c07ef9bf7b..fbccdf891d02 100644 --- a/third_party/skia/src/sksl/generated/sksl_rt_shader.dehydrated.sksl +++ b/third_party/skia/src/sksl/generated/sksl_rt_shader.dehydrated.sksl @@ -1,4 +1,4 @@ -static uint8_t SKSL_INCLUDE_sksl_rt_shader[] = {8,0,20,0, +static uint8_t SKSL_INCLUDE_sksl_rt_shader[] = {10,0,20,0, 12,115,107,95,70,114,97,103,67,111,111,114,100, 6,102,108,111,97,116,52, 52,1,1,0, diff --git a/third_party/skia/src/sksl/generated/sksl_vert.dehydrated.sksl b/third_party/skia/src/sksl/generated/sksl_vert.dehydrated.sksl index 6480297cad6d..27bb3ce8e2f8 100644 --- a/third_party/skia/src/sksl/generated/sksl_vert.dehydrated.sksl +++ b/third_party/skia/src/sksl/generated/sksl_vert.dehydrated.sksl @@ -1,4 +1,4 @@ -static uint8_t SKSL_INCLUDE_sksl_vert[] = {8,0,82,0, +static uint8_t SKSL_INCLUDE_sksl_vert[] = {10,0,82,0, 12,115,107,95,80,101,114,86,101,114,116,101,120, 11,115,107,95,80,111,115,105,116,105,111,110, 6,102,108,111,97,116,52, diff --git a/third_party/skia/src/sksl/ir/BUILD.bazel b/third_party/skia/src/sksl/ir/BUILD.bazel index 7178bb4e249f..7b350e226963 100644 --- a/third_party/skia/src/sksl/ir/BUILD.bazel +++ b/third_party/skia/src/sksl/ir/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkSLBinaryExpression_hdr", hdrs = ["SkSLBinaryExpression.h"], @@ -10,8 +12,7 @@ generated_cc_atom( ":SkSLIndexExpression_hdr", ":SkSLSwizzle_hdr", ":SkSLTernaryExpression_hdr", - "//src/sksl:SkSLLexer_hdr", - "//src/sksl:SkSLOperators_hdr", + "//include/sksl:SkSLOperator_hdr", ], ) @@ -786,8 +787,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLExpression_hdr", - "//src/sksl:SkSLLexer_hdr", - "//src/sksl:SkSLOperators_hdr", + "//include/sksl:SkSLOperator_hdr", ], ) @@ -810,8 +810,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLExpression_hdr", - "//src/sksl:SkSLLexer_hdr", - "//src/sksl:SkSLOperators_hdr", + "//include/sksl:SkSLOperator_hdr", ], ) @@ -847,7 +846,7 @@ generated_cc_atom( "//include/private:SkSLModifiers_hdr", "//include/private:SkSLProgramElement_hdr", "//include/private:SkTHash_hdr", - "//src/gpu/vk:GrVkCaps_hdr", + "//src/gpu/ganesh/vk:GrVkCaps_hdr", "//src/sksl:SkSLAnalysis_hdr", "//src/sksl:SkSLProgramSettings_hdr", ], @@ -1002,12 +1001,14 @@ generated_cc_atom( srcs = ["SkSLTernaryExpression.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":SkSLBinaryExpression_hdr", ":SkSLLiteral_hdr", ":SkSLTernaryExpression_hdr", "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLOperator_hdr", + "//src/sksl:SkSLAnalysis_hdr", "//src/sksl:SkSLConstantFolder_hdr", "//src/sksl:SkSLContext_hdr", - "//src/sksl:SkSLOperators_hdr", "//src/sksl:SkSLProgramSettings_hdr", ], ) diff --git a/third_party/skia/src/sksl/ir/SkSLBinaryExpression.cpp b/third_party/skia/src/sksl/ir/SkSLBinaryExpression.cpp index 75f478b5cea8..f3679fa09b2e 100644 --- a/third_party/skia/src/sksl/ir/SkSLBinaryExpression.cpp +++ b/third_party/skia/src/sksl/ir/SkSLBinaryExpression.cpp @@ -25,7 +25,7 @@ static bool is_low_precision_matrix_vector_multiply(const Expression& left, const Expression& right, const Type& resultType) { return !resultType.highPrecision() && - op.kind() == Token::Kind::TK_STAR && + op.kind() == Operator::Kind::STAR && left.type().isMatrix() && right.type().isVector() && left.type().rows() == right.type().columns() && @@ -34,6 +34,7 @@ static bool is_low_precision_matrix_vector_multiply(const Expression& left, } static std::unique_ptr rewrite_matrix_vector_multiply(const Context& context, + Position pos, const Expression& left, const Operator& op, const Expression& right, @@ -43,21 +44,24 @@ static std::unique_ptr rewrite_matrix_vector_multiply(const Context& for (int n = 0; n < left.type().rows(); ++n) { // Get mat[N] with an index expression. std::unique_ptr matN = IndexExpression::Make( - context, left.clone(), Literal::MakeInt(context, left.fLine, n)); + context, pos, left.clone(), Literal::MakeInt(context, left.fPosition, n)); // Get vec[N] with a swizzle expression. - std::unique_ptr vecN = Swizzle::Make( - context, right.clone(), ComponentArray{(SkSL::SwizzleComponent::Type)n}); + std::unique_ptr vecN = Swizzle::Make(context, + left.fPosition.rangeThrough(right.fPosition), right.clone(), + ComponentArray{(SkSL::SwizzleComponent::Type)n}); // Multiply them together. const Type* matNType = &matN->type(); std::unique_ptr product = - BinaryExpression::Make(context, std::move(matN), op, std::move(vecN), matNType); + BinaryExpression::Make(context, pos, std::move(matN), op, std::move(vecN), + matNType); // Sum all the components together. if (!sum) { sum = std::move(product); } else { sum = BinaryExpression::Make(context, + pos, std::move(sum), - Operator(Token::Kind::TK_PLUS), + Operator(Operator::Kind::PLUS), std::move(product), matNType); } @@ -67,14 +71,13 @@ static std::unique_ptr rewrite_matrix_vector_multiply(const Context& } std::unique_ptr BinaryExpression::Convert(const Context& context, + Position pos, std::unique_ptr left, Operator op, std::unique_ptr right) { if (!left || !right) { return nullptr; } - const int line = left->fLine; - const Type* rawLeftType = (left->isIntLiteral() && right->type().isInteger()) ? &right->type() : &left->type(); @@ -85,7 +88,7 @@ std::unique_ptr BinaryExpression::Convert(const Context& context, bool isAssignment = op.isAssignment(); if (isAssignment && !Analysis::UpdateVariableRefKind(left.get(), - op.kind() != Token::Kind::TK_EQ + op.kind() != Operator::Kind::EQ ? VariableReference::RefKind::kReadWrite : VariableReference::RefKind::kWrite, context.fErrors)) { @@ -97,30 +100,29 @@ std::unique_ptr BinaryExpression::Convert(const Context& context, const Type* resultType; if (!op.determineBinaryType(context, *rawLeftType, *rawRightType, &leftType, &rightType, &resultType)) { - context.fErrors->error(line, "type mismatch: '" + std::string(op.tightOperatorName()) + - "' cannot operate on '" + left->type().displayName() + - "', '" + right->type().displayName() + "'"); + context.fErrors->error(pos, "type mismatch: '" + std::string(op.tightOperatorName()) + + "' cannot operate on '" + left->type().displayName() + "', '" + + right->type().displayName() + "'"); return nullptr; } if (isAssignment && leftType->componentType().isOpaque()) { - context.fErrors->error(line, "assignments to opaque type '" + left->type().displayName() + - "' are not permitted"); + context.fErrors->error(pos, "assignments to opaque type '" + left->type().displayName() + + "' are not permitted"); return nullptr; } if (context.fConfig->strictES2Mode()) { if (!op.isAllowedInStrictES2Mode()) { - context.fErrors->error(line, "operator '" + std::string(op.tightOperatorName()) + - "' is not allowed"); + 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(line, - "operator '" + std::string(op.tightOperatorName()) + - "' can not operate on arrays (or structs containing arrays)"); + context.fErrors->error(pos, "operator '" + std::string(op.tightOperatorName()) + + "' can not operate on arrays (or structs containing arrays)"); return nullptr; } } @@ -131,10 +133,11 @@ std::unique_ptr BinaryExpression::Convert(const Context& context, return nullptr; } - return BinaryExpression::Make(context, std::move(left), op, std::move(right), resultType); + return BinaryExpression::Make(context, pos, std::move(left), op, std::move(right), resultType); } std::unique_ptr BinaryExpression::Make(const Context& context, + Position pos, std::unique_ptr left, Operator op, std::unique_ptr right) { @@ -145,10 +148,11 @@ std::unique_ptr BinaryExpression::Make(const Context& context, SkAssertResult(op.determineBinaryType(context, left->type(), right->type(), &leftType, &rightType, &resultType)); - return BinaryExpression::Make(context, std::move(left), op, std::move(right), resultType); + return BinaryExpression::Make(context, pos, std::move(left), op, std::move(right), resultType); } std::unique_ptr BinaryExpression::Make(const Context& context, + Position pos, std::unique_ptr left, Operator op, std::unique_ptr right, @@ -162,13 +166,12 @@ std::unique_ptr BinaryExpression::Make(const Context& context, SkASSERT(!op.isAssignment() || !left->type().componentType().isOpaque()); // For simple assignments, detect and report out-of-range literal values. - if (op.kind() == Token::Kind::TK_EQ) { + if (op.kind() == Operator::Kind::EQ) { left->type().checkForOutOfRangeLiteral(context, *right); } // Perform constant-folding on the expression. - const int line = left->fLine; - if (std::unique_ptr result = ConstantFolder::Simplify(context, line, *left, + if (std::unique_ptr result = ConstantFolder::Simplify(context, pos, *left, op, *right, *resultType)) { return result; } @@ -180,13 +183,14 @@ std::unique_ptr BinaryExpression::Make(const Context& context, // : mat * vec) if (is_low_precision_matrix_vector_multiply(*left, op, *right, *resultType)) { // Look up `sk_Caps.rewriteMatrixVectorMultiply`. - auto caps = Setting::Convert(context, line, "rewriteMatrixVectorMultiply"); + auto caps = Setting::Convert(context, pos, "rewriteMatrixVectorMultiply"); bool capsBitIsTrue = caps->isBoolLiteral() && caps->as().boolValue(); if (capsBitIsTrue || !caps->isBoolLiteral()) { // Rewrite the multiplication as a sum of vector-scalar products. std::unique_ptr rewrite = - rewrite_matrix_vector_multiply(context, *left, op, *right, *resultType); + rewrite_matrix_vector_multiply(context, pos, *left, op, *right, + *resultType); // If we know the caps bit is true, return the rewritten expression directly. if (capsBitIsTrue) { @@ -197,15 +201,16 @@ std::unique_ptr BinaryExpression::Make(const Context& context, // sk_Caps.rewriteMatrixVectorMultiply ? (rewrite) : (mat * vec) return TernaryExpression::Make( context, + pos, std::move(caps), std::move(rewrite), - std::make_unique(line, std::move(left), op, + std::make_unique(pos, std::move(left), op, std::move(right), resultType)); } } } - return std::make_unique(line, std::move(left), op, + return std::make_unique(pos, std::move(left), op, std::move(right), resultType); } @@ -235,7 +240,7 @@ bool BinaryExpression::CheckRef(const Expression& expr) { } std::unique_ptr BinaryExpression::clone() const { - return std::make_unique(fLine, + return std::make_unique(fPosition, this->left()->clone(), this->getOperator(), this->right()->clone(), diff --git a/third_party/skia/src/sksl/ir/SkSLBinaryExpression.h b/third_party/skia/src/sksl/ir/SkSLBinaryExpression.h index 4616249049ba..1df660df9b5f 100644 --- a/third_party/skia/src/sksl/ir/SkSLBinaryExpression.h +++ b/third_party/skia/src/sksl/ir/SkSLBinaryExpression.h @@ -8,8 +8,7 @@ #ifndef SKSL_BINARYEXPRESSION #define SKSL_BINARYEXPRESSION -#include "src/sksl/SkSLLexer.h" -#include "src/sksl/SkSLOperators.h" +#include "include/sksl/SkSLOperator.h" #include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLFieldAccess.h" #include "src/sksl/ir/SkSLIndexExpression.h" @@ -27,9 +26,9 @@ class BinaryExpression final : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kBinary; - BinaryExpression(int line, std::unique_ptr left, Operator op, + BinaryExpression(Position pos, std::unique_ptr left, Operator op, std::unique_ptr right, const Type* type) - : INHERITED(line, kExpressionKind, type) + : INHERITED(pos, kExpressionKind, type) , fLeft(std::move(left)) , fOperator(op) , fRight(std::move(right)) { @@ -40,6 +39,7 @@ class BinaryExpression final : public Expression { // Creates a potentially-simplified form of the expression. Determines the result type // programmatically. Typechecks and coerces input expressions; reports errors via ErrorReporter. static std::unique_ptr Convert(const Context& context, + Position pos, std::unique_ptr left, Operator op, std::unique_ptr right); @@ -47,6 +47,7 @@ class BinaryExpression final : public Expression { // Creates a potentially-simplified form of the expression. Determines the result type // programmatically. Asserts if the expressions do not typecheck or are otherwise invalid. static std::unique_ptr Make(const Context& context, + Position pos, std::unique_ptr left, Operator op, std::unique_ptr right); @@ -54,6 +55,7 @@ class BinaryExpression final : public Expression { // Creates a potentially-simplified form of the expression. Result type is passed in. // Asserts if the expressions do not typecheck or are otherwise invalid. static std::unique_ptr Make(const Context& context, + Position pos, std::unique_ptr left, Operator op, std::unique_ptr right, diff --git a/third_party/skia/src/sksl/ir/SkSLBlock.cpp b/third_party/skia/src/sksl/ir/SkSLBlock.cpp index f933a1604dd2..7c300093c01a 100644 --- a/third_party/skia/src/sksl/ir/SkSLBlock.cpp +++ b/third_party/skia/src/sksl/ir/SkSLBlock.cpp @@ -12,7 +12,15 @@ namespace SkSL { -std::unique_ptr Block::MakeUnscoped(int line, StatementArray statements) { +std::unique_ptr Block::Make(Position pos, + StatementArray statements, + Kind kind, + std::shared_ptr symbols) { + // We can't simplify away braces or populated symbol tables. + if (kind == Kind::kBracedScope || (symbols && symbols->count())) { + return std::make_unique(pos, std::move(statements), kind, std::move(symbols)); + } + // If the Block is completely empty, synthesize a Nop. if (statements.empty()) { return Nop::Make(); @@ -31,8 +39,8 @@ std::unique_ptr Block::MakeUnscoped(int line, StatementArray statemen continue; } // We found more than one non-empty statement. We actually do need a Block. - return std::make_unique(line, std::move(statements), - /*symbols=*/nullptr, /*isScope=*/false); + return std::make_unique(pos, std::move(statements), kind, + /*symbols=*/nullptr); } } @@ -49,13 +57,13 @@ std::unique_ptr Block::MakeUnscoped(int line, StatementArray statemen return std::move(statements.front()); } -std::unique_ptr Block::Make(int line, - StatementArray statements, - std::shared_ptr symbols, - bool isScope) { +std::unique_ptr Block::MakeBlock(Position pos, + StatementArray statements, + Kind kind, + std::shared_ptr symbols) { // Nothing to optimize here--eliminating empty statements doesn't actually improve the generated // code, and we promise to return a Block. - return std::make_unique(line, std::move(statements), std::move(symbols), isScope); + return std::make_unique(pos, std::move(statements), kind, std::move(symbols)); } std::unique_ptr Block::clone() const { @@ -64,22 +72,26 @@ std::unique_ptr Block::clone() const { for (const std::unique_ptr& stmt : this->children()) { cloned.push_back(stmt->clone()); } - return std::make_unique(fLine, + return std::make_unique(fPosition, std::move(cloned), - SymbolTable::WrapIfBuiltin(this->symbolTable()), - this->isScope()); + fBlockKind, + SymbolTable::WrapIfBuiltin(this->symbolTable())); } std::string Block::description() const { std::string result; - if (fIsScope) { + + // Write scope markers if this block is a scope, or if the block is empty (since we need to emit + // something here to make the code valid). + bool isScope = this->isScope() || this->isEmpty(); + if (isScope) { result += "{"; } for (const std::unique_ptr& stmt : this->children()) { result += "\n"; result += stmt->description(); } - result += fIsScope ? "\n}\n" : "\n"; + result += isScope ? "\n}\n" : "\n"; return result; } diff --git a/third_party/skia/src/sksl/ir/SkSLBlock.h b/third_party/skia/src/sksl/ir/SkSLBlock.h index 3f366c7136d8..bd739d845a63 100644 --- a/third_party/skia/src/sksl/ir/SkSLBlock.h +++ b/third_party/skia/src/sksl/ir/SkSLBlock.h @@ -20,23 +20,37 @@ class Block final : public Statement { public: inline static constexpr Kind kStatementKind = Kind::kBlock; - Block(int line, StatementArray statements, - const std::shared_ptr symbols = nullptr, bool isScope = true) - : INHERITED(line, kStatementKind) + // "kBracedScope" represents an actual language-level block. Other kinds of block are used to + // pass around multiple statements as if they were a single unit, with no semantic impact. + enum class Kind { + kUnbracedBlock, // Represents a group of statements without curly braces. + kBracedScope, // Represents a language-level Block, with curly braces. + kCompoundStatement, // A block which conceptually represents a single statement, such as + // `int a, b;`. (SkSL represents this internally as two statements: + // `int a; int b;`) Allowed to optimize away to its interior Statement. + // Treated as a single statement by the debugger. + }; + + Block(Position pos, StatementArray statements, + Kind kind = Kind::kBracedScope, const std::shared_ptr symbols = nullptr) + : INHERITED(pos, kStatementKind) , fChildren(std::move(statements)) - , fSymbolTable(std::move(symbols)) - , fIsScope(isScope) {} - - // Make always makes a real Block object. This is important because many callers rely on Blocks - // specifically; e.g. a function body must be a scoped Block, nothing else will do. - static std::unique_ptr Make(int line, - StatementArray statements, - std::shared_ptr symbols = nullptr, - bool isScope = true); - - // An unscoped Block is just a collection of Statements. For a single-statement Block, - // MakeUnscoped will return the Statement as-is. For an empty Block, MakeUnscoped returns Nop. - static std::unique_ptr MakeUnscoped(int line, StatementArray statements); + , fBlockKind(kind) + , fSymbolTable(std::move(symbols)) {} + + // Make is allowed to simplify compound statements. For a single-statement unscoped Block, + // Make can return the Statement as-is. For an empty unscoped Block, Make can return Nop. + static std::unique_ptr Make(Position pos, + StatementArray statements, + Kind kind = Kind::kBracedScope, + std::shared_ptr symbols = nullptr); + + // MakeBlock always makes a real Block object. This is important because many callers rely on + // Blocks specifically; e.g. a function body must be a scoped Block, nothing else will do. + static std::unique_ptr MakeBlock(Position pos, + StatementArray statements, + Kind kind = Kind::kBracedScope, + std::shared_ptr symbols = nullptr); const StatementArray& children() const { return fChildren; @@ -47,11 +61,15 @@ class Block final : public Statement { } bool isScope() const { - return fIsScope; + return fBlockKind == Kind::kBracedScope; + } + + Kind blockKind() const { + return fBlockKind; } - void setIsScope(bool isScope) { - fIsScope = isScope; + void setBlockKind(Kind kind) { + fBlockKind = kind; } std::shared_ptr symbolTable() const { @@ -73,11 +91,8 @@ class Block final : public Statement { private: StatementArray fChildren; + Kind fBlockKind; std::shared_ptr fSymbolTable; - // If isScope is false, this is just a group of statements rather than an actual language-level - // block. This allows us to pass around multiple statements as if they were a single unit, with - // no semantic impact. - bool fIsScope; using INHERITED = Statement; }; diff --git a/third_party/skia/src/sksl/ir/SkSLBreakStatement.h b/third_party/skia/src/sksl/ir/SkSLBreakStatement.h index 3fe767d357e9..bd2d064336f9 100644 --- a/third_party/skia/src/sksl/ir/SkSLBreakStatement.h +++ b/third_party/skia/src/sksl/ir/SkSLBreakStatement.h @@ -20,15 +20,15 @@ class BreakStatement final : public Statement { public: inline static constexpr Kind kStatementKind = Kind::kBreak; - BreakStatement(int line) - : INHERITED(line, kStatementKind) {} + BreakStatement(Position pos) + : INHERITED(pos, kStatementKind) {} - static std::unique_ptr Make(int line) { - return std::make_unique(line); + static std::unique_ptr Make(Position pos) { + return std::make_unique(pos); } std::unique_ptr clone() const override { - return std::make_unique(fLine); + return std::make_unique(fPosition); } std::string description() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLChildCall.cpp b/third_party/skia/src/sksl/ir/SkSLChildCall.cpp index 3c4537cd1a7b..066bbbeabed6 100644 --- a/third_party/skia/src/sksl/ir/SkSLChildCall.cpp +++ b/third_party/skia/src/sksl/ir/SkSLChildCall.cpp @@ -20,7 +20,7 @@ bool ChildCall::hasProperty(Property property) const { } std::unique_ptr ChildCall::clone() const { - return std::make_unique(fLine, &this->type(), &this->child(), + return std::make_unique(fPosition, &this->type(), &this->child(), this->arguments().clone()); } @@ -64,12 +64,12 @@ std::string ChildCall::description() const { } std::unique_ptr ChildCall::Make(const Context& context, - int line, + Position pos, const Type* returnType, const Variable& child, ExpressionArray arguments) { SkASSERT(call_signature_is_valid(context, child, arguments)); - return std::make_unique(line, returnType, &child, std::move(arguments)); + return std::make_unique(pos, returnType, &child, std::move(arguments)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLChildCall.h b/third_party/skia/src/sksl/ir/SkSLChildCall.h index 45b2892ff7a1..174b52b81609 100644 --- a/third_party/skia/src/sksl/ir/SkSLChildCall.h +++ b/third_party/skia/src/sksl/ir/SkSLChildCall.h @@ -21,14 +21,14 @@ class ChildCall final : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kChildCall; - ChildCall(int line, const Type* type, const Variable* child, ExpressionArray arguments) - : INHERITED(line, kExpressionKind, type) + ChildCall(Position pos, const Type* type, const Variable* child, ExpressionArray arguments) + : INHERITED(pos, kExpressionKind, type) , fChild(*child) , fArguments(std::move(arguments)) {} // Creates the child call; reports errors via ASSERT. static std::unique_ptr Make(const Context& context, - int line, + Position pos, const Type* returnType, const Variable& child, ExpressionArray arguments); diff --git a/third_party/skia/src/sksl/ir/SkSLCodeStringExpression.h b/third_party/skia/src/sksl/ir/SkSLCodeStringExpression.h index ac2e13b1d165..05066751f3ba 100644 --- a/third_party/skia/src/sksl/ir/SkSLCodeStringExpression.h +++ b/third_party/skia/src/sksl/ir/SkSLCodeStringExpression.h @@ -23,7 +23,7 @@ class CodeStringExpression final : public Expression { inline static constexpr Kind kExpressionKind = Kind::kCodeString; CodeStringExpression(std::string code, const Type* type) - : INHERITED(/*line=*/-1, kExpressionKind, type) + : INHERITED(Position(), kExpressionKind, type) , fCode(std::move(code)) {} bool hasProperty(Property property) const override { diff --git a/third_party/skia/src/sksl/ir/SkSLConstructor.cpp b/third_party/skia/src/sksl/ir/SkSLConstructor.cpp index 1031a727b119..91b2ff16977d 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructor.cpp +++ b/third_party/skia/src/sksl/ir/SkSLConstructor.cpp @@ -23,7 +23,7 @@ namespace SkSL { static std::unique_ptr convert_compound_constructor(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args) { SkASSERT(type.isVector() || type.isMatrix()); @@ -46,9 +46,9 @@ static std::unique_ptr convert_compound_constructor(const Context& c default: swizzleHint = ""; SkDEBUGFAIL("unexpected slicing cast"); break; } - context.fErrors->error(line, "'" + argument->type().displayName() + - "' is not a valid parameter to '" + type.displayName() + - "' constructor" + swizzleHint); + context.fErrors->error(pos, "'" + argument->type().displayName() + + "' is not a valid parameter to '" + type.displayName() + "' constructor" + + swizzleHint); return nullptr; } @@ -58,20 +58,20 @@ static std::unique_ptr convert_compound_constructor(const Context& c // conversion to the proper type. (This cast is a no-op if it's unnecessary; it can fail // if we're casting a literal that exceeds the limits of the type.) std::unique_ptr typecast = ConstructorScalarCast::Convert( - context, line, type.componentType(), std::move(args)); + context, pos, type.componentType(), std::move(args)); if (!typecast) { return nullptr; } // Matrix-from-scalar creates a diagonal matrix; vector-from-scalar creates a splat. return type.isMatrix() - ? ConstructorDiagonalMatrix::Make(context, line, type, std::move(typecast)) - : ConstructorSplat::Make(context, line, type, std::move(typecast)); + ? ConstructorDiagonalMatrix::Make(context, pos, type, std::move(typecast)) + : ConstructorSplat::Make(context, pos, type, std::move(typecast)); } else if (argument->type().isVector()) { // A vector constructor containing a single vector with the same number of columns is a // cast (e.g. float3 -> int3). if (type.isVector() && argument->type().columns() == type.columns()) { - return ConstructorCompoundCast::Make(context, line, type, std::move(argument)); + return ConstructorCompoundCast::Make(context, pos, type, std::move(argument)); } } else if (argument->type().isMatrix()) { // A matrix constructor containing a single matrix can be a resize, typecast, or both. @@ -84,11 +84,11 @@ static std::unique_ptr convert_compound_constructor(const Context& c context, argument->type().columns(), argument->type().rows()); - argument = ConstructorCompoundCast::Make(context, line, typecastType, + argument = ConstructorCompoundCast::Make(context, pos, typecastType, std::move(argument)); // Casting a matrix type into another matrix type is a resize. - return ConstructorMatrixResize::Make(context, line, type, + return ConstructorMatrixResize::Make(context, pos, type, std::move(argument)); } @@ -101,11 +101,11 @@ static std::unique_ptr convert_compound_constructor(const Context& c /*columns=*/4, /*rows=*/1); std::unique_ptr vecCtor = - ConstructorCompound::Make(context, line, vectorType, std::move(args)); + ConstructorCompound::Make(context, pos, vectorType, std::move(args)); // Then, add a typecast to the result expression to ensure the types match. // This will be a no-op if no typecasting is needed. - return ConstructorCompoundCast::Make(context, line, type, std::move(vecCtor)); + return ConstructorCompoundCast::Make(context, pos, type, std::move(vecCtor)); } } } @@ -115,9 +115,8 @@ static std::unique_ptr convert_compound_constructor(const Context& c int actual = 0; for (std::unique_ptr& arg : args) { if (!arg->type().isScalar() && !arg->type().isVector()) { - context.fErrors->error(line, "'" + arg->type().displayName() + - "' is not a valid parameter to '" + type.displayName() + - "' constructor"); + context.fErrors->error(pos, "'" + arg->type().displayName() + + "' is not a valid parameter to '" + type.displayName() + "' constructor"); return nullptr; } @@ -125,12 +124,11 @@ static std::unique_ptr convert_compound_constructor(const Context& c // literal, this will make sure it's the right type of literal. If an expression of matching // type, the expression will be returned as-is. If it's an expression of mismatched type, // this adds a cast. - int ctorLine = arg->fLine; const Type& ctorType = type.componentType().toCompound(context, arg->type().columns(), /*rows=*/1); ExpressionArray ctorArg; ctorArg.push_back(std::move(arg)); - arg = Constructor::Convert(context, ctorLine, ctorType, std::move(ctorArg)); + arg = Constructor::Convert(context, pos, ctorType, std::move(ctorArg)); if (!arg) { return nullptr; } @@ -138,38 +136,39 @@ static std::unique_ptr convert_compound_constructor(const Context& c } if (actual != expected) { - context.fErrors->error(line, "invalid arguments to '" + type.displayName() + + context.fErrors->error(pos, "invalid arguments to '" + type.displayName() + "' constructor (expected " + std::to_string(expected) + " scalars, but found " + std::to_string(actual) + ")"); return nullptr; } - return ConstructorCompound::Make(context, line, type, std::move(args)); + return ConstructorCompound::Make(context, pos, type, std::move(args)); } std::unique_ptr Constructor::Convert(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args) { if (args.size() == 1 && args[0]->type().matches(type) && !type.componentType().isOpaque()) { // Don't generate redundant casts; if the expression is already of the correct type, just // return it as-is. + args[0]->fPosition = pos; return std::move(args[0]); } if (type.isScalar()) { - return ConstructorScalarCast::Convert(context, line, type, std::move(args)); + return ConstructorScalarCast::Convert(context, pos, type, std::move(args)); } if (type.isVector() || type.isMatrix()) { - return convert_compound_constructor(context, line, type, std::move(args)); + return convert_compound_constructor(context, pos, type, std::move(args)); } if (type.isArray() && type.columns() > 0) { - return ConstructorArray::Convert(context, line, type, std::move(args)); + return ConstructorArray::Convert(context, pos, type, std::move(args)); } if (type.isStruct() && type.fields().size() > 0) { - return ConstructorStruct::Convert(context, line, type, std::move(args)); + return ConstructorStruct::Convert(context, pos, type, std::move(args)); } - context.fErrors->error(line, "cannot construct '" + type.displayName() + "'"); + context.fErrors->error(pos, "cannot construct '" + type.displayName() + "'"); return nullptr; } diff --git a/third_party/skia/src/sksl/ir/SkSLConstructor.h b/third_party/skia/src/sksl/ir/SkSLConstructor.h index 57e268c0d72e..3a26e7ad33dd 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructor.h +++ b/third_party/skia/src/sksl/ir/SkSLConstructor.h @@ -18,8 +18,8 @@ namespace SkSL { */ class AnyConstructor : public Expression { public: - AnyConstructor(int line, Kind kind, const Type* type) - : INHERITED(line, kind, type) {} + AnyConstructor(Position pos, Kind kind, const Type* type) + : INHERITED(pos, kind, type) {} virtual SkSpan> argumentSpan() = 0; virtual SkSpan> argumentSpan() const = 0; @@ -81,9 +81,9 @@ class AnyConstructor : public Expression { */ class SingleArgumentConstructor : public AnyConstructor { public: - SingleArgumentConstructor(int line, Kind kind, const Type* type, + SingleArgumentConstructor(Position pos, Kind kind, const Type* type, std::unique_ptr argument) - : INHERITED(line, kind, type) + : INHERITED(pos, kind, type) , fArgument(std::move(argument)) {} std::unique_ptr& argument() { @@ -113,9 +113,10 @@ class SingleArgumentConstructor : public AnyConstructor { */ class MultiArgumentConstructor : public AnyConstructor { public: - MultiArgumentConstructor(int line, Kind kind, const Type* type, ExpressionArray arguments) - : INHERITED(line, kind, type) - , fArguments(std::move(arguments)) {} + MultiArgumentConstructor(Position pos, Kind kind, const Type* type, + ExpressionArray arguments) + : INHERITED(pos, kind, type) + , fArguments(std::move(arguments)) {} ExpressionArray& arguments() { return fArguments; @@ -157,7 +158,7 @@ namespace Constructor { // Constructor expression types; this class chooses the proper one based on context, e.g. // `ConstructorCompound`, `ConstructorScalarCast`, or `ConstructorMatrixResize`. std::unique_ptr Convert(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args); }; diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorArray.cpp b/third_party/skia/src/sksl/ir/SkSLConstructorArray.cpp index 6bad9e862a4c..d8d70d4248a7 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorArray.cpp +++ b/third_party/skia/src/sksl/ir/SkSLConstructorArray.cpp @@ -13,15 +13,15 @@ namespace SkSL { std::unique_ptr ConstructorArray::Convert(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args) { SkASSERTF(type.isArray() && type.columns() > 0, "%s", type.description().c_str()); // ES2 doesn't support first-class array types. if (context.fConfig->strictES2Mode()) { - context.fErrors->error(line, "construction of array type '" + type.displayName() + - "' is not supported"); + context.fErrors->error(pos, "construction of array type '" + type.displayName() + + "' is not supported"); return nullptr; } @@ -35,16 +35,15 @@ std::unique_ptr ConstructorArray::Convert(const Context& context, const Type& exprType = expr.type(); if (exprType.isArray() && exprType.canCoerceTo(type, /*allowNarrowing=*/true)) { - return ConstructorArrayCast::Make(context, line, type, std::move(args.front())); + return ConstructorArrayCast::Make(context, pos, type, std::move(args.front())); } } // Check that the number of constructor arguments matches the array size. if (type.columns() != args.count()) { - context.fErrors->error(line, String::printf("invalid arguments to '%s' constructor " - "(expected %d elements, but found %d)", - type.displayName().c_str(), type.columns(), - args.count())); + context.fErrors->error(pos, String::printf("invalid arguments to '%s' constructor " + "(expected %d elements, but found %d)", type.displayName().c_str(), type.columns(), + args.count())); return nullptr; } @@ -57,11 +56,11 @@ std::unique_ptr ConstructorArray::Convert(const Context& context, } } - return ConstructorArray::Make(context, line, type, std::move(args)); + return ConstructorArray::Make(context, pos, type, std::move(args)); } std::unique_ptr ConstructorArray::Make(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args) { SkASSERT(!context.fConfig->strictES2Mode()); @@ -71,7 +70,7 @@ std::unique_ptr ConstructorArray::Make(const Context& context, return type.componentType().matches(arg->type()); })); - return std::make_unique(line, type, std::move(args)); + return std::make_unique(pos, type, std::move(args)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorArray.h b/third_party/skia/src/sksl/ir/SkSLConstructorArray.h index 4ad2195f9b38..93276f7a5ee4 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorArray.h +++ b/third_party/skia/src/sksl/ir/SkSLConstructorArray.h @@ -19,24 +19,25 @@ class ConstructorArray final : public MultiArgumentConstructor { public: inline static constexpr Kind kExpressionKind = Kind::kConstructorArray; - ConstructorArray(int line, const Type& type, ExpressionArray arguments) - : INHERITED(line, kExpressionKind, &type, std::move(arguments)) {} + ConstructorArray(Position pos, const Type& type, ExpressionArray arguments) + : INHERITED(pos, kExpressionKind, &type, std::move(arguments)) {} // ConstructorArray::Convert will typecheck and create array-constructor expressions. // Reports errors via the ErrorReporter; returns null on error. static std::unique_ptr Convert(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args); // ConstructorArray::Make creates array-constructor expressions; errors reported via SkASSERT. static std::unique_ptr Make(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args); std::unique_ptr clone() const override { - return std::make_unique(fLine, this->type(), this->arguments().clone()); + return std::make_unique(fPosition, this->type(), + this->arguments().clone()); } private: diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.cpp b/third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.cpp index bf96bb0440bd..9f4005f78190 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.cpp +++ b/third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.cpp @@ -25,21 +25,21 @@ static std::unique_ptr cast_constant_array(const Context& context, ExpressionArray typecastArgs; typecastArgs.reserve_back(inputArgs.size()); for (std::unique_ptr& arg : inputArgs) { - int line = arg->fLine; + Position pos = arg->fPosition; if (arg->type().isScalar()) { - typecastArgs.push_back(ConstructorScalarCast::Make(context, line, scalarType, + typecastArgs.push_back(ConstructorScalarCast::Make(context, pos, scalarType, std::move(arg))); } else { - typecastArgs.push_back(ConstructorCompoundCast::Make(context, line, scalarType, + typecastArgs.push_back(ConstructorCompoundCast::Make(context, pos, scalarType, std::move(arg))); } } - return ConstructorArray::Make(context, constCtor->fLine, destType, std::move(typecastArgs)); + return ConstructorArray::Make(context, constCtor->fPosition, destType, std::move(typecastArgs)); } std::unique_ptr ConstructorArrayCast::Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg) { // Only arrays of the same size are allowed. @@ -55,13 +55,13 @@ std::unique_ptr ConstructorArrayCast::Make(const Context& context, // Look up the value of constant variables. This allows constant-expressions like `myArray` to // be replaced with the compile-time constant `int[2](0, 1)`. - arg = ConstantFolder::MakeConstantValueForVariable(std::move(arg)); + arg = ConstantFolder::MakeConstantValueForVariable(pos, std::move(arg)); // We can cast a vector of compile-time constants at compile-time. if (arg->isCompileTimeConstant()) { return cast_constant_array(context, type, std::move(arg)); } - return std::make_unique(line, type, std::move(arg)); + return std::make_unique(pos, type, std::move(arg)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.h b/third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.h index a68e7fbf8f1d..5add1a30684c 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.h +++ b/third_party/skia/src/sksl/ir/SkSLConstructorArrayCast.h @@ -28,11 +28,11 @@ class ConstructorArrayCast final : public SingleArgumentConstructor { public: inline static constexpr Kind kExpressionKind = Kind::kConstructorArrayCast; - ConstructorArrayCast(int line, const Type& type, std::unique_ptr arg) - : INHERITED(line, kExpressionKind, &type, std::move(arg)) {} + ConstructorArrayCast(Position pos, const Type& type, std::unique_ptr arg) + : INHERITED(pos, kExpressionKind, &type, std::move(arg)) {} static std::unique_ptr Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg); @@ -42,7 +42,7 @@ class ConstructorArrayCast final : public SingleArgumentConstructor { } std::unique_ptr clone() const override { - return std::make_unique(fLine, this->type(), argument()->clone()); + return std::make_unique(fPosition, this->type(), argument()->clone()); } private: diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorCompound.cpp b/third_party/skia/src/sksl/ir/SkSLConstructorCompound.cpp index 38f898be6938..bcbf5d2c0f7b 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorCompound.cpp +++ b/third_party/skia/src/sksl/ir/SkSLConstructorCompound.cpp @@ -15,7 +15,7 @@ namespace SkSL { std::unique_ptr ConstructorCompound::Make(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args) { SkASSERT(type.isAllowedInES2(context)); @@ -80,10 +80,10 @@ std::unique_ptr ConstructorCompound::Make(const Context& context, // Replace constant variables with their corresponding values, so `float2(one, two)` can // compile down to `float2(1.0, 2.0)` (the latter is a compile-time constant). for (std::unique_ptr& arg : args) { - arg = ConstantFolder::MakeConstantValueForVariable(std::move(arg)); + arg = ConstantFolder::MakeConstantValueForVariable(pos, std::move(arg)); } - return std::make_unique(line, type, std::move(args)); + return std::make_unique(pos, type, std::move(args)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorCompound.h b/third_party/skia/src/sksl/ir/SkSLConstructorCompound.h index 6fc627288f22..b3c900f3e9f5 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorCompound.h +++ b/third_party/skia/src/sksl/ir/SkSLConstructorCompound.h @@ -28,16 +28,16 @@ class ConstructorCompound final : public MultiArgumentConstructor { public: inline static constexpr Kind kExpressionKind = Kind::kConstructorCompound; - ConstructorCompound(int line, const Type& type, ExpressionArray args) - : INHERITED(line, kExpressionKind, &type, std::move(args)) {} + ConstructorCompound(Position pos, const Type& type, ExpressionArray args) + : INHERITED(pos, kExpressionKind, &type, std::move(args)) {} static std::unique_ptr Make(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args); std::unique_ptr clone() const override { - return std::make_unique(fLine, this->type(), + return std::make_unique(fPosition, this->type(), this->arguments().clone()); } diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.cpp b/third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.cpp index 6617b588761c..76553dc5de7e 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.cpp +++ b/third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.cpp @@ -18,6 +18,7 @@ namespace SkSL { static std::unique_ptr cast_constant_composite(const Context& context, + Position pos, const Type& destType, std::unique_ptr constCtor) { const Type& scalarType = destType.componentType(); @@ -30,9 +31,8 @@ static std::unique_ptr cast_constant_composite(const Context& contex // replace it with a splat of a different type, e.g. `int4(7)`. ConstructorSplat& splat = constCtor->as(); return ConstructorSplat::Make( - context, constCtor->fLine, destType, - ConstructorScalarCast::Make(context, constCtor->fLine, scalarType, - std::move(splat.argument()))); + context, pos, destType, + ConstructorScalarCast::Make(context, pos, scalarType, std::move(splat.argument()))); } if (constCtor->is() && destType.isMatrix()) { @@ -40,8 +40,8 @@ static std::unique_ptr cast_constant_composite(const Context& contex // with a diagonal matrix of a different type, e.g. `half3x3(2)`. ConstructorDiagonalMatrix& matrixCtor = constCtor->as(); return ConstructorDiagonalMatrix::Make( - context, constCtor->fLine, destType, - ConstructorScalarCast::Make(context, constCtor->fLine, scalarType, + context, pos, destType, + ConstructorScalarCast::Make(context, pos, scalarType, std::move(matrixCtor.argument()))); } @@ -53,20 +53,19 @@ static std::unique_ptr cast_constant_composite(const Context& contex typecastArgs.reserve_back(numSlots); for (size_t index = 0; index < numSlots; ++index) { std::optional slotVal = constCtor->getConstantValue(index); - if (scalarType.checkForOutOfRangeLiteral(context, *slotVal, constCtor->fLine)) { + if (scalarType.checkForOutOfRangeLiteral(context, *slotVal, constCtor->fPosition)) { // We've reported an error because the literal is out of range for this type. Zero out // the value to avoid a cascade of errors. *slotVal = 0.0; } - typecastArgs.push_back(Literal::Make(constCtor->fLine, *slotVal, &scalarType)); + typecastArgs.push_back(Literal::Make(pos, *slotVal, &scalarType)); } - return ConstructorCompound::Make(context, constCtor->fLine, destType, - std::move(typecastArgs)); + return ConstructorCompound::Make(context, pos, destType, std::move(typecastArgs)); } std::unique_ptr ConstructorCompoundCast::Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg) { // Only vectors or matrices of the same dimensions are allowed. @@ -83,13 +82,13 @@ std::unique_ptr ConstructorCompoundCast::Make(const Context& context } // Look up the value of constant variables. This allows constant-expressions like // `int4(colorGreen)` to be replaced with the compile-time constant `int4(0, 1, 0, 1)`. - arg = ConstantFolder::MakeConstantValueForVariable(std::move(arg)); + arg = ConstantFolder::MakeConstantValueForVariable(pos, std::move(arg)); // We can cast a vector of compile-time constants at compile-time. if (arg->isCompileTimeConstant()) { - return cast_constant_composite(context, type, std::move(arg)); + return cast_constant_composite(context, pos, type, std::move(arg)); } - return std::make_unique(line, type, std::move(arg)); + return std::make_unique(pos, type, std::move(arg)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.h b/third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.h index e4597bd3fb8f..2e0807f6ffb3 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.h +++ b/third_party/skia/src/sksl/ir/SkSLConstructorCompoundCast.h @@ -26,11 +26,11 @@ class ConstructorCompoundCast final : public SingleArgumentConstructor { public: inline static constexpr Kind kExpressionKind = Kind::kConstructorCompoundCast; - ConstructorCompoundCast(int line, const Type& type, std::unique_ptr arg) - : INHERITED(line, kExpressionKind, &type, std::move(arg)) {} + ConstructorCompoundCast(Position pos, const Type& type, std::unique_ptr arg) + : INHERITED(pos, kExpressionKind, &type, std::move(arg)) {} static std::unique_ptr Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg); @@ -40,7 +40,8 @@ class ConstructorCompoundCast final : public SingleArgumentConstructor { } std::unique_ptr clone() const override { - return std::make_unique(fLine, this->type(), argument()->clone()); + return std::make_unique(fPosition, this->type(), + argument()->clone()); } private: diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.cpp b/third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.cpp index 64f38720e6b5..e156594e0362 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.cpp +++ b/third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.cpp @@ -14,7 +14,7 @@ namespace SkSL { std::unique_ptr ConstructorDiagonalMatrix::Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg) { SkASSERT(type.isMatrix()); @@ -24,9 +24,9 @@ std::unique_ptr ConstructorDiagonalMatrix::Make(const Context& conte // Look up the value of constant variables. This allows constant-expressions like `mat4(five)` // to be replaced with `mat4(5.0)`. - arg = ConstantFolder::MakeConstantValueForVariable(std::move(arg)); + arg = ConstantFolder::MakeConstantValueForVariable(pos, std::move(arg)); - return std::make_unique(line, type, std::move(arg)); + return std::make_unique(pos, type, std::move(arg)); } std::optional ConstructorDiagonalMatrix::getConstantValue(int n) const { diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.h b/third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.h index f6d540173061..b3817f5c5105 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.h +++ b/third_party/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix.h @@ -27,16 +27,16 @@ class ConstructorDiagonalMatrix final : public SingleArgumentConstructor { public: inline static constexpr Kind kExpressionKind = Kind::kConstructorDiagonalMatrix; - ConstructorDiagonalMatrix(int line, const Type& type, std::unique_ptr arg) - : INHERITED(line, kExpressionKind, &type, std::move(arg)) {} + ConstructorDiagonalMatrix(Position pos, const Type& type, std::unique_ptr arg) + : INHERITED(pos, kExpressionKind, &type, std::move(arg)) {} static std::unique_ptr Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg); std::unique_ptr clone() const override { - return std::make_unique(fLine, this->type(), + return std::make_unique(fPosition, this->type(), argument()->clone()); } diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.cpp b/third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.cpp index 38c2bfa032ed..96b08e3d29d1 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.cpp +++ b/third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.cpp @@ -13,7 +13,7 @@ namespace SkSL { std::unique_ptr ConstructorMatrixResize::Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg) { SkASSERT(type.isMatrix()); @@ -25,7 +25,7 @@ std::unique_ptr ConstructorMatrixResize::Make(const Context& context return arg; } - return std::make_unique(line, type, std::move(arg)); + return std::make_unique(pos, type, std::move(arg)); } std::optional ConstructorMatrixResize::getConstantValue(int n) const { diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.h b/third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.h index b2cb3511117a..dd6218462823 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.h +++ b/third_party/skia/src/sksl/ir/SkSLConstructorMatrixResize.h @@ -27,16 +27,16 @@ class ConstructorMatrixResize final : public SingleArgumentConstructor { public: inline static constexpr Kind kExpressionKind = Kind::kConstructorMatrixResize; - ConstructorMatrixResize(int line, const Type& type, std::unique_ptr arg) - : INHERITED(line, kExpressionKind, &type, std::move(arg)) {} + ConstructorMatrixResize(Position pos, const Type& type, std::unique_ptr arg) + : INHERITED(pos, kExpressionKind, &type, std::move(arg)) {} static std::unique_ptr Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg); std::unique_ptr clone() const override { - return std::make_unique(fLine, this->type(), + return std::make_unique(fPosition, this->type(), argument()->clone()); } diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.cpp b/third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.cpp index 8cb00e958485..610796dbe400 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.cpp +++ b/third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.cpp @@ -14,7 +14,7 @@ namespace SkSL { std::unique_ptr ConstructorScalarCast::Convert(const Context& context, - int line, + Position pos, const Type& rawType, ExpressionArray args) { // As you might expect, scalar-cast constructors should only be created with scalar types. @@ -22,9 +22,9 @@ std::unique_ptr ConstructorScalarCast::Convert(const Context& contex SkASSERT(type.isScalar()); if (args.size() != 1) { - context.fErrors->error(line, "invalid arguments to '" + type.displayName() + - "' constructor, (expected exactly 1 argument, but found " + - std::to_string(args.size()) + ")"); + context.fErrors->error(pos, "invalid arguments to '" + type.displayName() + + "' constructor, (expected exactly 1 argument, but found " + + std::to_string(args.size()) + ")"); return nullptr; } @@ -41,7 +41,7 @@ std::unique_ptr ConstructorScalarCast::Convert(const Context& contex } } - context.fErrors->error(line, + context.fErrors->error(pos, "'" + argType.displayName() + "' is not a valid parameter to '" + type.displayName() + "' constructor" + swizzleHint); return nullptr; @@ -50,11 +50,11 @@ std::unique_ptr ConstructorScalarCast::Convert(const Context& contex return nullptr; } - return ConstructorScalarCast::Make(context, line, type, std::move(args[0])); + return ConstructorScalarCast::Make(context, pos, type, std::move(args[0])); } std::unique_ptr ConstructorScalarCast::Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg) { SkASSERT(type.isScalar()); @@ -67,7 +67,7 @@ std::unique_ptr ConstructorScalarCast::Make(const Context& context, } // Look up the value of constant variables. This allows constant-expressions like `int(zero)` to // be replaced with a literal zero. - arg = ConstantFolder::MakeConstantValueForVariable(std::move(arg)); + arg = ConstantFolder::MakeConstantValueForVariable(pos, std::move(arg)); // We can cast scalar literals at compile-time when possible. (If the resulting literal would be // out of range for its type, we report an error and return zero to minimize error cascading. @@ -75,12 +75,12 @@ std::unique_ptr ConstructorScalarCast::Make(const Context& context, // such, it's not safe to return null or assert.) if (arg->is()) { double value = arg->as().value(); - if (type.checkForOutOfRangeLiteral(context, value, arg->fLine)) { + if (type.checkForOutOfRangeLiteral(context, value, arg->fPosition)) { value = 0.0; } - return Literal::Make(line, value, &type); + return Literal::Make(pos, value, &type); } - return std::make_unique(line, type, std::move(arg)); + return std::make_unique(pos, type, std::move(arg)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.h b/third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.h index f272485f74e9..c8d3d22a3977 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.h +++ b/third_party/skia/src/sksl/ir/SkSLConstructorScalarCast.h @@ -26,25 +26,26 @@ class ConstructorScalarCast final : public SingleArgumentConstructor { public: inline static constexpr Kind kExpressionKind = Kind::kConstructorScalarCast; - ConstructorScalarCast(int line, const Type& type, std::unique_ptr arg) - : INHERITED(line, kExpressionKind, &type, std::move(arg)) {} + ConstructorScalarCast(Position pos, const Type& type, std::unique_ptr arg) + : INHERITED(pos, kExpressionKind, &type, std::move(arg)) {} // ConstructorScalarCast::Convert will typecheck and create scalar-constructor expressions. // Reports errors via the ErrorReporter; returns null on error. static std::unique_ptr Convert(const Context& context, - int line, + Position pos, const Type& rawType, ExpressionArray args); // ConstructorScalarCast::Make casts a scalar expression. Casts that can be evaluated at // compile-time will do so (e.g. `int(4.1)` --> `Literal(int 4)`). Errors reported via SkASSERT. static std::unique_ptr Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg); std::unique_ptr clone() const override { - return std::make_unique(fLine, this->type(), argument()->clone()); + return std::make_unique(fPosition, this->type(), + argument()->clone()); } bool isCompileTimeConstant() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorSplat.cpp b/third_party/skia/src/sksl/ir/SkSLConstructorSplat.cpp index 996e0104e4d9..22495bfb8904 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorSplat.cpp +++ b/third_party/skia/src/sksl/ir/SkSLConstructorSplat.cpp @@ -12,7 +12,7 @@ namespace SkSL { std::unique_ptr ConstructorSplat::Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg) { SkASSERT(type.isAllowedInES2(context)); @@ -23,15 +23,16 @@ std::unique_ptr ConstructorSplat::Make(const Context& context, // A "splat" to a scalar type is a no-op and can be eliminated. if (type.isScalar()) { + arg->fPosition = pos; return arg; } // Replace constant variables with their corresponding values, so `float3(five)` can compile // down to `float3(5.0)` (the latter is a compile-time constant). - arg = ConstantFolder::MakeConstantValueForVariable(std::move(arg)); + arg = ConstantFolder::MakeConstantValueForVariable(pos, std::move(arg)); SkASSERT(type.isVector()); - return std::make_unique(line, type, std::move(arg)); + return std::make_unique(pos, type, std::move(arg)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorSplat.h b/third_party/skia/src/sksl/ir/SkSLConstructorSplat.h index eb19bb54eccc..bcab96f15b89 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorSplat.h +++ b/third_party/skia/src/sksl/ir/SkSLConstructorSplat.h @@ -25,17 +25,17 @@ class ConstructorSplat final : public SingleArgumentConstructor { public: inline static constexpr Kind kExpressionKind = Kind::kConstructorSplat; - ConstructorSplat(int line, const Type& type, std::unique_ptr arg) - : INHERITED(line, kExpressionKind, &type, std::move(arg)) {} + ConstructorSplat(Position pos, const Type& type, std::unique_ptr arg) + : INHERITED(pos, kExpressionKind, &type, std::move(arg)) {} // The input argument must be scalar. A "splat" to a scalar type will be optimized into a no-op. static std::unique_ptr Make(const Context& context, - int line, + Position pos, const Type& type, std::unique_ptr arg); std::unique_ptr clone() const override { - return std::make_unique(fLine, this->type(), argument()->clone()); + return std::make_unique(fPosition, this->type(), argument()->clone()); } bool supportsConstantValues() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorStruct.cpp b/third_party/skia/src/sksl/ir/SkSLConstructorStruct.cpp index fd69aaeb42ac..2a4fd82f23ef 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorStruct.cpp +++ b/third_party/skia/src/sksl/ir/SkSLConstructorStruct.cpp @@ -13,14 +13,14 @@ namespace SkSL { std::unique_ptr ConstructorStruct::Convert(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args) { SkASSERTF(type.isStruct() && type.fields().size() > 0, "%s", type.description().c_str()); // Check that the number of constructor arguments matches the array size. if (type.fields().size() != args.size()) { - context.fErrors->error(line, + context.fErrors->error(pos, String::printf("invalid arguments to '%s' constructor " "(expected %zu elements, but found %zu)", type.displayName().c_str(), type.fields().size(), @@ -39,7 +39,7 @@ std::unique_ptr ConstructorStruct::Convert(const Context& context, } } - return ConstructorStruct::Make(context, line, type, std::move(args)); + return ConstructorStruct::Make(context, pos, type, std::move(args)); } [[maybe_unused]] static bool arguments_match_field_types(const ExpressionArray& args, @@ -58,12 +58,12 @@ std::unique_ptr ConstructorStruct::Convert(const Context& context, } std::unique_ptr ConstructorStruct::Make(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args) { SkASSERT(type.isAllowedInES2(context)); SkASSERT(arguments_match_field_types(args, type)); - return std::make_unique(line, type, std::move(args)); + return std::make_unique(pos, type, std::move(args)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLConstructorStruct.h b/third_party/skia/src/sksl/ir/SkSLConstructorStruct.h index e8163c65a850..9a8c56c85ae5 100644 --- a/third_party/skia/src/sksl/ir/SkSLConstructorStruct.h +++ b/third_party/skia/src/sksl/ir/SkSLConstructorStruct.h @@ -19,24 +19,25 @@ class ConstructorStruct final : public MultiArgumentConstructor { public: inline static constexpr Kind kExpressionKind = Kind::kConstructorStruct; - ConstructorStruct(int line, const Type& type, ExpressionArray arguments) - : INHERITED(line, kExpressionKind, &type, std::move(arguments)) {} + ConstructorStruct(Position pos, const Type& type, ExpressionArray arguments) + : INHERITED(pos, kExpressionKind, &type, std::move(arguments)) {} // ConstructorStruct::Convert will typecheck and create struct-constructor expressions. // Reports errors via the ErrorReporter; returns null on error. static std::unique_ptr Convert(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args); // ConstructorStruct::Make creates struct-constructor expressions; errors reported via SkASSERT. static std::unique_ptr Make(const Context& context, - int line, + Position pos, const Type& type, ExpressionArray args); std::unique_ptr clone() const override { - return std::make_unique(fLine, this->type(), this->arguments().clone()); + return std::make_unique(fPosition, this->type(), + this->arguments().clone()); } private: diff --git a/third_party/skia/src/sksl/ir/SkSLContinueStatement.h b/third_party/skia/src/sksl/ir/SkSLContinueStatement.h index ef761cbb77aa..55b96629fa5c 100644 --- a/third_party/skia/src/sksl/ir/SkSLContinueStatement.h +++ b/third_party/skia/src/sksl/ir/SkSLContinueStatement.h @@ -20,15 +20,15 @@ class ContinueStatement final : public Statement { public: inline static constexpr Kind kStatementKind = Kind::kContinue; - ContinueStatement(int line) - : INHERITED(line, kStatementKind) {} + ContinueStatement(Position pos) + : INHERITED(pos, kStatementKind) {} - static std::unique_ptr Make(int line) { - return std::make_unique(line); + static std::unique_ptr Make(Position pos) { + return std::make_unique(pos); } std::unique_ptr clone() const override { - return std::make_unique(fLine); + return std::make_unique(fPosition); } std::string description() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLDiscardStatement.h b/third_party/skia/src/sksl/ir/SkSLDiscardStatement.h index 6c4f975a0465..f73b084d6614 100644 --- a/third_party/skia/src/sksl/ir/SkSLDiscardStatement.h +++ b/third_party/skia/src/sksl/ir/SkSLDiscardStatement.h @@ -20,15 +20,15 @@ class DiscardStatement final : public Statement { public: inline static constexpr Kind kStatementKind = Kind::kDiscard; - DiscardStatement(int line) - : INHERITED(line, kStatementKind) {} + DiscardStatement(Position pos) + : INHERITED(pos, kStatementKind) {} - static std::unique_ptr Make(int line) { - return std::make_unique(line); + static std::unique_ptr Make(Position pos) { + return std::make_unique(pos); } std::unique_ptr clone() const override { - return std::make_unique(fLine); + return std::make_unique(fPosition); } std::string description() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLDoStatement.cpp b/third_party/skia/src/sksl/ir/SkSLDoStatement.cpp index 4eda86340a70..1984fe3edd89 100644 --- a/third_party/skia/src/sksl/ir/SkSLDoStatement.cpp +++ b/third_party/skia/src/sksl/ir/SkSLDoStatement.cpp @@ -15,10 +15,11 @@ namespace SkSL { std::unique_ptr DoStatement::Convert(const Context& context, + Position pos, std::unique_ptr stmt, std::unique_ptr test) { if (context.fConfig->strictES2Mode()) { - context.fErrors->error(stmt->fLine, "do-while loops are not supported"); + context.fErrors->error(pos, "do-while loops are not supported"); return nullptr; } test = context.fTypes.fBool->coerceExpression(std::move(test), context); @@ -28,20 +29,21 @@ std::unique_ptr DoStatement::Convert(const Context& context, if (Analysis::DetectVarDeclarationWithoutScope(*stmt, context.fErrors)) { return nullptr; } - return DoStatement::Make(context, std::move(stmt), std::move(test)); + return DoStatement::Make(context, pos, std::move(stmt), std::move(test)); } std::unique_ptr DoStatement::Make(const Context& context, + Position pos, std::unique_ptr stmt, std::unique_ptr test) { SkASSERT(!context.fConfig->strictES2Mode()); SkASSERT(test->type().matches(*context.fTypes.fBool)); SkASSERT(!Analysis::DetectVarDeclarationWithoutScope(*stmt)); - return std::make_unique(stmt->fLine, std::move(stmt), std::move(test)); + return std::make_unique(pos, std::move(stmt), std::move(test)); } std::unique_ptr DoStatement::clone() const { - return std::make_unique(fLine, this->statement()->clone(), + return std::make_unique(fPosition, this->statement()->clone(), this->test()->clone()); } diff --git a/third_party/skia/src/sksl/ir/SkSLDoStatement.h b/third_party/skia/src/sksl/ir/SkSLDoStatement.h index 35f407902e4a..99f3e7e725a2 100644 --- a/third_party/skia/src/sksl/ir/SkSLDoStatement.h +++ b/third_party/skia/src/sksl/ir/SkSLDoStatement.h @@ -20,18 +20,21 @@ class DoStatement final : public Statement { public: inline static constexpr Kind kStatementKind = Kind::kDo; - DoStatement(int line, std::unique_ptr statement, std::unique_ptr test) - : INHERITED(line, kStatementKind) + DoStatement(Position pos, std::unique_ptr statement, + std::unique_ptr test) + : INHERITED(pos, kStatementKind) , fStatement(std::move(statement)) , fTest(std::move(test)) {} // Creates an SkSL do-while loop; uses the ErrorReporter to report errors. static std::unique_ptr Convert(const Context& context, + Position pos, std::unique_ptr stmt, std::unique_ptr test); // Creates an SkSL do-while loop; reports errors via ASSERT. static std::unique_ptr Make(const Context& context, + Position pos, std::unique_ptr stmt, std::unique_ptr test); diff --git a/third_party/skia/src/sksl/ir/SkSLExpression.cpp b/third_party/skia/src/sksl/ir/SkSLExpression.cpp index e9930f697443..d88549004b37 100644 --- a/third_party/skia/src/sksl/ir/SkSLExpression.cpp +++ b/third_party/skia/src/sksl/ir/SkSLExpression.cpp @@ -15,15 +15,16 @@ bool Expression::isIncomplete(const Context& context) const { switch (this->kind()) { case Kind::kFunctionReference: case Kind::kExternalFunctionReference: - context.fErrors->error(fLine, "expected '(' to begin function call"); + context.fErrors->error(fPosition.after(), "expected '(' to begin function call"); return true; case Kind::kMethodReference: - context.fErrors->error(fLine, "expected '(' to begin method call"); + context.fErrors->error(fPosition.after(), "expected '(' to begin method call"); return true; case Kind::kTypeReference: - context.fErrors->error(fLine, "expected '(' to begin constructor invocation"); + context.fErrors->error(fPosition.after(), + "expected '(' to begin constructor invocation"); return true; default: diff --git a/third_party/skia/src/sksl/ir/SkSLExpression.h b/third_party/skia/src/sksl/ir/SkSLExpression.h index 2d68c32d97c1..e3f460d7e261 100644 --- a/third_party/skia/src/sksl/ir/SkSLExpression.h +++ b/third_party/skia/src/sksl/ir/SkSLExpression.h @@ -66,8 +66,8 @@ class Expression : public IRNode { kContainsRTAdjust }; - Expression(int line, Kind kind, const Type* type) - : INHERITED(line, (int) kind) + Expression(Position pos, Kind kind, const Type* type) + : INHERITED(pos, (int) kind) , fType(type) { SkASSERT(kind >= Kind::kFirst && kind <= Kind::kLast); } @@ -206,6 +206,15 @@ class Expression : public IRNode { virtual std::unique_ptr clone() const = 0; + /** + * Returns a clone with a modified position. + */ + std::unique_ptr clone(Position pos) { + std::unique_ptr result = this->clone(); + result->fPosition = pos; + return result; + } + private: const Type* fType; diff --git a/third_party/skia/src/sksl/ir/SkSLExpressionStatement.h b/third_party/skia/src/sksl/ir/SkSLExpressionStatement.h index 2cb78bd4d1a2..f5afcd7c77a1 100644 --- a/third_party/skia/src/sksl/ir/SkSLExpressionStatement.h +++ b/third_party/skia/src/sksl/ir/SkSLExpressionStatement.h @@ -21,7 +21,7 @@ class ExpressionStatement final : public Statement { inline static constexpr Kind kStatementKind = Kind::kExpression; ExpressionStatement(std::unique_ptr expression) - : INHERITED(expression->fLine, kStatementKind) + : INHERITED(expression->fPosition, kStatementKind) , fExpression(std::move(expression)) {} // Creates an SkSL expression-statement. Note that there is never any type-coercion and no error diff --git a/third_party/skia/src/sksl/ir/SkSLExtension.h b/third_party/skia/src/sksl/ir/SkSLExtension.h index 7a7e03d9b864..8a01e139ec69 100644 --- a/third_party/skia/src/sksl/ir/SkSLExtension.h +++ b/third_party/skia/src/sksl/ir/SkSLExtension.h @@ -19,8 +19,8 @@ class Extension final : public ProgramElement { public: inline static constexpr Kind kProgramElementKind = Kind::kExtension; - Extension(int line, std::string_view name) - : INHERITED(line, kProgramElementKind) + Extension(Position pos, std::string_view name) + : INHERITED(pos, kProgramElementKind) , fName(name) {} std::string_view name() const { @@ -28,7 +28,7 @@ class Extension final : public ProgramElement { } std::unique_ptr clone() const override { - return std::unique_ptr(new Extension(fLine, this->name())); + return std::unique_ptr(new Extension(fPosition, this->name())); } std::string description() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLExternalFunction.h b/third_party/skia/src/sksl/ir/SkSLExternalFunction.h index ead71a2f7c9d..293b72a2e5cb 100644 --- a/third_party/skia/src/sksl/ir/SkSLExternalFunction.h +++ b/third_party/skia/src/sksl/ir/SkSLExternalFunction.h @@ -20,7 +20,7 @@ class ExternalFunction : public Symbol { inline static constexpr Kind kSymbolKind = Kind::kExternal; ExternalFunction(const char* name, const Type& type) - : INHERITED(-1, kSymbolKind, name, &type) {} + : INHERITED(Position(), kSymbolKind, name, &type) {} virtual int callParameterCount() const = 0; diff --git a/third_party/skia/src/sksl/ir/SkSLExternalFunctionCall.h b/third_party/skia/src/sksl/ir/SkSLExternalFunctionCall.h index 51b4ca5490c0..a760c46d596d 100644 --- a/third_party/skia/src/sksl/ir/SkSLExternalFunctionCall.h +++ b/third_party/skia/src/sksl/ir/SkSLExternalFunctionCall.h @@ -22,8 +22,8 @@ class ExternalFunctionCall final : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kExternalFunctionCall; - ExternalFunctionCall(int line, const ExternalFunction* function, ExpressionArray arguments) - : INHERITED(line, kExpressionKind, &function->type()) + ExternalFunctionCall(Position pos, const ExternalFunction* function, ExpressionArray arguments) + : INHERITED(pos, kExpressionKind, &function->type()) , fFunction(*function) , fArguments(std::move(arguments)) {} @@ -52,7 +52,7 @@ class ExternalFunctionCall final : public Expression { } std::unique_ptr clone() const override { - return std::make_unique(fLine, &this->function(), + return std::make_unique(fPosition, &this->function(), this->arguments().clone()); } diff --git a/third_party/skia/src/sksl/ir/SkSLExternalFunctionReference.h b/third_party/skia/src/sksl/ir/SkSLExternalFunctionReference.h index b55a99482eb2..69048202b3f7 100644 --- a/third_party/skia/src/sksl/ir/SkSLExternalFunctionReference.h +++ b/third_party/skia/src/sksl/ir/SkSLExternalFunctionReference.h @@ -22,8 +22,8 @@ class ExternalFunctionReference final : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kExternalFunctionReference; - ExternalFunctionReference(int line, const ExternalFunction* ef) - : INHERITED(line, kExpressionKind, &ef->type()) + ExternalFunctionReference(Position pos, const ExternalFunction* ef) + : INHERITED(pos, kExpressionKind, &ef->type()) , fFunction(*ef) {} const ExternalFunction& function() const { @@ -39,7 +39,7 @@ class ExternalFunctionReference final : public Expression { } std::unique_ptr clone() const override { - return std::make_unique(fLine, &this->function()); + return std::make_unique(fPosition, &this->function()); } private: diff --git a/third_party/skia/src/sksl/ir/SkSLField.h b/third_party/skia/src/sksl/ir/SkSLField.h index a4825defba55..1c7890a12772 100644 --- a/third_party/skia/src/sksl/ir/SkSLField.h +++ b/third_party/skia/src/sksl/ir/SkSLField.h @@ -24,8 +24,8 @@ class Field final : public Symbol { public: inline static constexpr Kind kSymbolKind = Kind::kField; - Field(int line, const Variable* owner, int fieldIndex) - : INHERITED(line, kSymbolKind, owner->type().fields()[fieldIndex].fName, + Field(Position pos, const Variable* owner, int fieldIndex) + : INHERITED(pos, kSymbolKind, owner->type().fields()[fieldIndex].fName, owner->type().fields()[fieldIndex].fType) , fOwner(owner) , fFieldIndex(fieldIndex) {} diff --git a/third_party/skia/src/sksl/ir/SkSLFieldAccess.cpp b/third_party/skia/src/sksl/ir/SkSLFieldAccess.cpp index cecfb98ff65e..701e82b6f407 100644 --- a/third_party/skia/src/sksl/ir/SkSLFieldAccess.cpp +++ b/third_party/skia/src/sksl/ir/SkSLFieldAccess.cpp @@ -15,6 +15,7 @@ namespace SkSL { std::unique_ptr FieldAccess::Convert(const Context& context, + Position pos, SymbolTable& symbolTable, std::unique_ptr base, std::string_view field) { @@ -29,46 +30,47 @@ std::unique_ptr FieldAccess::Convert(const Context& context, std::vector f = { &result->as()}; return std::make_unique( - context, base->fLine, std::move(base), f); + context, pos, std::move(base), f); } case Symbol::Kind::kUnresolvedFunction: { const UnresolvedFunction& f = result->as(); return std::make_unique( - context, base->fLine, std::move(base), f.functions()); + context, pos, std::move(base), f.functions()); } default: break; } } - context.fErrors->error(base->fLine, "type '" + baseType.displayName() + "' has no method " - "named '" + std::string(field) + "'"); + context.fErrors->error(pos, "type '" + baseType.displayName() + "' has no method named '" + + std::string(field) + "'"); return nullptr; } if (baseType.isStruct()) { const std::vector& fields = baseType.fields(); for (size_t i = 0; i < fields.size(); i++) { if (fields[i].fName == field) { - return FieldAccess::Make(context, std::move(base), (int) i); + return FieldAccess::Make(context, pos, std::move(base), (int) i); } } } if (baseType.matches(*context.fTypes.fSkCaps)) { - return Setting::Convert(context, base->fLine, field); + return Setting::Convert(context, pos, field); } - context.fErrors->error(base->fLine, "type '" + baseType.displayName() + "' does not have a " - "field named '" + std::string(field) + "'"); + context.fErrors->error(pos, "type '" + baseType.displayName() + + "' does not have a field named '" + std::string(field) + "'"); return nullptr; } std::unique_ptr FieldAccess::Make(const Context& context, + Position pos, std::unique_ptr base, int fieldIndex, OwnerKind ownerKind) { SkASSERT(base->type().isStruct()); SkASSERT(fieldIndex >= 0); SkASSERT(fieldIndex < (int) base->type().fields().size()); - return std::make_unique(std::move(base), fieldIndex, ownerKind); + return std::make_unique(pos, std::move(base), fieldIndex, ownerKind); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLFieldAccess.h b/third_party/skia/src/sksl/ir/SkSLFieldAccess.h index ebff6cd12622..7b5d238c8dcf 100644 --- a/third_party/skia/src/sksl/ir/SkSLFieldAccess.h +++ b/third_party/skia/src/sksl/ir/SkSLFieldAccess.h @@ -29,21 +29,23 @@ class FieldAccess final : public Expression { inline static constexpr Kind kExpressionKind = Kind::kFieldAccess; - FieldAccess(std::unique_ptr base, int fieldIndex, + FieldAccess(Position pos, std::unique_ptr base, int fieldIndex, OwnerKind ownerKind = OwnerKind::kDefault) - : INHERITED(base->fLine, kExpressionKind, base->type().fields()[fieldIndex].fType) + : INHERITED(pos, kExpressionKind, base->type().fields()[fieldIndex].fType) , fFieldIndex(fieldIndex) , fOwnerKind(ownerKind) , fBase(std::move(base)) {} // Returns a field-access expression; reports errors via the ErrorReporter. static std::unique_ptr Convert(const Context& context, + Position pos, SymbolTable& symbolTable, std::unique_ptr base, std::string_view field); // Returns a field-access expression; reports errors via ASSERT. static std::unique_ptr Make(const Context& context, + Position pos, std::unique_ptr base, int fieldIndex, OwnerKind ownerKind = OwnerKind::kDefault); @@ -69,7 +71,8 @@ class FieldAccess final : public Expression { } std::unique_ptr clone() const override { - return std::unique_ptr(new FieldAccess(this->base()->clone(), + return std::unique_ptr(new FieldAccess(fPosition, + this->base()->clone(), this->fieldIndex(), this->ownerKind())); } diff --git a/third_party/skia/src/sksl/ir/SkSLForStatement.cpp b/third_party/skia/src/sksl/ir/SkSLForStatement.cpp index 717a5bf20d39..066aa08acba4 100644 --- a/third_party/skia/src/sksl/ir/SkSLForStatement.cpp +++ b/third_party/skia/src/sksl/ir/SkSLForStatement.cpp @@ -49,7 +49,7 @@ std::unique_ptr ForStatement::clone() const { } return std::make_unique( - fLine, + fPosition, this->initializer() ? this->initializer()->clone() : nullptr, this->test() ? this->test()->clone() : nullptr, this->next() ? this->next()->clone() : nullptr, @@ -77,7 +77,7 @@ std::string ForStatement::description() const { return result; } -std::unique_ptr ForStatement::Convert(const Context& context, int line, +std::unique_ptr ForStatement::Convert(const Context& context, Position pos, std::unique_ptr initializer, std::unique_ptr test, std::unique_ptr next, @@ -88,7 +88,7 @@ std::unique_ptr ForStatement::Convert(const Context& context, int lin !isSimpleInitializer && is_vardecl_block_initializer(initializer.get()); if (!isSimpleInitializer && !isVardeclBlockInitializer) { - context.fErrors->error(initializer->fLine, "invalid for loop initializer"); + context.fErrors->error(initializer->fPosition, "invalid for loop initializer"); return nullptr; } @@ -108,7 +108,7 @@ std::unique_ptr ForStatement::Convert(const Context& context, int lin std::unique_ptr unrollInfo; if (context.fConfig->strictES2Mode()) { // In strict-ES2, loops must be unrollable or it's an error. - unrollInfo = Analysis::GetLoopUnrollInfo(line, initializer.get(), test.get(), + unrollInfo = Analysis::GetLoopUnrollInfo(pos, initializer.get(), test.get(), next.get(), statement.get(), context.fErrors); if (!unrollInfo) { return nullptr; @@ -116,7 +116,7 @@ std::unique_ptr ForStatement::Convert(const Context& context, int lin } else { // In ES3, loops don't have to be unrollable, but we can use the unroll information for // optimization purposes. - unrollInfo = Analysis::GetLoopUnrollInfo(line, initializer.get(), test.get(), + unrollInfo = Analysis::GetLoopUnrollInfo(pos, initializer.get(), test.get(), next.get(), statement.get(), /*errors=*/nullptr); } @@ -133,30 +133,31 @@ std::unique_ptr ForStatement::Convert(const Context& context, int lin // unilaterally for all for-statements, because the resulting for loop isn't ES2-compliant.) StatementArray scope; scope.push_back(std::move(initializer)); - scope.push_back(ForStatement::Make(context, line, /*initializer=*/nullptr, + scope.push_back(ForStatement::Make(context, pos, /*initializer=*/nullptr, std::move(test), std::move(next), std::move(statement), std::move(unrollInfo), /*symbolTable=*/nullptr)); - return Block::Make(line, std::move(scope), std::move(symbolTable)); + return Block::Make(pos, std::move(scope), Block::Kind::kBracedScope, + std::move(symbolTable)); } - return ForStatement::Make(context, line, std::move(initializer), std::move(test), + return ForStatement::Make(context, pos, std::move(initializer), std::move(test), std::move(next), std::move(statement), std::move(unrollInfo), std::move(symbolTable)); } -std::unique_ptr ForStatement::ConvertWhile(const Context& context, int line, +std::unique_ptr ForStatement::ConvertWhile(const Context& context, Position pos, std::unique_ptr test, std::unique_ptr statement, std::shared_ptr symbolTable) { if (context.fConfig->strictES2Mode()) { - context.fErrors->error(line, "while loops are not supported"); + context.fErrors->error(pos, "while loops are not supported"); return nullptr; } - return ForStatement::Convert(context, line, /*initializer=*/nullptr, std::move(test), + return ForStatement::Convert(context, pos, /*initializer=*/nullptr, std::move(test), /*next=*/nullptr, std::move(statement), std::move(symbolTable)); } -std::unique_ptr ForStatement::Make(const Context& context, int line, +std::unique_ptr ForStatement::Make(const Context& context, Position pos, std::unique_ptr initializer, std::unique_ptr test, std::unique_ptr next, @@ -179,7 +180,7 @@ std::unique_ptr ForStatement::Make(const Context& context, int line, } } - return std::make_unique(line, std::move(initializer), std::move(test), + return std::make_unique(pos, std::move(initializer), std::move(test), std::move(next), std::move(statement), std::move(unrollInfo), std::move(symbolTable)); } diff --git a/third_party/skia/src/sksl/ir/SkSLForStatement.h b/third_party/skia/src/sksl/ir/SkSLForStatement.h index ec66f7a54343..a465e8f4d81a 100644 --- a/third_party/skia/src/sksl/ir/SkSLForStatement.h +++ b/third_party/skia/src/sksl/ir/SkSLForStatement.h @@ -31,14 +31,14 @@ class ForStatement final : public Statement { public: inline static constexpr Kind kStatementKind = Kind::kFor; - ForStatement(int line, + ForStatement(Position pos, std::unique_ptr initializer, std::unique_ptr test, std::unique_ptr next, std::unique_ptr statement, std::unique_ptr unrollInfo, std::shared_ptr symbols) - : INHERITED(line, kStatementKind) + : INHERITED(pos, kStatementKind) , fSymbolTable(std::move(symbols)) , fInitializer(std::move(initializer)) , fTest(std::move(test)) @@ -47,7 +47,7 @@ class ForStatement final : public Statement { , fUnrollInfo(std::move(unrollInfo)) {} // Creates an SkSL for loop; handles type-coercion and uses the ErrorReporter to report errors. - static std::unique_ptr Convert(const Context& context, int line, + static std::unique_ptr Convert(const Context& context, Position pos, std::unique_ptr initializer, std::unique_ptr test, std::unique_ptr next, @@ -55,13 +55,13 @@ class ForStatement final : public Statement { std::shared_ptr symbolTable); // Creates an SkSL while loop; handles type-coercion and uses the ErrorReporter for errors. - static std::unique_ptr ConvertWhile(const Context& context, int line, + static std::unique_ptr ConvertWhile(const Context& context, Position pos, std::unique_ptr test, std::unique_ptr statement, std::shared_ptr symbolTable); // Creates an SkSL for/while loop. Assumes properly coerced types and reports errors via assert. - static std::unique_ptr Make(const Context& context, int line, + static std::unique_ptr Make(const Context& context, Position pos, std::unique_ptr initializer, std::unique_ptr test, std::unique_ptr next, diff --git a/third_party/skia/src/sksl/ir/SkSLFunctionCall.cpp b/third_party/skia/src/sksl/ir/SkSLFunctionCall.cpp index 17a88e9713e4..b95137b21776 100644 --- a/third_party/skia/src/sksl/ir/SkSLFunctionCall.cpp +++ b/third_party/skia/src/sksl/ir/SkSLFunctionCall.cpp @@ -59,16 +59,16 @@ void type_check_expression(const Expression& expr) { } static std::unique_ptr assemble_compound(const Context& context, - int line, + Position pos, const Type& returnType, double value[]) { int numSlots = returnType.slotCount(); ExpressionArray array; array.reserve_back(numSlots); for (int index = 0; index < numSlots; ++index) { - array.push_back(Literal::Make(line, value[index], &returnType.componentType())); + array.push_back(Literal::Make(pos, value[index], &returnType.componentType())); } - return ConstructorCompound::Make(context, line, returnType, std::move(array)); + return ConstructorCompound::Make(context, pos, returnType, std::move(array)); } using CoalesceFn = double (*)(double, double, double); @@ -92,7 +92,7 @@ static std::unique_ptr coalesce_n_way_vector(const Expression* arg0, // of scalars and vectors, the scalars is interpreted as a vector containing the same value for // every component. - int line = arg0->fLine; + Position pos = arg0->fPosition; const Type& vecType = arg0->type().isVector() ? arg0->type() : (arg1 && arg1->type().isVector()) ? arg1->type() : @@ -127,7 +127,7 @@ static std::unique_ptr coalesce_n_way_vector(const Expression* arg0, value = finalize(value); } - return Literal::Make(line, value, &returnType); + return Literal::Make(pos, value, &returnType); } template @@ -187,7 +187,7 @@ static std::unique_ptr optimize_comparison(const Context& context, } const Type& bvecType = context.fTypes.fBool->toCompound(context, type.columns(), /*rows=*/1); - return assemble_compound(context, left->fLine, bvecType, array); + return assemble_compound(context, left->fPosition, bvecType, array); } using EvaluateFn = double (*)(double, double, double); @@ -242,7 +242,7 @@ static std::unique_ptr evaluate_n_way_intrinsic(const Context& conte } } - return assemble_compound(context, arg0->fLine, returnType, array); + return assemble_compound(context, arg0->fPosition, returnType, array); } template @@ -431,6 +431,7 @@ static void extract_matrix(const Expression* expr, float mat[16]) { } static std::unique_ptr optimize_intrinsic_call(const Context& context, + Position pos, IntrinsicKind intrinsic, const ExpressionArray& argArray, const Type& returnType) { @@ -632,7 +633,7 @@ static std::unique_ptr optimize_intrinsic_call(const Context& contex double vec[3] = {X(1) * Y(2) - Y(1) * X(2), X(2) * Y(0) - Y(2) * X(0), X(0) * Y(1) - Y(0) * X(1)}; - return assemble_compound(context, arguments[0]->fLine, returnType, vec); + return assemble_compound(context, arguments[0]->fPosition, returnType, vec); } case k_normalize_IntrinsicKind: { auto Vec = [&] { return DSLExpression{arguments[0]->clone()}; }; @@ -650,9 +651,16 @@ static std::unique_ptr optimize_intrinsic_call(const Context& contex return (I() - 2.0 * Dot(N(), I()) * N()).release(); } case k_refract_IntrinsicKind: { - auto I = [&] { return DSLExpression{arguments[0]->clone()}; }; - auto N = [&] { return DSLExpression{arguments[1]->clone()}; }; - auto Eta = [&] { return DSLExpression{arguments[2]->clone()}; }; + // Refract uses its arguments out-of-order in such a way that we end up trying to create + // an invalid Position range, so we rewrite the arguments' positions to avoid that here. + auto clone = [&](const Expression* expr) { + std::unique_ptr result = expr->clone(); + result->fPosition = pos; + return DSLExpression(std::move(result)); + }; + auto I = [&] { return clone(arguments[0]); }; + auto N = [&] { return clone(arguments[1]); }; + auto Eta = [&] { return clone(arguments[2]); }; std::unique_ptr k = (1 - Pow(Eta(), 2) * (1 - Pow(Dot(N(), I()), 2))).release(); @@ -677,7 +685,7 @@ static std::unique_ptr optimize_intrinsic_call(const Context& contex mat[index++] = Get(0, (returnType.columns() * r) + c); } } - return assemble_compound(context, arguments[0]->fLine, returnType, mat); + return assemble_compound(context, arguments[0]->fPosition, returnType, mat); } case k_outerProduct_IntrinsicKind: { double mat[16]; @@ -687,7 +695,7 @@ static std::unique_ptr optimize_intrinsic_call(const Context& contex mat[index++] = Get(0, r) * Get(1, c); } } - return assemble_compound(context, arguments[0]->fLine, returnType, mat); + return assemble_compound(context, arguments[0]->fPosition, returnType, mat); } case k_determinant_IntrinsicKind: { float mat[16]; @@ -707,7 +715,7 @@ static std::unique_ptr optimize_intrinsic_call(const Context& contex SkDEBUGFAILF("unsupported type %s", arguments[0]->type().description().c_str()); return nullptr; } - return Literal::MakeFloat(arguments[0]->fLine, determinant, &returnType); + return Literal::MakeFloat(arguments[0]->fPosition, determinant, &returnType); } case k_inverse_IntrinsicKind: { float mat[16] = {}; @@ -735,7 +743,7 @@ static std::unique_ptr optimize_intrinsic_call(const Context& contex double dmat[16]; std::copy(mat, mat + SK_ARRAY_COUNT(mat), dmat); - return assemble_compound(context, arguments[0]->fLine, returnType, dmat); + return assemble_compound(context, arguments[0]->fPosition, returnType, dmat); } // 8.7 : Vector Relational Functions case k_lessThan_IntrinsicKind: @@ -786,7 +794,7 @@ bool FunctionCall::hasProperty(Property property) const { } std::unique_ptr FunctionCall::clone() const { - return std::make_unique(fLine, &this->type(), &this->function(), + return std::make_unique(fPosition, &this->type(), &this->function(), this->arguments().clone()); } @@ -848,20 +856,20 @@ const FunctionDeclaration* FunctionCall::FindBestFunctionForCall( } std::unique_ptr FunctionCall::Convert(const Context& context, - int line, + Position pos, std::unique_ptr functionValue, ExpressionArray arguments) { switch (functionValue->kind()) { case Expression::Kind::kTypeReference: return Constructor::Convert(context, - line, + pos, functionValue->as().value(), std::move(arguments)); case Expression::Kind::kExternalFunctionReference: { const ExternalFunction& f = functionValue->as().function(); int count = f.callParameterCount(); if (count != (int) arguments.size()) { - context.fErrors->error(line, + context.fErrors->error(pos, "external function expected " + std::to_string(count) + " arguments, but found " + std::to_string(arguments.size())); return nullptr; @@ -876,7 +884,7 @@ std::unique_ptr FunctionCall::Convert(const Context& context, return nullptr; } } - return std::make_unique(line, &f, std::move(arguments)); + return std::make_unique(pos, &f, std::move(arguments)); } case Expression::Kind::kFunctionReference: { const FunctionReference& ref = functionValue->as(); @@ -884,7 +892,7 @@ std::unique_ptr FunctionCall::Convert(const Context& context, const FunctionDeclaration* best = FindBestFunctionForCall(context, functions, arguments); if (best) { - return FunctionCall::Convert(context, line, *best, std::move(arguments)); + return FunctionCall::Convert(context, pos, *best, std::move(arguments)); } std::string msg = "no match for " + std::string(functions[0]->name()) + "("; std::string separator; @@ -894,7 +902,7 @@ std::unique_ptr FunctionCall::Convert(const Context& context, msg += arguments[i]->type().displayName(); } msg += ")"; - context.fErrors->error(line, msg); + context.fErrors->error(pos, msg); return nullptr; } case Expression::Kind::kMethodReference: { @@ -905,7 +913,7 @@ std::unique_ptr FunctionCall::Convert(const Context& context, const FunctionDeclaration* best = FindBestFunctionForCall(context, functions, arguments); if (best) { - return FunctionCall::Convert(context, line, *best, std::move(arguments)); + return FunctionCall::Convert(context, pos, *best, std::move(arguments)); } std::string msg = "no match for " + arguments.back()->type().displayName() + "::" + std::string(functions[0]->name().substr(1)) + "("; @@ -916,24 +924,25 @@ std::unique_ptr FunctionCall::Convert(const Context& context, msg += arguments[i]->type().displayName(); } msg += ")"; - context.fErrors->error(line, msg); + context.fErrors->error(pos, msg); return nullptr; } case Expression::Kind::kPoison: + functionValue->fPosition = pos; return functionValue; default: - context.fErrors->error(line, "not a function"); + context.fErrors->error(pos, "not a function"); return nullptr; } } std::unique_ptr FunctionCall::Convert(const Context& context, - int line, + Position pos, const FunctionDeclaration& function, ExpressionArray arguments) { // Reject ES3 function calls in strict ES2 mode. if (context.fConfig->strictES2Mode() && (function.modifiers().fFlags & Modifiers::kES3_Flag)) { - context.fErrors->error(line, "call to '" + function.description() + "' is not supported"); + context.fErrors->error(pos, "call to '" + function.description() + "' is not supported"); return nullptr; } @@ -945,7 +954,7 @@ std::unique_ptr FunctionCall::Convert(const Context& context, msg += "s"; } msg += ", but found " + std::to_string(arguments.count()); - context.fErrors->error(line, msg); + context.fErrors->error(pos, msg); return nullptr; } @@ -961,7 +970,7 @@ std::unique_ptr FunctionCall::Convert(const Context& context, separator = ", "; } msg += ")"; - context.fErrors->error(line, msg); + context.fErrors->error(pos, msg); return nullptr; } @@ -988,14 +997,14 @@ std::unique_ptr FunctionCall::Convert(const Context& context, // handling in the generators and analysis code. const Variable& child = *arguments.back()->as().variable(); arguments.pop_back(); - return ChildCall::Make(context, line, returnType, child, std::move(arguments)); + return ChildCall::Make(context, pos, returnType, child, std::move(arguments)); } - return Make(context, line, returnType, function, std::move(arguments)); + return Make(context, pos, returnType, function, std::move(arguments)); } std::unique_ptr FunctionCall::Make(const Context& context, - int line, + Position pos, const Type* returnType, const FunctionDeclaration& function, ExpressionArray arguments) { @@ -1005,14 +1014,16 @@ std::unique_ptr FunctionCall::Make(const Context& context, if (function.isIntrinsic() && has_compile_time_constant_arguments(arguments)) { // The function is an intrinsic and all inputs are compile-time constants. Optimize it. if (std::unique_ptr expr = optimize_intrinsic_call(context, + pos, function.intrinsicKind(), arguments, *returnType)) { + expr->fPosition = pos; return expr; } } - return std::make_unique(line, returnType, &function, std::move(arguments)); + return std::make_unique(pos, returnType, &function, std::move(arguments)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLFunctionCall.h b/third_party/skia/src/sksl/ir/SkSLFunctionCall.h index 06f5e9842b06..54690fc47871 100644 --- a/third_party/skia/src/sksl/ir/SkSLFunctionCall.h +++ b/third_party/skia/src/sksl/ir/SkSLFunctionCall.h @@ -21,27 +21,27 @@ class FunctionCall final : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kFunctionCall; - FunctionCall(int line, const Type* type, const FunctionDeclaration* function, + FunctionCall(Position pos, const Type* type, const FunctionDeclaration* function, ExpressionArray arguments) - : INHERITED(line, kExpressionKind, type) + : INHERITED(pos, kExpressionKind, type) , fFunction(*function) , fArguments(std::move(arguments)) {} // Resolves generic types, performs type conversion on arguments, determines return type, and // reports errors via the ErrorReporter. static std::unique_ptr Convert(const Context& context, - int line, + Position pos, const FunctionDeclaration& function, ExpressionArray arguments); static std::unique_ptr Convert(const Context& context, - int line, + Position pos, std::unique_ptr functionValue, ExpressionArray arguments); // Creates the function call; reports errors via ASSERT. static std::unique_ptr Make(const Context& context, - int line, + Position pos, const Type* returnType, const FunctionDeclaration& function, ExpressionArray arguments); diff --git a/third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.cpp b/third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.cpp index 184c58a16c3f..cca794cfbbe4 100644 --- a/third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.cpp +++ b/third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.cpp @@ -15,7 +15,7 @@ namespace SkSL { static IntrinsicKind identify_intrinsic(std::string_view functionName) { #define SKSL_INTRINSIC(name) {#name, k_##name##_IntrinsicKind}, - static const auto* kAllIntrinsics = new std::unordered_map{ + static const auto* kAllIntrinsics = new SkTHashMap{ SKSL_INTRINSIC_LIST }; #undef SKSL_INTRINSIC @@ -24,43 +24,39 @@ static IntrinsicKind identify_intrinsic(std::string_view functionName) { functionName.remove_prefix(1); } - auto iter = kAllIntrinsics->find(functionName); - if (iter != kAllIntrinsics->end()) { - return iter->second; - } - - return kNotIntrinsic; + IntrinsicKind* kind = kAllIntrinsics->find(functionName); + return kind ? *kind : kNotIntrinsic; } static bool check_modifiers(const Context& context, - int line, + Position pos, const Modifiers& modifiers) { const int permitted = Modifiers::kHasSideEffects_Flag | Modifiers::kInline_Flag | Modifiers::kNoInline_Flag | (context.fConfig->fIsBuiltinCode ? Modifiers::kES3_Flag : 0); - modifiers.checkPermitted(context, line, permitted, /*permittedLayoutFlags=*/0); + modifiers.checkPermitted(context, pos, permitted, /*permittedLayoutFlags=*/0); if ((modifiers.fFlags & Modifiers::kInline_Flag) && (modifiers.fFlags & Modifiers::kNoInline_Flag)) { - context.fErrors->error(line, "functions cannot be both 'inline' and 'noinline'"); + context.fErrors->error(pos, "functions cannot be both 'inline' and 'noinline'"); return false; } return true; } -static bool check_return_type(const Context& context, int line, const Type& returnType) { +static bool check_return_type(const Context& context, Position pos, const Type& returnType) { ErrorReporter& errors = *context.fErrors; if (returnType.isArray()) { - errors.error(line, "functions may not return type '" + returnType.displayName() + "'"); + errors.error(pos, "functions may not return type '" + returnType.displayName() + "'"); return false; } if (context.fConfig->strictES2Mode() && returnType.isOrContainsArray()) { - errors.error(line, "functions may not return structs containing arrays"); + errors.error(pos, "functions may not return structs containing arrays"); return false; } if (!context.fConfig->fIsBuiltinCode && returnType.componentType().isOpaque()) { - errors.error(line, "functions may not return opaque type '" + returnType.displayName() + - "'"); + errors.error(pos, "functions may not return opaque type '" + returnType.displayName() + + "'"); return false; } return true; @@ -79,7 +75,7 @@ static bool check_parameters(const Context& context, // Check modifiers on each function parameter. for (auto& param : parameters) { - param->modifiers().checkPermitted(context, param->fLine, + param->modifiers().checkPermitted(context, param->modifiersPosition(), Modifiers::kConst_Flag | Modifiers::kIn_Flag | Modifiers::kOut_Flag, /*permittedLayoutFlags=*/0); const Type& type = param->type(); @@ -87,8 +83,8 @@ static bool check_parameters(const Context& context, // parameters. You can pass other opaque types to functions safely; this restriction is // specific to "child" objects. if (type.isEffectChild() && !context.fConfig->fIsBuiltinCode) { - context.fErrors->error(param->fLine, "parameters of type '" + type.displayName() + - "' not allowed"); + context.fErrors->error(param->fPosition, "parameters of type '" + type.displayName() + + "' not allowed"); return false; } @@ -135,7 +131,7 @@ static bool check_parameters(const Context& context, return true; } -static bool check_main_signature(const Context& context, int line, const Type& returnType, +static bool check_main_signature(const Context& context, Position pos, const Type& returnType, std::vector>& parameters) { ErrorReporter& errors = *context.fErrors; ProgramKind kind = context.fConfig->fKind; @@ -193,12 +189,12 @@ static bool check_main_signature(const Context& context, int line, const Type& r case ProgramKind::kRuntimeColorFilter: { // (half4|float4) main(half4|float4) if (!typeIsValidForColor(returnType)) { - errors.error(line, "'main' must return: 'vec4', 'float4', or 'half4'"); + errors.error(pos, "'main' must return: 'vec4', 'float4', or 'half4'"); return false; } bool validParams = (parameters.size() == 1 && paramIsInputColor(0)); if (!validParams) { - errors.error(line, "'main' parameter must be 'vec4', 'float4', or 'half4'"); + errors.error(pos, "'main' parameter must be 'vec4', 'float4', or 'half4'"); return false; } break; @@ -206,14 +202,14 @@ static bool check_main_signature(const Context& context, int line, const Type& r case ProgramKind::kRuntimeShader: { // (half4|float4) main(float2) -or- (half4|float4) main(float2, half4|float4) if (!typeIsValidForColor(returnType)) { - errors.error(line, "'main' must return: 'vec4', 'float4', or 'half4'"); + errors.error(pos, "'main' must return: 'vec4', 'float4', or 'half4'"); return false; } bool validParams = (parameters.size() == 1 && paramIsCoords(0)) || (parameters.size() == 2 && paramIsCoords(0) && paramIsInputColor(1)); if (!validParams) { - errors.error(line, "'main' parameters must be (float2, (vec4|float4|half4)?)"); + errors.error(pos, "'main' parameters must be (float2, (vec4|float4|half4)?)"); return false; } break; @@ -221,14 +217,14 @@ static bool check_main_signature(const Context& context, int line, const Type& r case ProgramKind::kRuntimeBlender: { // (half4|float4) main(half4|float4, half4|float4) if (!typeIsValidForColor(returnType)) { - errors.error(line, "'main' must return: 'vec4', 'float4', or 'half4'"); + errors.error(pos, "'main' must return: 'vec4', 'float4', or 'half4'"); return false; } if (!(parameters.size() == 2 && paramIsInputColor(0) && paramIsDestColor(1))) { - errors.error(line, "'main' parameters must be (vec4|float4|half4, " - "vec4|float4|half4)"); + errors.error(pos, "'main' parameters must be (vec4|float4|half4, " + "vec4|float4|half4)"); return false; } break; @@ -236,11 +232,11 @@ static bool check_main_signature(const Context& context, int line, const Type& r case ProgramKind::kCustomMeshVertex: { // float2 main(Attributes, out Varyings) if (!returnType.matches(*context.fTypes.fFloat2)) { - errors.error(line, "'main' must return: 'vec2' or 'float2'"); + errors.error(pos, "'main' must return: 'vec2' or 'float2'"); return false; } if (!(parameters.size() == 2 && paramIsInAttributes(0) && paramIsOutVaryings(1))) { - errors.error(line, "'main' parameters must be (Attributes, out Varyings"); + errors.error(pos, "'main' parameters must be (Attributes, out Varyings"); return false; } break; @@ -250,12 +246,12 @@ static bool check_main_signature(const Context& context, int line, const Type& r // void main(Varyings) -or- void main(Varyings, out half4|float4]) if (!returnType.matches(*context.fTypes.fFloat2) && !returnType.matches(*context.fTypes.fVoid)) { - errors.error(line, "'main' must return: 'vec2', 'float2', 'or' 'void'"); + errors.error(pos, "'main' must return: 'vec2', 'float2', 'or' 'void'"); return false; } if (!((parameters.size() == 1 && paramIsInVaryings(0)) || (parameters.size() == 2 && paramIsInVaryings(0) && paramIsOutColor(1)))) { - errors.error(line, "'main' parameters must be (Varyings, (out (half4|float4))?)"); + errors.error(pos, "'main' parameters must be (Varyings, (out (half4|float4))?)"); return false; } break; @@ -267,14 +263,14 @@ static bool check_main_signature(const Context& context, int line, const Type& r bool validParams = (parameters.size() == 0) || (parameters.size() == 1 && paramIsCoords(0)); if (!validParams) { - errors.error(line, "shader 'main' must be main() or main(float2)"); + errors.error(pos, "shader 'main' must be main() or main(float2)"); return false; } break; } case ProgramKind::kVertex: if (parameters.size()) { - errors.error(line, "shader 'main' must have zero parameters"); + errors.error(pos, "shader 'main' must have zero parameters"); return false; } break; @@ -289,7 +285,7 @@ static bool check_main_signature(const Context& context, int line, const Type& r */ static bool find_existing_declaration(const Context& context, SymbolTable& symbols, - int line, + Position pos, std::string_view name, std::vector>& parameters, const Type* returnType, @@ -307,7 +303,7 @@ static bool find_existing_declaration(const Context& context, functions.push_back(&entry->as()); break; default: - errors.error(line, "symbol '" + std::string(name) + "' was already defined"); + errors.error(pos, "symbol '" + std::string(name) + "' was already defined"); return false; } for (const FunctionDeclaration* other : functions) { @@ -331,26 +327,26 @@ static bool find_existing_declaration(const Context& context, for (std::unique_ptr& param : parameters) { paramPtrs.push_back(param.get()); } - FunctionDeclaration invalidDecl(line, + FunctionDeclaration invalidDecl(pos, &other->modifiers(), name, std::move(paramPtrs), returnType, context.fConfig->fIsBuiltinCode); - errors.error(line, + errors.error(pos, "functions '" + invalidDecl.description() + "' and '" + other->description() + "' differ only in return type"); return false; } for (size_t i = 0; i < parameters.size(); i++) { if (parameters[i]->modifiers() != other->parameters()[i]->modifiers()) { - errors.error(line, "modifiers on parameter " + std::to_string(i + 1) + - " differ between declaration and definition"); + errors.error(parameters[i]->fPosition, "modifiers on parameter " + + std::to_string(i + 1) + " differ between declaration and definition"); return false; } } if (other->definition() && !other->isBuiltin()) { - errors.error(line, "duplicate definition of " + other->description()); + errors.error(pos, "duplicate definition of " + other->description()); return false; } *outExistingDecl = other; @@ -360,13 +356,13 @@ static bool find_existing_declaration(const Context& context, return true; } -FunctionDeclaration::FunctionDeclaration(int line, +FunctionDeclaration::FunctionDeclaration(Position pos, const Modifiers* modifiers, std::string_view name, std::vector parameters, const Type* returnType, bool builtin) - : INHERITED(line, kSymbolKind, name, /*type=*/nullptr) + : INHERITED(pos, kSymbolKind, name, /*type=*/nullptr) , fDefinition(nullptr) , fModifiers(modifiers) , fParameters(std::move(parameters)) @@ -378,7 +374,8 @@ FunctionDeclaration::FunctionDeclaration(int line, const FunctionDeclaration* FunctionDeclaration::Convert( const Context& context, SymbolTable& symbols, - int line, + Position pos, + Position modifiersPosition, const Modifiers* modifiers, std::string_view name, std::vector> parameters, @@ -386,11 +383,11 @@ const FunctionDeclaration* FunctionDeclaration::Convert( bool isMain = (name == "main"); const FunctionDeclaration* decl = nullptr; - if (!check_modifiers(context, line, *modifiers) || - !check_return_type(context, line, *returnType) || + if (!check_modifiers(context, modifiersPosition, *modifiers) || + !check_return_type(context, pos, *returnType) || !check_parameters(context, parameters, isMain) || - (isMain && !check_main_signature(context, line, *returnType, parameters)) || - !find_existing_declaration(context, symbols, line, name, parameters, returnType, &decl)) { + (isMain && !check_main_signature(context, pos, *returnType, parameters)) || + !find_existing_declaration(context, symbols, pos, name, parameters, returnType, &decl)) { return nullptr; } std::vector finalParameters; @@ -401,7 +398,7 @@ const FunctionDeclaration* FunctionDeclaration::Convert( if (decl) { return decl; } - auto result = std::make_unique(line, modifiers, name, + auto result = std::make_unique(pos, modifiers, name, std::move(finalParameters), returnType, context.fConfig->fIsBuiltinCode); return symbols.add(std::move(result)); diff --git a/third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.h b/third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.h index 34ce403a19d8..95ce678505fe 100644 --- a/third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.h +++ b/third_party/skia/src/sksl/ir/SkSLFunctionDeclaration.h @@ -37,7 +37,7 @@ class FunctionDeclaration final : public Symbol { public: inline static constexpr Kind kSymbolKind = Kind::kFunctionDeclaration; - FunctionDeclaration(int line, + FunctionDeclaration(Position pos, const Modifiers* modifiers, std::string_view name, std::vector parameters, @@ -46,7 +46,8 @@ class FunctionDeclaration final : public Symbol { static const FunctionDeclaration* Convert(const Context& context, SymbolTable& symbols, - int line, + Position pos, + Position modifiersPos, const Modifiers* modifiers, std::string_view name, std::vector> parameters, diff --git a/third_party/skia/src/sksl/ir/SkSLFunctionDefinition.cpp b/third_party/skia/src/sksl/ir/SkSLFunctionDefinition.cpp index 3c7c3d182ef1..f80695510c40 100644 --- a/third_party/skia/src/sksl/ir/SkSLFunctionDefinition.cpp +++ b/third_party/skia/src/sksl/ir/SkSLFunctionDefinition.cpp @@ -43,14 +43,15 @@ static void append_rtadjust_fixup_to_vertex_main(const Context& context, SkASSERT(skPerVertex); auto Ref = [](const Variable* var) -> std::unique_ptr { - return VariableReference::Make(/*line=*/-1, var); + return VariableReference::Make(Position(), var); }; auto Field = [&](const Variable* var, int idx) -> std::unique_ptr { - return FieldAccess::Make(context, Ref(var), idx, OwnerKind::kAnonymousInterfaceBlock); + return FieldAccess::Make(context, Position(), Ref(var), idx, + OwnerKind::kAnonymousInterfaceBlock); }; auto Pos = [&]() -> DSLExpression { - return DSLExpression(FieldAccess::Make(context, Ref(skPerVertex), /*fieldIndex=*/0, - OwnerKind::kAnonymousInterfaceBlock)); + return DSLExpression(FieldAccess::Make(context, Position(), Ref(skPerVertex), + /*fieldIndex=*/0, OwnerKind::kAnonymousInterfaceBlock)); }; auto Adjust = [&]() -> DSLExpression { return DSLExpression(rtAdjust.fInterfaceBlock @@ -70,7 +71,7 @@ static void append_rtadjust_fixup_to_vertex_main(const Context& context, } std::unique_ptr FunctionDefinition::Convert(const Context& context, - int line, + Position pos, const FunctionDeclaration& function, std::unique_ptr body, bool builtin) { @@ -102,8 +103,8 @@ std::unique_ptr FunctionDefinition::Convert(const Context& c if (a->isBuiltin() != b->isBuiltin()) { return a->isBuiltin() < b->isBuiltin(); } - if (a->fLine != b->fLine) { - return a->fLine < b->fLine; + if (a->fPosition != b->fPosition) { + return a->fPosition < b->fPosition; } if (a->name() != b->name()) { return a->name() < b->name(); @@ -127,7 +128,8 @@ std::unique_ptr FunctionDefinition::Convert(const Context& c const FunctionDeclaration& func = expr.as().function(); if (func.isBuiltin()) { if (func.intrinsicKind() == k_dFdy_IntrinsicKind) { - ThreadContext::Inputs().fUseFlipRTUniform = true; + ThreadContext::Inputs().fUseFlipRTUniform = + !fContext.fConfig->fSettings.fForceNoRTFlip; } if (func.definition()) { fReferencedBuiltinFunctions->insert(&func); @@ -136,7 +138,6 @@ std::unique_ptr FunctionDefinition::Convert(const Context& c this->copyBuiltinFunctionIfNeeded(func); } } - } return INHERITED::visitExpression(expr); } @@ -155,7 +156,7 @@ std::unique_ptr FunctionDefinition::Convert(const Context& c // place where the stack limit is exceeded. if (prevSlotsUsed < kVariableSlotLimit && fSlotsUsed >= kVariableSlotLimit) { fContext.fErrors->error( - stmt.fLine, + stmt.fPosition, "variable '" + std::string(stmt.as().var().name()) + "' exceeds the stack size limit"); } @@ -167,7 +168,7 @@ std::unique_ptr FunctionDefinition::Convert(const Context& c // issue, we can add normalization before each return statement. if (fContext.fConfig->fKind == ProgramKind::kVertex && fFunction.isMain()) { fContext.fErrors->error( - stmt.fLine, + stmt.fPosition, "early returns from vertex programs are not supported"); } @@ -180,14 +181,14 @@ std::unique_ptr FunctionDefinition::Convert(const Context& c std::move(returnStmt.expression()), fContext)); } else { // Returning something from a function with a void return type. - returnStmt.setExpression(nullptr); - fContext.fErrors->error(returnStmt.fLine, + fContext.fErrors->error(returnStmt.expression()->fPosition, "may not return a value from a void function"); + returnStmt.setExpression(nullptr); } } else { if (this->functionReturnsValue()) { // Returning nothing from a function with a non-void return type. - fContext.fErrors->error(returnStmt.fLine, + fContext.fErrors->error(returnStmt.fPosition, "expected function to return '" + fFunction.returnType().displayName() + "'"); } @@ -213,7 +214,7 @@ std::unique_ptr FunctionDefinition::Convert(const Context& c } case Statement::Kind::kBreak: if (fBreakableLevel == 0) { - fContext.fErrors->error(stmt.fLine, + fContext.fErrors->error(stmt.fPosition, "break statement must be inside a loop or switch"); } break; @@ -222,10 +223,10 @@ std::unique_ptr FunctionDefinition::Convert(const Context& c if (std::any_of(fContinuableLevel.begin(), fContinuableLevel.end(), [](int level) { return level > 0; })) { - fContext.fErrors->error(stmt.fLine, + fContext.fErrors->error(stmt.fPosition, "continue statement cannot be used in a switch"); } else { - fContext.fErrors->error(stmt.fLine, + fContext.fErrors->error(stmt.fPosition, "continue statement must be inside a loop"); } } @@ -259,15 +260,14 @@ std::unique_ptr FunctionDefinition::Convert(const Context& c } if (Analysis::CanExitWithoutReturningValue(function, *body)) { - context.fErrors->error(function.fLine, "function '" + std::string(function.name()) + - "' can exit without returning a value"); + context.fErrors->error(body->fPosition, "function '" + std::string(function.name()) + + "' can exit without returning a value"); } - SkASSERTF(!function.isIntrinsic(), - "Intrinsic %s should not have a definition", - std::string(function.name()).c_str()); - return std::make_unique(line, &function, builtin, std::move(body), - std::move(referencedBuiltinFunctions)); + SkASSERTF(!function.isIntrinsic(), "Intrinsic %s should not have a definition", + std::string(function.name()).c_str()); + return std::make_unique(pos, &function, builtin, std::move(body), + std::move(referencedBuiltinFunctions)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLFunctionDefinition.h b/third_party/skia/src/sksl/ir/SkSLFunctionDefinition.h index 92e0d9a0b613..5be07eca5fad 100644 --- a/third_party/skia/src/sksl/ir/SkSLFunctionDefinition.h +++ b/third_party/skia/src/sksl/ir/SkSLFunctionDefinition.h @@ -23,9 +23,9 @@ class FunctionDefinition final : public ProgramElement { using FunctionSet = std::unordered_set; - FunctionDefinition(int line, const FunctionDeclaration* declaration, bool builtin, + FunctionDefinition(Position pos, const FunctionDeclaration* declaration, bool builtin, std::unique_ptr body, FunctionSet referencedBuiltinFunctions) - : INHERITED(line, kProgramElementKind) + : INHERITED(pos, kProgramElementKind) , fDeclaration(declaration) , fBuiltin(builtin) , fBody(std::move(body)) @@ -43,7 +43,7 @@ class FunctionDefinition final : public ProgramElement { * errors when trying to call a function with an error in it.) */ static std::unique_ptr Convert(const Context& context, - int line, + Position pos, const FunctionDeclaration& function, std::unique_ptr body, bool builtin); @@ -69,7 +69,7 @@ class FunctionDefinition final : public ProgramElement { } std::unique_ptr clone() const override { - return std::make_unique(fLine, &this->declaration(), + return std::make_unique(fPosition, &this->declaration(), /*builtin=*/false, this->body()->clone(), this->referencedBuiltinFunctions()); } diff --git a/third_party/skia/src/sksl/ir/SkSLFunctionPrototype.h b/third_party/skia/src/sksl/ir/SkSLFunctionPrototype.h index 276fba93713a..3f217c17046a 100644 --- a/third_party/skia/src/sksl/ir/SkSLFunctionPrototype.h +++ b/third_party/skia/src/sksl/ir/SkSLFunctionPrototype.h @@ -21,8 +21,8 @@ class FunctionPrototype final : public ProgramElement { public: inline static constexpr Kind kProgramElementKind = Kind::kFunctionPrototype; - FunctionPrototype(int line, const FunctionDeclaration* declaration, bool builtin) - : INHERITED(line, kProgramElementKind) + FunctionPrototype(Position pos, const FunctionDeclaration* declaration, bool builtin) + : INHERITED(pos, kProgramElementKind) , fDeclaration(declaration) , fBuiltin(builtin) {} @@ -35,7 +35,8 @@ class FunctionPrototype final : public ProgramElement { } std::unique_ptr clone() const override { - return std::make_unique(fLine, &this->declaration(), /*builtin=*/false); + return std::make_unique(fPosition, &this->declaration(), + /*builtin=*/false); } std::string description() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLFunctionReference.h b/third_party/skia/src/sksl/ir/SkSLFunctionReference.h index 46542e5d015c..d6aad8759a8c 100644 --- a/third_party/skia/src/sksl/ir/SkSLFunctionReference.h +++ b/third_party/skia/src/sksl/ir/SkSLFunctionReference.h @@ -22,9 +22,9 @@ class FunctionReference final : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kFunctionReference; - FunctionReference(const Context& context, int line, + FunctionReference(const Context& context, Position pos, std::vector functions) - : INHERITED(line, kExpressionKind, context.fTypes.fInvalid.get()) + : INHERITED(pos, kExpressionKind, context.fTypes.fInvalid.get()) , fFunctions(std::move(functions)) {} const std::vector& functions() const { @@ -36,7 +36,7 @@ class FunctionReference final : public Expression { } std::unique_ptr clone() const override { - return std::unique_ptr(new FunctionReference(fLine, this->functions(), + return std::unique_ptr(new FunctionReference(fPosition, this->functions(), &this->type())); } @@ -45,9 +45,9 @@ class FunctionReference final : public Expression { } private: - FunctionReference(int line, std::vector functions, + FunctionReference(Position pos, std::vector functions, const Type* type) - : INHERITED(line, kExpressionKind, type) + : INHERITED(pos, kExpressionKind, type) , fFunctions(std::move(functions)) {} std::vector fFunctions; diff --git a/third_party/skia/src/sksl/ir/SkSLIfStatement.cpp b/third_party/skia/src/sksl/ir/SkSLIfStatement.cpp index c541a899d132..3ea660df88b7 100644 --- a/third_party/skia/src/sksl/ir/SkSLIfStatement.cpp +++ b/third_party/skia/src/sksl/ir/SkSLIfStatement.cpp @@ -18,7 +18,7 @@ namespace SkSL { std::unique_ptr IfStatement::clone() const { - return std::make_unique(fLine, this->isStatic(), this->test()->clone(), + return std::make_unique(fPosition, this->isStatic(), this->test()->clone(), this->ifTrue()->clone(), this->ifFalse() ? this->ifFalse()->clone() : nullptr); } @@ -35,10 +35,9 @@ std::string IfStatement::description() const { return result; } -std::unique_ptr IfStatement::Convert(const Context& context, int line, bool isStatic, - std::unique_ptr test, - std::unique_ptr ifTrue, - std::unique_ptr ifFalse) { +std::unique_ptr IfStatement::Convert(const Context& context, Position pos, + bool isStatic, std::unique_ptr test, std::unique_ptr ifTrue, + std::unique_ptr ifFalse) { test = context.fTypes.fBool->coerceExpression(std::move(test), context); if (!test) { return nullptr; @@ -50,7 +49,7 @@ std::unique_ptr IfStatement::Convert(const Context& context, int line if (ifFalse && Analysis::DetectVarDeclarationWithoutScope(*ifFalse, context.fErrors)) { return nullptr; } - return IfStatement::Make(context, line, isStatic, std::move(test), + return IfStatement::Make(context, pos, isStatic, std::move(test), std::move(ifTrue), std::move(ifFalse)); } @@ -60,10 +59,9 @@ static std::unique_ptr replace_empty_with_nop(std::unique_ptr IfStatement::Make(const Context& context, int line, bool isStatic, - std::unique_ptr test, - std::unique_ptr ifTrue, - std::unique_ptr ifFalse) { +std::unique_ptr IfStatement::Make(const Context& context, Position pos, bool isStatic, + std::unique_ptr test, std::unique_ptr ifTrue, + std::unique_ptr ifFalse) { SkASSERT(test->type().matches(*context.fTypes.fBool)); SkASSERT(!Analysis::DetectVarDeclarationWithoutScope(*ifTrue)); SkASSERT(!ifFalse || !Analysis::DetectVarDeclarationWithoutScope(*ifFalse)); @@ -101,7 +99,7 @@ std::unique_ptr IfStatement::Make(const Context& context, int line, b } } - return std::make_unique(line, isStatic, std::move(test), + return std::make_unique(pos, isStatic, std::move(test), std::move(ifTrue), std::move(ifFalse)); } diff --git a/third_party/skia/src/sksl/ir/SkSLIfStatement.h b/third_party/skia/src/sksl/ir/SkSLIfStatement.h index 46b039a86745..2f60cd9a51dd 100644 --- a/third_party/skia/src/sksl/ir/SkSLIfStatement.h +++ b/third_party/skia/src/sksl/ir/SkSLIfStatement.h @@ -22,9 +22,9 @@ class IfStatement final : public Statement { public: inline static constexpr Kind kStatementKind = Kind::kIf; - IfStatement(int line, bool isStatic, std::unique_ptr test, + IfStatement(Position pos, bool isStatic, std::unique_ptr test, std::unique_ptr ifTrue, std::unique_ptr ifFalse) - : INHERITED(line, kStatementKind) + : INHERITED(pos, kStatementKind) , fTest(std::move(test)) , fIfTrue(std::move(ifTrue)) , fIfFalse(std::move(ifFalse)) @@ -32,13 +32,17 @@ class IfStatement final : public Statement { // Creates a potentially-simplified form of the if-statement. Typechecks and coerces the test // expression; reports errors via ErrorReporter. - static std::unique_ptr Convert(const Context& context, int line, bool isStatic, + static std::unique_ptr Convert(const Context& context, + Position pos, + bool isStatic, std::unique_ptr test, std::unique_ptr ifTrue, std::unique_ptr ifFalse); // Creates a potentially-simplified form of the if-statement; reports errors via ASSERT. - static std::unique_ptr Make(const Context& context, int line, bool isStatic, + static std::unique_ptr Make(const Context& context, + Position pos, + bool isStatic, std::unique_ptr test, std::unique_ptr ifTrue, std::unique_ptr ifFalse); diff --git a/third_party/skia/src/sksl/ir/SkSLIndexExpression.cpp b/third_party/skia/src/sksl/ir/SkSLIndexExpression.cpp index c5f0e2546e7f..caf4503827e0 100644 --- a/third_party/skia/src/sksl/ir/SkSLIndexExpression.cpp +++ b/third_party/skia/src/sksl/ir/SkSLIndexExpression.cpp @@ -18,13 +18,14 @@ namespace SkSL { -static bool index_out_of_range(const Context& context, SKSL_INT index, const Expression& base) { +static bool index_out_of_range(const Context& context, Position pos, SKSL_INT index, + const Expression& base) { if (index >= 0 && index < base.type().columns()) { return false; } - context.fErrors->error(base.fLine, "index " + std::to_string(index) + " out of range for '" + - base.type().displayName() + "'"); + context.fErrors->error(pos, "index " + std::to_string(index) + " out of range for '" + + base.type().displayName() + "'"); return true; } @@ -51,22 +52,23 @@ const Type& IndexExpression::IndexType(const Context& context, const Type& type) std::unique_ptr IndexExpression::Convert(const Context& context, SymbolTable& symbolTable, + Position pos, std::unique_ptr base, std::unique_ptr index) { // Convert an array type reference: `int[10]`. if (base->is()) { const Type& baseType = base->as().value(); - SKSL_INT arraySize = baseType.convertArraySize(context, std::move(index)); + SKSL_INT arraySize = baseType.convertArraySize(context, pos, std::move(index)); if (!arraySize) { return nullptr; } - return TypeReference::Convert(context, base->fLine, + return TypeReference::Convert(context, pos, symbolTable.addArrayDimension(&baseType, arraySize)); } // Convert an index expression with an expression inside of it: `arr[a * 3]`. const Type& baseType = base->type(); if (!baseType.isArray() && !baseType.isMatrix() && !baseType.isVector()) { - context.fErrors->error(base->fLine, + context.fErrors->error(base->fPosition, "expected array, but found '" + baseType.displayName() + "'"); return nullptr; } @@ -80,14 +82,15 @@ std::unique_ptr IndexExpression::Convert(const Context& context, const Expression* indexExpr = ConstantFolder::GetConstantValueForVariable(*index); if (indexExpr->isIntLiteral()) { SKSL_INT indexValue = indexExpr->as().intValue(); - if (index_out_of_range(context, indexValue, *base)) { + if (index_out_of_range(context, index->fPosition, indexValue, *base)) { return nullptr; } } - return IndexExpression::Make(context, std::move(base), std::move(index)); + return IndexExpression::Make(context, pos, std::move(base), std::move(index)); } std::unique_ptr IndexExpression::Make(const Context& context, + Position pos, std::unique_ptr base, std::unique_ptr index) { const Type& baseType = base->type(); @@ -97,11 +100,12 @@ std::unique_ptr IndexExpression::Make(const Context& context, const Expression* indexExpr = ConstantFolder::GetConstantValueForVariable(*index); if (indexExpr->isIntLiteral()) { SKSL_INT indexValue = indexExpr->as().intValue(); - if (!index_out_of_range(context, indexValue, *base)) { + if (!index_out_of_range(context, index->fPosition, indexValue, *base)) { if (baseType.isVector()) { // Constant array indexes on vectors can be converted to swizzles: `v[2]` --> `v.z`. // Swizzling is harmless and can unlock further simplifications for some base types. - return Swizzle::Make(context, std::move(base), ComponentArray{(int8_t)indexValue}); + return Swizzle::Make(context, pos, std::move(base), + ComponentArray{(int8_t)indexValue}); } if (baseType.isArray() && !base->hasSideEffects()) { @@ -113,7 +117,9 @@ std::unique_ptr IndexExpression::Make(const Context& context, const ExpressionArray& arguments = arrayCtor.arguments(); SkASSERT(arguments.count() == baseType.columns()); - return arguments[indexValue]->clone(); + std::unique_ptr result = arguments[indexValue]->clone(); + result->fPosition = pos; + return result; } } @@ -134,7 +140,8 @@ std::unique_ptr IndexExpression::Make(const Context& context, for (int slot = 0; slot < vecWidth; ++slot) { std::optional slotVal = baseExpr->getConstantValue(indexValue + slot); if (slotVal.has_value()) { - ctorArgs.push_back(Literal::Make(baseExpr->fLine, *slotVal, &scalarType)); + ctorArgs.push_back(Literal::Make(baseExpr->fPosition, *slotVal, + &scalarType)); } else { ctorArgs.reset(); break; @@ -142,14 +149,13 @@ std::unique_ptr IndexExpression::Make(const Context& context, } if (!ctorArgs.empty()) { - int line = ctorArgs.front()->fLine; - return ConstructorCompound::Make(context, line, vecType, std::move(ctorArgs)); + return ConstructorCompound::Make(context, pos, vecType, std::move(ctorArgs)); } } } } - return std::make_unique(context, std::move(base), std::move(index)); + return std::make_unique(context, pos, std::move(base), std::move(index)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLIndexExpression.h b/third_party/skia/src/sksl/ir/SkSLIndexExpression.h index d9ac8a6666a9..fb4c5168a2b8 100644 --- a/third_party/skia/src/sksl/ir/SkSLIndexExpression.h +++ b/third_party/skia/src/sksl/ir/SkSLIndexExpression.h @@ -20,20 +20,22 @@ namespace SkSL { struct IndexExpression final : public Expression { inline static constexpr Kind kExpressionKind = Kind::kIndex; - IndexExpression(const Context& context, std::unique_ptr base, + IndexExpression(const Context& context, Position pos, std::unique_ptr base, std::unique_ptr index) - : INHERITED(base->fLine, kExpressionKind, &IndexType(context, base->type())) + : INHERITED(pos, kExpressionKind, &IndexType(context, base->type())) , fBase(std::move(base)) , fIndex(std::move(index)) {} // Returns a simplified index-expression; reports errors via the ErrorReporter. static std::unique_ptr Convert(const Context& context, SymbolTable& symbolTable, + Position pos, std::unique_ptr base, std::unique_ptr index); // Returns a simplified index-expression; reports errors via ASSERT. static std::unique_ptr Make(const Context& context, + Position pos, std::unique_ptr base, std::unique_ptr index); @@ -77,7 +79,7 @@ struct IndexExpression final : public Expression { private: IndexExpression(std::unique_ptr base, std::unique_ptr index, const Type* type) - : INHERITED(base->fLine, Kind::kIndex, type) + : INHERITED(base->fPosition, Kind::kIndex, type) , fBase(std::move(base)) , fIndex(std::move(index)) {} diff --git a/third_party/skia/src/sksl/ir/SkSLInlineMarker.h b/third_party/skia/src/sksl/ir/SkSLInlineMarker.h index 0f2de6a5c1b6..b5f3f6781cfc 100644 --- a/third_party/skia/src/sksl/ir/SkSLInlineMarker.h +++ b/third_party/skia/src/sksl/ir/SkSLInlineMarker.h @@ -23,7 +23,7 @@ class InlineMarker final : public Statement { inline static constexpr Kind kStatementKind = Kind::kInlineMarker; InlineMarker(const FunctionDeclaration* function) - : INHERITED(/*line=*/-1, kStatementKind) + : INHERITED(Position(), kStatementKind) , fFunction(*function) {} static std::unique_ptr Make(const FunctionDeclaration* function) { diff --git a/third_party/skia/src/sksl/ir/SkSLInterfaceBlock.h b/third_party/skia/src/sksl/ir/SkSLInterfaceBlock.h index f72993ffa887..59efc1408729 100644 --- a/third_party/skia/src/sksl/ir/SkSLInterfaceBlock.h +++ b/third_party/skia/src/sksl/ir/SkSLInterfaceBlock.h @@ -31,13 +31,13 @@ class InterfaceBlock final : public ProgramElement { public: inline static constexpr Kind kProgramElementKind = Kind::kInterfaceBlock; - InterfaceBlock(int line, + InterfaceBlock(Position pos, const Variable& var, std::string_view typeName, std::string_view instanceName, int arraySize, std::shared_ptr typeOwner) - : INHERITED(line, kProgramElementKind) + : INHERITED(pos, kProgramElementKind) , fVariable(var) , fTypeName(typeName) , fInstanceName(instanceName) @@ -69,7 +69,7 @@ class InterfaceBlock final : public ProgramElement { } std::unique_ptr clone() const override { - return std::make_unique(fLine, this->variable(), this->typeName(), + return std::make_unique(fPosition, this->variable(), this->typeName(), this->instanceName(), this->arraySize(), SymbolTable::WrapIfBuiltin(this->typeOwner())); } diff --git a/third_party/skia/src/sksl/ir/SkSLLiteral.h b/third_party/skia/src/sksl/ir/SkSLLiteral.h index eeaa7bdc5493..75d563c265dd 100644 --- a/third_party/skia/src/sksl/ir/SkSLLiteral.h +++ b/third_party/skia/src/sksl/ir/SkSLLiteral.h @@ -23,58 +23,60 @@ class Literal : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kLiteral; - Literal(int line, double value, const Type* type) - : INHERITED(line, kExpressionKind, type) + Literal(Position pos, double value, const Type* type) + : INHERITED(pos, kExpressionKind, type) , fValue(value) {} // Makes a literal of $floatLiteral type. - static std::unique_ptr MakeFloat(const Context& context, int line, float value) { - return std::make_unique(line, value, context.fTypes.fFloatLiteral.get()); + static std::unique_ptr MakeFloat(const Context& context, Position pos, + float value) { + return std::make_unique(pos, value, context.fTypes.fFloatLiteral.get()); } // Makes a float literal of the specified type. - static std::unique_ptr MakeFloat(int line, float value, const Type* type) { + static std::unique_ptr MakeFloat(Position pos, float value, const Type* type) { SkASSERT(type->isFloat()); - return std::make_unique(line, value, type); + return std::make_unique(pos, value, type); } // Makes a literal of $intLiteral type. - static std::unique_ptr MakeInt(const Context& context, int line, SKSL_INT value) { - return std::make_unique(line, value, context.fTypes.fIntLiteral.get()); + static std::unique_ptr MakeInt(const Context& context, Position pos, + SKSL_INT value) { + return std::make_unique(pos, value, context.fTypes.fIntLiteral.get()); } // Makes an int literal of the specified type. - static std::unique_ptr MakeInt(int line, SKSL_INT value, const Type* type) { + static std::unique_ptr MakeInt(Position pos, SKSL_INT value, const Type* type) { SkASSERT(type->isInteger()); SkASSERTF(value >= type->minimumValue(), "Value %" PRId64 " does not fit in type %s", value, type->description().c_str()); SkASSERTF(value <= type->maximumValue(), "Value %" PRId64 " does not fit in type %s", value, type->description().c_str()); - return std::make_unique(line, value, type); + return std::make_unique(pos, value, type); } // Makes a literal of boolean type. - static std::unique_ptr MakeBool(const Context& context, int line, bool value) { - return std::make_unique(line, value, context.fTypes.fBool.get()); + static std::unique_ptr MakeBool(const Context& context, Position pos, bool value) { + return std::make_unique(pos, value, context.fTypes.fBool.get()); } // Makes a literal of boolean type. (Functionally identical to the above, but useful if you // don't have access to the Context.) - static std::unique_ptr MakeBool(int line, bool value, const Type* type) { + static std::unique_ptr MakeBool(Position pos, bool value, const Type* type) { SkASSERT(type->isBoolean()); - return std::make_unique(line, value, type); + return std::make_unique(pos, value, type); } // Makes a literal of the specified type, rounding as needed. - static std::unique_ptr Make(int line, double value, const Type* type) { + static std::unique_ptr Make(Position pos, double value, const Type* type) { if (type->isFloat()) { - return MakeFloat(line, value, type); + return MakeFloat(pos, value, type); } if (type->isInteger()) { - return MakeInt(line, value, type); + return MakeInt(pos, value, type); } SkASSERT(type->isBoolean()); - return MakeBool(line, value, type); + return MakeBool(pos, value, type); } float floatValue() const { @@ -125,7 +127,7 @@ class Literal : public Expression { } std::unique_ptr clone() const override { - return std::make_unique(fLine, this->value(), &this->type()); + return std::make_unique(fPosition, this->value(), &this->type()); } bool supportsConstantValues() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLMethodReference.h b/third_party/skia/src/sksl/ir/SkSLMethodReference.h index 9994058f6e00..4b238239b5c9 100644 --- a/third_party/skia/src/sksl/ir/SkSLMethodReference.h +++ b/third_party/skia/src/sksl/ir/SkSLMethodReference.h @@ -32,10 +32,10 @@ class MethodReference final : public Expression { inline static constexpr Kind kExpressionKind = Kind::kMethodReference; MethodReference(const Context& context, - int line, + Position pos, std::unique_ptr self, std::vector functions) - : INHERITED(line, kExpressionKind, context.fTypes.fInvalid.get()) + : INHERITED(pos, kExpressionKind, context.fTypes.fInvalid.get()) , fSelf(std::move(self)) , fFunctions(std::move(functions)) {} @@ -48,7 +48,7 @@ class MethodReference final : public Expression { std::unique_ptr clone() const override { return std::unique_ptr(new MethodReference( - fLine, this->self()->clone(), this->functions(), &this->type())); + fPosition, this->self()->clone(), this->functions(), &this->type())); } std::string description() const override { @@ -56,11 +56,11 @@ class MethodReference final : public Expression { } private: - MethodReference(int line, + MethodReference(Position pos, std::unique_ptr self, std::vector functions, const Type* type) - : INHERITED(line, kExpressionKind, type) + : INHERITED(pos, kExpressionKind, type) , fSelf(std::move(self)) , fFunctions(std::move(functions)) {} diff --git a/third_party/skia/src/sksl/ir/SkSLModifiers.cpp b/third_party/skia/src/sksl/ir/SkSLModifiers.cpp index 573bbad97cb9..84f32130e0d1 100644 --- a/third_party/skia/src/sksl/ir/SkSLModifiers.cpp +++ b/third_party/skia/src/sksl/ir/SkSLModifiers.cpp @@ -12,7 +12,7 @@ namespace SkSL { -bool Modifiers::checkPermitted(const Context& context, int line, int permittedModifierFlags, +bool Modifiers::checkPermitted(const Context& context, Position pos, int permittedModifierFlags, int permittedLayoutFlags) const { static constexpr struct { Modifiers::Flag flag; const char* name; } kModifierFlags[] = { { Modifiers::kConst_Flag, "const" }, @@ -35,7 +35,7 @@ bool Modifiers::checkPermitted(const Context& context, int line, int permittedMo for (const auto& f : kModifierFlags) { if (modifierFlags & f.flag) { if (!(permittedModifierFlags & f.flag)) { - context.fErrors->error(line, "'" + std::string(f.name) + "' is not permitted here"); + context.fErrors->error(pos, "'" + std::string(f.name) + "' is not permitted here"); success = false; } modifierFlags &= ~f.flag; @@ -61,8 +61,8 @@ bool Modifiers::checkPermitted(const Context& context, int line, int permittedMo for (const auto& lf : kLayoutFlags) { if (layoutFlags & lf.flag) { if (!(permittedLayoutFlags & lf.flag)) { - context.fErrors->error(line, "layout qualifier '" + std::string(lf.name) + - "' is not permitted here"); + context.fErrors->error(pos, "layout qualifier '" + std::string(lf.name) + + "' is not permitted here"); success = false; } layoutFlags &= ~lf.flag; diff --git a/third_party/skia/src/sksl/ir/SkSLModifiersDeclaration.h b/third_party/skia/src/sksl/ir/SkSLModifiersDeclaration.h index f03ae45fb8ec..aee0d9cbb400 100644 --- a/third_party/skia/src/sksl/ir/SkSLModifiersDeclaration.h +++ b/third_party/skia/src/sksl/ir/SkSLModifiersDeclaration.h @@ -23,7 +23,7 @@ class ModifiersDeclaration final : public ProgramElement { inline static constexpr Kind kProgramElementKind = Kind::kModifiers; ModifiersDeclaration(const Modifiers* modifiers) - : INHERITED(-1, kProgramElementKind) + : INHERITED(Position(), kProgramElementKind) , fModifiers(modifiers) {} const Modifiers& modifiers() const { diff --git a/third_party/skia/src/sksl/ir/SkSLNop.h b/third_party/skia/src/sksl/ir/SkSLNop.h index 2cc59f9032dd..67c6e2c41512 100644 --- a/third_party/skia/src/sksl/ir/SkSLNop.h +++ b/third_party/skia/src/sksl/ir/SkSLNop.h @@ -21,7 +21,7 @@ class Nop final : public Statement { inline static constexpr Kind kStatementKind = Kind::kNop; Nop() - : INHERITED(/*line=*/-1, kStatementKind) {} + : INHERITED(Position(), kStatementKind) {} static std::unique_ptr Make() { return std::make_unique(); diff --git a/third_party/skia/src/sksl/ir/SkSLPoison.h b/third_party/skia/src/sksl/ir/SkSLPoison.h index be5d90c10b63..5f90a60ab05b 100644 --- a/third_party/skia/src/sksl/ir/SkSLPoison.h +++ b/third_party/skia/src/sksl/ir/SkSLPoison.h @@ -14,19 +14,19 @@ class Poison : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kPoison; - static std::unique_ptr Make(int line, const Context& context) { - return std::make_unique(line, context.fTypes.fPoison.get()); + static std::unique_ptr Make(Position pos, const Context& context) { + return std::make_unique(pos, context.fTypes.fPoison.get()); } - Poison(int line, const Type* type) - : INHERITED(line, kExpressionKind, type) {} + Poison(Position pos, const Type* type) + : INHERITED(pos, kExpressionKind, type) {} bool hasProperty(Property property) const override { return false; } std::unique_ptr clone() const override { - return std::make_unique(fLine, &this->type()); + return std::make_unique(fPosition, &this->type()); } std::string description() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLPostfixExpression.cpp b/third_party/skia/src/sksl/ir/SkSLPostfixExpression.cpp index c93130f0d316..d8aa542af2f3 100644 --- a/third_party/skia/src/sksl/ir/SkSLPostfixExpression.cpp +++ b/third_party/skia/src/sksl/ir/SkSLPostfixExpression.cpp @@ -14,28 +14,26 @@ namespace SkSL { -std::unique_ptr PostfixExpression::Convert(const Context& context, - std::unique_ptr base, - Operator op) { +std::unique_ptr PostfixExpression::Convert(const Context& context, Position pos, + std::unique_ptr base, Operator op) { const Type& baseType = base->type(); if (!baseType.isNumber()) { - context.fErrors->error(base->fLine, "'" + std::string(op.tightOperatorName()) + - "' cannot operate on '" + baseType.displayName() + "'"); + context.fErrors->error(pos, "'" + std::string(op.tightOperatorName()) + + "' cannot operate on '" + baseType.displayName() + "'"); return nullptr; } if (!Analysis::UpdateVariableRefKind(base.get(), VariableRefKind::kReadWrite, context.fErrors)) { return nullptr; } - return PostfixExpression::Make(context, std::move(base), op); + return PostfixExpression::Make(context, pos, std::move(base), op); } -std::unique_ptr PostfixExpression::Make(const Context&, - std::unique_ptr base, - Operator op) { +std::unique_ptr PostfixExpression::Make(const Context& context, Position pos, + std::unique_ptr base, Operator op) { SkASSERT(base->type().isNumber()); SkASSERT(Analysis::IsAssignable(*base)); - return std::make_unique(std::move(base), op); + return std::make_unique(pos, std::move(base), op); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLPostfixExpression.h b/third_party/skia/src/sksl/ir/SkSLPostfixExpression.h index aea0c5be4db5..56a8392c6151 100644 --- a/third_party/skia/src/sksl/ir/SkSLPostfixExpression.h +++ b/third_party/skia/src/sksl/ir/SkSLPostfixExpression.h @@ -8,8 +8,7 @@ #ifndef SKSL_POSTFIXEXPRESSION #define SKSL_POSTFIXEXPRESSION -#include "src/sksl/SkSLLexer.h" -#include "src/sksl/SkSLOperators.h" +#include "include/sksl/SkSLOperator.h" #include "src/sksl/ir/SkSLExpression.h" namespace SkSL { @@ -21,18 +20,20 @@ class PostfixExpression final : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kPostfix; - PostfixExpression(std::unique_ptr operand, Operator op) - : INHERITED(operand->fLine, kExpressionKind, &operand->type()) + PostfixExpression(Position pos, std::unique_ptr operand, Operator op) + : INHERITED(pos, kExpressionKind, &operand->type()) , fOperand(std::move(operand)) , fOperator(op) {} // Creates an SkSL postfix expression; uses the ErrorReporter to report errors. static std::unique_ptr Convert(const Context& context, + Position pos, std::unique_ptr base, Operator op); // Creates an SkSL postfix expression; reports errors via ASSERT. static std::unique_ptr Make(const Context& context, + Position pos, std::unique_ptr base, Operator op); @@ -54,7 +55,8 @@ class PostfixExpression final : public Expression { } std::unique_ptr clone() const override { - return std::make_unique(this->operand()->clone(), this->getOperator()); + return std::make_unique(fPosition, this->operand()->clone(), + this->getOperator()); } std::string description() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLPrefixExpression.cpp b/third_party/skia/src/sksl/ir/SkSLPrefixExpression.cpp index 05caa1c9a6a7..676ffe8546ee 100644 --- a/third_party/skia/src/sksl/ir/SkSLPrefixExpression.cpp +++ b/third_party/skia/src/sksl/ir/SkSLPrefixExpression.cpp @@ -21,9 +21,12 @@ namespace SkSL { -static ExpressionArray negate_operands(const Context& context, const ExpressionArray& operands); +static ExpressionArray negate_operands(const Context& context, + Position pos, + const ExpressionArray& operands); static std::unique_ptr simplify_negation(const Context& context, + Position pos, const Expression& originalExpr) { const Expression* value = ConstantFolder::GetConstantValueForVariable(originalExpr); switch (value->kind()) { @@ -32,16 +35,16 @@ static std::unique_ptr simplify_negation(const Context& context, double negated = -value->as().value(); // Don't simplify the expression if the type can't hold the negated value. const Type& type = value->type(); - if (type.checkForOutOfRangeLiteral(context, negated, value->fLine)) { + if (type.checkForOutOfRangeLiteral(context, negated, pos)) { return nullptr; } - return Literal::Make(originalExpr.fLine, negated, &type); + return Literal::Make(pos, negated, &type); } case Expression::Kind::kPrefix: { // Convert `-(-expression)` into `expression`. const PrefixExpression& prefix = value->as(); - if (prefix.getOperator().kind() == Token::Kind::TK_MINUS) { - return prefix.operand()->clone(); + if (prefix.getOperator().kind() == Operator::Kind::MINUS) { + return prefix.operand()->clone(pos); } break; } @@ -49,8 +52,8 @@ static std::unique_ptr simplify_negation(const Context& context, // Convert `-array[N](literal, ...)` into `array[N](-literal, ...)`. if (value->isCompileTimeConstant()) { const ConstructorArray& ctor = value->as(); - return ConstructorArray::Make(context, originalExpr.fLine, ctor.type(), - negate_operands(context, ctor.arguments())); + return ConstructorArray::Make(context, pos, ctor.type(), + negate_operands(context, pos, ctor.arguments())); } break; @@ -59,9 +62,10 @@ static std::unique_ptr simplify_negation(const Context& context, if (value->isCompileTimeConstant()) { const ConstructorDiagonalMatrix& ctor = value->as(); if (std::unique_ptr simplified = simplify_negation(context, + pos, *ctor.argument())) { - return ConstructorDiagonalMatrix::Make(context, originalExpr.fLine, ctor.type(), - std::move(simplified)); + return ConstructorDiagonalMatrix::Make(context, pos, ctor.type(), + std::move(simplified)); } } break; @@ -71,9 +75,9 @@ static std::unique_ptr simplify_negation(const Context& context, if (value->isCompileTimeConstant()) { const ConstructorSplat& ctor = value->as(); if (std::unique_ptr simplified = simplify_negation(context, + pos, *ctor.argument())) { - return ConstructorSplat::Make(context, originalExpr.fLine, ctor.type(), - std::move(simplified)); + return ConstructorSplat::Make(context, pos, ctor.type(), std::move(simplified)); } } break; @@ -82,8 +86,8 @@ static std::unique_ptr simplify_negation(const Context& context, // Convert `-vecN(literal, ...)` into `vecN(-literal, ...)`. if (value->isCompileTimeConstant()) { const ConstructorCompound& ctor = value->as(); - return ConstructorCompound::Make(context, originalExpr.fLine, ctor.type(), - negate_operands(context, ctor.arguments())); + return ConstructorCompound::Make(context, pos, ctor.type(), + negate_operands(context, pos, ctor.arguments())); } break; @@ -93,33 +97,37 @@ static std::unique_ptr simplify_negation(const Context& context, return nullptr; } -static ExpressionArray negate_operands(const Context& context, const ExpressionArray& array) { +static ExpressionArray negate_operands(const Context& context, + Position pos, + const ExpressionArray& array) { ExpressionArray replacement; replacement.reserve_back(array.size()); for (const std::unique_ptr& expr : array) { // The logic below is very similar to `negate_operand`, but with different ownership rules. - if (std::unique_ptr simplified = simplify_negation(context, *expr)) { + if (std::unique_ptr simplified = simplify_negation(context, pos, *expr)) { replacement.push_back(std::move(simplified)); } else { - replacement.push_back(std::make_unique(Token::Kind::TK_MINUS, - expr->clone())); + replacement.push_back(std::make_unique(pos, Operator::Kind::MINUS, + expr->clone())); } } return replacement; } static std::unique_ptr negate_operand(const Context& context, + Position pos, std::unique_ptr value) { // Attempt to simplify this negation (e.g. eliminate double negation, literal values) - if (std::unique_ptr simplified = simplify_negation(context, *value)) { + if (std::unique_ptr simplified = simplify_negation(context, pos, *value)) { return simplified; } // No simplified form; convert expression to Prefix(TK_MINUS, expression). - return std::make_unique(Token::Kind::TK_MINUS, std::move(value)); + return std::make_unique(pos, Operator::Kind::MINUS, std::move(value)); } static std::unique_ptr logical_not_operand(const Context& context, + Position pos, std::unique_ptr operand) { const Expression* value = ConstantFolder::GetConstantValueForVariable(*operand); switch (value->kind()) { @@ -127,12 +135,13 @@ static std::unique_ptr logical_not_operand(const Context& context, // Convert !boolLiteral(true) to boolLiteral(false). SkASSERT(value->type().isBoolean()); const Literal& b = value->as(); - return Literal::MakeBool(operand->fLine, !b.boolValue(), &operand->type()); + return Literal::MakeBool(pos, !b.boolValue(), &operand->type()); } case Expression::Kind::kPrefix: { // Convert `!(!expression)` into `expression`. PrefixExpression& prefix = operand->as(); - if (prefix.getOperator().kind() == Token::Kind::TK_LOGICALNOT) { + if (prefix.getOperator().kind() == Operator::Kind::LOGICALNOT) { + prefix.operand()->fPosition = pos; return std::move(prefix.operand()); } break; @@ -142,34 +151,33 @@ static std::unique_ptr logical_not_operand(const Context& context, } // No simplified form; convert expression to Prefix(TK_LOGICALNOT, expression). - return std::make_unique(Token::Kind::TK_LOGICALNOT, std::move(operand)); + return std::make_unique(pos, Operator::Kind::LOGICALNOT, std::move(operand)); } -std::unique_ptr PrefixExpression::Convert(const Context& context, - Operator op, - std::unique_ptr base) { +std::unique_ptr PrefixExpression::Convert(const Context& context, Position pos, + Operator op, std::unique_ptr base) { const Type& baseType = base->type(); switch (op.kind()) { - case Token::Kind::TK_PLUS: + case Operator::Kind::PLUS: if (baseType.isArray() || !baseType.componentType().isNumber()) { - context.fErrors->error(base->fLine, + context.fErrors->error(pos, "'+' cannot operate on '" + baseType.displayName() + "'"); return nullptr; } break; - case Token::Kind::TK_MINUS: + case Operator::Kind::MINUS: if (baseType.isArray() || !baseType.componentType().isNumber()) { - context.fErrors->error(base->fLine, + context.fErrors->error(pos, "'-' cannot operate on '" + baseType.displayName() + "'"); return nullptr; } break; - case Token::Kind::TK_PLUSPLUS: - case Token::Kind::TK_MINUSMINUS: + case Operator::Kind::PLUSPLUS: + case Operator::Kind::MINUSMINUS: if (!baseType.isNumber()) { - context.fErrors->error(base->fLine, + context.fErrors->error(pos, "'" + std::string(op.tightOperatorName()) + "' cannot operate on '" + baseType.displayName() + "'"); return nullptr; @@ -180,25 +188,25 @@ std::unique_ptr PrefixExpression::Convert(const Context& context, } break; - case Token::Kind::TK_LOGICALNOT: + case Operator::Kind::LOGICALNOT: if (!baseType.isBoolean()) { - context.fErrors->error(base->fLine, + context.fErrors->error(pos, "'" + std::string(op.tightOperatorName()) + "' cannot operate on '" + baseType.displayName() + "'"); return nullptr; } break; - case Token::Kind::TK_BITWISENOT: + case Operator::Kind::BITWISENOT: if (context.fConfig->strictES2Mode()) { // GLSL ES 1.00, Section 5.1 context.fErrors->error( - base->fLine, + pos, "operator '" + std::string(op.tightOperatorName()) + "' is not allowed"); return nullptr; } if (baseType.isArray() || !baseType.componentType().isInteger()) { - context.fErrors->error(base->fLine, + context.fErrors->error(pos, "'" + std::string(op.tightOperatorName()) + "' cannot operate on '" + baseType.displayName() + "'"); return nullptr; @@ -216,33 +224,36 @@ std::unique_ptr PrefixExpression::Convert(const Context& context, SK_ABORT("unsupported prefix operator"); } - return PrefixExpression::Make(context, op, std::move(base)); + std::unique_ptr result = PrefixExpression::Make(context, pos, op, std::move(base)); + SkASSERT(result->fPosition == pos); + return result; } -std::unique_ptr PrefixExpression::Make(const Context& context, Operator op, - std::unique_ptr base) { +std::unique_ptr PrefixExpression::Make(const Context& context, Position pos, + Operator op, std::unique_ptr base) { switch (op.kind()) { - case Token::Kind::TK_PLUS: + case Operator::Kind::PLUS: SkASSERT(!base->type().isArray()); SkASSERT(base->type().componentType().isNumber()); + base->fPosition = pos; return base; - case Token::Kind::TK_MINUS: + case Operator::Kind::MINUS: SkASSERT(!base->type().isArray()); SkASSERT(base->type().componentType().isNumber()); - return negate_operand(context, std::move(base)); + return negate_operand(context, pos, std::move(base)); - case Token::Kind::TK_LOGICALNOT: + case Operator::Kind::LOGICALNOT: SkASSERT(base->type().isBoolean()); - return logical_not_operand(context, std::move(base)); + return logical_not_operand(context, pos, std::move(base)); - case Token::Kind::TK_PLUSPLUS: - case Token::Kind::TK_MINUSMINUS: + case Operator::Kind::PLUSPLUS: + case Operator::Kind::MINUSMINUS: SkASSERT(base->type().isNumber()); SkASSERT(Analysis::IsAssignable(*base)); break; - case Token::Kind::TK_BITWISENOT: + case Operator::Kind::BITWISENOT: SkASSERT(!context.fConfig->strictES2Mode()); SkASSERT(!base->type().isArray()); SkASSERT(base->type().componentType().isInteger()); @@ -253,7 +264,7 @@ std::unique_ptr PrefixExpression::Make(const Context& context, Opera SkDEBUGFAILF("unsupported prefix operator: %s", op.operatorName()); } - return std::make_unique(op, std::move(base)); + return std::make_unique(pos, op, std::move(base)); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLPrefixExpression.h b/third_party/skia/src/sksl/ir/SkSLPrefixExpression.h index a10d2b2729da..26be8d10c50e 100644 --- a/third_party/skia/src/sksl/ir/SkSLPrefixExpression.h +++ b/third_party/skia/src/sksl/ir/SkSLPrefixExpression.h @@ -8,8 +8,7 @@ #ifndef SKSL_PREFIXEXPRESSION #define SKSL_PREFIXEXPRESSION -#include "src/sksl/SkSLLexer.h" -#include "src/sksl/SkSLOperators.h" +#include "include/sksl/SkSLOperator.h" #include "src/sksl/ir/SkSLExpression.h" #include @@ -24,17 +23,17 @@ class PrefixExpression final : public Expression { inline static constexpr Kind kExpressionKind = Kind::kPrefix; // Use PrefixExpression::Make to automatically simplify various prefix expression types. - PrefixExpression(Operator op, std::unique_ptr operand) - : INHERITED(operand->fLine, kExpressionKind, &operand->type()) + PrefixExpression(Position pos, Operator op, std::unique_ptr operand) + : INHERITED(pos, kExpressionKind, &operand->type()) , fOperator(op) , fOperand(std::move(operand)) {} // Creates an SkSL prefix expression; uses the ErrorReporter to report errors. - static std::unique_ptr Convert(const Context& context, Operator op, + static std::unique_ptr Convert(const Context& context, Position pos, Operator op, std::unique_ptr base); // Creates an SkSL prefix expression; reports errors via ASSERT. - static std::unique_ptr Make(const Context& context, Operator op, + static std::unique_ptr Make(const Context& context, Position pos, Operator op, std::unique_ptr base); Operator getOperator() const { @@ -51,15 +50,16 @@ class PrefixExpression final : public Expression { bool hasProperty(Property property) const override { if (property == Property::kSideEffects && - (this->getOperator().kind() == Token::Kind::TK_PLUSPLUS || - this->getOperator().kind() == Token::Kind::TK_MINUSMINUS)) { + (this->getOperator().kind() == Operator::Kind::PLUSPLUS || + this->getOperator().kind() == Operator::Kind::MINUSMINUS)) { return true; } return this->operand()->hasProperty(property); } std::unique_ptr clone() const override { - return std::make_unique(this->getOperator(), this->operand()->clone()); + return std::make_unique(fPosition, this->getOperator(), + this->operand()->clone()); } std::string description() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLProgram.h b/third_party/skia/src/sksl/ir/SkSLProgram.h index 056a35331b2d..e69621fb2b40 100644 --- a/third_party/skia/src/sksl/ir/SkSLProgram.h +++ b/third_party/skia/src/sksl/ir/SkSLProgram.h @@ -22,7 +22,7 @@ #include "src/sksl/ir/SkSLSymbolTable.h" #ifdef SK_VULKAN -#include "src/gpu/vk/GrVkCaps.h" +#include "src/gpu/ganesh/vk/GrVkCaps.h" #endif // name of the uniform used to handle features that are sensitive to whether Y is flipped. diff --git a/third_party/skia/src/sksl/ir/SkSLReturnStatement.h b/third_party/skia/src/sksl/ir/SkSLReturnStatement.h index 9de7f7980511..4ce5bcfaf0cd 100644 --- a/third_party/skia/src/sksl/ir/SkSLReturnStatement.h +++ b/third_party/skia/src/sksl/ir/SkSLReturnStatement.h @@ -20,12 +20,13 @@ class ReturnStatement final : public Statement { public: inline static constexpr Kind kStatementKind = Kind::kReturn; - ReturnStatement(int line, std::unique_ptr expression) - : INHERITED(line, kStatementKind) + ReturnStatement(Position pos, std::unique_ptr expression) + : INHERITED(pos, kStatementKind) , fExpression(std::move(expression)) {} - static std::unique_ptr Make(int line, std::unique_ptr expression) { - return std::make_unique(line, std::move(expression)); + static std::unique_ptr Make(Position pos, + std::unique_ptr expression) { + return std::make_unique(pos, std::move(expression)); } std::unique_ptr& expression() { @@ -41,7 +42,7 @@ class ReturnStatement final : public Statement { } std::unique_ptr clone() const override { - return std::make_unique(fLine, + return std::make_unique(fPosition, this->expression() ? this->expression()->clone() : nullptr); } diff --git a/third_party/skia/src/sksl/ir/SkSLSetting.cpp b/third_party/skia/src/sksl/ir/SkSLSetting.cpp index 5d42380bd4fb..fff93c281543 100644 --- a/third_party/skia/src/sksl/ir/SkSLSetting.cpp +++ b/third_party/skia/src/sksl/ir/SkSLSetting.cpp @@ -21,7 +21,7 @@ class CapsLookupMethod { public: virtual ~CapsLookupMethod() {} virtual const Type* type(const Context& context) const = 0; - virtual std::unique_ptr value(const Context& context) const = 0; + virtual std::unique_ptr value(const Context& context, Position pos) const = 0; }; class BoolCapsLookup : public CapsLookupMethod { @@ -33,8 +33,8 @@ class BoolCapsLookup : public CapsLookupMethod { const Type* type(const Context& context) const override { return context.fTypes.fBool.get(); } - std::unique_ptr value(const Context& context) const override { - return Literal::MakeBool(context, /*line=*/-1, (context.fCaps.*fGetCap)()); + std::unique_ptr value(const Context& context, Position pos) const override { + return Literal::MakeBool(context, pos, (context.fCaps.*fGetCap)()); } private: @@ -50,8 +50,8 @@ class IntCapsLookup : public CapsLookupMethod { const Type* type(const Context& context) const override { return context.fTypes.fInt.get(); } - std::unique_ptr value(const Context& context) const override { - return Literal::MakeInt(context, /*line=*/-1, (context.fCaps.*fGetCap)()); + std::unique_ptr value(const Context& context, Position pos) const override { + return Literal::MakeInt(context, pos, (context.fCaps.*fGetCap)()); } private: @@ -64,17 +64,17 @@ class CapsLookupTable { CapsLookupTable(std::initializer_list capsLookups) { for (auto& entry : capsLookups) { - fMap[entry.first] = std::unique_ptr(entry.second); + fMap.set(entry.first, std::unique_ptr(entry.second)); } } const CapsLookupMethod* lookup(std::string_view name) const { - auto iter = fMap.find(name); - return (iter != fMap.end()) ? iter->second.get() : nullptr; + std::unique_ptr* iter = fMap.find(name); + return iter ? iter->get() : nullptr; } private: - std::unordered_map> fMap; + SkTHashMap> fMap; }; static const CapsLookupTable& caps_lookup_table() { @@ -104,37 +104,37 @@ static const CapsLookupTable& caps_lookup_table() { } // namespace -static const Type* get_type(const Context& context, int line, std::string_view name) { +static const Type* get_type(const Context& context, Position pos, std::string_view name) { if (const CapsLookupMethod* caps = caps_lookup_table().lookup(name)) { return caps->type(context); } - context.fErrors->error(line, "unknown capability flag '" + std::string(name) + "'"); + context.fErrors->error(pos, "unknown capability flag '" + std::string(name) + "'"); return nullptr; } -static std::unique_ptr get_value(const Context& context, int line, +static std::unique_ptr get_value(const Context& context, Position pos, const std::string_view& name) { if (const CapsLookupMethod* caps = caps_lookup_table().lookup(name)) { - return caps->value(context); + return caps->value(context, pos); } - context.fErrors->error(line, "unknown capability flag '" + std::string(name) + "'"); + context.fErrors->error(pos, "unknown capability flag '" + std::string(name) + "'"); return nullptr; } -std::unique_ptr Setting::Convert(const Context& context, int line, +std::unique_ptr Setting::Convert(const Context& context, Position pos, const std::string_view& name) { SkASSERT(context.fConfig); if (context.fConfig->fSettings.fReplaceSettings) { // Insert the settings value directly into the IR. - return get_value(context, line, name); + return get_value(context, pos, name); } // Generate a Setting IRNode. - const Type* type = get_type(context, line, name); - return type ? std::make_unique(line, name, type) : nullptr; + const Type* type = get_type(context, pos, name); + return type ? std::make_unique(pos, name, type) : nullptr; } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLSetting.h b/third_party/skia/src/sksl/ir/SkSLSetting.h index a0d42f444291..7b0d63a725af 100644 --- a/third_party/skia/src/sksl/ir/SkSLSetting.h +++ b/third_party/skia/src/sksl/ir/SkSLSetting.h @@ -22,19 +22,19 @@ class Setting final : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kSetting; - Setting(int line, std::string_view name, const Type* type) - : INHERITED(line, kExpressionKind, type) + Setting(Position pos, std::string_view name, const Type* type) + : INHERITED(pos, kExpressionKind, type) , fName(std::move(name)) {} // Creates an SkSL setting expression if `fReplaceSettings` is false, or the current value of // the setting when it is true. Reports errors via the ErrorReporter. // (There's no failsafe Make equivalent, because there really isn't a good fallback expression // to produce when the `name` lookup fails. We wouldn't even know the expected type.) - static std::unique_ptr Convert(const Context& context, int line, + static std::unique_ptr Convert(const Context& context, Position pos, const std::string_view& name); std::unique_ptr clone() const override { - return std::make_unique(fLine, this->name(), &this->type()); + return std::make_unique(fPosition, this->name(), &this->type()); } const std::string_view& name() const { diff --git a/third_party/skia/src/sksl/ir/SkSLStructDefinition.h b/third_party/skia/src/sksl/ir/SkSLStructDefinition.h index 5ca75a19b37a..ea90a589de0e 100644 --- a/third_party/skia/src/sksl/ir/SkSLStructDefinition.h +++ b/third_party/skia/src/sksl/ir/SkSLStructDefinition.h @@ -28,8 +28,8 @@ class StructDefinition final : public ProgramElement { public: inline static constexpr Kind kProgramElementKind = Kind::kStructDefinition; - StructDefinition(int line, const Type& type) - : INHERITED(line, kProgramElementKind) + StructDefinition(Position pos, const Type& type) + : INHERITED(pos, kProgramElementKind) , fType(&type) {} const Type& type() const { @@ -37,7 +37,7 @@ class StructDefinition final : public ProgramElement { } std::unique_ptr clone() const override { - return std::make_unique(fLine, this->type()); + return std::make_unique(fPosition, this->type()); } std::string description() const override { diff --git a/third_party/skia/src/sksl/ir/SkSLSwitchCase.h b/third_party/skia/src/sksl/ir/SkSLSwitchCase.h index 28f229369b1f..db0fa9f691dc 100644 --- a/third_party/skia/src/sksl/ir/SkSLSwitchCase.h +++ b/third_party/skia/src/sksl/ir/SkSLSwitchCase.h @@ -22,14 +22,15 @@ class SwitchCase final : public Statement { public: inline static constexpr Kind kStatementKind = Kind::kSwitchCase; - static std::unique_ptr Make(int line, SKSL_INT value, + static std::unique_ptr Make(Position pos, SKSL_INT value, std::unique_ptr statement) { - return std::unique_ptr(new SwitchCase(line, /*isDefault=*/false, value, + return std::unique_ptr(new SwitchCase(pos, /*isDefault=*/false, value, std::move(statement))); } - static std::unique_ptr MakeDefault(int line, std::unique_ptr statement) { - return std::unique_ptr(new SwitchCase(line, /*isDefault=*/true, -1, + static std::unique_ptr MakeDefault(Position pos, + std::unique_ptr statement) { + return std::unique_ptr(new SwitchCase(pos, /*isDefault=*/true, -1, std::move(statement))); } @@ -51,8 +52,8 @@ class SwitchCase final : public Statement { } std::unique_ptr clone() const override { - return fDefault ? SwitchCase::MakeDefault(fLine, this->statement()->clone()) - : SwitchCase::Make(fLine, this->value(), this->statement()->clone()); + return fDefault ? SwitchCase::MakeDefault(fPosition, this->statement()->clone()) + : SwitchCase::Make(fPosition, this->value(), this->statement()->clone()); } std::string description() const override { @@ -66,8 +67,8 @@ class SwitchCase final : public Statement { } private: - SwitchCase(int line, bool isDefault, SKSL_INT value, std::unique_ptr statement) - : INHERITED(line, kStatementKind) + SwitchCase(Position pos, bool isDefault, SKSL_INT value, std::unique_ptr statement) + : INHERITED(pos, kStatementKind) , fDefault(isDefault) , fValue(std::move(value)) , fStatement(std::move(statement)) {} diff --git a/third_party/skia/src/sksl/ir/SkSLSwitchStatement.cpp b/third_party/skia/src/sksl/ir/SkSLSwitchStatement.cpp index eae88a2c0a21..266627477da0 100644 --- a/third_party/skia/src/sksl/ir/SkSLSwitchStatement.cpp +++ b/third_party/skia/src/sksl/ir/SkSLSwitchStatement.cpp @@ -27,7 +27,7 @@ std::unique_ptr SwitchStatement::clone() const { for (const std::unique_ptr& stmt : this->cases()) { cases.push_back(stmt->clone()); } - return std::make_unique(fLine, + return std::make_unique(fPosition, this->isStatic(), this->value()->clone(), std::move(cases), @@ -86,8 +86,8 @@ static void move_all_but_break(std::unique_ptr& stmt, StatementArray* move_all_but_break(blockStmt, &blockStmts); } - target->push_back(Block::Make(block.fLine, std::move(blockStmts), - block.symbolTable(), block.isScope())); + target->push_back(Block::Make(block.fPosition, std::move(blockStmts), block.blockKind(), + block.symbolTable())); break; } @@ -154,11 +154,12 @@ std::unique_ptr SwitchStatement::BlockForCase(StatementArray* cases, } // Return our newly-synthesized block. - return Block::Make(caseToCapture->fLine, std::move(caseStmts), std::move(symbolTable)); + return Block::Make(caseToCapture->fPosition, std::move(caseStmts), Block::Kind::kBracedScope, + std::move(symbolTable)); } std::unique_ptr SwitchStatement::Convert(const Context& context, - int line, + Position pos, bool isStatic, std::unique_ptr value, ExpressionArray caseValues, @@ -174,7 +175,7 @@ std::unique_ptr SwitchStatement::Convert(const Context& context, StatementArray cases; for (int i = 0; i < caseValues.count(); ++i) { if (caseValues[i]) { - int caseLine = caseValues[i]->fLine; + Position casePos = caseValues[i]->fPosition; // Case values must be constant integers of the same type as the switch value std::unique_ptr caseValue = value->type().coerceExpression( std::move(caseValues[i]), context); @@ -183,12 +184,12 @@ std::unique_ptr SwitchStatement::Convert(const Context& context, } SKSL_INT intValue; if (!ConstantFolder::GetConstantInt(*caseValue, &intValue)) { - context.fErrors->error(caseValue->fLine, "case value must be a constant integer"); + context.fErrors->error(casePos, "case value must be a constant integer"); return nullptr; } - cases.push_back(SwitchCase::Make(caseLine, intValue, std::move(caseStatements[i]))); + cases.push_back(SwitchCase::Make(casePos, intValue, std::move(caseStatements[i]))); } else { - cases.push_back(SwitchCase::MakeDefault(line, std::move(caseStatements[i]))); + cases.push_back(SwitchCase::MakeDefault(pos, std::move(caseStatements[i]))); } } @@ -199,21 +200,21 @@ std::unique_ptr SwitchStatement::Convert(const Context& context, duplicateCases.reverse(); for (const SwitchCase* sc : duplicateCases) { if (sc->isDefault()) { - context.fErrors->error(sc->fLine, "duplicate default case"); + context.fErrors->error(sc->fPosition, "duplicate default case"); } else { - context.fErrors->error(sc->fLine, "duplicate case value '" + + context.fErrors->error(sc->fPosition, "duplicate case value '" + std::to_string(sc->value()) + "'"); } } return nullptr; } - return SwitchStatement::Make(context, line, isStatic, std::move(value), std::move(cases), + return SwitchStatement::Make(context, pos, isStatic, std::move(value), std::move(cases), std::move(symbolTable)); } std::unique_ptr SwitchStatement::Make(const Context& context, - int line, + Position pos, bool isStatic, std::unique_ptr value, StatementArray cases, @@ -263,16 +264,15 @@ std::unique_ptr SwitchStatement::Make(const Context& context, } // Report an error if this was a static switch and BlockForCase failed us. - if (isStatic && !context.fConfig->fSettings.fPermitInvalidStaticTests) { - context.fErrors->error(value->fLine, - "static switch contains non-static conditional exit"); + if (isStatic) { + context.fErrors->error(pos, "static switch contains non-static conditional exit"); return nullptr; } } } // The switch couldn't be optimized away; emit it normally. - return std::make_unique(line, isStatic, std::move(value), std::move(cases), + return std::make_unique(pos, isStatic, std::move(value), std::move(cases), std::move(symbolTable)); } diff --git a/third_party/skia/src/sksl/ir/SkSLSwitchStatement.h b/third_party/skia/src/sksl/ir/SkSLSwitchStatement.h index dcca7f38b889..1218cd41ac34 100644 --- a/third_party/skia/src/sksl/ir/SkSLSwitchStatement.h +++ b/third_party/skia/src/sksl/ir/SkSLSwitchStatement.h @@ -26,9 +26,9 @@ class SwitchStatement final : public Statement { public: inline static constexpr Kind kStatementKind = Kind::kSwitch; - SwitchStatement(int line, bool isStatic, std::unique_ptr value, + SwitchStatement(Position pos, bool isStatic, std::unique_ptr value, StatementArray cases, std::shared_ptr symbols) - : INHERITED(line, kStatementKind) + : INHERITED(pos, kStatementKind) , fIsStatic(isStatic) , fValue(std::move(value)) , fCases(std::move(cases)) @@ -38,7 +38,7 @@ class SwitchStatement final : public Statement { // Coerces case values to the proper type and reports an error if cases are duplicated. // Reports errors via the ErrorReporter. static std::unique_ptr Convert(const Context& context, - int line, + Position pos, bool isStatic, std::unique_ptr value, ExpressionArray caseValues, @@ -48,7 +48,7 @@ class SwitchStatement final : public Statement { // Create a `switch` statement with an array of SwitchCases. The array of SwitchCases must // already contain non-overlapping, correctly-typed case values. Reports errors via ASSERT. static std::unique_ptr Make(const Context& context, - int line, + Position pos, bool isStatic, std::unique_ptr value, StatementArray cases, diff --git a/third_party/skia/src/sksl/ir/SkSLSwizzle.cpp b/third_party/skia/src/sksl/ir/SkSLSwizzle.cpp index 918d23810ca2..91121b3d95de 100644 --- a/third_party/skia/src/sksl/ir/SkSLSwizzle.cpp +++ b/third_party/skia/src/sksl/ir/SkSLSwizzle.cpp @@ -107,6 +107,7 @@ static std::string mask_string(const ComponentArray& components) { } static std::unique_ptr optimize_constructor_swizzle(const Context& context, + Position pos, const AnyConstructor& base, ComponentArray components) { auto baseArguments = base.argumentSpan(); @@ -220,19 +221,20 @@ static std::unique_ptr optimize_constructor_swizzle(const Context& c if (reorderedArg.fComponents.empty()) { newArgs.push_back(std::move(newArg)); } else { - newArgs.push_back(Swizzle::Make(context, std::move(newArg), + newArgs.push_back(Swizzle::Make(context, pos, std::move(newArg), reorderedArg.fComponents)); } } // Wrap the new argument list in a constructor. return Constructor::Convert(context, - base.fLine, + pos, componentType.toCompound(context, swizzleSize, /*rows=*/1), std::move(newArgs)); } std::unique_ptr Swizzle::Convert(const Context& context, + Position pos, std::unique_ptr base, std::string_view maskString) { ComponentArray components; @@ -257,12 +259,12 @@ std::unique_ptr Swizzle::Convert(const Context& context, case 'q': components.push_back(SwizzleComponent::Q); break; case 'B': components.push_back(SwizzleComponent::UB); break; default: - context.fErrors->error(base->fLine, + context.fErrors->error(pos, String::printf("invalid swizzle component '%c'", field)); return nullptr; } } - return Convert(context, std::move(base), std::move(components)); + return Convert(context, pos, std::move(base), std::move(components)); } // Swizzles are complicated due to constant components. The most difficult case is a mask like @@ -271,25 +273,24 @@ std::unique_ptr Swizzle::Convert(const Context& context, // secondary swizzle to put them back into the right order, so in this case we end up with // 'float4(base.xw, 1, 0).xzyw'. std::unique_ptr Swizzle::Convert(const Context& context, + Position pos, std::unique_ptr base, ComponentArray inComponents) { if (!validate_swizzle_domain(inComponents)) { - context.fErrors->error(base->fLine, - "invalid swizzle mask '" + mask_string(inComponents) + "'"); + context.fErrors->error(pos, "invalid swizzle mask '" + mask_string(inComponents) + "'"); return nullptr; } - const int line = base->fLine; const Type& baseType = base->type(); if (!baseType.isVector() && !baseType.isScalar()) { context.fErrors->error( - line, "cannot swizzle value of type '" + baseType.displayName() + "'"); + pos, "cannot swizzle value of type '" + baseType.displayName() + "'"); return nullptr; } if (inComponents.count() > 4) { - context.fErrors->error(line, + context.fErrors->error(pos, "too many components in swizzle mask '" + mask_string(inComponents) + "'"); return nullptr; } @@ -341,14 +342,14 @@ std::unique_ptr Swizzle::Convert(const Context& context, [[fallthrough]]; default: // The swizzle component references a field that doesn't exist in the base type. - context.fErrors->error(line, String::printf("invalid swizzle component '%c'", + context.fErrors->error(pos, String::printf("invalid swizzle component '%c'", mask_char(inComponents[i]))); return nullptr; } } if (!foundXYZW) { - context.fErrors->error(line, "swizzle must refer to base expression"); + context.fErrors->error(pos, "swizzle must refer to base expression"); return nullptr; } @@ -363,7 +364,7 @@ std::unique_ptr Swizzle::Convert(const Context& context, // scalar.x0x0 -> type2(scalar) // vector.zyx -> vector.zyx // vector.x0y0 -> vector.xy - std::unique_ptr expr = Swizzle::Make(context, std::move(base), maskComponents); + std::unique_ptr expr = Swizzle::Make(context, pos, std::move(base), maskComponents); // If we have processed the entire swizzle, we're done. if (maskComponents.count() == inComponents.count()) { @@ -398,8 +399,8 @@ std::unique_ptr Swizzle::Convert(const Context& context, if (constantZeroIdx == -1) { // Synthesize a 'type(0)' argument at the end of the constructor. constructorArgs.push_back(ConstructorScalarCast::Make( - context, line, *scalarType, - Literal::MakeInt(context, line, /*value=*/0))); + context, pos, *scalarType, + Literal::MakeInt(context, pos, /*value=*/0))); constantZeroIdx = constantFieldIdx++; } swizzleComponents.push_back(constantZeroIdx); @@ -408,8 +409,8 @@ std::unique_ptr Swizzle::Convert(const Context& context, if (constantOneIdx == -1) { // Synthesize a 'type(1)' argument at the end of the constructor. constructorArgs.push_back(ConstructorScalarCast::Make( - context, line, *scalarType, - Literal::MakeInt(context, line, /*value=*/1))); + context, pos, *scalarType, + Literal::MakeInt(context, pos, /*value=*/1))); constantOneIdx = constantFieldIdx++; } swizzleComponents.push_back(constantOneIdx); @@ -421,17 +422,18 @@ std::unique_ptr Swizzle::Convert(const Context& context, } } - expr = Constructor::Convert(context, line, + expr = Constructor::Convert(context, pos, scalarType->toCompound(context, constantFieldIdx, /*rows=*/1), std::move(constructorArgs)); if (!expr) { return nullptr; } - return Swizzle::Make(context, std::move(expr), swizzleComponents); + return Swizzle::Make(context, pos, std::move(expr), swizzleComponents); } std::unique_ptr Swizzle::Make(const Context& context, + Position pos, std::unique_ptr expr, ComponentArray components) { const Type& exprType = expr->type(); @@ -450,13 +452,12 @@ std::unique_ptr Swizzle::Make(const Context& context, // SkSL supports splatting a scalar via `scalar.xxxx`, but not all versions of GLSL allow this. // Replace swizzles with equivalent splat constructors (`scalar.xxx` --> `half3(value)`). if (exprType.isScalar()) { - int line = expr->fLine; - return ConstructorSplat::Make(context, line, + return ConstructorSplat::Make(context, pos, exprType.toCompound(context, components.size(), /*rows=*/1), std::move(expr)); } - // Detect identity swizzles like `color.rgba` and return the base-expression as-is. + // Detect identity swizzles like `color.rgba` and optimize it away. if (components.count() == exprType.columns()) { bool identity = true; for (int i = 0; i < components.count(); ++i) { @@ -466,6 +467,7 @@ std::unique_ptr Swizzle::Make(const Context& context, } } if (identity) { + expr->fPosition = pos; return expr; } } @@ -480,7 +482,7 @@ std::unique_ptr Swizzle::Make(const Context& context, // It may actually be possible to further simplify this swizzle. Go again. // (e.g. `color.abgr.abgr` --> `color.rgba` --> `color`.) - return Swizzle::Make(context, std::move(base.base()), combined); + return Swizzle::Make(context, pos, std::move(base.base()), combined); } // If we are swizzling a constant expression, we can use its value instead here (so that @@ -493,7 +495,7 @@ std::unique_ptr Swizzle::Make(const Context& context, if (value->is()) { const ConstructorSplat& splat = value->as(); return ConstructorSplat::Make( - context, splat.fLine, + context, pos, splat.type().componentType().toCompound(context, components.size(), /*rows=*/1), splat.argument()->clone()); } @@ -501,13 +503,13 @@ std::unique_ptr Swizzle::Make(const Context& context, // Optimize swizzles of constructors. if (value->isAnyConstructor()) { const AnyConstructor& ctor = value->asAnyConstructor(); - if (auto replacement = optimize_constructor_swizzle(context, ctor, components)) { + if (auto replacement = optimize_constructor_swizzle(context, pos, ctor, components)) { return replacement; } } // The swizzle could not be simplified, so apply the requested swizzle to the base expression. - return std::make_unique(context, std::move(expr), components); + return std::make_unique(context, pos, std::move(expr), components); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLSwizzle.h b/third_party/skia/src/sksl/ir/SkSLSwizzle.h index 728595d5e812..2bdeebafe31d 100644 --- a/third_party/skia/src/sksl/ir/SkSLSwizzle.h +++ b/third_party/skia/src/sksl/ir/SkSLSwizzle.h @@ -22,9 +22,9 @@ namespace SkSL { struct Swizzle final : public Expression { inline static constexpr Kind kExpressionKind = Kind::kSwizzle; - Swizzle(const Context& context, std::unique_ptr base, + Swizzle(const Context& context, Position pos, std::unique_ptr base, const ComponentArray& components) - : INHERITED(base->fLine, kExpressionKind, + : INHERITED(pos, kExpressionKind, &base->type().componentType().toCompound(context, components.size(), 1)) , fBase(std::move(base)) , fComponents(components) { @@ -35,16 +35,19 @@ struct Swizzle final : public Expression { // errors via ErrorReporter, and returns an expression that combines constructors and native // swizzles (comprised solely of X/Y/W/Z). static std::unique_ptr Convert(const Context& context, + Position pos, std::unique_ptr base, ComponentArray inComponents); static std::unique_ptr Convert(const Context& context, + Position pos, std::unique_ptr base, std::string_view maskString); // Swizzle::Make does not permit ZERO or ONE in the component array, just X/Y/Z/W; errors are // reported via ASSERT. static std::unique_ptr Make(const Context& context, + Position pos, std::unique_ptr expr, ComponentArray inComponents); @@ -65,8 +68,8 @@ struct Swizzle final : public Expression { } std::unique_ptr clone() const override { - return std::unique_ptr(new Swizzle(&this->type(), this->base()->clone(), - this->components())); + return std::unique_ptr(new Swizzle(fPosition, &this->type(), + this->base()->clone(), this->components())); } std::string description() const override { @@ -78,8 +81,9 @@ struct Swizzle final : public Expression { } private: - Swizzle(const Type* type, std::unique_ptr base, const ComponentArray& components) - : INHERITED(base->fLine, kExpressionKind, type) + Swizzle(Position pos, const Type* type, std::unique_ptr base, + const ComponentArray& components) + : INHERITED(pos, kExpressionKind, type) , fBase(std::move(base)) , fComponents(components) { SkASSERT(this->components().size() >= 1 && this->components().size() <= 4); diff --git a/third_party/skia/src/sksl/ir/SkSLSymbolTable.cpp b/third_party/skia/src/sksl/ir/SkSLSymbolTable.cpp index dc19006beb92..aa9489afaff2 100644 --- a/third_party/skia/src/sksl/ir/SkSLSymbolTable.cpp +++ b/third_party/skia/src/sksl/ir/SkSLSymbolTable.cpp @@ -94,8 +94,8 @@ void SymbolTable::addWithoutOwnership(const Symbol* symbol) { } if (!symbol->is()) { - fContext.fErrors->error(symbol->fLine, "symbol '" + std::string(name) + - "' was already defined"); + fContext.fErrors->error(symbol->fPosition, "symbol '" + std::string(name) + + "' was already defined"); return; } diff --git a/third_party/skia/src/sksl/ir/SkSLTernaryExpression.cpp b/third_party/skia/src/sksl/ir/SkSLTernaryExpression.cpp index 6360fb643682..c8368b5a8545 100644 --- a/third_party/skia/src/sksl/ir/SkSLTernaryExpression.cpp +++ b/third_party/skia/src/sksl/ir/SkSLTernaryExpression.cpp @@ -8,15 +8,18 @@ #include "src/sksl/ir/SkSLTernaryExpression.h" #include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLOperator.h" +#include "src/sksl/SkSLAnalysis.h" #include "src/sksl/SkSLConstantFolder.h" #include "src/sksl/SkSLContext.h" -#include "src/sksl/SkSLOperators.h" #include "src/sksl/SkSLProgramSettings.h" +#include "src/sksl/ir/SkSLBinaryExpression.h" #include "src/sksl/ir/SkSLLiteral.h" namespace SkSL { std::unique_ptr TernaryExpression::Convert(const Context& context, + Position pos, std::unique_ptr test, std::unique_ptr ifTrue, std::unique_ptr ifFalse) { @@ -24,27 +27,26 @@ std::unique_ptr TernaryExpression::Convert(const Context& context, if (!test || !ifTrue || !ifFalse) { return nullptr; } - int line = test->fLine; + if (ifTrue->type().componentType().isOpaque()) { + context.fErrors->error(pos, "ternary expression of opaque type '" + + ifTrue->type().displayName() + "' not allowed"); + return nullptr; + } const Type* trueType; const Type* falseType; const Type* resultType; - Operator equalityOp(Token::Kind::TK_EQEQ); + Operator equalityOp(Operator::Kind::EQEQ); if (!equalityOp.determineBinaryType(context, ifTrue->type(), ifFalse->type(), &trueType, &falseType, &resultType) || !trueType->matches(*falseType)) { - context.fErrors->error(line, "ternary operator result mismatch: '" + - ifTrue->type().displayName() + "', '" + - ifFalse->type().displayName() + "'"); - return nullptr; - } - if (trueType->componentType().isOpaque()) { - context.fErrors->error(line, "ternary expression of opaque type '" + - trueType->displayName() + "' not allowed"); + context.fErrors->error(ifTrue->fPosition.rangeThrough(ifFalse->fPosition), + "ternary operator result mismatch: '" + ifTrue->type().displayName() + "', '" + + ifFalse->type().displayName() + "'"); return nullptr; } if (context.fConfig->strictES2Mode() && trueType->isOrContainsArray()) { - context.fErrors->error(line, "ternary operator result may not be an array (or struct " - "containing an array)"); + context.fErrors->error(pos, "ternary operator result may not be an array (or struct " + "containing an array)"); return nullptr; } ifTrue = trueType->coerceExpression(std::move(ifTrue), context); @@ -55,10 +57,12 @@ std::unique_ptr TernaryExpression::Convert(const Context& context, if (!ifFalse) { return nullptr; } - return TernaryExpression::Make(context, std::move(test), std::move(ifTrue), std::move(ifFalse)); + return TernaryExpression::Make(context, pos, std::move(test), std::move(ifTrue), + std::move(ifFalse)); } std::unique_ptr TernaryExpression::Make(const Context& context, + Position pos, std::unique_ptr test, std::unique_ptr ifTrue, std::unique_ptr ifFalse) { @@ -69,11 +73,28 @@ std::unique_ptr TernaryExpression::Make(const Context& context, const Expression* testExpr = ConstantFolder::GetConstantValueForVariable(*test); if (testExpr->isBoolLiteral()) { // static boolean test, just return one of the branches - return testExpr->as().boolValue() ? std::move(ifTrue) - : std::move(ifFalse); + if (testExpr->as().boolValue()) { + ifTrue->fPosition = pos; + return ifTrue; + } else { + ifFalse->fPosition = pos; + return ifFalse; + } + } + + // A ternary with matching true- and false-cases can be reduced to `(test, ifTrue)`. + // If `test` has no side-effects, it will be optimized away by the constant-folder as well. + if (context.fConfig->fSettings.fOptimize) { + const Expression* ifTrueExpr = ConstantFolder::GetConstantValueForVariable(*ifTrue); + const Expression* ifFalseExpr = ConstantFolder::GetConstantValueForVariable(*ifFalse); + + if (Analysis::IsSameExpressionTree(*ifTrueExpr, *ifFalseExpr)) { + return BinaryExpression::Make(context, pos, std::move(test), + Operator::Kind::COMMA, std::move(ifTrue)); + } } - return std::make_unique(test->fLine, std::move(test), std::move(ifTrue), + return std::make_unique(pos, std::move(test), std::move(ifTrue), std::move(ifFalse)); } diff --git a/third_party/skia/src/sksl/ir/SkSLTernaryExpression.h b/third_party/skia/src/sksl/ir/SkSLTernaryExpression.h index 5c8b3e0dc5b4..398984814040 100644 --- a/third_party/skia/src/sksl/ir/SkSLTernaryExpression.h +++ b/third_party/skia/src/sksl/ir/SkSLTernaryExpression.h @@ -19,9 +19,9 @@ class TernaryExpression final : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kTernary; - TernaryExpression(int line, std::unique_ptr test, - std::unique_ptr ifTrue, std::unique_ptr ifFalse) - : INHERITED(line, kExpressionKind, &ifTrue->type()) + TernaryExpression(Position pos, std::unique_ptr test, + std::unique_ptr ifTrue, std::unique_ptr ifFalse) + : INHERITED(pos, kExpressionKind, &ifTrue->type()) , fTest(std::move(test)) , fIfTrue(std::move(ifTrue)) , fIfFalse(std::move(ifFalse)) { @@ -31,12 +31,14 @@ class TernaryExpression final : public Expression { // Creates a potentially-simplified form of the ternary. Typechecks and coerces input // expressions; reports errors via ErrorReporter. static std::unique_ptr Convert(const Context& context, - std::unique_ptr test, - std::unique_ptr ifTrue, - std::unique_ptr ifFalse); + Position pos, + std::unique_ptr test, + std::unique_ptr ifTrue, + std::unique_ptr ifFalse); // Creates a potentially-simplified form of the ternary; reports errors via ASSERT. static std::unique_ptr Make(const Context& context, + Position pos, std::unique_ptr test, std::unique_ptr ifTrue, std::unique_ptr ifFalse); @@ -76,7 +78,7 @@ class TernaryExpression final : public Expression { } std::unique_ptr clone() const override { - return std::make_unique(fLine, this->test()->clone(), + return std::make_unique(fPosition, this->test()->clone(), this->ifTrue()->clone(), this->ifFalse()->clone()); } diff --git a/third_party/skia/src/sksl/ir/SkSLType.cpp b/third_party/skia/src/sksl/ir/SkSLType.cpp index 9c6dcf52c798..d54ce9021274 100644 --- a/third_party/skia/src/sksl/ir/SkSLType.cpp +++ b/third_party/skia/src/sksl/ir/SkSLType.cpp @@ -429,8 +429,8 @@ class StructType final : public Type { public: inline static constexpr TypeKind kTypeKind = TypeKind::kStruct; - StructType(int line, std::string_view name, std::vector fields, bool interfaceBlock) - : INHERITED(std::move(name), "S", kTypeKind, line) + StructType(Position pos, std::string_view name, std::vector fields, bool interfaceBlock) + : INHERITED(std::move(name), "S", kTypeKind, pos) , fFields(std::move(fields)) , fInterfaceBlock(interfaceBlock) {} @@ -565,9 +565,9 @@ std::unique_ptr Type::MakeScalarType(std::string_view name, const char* ab } -std::unique_ptr Type::MakeStructType(int line, std::string_view name, +std::unique_ptr Type::MakeStructType(Position pos, std::string_view name, std::vector fields, bool interfaceBlock) { - return std::make_unique(line, name, std::move(fields), interfaceBlock); + return std::make_unique(pos, name, std::move(fields), interfaceBlock); } std::unique_ptr Type::MakeTextureType(const char* name, SpvDim_ dimensions, bool isDepth, @@ -622,7 +622,7 @@ CoercionCost Type::coercionCost(const Type& other) const { const Type* Type::applyPrecisionQualifiers(const Context& context, Modifiers* modifiers, SymbolTable* symbols, - int line) const { + Position pos) const { // SkSL doesn't support low precision, so `lowp` is interpreted as medium precision. bool highp = modifiers->fFlags & Modifiers::kHighp_Flag; bool mediump = modifiers->fFlags & Modifiers::kMediump_Flag; @@ -636,12 +636,12 @@ const Type* Type::applyPrecisionQualifiers(const Context& context, if (!ProgramConfig::IsRuntimeEffect(context.fConfig->fKind)) { // We want to discourage precision modifiers internally. Instead, use the type that // corresponds to the precision you need. (e.g. half vs float, short vs int) - context.fErrors->error(line, "precision qualifiers are not allowed"); + context.fErrors->error(pos, "precision qualifiers are not allowed"); return nullptr; } if ((int(lowp) + int(mediump) + int(highp)) != 1) { - context.fErrors->error(line, "only one precision qualifier can be used"); + context.fErrors->error(pos, "only one precision qualifier can be used"); return nullptr; } @@ -685,7 +685,7 @@ const Type* Type::applyPrecisionQualifiers(const Context& context, } } - context.fErrors->error(line, "type '" + this->displayName() + + context.fErrors->error(pos, "type '" + this->displayName() + "' does not support precision qualifiers"); return nullptr; } @@ -846,7 +846,7 @@ const Type* Type::clone(SymbolTable* symbolTable) const { case TypeKind::kStruct: { const std::string* name = symbolTable->takeOwnershipOfString(std::string(this->name())); return symbolTable->add(Type::MakeStructType( - this->fLine, *name, this->fields(), this->isInterfaceBlock())); + this->fPosition, *name, this->fields(), this->isInterfaceBlock())); } default: SkDEBUGFAILF("don't know how to clone type '%s'", this->description().c_str()); @@ -863,24 +863,24 @@ std::unique_ptr Type::coerceExpression(std::unique_ptr e return expr; } - const int line = expr->fLine; + const Position pos = expr->fPosition; const Program::Settings& settings = context.fConfig->fSettings; if (!expr->coercionCost(*this).isPossible(settings.fAllowNarrowingConversions)) { - context.fErrors->error(line, "expected '" + this->displayName() + "', but found '" + - expr->type().displayName() + "'"); + context.fErrors->error(pos, "expected '" + this->displayName() + "', but found '" + + expr->type().displayName() + "'"); return nullptr; } if (this->isScalar()) { - return ConstructorScalarCast::Make(context, line, *this, std::move(expr)); + return ConstructorScalarCast::Make(context, pos, *this, std::move(expr)); } if (this->isVector() || this->isMatrix()) { - return ConstructorCompoundCast::Make(context, line, *this, std::move(expr)); + return ConstructorCompoundCast::Make(context, pos, *this, std::move(expr)); } if (this->isArray()) { - return ConstructorArrayCast::Make(context, line, *this, std::move(expr)); + return ConstructorArrayCast::Make(context, pos, *this, std::move(expr)); } - context.fErrors->error(line, "cannot construct '" + this->displayName() + "'"); + context.fErrors->error(pos, "cannot construct '" + this->displayName() + "'"); return nullptr; } @@ -938,7 +938,7 @@ bool Type::checkForOutOfRangeLiteral(const Context& context, const Expression& e std::optional slotVal = valueExpr->getConstantValue(slot); // Check for Literal values that are out of range for the base type. if (slotVal.has_value() && - baseType.checkForOutOfRangeLiteral(context, *slotVal, valueExpr->fLine)) { + baseType.checkForOutOfRangeLiteral(context, *slotVal, valueExpr->fPosition)) { foundError = true; } } @@ -949,13 +949,13 @@ bool Type::checkForOutOfRangeLiteral(const Context& context, const Expression& e return foundError; } -bool Type::checkForOutOfRangeLiteral(const Context& context, double value, int line) const { +bool Type::checkForOutOfRangeLiteral(const Context& context, double value, Position pos) const { SkASSERT(this->isScalar()); if (this->isInteger()) { if (value < this->minimumValue() || value > this->maximumValue()) { // We found a value that can't fit in the type. Flag it as an error. context.fErrors->error( - line, + pos, SkSL::String::printf("integer is out of range for type '%s': %.0f", this->displayName().c_str(), std::floor(value))); @@ -965,35 +965,36 @@ bool Type::checkForOutOfRangeLiteral(const Context& context, double value, int l return false; } -SKSL_INT Type::convertArraySize(const Context& context, std::unique_ptr size) const { +SKSL_INT Type::convertArraySize(const Context& context, Position arrayPos, + std::unique_ptr size) const { size = context.fTypes.fInt->coerceExpression(std::move(size), context); if (!size) { return 0; } if (this->isArray()) { - context.fErrors->error(size->fLine, "multi-dimensional arrays are not supported"); + context.fErrors->error(arrayPos, "multi-dimensional arrays are not supported"); return 0; } if (this->isVoid()) { - context.fErrors->error(size->fLine, "type 'void' may not be used in an array"); + context.fErrors->error(arrayPos, "type 'void' may not be used in an array"); return 0; } if (this->isOpaque()) { - context.fErrors->error(size->fLine, "opaque type '" + std::string(this->name()) + - "' may not be used in an array"); + context.fErrors->error(arrayPos, "opaque type '" + std::string(this->name()) + + "' may not be used in an array"); return 0; } SKSL_INT count; if (!ConstantFolder::GetConstantInt(*size, &count)) { - context.fErrors->error(size->fLine, "array size must be an integer"); + context.fErrors->error(size->fPosition, "array size must be an integer"); return 0; } if (count <= 0) { - context.fErrors->error(size->fLine, "array size must be positive"); + context.fErrors->error(size->fPosition, "array size must be positive"); return 0; } if (!SkTFitsIn(count)) { - context.fErrors->error(size->fLine, "array size is too large"); + context.fErrors->error(size->fPosition, "array size is too large"); return 0; } return static_cast(count); diff --git a/third_party/skia/src/sksl/ir/SkSLType.h b/third_party/skia/src/sksl/ir/SkSLType.h index b692c2594ac3..4ac7d96b7248 100644 --- a/third_party/skia/src/sksl/ir/SkSLType.h +++ b/third_party/skia/src/sksl/ir/SkSLType.h @@ -60,8 +60,9 @@ class Type : public Symbol { inline static constexpr int kMaxAbbrevLength = 3; struct Field { - Field(Modifiers modifiers, std::string_view name, const Type* type) - : fModifiers(modifiers) + Field(Position pos, Modifiers modifiers, std::string_view name, const Type* type) + : fPosition(pos) + , fModifiers(modifiers) , fName(name) , fType(std::move(type)) {} @@ -69,6 +70,7 @@ class Type : public Symbol { return fType->displayName() + " " + std::string(fName) + ";"; } + Position fPosition; Modifiers fModifiers; std::string_view fName; const Type* fType; @@ -146,7 +148,7 @@ class Type : public Symbol { Type::TypeKind typeKind); /** Creates a struct type with the given fields. */ - static std::unique_ptr MakeStructType(int line, + static std::unique_ptr MakeStructType(Position pos, std::string_view name, std::vector fields, bool interfaceBlock = false); @@ -509,7 +511,7 @@ class Type : public Symbol { const Type* applyPrecisionQualifiers(const Context& context, Modifiers* modifiers, SymbolTable* symbols, - int line) const; + Position pos) const; /** * Coerces the passed-in expression to this type. If the types are incompatible, reports an @@ -522,17 +524,19 @@ class Type : public Symbol { bool checkForOutOfRangeLiteral(const Context& context, const Expression& expr) const; /** Checks if `value` can fit in this type. The type must be scalar. */ - bool checkForOutOfRangeLiteral(const Context& context, double value, int line) const; + bool checkForOutOfRangeLiteral(const Context& context, double value, Position pos) const; /** * Verifies that the expression is a valid constant array size for this type. Returns the array * size, or zero if the expression isn't a valid literal value. */ - SKSL_INT convertArraySize(const Context& context, std::unique_ptr size) const; + SKSL_INT convertArraySize(const Context& context, Position arrayPos, + std::unique_ptr size) const; protected: - Type(std::string_view name, const char* abbrev, TypeKind kind, int line = -1) - : INHERITED(line, kSymbolKind, name) + Type(std::string_view name, const char* abbrev, TypeKind kind, + Position pos = Position()) + : INHERITED(pos, kSymbolKind, name) , fTypeKind(kind) { SkASSERT(strlen(abbrev) <= kMaxAbbrevLength); strcpy(fAbbreviatedName, abbrev); diff --git a/third_party/skia/src/sksl/ir/SkSLTypeReference.cpp b/third_party/skia/src/sksl/ir/SkSLTypeReference.cpp index ba1e491f15ac..e2d41634ced8 100644 --- a/third_party/skia/src/sksl/ir/SkSLTypeReference.cpp +++ b/third_party/skia/src/sksl/ir/SkSLTypeReference.cpp @@ -13,20 +13,20 @@ namespace SkSL { std::unique_ptr TypeReference::Convert(const Context& context, - int line, + Position pos, const Type* type) { if (!type->isAllowedInES2(context)) { - context.fErrors->error(line, "type '" + type->displayName() + "' is not supported"); + context.fErrors->error(pos, "type '" + type->displayName() + "' is not supported"); return nullptr; } - return TypeReference::Make(context, line, type); + return TypeReference::Make(context, pos, type); } std::unique_ptr TypeReference::Make(const Context& context, - int line, + Position pos, const Type* type) { SkASSERT(type->isAllowedInES2(context)); - return std::make_unique(context, line, type); + return std::make_unique(context, pos, type); } } // namespace SkSL diff --git a/third_party/skia/src/sksl/ir/SkSLTypeReference.h b/third_party/skia/src/sksl/ir/SkSLTypeReference.h index 3e779810a963..624f3c68bc9e 100644 --- a/third_party/skia/src/sksl/ir/SkSLTypeReference.h +++ b/third_party/skia/src/sksl/ir/SkSLTypeReference.h @@ -21,16 +21,17 @@ class TypeReference final : public Expression { public: inline static constexpr Kind kExpressionKind = Kind::kTypeReference; - TypeReference(const Context& context, int line, const Type* value) - : TypeReference(line, value, context.fTypes.fInvalid.get()) {} + TypeReference(const Context& context, Position pos, const Type* value) + : TypeReference(pos, value, context.fTypes.fInvalid.get()) {} // Creates a reference to an SkSL type; uses the ErrorReporter to report errors. static std::unique_ptr Convert(const Context& context, - int line, + Position pos, const Type* type); // Creates a reference to an SkSL type; reports errors via ASSERT. - static std::unique_ptr Make(const Context& context, int line, const Type* type); + static std::unique_ptr Make(const Context& context, Position pos, + const Type* type); const Type& value() const { return fValue; @@ -45,12 +46,13 @@ class TypeReference final : public Expression { } std::unique_ptr clone() const override { - return std::unique_ptr(new TypeReference(fLine, &this->value(), &this->type())); + return std::unique_ptr(new TypeReference(fPosition, &this->value(), + &this->type())); } private: - TypeReference(int line, const Type* value, const Type* type) - : INHERITED(line, kExpressionKind, type) + TypeReference(Position pos, const Type* value, const Type* type) + : INHERITED(pos, kExpressionKind, type) , fValue(*value) {} const Type& fValue; diff --git a/third_party/skia/src/sksl/ir/SkSLUnresolvedFunction.h b/third_party/skia/src/sksl/ir/SkSLUnresolvedFunction.h index ed52dd66d018..9374f4fbd908 100644 --- a/third_party/skia/src/sksl/ir/SkSLUnresolvedFunction.h +++ b/third_party/skia/src/sksl/ir/SkSLUnresolvedFunction.h @@ -20,7 +20,7 @@ class UnresolvedFunction final : public Symbol { inline static constexpr Kind kSymbolKind = Kind::kUnresolvedFunction; UnresolvedFunction(std::vector funcs) - : INHERITED(-1, kSymbolKind, funcs[0]->name()) + : INHERITED(Position(), kSymbolKind, funcs[0]->name()) , fFunctions(std::move(funcs)) { #ifdef SK_DEBUG SkASSERT(!this->functions().empty()); diff --git a/third_party/skia/src/sksl/ir/SkSLVarDeclarations.cpp b/third_party/skia/src/sksl/ir/SkSLVarDeclarations.cpp index 72f3ec54199a..c6f179d37d13 100644 --- a/third_party/skia/src/sksl/ir/SkSLVarDeclarations.cpp +++ b/third_party/skia/src/sksl/ir/SkSLVarDeclarations.cpp @@ -59,52 +59,53 @@ std::string VarDeclaration::description() const { } void VarDeclaration::ErrorCheck(const Context& context, - int line, + Position pos, + Position modifiersPosition, const Modifiers& modifiers, const Type* baseType, Variable::Storage storage) { if (baseType->matches(*context.fTypes.fInvalid)) { - context.fErrors->error(line, "invalid type"); + context.fErrors->error(pos, "invalid type"); return; } if (baseType->isVoid()) { - context.fErrors->error(line, "variables of type 'void' are not allowed"); + context.fErrors->error(pos, "variables of type 'void' are not allowed"); return; } if (context.fConfig->strictES2Mode() && baseType->isArray()) { - context.fErrors->error(line, "array size must appear after variable name"); + context.fErrors->error(pos, "array size must appear after variable name"); } if (baseType->componentType().isOpaque() && storage != Variable::Storage::kGlobal) { - context.fErrors->error(line, + context.fErrors->error(pos, "variables of type '" + baseType->displayName() + "' must be global"); } if ((modifiers.fFlags & Modifiers::kIn_Flag) && baseType->isMatrix()) { - context.fErrors->error(line, "'in' variables may not have matrix type"); + context.fErrors->error(pos, "'in' variables may not have matrix type"); } if ((modifiers.fFlags & Modifiers::kIn_Flag) && (modifiers.fFlags & Modifiers::kUniform_Flag)) { - context.fErrors->error(line, "'in uniform' variables not permitted"); + context.fErrors->error(pos, "'in uniform' variables not permitted"); } if (ProgramConfig::IsRuntimeEffect(context.fConfig->fKind)) { if (modifiers.fFlags & Modifiers::kIn_Flag) { - context.fErrors->error(line, "'in' variables not permitted in runtime effects"); + context.fErrors->error(pos, "'in' variables not permitted in runtime effects"); } } if (baseType->isEffectChild() && !(modifiers.fFlags & Modifiers::kUniform_Flag)) { - context.fErrors->error(line, + context.fErrors->error(pos, "variables of type '" + baseType->displayName() + "' must be uniform"); } if (modifiers.fFlags & SkSL::Modifiers::kUniform_Flag && (context.fConfig->fKind == ProgramKind::kCustomMeshVertex || context.fConfig->fKind == ProgramKind::kCustomMeshFragment)) { - context.fErrors->error(line, "uniforms are not permitted in custom mesh shaders"); + context.fErrors->error(pos, "uniforms are not permitted in custom mesh shaders"); } if (modifiers.fLayout.fFlags & Layout::kColor_Flag) { if (!ProgramConfig::IsRuntimeEffect(context.fConfig->fKind)) { - context.fErrors->error(line, "'layout(color)' is only permitted in runtime effects"); + context.fErrors->error(pos, "'layout(color)' is only permitted in runtime effects"); } if (!(modifiers.fFlags & Modifiers::kUniform_Flag)) { - context.fErrors->error(line, + context.fErrors->error(pos, "'layout(color)' is only permitted on 'uniform' variables"); } auto validColorXformType = [](const Type& t) { @@ -113,7 +114,7 @@ void VarDeclaration::ErrorCheck(const Context& context, }; if (!validColorXformType(*baseType) && !(baseType->isArray() && validColorXformType(baseType->componentType()))) { - context.fErrors->error(line, + context.fErrors->error(pos, "'layout(color)' is not permitted on variables of type '" + baseType->displayName() + "'"); } @@ -139,7 +140,7 @@ void VarDeclaration::ErrorCheck(const Context& context, permittedLayoutFlags &= ~Layout::kBinding_Flag; permittedLayoutFlags &= ~Layout::kSet_Flag; } - modifiers.checkPermitted(context, line, permitted, permittedLayoutFlags); + modifiers.checkPermitted(context, modifiersPosition, permitted, permittedLayoutFlags); } bool VarDeclaration::ErrorCheckAndCoerce(const Context& context, const Variable& var, @@ -148,25 +149,26 @@ bool VarDeclaration::ErrorCheckAndCoerce(const Context& context, const Variable& if (baseType->isArray()) { baseType = &baseType->componentType(); } - ErrorCheck(context, var.fLine, var.modifiers(), baseType, var.storage()); + ErrorCheck(context, var.fPosition, var.modifiersPosition(), var.modifiers(), baseType, + var.storage()); if (value) { if (var.type().isOpaque()) { - context.fErrors->error(value->fLine, "opaque type '" + var.type().displayName() + - "' cannot use initializer expressions"); + context.fErrors->error(value->fPosition, "opaque type '" + var.type().displayName() + + "' cannot use initializer expressions"); return false; } if (var.modifiers().fFlags & Modifiers::kIn_Flag) { - context.fErrors->error(value->fLine, + context.fErrors->error(value->fPosition, "'in' variables cannot use initializer expressions"); return false; } if (var.modifiers().fFlags & Modifiers::kUniform_Flag) { - context.fErrors->error(value->fLine, + context.fErrors->error(value->fPosition, "'uniform' variables cannot use initializer expressions"); return false; } if (var.storage() == Variable::Storage::kInterfaceBlock) { - context.fErrors->error(value->fLine, + context.fErrors->error(value->fPosition, "initializers are not permitted on interface block fields"); return false; } @@ -177,25 +179,25 @@ bool VarDeclaration::ErrorCheckAndCoerce(const Context& context, const Variable& } if (var.modifiers().fFlags & Modifiers::kConst_Flag) { if (!value) { - context.fErrors->error(var.fLine, "'const' variables must be initialized"); + context.fErrors->error(var.fPosition, "'const' variables must be initialized"); return false; } if (!Analysis::IsConstantExpression(*value)) { - context.fErrors->error(value->fLine, + context.fErrors->error(value->fPosition, "'const' variable initializer must be a constant expression"); return false; } } if (var.storage() == Variable::Storage::kInterfaceBlock) { if (var.type().isOpaque()) { - context.fErrors->error(var.fLine, "opaque type '" + var.type().displayName() + - "' is not permitted in an interface block"); + context.fErrors->error(var.fPosition, "opaque type '" + var.type().displayName() + + "' is not permitted in an interface block"); return false; } } if (var.storage() == Variable::Storage::kGlobal) { if (value && !Analysis::IsConstantExpression(*value)) { - context.fErrors->error(value->fLine, + context.fErrors->error(value->fPosition, "global variable initializer must be a constant expression"); return false; } @@ -232,11 +234,11 @@ std::unique_ptr VarDeclaration::Convert(const Context& context, var->name() == Compiler::RTADJUST_NAME) { // `sk_RTAdjust` is special, and makes the IR generator emit position-fixup expressions. if (ThreadContext::RTAdjustState().fVar || ThreadContext::RTAdjustState().fInterfaceBlock) { - context.fErrors->error(var->fLine, "duplicate definition of 'sk_RTAdjust'"); + context.fErrors->error(var->fPosition, "duplicate definition of 'sk_RTAdjust'"); return nullptr; } if (!var->type().matches(*context.fTypes.fFloat4)) { - context.fErrors->error(var->fLine, "sk_RTAdjust must have type 'float4'"); + context.fErrors->error(var->fPosition, "sk_RTAdjust must have type 'float4'"); return nullptr; } ThreadContext::RTAdjustState().fVar = var.get(); diff --git a/third_party/skia/src/sksl/ir/SkSLVarDeclarations.h b/third_party/skia/src/sksl/ir/SkSLVarDeclarations.h index b2fe8cb09f96..c5d135f83f77 100644 --- a/third_party/skia/src/sksl/ir/SkSLVarDeclarations.h +++ b/third_party/skia/src/sksl/ir/SkSLVarDeclarations.h @@ -33,7 +33,7 @@ class VarDeclaration final : public Statement { int arraySize, std::unique_ptr value, bool isClone = false) - : INHERITED(var->fLine, kStatementKind) + : INHERITED(var->fPosition, kStatementKind) , fVar(var) , fBaseType(*baseType) , fArraySize(arraySize) @@ -50,8 +50,8 @@ class VarDeclaration final : public Statement { // Checks the modifiers, baseType, and storage for compatibility with one another and reports // errors if needed. This method is implicitly called during Convert(), but is also explicitly // called while processing interface block fields. - static void ErrorCheck(const Context& context, int line, const Modifiers& modifiers, - const Type* baseType, Variable::Storage storage); + static void ErrorCheck(const Context& context, Position pos, Position modifiersPosition, + const Modifiers& modifiers, const Type* baseType, Variable::Storage storage); // Does proper error checking and type coercion; reports errors via ErrorReporter. static std::unique_ptr Convert(const Context& context, std::unique_ptr var, @@ -118,7 +118,7 @@ class GlobalVarDeclaration final : public ProgramElement { inline static constexpr Kind kProgramElementKind = Kind::kGlobalVar; GlobalVarDeclaration(std::unique_ptr decl) - : INHERITED(decl->fLine, kProgramElementKind) + : INHERITED(decl->fPosition, kProgramElementKind) , fDeclaration(std::move(decl)) { SkASSERT(this->declaration()->is()); } diff --git a/third_party/skia/src/sksl/ir/SkSLVariable.cpp b/third_party/skia/src/sksl/ir/SkSLVariable.cpp index cfbead74a446..1eccb99edb76 100644 --- a/third_party/skia/src/sksl/ir/SkSLVariable.cpp +++ b/third_party/skia/src/sksl/ir/SkSLVariable.cpp @@ -29,36 +29,40 @@ const Expression* Variable::initialValue() const { return fDeclaration ? fDeclaration->value().get() : nullptr; } -std::unique_ptr Variable::Convert(const Context& context, int line, - const Modifiers& modifiers, const Type* baseType, std::string_view name, bool isArray, - std::unique_ptr arraySize, Variable::Storage storage) { +std::unique_ptr Variable::Convert(const Context& context, Position pos, + Position modifiersPos, const Modifiers& modifiers, const Type* baseType, + std::string_view name, bool isArray, std::unique_ptr arraySize, + Variable::Storage storage) { if (modifiers.fLayout.fLocation == 0 && modifiers.fLayout.fIndex == 0 && (modifiers.fFlags & Modifiers::kOut_Flag) && context.fConfig->fKind == ProgramKind::kFragment && name != Compiler::FRAGCOLOR_NAME) { - context.fErrors->error(line, "out location=0, index=0 is reserved for sk_FragColor"); + context.fErrors->error(modifiersPos, + "out location=0, index=0 is reserved for sk_FragColor"); } if (!context.fConfig->fIsBuiltinCode && skstd::starts_with(name, '$')) { - context.fErrors->error(line, "name '" + std::string(name) + "' is reserved"); + context.fErrors->error(pos, "name '" + std::string(name) + "' is reserved"); } - return Make(context, line, modifiers, baseType, name, isArray, std::move(arraySize), storage); + return Make(context, pos, modifiersPos, modifiers, baseType, name, isArray, + std::move(arraySize), storage); } -std::unique_ptr Variable::Make(const Context& context, int line, - const Modifiers& modifiers, const Type* baseType, std::string_view name, bool isArray, - std::unique_ptr arraySize, Variable::Storage storage) { +std::unique_ptr Variable::Make(const Context& context, Position pos, + Position modifiersPos, const Modifiers& modifiers, const Type* baseType, + std::string_view name, bool isArray, std::unique_ptr arraySize, + Variable::Storage storage) { const Type* type = baseType; int arraySizeValue = 0; if (isArray) { SkASSERT(arraySize); - arraySizeValue = type->convertArraySize(context, std::move(arraySize)); + arraySizeValue = type->convertArraySize(context, pos, std::move(arraySize)); if (!arraySizeValue) { return nullptr; } type = ThreadContext::SymbolTable()->addArrayDimension(type, arraySizeValue); } - return std::make_unique(line, context.fModifiersPool->add(modifiers), name, type, - context.fConfig->fIsBuiltinCode, storage); + return std::make_unique(pos, modifiersPos, context.fModifiersPool->add(modifiers), + name, type, context.fConfig->fIsBuiltinCode, storage); } Variable::ScratchVariable Variable::MakeScratchVariable(const Context& context, @@ -84,7 +88,8 @@ Variable::ScratchVariable Variable::MakeScratchVariable(const Context& context, // Create our new variable and add it to the symbol table. ScratchVariable result; - auto var = std::make_unique(initialValue ? initialValue->fLine : -1, + auto var = std::make_unique(initialValue ? initialValue->fPosition : Position(), + /*modifiersPosition=*/Position(), context.fModifiersPool->add(Modifiers{}), name->c_str(), type, diff --git a/third_party/skia/src/sksl/ir/SkSLVariable.h b/third_party/skia/src/sksl/ir/SkSLVariable.h index c3afa8a20311..2d6d86a61d0e 100644 --- a/third_party/skia/src/sksl/ir/SkSLVariable.h +++ b/third_party/skia/src/sksl/ir/SkSLVariable.h @@ -42,22 +42,25 @@ class Variable final : public Symbol { inline static constexpr Kind kSymbolKind = Kind::kVariable; - Variable(int line, const Modifiers* modifiers, std::string_view name, const Type* type, - bool builtin, Storage storage) - : INHERITED(line, kSymbolKind, name, type) + Variable(Position pos, Position modifiersPosition, const Modifiers* modifiers, + std::string_view name, const Type* type, bool builtin, Storage storage) + : INHERITED(pos, kSymbolKind, name, type) + , fModifiersPosition(modifiersPosition) , fModifiers(modifiers) , fStorage(storage) , fBuiltin(builtin) {} ~Variable() override; - static std::unique_ptr Convert(const Context& context, int line, - const Modifiers& modifiers, const Type* baseType, std::string_view name, bool isArray, - std::unique_ptr arraySize, Variable::Storage storage); + static std::unique_ptr Convert(const Context& context, Position pos, + Position modifiersPos, const Modifiers& modifiers, const Type* baseType, + std::string_view name, bool isArray, std::unique_ptr arraySize, + Variable::Storage storage); - static std::unique_ptr Make(const Context& context, int line, - const Modifiers& modifiers, const Type* baseType, std::string_view name, bool isArray, - std::unique_ptr arraySize, Variable::Storage storage); + static std::unique_ptr Make(const Context& context, Position pos, + Position modifiersPos, const Modifiers& modifiers, const Type* baseType, + std::string_view name, bool isArray, std::unique_ptr arraySize, + Variable::Storage storage); /** * Creates a local scratch variable and the associated VarDeclaration statement. @@ -81,6 +84,10 @@ class Variable final : public Symbol { fModifiers = modifiers; } + Position modifiersPosition() const { + return fModifiersPosition; + } + bool isBuiltin() const { return fBuiltin; } @@ -109,6 +116,8 @@ class Variable final : public Symbol { private: VarDeclaration* fDeclaration = nullptr; + // We don't store the position in the Modifiers object itself because they are pooled + Position fModifiersPosition; const Modifiers* fModifiers; VariableStorage fStorage; bool fBuiltin; diff --git a/third_party/skia/src/sksl/ir/SkSLVariableReference.cpp b/third_party/skia/src/sksl/ir/SkSLVariableReference.cpp index f072689bcc51..b9c10ada374b 100644 --- a/third_party/skia/src/sksl/ir/SkSLVariableReference.cpp +++ b/third_party/skia/src/sksl/ir/SkSLVariableReference.cpp @@ -14,8 +14,8 @@ namespace SkSL { -VariableReference::VariableReference(int line, const Variable* variable, RefKind refKind) - : INHERITED(line, kExpressionKind, &variable->type()) +VariableReference::VariableReference(Position pos, const Variable* variable, RefKind refKind) + : INHERITED(pos, kExpressionKind, &variable->type()) , fVariable(variable) , fRefKind(refKind) { SkASSERT(this->variable()); diff --git a/third_party/skia/src/sksl/ir/SkSLVariableReference.h b/third_party/skia/src/sksl/ir/SkSLVariableReference.h index 2bddaa47e26d..195d7e88d3cf 100644 --- a/third_party/skia/src/sksl/ir/SkSLVariableReference.h +++ b/third_party/skia/src/sksl/ir/SkSLVariableReference.h @@ -37,15 +37,15 @@ class VariableReference final : public Expression { inline static constexpr Kind kExpressionKind = Kind::kVariableReference; - VariableReference(int line, const Variable* variable, RefKind refKind); + VariableReference(Position pos, const Variable* variable, RefKind refKind); // Creates a VariableReference. There isn't much in the way of error-checking or optimization // opportunities here. - static std::unique_ptr Make(int line, + static std::unique_ptr Make(Position pos, const Variable* variable, RefKind refKind = RefKind::kRead) { SkASSERT(variable); - return std::make_unique(line, variable, refKind); + return std::make_unique(pos, variable, refKind); } VariableReference(const VariableReference&) = delete; @@ -67,7 +67,7 @@ class VariableReference final : public Expression { bool isConstantOrUniform() const override; std::unique_ptr clone() const override { - return std::make_unique(fLine, this->variable(), this->refKind()); + return std::make_unique(fPosition, this->variable(), this->refKind()); } std::string description() const override; diff --git a/third_party/skia/src/sksl/lex/BUILD.bazel b/third_party/skia/src/sksl/lex/BUILD.bazel index c0833ed3ff59..6ccc281cb62f 100644 --- a/third_party/skia/src/sksl/lex/BUILD.bazel +++ b/third_party/skia/src/sksl/lex/BUILD.bazel @@ -1,4 +1,8 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") + +licenses(["notice"]) + +enforce_iwyu_on_package() cc_binary( name = "sksllex", @@ -35,7 +39,11 @@ generated_cc_atom( srcs = ["Main.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":DFA_hdr", + ":LexUtil_hdr", + ":NFA_hdr", ":NFAtoDFA_hdr", + ":RegexNode_hdr", ":RegexParser_hdr", ":TransitionTable_hdr", ], @@ -62,7 +70,10 @@ generated_cc_atom( name = "NFA_src", srcs = ["NFA.cpp"], visibility = ["//:__subpackages__"], - deps = [":NFA_hdr"], + deps = [ + ":LexUtil_hdr", + ":NFA_hdr", + ], ) generated_cc_atom( @@ -88,6 +99,8 @@ generated_cc_atom( srcs = ["RegexNode.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":LexUtil_hdr", + ":NFAState_hdr", ":NFA_hdr", ":RegexNode_hdr", ], diff --git a/third_party/skia/src/sksl/lex/Main.cpp b/third_party/skia/src/sksl/lex/Main.cpp index 46f6027d52ca..738e386b9973 100644 --- a/third_party/skia/src/sksl/lex/Main.cpp +++ b/third_party/skia/src/sksl/lex/Main.cpp @@ -5,13 +5,20 @@ * found in the LICENSE file. */ +#include "src/sksl/lex/DFA.h" +#include "src/sksl/lex/LexUtil.h" +#include "src/sksl/lex/NFA.h" #include "src/sksl/lex/NFAtoDFA.h" +#include "src/sksl/lex/RegexNode.h" #include "src/sksl/lex/RegexParser.h" #include "src/sksl/lex/TransitionTable.h" -#include +#include +#include +#include #include #include +#include /** * Processes a .lex file and produces .h and .cpp files which implement a lexical analyzer. The .lex @@ -20,7 +27,7 @@ * where is either a regular expression (e.g [0-9]) or a double-quoted literal string. */ -static constexpr const char* HEADER = +static constexpr const char HEADER[] = "/*\n" " * Copyright 2017 Google Inc.\n" " *\n" @@ -38,7 +45,6 @@ static void writeH(const DFA& dfa, const char* lexer, const char* token, out << HEADER; out << "#ifndef SKSL_" << lexer << "\n"; out << "#define SKSL_" << lexer << "\n"; - out << "#include \n"; out << "#include \n"; out << "#include \n"; out << "namespace SkSL {\n"; @@ -54,16 +60,14 @@ static void writeH(const DFA& dfa, const char* lexer, const char* token, )" << token << "() {}"; - out << token << R"((Kind kind, int32_t offset, int32_t length, int32_t line) + out << token << R"((Kind kind, int32_t offset, int32_t length) : fKind(kind) , fOffset(offset) - , fLength(length) - , fLine(line) {} + , fLength(length) {} Kind fKind = Kind::TK_NONE; int32_t fOffset = -1; int32_t fLength = -1; - int32_t fLine = -1; }; class )" << lexer << R"( { @@ -71,29 +75,25 @@ class )" << lexer << R"( { void start(std::string_view text) { fText = text; fOffset = 0; - fLine = 1; } )" << token << R"( next(); struct Checkpoint { int32_t fOffset; - int32_t fLine; }; Checkpoint getCheckpoint() const { - return {fOffset, fLine}; + return {fOffset}; } void rewindToCheckpoint(Checkpoint checkpoint) { fOffset = checkpoint.fOffset; - fLine = checkpoint.fLine; } private: std::string_view fText; int32_t fOffset; - int32_t fLine; }; } // namespace @@ -149,13 +149,13 @@ static void writeCPP(const DFA& dfa, const char* lexer, const char* token, const // a bit. int32_t startOffset = fOffset; if (startOffset == (int32_t)fText.length()) { - return )" << token << "(" << token << R"(::Kind::TK_END_OF_FILE, startOffset, 0, fLine); + return )" << token << "(" << token << R"(::Kind::TK_END_OF_FILE, startOffset, 0); } State state = 1; for (;;) { if (fOffset >= (int32_t)fText.length()) { if (kAccepts[state] == -1) { - return Token(Token::Kind::TK_END_OF_FILE, startOffset, 0, fLine); + return Token(Token::Kind::TK_END_OF_FILE, startOffset, 0); } break; } @@ -169,12 +169,9 @@ static void writeCPP(const DFA& dfa, const char* lexer, const char* token, const } state = newState; ++fOffset; - if (c == '\n') { - ++fLine; - } } Token::Kind kind = ()" << token << R"(::Kind) kAccepts[state]; - return )" << token << R"((kind, startOffset, fOffset - startOffset, fLine); + return )" << token << R"((kind, startOffset, fOffset - startOffset); } } // namespace diff --git a/third_party/skia/src/sksl/lex/NFA.cpp b/third_party/skia/src/sksl/lex/NFA.cpp index 0c94bf7234d0..e73fc154d748 100644 --- a/third_party/skia/src/sksl/lex/NFA.cpp +++ b/third_party/skia/src/sksl/lex/NFA.cpp @@ -7,6 +7,9 @@ #include "src/sksl/lex/NFA.h" +#include "src/sksl/lex/LexUtil.h" +#include + int NFA::match(std::string s) const { std::vector states = fStartStates; for (size_t i = 0; i < s.size(); ++i) { diff --git a/third_party/skia/src/sksl/lex/NFA.h b/third_party/skia/src/sksl/lex/NFA.h index 49d18fcf830a..368fb3ec1947 100644 --- a/third_party/skia/src/sksl/lex/NFA.h +++ b/third_party/skia/src/sksl/lex/NFA.h @@ -11,6 +11,10 @@ #include "src/sksl/lex/NFAState.h" #include "src/sksl/lex/RegexNode.h" +#include +#include +#include + /** * A nondeterministic finite automaton for matching regular expressions. The NFA is initialized with * a number of regular expressions, and then matches a string against all of them simultaneously. diff --git a/third_party/skia/src/sksl/lex/RegexNode.cpp b/third_party/skia/src/sksl/lex/RegexNode.cpp index d2b0f81ac809..aa4e23a8b970 100644 --- a/third_party/skia/src/sksl/lex/RegexNode.cpp +++ b/third_party/skia/src/sksl/lex/RegexNode.cpp @@ -7,7 +7,11 @@ #include "src/sksl/lex/RegexNode.h" +#include "src/sksl/lex/LexUtil.h" #include "src/sksl/lex/NFA.h" +#include "src/sksl/lex/NFAState.h" + +#include std::vector RegexNode::createStates(NFA* nfa, const std::vector& accept) const { std::vector result; diff --git a/third_party/skia/src/sksl/lex/RegexNode.h b/third_party/skia/src/sksl/lex/RegexNode.h index e3aa65b3d125..20c294744ead 100644 --- a/third_party/skia/src/sksl/lex/RegexNode.h +++ b/third_party/skia/src/sksl/lex/RegexNode.h @@ -9,6 +9,7 @@ #define SKSL_REGEXNODE #include +#include #include struct NFA; diff --git a/third_party/skia/src/sksl/lex/RegexParser.cpp b/third_party/skia/src/sksl/lex/RegexParser.cpp index 5d58e63b621c..27c499e66b13 100644 --- a/third_party/skia/src/sksl/lex/RegexParser.cpp +++ b/third_party/skia/src/sksl/lex/RegexParser.cpp @@ -9,6 +9,11 @@ #include "src/sksl/lex/LexUtil.h" +#include +#include +#include +#include + RegexNode RegexParser::parse(std::string source) { fSource = source; fIndex = 0; diff --git a/third_party/skia/src/sksl/lex/TransitionTable.cpp b/third_party/skia/src/sksl/lex/TransitionTable.cpp index 49c27cacb2d0..6874eb5d0edf 100644 --- a/third_party/skia/src/sksl/lex/TransitionTable.cpp +++ b/third_party/skia/src/sksl/lex/TransitionTable.cpp @@ -9,11 +9,12 @@ #include "src/sksl/lex/TransitionTable.h" #include -#include +#include #include #include #include #include +#include #include namespace { diff --git a/third_party/skia/src/sksl/lex/TransitionTable.h b/third_party/skia/src/sksl/lex/TransitionTable.h index cfe2167b2d90..6ac6986fae10 100644 --- a/third_party/skia/src/sksl/lex/TransitionTable.h +++ b/third_party/skia/src/sksl/lex/TransitionTable.h @@ -8,6 +8,7 @@ #ifndef SKSL_TRANSITIONTABLE #define SKSL_TRANSITIONTABLE +#include #include struct DFA; diff --git a/third_party/skia/src/sksl/sksl_gpu.sksl b/third_party/skia/src/sksl/sksl_gpu.sksl index 6e97b80afa10..11733614fefb 100644 --- a/third_party/skia/src/sksl/sksl_gpu.sksl +++ b/third_party/skia/src/sksl/sksl_gpu.sksl @@ -293,14 +293,30 @@ half4 blend_xor(half4 src, half4 dst) { return (1 - dst.a)*src + (1 - src.a)*dst half4 blend_plus(half4 src, half4 dst) { return min(src + dst, 1); } +// This multi-purpose Porter-Duff blend function can perform any of the thirteen blends above, +// when passed one of the following values for BlendOp: +// - SrcOver: half4(1, 0, 0, -1) +// - DstOver: half4(0, 1, -1, 0) +// - SrcIn: half4(0, 0, 1, 0) +// - DstIn: half4(0, 0, 0, 1) +// - SrcOut: half4(0, 0, -1, 0) +// - DstOut: half4(0, 0, 0, -1) +// - SrcATop: half4(0, 0, 1, -1) +// - DstATop: half4(0, 0, -1, 1) +// - Xor: half4(0, 0, -1, -1) +// - Plus: half4(1, 1, 0, 0) +half4 blend_porter_duff(half4 src, half4 dst, half4 blendOp) { + half2 coeff = blendOp.xy + (blendOp.zw * (half2(dst.a, src.a) + min(blendOp.zw, 0))); + return min(half4(1), src * coeff.x + dst * coeff.y); +} + half4 blend_modulate(half4 src, half4 dst) { return src*dst; } half4 blend_screen(half4 src, half4 dst) { return src + (1 - src)*dst; } 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); + return (2*d.x <= d.y) ? 2*s.x*d.x + : s.y*d.y - 2*(d.y - d.x)*(s.y - s.x); } half4 blend_overlay(half4 src, half4 dst) { @@ -312,10 +328,8 @@ half4 blend_overlay(half4 src, half4 dst) { return result; } -half4 blend_darken(half4 src, half4 dst) { - half4 result = blend_src_over(src, dst); - result.rgb = min(result.rgb, (1 - dst.a)*src.rgb + dst.rgb); - return result; +half4 blend_overlay(half4 a, half4 b, bool flip) { + return blend_overlay(flip ? b : a, flip ? a : b); } half4 blend_lighten(half4 src, half4 dst) { @@ -324,6 +338,17 @@ half4 blend_lighten(half4 src, half4 dst) { return result; } +half4 blend_darken(half4 src, half4 dst, half mode /* darken: 1, lighten: -1 */) { + half4 a = blend_src_over(src, dst); + half3 b = (1 - dst.a) * src.rgb + dst.rgb; // DstOver.rgb + a.rgb = mode * min(a.rgb * mode, b.rgb * mode); + return a; +} + +half4 blend_darken(half4 src, half4 dst) { + return blend_darken(src, dst, 1); +} + half $guarded_divide(half n, half d) { return sk_Caps.mustGuardDivisionEvenAfterExplicitZeroCheck ? n/(d + 0.00000001) @@ -375,7 +400,9 @@ half4 blend_color_burn(half4 src, half4 dst) { src.a + (1 - src.a)*dst.a); } -half4 blend_hard_light(half4 src, half4 dst) { return blend_overlay(dst, src); } +half4 blend_hard_light(half4 src, half4 dst) { + return blend_overlay(dst, src); +} half $soft_light_component(half2 s, half2 d) { if (2*s.x <= s.y) { @@ -424,77 +451,51 @@ half3 $blend_set_color_luminance(half3 hueSatColor, half alpha, half3 lumColor) result = lum + (result - lum) * $guarded_divide(lum, (lum - minComp)); } if (maxComp > alpha && maxComp != lum) { - return lum + $guarded_divide((result - lum) * (alpha - lum), (maxComp - lum)); - } else { - return result; + result = lum + $guarded_divide((result - lum) * (alpha - lum), (maxComp - lum)); } + return result; } half $blend_color_saturation(half3 color) { return max(max(color.r, color.g), color.b) - min(min(color.r, color.g), color.b); } -half3 $blend_set_color_saturation_helper(half3 minMidMax, half sat) { - if (minMidMax.r < minMidMax.b) { - return half3(0, - $guarded_divide(sat*(minMidMax.g - minMidMax.r), (minMidMax.b - minMidMax.r)), - sat); - } else { - return half3(0); - } +half3 $blend_set_color_saturation(half3 color, half3 satColor) { + half mn = min(min(color.r, color.g), color.b); + half mx = max(max(color.r, color.g), color.b); + + return (mx > mn) ? ((color - mn) * $blend_color_saturation(satColor)) / (mx - mn) + : half3(0); } -half3 $blend_set_color_saturation(half3 hueLumColor, half3 satColor) { - half sat = $blend_color_saturation(satColor); - if (hueLumColor.r <= hueLumColor.g) { - if (hueLumColor.g <= hueLumColor.b) { - return $blend_set_color_saturation_helper(hueLumColor.rgb, sat); - } else if (hueLumColor.r <= hueLumColor.b) { - return $blend_set_color_saturation_helper(hueLumColor.rbg, sat).rbg; - } else { - return $blend_set_color_saturation_helper(hueLumColor.brg, sat).gbr; - } - } else if (hueLumColor.r <= hueLumColor.b) { - return $blend_set_color_saturation_helper(hueLumColor.grb, sat).grb; - } else if (hueLumColor.g <= hueLumColor.b) { - return $blend_set_color_saturation_helper(hueLumColor.gbr, sat).brg; - } else { - return $blend_set_color_saturation_helper(hueLumColor.bgr, sat).bgr; +half4 blend_hslc(half4 src, half4 dst, bool flip, bool saturate) { + half alpha = dst.a * src.a; + half3 sda = src.rgb * dst.a; + half3 dsa = dst.rgb * src.a; + half3 l = flip ? dsa : sda; + half3 r = flip ? sda : dsa; + if (saturate) { + l = $blend_set_color_saturation(l, r); + r = dsa; } + return half4($blend_set_color_luminance(l, alpha, r) + dst.rgb - dsa + src.rgb - sda, + src.a + dst.a - alpha); } half4 blend_hue(half4 src, half4 dst) { - half alpha = dst.a*src.a; - half3 sda = src.rgb*dst.a; - half3 dsa = dst.rgb*src.a; - return half4($blend_set_color_luminance($blend_set_color_saturation(sda, dsa), alpha, dsa) + - dst.rgb - dsa + src.rgb - sda, - src.a + dst.a - alpha); + return blend_hslc(src, dst, /*flip=*/false, /*saturate=*/true); } half4 blend_saturation(half4 src, half4 dst) { - half alpha = dst.a*src.a; - half3 sda = src.rgb*dst.a; - half3 dsa = dst.rgb*src.a; - return half4($blend_set_color_luminance($blend_set_color_saturation(dsa, sda), alpha, dsa) + - dst.rgb - dsa + src.rgb - sda, - src.a + dst.a - alpha); + return blend_hslc(src, dst, /*flip=*/true, /*saturate=*/true); } half4 blend_color(half4 src, half4 dst) { - half alpha = dst.a*src.a; - half3 sda = src.rgb*dst.a; - half3 dsa = dst.rgb*src.a; - return half4($blend_set_color_luminance(sda, alpha, dsa) + dst.rgb - dsa + src.rgb - sda, - src.a + dst.a - alpha); + return blend_hslc(src, dst, /*flip=*/false, /*saturate=*/false); } half4 blend_luminosity(half4 src, half4 dst) { - half alpha = dst.a*src.a; - half3 sda = src.rgb*dst.a; - half3 dsa = dst.rgb*src.a; - return half4($blend_set_color_luminance(dsa, alpha, sda) + dst.rgb - dsa + src.rgb - sda, - src.a + dst.a - alpha); + return blend_hslc(src, dst, /*flip=*/true, /*saturate=*/false); } // The max() guards against division by zero when the incoming color is transparent black diff --git a/third_party/skia/src/sksl/tracing/BUILD.bazel b/third_party/skia/src/sksl/tracing/BUILD.bazel index 5982387f84e2..f57badbafaaf 100644 --- a/third_party/skia/src/sksl/tracing/BUILD.bazel +++ b/third_party/skia/src/sksl/tracing/BUILD.bazel @@ -1,4 +1,8 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") + +licenses(["notice"]) + +enforce_iwyu_on_package() generated_cc_atom( name = "SkVMDebugTracePlayer_hdr", @@ -6,6 +10,8 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkVMDebugTrace_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkTypes_hdr", "//src/utils:SkBitSet_hdr", ], ) @@ -35,6 +41,10 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkVMDebugTrace_hdr", + "//include/core:SkData_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkStream_hdr", + "//include/core:SkTypes_hdr", "//src/core:SkStreamPriv_hdr", "//src/utils:SkJSONWriter_hdr", "//src/utils:SkJSON_hdr", diff --git a/third_party/skia/src/sksl/tracing/SkVMDebugTrace.cpp b/third_party/skia/src/sksl/tracing/SkVMDebugTrace.cpp index 82cba6e8e525..72d4b50d1301 100644 --- a/third_party/skia/src/sksl/tracing/SkVMDebugTrace.cpp +++ b/third_party/skia/src/sksl/tracing/SkVMDebugTrace.cpp @@ -5,12 +5,23 @@ * found in the LICENSE file. */ -#include "src/core/SkStreamPriv.h" #include "src/sksl/tracing/SkVMDebugTrace.h" + +#ifdef SKSL_ENABLE_TRACING + +#include "include/core/SkData.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkStream.h" +#include "include/core/SkTypes.h" +#include "src/core/SkStreamPriv.h" #include "src/utils/SkJSON.h" #include "src/utils/SkJSONWriter.h" +#include #include +#include +#include +#include static constexpr char kTraceVersion[] = "20220209"; @@ -377,3 +388,28 @@ bool SkVMDebugTrace::readTrace(SkStream* r) { } } // namespace SkSL + +#else // SKSL_ENABLE_TRACING + +#include + +namespace SkSL { + void SkVMDebugTrace::setTraceCoord(const SkIPoint &coord) {} + + void SkVMDebugTrace::setSource(std::string source) {} + + bool SkVMDebugTrace::readTrace(SkStream *r) { return false; } + + void SkVMDebugTrace::writeTrace(SkWStream *w) const {} + + void SkVMDebugTrace::dump(SkWStream *o) const {} + + std::string SkVMDebugTrace::getSlotComponentSuffix(int slotIndex) const { return ""; } + + std::string SkVMDebugTrace::getSlotValue(int slotIndex, int32_t value) const { return ""; } + + double SkVMDebugTrace::interpretValueBits(int slotIndex, int32_t valueBits) const { return 0; } + + std::string SkVMDebugTrace::slotValueToString(int slotIndex, double value) const { return ""; } +} +#endif diff --git a/third_party/skia/src/sksl/tracing/SkVMDebugTrace.h b/third_party/skia/src/sksl/tracing/SkVMDebugTrace.h index ee74ef88d6f1..f863e20c2c04 100644 --- a/third_party/skia/src/sksl/tracing/SkVMDebugTrace.h +++ b/third_party/skia/src/sksl/tracing/SkVMDebugTrace.h @@ -8,11 +8,14 @@ #ifndef SKVMDEBUGTRACE #define SKVMDEBUGTRACE -#include "include/core/SkPoint.h" #include "include/sksl/SkSLDebugTrace.h" + +#include "include/core/SkPoint.h" #include "src/core/SkVM.h" #include "src/sksl/ir/SkSLType.h" +#include +#include #include #include diff --git a/third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.cpp b/third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.cpp index 10763698f823..09fcf385da39 100644 --- a/third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.cpp +++ b/third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.cpp @@ -7,6 +7,11 @@ #include "src/sksl/tracing/SkVMDebugTracePlayer.h" +#include +#include +#include +#include + namespace SkSL { void SkVMDebugTracePlayer::reset(sk_sp debugTrace) { @@ -25,15 +30,17 @@ void SkVMDebugTracePlayer::reset(sk_sp debugTrace) { fDirtyMask.emplace(nslots); fReturnValues.emplace(nslots); - for (size_t slotIdx = 0; slotIdx < nslots; ++slotIdx) { - if (fDebugTrace->fSlotInfo[slotIdx].fnReturnValue >= 0) { - fReturnValues->set(slotIdx); + if (fDebugTrace) { + for (size_t slotIdx = 0; slotIdx < nslots; ++slotIdx) { + if (fDebugTrace->fSlotInfo[slotIdx].fnReturnValue >= 0) { + fReturnValues->set(slotIdx); + } } - } - for (const SkVMTraceInfo& trace : fDebugTrace->fTraceInfo) { - if (trace.op == SkVMTraceInfo::Op::kLine) { - fLineNumbers[trace.data[0]] += 1; + for (const SkVMTraceInfo& trace : fDebugTrace->fTraceInfo) { + if (trace.op == SkVMTraceInfo::Op::kLine) { + fLineNumbers[trace.data[0]] += 1; + } } } } diff --git a/third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.h b/third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.h index eb335b5e233c..c261d85c0e84 100644 --- a/third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.h +++ b/third_party/skia/src/sksl/tracing/SkVMDebugTracePlayer.h @@ -6,11 +6,15 @@ */ #include "src/sksl/tracing/SkVMDebugTrace.h" + +#include "include/core/SkRefCnt.h" +#include "include/core/SkTypes.h" #include "src/utils/SkBitSet.h" #include #include #include +#include namespace SkSL { diff --git a/third_party/skia/src/sksl/transform/BUILD.bazel b/third_party/skia/src/sksl/transform/BUILD.bazel index d4deb48f83d5..96198db220f8 100644 --- a/third_party/skia/src/sksl/transform/BUILD.bazel +++ b/third_party/skia/src/sksl/transform/BUILD.bazel @@ -1,4 +1,8 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") + +licenses(["notice"]) + +enforce_iwyu_on_package() generated_cc_atom( name = "SkSLBuiltinVariableScanner_src", @@ -6,15 +10,23 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSLTransform_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLProgramElement_hdr", "//include/private:SkSLProgramKind_hdr", "//src/sksl:SkSLBuiltinMap_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", "//src/sksl:SkSLCompiler_hdr", "//src/sksl:SkSLContext_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl/analysis:SkSLProgramVisitor_hdr", + "//src/sksl/ir:SkSLExpression_hdr", + "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", "//src/sksl/ir:SkSLInterfaceBlock_hdr", + "//src/sksl/ir:SkSLType_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", + "//src/sksl/ir:SkSLVariableReference_hdr", + "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -26,6 +38,7 @@ generated_cc_atom( ":SkSLTransform_hdr", "//include/private:SkSLProgramElement_hdr", "//src/sksl:SkSLProgramSettings_hdr", + "//src/sksl/ir:SkSLFunctionDeclaration_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", "//src/sksl/ir:SkSLProgram_hdr", ], @@ -38,6 +51,7 @@ generated_cc_atom( deps = [ ":SkSLTransform_hdr", "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLStatement_hdr", "//src/sksl:SkSLProgramSettings_hdr", "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", @@ -51,12 +65,18 @@ generated_cc_atom( deps = [ ":SkSLProgramWriter_hdr", ":SkSLTransform_hdr", + "//include/core:SkTypes_hdr", "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkTHash_hdr", + "//src/sksl:SkSLProgramSettings_hdr", "//src/sksl/ir:SkSLExpressionStatement_hdr", + "//src/sksl/ir:SkSLExpression_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", "//src/sksl/ir:SkSLNop_hdr", "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLVarDeclarations_hdr", + "//src/sksl/ir:SkSLVariable_hdr", ], ) @@ -67,6 +87,7 @@ generated_cc_atom( deps = [ ":SkSLProgramWriter_hdr", ":SkSLTransform_hdr", + "//include/private:SkSLProgramElement_hdr", "//include/private:SkSLStatement_hdr", "//src/sksl/ir:SkSLFunctionDefinition_hdr", "//src/sksl/ir:SkSLIfStatement_hdr", diff --git a/third_party/skia/src/sksl/transform/SkSLBuiltinVariableScanner.cpp b/third_party/skia/src/sksl/transform/SkSLBuiltinVariableScanner.cpp index 4d19f238aad4..0c6e16eb5318 100644 --- a/third_party/skia/src/sksl/transform/SkSLBuiltinVariableScanner.cpp +++ b/third_party/skia/src/sksl/transform/SkSLBuiltinVariableScanner.cpp @@ -7,91 +7,111 @@ #include "src/sksl/transform/SkSLTransform.h" +#include "include/core/SkTypes.h" +#include "include/private/SkSLProgramElement.h" #include "include/private/SkSLProgramKind.h" #include "src/sksl/SkSLBuiltinMap.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/SkSLContext.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/analysis/SkSLProgramVisitor.h" +#include "src/sksl/ir/SkSLExpression.h" +#include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" +#include "src/sksl/ir/SkSLType.h" +#include "src/sksl/ir/SkSLVariable.h" +#include "src/sksl/ir/SkSLVariableReference.h" + +#ifdef SK_DEBUG #include "src/sksl/ir/SkSLInterfaceBlock.h" #include "src/sksl/ir/SkSLVarDeclarations.h" +#endif -namespace SkSL { +#include +#include +#include +namespace SkSL { namespace Transform { - -void FindAndDeclareBuiltinVariables(const Context& context, - ProgramKind programKind, std::vector& sharedElements) { - class BuiltinVariableScanner : public ProgramVisitor { - public: - BuiltinVariableScanner(const Context& context) - : fContext(context) {} - - void addDeclaringElement(const std::string& name) { - // If this is the *first* time we've seen this builtin, findAndInclude will return - // the corresponding ProgramElement. - BuiltinMap& builtins = *fContext.fBuiltins; - if (const ProgramElement* decl = builtins.findAndInclude(name)) { - SkASSERT(decl->is() || decl->is()); - fNewElements.push_back(decl); - } +namespace { + +class BuiltinVariableScanner : public ProgramVisitor { +public: + BuiltinVariableScanner(const Context& context) : fContext(context) {} + + void addDeclaringElement(const std::string& name) { + // If this is the *first* time we've seen this builtin, findAndInclude will return the + // corresponding ProgramElement. + BuiltinMap& builtins = *fContext.fBuiltins; + if (const ProgramElement* decl = builtins.findAndInclude(name)) { + SkASSERT(decl->is() || decl->is()); + fNewElements.push_back(decl); } + } - bool visitProgramElement(const ProgramElement& pe) override { - if (pe.is()) { - const FunctionDefinition& funcDef = pe.as(); - // We synthesize writes to sk_FragColor if main() returns a color, even if it's - // otherwise unreferenced. Check main's return type to see if it's half4. - if (funcDef.declaration().isMain() && - funcDef.declaration().returnType().matches(*fContext.fTypes.fHalf4)) { - fPreserveFragColor = true; - } + bool visitProgramElement(const ProgramElement& pe) override { + if (pe.is()) { + const FunctionDefinition& funcDef = pe.as(); + // We synthesize writes to sk_FragColor if main() returns a color, even if it's + // otherwise unreferenced. Check main's return type to see if it's half4. + if (funcDef.declaration().isMain() && + funcDef.declaration().returnType().matches(*fContext.fTypes.fHalf4)) { + fPreserveFragColor = true; } - return INHERITED::visitProgramElement(pe); } + return INHERITED::visitProgramElement(pe); + } - bool visitExpression(const Expression& e) override { - if (e.is() && e.as().variable()->isBuiltin()) { - this->addDeclaringElement( - std::string(e.as().variable()->name())); + bool visitExpression(const Expression& e) override { + if (e.is()) { + const Variable* var = e.as().variable(); + if (var->isBuiltin()) { + this->addDeclaringElement(std::string(var->name())); } - return INHERITED::visitExpression(e); + + ThreadContext::Compiler().updateInputsForBuiltinVariable(*var); } + return INHERITED::visitExpression(e); + } - const Context& fContext; - std::vector fNewElements; - bool fPreserveFragColor = false; + const Context& fContext; + std::vector fNewElements; + bool fPreserveFragColor = false; - using INHERITED = ProgramVisitor; - using INHERITED::visitProgramElement; - }; + using INHERITED = ProgramVisitor; + using INHERITED::visitProgramElement; +}; +} // namespace + +void FindAndDeclareBuiltinVariables(const Context& context, + ProgramKind programKind, + std::vector& sharedElements) { BuiltinVariableScanner scanner(context); for (auto& e : ThreadContext::ProgramElements()) { scanner.visitProgramElement(*e); } + for (auto& e : ThreadContext::SharedElements()) { + scanner.visitProgramElement(*e); + } + if (scanner.fPreserveFragColor) { // main() returns a half4, so make sure we don't dead-strip sk_FragColor. scanner.addDeclaringElement(Compiler::FRAGCOLOR_NAME); } - switch (programKind) { - case ProgramKind::kFragment: - // Vulkan requires certain builtin variables be present, even if they're unused. At one - // time, validation errors would result if sk_Clockwise was missing. Now, it's just - // (Adreno) driver bugs that drop or corrupt draws if they're missing. - scanner.addDeclaringElement("sk_Clockwise"); - break; - default: - break; + if (programKind == ProgramKind::kFragment) { + // Vulkan requires certain builtin variables be present, even if they're unused. At one + // time, validation errors would result if sk_Clockwise was missing. Now, it's just (Adreno) + // driver bugs that drop or corrupt draws if they're missing. + scanner.addDeclaringElement("sk_Clockwise"); } sharedElements.insert(sharedElements.begin(), scanner.fNewElements.begin(), - scanner.fNewElements.end()); + scanner.fNewElements.end()); } -} // namespace Transform - -} // namespace SkSL +} // namespace Transform +} // namespace SkSL diff --git a/third_party/skia/src/sksl/transform/SkSLEliminateDeadFunctions.cpp b/third_party/skia/src/sksl/transform/SkSLEliminateDeadFunctions.cpp index 2777a97fb944..24325a263cf6 100644 --- a/third_party/skia/src/sksl/transform/SkSLEliminateDeadFunctions.cpp +++ b/third_party/skia/src/sksl/transform/SkSLEliminateDeadFunctions.cpp @@ -7,11 +7,14 @@ #include "include/private/SkSLProgramElement.h" #include "src/sksl/SkSLProgramSettings.h" +#include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" #include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/transform/SkSLTransform.h" #include +#include +#include namespace SkSL { diff --git a/third_party/skia/src/sksl/transform/SkSLEliminateDeadGlobalVariables.cpp b/third_party/skia/src/sksl/transform/SkSLEliminateDeadGlobalVariables.cpp index d0891cabdb9c..b68d1ecf9d2c 100644 --- a/third_party/skia/src/sksl/transform/SkSLEliminateDeadGlobalVariables.cpp +++ b/third_party/skia/src/sksl/transform/SkSLEliminateDeadGlobalVariables.cpp @@ -6,12 +6,15 @@ */ #include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLStatement.h" #include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLVarDeclarations.h" #include "src/sksl/transform/SkSLTransform.h" #include +#include +#include namespace SkSL { diff --git a/third_party/skia/src/sksl/transform/SkSLEliminateDeadLocalVariables.cpp b/third_party/skia/src/sksl/transform/SkSLEliminateDeadLocalVariables.cpp index 2acc66809931..73110b8e51d9 100644 --- a/third_party/skia/src/sksl/transform/SkSLEliminateDeadLocalVariables.cpp +++ b/third_party/skia/src/sksl/transform/SkSLEliminateDeadLocalVariables.cpp @@ -5,16 +5,27 @@ * found in the LICENSE file. */ +#include "include/core/SkTypes.h" #include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkTHash.h" +#include "src/sksl/SkSLProgramSettings.h" +#include "src/sksl/ir/SkSLExpression.h" #include "src/sksl/ir/SkSLExpressionStatement.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" #include "src/sksl/ir/SkSLNop.h" #include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLVarDeclarations.h" +#include "src/sksl/ir/SkSLVariable.h" #include "src/sksl/transform/SkSLProgramWriter.h" #include "src/sksl/transform/SkSLTransform.h" +#include +#include +#include + namespace SkSL { +class Context; bool Transform::EliminateDeadLocalVariables(Program& program, ProgramUsage* usage) { class DeadLocalVariableEliminator : public ProgramWriter { diff --git a/third_party/skia/src/sksl/transform/SkSLEliminateUnreachableCode.cpp b/third_party/skia/src/sksl/transform/SkSLEliminateUnreachableCode.cpp index e4e39567adfc..288b7f9c3866 100644 --- a/third_party/skia/src/sksl/transform/SkSLEliminateUnreachableCode.cpp +++ b/third_party/skia/src/sksl/transform/SkSLEliminateUnreachableCode.cpp @@ -5,6 +5,7 @@ * found in the LICENSE file. */ +#include "include/private/SkSLProgramElement.h" #include "include/private/SkSLStatement.h" #include "src/sksl/ir/SkSLFunctionDefinition.h" #include "src/sksl/ir/SkSLIfStatement.h" @@ -13,9 +14,12 @@ #include "src/sksl/transform/SkSLProgramWriter.h" #include "src/sksl/transform/SkSLTransform.h" +#include #include +#include namespace SkSL { +class Expression; void Transform::EliminateUnreachableCode(Program& program, ProgramUsage* usage) { class UnreachableCodeEliminator : public ProgramWriter { diff --git a/third_party/skia/src/sksl/transform/SkSLTransform.h b/third_party/skia/src/sksl/transform/SkSLTransform.h index 3f6a047f4ede..b2d1f90a52ba 100644 --- a/third_party/skia/src/sksl/transform/SkSLTransform.h +++ b/third_party/skia/src/sksl/transform/SkSLTransform.h @@ -22,6 +22,10 @@ enum class ProgramKind : int8_t; namespace Transform { +/** + * Scans the finished program for built-in variables like `sk_FragColor` and adds them to the + * program's shared elements. + */ void FindAndDeclareBuiltinVariables(const Context& context, ProgramKind programKind, std::vector& sharedElements); diff --git a/third_party/skia/src/svg/BUILD.bazel b/third_party/skia/src/svg/BUILD.bazel index 33d0cf39e821..fa79ffd8fa32 100644 --- a/third_party/skia/src/svg/BUILD.bazel +++ b/third_party/skia/src/svg/BUILD.bazel @@ -1,4 +1,8 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") + +licenses(["notice"]) + +enforce_iwyu_on_package() generated_cc_atom( name = "SkSVGCanvas_src", @@ -6,6 +10,10 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":SkSVGDevice_hdr", + "//include/core:SkCanvas_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkRefCnt_hdr", + "//include/private:SkTo_hdr", "//include/svg:SkSVGCanvas_hdr", "//src/xml:SkXMLWriter_hdr", ], @@ -16,8 +24,10 @@ generated_cc_atom( hdrs = ["SkSVGDevice.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkCanvas_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkTypes_hdr", "//include/private:SkTArray_hdr", - "//include/private:SkTemplates_hdr", "//include/utils:SkParsePath_hdr", "//src/core:SkClipStackDevice_hdr", ], @@ -31,27 +41,49 @@ generated_cc_atom( ":SkSVGDevice_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkBlendMode_hdr", + "//include/core:SkClipOp_hdr", "//include/core:SkColorFilter_hdr", + "//include/core:SkColor_hdr", + "//include/core:SkCustomMesh_hdr", "//include/core:SkData_hdr", + "//include/core:SkEncodedImageFormat_hdr", + "//include/core:SkFontStyle_hdr", + "//include/core:SkFont_hdr", "//include/core:SkImageEncoder_hdr", + "//include/core:SkImageInfo_hdr", "//include/core:SkImage_hdr", + "//include/core:SkMatrix_hdr", "//include/core:SkPaint_hdr", "//include/core:SkPathBuilder_hdr", + "//include/core:SkPathEffect_hdr", + "//include/core:SkPathTypes_hdr", + "//include/core:SkPath_hdr", + "//include/core:SkPoint_hdr", + "//include/core:SkRRect_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkScalar_hdr", "//include/core:SkShader_hdr", + "//include/core:SkSize_hdr", + "//include/core:SkSpan_hdr", "//include/core:SkStream_hdr", + "//include/core:SkString_hdr", + "//include/core:SkSurfaceProps_hdr", + "//include/core:SkTileMode_hdr", "//include/core:SkTypeface_hdr", - "//include/private:SkChecksum_hdr", + "//include/private:SkNoncopyable_hdr", "//include/private:SkTHash_hdr", "//include/private:SkTPin_hdr", + "//include/private:SkTemplates_hdr", "//include/private:SkTo_hdr", "//include/svg:SkSVGCanvas_hdr", "//include/utils:SkBase64_hdr", "//src/codec:SkJpegCodec_hdr", "//src/core:SkAnnotationKeys_hdr", "//src/core:SkClipStack_hdr", - "//src/core:SkDraw_hdr", + "//src/core:SkDevice_hdr", "//src/core:SkFontPriv_hdr", - "//src/core:SkUtils_hdr", + "//src/core:SkGlyphRun_hdr", + "//src/core:SkTLazy_hdr", "//src/image:SkImage_Base_hdr", "//src/shaders:SkShaderBase_hdr", "//src/xml:SkXMLWriter_hdr", diff --git a/third_party/skia/src/svg/SkSVGCanvas.cpp b/third_party/skia/src/svg/SkSVGCanvas.cpp index 631c2c220329..637496c1322e 100644 --- a/third_party/skia/src/svg/SkSVGCanvas.cpp +++ b/third_party/skia/src/svg/SkSVGCanvas.cpp @@ -6,9 +6,16 @@ */ #include "include/svg/SkSVGCanvas.h" + +#include "include/core/SkCanvas.h" +#include "include/core/SkRect.h" +#include "include/core/SkRefCnt.h" +#include "include/private/SkTo.h" #include "src/svg/SkSVGDevice.h" #include "src/xml/SkXMLWriter.h" +#include + std::unique_ptr SkSVGCanvas::Make(const SkRect& bounds, SkWStream* writer, uint32_t flags) { // TODO: pass full bounds to the device diff --git a/third_party/skia/src/svg/SkSVGDevice.cpp b/third_party/skia/src/svg/SkSVGDevice.cpp index ff5ea76c7367..e02b3a263cae 100644 --- a/third_party/skia/src/svg/SkSVGDevice.cpp +++ b/third_party/skia/src/svg/SkSVGDevice.cpp @@ -7,35 +7,68 @@ #include "src/svg/SkSVGDevice.h" -#include - #include "include/core/SkBitmap.h" #include "include/core/SkBlendMode.h" +#include "include/core/SkClipOp.h" +#include "include/core/SkColor.h" #include "include/core/SkColorFilter.h" #include "include/core/SkData.h" +#include "include/core/SkEncodedImageFormat.h" +#include "include/core/SkFont.h" +#include "include/core/SkFontStyle.h" #include "include/core/SkImage.h" #include "include/core/SkImageEncoder.h" +#include "include/core/SkImageInfo.h" +#include "include/core/SkMatrix.h" #include "include/core/SkPaint.h" +#include "include/core/SkPath.h" #include "include/core/SkPathBuilder.h" +#include "include/core/SkPathEffect.h" +#include "include/core/SkPathTypes.h" +#include "include/core/SkPoint.h" +#include "include/core/SkRRect.h" +#include "include/core/SkRect.h" +#include "include/core/SkScalar.h" #include "include/core/SkShader.h" +#include "include/core/SkSize.h" +#include "include/core/SkSpan.h" #include "include/core/SkStream.h" +#include "include/core/SkString.h" +#include "include/core/SkSurfaceProps.h" +#include "include/core/SkTileMode.h" #include "include/core/SkTypeface.h" -#include "include/private/SkChecksum.h" +#include "include/private/SkNoncopyable.h" #include "include/private/SkTHash.h" #include "include/private/SkTPin.h" +#include "include/private/SkTemplates.h" #include "include/private/SkTo.h" #include "include/svg/SkSVGCanvas.h" #include "include/utils/SkBase64.h" -#include "src/codec/SkJpegCodec.h" #include "src/core/SkAnnotationKeys.h" #include "src/core/SkClipStack.h" -#include "src/core/SkDraw.h" +#include "src/core/SkDevice.h" #include "src/core/SkFontPriv.h" -#include "src/core/SkUtils.h" +#include "src/core/SkGlyphRun.h" +#include "src/core/SkTLazy.h" #include "src/image/SkImage_Base.h" #include "src/shaders/SkShaderBase.h" #include "src/xml/SkXMLWriter.h" +#include +#include +#include + +class SkBlender; +class SkVertices; +struct SkSamplingOptions; + +#ifdef SK_ENABLE_SKSL +#include "include/core/SkCustomMesh.h" +#endif +#ifdef SK_CODEC_DECODES_JPEG +#include "src/codec/SkJpegCodec.h" +#endif + namespace { static SkString svg_color(SkColor color) { @@ -1102,10 +1135,12 @@ void SkSVGDevice::onDrawGlyphRunList(SkCanvas* canvas, } } -void SkSVGDevice::drawVertices(const SkVertices*, sk_sp, const SkPaint&) { +void SkSVGDevice::drawVertices(const SkVertices*, sk_sp, const SkPaint&, bool) { // todo } +#ifdef SK_ENABLE_SKSL void SkSVGDevice::drawCustomMesh(SkCustomMesh, sk_sp, const SkPaint&) { // todo } +#endif diff --git a/third_party/skia/src/svg/SkSVGDevice.h b/third_party/skia/src/svg/SkSVGDevice.h index 48a786b541cd..d99fb8afd1e2 100644 --- a/third_party/skia/src/svg/SkSVGDevice.h +++ b/third_party/skia/src/svg/SkSVGDevice.h @@ -8,12 +8,34 @@ #ifndef SkSVGDevice_DEFINED #define SkSVGDevice_DEFINED +#include "include/core/SkCanvas.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkTypes.h" #include "include/private/SkTArray.h" -#include "include/private/SkTemplates.h" #include "include/utils/SkParsePath.h" #include "src/core/SkClipStackDevice.h" +#include + +class SkBaseDevice; +class SkBitmap; +class SkBlender; +class SkClipStack; +class SkData; +class SkGlyphRunList; +class SkImage; +class SkPaint; +class SkPath; +class SkRRect; +class SkVertices; class SkXMLWriter; +struct SkISize; +struct SkPoint; +struct SkRect; +struct SkSamplingOptions; +#ifdef SK_ENABLE_SKSL +struct SkCustomMesh; +#endif class SkSVGDevice final : public SkClipStackDevice { public: @@ -36,9 +58,10 @@ class SkSVGDevice final : public SkClipStackDevice { bool pathIsMutable = false) override; void onDrawGlyphRunList(SkCanvas*, const SkGlyphRunList&, const SkPaint&) override; - void drawVertices(const SkVertices*, sk_sp, const SkPaint&) override; + void drawVertices(const SkVertices*, sk_sp, const SkPaint&, bool) override; +#ifdef SK_ENABLE_SKSL void drawCustomMesh(SkCustomMesh, sk_sp, const SkPaint&) override; - +#endif private: SkSVGDevice(const SkISize& size, std::unique_ptr, uint32_t); ~SkSVGDevice() override; diff --git a/third_party/skia/src/utils/BUILD.bazel b/third_party/skia/src/utils/BUILD.bazel index 01c24af68d00..70715c510185 100644 --- a/third_party/skia/src/utils/BUILD.bazel +++ b/third_party/skia/src/utils/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "core_srcs", visibility = ["//:__subpackages__"], @@ -353,6 +355,7 @@ generated_cc_atom( "//include/core:SkShader_hdr", "//include/utils:SkNWayCanvas_hdr", "//src/core:SkCanvasPriv_hdr", + "//src/core:SkDevice_hdr", ], ) @@ -437,8 +440,8 @@ generated_cc_atom( hdrs = ["SkPatchUtils.h"], visibility = ["//:__subpackages__"], deps = [ - "//include/core:SkMatrix_hdr", - "//include/private:SkColorData_hdr", + "//include/core:SkColor_hdr", + "//include/core:SkRefCnt_hdr", ], ) @@ -512,7 +515,7 @@ generated_cc_atom( "//src/core:SkGeometry_hdr", "//src/core:SkPointPriv_hdr", "//src/core:SkRectPriv_hdr", - "//src/gpu/geometry:GrPathUtils_hdr", + "//src/gpu/ganesh/geometry:GrPathUtils_hdr", ], ) @@ -546,8 +549,8 @@ generated_cc_atom( "//src/core:SkTLazy_hdr", "//src/core:SkVM_hdr", "//src/core:SkVerticesPriv_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", ], ) @@ -660,3 +663,35 @@ generated_cc_atom( "//src/core:SkStreamPriv_hdr", ], ) + +generated_cc_atom( + name = "SkBlitterTraceCommon_hdr", + hdrs = ["SkBlitterTraceCommon.h"], + visibility = ["//:__subpackages__"], + deps = [":SkCycles_hdr"], +) + +generated_cc_atom( + name = "SkBlitterTrace_hdr", + hdrs = ["SkBlitterTrace.h"], + visibility = ["//:__subpackages__"], + deps = [":SkBlitterTraceCommon_hdr"], +) + +generated_cc_atom( + name = "SkCycles_hdr", + hdrs = ["SkCycles.h"], + visibility = ["//:__subpackages__"], +) + +generated_cc_atom( + name = "SkTestCanvas_hdr", + hdrs = ["SkTestCanvas.h"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkSize_hdr", + "//include/utils:SkNWayCanvas_hdr", + "//src/core:SkDevice_hdr", + "//src/core:SkGlyphRun_hdr", + ], +) diff --git a/third_party/skia/src/utils/SkBlitterTrace.h b/third_party/skia/src/utils/SkBlitterTrace.h new file mode 100644 index 000000000000..e350c0f8c015 --- /dev/null +++ b/third_party/skia/src/utils/SkBlitterTrace.h @@ -0,0 +1,62 @@ +/* + * Copyright 2022 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * This is an experimental (and probably temporary) solution that allows + * to compare performance SkVM blitters vs RasterPipeline blitters. + * In addition to measuring performance (which is questionable) it also produces + * other counts (pixels, scanlines) and more detailed traces that + * can explain the current results (SkVM is slower) and help improve it. + * The entire code is hidden under build flag skia_compare_vm_vs_rp=true + * and will not appear at all without it. + * + * In order to collect the tracing information SkVM Blitters should run with SKVM_BLITTER_TRACE_ON + * and RasterPipeline Blitters with RASTER_PIPELINE_BLITTER_TRACE_ON. + */ + +#ifndef SkBlitterTrace_DEFINED +#define SkBlitterTrace_DEFINED + +#include +#include +#include "src/utils/SkBlitterTraceCommon.h" + +#ifdef SKIA_COMPARE_VM_VS_RP + +#if !defined(SK_BLITTER_TRACE_IS_SKVM) && !defined(SK_BLITTER_TRACE_IS_RASTER_PIPELINE) +#error "One blitter trace type should be defined if we have flag skia_compare_vm_vs_rp flag = true." +#endif + +#if defined(SK_BLITTER_TRACE_IS_SKVM) && defined(SK_BLITTER_TRACE_IS_RASTER_PIPELINE) +#error "Only one blitter trace type should be defined." +#endif + +#ifdef SK_BLITTER_TRACE_IS_SKVM +SkBlitterTrace gSkVMBlitterTrace("VM", false); +#define SK_BLITTER_TRACE_STEP(name, trace, scanlines, pixels) \ + SkBlitterTrace::Step name(trace ? &gSkVMBlitterTrace : nullptr, \ + #name, \ + scanlines, \ + pixels) +#endif + +#ifdef SK_BLITTER_TRACE_IS_RASTER_PIPELINE +SkBlitterTrace gSkRPBlitterTrace("RP", false); +#define SK_BLITTER_TRACE_STEP(name, trace, scanlines, pixels) \ + SkBlitterTrace::Step name(trace ? &gSkRPBlitterTrace : nullptr, \ + #name, \ + scanlines, \ + pixels) +#endif + +#define SK_BLITTER_TRACE_STEP_ACCUMULATE(step, pixels) \ + step.add(/*scanlines=*/0, /*pixels=*/run) +#else +#define INITIATE_BLITTER_TRACE(type) SK_BLITTER_TRACE_NO_CODE +#define SK_BLITTER_TRACE_STEP(name, trace, scanlines, pixels) SK_BLITTER_TRACE_NO_CODE +#define SK_BLITTER_TRACE_STEP_ACCUMULATE(step, pixels) SK_BLITTER_TRACE_NO_CODE +#endif + +#endif // SkBlitterTrace_DEFINED diff --git a/third_party/skia/src/utils/SkBlitterTraceCommon.h b/third_party/skia/src/utils/SkBlitterTraceCommon.h new file mode 100644 index 000000000000..b4adb5ce779c --- /dev/null +++ b/third_party/skia/src/utils/SkBlitterTraceCommon.h @@ -0,0 +1,180 @@ +/* + * Copyright 2022 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * This is an experimental (and probably temporary) solution that allows + * to compare performance SkVM blitters vs RasterPipeline blitters. + * In addition to measuring performance (which is questionable) it also produces + * other counts (pixels, scanlines) and more detailed traces that + * can explain the current results (SkVM is slower) and help improve it. + * The entire code is hidden under build flag skia_compare_vm_vs_rp=true + * and will not appear at all without it. + */ + +#ifndef SkBlitterTraceCommon_DEFINED +#define SkBlitterTraceCommon_DEFINED + +#include +#include + +#define SK_BLITTER_TRACE_NO_CODE do {} while (0) + +#ifdef SKIA_COMPARE_VM_VS_RP + +#include "src/utils/SkCycles.h" + +class SkBlitterTrace { +/* + * This class collects information for RasterPipeLine vs SkVM + * performance comparison. + * How to get the comparison table: + * 1. Add to your Release/args.gn an argument: skia_compare_vm_vs_rp=true + * Build nanobench. + * 2. Run nanobench for SkVM: + * []/Release/nanobench + * --csv --config 8888 --skvm --loops 100 --samples 1 + * --match $(ls skps | grep --invert-match svg ) 2>&1 | tee VM.data + * 3. Run nanobench for RasterPipeLine: + * []/Release/nanobench + * --csv --config 8888 --forceRasterPipeline --loops 100 + * --samples 1 --match $(ls skps | grep --invert-match svg ) + * 2>&1 | tee RP.data + * 4. Extract the information side-by-side: + * awk 'BEGIN {OFS=","; fileNum = 0} ($2 ~ /MB/) && fileNum == 0 + * {vmvmcycles[$3] = $6; vmvmscan[$3] = $8; vmvmpixels[$3] = $10; + * vmvminterp[$3] = $11; vmrpcycle[$3] = $14; vmrpscan[$3] = $16; + * vmrppixels[$3] = $18} ($2 ~ /MB/) && fileNum == 1 {print $3, + * vmvmcycles[$3], vmvmscan[$3], vmvmpixels[$3], vmvminterp[$3], $6, $8, + * $10, $11, $14, $16, $18} ENDFILE {fileNum += 1}' + * VM.data RP.data > compare.csv + * 5. Open the compare.csv table in Google Spreadsheets. + * You will get columns [A:P]. Add 4 more columns with formulas: + * Q: =B/M-1 + * R: =N-C + * S: =O-D + * T: =2*(S<>0)+(R<>0) + * To be honest R, S, T columns are here for checking only (they all + * supposed to have zero values in them) + * Column Q shows the actual performance difference. Negative value means + * that wins SkVM, positive - RasterPipeLine. + */ +public: + SkBlitterTrace(const char* header, bool traceSteps = false) + : fHeader(header), fTraceSteps(traceSteps) { } + + SkBlitterTrace& operator= (const SkBlitterTrace&) = default; + + void addTrace(const char* name, uint64_t cycles, uint64_t scanLines, uint64_t pixels) { + fCycles += cycles; + fScanlines += scanLines; + fPixels += pixels; + if (fTraceSteps) { + printIncrements(name, cycles, scanLines, pixels); + } + } + + void reset() { + fCycles = 0ul; + fScanlines = 0ul; + fPixels = 0ul; + } + + void printIncrements(const char* name, + uint64_t cycles, + uint64_t scanLines, + uint64_t pixels) const { + SkDebugf("%s %s: cycles=%" PRIu64 "+%" PRIu64 + " scanlines=%" PRIu64 "+%" PRIu64 " pixels=%" PRIu64, + fHeader, name, + fCycles - cycles, cycles, + fScanlines - scanLines, scanLines, + fPixels); + SkDebugf("\n"); + } + + void printCounts(const char* name) const { + SkDebugf("%s cycles: %" PRIu64 " " + " scanlines: %" PRIu64 " pixels: %" PRIu64, + fHeader, + fCycles, + fScanlines, + fPixels); + SkDebugf(" "); + } + + uint64_t getCycles() const { return fCycles; } + uint64_t getScanlines() const { return fScanlines; } + uint64_t getPixels() const { return fPixels; } + + class Step { + public: + Step(SkBlitterTrace* trace, + const char* name, + uint64_t scanlines, + uint64_t pixels) + : fTrace(trace) + , fName(name) + , fScanlines(scanlines) + , fPixels(pixels) { + fStartTime = SkCycles::Now(); + } + void add(uint64_t scanlines, uint64_t pixels) { + fScanlines += scanlines; + fPixels += pixels; + } + ~Step() { + if (fTrace == nullptr) { + return; + } + auto endTime = SkCycles::Now() - fStartTime; + fTrace->addTrace(/*name=*/fName, + /*cycles=*/endTime, + /*scanlines=*/fScanlines, + /*pixels=*/fPixels); + } + private: + SkBlitterTrace* fTrace = nullptr; + const char* fName = ""; + uint64_t fStartTime = 0ul; + uint64_t fScanlines = 0ul; + uint64_t fPixels = 0ul; + }; + +private: + const char* fHeader = ""; + bool fTraceSteps = false; + uint64_t fCycles = 0ul; + uint64_t fScanlines = 0ul; + uint64_t fPixels = 0ul; +}; + +#define SK_BLITTER_TRACE_INIT \ +extern SkBlitterTrace gSkVMBlitterTrace; \ +extern SkBlitterTrace gSkRPBlitterTrace; \ + \ +static SkBlitterTrace gSkVMBlitterTraceCapture("VM", false); \ +static SkBlitterTrace gSkRPBlitterTraceCapture("RP", false); + +#define SK_BLITTER_TRACE_LOCAL_SETUP \ + gSkVMBlitterTrace.reset(); \ + gSkRPBlitterTrace.reset() + +#define SK_BLITTER_TRACE_LOCAL_TEARDOWN \ + gSkVMBlitterTraceCapture = gSkVMBlitterTrace; \ + gSkRPBlitterTraceCapture = gSkRPBlitterTrace + +#define SK_BLITTER_TRACE_PRINT \ + gSkVMBlitterTraceCapture.printCounts("Total"); \ + SkDebugf("0 "); \ + gSkRPBlitterTraceCapture.printCounts("Total") + +#else +#define SK_BLITTER_TRACE_INIT +#define SK_BLITTER_TRACE_LOCAL_SETUP SK_BLITTER_TRACE_NO_CODE +#define SK_BLITTER_TRACE_LOCAL_TEARDOWN SK_BLITTER_TRACE_NO_CODE +#define SK_BLITTER_TRACE_PRINT SK_BLITTER_TRACE_NO_CODE +#endif // SKIA_COMPARE_VM_VS_RP + +#endif // SkBlitterTraceCommon_DEFINED diff --git a/third_party/skia/src/utils/SkCycles.h b/third_party/skia/src/utils/SkCycles.h new file mode 100644 index 000000000000..93385a52e1d6 --- /dev/null +++ b/third_party/skia/src/utils/SkCycles.h @@ -0,0 +1,56 @@ +/* + * Copyright 2022 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * This is an experimental (and probably temporary) solution that allows + * to compare performance SkVM blitters vs RasterPipeline blitters. + * In addition to measuring performance (which is questionable) it also produces + * other counts (pixels, scanlines) and more detailed traces that + * can explain the current results (SkVM is slower) and help improve it. + * The entire code is hidden under build flag skia_compare_vm_vs_rp=true + * and will not appear at all without it. + */ +#ifndef SkCycles_DEFINED +#define SkCycles_DEFINED +#include +#include +class SkCycles { +public: + static uint64_t Now() { + #ifndef SKIA_COMPARE_VM_VS_RP + { + return 0ul; + } + #elif defined(SK_BUILD_FOR_WIN) + { + return 0ul; + } + #elif defined(SK_BUILD_FOR_IOS) + { + return 0ul; + } + #elif defined(SK_BUILD_FOR_ANDROID) + { + return 0ul; + } + #elif defined(SK_CPU_X86) + { + unsigned aux; + return __rdtscp(&aux); + } + #elif defined(SK_CPU_ARM64) + { + int64_t cycles; + asm volatile("mrs %0, cntvct_el0" : "=r"(cycles)); + return cycles; + } + #else + { + return 0ul; + } + #endif + } +}; +#endif // SkCycles_DEFINED diff --git a/third_party/skia/src/utils/SkNWayCanvas.cpp b/third_party/skia/src/utils/SkNWayCanvas.cpp index 33a4d0b322e0..acd11b4cbe67 100644 --- a/third_party/skia/src/utils/SkNWayCanvas.cpp +++ b/third_party/skia/src/utils/SkNWayCanvas.cpp @@ -8,6 +8,7 @@ #include "include/core/SkShader.h" #include "include/utils/SkNWayCanvas.h" #include "src/core/SkCanvasPriv.h" +#include "src/core/SkDevice.h" SkNWayCanvas::SkNWayCanvas(int width, int height) : INHERITED(width, height) {} @@ -16,6 +17,12 @@ SkNWayCanvas::~SkNWayCanvas() { } void SkNWayCanvas::addCanvas(SkCanvas* canvas) { + if (!fList.isEmpty()) { + // We are using the nway canvas as a wrapper for the originally added canvas, and the device + // on the nway may contradict calls for the device on this canvas. So, to add a second + // canvas, the devices on the first canvas, and the nway base device must be different. + SkASSERT(fList[0]->baseDevice() != this->baseDevice()); + } if (canvas) { *fList.append() = canvas; } @@ -292,6 +299,15 @@ void SkNWayCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y } } +#if SK_SUPPORT_GPU +void SkNWayCanvas::onDrawSlug(const GrSlug* slug) { + Iter iter(fList); + while (iter.next()) { + iter->drawSlug(slug); + } +} +#endif + void SkNWayCanvas::onDrawPicture(const SkPicture* picture, const SkMatrix* matrix, const SkPaint* paint) { Iter iter(fList); diff --git a/third_party/skia/src/utils/SkParseColor.cpp b/third_party/skia/src/utils/SkParseColor.cpp index 7260365b2c67..3164650728e1 100644 --- a/third_party/skia/src/utils/SkParseColor.cpp +++ b/third_party/skia/src/utils/SkParseColor.cpp @@ -8,6 +8,8 @@ #include "include/utils/SkParse.h" +#include // std::lower_bound + static constexpr const char* gColorNames[] = { "aliceblue", "antiquewhite", diff --git a/third_party/skia/src/utils/SkParsePath.cpp b/third_party/skia/src/utils/SkParsePath.cpp index d0fa97ac6aec..40100a4daf4a 100644 --- a/third_party/skia/src/utils/SkParsePath.cpp +++ b/third_party/skia/src/utils/SkParsePath.cpp @@ -72,6 +72,22 @@ static const char* find_scalar(const char str[], SkScalar* value, return str; } +// https://www.w3.org/TR/SVG11/paths.html#PathDataBNF +// +// flag: +// "0" | "1" +static const char* find_flag(const char str[], bool* value) { + if (!str) { + return nullptr; + } + if (str[0] != '1' && str[0] != '0') { + return nullptr; + } + *value = str[0] != '0'; + str = skip_sep(str + 1); + return str; +} + bool SkParsePath::FromSVGString(const char data[], SkPath* result) { SkPath path; SkPoint first = {0, 0}; @@ -164,18 +180,19 @@ bool SkParsePath::FromSVGString(const char data[], SkPath* result) { break; case 'A': { SkPoint radii; - SkScalar angle, largeArc, sweep; + SkScalar angle; + bool largeArc, sweep; if ((data = find_points(data, &radii, 1, false, nullptr)) && (data = skip_sep(data)) && (data = find_scalar(data, &angle, false, 0)) && (data = skip_sep(data)) - && (data = find_scalar(data, &largeArc, false, 0)) + && (data = find_flag(data, &largeArc)) && (data = skip_sep(data)) - && (data = find_scalar(data, &sweep, false, 0)) + && (data = find_flag(data, &sweep)) && (data = skip_sep(data)) && (data = find_points(data, &points[0], 1, relative, &c))) { - path.arcTo(radii, angle, (SkPath::ArcSize) SkToBool(largeArc), - (SkPathDirection) !SkToBool(sweep), points[0]); + path.arcTo(radii, angle, (SkPath::ArcSize) largeArc, + (SkPathDirection) !sweep, points[0]); path.getLastPt(&c); } } break; diff --git a/third_party/skia/src/utils/SkPatchUtils.h b/third_party/skia/src/utils/SkPatchUtils.h index 415ce6251ab0..6b89d84d9e1c 100644 --- a/third_party/skia/src/utils/SkPatchUtils.h +++ b/third_party/skia/src/utils/SkPatchUtils.h @@ -8,11 +8,14 @@ #ifndef SkPatchUtils_DEFINED #define SkPatchUtils_DEFINED -#include "include/core/SkMatrix.h" -#include "include/private/SkColorData.h" +#include "include/core/SkColor.h" +#include "include/core/SkRefCnt.h" class SkColorSpace; +class SkMatrix; class SkVertices; +struct SkISize; +struct SkPoint; class SkPatchUtils { diff --git a/third_party/skia/src/utils/SkPolyUtils.cpp b/third_party/skia/src/utils/SkPolyUtils.cpp index da8e6ca09546..488729ce6af6 100644 --- a/third_party/skia/src/utils/SkPolyUtils.cpp +++ b/third_party/skia/src/utils/SkPolyUtils.cpp @@ -193,6 +193,8 @@ bool SkIsConvexPolygon(const SkPoint* polygonVerts, int polygonSize) { int currIndex = 0; int nextIndex = 1; SkVector v0 = polygonVerts[currIndex] - polygonVerts[prevIndex]; + SkScalar lastVx = v0.fX; + SkScalar lastVy = v0.fY; SkVector v1 = polygonVerts[nextIndex] - polygonVerts[currIndex]; for (int i = 0; i < polygonSize; ++i) { if (!polygonVerts[i].isFinite()) { @@ -209,10 +211,10 @@ bool SkIsConvexPolygon(const SkPoint* polygonVerts, int polygonSize) { } // Check that the signs of the edge vectors don't change more than twice per coordinate - if (v0.fX*v1.fX < 0) { + if (lastVx*v1.fX < 0) { xSignChangeCount++; } - if (v0.fY*v1.fY < 0) { + if (lastVy*v1.fY < 0) { ySignChangeCount++; } if (xSignChangeCount > 2 || ySignChangeCount > 2) { @@ -221,6 +223,12 @@ bool SkIsConvexPolygon(const SkPoint* polygonVerts, int polygonSize) { prevIndex = currIndex; currIndex = nextIndex; nextIndex = (currIndex + 1) % polygonSize; + if (v1.fX != 0) { + lastVx = v1.fX; + } + if (v1.fY != 0) { + lastVy = v1.fY; + } v0 = v1; v1 = polygonVerts[nextIndex] - polygonVerts[currIndex]; } @@ -729,9 +737,17 @@ class ActiveEdgeList { curr->fAbove = pred; curr->fBelow = succ; if (pred) { + if (pred->fSegment.fP0 == curr->fSegment.fP0 && + pred->fSegment.fV == curr->fSegment.fV) { + return false; + } pred->fBelow = curr; } if (succ) { + if (succ->fSegment.fP0 == curr->fSegment.fP0 && + succ->fSegment.fV == curr->fSegment.fV) { + return false; + } succ->fAbove = curr; } if (IsRed(parent)) { diff --git a/third_party/skia/src/utils/SkShadowTessellator.cpp b/third_party/skia/src/utils/SkShadowTessellator.cpp index e0bbc02db9ed..82ad1d47050d 100644 --- a/third_party/skia/src/utils/SkShadowTessellator.cpp +++ b/third_party/skia/src/utils/SkShadowTessellator.cpp @@ -18,7 +18,7 @@ #include "src/utils/SkShadowTessellator.h" #if SK_SUPPORT_GPU -#include "src/gpu/geometry/GrPathUtils.h" +#include "src/gpu/ganesh/geometry/GrPathUtils.h" #endif diff --git a/third_party/skia/src/utils/SkShadowUtils.cpp b/third_party/skia/src/utils/SkShadowUtils.cpp index 5c4aea956c9f..f6003b3f1835 100644 --- a/third_party/skia/src/utils/SkShadowUtils.cpp +++ b/third_party/skia/src/utils/SkShadowUtils.cpp @@ -33,8 +33,8 @@ #include "src/utils/SkShadowTessellator.h" #include #if SK_SUPPORT_GPU -#include "src/gpu/effects/GrSkSLFP.h" -#include "src/gpu/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" #endif /** @@ -649,7 +649,10 @@ void SkBaseDevice::drawShadow(const SkPath& path, const SkDrawShadowRec& rec) { this, hasPerspective ? SkMatrix::I() : this->localToDevice() * SkMatrix::Translate(tx, ty)); - this->drawVertices(vertices, SkBlender::Mode(mode), paint); + // The vertex colors for a tesselated shadow polygon are always either opaque black + // or transparent and their real contribution to the final blended color is via + // their alpha. We can skip expensive per-vertex color conversion for this. + this->drawVertices(vertices, SkBlender::Mode(mode), paint, /*skipColorXform=*/true); } }; @@ -688,7 +691,13 @@ void SkBaseDevice::drawShadow(const SkPath& path, const SkDrawShadowRec& rec) { SkColorFilters::Blend(rec.fAmbientColor, SkBlendMode::kModulate)->makeComposed( SkColorFilterPriv::MakeGaussian())); - this->drawVertices(vertices.get(), SkBlender::Mode(SkBlendMode::kModulate), paint); + // The vertex colors for a tesselated shadow polygon are always either opaque black + // or transparent and their real contribution to the final blended color is via + // their alpha. We can skip expensive per-vertex color conversion for this. + this->drawVertices(vertices.get(), + SkBlender::Mode(SkBlendMode::kModulate), + paint, + /*skipColorXform=*/true); success = true; } } @@ -770,7 +779,13 @@ void SkBaseDevice::drawShadow(const SkPath& path, const SkDrawShadowRec& rec) { SkColorFilters::Blend(rec.fSpotColor, SkBlendMode::kModulate)->makeComposed( SkColorFilterPriv::MakeGaussian())); - this->drawVertices(vertices.get(), SkBlender::Mode(SkBlendMode::kModulate), paint); + // The vertex colors for a tesselated shadow polygon are always either opaque black + // or transparent and their real contribution to the final blended color is via + // their alpha. We can skip expensive per-vertex color conversion for this. + this->drawVertices(vertices.get(), + SkBlender::Mode(SkBlendMode::kModulate), + paint, + /*skipColorXform=*/true); success = true; } } diff --git a/third_party/skia/src/utils/SkTestCanvas.h b/third_party/skia/src/utils/SkTestCanvas.h new file mode 100644 index 000000000000..097929faa054 --- /dev/null +++ b/third_party/skia/src/utils/SkTestCanvas.h @@ -0,0 +1,35 @@ +/* + * Copyright 2022 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +// SkTestCanvas is a simple way to make a testing canvas which is allowed to use private +// facilities of SkCanvas without having to add a friend to SkCanvas.h. +// +// You create a Key (a simple empty struct) to make a template specialization class. You need to +// make a key for each of the different Canvases you need. The implementations of the canvases +// are in SkCanvas.cpp, which allows the use of helper classes. + +#ifndef SkTestCanvas_DEFINED +#define SkTestCanvas_DEFINED + +#include "include/core/SkSize.h" +#include "include/utils/SkNWayCanvas.h" +#include "src/core/SkDevice.h" +#include "src/core/SkGlyphRun.h" + +// You can only make template specializations of SkTestCanvas. +template class SkTestCanvas; + +// A test canvas to test using slug rendering instead of text blob rendering. +struct SkSlugTestKey {}; +template <> +class SkTestCanvas : public SkCanvas { +public: + SkTestCanvas(SkCanvas* canvas); + void onDrawGlyphRunList(const SkGlyphRunList& glyphRunList, const SkPaint& paint) override; +}; + +#endif // SkTestCanvas_DEFINED diff --git a/third_party/skia/src/utils/mac/BUILD.bazel b/third_party/skia/src/utils/mac/BUILD.bazel index d1a6d24139e4..c8bee520bba4 100644 --- a/third_party/skia/src/utils/mac/BUILD.bazel +++ b/third_party/skia/src/utils/mac/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkCGBase_hdr", hdrs = ["SkCGBase.h"], diff --git a/third_party/skia/src/utils/win/BUILD.bazel b/third_party/skia/src/utils/win/BUILD.bazel index 03cdae295301..43326062af57 100644 --- a/third_party/skia/src/utils/win/BUILD.bazel +++ b/third_party/skia/src/utils/win/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkAutoCoInitialize_hdr", hdrs = ["SkAutoCoInitialize.h"], diff --git a/third_party/skia/src/xml/BUILD.bazel b/third_party/skia/src/xml/BUILD.bazel index b91f96deec4b..b83bb081fa34 100644 --- a/third_party/skia/src/xml/BUILD.bazel +++ b/third_party/skia/src/xml/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkDOM_hdr", hdrs = ["SkDOM.h"], diff --git a/third_party/skia/src/xps/BUILD.bazel b/third_party/skia/src/xps/BUILD.bazel index f02695975431..02944753ea03 100644 --- a/third_party/skia/src/xps/BUILD.bazel +++ b/third_party/skia/src/xps/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "SkXPSDevice_hdr", hdrs = ["SkXPSDevice.h"], diff --git a/third_party/skia/src/xps/SkXPSDevice.cpp b/third_party/skia/src/xps/SkXPSDevice.cpp index c5080ace0448..816e7ddbdd51 100644 --- a/third_party/skia/src/xps/SkXPSDevice.cpp +++ b/third_party/skia/src/xps/SkXPSDevice.cpp @@ -1142,7 +1142,7 @@ void SkXPSDevice::drawPoints(SkCanvas::PointMode mode, //TODO } -void SkXPSDevice::drawVertices(const SkVertices*, sk_sp, const SkPaint&) { +void SkXPSDevice::drawVertices(const SkVertices*, sk_sp, const SkPaint&, bool) { //TODO } diff --git a/third_party/skia/src/xps/SkXPSDevice.h b/third_party/skia/src/xps/SkXPSDevice.h index 07049a91143e..63452cb03b34 100644 --- a/third_party/skia/src/xps/SkXPSDevice.h +++ b/third_party/skia/src/xps/SkXPSDevice.h @@ -93,7 +93,7 @@ class SkXPSDevice : public SkClipStackDevice { const SkSamplingOptions&, const SkPaint& paint, SkCanvas::SrcRectConstraint) override; void onDrawGlyphRunList(SkCanvas*, const SkGlyphRunList&, const SkPaint&) override; - void drawVertices(const SkVertices*, sk_sp, const SkPaint&) override; + void drawVertices(const SkVertices*, sk_sp, const SkPaint&, bool) override; void drawCustomMesh(SkCustomMesh, sk_sp, const SkPaint&) override; void drawDevice(SkBaseDevice*, const SkSamplingOptions&, const SkPaint&) override; diff --git a/third_party/skia/tests/AAClipTest.cpp b/third_party/skia/tests/AAClipTest.cpp index d10a199211b2..267172338c0a 100644 --- a/third_party/skia/tests/AAClipTest.cpp +++ b/third_party/skia/tests/AAClipTest.cpp @@ -119,6 +119,8 @@ static bool operator==(const SkRasterClip& a, const SkRasterClip& b) { SkMask mask0, mask1; copyToMask(a, &mask0); copyToMask(b, &mask1); + SkAutoMaskFreeImage free0(mask0.fImage); + SkAutoMaskFreeImage free1(mask1.fImage); return mask0 == mask1; } @@ -142,11 +144,9 @@ static bool operator==(const SkRegion& rgn, const SkAAClip& aaclip) { copyToMask(rgn, &mask0); aaclip.copyToMask(&mask1); - bool eq = (mask0 == mask1); - - SkMask::FreeImage(mask0.fImage); - SkMask::FreeImage(mask1.fImage); - return eq; + SkAutoMaskFreeImage free0(mask0.fImage); + SkAutoMaskFreeImage free1(mask1.fImage); + return mask0 == mask1; } static bool equalsAAClip(const SkRegion& rgn) { diff --git a/third_party/skia/tests/AdvancedBlendTest.cpp b/third_party/skia/tests/AdvancedBlendTest.cpp index e9006d1e2d7e..33683f4e6f1b 100644 --- a/third_party/skia/tests/AdvancedBlendTest.cpp +++ b/third_party/skia/tests/AdvancedBlendTest.cpp @@ -7,17 +7,17 @@ #include "include/core/SkBlendMode.h" #include "include/gpu/GrDirectContext.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkColorData.h" -#include "src/gpu/GrBlend.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/GrProcessorAnalysis.h" -#include "src/gpu/GrProcessorSet.h" -#include "src/gpu/GrUserStencilSettings.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/effects/GrCustomXfermode.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/Blend.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrProcessorAnalysis.h" +#include "src/gpu/ganesh/GrProcessorSet.h" +#include "src/gpu/ganesh/GrUserStencilSettings.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/effects/GrCustomXfermode.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" @@ -30,8 +30,8 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(AdvancedBlendTest, reporter, ctxInfo) { for (int mode = (int)SkBlendMode::kLastMode; mode > (int)SkBlendMode::kLastCoeffMode; --mode) { const SkBlendMode blendMode = (SkBlendMode)mode; - const GrBlendEquation blendEquation = - (GrBlendEquation)(mode + (kOverlay_GrBlendEquation - (int)SkBlendMode::kOverlay)); + const skgpu::BlendEquation blendEquation = (skgpu::BlendEquation)(mode + + ((int)skgpu::BlendEquation::kOverlay - (int)SkBlendMode::kOverlay)); const GrXPFactory* xpf = GrCustomXfermode::Get(blendMode); GrXPFactory::AnalysisProperties xpfAnalysis = diff --git a/third_party/skia/tests/ApplyGammaTest.cpp b/third_party/skia/tests/ApplyGammaTest.cpp index 4415190cc28f..2102fdfc2d93 100644 --- a/third_party/skia/tests/ApplyGammaTest.cpp +++ b/third_party/skia/tests/ApplyGammaTest.cpp @@ -18,12 +18,12 @@ #include "include/core/SkSurface.h" #include "include/core/SkTypes.h" #include "include/gpu/GrDirectContext.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkTemplates.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkOpts.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrShaderCaps.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrShaderCaps.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" diff --git a/third_party/skia/tests/BUILD.bazel b/third_party/skia/tests/BUILD.bazel index 1c4add0709b0..b441c5237c79 100644 --- a/third_party/skia/tests/BUILD.bazel +++ b/third_party/skia/tests/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "tests", testonly = True, @@ -7,6 +9,7 @@ cc_library( deps = [ ":Test_src", ":TestUtils_src", + ":TestHarness_src", # These are the deps of the tests ":CodecPriv_hdr", @@ -451,7 +454,7 @@ C_API_TESTS = [ "CTest.cpp", ] -# In order for the registry to work, all the gms must be compiled as one large blob. +# In order for the registry to work, all the tests must be compiled as one large blob. filegroup( name = "test_list", testonly = True, @@ -492,17 +495,17 @@ generated_cc_atom( ":Test_hdr", "//include/core:SkBlendMode_hdr", "//include/gpu:GrDirectContext_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkColorData_hdr", - "//src/gpu:GrBlend_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:GrProcessorAnalysis_hdr", - "//src/gpu:GrProcessorSet_hdr", - "//src/gpu:GrUserStencilSettings_hdr", - "//src/gpu:GrXferProcessor_hdr", - "//src/gpu/effects:GrCustomXfermode_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu:Blend_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:GrProcessorAnalysis_hdr", + "//src/gpu/ganesh:GrProcessorSet_hdr", + "//src/gpu/ganesh:GrUserStencilSettings_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrCustomXfermode_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -601,12 +604,12 @@ generated_cc_atom( "//include/core:SkSurface_hdr", "//include/core:SkTypes_hdr", "//include/gpu:GrDirectContext_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkTemplates_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkOpts_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -665,17 +668,17 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//include/gpu/mtl:GrMtlTypes_hdr", "//src/core:SkAutoPixmapStorage_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/gl:GrGLCaps_hdr", - "//src/gpu/gl:GrGLDefines_hdr", - "//src/gpu/gl:GrGLGpu_hdr", - "//src/gpu/gl:GrGLUtil_hdr", - "//src/gpu/mtl:GrMtlCppUtil_hdr", - "//src/gpu/vk:GrVkCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/gl:GrGLCaps_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", + "//src/gpu/ganesh/gl:GrGLGpu_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/mtl:GrMtlCppUtil_hdr", + "//src/gpu/ganesh/vk:GrVkCaps_hdr", "//src/image:SkImage_Base_hdr", "//tools:ToolUtils_hdr", "//tools/gpu:ManagedBackendTexture_hdr", @@ -689,15 +692,16 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu/vk:GrVkTypes_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu/vk:GrVkGpu_hdr", - "//src/gpu/vk:GrVkTexture_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/vk:GrVkGpu_hdr", + "//src/gpu/ganesh/vk:GrVkTexture_hdr", "//src/image:SkImage_Base_hdr", "//tools/gpu:ProxyUtils_hdr", ], @@ -772,6 +776,7 @@ generated_cc_atom( deps = [ ":Test_hdr", "//include/core:SkBitmap_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkColor_hdr", "//include/core:SkImageInfo_hdr", "//include/core:SkMallocPixelRef_hdr", @@ -871,15 +876,16 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/gpu:GrDirectContext_hdr", "//src/core:SkBlendModePriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrOpsTypes_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu/ops:FillRectOp_hdr", - "//src/gpu/ops:TextureOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrOpsTypes_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh/ops:FillRectOp_hdr", + "//src/gpu/ganesh/ops:TextureOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -973,6 +979,7 @@ generated_cc_atom( "//include/core:SkRect_hdr", "//include/core:SkRegion_hdr", "//include/core:SkScalar_hdr", + "//include/core:SkStream_hdr", "//include/core:SkSurface_hdr", "//include/core:SkTypes_hdr", "//include/private:SkTDArray_hdr", @@ -1063,14 +1070,14 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/gpu:GrContextOptions_hdr", "//include/gpu:GrDirectContext_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkColorData_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkAutoPixmapStorage_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu/ops:ClearOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh/ops:ClearOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -1379,14 +1386,15 @@ generated_cc_atom( ":TestUtils_hdr", ":Test_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrRecordingContext_hdr", "//src/core:SkAutoPixmapStorage_hdr", "//src/core:SkCompressedDataUtils_hdr", "//src/core:SkMipmap_hdr", "//src/core:SkPaintPriv_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//src/image:SkImage_Base_hdr", "//tools:ToolUtils_hdr", ], @@ -1405,16 +1413,16 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkTemplates_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkOpts_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrSurfaceProxy_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", "//tools/gpu:GrContextFactory_hdr", "//tools/gpu:ProxyUtils_hdr", ], @@ -1464,12 +1472,14 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkBitmap_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkVertices_hdr", "//src/core:SkBlendModePriv_hdr", "//src/core:SkMatrixProvider_hdr", "//src/core:SkSurfacePriv_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -1526,6 +1536,7 @@ generated_cc_atom( "//include/core:SkPaint_hdr", "//include/core:SkPictureRecorder_hdr", "//include/core:SkPicture_hdr", + "//include/core:SkPixmap_hdr", "//include/core:SkRect_hdr", "//tools/debugger:DebugLayerManager_hdr", ], @@ -1552,15 +1563,15 @@ generated_cc_atom( "//include/gpu:GrContextOptions_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrTypes_hdr", - "//include/private:GrTypesPriv_hdr", "//include/private:SkColorData_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrPaint_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -1594,17 +1605,17 @@ generated_cc_atom( "//include/gpu:GrRecordingContext_hdr", "//include/gpu:GrTypes_hdr", "//include/gpu/gl:GrGLTypes_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkDeferredDisplayListPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrRenderTargetProxy_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu/gl:GrGLDefines_hdr", - "//src/gpu/vk:GrVkCaps_hdr", - "//src/gpu/vk:GrVkSecondaryCBDrawContext_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrRenderTargetProxy_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", + "//src/gpu/ganesh/vk:GrVkCaps_hdr", + "//src/gpu/ganesh/vk:GrVkSecondaryCBDrawContext_impl_hdr", "//src/image:SkImage_GpuBase_hdr", "//src/image:SkSurface_Gpu_hdr", "//tools/gpu:BackendSurfaceFactory_hdr", @@ -1637,7 +1648,7 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkScalerContext_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", ], ) @@ -1657,7 +1668,7 @@ generated_cc_atom( "//include/gpu:GrTypes_hdr", "//src/core:SkDevice_hdr", "//src/core:SkSpecialImage_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -1729,23 +1740,23 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkIPoint16_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDeferredUpload_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawOpAtlas_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOnFlushResourceProvider_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrXferProcessor_hdr", - "//src/gpu/ops:AtlasTextOp_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/ops:GrOp_hdr", - "//src/gpu/text:GrAtlasManager_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDeferredUpload_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawOpAtlas_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOnFlushResourceProvider_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/ops:AtlasTextOp_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/ops:GrOp_hdr", + "//src/gpu/ganesh/text:GrAtlasManager_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -1808,15 +1819,16 @@ generated_cc_atom( deps = [ ":TestUtils_hdr", ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrShaderCaps_hdr", - "//src/gpu:GrTextureProxyPriv_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/gl:GrGLGpu_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrTextureProxyPriv_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/gl:GrGLGpu_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", "//tools/gpu:GrContextFactory_hdr", "//tools/gpu:ManagedBackendTexture_hdr", "//tools/gpu/gl:GLTestContext_hdr", @@ -1845,6 +1857,7 @@ generated_cc_atom( "//include/core:SkCanvas_hdr", "//include/core:SkColorPriv_hdr", "//include/core:SkEncodedImageFormat_hdr", + "//include/core:SkImageEncoder_hdr", "//include/core:SkImage_hdr", "//include/core:SkStream_hdr", "//include/core:SkSurface_hdr", @@ -1894,11 +1907,12 @@ generated_cc_atom( ":TestUtils_hdr", ":Test_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrDirectContext_hdr", "//src/core:SkAutoPixmapStorage_hdr", - "//src/gpu:GrPixmap_hdr", + "//src/gpu/ganesh:GrPixmap_hdr", "//tools:ToolUtils_hdr", ], ) @@ -2022,13 +2036,14 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/gpu:GrDirectContext_hdr", "//include/private:SkHalf_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SurfaceContext_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SurfaceContext_hdr", "//tools/gpu:ProxyUtils_hdr", ], ) @@ -2082,6 +2097,7 @@ generated_cc_atom( "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkFont_hdr", + "//include/core:SkStream_hdr", "//include/core:SkTypeface_hdr", "//include/ports:SkFontMgr_android_hdr", "//include/private:SkFixed_hdr", @@ -2179,18 +2195,19 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", "//include/core:SkSurface_hdr", "//include/core:SkTypes_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu/gl:GrGLTypes_hdr", - "//include/private:GrGLTypesPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu/gl:GrGLCaps_hdr", - "//src/gpu/gl:GrGLTexture_hdr", + "//include/private/gpu/ganesh:GrGLTypesPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/gl:GrGLCaps_hdr", + "//src/gpu/ganesh/gl:GrGLTexture_hdr", "//src/image:SkImage_Base_hdr", "//tools/gpu:ProxyUtils_hdr", ], @@ -2254,7 +2271,7 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/effects:SkDashPathEffect_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", ], ) @@ -2267,8 +2284,8 @@ generated_cc_atom( "//include/core:SkSize_hdr", "//include/private:SkTDArray_hdr", "//include/utils:SkRandom_hdr", - "//src/gpu:GrRectanizerPow2_hdr", - "//src/gpu:GrRectanizerSkyline_hdr", + "//src/gpu/ganesh:GrRectanizerPow2_hdr", + "//src/gpu/ganesh:GrRectanizerSkyline_hdr", ], ) @@ -2283,9 +2300,9 @@ generated_cc_atom( "//include/core:SkSurface_hdr", "//include/core:SkTypes_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrAHardwareBufferImageGenerator_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", + "//src/gpu/ganesh:GrAHardwareBufferImageGenerator_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -2296,6 +2313,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkPath_hdr", "//include/core:SkRRect_hdr", "//include/core:SkRect_hdr", @@ -2305,11 +2323,11 @@ generated_cc_atom( "//src/core:SkMatrixProvider_hdr", "//src/core:SkRRectPriv_hdr", "//src/core:SkRectPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/v1:ClipStack_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/v1:ClipStack_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -2334,8 +2352,8 @@ generated_cc_atom( "//include/core:SkExecutor_hdr", "//include/core:SkTypes_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -2377,8 +2395,8 @@ generated_cc_atom( "//include/core:SkCanvas_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", ], ) @@ -2390,7 +2408,7 @@ generated_cc_atom( ":Test_hdr", "//include/core:SkTypes_hdr", "//include/gpu/gl:GrGLExtensions_hdr", - "//src/gpu/gl:GrGLDefines_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", ], ) @@ -2404,7 +2422,7 @@ generated_cc_atom( "//include/private:SkTDArray_hdr", "//include/private:SkTemplates_hdr", "//include/utils:SkRandom_hdr", - "//src/gpu:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", ], ) @@ -2415,23 +2433,24 @@ generated_cc_atom( deps = [ ":Test_hdr", "//include/core:SkBitmap_hdr", + "//include/core:SkColorSpace_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrResourceProvider_hdr", "//src/gpu:KeyBuilder_hdr", "//src/gpu:ResourceKey_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - "//src/gpu/ops:GrSimpleMeshDrawOpHelper_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/ops:GrSimpleMeshDrawOpHelper_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools:ToolUtils_hdr", ], ) @@ -2450,18 +2469,18 @@ generated_cc_atom( "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu/d3d:GrD3DTypes_hdr", - "//src/gpu:BaseDevice_hdr", - "//src/gpu:GrBackendTextureImageGenerator_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrSemaphore_hdr", - "//src/gpu:GrSurfaceProxyPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:BaseDevice_hdr", + "//src/gpu/ganesh:GrBackendTextureImageGenerator_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", + "//src/gpu/ganesh:GrSurfaceProxyPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkSurface_Gpu_hdr", "//tools/gpu:BackendSurfaceFactory_hdr", @@ -2481,8 +2500,8 @@ generated_cc_atom( "//include/core:SkCanvas_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", ], ) @@ -2492,24 +2511,25 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkTypes_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrOpsRenderPass_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrOpsRenderPass_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -2522,11 +2542,11 @@ generated_cc_atom( "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrContextOptions_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrXferProcessor_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", "//tools/gpu:GrContextFactory_hdr", "//tools/gpu:ManagedBackendTexture_hdr", ], @@ -2538,7 +2558,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", - "//src/gpu/geometry:GrQuadBuffer_hdr", + "//src/gpu/ganesh/geometry:GrQuadBuffer_hdr", ], ) @@ -2549,8 +2569,8 @@ generated_cc_atom( deps = [ ":Test_hdr", "//include/core:SkScalar_hdr", - "//src/gpu/geometry:GrQuadUtils_hdr", - "//src/gpu/geometry:GrQuad_hdr", + "//src/gpu/ganesh/geometry:GrQuadUtils_hdr", + "//src/gpu/ganesh/geometry:GrQuad_hdr", ], ) @@ -2560,9 +2580,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", - "//src/gpu:GrRenderTaskCluster_hdr", - "//src/gpu/mock:GrMockRenderTask_hdr", - "//src/gpu/mock:GrMockSurfaceProxy_hdr", + "//src/gpu/ganesh:GrRenderTaskCluster_hdr", + "//src/gpu/ganesh/mock:GrMockRenderTask_hdr", + "//src/gpu/ganesh/mock:GrMockSurfaceProxy_hdr", ], ) @@ -2574,7 +2594,7 @@ generated_cc_atom( ":Test_hdr", "//include/core:SkTextBlob_hdr", "//include/private/chromium:GrSlug_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//tools:ToolUtils_hdr", ], ) @@ -2592,7 +2612,7 @@ generated_cc_atom( "//include/pathops:SkPathOps_hdr", "//src/core:SkPathEffectBase_hdr", "//src/core:SkRectPriv_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", ], ) @@ -2617,10 +2637,11 @@ generated_cc_atom( ":Test_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkSurface_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrPixmap_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrPixmap_hdr", "//tools/gpu:ManagedBackendTexture_hdr", ], ) @@ -2632,23 +2653,24 @@ generated_cc_atom( deps = [ ":TestUtils_hdr", ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrDirectContext_hdr", "//src/core:SkAutoPixmapStorage_hdr", "//src/core:SkCanvasPriv_hdr", "//src/core:SkCompressedDataUtils_hdr", - "//src/gpu:GrBackendUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrSurfaceProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceContext_hdr", + "//src/gpu/ganesh:GrBackendUtils_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceContext_hdr", "//tools/gpu:BackendTextureImageFactory_hdr", "//tools/gpu:ManagedBackendTexture_hdr", ], @@ -2665,7 +2687,7 @@ generated_cc_atom( "//include/core:SkSurface_hdr", "//include/core:SkTextBlob_hdr", "//src/core:SkSurfacePriv_hdr", - "//src/gpu/text:GrTextBlob_hdr", + "//src/gpu/ganesh/text:GrTextBlob_hdr", "//tools:ToolUtils_hdr", ], ) @@ -2679,8 +2701,8 @@ generated_cc_atom( "//include/core:SkCanvas_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrTexture_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkImage_GpuBase_hdr", "//tools/gpu:ProxyUtils_hdr", @@ -2701,18 +2723,18 @@ generated_cc_atom( "//include/utils:SkRandom_hdr", "//src/core:SkCanvasPriv_hdr", "//src/core:SkMessageBus_hdr", - "//src/gpu:GrDefaultGeoProcFactory_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:GrThreadSafeCache_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDefaultGeoProcFactory_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:GrThreadSafeCache_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/gpu:ProxyUtils_hdr", ], ) @@ -2725,7 +2747,7 @@ generated_cc_atom( ":Test_hdr", "//include/utils:SkRandom_hdr", "//src/core:SkGeometry_hdr", - "//src/gpu:GrVx_hdr", + "//src/gpu/ganesh:GrVx_hdr", ], ) @@ -2738,13 +2760,14 @@ generated_cc_atom( "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkColorPriv_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkShader_hdr", "//include/core:SkSurface_hdr", "//include/effects:SkGradientShader_hdr", "//include/private:SkTemplates_hdr", "//src/core:SkMatrixProvider_hdr", "//src/core:SkTLazy_hdr", - "//src/gpu:GrColorInfo_hdr", + "//src/gpu/ganesh:GrColorInfo_hdr", "//src/shaders:SkColorShader_hdr", ], ) @@ -2838,13 +2861,13 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//src/core:SkImageFilterCache_hdr", "//src/core:SkSpecialImage_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrSurfaceProxyPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrSurfaceProxyPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", ], ) @@ -2873,8 +2896,9 @@ generated_cc_atom( "//src/core:SkReadBuffer_hdr", "//src/core:SkSpecialImage_hdr", "//src/core:SkSpecialSurface_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/image:SkImage_Base_hdr", "//tools:Resources_hdr", "//tools:ToolUtils_hdr", ], @@ -2899,6 +2923,7 @@ generated_cc_atom( deps = [ ":Test_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkData_hdr", "//include/core:SkGraphics_hdr", "//include/core:SkImageGenerator_hdr", @@ -2969,13 +2994,13 @@ generated_cc_atom( "//src/core:SkColorSpacePriv_hdr", "//src/core:SkImagePriv_hdr", "//src/core:SkOpts_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrImageContextPriv_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceCache_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrImageContextPriv_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceCache_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkImage_GpuYUVA_hdr", "//src/shaders:SkImageShader_hdr", @@ -3095,24 +3120,25 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/gpu/mock:GrMockTypes_hdr", "//src/core:SkRectPriv_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOnFlushResourceProvider_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrSurfaceProxyPriv_hdr", - "//src/gpu:GrSurfaceProxy_hdr", - "//src/gpu:GrTextureProxyPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/mock:GrMockGpu_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOnFlushResourceProvider_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrSurfaceProxyPriv_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", + "//src/gpu/ganesh:GrTextureProxyPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/mock:GrMockGpu_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -3123,6 +3149,7 @@ generated_cc_atom( deps = [ ":Test_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImageInfo_hdr", "//include/core:SkPaint_hdr", "//include/core:SkPath_hdr", @@ -3306,21 +3333,28 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", - "//include/core:SkColorPriv_hdr", "//include/core:SkColorSpace_hdr", + "//include/core:SkColorType_hdr", + "//include/core:SkColor_hdr", "//include/core:SkDocument_hdr", "//include/core:SkFont_hdr", + "//include/core:SkImageInfo_hdr", "//include/core:SkImage_hdr", "//include/core:SkPictureRecorder_hdr", "//include/core:SkPicture_hdr", + "//include/core:SkRRect_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkSerialProcs_hdr", + "//include/core:SkStream_hdr", "//include/core:SkString_hdr", "//include/core:SkSurface_hdr", "//include/core:SkTextBlob_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrAHardwareBufferUtils_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrAHardwareBufferUtils_impl_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//src/utils:SkMultiPictureDocument_hdr", "//tools:SkSharingProc_hdr", "//tools:ToolUtils_hdr", @@ -3408,13 +3442,13 @@ generated_cc_atom( deps = [ ":Test_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu/ops:GrOp_hdr", - "//src/gpu/ops:OpsTask_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh/ops:GrOp_hdr", + "//src/gpu/ganesh/ops:OpsTask_hdr", ], ) @@ -3467,6 +3501,7 @@ generated_cc_atom( ":Test_hdr", "//include/core:SkData_hdr", "//include/core:SkStream_hdr", + "//include/private:SkTDArray_hdr", "//include/private:SkTo_hdr", "//src/pdf:SkPDFMakeToUnicodeCmap_hdr", ], @@ -3663,6 +3698,7 @@ generated_cc_atom( ":Test_hdr", "//include/core:SkPathBuilder_hdr", "//include/core:SkPathTypes_hdr", + "//include/core:SkRRect_hdr", "//include/utils:SkRandom_hdr", "//src/core:SkPathPriv_hdr", ], @@ -4445,19 +4481,20 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkPath_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceCache_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:GrUserStencilSettings_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/ops:SoftwarePathRenderer_hdr", - "//src/gpu/ops:TriangulatingPathRenderer_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceCache_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:GrUserStencilSettings_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/ops:SoftwarePathRenderer_hdr", + "//src/gpu/ganesh/ops:TriangulatingPathRenderer_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -4637,8 +4674,8 @@ generated_cc_atom( "//include/core:SkSurface_hdr", "//include/gpu:GrDirectContext_hdr", "//src/core:SkConvertPixels_hdr", - "//src/gpu:GrDataUtils_hdr", - "//src/gpu:GrPixmap_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", + "//src/gpu/ganesh:GrPixmap_hdr", "//tools:ToolUtils_hdr", ], ) @@ -4649,22 +4686,23 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkString_hdr", "//include/core:SkTypes_hdr", "//include/gpu:GrDirectContext_hdr", "//src/core:SkPointPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProgramInfo_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/ops:GrMeshDrawOp_hdr", - "//src/gpu/ops:GrSimpleMeshDrawOpHelper_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/ops:GrMeshDrawOp_hdr", + "//src/gpu/ganesh/ops:GrSimpleMeshDrawOpHelper_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -4673,23 +4711,25 @@ generated_cc_atom( srcs = ["ProcessorTest.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":TestHarness_hdr", ":TestUtils_hdr", ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrGpuResource_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrResourceProvider_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/ops:GrMeshDrawOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrGpuResource_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/ops:GrMeshDrawOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/flags:CommandLineFlags_hdr", ], ) @@ -4700,26 +4740,27 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkTypes_hdr", "//include/gpu:GrDirectContext_hdr", "//include/private:SkChecksum_hdr", "//include/utils:SkRandom_hdr", - "//src/gpu:GrAutoLocaleSetter_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawOpTest_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrXferProcessor_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/effects:GrBlendFragmentProcessor_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - "//src/gpu/gl:GrGLGpu_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLProgramBuilder_hdr", - "//src/gpu/ops:GrDrawOp_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrAutoLocaleSetter_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawOpTest_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrXferProcessor_hdr", + "//src/gpu/ganesh/effects:GrBlendFragmentProcessor_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh/gl:GrGLGpu_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramBuilder_hdr", + "//src/gpu/ganesh/ops:GrDrawOp_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -4734,10 +4775,10 @@ generated_cc_atom( "//include/core:SkPromiseImageTexture_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrTexture_hdr", "//src/image:SkImage_Gpu_hdr", "//tools/gpu:ManagedBackendTexture_hdr", ], @@ -4751,14 +4792,14 @@ generated_cc_atom( ":Test_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRenderTargetProxy_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrSurfaceProxy_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRenderTargetProxy_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) @@ -4770,14 +4811,14 @@ generated_cc_atom( ":TestUtils_hdr", ":Test_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrRenderTargetProxy_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrSurfaceProxy_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrRenderTargetProxy_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", ], ) @@ -4790,19 +4831,19 @@ generated_cc_atom( ":Test_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRenderTargetProxy_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrSurfaceProxyPriv_hdr", - "//src/gpu:GrSurface_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/gl:GrGLDefines_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRenderTargetProxy_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrSurfaceProxyPriv_hdr", + "//src/gpu/ganesh:GrSurface_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", "//tools/gpu:ManagedBackendTexture_hdr", ], ) @@ -4863,8 +4904,10 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkColorPriv_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", "//include/core:SkSurface_hdr", "//include/private:SkColorData_hdr", @@ -4889,11 +4932,11 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//src/core:SkAutoPixmapStorage_hdr", "//src/core:SkConvertPixels_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:SurfaceContext_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:SurfaceContext_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", "//tools:ToolUtils_hdr", "//tools/gpu:BackendSurfaceFactory_hdr", "//tools/gpu:BackendTextureImageFactory_hdr", @@ -5032,15 +5075,16 @@ generated_cc_atom( deps = [ ":TestUtils_hdr", ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrTextureEffect_hdr", - "//src/gpu/gl:GrGLGpu_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrTextureEffect_hdr", + "//src/gpu/ganesh/gl:GrGLGpu_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", "//tools/gpu:ProxyUtils_hdr", ], ) @@ -5064,6 +5108,7 @@ generated_cc_atom( deps = [ ":Test_hdr", "//include/core:SkPath_hdr", + "//include/core:SkRRect_hdr", "//include/core:SkRegion_hdr", "//include/utils:SkRandom_hdr", "//src/core:SkAutoMalloc_hdr", @@ -5081,8 +5126,8 @@ generated_cc_atom( "//include/core:SkSurface_hdr", "//include/effects:SkImageFilters_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrResourceCache_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrResourceCache_hdr", ], ) @@ -5096,14 +5141,14 @@ generated_cc_atom( "//include/core:SkSpan_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrResourceAllocator_hdr", - "//src/gpu:GrResourceProviderPriv_hdr", - "//src/gpu:GrSurfaceProxyPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrResourceAllocator_hdr", + "//src/gpu/ganesh:GrResourceProviderPriv_hdr", + "//src/gpu/ganesh:GrSurfaceProxyPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", "//tools/gpu:ManagedBackendTexture_hdr", ], ) @@ -5120,17 +5165,17 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//src/core:SkMessageBus_hdr", "//src/core:SkMipmap_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpuResourceCacheAccess_hdr", - "//src/gpu:GrGpuResourcePriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrResourceCache_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpuResourceCacheAccess_hdr", + "//src/gpu/ganesh:GrGpuResourcePriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrResourceCache_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", "//tools/gpu:GrContextFactory_hdr", "//tools/gpu:ManagedBackendTexture_hdr", ], @@ -5164,8 +5209,8 @@ generated_cc_atom( "//include/core:SkSize_hdr", "//include/core:SkSurface_hdr", "//include/effects:SkRuntimeEffect_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//tools:Resources_hdr", "//tools:RuntimeBlendUtils_hdr", "//tools:ToolUtils_hdr", @@ -5180,13 +5225,14 @@ generated_cc_atom( ":TestUtils_hdr", ":Test_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceContext_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceContext_hdr", ], ) @@ -5196,6 +5242,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkTypes_hdr", "//src/core:SkColorSpaceXformSteps_hdr", "//src/core:SkRasterPipeline_hdr", @@ -5384,6 +5431,7 @@ generated_cc_atom( ":Test_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkPath_hdr", + "//include/core:SkRRect_hdr", "//include/core:SkVertices_hdr", "//include/utils:SkShadowUtils_hdr", "//src/core:SkDrawShadowInfo_hdr", @@ -5476,22 +5524,39 @@ generated_cc_atom( generated_cc_atom( name = "SkDSLRuntimeEffectTest_src", srcs = ["SkDSLRuntimeEffectTest.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", - "//include/core:SkBitmap_hdr", + "//include/core:SkAlphaType_hdr", + "//include/core:SkBlendMode_hdr", "//include/core:SkCanvas_hdr", - "//include/core:SkColorFilter_hdr", - "//include/core:SkData_hdr", + "//include/core:SkColorType_hdr", + "//include/core:SkImageInfo_hdr", "//include/core:SkPaint_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkShader_hdr", + "//include/core:SkString_hdr", "//include/core:SkSurface_hdr", + "//include/core:SkTypes_hdr", "//include/effects:SkRuntimeEffect_hdr", "//include/gpu:GrDirectContext_hdr", + "//include/private:SkSLDefines_hdr", + "//include/sksl:DSLCore_hdr", + "//include/sksl:DSLExpression_hdr", + "//include/sksl:DSLModifiers_hdr", "//include/sksl:DSLRuntimeEffects_hdr", + "//include/sksl:DSLType_hdr", + "//include/sksl:DSLVar_hdr", + "//include/sksl:DSL_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLPosition_hdr", "//src/core:SkRuntimeEffectPriv_hdr", "//src/core:SkTLazy_hdr", - "//src/gpu:GrColor_hdr", + "//src/gpu/ganesh:GrColor_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLUtil_hdr", + "//tools/gpu:GrContextFactory_hdr", ], ) @@ -5572,7 +5637,7 @@ generated_cc_atom( "//include/private:SkHalf_hdr", "//include/private:SkTo_hdr", "//src/core:SkRasterPipeline_hdr", - "//src/gpu:GrSwizzle_hdr", + "//src/gpu:Swizzle_hdr", ], ) @@ -5592,15 +5657,16 @@ generated_cc_atom( "//include/private/chromium:SkChromeRemoteGlyphCache_hdr", "//src/core:SkDraw_hdr", "//src/core:SkFontPriv_hdr", + "//src/core:SkReadBuffer_hdr", "//src/core:SkScalerCache_hdr", "//src/core:SkStrikeCache_hdr", "//src/core:SkStrikeSpec_hdr", "//src/core:SkSurfacePriv_hdr", "//src/core:SkTypeface_remote_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu/text:GrSDFTControl_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh/text:GrSDFTControl_hdr", "//tools:Resources_hdr", "//tools:ToolUtils_hdr", "//tools/fonts:TestEmptyTypeface_hdr", @@ -5614,6 +5680,7 @@ generated_cc_atom( deps = [ ":Test_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkGraphics_hdr", "//include/core:SkPictureRecorder_hdr", "//include/core:SkPicture_hdr", @@ -5638,6 +5705,7 @@ generated_cc_atom( "//include/core:SkColorFilter_hdr", "//include/core:SkData_hdr", "//include/core:SkPaint_hdr", + "//include/core:SkStream_hdr", "//include/core:SkSurface_hdr", "//include/effects:SkBlenders_hdr", "//include/effects:SkRuntimeEffect_hdr", @@ -5646,51 +5714,60 @@ generated_cc_atom( "//src/core:SkColorSpacePriv_hdr", "//src/core:SkRuntimeEffectPriv_hdr", "//src/core:SkTLazy_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrColor_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu:GrImageInfo_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu:SurfaceFillContext_hdr", - "//src/gpu/effects:GrSkSLFP_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", + "//src/gpu/ganesh/effects:GrSkSLFP_hdr", ], ) generated_cc_atom( name = "SkSLCross_src", srcs = ["SkSLCross.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", - "//src/gpu:GrFragmentProcessor_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", - ], -) - -generated_cc_atom( - name = "SkSLDSLErrorLineNumbers_src", - srcs = ["SkSLDSLErrorLineNumbers.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":Test_hdr", - "//include/private:SkSLIRNode_hdr", - "//include/sksl:DSL_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/sksl:SkSLCompiler_hdr", - "//src/sksl:SkSLThreadContext_hdr", - "//src/sksl/dsl/priv:DSLWriter_hdr", + "//include/core:SkAlphaType_hdr", + "//include/core:SkBlendMode_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkColorType_hdr", + "//include/core:SkImageInfo_hdr", + "//include/core:SkMatrix_hdr", + "//include/core:SkPoint_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkSurfaceProps_hdr", + "//include/core:SkTypes_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/private:SkColorData_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/core:SkSLTypeShared_hdr", + "//src/gpu/ganesh:GrColor_hdr", + "//src/gpu/ganesh:GrFragmentProcessor_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrPaint_hdr", + "//src/gpu/ganesh:GrPixmap_hdr", + "//src/gpu/ganesh:GrProcessor_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLProgramDataManager_hdr", + "//src/gpu/ganesh/glsl:GrGLSLUniformHandler_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", + "//tools/gpu:GrContextFactory_hdr", ], ) generated_cc_atom( name = "SkSLDSLOnlyTest_src", srcs = ["SkSLDSLOnlyTest.cpp"], + enforce_iwyu = False, # DSL.h intentionally supplies transitive dependencies visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/sksl:DSLBlock_hdr", "//include/sksl:DSL_hdr", ], ) @@ -5698,152 +5775,225 @@ generated_cc_atom( generated_cc_atom( name = "SkSLDSLTest_src", srcs = ["SkSLDSLTest.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/private:SkSLDefines_hdr", "//include/private:SkSLIRNode_hdr", + "//include/private:SkSLModifiers_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLProgramKind_hdr", + "//include/private:SkSLStatement_hdr", + "//include/private:SkTArray_hdr", + "//include/sksl:DSLBlock_hdr", + "//include/sksl:DSLCore_hdr", + "//include/sksl:DSLExpression_hdr", + "//include/sksl:DSLFunction_hdr", + "//include/sksl:DSLLayout_hdr", + "//include/sksl:DSLModifiers_hdr", "//include/sksl:DSLRuntimeEffects_hdr", + "//include/sksl:DSLStatement_hdr", + "//include/sksl:DSLType_hdr", + "//include/sksl:DSLVar_hdr", + "//include/sksl:DSLWrapper_hdr", "//include/sksl:DSL_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", + "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLPosition_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLProgramSettings_hdr", "//src/sksl:SkSLThreadContext_hdr", "//src/sksl/dsl/priv:DSLWriter_hdr", "//src/sksl/ir:SkSLBlock_hdr", + "//src/sksl/ir:SkSLExpression_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/ir:SkSLVariable_hdr", + "//tools/gpu:GrContextFactory_hdr", ], ) generated_cc_atom( name = "SkSLES2ConformanceTest_src", srcs = ["SkSLES2ConformanceTest.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", - "//gm:gm_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColor_hdr", "//include/core:SkData_hdr", - "//include/core:SkFont_hdr", + "//include/core:SkImageInfo_hdr", "//include/core:SkPaint_hdr", - "//include/core:SkSize_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkShader_hdr", "//include/core:SkString_hdr", "//include/core:SkSurface_hdr", - "//include/effects:SkGradientShader_hdr", - "//include/effects:SkImageFilters_hdr", + "//include/core:SkTypes_hdr", "//include/effects:SkRuntimeEffect_hdr", - "//include/utils:SkRandom_hdr", + "//include/gpu:GrDirectContext_hdr", "//src/core:SkOSFile_hdr", - "//src/core:SkRuntimeEffectPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", "//src/utils:SkOSPath_hdr", "//tools:Resources_hdr", - "//tools:ToolUtils_hdr", + "//tools/gpu:GrContextFactory_hdr", ], ) generated_cc_atom( name = "SkSLGLSLTestbed_src", srcs = ["SkSLGLSLTestbed.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLProgramKind_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLUtil_hdr", + "//src/sksl/ir:SkSLProgram_hdr", ], ) generated_cc_atom( name = "SkSLInterpreterTest_src", srcs = ["SkSLInterpreterTest.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColor_hdr", + "//include/core:SkData_hdr", "//include/core:SkM44_hdr", + "//include/core:SkMatrix_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkScalar_hdr", + "//include/core:SkSpan_hdr", + "//include/core:SkStream_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkFloatingPoint_hdr", + "//include/private:SkSLProgramKind_hdr", + "//include/private:SkTemplates_hdr", + "//src/core:SkVM_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLContext_hdr", + "//src/sksl:SkSLUtil_hdr", "//src/sksl/codegen:SkSLVMCodeGenerator_hdr", "//src/sksl/ir:SkSLExternalFunction_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//src/sksl/tracing:SkVMDebugTrace_hdr", - "//src/utils:SkJSON_hdr", ], ) generated_cc_atom( name = "SkSLMemoryLayoutTest_src", srcs = ["SkSLMemoryLayoutTest.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/private:SkSLModifiers_hdr", "//include/sksl:SkSLErrorReporter_hdr", + "//include/sksl:SkSLPosition_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", "//src/sksl:SkSLContext_hdr", "//src/sksl:SkSLMangler_hdr", "//src/sksl:SkSLMemoryLayout_hdr", + "//src/sksl:SkSLUtil_hdr", + "//src/sksl/ir:SkSLType_hdr", ], ) generated_cc_atom( name = "SkSLMetalTestbed_src", srcs = ["SkSLMetalTestbed.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLProgramKind_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLUtil_hdr", + "//src/sksl/ir:SkSLProgram_hdr", ], ) generated_cc_atom( name = "SkSLSPIRVTestbed_src", srcs = ["SkSLSPIRVTestbed.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkSLProgramKind_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLUtil_hdr", + "//src/sksl/ir:SkSLProgram_hdr", ], ) generated_cc_atom( name = "SkSLTest_src", srcs = ["SkSLTest.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ + ":TestHarness_hdr", ":Test_hdr", - "//gm:gm_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColor_hdr", "//include/core:SkData_hdr", - "//include/core:SkFont_hdr", + "//include/core:SkImageInfo_hdr", + "//include/core:SkM44_hdr", "//include/core:SkPaint_hdr", - "//include/core:SkSize_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkShader_hdr", + "//include/core:SkSpan_hdr", "//include/core:SkString_hdr", "//include/core:SkSurface_hdr", - "//include/effects:SkGradientShader_hdr", - "//include/effects:SkImageFilters_hdr", + "//include/core:SkTypes_hdr", "//include/effects:SkRuntimeEffect_hdr", - "//include/private:SkSLDefines_hdr", + "//include/gpu:GrDirectContext_hdr", + "//include/private:SkSLProgramElement_hdr", + "//include/private:SkSLProgramKind_hdr", "//include/sksl:DSLCore_hdr", - "//include/utils:SkRandom_hdr", "//src/core:SkRuntimeEffectPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", "//src/sksl:SkSLCompiler_hdr", "//src/sksl:SkSLDehydrator_hdr", "//src/sksl:SkSLRehydrator_hdr", - "//src/sksl:SkSLThreadContext_hdr", + "//src/sksl:SkSLStringStream_hdr", + "//src/sksl:SkSLUtil_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//tools:Resources_hdr", - "//tools:ToolUtils_hdr", + "//tools/gpu:GrContextFactory_hdr", ], ) generated_cc_atom( name = "SkSLTypeTest_src", srcs = ["SkSLTypeTest.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", "//include/sksl:SkSLErrorReporter_hdr", - "//src/gpu:GrCaps_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", + "//src/sksl:SkSLBuiltinTypes_hdr", "//src/sksl:SkSLContext_hdr", "//src/sksl:SkSLMangler_hdr", + "//src/sksl/ir:SkSLType_hdr", ], ) @@ -5964,7 +6114,7 @@ generated_cc_atom( "//src/core:SkCpu_hdr", "//src/core:SkMSAN_hdr", "//src/core:SkVM_hdr", - "//src/gpu:GrShaderCaps_hdr", + "//src/gpu/ganesh:GrShaderCaps_hdr", "//src/sksl:SkSLCompiler_hdr", "//src/sksl/codegen:SkSLVMCodeGenerator_hdr", "//src/sksl/tracing:SkVMDebugTrace_hdr", @@ -6032,7 +6182,7 @@ generated_cc_atom( "//include/core:SkSurface_hdr", "//include/core:SkTypes_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", ], ) @@ -6055,6 +6205,7 @@ generated_cc_atom( ":Test_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", "//include/core:SkPixmap_hdr", "//include/core:SkSurface_hdr", @@ -6063,11 +6214,11 @@ generated_cc_atom( "//src/core:SkAutoPixmapStorage_hdr", "//src/core:SkSpecialImage_hdr", "//src/core:SkSpecialSurface_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrSurfaceProxy_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SkGr_hdr", ], ) @@ -6082,9 +6233,9 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//src/core:SkSpecialImage_hdr", "//src/core:SkSpecialSurface_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", ], ) @@ -6219,11 +6370,12 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", ], ) @@ -6235,19 +6387,20 @@ generated_cc_atom( ":Test_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrBackendSemaphore_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu/vk:GrVkTypes_hdr", "//include/gpu/vk:GrVkVulkan_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu/gl:GrGLGpu_hdr", - "//src/gpu/gl:GrGLUtil_hdr", - "//src/gpu/vk:GrVkCommandPool_hdr", - "//src/gpu/vk:GrVkGpu_hdr", - "//src/gpu/vk:GrVkUtil_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh/gl:GrGLGpu_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/vk:GrVkCommandPool_hdr", + "//src/gpu/ganesh/vk:GrVkGpu_hdr", + "//src/gpu/ganesh/vk:GrVkUtil_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -6257,7 +6410,9 @@ generated_cc_atom( srcs = ["SurfaceTest.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":TestHarness_hdr", ":Test_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkData_hdr", "//include/core:SkOverdrawCanvas_hdr", @@ -6271,14 +6426,14 @@ generated_cc_atom( "//src/core:SkCanvasPriv_hdr", "//src/core:SkDevice_hdr", "//src/core:SkUtils_hdr", - "//src/gpu:BaseDevice_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpuResourcePriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:SurfaceFillContext_hdr", + "//src/gpu/ganesh:BaseDevice_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpuResourcePriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkImage_Gpu_hdr", "//src/image:SkSurface_Gpu_hdr", @@ -6363,7 +6518,7 @@ generated_cc_atom( deps = [ ":Test_hdr", "//include/core:SkBitmap_hdr", - "//src/gpu:GrDataUtils_hdr", + "//src/gpu/ganesh:GrDataUtils_hdr", ], ) @@ -6373,19 +6528,21 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":TestUtils_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkStream_hdr", "//include/encode:SkPngEncoder_hdr", "//include/utils:SkBase64_hdr", "//src/core:SkAutoPixmapStorage_hdr", "//src/core:SkUtils_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrSurfaceProxy_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceContext_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceContext_hdr", "//src/utils:SkCharToGlyphCache_hdr", ], ) @@ -6433,9 +6590,9 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//include/ports:SkTypeface_win_hdr", "//src/core:SkGlyphRun_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu/text:GrAtlasManager_hdr", - "//src/gpu/text:GrTextBlobRedrawCoordinator_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh/text:GrAtlasManager_hdr", + "//src/gpu/ganesh/text:GrTextBlobRedrawCoordinator_hdr", "//tools:ToolUtils_hdr", "//tools/fonts:RandomScalerContext_hdr", ], @@ -6466,12 +6623,13 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu/gl:GrGLDefines_hdr", - "//src/gpu/gl:GrGLGpu_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", + "//src/gpu/ganesh/gl:GrGLGpu_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", ], ) @@ -6483,13 +6641,13 @@ generated_cc_atom( ":Test_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrColorSpaceXform_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu/geometry:GrQuad_hdr", - "//src/gpu/ops:OpsTask_hdr", - "//src/gpu/ops:TextureOp_hdr", + "//src/gpu/ganesh:GrColorSpaceXform_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh/geometry:GrQuad_hdr", + "//src/gpu/ganesh/ops:OpsTask_hdr", + "//src/gpu/ganesh/ops:TextureOp_hdr", ], ) @@ -6503,15 +6661,15 @@ generated_cc_atom( "//include/core:SkImage_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrResourceCache_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/dawn:GrDawnGpu_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrResourceCache_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/dawn:GrDawnGpu_hdr", "//tools/gpu:ManagedBackendTexture_hdr", ], ) @@ -6550,7 +6708,7 @@ generated_cc_atom( deps = [ ":Test_hdr", "//include/utils:SkRandom_hdr", - "//src/gpu:GrTTopoSort_hdr", + "//src/gpu/ganesh:GrTTopoSort_hdr", "//tools:ToolUtils_hdr", ], ) @@ -6563,13 +6721,13 @@ generated_cc_atom( ":Test_hdr", "//include/core:SkTraceMemoryDump_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu/gl:GrGLBuffer_hdr", - "//src/gpu/gl:GrGLDefines_hdr", - "//src/gpu/gl:GrGLGpu_hdr", - "//src/gpu/gl:GrGLTextureRenderTarget_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/gl:GrGLBuffer_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", + "//src/gpu/ganesh/gl:GrGLGpu_hdr", + "//src/gpu/ganesh/gl:GrGLTextureRenderTarget_hdr", ], ) @@ -6595,16 +6753,17 @@ generated_cc_atom( deps = [ ":TestUtils_hdr", ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkSurface_hdr", "//include/core:SkTypes_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrSurfaceProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -6615,20 +6774,21 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkPath_hdr", "//include/core:SkRect_hdr", "//include/effects:SkGradientShader_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrEagerVertexAllocator_hdr", - "//src/gpu:GrStyle_hdr", - "//src/gpu:GrUserStencilSettings_hdr", - "//src/gpu/effects:GrPorterDuffXferProcessor_hdr", - "//src/gpu/geometry:GrAATriangulator_hdr", - "//src/gpu/geometry:GrInnerFanTriangulator_hdr", - "//src/gpu/geometry:GrStyledShape_hdr", - "//src/gpu/ops:TriangulatingPathRenderer_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrEagerVertexAllocator_hdr", + "//src/gpu/ganesh:GrStyle_hdr", + "//src/gpu/ganesh:GrUserStencilSettings_hdr", + "//src/gpu/ganesh/effects:GrPorterDuffXferProcessor_hdr", + "//src/gpu/ganesh/geometry:GrAATriangulator_hdr", + "//src/gpu/ganesh/geometry:GrInnerFanTriangulator_hdr", + "//src/gpu/ganesh/geometry:GrStyledShape_hdr", + "//src/gpu/ganesh/ops:TriangulatingPathRenderer_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//src/shaders:SkShaderBase_hdr", "//tools:ToolUtils_hdr", ], @@ -6733,12 +6893,12 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//include/gpu/vk:GrVkTypes_hdr", "//include/gpu/vk:GrVkVulkan_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrTextureProxy_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu/vk:GrVkGpu_hdr", - "//src/gpu/vk:GrVkImageLayout_hdr", - "//src/gpu/vk:GrVkTexture_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/vk:GrVkGpu_hdr", + "//src/gpu/ganesh/vk:GrVkImageLayout_hdr", + "//src/gpu/ganesh/vk:GrVkTexture_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkImage_GpuBase_hdr", "//src/image:SkImage_Gpu_hdr", @@ -6761,12 +6921,12 @@ generated_cc_atom( "//include/gpu:GrBackendDrawableInfo_hdr", "//include/gpu:GrDirectContext_hdr", "//include/gpu/vk:GrVkVulkan_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu/vk:GrVkGpu_hdr", - "//src/gpu/vk:GrVkInterface_hdr", - "//src/gpu/vk:GrVkMemory_hdr", - "//src/gpu/vk:GrVkSecondaryCBDrawContext_hdr", - "//src/gpu/vk:GrVkUtil_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh/vk:GrVkGpu_hdr", + "//src/gpu/ganesh/vk:GrVkInterface_hdr", + "//src/gpu/ganesh/vk:GrVkMemory_hdr", + "//src/gpu/ganesh/vk:GrVkSecondaryCBDrawContext_impl_hdr", + "//src/gpu/ganesh/vk:GrVkUtil_hdr", "//tools/gpu:GrContextFactory_hdr", ], ) @@ -6787,12 +6947,12 @@ generated_cc_atom( "//include/gpu/vk:GrVkBackendContext_hdr", "//include/gpu/vk:GrVkExtensions_hdr", "//src/core:SkAutoMalloc_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/gl:GrGLDefines_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", "//tools/gpu:GrContextFactory_hdr", "//tools/gpu/vk:VkTestUtils_hdr", ], @@ -6842,12 +7002,12 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//include/gpu/vk:GrVkTypes_hdr", "//include/gpu/vk:GrVkVulkan_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu/vk:GrVkCaps_hdr", - "//src/gpu/vk:GrVkGpu_hdr", - "//src/gpu/vk:GrVkMemory_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh/vk:GrVkCaps_hdr", + "//src/gpu/ganesh/vk:GrVkGpu_hdr", + "//src/gpu/ganesh/vk:GrVkMemory_hdr", "//tools/gpu:GrContextFactory_hdr", "//tools/gpu:ManagedBackendTexture_hdr", ], @@ -6860,6 +7020,7 @@ generated_cc_atom( deps = [ ":Test_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", "//include/core:SkSurface_hdr", "//include/core:SkTypes_hdr", @@ -6903,7 +7064,7 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/utils:SkRandom_hdr", "//src/core:SkRectPriv_hdr", - "//src/gpu:GrWindowRectangles_hdr", + "//src/gpu/ganesh:GrWindowRectangles_hdr", ], ) @@ -6920,10 +7081,10 @@ generated_cc_atom( "//include/gpu:GrTypes_hdr", "//src/core:SkAutoPixmapStorage_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:GrSurfaceProxy_hdr", - "//src/gpu:SurfaceFillContext_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", + "//src/gpu/ganesh:SurfaceFillContext_hdr", "//tools/gpu:BackendSurfaceFactory_hdr", "//tools/gpu:ProxyUtils_hdr", ], @@ -6944,9 +7105,9 @@ generated_cc_atom( "//include/private:SkColorData_hdr", "//include/private:SkImageInfoPriv_hdr", "//src/core:SkMathPriv_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrProxyProvider_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", "//tools/gpu:BackendSurfaceFactory_hdr", ], ) @@ -6998,19 +7159,20 @@ generated_cc_atom( generated_cc_atom( name = "SkSLErrorTest_src", srcs = ["SkSLErrorTest.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":Test_hdr", - "//gm:gm_hdr", - "//include/effects:SkRuntimeEffect_hdr", + "//include/core:SkData_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkString_hdr", + "//include/private:SkSLProgramKind_hdr", "//src/core:SkOSFile_hdr", - "//src/core:SkRuntimeEffectPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLUtil_hdr", + "//src/sksl/ir:SkSLProgram_hdr", "//src/utils:SkOSPath_hdr", "//tools:Resources_hdr", - "//tools:ToolUtils_hdr", ], ) @@ -7026,8 +7188,35 @@ generated_cc_atom( "//src/core:SkStrikeCache_hdr", "//src/core:SkStrikeSpec_hdr", "//src/core:SkWriteBuffer_hdr", - "//src/gpu:GrResourceProvider_hdr", - "//src/gpu:GrSubRunAllocator_hdr", - "//src/gpu/text:GrGlyphVector_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrSubRunAllocator_hdr", + "//src/gpu/ganesh/text:GrGlyphVector_hdr", + ], +) + +generated_cc_atom( + name = "SaveLayerOriginTest_src", + srcs = ["SaveLayerOriginTest.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + ":TestUtils_hdr", + ":Test_hdr", + "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkSurface_hdr", + "//include/gpu:GrDirectContext_hdr", ], ) + +generated_cc_atom( + name = "TestHarness_hdr", + hdrs = ["TestHarness.h"], + visibility = ["//:__subpackages__"], +) + +generated_cc_atom( + name = "TestHarness_src", + srcs = ["TestHarness.cpp"], + visibility = ["//:__subpackages__"], + deps = [":TestHarness_hdr"], +) diff --git a/third_party/skia/tests/BackendAllocationTest.cpp b/third_party/skia/tests/BackendAllocationTest.cpp index 65cb201598c7..4e4b9773a910 100644 --- a/third_party/skia/tests/BackendAllocationTest.cpp +++ b/third_party/skia/tests/BackendAllocationTest.cpp @@ -10,11 +10,11 @@ #include "include/core/SkSurfaceCharacterization.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkAutoPixmapStorage.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #include "src/image/SkImage_Base.h" #include "tests/Test.h" #include "tests/TestUtils.h" @@ -23,15 +23,15 @@ #include "tools/gpu/ProxyUtils.h" #ifdef SK_GL -#include "src/gpu/gl/GrGLCaps.h" -#include "src/gpu/gl/GrGLDefines.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLCaps.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #endif #ifdef SK_METAL #include "include/gpu/mtl/GrMtlTypes.h" -#include "src/gpu/mtl/GrMtlCppUtil.h" +#include "src/gpu/ganesh/mtl/GrMtlCppUtil.h" #endif using sk_gpu_test::ManagedBackendTexture; @@ -900,7 +900,7 @@ DEF_GPUTEST_FOR_ALL_GL_CONTEXTS(GLBackendAllocationTest, reporter, ctxInfo) { #ifdef SK_VULKAN -#include "src/gpu/vk/GrVkCaps.h" +#include "src/gpu/ganesh/vk/GrVkCaps.h" DEF_GPUTEST_FOR_VULKAN_CONTEXT(VkBackendAllocationTest, reporter, ctxInfo) { auto context = ctxInfo.directContext(); diff --git a/third_party/skia/tests/BackendSurfaceMutableStateTest.cpp b/third_party/skia/tests/BackendSurfaceMutableStateTest.cpp index 60d58c426c30..15c1e064c7f5 100644 --- a/third_party/skia/tests/BackendSurfaceMutableStateTest.cpp +++ b/third_party/skia/tests/BackendSurfaceMutableStateTest.cpp @@ -5,20 +5,21 @@ * found in the LICENSE file. */ +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" #include "src/image/SkImage_Base.h" #include "tests/Test.h" #include "tools/gpu/ProxyUtils.h" #ifdef SK_VULKAN -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkTexture.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkTexture.h" DEF_GPUTEST_FOR_VULKAN_CONTEXT(VkBackendSurfaceMutableStateTest, reporter, ctxInfo) { auto dContext = ctxInfo.directContext(); diff --git a/third_party/skia/tests/BitmapTest.cpp b/third_party/skia/tests/BitmapTest.cpp index f81e5f7ffccc..9d33bd4acfad 100644 --- a/third_party/skia/tests/BitmapTest.cpp +++ b/third_party/skia/tests/BitmapTest.cpp @@ -7,6 +7,7 @@ #include "include/core/SkBitmap.h" #include "include/core/SkColor.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImageInfo.h" #include "include/core/SkMallocPixelRef.h" #include "include/core/SkPixelRef.h" diff --git a/third_party/skia/tests/BulkRectTest.cpp b/third_party/skia/tests/BulkRectTest.cpp index 5bef96b73f24..7f2a63296fea 100644 --- a/third_party/skia/tests/BulkRectTest.cpp +++ b/third_party/skia/tests/BulkRectTest.cpp @@ -5,15 +5,16 @@ * found in the LICENSE file. */ +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkBlendModePriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrOpsTypes.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/ops/FillRectOp.h" -#include "src/gpu/ops/TextureOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrOpsTypes.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/ops/FillRectOp.h" +#include "src/gpu/ganesh/ops/TextureOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tests/Test.h" static std::unique_ptr new_SDC(GrRecordingContext* rContext) { diff --git a/third_party/skia/tests/CanvasStateTest.cpp b/third_party/skia/tests/CanvasStateTest.cpp index 55948779c6be..8101dc800aca 100644 --- a/third_party/skia/tests/CanvasStateTest.cpp +++ b/third_party/skia/tests/CanvasStateTest.cpp @@ -14,6 +14,7 @@ #include "include/core/SkRect.h" #include "include/core/SkRegion.h" #include "include/core/SkScalar.h" +#include "include/core/SkStream.h" #include "include/core/SkSurface.h" #include "include/core/SkTypes.h" #include "include/private/SkTDArray.h" diff --git a/third_party/skia/tests/ChecksumTest.cpp b/third_party/skia/tests/ChecksumTest.cpp index a719741a99c2..78c590446330 100644 --- a/third_party/skia/tests/ChecksumTest.cpp +++ b/third_party/skia/tests/ChecksumTest.cpp @@ -88,3 +88,12 @@ DEF_TEST(ChecksumConsistent, r) { REPORTER_ASSERT(r, SkOpts::hash(bytes, 99) == 0x3f98a130, "%08x", SkOpts::hash(bytes, 99)); REPORTER_ASSERT(r, SkOpts::hash(bytes,255) == 0x3b9ceab2, "%08x", SkOpts::hash(bytes,255)); } + +DEF_TEST(ChecksumStrings, r) { + constexpr char kMessage[] = "Checksums are supported for SkString, string, and string_view."; + const uint32_t expectedHash = SkOpts::hash(kMessage, strlen(kMessage)); + + REPORTER_ASSERT(r, expectedHash == SkGoodHash()(SkString(kMessage))); + REPORTER_ASSERT(r, expectedHash == SkGoodHash()(std::string(kMessage))); + REPORTER_ASSERT(r, expectedHash == SkGoodHash()(std::string_view(kMessage))); +} diff --git a/third_party/skia/tests/ClearTest.cpp b/third_party/skia/tests/ClearTest.cpp index d4bb1e820372..839f9838d284 100644 --- a/third_party/skia/tests/ClearTest.cpp +++ b/third_party/skia/tests/ClearTest.cpp @@ -17,14 +17,14 @@ #include "include/core/SkTypes.h" #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkColorData.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkAutoPixmapStorage.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/ops/ClearOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/ops/ClearOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" diff --git a/third_party/skia/tests/CompressedBackendAllocationTest.cpp b/third_party/skia/tests/CompressedBackendAllocationTest.cpp index a328d42917da..7b894f909084 100644 --- a/third_party/skia/tests/CompressedBackendAllocationTest.cpp +++ b/third_party/skia/tests/CompressedBackendAllocationTest.cpp @@ -6,14 +6,15 @@ */ #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkCompressedDataUtils.h" #include "src/core/SkMipmap.h" #include "src/core/SkPaintPriv.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/image/SkImage_Base.h" #include "tests/Test.h" #include "tests/TestUtils.h" @@ -73,8 +74,10 @@ static void check_compressed_mipmaps(GrRecordingContext* rContext, sk_spgetCanvas(); + // Given that we bias LOD selection with MIP maps, hitting a level exactly using + // SkMipmap::kLinear is difficult so we use kNearest. const SkSamplingOptions sampling(SkFilterMode::kLinear, - SkMipmapMode::kLinear); + SkMipmapMode::kNearest); SkPaint p; p.setBlendMode(SkBlendMode::kSrc); diff --git a/third_party/skia/tests/CopySurfaceTest.cpp b/third_party/skia/tests/CopySurfaceTest.cpp index 79a411ffd1e6..e4946472da6e 100644 --- a/third_party/skia/tests/CopySurfaceTest.cpp +++ b/third_party/skia/tests/CopySurfaceTest.cpp @@ -12,16 +12,16 @@ #include "include/core/SkTypes.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkTemplates.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkOpts.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" #include "tools/gpu/ProxyUtils.h" diff --git a/third_party/skia/tests/DMSAATest.cpp b/third_party/skia/tests/DMSAATest.cpp index 0533c4691ecb..2246fcb3147b 100644 --- a/third_party/skia/tests/DMSAATest.cpp +++ b/third_party/skia/tests/DMSAATest.cpp @@ -7,12 +7,14 @@ #include "tests/Test.h" +#include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkVertices.h" #include "src/core/SkBlendModePriv.h" #include "src/core/SkMatrixProvider.h" #include "src/core/SkSurfacePriv.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace { diff --git a/third_party/skia/tests/DebugLayerManagerTest.cpp b/third_party/skia/tests/DebugLayerManagerTest.cpp index e55bb5d3e71a..ad654114ec84 100644 --- a/third_party/skia/tests/DebugLayerManagerTest.cpp +++ b/third_party/skia/tests/DebugLayerManagerTest.cpp @@ -8,6 +8,7 @@ #include "include/core/SkPaint.h" #include "include/core/SkPicture.h" #include "include/core/SkPictureRecorder.h" +#include "include/core/SkPixmap.h" #include "include/core/SkRect.h" #include "tests/Test.h" #include "tools/debugger/DebugLayerManager.h" diff --git a/third_party/skia/tests/DefaultPathRendererTest.cpp b/third_party/skia/tests/DefaultPathRendererTest.cpp index 1e9598ee2f29..72e555a99ad6 100644 --- a/third_party/skia/tests/DefaultPathRendererTest.cpp +++ b/third_party/skia/tests/DefaultPathRendererTest.cpp @@ -20,15 +20,15 @@ #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrTypes.h" -#include "include/private/GrTypesPriv.h" #include "include/private/SkColorData.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrPaint.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" diff --git a/third_party/skia/tests/DeferredDisplayListTest.cpp b/third_party/skia/tests/DeferredDisplayListTest.cpp index b9eb38946ff2..2001523bc919 100644 --- a/third_party/skia/tests/DeferredDisplayListTest.cpp +++ b/third_party/skia/tests/DeferredDisplayListTest.cpp @@ -27,15 +27,15 @@ #include "include/gpu/GrRecordingContext.h" #include "include/gpu/GrTypes.h" #include "include/gpu/gl/GrGLTypes.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkDeferredDisplayListPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/gl/GrGLDefines.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" #include "src/image/SkImage_GpuBase.h" #include "src/image/SkSurface_Gpu.h" #include "tests/Test.h" @@ -50,8 +50,8 @@ #include #ifdef SK_VULKAN -#include "src/gpu/vk/GrVkCaps.h" -#include "src/gpu/vk/GrVkSecondaryCBDrawContext.h" +#include "src/gpu/ganesh/vk/GrVkCaps.h" +#include "src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext_impl.h" #endif class SurfaceParameters { diff --git a/third_party/skia/tests/DescriptorTest.cpp b/third_party/skia/tests/DescriptorTest.cpp index 3f234b7d4aa2..5a3800cd8111 100644 --- a/third_party/skia/tests/DescriptorTest.cpp +++ b/third_party/skia/tests/DescriptorTest.cpp @@ -12,7 +12,7 @@ #include "src/core/SkReadBuffer.h" #include "src/core/SkScalerContext.h" #include "src/core/SkWriteBuffer.h" -#include "src/gpu/GrResourceProvider.h" +#include "src/gpu/ganesh/GrResourceProvider.h" #include "tests/Test.h" #include diff --git a/third_party/skia/tests/DeviceTest.cpp b/third_party/skia/tests/DeviceTest.cpp index 6eff3035dad7..4ebc20d438df 100644 --- a/third_party/skia/tests/DeviceTest.cpp +++ b/third_party/skia/tests/DeviceTest.cpp @@ -15,7 +15,7 @@ #include "include/gpu/GrTypes.h" #include "src/core/SkDevice.h" #include "src/core/SkSpecialImage.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" diff --git a/third_party/skia/tests/DrawOpAtlasTest.cpp b/third_party/skia/tests/DrawOpAtlasTest.cpp index 54bbbccbdd8f..19eade0743a8 100644 --- a/third_party/skia/tests/DrawOpAtlasTest.cpp +++ b/third_party/skia/tests/DrawOpAtlasTest.cpp @@ -18,22 +18,22 @@ #include "include/core/SkTypes.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkIPoint16.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDeferredUpload.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawOpAtlas.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOnFlushResourceProvider.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/ops/AtlasTextOp.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/ops/GrOp.h" -#include "src/gpu/text/GrAtlasManager.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDeferredUpload.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawOpAtlas.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOnFlushResourceProvider.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/ops/AtlasTextOp.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/ops/GrOp.h" +#include "src/gpu/ganesh/text/GrAtlasManager.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" @@ -187,7 +187,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(BasicDrawOpAtlas, reporter, ctxInfo) { } #if SK_GPU_V1 -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" // This test verifies that the AtlasTextOp::onPrepare method correctly handles a failure // when allocating an atlas page. diff --git a/third_party/skia/tests/EGLImageTest.cpp b/third_party/skia/tests/EGLImageTest.cpp index 70bfdcf2d91d..aabcefa24788 100644 --- a/third_party/skia/tests/EGLImageTest.cpp +++ b/third_party/skia/tests/EGLImageTest.cpp @@ -5,15 +5,16 @@ * found in the LICENSE file. */ +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrShaderCaps.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxyPriv.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxyPriv.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include "tests/Test.h" #include "tests/TestUtils.h" #include "tools/gpu/GrContextFactory.h" diff --git a/third_party/skia/tests/EncodeTest.cpp b/third_party/skia/tests/EncodeTest.cpp index c5f7937c6465..d2bec213a8fa 100644 --- a/third_party/skia/tests/EncodeTest.cpp +++ b/third_party/skia/tests/EncodeTest.cpp @@ -13,6 +13,7 @@ #include "include/core/SkColorPriv.h" #include "include/core/SkEncodedImageFormat.h" #include "include/core/SkImage.h" +#include "include/core/SkImageEncoder.h" #include "include/core/SkStream.h" #include "include/core/SkSurface.h" #include "include/encode/SkJpegEncoder.h" diff --git a/third_party/skia/tests/ExtendedSkColorTypeTests.cpp b/third_party/skia/tests/ExtendedSkColorTypeTests.cpp index 28d7def2bbf6..ddc2cdec1263 100644 --- a/third_party/skia/tests/ExtendedSkColorTypeTests.cpp +++ b/third_party/skia/tests/ExtendedSkColorTypeTests.cpp @@ -6,11 +6,12 @@ */ #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkAutoPixmapStorage.h" -#include "src/gpu/GrPixmap.h" +#include "src/gpu/ganesh/GrPixmap.h" #include "tests/Test.h" #include "tests/TestUtils.h" diff --git a/third_party/skia/tests/FloatingPointTextureTest.cpp b/third_party/skia/tests/FloatingPointTextureTest.cpp index 59b041843c9f..05c0afca9ce8 100644 --- a/third_party/skia/tests/FloatingPointTextureTest.cpp +++ b/third_party/skia/tests/FloatingPointTextureTest.cpp @@ -14,13 +14,14 @@ #include "tests/Test.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" #include "include/private/SkHalf.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SurfaceContext.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SurfaceContext.h" #include "tools/gpu/ProxyUtils.h" #include diff --git a/third_party/skia/tests/FontMgrAndroidParserTest.cpp b/third_party/skia/tests/FontMgrAndroidParserTest.cpp index df358b7df607..149c175dbb23 100644 --- a/third_party/skia/tests/FontMgrAndroidParserTest.cpp +++ b/third_party/skia/tests/FontMgrAndroidParserTest.cpp @@ -10,6 +10,7 @@ #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkFont.h" +#include "include/core/SkStream.h" #include "include/core/SkTypeface.h" #include "include/ports/SkFontMgr_android.h" #include "include/private/SkFixed.h" diff --git a/third_party/skia/tests/GLBackendSurfaceTest.cpp b/third_party/skia/tests/GLBackendSurfaceTest.cpp index 5387e8e3a181..9b1babff774e 100644 --- a/third_party/skia/tests/GLBackendSurfaceTest.cpp +++ b/third_party/skia/tests/GLBackendSurfaceTest.cpp @@ -11,17 +11,18 @@ #include "tests/Test.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkSurface.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/gl/GrGLTypes.h" -#include "include/private/GrGLTypesPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/gl/GrGLCaps.h" -#include "src/gpu/gl/GrGLTexture.h" +#include "include/private/gpu/ganesh/GrGLTypesPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/gl/GrGLCaps.h" +#include "src/gpu/ganesh/gl/GrGLTexture.h" #include "src/image/SkImage_Base.h" #include "tools/gpu/ProxyUtils.h" diff --git a/third_party/skia/tests/GpuDrawPathTest.cpp b/third_party/skia/tests/GpuDrawPathTest.cpp index 6f4976a0d938..fba133e3d0b8 100644 --- a/third_party/skia/tests/GpuDrawPathTest.cpp +++ b/third_party/skia/tests/GpuDrawPathTest.cpp @@ -17,7 +17,7 @@ #include "include/core/SkSurface.h" #include "include/effects/SkDashPathEffect.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" #include "tests/Test.h" #include diff --git a/third_party/skia/tests/GpuRectanizerTest.cpp b/third_party/skia/tests/GpuRectanizerTest.cpp index 67a4994baa4f..a7602a558fea 100644 --- a/third_party/skia/tests/GpuRectanizerTest.cpp +++ b/third_party/skia/tests/GpuRectanizerTest.cpp @@ -8,8 +8,8 @@ #include "include/core/SkSize.h" #include "include/private/SkTDArray.h" #include "include/utils/SkRandom.h" -#include "src/gpu/GrRectanizerPow2.h" -#include "src/gpu/GrRectanizerSkyline.h" +#include "src/gpu/ganesh/GrRectanizerPow2.h" +#include "src/gpu/ganesh/GrRectanizerSkyline.h" #include "tests/Test.h" static const int kWidth = 1024; diff --git a/third_party/skia/tests/GrAHardwareBufferTest.cpp b/third_party/skia/tests/GrAHardwareBufferTest.cpp index e7daaf603f9c..509a342c6d5f 100644 --- a/third_party/skia/tests/GrAHardwareBufferTest.cpp +++ b/third_party/skia/tests/GrAHardwareBufferTest.cpp @@ -15,9 +15,9 @@ #include "include/core/SkImage.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrAHardwareBufferImageGenerator.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" +#include "src/gpu/ganesh/GrAHardwareBufferImageGenerator.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" diff --git a/third_party/skia/tests/GrClipStackTest.cpp b/third_party/skia/tests/GrClipStackTest.cpp index 0acfd5103bed..63d84d7b62f1 100644 --- a/third_party/skia/tests/GrClipStackTest.cpp +++ b/third_party/skia/tests/GrClipStackTest.cpp @@ -6,9 +6,10 @@ * found in the LICENSE file. */ -#include "src/gpu/v1/ClipStack.h" +#include "src/gpu/ganesh/v1/ClipStack.h" #include "tests/Test.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkPath.h" #include "include/core/SkRRect.h" #include "include/core/SkRect.h" @@ -18,10 +19,10 @@ #include "src/core/SkMatrixProvider.h" #include "src/core/SkRRectPriv.h" #include "src/core/SkRectPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" namespace { diff --git a/third_party/skia/tests/GrContextFactoryTest.cpp b/third_party/skia/tests/GrContextFactoryTest.cpp index 0ddb69a3b01b..98e6903d76cc 100644 --- a/third_party/skia/tests/GrContextFactoryTest.cpp +++ b/third_party/skia/tests/GrContextFactoryTest.cpp @@ -9,8 +9,8 @@ #include "include/core/SkExecutor.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" diff --git a/third_party/skia/tests/GrFinishedFlushTest.cpp b/third_party/skia/tests/GrFinishedFlushTest.cpp index 481c06d2bb53..7f034a766ba3 100644 --- a/third_party/skia/tests/GrFinishedFlushTest.cpp +++ b/third_party/skia/tests/GrFinishedFlushTest.cpp @@ -11,8 +11,8 @@ #include "include/core/SkCanvas.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" using namespace sk_gpu_test; diff --git a/third_party/skia/tests/GrGLExtensionsTest.cpp b/third_party/skia/tests/GrGLExtensionsTest.cpp index 4c957062029a..386f92f61ed0 100644 --- a/third_party/skia/tests/GrGLExtensionsTest.cpp +++ b/third_party/skia/tests/GrGLExtensionsTest.cpp @@ -8,7 +8,7 @@ #include "include/core/SkTypes.h" #include "include/gpu/gl/GrGLExtensions.h" -#include "src/gpu/gl/GrGLDefines.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" #include "tests/Test.h" #ifdef SK_GL diff --git a/third_party/skia/tests/GrGlyphVectorTest.cpp b/third_party/skia/tests/GrGlyphVectorTest.cpp index 4300aefe7537..5dbd11bf9cc5 100644 --- a/third_party/skia/tests/GrGlyphVectorTest.cpp +++ b/third_party/skia/tests/GrGlyphVectorTest.cpp @@ -6,15 +6,15 @@ */ #include "src/core/SkGlyph.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/text/GrGlyphVector.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/text/GrGlyphVector.h" #include "src/core/SkGlyphBuffer.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkStrikeCache.h" #include "src/core/SkStrikeSpec.h" #include "src/core/SkWriteBuffer.h" -#include "src/gpu/GrSubRunAllocator.h" +#include "src/gpu/ganesh/GrSubRunAllocator.h" #include "tests/Test.h" class TestingPeer { @@ -48,7 +48,7 @@ DEF_TEST(GrGlyphVector_Serialization, r) { auto data = wBuffer.snapshotAsData(); SkReadBuffer rBuffer{data->data(), data->size()}; - auto dst = GrGlyphVector::MakeFromBuffer(rBuffer, &alloc); + auto dst = GrGlyphVector::MakeFromBuffer(rBuffer, nullptr, &alloc); REPORTER_ASSERT(r, dst.has_value()); REPORTER_ASSERT(r, TestingPeer::GetDescriptor(src) == TestingPeer::GetDescriptor(*dst)); @@ -71,7 +71,7 @@ DEF_TEST(GrGlyphVector_BadLengths, r) { auto data = wBuffer.snapshotAsData(); SkReadBuffer rBuffer{data->data(), data->size()}; GrSubRunAllocator alloc; - auto dst = GrGlyphVector::MakeFromBuffer(rBuffer, &alloc); + auto dst = GrGlyphVector::MakeFromBuffer(rBuffer, nullptr, &alloc); REPORTER_ASSERT(r, !dst.has_value()); } @@ -89,7 +89,7 @@ DEF_TEST(GrGlyphVector_BadLengths, r) { auto data = wBuffer.snapshotAsData(); SkReadBuffer rBuffer{data->data(), data->size()}; GrSubRunAllocator alloc; - auto dst = GrGlyphVector::MakeFromBuffer(rBuffer, &alloc); + auto dst = GrGlyphVector::MakeFromBuffer(rBuffer, nullptr, &alloc); REPORTER_ASSERT(r, !dst.has_value()); } @@ -107,7 +107,7 @@ DEF_TEST(GrGlyphVector_BadLengths, r) { auto data = wBuffer.snapshotAsData(); SkReadBuffer rBuffer{data->data(), data->size()}; GrSubRunAllocator alloc; - auto dst = GrGlyphVector::MakeFromBuffer(rBuffer, &alloc); + auto dst = GrGlyphVector::MakeFromBuffer(rBuffer, nullptr, &alloc); REPORTER_ASSERT(r, !dst.has_value()); } } diff --git a/third_party/skia/tests/GrMemoryPoolTest.cpp b/third_party/skia/tests/GrMemoryPoolTest.cpp index 64241617c672..23b9df3ea1f0 100644 --- a/third_party/skia/tests/GrMemoryPoolTest.cpp +++ b/third_party/skia/tests/GrMemoryPoolTest.cpp @@ -9,7 +9,7 @@ #include "include/private/SkTDArray.h" #include "include/private/SkTemplates.h" #include "include/utils/SkRandom.h" -#include "src/gpu/GrMemoryPool.h" +#include "src/gpu/ganesh/GrMemoryPool.h" #include "tests/Test.h" // A is the top of an inheritance tree of classes that overload op new and diff --git a/third_party/skia/tests/GrMeshTest.cpp b/third_party/skia/tests/GrMeshTest.cpp index c205dc4056f3..f3faa4c5ffa5 100644 --- a/third_party/skia/tests/GrMeshTest.cpp +++ b/third_party/skia/tests/GrMeshTest.cpp @@ -7,27 +7,30 @@ #include "tests/Test.h" -#include -#include -#include + #include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrResourceProvider.h" #include "src/gpu/KeyBuilder.h" #include "src/gpu/ResourceKey.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" + +#include +#include +#include #if 0 #include "tools/ToolUtils.h" diff --git a/third_party/skia/tests/GrMipMappedTest.cpp b/third_party/skia/tests/GrMipMappedTest.cpp index 97c913560c48..78c8b9d10497 100644 --- a/third_party/skia/tests/GrMipMappedTest.cpp +++ b/third_party/skia/tests/GrMipMappedTest.cpp @@ -15,18 +15,18 @@ #ifdef SK_DIRECT3D #include "include/gpu/d3d/GrD3DTypes.h" #endif -#include "src/gpu/BaseDevice.h" -#include "src/gpu/GrBackendTextureImageGenerator.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/BaseDevice.h" +#include "src/gpu/ganesh/GrBackendTextureImageGenerator.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "src/image/SkImage_Base.h" #include "src/image/SkSurface_Gpu.h" #include "tests/Test.h" @@ -402,7 +402,6 @@ static std::unique_ptr draw_mipmap_into_new_rende {1, 1, 1, 1}, SkRect::MakeWH(4, 4), SkRect::MakeWH(1, 1), - GrAA::kYes, GrQuadAAFlags::kAll, SkCanvas::kFast_SrcRectConstraint, SkMatrix::I(), diff --git a/third_party/skia/tests/GrOpListFlushTest.cpp b/third_party/skia/tests/GrOpListFlushTest.cpp index 36228d447cb0..e6f9cd352cff 100644 --- a/third_party/skia/tests/GrOpListFlushTest.cpp +++ b/third_party/skia/tests/GrOpListFlushTest.cpp @@ -9,8 +9,8 @@ #include "include/core/SkCanvas.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" #include "tests/Test.h" static bool check_read(skiatest::Reporter* reporter, const SkBitmap& bitmap) { diff --git a/third_party/skia/tests/GrPipelineDynamicStateTest.cpp b/third_party/skia/tests/GrPipelineDynamicStateTest.cpp index 52198a6865ae..50c5d0b6472d 100644 --- a/third_party/skia/tests/GrPipelineDynamicStateTest.cpp +++ b/third_party/skia/tests/GrPipelineDynamicStateTest.cpp @@ -8,23 +8,24 @@ #include "include/core/SkTypes.h" #include "tests/Test.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrOpsRenderPass.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" /** * This is a GPU-backend specific test for dynamic pipeline state. It draws boxes using dynamic diff --git a/third_party/skia/tests/GrPorterDuffTest.cpp b/third_party/skia/tests/GrPorterDuffTest.cpp index 8369f929b336..3fdfbb37a112 100644 --- a/third_party/skia/tests/GrPorterDuffTest.cpp +++ b/third_party/skia/tests/GrPorterDuffTest.cpp @@ -10,11 +10,11 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrXferProcessor.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" #include "tools/gpu/GrContextFactory.h" #include "tools/gpu/ManagedBackendTexture.h" @@ -104,7 +104,8 @@ class GrPorterDuffTest { TEST_ASSERT(!xp->willReadDstColor() || (isLCD && (SkBlendMode::kSrcOver != xfermode || !inputColor.isOpaque()))); - TEST_ASSERT(xp->hasSecondaryOutput() == GrBlendCoeffRefsSrc2(fBlendInfo.fDstBlend)); + TEST_ASSERT(xp->hasSecondaryOutput() == + skgpu::BlendCoeffRefsSrc2(fBlendInfo.fDstBlend)); } bool fCompatibleWithCoverageAsAlpha; @@ -134,9 +135,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrc: @@ -145,9 +146,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDst: @@ -156,9 +157,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcOver: @@ -167,9 +168,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kSAModulate_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kIS2C_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kIS2C == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstOver: @@ -178,9 +179,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcIn: @@ -189,9 +190,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstIn: @@ -200,9 +201,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcOut: @@ -211,9 +212,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstOut: @@ -222,9 +223,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcATop: @@ -233,9 +234,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstATop: @@ -244,9 +245,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kXor: @@ -255,9 +256,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kPlus: @@ -266,9 +267,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kModulate: @@ -277,9 +278,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kScreen: @@ -288,9 +289,9 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps) TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kInvalid_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kInvalid_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; default: @@ -313,9 +314,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kCoverage_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kReverseSubtract_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDC_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kReverseSubtract == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDC == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrc: @@ -324,9 +325,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kCoverage_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kIS2A_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kIS2A == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDst: @@ -335,9 +336,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kNone_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(!xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcOver: @@ -346,9 +347,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstOver: @@ -357,9 +358,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcIn: @@ -368,9 +369,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kCoverage_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kIS2A_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kIS2A == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstIn: @@ -379,9 +380,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kISAModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kReverseSubtract_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDC_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kReverseSubtract == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDC == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcOut: @@ -390,9 +391,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kCoverage_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kIS2A_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kIS2A == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstOut: @@ -401,9 +402,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcATop: @@ -412,9 +413,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstATop: @@ -423,9 +424,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kISAModulate_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kIS2C_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kIS2C == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kXor: @@ -434,9 +435,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kPlus: @@ -445,9 +446,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kModulate: @@ -456,9 +457,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kISCModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kReverseSubtract_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDC_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kReverseSubtract == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDC == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kScreen: @@ -467,9 +468,9 @@ static void test_color_unknown_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISC_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISC == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; default: @@ -494,9 +495,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(xpi.fUnaffectedByDstValue); TEST_ASSERT(kNone_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrc: @@ -505,9 +506,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDst: @@ -516,9 +517,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kNone_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(!xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcOver: @@ -527,9 +528,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstOver: @@ -538,9 +539,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcIn: @@ -549,9 +550,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstIn: @@ -560,9 +561,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kSA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kSA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcOut: @@ -571,9 +572,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstOut: @@ -582,9 +583,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcATop: @@ -593,9 +594,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstATop: @@ -604,9 +605,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kSA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kSA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kXor: @@ -615,9 +616,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kPlus: @@ -626,9 +627,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kModulate: @@ -637,9 +638,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kSC_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kSC == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kScreen: @@ -648,9 +649,9 @@ static void test_color_not_opaque_no_coverage(skiatest::Reporter* reporter, cons TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISC_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISC == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; default: @@ -674,9 +675,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kCoverage_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kReverseSubtract_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDC_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kReverseSubtract == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDC == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrc: @@ -685,9 +686,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDst: @@ -696,9 +697,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kNone_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(!xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcOver: @@ -707,9 +708,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstOver: @@ -718,9 +719,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcIn: @@ -729,9 +730,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstIn: @@ -740,9 +741,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kNone_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(!xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcOut: @@ -751,9 +752,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstOut: @@ -762,9 +763,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kCoverage_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kReverseSubtract_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDC_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kReverseSubtract == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDC == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcATop: @@ -773,9 +774,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstATop: @@ -784,9 +785,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kXor: @@ -795,9 +796,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kPlus: @@ -806,18 +807,18 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kModulate: TEST_ASSERT(!xpi.fIgnoresInputColor); TEST_ASSERT(kISCModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kReverseSubtract_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDC_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kReverseSubtract == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDC == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kScreen: @@ -826,9 +827,9 @@ static void test_color_opaque_with_coverage(skiatest::Reporter* reporter, const TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISC_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISC == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; default: @@ -853,9 +854,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(xpi.fUnaffectedByDstValue); TEST_ASSERT(kNone_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrc: @@ -864,9 +865,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDst: @@ -875,9 +876,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kNone_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(!xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcOver: @@ -887,12 +888,12 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); if (caps.shouldCollapseSrcOverToSrcWhenAble()) { - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); } else { - TEST_ASSERT(kISA_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISA == xpi.fBlendInfo.fDstBlend); } TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; @@ -902,9 +903,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcIn: @@ -913,9 +914,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstIn: @@ -924,9 +925,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kNone_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(!xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcOut: @@ -935,9 +936,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstOut: @@ -946,9 +947,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(xpi.fUnaffectedByDstValue); TEST_ASSERT(kNone_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kSrcATop: @@ -957,9 +958,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kDstATop: @@ -968,9 +969,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kXor: @@ -979,9 +980,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kIDA_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kIDA == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kPlus: @@ -990,9 +991,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kModulate: @@ -1001,9 +1002,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kZero_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kSC_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kZero == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kSC == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; case SkBlendMode::kScreen: @@ -1012,9 +1013,9 @@ static void test_color_opaque_no_coverage(skiatest::Reporter* reporter, const Gr TEST_ASSERT(!xpi.fUnaffectedByDstValue); TEST_ASSERT(kModulate_OutputType == xpi.fPrimaryOutputType); TEST_ASSERT(kNone_OutputType == xpi.fSecondaryOutputType); - TEST_ASSERT(kAdd_GrBlendEquation == xpi.fBlendInfo.fEquation); - TEST_ASSERT(kOne_GrBlendCoeff == xpi.fBlendInfo.fSrcBlend); - TEST_ASSERT(kISC_GrBlendCoeff == xpi.fBlendInfo.fDstBlend); + TEST_ASSERT(skgpu::BlendEquation::kAdd == xpi.fBlendInfo.fEquation); + TEST_ASSERT(skgpu::BlendCoeff::kOne == xpi.fBlendInfo.fSrcBlend); + TEST_ASSERT(skgpu::BlendCoeff::kISC == xpi.fBlendInfo.fDstBlend); TEST_ASSERT(xpi.fBlendInfo.fWriteColor); break; default: diff --git a/third_party/skia/tests/GrQuadBufferTest.cpp b/third_party/skia/tests/GrQuadBufferTest.cpp index 5fce19290483..f8f0a5bd9982 100644 --- a/third_party/skia/tests/GrQuadBufferTest.cpp +++ b/third_party/skia/tests/GrQuadBufferTest.cpp @@ -7,7 +7,7 @@ #include "tests/Test.h" -#include "src/gpu/geometry/GrQuadBuffer.h" +#include "src/gpu/ganesh/geometry/GrQuadBuffer.h" #include diff --git a/third_party/skia/tests/GrQuadCropTest.cpp b/third_party/skia/tests/GrQuadCropTest.cpp index 2807632fb99b..29ee73ecaa24 100644 --- a/third_party/skia/tests/GrQuadCropTest.cpp +++ b/third_party/skia/tests/GrQuadCropTest.cpp @@ -6,8 +6,8 @@ */ #include "include/core/SkScalar.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/geometry/GrQuadUtils.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/geometry/GrQuadUtils.h" #include "tests/Test.h" #define ASSERT(cond) REPORTER_ASSERT(r, cond) diff --git a/third_party/skia/tests/GrRenderTaskClusterTest.cpp b/third_party/skia/tests/GrRenderTaskClusterTest.cpp index e92acc6d0f09..0a4c1faf4499 100644 --- a/third_party/skia/tests/GrRenderTaskClusterTest.cpp +++ b/third_party/skia/tests/GrRenderTaskClusterTest.cpp @@ -5,9 +5,9 @@ * found in the LICENSE file. */ -#include "src/gpu/GrRenderTaskCluster.h" -#include "src/gpu/mock/GrMockRenderTask.h" -#include "src/gpu/mock/GrMockSurfaceProxy.h" +#include "src/gpu/ganesh/GrRenderTaskCluster.h" +#include "src/gpu/ganesh/mock/GrMockRenderTask.h" +#include "src/gpu/ganesh/mock/GrMockSurfaceProxy.h" #include "tests/Test.h" typedef void (*CreateGraphPF)(SkTArray>* graph, @@ -17,7 +17,7 @@ static void make_proxies(int count, SkTArray>* proxies) { proxies->reset(count); for (int i = 0; i < count; i++) { auto name = SkStringPrintf("%c", 'A' + i); - proxies->at(i) = sk_make_sp(std::move(name)); + proxies->at(i) = sk_make_sp(std::move(name), /*label=*/""); } } diff --git a/third_party/skia/tests/GrSlugTest.cpp b/third_party/skia/tests/GrSlugTest.cpp index 765976613d9f..a7a9eef6ca95 100644 --- a/third_party/skia/tests/GrSlugTest.cpp +++ b/third_party/skia/tests/GrSlugTest.cpp @@ -7,7 +7,7 @@ #include "include/core/SkTextBlob.h" #include "include/private/chromium/GrSlug.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/Test.h" #include "tools/ToolUtils.h" diff --git a/third_party/skia/tests/GrStyledShapeTest.cpp b/third_party/skia/tests/GrStyledShapeTest.cpp index 5b629047ccf0..ab1d1d9b7349 100644 --- a/third_party/skia/tests/GrStyledShapeTest.cpp +++ b/third_party/skia/tests/GrStyledShapeTest.cpp @@ -12,7 +12,7 @@ #include "include/pathops/SkPathOps.h" #include "src/core/SkPathEffectBase.h" #include "src/core/SkRectPriv.h" -#include "src/gpu/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" #include "tests/Test.h" #include diff --git a/third_party/skia/tests/GrSurfaceResolveTest.cpp b/third_party/skia/tests/GrSurfaceResolveTest.cpp index 4dc49e60983d..3c048683919c 100644 --- a/third_party/skia/tests/GrSurfaceResolveTest.cpp +++ b/third_party/skia/tests/GrSurfaceResolveTest.cpp @@ -9,10 +9,11 @@ #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkSurface.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrPixmap.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrPixmap.h" #include "tests/TestUtils.h" #include "tools/gpu/ManagedBackendTexture.h" diff --git a/third_party/skia/tests/GrSurfaceTest.cpp b/third_party/skia/tests/GrSurfaceTest.cpp index e6375178fdc9..7d8ec5f84a84 100644 --- a/third_party/skia/tests/GrSurfaceTest.cpp +++ b/third_party/skia/tests/GrSurfaceTest.cpp @@ -5,27 +5,29 @@ * found in the LICENSE file. */ -#include +#include "include/core/SkColorSpace.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkCanvasPriv.h" #include "src/core/SkCompressedDataUtils.h" -#include "src/gpu/GrBackendUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceContext.h" +#include "src/gpu/ganesh/GrBackendUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceContext.h" #include "tests/Test.h" #include "tests/TestUtils.h" #include "tools/gpu/BackendTextureImageFactory.h" #include "tools/gpu/ManagedBackendTexture.h" +#include + // Tests that GrSurface::asTexture(), GrSurface::asRenderTarget(), and static upcasting of texture // and render targets to GrSurface all work as expected. DEF_GPUTEST_FOR_MOCK_CONTEXT(GrSurface, reporter, ctxInfo) { @@ -176,8 +178,8 @@ DEF_GPUTEST_FOR_ALL_CONTEXTS(GrSurfaceRenderability, reporter, ctxInfo) { } } -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" // For each context, set it to always clear the textures and then run through all the // supported formats checking that the textures are actually cleared diff --git a/third_party/skia/tests/GrTextBlobTest.cpp b/third_party/skia/tests/GrTextBlobTest.cpp index eb2089553709..11066e77238c 100644 --- a/third_party/skia/tests/GrTextBlobTest.cpp +++ b/third_party/skia/tests/GrTextBlobTest.cpp @@ -10,7 +10,7 @@ #include "include/core/SkSurface.h" #include "include/core/SkTextBlob.h" #include "src/core/SkSurfacePriv.h" -#include "src/gpu/text/GrTextBlob.h" +#include "src/gpu/ganesh/text/GrTextBlob.h" #include "tests/Test.h" #include "tools/ToolUtils.h" diff --git a/third_party/skia/tests/GrTextureMipMapInvalidationTest.cpp b/third_party/skia/tests/GrTextureMipMapInvalidationTest.cpp index 2f7d1f393ea2..b2f7d701bc5b 100644 --- a/third_party/skia/tests/GrTextureMipMapInvalidationTest.cpp +++ b/third_party/skia/tests/GrTextureMipMapInvalidationTest.cpp @@ -8,8 +8,8 @@ #include "include/core/SkCanvas.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrTexture.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_GpuBase.h" #include "tests/Test.h" diff --git a/third_party/skia/tests/GrThreadSafeCacheTest.cpp b/third_party/skia/tests/GrThreadSafeCacheTest.cpp index 31de07707f16..769daf23d85d 100644 --- a/third_party/skia/tests/GrThreadSafeCacheTest.cpp +++ b/third_party/skia/tests/GrThreadSafeCacheTest.cpp @@ -12,18 +12,18 @@ #include "include/utils/SkRandom.h" #include "src/core/SkCanvasPriv.h" #include "src/core/SkMessageBus.h" -#include "src/gpu/GrDefaultGeoProcFactory.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/GrThreadSafeCache.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrDefaultGeoProcFactory.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/GrThreadSafeCache.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tests/Test.h" #include "tests/TestUtils.h" #include "tools/gpu/ProxyUtils.h" @@ -198,7 +198,6 @@ class TestHelper { {1.0f, 1.0f, 1.0f, 1.0f}, SkRect::MakeWH(wh, wh), SkRect::MakeWH(wh, wh), - GrAA::kNo, GrQuadAAFlags::kNone, SkCanvas::kFast_SrcRectConstraint, SkMatrix::I(), diff --git a/third_party/skia/tests/GrVxTest.cpp b/third_party/skia/tests/GrVxTest.cpp index 39803a92697d..919893c769ec 100644 --- a/third_party/skia/tests/GrVxTest.cpp +++ b/third_party/skia/tests/GrVxTest.cpp @@ -7,7 +7,7 @@ #include "include/utils/SkRandom.h" #include "src/core/SkGeometry.h" -#include "src/gpu/GrVx.h" +#include "src/gpu/ganesh/GrVx.h" #include "tests/Test.h" #include #include diff --git a/third_party/skia/tests/GradientTest.cpp b/third_party/skia/tests/GradientTest.cpp index 1e9c1db7383f..53e9480ebf14 100644 --- a/third_party/skia/tests/GradientTest.cpp +++ b/third_party/skia/tests/GradientTest.cpp @@ -8,13 +8,14 @@ #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkColorPriv.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkShader.h" #include "include/core/SkSurface.h" #include "include/effects/SkGradientShader.h" #include "include/private/SkTemplates.h" #include "src/core/SkMatrixProvider.h" #include "src/core/SkTLazy.h" -#include "src/gpu/GrColorInfo.h" +#include "src/gpu/ganesh/GrColorInfo.h" #include "src/shaders/SkColorShader.h" #include "tests/Test.h" diff --git a/third_party/skia/tests/HashTest.cpp b/third_party/skia/tests/HashTest.cpp index 438d00a6019b..410b0227db44 100644 --- a/third_party/skia/tests/HashTest.cpp +++ b/third_party/skia/tests/HashTest.cpp @@ -129,56 +129,98 @@ DEF_TEST(HashMap, r) { } } -DEF_TEST(HashSet, r) { - SkTHashSet set; +DEF_TEST(HashMapCtor, r) { + SkTHashMap map{{1, "one"}, {2, "two"}, {3, "three"}, {4, "four"}}; + REPORTER_ASSERT(r, map.count() == 4); + REPORTER_ASSERT(r, map.approxBytesUsed() >= 4 * (sizeof(int) + sizeof(std::string_view))); - set.add(SkString("Hello")); - set.add(SkString("World")); + std::string_view* found = map.find(1); + REPORTER_ASSERT(r, found); + REPORTER_ASSERT(r, *found == "one"); + + found = map.find(2); + REPORTER_ASSERT(r, found); + REPORTER_ASSERT(r, *found == "two"); + + found = map.find(3); + REPORTER_ASSERT(r, found); + REPORTER_ASSERT(r, *found == "three"); + + found = map.find(4); + REPORTER_ASSERT(r, found); + REPORTER_ASSERT(r, *found == "four"); + + found = map.find(5); + REPORTER_ASSERT(r, !found); + + found = map.find(6); + REPORTER_ASSERT(r, !found); +} + +DEF_TEST(HashSetCtor, r) { + SkTHashSet set{"one", "two", "three", "four"}; + REPORTER_ASSERT(r, set.count() == 4); + REPORTER_ASSERT(r, set.approxBytesUsed() >= 4 * sizeof(std::string_view)); + + REPORTER_ASSERT(r, set.contains("one")); + REPORTER_ASSERT(r, set.contains("two")); + REPORTER_ASSERT(r, set.contains("three")); + REPORTER_ASSERT(r, set.contains("four")); + REPORTER_ASSERT(r, !set.contains("five")); + REPORTER_ASSERT(r, !set.contains("six")); +} + +template +static void test_hash_set(skiatest::Reporter* r) { + SkTHashSet set; + + set.add(T("Hello")); + set.add(T("World")); REPORTER_ASSERT(r, set.count() == 2); - REPORTER_ASSERT(r, set.contains(SkString("Hello"))); - REPORTER_ASSERT(r, set.contains(SkString("World"))); - REPORTER_ASSERT(r, !set.contains(SkString("Goodbye"))); - REPORTER_ASSERT(r, set.find(SkString("Hello"))); - REPORTER_ASSERT(r, *set.find(SkString("Hello")) == SkString("Hello")); + REPORTER_ASSERT(r, set.contains(T("Hello"))); + REPORTER_ASSERT(r, set.contains(T("World"))); + REPORTER_ASSERT(r, !set.contains(T("Goodbye"))); + REPORTER_ASSERT(r, set.find(T("Hello"))); + REPORTER_ASSERT(r, *set.find(T("Hello")) == T("Hello")); // Test walking the set with iterators, using preincrement (++iter). - for (SkTHashSet::Iter iter = set.begin(); iter != set.end(); ++iter) { - REPORTER_ASSERT(r, iter->equals("Hello") || (*iter).equals("World")); + for (typename SkTHashSet::Iter iter = set.begin(); iter != set.end(); ++iter) { + REPORTER_ASSERT(r, *iter == T("Hello") || *iter == T("World")); } // Test walking the set with iterators, using postincrement (iter++). - for (SkTHashSet::Iter iter = set.begin(); iter != set.end(); iter++) { - REPORTER_ASSERT(r, iter->equals("Hello") || (*iter).equals("World")); + for (typename SkTHashSet::Iter iter = set.begin(); iter != set.end(); iter++) { + REPORTER_ASSERT(r, *iter == T("Hello") || *iter == T("World")); } // Test walking the set with range-based for. for (auto& entry : set) { - REPORTER_ASSERT(r, entry.equals("Hello") || entry.equals("World")); + REPORTER_ASSERT(r, entry == T("Hello") || entry == T("World")); } // Ensure that iteration works equally well on a const set. const auto& cset = set; - for (SkTHashSet::Iter iter = cset.begin(); iter != cset.end(); iter++) { - REPORTER_ASSERT(r, iter->equals("Hello") || (*iter).equals("World")); + for (typename SkTHashSet::Iter iter = cset.begin(); iter != cset.end(); iter++) { + REPORTER_ASSERT(r, *iter == T("Hello") || *iter == T("World")); } // Ensure that range-based for works equally well on a const set. for (auto& entry : cset) { - REPORTER_ASSERT(r, entry.equals("Hello") || entry.equals("World")); + REPORTER_ASSERT(r, entry == T("Hello") || entry == T("World")); } - SkTHashSet clone = set; + SkTHashSet clone = set; REPORTER_ASSERT(r, clone.count() == 2); - REPORTER_ASSERT(r, clone.contains(SkString("Hello"))); - REPORTER_ASSERT(r, clone.contains(SkString("World"))); - REPORTER_ASSERT(r, !clone.contains(SkString("Goodbye"))); - REPORTER_ASSERT(r, clone.find(SkString("Hello"))); - REPORTER_ASSERT(r, *clone.find(SkString("Hello")) == SkString("Hello")); - - set.remove(SkString("Hello")); - REPORTER_ASSERT(r, !set.contains(SkString("Hello"))); + REPORTER_ASSERT(r, clone.contains(T("Hello"))); + REPORTER_ASSERT(r, clone.contains(T("World"))); + REPORTER_ASSERT(r, !clone.contains(T("Goodbye"))); + REPORTER_ASSERT(r, clone.find(T("Hello"))); + REPORTER_ASSERT(r, *clone.find(T("Hello")) == T("Hello")); + + set.remove(T("Hello")); + REPORTER_ASSERT(r, !set.contains(T("Hello"))); REPORTER_ASSERT(r, set.count() == 1); - REPORTER_ASSERT(r, clone.contains(SkString("Hello"))); + REPORTER_ASSERT(r, clone.contains(T("Hello"))); REPORTER_ASSERT(r, clone.count() == 2); set.reset(); @@ -188,6 +230,18 @@ DEF_TEST(HashSet, r) { REPORTER_ASSERT(r, clone.count() == 0); } +DEF_TEST(HashSetWithSkString, r) { + test_hash_set(r); +} + +DEF_TEST(HashSetWithStdString, r) { + test_hash_set(r); +} + +DEF_TEST(HashSetWithStdStringView, r) { + test_hash_set(r); +} + namespace { class CopyCounter { diff --git a/third_party/skia/tests/ImageFilterCacheTest.cpp b/third_party/skia/tests/ImageFilterCacheTest.cpp index e017a0f618b7..74e4f614e384 100644 --- a/third_party/skia/tests/ImageFilterCacheTest.cpp +++ b/third_party/skia/tests/ImageFilterCacheTest.cpp @@ -197,13 +197,13 @@ DEF_TEST(ImageFilterCache_ImageBackedRaster, reporter) { } #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" static GrSurfaceProxyView create_proxy_view(GrRecordingContext* rContext) { SkBitmap srcBM = create_bm(); diff --git a/third_party/skia/tests/ImageFilterTest.cpp b/third_party/skia/tests/ImageFilterTest.cpp index 39a93e77107b..41ea843dd711 100644 --- a/third_party/skia/tests/ImageFilterTest.cpp +++ b/third_party/skia/tests/ImageFilterTest.cpp @@ -24,8 +24,8 @@ #include "src/core/SkReadBuffer.h" #include "src/core/SkSpecialImage.h" #include "src/core/SkSpecialSurface.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" #include "src/image/SkImage_Base.h" #include "tests/Test.h" #include "tools/Resources.h" diff --git a/third_party/skia/tests/ImageGeneratorTest.cpp b/third_party/skia/tests/ImageGeneratorTest.cpp index 7411e6f22b0c..1678897e1208 100644 --- a/third_party/skia/tests/ImageGeneratorTest.cpp +++ b/third_party/skia/tests/ImageGeneratorTest.cpp @@ -6,8 +6,8 @@ */ #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkData.h" - #include "include/core/SkGraphics.h" #include "include/core/SkImageGenerator.h" #include "include/private/SkImageInfoPriv.h" diff --git a/third_party/skia/tests/ImageTest.cpp b/third_party/skia/tests/ImageTest.cpp index 10d3965085e4..44f7762a7db2 100644 --- a/third_party/skia/tests/ImageTest.cpp +++ b/third_party/skia/tests/ImageTest.cpp @@ -26,13 +26,13 @@ #include "src/core/SkColorSpacePriv.h" #include "src/core/SkImagePriv.h" #include "src/core/SkOpts.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/SkGr.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_GpuYUVA.h" #include "tests/Test.h" diff --git a/third_party/skia/tests/LazyProxyTest.cpp b/third_party/skia/tests/LazyProxyTest.cpp index be6ef56ffbbf..abdd29d212c7 100644 --- a/third_party/skia/tests/LazyProxyTest.cpp +++ b/third_party/skia/tests/LazyProxyTest.cpp @@ -7,24 +7,25 @@ #include "tests/Test.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/mock/GrMockTypes.h" #include "src/core/SkRectPriv.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOnFlushResourceProvider.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/GrTextureProxyPriv.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/mock/GrMockGpu.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOnFlushResourceProvider.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/GrTextureProxyPriv.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/mock/GrMockGpu.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" // This test verifies that lazy proxy callbacks get invoked during flush, after onFlush callbacks, // but before Ops are executed. It also ensures that lazy proxy callbacks are invoked both for diff --git a/third_party/skia/tests/LazyStencilAttachmentTest.cpp b/third_party/skia/tests/LazyStencilAttachmentTest.cpp index 8a9b922fbbe4..cbd8c9df866a 100644 --- a/third_party/skia/tests/LazyStencilAttachmentTest.cpp +++ b/third_party/skia/tests/LazyStencilAttachmentTest.cpp @@ -6,6 +6,7 @@ */ #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImageInfo.h" #include "include/core/SkPaint.h" #include "include/core/SkPath.h" diff --git a/third_party/skia/tests/MtlBackendAllocationTest.mm b/third_party/skia/tests/MtlBackendAllocationTest.mm index 904d44fca560..05c7c26fb00d 100644 --- a/third_party/skia/tests/MtlBackendAllocationTest.mm +++ b/third_party/skia/tests/MtlBackendAllocationTest.mm @@ -6,8 +6,8 @@ */ #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/mtl/GrMtlCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/mtl/GrMtlCaps.h" #include "tests/Test.h" #include "tools/gpu/ManagedBackendTexture.h" diff --git a/third_party/skia/tests/MtlCopySurfaceTest.mm b/third_party/skia/tests/MtlCopySurfaceTest.mm index ca76669c99b4..fdf44d4ada82 100644 --- a/third_party/skia/tests/MtlCopySurfaceTest.mm +++ b/third_party/skia/tests/MtlCopySurfaceTest.mm @@ -7,16 +7,16 @@ #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/mtl/GrMtlGpu.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/mtl/GrMtlGpu.h" #include "tests/Test.h" #import #import -#include "src/gpu/mtl/GrMtlCaps.h" -#include "src/gpu/mtl/GrMtlTextureRenderTarget.h" +#include "src/gpu/ganesh/mtl/GrMtlCaps.h" +#include "src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.h" DEF_GPUTEST_FOR_METAL_CONTEXT(MtlCopySurfaceTest, reporter, ctxInfo) { if (@available(macOS 11.0, iOS 9.0, *)) { diff --git a/third_party/skia/tests/MultiPictureDocumentTest.cpp b/third_party/skia/tests/MultiPictureDocumentTest.cpp index bd8e2fa223d4..7892ff46e262 100644 --- a/third_party/skia/tests/MultiPictureDocumentTest.cpp +++ b/third_party/skia/tests/MultiPictureDocumentTest.cpp @@ -4,22 +4,26 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * - * This test confirms that a MultiPictureDocument can be serialized and deserailzied without error. + * This test confirms that a MultiPictureDocument can be serialized and deserialized without error. * And that the pictures within it are re-created accurately */ #include "include/core/SkCanvas.h" -#include "include/core/SkColorPriv.h" -#include "include/core/SkColorSpace.h" +#include "include/core/SkColor.h" #include "include/core/SkDocument.h" #include "include/core/SkFont.h" #include "include/core/SkImage.h" +#include "include/core/SkImageInfo.h" #include "include/core/SkPicture.h" #include "include/core/SkPictureRecorder.h" +#include "include/core/SkRRect.h" +#include "include/core/SkRect.h" +#include "include/core/SkSerialProcs.h" +#include "include/core/SkStream.h" #include "include/core/SkString.h" #include "include/core/SkSurface.h" #include "include/core/SkTextBlob.h" -#include "src/gpu/GrCaps.h" +#include "src/gpu/ganesh/GrCaps.h" #include "src/utils/SkMultiPictureDocument.h" #include "tests/Test.h" #include "tools/SkSharingProc.h" @@ -170,9 +174,12 @@ DEF_TEST(SkMultiPictureDocument_Serialize_and_deserialize, reporter) { #if SK_SUPPORT_GPU && defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26 +#include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkColorType.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrAHardwareBufferUtils.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrAHardwareBufferUtils_impl.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include diff --git a/third_party/skia/tests/OpChainTest.cpp b/third_party/skia/tests/OpChainTest.cpp index 521f13ff41e1..6e97be371ea7 100644 --- a/third_party/skia/tests/OpChainTest.cpp +++ b/third_party/skia/tests/OpChainTest.cpp @@ -6,13 +6,13 @@ */ #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/ops/GrOp.h" -#include "src/gpu/ops/OpsTask.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/ops/GrOp.h" +#include "src/gpu/ganesh/ops/OpsTask.h" #include "tests/Test.h" #include diff --git a/third_party/skia/tests/PDFGlyphsToUnicodeTest.cpp b/third_party/skia/tests/PDFGlyphsToUnicodeTest.cpp index 0814c76a4db5..e1ffda2e3005 100644 --- a/third_party/skia/tests/PDFGlyphsToUnicodeTest.cpp +++ b/third_party/skia/tests/PDFGlyphsToUnicodeTest.cpp @@ -11,6 +11,7 @@ #include "include/core/SkData.h" #include "include/core/SkStream.h" +#include "include/private/SkTDArray.h" #include "include/private/SkTo.h" #include "src/pdf/SkPDFMakeToUnicodeCmap.h" diff --git a/third_party/skia/tests/ParsePathTest.cpp b/third_party/skia/tests/ParsePathTest.cpp index 00f5c86ad80d..01923859fe23 100644 --- a/third_party/skia/tests/ParsePathTest.cpp +++ b/third_party/skia/tests/ParsePathTest.cpp @@ -128,3 +128,13 @@ DEF_TEST(ParsePathOptionalCommand, r) { REPORTER_ASSERT(r, path.countPoints() == gTests[i].fPoints); } } + +DEF_TEST(ParsePathArcFlags, r) { + const char* arcs = "M10 10a2.143 2.143 0 100-4.285 2.143 2.143 0 000 4.286"; + SkPath path; + REPORTER_ASSERT(r, SkParsePath::FromSVGString(arcs, &path)); + // Arcs decompose to two conics. + REPORTER_ASSERT(r, path.countVerbs() == 5); + // One for move, 2x per conic. + REPORTER_ASSERT(r, path.countPoints() == 9); +} diff --git a/third_party/skia/tests/PathBuilderTest.cpp b/third_party/skia/tests/PathBuilderTest.cpp index 09c647e4d2fd..40939fa81481 100644 --- a/third_party/skia/tests/PathBuilderTest.cpp +++ b/third_party/skia/tests/PathBuilderTest.cpp @@ -7,6 +7,7 @@ #include "include/core/SkPathBuilder.h" #include "include/core/SkPathTypes.h" +#include "include/core/SkRRect.h" #include "src/core/SkPathPriv.h" #include "tests/Test.h" diff --git a/third_party/skia/tests/PathRendererCacheTests.cpp b/third_party/skia/tests/PathRendererCacheTests.cpp index 81acded4b4e5..aafe3d97e485 100644 --- a/third_party/skia/tests/PathRendererCacheTests.cpp +++ b/third_party/skia/tests/PathRendererCacheTests.cpp @@ -7,19 +7,20 @@ #include "tests/Test.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkPath.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/GrUserStencilSettings.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" -#include "src/gpu/geometry/GrStyledShape.h" -#include "src/gpu/ops/SoftwarePathRenderer.h" -#include "src/gpu/ops/TriangulatingPathRenderer.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/GrUserStencilSettings.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/ops/SoftwarePathRenderer.h" +#include "src/gpu/ganesh/ops/TriangulatingPathRenderer.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" static SkPath create_concave_path() { SkPath path; diff --git a/third_party/skia/tests/PremulAlphaRoundTripTest.cpp b/third_party/skia/tests/PremulAlphaRoundTripTest.cpp index 099b95d8abd6..26df12c6146f 100644 --- a/third_party/skia/tests/PremulAlphaRoundTripTest.cpp +++ b/third_party/skia/tests/PremulAlphaRoundTripTest.cpp @@ -10,8 +10,8 @@ #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkConvertPixels.h" -#include "src/gpu/GrDataUtils.h" -#include "src/gpu/GrPixmap.h" +#include "src/gpu/ganesh/GrDataUtils.h" +#include "src/gpu/ganesh/GrPixmap.h" #include "tests/Test.h" #include "tools/ToolUtils.h" diff --git a/third_party/skia/tests/PrimitiveProcessorTest.cpp b/third_party/skia/tests/PrimitiveProcessorTest.cpp index 03b7a936ab99..d8b19236240d 100644 --- a/third_party/skia/tests/PrimitiveProcessorTest.cpp +++ b/third_party/skia/tests/PrimitiveProcessorTest.cpp @@ -7,26 +7,27 @@ // This is a GPU-backend specific test. It relies on static initializers to work -#include - #include "include/core/SkTypes.h" -#include "tests/Test.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkString.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkPointPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProgramInfo.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" +#include "tests/Test.h" + +#include namespace { class Op : public GrMeshDrawOp { diff --git a/third_party/skia/tests/ProcessorTest.cpp b/third_party/skia/tests/ProcessorTest.cpp index 05f5528ed11d..d0d3b8c658f8 100644 --- a/third_party/skia/tests/ProcessorTest.cpp +++ b/third_party/skia/tests/ProcessorTest.cpp @@ -7,21 +7,23 @@ #include "tests/Test.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrGpuResource.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrResourceProvider.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/effects/GrTextureEffect.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/ops/GrMeshDrawOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrGpuResource.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrResourceProvider.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/ops/GrMeshDrawOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" +#include "tests/TestHarness.h" #include "tests/TestUtils.h" #include @@ -645,11 +647,9 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(ProcessorOptimizationValidationTest, repor // violating the optimizations, it's reasonable to expect it to violate requirements on // a large number of pixels in the image. Sporadic pixel violations are more indicative // of device errors and represents a separate problem. -#if defined(SK_BUILD_FOR_SKQP) - static constexpr int kMaxAcceptableFailedPixels = 0; // Strict when running as SKQP -#else - static constexpr int kMaxAcceptableFailedPixels = 2 * kRenderSize; // ~0.7% of the image -#endif + static const int kMaxAcceptableFailedPixels = + CurrentTestHarnessIsSkQP() ? 0 : // Strict when running as SKQP + 2 * kRenderSize; // ~0.7% of the image // Collect first optimization failure message, to be output later as a warning or an // error depending on whether the rendering "passed" or failed. @@ -820,11 +820,9 @@ static bool verify_identical_render(skiatest::Reporter* reporter, int renderSize // is logically wrong, it's reasonable to expect it produce a large number of pixel differences // in the image. Sporadic pixel violations are more indicative device errors and represents a // separate problem. -#if defined(SK_BUILD_FOR_SKQP) - const int maxAcceptableFailedPixels = 0; // Strict when running as SKQP -#else - const int maxAcceptableFailedPixels = 2 * renderSize; // ~0.002% of the pixels (size 1024*1024) -#endif + static const int maxAcceptableFailedPixels = + CurrentTestHarnessIsSkQP() ? 0 : // Strict when running as SKQP + 2 * renderSize; // ~0.002% of the pixels (size 1024*1024) int failedPixelCount = 0; int firstWrongX = 0; diff --git a/third_party/skia/tests/ProgramsTest.cpp b/third_party/skia/tests/ProgramsTest.cpp index 2abd3801c9d0..0d268e94434d 100644 --- a/third_party/skia/tests/ProgramsTest.cpp +++ b/third_party/skia/tests/ProgramsTest.cpp @@ -9,29 +9,30 @@ #include "include/core/SkTypes.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" #include "include/private/SkChecksum.h" #include "include/utils/SkRandom.h" -#include "src/gpu/GrAutoLocaleSetter.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawOpTest.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrXferProcessor.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/effects/GrBlendFragmentProcessor.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLProgramBuilder.h" -#include "src/gpu/ops/GrDrawOp.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrAutoLocaleSetter.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawOpTest.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrXferProcessor.h" +#include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" +#include "src/gpu/ganesh/ops/GrDrawOp.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" #ifdef SK_GL -#include "src/gpu/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" #endif /* diff --git a/third_party/skia/tests/PromiseImageTest.cpp b/third_party/skia/tests/PromiseImageTest.cpp index 3622b4be21e8..49223358a9ff 100644 --- a/third_party/skia/tests/PromiseImageTest.cpp +++ b/third_party/skia/tests/PromiseImageTest.cpp @@ -11,10 +11,10 @@ #include "include/core/SkPromiseImageTexture.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrTexture.h" #include "src/image/SkImage_Gpu.h" #include "tools/gpu/ManagedBackendTexture.h" diff --git a/third_party/skia/tests/ProxyConversionTest.cpp b/third_party/skia/tests/ProxyConversionTest.cpp index 8df901597b9d..5d7fd6bf439c 100644 --- a/third_party/skia/tests/ProxyConversionTest.cpp +++ b/third_party/skia/tests/ProxyConversionTest.cpp @@ -11,14 +11,14 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" static sk_sp make_wrapped_rt(GrProxyProvider* provider, GrGpu* gpu, diff --git a/third_party/skia/tests/ProxyRefTest.cpp b/third_party/skia/tests/ProxyRefTest.cpp index 9ef2deb597d7..cbe10add4c1e 100644 --- a/third_party/skia/tests/ProxyRefTest.cpp +++ b/third_party/skia/tests/ProxyRefTest.cpp @@ -10,14 +10,14 @@ #include "tests/Test.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" #include "tests/TestUtils.h" static const int kWidthHeight = 128; diff --git a/third_party/skia/tests/ProxyTest.cpp b/third_party/skia/tests/ProxyTest.cpp index 9dec7a1b2b8a..2f3ca60c625d 100644 --- a/third_party/skia/tests/ProxyTest.cpp +++ b/third_party/skia/tests/ProxyTest.cpp @@ -9,22 +9,22 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurface.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurface.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" #include "tests/Test.h" #include "tools/gpu/ManagedBackendTexture.h" #ifdef SK_GL -#include "src/gpu/gl/GrGLDefines.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #endif #include "tests/TestUtils.h" diff --git a/third_party/skia/tests/ReadPixelsTest.cpp b/third_party/skia/tests/ReadPixelsTest.cpp index 64894a91ef14..e818a75d6dff 100644 --- a/third_party/skia/tests/ReadPixelsTest.cpp +++ b/third_party/skia/tests/ReadPixelsTest.cpp @@ -5,8 +5,10 @@ * found in the LICENSE file. */ +#include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkColorPriv.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkSurface.h" #include "include/private/SkColorData.h" diff --git a/third_party/skia/tests/ReadWritePixelsGpuTest.cpp b/third_party/skia/tests/ReadWritePixelsGpuTest.cpp index 46c9bd44aa2e..81ad96049641 100644 --- a/third_party/skia/tests/ReadWritePixelsGpuTest.cpp +++ b/third_party/skia/tests/ReadWritePixelsGpuTest.cpp @@ -12,11 +12,11 @@ #include "include/gpu/GrDirectContext.h" #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkConvertPixels.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/SurfaceContext.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/SurfaceContext.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #include "tests/Test.h" #include "tests/TestUtils.h" #include "tools/ToolUtils.h" diff --git a/third_party/skia/tests/RectangleTextureTest.cpp b/third_party/skia/tests/RectangleTextureTest.cpp index 267f057973db..87431cf91cc3 100644 --- a/third_party/skia/tests/RectangleTextureTest.cpp +++ b/third_party/skia/tests/RectangleTextureTest.cpp @@ -8,16 +8,17 @@ #include "tests/Test.h" #include "tests/TestUtils.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" #ifdef SK_GL -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #endif #include "tools/gpu/ProxyUtils.h" diff --git a/third_party/skia/tests/RegionTest.cpp b/third_party/skia/tests/RegionTest.cpp index a7d585d316d1..dda6dcb54ca1 100644 --- a/third_party/skia/tests/RegionTest.cpp +++ b/third_party/skia/tests/RegionTest.cpp @@ -6,6 +6,7 @@ */ #include "include/core/SkPath.h" +#include "include/core/SkRRect.h" #include "include/core/SkRegion.h" #include "include/utils/SkRandom.h" #include "src/core/SkAutoMalloc.h" diff --git a/third_party/skia/tests/RepeatedClippedBlurTest.cpp b/third_party/skia/tests/RepeatedClippedBlurTest.cpp index 9d305c072e91..8f781ae4e5bf 100644 --- a/third_party/skia/tests/RepeatedClippedBlurTest.cpp +++ b/third_party/skia/tests/RepeatedClippedBlurTest.cpp @@ -10,8 +10,8 @@ #include "include/core/SkSurface.h" #include "include/effects/SkImageFilters.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrResourceCache.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrResourceCache.h" #include "tests/Test.h" // This is the repro of a CastOS memory regression bug (b/138674523). diff --git a/third_party/skia/tests/ResourceAllocatorTest.cpp b/third_party/skia/tests/ResourceAllocatorTest.cpp index 2661aacb9cc1..f735025f898a 100644 --- a/third_party/skia/tests/ResourceAllocatorTest.cpp +++ b/third_party/skia/tests/ResourceAllocatorTest.cpp @@ -9,14 +9,14 @@ #include "include/core/SkSpan.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrResourceAllocator.h" -#include "src/gpu/GrResourceProviderPriv.h" -#include "src/gpu/GrSurfaceProxyPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrResourceAllocator.h" +#include "src/gpu/ganesh/GrResourceProviderPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" #include "tests/Test.h" #include "tools/gpu/ManagedBackendTexture.h" diff --git a/third_party/skia/tests/ResourceCacheTest.cpp b/third_party/skia/tests/ResourceCacheTest.cpp index 53c3e811a0f5..a78b86cd101e 100644 --- a/third_party/skia/tests/ResourceCacheTest.cpp +++ b/third_party/skia/tests/ResourceCacheTest.cpp @@ -11,17 +11,17 @@ #include "include/gpu/GrDirectContext.h" #include "src/core/SkMessageBus.h" #include "src/core/SkMipmap.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrGpuResourceCacheAccess.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrGpuResourceCacheAccess.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/SkGr.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" #include "tools/gpu/ManagedBackendTexture.h" @@ -241,8 +241,11 @@ class TestResource : public GrGpuResource { * For example, textures have width, height, ... */ enum SimulatedProperty { kA_SimulatedProperty, kB_SimulatedProperty }; - TestResource(GrGpu* gpu, SkBudgeted budgeted = SkBudgeted::kYes, size_t size = kDefaultSize) - : INHERITED(gpu) + TestResource(GrGpu* gpu, + std::string_view label, + SkBudgeted budgeted = SkBudgeted::kYes, + size_t size = kDefaultSize) + : INHERITED(gpu, label) , fToDelete(nullptr) , fSize(size) , fProperty(kA_SimulatedProperty) @@ -251,13 +254,16 @@ class TestResource : public GrGpuResource { this->registerWithCache(budgeted); } - static TestResource* CreateScratch(GrGpu* gpu, SkBudgeted budgeted, - SimulatedProperty property, size_t size = kDefaultSize) { - return new TestResource(gpu, budgeted, property, kScratchConstructor, size); + static TestResource* CreateScratch(GrGpu* gpu, + SkBudgeted budgeted, + SimulatedProperty property, + size_t size = kDefaultSize) { + return new TestResource(gpu, budgeted, property, kScratchConstructor, /*label=*/{}, size); } - static TestResource* CreateWrapped(GrGpu* gpu, GrWrapCacheable cacheable, + static TestResource* CreateWrapped(GrGpu* gpu, + GrWrapCacheable cacheable, size_t size = kDefaultSize) { - return new TestResource(gpu, cacheable, size); + return new TestResource(gpu, cacheable, size, /*label=*/{}); } ~TestResource() override { @@ -284,9 +290,13 @@ class TestResource : public GrGpuResource { private: static const int kScratchKeyFieldCnt = 6; - TestResource(GrGpu* gpu, SkBudgeted budgeted, SimulatedProperty property, ScratchConstructor, + TestResource(GrGpu* gpu, + SkBudgeted budgeted, + SimulatedProperty property, + ScratchConstructor, + std::string_view label, size_t size = kDefaultSize) - : INHERITED(gpu) + : INHERITED(gpu, label) , fToDelete(nullptr) , fSize(size) , fProperty(property) @@ -296,8 +306,8 @@ class TestResource : public GrGpuResource { } // Constructor for simulating resources that wrap backend objects. - TestResource(GrGpu* gpu, GrWrapCacheable cacheable, size_t size) - : INHERITED(gpu) + TestResource(GrGpu* gpu, GrWrapCacheable cacheable, size_t size, std::string_view label) + : INHERITED(gpu, label) , fToDelete(nullptr) , fSize(size) , fProperty(kA_SimulatedProperty) @@ -353,10 +363,10 @@ static void test_no_key(skiatest::Reporter* reporter) { GrGpu* gpu = mock.gpu(); // Create a bunch of resources with no keys - TestResource* a = new TestResource(gpu, SkBudgeted::kYes, 11); - TestResource* b = new TestResource(gpu, SkBudgeted::kYes, 12); - TestResource* c = new TestResource(gpu, SkBudgeted::kYes, 13 ); - TestResource* d = new TestResource(gpu, SkBudgeted::kYes, 14 ); + TestResource* a = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 11); + TestResource* b = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 12); + TestResource* c = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 13); + TestResource* d = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 14); REPORTER_ASSERT(reporter, 4 == TestResource::NumAlive()); REPORTER_ASSERT(reporter, 4 == cache->getResourceCount()); @@ -543,11 +553,11 @@ static void test_budgeting(skiatest::Reporter* reporter) { TestResource* scratch = TestResource::CreateScratch(gpu, SkBudgeted::kYes, TestResource::kB_SimulatedProperty, 10); - TestResource* unique = new TestResource(gpu, SkBudgeted::kYes, 11); + TestResource* unique = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 11); unique->resourcePriv().setUniqueKey(uniqueKey); TestResource* wrappedCacheable = TestResource::CreateWrapped(gpu, GrWrapCacheable::kYes, 12); TestResource* wrappedUncacheable = TestResource::CreateWrapped(gpu, GrWrapCacheable::kNo, 13); - TestResource* unbudgeted = new TestResource(gpu, SkBudgeted::kNo, 14); + TestResource* unbudgeted = new TestResource(gpu, /*label=*/{}, SkBudgeted::kNo, 14); // Make sure we can add a unique key to the wrapped resources skgpu::UniqueKey uniqueKey2; @@ -681,7 +691,7 @@ static void test_unbudgeted(skiatest::Reporter* reporter) { REPORTER_ASSERT(reporter, 10 == cache->getBudgetedResourceBytes()); REPORTER_ASSERT(reporter, 10 == cache->getPurgeableBytes()); - unique = new TestResource(gpu, SkBudgeted::kYes, 11); + unique = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 11); unique->resourcePriv().setUniqueKey(uniqueKey); unique->unref(); REPORTER_ASSERT(reporter, 2 == cache->getResourceCount()); @@ -691,7 +701,7 @@ static void test_unbudgeted(skiatest::Reporter* reporter) { REPORTER_ASSERT(reporter, 21 == cache->getPurgeableBytes()); size_t large = 2 * cache->getResourceBytes(); - unbudgeted = new TestResource(gpu, SkBudgeted::kNo, large); + unbudgeted = new TestResource(gpu, /*label=*/{}, SkBudgeted::kNo, large); REPORTER_ASSERT(reporter, 3 == cache->getResourceCount()); REPORTER_ASSERT(reporter, 21 + large == cache->getResourceBytes()); REPORTER_ASSERT(reporter, 2 == cache->getBudgetedResourceCount()); @@ -968,7 +978,7 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) { make_unique_key<0>(&key, 0); // Create two resources that we will attempt to register with the same unique key. - TestResource* a = new TestResource(gpu, SkBudgeted::kYes, 11); + TestResource* a = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 11); // Set key on resource a. a->resourcePriv().setUniqueKey(key); @@ -984,7 +994,7 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) { REPORTER_ASSERT(reporter, 1 == TestResource::NumAlive()); // Create resource b and set the same key. It should replace a's unique key cache entry. - TestResource* b = new TestResource(gpu, SkBudgeted::kYes, 12); + TestResource* b = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 12); b->resourcePriv().setUniqueKey(key); REPORTER_ASSERT(reporter, b == cache->findAndRefUniqueResource(key)); b->unref(); @@ -1003,7 +1013,7 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) { // Now replace b with c, but make sure c can start with one unique key and change it to b's key. // Also make b be unreffed when replacement occurs. b->unref(); - TestResource* c = new TestResource(gpu, SkBudgeted::kYes, 13); + TestResource* c = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 13); skgpu::UniqueKey differentKey; make_unique_key<0>(&differentKey, 1); c->resourcePriv().setUniqueKey(differentKey); @@ -1039,7 +1049,7 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) { { skgpu::UniqueKey key2; make_unique_key<0>(&key2, 0); - sk_sp d(new TestResource(gpu)); + sk_sp d(new TestResource(gpu, /*label=*/{})); int foo = 4132; key2.setCustomData(SkData::MakeWithCopy(&foo, sizeof(foo))); d->resourcePriv().setUniqueKey(key2); @@ -1063,8 +1073,8 @@ static void test_purge_invalidated(skiatest::Reporter* reporter) { make_unique_key<0>(&key3, 3); // Add three resources to the cache. Only c is usable as scratch. - TestResource* a = new TestResource(gpu); - TestResource* b = new TestResource(gpu); + TestResource* a = new TestResource(gpu, /*label=*/{}); + TestResource* b = new TestResource(gpu, /*label=*/{}); TestResource* c = TestResource::CreateScratch(gpu, SkBudgeted::kYes, TestResource::kA_SimulatedProperty); a->resourcePriv().setUniqueKey(key1); @@ -1129,8 +1139,8 @@ static void test_cache_chained_purge(skiatest::Reporter* reporter) { make_unique_key<0>(&key1, 1); make_unique_key<0>(&key2, 2); - sk_sp a(new TestResource(gpu)); - sk_sp b(new TestResource(gpu)); + sk_sp a(new TestResource(gpu, /*label=*/{})); + sk_sp b(new TestResource(gpu, /*label=*/{})); a->resourcePriv().setUniqueKey(key1); b->resourcePriv().setUniqueKey(key2); @@ -1185,7 +1195,7 @@ static void test_timestamp_wrap(skiatest::Reporter* reporter) { skgpu::UniqueKey key; make_unique_key<0>(&key, j); - TestResource* r = new TestResource(gpu); + TestResource* r = new TestResource(gpu, /*label=*/{}); r->resourcePriv().setUniqueKey(key); if (random.nextU() % kLockedFreq) { // Make this is purgeable. @@ -1244,7 +1254,7 @@ static void test_time_purge(skiatest::Reporter* reporter) { { // Insert resources and get time points between each addition. for (int i = 0; i < cnt; ++i) { - TestResource* r = new TestResource(gpu); + TestResource* r = new TestResource(gpu, /*label=*/{}); skgpu::UniqueKey k; make_unique_key<1>(&k, i); r->resourcePriv().setUniqueKey(k); @@ -1275,7 +1285,7 @@ static void test_time_purge(skiatest::Reporter* reporter) { { std::unique_ptr refedResources(new GrGpuResource*[cnt / 2]); for (int i = 0; i < cnt; ++i) { - TestResource* r = new TestResource(gpu); + TestResource* r = new TestResource(gpu, /*label=*/{}); skgpu::UniqueKey k; make_unique_key<1>(&k, i); r->resourcePriv().setUniqueKey(k); @@ -1313,8 +1323,9 @@ static void test_time_purge(skiatest::Reporter* reporter) { const bool isScratch = (i % 2 == 0); const SkBudgeted budgeted = SkBudgeted::kYes; const TestResource::SimulatedProperty property = TestResource::kA_SimulatedProperty; - TestResource* r = isScratch ? TestResource::CreateScratch(gpu, budgeted, property) - : new TestResource(gpu, budgeted, property); + TestResource* r = isScratch + ? TestResource::CreateScratch(gpu, budgeted, property) + : new TestResource(gpu, /*label=*/{}, budgeted, property); if (!isScratch) { skgpu::UniqueKey k; make_unique_key<1>(&k, i); @@ -1340,7 +1351,7 @@ static void test_time_purge(skiatest::Reporter* reporter) { // eviction dContext->flushAndSubmit(); for (int i = 0; i < 10; ++i) { - TestResource* r = new TestResource(gpu); + TestResource* r = new TestResource(gpu, /*label=*/{}); skgpu::UniqueKey k; make_unique_key<1>(&k, i); r->resourcePriv().setUniqueKey(k); @@ -1378,9 +1389,9 @@ static void test_partial_purge(skiatest::Reporter* reporter) { make_unique_key<0>(&key3, 3); // Add three unique resources to the cache. - TestResource *unique1 = new TestResource(gpu, SkBudgeted::kYes, 10); - TestResource *unique2 = new TestResource(gpu, SkBudgeted::kYes, 11); - TestResource *unique3 = new TestResource(gpu, SkBudgeted::kYes, 12); + TestResource* unique1 = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 10); + TestResource* unique2 = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 11); + TestResource* unique3 = new TestResource(gpu, /*label=*/{}, SkBudgeted::kYes, 12); unique1->resourcePriv().setUniqueKey(key1); unique2->resourcePriv().setUniqueKey(key2); @@ -1477,7 +1488,7 @@ static void test_abandoned(skiatest::Reporter* reporter) { auto dContext = mock.dContext(); GrGpu* gpu = mock.gpu(); - sk_sp resource(new TestResource(gpu)); + sk_sp resource(new TestResource(gpu, /*label=*/{})); dContext->abandonContext(); REPORTER_ASSERT(reporter, resource->wasDestroyed()); @@ -1520,7 +1531,7 @@ static void test_tags(skiatest::Reporter* reporter) { for (int i = 0; i < kNumResources; ++i, ++currTagCnt) { - sk_sp resource(new TestResource(gpu)); + sk_sp resource(new TestResource(gpu, /*label=*/{})); skgpu::UniqueKey key; if (currTagCnt == tagIdx) { tagIdx += 1; diff --git a/third_party/skia/tests/RuntimeBlendTest.cpp b/third_party/skia/tests/RuntimeBlendTest.cpp index 39669bfbfd74..12d921d7fdcf 100644 --- a/third_party/skia/tests/RuntimeBlendTest.cpp +++ b/third_party/skia/tests/RuntimeBlendTest.cpp @@ -12,8 +12,8 @@ #include "include/core/SkSize.h" #include "include/core/SkSurface.h" #include "include/effects/SkRuntimeEffect.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/Test.h" #include "tools/Resources.h" #include "tools/RuntimeBlendUtils.h" diff --git a/third_party/skia/tests/SRGBReadWritePixelsTest.cpp b/third_party/skia/tests/SRGBReadWritePixelsTest.cpp index 5bfdda3ed4a1..5299dc2d76f9 100644 --- a/third_party/skia/tests/SRGBReadWritePixelsTest.cpp +++ b/third_party/skia/tests/SRGBReadWritePixelsTest.cpp @@ -6,13 +6,14 @@ */ #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceContext.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceContext.h" #include "tests/Test.h" #include "tests/TestUtils.h" diff --git a/third_party/skia/tests/SRGBTest.cpp b/third_party/skia/tests/SRGBTest.cpp index 2eea2ceeabc9..04ff6d158f1e 100644 --- a/third_party/skia/tests/SRGBTest.cpp +++ b/third_party/skia/tests/SRGBTest.cpp @@ -5,6 +5,7 @@ * found in the LICENSE file. */ +#include "include/core/SkColorSpace.h" #include "include/core/SkTypes.h" #include "src/core/SkColorSpaceXformSteps.h" #include "src/core/SkRasterPipeline.h" diff --git a/third_party/skia/tests/SaveLayerOriginTest.cpp b/third_party/skia/tests/SaveLayerOriginTest.cpp index 67769cf13959..6e115bdb2fb9 100644 --- a/third_party/skia/tests/SaveLayerOriginTest.cpp +++ b/third_party/skia/tests/SaveLayerOriginTest.cpp @@ -6,6 +6,7 @@ */ #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" #include "tests/Test.h" diff --git a/third_party/skia/tests/ShadowTest.cpp b/third_party/skia/tests/ShadowTest.cpp index 7217c8f2b8f3..8318468e8f61 100644 --- a/third_party/skia/tests/ShadowTest.cpp +++ b/third_party/skia/tests/ShadowTest.cpp @@ -7,6 +7,7 @@ #include "include/core/SkCanvas.h" #include "include/core/SkPath.h" +#include "include/core/SkRRect.h" #include "include/core/SkVertices.h" #include "include/utils/SkShadowUtils.h" #include "src/core/SkDrawShadowInfo.h" diff --git a/third_party/skia/tests/SkDSLRuntimeEffectTest.cpp b/third_party/skia/tests/SkDSLRuntimeEffectTest.cpp index 36ee04ac9a6e..80f6efe6c4ae 100644 --- a/third_party/skia/tests/SkDSLRuntimeEffectTest.cpp +++ b/third_party/skia/tests/SkDSLRuntimeEffectTest.cpp @@ -5,23 +5,45 @@ * found in the LICENSE file. */ -#include "include/core/SkBitmap.h" +#include "include/core/SkAlphaType.h" +#include "include/core/SkBlendMode.h" #include "include/core/SkCanvas.h" -#include "include/core/SkColorFilter.h" -#include "include/core/SkData.h" +#include "include/core/SkColorType.h" +#include "include/core/SkImageInfo.h" #include "include/core/SkPaint.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkShader.h" +#include "include/core/SkString.h" #include "include/core/SkSurface.h" +#include "include/core/SkTypes.h" #include "include/effects/SkRuntimeEffect.h" #include "include/gpu/GrDirectContext.h" +#include "include/private/SkSLDefines.h" +#include "include/sksl/DSL.h" +#include "include/sksl/DSLCore.h" +#include "include/sksl/DSLExpression.h" +#include "include/sksl/DSLModifiers.h" #include "include/sksl/DSLRuntimeEffects.h" +#include "include/sksl/DSLType.h" +#include "include/sksl/DSLVar.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLPosition.h" #include "src/core/SkRuntimeEffectPriv.h" #include "src/core/SkTLazy.h" -#include "src/gpu/GrColor.h" +#include "src/gpu/ganesh/GrColor.h" #include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLUtil.h" #include "tests/Test.h" +#include "tools/gpu/GrContextFactory.h" -#include -#include +#include +#include +#include +#include +#include +#include + +class GrRecordingContext; using namespace SkSL::dsl; @@ -202,7 +224,7 @@ static void test_RuntimeEffect_Shaders(skiatest::Reporter* r, GrRecordingContext { class SimpleErrorReporter : public SkSL::ErrorReporter { public: - void handleError(std::string_view msg, SkSL::PositionInfo pos) override { + void handleError(std::string_view msg, SkSL::Position pos) override { fMsg += msg; } diff --git a/third_party/skia/tests/SkGlyphBufferTest.cpp b/third_party/skia/tests/SkGlyphBufferTest.cpp index 11b431a71d4a..8089827b6380 100644 --- a/third_party/skia/tests/SkGlyphBufferTest.cpp +++ b/third_party/skia/tests/SkGlyphBufferTest.cpp @@ -24,7 +24,7 @@ DEF_TEST(SkPackedGlyphIDCtor, reporter) { { // Normal sub-pixel with y-axis snapping. - auto roundingSpec = SkGlyphPositionRoundingSpec(true, kX_SkAxisAlignment); + auto roundingSpec = SkGlyphPositionRoundingSpec(true, SkAxisAlignment::kX); SkIPoint mask = roundingSpec.ignorePositionFieldMask; for (int x = -testLimit; x < testLimit; x++) { float fx = x * step; @@ -40,7 +40,7 @@ DEF_TEST(SkPackedGlyphIDCtor, reporter) { { // No subpixel positioning. - auto roundingSpec = SkGlyphPositionRoundingSpec(false, kNone_SkAxisAlignment); + auto roundingSpec = SkGlyphPositionRoundingSpec(false, SkAxisAlignment::kNone); SkIPoint mask = roundingSpec.ignorePositionFieldMask; for (int y = -testLimit; y < testLimit; y++) { for (int x = -testLimit; x < testLimit; x++) { @@ -57,7 +57,7 @@ DEF_TEST(SkPackedGlyphIDCtor, reporter) { { // Subpixel with no axis snapping. - auto roundingSpec = SkGlyphPositionRoundingSpec(true, kNone_SkAxisAlignment); + auto roundingSpec = SkGlyphPositionRoundingSpec(true, SkAxisAlignment::kNone); SkIPoint mask = roundingSpec.ignorePositionFieldMask; for (int y = -testLimit; y < testLimit; y++) { for (int x = -testLimit; x < testLimit; x++) { @@ -79,7 +79,7 @@ DEF_TEST(SkPackedGlyphIDCtor, reporter) { // Distance is 2^21 - 2 (because the test is on the interval [-2, 2). const uint32_t kLogLargeDistance = 24 - PG::kSubPixelPosLen - 1; const int64_t kLargeDistance = (1ull << kLogLargeDistance) - 2; - auto roundingSpec = SkGlyphPositionRoundingSpec(true, kNone_SkAxisAlignment); + auto roundingSpec = SkGlyphPositionRoundingSpec(true, SkAxisAlignment::kNone); SkIPoint mask = roundingSpec.ignorePositionFieldMask; for (int y = -32; y < 33; y++) { for (int x = -32; x < 33; x++) { @@ -171,13 +171,17 @@ DEF_TEST(SkDrawableGlyphBufferBasic, reporter) { SkDrawableGlyphBuffer accepted; accepted.ensureSize(100); SkMatrix matrix = SkMatrix::Scale(0.5, 0.5); - SkGlyphPositionRoundingSpec rounding{true, kX_SkAxisAlignment}; - accepted.startBitmapDevice(source, {100, 100}, matrix, rounding); + SkGlyphPositionRoundingSpec rounding{true, SkAxisAlignment::kX}; + SkMatrix positionMatrix{matrix}; + positionMatrix.preTranslate(100, 100); + accepted.startDevicePositioning(source, positionMatrix, rounding); for (auto [i, packedID, pos] : SkMakeEnumerate(accepted.input())) { REPORTER_ASSERT(reporter, glyphIDs[i] == packedID.packedID().glyphID()); REPORTER_ASSERT(reporter, - pos.x() == positions[i].x() * 0.5 + 50 + SkPackedGlyphID::kSubpixelRound); - REPORTER_ASSERT(reporter, pos.y() == positions[i].y() * 0.5 + 50 + 0.5); + pos.x() == SkScalarFloorToInt(positions[i].x() * 0.5 + 50 + + SkPackedGlyphID::kSubpixelRound)); + REPORTER_ASSERT(reporter, + pos.y() == SkScalarFloorToInt(positions[i].y() * 0.5 + 50 + 0.5)); } } diff --git a/third_party/skia/tests/SkGlyphTest.cpp b/third_party/skia/tests/SkGlyphTest.cpp index ad3f6f909f29..f53eec89cbe2 100644 --- a/third_party/skia/tests/SkGlyphTest.cpp +++ b/third_party/skia/tests/SkGlyphTest.cpp @@ -14,6 +14,8 @@ DEF_TEST(SkGlyphRectBasic, reporter) { REPORTER_ASSERT(reporter, !r.empty()); SkGlyphRect a = rect_union(r, empty_rect()); REPORTER_ASSERT(reporter, a.iRect() == SkIRect::MakeLTRB(1, 1, 10, 10)); + auto widthHeight = a.widthHeight(); + REPORTER_ASSERT(reporter, widthHeight[0] == 9 && widthHeight[1] == 9); a = rect_intersection(r, full_rect()); REPORTER_ASSERT(reporter, a.iRect() == SkIRect::MakeLTRB(1, 1, 10, 10)); diff --git a/third_party/skia/tests/SkRemoteGlyphCacheTest.cpp b/third_party/skia/tests/SkRemoteGlyphCacheTest.cpp index 3171c7213703..71f03f4e2c07 100644 --- a/third_party/skia/tests/SkRemoteGlyphCacheTest.cpp +++ b/third_party/skia/tests/SkRemoteGlyphCacheTest.cpp @@ -21,15 +21,19 @@ #include "src/core/SkStrikeSpec.h" #include "src/core/SkSurfacePriv.h" #include "src/core/SkTypeface_remote.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/text/GrSDFTControl.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/text/GrSDFTControl.h" #include "tests/Test.h" #include "tools/Resources.h" #include "tools/ToolUtils.h" #include "tools/fonts/TestEmptyTypeface.h" +// Since SkRemoteGlyphCache is not re-entrant, we can't use it while drawing slugs to simulate +// text blobs in the GPU stack. +#if !defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_STRIKE_SERIALIZE) + class DiscardableManager : public SkStrikeServer::DiscardableHandleManager, public SkStrikeClient::DiscardableHandleManager { public: @@ -208,10 +212,10 @@ SkBitmap RasterSlug(sk_sp slug, int width, int height, const SkPaint& pa GrRecordingContext* rContext, const SkMatrix* matrix = nullptr, SkScalar x = 0) { auto surface = MakeSurface(width, height, rContext); + auto canvas = surface->getCanvas(); if (matrix) { - surface->getCanvas()->concat(*matrix); + canvas->concat(*matrix); } - auto canvas = surface->getCanvas(); slug->draw(canvas); SkBitmap bitmap; bitmap.allocN32Pixels(width, height); @@ -336,15 +340,8 @@ DEF_GPUTEST_FOR_CONTEXTS(SkRemoteGlyphCache_SlugSerialization, 10, 10, props, nullptr, dContext->supportsDistanceFieldText()); // Generate strike updates. - auto srcSlug = GrSlug::ConvertBlob(analysisCanvas.get(), *serverBlob, {0, 0}, paint); - SkBinaryWriteBuffer writeBuffer; - srcSlug->flatten(writeBuffer); - - auto data = writeBuffer.snapshotAsData(); - SkReadBuffer readBuffer(data->data(), data->size()); - - auto dstSlug = client.makeSlugFromBuffer(readBuffer); - REPORTER_ASSERT(reporter, dstSlug != nullptr); + auto srcSlug = GrSlug::ConvertBlob(analysisCanvas.get(), *serverBlob, {0.3f, 0}, paint); + auto dstSlugData = srcSlug->serialize(); std::vector serverStrikeData; server.writeStrikeData(&serverStrikeData); @@ -354,6 +351,8 @@ DEF_GPUTEST_FOR_CONTEXTS(SkRemoteGlyphCache_SlugSerialization, client.readStrikeData(serverStrikeData.data(), serverStrikeData.size())); SkBitmap expected = RasterSlug(srcSlug, 10, 10, paint, dContext); + auto dstSlug = client.deserializeSlug(dstSlugData->data(), dstSlugData->size()); + REPORTER_ASSERT(reporter, dstSlug != nullptr); SkBitmap actual = RasterSlug(dstSlug, 10, 10, paint, dContext); compare_blobs(expected, actual, reporter); REPORTER_ASSERT(reporter, !discardableManager->hasCacheMiss()); @@ -1085,3 +1084,4 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SkRemoteGlyphCache_TypefaceWithPaths_PathThen // Must unlock everything on termination, otherwise valgrind complains about memory leaks. discardableManager->unlockAndDeleteAll(); } +#endif diff --git a/third_party/skia/tests/SkResourceCacheTest.cpp b/third_party/skia/tests/SkResourceCacheTest.cpp index eedf020adf19..4f51a8134f42 100644 --- a/third_party/skia/tests/SkResourceCacheTest.cpp +++ b/third_party/skia/tests/SkResourceCacheTest.cpp @@ -6,6 +6,7 @@ */ #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkGraphics.h" #include "include/core/SkPicture.h" #include "include/core/SkPictureRecorder.h" diff --git a/third_party/skia/tests/SkRuntimeEffectTest.cpp b/third_party/skia/tests/SkRuntimeEffectTest.cpp index ba38f38625bb..93a9afc79838 100644 --- a/third_party/skia/tests/SkRuntimeEffectTest.cpp +++ b/third_party/skia/tests/SkRuntimeEffectTest.cpp @@ -11,6 +11,7 @@ #include "include/core/SkColorFilter.h" #include "include/core/SkData.h" #include "include/core/SkPaint.h" +#include "include/core/SkStream.h" #include "include/core/SkSurface.h" #include "include/effects/SkBlenders.h" #include "include/effects/SkRuntimeEffect.h" @@ -19,14 +20,14 @@ #include "src/core/SkColorSpacePriv.h" #include "src/core/SkRuntimeEffectPriv.h" #include "src/core/SkTLazy.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrColor.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/GrImageInfo.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/SurfaceFillContext.h" -#include "src/gpu/effects/GrSkSLFP.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" +#include "src/gpu/ganesh/effects/GrSkSLFP.h" #include "tests/Test.h" #include @@ -685,7 +686,6 @@ enter half4 main(float2 p) p.x = 1.5 p.y = 1.5 scope +1 - line 4 scope +1 line 5 [main].result.x = 1 diff --git a/third_party/skia/tests/SkSLCross.cpp b/third_party/skia/tests/SkSLCross.cpp index 6902fc91b849..b1459f966b28 100644 --- a/third_party/skia/tests/SkSLCross.cpp +++ b/third_party/skia/tests/SkSLCross.cpp @@ -5,11 +5,38 @@ * found in the LICENSE file. */ +#include "include/core/SkAlphaType.h" +#include "include/core/SkBlendMode.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkColorType.h" +#include "include/core/SkImageInfo.h" +#include "include/core/SkMatrix.h" +#include "include/core/SkPoint.h" +#include "include/core/SkRect.h" +#include "include/core/SkSurfaceProps.h" +#include "include/core/SkTypes.h" +#include "include/gpu/GrDirectContext.h" +#include "include/private/SkColorData.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/core/SkSLTypeShared.h" +#include "src/gpu/ganesh/GrColor.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrPaint.h" +#include "src/gpu/ganesh/GrPixmap.h" +#include "src/gpu/ganesh/GrProcessor.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "tests/Test.h" +#include "tools/gpu/GrContextFactory.h" -#include "src/gpu/GrFragmentProcessor.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include +#include + +namespace skgpu { class KeyBuilder; } +struct GrShaderCaps; static void run_test(skiatest::Reporter*, GrDirectContext*, skgpu::v1::SurfaceDrawContext*, SkVector a, diff --git a/third_party/skia/tests/SkSLDSLErrorLineNumbers.cpp b/third_party/skia/tests/SkSLDSLErrorLineNumbers.cpp deleted file mode 100644 index 309cb930400b..000000000000 --- a/third_party/skia/tests/SkSLDSLErrorLineNumbers.cpp +++ /dev/null @@ -1,113 +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/SkSLIRNode.h" -#include "include/sksl/DSL.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/sksl/SkSLCompiler.h" -#include "src/sksl/SkSLThreadContext.h" -#include "src/sksl/dsl/priv/DSLWriter.h" - -#include "tests/Test.h" - -#include - -using namespace SkSL::dsl; - -#if defined(__GNUC__) || defined(__clang__) - -class ExpectErrorLineNumber : public SkSL::ErrorReporter { -public: - ExpectErrorLineNumber(skiatest::Reporter* reporter, const char* msg, int line) - : fMsg(msg) - , fLine(line) - , fReporter(reporter) - , fOldReporter(&GetErrorReporter()) { - SetErrorReporter(this); - } - - ~ExpectErrorLineNumber() override { - REPORTER_ASSERT(fReporter, !fMsg); - SetErrorReporter(fOldReporter); - } - - void handleError(std::string_view msg, SkSL::PositionInfo pos) override { - REPORTER_ASSERT(fReporter, msg == fMsg, - "Error mismatch: expected:\n%sbut received:\n%.*s", fMsg, (int)msg.length(), - msg.data()); - REPORTER_ASSERT(fReporter, pos.line() == fLine, - "Line number mismatch: expected %d, but received %d\n", fLine, pos.line()); - SkSL::ThreadContext::Compiler().handleError(msg, pos); - fMsg = nullptr; - } - -private: - const char* fMsg; - int fLine; - skiatest::Reporter* fReporter; - ErrorReporter* fOldReporter; -}; - -DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLErrorLineNumbers, r, ctxInfo) { - Start(ctxInfo.directContext()->priv().getGpu()->shaderCompiler()); - { - ExpectErrorLineNumber error(r, "type mismatch: '+' cannot operate on 'float', 'bool'", - __LINE__ + 1); - (Float(1) + true).release(); - } - - { - Var a(kBool_Type); - DSLWriter::MarkDeclared(a); - ExpectErrorLineNumber error(r, "type mismatch: '=' cannot operate on 'bool', 'float'", - __LINE__ + 1); - (a = 5.0f).release(); - } - - { - Var a(Array(kInt_Type, 5)); - DSLWriter::MarkDeclared(a); - ExpectErrorLineNumber error(r, "expected 'int', but found 'bool'", __LINE__ + 1); - (a[true]).release(); - } - - { - Var a(Array(kInt_Type, 5)); - DSLWriter::MarkDeclared(a); - ExpectErrorLineNumber error(r, "'++' cannot operate on 'int[5]'", __LINE__ + 1); - (++a).release(); - } - - { - ExpectErrorLineNumber error(r, "expected 'bool', but found 'int'", __LINE__ + 1); - Do(Discard(), 5).release(); - } - - { - ExpectErrorLineNumber error(r, "expected 'bool', but found 'int'", __LINE__ + 1); - For(DSLStatement(), 5, DSLExpression(), Block()).release(); - } - - { - ExpectErrorLineNumber error(r, "expected 'bool', but found 'int'", __LINE__ + 1); - If(5, Discard()).release(); - } - - { - ExpectErrorLineNumber error(r, "expected 'bool', but found 'int'", __LINE__ + 1); - While(5, Discard()).release(); - } - - { - ExpectErrorLineNumber error(r, "no match for abs(bool)", __LINE__ + 1); - Abs(true).release(); - } - End(); -} - -#endif // defined(__GNUC__) || defined(__clang__) diff --git a/third_party/skia/tests/SkSLDSLOnlyTest.cpp b/third_party/skia/tests/SkSLDSLOnlyTest.cpp index 74974aaa4b8e..036e7308e156 100644 --- a/third_party/skia/tests/SkSLDSLOnlyTest.cpp +++ b/third_party/skia/tests/SkSLDSLOnlyTest.cpp @@ -6,9 +6,14 @@ */ #include "include/sksl/DSL.h" +#include "include/sksl/DSLBlock.h" #include "tests/Test.h" +#include + +namespace sk_gpu_test { class ContextInfo; } + // This file verifies that DSL code compiles with only a DSL.h import. We don't bother with any // 'real' tests here, as those are all in SkSLDSLTest.cpp. diff --git a/third_party/skia/tests/SkSLDSLTest.cpp b/third_party/skia/tests/SkSLDSLTest.cpp index 02a36ee27fac..8487c3146174 100644 --- a/third_party/skia/tests/SkSLDSLTest.cpp +++ b/third_party/skia/tests/SkSLDSLTest.cpp @@ -5,20 +5,51 @@ * found in the LICENSE file. */ +#include "include/gpu/GrDirectContext.h" +#include "include/private/SkSLDefines.h" #include "include/private/SkSLIRNode.h" +#include "include/private/SkSLModifiers.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLProgramKind.h" +#include "include/private/SkSLStatement.h" +#include "include/private/SkTArray.h" #include "include/sksl/DSL.h" +#include "include/sksl/DSLBlock.h" +#include "include/sksl/DSLCore.h" +#include "include/sksl/DSLExpression.h" +#include "include/sksl/DSLFunction.h" +#include "include/sksl/DSLLayout.h" +#include "include/sksl/DSLModifiers.h" #include "include/sksl/DSLRuntimeEffects.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" +#include "include/sksl/DSLStatement.h" +#include "include/sksl/DSLType.h" +#include "include/sksl/DSLVar.h" +#include "include/sksl/DSLWrapper.h" +#include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLPosition.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" #include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLProgramSettings.h" #include "src/sksl/SkSLThreadContext.h" #include "src/sksl/dsl/priv/DSLWriter.h" #include "src/sksl/ir/SkSLBlock.h" +#include "src/sksl/ir/SkSLExpression.h" +#include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/ir/SkSLVariable.h" - #include "tests/Test.h" +#include "tools/gpu/GrContextFactory.h" +#include +#include +#include #include +#include +#include +#include +#include +#include +#include using namespace SkSL::dsl; @@ -69,7 +100,7 @@ class ExpectError : public SkSL::ErrorReporter { SetErrorReporter(fOldReporter); } - void handleError(std::string_view msg, SkSL::PositionInfo pos) override { + void handleError(std::string_view msg, SkSL::Position pos) override { REPORTER_ASSERT(fReporter, fMsg, "Received unexpected extra error: %.*s\n", (int)msg.length(), msg.data()); REPORTER_ASSERT(fReporter, !fMsg || msg == fMsg, @@ -1259,14 +1290,16 @@ DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLDecrement, r, ctxInfo) { DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLCall, r, ctxInfo) { AutoDSLContext context(ctxInfo.directContext()->priv().getGpu()); { - DSLExpression sqrt(SkSL::ThreadContext::Compiler().convertIdentifier(/*line=*/-1, "sqrt")); + DSLExpression sqrt(SkSL::ThreadContext::Compiler().convertIdentifier(SkSL::Position(), + "sqrt")); SkTArray> args; args.emplace_back(16); EXPECT_EQUAL(sqrt(std::move(args)), "4.0"); // sqrt(16) gets optimized to 4 } { - DSLExpression pow(SkSL::ThreadContext::Compiler().convertIdentifier(/*line=*/-1, "pow")); + DSLExpression pow(SkSL::ThreadContext::Compiler().convertIdentifier(SkSL::Position(), + "pow")); DSLVar a(kFloat_Type, "a"); DSLVar b(kFloat_Type, "b"); SkTArray> args; @@ -1671,7 +1704,7 @@ DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLSwitch, r, ctxInfo) { "switch (b) {}"); EXPECT_EQUAL(Switch(b, Default(), Case(0), Case(1)), - "switch (b) { default: case 0: case 1: }"); + "switch (b) { default: ; case 0: ; case 1: ; }"); { ExpectError error(r, "duplicate case value '0'"); diff --git a/third_party/skia/tests/SkSLES2ConformanceTest.cpp b/third_party/skia/tests/SkSLES2ConformanceTest.cpp index 5b2379030d70..a9f70ae0b0f6 100644 --- a/third_party/skia/tests/SkSLES2ConformanceTest.cpp +++ b/third_party/skia/tests/SkSLES2ConformanceTest.cpp @@ -12,29 +12,27 @@ * follow the instructions at the top to download and import the test suite. */ -#include "gm/gm.h" #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColor.h" #include "include/core/SkData.h" -#include "include/core/SkFont.h" +#include "include/core/SkImageInfo.h" #include "include/core/SkPaint.h" -#include "include/core/SkSize.h" +#include "include/core/SkRect.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkShader.h" #include "include/core/SkString.h" #include "include/core/SkSurface.h" -#include "include/effects/SkGradientShader.h" -#include "include/effects/SkImageFilters.h" +#include "include/core/SkTypes.h" #include "include/effects/SkRuntimeEffect.h" -#include "include/utils/SkRandom.h" +#include "include/gpu/GrDirectContext.h" #include "src/core/SkOSFile.h" -#include "src/core/SkRuntimeEffectPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" #include "src/utils/SkOSPath.h" #include "tests/Test.h" #include "tools/Resources.h" -#include "tools/ToolUtils.h" +#include "tools/gpu/GrContextFactory.h" -#include +#include static void test_expect_fail(skiatest::Reporter* r, const char* testFile) { SkRuntimeEffect::Options options{}; diff --git a/third_party/skia/tests/SkSLErrorTest.cpp b/third_party/skia/tests/SkSLErrorTest.cpp index f1b937763fed..d12628d2355c 100644 --- a/third_party/skia/tests/SkSLErrorTest.cpp +++ b/third_party/skia/tests/SkSLErrorTest.cpp @@ -5,31 +5,26 @@ * found in the LICENSE file. */ -#include "gm/gm.h" -#include "include/effects/SkRuntimeEffect.h" +#include "include/core/SkData.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkString.h" +#include "include/private/SkSLProgramKind.h" #include "src/core/SkOSFile.h" -#include "src/core/SkRuntimeEffectPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" #include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLUtil.h" +#include "src/sksl/ir/SkSLProgram.h" #include "src/utils/SkOSPath.h" #include "tests/Test.h" #include "tools/Resources.h" -#include "tools/ToolUtils.h" +#include +#include #include -#include - -static void test_expect_fail(skiatest::Reporter* r, const char* testFile, SkSL::ProgramKind kind) { - sk_sp shaderData = GetResourceAsData(testFile); - if (!shaderData) { - ERRORF(r, "%s: Unable to load file", SkOSPath::Basename(testFile).c_str()); - return; - } - - std::string shaderString{reinterpret_cast(shaderData->bytes()), - shaderData->size()}; +#include +#include +#include +static std::vector get_expected_errors(const char* shaderString) { // Error expectations are embedded in the source with a special *%%* marker, like so: // // /*%%* @@ -41,7 +36,7 @@ static void test_expect_fail(skiatest::Reporter* r, const char* testFile, SkSL:: std::vector expectedErrors; constexpr char kExpectedErrorsStart[] = "/*%%*"; constexpr char kExpectedErrorsEnd[] = "*%%*/"; - if (const char* startPtr = strstr(shaderString.c_str(), kExpectedErrorsStart)) { + if (const char* startPtr = strstr(shaderString, kExpectedErrorsStart)) { startPtr += strlen(kExpectedErrorsStart); if (const char* endPtr = strstr(startPtr, kExpectedErrorsEnd)) { // Store the text between these delimiters in an array of expected errors. @@ -56,23 +51,15 @@ static void test_expect_fail(skiatest::Reporter* r, const char* testFile, SkSL:: } } - // Compile the code. - std::unique_ptr caps = SkSL::ShaderCapsFactory::Standalone(); - SkSL::Compiler compiler(caps.get()); - SkSL::Program::Settings settings; - std::unique_ptr program = compiler.convertProgram(kind, std::move(shaderString), - settings); - - // If the code actually generated a working program, we've already failed. - if (program) { - ERRORF(r, "%s: Expected failure, but compiled successfully", - SkOSPath::Basename(testFile).c_str()); - return; - } + return expectedErrors; +} +static void check_expected_errors(skiatest::Reporter* r, + const char* testFile, + const std::vector& expectedErrors, + std::string reportedErrors) { // Verify that the SkSL compiler actually emitted the expected error messages. // The list of expectations isn't necessarily exhaustive, though. - std::string reportedErrors = compiler.errorText(); std::string originalErrors = reportedErrors; bool reportOriginalErrors = false; for (const std::string& expectedError : expectedErrors) { @@ -96,6 +83,35 @@ static void test_expect_fail(skiatest::Reporter* r, const char* testFile, SkSL:: } } +static void test_expect_fail(skiatest::Reporter* r, const char* testFile, SkSL::ProgramKind kind) { + sk_sp shaderData = GetResourceAsData(testFile); + if (!shaderData) { + ERRORF(r, "%s: Unable to load file", SkOSPath::Basename(testFile).c_str()); + return; + } + + std::string shaderString{reinterpret_cast(shaderData->bytes()), + shaderData->size()}; + + std::vector expectedErrors = get_expected_errors(shaderString.c_str()); + + // Compile the code. + std::unique_ptr caps = SkSL::ShaderCapsFactory::Standalone(); + SkSL::Compiler compiler(caps.get()); + SkSL::Program::Settings settings; + std::unique_ptr program = compiler.convertProgram(kind, std::move(shaderString), + settings); + + // If the code actually generated a working program, we've already failed. + if (program) { + ERRORF(r, "%s: Expected failure, but compiled successfully", + SkOSPath::Basename(testFile).c_str()); + return; + } + + check_expected_errors(r, testFile, expectedErrors, compiler.errorText()); +} + static void iterate_dir(const char* directory, const char* extension, const std::function& run) { @@ -113,6 +129,9 @@ DEF_TEST(SkSLErrorTest, r) { iterate_dir("sksl/errors/", ".sksl", [&](const char* path) { test_expect_fail(r, path, SkSL::ProgramKind::kFragment); }); + iterate_dir("sksl/errors/", ".rts", [&](const char* path) { + test_expect_fail(r, path, SkSL::ProgramKind::kRuntimeShader); + }); } DEF_TEST(SkSLRuntimeShaderErrorTest, r) { diff --git a/third_party/skia/tests/SkSLGLSLTestbed.cpp b/third_party/skia/tests/SkSLGLSLTestbed.cpp index b637da9f87d9..e7a84bcf299c 100644 --- a/third_party/skia/tests/SkSLGLSLTestbed.cpp +++ b/third_party/skia/tests/SkSLGLSLTestbed.cpp @@ -5,10 +5,16 @@ * found in the LICENSE file. */ +#include "include/core/SkTypes.h" +#include "include/private/SkSLProgramKind.h" #include "src/sksl/SkSLCompiler.h" - +#include "src/sksl/SkSLUtil.h" +#include "src/sksl/ir/SkSLProgram.h" #include "tests/Test.h" +#include +#include + static void test(skiatest::Reporter* r, const SkSL::ShaderCaps& caps, const char* src, diff --git a/third_party/skia/tests/SkSLInterpreterTest.cpp b/third_party/skia/tests/SkSLInterpreterTest.cpp index 2bb832746fc8..9a931bcee119 100644 --- a/third_party/skia/tests/SkSLInterpreterTest.cpp +++ b/third_party/skia/tests/SkSLInterpreterTest.cpp @@ -5,15 +5,40 @@ * found in the LICENSE file. */ +#include "include/core/SkColor.h" +#include "include/core/SkData.h" #include "include/core/SkM44.h" +#include "include/core/SkMatrix.h" +#include "include/core/SkRect.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkScalar.h" +#include "include/core/SkSpan.h" +#include "include/core/SkStream.h" +#include "include/core/SkTypes.h" +#include "include/private/SkFloatingPoint.h" +#include "include/private/SkSLProgramKind.h" +#include "include/private/SkTemplates.h" +#include "src/core/SkVM.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLContext.h" +#include "src/sksl/SkSLUtil.h" #include "src/sksl/codegen/SkSLVMCodeGenerator.h" #include "src/sksl/ir/SkSLExternalFunction.h" +#include "src/sksl/ir/SkSLProgram.h" #include "src/sksl/tracing/SkVMDebugTrace.h" -#include "src/utils/SkJSON.h" - #include "tests/Test.h" +#include +#include +#include +#include +#include +#include + +namespace SkSL { class FunctionDefinition; } +namespace SkSL { class Type; } + struct ProgramBuilder { ProgramBuilder(skiatest::Reporter* r, const char* src) : fCompiler(&fCaps) { diff --git a/third_party/skia/tests/SkSLMemoryLayoutTest.cpp b/third_party/skia/tests/SkSLMemoryLayoutTest.cpp index 5973d512f38d..0a3cc0c58ff0 100644 --- a/third_party/skia/tests/SkSLMemoryLayoutTest.cpp +++ b/third_party/skia/tests/SkSLMemoryLayoutTest.cpp @@ -5,13 +5,22 @@ * found in the LICENSE file. */ +#include "include/private/SkSLModifiers.h" #include "include/sksl/SkSLErrorReporter.h" +#include "include/sksl/SkSLPosition.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLContext.h" #include "src/sksl/SkSLMangler.h" #include "src/sksl/SkSLMemoryLayout.h" - +#include "src/sksl/SkSLUtil.h" +#include "src/sksl/ir/SkSLType.h" #include "tests/Test.h" +#include +#include +#include +#include + DEF_TEST(SkSLMemoryLayout140Test, r) { SkSL::TestingOnly_AbortErrorReporter errors; SkSL::ShaderCaps caps; @@ -57,32 +66,40 @@ DEF_TEST(SkSLMemoryLayout140Test, r) { // struct 1 std::vector fields1; - fields1.emplace_back(SkSL::Modifiers(), std::string_view("a"), - context.fTypes.fFloat3.get()); - std::unique_ptr s1 = SkSL::Type::MakeStructType(-1, std::string("s1"), fields1); + fields1.emplace_back(SkSL::Position(), SkSL::Modifiers(), std::string_view("a"), + context.fTypes.fFloat3.get()); + std::unique_ptr s1 = SkSL::Type::MakeStructType(SkSL::Position(), + std::string("s1"), fields1); REPORTER_ASSERT(r, 16 == layout.size(*s1)); REPORTER_ASSERT(r, 16 == layout.alignment(*s1)); - fields1.emplace_back(SkSL::Modifiers(), std::string_view("b"), context.fTypes.fFloat.get()); - std::unique_ptr s2 = SkSL::Type::MakeStructType(-1, std::string("s2"), fields1); + fields1.emplace_back(SkSL::Position(), SkSL::Modifiers(), std::string_view("b"), + context.fTypes.fFloat.get()); + std::unique_ptr s2 = SkSL::Type::MakeStructType(SkSL::Position(), std::string("s2"), + fields1); REPORTER_ASSERT(r, 16 == layout.size(*s2)); REPORTER_ASSERT(r, 16 == layout.alignment(*s2)); - fields1.emplace_back(SkSL::Modifiers(), std::string_view("c"), context.fTypes.fBool.get()); - std::unique_ptr s3 = SkSL::Type::MakeStructType(-1, std::string("s3"), fields1); + fields1.emplace_back(SkSL::Position(), SkSL::Modifiers(), std::string_view("c"), + context.fTypes.fBool.get()); + std::unique_ptr s3 = SkSL::Type::MakeStructType(SkSL::Position(), std::string("s3"), + fields1); REPORTER_ASSERT(r, 32 == layout.size(*s3)); REPORTER_ASSERT(r, 16 == layout.alignment(*s3)); // struct 2 std::vector fields2; - fields2.emplace_back(SkSL::Modifiers(), std::string_view("a"), context.fTypes.fInt.get()); - std::unique_ptr s4 = SkSL::Type::MakeStructType(-1, std::string("s4"), fields2); + fields2.emplace_back(SkSL::Position(), SkSL::Modifiers(), std::string_view("a"), + context.fTypes.fInt.get()); + std::unique_ptr s4 = SkSL::Type::MakeStructType(SkSL::Position(), std::string("s4"), + fields2); REPORTER_ASSERT(r, 16 == layout.size(*s4)); REPORTER_ASSERT(r, 16 == layout.alignment(*s4)); - fields2.emplace_back(SkSL::Modifiers(), std::string_view("b"), - context.fTypes.fFloat3.get()); - std::unique_ptr s5 = SkSL::Type::MakeStructType(-1, std::string("s5"), fields2); + fields2.emplace_back(SkSL::Position(), SkSL::Modifiers(), std::string_view("b"), + context.fTypes.fFloat3.get()); + std::unique_ptr s5 = SkSL::Type::MakeStructType(SkSL::Position(), std::string("s5"), + fields2); REPORTER_ASSERT(r, 32 == layout.size(*s5)); REPORTER_ASSERT(r, 16 == layout.alignment(*s5)); @@ -145,32 +162,40 @@ DEF_TEST(SkSLMemoryLayout430Test, r) { // struct 1 std::vector fields1; - fields1.emplace_back(SkSL::Modifiers(), std::string_view("a"), + fields1.emplace_back(SkSL::Position(), SkSL::Modifiers(), std::string_view("a"), context.fTypes.fFloat3.get()); - std::unique_ptr s1 = SkSL::Type::MakeStructType(-1, std::string("s1"), fields1); + std::unique_ptr s1 = SkSL::Type::MakeStructType(SkSL::Position(), std::string("s1"), + fields1); REPORTER_ASSERT(r, 16 == layout.size(*s1)); REPORTER_ASSERT(r, 16 == layout.alignment(*s1)); - fields1.emplace_back(SkSL::Modifiers(), std::string_view("b"), context.fTypes.fFloat.get()); - std::unique_ptr s2 = SkSL::Type::MakeStructType(-1, std::string("s2"), fields1); + fields1.emplace_back(SkSL::Position(), SkSL::Modifiers(), std::string_view("b"), + context.fTypes.fFloat.get()); + std::unique_ptr s2 = SkSL::Type::MakeStructType(SkSL::Position(), std::string("s2"), + fields1); REPORTER_ASSERT(r, 16 == layout.size(*s2)); REPORTER_ASSERT(r, 16 == layout.alignment(*s2)); - fields1.emplace_back(SkSL::Modifiers(), std::string_view("c"), context.fTypes.fBool.get()); - std::unique_ptr s3 = SkSL::Type::MakeStructType(-1, std::string("s3"), fields1); + fields1.emplace_back(SkSL::Position(), SkSL::Modifiers(), std::string_view("c"), + context.fTypes.fBool.get()); + std::unique_ptr s3 = SkSL::Type::MakeStructType(SkSL::Position(), std::string("s3"), + fields1); REPORTER_ASSERT(r, 32 == layout.size(*s3)); REPORTER_ASSERT(r, 16 == layout.alignment(*s3)); // struct 2 std::vector fields2; - fields2.emplace_back(SkSL::Modifiers(), std::string_view("a"), context.fTypes.fInt.get()); - std::unique_ptr s4 = SkSL::Type::MakeStructType(-1, std::string("s4"), fields2); + fields2.emplace_back(SkSL::Position(), SkSL::Modifiers(), std::string_view("a"), + context.fTypes.fInt.get()); + std::unique_ptr s4 = SkSL::Type::MakeStructType(SkSL::Position(), std::string("s4"), + fields2); REPORTER_ASSERT(r, 4 == layout.size(*s4)); REPORTER_ASSERT(r, 4 == layout.alignment(*s4)); - fields2.emplace_back(SkSL::Modifiers(), std::string_view("b"), - context.fTypes.fFloat3.get()); - std::unique_ptr s5 = SkSL::Type::MakeStructType(-1, std::string("s5"), fields2); + fields2.emplace_back(SkSL::Position(), SkSL::Modifiers(), std::string_view("b"), + context.fTypes.fFloat3.get()); + std::unique_ptr s5 = SkSL::Type::MakeStructType(SkSL::Position(), std::string("s5"), + fields2); REPORTER_ASSERT(r, 32 == layout.size(*s5)); REPORTER_ASSERT(r, 16 == layout.alignment(*s5)); diff --git a/third_party/skia/tests/SkSLMetalTestbed.cpp b/third_party/skia/tests/SkSLMetalTestbed.cpp index 3aabe262fba0..5cb2f3d458d3 100644 --- a/third_party/skia/tests/SkSLMetalTestbed.cpp +++ b/third_party/skia/tests/SkSLMetalTestbed.cpp @@ -5,10 +5,16 @@ * found in the LICENSE file. */ +#include "include/core/SkTypes.h" +#include "include/private/SkSLProgramKind.h" #include "src/sksl/SkSLCompiler.h" - +#include "src/sksl/SkSLUtil.h" +#include "src/sksl/ir/SkSLProgram.h" #include "tests/Test.h" +#include +#include + static void test(skiatest::Reporter* r, const SkSL::ShaderCaps& caps, const char* src, diff --git a/third_party/skia/tests/SkSLSPIRVTestbed.cpp b/third_party/skia/tests/SkSLSPIRVTestbed.cpp index 9ba699ef176c..a3d8e3040c3e 100644 --- a/third_party/skia/tests/SkSLSPIRVTestbed.cpp +++ b/third_party/skia/tests/SkSLSPIRVTestbed.cpp @@ -5,10 +5,16 @@ * found in the LICENSE file. */ +#include "include/core/SkTypes.h" +#include "include/private/SkSLProgramKind.h" #include "src/sksl/SkSLCompiler.h" - +#include "src/sksl/SkSLUtil.h" +#include "src/sksl/ir/SkSLProgram.h" #include "tests/Test.h" +#include +#include + static void test(skiatest::Reporter* r, const SkSL::ShaderCaps& caps, const char* src, diff --git a/third_party/skia/tests/SkSLTest.cpp b/third_party/skia/tests/SkSLTest.cpp index efbad131e17e..7091bab4412b 100644 --- a/third_party/skia/tests/SkSLTest.cpp +++ b/third_party/skia/tests/SkSLTest.cpp @@ -5,35 +5,87 @@ * found in the LICENSE file. */ -#include "gm/gm.h" #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColor.h" #include "include/core/SkData.h" -#include "include/core/SkFont.h" +#include "include/core/SkImageInfo.h" +#include "include/core/SkM44.h" #include "include/core/SkPaint.h" -#include "include/core/SkSize.h" +#include "include/core/SkRect.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkShader.h" +#include "include/core/SkSpan.h" #include "include/core/SkString.h" #include "include/core/SkSurface.h" -#include "include/effects/SkGradientShader.h" -#include "include/effects/SkImageFilters.h" +#include "include/core/SkTypes.h" #include "include/effects/SkRuntimeEffect.h" -#include "include/private/SkSLDefines.h" // for kDefaultInlineThreshold +#include "include/gpu/GrDirectContext.h" +#include "include/private/SkSLProgramElement.h" +#include "include/private/SkSLProgramKind.h" #include "include/sksl/DSLCore.h" -#include "include/utils/SkRandom.h" #include "src/core/SkRuntimeEffectPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrShaderCaps.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/SkSLDehydrator.h" #include "src/sksl/SkSLRehydrator.h" -#include "src/sksl/SkSLThreadContext.h" +#include "src/sksl/SkSLStringStream.h" +#include "src/sksl/SkSLUtil.h" +#include "src/sksl/ir/SkSLProgram.h" #include "tests/Test.h" +#include "tests/TestHarness.h" #include "tools/Resources.h" -#include "tools/ToolUtils.h" +#include "tools/gpu/GrContextFactory.h" + +#include +#include +#include +#include static constexpr int kWidth = 2; static constexpr int kHeight = 2; +namespace SkSLTestFlags { + /** CPU tests must pass on the CPU backend. */ + static constexpr int CPU = 1 << 0; + + /** CPU_ES3 tests must pass on the CPU backend when "enforce ES2 restrictions" is off. */ + static constexpr int CPU_ES3 = 1 << 1; + + /** GPU tests must pass on all GPU backends. */ + static constexpr int GPU = 1 << 2; + + /** GPU_ES3 tests must pass on ES3-compatible GPUs when "enforce ES2 restrictions" is off. */ + static constexpr int GPU_ES3 = 1 << 3; + + /** SkQP tests will be run in Android/Fuchsia conformance tests with no driver workarounds. */ + static constexpr int SkQP = 1 << 4; +} + +static constexpr bool is_cpu(int flags) { + return flags & (SkSLTestFlags::CPU | SkSLTestFlags::CPU_ES3); +} + +static constexpr bool is_gpu(int flags) { + return flags & (SkSLTestFlags::GPU | SkSLTestFlags::GPU_ES3); +} + +static constexpr bool is_strict_es2(int flags) { + return !(flags & (SkSLTestFlags::CPU_ES3 | SkSLTestFlags::GPU_ES3)); +} + +static bool should_run_in_skqp(int flags) { + if (CurrentTestHarnessIsSkQP()) { + // Official SkQP builds should only run tests marked with the SkQP flag. + return flags & (SkSLTestFlags::SkQP); + } else { + // Other test binaries (dm/fm) should run every test, regardless of the SkQP flag. + return true; + } +} + template static void set_uniform(SkRuntimeShaderBuilder* builder, const char* name, const T& value) { SkRuntimeShaderBuilder::BuilderUniform uniform = builder->uniform(name); @@ -86,17 +138,16 @@ static void test_one_permutation(skiatest::Reporter* r, set_uniform(&builder, "colorBlue", SkV4{0, 0, 1, 1}); set_uniform(&builder, "colorWhite", SkV4{1, 1, 1, 1}); set_uniform(&builder, "testInputs", SkV4{-1.25, 0, 0.75, 2.25}); - set_uniform(&builder, "testMatrix2x2", std::array{1, 2, - 3, 4}); - set_uniform(&builder, "testMatrix3x3", std::array{1, 2, 3, - 4, 5, 6, - 7, 8, 9}); set_uniform(&builder, "unknownInput", 1.0f); set_uniform(&builder, "testMatrix2x2", std::array{1, 2, 3, 4}); set_uniform(&builder, "testMatrix3x3", std::array{1, 2, 3, 4, 5, 6, 7, 8, 9}); + set_uniform(&builder, "testMatrix4x4", std::array{1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12, + 13, 14, 15, 16}); set_uniform_array(&builder, "testArray", SkMakeSpan(kArray)); sk_sp shader = builder.makeShader(); @@ -105,6 +156,8 @@ static void test_one_permutation(skiatest::Reporter* r, return; } + surface->getCanvas()->clear(SK_ColorBLACK); + SkPaint paintShader; paintShader.setShader(shader); surface->getCanvas()->drawRect(SkRect::MakeWH(kWidth, kHeight), paintShader); @@ -149,9 +202,9 @@ static void test_one_permutation(skiatest::Reporter* r, static void test_permutations(skiatest::Reporter* r, SkSurface* surface, const char* testFile, - bool worksInES2) { + bool strictES2) { SkRuntimeEffect::Options options = - worksInES2 ? SkRuntimeEffect::Options{} : SkRuntimeEffectPriv::ES3Options(); + strictES2 ? SkRuntimeEffect::Options{} : SkRuntimeEffectPriv::ES3Options(); options.forceNoInline = false; test_one_permutation(r, surface, testFile, "", options); @@ -159,32 +212,44 @@ static void test_permutations(skiatest::Reporter* r, test_one_permutation(r, surface, testFile, " (NoInline)", options); } -static void test_cpu(skiatest::Reporter* r, const char* testFile, bool worksInES2) { - const SkImageInfo info = SkImageInfo::MakeN32Premul(kWidth, kHeight); - sk_sp surface(SkSurface::MakeRaster(info)); - - test_permutations(r, surface.get(), testFile, worksInES2); -} +static void test_cpu(skiatest::Reporter* r, const char* testFile, int flags) { + bool shouldRunCPU = (flags & SkSLTestFlags::CPU); + bool shouldRunCPU_ES3 = (flags & SkSLTestFlags::CPU_ES3); + SkASSERT(shouldRunCPU || shouldRunCPU_ES3); -static void test_gpu(skiatest::Reporter* r, GrDirectContext* ctx, const char* testFile) { + // Create a raster-backed surface. const SkImageInfo info = SkImageInfo::MakeN32Premul(kWidth, kHeight); - sk_sp surface(SkSurface::MakeRenderTarget(ctx, SkBudgeted::kNo, info)); + sk_sp surface(SkSurface::MakeRaster(info)); - test_permutations(r, surface.get(), testFile, /*worksInES2=*/true); + if (shouldRunCPU) { + test_permutations(r, surface.get(), testFile, /*strictES2=*/true); + } + if (shouldRunCPU_ES3) { + test_permutations(r, surface.get(), testFile, /*strictES2=*/false); + } } -static void test_es3(skiatest::Reporter* r, GrDirectContext* ctx, const char* testFile) { - if (!ctx->priv().caps()->shaderCaps()->supportsSkSLES3()) { +static void test_gpu(skiatest::Reporter* r, GrDirectContext* ctx, const char* testFile, int flags) { + // If this is an ES3-only test on a GPU which doesn't support SkSL ES3, return immediately. + bool shouldRunGPU = (flags & SkSLTestFlags::GPU); + bool shouldRunGPU_ES3 = (flags & SkSLTestFlags::GPU_ES3) && + ctx->priv().caps()->shaderCaps()->supportsSkSLES3(); + if (!shouldRunGPU && !shouldRunGPU_ES3) { return; } - // ES3-only tests never run on the CPU, because SkVM lacks support for many non-ES2 features. + // Create a GPU-backed surface. const SkImageInfo info = SkImageInfo::MakeN32Premul(kWidth, kHeight); sk_sp surface(SkSurface::MakeRenderTarget(ctx, SkBudgeted::kNo, info)); - test_permutations(r, surface.get(), testFile, /*worksInES2=*/false); + if (shouldRunGPU) { + test_permutations(r, surface.get(), testFile, /*strictES2=*/true); + } + if (shouldRunGPU_ES3) { + test_permutations(r, surface.get(), testFile, /*strictES2=*/false); + } } -static void test_clone(skiatest::Reporter* r, const char* testFile) { +static void test_clone(skiatest::Reporter* r, const char* testFile, int flags) { SkString shaderString = load_source(r, testFile, ""); if (shaderString.isEmpty()) { return; @@ -192,6 +257,7 @@ static void test_clone(skiatest::Reporter* r, const char* testFile) { std::unique_ptr caps = SkSL::ShaderCapsFactory::Standalone(); SkSL::Program::Settings settings; settings.fAllowVarDeclarationCloneForTesting = true; + settings.fEnforceES2Restrictions = is_strict_es2(flags); SkSL::Compiler compiler(caps.get()); std::unique_ptr program = compiler.convertProgram( SkSL::ProgramKind::kRuntimeShader, shaderString.c_str(), settings); @@ -211,7 +277,7 @@ static void test_clone(skiatest::Reporter* r, const char* testFile) { SkSL::dsl::End(); } -static void test_rehydrate(skiatest::Reporter* r, const char* testFile) { +static void test_rehydrate(skiatest::Reporter* r, const char* testFile, int flags) { SkString shaderString = load_source(r, testFile, ""); if (shaderString.isEmpty()) { return; @@ -219,6 +285,7 @@ static void test_rehydrate(skiatest::Reporter* r, const char* testFile) { std::unique_ptr caps = SkSL::ShaderCapsFactory::Default(); SkSL::Compiler compiler(caps.get()); SkSL::Program::Settings settings; + settings.fEnforceES2Restrictions = is_strict_es2(flags); // Inlining causes problems because it can create expressions like bool(1) that can't be // directly instantiated. After a dehydrate/recycle pass, that expression simply becomes "true" // due to optimization - which is fine, but would cause us to fail an equality comparison. We @@ -244,219 +311,217 @@ static void test_rehydrate(skiatest::Reporter* r, const char* testFile) { rehydrated->description().c_str()); } -#define SKSL_TEST_CPU(name, path) \ - DEF_TEST(name ## _CPU, r) { \ - test_cpu(r, path, true); \ - } -// The CPU backend lacks support for MANY ES3 features. However, if you know a test uses a subset -// of ES3 that is supported, you can force it to run there: -#define SKSL_TEST_CPU_ES3(name, path) \ - DEF_TEST(name ## _CPU, r) { \ - test_cpu(r, path, false); \ - } -#define SKSL_TEST_GPU(name, path) \ - DEF_GPUTEST_FOR_RENDERING_CONTEXTS(name ## _GPU, r, ctxInfo) { \ - test_gpu(r, ctxInfo.directContext(), path); \ - } -#define SKSL_TEST_ES3(name, path) \ - DEF_GPUTEST_FOR_RENDERING_CONTEXTS(name ## _GPU, r, ctxInfo) { \ - test_es3(r, ctxInfo.directContext(), path); \ - } -#define SKSL_TEST_REHYDRATE(name, path) \ - DEF_TEST(name ## _REHYDRATE, r) { \ - test_rehydrate(r, path); \ - } - -#define SKSL_TEST_CLONE(name, path) \ - DEF_TEST(name ## _CLONE, r) { \ - test_clone(r, path); \ - } +#define SKSL_TEST(flags, name, path) \ + DEF_CONDITIONAL_TEST(SkSL##name##_CPU, r, is_cpu(flags) && should_run_in_skqp(flags)) { \ + test_cpu(r, path, flags); \ + } \ + DEF_CONDITIONAL_GPUTEST_FOR_RENDERING_CONTEXTS( \ + SkSL##name##_GPU, r, ctxInfo, is_gpu(flags) && should_run_in_skqp(flags)) { \ + test_gpu(r, ctxInfo.directContext(), path, flags); \ + } \ + DEF_TEST(SkSL##name##_Clone, r) { test_clone(r, path, flags); } \ + DEF_TEST(SkSL##name##_Rehydrate, r) { test_rehydrate(r, path, flags); } + +/** + * Test flags: + * - CPU: this test should pass on the CPU backend + * - CPU_ES3: this test should pass on the CPU backend when "enforce ES2 restrictions" is off + * - GPU: this test should pass on the GPU backends + * - GPU_ES3: this test should pass on an ES3-compatible GPU when "enforce ES2 restrictions" is off + * - SkQP: Android CTS (go/wtf/cts) enforces that devices must pass this test + */ -#define SKSL_TEST(name, path) SKSL_TEST_CPU(name, path) SKSL_TEST_GPU(name, path) \ - SKSL_TEST_CLONE(name, path) SKSL_TEST_REHYDRATE(name, path) - -SKSL_TEST(SkSLArraySizeFolding, "folding/ArraySizeFolding.sksl") -SKSL_TEST(SkSLAssignmentOps, "folding/AssignmentOps.sksl") -SKSL_TEST(SkSLBoolFolding, "folding/BoolFolding.sksl") -SKSL_TEST(SkSLCastFolding, "folding/CastFolding.sksl") -SKSL_TEST(SkSLIntFoldingES2, "folding/IntFoldingES2.sksl") -SKSL_TEST_ES3(SkSLIntFoldingES3, "folding/IntFoldingES3.sksl") -SKSL_TEST(SkSLFloatFolding, "folding/FloatFolding.sksl") -SKSL_TEST(SkSLMatrixFoldingES2, "folding/MatrixFoldingES2.sksl") -SKSL_TEST_ES3(SkSLMatrixFoldingES3, "folding/MatrixFoldingES3.sksl") -SKSL_TEST(SkSLSelfAssignment, "folding/SelfAssignment.sksl") -SKSL_TEST(SkSLShortCircuitBoolFolding, "folding/ShortCircuitBoolFolding.sksl") -SKSL_TEST(SkSLSwitchCaseFolding, "folding/SwitchCaseFolding.sksl") -SKSL_TEST(SkSLSwizzleFolding, "folding/SwizzleFolding.sksl") -SKSL_TEST(SkSLVectorScalarFolding, "folding/VectorScalarFolding.sksl") -SKSL_TEST(SkSLVectorVectorFolding, "folding/VectorVectorFolding.sksl") - -SKSL_TEST_ES3(SkSLDoWhileBodyMustBeInlinedIntoAScope, - "inliner/DoWhileBodyMustBeInlinedIntoAScope.sksl") -SKSL_TEST_ES3(SkSLDoWhileTestCannotBeInlined, "inliner/DoWhileTestCannotBeInlined.sksl") -SKSL_TEST(SkSLForBodyMustBeInlinedIntoAScope, "inliner/ForBodyMustBeInlinedIntoAScope.sksl") -SKSL_TEST_ES3(SkSLForInitializerExpressionsCanBeInlined, - "inliner/ForInitializerExpressionsCanBeInlined.sksl") -SKSL_TEST(SkSLForWithoutReturnInsideCanBeInlined, "inliner/ForWithoutReturnInsideCanBeInlined.sksl") -SKSL_TEST(SkSLForWithReturnInsideCannotBeInlined, "inliner/ForWithReturnInsideCannotBeInlined.sksl") -SKSL_TEST(SkSLIfBodyMustBeInlinedIntoAScope, "inliner/IfBodyMustBeInlinedIntoAScope.sksl") -SKSL_TEST(SkSLIfElseBodyMustBeInlinedIntoAScope, "inliner/IfElseBodyMustBeInlinedIntoAScope.sksl") -SKSL_TEST(SkSLIfElseChainWithReturnsCanBeInlined, "inliner/IfElseChainWithReturnsCanBeInlined.sksl") -SKSL_TEST(SkSLIfTestCanBeInlined, "inliner/IfTestCanBeInlined.sksl") -SKSL_TEST(SkSLIfWithReturnsCanBeInlined, "inliner/IfWithReturnsCanBeInlined.sksl") -SKSL_TEST(SkSLInlineKeywordOverridesThreshold, "inliner/InlineKeywordOverridesThreshold.sksl") -SKSL_TEST(SkSLInlinerAvoidsVariableNameOverlap, "inliner/InlinerAvoidsVariableNameOverlap.sksl") -SKSL_TEST(SkSLInlinerElidesTempVarForReturnsInsideBlock, - "inliner/InlinerElidesTempVarForReturnsInsideBlock.sksl") -SKSL_TEST(SkSLInlinerUsesTempVarForMultipleReturns, - "inliner/InlinerUsesTempVarForMultipleReturns.sksl") -SKSL_TEST(SkSLInlinerUsesTempVarForReturnsInsideBlockWithVar, - "inliner/InlinerUsesTempVarForReturnsInsideBlockWithVar.sksl") -SKSL_TEST(SkSLInlineThreshold, "inliner/InlineThreshold.sksl") -SKSL_TEST(SkSLInlineWithModifiedArgument, "inliner/InlineWithModifiedArgument.sksl") -SKSL_TEST(SkSLInlineWithNestedBigCalls, "inliner/InlineWithNestedBigCalls.sksl") -SKSL_TEST(SkSLInlineWithUnmodifiedArgument, "inliner/InlineWithUnmodifiedArgument.sksl") -SKSL_TEST(SkSLInlineWithUnnecessaryBlocks, "inliner/InlineWithUnnecessaryBlocks.sksl") -SKSL_TEST(SkSLNoInline, "inliner/NoInline.sksl") -SKSL_TEST(SkSLShortCircuitEvaluationsCannotInlineRightHandSide, - "inliner/ShortCircuitEvaluationsCannotInlineRightHandSide.sksl") -SKSL_TEST_ES3(SkSLStaticSwitchInline, "inliner/StaticSwitch.sksl") -SKSL_TEST(SkSLStructsCanBeInlinedSafely, "inliner/StructsCanBeInlinedSafely.sksl") -SKSL_TEST(SkSLSwizzleCanBeInlinedDirectly, "inliner/SwizzleCanBeInlinedDirectly.sksl") -SKSL_TEST(SkSLTernaryResultsCannotBeInlined, "inliner/TernaryResultsCannotBeInlined.sksl") -SKSL_TEST(SkSLTernaryTestCanBeInlined, "inliner/TernaryTestCanBeInlined.sksl") -SKSL_TEST(SkSLTrivialArgumentsInlineDirectly, "inliner/TrivialArgumentsInlineDirectly.sksl") -SKSL_TEST_ES3(SkSLWhileBodyMustBeInlinedIntoAScope, - "inliner/WhileBodyMustBeInlinedIntoAScope.sksl") -SKSL_TEST_ES3(SkSLWhileTestCannotBeInlined, "inliner/WhileTestCannotBeInlined.sksl") - -SKSL_TEST(SkSLIntrinsicAbsFloat, "intrinsics/AbsFloat.sksl") -SKSL_TEST_ES3(SkSLIntrinsicAbsInt, "intrinsics/AbsInt.sksl") -SKSL_TEST(SkSLIntrinsicCeil, "intrinsics/Ceil.sksl") -SKSL_TEST_ES3(SkSLIntrinsicDeterminant, "intrinsics/Determinant.sksl") -SKSL_TEST_ES3(SkSLIntrinsicDFdx, "intrinsics/DFdx.sksl") -SKSL_TEST_ES3(SkSLIntrinsicDFdy, "intrinsics/DFdy.sksl") -SKSL_TEST_ES3(SkSLIntrinsicFloatBitsToInt, "intrinsics/FloatBitsToInt.sksl") -SKSL_TEST_ES3(SkSLIntrinsicFloatBitsToUint, "intrinsics/FloatBitsToUint.sksl") -SKSL_TEST_ES3(SkSLIntrinsicFwidth, "intrinsics/Fwidth.sksl") -SKSL_TEST_ES3(SkSLIntrinsicIntBitsToFloat, "intrinsics/IntBitsToFloat.sksl") -SKSL_TEST_ES3(SkSLIntrinsicIsInf, "intrinsics/IsInf.sksl") -SKSL_TEST_ES3(SkSLIntrinsicClampInt, "intrinsics/ClampInt.sksl") -SKSL_TEST_ES3(SkSLIntrinsicClampUInt, "intrinsics/ClampUInt.sksl") -SKSL_TEST(SkSLIntrinsicClampFloat, "intrinsics/ClampFloat.sksl") -SKSL_TEST(SkSLIntrinsicMatrixCompMultES2, "intrinsics/MatrixCompMultES2.sksl") -SKSL_TEST_ES3(SkSLIntrinsicMatrixCompMultES3, "intrinsics/MatrixCompMultES3.sksl") -SKSL_TEST(SkSLIntrinsicMaxFloat, "intrinsics/MaxFloat.sksl") -SKSL_TEST_ES3(SkSLIntrinsicMaxInt, "intrinsics/MaxInt.sksl") -SKSL_TEST(SkSLIntrinsicMinFloat, "intrinsics/MinFloat.sksl") -SKSL_TEST_ES3(SkSLIntrinsicMinInt, "intrinsics/MinInt.sksl") -SKSL_TEST(SkSLIntrinsicMixFloat, "intrinsics/MixFloat.sksl") -SKSL_TEST_ES3(SkSLIntrinsicModf, "intrinsics/Modf.sksl") -SKSL_TEST_ES3(SkSLIntrinsicOuterProduct, "intrinsics/OuterProduct.sksl") +// clang-format off + +using namespace SkSLTestFlags; + +SKSL_TEST(CPU + GPU + SkQP, ArraySizeFolding, "folding/ArraySizeFolding.sksl") +SKSL_TEST(CPU + GPU + SkQP, AssignmentOps, "folding/AssignmentOps.sksl") +SKSL_TEST(CPU + GPU + SkQP, BoolFolding, "folding/BoolFolding.sksl") +SKSL_TEST(CPU + GPU + SkQP, CastFolding, "folding/CastFolding.sksl") +SKSL_TEST(CPU + GPU + SkQP, IntFoldingES2, "folding/IntFoldingES2.sksl") +SKSL_TEST(GPU_ES3, IntFoldingES3, "folding/IntFoldingES3.sksl") +SKSL_TEST(CPU + GPU + SkQP, FloatFolding, "folding/FloatFolding.sksl") +SKSL_TEST(CPU + GPU + SkQP, MatrixFoldingES2, "folding/MatrixFoldingES2.sksl") +SKSL_TEST(GPU_ES3, MatrixFoldingES3, "folding/MatrixFoldingES3.sksl") +SKSL_TEST(CPU + GPU + SkQP, Negation, "folding/Negation.sksl") +// TODO(skia:13035): This test fails on Nvidia GPUs on OpenGL but passes Vulkan. Re-enable the test +// on Vulkan when granular GPU backend selection is supported. +SKSL_TEST(CPU + SkQP, PreserveSideEffects, "folding/PreserveSideEffects.sksl") +SKSL_TEST(CPU + GPU + SkQP, SelfAssignment, "folding/SelfAssignment.sksl") +SKSL_TEST(CPU + GPU + SkQP, ShortCircuitBoolFolding, "folding/ShortCircuitBoolFolding.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwitchCaseFolding, "folding/SwitchCaseFolding.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwizzleFolding, "folding/SwizzleFolding.sksl") +SKSL_TEST(CPU + GPU + SkQP, TernaryFolding, "folding/TernaryFolding.sksl") +SKSL_TEST(CPU + GPU + SkQP, VectorScalarFolding, "folding/VectorScalarFolding.sksl") +SKSL_TEST(CPU + GPU + SkQP, VectorVectorFolding, "folding/VectorVectorFolding.sksl") + +SKSL_TEST(GPU_ES3, DoWhileBodyMustBeInlinedIntoAScope, "inliner/DoWhileBodyMustBeInlinedIntoAScope.sksl") +SKSL_TEST(GPU_ES3, DoWhileTestCannotBeInlined, "inliner/DoWhileTestCannotBeInlined.sksl") +SKSL_TEST(CPU + GPU + SkQP, ForBodyMustBeInlinedIntoAScope, "inliner/ForBodyMustBeInlinedIntoAScope.sksl") +SKSL_TEST(GPU_ES3, ForInitializerExpressionsCanBeInlined, "inliner/ForInitializerExpressionsCanBeInlined.sksl") +SKSL_TEST(CPU + GPU + SkQP, ForWithoutReturnInsideCanBeInlined, "inliner/ForWithoutReturnInsideCanBeInlined.sksl") +SKSL_TEST(CPU + GPU + SkQP, ForWithReturnInsideCannotBeInlined, "inliner/ForWithReturnInsideCannotBeInlined.sksl") +SKSL_TEST(CPU + GPU + SkQP, IfBodyMustBeInlinedIntoAScope, "inliner/IfBodyMustBeInlinedIntoAScope.sksl") +SKSL_TEST(CPU + GPU + SkQP, IfElseBodyMustBeInlinedIntoAScope, "inliner/IfElseBodyMustBeInlinedIntoAScope.sksl") +SKSL_TEST(CPU + GPU + SkQP, IfElseChainWithReturnsCanBeInlined, "inliner/IfElseChainWithReturnsCanBeInlined.sksl") +SKSL_TEST(CPU + GPU + SkQP, IfTestCanBeInlined, "inliner/IfTestCanBeInlined.sksl") +SKSL_TEST(CPU + GPU + SkQP, IfWithReturnsCanBeInlined, "inliner/IfWithReturnsCanBeInlined.sksl") +SKSL_TEST(CPU + GPU + SkQP, InlineKeywordOverridesThreshold, "inliner/InlineKeywordOverridesThreshold.sksl") +SKSL_TEST(CPU + GPU + SkQP, InlinerAvoidsVariableNameOverlap, "inliner/InlinerAvoidsVariableNameOverlap.sksl") +SKSL_TEST(CPU + GPU + SkQP, InlinerElidesTempVarForReturnsInsideBlock, "inliner/InlinerElidesTempVarForReturnsInsideBlock.sksl") +SKSL_TEST(CPU + GPU + SkQP, InlinerUsesTempVarForMultipleReturns, "inliner/InlinerUsesTempVarForMultipleReturns.sksl") +SKSL_TEST(CPU + GPU + SkQP, InlinerUsesTempVarForReturnsInsideBlockWithVar, "inliner/InlinerUsesTempVarForReturnsInsideBlockWithVar.sksl") +SKSL_TEST(CPU + GPU + SkQP, InlineThreshold, "inliner/InlineThreshold.sksl") +SKSL_TEST(CPU + GPU + SkQP, InlineWithModifiedArgument, "inliner/InlineWithModifiedArgument.sksl") +SKSL_TEST(CPU + GPU + SkQP, InlineWithNestedBigCalls, "inliner/InlineWithNestedBigCalls.sksl") +SKSL_TEST(CPU + GPU + SkQP, InlineWithUnmodifiedArgument, "inliner/InlineWithUnmodifiedArgument.sksl") +SKSL_TEST(CPU + GPU + SkQP, InlineWithUnnecessaryBlocks, "inliner/InlineWithUnnecessaryBlocks.sksl") +SKSL_TEST(CPU + GPU + SkQP, NoInline, "inliner/NoInline.sksl") +SKSL_TEST(CPU + GPU + SkQP, ShortCircuitEvaluationsCannotInlineRightHandSide, "inliner/ShortCircuitEvaluationsCannotInlineRightHandSide.sksl") +SKSL_TEST(GPU_ES3, StaticSwitchInline, "inliner/StaticSwitch.sksl") +SKSL_TEST(CPU + GPU + SkQP, StructsCanBeInlinedSafely, "inliner/StructsCanBeInlinedSafely.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwizzleCanBeInlinedDirectly, "inliner/SwizzleCanBeInlinedDirectly.sksl") +SKSL_TEST(CPU + GPU + SkQP, TernaryResultsCannotBeInlined, "inliner/TernaryResultsCannotBeInlined.sksl") +SKSL_TEST(CPU + GPU + SkQP, TernaryTestCanBeInlined, "inliner/TernaryTestCanBeInlined.sksl") +SKSL_TEST(CPU + GPU + SkQP, TrivialArgumentsInlineDirectly, "inliner/TrivialArgumentsInlineDirectly.sksl") +SKSL_TEST(GPU_ES3, WhileBodyMustBeInlinedIntoAScope, "inliner/WhileBodyMustBeInlinedIntoAScope.sksl") +SKSL_TEST(GPU_ES3, WhileTestCannotBeInlined, "inliner/WhileTestCannotBeInlined.sksl") + +SKSL_TEST(CPU + GPU + SkQP, IntrinsicAbsFloat, "intrinsics/AbsFloat.sksl") +SKSL_TEST(GPU_ES3, IntrinsicAbsInt, "intrinsics/AbsInt.sksl") +SKSL_TEST(CPU + GPU + SkQP, IntrinsicCeil, "intrinsics/Ceil.sksl") +SKSL_TEST(GPU_ES3, IntrinsicDeterminant, "intrinsics/Determinant.sksl") +SKSL_TEST(GPU_ES3, IntrinsicDFdx, "intrinsics/DFdx.sksl") +SKSL_TEST(GPU_ES3, IntrinsicDFdy, "intrinsics/DFdy.sksl") +SKSL_TEST(GPU_ES3, IntrinsicFloatBitsToInt, "intrinsics/FloatBitsToInt.sksl") +SKSL_TEST(GPU_ES3, IntrinsicFloatBitsToUint, "intrinsics/FloatBitsToUint.sksl") +SKSL_TEST(GPU_ES3, IntrinsicFwidth, "intrinsics/Fwidth.sksl") +SKSL_TEST(GPU_ES3, IntrinsicIntBitsToFloat, "intrinsics/IntBitsToFloat.sksl") +SKSL_TEST(GPU_ES3, IntrinsicIsInf, "intrinsics/IsInf.sksl") +SKSL_TEST(GPU_ES3, IntrinsicClampInt, "intrinsics/ClampInt.sksl") +SKSL_TEST(GPU_ES3, IntrinsicClampUInt, "intrinsics/ClampUInt.sksl") +SKSL_TEST(CPU + GPU + SkQP, IntrinsicClampFloat, "intrinsics/ClampFloat.sksl") +SKSL_TEST(CPU + GPU + SkQP, IntrinsicMatrixCompMultES2, "intrinsics/MatrixCompMultES2.sksl") +SKSL_TEST(GPU_ES3, IntrinsicMatrixCompMultES3, "intrinsics/MatrixCompMultES3.sksl") +SKSL_TEST(CPU + GPU + SkQP, IntrinsicMaxFloat, "intrinsics/MaxFloat.sksl") +SKSL_TEST(GPU_ES3, IntrinsicMaxInt, "intrinsics/MaxInt.sksl") +SKSL_TEST(CPU + GPU + SkQP, IntrinsicMinFloat, "intrinsics/MinFloat.sksl") +SKSL_TEST(GPU_ES3, IntrinsicMinInt, "intrinsics/MinInt.sksl") +SKSL_TEST(CPU + GPU + SkQP, IntrinsicMixFloat, "intrinsics/MixFloat.sksl") +SKSL_TEST(GPU_ES3, IntrinsicModf, "intrinsics/Modf.sksl") +SKSL_TEST(GPU_ES3, IntrinsicOuterProduct, "intrinsics/OuterProduct.sksl") // Fails on Mac OpenGL + Radeon 5300M (skia:12434) -//SKSL_TEST_ES3(SkSLIntrinsicPackUnorm2x16, "intrinsics/PackUnorm2x16.sksl") -SKSL_TEST_ES3(SkSLIntrinsicRound, "intrinsics/Round.sksl") -SKSL_TEST_ES3(SkSLIntrinsicRoundEven, "intrinsics/RoundEven.sksl") -SKSL_TEST(SkSLIntrinsicSignFloat, "intrinsics/SignFloat.sksl") -SKSL_TEST_ES3(SkSLIntrinsicSignInt, "intrinsics/SignInt.sksl") -SKSL_TEST(SkSLIntrinsicStep, "intrinsics/Step.sksl") -SKSL_TEST_ES3(SkSLIntrinsicTrunc, "intrinsics/Trunc.sksl") -SKSL_TEST_ES3(SkSLIntrinsicTranspose, "intrinsics/Transpose.sksl") -SKSL_TEST_ES3(SkSLIntrinsicUintBitsToFloat, "intrinsics/UintBitsToFloat.sksl") - -SKSL_TEST_ES3(SkSLArrayNarrowingConversions, "runtime/ArrayNarrowingConversions.rts") -SKSL_TEST(SkSLLoopFloat, "runtime/LoopFloat.rts") -SKSL_TEST(SkSLLoopInt, "runtime/LoopInt.rts") -SKSL_TEST(SkSLQualifierOrder, "runtime/QualifierOrder.rts") -SKSL_TEST(SkSLPrecisionQualifiers, "runtime/PrecisionQualifiers.rts") -SKSL_TEST_CPU_ES3(SkSLRecursiveComparison_Arrays, "runtime/RecursiveComparison_Arrays.rts") -SKSL_TEST_CPU_ES3(SkSLRecursiveComparison_Structs, "runtime/RecursiveComparison_Structs.rts") -SKSL_TEST_CPU_ES3(SkSLRecursiveComparison_Types, "runtime/RecursiveComparison_Types.rts") -SKSL_TEST_CPU_ES3(SkSLRecursiveComparison_Vectors, "runtime/RecursiveComparison_Vectors.rts") - -SKSL_TEST_ES3(SkSLArrayComparison, "shared/ArrayComparison.sksl") -SKSL_TEST_ES3(SkSLArrayConstructors, "shared/ArrayConstructors.sksl") -SKSL_TEST_ES3(SkSLArrayCast, "shared/ArrayCast.sksl") -SKSL_TEST_ES3(SkSLArrayFollowedByScalar, "shared/ArrayFollowedByScalar.sksl") -SKSL_TEST(SkSLArrayTypes, "shared/ArrayTypes.sksl") -SKSL_TEST(SkSLAssignment, "shared/Assignment.sksl") -SKSL_TEST(SkSLCastsRoundTowardZero, "shared/CastsRoundTowardZero.sksl") -SKSL_TEST(SkSLCommaMixedTypes, "shared/CommaMixedTypes.sksl") -SKSL_TEST(SkSLCommaSideEffects, "shared/CommaSideEffects.sksl") -SKSL_TEST(SkSLConstantIf, "shared/ConstantIf.sksl") -SKSL_TEST_ES3(SkSLConstArray, "shared/ConstArray.sksl") -SKSL_TEST(SkSLConstVariableComparison, "shared/ConstVariableComparison.sksl") -SKSL_TEST_ES3(SkSLDeadLoopVariable, "shared/DeadLoopVariable.sksl") -SKSL_TEST(SkSLDeadIfStatement, "shared/DeadIfStatement.sksl") -SKSL_TEST(SkSLDeadReturn, "shared/DeadReturn.sksl") -// TODO(skia:12012): some Radeons crash when compiling this code; disable them -//SKSL_TEST_ES3(SkSLDeadReturnES3, "shared/DeadReturnES3.sksl") -SKSL_TEST(SkSLDeadStripFunctions, "shared/DeadStripFunctions.sksl") -SKSL_TEST(SkSLDependentInitializers, "shared/DependentInitializers.sksl") -SKSL_TEST_ES3(SkSLDoWhileControlFlow, "shared/DoWhileControlFlow.sksl") -SKSL_TEST(SkSLEmptyBlocksES2, "shared/EmptyBlocksES2.sksl") -SKSL_TEST_ES3(SkSLEmptyBlocksES3, "shared/EmptyBlocksES3.sksl") -SKSL_TEST(SkSLForLoopControlFlow, "shared/ForLoopControlFlow.sksl") -SKSL_TEST(SkSLFunctionAnonymousParameters, "shared/FunctionAnonymousParameters.sksl") -SKSL_TEST(SkSLFunctionArgTypeMatch, "shared/FunctionArgTypeMatch.sksl") -SKSL_TEST(SkSLFunctionReturnTypeMatch, "shared/FunctionReturnTypeMatch.sksl") -SKSL_TEST(SkSLFunctions, "shared/Functions.sksl") -SKSL_TEST(SkSLFunctionPrototype, "shared/FunctionPrototype.sksl") -SKSL_TEST(SkSLGeometricIntrinsics, "shared/GeometricIntrinsics.sksl") -SKSL_TEST(SkSLHelloWorld, "shared/HelloWorld.sksl") -SKSL_TEST(SkSLHex, "shared/Hex.sksl") -SKSL_TEST_ES3(SkSLHexUnsigned, "shared/HexUnsigned.sksl") -SKSL_TEST(SkSLInoutParameters, "shared/InoutParameters.sksl") -SKSL_TEST(SkSLMatrices, "shared/Matrices.sksl") -SKSL_TEST_ES3(SkSLMatricesNonsquare, "shared/MatricesNonsquare.sksl") -// TODO(skia:12443) These tests actually don't work on MANY devices. The GLSL conformance suite -// does a terrible job of enforcing this rule. We still test them on newer (ES3) devices, and CPU. -SKSL_TEST_CPU_ES3(SkSLMatrixConstructorsES2, "shared/MatrixConstructorsES2.sksl") -SKSL_TEST_CPU_ES3(SkSLMatrixConstructorsES3, "shared/MatrixConstructorsES3.sksl") -SKSL_TEST(SkSLMatrixEquality, "shared/MatrixEquality.sksl") -SKSL_TEST(SkSLMatrixScalarMath, "shared/MatrixScalarMath.sksl") -SKSL_TEST(SkSLMatrixToVectorCast, "shared/MatrixToVectorCast.sksl") -SKSL_TEST(SkSLMultipleAssignments, "shared/MultipleAssignments.sksl") -SKSL_TEST(SkSLNegation, "shared/Negation.sksl") -SKSL_TEST(SkSLNumberCasts, "shared/NumberCasts.sksl") -SKSL_TEST(SkSLOperatorsES2, "shared/OperatorsES2.sksl") -SKSL_TEST_ES3(SkSLOperatorsES3, "shared/OperatorsES3.sksl") -SKSL_TEST(SkSLOssfuzz36852, "shared/Ossfuzz36852.sksl") -SKSL_TEST(SkSLOutParams, "shared/OutParams.sksl") -SKSL_TEST(SkSLOutParamsAreDistinct, "shared/OutParamsAreDistinct.sksl") -SKSL_TEST(SkSLOutParamsTricky, "shared/OutParamsTricky.sksl") -SKSL_TEST(SkSLResizeMatrix, "shared/ResizeMatrix.sksl") -SKSL_TEST_ES3(SkSLResizeMatrixNonsquare, "shared/ResizeMatrixNonsquare.sksl") -SKSL_TEST(SkSLReturnsValueOnEveryPathES2, "shared/ReturnsValueOnEveryPathES2.sksl") -SKSL_TEST_ES3(SkSLReturnsValueOnEveryPathES3, "shared/ReturnsValueOnEveryPathES3.sksl") -SKSL_TEST(SkSLScalarConversionConstructorsES2, "shared/ScalarConversionConstructorsES2.sksl") -SKSL_TEST(SkSLScopedSymbol, "shared/ScopedSymbol.sksl") -SKSL_TEST_ES3(SkSLScalarConversionConstructorsES3, "shared/ScalarConversionConstructorsES3.sksl") -SKSL_TEST(SkSLStackingVectorCasts, "shared/StackingVectorCasts.sksl") -SKSL_TEST(SkSLStaticIf, "shared/StaticIf.sksl") -SKSL_TEST_ES3(SkSLStaticSwitch, "shared/StaticSwitch.sksl") -SKSL_TEST(SkSLStructArrayFollowedByScalar, "shared/StructArrayFollowedByScalar.sksl") -SKSL_TEST(SkSLStructsInFunctions, "shared/StructsInFunctions.sksl") -SKSL_TEST(SkSLSwitch, "shared/Switch.sksl") -SKSL_TEST(SkSLSwitchDefaultOnly, "shared/SwitchDefaultOnly.sksl") -SKSL_TEST(SkSLSwitchWithFallthrough, "shared/SwitchWithFallthrough.sksl") -SKSL_TEST(SkSLSwitchWithLoops, "shared/SwitchWithLoops.sksl") -SKSL_TEST(SkSLSwizzleBoolConstants, "shared/SwizzleBoolConstants.sksl") -SKSL_TEST(SkSLSwizzleByConstantIndex, "shared/SwizzleByConstantIndex.sksl") -SKSL_TEST_ES3(SkSLSwizzleByIndex, "shared/SwizzleByIndex.sksl") -SKSL_TEST(SkSLSwizzleConstants, "shared/SwizzleConstants.sksl") -SKSL_TEST(SkSLSwizzleLTRB, "shared/SwizzleLTRB.sksl") -SKSL_TEST(SkSLSwizzleOpt, "shared/SwizzleOpt.sksl") -SKSL_TEST(SkSLSwizzleScalar, "shared/SwizzleScalar.sksl") -SKSL_TEST(SkSLSwizzleScalarBool, "shared/SwizzleScalarBool.sksl") -SKSL_TEST(SkSLSwizzleScalarInt, "shared/SwizzleScalarInt.sksl") -SKSL_TEST(SkSLTernaryAsLValueEntirelyFoldable, "shared/TernaryAsLValueEntirelyFoldable.sksl") -SKSL_TEST(SkSLTernaryAsLValueFoldableTest, "shared/TernaryAsLValueFoldableTest.sksl") -SKSL_TEST(SkSLTernaryExpression, "shared/TernaryExpression.sksl") -SKSL_TEST(SkSLUnaryPositiveNegative, "shared/UnaryPositiveNegative.sksl") -SKSL_TEST(SkSLUniformArray, "shared/UniformArray.sksl") -SKSL_TEST(SkSLUnusedVariables, "shared/UnusedVariables.sksl") -SKSL_TEST(SkSLVectorConstructors, "shared/VectorConstructors.sksl") -SKSL_TEST(SkSLVectorToMatrixCast, "shared/VectorToMatrixCast.sksl") -SKSL_TEST(SkSLVectorScalarMath, "shared/VectorScalarMath.sksl") -SKSL_TEST_ES3(SkSLWhileLoopControlFlow, "shared/WhileLoopControlFlow.sksl") +// SKSL_TEST(GPU_ES3, IntrinsicPackUnorm2x16, "intrinsics/PackUnorm2x16.sksl") +SKSL_TEST(GPU_ES3, IntrinsicRound, "intrinsics/Round.sksl") +SKSL_TEST(GPU_ES3, IntrinsicRoundEven, "intrinsics/RoundEven.sksl") +SKSL_TEST(CPU + GPU + SkQP, IntrinsicSignFloat, "intrinsics/SignFloat.sksl") +SKSL_TEST(GPU_ES3, IntrinsicSignInt, "intrinsics/SignInt.sksl") +SKSL_TEST(CPU + GPU + SkQP, IntrinsicStep, "intrinsics/Step.sksl") +SKSL_TEST(GPU_ES3, IntrinsicTrunc, "intrinsics/Trunc.sksl") +SKSL_TEST(GPU_ES3, IntrinsicTranspose, "intrinsics/Transpose.sksl") +SKSL_TEST(GPU_ES3, IntrinsicUintBitsToFloat, "intrinsics/UintBitsToFloat.sksl") + +SKSL_TEST(GPU_ES3, ArrayNarrowingConversions, "runtime/ArrayNarrowingConversions.rts") +SKSL_TEST(CPU + GPU + SkQP, LoopFloat, "runtime/LoopFloat.rts") +SKSL_TEST(CPU + GPU + SkQP, LoopInt, "runtime/LoopInt.rts") +SKSL_TEST(CPU + GPU + SkQP, QualifierOrder, "runtime/QualifierOrder.rts") +SKSL_TEST(CPU + GPU + SkQP, PrecisionQualifiers, "runtime/PrecisionQualifiers.rts") + +// These tests specifically rely the behavior of NaN values, but some older GPUs do not reliably +// implement full IEEE support (skia:12977). They also rely on equality operators on array types +// which are not available in GLSL ES 1.00. Therefore these tests are restricted to run on CPU and +// with "strict ES2 mode" disabled. +SKSL_TEST(CPU_ES3, RecursiveComparison_Arrays, "runtime/RecursiveComparison_Arrays.rts") +SKSL_TEST(CPU_ES3, RecursiveComparison_Structs, "runtime/RecursiveComparison_Structs.rts") +SKSL_TEST(CPU_ES3, RecursiveComparison_Types, "runtime/RecursiveComparison_Types.rts") +SKSL_TEST(CPU_ES3, RecursiveComparison_Vectors, "runtime/RecursiveComparison_Vectors.rts") + +SKSL_TEST(GPU_ES3, ArrayCast, "shared/ArrayCast.sksl") +SKSL_TEST(GPU_ES3, ArrayComparison, "shared/ArrayComparison.sksl") +SKSL_TEST(GPU_ES3, ArrayConstructors, "shared/ArrayConstructors.sksl") +SKSL_TEST(GPU_ES3, ArrayFollowedByScalar, "shared/ArrayFollowedByScalar.sksl") +SKSL_TEST(CPU + GPU + SkQP, ArrayTypes, "shared/ArrayTypes.sksl") +SKSL_TEST(CPU + GPU + SkQP, Assignment, "shared/Assignment.sksl") +SKSL_TEST(CPU + GPU + SkQP, CastsRoundTowardZero, "shared/CastsRoundTowardZero.sksl") +SKSL_TEST(CPU + GPU + SkQP, CommaMixedTypes, "shared/CommaMixedTypes.sksl") +SKSL_TEST(CPU + GPU + SkQP, CommaSideEffects, "shared/CommaSideEffects.sksl") +SKSL_TEST(CPU + GPU + SkQP, ConstantIf, "shared/ConstantIf.sksl") +SKSL_TEST(GPU_ES3, ConstArray, "shared/ConstArray.sksl") +SKSL_TEST(CPU + GPU + SkQP, ConstVariableComparison, "shared/ConstVariableComparison.sksl") +SKSL_TEST(GPU_ES3, DeadLoopVariable, "shared/DeadLoopVariable.sksl") +SKSL_TEST(CPU + GPU + SkQP, DeadIfStatement, "shared/DeadIfStatement.sksl") +SKSL_TEST(CPU + GPU + SkQP, DeadReturn, "shared/DeadReturn.sksl") +// TODO(skia:12012): some Radeons crash when compiling this code; disable them. +// SKSL_TEST(GPU_ES3, SkSLDeadReturnES3, "shared/DeadReturnES3.sksl") +SKSL_TEST(CPU + GPU + SkQP, DeadStripFunctions, "shared/DeadStripFunctions.sksl") +SKSL_TEST(CPU + GPU + SkQP, DependentInitializers, "shared/DependentInitializers.sksl") +SKSL_TEST(CPU + GPU + SkQP, DoubleNegation, "shared/DoubleNegation.sksl") +SKSL_TEST(GPU_ES3, DoWhileControlFlow, "shared/DoWhileControlFlow.sksl") +SKSL_TEST(CPU + GPU + SkQP, EmptyBlocksES2, "shared/EmptyBlocksES2.sksl") +SKSL_TEST(GPU_ES3, EmptyBlocksES3, "shared/EmptyBlocksES3.sksl") +SKSL_TEST(CPU + GPU + SkQP, ForLoopControlFlow, "shared/ForLoopControlFlow.sksl") +SKSL_TEST(CPU + GPU + SkQP, FunctionAnonymousParameters, "shared/FunctionAnonymousParameters.sksl") +SKSL_TEST(CPU + GPU + SkQP, FunctionArgTypeMatch, "shared/FunctionArgTypeMatch.sksl") +SKSL_TEST(CPU + GPU + SkQP, FunctionReturnTypeMatch, "shared/FunctionReturnTypeMatch.sksl") +SKSL_TEST(CPU + GPU + SkQP, Functions, "shared/Functions.sksl") +SKSL_TEST(CPU + GPU + SkQP, FunctionPrototype, "shared/FunctionPrototype.sksl") +SKSL_TEST(CPU + GPU + SkQP, GeometricIntrinsics, "shared/GeometricIntrinsics.sksl") +SKSL_TEST(CPU + GPU + SkQP, HelloWorld, "shared/HelloWorld.sksl") +SKSL_TEST(CPU + GPU + SkQP, Hex, "shared/Hex.sksl") +SKSL_TEST(GPU_ES3, HexUnsigned, "shared/HexUnsigned.sksl") +SKSL_TEST(CPU + GPU + SkQP, InoutParameters, "shared/InoutParameters.sksl") +SKSL_TEST(CPU + GPU + SkQP, InoutParamsAreDistinct, "shared/InoutParamsAreDistinct.sksl") +SKSL_TEST(CPU + GPU + SkQP, Matrices, "shared/Matrices.sksl") +SKSL_TEST(GPU_ES3, MatricesNonsquare, "shared/MatricesNonsquare.sksl") +// TODO(skia:12443) These tests actually don't work on MANY devices. The GLSL SkQP suite +// does a terrible job of enforcing this rule. We still test them on CPU. +SKSL_TEST(CPU, MatrixConstructorsES2, "shared/MatrixConstructorsES2.sksl") +SKSL_TEST(CPU_ES3, MatrixConstructorsES3, "shared/MatrixConstructorsES3.sksl") +SKSL_TEST(CPU + GPU + SkQP, MatrixEquality, "shared/MatrixEquality.sksl") +SKSL_TEST(CPU + GPU + SkQP, MatrixScalarMath, "shared/MatrixScalarMath.sksl") +SKSL_TEST(CPU + GPU + SkQP, MatrixToVectorCast, "shared/MatrixToVectorCast.sksl") +SKSL_TEST(CPU + GPU + SkQP, MultipleAssignments, "shared/MultipleAssignments.sksl") +SKSL_TEST(CPU + GPU + SkQP, NumberCasts, "shared/NumberCasts.sksl") +SKSL_TEST(CPU + GPU + SkQP, OperatorsES2, "shared/OperatorsES2.sksl") +SKSL_TEST(GPU_ES3, OperatorsES3, "shared/OperatorsES3.sksl") +SKSL_TEST(CPU + GPU + SkQP, Ossfuzz36852, "shared/Ossfuzz36852.sksl") +SKSL_TEST(CPU + GPU + SkQP, OutParams, "shared/OutParams.sksl") +SKSL_TEST(CPU + GPU + SkQP, OutParamsAreDistinct, "shared/OutParamsAreDistinct.sksl") +SKSL_TEST(CPU + GPU + SkQP, OutParamsAreDistinctFromGlobal, "shared/OutParamsAreDistinctFromGlobal.sksl") +SKSL_TEST(CPU + GPU + SkQP, OutParamsTricky, "shared/OutParamsTricky.sksl") +SKSL_TEST(CPU + GPU + SkQP, ResizeMatrix, "shared/ResizeMatrix.sksl") +SKSL_TEST(GPU_ES3, ResizeMatrixNonsquare, "shared/ResizeMatrixNonsquare.sksl") +SKSL_TEST(CPU + GPU + SkQP, ReturnsValueOnEveryPathES2, "shared/ReturnsValueOnEveryPathES2.sksl") +SKSL_TEST(GPU_ES3, ReturnsValueOnEveryPathES3, "shared/ReturnsValueOnEveryPathES3.sksl") +SKSL_TEST(CPU + GPU + SkQP, ScalarConversionConstructorsES2, "shared/ScalarConversionConstructorsES2.sksl") +SKSL_TEST(GPU_ES3, ScalarConversionConstructorsES3, "shared/ScalarConversionConstructorsES3.sksl") +SKSL_TEST(CPU + GPU + SkQP, ScopedSymbol, "shared/ScopedSymbol.sksl") +SKSL_TEST(CPU + GPU + SkQP, StackingVectorCasts, "shared/StackingVectorCasts.sksl") +SKSL_TEST(CPU + GPU + SkQP, StaticIf, "shared/StaticIf.sksl") +SKSL_TEST(GPU_ES3, StaticSwitch, "shared/StaticSwitch.sksl") +SKSL_TEST(CPU + GPU + SkQP, StructArrayFollowedByScalar, "shared/StructArrayFollowedByScalar.sksl") +SKSL_TEST(CPU + GPU + SkQP, StructsInFunctions, "shared/StructsInFunctions.sksl") +SKSL_TEST(CPU + GPU + SkQP, Switch, "shared/Switch.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwitchDefaultOnly, "shared/SwitchDefaultOnly.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwitchWithFallthrough, "shared/SwitchWithFallthrough.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwitchWithLoops, "shared/SwitchWithLoops.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwizzleBoolConstants, "shared/SwizzleBoolConstants.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwizzleByConstantIndex, "shared/SwizzleByConstantIndex.sksl") +SKSL_TEST(GPU_ES3, SwizzleByIndex, "shared/SwizzleByIndex.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwizzleConstants, "shared/SwizzleConstants.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwizzleLTRB, "shared/SwizzleLTRB.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwizzleOpt, "shared/SwizzleOpt.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwizzleScalar, "shared/SwizzleScalar.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwizzleScalarBool, "shared/SwizzleScalarBool.sksl") +SKSL_TEST(CPU + GPU + SkQP, SwizzleScalarInt, "shared/SwizzleScalarInt.sksl") +SKSL_TEST(CPU + GPU + SkQP, TernaryAsLValueEntirelyFoldable, "shared/TernaryAsLValueEntirelyFoldable.sksl") +SKSL_TEST(CPU + GPU + SkQP, TernaryAsLValueFoldableTest, "shared/TernaryAsLValueFoldableTest.sksl") +SKSL_TEST(CPU + GPU + SkQP, TernaryExpression, "shared/TernaryExpression.sksl") +SKSL_TEST(CPU + GPU + SkQP, UnaryPositiveNegative, "shared/UnaryPositiveNegative.sksl") +SKSL_TEST(CPU + GPU + SkQP, UniformArray, "shared/UniformArray.sksl") +SKSL_TEST(CPU + GPU + SkQP, UnusedVariables, "shared/UnusedVariables.sksl") +SKSL_TEST(CPU + GPU + SkQP, VectorConstructors, "shared/VectorConstructors.sksl") +SKSL_TEST(CPU + GPU + SkQP, VectorToMatrixCast, "shared/VectorToMatrixCast.sksl") +SKSL_TEST(CPU + GPU + SkQP, VectorScalarMath, "shared/VectorScalarMath.sksl") +SKSL_TEST(GPU_ES3, WhileLoopControlFlow, "shared/WhileLoopControlFlow.sksl") diff --git a/third_party/skia/tests/SkSLTypeTest.cpp b/third_party/skia/tests/SkSLTypeTest.cpp index 42048b947051..e64f8621acb9 100644 --- a/third_party/skia/tests/SkSLTypeTest.cpp +++ b/third_party/skia/tests/SkSLTypeTest.cpp @@ -5,14 +5,18 @@ * found in the LICENSE file. */ -#include - #include "include/sksl/SkSLErrorReporter.h" -#include "src/gpu/GrCaps.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLContext.h" #include "src/sksl/SkSLMangler.h" +#include "src/sksl/ir/SkSLType.h" #include "tests/Test.h" +#include +#include +#include + DEF_TEST(SkSLTypeLimits, r) { GrShaderCaps caps; SkSL::TestingOnly_AbortErrorReporter errors; diff --git a/third_party/skia/tests/SkScalerCacheTest.cpp b/third_party/skia/tests/SkScalerCacheTest.cpp index e69e0942f1ae..dbc5bcf6a2e3 100644 --- a/third_party/skia/tests/SkScalerCacheTest.cpp +++ b/third_party/skia/tests/SkScalerCacheTest.cpp @@ -69,8 +69,8 @@ DEF_TEST(SkScalerCacheMultiThread, Reporter) { accepted.ensureSize(glyphCount); rejected.setSource(local); - accepted.startBitmapDevice(rejected.source(), {0, 0}, SkMatrix::I(), - scalerCache.roundingSpec()); + accepted.startDevicePositioning( + rejected.source(), SkMatrix::I(), scalerCache.roundingSpec()); scalerCache.prepareForMaskDrawing(&accepted, &rejected); rejected.flipRejectsToSource(); accepted.reset(); diff --git a/third_party/skia/tests/SkTBlockListTest.cpp b/third_party/skia/tests/SkTBlockListTest.cpp index 0032453f545f..bb0c73e5835e 100644 --- a/third_party/skia/tests/SkTBlockListTest.cpp +++ b/third_party/skia/tests/SkTBlockListTest.cpp @@ -48,6 +48,8 @@ class TBlockListTestAccess { static size_t TotalSize(SkTBlockList& list) { return list.fAllocator->totalSize(); } + + static constexpr size_t kAddressAlign = SkBlockAllocator::kAddressAlign; }; // Checks that the allocator has the correct count, etc and that the element IDs are correct. @@ -300,6 +302,20 @@ static void run_reserve_test(skiatest::Reporter* reporter) { REPORTER_ASSERT(reporter, 0 == C::gInstCnt); } +void run_large_increment_test(skiatest::Reporter* reporter) { + static constexpr size_t kIncrementMax = std::numeric_limits::max(); + // Pick an item count such that count*sizeof(C)/max align exceeds uint16_t max. + int itemCount = (int) (sizeof(C) * kIncrementMax / TBlockListTestAccess::kAddressAlign) + 1; + SkTBlockList largeIncrement(itemCount); + // Trigger a scratch block allocation, which given default fixed growth policy, will be one + // block increment. + largeIncrement.reserve(10); + size_t scratchSize = TBlockListTestAccess::ScratchBlockSize(largeIncrement); + // SkBlockAllocator aligns large blocks to 4k + size_t expected = SkAlignTo(kIncrementMax * TBlockListTestAccess::kAddressAlign, (1 << 12)); + REPORTER_ASSERT(reporter, scratchSize == expected); +} + DEF_TEST(SkTBlockList, reporter) { // Test combinations of allocators with and without stack storage and with different block sizes SkTBlockList a1(1); @@ -335,4 +351,6 @@ DEF_TEST(SkTBlockList, reporter) { run_concat_trivial_test<5, 1>(reporter, 50, 10); run_concat_trivial_test<1, 5>(reporter, 10, 50); run_concat_trivial_test<5, 5>(reporter, 100, 100); + + run_large_increment_test(reporter); } diff --git a/third_party/skia/tests/SkVMDebugTracePlayerTest.cpp b/third_party/skia/tests/SkVMDebugTracePlayerTest.cpp index c5ec95f87d8a..f070462dde94 100644 --- a/third_party/skia/tests/SkVMDebugTracePlayerTest.cpp +++ b/third_party/skia/tests/SkVMDebugTracePlayerTest.cpp @@ -93,6 +93,19 @@ static std::string make_global_vars_string(const SkSL::SkVMDebugTrace& trace, return make_vars_string(trace, player.getGlobalVariables()); } +DEF_TEST(SkSLTracePlayerCanResetToNull, r) { + SkSL::SkVMDebugTracePlayer player; + player.reset(nullptr); + + // We should be in a reasonable state. + REPORTER_ASSERT(r, player.cursor() == 0); + REPORTER_ASSERT(r, player.getCurrentLine() == -1); + REPORTER_ASSERT(r, player.traceHasCompleted()); + REPORTER_ASSERT(r, player.getCallStack().empty()); + REPORTER_ASSERT(r, player.getGlobalVariables().empty()); + REPORTER_ASSERT(r, player.getLineNumbersReached().empty()); +} + DEF_TEST(SkSLTracePlayerHelloWorld, r) { sk_sp trace = make_trace(r, R"( // Line 1 @@ -266,7 +279,7 @@ int main() { // Line 6 SkSL::SkVMDebugTracePlayer player; player.reset(trace); - REPORTER_ASSERT(r, player.getLineNumbersReached() == LineNumberMap({{3, 3}, {4, 1}, {7, 1}, + REPORTER_ASSERT(r, player.getLineNumbersReached() == LineNumberMap({{3, 1}, {4, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1}, {12, 1}})); player.step(); @@ -291,19 +304,9 @@ int main() { // Line 6 REPORTER_ASSERT(r, make_local_vars_string(*trace, player) == ""); player.step(); - REPORTER_ASSERT(r, player.getCurrentLine() == 3); - REPORTER_ASSERT(r, make_stack_string(*trace, player) == "int main() -> float func()"); - REPORTER_ASSERT(r, make_local_vars_string(*trace, player) == "##x = 4"); - player.step(); - - REPORTER_ASSERT(r, player.getCurrentLine() == 3); - REPORTER_ASSERT(r, make_stack_string(*trace, player) == "int main() -> float func()"); - REPORTER_ASSERT(r, make_local_vars_string(*trace, player) == "##y = 5, x = 4"); - player.step(); - REPORTER_ASSERT(r, player.getCurrentLine() == 4); REPORTER_ASSERT(r, make_stack_string(*trace, player) == "int main() -> float func()"); - REPORTER_ASSERT(r, make_local_vars_string(*trace, player) == "##z = 6, y = 5, x = 4"); + REPORTER_ASSERT(r, make_local_vars_string(*trace, player) == "##z = 6, ##y = 5, ##x = 4"); player.step(); REPORTER_ASSERT(r, player.getCurrentLine() == 9); @@ -568,7 +571,6 @@ int main() { // Line 9 REPORTER_ASSERT(r, make_global_vars_string(*trace, player) == "##[main].result = 44"); } - DEF_TEST(SkSLTracePlayerVariableScope, r) { sk_sp trace = make_trace(r, R"( // Line 1 @@ -645,6 +647,68 @@ int main() { // Line 2 REPORTER_ASSERT(r, player.traceHasCompleted()); } +DEF_TEST(SkSLTracePlayerNestedBlocks, r) { + sk_sp trace = make_trace(r, +R"( // Line 1 +int main() { // Line 2 + {{{{{{{ // Line 3 + int a, b; // Line 4 + }}}}}}} // Line 5 + return 0; // Line 6 +} +)"); + SkSL::SkVMDebugTracePlayer player; + player.reset(trace); + player.step(); + + REPORTER_ASSERT(r, player.getCurrentLine() == 4); + player.step(); + + REPORTER_ASSERT(r, player.getCurrentLine() == 6); + player.step(); + + REPORTER_ASSERT(r, player.traceHasCompleted()); +} + +DEF_TEST(SkSLTracePlayerSwitchStatement, r) { + sk_sp trace = make_trace(r, +R"( // Line 1 +int main() { // Line 2 + int x = 2; // Line 3 + switch (x) { // Line 4 + case 1: // Line 5 + break; // Line 6 + case 2: // Line 7 + ++x; // Line 8 + case 3: // Line 9 + break; // Line 10 + case 4: // Line 11 + } // Line 12 + return x; // Line 13 +} +)"); + SkSL::SkVMDebugTracePlayer player; + player.reset(trace); + player.step(); + + REPORTER_ASSERT(r, player.getCurrentLine() == 3); + player.step(); + + REPORTER_ASSERT(r, player.getCurrentLine() == 4); + player.step(); + + REPORTER_ASSERT(r, player.getCurrentLine() == 8); + player.step(); + + REPORTER_ASSERT(r, player.getCurrentLine() == 10); + player.step(); + + REPORTER_ASSERT(r, player.getCurrentLine() == 13); + player.step(); + + REPORTER_ASSERT(r, player.traceHasCompleted()); +} + DEF_TEST(SkSLTracePlayerBreakpoint, r) { sk_sp trace = make_trace(r, R"( // Line 1 diff --git a/third_party/skia/tests/SkVMTest.cpp b/third_party/skia/tests/SkVMTest.cpp index f3b52751f311..b2aeae28f39e 100644 --- a/third_party/skia/tests/SkVMTest.cpp +++ b/third_party/skia/tests/SkVMTest.cpp @@ -10,7 +10,7 @@ #include "src/core/SkCpu.h" #include "src/core/SkMSAN.h" #include "src/core/SkVM.h" -#include "src/gpu/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderCaps.h" #include "src/sksl/SkSLCompiler.h" #include "src/sksl/codegen/SkSLVMCodeGenerator.h" #include "src/sksl/tracing/SkVMDebugTrace.h" diff --git a/third_party/skia/tests/Skbug6653.cpp b/third_party/skia/tests/Skbug6653.cpp index 388463481c92..bedb1851b25f 100644 --- a/third_party/skia/tests/Skbug6653.cpp +++ b/third_party/skia/tests/Skbug6653.cpp @@ -10,7 +10,7 @@ #include "include/core/SkSurface.h" #include "include/core/SkTypes.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/Test.h" static SkBitmap read_pixels(sk_sp surface, SkColor initColor) { diff --git a/third_party/skia/tests/SpecialImageTest.cpp b/third_party/skia/tests/SpecialImageTest.cpp index 90f233a30420..4145c85c4527 100644 --- a/third_party/skia/tests/SpecialImageTest.cpp +++ b/third_party/skia/tests/SpecialImageTest.cpp @@ -7,6 +7,7 @@ #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkPixmap.h" #include "include/core/SkSurface.h" @@ -15,11 +16,11 @@ #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkSpecialImage.h" #include "src/core/SkSpecialSurface.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" #include "tests/Test.h" // This test creates backing resources exactly sized to [kFullSize x kFullSize]. diff --git a/third_party/skia/tests/SpecialSurfaceTest.cpp b/third_party/skia/tests/SpecialSurfaceTest.cpp index 35a1a0aea514..6c87107bc841 100644 --- a/third_party/skia/tests/SpecialSurfaceTest.cpp +++ b/third_party/skia/tests/SpecialSurfaceTest.cpp @@ -10,9 +10,9 @@ #include "include/gpu/GrDirectContext.h" #include "src/core/SkSpecialImage.h" #include "src/core/SkSpecialSurface.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" #include "tests/Test.h" class TestingSpecialSurfaceAccess { diff --git a/third_party/skia/tests/SurfaceDrawContextTest.cpp b/third_party/skia/tests/SurfaceDrawContextTest.cpp index 3b95318d32b7..49286dcd2c62 100644 --- a/third_party/skia/tests/SurfaceDrawContextTest.cpp +++ b/third_party/skia/tests/SurfaceDrawContextTest.cpp @@ -9,11 +9,12 @@ #include "tests/Test.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" static const int kSize = 64; diff --git a/third_party/skia/tests/SurfaceSemaphoreTest.cpp b/third_party/skia/tests/SurfaceSemaphoreTest.cpp index 996b241ea6a7..34eeeb5cc964 100644 --- a/third_party/skia/tests/SurfaceSemaphoreTest.cpp +++ b/third_party/skia/tests/SurfaceSemaphoreTest.cpp @@ -7,26 +7,27 @@ #include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkSurface.h" #include "include/gpu/GrBackendSemaphore.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" #ifdef SK_GL -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #endif #ifdef SK_VULKAN #include "include/gpu/vk/GrVkTypes.h" #include "include/gpu/vk/GrVkVulkan.h" -#include "src/gpu/vk/GrVkCommandPool.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkCommandPool.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #ifdef VK_USE_PLATFORM_WIN32_KHR // windows wants to define this as CreateSemaphoreA or CreateSemaphoreW diff --git a/third_party/skia/tests/SurfaceTest.cpp b/third_party/skia/tests/SurfaceTest.cpp index bd04fb3d240a..caf3166030ae 100644 --- a/third_party/skia/tests/SurfaceTest.cpp +++ b/third_party/skia/tests/SurfaceTest.cpp @@ -5,6 +5,7 @@ * found in the LICENSE file. */ +#include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkData.h" #include "include/core/SkOverdrawCanvas.h" @@ -18,18 +19,19 @@ #include "src/core/SkCanvasPriv.h" #include "src/core/SkDevice.h" #include "src/core/SkUtils.h" -#include "src/gpu/BaseDevice.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrGpuResourcePriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/SurfaceFillContext.h" +#include "src/gpu/ganesh/BaseDevice.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_Gpu.h" #include "src/image/SkSurface_Gpu.h" #include "tests/Test.h" +#include "tests/TestHarness.h" #include "tools/ToolUtils.h" #include "tools/gpu/BackendSurfaceFactory.h" #include "tools/gpu/ManagedBackendTexture.h" @@ -706,16 +708,10 @@ static sk_sp create_gpu_surface_backend_texture(GrDirectContext* dCon // // Requesting a much larger backend texture size seems to prevent it from reusing the same // memory and avoids the issue. -#if defined(SK_BUILD_FOR_SKQP) - const int kWidth = 10; - const int kHeight = 10; -#else - const int kWidth = 100; - const int kHeight = 100; -#endif + const SkISize kSize = CurrentTestHarnessIsSkQP() ? SkISize{10, 10} : SkISize{100, 100}; auto surf = sk_gpu_test::MakeBackendTextureSurface(dContext, - {kWidth, kHeight}, + kSize, kTopLeft_GrSurfaceOrigin, sampleCnt, kRGBA_8888_SkColorType); diff --git a/third_party/skia/tests/Test.h b/third_party/skia/tests/Test.h index 87b337293830..df64cce595e7 100644 --- a/third_party/skia/tests/Test.h +++ b/third_party/skia/tests/Test.h @@ -13,7 +13,7 @@ #include "tools/Registry.h" #include "tools/gpu/GrContextFactory.h" -namespace skgpu { class Context; } +namespace skgpu::graphite { class Context; } namespace skiatest { @@ -99,7 +99,7 @@ struct Test { } }; -typedef sk_tools::Registry TestRegistry; +using TestRegistry = sk_tools::Registry; /* Use the following macros to make use of the skiatest classes, e.g. @@ -137,7 +137,7 @@ void RunWithGPUTestContexts(GrContextTestFn*, GrContextTypeFilterFn*, Reporter*, namespace graphite { -typedef void GraphiteTestFn(Reporter*, skgpu::Context*); +typedef void GraphiteTestFn(Reporter*, skgpu::graphite::Context*); void RunWithGraphiteTestContexts(GraphiteTestFn*, Reporter*); @@ -184,20 +184,15 @@ class Timer { } \ } while (0) -#define DEF_TEST(name, reporter) \ - static void test_##name(skiatest::Reporter*, const GrContextOptions&); \ - skiatest::TestRegistry name##TestRegistry( \ - skiatest::Test(#name, /*gpu*/ false, /*graphite*/ false, test_##name)); \ +#define DEF_CONDITIONAL_TEST(name, reporter, condition) \ + static void test_##name(skiatest::Reporter*, const GrContextOptions&); \ + skiatest::TestRegistry name##TestRegistry( \ + skiatest::Test(#name, /*gpu=*/false, /*graphite=*/false, test_##name), condition); \ void test_##name(skiatest::Reporter* reporter, const GrContextOptions&) -#define DEF_TEST_DISABLED(name, reporter) \ - static void test_##name(skiatest::Reporter*, const GrContextOptions&); \ - skiatest::TestRegistry name##TestRegistry( \ - skiatest::Test(#name, /*gpu*/ false, /*graphite*/ false, test_##name)); \ - void test_##name(skiatest::Reporter* reporter, const GrContextOptions&) { \ - /* SkDebugf("Disabled:"#name "\n"); */ \ - } \ - void disabled_##name(skiatest::Reporter* reporter, const GrContextOptions&) +#define DEF_TEST(name, reporter) DEF_CONDITIONAL_TEST(name, reporter, true) + +#define DEF_TEST_DISABLED(name, reporter) DEF_CONDITIONAL_TEST(name, reporter, false) #ifdef SK_BUILD_FOR_UNIX #define UNIX_ONLY_TEST DEF_TEST @@ -212,36 +207,49 @@ class Timer { test_##name(reporter); \ } \ skiatest::TestRegistry name##TestRegistry( \ - skiatest::Test(#name, /*gpu*/ false, /*graphite*/ true, test_graphite_##name)); \ + skiatest::Test(#name, /*gpu=*/false, /*graphite=*/true, test_graphite_##name)); \ void test_##name(skiatest::Reporter* reporter) #define DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, reporter, graphite_context) \ - static void test_##name(skiatest::Reporter*, skgpu::Context*); \ + static void test_##name(skiatest::Reporter*, skgpu::graphite::Context*); \ static void test_graphite_contexts_##name(skiatest::Reporter* _reporter, \ const GrContextOptions& /*unused*/) { \ skiatest::graphite::RunWithGraphiteTestContexts(test_##name, _reporter); \ } \ skiatest::TestRegistry name##TestRegistry( \ - skiatest::Test(#name, /*gpu*/ false, /*graphite*/ true, \ + skiatest::Test(#name, /*gpu=*/false, /*graphite=*/true, \ test_graphite_contexts_##name)); \ - void test_##name(skiatest::Reporter* reporter, skgpu::Context* graphite_context) + void test_##name(skiatest::Reporter* reporter, skgpu::graphite::Context* graphite_context) #define DEF_GPUTEST(name, reporter, options) \ static void test_##name(skiatest::Reporter*, const GrContextOptions&); \ skiatest::TestRegistry name##TestRegistry( \ - skiatest::Test(#name, /*gpu*/ true, /*graphite*/ false, test_##name)); \ + skiatest::Test(#name, /*gpu=*/true, /*graphite=*/false, test_##name)); \ void test_##name(skiatest::Reporter* reporter, const GrContextOptions& options) -#define DEF_GPUTEST_FOR_CONTEXTS(name, context_filter, reporter, context_info, options_filter) \ +#define DEF_CONDITIONAL_GPUTEST_FOR_CONTEXTS(name, context_filter, reporter, context_info, \ + options_filter, condition) \ static void test_##name(skiatest::Reporter*, const sk_gpu_test::ContextInfo&); \ static void test_gpu_contexts_##name(skiatest::Reporter* reporter, \ const GrContextOptions& options) { \ skiatest::RunWithGPUTestContexts(test_##name, context_filter, reporter, options); \ } \ skiatest::TestRegistry name##TestRegistry( \ - skiatest::Test(#name, /*gpu*/ true, /*graphite*/ false, test_gpu_contexts_##name, options_filter)); \ + skiatest::Test(#name, /*gpu=*/true, /*graphite=*/false, test_gpu_contexts_##name, \ + options_filter), condition); \ void test_##name(skiatest::Reporter* reporter, const sk_gpu_test::ContextInfo& context_info) +#define DEF_CONDITIONAL_GPUTEST_FOR_ALL_CONTEXTS(name, reporter, context_info, condition) \ + DEF_CONDITIONAL_GPUTEST_FOR_CONTEXTS(name, nullptr, reporter, context_info, nullptr, \ + condition) +#define DEF_CONDITIONAL_GPUTEST_FOR_RENDERING_CONTEXTS(name, reporter, context_info, condition) \ + DEF_CONDITIONAL_GPUTEST_FOR_CONTEXTS(name, \ + sk_gpu_test::GrContextFactory::IsRenderingContext, \ + reporter, context_info, nullptr, condition) + +#define DEF_GPUTEST_FOR_CONTEXTS(name, context_filter, reporter, context_info, options_filter) \ + DEF_CONDITIONAL_GPUTEST_FOR_CONTEXTS(name, context_filter, reporter, context_info, \ + options_filter, true) #define DEF_GPUTEST_FOR_ALL_CONTEXTS(name, reporter, context_info) \ DEF_GPUTEST_FOR_CONTEXTS(name, nullptr, reporter, context_info, nullptr) diff --git a/third_party/skia/tests/TestHarness.cpp b/third_party/skia/tests/TestHarness.cpp new file mode 100644 index 000000000000..777be7e98c8a --- /dev/null +++ b/third_party/skia/tests/TestHarness.cpp @@ -0,0 +1,12 @@ +/* + * Copyright 2022 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "tests/TestHarness.h" + +bool CurrentTestHarnessIsSkQP() { + return CurrentTestHarness() == TestHarness::kSkQP; +} diff --git a/third_party/skia/tests/TestHarness.h b/third_party/skia/tests/TestHarness.h new file mode 100644 index 000000000000..349ef7e4bdda --- /dev/null +++ b/third_party/skia/tests/TestHarness.h @@ -0,0 +1,24 @@ +/* + * Copyright 2022 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef TestHarness_DEFINED +#define TestHarness_DEFINED + +/** + * Identifies the currently-running test harness. + */ +enum class TestHarness { + kDM, + kFM, + kListGpuUnitTests, + kSkQP, + kWasmGMTests, +}; +TestHarness CurrentTestHarness(); +bool CurrentTestHarnessIsSkQP(); + +#endif diff --git a/third_party/skia/tests/TestTest.cpp b/third_party/skia/tests/TestTest.cpp index a68c60d85362..226f0adbefb3 100644 --- a/third_party/skia/tests/TestTest.cpp +++ b/third_party/skia/tests/TestTest.cpp @@ -15,6 +15,16 @@ DEF_TEST(TestNormal, reporter) { REPORTER_ASSERT(reporter, reporter); } +// This is an example of a conditional test with a true condition. +DEF_CONDITIONAL_TEST(TestTrueCondition, reporter, 1 == 1) { + REPORTER_ASSERT(reporter, reporter); +} + +// This is an example of a conditional test with a false condition. +DEF_CONDITIONAL_TEST(TestFalseCondition, reporter, 1 == 0) { + ERRORF(reporter, "DEF_CONDITIONAL_TEST executed a test with a false condition"); +} + // This is an example of a GPU test that uses GrContextOptions to do the test. DEF_GPUTEST(TestGpuFactory, reporter, factory) { REPORTER_ASSERT(reporter, reporter); @@ -40,3 +50,27 @@ DEF_GPUTEST_FOR_MOCK_CONTEXT(TestMockContext, reporter, ctxInfo) { REPORTER_ASSERT(reporter, reporter); REPORTER_ASSERT(reporter, ctxInfo.directContext()); } + +// Conditional GPU tests will only execute if the provided condition parameter is true. +DEF_CONDITIONAL_GPUTEST_FOR_ALL_CONTEXTS(TestGpuAllContextsWithTrueCondition, + reporter, ctxInfo, true) { + REPORTER_ASSERT(reporter, reporter); + REPORTER_ASSERT(reporter, ctxInfo.directContext()); +} + +DEF_CONDITIONAL_GPUTEST_FOR_ALL_CONTEXTS(TestGpuAllContextsWithFalseCondition, + reporter, ctxInfo, false) { + ERRORF(reporter, "DEF_CONDITIONAL_GPUTEST_FOR_ALL_CONTEXTS ran with a false condition"); +} + +DEF_CONDITIONAL_GPUTEST_FOR_RENDERING_CONTEXTS(TestGpuRenderingContextsWithTrueCondition, + reporter, ctxInfo, true) { + REPORTER_ASSERT(reporter, reporter); + REPORTER_ASSERT(reporter, ctxInfo.directContext()); +} + +DEF_CONDITIONAL_GPUTEST_FOR_RENDERING_CONTEXTS(TestGpuRenderingContextsWithFalseCondition, + reporter, ctxInfo, false) { + ERRORF(reporter, "DEF_CONDITIONAL_GPUTEST_FOR_RENDERING_CONTEXTS ran with a false condition"); +} + diff --git a/third_party/skia/tests/TestUtils.cpp b/third_party/skia/tests/TestUtils.cpp index 08ac867962bc..88fb2509ec20 100644 --- a/third_party/skia/tests/TestUtils.cpp +++ b/third_party/skia/tests/TestUtils.cpp @@ -7,19 +7,21 @@ #include "tests/TestUtils.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkStream.h" #include "include/encode/SkPngEncoder.h" #include "include/utils/SkBase64.h" #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkUtils.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceContext.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceContext.h" void TestReadPixels(skiatest::Reporter* reporter, GrDirectContext* dContext, diff --git a/third_party/skia/tests/TestUtils.h b/third_party/skia/tests/TestUtils.h index f36f74caefcb..882ef4576fee 100644 --- a/third_party/skia/tests/TestUtils.h +++ b/third_party/skia/tests/TestUtils.h @@ -9,7 +9,7 @@ #define TestUtils_DEFINED #include "include/core/SkBitmap.h" -#include "src/gpu/GrDataUtils.h" +#include "src/gpu/ganesh/GrDataUtils.h" #include "tests/Test.h" namespace skgpu { class SurfaceContext; } diff --git a/third_party/skia/tests/TextBlobCacheTest.cpp b/third_party/skia/tests/TextBlobCacheTest.cpp index 24e502a1427c..d0a2c7497417 100644 --- a/third_party/skia/tests/TextBlobCacheTest.cpp +++ b/third_party/skia/tests/TextBlobCacheTest.cpp @@ -20,7 +20,7 @@ #include "include/core/SkTypeface.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkGlyphRun.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tools/fonts/RandomScalerContext.h" #ifdef SK_BUILD_FOR_WIN @@ -29,9 +29,9 @@ #include "tests/Test.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/text/GrAtlasManager.h" -#include "src/gpu/text/GrTextBlobRedrawCoordinator.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/text/GrAtlasManager.h" +#include "src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h" static void draw(SkCanvas* canvas, int redraw, const SkTArray>& blobs) { int yOffset = 0; diff --git a/third_party/skia/tests/TextureBindingsResetTest.cpp b/third_party/skia/tests/TextureBindingsResetTest.cpp index f9220894db68..8f6c7532d6ea 100644 --- a/third_party/skia/tests/TextureBindingsResetTest.cpp +++ b/third_party/skia/tests/TextureBindingsResetTest.cpp @@ -5,12 +5,13 @@ * found in the LICENSE file. */ +#include "include/core/SkColorSpace.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/gl/GrGLDefines.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include "tests/Test.h" #ifdef SK_GL diff --git a/third_party/skia/tests/TextureOpTest.cpp b/third_party/skia/tests/TextureOpTest.cpp index 5ce9fa341f74..fdde6989f640 100644 --- a/third_party/skia/tests/TextureOpTest.cpp +++ b/third_party/skia/tests/TextureOpTest.cpp @@ -7,13 +7,13 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrColorSpaceXform.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/geometry/GrQuad.h" -#include "src/gpu/ops/OpsTask.h" -#include "src/gpu/ops/TextureOp.h" +#include "src/gpu/ganesh/GrColorSpaceXform.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/geometry/GrQuad.h" +#include "src/gpu/ganesh/ops/OpsTask.h" +#include "src/gpu/ganesh/ops/TextureOp.h" #include "tests/Test.h" class OpsTaskTestingAccess { diff --git a/third_party/skia/tests/TextureProxyTest.cpp b/third_party/skia/tests/TextureProxyTest.cpp index dfb4d91e546d..54e5e349b661 100644 --- a/third_party/skia/tests/TextureProxyTest.cpp +++ b/third_party/skia/tests/TextureProxyTest.cpp @@ -13,18 +13,18 @@ #include "include/core/SkImage.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/SkGr.h" #include "tools/gpu/ManagedBackendTexture.h" #ifdef SK_DAWN -#include "src/gpu/dawn/GrDawnGpu.h" +#include "src/gpu/ganesh/dawn/GrDawnGpu.h" #endif int GrProxyProvider::numUniqueKeyProxies_TestOnly() const { diff --git a/third_party/skia/tests/TopoSortTest.cpp b/third_party/skia/tests/TopoSortTest.cpp index b3ab4bdfcad8..3403d72fcb12 100644 --- a/third_party/skia/tests/TopoSortTest.cpp +++ b/third_party/skia/tests/TopoSortTest.cpp @@ -6,7 +6,7 @@ */ #include "include/utils/SkRandom.h" -#include "src/gpu/GrTTopoSort.h" +#include "src/gpu/ganesh/GrTTopoSort.h" #include "tests/Test.h" #include "tools/ToolUtils.h" diff --git a/third_party/skia/tests/TraceMemoryDumpTest.cpp b/third_party/skia/tests/TraceMemoryDumpTest.cpp index efc66a573c21..642d552ab449 100644 --- a/third_party/skia/tests/TraceMemoryDumpTest.cpp +++ b/third_party/skia/tests/TraceMemoryDumpTest.cpp @@ -10,14 +10,14 @@ #include "tests/Test.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrTexture.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrTexture.h" #ifdef SK_GL -#include "src/gpu/gl/GrGLBuffer.h" -#include "src/gpu/gl/GrGLDefines.h" -#include "src/gpu/gl/GrGLGpu.h" -#include "src/gpu/gl/GrGLTextureRenderTarget.h" +#include "src/gpu/ganesh/gl/GrGLBuffer.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" +#include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "src/gpu/ganesh/gl/GrGLTextureRenderTarget.h" #endif /* @@ -97,8 +97,8 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_ownedGLTexture, reporter desc.fOwnership = GrBackendObjectOwnership::kOwned; desc.fSize = SkISize::Make(64, 64); - auto texture = - sk_make_sp(gpu, SkBudgeted::kNo, desc, GrMipmapStatus::kNotAllocated); + auto texture = sk_make_sp( + gpu, SkBudgeted::kNo, desc, GrMipmapStatus::kNotAllocated, /*label=*/""); ValidateMemoryDumps(reporter, dContext, 2, texture->gpuMemorySize(), true /* isOwned */); } @@ -182,8 +182,8 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_ownedGLTextureRenderTarg rtIDs.fMSColorRenderbufferID = 22; rtIDs.fTotalMemorySamplesPerPixel = 9; - auto texRT = sk_make_sp(gpu, SkBudgeted::kYes, 8, texDesc, rtIDs, - GrMipmapStatus::kNotAllocated); + auto texRT = sk_make_sp( + gpu, SkBudgeted::kYes, 8, texDesc, rtIDs, GrMipmapStatus::kNotAllocated, /*label=*/""); ValidateMemoryDumps(reporter, dContext, 3, texRT->gpuMemorySize(), true /* isOwned */); } diff --git a/third_party/skia/tests/TransferPixelsTest.cpp b/third_party/skia/tests/TransferPixelsTest.cpp index 24851c3b7e98..ada7ede26672 100644 --- a/third_party/skia/tests/TransferPixelsTest.cpp +++ b/third_party/skia/tests/TransferPixelsTest.cpp @@ -5,19 +5,20 @@ * found in the LICENSE file. */ -// This is a GPU-backend specific test. It relies on static intializers to work +// This is a GPU-backend specific test. It relies on static initializers to work #include "include/core/SkTypes.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrResourceProvider.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/SkGr.h" #include "tests/Test.h" #include "tests/TestUtils.h" #include "tools/gpu/GrContextFactory.h" diff --git a/third_party/skia/tests/TriangulatingPathRendererTests.cpp b/third_party/skia/tests/TriangulatingPathRendererTests.cpp index 8f4febd08da7..b4b54738fb45 100644 --- a/third_party/skia/tests/TriangulatingPathRendererTests.cpp +++ b/third_party/skia/tests/TriangulatingPathRendererTests.cpp @@ -7,18 +7,19 @@ #include "tests/Test.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkPath.h" #include "include/core/SkRect.h" #include "include/effects/SkGradientShader.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrEagerVertexAllocator.h" -#include "src/gpu/GrStyle.h" -#include "src/gpu/GrUserStencilSettings.h" -#include "src/gpu/effects/GrPorterDuffXferProcessor.h" -#include "src/gpu/geometry/GrAATriangulator.h" -#include "src/gpu/geometry/GrInnerFanTriangulator.h" -#include "src/gpu/geometry/GrStyledShape.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrEagerVertexAllocator.h" +#include "src/gpu/ganesh/GrStyle.h" +#include "src/gpu/ganesh/GrUserStencilSettings.h" +#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" +#include "src/gpu/ganesh/geometry/GrAATriangulator.h" +#include "src/gpu/ganesh/geometry/GrInnerFanTriangulator.h" +#include "src/gpu/ganesh/geometry/GrStyledShape.h" #include "src/shaders/SkShaderBase.h" #include "tools/ToolUtils.h" #include @@ -487,8 +488,8 @@ CreatePathFn kNonEdgeAAPaths[] = { }; #if SK_GPU_V1 -#include "src/gpu/ops/TriangulatingPathRenderer.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/ops/TriangulatingPathRenderer.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" // A simple concave path. Test this with a non-invertible matrix. static SkPath create_path_17() { diff --git a/third_party/skia/tests/UtilsTest.cpp b/third_party/skia/tests/UtilsTest.cpp index ae0d61c850ba..58e38bcc5374 100644 --- a/third_party/skia/tests/UtilsTest.cpp +++ b/third_party/skia/tests/UtilsTest.cpp @@ -198,14 +198,18 @@ DEF_TEST(SkSpan, reporter) { { std::array v = {{1, 2, 3, 4, 5}}; - auto s = SkMakeSpan(v); + auto s = SkMakeSpan(v); // {1, 2, 3, 4, 5} REPORTER_ASSERT(reporter, s[3] == 4); - s[3] = 100; + s[3] = 100; // {1, 2, 3, 100, 5} REPORTER_ASSERT(reporter, s[3] == 100); - auto s1 = s.subspan(1,3); + auto s1 = s.subspan(1,3); // {2, 3, 100} REPORTER_ASSERT(reporter, s1.size() == 3); REPORTER_ASSERT(reporter, s1.front() == 2); REPORTER_ASSERT(reporter, s1.back() == 100); + auto s2 = s.subspan(2); // {3, 100, 5} + REPORTER_ASSERT(reporter, s2.size() == 3); + REPORTER_ASSERT(reporter, s2.front() == 3); + REPORTER_ASSERT(reporter, s2.back() == 5); } { diff --git a/third_party/skia/tests/VkBackendSurfaceTest.cpp b/third_party/skia/tests/VkBackendSurfaceTest.cpp index 8f6b83573e3f..d9ba1ca29833 100644 --- a/third_party/skia/tests/VkBackendSurfaceTest.cpp +++ b/third_party/skia/tests/VkBackendSurfaceTest.cpp @@ -16,12 +16,12 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/vk/GrVkTypes.h" #include "include/gpu/vk/GrVkVulkan.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/GrTextureProxy.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkImageLayout.h" -#include "src/gpu/vk/GrVkTexture.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/GrTextureProxy.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkImageLayout.h" +#include "src/gpu/ganesh/vk/GrVkTexture.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_Gpu.h" #include "src/image/SkImage_GpuBase.h" diff --git a/third_party/skia/tests/VkDrawableTest.cpp b/third_party/skia/tests/VkDrawableTest.cpp index 1a9165a603f3..b2c01e534aa9 100644 --- a/third_party/skia/tests/VkDrawableTest.cpp +++ b/third_party/skia/tests/VkDrawableTest.cpp @@ -18,12 +18,12 @@ #include "include/core/SkSurface.h" #include "include/gpu/GrBackendDrawableInfo.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkInterface.h" -#include "src/gpu/vk/GrVkMemory.h" -#include "src/gpu/vk/GrVkSecondaryCBDrawContext.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkInterface.h" +#include "src/gpu/ganesh/vk/GrVkMemory.h" +#include "src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext_impl.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" diff --git a/third_party/skia/tests/VkHardwareBufferTest.cpp b/third_party/skia/tests/VkHardwareBufferTest.cpp index 9372c2cb1ebb..e448df36932d 100644 --- a/third_party/skia/tests/VkHardwareBufferTest.cpp +++ b/third_party/skia/tests/VkHardwareBufferTest.cpp @@ -20,12 +20,12 @@ #include "include/gpu/vk/GrVkBackendContext.h" #include "include/gpu/vk/GrVkExtensions.h" #include "src/core/SkAutoMalloc.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/gl/GrGLDefines.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" #include "tools/gpu/vk/VkTestUtils.h" diff --git a/third_party/skia/tests/VkWrapTests.cpp b/third_party/skia/tests/VkWrapTests.cpp index 0ac75e3857e0..1ab2321808ff 100644 --- a/third_party/skia/tests/VkWrapTests.cpp +++ b/third_party/skia/tests/VkWrapTests.cpp @@ -15,12 +15,12 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/vk/GrVkTypes.h" #include "include/gpu/vk/GrVkVulkan.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/vk/GrVkCaps.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkMemory.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/vk/GrVkCaps.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkMemory.h" #include "tests/Test.h" #include "tools/gpu/GrContextFactory.h" #include "tools/gpu/ManagedBackendTexture.h" diff --git a/third_party/skia/tests/VkYcbcrSamplerTest.cpp b/third_party/skia/tests/VkYcbcrSamplerTest.cpp index 998446b92d90..03eac3fca299 100644 --- a/third_party/skia/tests/VkYcbcrSamplerTest.cpp +++ b/third_party/skia/tests/VkYcbcrSamplerTest.cpp @@ -10,6 +10,7 @@ #if SK_SUPPORT_GPU && defined(SK_VULKAN) #include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" diff --git a/third_party/skia/tests/WindowRectanglesTest.cpp b/third_party/skia/tests/WindowRectanglesTest.cpp index 0d78b4431d94..148677a0f641 100644 --- a/third_party/skia/tests/WindowRectanglesTest.cpp +++ b/third_party/skia/tests/WindowRectanglesTest.cpp @@ -10,7 +10,7 @@ #include "include/utils/SkRandom.h" #include "src/core/SkRectPriv.h" -#include "src/gpu/GrWindowRectangles.h" +#include "src/gpu/ganesh/GrWindowRectangles.h" static SkIRect next_irect(SkRandom& r) { return {r.nextS(), r.nextS(), r.nextS(), r.nextS()}; diff --git a/third_party/skia/tests/WrappedSurfaceCopyOnWriteTest.cpp b/third_party/skia/tests/WrappedSurfaceCopyOnWriteTest.cpp index 9db0e9325879..9486ee5df147 100644 --- a/third_party/skia/tests/WrappedSurfaceCopyOnWriteTest.cpp +++ b/third_party/skia/tests/WrappedSurfaceCopyOnWriteTest.cpp @@ -11,10 +11,10 @@ #include "include/gpu/GrTypes.h" #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkCanvasPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/GrSurfaceProxy.h" -#include "src/gpu/SurfaceFillContext.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" +#include "src/gpu/ganesh/SurfaceFillContext.h" #include "tests/Test.h" #include "tests/TestUtils.h" #include "tools/gpu/BackendSurfaceFactory.h" diff --git a/third_party/skia/tests/WritePixelsTest.cpp b/third_party/skia/tests/WritePixelsTest.cpp index eedf7f42a938..207a3f14d7a5 100644 --- a/third_party/skia/tests/WritePixelsTest.cpp +++ b/third_party/skia/tests/WritePixelsTest.cpp @@ -13,9 +13,9 @@ #include "include/private/SkColorData.h" #include "include/private/SkImageInfoPriv.h" #include "src/core/SkMathPriv.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrProxyProvider.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrProxyProvider.h" #include "tests/Test.h" #include "tools/gpu/BackendSurfaceFactory.h" diff --git a/third_party/skia/tests/graphite/BUILD.bazel b/third_party/skia/tests/graphite/BUILD.bazel index 86f7e12e9a47..2ef0c0ea82b4 100644 --- a/third_party/skia/tests/graphite/BUILD.bazel +++ b/third_party/skia/tests/graphite/BUILD.bazel @@ -1,34 +1,22 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "BackendTextureTest_src", srcs = ["BackendTextureTest.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include:BackendTexture_hdr", - "//experimental/graphite/include:Context_hdr", - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/include:SkStuff_hdr", - "//experimental/graphite/src:Caps_hdr", - "//experimental/graphite/src:ContextPriv_hdr", - "//experimental/graphite/src:Gpu_hdr", - "//experimental/graphite/src:ResourceTypes_hdr", - "//include/core:SkSurface_hdr", - "//tests:Test_hdr", - ], -) - -generated_cc_atom( - name = "ComboTest_src", - srcs = ["ComboTest.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - "//include/core:SkCanvas_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkSurface_hdr", - "//include/effects:SkGradientShader_hdr", - "//src/core:SkPaintParamsKey_hdr", - "//src/core:SkPaintPriv_hdr", - "//src/core:SkShaderCodeDictionary_hdr", + "//include/gpu/graphite:BackendTexture_hdr", + "//include/gpu/graphite:Context_hdr", + "//include/gpu/graphite:Recorder_hdr", + "//include/gpu/graphite:SkStuff_hdr", + "//src/gpu/graphite:Caps_hdr", + "//src/gpu/graphite:ContextPriv_hdr", + "//src/gpu/graphite:Gpu_hdr", + "//src/gpu/graphite:ResourceTypes_hdr", "//tests:Test_hdr", ], ) @@ -38,30 +26,31 @@ generated_cc_atom( srcs = ["CommandBufferTest.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include:Context_hdr", - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/include/mtl:MtlTypes_hdr", - "//experimental/graphite/src:Buffer_hdr", - "//experimental/graphite/src:Caps_hdr", - "//experimental/graphite/src:CommandBuffer_hdr", - "//experimental/graphite/src:ContextPriv_hdr", - "//experimental/graphite/src:DrawBufferManager_hdr", - "//experimental/graphite/src:DrawWriter_hdr", - "//experimental/graphite/src:GlobalCache_hdr", - "//experimental/graphite/src:Gpu_hdr", - "//experimental/graphite/src:GraphicsPipeline_hdr", - "//experimental/graphite/src:RecorderPriv_hdr", - "//experimental/graphite/src:Renderer_hdr", - "//experimental/graphite/src:ResourceProvider_hdr", - "//experimental/graphite/src:Sampler_hdr", - "//experimental/graphite/src:TextureProxy_hdr", - "//experimental/graphite/src:Texture_hdr", - "//experimental/graphite/src:UniformManager_hdr", - "//experimental/graphite/src/geom:Shape_hdr", - "//experimental/graphite/src/geom:Transform_graphite_hdr", + "//include/gpu/graphite:Context_hdr", + "//include/gpu/graphite:Recorder_hdr", + "//include/gpu/graphite/mtl:MtlTypes_hdr", + "//src/core:SkKeyContext_hdr", "//src/core:SkKeyHelpers_hdr", "//src/core:SkShaderCodeDictionary_hdr", - "//src/core:SkUniformData_hdr", + "//src/gpu/graphite:Buffer_hdr", + "//src/gpu/graphite:Caps_hdr", + "//src/gpu/graphite:CommandBuffer_hdr", + "//src/gpu/graphite:ContextPriv_hdr", + "//src/gpu/graphite:DrawBufferManager_hdr", + "//src/gpu/graphite:DrawGeometry_hdr", + "//src/gpu/graphite:DrawWriter_hdr", + "//src/gpu/graphite:GlobalCache_hdr", + "//src/gpu/graphite:Gpu_hdr", + "//src/gpu/graphite:GraphicsPipeline_hdr", + "//src/gpu/graphite:RecorderPriv_hdr", + "//src/gpu/graphite:Renderer_hdr", + "//src/gpu/graphite:ResourceProvider_hdr", + "//src/gpu/graphite:Sampler_hdr", + "//src/gpu/graphite:TextureProxy_hdr", + "//src/gpu/graphite:Texture_hdr", + "//src/gpu/graphite:UniformManager_hdr", + "//src/gpu/graphite/geom:Shape_hdr", + "//src/gpu/graphite/geom:Transform_graphite_hdr", "//tests:Test_hdr", ], ) @@ -71,8 +60,8 @@ generated_cc_atom( srcs = ["IntersectionTreeTest.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src/geom:IntersectionTree_hdr", "//include/utils:SkRandom_hdr", + "//src/gpu/graphite/geom:IntersectionTree_hdr", "//tests:Test_hdr", ], ) @@ -82,7 +71,7 @@ generated_cc_atom( srcs = ["MaskTest.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src:EnumBitMask_hdr", + "//src/gpu/graphite:EnumBitMask_hdr", "//tests:Test_hdr", ], ) @@ -92,9 +81,9 @@ generated_cc_atom( srcs = ["RecorderTest.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include:Context_hdr", - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/src:Device_hdr", + "//include/gpu/graphite:Context_hdr", + "//include/gpu/graphite:Recorder_hdr", + "//src/gpu/graphite:Device_hdr", "//tests:Test_hdr", ], ) @@ -104,7 +93,7 @@ generated_cc_atom( srcs = ["RectTest.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src/geom:Rect_hdr", + "//src/gpu/graphite/geom:Rect_hdr", "//tests:Test_hdr", ], ) @@ -114,7 +103,7 @@ generated_cc_atom( srcs = ["ShapeTest.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src/geom:Shape_hdr", + "//src/gpu/graphite/geom:Shape_hdr", "//tests:Test_hdr", ], ) @@ -124,44 +113,57 @@ generated_cc_atom( srcs = ["TransformTest.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/src/geom:Transform_graphite_hdr", + "//src/gpu/graphite/geom:Transform_graphite_hdr", "//tests:Test_hdr", ], ) generated_cc_atom( - name = "UniformCacheTest_src", - srcs = ["UniformCacheTest.cpp"], + name = "UniformTest_src", + srcs = ["UniformTest.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include:Context_hdr", - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/src:RecorderPriv_hdr", - "//experimental/graphite/src:UniformCache_hdr", - "//src/core:SkUniformData_hdr", - "//src/core:SkUniform_hdr", + "//include/core:SkPaint_hdr", + "//include/effects:SkGradientShader_hdr", + "//include/gpu/graphite:Recorder_hdr", + "//include/private:SkUniquePaintParamsID_hdr", + "//src/core:SkKeyContext_hdr", + "//src/core:SkKeyHelpers_hdr", + "//src/core:SkPipelineData_hdr", + "//src/core:SkShaderCodeDictionary_hdr", + "//src/gpu/graphite:ContextPriv_hdr", + "//src/gpu/graphite:ContextUtils_hdr", + "//src/gpu/graphite:GlobalCache_hdr", + "//src/gpu/graphite:PaintParams_hdr", + "//src/gpu/graphite:RecorderPriv_hdr", + "//src/gpu/graphite:ResourceProvider_hdr", "//tests:Test_hdr", ], ) generated_cc_atom( - name = "UniformTest_src", - srcs = ["UniformTest.cpp"], + name = "KeyTest_src", + srcs = ["KeyTest.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include:Recorder_hdr", - "//experimental/graphite/src:ContextPriv_hdr", - "//experimental/graphite/src:ContextUtils_hdr", - "//experimental/graphite/src:GlobalCache_hdr", - "//experimental/graphite/src:PaintParams_hdr", - "//experimental/graphite/src:RecorderPriv_hdr", - "//experimental/graphite/src:ResourceProvider_hdr", - "//include/core:SkPaint_hdr", - "//include/effects:SkGradientShader_hdr", - "//include/private:SkUniquePaintParamsID_hdr", - "//src/core:SkKeyHelpers_hdr", + "//src/core:SkPaintParamsKey_hdr", "//src/core:SkShaderCodeDictionary_hdr", - "//src/core:SkUniformData_hdr", + "//src/gpu/graphite:ContextPriv_hdr", + "//tests:Test_hdr", + ], +) + +generated_cc_atom( + name = "PipelineDataCacheTest_src", + srcs = ["PipelineDataCacheTest.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/gpu/graphite:Context_hdr", + "//include/gpu/graphite:Recorder_hdr", + "//src/core:SkPipelineData_hdr", + "//src/core:SkUniform_hdr", + "//src/gpu/graphite:PipelineDataCache_hdr", + "//src/gpu/graphite:RecorderPriv_hdr", "//tests:Test_hdr", ], ) diff --git a/third_party/skia/tests/graphite/BackendTextureTest.cpp b/third_party/skia/tests/graphite/BackendTextureTest.cpp index ca1b2f60a2a6..dadefb0f7657 100644 --- a/third_party/skia/tests/graphite/BackendTextureTest.cpp +++ b/third_party/skia/tests/graphite/BackendTextureTest.cpp @@ -7,18 +7,19 @@ #include "tests/Test.h" -#include "experimental/graphite/include/BackendTexture.h" -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/include/SkStuff.h" -#include "experimental/graphite/src/Caps.h" -#include "experimental/graphite/src/ContextPriv.h" -#include "experimental/graphite/src/Gpu.h" -#include "experimental/graphite/src/ResourceTypes.h" - +#include "include/gpu/graphite/BackendTexture.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Recorder.h" +#include "include/gpu/graphite/SkStuff.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/Gpu.h" +#include "src/gpu/graphite/ResourceTypes.h" + +#include "include/core/SkColorSpace.h" #include "include/core/SkSurface.h" -using namespace skgpu; +using namespace skgpu::graphite; namespace { const SkISize kSize = {16, 16}; diff --git a/third_party/skia/tests/graphite/ComboTest.cpp b/third_party/skia/tests/graphite/ComboTest.cpp deleted file mode 100644 index f2b6b93e3519..000000000000 --- a/third_party/skia/tests/graphite/ComboTest.cpp +++ /dev/null @@ -1,86 +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 "include/core/SkCanvas.h" -#include "include/core/SkSurface.h" -#include "include/effects/SkGradientShader.h" -#include "src/core/SkPaintParamsKey.h" -#include "src/core/SkPaintPriv.h" -#include "src/core/SkShaderCodeDictionary.h" -#include "tests/Test.h" - -namespace { - -sk_sp make_image_shader(int imageWidth, int imageHeight, - SkTileMode xTileMode, SkTileMode yTileMode, - SkColor color) { - auto surface = SkSurface::MakeRasterN32Premul(imageWidth, imageHeight); - SkCanvas *canvas = surface->getCanvas(); - canvas->clear(color); - return surface->makeImageSnapshot()->makeShader(xTileMode, yTileMode, SkSamplingOptions()); -} - -sk_sp make_linear_gradient_shader(SkTileMode tileMode) { - SkPoint pts[2]; - SkColor colors[2] = {SK_ColorRED, SK_ColorBLUE}; - - pts[0].set(0, 0); - pts[1].set(SkIntToScalar(100), 0); - return SkGradientShader::MakeLinear(pts, colors, nullptr, 2, tileMode); -} - -sk_sp make_blend_shader(sk_sp shaderA, - sk_sp shaderB, - SkBlendMode mode) { - return SkShaders::Blend(mode, std::move(shaderA), std::move(shaderB)); -} - -void dump_keys(SkShaderCodeDictionary *dict, const SkPaint &paint) { -#ifdef SK_DEBUG - auto keys = SkPaintPriv::ToKeys(paint, dict, SkBackend::kGraphite); - - for (const auto& k : keys) { - // TODO: we need a better way to assess that key creation succeeded - k->dump(); - } -#endif -} - -} // anonymous namespace - -DEF_GRAPHITE_TEST(ComboTest, r) { - SkShaderCodeDictionary dict; - - { - SkPaint paint; - paint.setBlendMode(SkBlendMode::kLighten); - dump_keys(&dict, paint); - } - - { - SkPaint paint; - paint.setShader(make_image_shader(16, 16, SkTileMode::kClamp, - SkTileMode::kRepeat, SK_ColorRED)); - dump_keys(&dict, paint); - } - - { - SkPaint paint; - paint.setShader(make_linear_gradient_shader(SkTileMode::kClamp)); - dump_keys(&dict, paint); - } - - { - SkPaint paint; - auto shaderA = make_image_shader(16, 16, SkTileMode::kDecal, - SkTileMode::kRepeat, SK_ColorBLUE); - auto shaderB = make_linear_gradient_shader(SkTileMode::kClamp); - paint.setShader(make_blend_shader(std::move(shaderA), std::move(shaderB), - SkBlendMode::kDstIn)); - dump_keys(&dict, paint); - } -} diff --git a/third_party/skia/tests/graphite/CommandBufferTest.cpp b/third_party/skia/tests/graphite/CommandBufferTest.cpp index 969907dbe439..04495fa0ef97 100644 --- a/third_party/skia/tests/graphite/CommandBufferTest.cpp +++ b/third_party/skia/tests/graphite/CommandBufferTest.cpp @@ -7,37 +7,38 @@ #include "tests/Test.h" -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/include/mtl/MtlTypes.h" -#include "experimental/graphite/src/Buffer.h" -#include "experimental/graphite/src/Caps.h" -#include "experimental/graphite/src/CommandBuffer.h" -#include "experimental/graphite/src/ContextPriv.h" -#include "experimental/graphite/src/DrawBufferManager.h" -#include "experimental/graphite/src/DrawWriter.h" -#include "experimental/graphite/src/GlobalCache.h" -#include "experimental/graphite/src/Gpu.h" -#include "experimental/graphite/src/GraphicsPipeline.h" -#include "experimental/graphite/src/RecorderPriv.h" -#include "experimental/graphite/src/Renderer.h" -#include "experimental/graphite/src/ResourceProvider.h" -#include "experimental/graphite/src/Sampler.h" -#include "experimental/graphite/src/Texture.h" -#include "experimental/graphite/src/TextureProxy.h" -#include "experimental/graphite/src/UniformManager.h" -#include "experimental/graphite/src/geom/Shape.h" -#include "experimental/graphite/src/geom/Transform_graphite.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Recorder.h" +#include "include/gpu/graphite/mtl/MtlTypes.h" +#include "src/core/SkKeyContext.h" #include "src/core/SkKeyHelpers.h" #include "src/core/SkShaderCodeDictionary.h" -#include "src/core/SkUniformData.h" +#include "src/gpu/graphite/Buffer.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/CommandBuffer.h" +#include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/DrawBufferManager.h" +#include "src/gpu/graphite/DrawGeometry.h" +#include "src/gpu/graphite/DrawWriter.h" +#include "src/gpu/graphite/GlobalCache.h" +#include "src/gpu/graphite/Gpu.h" +#include "src/gpu/graphite/GraphicsPipeline.h" +#include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/Renderer.h" +#include "src/gpu/graphite/ResourceProvider.h" +#include "src/gpu/graphite/Sampler.h" +#include "src/gpu/graphite/Texture.h" +#include "src/gpu/graphite/TextureProxy.h" +#include "src/gpu/graphite/UniformManager.h" +#include "src/gpu/graphite/geom/Shape.h" +#include "src/gpu/graphite/geom/Transform_graphite.h" #if GRAPHITE_TEST_UTILS // set to 1 if you want to do GPU capture of the commandBuffer #define CAPTURE_COMMANDBUFFER 0 #endif -using namespace skgpu; +using namespace skgpu::graphite; namespace { @@ -62,38 +63,38 @@ class UniformRectDraw final : public RenderStep { return &kSingleton; } - const char* name() const override { return "uniform-rect"; } - const char* vertexSkSL() const override { return "float2 tmpPosition = float2(float(sk_VertexID >> 1), float(sk_VertexID & 1));\n" "float4 devPosition = float4(tmpPosition * scale + translate, 0.0, 1.0);\n"; } - void writeVertices(DrawWriter* writer, - const SkIRect&, - const Transform&, - const Shape&) const override { + void writeVertices(DrawWriter* writer, const DrawGeometry&) const override { // The shape is upload via uniforms, so this just needs to record 4 data-less vertices writer->draw({}, 4); } - sk_sp writeUniforms(Layout layout, - const SkIRect&, - const Transform&, - const Shape& shape) const override { - SkASSERT(shape.isRect()); + void writeUniforms(const DrawGeometry& geom, SkPipelineDataGatherer* gatherer) const override { + SkASSERT(geom.shape().isRect()); + +#ifdef SK_DEBUG + static constexpr int kNumRectUniforms = 2; + static constexpr SkUniform kRectUniforms[kNumRectUniforms] = { + { "scale", SkSLType::kFloat2 }, + { "translate", SkSLType::kFloat2 }, + }; + + UniformExpectationsValidator uev(gatherer, SkMakeSpan(kRectUniforms, kNumRectUniforms)); +#endif + // TODO: A << API for uniforms would be nice, particularly if it could take pre-computed // offsets for each uniform. - auto uniforms = SkUniformData::Make(this->uniforms(), sizeof(float) * 4); - float2 scale = shape.rect().size(); - float2 translate = shape.rect().topLeft(); - memcpy(uniforms->data(), &scale, sizeof(float2)); - memcpy(uniforms->data() + sizeof(float2), &translate, sizeof(float2)); - return uniforms; + gatherer->write(geom.shape().rect().size()); + gatherer->write(geom.shape().rect().topLeft()); } private: - UniformRectDraw() : RenderStep(Flags::kPerformsShading, + UniformRectDraw() : RenderStep("UniformRectDraw", "test-only", + Flags::kPerformsShading, /*uniforms=*/{{"scale", SkSLType::kFloat2}, {"translate", SkSLType::kFloat2}}, PrimitiveType::kTriangleStrip, @@ -117,16 +118,12 @@ class TriangleRectDraw final : public RenderStep { return &kSingleton; } - const char* name() const override { return "triangle-rect"; } - const char* vertexSkSL() const override { return "float4 devPosition = float4(position * scale + translate, 0.0, 1.0);\n"; } - void writeVertices(DrawWriter* writer, - const SkIRect&, - const Transform&, - const Shape& shape) const override { + void writeVertices(DrawWriter* writer, const DrawGeometry& geom) const override { + const Shape& shape = geom.shape(); DrawBufferManager* bufferMgr = writer->bufferManager(); auto [vertexWriter, vertices] = bufferMgr->getVertexWriter(4 * this->vertexStride()); vertexWriter << 0.5f * (shape.rect().left() + 1.f) << 0.5f * (shape.rect().top() + 1.f) @@ -142,19 +139,24 @@ class TriangleRectDraw final : public RenderStep { writer->drawIndexed(vertices, indices, 6); } - sk_sp writeUniforms(Layout layout, - const SkIRect&, - const Transform&, - const Shape&) const override { - auto uniforms = SkUniformData::Make(this->uniforms(), sizeof(float) * 4); - float data[4] = {2.f, 2.f, -1.f, -1.f}; - memcpy(uniforms->data(), data, 4 * sizeof(float)); - return uniforms; + void writeUniforms(const DrawGeometry&, SkPipelineDataGatherer* gatherer) const override { +#ifdef SK_DEBUG + static constexpr int kNumRectUniforms = 2; + static constexpr SkUniform kRectUniforms[kNumRectUniforms] = { + { "scale", SkSLType::kFloat2 }, + { "translate", SkSLType::kFloat2 }, + }; + UniformExpectationsValidator uev(gatherer, SkMakeSpan(kRectUniforms, kNumRectUniforms)); +#endif + + gatherer->write(SkPoint::Make(2.0f, 2.0f)); + gatherer->write(SkPoint::Make(-1.0f, -1.0f)); } private: TriangleRectDraw() - : RenderStep(Flags::kPerformsShading, + : RenderStep("TriangleRectDraw", "test-only", + Flags::kPerformsShading, /*uniforms=*/{{"scale", SkSLType::kFloat2}, {"translate", SkSLType::kFloat2}}, PrimitiveType::kTriangles, @@ -174,18 +176,13 @@ class InstanceRectDraw final : public RenderStep { return &kSingleton; } - const char* name() const override { return "instance-rect"; } - const char* vertexSkSL() const override { return "float2 tmpPosition = float2(float(sk_VertexID >> 1), float(sk_VertexID & 1));\n" "float4 devPosition = float4(tmpPosition * dims + position, 0.0, 1.0);\n"; } - void writeVertices(DrawWriter* writer, - const SkIRect&, - const Transform&, - const Shape& shape) const override { - SkASSERT(shape.isRect()); + void writeVertices(DrawWriter* writer, const DrawGeometry& geom) const override { + SkASSERT(geom.shape().isRect()); DrawBufferManager* bufferMgr = writer->bufferManager(); @@ -196,19 +193,15 @@ class InstanceRectDraw final : public RenderStep { << 2 << 1 << 3; DrawWriter::Instances instances{*writer, {}, indices, 6}; - instances.append(1) << shape.rect().topLeft() << shape.rect().size(); + instances.append(1) << geom.shape().rect().topLeft() << geom.shape().rect().size(); } - sk_sp writeUniforms(Layout, - const SkIRect&, - const Transform&, - const Shape&) const override { - return nullptr; - } + void writeUniforms(const DrawGeometry&, SkPipelineDataGatherer*) const override { } private: InstanceRectDraw() - : RenderStep(Flags::kPerformsShading, + : RenderStep("InstanceRectDraw", "test-only", + Flags::kPerformsShading, /*uniforms=*/{}, PrimitiveType::kTriangles, kTestDepthStencilSettings, @@ -235,13 +228,13 @@ DEF_GRAPHITE_TEST_FOR_CONTEXTS(CommandBufferTest, reporter, context) { gpu->testingOnly_startCapture(); #endif auto recorder = context->makeRecorder(); + SkKeyContext keyContext(recorder.get()); auto resourceProvider = recorder->priv().resourceProvider(); - auto dict = resourceProvider->shaderCodeDictionary(); auto commandBuffer = resourceProvider->createCommandBuffer(); SkISize textureSize = { kTextureWidth, kTextureHeight }; #ifdef SK_METAL - skgpu::mtl::TextureInfo mtlTextureInfo = { + skgpu::graphite::MtlTextureInfo mtlTextureInfo = { 1, 1, 70, // MTLPixelFormatRGBA8Unorm @@ -254,13 +247,18 @@ DEF_GRAPHITE_TEST_FOR_CONTEXTS(CommandBufferTest, reporter, context) { TextureInfo textureInfo; #endif - std::unique_ptr key = CreateKey(dict, - SkBackend::kGraphite, - ShaderCombo::ShaderType::kSolidColor, - SkTileMode::kClamp, - SkBlendMode::kSrc); + SkUniquePaintParamsID uniqueID; + { + auto dict = keyContext.dict(); - auto entry = dict->findOrCreate(std::move(key)); + SkPaintParamsKeyBuilder builder(dict, SkBackend::kGraphite); + + uniqueID = CreateKey(keyContext, + &builder, + ShaderCombo::ShaderType::kSolidColor, + SkTileMode::kClamp, + SkBlendMode::kSrc); + } auto target = sk_sp(new TextureProxy(textureSize, textureInfo)); REPORTER_ASSERT(reporter, target); @@ -272,7 +270,7 @@ DEF_GRAPHITE_TEST_FOR_CONTEXTS(CommandBufferTest, reporter, context) { renderPassDesc.fClearColor = { 1, 0, 0, 1 }; // red target->instantiate(resourceProvider); - DrawBufferManager bufferMgr(resourceProvider, 4); + DrawBufferManager bufferMgr(resourceProvider, gpu->caps()->requiredUniformBufferAlignment()); TextureInfo depthStencilInfo = gpu->caps()->getDefaultDepthStencilTextureInfo(DepthStencilFlags::kDepthStencil, @@ -282,7 +280,7 @@ DEF_GRAPHITE_TEST_FOR_CONTEXTS(CommandBufferTest, reporter, context) { renderPassDesc.fDepthStencilAttachment.fLoadOp = LoadOp::kDiscard; renderPassDesc.fDepthStencilAttachment.fStoreOp = StoreOp::kDiscard; sk_sp depthStencilTexture = - resourceProvider->findOrCreateTexture(textureSize, depthStencilInfo); + resourceProvider->findOrCreateDepthStencilAttachment(textureSize, depthStencilInfo); // Create Sampler -- for now, just to test creation sk_sp sampler = resourceProvider->findOrCreateCompatibleSampler( @@ -301,9 +299,11 @@ DEF_GRAPHITE_TEST_FOR_CONTEXTS(CommandBufferTest, reporter, context) { SkColor4f fColor; }; + SkPipelineDataGatherer gatherer(Layout::kMetal); + auto draw = [&](const RenderStep* step, std::vector draws) { GraphicsPipelineDesc pipelineDesc; - pipelineDesc.setProgram(step, entry->uniqueID()); + pipelineDesc.setProgram(step, uniqueID); drawWriter.newPipelineState(step->primitiveType(), step->vertexStride(), step->instanceStride()); @@ -316,20 +316,26 @@ DEF_GRAPHITE_TEST_FOR_CONTEXTS(CommandBufferTest, reporter, context) { // No set scissor, so use entire render target dimensions static const SkIRect kBounds = SkIRect::MakeWH(kTextureWidth, kTextureHeight); + PaintersDepth depth = DrawOrder::kClearDepth; for (auto d : draws) { + depth = depth.next(); + drawWriter.newDynamicState(); Shape shape(d.fRect); - - auto renderStepUniforms = - step->writeUniforms(Layout::kMetal, kBounds, kIdentity, shape); - if (renderStepUniforms) { - auto [writer, bindInfo] = - bufferMgr.getUniformWriter(renderStepUniforms->dataSize()); - writer.write(renderStepUniforms->data(), renderStepUniforms->dataSize()); + DrawOrder order(depth); + DrawGeometry geom{kIdentity, shape, {shape.bounds(), kBounds}, order, nullptr}; + + SkDEBUGCODE(gatherer.checkReset()); + step->writeUniforms(geom, &gatherer); + if (gatherer.hasUniforms()) { + SkUniformDataBlock renderStepUniforms = gatherer.peekUniformData(); + auto [writer, bindInfo] = bufferMgr.getUniformWriter(renderStepUniforms.size()); + writer.write(renderStepUniforms.data(), renderStepUniforms.size()); commandBuffer->bindUniformBuffer(UniformSlot::kRenderStep, sk_ref_sp(bindInfo.fBuffer), bindInfo.fOffset); } + gatherer.reset(); // TODO: Rely on uniform writer and GetUniforms(kSolidColor). auto [writer, bindInfo] = bufferMgr.getUniformWriter(sizeof(SkColor4f)); @@ -338,7 +344,7 @@ DEF_GRAPHITE_TEST_FOR_CONTEXTS(CommandBufferTest, reporter, context) { sk_ref_sp(bindInfo.fBuffer), bindInfo.fOffset); - step->writeVertices(&drawWriter, kBounds, kIdentity, shape); + step->writeVertices(&drawWriter, geom); } }; @@ -380,7 +386,7 @@ DEF_GRAPHITE_TEST_FOR_CONTEXTS(CommandBufferTest, reporter, context) { bool result = gpu->submit(commandBuffer); REPORTER_ASSERT(reporter, result); - gpu->checkForFinishedWork(skgpu::SyncToCpu::kYes); + gpu->checkForFinishedWork(SyncToCpu::kYes); uint32_t* pixels = (uint32_t*)(copyBuffer->map()); REPORTER_ASSERT(reporter, pixels[0] == 0xffff0000); REPORTER_ASSERT(reporter, pixels[51 + 38*kTextureWidth] == 0xff00ffff); diff --git a/third_party/skia/tests/graphite/IntersectionTreeTest.cpp b/third_party/skia/tests/graphite/IntersectionTreeTest.cpp index a3e56f26720f..c06b70edd9f2 100644 --- a/third_party/skia/tests/graphite/IntersectionTreeTest.cpp +++ b/third_party/skia/tests/graphite/IntersectionTreeTest.cpp @@ -5,11 +5,11 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/geom/IntersectionTree.h" #include "include/utils/SkRandom.h" +#include "src/gpu/graphite/geom/IntersectionTree.h" #include "tests/Test.h" -namespace skgpu { +namespace skgpu::graphite { class SimpleIntersectionTree { public: @@ -36,9 +36,9 @@ DEF_GRAPHITE_TEST(skgpu_IntersectionTree, reporter) { IntersectionTree tree; for (int i = 0; i < 1000; ++i) { Rect rect = Rect::XYWH(rand.nextRangeF(0, 500), - rand.nextRangeF(0, 500), - rand.nextRangeF(0, 70), - rand.nextRangeF(0, 70)); + rand.nextRangeF(0, 500), + rand.nextRangeF(0, 70), + rand.nextRangeF(0, 70)); CHECK(tree.add(rect) == simpleTree.add({rect.left(), rect.top(), rect.right(), @@ -72,4 +72,4 @@ DEF_GRAPHITE_TEST(skgpu_IntersectionTree, reporter) { } } -} // namespace skgpu +} // namespace skgpu::graphite diff --git a/third_party/skia/tests/graphite/KeyTest.cpp b/third_party/skia/tests/graphite/KeyTest.cpp index e163166a121e..d68d88e5f15b 100644 --- a/third_party/skia/tests/graphite/KeyTest.cpp +++ b/third_party/skia/tests/graphite/KeyTest.cpp @@ -10,25 +10,24 @@ #include "src/core/SkPaintParamsKey.h" #include "src/core/SkShaderCodeDictionary.h" -#include "experimental/graphite/src/ContextPriv.h" +#include "src/gpu/graphite/ContextPriv.h" namespace { -std::unique_ptr create_key(SkShaderCodeDictionary* dict, - int dummySnippetID, - int size) { +SkPaintParamsKey create_key(SkPaintParamsKeyBuilder* builder, int dummySnippetID, int size) { - SkPaintParamsKeyBuilder builder(dict); + SkASSERT(size <= 1024); + static const uint8_t kDummyData[1024] = { 0 }; - builder.beginBlock(dummySnippetID); + SkDEBUGCODE(builder->checkReset()); - for (int i = 0; i < size; ++i) { - builder.addByte(i % 256); - } + builder->beginBlock(dummySnippetID); + + builder->addBytes(size, kDummyData); - builder.endBlock(); + builder->endBlock(); - return builder.snap(); + return builder->lockAsKey(); } } // anonymous namespace @@ -37,22 +36,44 @@ DEF_GRAPHITE_TEST_FOR_CONTEXTS(KeyTest, reporter, context) { auto dict = context->priv().shaderCodeDictionary(); - static const int kMaxBlockDataSize = SkPaintParamsKey::kMaxBlockSize - - SkPaintParamsKey::kBlockHeaderSizeInBytes; - - std::unique_ptr key; + SkPaintParamsKeyBuilder builder(dict, SkBackend::kGraphite); // invalid code snippet ID - key = create_key(dict, kBuiltInCodeSnippetIDCount, kMaxBlockDataSize); - REPORTER_ASSERT(reporter, key->sizeInBytes() == SkPaintParamsKey::kBlockHeaderSizeInBytes); - - int dummySnippetID = dict->addUserDefinedSnippet(); + { + SkPaintParamsKey key = create_key(&builder, kBuiltInCodeSnippetIDCount, 32); + // key creation fails + REPORTER_ASSERT(reporter, key.isErrorKey()); + } // _Just_ on the edge of being too big - key = create_key(dict, dummySnippetID, kMaxBlockDataSize); - REPORTER_ASSERT(reporter, key->sizeInBytes() == SkPaintParamsKey::kMaxBlockSize); + { + static const int kMaxBlockDataSize = SkPaintParamsKey::kMaxBlockSize - + SkPaintParamsKey::kBlockHeaderSizeInBytes; + + static constexpr int kNumFields1 = 1; + static constexpr SkPaintParamsKey::DataPayloadField kDataFields1[kNumFields1] = { + { "data", SkPaintParamsKey::DataPayloadType::kByte, kMaxBlockDataSize }, + }; + + int dummySnippetID1 = dict->addUserDefinedSnippet("keyAlmostTooBig", + SkMakeSpan(kDataFields1, kNumFields1)); + + SkPaintParamsKey key = create_key(&builder, dummySnippetID1, kMaxBlockDataSize); + REPORTER_ASSERT(reporter, key.sizeInBytes() == SkPaintParamsKey::kMaxBlockSize); + } // Too big - key = create_key(dict, dummySnippetID, 1024); - REPORTER_ASSERT(reporter, key->sizeInBytes() == SkPaintParamsKey::kBlockHeaderSizeInBytes); + { + static constexpr int kNumFields2 = 1; + static constexpr SkPaintParamsKey::DataPayloadField kDataFields2[kNumFields2] = { + { "data", SkPaintParamsKey::DataPayloadType::kByte, 1024 }, + }; + + int dummySnippetID2 = dict->addUserDefinedSnippet("keyTooBig", + SkMakeSpan(kDataFields2, kNumFields2)); + + SkPaintParamsKey key = create_key(&builder, dummySnippetID2, 1024); + // key creation fails + REPORTER_ASSERT(reporter, key.isErrorKey()); + } } diff --git a/third_party/skia/tests/graphite/MaskTest.cpp b/third_party/skia/tests/graphite/MaskTest.cpp index 03424606342c..d2d69734e3d7 100644 --- a/third_party/skia/tests/graphite/MaskTest.cpp +++ b/third_party/skia/tests/graphite/MaskTest.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/EnumBitMask.h" +#include "src/gpu/graphite/EnumBitMask.h" #include "tests/Test.h" enum class Flags { @@ -17,7 +17,7 @@ enum class Flags { SKGPU_MAKE_MASK_OPS(Flags); -using namespace skgpu; +using namespace skgpu::graphite; DEF_GRAPHITE_TEST(skgpu_Mask, r) { Mask flags = Flags::kNone; diff --git a/third_party/skia/tests/graphite/MtlBackendTextureTest.mm b/third_party/skia/tests/graphite/MtlBackendTextureTest.mm index aa8c6ba78e6c..921b62ac3f0e 100644 --- a/third_party/skia/tests/graphite/MtlBackendTextureTest.mm +++ b/third_party/skia/tests/graphite/MtlBackendTextureTest.mm @@ -7,20 +7,20 @@ #include "tests/Test.h" -#include "experimental/graphite/include/BackendTexture.h" -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/mtl/MtlTypes.h" +#include "include/gpu/graphite/BackendTexture.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/mtl/MtlTypes.h" #import -using namespace skgpu; +using namespace skgpu::graphite; namespace { const SkISize kSize = {16, 16}; } DEF_GRAPHITE_TEST_FOR_CONTEXTS(MtlBackendTextureTest, reporter, context) { - mtl::TextureInfo textureInfo; + MtlTextureInfo textureInfo; textureInfo.fSampleCount = 1; textureInfo.fLevelCount = 1; textureInfo.fFormat = MTLPixelFormatRGBA8Unorm; @@ -42,8 +42,8 @@ REPORTER_ASSERT(reporter, beTexture.isValid()); context->deleteBackendTexture(beTexture); - // It should fail with a format that isn't rgba8 - textureInfo.fFormat = MTLPixelFormatR8Unorm; + // It should fail with a format that isn't one of our supported formats + textureInfo.fFormat = MTLPixelFormatRGB9E5Float; beTexture = context->createBackendTexture(kSize, textureInfo); REPORTER_ASSERT(reporter, !beTexture.isValid()); context->deleteBackendTexture(beTexture); diff --git a/third_party/skia/tests/graphite/PipelineDataCacheTest.cpp b/third_party/skia/tests/graphite/PipelineDataCacheTest.cpp new file mode 100644 index 000000000000..8941f29889f2 --- /dev/null +++ b/third_party/skia/tests/graphite/PipelineDataCacheTest.cpp @@ -0,0 +1,85 @@ +/* + * 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 "tests/Test.h" + +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Recorder.h" +#include "src/core/SkPipelineData.h" +#include "src/core/SkUniform.h" +#include "src/gpu/graphite/PipelineDataCache.h" +#include "src/gpu/graphite/RecorderPriv.h" + +using namespace skgpu::graphite; + +DEF_GRAPHITE_TEST_FOR_CONTEXTS(PipelineDataCacheTest, reporter, context) { + std::unique_ptr recorder = context->makeRecorder(); + + auto cache = recorder->priv().uniformDataCache(); + + REPORTER_ASSERT(reporter, cache->count() == 0); + + // Nullptr should already be in the cache + { + UniformDataCache::Index invalid; + REPORTER_ASSERT(reporter, !invalid.isValid()); + + const SkUniformDataBlock* lookup = cache->lookup(invalid); + REPORTER_ASSERT(reporter, !lookup); + } + + static const int kSize = 16; + + // Add a new unique UDB + static const char kMemory1[kSize] = { + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 + }; + SkUniformDataBlock udb1(SkMakeSpan(kMemory1, kSize)); + UniformDataCache::Index id1; + { + id1 = cache->insert(udb1); + REPORTER_ASSERT(reporter, id1.isValid()); + const SkUniformDataBlock* lookup = cache->lookup(id1); + REPORTER_ASSERT(reporter, *lookup == udb1); + + REPORTER_ASSERT(reporter, cache->count() == 1); + } + + // Try to add a duplicate UDB + { + static const char kMemory2[kSize] = { + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 + }; + SkUniformDataBlock udb2(SkMakeSpan(kMemory2, kSize)); + UniformDataCache::Index id2 = cache->insert(udb2); + REPORTER_ASSERT(reporter, id2.isValid()); + REPORTER_ASSERT(reporter, id2 == id1); + const SkUniformDataBlock* lookup = cache->lookup(id2); + REPORTER_ASSERT(reporter, *lookup == udb1); + REPORTER_ASSERT(reporter, *lookup == udb2); + + REPORTER_ASSERT(reporter, cache->count() == 1); + } + + // Add a second new unique UDB + { + static const char kMemory3[kSize] = { + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 + }; + SkUniformDataBlock udb3(SkMakeSpan(kMemory3, kSize)); + UniformDataCache::Index id3 = cache->insert(udb3); + REPORTER_ASSERT(reporter, id3.isValid()); + REPORTER_ASSERT(reporter, id3 != id1); + const SkUniformDataBlock* lookup = cache->lookup(id3); + REPORTER_ASSERT(reporter, *lookup == udb3); + REPORTER_ASSERT(reporter, *lookup != udb1); + + REPORTER_ASSERT(reporter, cache->count() == 2); + } + + // TODO(robertphillips): expand this test to exercise all the UDB comparison failure modes +} diff --git a/third_party/skia/tests/graphite/RecorderTest.cpp b/third_party/skia/tests/graphite/RecorderTest.cpp index 5f66a750c4c5..d5da4b2e934c 100644 --- a/third_party/skia/tests/graphite/RecorderTest.cpp +++ b/third_party/skia/tests/graphite/RecorderTest.cpp @@ -7,11 +7,11 @@ #include "tests/Test.h" -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/src/Device.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Recorder.h" +#include "src/gpu/graphite/Device.h" -using namespace skgpu; +using namespace skgpu::graphite; // Tests to make sure the managing of back pointers between Recorder and Device all work properly. DEF_GRAPHITE_TEST_FOR_CONTEXTS(RecorderDevicePtrTest, reporter, context) { diff --git a/third_party/skia/tests/graphite/RectTest.cpp b/third_party/skia/tests/graphite/RectTest.cpp index fe8bed589843..770604d9b680 100644 --- a/third_party/skia/tests/graphite/RectTest.cpp +++ b/third_party/skia/tests/graphite/RectTest.cpp @@ -5,10 +5,10 @@ * found in the LICENSE file. */ -#include "experimental/graphite/src/geom/Rect.h" +#include "src/gpu/graphite/geom/Rect.h" #include "tests/Test.h" -namespace skgpu { +namespace skgpu::graphite { #define CHECK(A) REPORTER_ASSERT(reporter, A) diff --git a/third_party/skia/tests/graphite/ShapeTest.cpp b/third_party/skia/tests/graphite/ShapeTest.cpp index 0f6c8c138e9f..e916d3cb6d77 100644 --- a/third_party/skia/tests/graphite/ShapeTest.cpp +++ b/third_party/skia/tests/graphite/ShapeTest.cpp @@ -7,10 +7,10 @@ #include "tests/Test.h" -#include "experimental/graphite/src/geom/Shape.h" +#include "src/gpu/graphite/geom/Shape.h" DEF_GRAPHITE_TEST(ShapeTest, reporter) { // TODO: Michael takes this over - skgpu::Shape s; - REPORTER_ASSERT(reporter, s.type() == skgpu::Shape::Type::kEmpty); + skgpu::graphite::Shape s; + REPORTER_ASSERT(reporter, s.type() == skgpu::graphite::Shape::Type::kEmpty); } diff --git a/third_party/skia/tests/graphite/TransformTest.cpp b/third_party/skia/tests/graphite/TransformTest.cpp index d0822cf8e535..9f8bf3a46fad 100644 --- a/third_party/skia/tests/graphite/TransformTest.cpp +++ b/third_party/skia/tests/graphite/TransformTest.cpp @@ -7,10 +7,10 @@ #include "tests/Test.h" -#include "experimental/graphite/src/geom/Transform_graphite.h" +#include "src/gpu/graphite/geom/Transform_graphite.h" DEF_GRAPHITE_TEST(TransformTest, reporter) { // TODO: Michael takes this over - skgpu::Transform t{SkM44()}; - REPORTER_ASSERT(reporter, t.type() == skgpu::Transform::Type::kIdentity); + skgpu::graphite::Transform t{SkM44()}; + REPORTER_ASSERT(reporter, t.type() == skgpu::graphite::Transform::Type::kIdentity); } diff --git a/third_party/skia/tests/graphite/UniformCacheTest.cpp b/third_party/skia/tests/graphite/UniformCacheTest.cpp deleted file mode 100644 index 3cac52a87231..000000000000 --- a/third_party/skia/tests/graphite/UniformCacheTest.cpp +++ /dev/null @@ -1,102 +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 "tests/Test.h" - -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/src/RecorderPriv.h" -#include "experimental/graphite/src/UniformCache.h" -#include "src/core/SkUniform.h" -#include "src/core/SkUniformData.h" - -using namespace skgpu; - -namespace { - -std::unique_ptr make_ub(int numUniforms, int dataSize) { - static constexpr int kMaxUniforms = 3; - static constexpr SkUniform kUniforms[kMaxUniforms] { - {"point0", SkSLType::kFloat2 }, - {"point1", SkSLType::kFloat2 }, - {"point2", SkSLType::kFloat2 }, - }; - - SkASSERT(numUniforms <= kMaxUniforms); - - sk_sp ud = SkUniformData::Make(SkSpan(kUniforms, numUniforms), - dataSize); - for (int i = 0; i < numUniforms; ++i) { - ud->offsets()[i] = i; - } - for (int i = 0; i < dataSize; ++i) { - ud->data()[i] = i % 255; - } - - return std::make_unique(std::move(ud)); -} - -} // anonymous namespace - -DEF_GRAPHITE_TEST_FOR_CONTEXTS(UniformCacheTest, reporter, context) { - std::unique_ptr recorder = context->makeRecorder(); - - auto cache = recorder->priv().uniformCache(); - - REPORTER_ASSERT(reporter, cache->count() == 0); - - // Nullptr should already be in the cache and return kInvalidUniformID - { - uint32_t result0 = cache->insert(nullptr); - REPORTER_ASSERT(reporter, result0 == UniformCache::kInvalidUniformID); - REPORTER_ASSERT(reporter, cache->count() == 0); - } - - // Add a new unique UB - SkUniformBlock* danglingUB1 = nullptr; - uint32_t result1; - { - std::unique_ptr ub1 = make_ub(2, 16); - danglingUB1 = ub1.get(); - result1 = cache->insert(std::move(ub1)); - REPORTER_ASSERT(reporter, result1 != UniformCache::kInvalidUniformID); - SkUniformBlock* lookup = cache->lookup(result1); - REPORTER_ASSERT(reporter, lookup == danglingUB1); - - REPORTER_ASSERT(reporter, cache->count() == 1); - } - - // Try to add a duplicate UB - { - std::unique_ptr ub2 = make_ub(2, 16); - SkUniformBlock* danglingUB2 = ub2.get(); - uint32_t result2 = cache->insert(std::move(ub2)); - REPORTER_ASSERT(reporter, result2 != UniformCache::kInvalidUniformID); - REPORTER_ASSERT(reporter, result2 == result1); - SkUniformBlock* lookup = cache->lookup(result2); - REPORTER_ASSERT(reporter, lookup != danglingUB2); - REPORTER_ASSERT(reporter, lookup == danglingUB1); - - REPORTER_ASSERT(reporter, cache->count() == 1); - } - - // Add a second new unique UB - { - std::unique_ptr ub3 = make_ub(3, 16); - SkUniformBlock* danglingUB3 = ub3.get(); - uint32_t result3 = cache->insert(std::move(ub3)); - REPORTER_ASSERT(reporter, result3 != UniformCache::kInvalidUniformID); - REPORTER_ASSERT(reporter, result3 != result1); - SkUniformBlock* lookup = cache->lookup(result3); - REPORTER_ASSERT(reporter, lookup == danglingUB3); - REPORTER_ASSERT(reporter, lookup != danglingUB1); - - REPORTER_ASSERT(reporter, cache->count() == 2); - } - - // TODO(robertphillips): expand this test to exercise all the UD comparison failure modes -} diff --git a/third_party/skia/tests/graphite/UniformTest.cpp b/third_party/skia/tests/graphite/UniformTest.cpp index 36e55a1e122b..dd8873df2a9e 100644 --- a/third_party/skia/tests/graphite/UniformTest.cpp +++ b/third_party/skia/tests/graphite/UniformTest.cpp @@ -7,23 +7,25 @@ #include "tests/Test.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/src/ContextPriv.h" -#include "experimental/graphite/src/ContextUtils.h" -#include "experimental/graphite/src/GlobalCache.h" -#include "experimental/graphite/src/PaintParams.h" -#include "experimental/graphite/src/RecorderPriv.h" -#include "experimental/graphite/src/ResourceProvider.h" #include "include/core/SkPaint.h" #include "include/effects/SkGradientShader.h" +#include "include/gpu/graphite/Recorder.h" #include "include/private/SkUniquePaintParamsID.h" +#include "src/core/SkKeyContext.h" #include "src/core/SkKeyHelpers.h" +#include "src/core/SkPipelineData.h" #include "src/core/SkShaderCodeDictionary.h" -#include "src/core/SkUniformData.h" +#include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/ContextUtils.h" +#include "src/gpu/graphite/GlobalCache.h" +#include "src/gpu/graphite/PaintParams.h" +#include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/ResourceProvider.h" namespace { +using namespace skgpu::graphite; -std::tuple create_paint(skgpu::ShaderCombo::ShaderType shaderType, +std::tuple create_paint(ShaderCombo::ShaderType shaderType, SkTileMode tm, SkBlendMode bm) { SkPoint pts[2] = {{-100, -100}, @@ -32,48 +34,48 @@ std::tuple create_paint(skgpu::ShaderCombo::ShaderType shaderType, SkScalar offsets[2] = {0.0f, 1.0f}; sk_sp s; - int numUniforms = 0; + int numTextures = 0; switch (shaderType) { - case skgpu::ShaderCombo::ShaderType::kNone: + case ShaderCombo::ShaderType::kNone: SkDEBUGFAIL("kNone cannot be represented as an SkPaint"); break; - case skgpu::ShaderCombo::ShaderType::kSolidColor: - numUniforms += 1; + case ShaderCombo::ShaderType::kSolidColor: break; - case skgpu::ShaderCombo::ShaderType::kLinearGradient: + case ShaderCombo::ShaderType::kLinearGradient: s = SkGradientShader::MakeLinear(pts, colors, offsets, 2, tm); - numUniforms += 7; break; - case skgpu::ShaderCombo::ShaderType::kRadialGradient: + case ShaderCombo::ShaderType::kRadialGradient: s = SkGradientShader::MakeRadial({0, 0}, 100, colors, offsets, 2, tm); - numUniforms += 7; break; - case skgpu::ShaderCombo::ShaderType::kSweepGradient: + case ShaderCombo::ShaderType::kSweepGradient: s = SkGradientShader::MakeSweep(0, 0, colors, offsets, 2, tm, 0, 359, 0, nullptr); - numUniforms += 7; break; - case skgpu::ShaderCombo::ShaderType::kConicalGradient: + case ShaderCombo::ShaderType::kConicalGradient: s = SkGradientShader::MakeTwoPointConical({100, 100}, 100, {-100, -100}, 100, colors, offsets, 2, tm); - numUniforms += 7; break; } SkPaint p; p.setColor(SK_ColorRED); p.setShader(std::move(s)); p.setBlendMode(bm); - return { p, numUniforms }; + return { p, numTextures }; } } // anonymous namespace DEF_GRAPHITE_TEST_FOR_CONTEXTS(UniformTest, reporter, context) { - using namespace skgpu; + using namespace skgpu::graphite; auto recorder = context->makeRecorder(); - auto dict = recorder->priv().resourceProvider()->shaderCodeDictionary(); + SkKeyContext keyContext(recorder.get()); + auto dict = keyContext.dict(); + auto tCache = recorder->priv().textureDataCache(); + + SkPaintParamsKeyBuilder builder(dict, SkBackend::kGraphite); + SkPipelineDataGatherer gatherer(Layout::kMetal); // Intentionally does not include ShaderType::kNone, which represents no fragment shading stage // and is thus not relevant to uniform extraction/caching. @@ -91,23 +93,26 @@ DEF_GRAPHITE_TEST_FOR_CONTEXTS(UniformTest, reporter, context) { } for (auto bm : { SkBlendMode::kSrc, SkBlendMode::kSrcOver }) { - std::unique_ptr expected = CreateKey(dict, SkBackend::kGraphite, - s, tm, bm); + auto [ p, expectedNumTextures ] = create_paint(s, tm, bm); + + auto [ uniqueID1, uIndex, tIndex] = ExtractPaintData(recorder.get(), &gatherer, + &builder, PaintParams(p)); - auto [ p, expectedNumUniforms ] = create_paint(s, tm, bm); - auto [ actualID, uniformBlock] = ExtractPaintData(dict, PaintParams(p)); - int actualNumUniforms = uniformBlock->count(); + SkUniquePaintParamsID uniqueID2 = CreateKey(keyContext, &builder, s, tm, bm); + // ExtractPaintData and CreateKey agree + REPORTER_ASSERT(reporter, uniqueID1 == uniqueID2); - auto entry = dict->lookup(actualID); + // TODO: This isn't particularly useful until we add image shaders to the + // pre-compilation set. + { + const SkTextureDataBlock* textureData = tCache->lookup(tIndex); + int actualNumTextures = textureData ? textureData->numTextures() : 0; + REPORTER_ASSERT(reporter, expectedNumTextures == actualNumTextures); + } - REPORTER_ASSERT(reporter, *expected == *entry->paintParamsKey()); - REPORTER_ASSERT(reporter, expectedNumUniforms == actualNumUniforms); - for (auto& u : *uniformBlock) { - for (int i = 0; i < u->count(); ++i) { - REPORTER_ASSERT(reporter, - u->offset(i) >= 0 && u->offset(i) < u->dataSize()); - } + { + // TODO: check the blendInfo here too } } } diff --git a/third_party/skia/tests/sksl/blend/BlendClear.asm.frag b/third_party/skia/tests/sksl/blend/BlendClear.asm.frag index c33c6160ec61..76b9edf2ee80 100644 --- a/third_party/skia/tests/sksl/blend/BlendClear.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendClear.asm.frag @@ -20,7 +20,6 @@ OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 -OpDecorate %17 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float diff --git a/third_party/skia/tests/sksl/blend/BlendColor.asm.frag b/third_party/skia/tests/sksl/blend/BlendColor.asm.frag index 33a419d7304f..a7afb7322c36 100644 --- a/third_party/skia/tests/sksl/blend/BlendColor.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendColor.asm.frag @@ -8,15 +8,20 @@ OpName %sk_Clockwise "sk_Clockwise" OpName %_UniformBuffer "_UniformBuffer" OpMemberName %_UniformBuffer 0 "src" OpMemberName %_UniformBuffer 1 "dst" -OpName %blend_set_color_luminance_Qh3h3hh3 "blend_set_color_luminance_Qh3h3hh3" -OpName %lum "lum" -OpName %result "result" -OpName %minComp "minComp" -OpName %maxComp "maxComp" +OpName %blend_color_saturation_Qhh3 "blend_color_saturation_Qhh3" +OpName %blend_hslc_h4h4h4bb "blend_hslc_h4h4h4bb" +OpName %alpha "alpha" +OpName %sda "sda" +OpName %dsa "dsa" +OpName %l "l" +OpName %r "r" +OpName %_2_mn "_2_mn" +OpName %_3_mx "_3_mx" +OpName %_4_lum "_4_lum" +OpName %_5_result "_5_result" +OpName %_6_minComp "_6_minComp" +OpName %_7_maxComp "_7_maxComp" OpName %main "main" -OpName %_0_alpha "_0_alpha" -OpName %_1_sda "_1_sda" -OpName %_2_dsa "_2_dsa" OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 @@ -26,13 +31,14 @@ OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision OpMemberDecorate %_UniformBuffer 1 Offset 16 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpDecorate %_UniformBuffer Block -OpDecorate %11 Binding 0 -OpDecorate %11 DescriptorSet 0 -OpDecorate %lum RelaxedPrecision +OpDecorate %12 Binding 0 +OpDecorate %12 DescriptorSet 0 +OpDecorate %22 RelaxedPrecision OpDecorate %23 RelaxedPrecision +OpDecorate %24 RelaxedPrecision +OpDecorate %25 RelaxedPrecision +OpDecorate %26 RelaxedPrecision OpDecorate %27 RelaxedPrecision -OpDecorate %28 RelaxedPrecision -OpDecorate %result RelaxedPrecision OpDecorate %30 RelaxedPrecision OpDecorate %31 RelaxedPrecision OpDecorate %32 RelaxedPrecision @@ -40,45 +46,43 @@ OpDecorate %33 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %35 RelaxedPrecision OpDecorate %36 RelaxedPrecision -OpDecorate %minComp RelaxedPrecision -OpDecorate %40 RelaxedPrecision -OpDecorate %41 RelaxedPrecision -OpDecorate %42 RelaxedPrecision -OpDecorate %43 RelaxedPrecision -OpDecorate %44 RelaxedPrecision -OpDecorate %45 RelaxedPrecision -OpDecorate %maxComp RelaxedPrecision +OpDecorate %alpha RelaxedPrecision +OpDecorate %47 RelaxedPrecision +OpDecorate %48 RelaxedPrecision OpDecorate %49 RelaxedPrecision OpDecorate %50 RelaxedPrecision OpDecorate %51 RelaxedPrecision -OpDecorate %52 RelaxedPrecision +OpDecorate %sda RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision +OpDecorate %55 RelaxedPrecision OpDecorate %56 RelaxedPrecision +OpDecorate %57 RelaxedPrecision +OpDecorate %dsa RelaxedPrecision +OpDecorate %59 RelaxedPrecision +OpDecorate %60 RelaxedPrecision OpDecorate %61 RelaxedPrecision OpDecorate %62 RelaxedPrecision -OpDecorate %67 RelaxedPrecision -OpDecorate %68 RelaxedPrecision -OpDecorate %69 RelaxedPrecision +OpDecorate %63 RelaxedPrecision +OpDecorate %l RelaxedPrecision +OpDecorate %65 RelaxedPrecision OpDecorate %70 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %72 RelaxedPrecision -OpDecorate %73 RelaxedPrecision +OpDecorate %r RelaxedPrecision OpDecorate %74 RelaxedPrecision -OpDecorate %75 RelaxedPrecision -OpDecorate %76 RelaxedPrecision -OpDecorate %77 RelaxedPrecision -OpDecorate %78 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision -OpDecorate %85 RelaxedPrecision -OpDecorate %86 RelaxedPrecision +OpDecorate %82 RelaxedPrecision +OpDecorate %_2_mn RelaxedPrecision +OpDecorate %88 RelaxedPrecision +OpDecorate %89 RelaxedPrecision +OpDecorate %90 RelaxedPrecision +OpDecorate %91 RelaxedPrecision OpDecorate %92 RelaxedPrecision OpDecorate %93 RelaxedPrecision -OpDecorate %94 RelaxedPrecision -OpDecorate %95 RelaxedPrecision -OpDecorate %96 RelaxedPrecision +OpDecorate %_3_mx RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %98 RelaxedPrecision OpDecorate %99 RelaxedPrecision @@ -86,53 +90,105 @@ OpDecorate %100 RelaxedPrecision OpDecorate %101 RelaxedPrecision OpDecorate %102 RelaxedPrecision OpDecorate %103 RelaxedPrecision -OpDecorate %105 RelaxedPrecision -OpDecorate %106 RelaxedPrecision -OpDecorate %107 RelaxedPrecision -OpDecorate %108 RelaxedPrecision -OpDecorate %109 RelaxedPrecision -OpDecorate %_0_alpha RelaxedPrecision +OpDecorate %104 RelaxedPrecision +OpDecorate %110 RelaxedPrecision +OpDecorate %111 RelaxedPrecision +OpDecorate %112 RelaxedPrecision +OpDecorate %113 RelaxedPrecision +OpDecorate %114 RelaxedPrecision +OpDecorate %117 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %119 RelaxedPrecision +OpDecorate %120 RelaxedPrecision OpDecorate %122 RelaxedPrecision OpDecorate %123 RelaxedPrecision -OpDecorate %124 RelaxedPrecision -OpDecorate %_1_sda RelaxedPrecision +OpDecorate %126 RelaxedPrecision OpDecorate %127 RelaxedPrecision -OpDecorate %128 RelaxedPrecision -OpDecorate %130 RelaxedPrecision -OpDecorate %131 RelaxedPrecision -OpDecorate %132 RelaxedPrecision -OpDecorate %_2_dsa RelaxedPrecision -OpDecorate %135 RelaxedPrecision +OpDecorate %_4_lum RelaxedPrecision +OpDecorate %129 RelaxedPrecision +OpDecorate %134 RelaxedPrecision +OpDecorate %_5_result RelaxedPrecision OpDecorate %136 RelaxedPrecision +OpDecorate %137 RelaxedPrecision OpDecorate %138 RelaxedPrecision OpDecorate %139 RelaxedPrecision OpDecorate %140 RelaxedPrecision OpDecorate %141 RelaxedPrecision -OpDecorate %143 RelaxedPrecision -OpDecorate %145 RelaxedPrecision +OpDecorate %142 RelaxedPrecision +OpDecorate %_6_minComp RelaxedPrecision +OpDecorate %146 RelaxedPrecision +OpDecorate %147 RelaxedPrecision +OpDecorate %148 RelaxedPrecision OpDecorate %149 RelaxedPrecision OpDecorate %150 RelaxedPrecision OpDecorate %151 RelaxedPrecision -OpDecorate %152 RelaxedPrecision -OpDecorate %153 RelaxedPrecision +OpDecorate %_7_maxComp RelaxedPrecision OpDecorate %155 RelaxedPrecision OpDecorate %156 RelaxedPrecision OpDecorate %157 RelaxedPrecision OpDecorate %158 RelaxedPrecision OpDecorate %159 RelaxedPrecision OpDecorate %160 RelaxedPrecision -OpDecorate %161 RelaxedPrecision OpDecorate %162 RelaxedPrecision -OpDecorate %164 RelaxedPrecision -OpDecorate %165 RelaxedPrecision +OpDecorate %166 RelaxedPrecision OpDecorate %167 RelaxedPrecision -OpDecorate %168 RelaxedPrecision -OpDecorate %169 RelaxedPrecision -OpDecorate %170 RelaxedPrecision -OpDecorate %171 RelaxedPrecision OpDecorate %172 RelaxedPrecision +OpDecorate %173 RelaxedPrecision +OpDecorate %174 RelaxedPrecision +OpDecorate %175 RelaxedPrecision +OpDecorate %176 RelaxedPrecision +OpDecorate %177 RelaxedPrecision +OpDecorate %178 RelaxedPrecision +OpDecorate %179 RelaxedPrecision +OpDecorate %180 RelaxedPrecision +OpDecorate %181 RelaxedPrecision +OpDecorate %182 RelaxedPrecision +OpDecorate %183 RelaxedPrecision +OpDecorate %184 RelaxedPrecision +OpDecorate %185 RelaxedPrecision +OpDecorate %186 RelaxedPrecision +OpDecorate %190 RelaxedPrecision +OpDecorate %191 RelaxedPrecision +OpDecorate %196 RelaxedPrecision +OpDecorate %197 RelaxedPrecision +OpDecorate %198 RelaxedPrecision +OpDecorate %199 RelaxedPrecision +OpDecorate %200 RelaxedPrecision +OpDecorate %201 RelaxedPrecision +OpDecorate %202 RelaxedPrecision +OpDecorate %203 RelaxedPrecision +OpDecorate %204 RelaxedPrecision +OpDecorate %205 RelaxedPrecision +OpDecorate %206 RelaxedPrecision +OpDecorate %207 RelaxedPrecision +OpDecorate %208 RelaxedPrecision +OpDecorate %209 RelaxedPrecision +OpDecorate %210 RelaxedPrecision +OpDecorate %211 RelaxedPrecision +OpDecorate %212 RelaxedPrecision +OpDecorate %213 RelaxedPrecision +OpDecorate %214 RelaxedPrecision +OpDecorate %215 RelaxedPrecision +OpDecorate %216 RelaxedPrecision +OpDecorate %217 RelaxedPrecision +OpDecorate %218 RelaxedPrecision +OpDecorate %219 RelaxedPrecision +OpDecorate %220 RelaxedPrecision +OpDecorate %221 RelaxedPrecision +OpDecorate %222 RelaxedPrecision +OpDecorate %223 RelaxedPrecision +OpDecorate %224 RelaxedPrecision +OpDecorate %225 RelaxedPrecision +OpDecorate %226 RelaxedPrecision +OpDecorate %227 RelaxedPrecision +OpDecorate %228 RelaxedPrecision +OpDecorate %229 RelaxedPrecision +OpDecorate %230 RelaxedPrecision +OpDecorate %231 RelaxedPrecision +OpDecorate %232 RelaxedPrecision +OpDecorate %233 RelaxedPrecision +OpDecorate %241 RelaxedPrecision +OpDecorate %245 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -142,194 +198,302 @@ OpDecorate %172 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %_UniformBuffer = OpTypeStruct %v4float %v4float %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer -%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform +%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %v3float = OpTypeVector %float 3 %_ptr_Function_v3float = OpTypePointer Function %v3float +%17 = OpTypeFunction %float %_ptr_Function_v3float +%_ptr_Function_v4float = OpTypePointer Function %v4float +%_ptr_Function_bool = OpTypePointer Function %bool +%39 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool %_ptr_Function_float = OpTypePointer Function %float -%15 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_float %_ptr_Function_v3float +%float_1 = OpConstant %float 1 +%float_0 = OpConstant %float 0 +%125 = OpConstantComposite %v3float %float_0 %float_0 %float_0 %float_0_300000012 = OpConstant %float 0.300000012 %float_0_589999974 = OpConstant %float 0.589999974 %float_0_109999999 = OpConstant %float 0.109999999 -%27 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999 +%133 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999 %false = OpConstantFalse %bool -%float_0 = OpConstant %float 0 -%float_1 = OpConstant %float 1 %void = OpTypeVoid -%111 = OpTypeFunction %void +%235 = OpTypeFunction %void %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 -%int_1 = OpConstant %int 1 %int_0 = OpConstant %int 0 -%blend_set_color_luminance_Qh3h3hh3 = OpFunction %v3float None %15 +%int_1 = OpConstant %int 1 +%blend_color_saturation_Qhh3 = OpFunction %float None %17 %18 = OpFunctionParameter %_ptr_Function_v3float -%19 = OpFunctionParameter %_ptr_Function_float -%20 = OpFunctionParameter %_ptr_Function_v3float -%21 = OpLabel -%lum = OpVariable %_ptr_Function_float Function -%result = OpVariable %_ptr_Function_v3float Function -%minComp = OpVariable %_ptr_Function_float Function -%maxComp = OpVariable %_ptr_Function_float Function -%28 = OpLoad %v3float %20 -%23 = OpDot %float %27 %28 -OpStore %lum %23 -%30 = OpLoad %float %lum +%19 = OpLabel +%22 = OpLoad %v3float %18 +%23 = OpCompositeExtract %float %22 0 +%24 = OpLoad %v3float %18 +%25 = OpCompositeExtract %float %24 1 +%21 = OpExtInst %float %1 FMax %23 %25 +%26 = OpLoad %v3float %18 +%27 = OpCompositeExtract %float %26 2 +%20 = OpExtInst %float %1 FMax %21 %27 +%30 = OpLoad %v3float %18 +%31 = OpCompositeExtract %float %30 0 %32 = OpLoad %v3float %18 -%31 = OpDot %float %27 %32 -%33 = OpFSub %float %30 %31 +%33 = OpCompositeExtract %float %32 1 +%29 = OpExtInst %float %1 FMin %31 %33 %34 = OpLoad %v3float %18 -%35 = OpCompositeConstruct %v3float %33 %33 %33 -%36 = OpFAdd %v3float %35 %34 -OpStore %result %36 -%40 = OpLoad %v3float %result -%41 = OpCompositeExtract %float %40 0 -%42 = OpLoad %v3float %result -%43 = OpCompositeExtract %float %42 1 -%39 = OpExtInst %float %1 FMin %41 %43 -%44 = OpLoad %v3float %result -%45 = OpCompositeExtract %float %44 2 -%38 = OpExtInst %float %1 FMin %39 %45 -OpStore %minComp %38 -%49 = OpLoad %v3float %result -%50 = OpCompositeExtract %float %49 0 -%51 = OpLoad %v3float %result -%52 = OpCompositeExtract %float %51 1 -%48 = OpExtInst %float %1 FMax %50 %52 -%53 = OpLoad %v3float %result -%54 = OpCompositeExtract %float %53 2 -%47 = OpExtInst %float %1 FMax %48 %54 -OpStore %maxComp %47 -%56 = OpLoad %float %minComp -%58 = OpFOrdLessThan %bool %56 %float_0 -OpSelectionMerge %60 None -OpBranchConditional %58 %59 %60 -%59 = OpLabel -%61 = OpLoad %float %lum -%62 = OpLoad %float %minComp -%63 = OpFOrdNotEqual %bool %61 %62 -OpBranch %60 -%60 = OpLabel -%64 = OpPhi %bool %false %21 %63 %59 -OpSelectionMerge %66 None -OpBranchConditional %64 %65 %66 -%65 = OpLabel -%67 = OpLoad %float %lum -%68 = OpLoad %v3float %result -%69 = OpLoad %float %lum -%70 = OpCompositeConstruct %v3float %69 %69 %69 -%71 = OpFSub %v3float %68 %70 -%72 = OpLoad %float %lum -%73 = OpLoad %float %lum -%74 = OpLoad %float %minComp -%75 = OpFSub %float %73 %74 -%76 = OpFDiv %float %72 %75 -%77 = OpVectorTimesScalar %v3float %71 %76 -%78 = OpCompositeConstruct %v3float %67 %67 %67 -%79 = OpFAdd %v3float %78 %77 -OpStore %result %79 -OpBranch %66 -%66 = OpLabel -%80 = OpLoad %float %maxComp -%81 = OpLoad %float %19 -%82 = OpFOrdGreaterThan %bool %80 %81 +%35 = OpCompositeExtract %float %34 2 +%28 = OpExtInst %float %1 FMin %29 %35 +%36 = OpFSub %float %20 %28 +OpReturnValue %36 +OpFunctionEnd +%blend_hslc_h4h4h4bb = OpFunction %v4float None %39 +%40 = OpFunctionParameter %_ptr_Function_v4float +%41 = OpFunctionParameter %_ptr_Function_v4float +%42 = OpFunctionParameter %_ptr_Function_bool +%43 = OpFunctionParameter %_ptr_Function_bool +%44 = OpLabel +%alpha = OpVariable %_ptr_Function_float Function +%sda = OpVariable %_ptr_Function_v3float Function +%dsa = OpVariable %_ptr_Function_v3float Function +%l = OpVariable %_ptr_Function_v3float Function +%66 = OpVariable %_ptr_Function_v3float Function +%r = OpVariable %_ptr_Function_v3float Function +%75 = OpVariable %_ptr_Function_v3float Function +%_2_mn = OpVariable %_ptr_Function_float Function +%_3_mx = OpVariable %_ptr_Function_float Function +%106 = OpVariable %_ptr_Function_v3float Function +%115 = OpVariable %_ptr_Function_v3float Function +%_4_lum = OpVariable %_ptr_Function_float Function +%_5_result = OpVariable %_ptr_Function_v3float Function +%_6_minComp = OpVariable %_ptr_Function_float Function +%_7_maxComp = OpVariable %_ptr_Function_float Function +%47 = OpLoad %v4float %41 +%48 = OpCompositeExtract %float %47 3 +%49 = OpLoad %v4float %40 +%50 = OpCompositeExtract %float %49 3 +%51 = OpFMul %float %48 %50 +OpStore %alpha %51 +%53 = OpLoad %v4float %40 +%54 = OpVectorShuffle %v3float %53 %53 0 1 2 +%55 = OpLoad %v4float %41 +%56 = OpCompositeExtract %float %55 3 +%57 = OpVectorTimesScalar %v3float %54 %56 +OpStore %sda %57 +%59 = OpLoad %v4float %41 +%60 = OpVectorShuffle %v3float %59 %59 0 1 2 +%61 = OpLoad %v4float %40 +%62 = OpCompositeExtract %float %61 3 +%63 = OpVectorTimesScalar %v3float %60 %62 +OpStore %dsa %63 +%65 = OpLoad %bool %42 +OpSelectionMerge %69 None +OpBranchConditional %65 %67 %68 +%67 = OpLabel +%70 = OpLoad %v3float %dsa +OpStore %66 %70 +OpBranch %69 +%68 = OpLabel +%71 = OpLoad %v3float %sda +OpStore %66 %71 +OpBranch %69 +%69 = OpLabel +%72 = OpLoad %v3float %66 +OpStore %l %72 +%74 = OpLoad %bool %42 +OpSelectionMerge %78 None +OpBranchConditional %74 %76 %77 +%76 = OpLabel +%79 = OpLoad %v3float %sda +OpStore %75 %79 +OpBranch %78 +%77 = OpLabel +%80 = OpLoad %v3float %dsa +OpStore %75 %80 +OpBranch %78 +%78 = OpLabel +%81 = OpLoad %v3float %75 +OpStore %r %81 +%82 = OpLoad %bool %43 OpSelectionMerge %84 None OpBranchConditional %82 %83 %84 %83 = OpLabel -%85 = OpLoad %float %maxComp -%86 = OpLoad %float %lum -%87 = OpFOrdNotEqual %bool %85 %86 +%88 = OpLoad %v3float %l +%89 = OpCompositeExtract %float %88 0 +%90 = OpLoad %v3float %l +%91 = OpCompositeExtract %float %90 1 +%87 = OpExtInst %float %1 FMin %89 %91 +%92 = OpLoad %v3float %l +%93 = OpCompositeExtract %float %92 2 +%86 = OpExtInst %float %1 FMin %87 %93 +OpStore %_2_mn %86 +%97 = OpLoad %v3float %l +%98 = OpCompositeExtract %float %97 0 +%99 = OpLoad %v3float %l +%100 = OpCompositeExtract %float %99 1 +%96 = OpExtInst %float %1 FMax %98 %100 +%101 = OpLoad %v3float %l +%102 = OpCompositeExtract %float %101 2 +%95 = OpExtInst %float %1 FMax %96 %102 +OpStore %_3_mx %95 +%103 = OpLoad %float %_3_mx +%104 = OpLoad %float %_2_mn +%105 = OpFOrdGreaterThan %bool %103 %104 +OpSelectionMerge %109 None +OpBranchConditional %105 %107 %108 +%107 = OpLabel +%110 = OpLoad %v3float %l +%111 = OpLoad %float %_2_mn +%112 = OpCompositeConstruct %v3float %111 %111 %111 +%113 = OpFSub %v3float %110 %112 +%114 = OpLoad %v3float %r +OpStore %115 %114 +%116 = OpFunctionCall %float %blend_color_saturation_Qhh3 %115 +%117 = OpVectorTimesScalar %v3float %113 %116 +%118 = OpLoad %float %_3_mx +%119 = OpLoad %float %_2_mn +%120 = OpFSub %float %118 %119 +%122 = OpFDiv %float %float_1 %120 +%123 = OpVectorTimesScalar %v3float %117 %122 +OpStore %106 %123 +OpBranch %109 +%108 = OpLabel +OpStore %106 %125 +OpBranch %109 +%109 = OpLabel +%126 = OpLoad %v3float %106 +OpStore %l %126 +%127 = OpLoad %v3float %dsa +OpStore %r %127 OpBranch %84 %84 = OpLabel -%88 = OpPhi %bool %false %66 %87 %83 -OpSelectionMerge %91 None -OpBranchConditional %88 %89 %90 -%89 = OpLabel -%92 = OpLoad %float %lum -%93 = OpLoad %v3float %result -%94 = OpLoad %float %lum -%95 = OpCompositeConstruct %v3float %94 %94 %94 -%96 = OpFSub %v3float %93 %95 -%97 = OpLoad %float %19 -%98 = OpLoad %float %lum -%99 = OpFSub %float %97 %98 -%100 = OpVectorTimesScalar %v3float %96 %99 -%101 = OpLoad %float %maxComp -%102 = OpLoad %float %lum -%103 = OpFSub %float %101 %102 -%105 = OpFDiv %float %float_1 %103 -%106 = OpVectorTimesScalar %v3float %100 %105 -%107 = OpCompositeConstruct %v3float %92 %92 %92 -%108 = OpFAdd %v3float %107 %106 -OpReturnValue %108 -%90 = OpLabel -%109 = OpLoad %v3float %result -OpReturnValue %109 -%91 = OpLabel -OpUnreachable +%134 = OpLoad %v3float %r +%129 = OpDot %float %133 %134 +OpStore %_4_lum %129 +%136 = OpLoad %float %_4_lum +%138 = OpLoad %v3float %l +%137 = OpDot %float %133 %138 +%139 = OpFSub %float %136 %137 +%140 = OpLoad %v3float %l +%141 = OpCompositeConstruct %v3float %139 %139 %139 +%142 = OpFAdd %v3float %141 %140 +OpStore %_5_result %142 +%146 = OpLoad %v3float %_5_result +%147 = OpCompositeExtract %float %146 0 +%148 = OpLoad %v3float %_5_result +%149 = OpCompositeExtract %float %148 1 +%145 = OpExtInst %float %1 FMin %147 %149 +%150 = OpLoad %v3float %_5_result +%151 = OpCompositeExtract %float %150 2 +%144 = OpExtInst %float %1 FMin %145 %151 +OpStore %_6_minComp %144 +%155 = OpLoad %v3float %_5_result +%156 = OpCompositeExtract %float %155 0 +%157 = OpLoad %v3float %_5_result +%158 = OpCompositeExtract %float %157 1 +%154 = OpExtInst %float %1 FMax %156 %158 +%159 = OpLoad %v3float %_5_result +%160 = OpCompositeExtract %float %159 2 +%153 = OpExtInst %float %1 FMax %154 %160 +OpStore %_7_maxComp %153 +%162 = OpLoad %float %_6_minComp +%163 = OpFOrdLessThan %bool %162 %float_0 +OpSelectionMerge %165 None +OpBranchConditional %163 %164 %165 +%164 = OpLabel +%166 = OpLoad %float %_4_lum +%167 = OpLoad %float %_6_minComp +%168 = OpFUnordNotEqual %bool %166 %167 +OpBranch %165 +%165 = OpLabel +%169 = OpPhi %bool %false %84 %168 %164 +OpSelectionMerge %171 None +OpBranchConditional %169 %170 %171 +%170 = OpLabel +%172 = OpLoad %float %_4_lum +%173 = OpLoad %v3float %_5_result +%174 = OpLoad %float %_4_lum +%175 = OpCompositeConstruct %v3float %174 %174 %174 +%176 = OpFSub %v3float %173 %175 +%177 = OpLoad %float %_4_lum +%178 = OpLoad %float %_4_lum +%179 = OpLoad %float %_6_minComp +%180 = OpFSub %float %178 %179 +%181 = OpFDiv %float %177 %180 +%182 = OpVectorTimesScalar %v3float %176 %181 +%183 = OpCompositeConstruct %v3float %172 %172 %172 +%184 = OpFAdd %v3float %183 %182 +OpStore %_5_result %184 +OpBranch %171 +%171 = OpLabel +%185 = OpLoad %float %_7_maxComp +%186 = OpLoad %float %alpha +%187 = OpFOrdGreaterThan %bool %185 %186 +OpSelectionMerge %189 None +OpBranchConditional %187 %188 %189 +%188 = OpLabel +%190 = OpLoad %float %_7_maxComp +%191 = OpLoad %float %_4_lum +%192 = OpFUnordNotEqual %bool %190 %191 +OpBranch %189 +%189 = OpLabel +%193 = OpPhi %bool %false %171 %192 %188 +OpSelectionMerge %195 None +OpBranchConditional %193 %194 %195 +%194 = OpLabel +%196 = OpLoad %float %_4_lum +%197 = OpLoad %v3float %_5_result +%198 = OpLoad %float %_4_lum +%199 = OpCompositeConstruct %v3float %198 %198 %198 +%200 = OpFSub %v3float %197 %199 +%201 = OpLoad %float %alpha +%202 = OpLoad %float %_4_lum +%203 = OpFSub %float %201 %202 +%204 = OpVectorTimesScalar %v3float %200 %203 +%205 = OpLoad %float %_7_maxComp +%206 = OpLoad %float %_4_lum +%207 = OpFSub %float %205 %206 +%208 = OpFDiv %float %float_1 %207 +%209 = OpVectorTimesScalar %v3float %204 %208 +%210 = OpCompositeConstruct %v3float %196 %196 %196 +%211 = OpFAdd %v3float %210 %209 +OpStore %_5_result %211 +OpBranch %195 +%195 = OpLabel +%212 = OpLoad %v3float %_5_result +%213 = OpLoad %v4float %41 +%214 = OpVectorShuffle %v3float %213 %213 0 1 2 +%215 = OpFAdd %v3float %212 %214 +%216 = OpLoad %v3float %dsa +%217 = OpFSub %v3float %215 %216 +%218 = OpLoad %v4float %40 +%219 = OpVectorShuffle %v3float %218 %218 0 1 2 +%220 = OpFAdd %v3float %217 %219 +%221 = OpLoad %v3float %sda +%222 = OpFSub %v3float %220 %221 +%223 = OpCompositeExtract %float %222 0 +%224 = OpCompositeExtract %float %222 1 +%225 = OpCompositeExtract %float %222 2 +%226 = OpLoad %v4float %40 +%227 = OpCompositeExtract %float %226 3 +%228 = OpLoad %v4float %41 +%229 = OpCompositeExtract %float %228 3 +%230 = OpFAdd %float %227 %229 +%231 = OpLoad %float %alpha +%232 = OpFSub %float %230 %231 +%233 = OpCompositeConstruct %v4float %223 %224 %225 %232 +OpReturnValue %233 OpFunctionEnd -%main = OpFunction %void None %111 -%112 = OpLabel -%_0_alpha = OpVariable %_ptr_Function_float Function -%_1_sda = OpVariable %_ptr_Function_v3float Function -%_2_dsa = OpVariable %_ptr_Function_v3float Function -%142 = OpVariable %_ptr_Function_v3float Function -%144 = OpVariable %_ptr_Function_float Function -%146 = OpVariable %_ptr_Function_v3float Function -%114 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%118 = OpLoad %v4float %114 -%119 = OpCompositeExtract %float %118 3 -%120 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%122 = OpLoad %v4float %120 -%123 = OpCompositeExtract %float %122 3 -%124 = OpFMul %float %119 %123 -OpStore %_0_alpha %124 -%126 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%127 = OpLoad %v4float %126 -%128 = OpVectorShuffle %v3float %127 %127 0 1 2 -%129 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%130 = OpLoad %v4float %129 -%131 = OpCompositeExtract %float %130 3 -%132 = OpVectorTimesScalar %v3float %128 %131 -OpStore %_1_sda %132 -%134 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%135 = OpLoad %v4float %134 -%136 = OpVectorShuffle %v3float %135 %135 0 1 2 -%137 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%138 = OpLoad %v4float %137 -%139 = OpCompositeExtract %float %138 3 -%140 = OpVectorTimesScalar %v3float %136 %139 -OpStore %_2_dsa %140 -%141 = OpLoad %v3float %_1_sda -OpStore %142 %141 -%143 = OpLoad %float %_0_alpha -OpStore %144 %143 -%145 = OpLoad %v3float %_2_dsa -OpStore %146 %145 -%147 = OpFunctionCall %v3float %blend_set_color_luminance_Qh3h3hh3 %142 %144 %146 -%148 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%149 = OpLoad %v4float %148 -%150 = OpVectorShuffle %v3float %149 %149 0 1 2 -%151 = OpFAdd %v3float %147 %150 -%152 = OpLoad %v3float %_2_dsa -%153 = OpFSub %v3float %151 %152 -%154 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%155 = OpLoad %v4float %154 -%156 = OpVectorShuffle %v3float %155 %155 0 1 2 -%157 = OpFAdd %v3float %153 %156 -%158 = OpLoad %v3float %_1_sda -%159 = OpFSub %v3float %157 %158 -%160 = OpCompositeExtract %float %159 0 -%161 = OpCompositeExtract %float %159 1 -%162 = OpCompositeExtract %float %159 2 -%163 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%164 = OpLoad %v4float %163 -%165 = OpCompositeExtract %float %164 3 -%166 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%167 = OpLoad %v4float %166 -%168 = OpCompositeExtract %float %167 3 -%169 = OpFAdd %float %165 %168 -%170 = OpLoad %float %_0_alpha -%171 = OpFSub %float %169 %170 -%172 = OpCompositeConstruct %v4float %160 %161 %162 %171 -OpStore %sk_FragColor %172 +%main = OpFunction %void None %235 +%236 = OpLabel +%242 = OpVariable %_ptr_Function_v4float Function +%246 = OpVariable %_ptr_Function_v4float Function +%247 = OpVariable %_ptr_Function_bool Function +%248 = OpVariable %_ptr_Function_bool Function +%237 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 +%241 = OpLoad %v4float %237 +OpStore %242 %241 +%243 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 +%245 = OpLoad %v4float %243 +OpStore %246 %245 +OpStore %247 %false +OpStore %248 %false +%249 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %242 %246 %247 %248 +OpStore %sk_FragColor %249 OpReturn OpFunctionEnd diff --git a/third_party/skia/tests/sksl/blend/BlendColor.glsl b/third_party/skia/tests/sksl/blend/BlendColor.glsl index cc7d5165db2b..bcd31a237fce 100644 --- a/third_party/skia/tests/sksl/blend/BlendColor.glsl +++ b/third_party/skia/tests/sksl/blend/BlendColor.glsl @@ -2,23 +2,33 @@ out vec4 sk_FragColor; uniform vec4 src; uniform vec4 dst; -vec3 blend_set_color_luminance_Qh3h3hh3(vec3 hueSatColor, float alpha, vec3 lumColor) { - float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor); - vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor; - float minComp = min(min(result.x, result.y), result.z); - float maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0 && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); +float blend_color_saturation_Qhh3(vec3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); +} +vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) { + float alpha = dst.w * src.w; + vec3 sda = src.xyz * dst.w; + vec3 dsa = dst.xyz * src.w; + vec3 l = flip ? dsa : sda; + vec3 r = flip ? sda : dsa; + if (saturate) { + float _2_mn = min(min(l.x, l.y), l.z); + float _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0); + r = dsa; + } + float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r); + vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l; + float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0 && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } void main() { - float _0_alpha = dst.w * src.w; - vec3 _1_sda = src.xyz * dst.w; - vec3 _2_dsa = dst.xyz * src.w; - sk_FragColor = vec4((((blend_set_color_luminance_Qh3h3hh3(_1_sda, _0_alpha, _2_dsa) + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha); + sk_FragColor = blend_hslc_h4h4h4bb(src, dst, false, false); } diff --git a/third_party/skia/tests/sksl/blend/BlendColor.metal b/third_party/skia/tests/sksl/blend/BlendColor.metal index e1286a3d7a8b..d2e169d715a9 100644 --- a/third_party/skia/tests/sksl/blend/BlendColor.metal +++ b/third_party/skia/tests/sksl/blend/BlendColor.metal @@ -10,26 +10,36 @@ struct Inputs { struct Outputs { half4 sk_FragColor [[color(0)]]; }; -half3 blend_set_color_luminance_Qh3h3hh3(half3 hueSatColor, half alpha, half3 lumColor) { - half lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), lumColor); - half3 result = (lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), hueSatColor)) + hueSatColor; - half minComp = min(min(result.x, result.y), result.z); - half maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0h && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); +half blend_color_saturation_Qhh3(half3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); +} +half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) { + half alpha = dst.w * src.w; + half3 sda = src.xyz * dst.w; + half3 dsa = dst.xyz * src.w; + half3 l = flip ? dsa : sda; + half3 r = flip ? sda : dsa; + if (saturate) { + half _2_mn = min(min(l.x, l.y), l.z); + half _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : half3(0.0h); + r = dsa; + } + half _4_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r); + half3 _5_result = (_4_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l; + half _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + half _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0h && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return half4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { Outputs _out; (void)_out; - half _0_alpha = _uniforms.dst.w * _uniforms.src.w; - half3 _1_sda = _uniforms.src.xyz * _uniforms.dst.w; - half3 _2_dsa = _uniforms.dst.xyz * _uniforms.src.w; - _out.sk_FragColor = half4((((blend_set_color_luminance_Qh3h3hh3(_1_sda, _0_alpha, _2_dsa) + _uniforms.dst.xyz) - _2_dsa) + _uniforms.src.xyz) - _1_sda, (_uniforms.src.w + _uniforms.dst.w) - _0_alpha); + _out.sk_FragColor = blend_hslc_h4h4h4bb(_uniforms.src, _uniforms.dst, false, false); return _out; } diff --git a/third_party/skia/tests/sksl/blend/BlendColorBurn.asm.frag b/third_party/skia/tests/sksl/blend/BlendColorBurn.asm.frag index ab24fbc5f380..beef17e552ba 100644 --- a/third_party/skia/tests/sksl/blend/BlendColorBurn.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendColorBurn.asm.frag @@ -120,7 +120,7 @@ OpDecorate %142 RelaxedPrecision %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %v2float = OpTypeVector %float 2 %_ptr_Function_v2float = OpTypePointer Function %v2float -%15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float +%16 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float %float_1 = OpConstant %float 1 %float_0 = OpConstant %float 0 %_ptr_Function_float = OpTypePointer Function %float @@ -130,7 +130,7 @@ OpDecorate %142 RelaxedPrecision %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 -%color_burn_component_Qhh2h2 = OpFunction %float None %15 +%color_burn_component_Qhh2h2 = OpFunction %float None %16 %17 = OpFunctionParameter %_ptr_Function_v2float %18 = OpFunctionParameter %_ptr_Function_v2float %19 = OpLabel diff --git a/third_party/skia/tests/sksl/blend/BlendColorDodge.asm.frag b/third_party/skia/tests/sksl/blend/BlendColorDodge.asm.frag index 85c16fdc606b..00bfd596afef 100644 --- a/third_party/skia/tests/sksl/blend/BlendColorDodge.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendColorDodge.asm.frag @@ -117,7 +117,7 @@ OpDecorate %139 RelaxedPrecision %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %v2float = OpTypeVector %float 2 %_ptr_Function_v2float = OpTypePointer Function %v2float -%15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float +%16 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float %float_0 = OpConstant %float 0 %float_1 = OpConstant %float 1 %_ptr_Function_float = OpTypePointer Function %float @@ -127,7 +127,7 @@ OpDecorate %139 RelaxedPrecision %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 -%color_dodge_component_Qhh2h2 = OpFunction %float None %15 +%color_dodge_component_Qhh2h2 = OpFunction %float None %16 %17 = OpFunctionParameter %_ptr_Function_v2float %18 = OpFunctionParameter %_ptr_Function_v2float %19 = OpLabel diff --git a/third_party/skia/tests/sksl/blend/BlendColorStandaloneSettings.glsl b/third_party/skia/tests/sksl/blend/BlendColorStandaloneSettings.glsl index a1493de1c353..26575baafaf2 100644 --- a/third_party/skia/tests/sksl/blend/BlendColorStandaloneSettings.glsl +++ b/third_party/skia/tests/sksl/blend/BlendColorStandaloneSettings.glsl @@ -2,23 +2,33 @@ out vec4 sk_FragColor; uniform vec4 src; uniform vec4 dst; -vec3 blend_set_color_luminance_Qh3h3hh3(vec3 hueSatColor, float alpha, vec3 lumColor) { - float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor); - vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor; - float minComp = min(min(result.x, result.y), result.z); - float maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0 && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); +float blend_color_saturation_Qhh3(vec3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); +} +vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) { + float alpha = dst.w * src.w; + vec3 sda = src.xyz * dst.w; + vec3 dsa = dst.xyz * src.w; + vec3 l = flip ? dsa : sda; + vec3 r = flip ? sda : dsa; + if (saturate) { + float _2_mn = min(min(l.x, l.y), l.z); + float _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0); + r = dsa; + } + float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r); + vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l; + float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0 && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } void main() { - float _0_alpha = dst.w * src.w; - vec3 _1_sda = src.xyz * dst.w; - vec3 _2_dsa = dst.xyz * src.w; - sk_FragColor = vec4((((blend_set_color_luminance_Qh3h3hh3(_1_sda, _0_alpha, _2_dsa) + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha); + sk_FragColor = blend_hslc_h4h4h4bb(src, dst, false, false); } diff --git a/third_party/skia/tests/sksl/blend/BlendDarken.asm.frag b/third_party/skia/tests/sksl/blend/BlendDarken.asm.frag index 4b6e0c6200ba..3213227414d9 100644 --- a/third_party/skia/tests/sksl/blend/BlendDarken.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendDarken.asm.frag @@ -9,7 +9,8 @@ OpName %_UniformBuffer "_UniformBuffer" OpMemberName %_UniformBuffer 0 "src" OpMemberName %_UniformBuffer 1 "dst" OpName %main "main" -OpName %_0_result "_0_result" +OpName %_0_a "_0_a" +OpName %_1_b "_1_b" OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 @@ -21,7 +22,7 @@ OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 -OpDecorate %_0_result RelaxedPrecision +OpDecorate %_0_a RelaxedPrecision OpDecorate %22 RelaxedPrecision OpDecorate %25 RelaxedPrecision OpDecorate %26 RelaxedPrecision @@ -29,20 +30,22 @@ OpDecorate %27 RelaxedPrecision OpDecorate %30 RelaxedPrecision OpDecorate %31 RelaxedPrecision OpDecorate %32 RelaxedPrecision -OpDecorate %34 RelaxedPrecision -OpDecorate %35 RelaxedPrecision +OpDecorate %_1_b RelaxedPrecision +OpDecorate %37 RelaxedPrecision OpDecorate %38 RelaxedPrecision OpDecorate %39 RelaxedPrecision -OpDecorate %40 RelaxedPrecision +OpDecorate %41 RelaxedPrecision OpDecorate %42 RelaxedPrecision OpDecorate %43 RelaxedPrecision -OpDecorate %44 RelaxedPrecision +OpDecorate %45 RelaxedPrecision OpDecorate %46 RelaxedPrecision OpDecorate %47 RelaxedPrecision -OpDecorate %48 RelaxedPrecision OpDecorate %49 RelaxedPrecision OpDecorate %50 RelaxedPrecision OpDecorate %51 RelaxedPrecision +OpDecorate %52 RelaxedPrecision +OpDecorate %53 RelaxedPrecision +OpDecorate %54 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -62,9 +65,11 @@ OpDecorate %51 RelaxedPrecision %float_1 = OpConstant %float 1 %int_1 = OpConstant %int 1 %v3float = OpTypeVector %float 3 +%_ptr_Function_v3float = OpTypePointer Function %v3float %main = OpFunction %void None %14 %15 = OpLabel -%_0_result = OpVariable %_ptr_Function_v4float Function +%_0_a = OpVariable %_ptr_Function_v4float Function +%_1_b = OpVariable %_ptr_Function_v3float Function %18 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %22 = OpLoad %v4float %18 %24 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 @@ -75,26 +80,28 @@ OpDecorate %51 RelaxedPrecision %30 = OpLoad %v4float %28 %31 = OpVectorTimesScalar %v4float %30 %27 %32 = OpFAdd %v4float %22 %31 -OpStore %_0_result %32 -%34 = OpLoad %v4float %_0_result -%35 = OpVectorShuffle %v3float %34 %34 0 1 2 -%37 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%38 = OpLoad %v4float %37 -%39 = OpCompositeExtract %float %38 3 -%40 = OpFSub %float %float_1 %39 -%41 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%42 = OpLoad %v4float %41 -%43 = OpVectorShuffle %v3float %42 %42 0 1 2 -%44 = OpVectorTimesScalar %v3float %43 %40 -%45 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%46 = OpLoad %v4float %45 -%47 = OpVectorShuffle %v3float %46 %46 0 1 2 -%48 = OpFAdd %v3float %44 %47 -%33 = OpExtInst %v3float %1 FMin %35 %48 -%49 = OpLoad %v4float %_0_result -%50 = OpVectorShuffle %v4float %49 %33 4 5 6 3 -OpStore %_0_result %50 -%51 = OpLoad %v4float %_0_result -OpStore %sk_FragColor %51 +OpStore %_0_a %32 +%36 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%37 = OpLoad %v4float %36 +%38 = OpCompositeExtract %float %37 3 +%39 = OpFSub %float %float_1 %38 +%40 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%41 = OpLoad %v4float %40 +%42 = OpVectorShuffle %v3float %41 %41 0 1 2 +%43 = OpVectorTimesScalar %v3float %42 %39 +%44 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%45 = OpLoad %v4float %44 +%46 = OpVectorShuffle %v3float %45 %45 0 1 2 +%47 = OpFAdd %v3float %43 %46 +OpStore %_1_b %47 +%49 = OpLoad %v4float %_0_a +%50 = OpVectorShuffle %v3float %49 %49 0 1 2 +%51 = OpLoad %v3float %_1_b +%48 = OpExtInst %v3float %1 FMin %50 %51 +%52 = OpLoad %v4float %_0_a +%53 = OpVectorShuffle %v4float %52 %48 4 5 6 3 +OpStore %_0_a %53 +%54 = OpLoad %v4float %_0_a +OpStore %sk_FragColor %54 OpReturn OpFunctionEnd diff --git a/third_party/skia/tests/sksl/blend/BlendDarken.glsl b/third_party/skia/tests/sksl/blend/BlendDarken.glsl index 63a9bcd280ff..b78f9a12523d 100644 --- a/third_party/skia/tests/sksl/blend/BlendDarken.glsl +++ b/third_party/skia/tests/sksl/blend/BlendDarken.glsl @@ -3,7 +3,8 @@ out vec4 sk_FragColor; uniform vec4 src; uniform vec4 dst; void main() { - vec4 _0_result = src + (1.0 - src.w) * dst; - _0_result.xyz = min(_0_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz); - sk_FragColor = _0_result; + vec4 _0_a = src + (1.0 - src.w) * dst; + vec3 _1_b = (1.0 - dst.w) * src.xyz + dst.xyz; + _0_a.xyz = min(_0_a.xyz, _1_b); + sk_FragColor = _0_a; } diff --git a/third_party/skia/tests/sksl/blend/BlendDarken.metal b/third_party/skia/tests/sksl/blend/BlendDarken.metal index 0e898d15e2d3..a50357e73beb 100644 --- a/third_party/skia/tests/sksl/blend/BlendDarken.metal +++ b/third_party/skia/tests/sksl/blend/BlendDarken.metal @@ -13,8 +13,9 @@ struct Outputs { fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { Outputs _out; (void)_out; - half4 _0_result = _uniforms.src + (1.0h - _uniforms.src.w) * _uniforms.dst; - _0_result.xyz = min(_0_result.xyz, (1.0h - _uniforms.dst.w) * _uniforms.src.xyz + _uniforms.dst.xyz); - _out.sk_FragColor = _0_result; + half4 _0_a = _uniforms.src + (1.0h - _uniforms.src.w) * _uniforms.dst; + half3 _1_b = (1.0h - _uniforms.dst.w) * _uniforms.src.xyz + _uniforms.dst.xyz; + _0_a.xyz = min(_0_a.xyz, _1_b); + _out.sk_FragColor = _0_a; return _out; } diff --git a/third_party/skia/tests/sksl/blend/BlendDarkenStandaloneSettings.glsl b/third_party/skia/tests/sksl/blend/BlendDarkenStandaloneSettings.glsl index c28eb75c7aaa..c7ea71ba5c42 100644 --- a/third_party/skia/tests/sksl/blend/BlendDarkenStandaloneSettings.glsl +++ b/third_party/skia/tests/sksl/blend/BlendDarkenStandaloneSettings.glsl @@ -3,7 +3,8 @@ out vec4 sk_FragColor; uniform vec4 src; uniform vec4 dst; void main() { - vec4 _0_result = src + (1.0 - src.w) * dst; - _0_result.xyz = min(_0_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz); - sk_FragColor = _0_result; + vec4 _0_a = src + (1.0 - src.w) * dst; + vec3 _1_b = (1.0 - dst.w) * src.xyz + dst.xyz; + _0_a.xyz = min(_0_a.xyz, _1_b); + sk_FragColor = _0_a; } diff --git a/third_party/skia/tests/sksl/blend/BlendHardLight.asm.frag b/third_party/skia/tests/sksl/blend/BlendHardLight.asm.frag index 474c62d54ad0..f9e0e47ded71 100644 --- a/third_party/skia/tests/sksl/blend/BlendHardLight.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendHardLight.asm.frag @@ -9,8 +9,9 @@ OpName %_UniformBuffer "_UniformBuffer" OpMemberName %_UniformBuffer 0 "src" OpMemberName %_UniformBuffer 1 "dst" OpName %blend_overlay_component_Qhh2h2 "blend_overlay_component_Qhh2h2" +OpName %blend_overlay_h4h4h4 "blend_overlay_h4h4h4" +OpName %result "result" OpName %main "main" -OpName %_0_result "_0_result" OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 @@ -20,14 +21,13 @@ OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision OpMemberDecorate %_UniformBuffer 1 Offset 16 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpDecorate %_UniformBuffer Block -OpDecorate %11 Binding 0 -OpDecorate %11 DescriptorSet 0 -OpDecorate %21 RelaxedPrecision +OpDecorate %12 Binding 0 +OpDecorate %12 DescriptorSet 0 OpDecorate %22 RelaxedPrecision OpDecorate %23 RelaxedPrecision OpDecorate %24 RelaxedPrecision OpDecorate %25 RelaxedPrecision -OpDecorate %32 RelaxedPrecision +OpDecorate %26 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %35 RelaxedPrecision @@ -52,24 +52,35 @@ OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision OpDecorate %55 RelaxedPrecision OpDecorate %56 RelaxedPrecision -OpDecorate %_0_result RelaxedPrecision -OpDecorate %66 RelaxedPrecision +OpDecorate %57 RelaxedPrecision +OpDecorate %result RelaxedPrecision +OpDecorate %64 RelaxedPrecision +OpDecorate %65 RelaxedPrecision OpDecorate %67 RelaxedPrecision +OpDecorate %68 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %72 RelaxedPrecision -OpDecorate %76 RelaxedPrecision -OpDecorate %77 RelaxedPrecision -OpDecorate %80 RelaxedPrecision +OpDecorate %74 RelaxedPrecision +OpDecorate %75 RelaxedPrecision +OpDecorate %78 RelaxedPrecision +OpDecorate %79 RelaxedPrecision OpDecorate %81 RelaxedPrecision +OpDecorate %82 RelaxedPrecision OpDecorate %85 RelaxedPrecision OpDecorate %86 RelaxedPrecision +OpDecorate %88 RelaxedPrecision OpDecorate %89 RelaxedPrecision OpDecorate %90 RelaxedPrecision +OpDecorate %91 RelaxedPrecision +OpDecorate %92 RelaxedPrecision +OpDecorate %93 RelaxedPrecision OpDecorate %94 RelaxedPrecision OpDecorate %95 RelaxedPrecision -OpDecorate %98 RelaxedPrecision +OpDecorate %96 RelaxedPrecision +OpDecorate %97 RelaxedPrecision OpDecorate %99 RelaxedPrecision OpDecorate %100 RelaxedPrecision +OpDecorate %101 RelaxedPrecision OpDecorate %102 RelaxedPrecision OpDecorate %103 RelaxedPrecision OpDecorate %104 RelaxedPrecision @@ -77,23 +88,15 @@ OpDecorate %105 RelaxedPrecision OpDecorate %106 RelaxedPrecision OpDecorate %107 RelaxedPrecision OpDecorate %108 RelaxedPrecision +OpDecorate %109 RelaxedPrecision +OpDecorate %110 RelaxedPrecision OpDecorate %111 RelaxedPrecision OpDecorate %112 RelaxedPrecision +OpDecorate %113 RelaxedPrecision OpDecorate %114 RelaxedPrecision OpDecorate %115 RelaxedPrecision -OpDecorate %116 RelaxedPrecision -OpDecorate %117 RelaxedPrecision -OpDecorate %119 RelaxedPrecision -OpDecorate %120 RelaxedPrecision -OpDecorate %122 RelaxedPrecision OpDecorate %123 RelaxedPrecision -OpDecorate %124 RelaxedPrecision -OpDecorate %125 RelaxedPrecision -OpDecorate %126 RelaxedPrecision OpDecorate %127 RelaxedPrecision -OpDecorate %128 RelaxedPrecision -OpDecorate %129 RelaxedPrecision -OpDecorate %130 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -103,142 +106,145 @@ OpDecorate %130 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %_UniformBuffer = OpTypeStruct %v4float %v4float %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer -%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform +%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %v2float = OpTypeVector %float 2 %_ptr_Function_v2float = OpTypePointer Function %v2float -%15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float +%17 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float %float_2 = OpConstant %float 2 %_ptr_Function_float = OpTypePointer Function %float -%void = OpTypeVoid -%58 = OpTypeFunction %void %_ptr_Function_v4float = OpTypePointer Function %v4float +%59 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float +%float_1 = OpConstant %float 1 +%v3float = OpTypeVector %float 3 +%void = OpTypeVoid +%117 = OpTypeFunction %void %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_1 = OpConstant %int 1 %int_0 = OpConstant %int 0 -%float_1 = OpConstant %float 1 -%v3float = OpTypeVector %float 3 -%blend_overlay_component_Qhh2h2 = OpFunction %float None %15 -%17 = OpFunctionParameter %_ptr_Function_v2float +%blend_overlay_component_Qhh2h2 = OpFunction %float None %17 %18 = OpFunctionParameter %_ptr_Function_v2float -%19 = OpLabel -%27 = OpVariable %_ptr_Function_float Function -%21 = OpLoad %v2float %18 -%22 = OpCompositeExtract %float %21 0 -%23 = OpFMul %float %float_2 %22 -%24 = OpLoad %v2float %18 -%25 = OpCompositeExtract %float %24 1 -%26 = OpFOrdLessThanEqual %bool %23 %25 -OpSelectionMerge %31 None -OpBranchConditional %26 %29 %30 -%29 = OpLabel -%32 = OpLoad %v2float %17 -%33 = OpCompositeExtract %float %32 0 -%34 = OpFMul %float %float_2 %33 -%35 = OpLoad %v2float %18 -%36 = OpCompositeExtract %float %35 0 -%37 = OpFMul %float %34 %36 -OpStore %27 %37 -OpBranch %31 +%19 = OpFunctionParameter %_ptr_Function_v2float +%20 = OpLabel +%28 = OpVariable %_ptr_Function_float Function +%22 = OpLoad %v2float %19 +%23 = OpCompositeExtract %float %22 0 +%24 = OpFMul %float %float_2 %23 +%25 = OpLoad %v2float %19 +%26 = OpCompositeExtract %float %25 1 +%27 = OpFOrdLessThanEqual %bool %24 %26 +OpSelectionMerge %32 None +OpBranchConditional %27 %30 %31 %30 = OpLabel -%38 = OpLoad %v2float %17 -%39 = OpCompositeExtract %float %38 1 -%40 = OpLoad %v2float %18 -%41 = OpCompositeExtract %float %40 1 -%42 = OpFMul %float %39 %41 -%43 = OpLoad %v2float %18 -%44 = OpCompositeExtract %float %43 1 -%45 = OpLoad %v2float %18 -%46 = OpCompositeExtract %float %45 0 -%47 = OpFSub %float %44 %46 -%48 = OpFMul %float %float_2 %47 -%49 = OpLoad %v2float %17 -%50 = OpCompositeExtract %float %49 1 -%51 = OpLoad %v2float %17 -%52 = OpCompositeExtract %float %51 0 -%53 = OpFSub %float %50 %52 -%54 = OpFMul %float %48 %53 -%55 = OpFSub %float %42 %54 -OpStore %27 %55 -OpBranch %31 +%33 = OpLoad %v2float %18 +%34 = OpCompositeExtract %float %33 0 +%35 = OpFMul %float %float_2 %34 +%36 = OpLoad %v2float %19 +%37 = OpCompositeExtract %float %36 0 +%38 = OpFMul %float %35 %37 +OpStore %28 %38 +OpBranch %32 %31 = OpLabel -%56 = OpLoad %float %27 -OpReturnValue %56 +%39 = OpLoad %v2float %18 +%40 = OpCompositeExtract %float %39 1 +%41 = OpLoad %v2float %19 +%42 = OpCompositeExtract %float %41 1 +%43 = OpFMul %float %40 %42 +%44 = OpLoad %v2float %19 +%45 = OpCompositeExtract %float %44 1 +%46 = OpLoad %v2float %19 +%47 = OpCompositeExtract %float %46 0 +%48 = OpFSub %float %45 %47 +%49 = OpFMul %float %float_2 %48 +%50 = OpLoad %v2float %18 +%51 = OpCompositeExtract %float %50 1 +%52 = OpLoad %v2float %18 +%53 = OpCompositeExtract %float %52 0 +%54 = OpFSub %float %51 %53 +%55 = OpFMul %float %49 %54 +%56 = OpFSub %float %43 %55 +OpStore %28 %56 +OpBranch %32 +%32 = OpLabel +%57 = OpLoad %float %28 +OpReturnValue %57 OpFunctionEnd -%main = OpFunction %void None %58 -%59 = OpLabel -%_0_result = OpVariable %_ptr_Function_v4float Function -%68 = OpVariable %_ptr_Function_v2float Function +%blend_overlay_h4h4h4 = OpFunction %v4float None %59 +%60 = OpFunctionParameter %_ptr_Function_v4float +%61 = OpFunctionParameter %_ptr_Function_v4float +%62 = OpLabel +%result = OpVariable %_ptr_Function_v4float Function +%66 = OpVariable %_ptr_Function_v2float Function +%69 = OpVariable %_ptr_Function_v2float Function %73 = OpVariable %_ptr_Function_v2float Function -%78 = OpVariable %_ptr_Function_v2float Function -%82 = OpVariable %_ptr_Function_v2float Function -%87 = OpVariable %_ptr_Function_v2float Function -%91 = OpVariable %_ptr_Function_v2float Function -%62 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%66 = OpLoad %v4float %62 -%67 = OpVectorShuffle %v2float %66 %66 0 3 -OpStore %68 %67 -%69 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%71 = OpLoad %v4float %69 -%72 = OpVectorShuffle %v2float %71 %71 0 3 +%76 = OpVariable %_ptr_Function_v2float Function +%80 = OpVariable %_ptr_Function_v2float Function +%83 = OpVariable %_ptr_Function_v2float Function +%64 = OpLoad %v4float %60 +%65 = OpVectorShuffle %v2float %64 %64 0 3 +OpStore %66 %65 +%67 = OpLoad %v4float %61 +%68 = OpVectorShuffle %v2float %67 %67 0 3 +OpStore %69 %68 +%70 = OpFunctionCall %float %blend_overlay_component_Qhh2h2 %66 %69 +%71 = OpLoad %v4float %60 +%72 = OpVectorShuffle %v2float %71 %71 1 3 OpStore %73 %72 -%74 = OpFunctionCall %float %blend_overlay_component_Qhh2h2 %68 %73 -%75 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%76 = OpLoad %v4float %75 -%77 = OpVectorShuffle %v2float %76 %76 1 3 -OpStore %78 %77 -%79 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%80 = OpLoad %v4float %79 -%81 = OpVectorShuffle %v2float %80 %80 1 3 -OpStore %82 %81 -%83 = OpFunctionCall %float %blend_overlay_component_Qhh2h2 %78 %82 -%84 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%85 = OpLoad %v4float %84 -%86 = OpVectorShuffle %v2float %85 %85 2 3 -OpStore %87 %86 -%88 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%89 = OpLoad %v4float %88 -%90 = OpVectorShuffle %v2float %89 %89 2 3 -OpStore %91 %90 -%92 = OpFunctionCall %float %blend_overlay_component_Qhh2h2 %87 %91 -%93 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%94 = OpLoad %v4float %93 -%95 = OpCompositeExtract %float %94 3 -%97 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%98 = OpLoad %v4float %97 -%99 = OpCompositeExtract %float %98 3 -%100 = OpFSub %float %float_1 %99 -%101 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%102 = OpLoad %v4float %101 -%103 = OpCompositeExtract %float %102 3 -%104 = OpFMul %float %100 %103 -%105 = OpFAdd %float %95 %104 -%106 = OpCompositeConstruct %v4float %74 %83 %92 %105 -OpStore %_0_result %106 -%107 = OpLoad %v4float %_0_result -%108 = OpVectorShuffle %v3float %107 %107 0 1 2 -%110 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%111 = OpLoad %v4float %110 -%112 = OpVectorShuffle %v3float %111 %111 0 1 2 -%113 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%114 = OpLoad %v4float %113 -%115 = OpCompositeExtract %float %114 3 -%116 = OpFSub %float %float_1 %115 -%117 = OpVectorTimesScalar %v3float %112 %116 -%118 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%119 = OpLoad %v4float %118 -%120 = OpVectorShuffle %v3float %119 %119 0 1 2 -%121 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%122 = OpLoad %v4float %121 -%123 = OpCompositeExtract %float %122 3 -%124 = OpFSub %float %float_1 %123 -%125 = OpVectorTimesScalar %v3float %120 %124 -%126 = OpFAdd %v3float %117 %125 -%127 = OpFAdd %v3float %108 %126 -%128 = OpLoad %v4float %_0_result -%129 = OpVectorShuffle %v4float %128 %127 4 5 6 3 -OpStore %_0_result %129 -%130 = OpLoad %v4float %_0_result -OpStore %sk_FragColor %130 +%74 = OpLoad %v4float %61 +%75 = OpVectorShuffle %v2float %74 %74 1 3 +OpStore %76 %75 +%77 = OpFunctionCall %float %blend_overlay_component_Qhh2h2 %73 %76 +%78 = OpLoad %v4float %60 +%79 = OpVectorShuffle %v2float %78 %78 2 3 +OpStore %80 %79 +%81 = OpLoad %v4float %61 +%82 = OpVectorShuffle %v2float %81 %81 2 3 +OpStore %83 %82 +%84 = OpFunctionCall %float %blend_overlay_component_Qhh2h2 %80 %83 +%85 = OpLoad %v4float %60 +%86 = OpCompositeExtract %float %85 3 +%88 = OpLoad %v4float %60 +%89 = OpCompositeExtract %float %88 3 +%90 = OpFSub %float %float_1 %89 +%91 = OpLoad %v4float %61 +%92 = OpCompositeExtract %float %91 3 +%93 = OpFMul %float %90 %92 +%94 = OpFAdd %float %86 %93 +%95 = OpCompositeConstruct %v4float %70 %77 %84 %94 +OpStore %result %95 +%96 = OpLoad %v4float %result +%97 = OpVectorShuffle %v3float %96 %96 0 1 2 +%99 = OpLoad %v4float %61 +%100 = OpVectorShuffle %v3float %99 %99 0 1 2 +%101 = OpLoad %v4float %60 +%102 = OpCompositeExtract %float %101 3 +%103 = OpFSub %float %float_1 %102 +%104 = OpVectorTimesScalar %v3float %100 %103 +%105 = OpLoad %v4float %60 +%106 = OpVectorShuffle %v3float %105 %105 0 1 2 +%107 = OpLoad %v4float %61 +%108 = OpCompositeExtract %float %107 3 +%109 = OpFSub %float %float_1 %108 +%110 = OpVectorTimesScalar %v3float %106 %109 +%111 = OpFAdd %v3float %104 %110 +%112 = OpFAdd %v3float %97 %111 +%113 = OpLoad %v4float %result +%114 = OpVectorShuffle %v4float %113 %112 4 5 6 3 +OpStore %result %114 +%115 = OpLoad %v4float %result +OpReturnValue %115 +OpFunctionEnd +%main = OpFunction %void None %117 +%118 = OpLabel +%124 = OpVariable %_ptr_Function_v4float Function +%128 = OpVariable %_ptr_Function_v4float Function +%119 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 +%123 = OpLoad %v4float %119 +OpStore %124 %123 +%125 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 +%127 = OpLoad %v4float %125 +OpStore %128 %127 +%129 = OpFunctionCall %v4float %blend_overlay_h4h4h4 %124 %128 +OpStore %sk_FragColor %129 OpReturn OpFunctionEnd diff --git a/third_party/skia/tests/sksl/blend/BlendHardLight.glsl b/third_party/skia/tests/sksl/blend/BlendHardLight.glsl index db85c5dfd8d6..7eca4637de14 100644 --- a/third_party/skia/tests/sksl/blend/BlendHardLight.glsl +++ b/third_party/skia/tests/sksl/blend/BlendHardLight.glsl @@ -5,8 +5,11 @@ uniform vec4 dst; float blend_overlay_component_Qhh2h2(vec2 s, vec2 d) { return 2.0 * d.x <= d.y ? (2.0 * s.x) * d.x : s.y * d.y - (2.0 * (d.y - d.x)) * (s.y - s.x); } +vec4 blend_overlay_h4h4h4(vec4 src, vec4 dst) { + vec4 result = vec4(blend_overlay_component_Qhh2h2(src.xw, dst.xw), blend_overlay_component_Qhh2h2(src.yw, dst.yw), blend_overlay_component_Qhh2h2(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w); + result.xyz += dst.xyz * (1.0 - src.w) + src.xyz * (1.0 - dst.w); + return result; +} void main() { - vec4 _0_result = vec4(blend_overlay_component_Qhh2h2(dst.xw, src.xw), blend_overlay_component_Qhh2h2(dst.yw, src.yw), blend_overlay_component_Qhh2h2(dst.zw, src.zw), dst.w + (1.0 - dst.w) * src.w); - _0_result.xyz += src.xyz * (1.0 - dst.w) + dst.xyz * (1.0 - src.w); - sk_FragColor = _0_result; + sk_FragColor = blend_overlay_h4h4h4(dst, src); } diff --git a/third_party/skia/tests/sksl/blend/BlendHardLight.metal b/third_party/skia/tests/sksl/blend/BlendHardLight.metal index 34fad6032268..9048f9399282 100644 --- a/third_party/skia/tests/sksl/blend/BlendHardLight.metal +++ b/third_party/skia/tests/sksl/blend/BlendHardLight.metal @@ -13,11 +13,14 @@ struct Outputs { half blend_overlay_component_Qhh2h2(half2 s, half2 d) { return 2.0h * d.x <= d.y ? (2.0h * s.x) * d.x : s.y * d.y - (2.0h * (d.y - d.x)) * (s.y - s.x); } +half4 blend_overlay_h4h4h4(half4 src, half4 dst) { + half4 result = half4(blend_overlay_component_Qhh2h2(src.xw, dst.xw), blend_overlay_component_Qhh2h2(src.yw, dst.yw), blend_overlay_component_Qhh2h2(src.zw, dst.zw), src.w + (1.0h - src.w) * dst.w); + result.xyz = result.xyz + dst.xyz * (1.0h - src.w) + src.xyz * (1.0h - dst.w); + return result; +} fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { Outputs _out; (void)_out; - half4 _0_result = half4(blend_overlay_component_Qhh2h2(_uniforms.dst.xw, _uniforms.src.xw), blend_overlay_component_Qhh2h2(_uniforms.dst.yw, _uniforms.src.yw), blend_overlay_component_Qhh2h2(_uniforms.dst.zw, _uniforms.src.zw), _uniforms.dst.w + (1.0h - _uniforms.dst.w) * _uniforms.src.w); - _0_result.xyz = _0_result.xyz + _uniforms.src.xyz * (1.0h - _uniforms.dst.w) + _uniforms.dst.xyz * (1.0h - _uniforms.src.w); - _out.sk_FragColor = _0_result; + _out.sk_FragColor = blend_overlay_h4h4h4(_uniforms.dst, _uniforms.src); return _out; } diff --git a/third_party/skia/tests/sksl/blend/BlendHardLightStandaloneSettings.glsl b/third_party/skia/tests/sksl/blend/BlendHardLightStandaloneSettings.glsl index ffaf1feedc72..2511adce2392 100644 --- a/third_party/skia/tests/sksl/blend/BlendHardLightStandaloneSettings.glsl +++ b/third_party/skia/tests/sksl/blend/BlendHardLightStandaloneSettings.glsl @@ -5,8 +5,11 @@ uniform vec4 dst; float blend_overlay_component_Qhh2h2(vec2 s, vec2 d) { return 2.0 * d.x <= d.y ? (2.0 * s.x) * d.x : s.y * d.y - (2.0 * (d.y - d.x)) * (s.y - s.x); } +vec4 blend_overlay_h4h4h4(vec4 src, vec4 dst) { + vec4 result = vec4(blend_overlay_component_Qhh2h2(src.xw, dst.xw), blend_overlay_component_Qhh2h2(src.yw, dst.yw), blend_overlay_component_Qhh2h2(src.zw, dst.zw), src.w + (1.0 - src.w) * dst.w); + result.xyz += dst.xyz * (1.0 - src.w) + src.xyz * (1.0 - dst.w); + return result; +} void main() { - vec4 _0_result = vec4(blend_overlay_component_Qhh2h2(dst.xw, src.xw), blend_overlay_component_Qhh2h2(dst.yw, src.yw), blend_overlay_component_Qhh2h2(dst.zw, src.zw), dst.w + (1.0 - dst.w) * src.w); - _0_result.xyz += src.xyz * (1.0 - dst.w) + dst.xyz * (1.0 - src.w); - sk_FragColor = _0_result; + sk_FragColor = blend_overlay_h4h4h4(dst, src); } diff --git a/third_party/skia/tests/sksl/blend/BlendHue.asm.frag b/third_party/skia/tests/sksl/blend/BlendHue.asm.frag index 93992819c19d..d169878d3078 100644 --- a/third_party/skia/tests/sksl/blend/BlendHue.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendHue.asm.frag @@ -8,18 +8,20 @@ OpName %sk_Clockwise "sk_Clockwise" OpName %_UniformBuffer "_UniformBuffer" OpMemberName %_UniformBuffer 0 "src" OpMemberName %_UniformBuffer 1 "dst" -OpName %blend_set_color_luminance_Qh3h3hh3 "blend_set_color_luminance_Qh3h3hh3" -OpName %lum "lum" -OpName %result "result" -OpName %minComp "minComp" -OpName %maxComp "maxComp" -OpName %blend_set_color_saturation_helper_Qh3h3h "blend_set_color_saturation_helper_Qh3h3h" -OpName %blend_set_color_saturation_Qh3h3h3 "blend_set_color_saturation_Qh3h3h3" -OpName %sat "sat" +OpName %blend_color_saturation_Qhh3 "blend_color_saturation_Qhh3" +OpName %blend_hslc_h4h4h4bb "blend_hslc_h4h4h4bb" +OpName %alpha "alpha" +OpName %sda "sda" +OpName %dsa "dsa" +OpName %l "l" +OpName %r "r" +OpName %_2_mn "_2_mn" +OpName %_3_mx "_3_mx" +OpName %_4_lum "_4_lum" +OpName %_5_result "_5_result" +OpName %_6_minComp "_6_minComp" +OpName %_7_maxComp "_7_maxComp" OpName %main "main" -OpName %_0_alpha "_0_alpha" -OpName %_1_sda "_1_sda" -OpName %_2_dsa "_2_dsa" OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 @@ -29,57 +31,58 @@ OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision OpMemberDecorate %_UniformBuffer 1 Offset 16 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpDecorate %_UniformBuffer Block -OpDecorate %13 Binding 0 -OpDecorate %13 DescriptorSet 0 -OpDecorate %lum RelaxedPrecision +OpDecorate %12 Binding 0 +OpDecorate %12 DescriptorSet 0 +OpDecorate %22 RelaxedPrecision +OpDecorate %23 RelaxedPrecision +OpDecorate %24 RelaxedPrecision OpDecorate %25 RelaxedPrecision -OpDecorate %29 RelaxedPrecision +OpDecorate %26 RelaxedPrecision +OpDecorate %27 RelaxedPrecision OpDecorate %30 RelaxedPrecision -OpDecorate %result RelaxedPrecision +OpDecorate %31 RelaxedPrecision OpDecorate %32 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %35 RelaxedPrecision OpDecorate %36 RelaxedPrecision -OpDecorate %37 RelaxedPrecision -OpDecorate %38 RelaxedPrecision -OpDecorate %minComp RelaxedPrecision -OpDecorate %42 RelaxedPrecision -OpDecorate %43 RelaxedPrecision -OpDecorate %44 RelaxedPrecision -OpDecorate %45 RelaxedPrecision -OpDecorate %46 RelaxedPrecision +OpDecorate %alpha RelaxedPrecision OpDecorate %47 RelaxedPrecision -OpDecorate %maxComp RelaxedPrecision +OpDecorate %48 RelaxedPrecision +OpDecorate %49 RelaxedPrecision +OpDecorate %50 RelaxedPrecision OpDecorate %51 RelaxedPrecision -OpDecorate %52 RelaxedPrecision +OpDecorate %sda RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision OpDecorate %55 RelaxedPrecision OpDecorate %56 RelaxedPrecision -OpDecorate %58 RelaxedPrecision +OpDecorate %57 RelaxedPrecision +OpDecorate %dsa RelaxedPrecision +OpDecorate %59 RelaxedPrecision +OpDecorate %60 RelaxedPrecision +OpDecorate %61 RelaxedPrecision +OpDecorate %62 RelaxedPrecision OpDecorate %63 RelaxedPrecision -OpDecorate %64 RelaxedPrecision -OpDecorate %69 RelaxedPrecision +OpDecorate %l RelaxedPrecision +OpDecorate %65 RelaxedPrecision OpDecorate %70 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %72 RelaxedPrecision -OpDecorate %73 RelaxedPrecision +OpDecorate %r RelaxedPrecision OpDecorate %74 RelaxedPrecision -OpDecorate %75 RelaxedPrecision -OpDecorate %76 RelaxedPrecision -OpDecorate %77 RelaxedPrecision -OpDecorate %78 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %82 RelaxedPrecision -OpDecorate %83 RelaxedPrecision -OpDecorate %87 RelaxedPrecision +OpDecorate %_2_mn RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %94 RelaxedPrecision -OpDecorate %95 RelaxedPrecision -OpDecorate %96 RelaxedPrecision +OpDecorate %89 RelaxedPrecision +OpDecorate %90 RelaxedPrecision +OpDecorate %91 RelaxedPrecision +OpDecorate %92 RelaxedPrecision +OpDecorate %93 RelaxedPrecision +OpDecorate %_3_mx RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %98 RelaxedPrecision OpDecorate %99 RelaxedPrecision @@ -88,131 +91,104 @@ OpDecorate %101 RelaxedPrecision OpDecorate %102 RelaxedPrecision OpDecorate %103 RelaxedPrecision OpDecorate %104 RelaxedPrecision -OpDecorate %105 RelaxedPrecision -OpDecorate %107 RelaxedPrecision -OpDecorate %108 RelaxedPrecision -OpDecorate %109 RelaxedPrecision OpDecorate %110 RelaxedPrecision OpDecorate %111 RelaxedPrecision -OpDecorate %116 RelaxedPrecision +OpDecorate %112 RelaxedPrecision +OpDecorate %113 RelaxedPrecision +OpDecorate %114 RelaxedPrecision OpDecorate %117 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %119 RelaxedPrecision -OpDecorate %124 RelaxedPrecision -OpDecorate %125 RelaxedPrecision +OpDecorate %120 RelaxedPrecision +OpDecorate %122 RelaxedPrecision +OpDecorate %123 RelaxedPrecision OpDecorate %126 RelaxedPrecision OpDecorate %127 RelaxedPrecision -OpDecorate %128 RelaxedPrecision +OpDecorate %_4_lum RelaxedPrecision OpDecorate %129 RelaxedPrecision -OpDecorate %130 RelaxedPrecision -OpDecorate %131 RelaxedPrecision -OpDecorate %132 RelaxedPrecision -OpDecorate %133 RelaxedPrecision OpDecorate %134 RelaxedPrecision -OpDecorate %135 RelaxedPrecision +OpDecorate %_5_result RelaxedPrecision OpDecorate %136 RelaxedPrecision OpDecorate %137 RelaxedPrecision OpDecorate %138 RelaxedPrecision OpDecorate %139 RelaxedPrecision -OpDecorate %sat RelaxedPrecision +OpDecorate %140 RelaxedPrecision +OpDecorate %141 RelaxedPrecision +OpDecorate %142 RelaxedPrecision +OpDecorate %_6_minComp RelaxedPrecision +OpDecorate %146 RelaxedPrecision OpDecorate %147 RelaxedPrecision OpDecorate %148 RelaxedPrecision OpDecorate %149 RelaxedPrecision OpDecorate %150 RelaxedPrecision OpDecorate %151 RelaxedPrecision -OpDecorate %152 RelaxedPrecision +OpDecorate %_7_maxComp RelaxedPrecision OpDecorate %155 RelaxedPrecision OpDecorate %156 RelaxedPrecision OpDecorate %157 RelaxedPrecision OpDecorate %158 RelaxedPrecision OpDecorate %159 RelaxedPrecision OpDecorate %160 RelaxedPrecision -OpDecorate %161 RelaxedPrecision OpDecorate %162 RelaxedPrecision -OpDecorate %163 RelaxedPrecision -OpDecorate %164 RelaxedPrecision -OpDecorate %165 RelaxedPrecision -OpDecorate %170 RelaxedPrecision -OpDecorate %171 RelaxedPrecision +OpDecorate %166 RelaxedPrecision +OpDecorate %167 RelaxedPrecision OpDecorate %172 RelaxedPrecision OpDecorate %173 RelaxedPrecision +OpDecorate %174 RelaxedPrecision +OpDecorate %175 RelaxedPrecision +OpDecorate %176 RelaxedPrecision +OpDecorate %177 RelaxedPrecision OpDecorate %178 RelaxedPrecision +OpDecorate %179 RelaxedPrecision OpDecorate %180 RelaxedPrecision +OpDecorate %181 RelaxedPrecision +OpDecorate %182 RelaxedPrecision OpDecorate %183 RelaxedPrecision OpDecorate %184 RelaxedPrecision OpDecorate %185 RelaxedPrecision OpDecorate %186 RelaxedPrecision +OpDecorate %190 RelaxedPrecision OpDecorate %191 RelaxedPrecision -OpDecorate %192 RelaxedPrecision -OpDecorate %194 RelaxedPrecision +OpDecorate %196 RelaxedPrecision OpDecorate %197 RelaxedPrecision OpDecorate %198 RelaxedPrecision OpDecorate %199 RelaxedPrecision +OpDecorate %200 RelaxedPrecision OpDecorate %201 RelaxedPrecision +OpDecorate %202 RelaxedPrecision +OpDecorate %203 RelaxedPrecision OpDecorate %204 RelaxedPrecision OpDecorate %205 RelaxedPrecision OpDecorate %206 RelaxedPrecision OpDecorate %207 RelaxedPrecision OpDecorate %208 RelaxedPrecision +OpDecorate %209 RelaxedPrecision +OpDecorate %210 RelaxedPrecision +OpDecorate %211 RelaxedPrecision +OpDecorate %212 RelaxedPrecision OpDecorate %213 RelaxedPrecision OpDecorate %214 RelaxedPrecision +OpDecorate %215 RelaxedPrecision OpDecorate %216 RelaxedPrecision +OpDecorate %217 RelaxedPrecision +OpDecorate %218 RelaxedPrecision OpDecorate %219 RelaxedPrecision OpDecorate %220 RelaxedPrecision OpDecorate %221 RelaxedPrecision OpDecorate %222 RelaxedPrecision OpDecorate %223 RelaxedPrecision +OpDecorate %224 RelaxedPrecision +OpDecorate %225 RelaxedPrecision +OpDecorate %226 RelaxedPrecision +OpDecorate %227 RelaxedPrecision OpDecorate %228 RelaxedPrecision OpDecorate %229 RelaxedPrecision +OpDecorate %230 RelaxedPrecision OpDecorate %231 RelaxedPrecision -OpDecorate %234 RelaxedPrecision -OpDecorate %235 RelaxedPrecision -OpDecorate %236 RelaxedPrecision -OpDecorate %238 RelaxedPrecision +OpDecorate %232 RelaxedPrecision +OpDecorate %233 RelaxedPrecision OpDecorate %241 RelaxedPrecision -OpDecorate %_0_alpha RelaxedPrecision -OpDecorate %250 RelaxedPrecision -OpDecorate %251 RelaxedPrecision -OpDecorate %254 RelaxedPrecision -OpDecorate %255 RelaxedPrecision -OpDecorate %256 RelaxedPrecision -OpDecorate %_1_sda RelaxedPrecision -OpDecorate %259 RelaxedPrecision -OpDecorate %260 RelaxedPrecision -OpDecorate %262 RelaxedPrecision -OpDecorate %263 RelaxedPrecision -OpDecorate %264 RelaxedPrecision -OpDecorate %_2_dsa RelaxedPrecision -OpDecorate %267 RelaxedPrecision -OpDecorate %268 RelaxedPrecision -OpDecorate %270 RelaxedPrecision -OpDecorate %271 RelaxedPrecision -OpDecorate %272 RelaxedPrecision -OpDecorate %273 RelaxedPrecision -OpDecorate %275 RelaxedPrecision -OpDecorate %279 RelaxedPrecision -OpDecorate %281 RelaxedPrecision -OpDecorate %285 RelaxedPrecision -OpDecorate %286 RelaxedPrecision -OpDecorate %287 RelaxedPrecision -OpDecorate %288 RelaxedPrecision -OpDecorate %289 RelaxedPrecision -OpDecorate %291 RelaxedPrecision -OpDecorate %292 RelaxedPrecision -OpDecorate %293 RelaxedPrecision -OpDecorate %294 RelaxedPrecision -OpDecorate %295 RelaxedPrecision -OpDecorate %296 RelaxedPrecision -OpDecorate %297 RelaxedPrecision -OpDecorate %298 RelaxedPrecision -OpDecorate %300 RelaxedPrecision -OpDecorate %301 RelaxedPrecision -OpDecorate %303 RelaxedPrecision -OpDecorate %304 RelaxedPrecision -OpDecorate %305 RelaxedPrecision -OpDecorate %306 RelaxedPrecision -OpDecorate %307 RelaxedPrecision -OpDecorate %308 RelaxedPrecision +OpDecorate %245 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -222,373 +198,303 @@ OpDecorate %308 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %_UniformBuffer = OpTypeStruct %v4float %v4float %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer -%13 = OpVariable %_ptr_Uniform__UniformBuffer Uniform +%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %v3float = OpTypeVector %float 3 %_ptr_Function_v3float = OpTypePointer Function %v3float +%17 = OpTypeFunction %float %_ptr_Function_v3float +%_ptr_Function_v4float = OpTypePointer Function %v4float +%_ptr_Function_bool = OpTypePointer Function %bool +%39 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool %_ptr_Function_float = OpTypePointer Function %float -%17 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_float %_ptr_Function_v3float +%float_1 = OpConstant %float 1 +%float_0 = OpConstant %float 0 +%125 = OpConstantComposite %v3float %float_0 %float_0 %float_0 %float_0_300000012 = OpConstant %float 0.300000012 %float_0_589999974 = OpConstant %float 0.589999974 %float_0_109999999 = OpConstant %float 0.109999999 -%29 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999 +%133 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999 %false = OpConstantFalse %bool -%float_0 = OpConstant %float 0 -%float_1 = OpConstant %float 1 -%112 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_float -%139 = OpConstantComposite %v3float %float_0 %float_0 %float_0 -%140 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_v3float %void = OpTypeVoid -%243 = OpTypeFunction %void +%235 = OpTypeFunction %void %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 -%int_1 = OpConstant %int 1 %int_0 = OpConstant %int 0 -%blend_set_color_luminance_Qh3h3hh3 = OpFunction %v3float None %17 -%20 = OpFunctionParameter %_ptr_Function_v3float -%21 = OpFunctionParameter %_ptr_Function_float -%22 = OpFunctionParameter %_ptr_Function_v3float -%23 = OpLabel -%lum = OpVariable %_ptr_Function_float Function -%result = OpVariable %_ptr_Function_v3float Function -%minComp = OpVariable %_ptr_Function_float Function -%maxComp = OpVariable %_ptr_Function_float Function -%30 = OpLoad %v3float %22 -%25 = OpDot %float %29 %30 -OpStore %lum %25 -%32 = OpLoad %float %lum -%34 = OpLoad %v3float %20 -%33 = OpDot %float %29 %34 -%35 = OpFSub %float %32 %33 -%36 = OpLoad %v3float %20 -%37 = OpCompositeConstruct %v3float %35 %35 %35 -%38 = OpFAdd %v3float %37 %36 -OpStore %result %38 -%42 = OpLoad %v3float %result -%43 = OpCompositeExtract %float %42 0 -%44 = OpLoad %v3float %result -%45 = OpCompositeExtract %float %44 1 -%41 = OpExtInst %float %1 FMin %43 %45 -%46 = OpLoad %v3float %result -%47 = OpCompositeExtract %float %46 2 -%40 = OpExtInst %float %1 FMin %41 %47 -OpStore %minComp %40 -%51 = OpLoad %v3float %result -%52 = OpCompositeExtract %float %51 0 -%53 = OpLoad %v3float %result -%54 = OpCompositeExtract %float %53 1 -%50 = OpExtInst %float %1 FMax %52 %54 -%55 = OpLoad %v3float %result -%56 = OpCompositeExtract %float %55 2 -%49 = OpExtInst %float %1 FMax %50 %56 -OpStore %maxComp %49 -%58 = OpLoad %float %minComp -%60 = OpFOrdLessThan %bool %58 %float_0 -OpSelectionMerge %62 None -OpBranchConditional %60 %61 %62 -%61 = OpLabel -%63 = OpLoad %float %lum -%64 = OpLoad %float %minComp -%65 = OpFOrdNotEqual %bool %63 %64 -OpBranch %62 -%62 = OpLabel -%66 = OpPhi %bool %false %23 %65 %61 -OpSelectionMerge %68 None -OpBranchConditional %66 %67 %68 +%int_1 = OpConstant %int 1 +%true = OpConstantTrue %bool +%blend_color_saturation_Qhh3 = OpFunction %float None %17 +%18 = OpFunctionParameter %_ptr_Function_v3float +%19 = OpLabel +%22 = OpLoad %v3float %18 +%23 = OpCompositeExtract %float %22 0 +%24 = OpLoad %v3float %18 +%25 = OpCompositeExtract %float %24 1 +%21 = OpExtInst %float %1 FMax %23 %25 +%26 = OpLoad %v3float %18 +%27 = OpCompositeExtract %float %26 2 +%20 = OpExtInst %float %1 FMax %21 %27 +%30 = OpLoad %v3float %18 +%31 = OpCompositeExtract %float %30 0 +%32 = OpLoad %v3float %18 +%33 = OpCompositeExtract %float %32 1 +%29 = OpExtInst %float %1 FMin %31 %33 +%34 = OpLoad %v3float %18 +%35 = OpCompositeExtract %float %34 2 +%28 = OpExtInst %float %1 FMin %29 %35 +%36 = OpFSub %float %20 %28 +OpReturnValue %36 +OpFunctionEnd +%blend_hslc_h4h4h4bb = OpFunction %v4float None %39 +%40 = OpFunctionParameter %_ptr_Function_v4float +%41 = OpFunctionParameter %_ptr_Function_v4float +%42 = OpFunctionParameter %_ptr_Function_bool +%43 = OpFunctionParameter %_ptr_Function_bool +%44 = OpLabel +%alpha = OpVariable %_ptr_Function_float Function +%sda = OpVariable %_ptr_Function_v3float Function +%dsa = OpVariable %_ptr_Function_v3float Function +%l = OpVariable %_ptr_Function_v3float Function +%66 = OpVariable %_ptr_Function_v3float Function +%r = OpVariable %_ptr_Function_v3float Function +%75 = OpVariable %_ptr_Function_v3float Function +%_2_mn = OpVariable %_ptr_Function_float Function +%_3_mx = OpVariable %_ptr_Function_float Function +%106 = OpVariable %_ptr_Function_v3float Function +%115 = OpVariable %_ptr_Function_v3float Function +%_4_lum = OpVariable %_ptr_Function_float Function +%_5_result = OpVariable %_ptr_Function_v3float Function +%_6_minComp = OpVariable %_ptr_Function_float Function +%_7_maxComp = OpVariable %_ptr_Function_float Function +%47 = OpLoad %v4float %41 +%48 = OpCompositeExtract %float %47 3 +%49 = OpLoad %v4float %40 +%50 = OpCompositeExtract %float %49 3 +%51 = OpFMul %float %48 %50 +OpStore %alpha %51 +%53 = OpLoad %v4float %40 +%54 = OpVectorShuffle %v3float %53 %53 0 1 2 +%55 = OpLoad %v4float %41 +%56 = OpCompositeExtract %float %55 3 +%57 = OpVectorTimesScalar %v3float %54 %56 +OpStore %sda %57 +%59 = OpLoad %v4float %41 +%60 = OpVectorShuffle %v3float %59 %59 0 1 2 +%61 = OpLoad %v4float %40 +%62 = OpCompositeExtract %float %61 3 +%63 = OpVectorTimesScalar %v3float %60 %62 +OpStore %dsa %63 +%65 = OpLoad %bool %42 +OpSelectionMerge %69 None +OpBranchConditional %65 %67 %68 %67 = OpLabel -%69 = OpLoad %float %lum -%70 = OpLoad %v3float %result -%71 = OpLoad %float %lum -%72 = OpCompositeConstruct %v3float %71 %71 %71 -%73 = OpFSub %v3float %70 %72 -%74 = OpLoad %float %lum -%75 = OpLoad %float %lum -%76 = OpLoad %float %minComp -%77 = OpFSub %float %75 %76 -%78 = OpFDiv %float %74 %77 -%79 = OpVectorTimesScalar %v3float %73 %78 -%80 = OpCompositeConstruct %v3float %69 %69 %69 -%81 = OpFAdd %v3float %80 %79 -OpStore %result %81 -OpBranch %68 +%70 = OpLoad %v3float %dsa +OpStore %66 %70 +OpBranch %69 %68 = OpLabel -%82 = OpLoad %float %maxComp -%83 = OpLoad %float %21 -%84 = OpFOrdGreaterThan %bool %82 %83 -OpSelectionMerge %86 None -OpBranchConditional %84 %85 %86 -%85 = OpLabel -%87 = OpLoad %float %maxComp -%88 = OpLoad %float %lum -%89 = OpFOrdNotEqual %bool %87 %88 -OpBranch %86 -%86 = OpLabel -%90 = OpPhi %bool %false %68 %89 %85 -OpSelectionMerge %93 None -OpBranchConditional %90 %91 %92 -%91 = OpLabel -%94 = OpLoad %float %lum -%95 = OpLoad %v3float %result -%96 = OpLoad %float %lum -%97 = OpCompositeConstruct %v3float %96 %96 %96 -%98 = OpFSub %v3float %95 %97 -%99 = OpLoad %float %21 -%100 = OpLoad %float %lum -%101 = OpFSub %float %99 %100 -%102 = OpVectorTimesScalar %v3float %98 %101 -%103 = OpLoad %float %maxComp -%104 = OpLoad %float %lum -%105 = OpFSub %float %103 %104 -%107 = OpFDiv %float %float_1 %105 -%108 = OpVectorTimesScalar %v3float %102 %107 -%109 = OpCompositeConstruct %v3float %94 %94 %94 -%110 = OpFAdd %v3float %109 %108 -OpReturnValue %110 -%92 = OpLabel -%111 = OpLoad %v3float %result -OpReturnValue %111 -%93 = OpLabel -OpUnreachable -OpFunctionEnd -%blend_set_color_saturation_helper_Qh3h3h = OpFunction %v3float None %112 -%113 = OpFunctionParameter %_ptr_Function_v3float -%114 = OpFunctionParameter %_ptr_Function_float -%115 = OpLabel -%116 = OpLoad %v3float %113 -%117 = OpCompositeExtract %float %116 0 -%118 = OpLoad %v3float %113 -%119 = OpCompositeExtract %float %118 2 -%120 = OpFOrdLessThan %bool %117 %119 -OpSelectionMerge %123 None -OpBranchConditional %120 %121 %122 -%121 = OpLabel -%124 = OpLoad %float %114 -%125 = OpLoad %v3float %113 -%126 = OpCompositeExtract %float %125 1 -%127 = OpLoad %v3float %113 -%128 = OpCompositeExtract %float %127 0 -%129 = OpFSub %float %126 %128 -%130 = OpFMul %float %124 %129 -%131 = OpLoad %v3float %113 -%132 = OpCompositeExtract %float %131 2 -%133 = OpLoad %v3float %113 -%134 = OpCompositeExtract %float %133 0 -%135 = OpFSub %float %132 %134 -%136 = OpFDiv %float %130 %135 -%137 = OpLoad %float %114 -%138 = OpCompositeConstruct %v3float %float_0 %136 %137 -OpReturnValue %138 -%122 = OpLabel -OpReturnValue %139 -%123 = OpLabel -OpUnreachable -OpFunctionEnd -%blend_set_color_saturation_Qh3h3h3 = OpFunction %v3float None %140 -%141 = OpFunctionParameter %_ptr_Function_v3float -%142 = OpFunctionParameter %_ptr_Function_v3float -%143 = OpLabel -%sat = OpVariable %_ptr_Function_float Function -%179 = OpVariable %_ptr_Function_v3float Function -%181 = OpVariable %_ptr_Function_float Function -%193 = OpVariable %_ptr_Function_v3float Function -%195 = OpVariable %_ptr_Function_float Function -%200 = OpVariable %_ptr_Function_v3float Function -%202 = OpVariable %_ptr_Function_float Function -%215 = OpVariable %_ptr_Function_v3float Function -%217 = OpVariable %_ptr_Function_float Function -%230 = OpVariable %_ptr_Function_v3float Function -%232 = OpVariable %_ptr_Function_float Function -%237 = OpVariable %_ptr_Function_v3float Function -%239 = OpVariable %_ptr_Function_float Function -%147 = OpLoad %v3float %142 -%148 = OpCompositeExtract %float %147 0 -%149 = OpLoad %v3float %142 -%150 = OpCompositeExtract %float %149 1 -%146 = OpExtInst %float %1 FMax %148 %150 -%151 = OpLoad %v3float %142 -%152 = OpCompositeExtract %float %151 2 -%145 = OpExtInst %float %1 FMax %146 %152 -%155 = OpLoad %v3float %142 +%71 = OpLoad %v3float %sda +OpStore %66 %71 +OpBranch %69 +%69 = OpLabel +%72 = OpLoad %v3float %66 +OpStore %l %72 +%74 = OpLoad %bool %42 +OpSelectionMerge %78 None +OpBranchConditional %74 %76 %77 +%76 = OpLabel +%79 = OpLoad %v3float %sda +OpStore %75 %79 +OpBranch %78 +%77 = OpLabel +%80 = OpLoad %v3float %dsa +OpStore %75 %80 +OpBranch %78 +%78 = OpLabel +%81 = OpLoad %v3float %75 +OpStore %r %81 +%82 = OpLoad %bool %43 +OpSelectionMerge %84 None +OpBranchConditional %82 %83 %84 +%83 = OpLabel +%88 = OpLoad %v3float %l +%89 = OpCompositeExtract %float %88 0 +%90 = OpLoad %v3float %l +%91 = OpCompositeExtract %float %90 1 +%87 = OpExtInst %float %1 FMin %89 %91 +%92 = OpLoad %v3float %l +%93 = OpCompositeExtract %float %92 2 +%86 = OpExtInst %float %1 FMin %87 %93 +OpStore %_2_mn %86 +%97 = OpLoad %v3float %l +%98 = OpCompositeExtract %float %97 0 +%99 = OpLoad %v3float %l +%100 = OpCompositeExtract %float %99 1 +%96 = OpExtInst %float %1 FMax %98 %100 +%101 = OpLoad %v3float %l +%102 = OpCompositeExtract %float %101 2 +%95 = OpExtInst %float %1 FMax %96 %102 +OpStore %_3_mx %95 +%103 = OpLoad %float %_3_mx +%104 = OpLoad %float %_2_mn +%105 = OpFOrdGreaterThan %bool %103 %104 +OpSelectionMerge %109 None +OpBranchConditional %105 %107 %108 +%107 = OpLabel +%110 = OpLoad %v3float %l +%111 = OpLoad %float %_2_mn +%112 = OpCompositeConstruct %v3float %111 %111 %111 +%113 = OpFSub %v3float %110 %112 +%114 = OpLoad %v3float %r +OpStore %115 %114 +%116 = OpFunctionCall %float %blend_color_saturation_Qhh3 %115 +%117 = OpVectorTimesScalar %v3float %113 %116 +%118 = OpLoad %float %_3_mx +%119 = OpLoad %float %_2_mn +%120 = OpFSub %float %118 %119 +%122 = OpFDiv %float %float_1 %120 +%123 = OpVectorTimesScalar %v3float %117 %122 +OpStore %106 %123 +OpBranch %109 +%108 = OpLabel +OpStore %106 %125 +OpBranch %109 +%109 = OpLabel +%126 = OpLoad %v3float %106 +OpStore %l %126 +%127 = OpLoad %v3float %dsa +OpStore %r %127 +OpBranch %84 +%84 = OpLabel +%134 = OpLoad %v3float %r +%129 = OpDot %float %133 %134 +OpStore %_4_lum %129 +%136 = OpLoad %float %_4_lum +%138 = OpLoad %v3float %l +%137 = OpDot %float %133 %138 +%139 = OpFSub %float %136 %137 +%140 = OpLoad %v3float %l +%141 = OpCompositeConstruct %v3float %139 %139 %139 +%142 = OpFAdd %v3float %141 %140 +OpStore %_5_result %142 +%146 = OpLoad %v3float %_5_result +%147 = OpCompositeExtract %float %146 0 +%148 = OpLoad %v3float %_5_result +%149 = OpCompositeExtract %float %148 1 +%145 = OpExtInst %float %1 FMin %147 %149 +%150 = OpLoad %v3float %_5_result +%151 = OpCompositeExtract %float %150 2 +%144 = OpExtInst %float %1 FMin %145 %151 +OpStore %_6_minComp %144 +%155 = OpLoad %v3float %_5_result %156 = OpCompositeExtract %float %155 0 -%157 = OpLoad %v3float %142 +%157 = OpLoad %v3float %_5_result %158 = OpCompositeExtract %float %157 1 -%154 = OpExtInst %float %1 FMin %156 %158 -%159 = OpLoad %v3float %142 +%154 = OpExtInst %float %1 FMax %156 %158 +%159 = OpLoad %v3float %_5_result %160 = OpCompositeExtract %float %159 2 -%153 = OpExtInst %float %1 FMin %154 %160 -%161 = OpFSub %float %145 %153 -OpStore %sat %161 -%162 = OpLoad %v3float %141 -%163 = OpCompositeExtract %float %162 0 -%164 = OpLoad %v3float %141 -%165 = OpCompositeExtract %float %164 1 -%166 = OpFOrdLessThanEqual %bool %163 %165 -OpSelectionMerge %169 None -OpBranchConditional %166 %167 %168 -%167 = OpLabel -%170 = OpLoad %v3float %141 -%171 = OpCompositeExtract %float %170 1 -%172 = OpLoad %v3float %141 -%173 = OpCompositeExtract %float %172 2 -%174 = OpFOrdLessThanEqual %bool %171 %173 -OpSelectionMerge %177 None -OpBranchConditional %174 %175 %176 -%175 = OpLabel -%178 = OpLoad %v3float %141 -OpStore %179 %178 -%180 = OpLoad %float %sat -OpStore %181 %180 -%182 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %179 %181 -OpReturnValue %182 -%176 = OpLabel -%183 = OpLoad %v3float %141 -%184 = OpCompositeExtract %float %183 0 -%185 = OpLoad %v3float %141 -%186 = OpCompositeExtract %float %185 2 -%187 = OpFOrdLessThanEqual %bool %184 %186 -OpSelectionMerge %190 None +%153 = OpExtInst %float %1 FMax %154 %160 +OpStore %_7_maxComp %153 +%162 = OpLoad %float %_6_minComp +%163 = OpFOrdLessThan %bool %162 %float_0 +OpSelectionMerge %165 None +OpBranchConditional %163 %164 %165 +%164 = OpLabel +%166 = OpLoad %float %_4_lum +%167 = OpLoad %float %_6_minComp +%168 = OpFUnordNotEqual %bool %166 %167 +OpBranch %165 +%165 = OpLabel +%169 = OpPhi %bool %false %84 %168 %164 +OpSelectionMerge %171 None +OpBranchConditional %169 %170 %171 +%170 = OpLabel +%172 = OpLoad %float %_4_lum +%173 = OpLoad %v3float %_5_result +%174 = OpLoad %float %_4_lum +%175 = OpCompositeConstruct %v3float %174 %174 %174 +%176 = OpFSub %v3float %173 %175 +%177 = OpLoad %float %_4_lum +%178 = OpLoad %float %_4_lum +%179 = OpLoad %float %_6_minComp +%180 = OpFSub %float %178 %179 +%181 = OpFDiv %float %177 %180 +%182 = OpVectorTimesScalar %v3float %176 %181 +%183 = OpCompositeConstruct %v3float %172 %172 %172 +%184 = OpFAdd %v3float %183 %182 +OpStore %_5_result %184 +OpBranch %171 +%171 = OpLabel +%185 = OpLoad %float %_7_maxComp +%186 = OpLoad %float %alpha +%187 = OpFOrdGreaterThan %bool %185 %186 +OpSelectionMerge %189 None OpBranchConditional %187 %188 %189 %188 = OpLabel -%191 = OpLoad %v3float %141 -%192 = OpVectorShuffle %v3float %191 %191 0 2 1 -OpStore %193 %192 -%194 = OpLoad %float %sat -OpStore %195 %194 -%196 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %193 %195 -%197 = OpVectorShuffle %v3float %196 %196 0 2 1 -OpReturnValue %197 +%190 = OpLoad %float %_7_maxComp +%191 = OpLoad %float %_4_lum +%192 = OpFUnordNotEqual %bool %190 %191 +OpBranch %189 %189 = OpLabel -%198 = OpLoad %v3float %141 -%199 = OpVectorShuffle %v3float %198 %198 2 0 1 -OpStore %200 %199 -%201 = OpLoad %float %sat -OpStore %202 %201 -%203 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %200 %202 -%204 = OpVectorShuffle %v3float %203 %203 1 2 0 -OpReturnValue %204 -%190 = OpLabel -OpBranch %177 -%177 = OpLabel -OpBranch %169 -%168 = OpLabel -%205 = OpLoad %v3float %141 -%206 = OpCompositeExtract %float %205 0 -%207 = OpLoad %v3float %141 -%208 = OpCompositeExtract %float %207 2 -%209 = OpFOrdLessThanEqual %bool %206 %208 -OpSelectionMerge %212 None -OpBranchConditional %209 %210 %211 -%210 = OpLabel -%213 = OpLoad %v3float %141 -%214 = OpVectorShuffle %v3float %213 %213 1 0 2 -OpStore %215 %214 -%216 = OpLoad %float %sat -OpStore %217 %216 -%218 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %215 %217 -%219 = OpVectorShuffle %v3float %218 %218 1 0 2 -OpReturnValue %219 -%211 = OpLabel -%220 = OpLoad %v3float %141 -%221 = OpCompositeExtract %float %220 1 -%222 = OpLoad %v3float %141 -%223 = OpCompositeExtract %float %222 2 -%224 = OpFOrdLessThanEqual %bool %221 %223 -OpSelectionMerge %227 None -OpBranchConditional %224 %225 %226 -%225 = OpLabel -%228 = OpLoad %v3float %141 -%229 = OpVectorShuffle %v3float %228 %228 1 2 0 -OpStore %230 %229 -%231 = OpLoad %float %sat -OpStore %232 %231 -%233 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %230 %232 -%234 = OpVectorShuffle %v3float %233 %233 2 0 1 -OpReturnValue %234 -%226 = OpLabel -%235 = OpLoad %v3float %141 -%236 = OpVectorShuffle %v3float %235 %235 2 1 0 -OpStore %237 %236 -%238 = OpLoad %float %sat -OpStore %239 %238 -%240 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %237 %239 -%241 = OpVectorShuffle %v3float %240 %240 2 1 0 -OpReturnValue %241 -%227 = OpLabel -OpBranch %212 -%212 = OpLabel -OpBranch %169 -%169 = OpLabel -OpUnreachable +%193 = OpPhi %bool %false %171 %192 %188 +OpSelectionMerge %195 None +OpBranchConditional %193 %194 %195 +%194 = OpLabel +%196 = OpLoad %float %_4_lum +%197 = OpLoad %v3float %_5_result +%198 = OpLoad %float %_4_lum +%199 = OpCompositeConstruct %v3float %198 %198 %198 +%200 = OpFSub %v3float %197 %199 +%201 = OpLoad %float %alpha +%202 = OpLoad %float %_4_lum +%203 = OpFSub %float %201 %202 +%204 = OpVectorTimesScalar %v3float %200 %203 +%205 = OpLoad %float %_7_maxComp +%206 = OpLoad %float %_4_lum +%207 = OpFSub %float %205 %206 +%208 = OpFDiv %float %float_1 %207 +%209 = OpVectorTimesScalar %v3float %204 %208 +%210 = OpCompositeConstruct %v3float %196 %196 %196 +%211 = OpFAdd %v3float %210 %209 +OpStore %_5_result %211 +OpBranch %195 +%195 = OpLabel +%212 = OpLoad %v3float %_5_result +%213 = OpLoad %v4float %41 +%214 = OpVectorShuffle %v3float %213 %213 0 1 2 +%215 = OpFAdd %v3float %212 %214 +%216 = OpLoad %v3float %dsa +%217 = OpFSub %v3float %215 %216 +%218 = OpLoad %v4float %40 +%219 = OpVectorShuffle %v3float %218 %218 0 1 2 +%220 = OpFAdd %v3float %217 %219 +%221 = OpLoad %v3float %sda +%222 = OpFSub %v3float %220 %221 +%223 = OpCompositeExtract %float %222 0 +%224 = OpCompositeExtract %float %222 1 +%225 = OpCompositeExtract %float %222 2 +%226 = OpLoad %v4float %40 +%227 = OpCompositeExtract %float %226 3 +%228 = OpLoad %v4float %41 +%229 = OpCompositeExtract %float %228 3 +%230 = OpFAdd %float %227 %229 +%231 = OpLoad %float %alpha +%232 = OpFSub %float %230 %231 +%233 = OpCompositeConstruct %v4float %223 %224 %225 %232 +OpReturnValue %233 OpFunctionEnd -%main = OpFunction %void None %243 -%244 = OpLabel -%_0_alpha = OpVariable %_ptr_Function_float Function -%_1_sda = OpVariable %_ptr_Function_v3float Function -%_2_dsa = OpVariable %_ptr_Function_v3float Function -%274 = OpVariable %_ptr_Function_v3float Function -%276 = OpVariable %_ptr_Function_v3float Function -%278 = OpVariable %_ptr_Function_v3float Function -%280 = OpVariable %_ptr_Function_float Function -%282 = OpVariable %_ptr_Function_v3float Function -%246 = OpAccessChain %_ptr_Uniform_v4float %13 %int_1 -%250 = OpLoad %v4float %246 -%251 = OpCompositeExtract %float %250 3 -%252 = OpAccessChain %_ptr_Uniform_v4float %13 %int_0 -%254 = OpLoad %v4float %252 -%255 = OpCompositeExtract %float %254 3 -%256 = OpFMul %float %251 %255 -OpStore %_0_alpha %256 -%258 = OpAccessChain %_ptr_Uniform_v4float %13 %int_0 -%259 = OpLoad %v4float %258 -%260 = OpVectorShuffle %v3float %259 %259 0 1 2 -%261 = OpAccessChain %_ptr_Uniform_v4float %13 %int_1 -%262 = OpLoad %v4float %261 -%263 = OpCompositeExtract %float %262 3 -%264 = OpVectorTimesScalar %v3float %260 %263 -OpStore %_1_sda %264 -%266 = OpAccessChain %_ptr_Uniform_v4float %13 %int_1 -%267 = OpLoad %v4float %266 -%268 = OpVectorShuffle %v3float %267 %267 0 1 2 -%269 = OpAccessChain %_ptr_Uniform_v4float %13 %int_0 -%270 = OpLoad %v4float %269 -%271 = OpCompositeExtract %float %270 3 -%272 = OpVectorTimesScalar %v3float %268 %271 -OpStore %_2_dsa %272 -%273 = OpLoad %v3float %_1_sda -OpStore %274 %273 -%275 = OpLoad %v3float %_2_dsa -OpStore %276 %275 -%277 = OpFunctionCall %v3float %blend_set_color_saturation_Qh3h3h3 %274 %276 -OpStore %278 %277 -%279 = OpLoad %float %_0_alpha -OpStore %280 %279 -%281 = OpLoad %v3float %_2_dsa -OpStore %282 %281 -%283 = OpFunctionCall %v3float %blend_set_color_luminance_Qh3h3hh3 %278 %280 %282 -%284 = OpAccessChain %_ptr_Uniform_v4float %13 %int_1 -%285 = OpLoad %v4float %284 -%286 = OpVectorShuffle %v3float %285 %285 0 1 2 -%287 = OpFAdd %v3float %283 %286 -%288 = OpLoad %v3float %_2_dsa -%289 = OpFSub %v3float %287 %288 -%290 = OpAccessChain %_ptr_Uniform_v4float %13 %int_0 -%291 = OpLoad %v4float %290 -%292 = OpVectorShuffle %v3float %291 %291 0 1 2 -%293 = OpFAdd %v3float %289 %292 -%294 = OpLoad %v3float %_1_sda -%295 = OpFSub %v3float %293 %294 -%296 = OpCompositeExtract %float %295 0 -%297 = OpCompositeExtract %float %295 1 -%298 = OpCompositeExtract %float %295 2 -%299 = OpAccessChain %_ptr_Uniform_v4float %13 %int_0 -%300 = OpLoad %v4float %299 -%301 = OpCompositeExtract %float %300 3 -%302 = OpAccessChain %_ptr_Uniform_v4float %13 %int_1 -%303 = OpLoad %v4float %302 -%304 = OpCompositeExtract %float %303 3 -%305 = OpFAdd %float %301 %304 -%306 = OpLoad %float %_0_alpha -%307 = OpFSub %float %305 %306 -%308 = OpCompositeConstruct %v4float %296 %297 %298 %307 -OpStore %sk_FragColor %308 +%main = OpFunction %void None %235 +%236 = OpLabel +%242 = OpVariable %_ptr_Function_v4float Function +%246 = OpVariable %_ptr_Function_v4float Function +%247 = OpVariable %_ptr_Function_bool Function +%249 = OpVariable %_ptr_Function_bool Function +%237 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 +%241 = OpLoad %v4float %237 +OpStore %242 %241 +%243 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 +%245 = OpLoad %v4float %243 +OpStore %246 %245 +OpStore %247 %false +OpStore %249 %true +%250 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %242 %246 %247 %249 +OpStore %sk_FragColor %250 OpReturn OpFunctionEnd diff --git a/third_party/skia/tests/sksl/blend/BlendHue.glsl b/third_party/skia/tests/sksl/blend/BlendHue.glsl index 8347ddcdcb41..94139170de7c 100644 --- a/third_party/skia/tests/sksl/blend/BlendHue.glsl +++ b/third_party/skia/tests/sksl/blend/BlendHue.glsl @@ -2,48 +2,33 @@ out vec4 sk_FragColor; uniform vec4 src; uniform vec4 dst; -vec3 blend_set_color_luminance_Qh3h3hh3(vec3 hueSatColor, float alpha, vec3 lumColor) { - float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor); - vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor; - float minComp = min(min(result.x, result.y), result.z); - float maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0 && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); - } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; - } +float blend_color_saturation_Qhh3(vec3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); } -vec3 blend_set_color_saturation_helper_Qh3h3h(vec3 minMidMax, float sat) { - if (minMidMax.x < minMidMax.z) { - return vec3(0.0, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat); - } else { - return vec3(0.0); +vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) { + float alpha = dst.w * src.w; + vec3 sda = src.xyz * dst.w; + vec3 dsa = dst.xyz * src.w; + vec3 l = flip ? dsa : sda; + vec3 r = flip ? sda : dsa; + if (saturate) { + float _2_mn = min(min(l.x, l.y), l.z); + float _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0); + r = dsa; } -} -vec3 blend_set_color_saturation_Qh3h3h3(vec3 hueLumColor, vec3 satColor) { - float sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z); - if (hueLumColor.x <= hueLumColor.y) { - if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor, sat); - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.xzy, sat).xzy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zxy, sat).yzx; - } - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yxz, sat).yxz; - } else if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yzx, sat).zxy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zyx, sat).zyx; + float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r); + vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l; + float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0 && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); + } + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } void main() { - float _0_alpha = dst.w * src.w; - vec3 _1_sda = src.xyz * dst.w; - vec3 _2_dsa = dst.xyz * src.w; - sk_FragColor = vec4((((blend_set_color_luminance_Qh3h3hh3(blend_set_color_saturation_Qh3h3h3(_1_sda, _2_dsa), _0_alpha, _2_dsa) + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha); + sk_FragColor = blend_hslc_h4h4h4bb(src, dst, false, true); } diff --git a/third_party/skia/tests/sksl/blend/BlendHue.metal b/third_party/skia/tests/sksl/blend/BlendHue.metal index 9098b12c1438..95f038130f1d 100644 --- a/third_party/skia/tests/sksl/blend/BlendHue.metal +++ b/third_party/skia/tests/sksl/blend/BlendHue.metal @@ -10,51 +10,36 @@ struct Inputs { struct Outputs { half4 sk_FragColor [[color(0)]]; }; -half3 blend_set_color_luminance_Qh3h3hh3(half3 hueSatColor, half alpha, half3 lumColor) { - half lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), lumColor); - half3 result = (lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), hueSatColor)) + hueSatColor; - half minComp = min(min(result.x, result.y), result.z); - half maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0h && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); - } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; - } +half blend_color_saturation_Qhh3(half3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); } -half3 blend_set_color_saturation_helper_Qh3h3h(half3 minMidMax, half sat) { - if (minMidMax.x < minMidMax.z) { - return half3(0.0h, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat); - } else { - return half3(0.0h); +half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) { + half alpha = dst.w * src.w; + half3 sda = src.xyz * dst.w; + half3 dsa = dst.xyz * src.w; + half3 l = flip ? dsa : sda; + half3 r = flip ? sda : dsa; + if (saturate) { + half _2_mn = min(min(l.x, l.y), l.z); + half _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : half3(0.0h); + r = dsa; } -} -half3 blend_set_color_saturation_Qh3h3h3(half3 hueLumColor, half3 satColor) { - half sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z); - if (hueLumColor.x <= hueLumColor.y) { - if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor, sat); - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.xzy, sat).xzy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zxy, sat).yzx; - } - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yxz, sat).yxz; - } else if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yzx, sat).zxy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zyx, sat).zyx; + half _4_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r); + half3 _5_result = (_4_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l; + half _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + half _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0h && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); + } + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return half4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { Outputs _out; (void)_out; - half _0_alpha = _uniforms.dst.w * _uniforms.src.w; - half3 _1_sda = _uniforms.src.xyz * _uniforms.dst.w; - half3 _2_dsa = _uniforms.dst.xyz * _uniforms.src.w; - _out.sk_FragColor = half4((((blend_set_color_luminance_Qh3h3hh3(blend_set_color_saturation_Qh3h3h3(_1_sda, _2_dsa), _0_alpha, _2_dsa) + _uniforms.dst.xyz) - _2_dsa) + _uniforms.src.xyz) - _1_sda, (_uniforms.src.w + _uniforms.dst.w) - _0_alpha); + _out.sk_FragColor = blend_hslc_h4h4h4bb(_uniforms.src, _uniforms.dst, false, true); return _out; } diff --git a/third_party/skia/tests/sksl/blend/BlendHueStandaloneSettings.glsl b/third_party/skia/tests/sksl/blend/BlendHueStandaloneSettings.glsl index 0888e834232f..8bd0d335054d 100644 --- a/third_party/skia/tests/sksl/blend/BlendHueStandaloneSettings.glsl +++ b/third_party/skia/tests/sksl/blend/BlendHueStandaloneSettings.glsl @@ -2,48 +2,33 @@ out vec4 sk_FragColor; uniform vec4 src; uniform vec4 dst; -vec3 blend_set_color_luminance_Qh3h3hh3(vec3 hueSatColor, float alpha, vec3 lumColor) { - float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor); - vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor; - float minComp = min(min(result.x, result.y), result.z); - float maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0 && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); - } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; - } +float blend_color_saturation_Qhh3(vec3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); } -vec3 blend_set_color_saturation_helper_Qh3h3h(vec3 minMidMax, float sat) { - if (minMidMax.x < minMidMax.z) { - return vec3(0.0, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat); - } else { - return vec3(0.0); +vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) { + float alpha = dst.w * src.w; + vec3 sda = src.xyz * dst.w; + vec3 dsa = dst.xyz * src.w; + vec3 l = flip ? dsa : sda; + vec3 r = flip ? sda : dsa; + if (saturate) { + float _2_mn = min(min(l.x, l.y), l.z); + float _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0); + r = dsa; } -} -vec3 blend_set_color_saturation_Qh3h3h3(vec3 hueLumColor, vec3 satColor) { - float sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z); - if (hueLumColor.x <= hueLumColor.y) { - if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor, sat); - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.xzy, sat).xzy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zxy, sat).yzx; - } - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yxz, sat).yxz; - } else if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yzx, sat).zxy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zyx, sat).zyx; + float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r); + vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l; + float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0 && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); + } + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } void main() { - float _0_alpha = dst.w * src.w; - vec3 _1_sda = src.xyz * dst.w; - vec3 _2_dsa = dst.xyz * src.w; - sk_FragColor = vec4((((blend_set_color_luminance_Qh3h3hh3(blend_set_color_saturation_Qh3h3h3(_1_sda, _2_dsa), _0_alpha, _2_dsa) + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha); + sk_FragColor = blend_hslc_h4h4h4bb(src, dst, false, true); } diff --git a/third_party/skia/tests/sksl/blend/BlendLuminosity.asm.frag b/third_party/skia/tests/sksl/blend/BlendLuminosity.asm.frag index d5b3c2b2d7d5..3180e40a4949 100644 --- a/third_party/skia/tests/sksl/blend/BlendLuminosity.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendLuminosity.asm.frag @@ -8,15 +8,20 @@ OpName %sk_Clockwise "sk_Clockwise" OpName %_UniformBuffer "_UniformBuffer" OpMemberName %_UniformBuffer 0 "src" OpMemberName %_UniformBuffer 1 "dst" -OpName %blend_set_color_luminance_Qh3h3hh3 "blend_set_color_luminance_Qh3h3hh3" -OpName %lum "lum" -OpName %result "result" -OpName %minComp "minComp" -OpName %maxComp "maxComp" +OpName %blend_color_saturation_Qhh3 "blend_color_saturation_Qhh3" +OpName %blend_hslc_h4h4h4bb "blend_hslc_h4h4h4bb" +OpName %alpha "alpha" +OpName %sda "sda" +OpName %dsa "dsa" +OpName %l "l" +OpName %r "r" +OpName %_2_mn "_2_mn" +OpName %_3_mx "_3_mx" +OpName %_4_lum "_4_lum" +OpName %_5_result "_5_result" +OpName %_6_minComp "_6_minComp" +OpName %_7_maxComp "_7_maxComp" OpName %main "main" -OpName %_0_alpha "_0_alpha" -OpName %_1_sda "_1_sda" -OpName %_2_dsa "_2_dsa" OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 @@ -26,13 +31,14 @@ OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision OpMemberDecorate %_UniformBuffer 1 Offset 16 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpDecorate %_UniformBuffer Block -OpDecorate %11 Binding 0 -OpDecorate %11 DescriptorSet 0 -OpDecorate %lum RelaxedPrecision +OpDecorate %12 Binding 0 +OpDecorate %12 DescriptorSet 0 +OpDecorate %22 RelaxedPrecision OpDecorate %23 RelaxedPrecision +OpDecorate %24 RelaxedPrecision +OpDecorate %25 RelaxedPrecision +OpDecorate %26 RelaxedPrecision OpDecorate %27 RelaxedPrecision -OpDecorate %28 RelaxedPrecision -OpDecorate %result RelaxedPrecision OpDecorate %30 RelaxedPrecision OpDecorate %31 RelaxedPrecision OpDecorate %32 RelaxedPrecision @@ -40,45 +46,43 @@ OpDecorate %33 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %35 RelaxedPrecision OpDecorate %36 RelaxedPrecision -OpDecorate %minComp RelaxedPrecision -OpDecorate %40 RelaxedPrecision -OpDecorate %41 RelaxedPrecision -OpDecorate %42 RelaxedPrecision -OpDecorate %43 RelaxedPrecision -OpDecorate %44 RelaxedPrecision -OpDecorate %45 RelaxedPrecision -OpDecorate %maxComp RelaxedPrecision +OpDecorate %alpha RelaxedPrecision +OpDecorate %47 RelaxedPrecision +OpDecorate %48 RelaxedPrecision OpDecorate %49 RelaxedPrecision OpDecorate %50 RelaxedPrecision OpDecorate %51 RelaxedPrecision -OpDecorate %52 RelaxedPrecision +OpDecorate %sda RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision +OpDecorate %55 RelaxedPrecision OpDecorate %56 RelaxedPrecision +OpDecorate %57 RelaxedPrecision +OpDecorate %dsa RelaxedPrecision +OpDecorate %59 RelaxedPrecision +OpDecorate %60 RelaxedPrecision OpDecorate %61 RelaxedPrecision OpDecorate %62 RelaxedPrecision -OpDecorate %67 RelaxedPrecision -OpDecorate %68 RelaxedPrecision -OpDecorate %69 RelaxedPrecision +OpDecorate %63 RelaxedPrecision +OpDecorate %l RelaxedPrecision +OpDecorate %65 RelaxedPrecision OpDecorate %70 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %72 RelaxedPrecision -OpDecorate %73 RelaxedPrecision +OpDecorate %r RelaxedPrecision OpDecorate %74 RelaxedPrecision -OpDecorate %75 RelaxedPrecision -OpDecorate %76 RelaxedPrecision -OpDecorate %77 RelaxedPrecision -OpDecorate %78 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision -OpDecorate %85 RelaxedPrecision -OpDecorate %86 RelaxedPrecision +OpDecorate %82 RelaxedPrecision +OpDecorate %_2_mn RelaxedPrecision +OpDecorate %88 RelaxedPrecision +OpDecorate %89 RelaxedPrecision +OpDecorate %90 RelaxedPrecision +OpDecorate %91 RelaxedPrecision OpDecorate %92 RelaxedPrecision OpDecorate %93 RelaxedPrecision -OpDecorate %94 RelaxedPrecision -OpDecorate %95 RelaxedPrecision -OpDecorate %96 RelaxedPrecision +OpDecorate %_3_mx RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %98 RelaxedPrecision OpDecorate %99 RelaxedPrecision @@ -86,53 +90,105 @@ OpDecorate %100 RelaxedPrecision OpDecorate %101 RelaxedPrecision OpDecorate %102 RelaxedPrecision OpDecorate %103 RelaxedPrecision -OpDecorate %105 RelaxedPrecision -OpDecorate %106 RelaxedPrecision -OpDecorate %107 RelaxedPrecision -OpDecorate %108 RelaxedPrecision -OpDecorate %109 RelaxedPrecision -OpDecorate %_0_alpha RelaxedPrecision +OpDecorate %104 RelaxedPrecision +OpDecorate %110 RelaxedPrecision +OpDecorate %111 RelaxedPrecision +OpDecorate %112 RelaxedPrecision +OpDecorate %113 RelaxedPrecision +OpDecorate %114 RelaxedPrecision +OpDecorate %117 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %119 RelaxedPrecision +OpDecorate %120 RelaxedPrecision OpDecorate %122 RelaxedPrecision OpDecorate %123 RelaxedPrecision -OpDecorate %124 RelaxedPrecision -OpDecorate %_1_sda RelaxedPrecision +OpDecorate %126 RelaxedPrecision OpDecorate %127 RelaxedPrecision -OpDecorate %128 RelaxedPrecision -OpDecorate %130 RelaxedPrecision -OpDecorate %131 RelaxedPrecision -OpDecorate %132 RelaxedPrecision -OpDecorate %_2_dsa RelaxedPrecision -OpDecorate %135 RelaxedPrecision +OpDecorate %_4_lum RelaxedPrecision +OpDecorate %129 RelaxedPrecision +OpDecorate %134 RelaxedPrecision +OpDecorate %_5_result RelaxedPrecision OpDecorate %136 RelaxedPrecision +OpDecorate %137 RelaxedPrecision OpDecorate %138 RelaxedPrecision OpDecorate %139 RelaxedPrecision OpDecorate %140 RelaxedPrecision OpDecorate %141 RelaxedPrecision -OpDecorate %143 RelaxedPrecision -OpDecorate %145 RelaxedPrecision +OpDecorate %142 RelaxedPrecision +OpDecorate %_6_minComp RelaxedPrecision +OpDecorate %146 RelaxedPrecision +OpDecorate %147 RelaxedPrecision +OpDecorate %148 RelaxedPrecision OpDecorate %149 RelaxedPrecision OpDecorate %150 RelaxedPrecision OpDecorate %151 RelaxedPrecision -OpDecorate %152 RelaxedPrecision -OpDecorate %153 RelaxedPrecision +OpDecorate %_7_maxComp RelaxedPrecision OpDecorate %155 RelaxedPrecision OpDecorate %156 RelaxedPrecision OpDecorate %157 RelaxedPrecision OpDecorate %158 RelaxedPrecision OpDecorate %159 RelaxedPrecision OpDecorate %160 RelaxedPrecision -OpDecorate %161 RelaxedPrecision OpDecorate %162 RelaxedPrecision -OpDecorate %164 RelaxedPrecision -OpDecorate %165 RelaxedPrecision +OpDecorate %166 RelaxedPrecision OpDecorate %167 RelaxedPrecision -OpDecorate %168 RelaxedPrecision -OpDecorate %169 RelaxedPrecision -OpDecorate %170 RelaxedPrecision -OpDecorate %171 RelaxedPrecision OpDecorate %172 RelaxedPrecision +OpDecorate %173 RelaxedPrecision +OpDecorate %174 RelaxedPrecision +OpDecorate %175 RelaxedPrecision +OpDecorate %176 RelaxedPrecision +OpDecorate %177 RelaxedPrecision +OpDecorate %178 RelaxedPrecision +OpDecorate %179 RelaxedPrecision +OpDecorate %180 RelaxedPrecision +OpDecorate %181 RelaxedPrecision +OpDecorate %182 RelaxedPrecision +OpDecorate %183 RelaxedPrecision +OpDecorate %184 RelaxedPrecision +OpDecorate %185 RelaxedPrecision +OpDecorate %186 RelaxedPrecision +OpDecorate %190 RelaxedPrecision +OpDecorate %191 RelaxedPrecision +OpDecorate %196 RelaxedPrecision +OpDecorate %197 RelaxedPrecision +OpDecorate %198 RelaxedPrecision +OpDecorate %199 RelaxedPrecision +OpDecorate %200 RelaxedPrecision +OpDecorate %201 RelaxedPrecision +OpDecorate %202 RelaxedPrecision +OpDecorate %203 RelaxedPrecision +OpDecorate %204 RelaxedPrecision +OpDecorate %205 RelaxedPrecision +OpDecorate %206 RelaxedPrecision +OpDecorate %207 RelaxedPrecision +OpDecorate %208 RelaxedPrecision +OpDecorate %209 RelaxedPrecision +OpDecorate %210 RelaxedPrecision +OpDecorate %211 RelaxedPrecision +OpDecorate %212 RelaxedPrecision +OpDecorate %213 RelaxedPrecision +OpDecorate %214 RelaxedPrecision +OpDecorate %215 RelaxedPrecision +OpDecorate %216 RelaxedPrecision +OpDecorate %217 RelaxedPrecision +OpDecorate %218 RelaxedPrecision +OpDecorate %219 RelaxedPrecision +OpDecorate %220 RelaxedPrecision +OpDecorate %221 RelaxedPrecision +OpDecorate %222 RelaxedPrecision +OpDecorate %223 RelaxedPrecision +OpDecorate %224 RelaxedPrecision +OpDecorate %225 RelaxedPrecision +OpDecorate %226 RelaxedPrecision +OpDecorate %227 RelaxedPrecision +OpDecorate %228 RelaxedPrecision +OpDecorate %229 RelaxedPrecision +OpDecorate %230 RelaxedPrecision +OpDecorate %231 RelaxedPrecision +OpDecorate %232 RelaxedPrecision +OpDecorate %233 RelaxedPrecision +OpDecorate %241 RelaxedPrecision +OpDecorate %245 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -142,194 +198,303 @@ OpDecorate %172 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %_UniformBuffer = OpTypeStruct %v4float %v4float %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer -%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform +%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %v3float = OpTypeVector %float 3 %_ptr_Function_v3float = OpTypePointer Function %v3float +%17 = OpTypeFunction %float %_ptr_Function_v3float +%_ptr_Function_v4float = OpTypePointer Function %v4float +%_ptr_Function_bool = OpTypePointer Function %bool +%39 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool %_ptr_Function_float = OpTypePointer Function %float -%15 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_float %_ptr_Function_v3float +%float_1 = OpConstant %float 1 +%float_0 = OpConstant %float 0 +%125 = OpConstantComposite %v3float %float_0 %float_0 %float_0 %float_0_300000012 = OpConstant %float 0.300000012 %float_0_589999974 = OpConstant %float 0.589999974 %float_0_109999999 = OpConstant %float 0.109999999 -%27 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999 +%133 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999 %false = OpConstantFalse %bool -%float_0 = OpConstant %float 0 -%float_1 = OpConstant %float 1 %void = OpTypeVoid -%111 = OpTypeFunction %void +%235 = OpTypeFunction %void %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 -%int_1 = OpConstant %int 1 %int_0 = OpConstant %int 0 -%blend_set_color_luminance_Qh3h3hh3 = OpFunction %v3float None %15 +%int_1 = OpConstant %int 1 +%true = OpConstantTrue %bool +%blend_color_saturation_Qhh3 = OpFunction %float None %17 %18 = OpFunctionParameter %_ptr_Function_v3float -%19 = OpFunctionParameter %_ptr_Function_float -%20 = OpFunctionParameter %_ptr_Function_v3float -%21 = OpLabel -%lum = OpVariable %_ptr_Function_float Function -%result = OpVariable %_ptr_Function_v3float Function -%minComp = OpVariable %_ptr_Function_float Function -%maxComp = OpVariable %_ptr_Function_float Function -%28 = OpLoad %v3float %20 -%23 = OpDot %float %27 %28 -OpStore %lum %23 -%30 = OpLoad %float %lum +%19 = OpLabel +%22 = OpLoad %v3float %18 +%23 = OpCompositeExtract %float %22 0 +%24 = OpLoad %v3float %18 +%25 = OpCompositeExtract %float %24 1 +%21 = OpExtInst %float %1 FMax %23 %25 +%26 = OpLoad %v3float %18 +%27 = OpCompositeExtract %float %26 2 +%20 = OpExtInst %float %1 FMax %21 %27 +%30 = OpLoad %v3float %18 +%31 = OpCompositeExtract %float %30 0 %32 = OpLoad %v3float %18 -%31 = OpDot %float %27 %32 -%33 = OpFSub %float %30 %31 +%33 = OpCompositeExtract %float %32 1 +%29 = OpExtInst %float %1 FMin %31 %33 %34 = OpLoad %v3float %18 -%35 = OpCompositeConstruct %v3float %33 %33 %33 -%36 = OpFAdd %v3float %35 %34 -OpStore %result %36 -%40 = OpLoad %v3float %result -%41 = OpCompositeExtract %float %40 0 -%42 = OpLoad %v3float %result -%43 = OpCompositeExtract %float %42 1 -%39 = OpExtInst %float %1 FMin %41 %43 -%44 = OpLoad %v3float %result -%45 = OpCompositeExtract %float %44 2 -%38 = OpExtInst %float %1 FMin %39 %45 -OpStore %minComp %38 -%49 = OpLoad %v3float %result -%50 = OpCompositeExtract %float %49 0 -%51 = OpLoad %v3float %result -%52 = OpCompositeExtract %float %51 1 -%48 = OpExtInst %float %1 FMax %50 %52 -%53 = OpLoad %v3float %result -%54 = OpCompositeExtract %float %53 2 -%47 = OpExtInst %float %1 FMax %48 %54 -OpStore %maxComp %47 -%56 = OpLoad %float %minComp -%58 = OpFOrdLessThan %bool %56 %float_0 -OpSelectionMerge %60 None -OpBranchConditional %58 %59 %60 -%59 = OpLabel -%61 = OpLoad %float %lum -%62 = OpLoad %float %minComp -%63 = OpFOrdNotEqual %bool %61 %62 -OpBranch %60 -%60 = OpLabel -%64 = OpPhi %bool %false %21 %63 %59 -OpSelectionMerge %66 None -OpBranchConditional %64 %65 %66 -%65 = OpLabel -%67 = OpLoad %float %lum -%68 = OpLoad %v3float %result -%69 = OpLoad %float %lum -%70 = OpCompositeConstruct %v3float %69 %69 %69 -%71 = OpFSub %v3float %68 %70 -%72 = OpLoad %float %lum -%73 = OpLoad %float %lum -%74 = OpLoad %float %minComp -%75 = OpFSub %float %73 %74 -%76 = OpFDiv %float %72 %75 -%77 = OpVectorTimesScalar %v3float %71 %76 -%78 = OpCompositeConstruct %v3float %67 %67 %67 -%79 = OpFAdd %v3float %78 %77 -OpStore %result %79 -OpBranch %66 -%66 = OpLabel -%80 = OpLoad %float %maxComp -%81 = OpLoad %float %19 -%82 = OpFOrdGreaterThan %bool %80 %81 +%35 = OpCompositeExtract %float %34 2 +%28 = OpExtInst %float %1 FMin %29 %35 +%36 = OpFSub %float %20 %28 +OpReturnValue %36 +OpFunctionEnd +%blend_hslc_h4h4h4bb = OpFunction %v4float None %39 +%40 = OpFunctionParameter %_ptr_Function_v4float +%41 = OpFunctionParameter %_ptr_Function_v4float +%42 = OpFunctionParameter %_ptr_Function_bool +%43 = OpFunctionParameter %_ptr_Function_bool +%44 = OpLabel +%alpha = OpVariable %_ptr_Function_float Function +%sda = OpVariable %_ptr_Function_v3float Function +%dsa = OpVariable %_ptr_Function_v3float Function +%l = OpVariable %_ptr_Function_v3float Function +%66 = OpVariable %_ptr_Function_v3float Function +%r = OpVariable %_ptr_Function_v3float Function +%75 = OpVariable %_ptr_Function_v3float Function +%_2_mn = OpVariable %_ptr_Function_float Function +%_3_mx = OpVariable %_ptr_Function_float Function +%106 = OpVariable %_ptr_Function_v3float Function +%115 = OpVariable %_ptr_Function_v3float Function +%_4_lum = OpVariable %_ptr_Function_float Function +%_5_result = OpVariable %_ptr_Function_v3float Function +%_6_minComp = OpVariable %_ptr_Function_float Function +%_7_maxComp = OpVariable %_ptr_Function_float Function +%47 = OpLoad %v4float %41 +%48 = OpCompositeExtract %float %47 3 +%49 = OpLoad %v4float %40 +%50 = OpCompositeExtract %float %49 3 +%51 = OpFMul %float %48 %50 +OpStore %alpha %51 +%53 = OpLoad %v4float %40 +%54 = OpVectorShuffle %v3float %53 %53 0 1 2 +%55 = OpLoad %v4float %41 +%56 = OpCompositeExtract %float %55 3 +%57 = OpVectorTimesScalar %v3float %54 %56 +OpStore %sda %57 +%59 = OpLoad %v4float %41 +%60 = OpVectorShuffle %v3float %59 %59 0 1 2 +%61 = OpLoad %v4float %40 +%62 = OpCompositeExtract %float %61 3 +%63 = OpVectorTimesScalar %v3float %60 %62 +OpStore %dsa %63 +%65 = OpLoad %bool %42 +OpSelectionMerge %69 None +OpBranchConditional %65 %67 %68 +%67 = OpLabel +%70 = OpLoad %v3float %dsa +OpStore %66 %70 +OpBranch %69 +%68 = OpLabel +%71 = OpLoad %v3float %sda +OpStore %66 %71 +OpBranch %69 +%69 = OpLabel +%72 = OpLoad %v3float %66 +OpStore %l %72 +%74 = OpLoad %bool %42 +OpSelectionMerge %78 None +OpBranchConditional %74 %76 %77 +%76 = OpLabel +%79 = OpLoad %v3float %sda +OpStore %75 %79 +OpBranch %78 +%77 = OpLabel +%80 = OpLoad %v3float %dsa +OpStore %75 %80 +OpBranch %78 +%78 = OpLabel +%81 = OpLoad %v3float %75 +OpStore %r %81 +%82 = OpLoad %bool %43 OpSelectionMerge %84 None OpBranchConditional %82 %83 %84 %83 = OpLabel -%85 = OpLoad %float %maxComp -%86 = OpLoad %float %lum -%87 = OpFOrdNotEqual %bool %85 %86 +%88 = OpLoad %v3float %l +%89 = OpCompositeExtract %float %88 0 +%90 = OpLoad %v3float %l +%91 = OpCompositeExtract %float %90 1 +%87 = OpExtInst %float %1 FMin %89 %91 +%92 = OpLoad %v3float %l +%93 = OpCompositeExtract %float %92 2 +%86 = OpExtInst %float %1 FMin %87 %93 +OpStore %_2_mn %86 +%97 = OpLoad %v3float %l +%98 = OpCompositeExtract %float %97 0 +%99 = OpLoad %v3float %l +%100 = OpCompositeExtract %float %99 1 +%96 = OpExtInst %float %1 FMax %98 %100 +%101 = OpLoad %v3float %l +%102 = OpCompositeExtract %float %101 2 +%95 = OpExtInst %float %1 FMax %96 %102 +OpStore %_3_mx %95 +%103 = OpLoad %float %_3_mx +%104 = OpLoad %float %_2_mn +%105 = OpFOrdGreaterThan %bool %103 %104 +OpSelectionMerge %109 None +OpBranchConditional %105 %107 %108 +%107 = OpLabel +%110 = OpLoad %v3float %l +%111 = OpLoad %float %_2_mn +%112 = OpCompositeConstruct %v3float %111 %111 %111 +%113 = OpFSub %v3float %110 %112 +%114 = OpLoad %v3float %r +OpStore %115 %114 +%116 = OpFunctionCall %float %blend_color_saturation_Qhh3 %115 +%117 = OpVectorTimesScalar %v3float %113 %116 +%118 = OpLoad %float %_3_mx +%119 = OpLoad %float %_2_mn +%120 = OpFSub %float %118 %119 +%122 = OpFDiv %float %float_1 %120 +%123 = OpVectorTimesScalar %v3float %117 %122 +OpStore %106 %123 +OpBranch %109 +%108 = OpLabel +OpStore %106 %125 +OpBranch %109 +%109 = OpLabel +%126 = OpLoad %v3float %106 +OpStore %l %126 +%127 = OpLoad %v3float %dsa +OpStore %r %127 OpBranch %84 %84 = OpLabel -%88 = OpPhi %bool %false %66 %87 %83 -OpSelectionMerge %91 None -OpBranchConditional %88 %89 %90 -%89 = OpLabel -%92 = OpLoad %float %lum -%93 = OpLoad %v3float %result -%94 = OpLoad %float %lum -%95 = OpCompositeConstruct %v3float %94 %94 %94 -%96 = OpFSub %v3float %93 %95 -%97 = OpLoad %float %19 -%98 = OpLoad %float %lum -%99 = OpFSub %float %97 %98 -%100 = OpVectorTimesScalar %v3float %96 %99 -%101 = OpLoad %float %maxComp -%102 = OpLoad %float %lum -%103 = OpFSub %float %101 %102 -%105 = OpFDiv %float %float_1 %103 -%106 = OpVectorTimesScalar %v3float %100 %105 -%107 = OpCompositeConstruct %v3float %92 %92 %92 -%108 = OpFAdd %v3float %107 %106 -OpReturnValue %108 -%90 = OpLabel -%109 = OpLoad %v3float %result -OpReturnValue %109 -%91 = OpLabel -OpUnreachable +%134 = OpLoad %v3float %r +%129 = OpDot %float %133 %134 +OpStore %_4_lum %129 +%136 = OpLoad %float %_4_lum +%138 = OpLoad %v3float %l +%137 = OpDot %float %133 %138 +%139 = OpFSub %float %136 %137 +%140 = OpLoad %v3float %l +%141 = OpCompositeConstruct %v3float %139 %139 %139 +%142 = OpFAdd %v3float %141 %140 +OpStore %_5_result %142 +%146 = OpLoad %v3float %_5_result +%147 = OpCompositeExtract %float %146 0 +%148 = OpLoad %v3float %_5_result +%149 = OpCompositeExtract %float %148 1 +%145 = OpExtInst %float %1 FMin %147 %149 +%150 = OpLoad %v3float %_5_result +%151 = OpCompositeExtract %float %150 2 +%144 = OpExtInst %float %1 FMin %145 %151 +OpStore %_6_minComp %144 +%155 = OpLoad %v3float %_5_result +%156 = OpCompositeExtract %float %155 0 +%157 = OpLoad %v3float %_5_result +%158 = OpCompositeExtract %float %157 1 +%154 = OpExtInst %float %1 FMax %156 %158 +%159 = OpLoad %v3float %_5_result +%160 = OpCompositeExtract %float %159 2 +%153 = OpExtInst %float %1 FMax %154 %160 +OpStore %_7_maxComp %153 +%162 = OpLoad %float %_6_minComp +%163 = OpFOrdLessThan %bool %162 %float_0 +OpSelectionMerge %165 None +OpBranchConditional %163 %164 %165 +%164 = OpLabel +%166 = OpLoad %float %_4_lum +%167 = OpLoad %float %_6_minComp +%168 = OpFUnordNotEqual %bool %166 %167 +OpBranch %165 +%165 = OpLabel +%169 = OpPhi %bool %false %84 %168 %164 +OpSelectionMerge %171 None +OpBranchConditional %169 %170 %171 +%170 = OpLabel +%172 = OpLoad %float %_4_lum +%173 = OpLoad %v3float %_5_result +%174 = OpLoad %float %_4_lum +%175 = OpCompositeConstruct %v3float %174 %174 %174 +%176 = OpFSub %v3float %173 %175 +%177 = OpLoad %float %_4_lum +%178 = OpLoad %float %_4_lum +%179 = OpLoad %float %_6_minComp +%180 = OpFSub %float %178 %179 +%181 = OpFDiv %float %177 %180 +%182 = OpVectorTimesScalar %v3float %176 %181 +%183 = OpCompositeConstruct %v3float %172 %172 %172 +%184 = OpFAdd %v3float %183 %182 +OpStore %_5_result %184 +OpBranch %171 +%171 = OpLabel +%185 = OpLoad %float %_7_maxComp +%186 = OpLoad %float %alpha +%187 = OpFOrdGreaterThan %bool %185 %186 +OpSelectionMerge %189 None +OpBranchConditional %187 %188 %189 +%188 = OpLabel +%190 = OpLoad %float %_7_maxComp +%191 = OpLoad %float %_4_lum +%192 = OpFUnordNotEqual %bool %190 %191 +OpBranch %189 +%189 = OpLabel +%193 = OpPhi %bool %false %171 %192 %188 +OpSelectionMerge %195 None +OpBranchConditional %193 %194 %195 +%194 = OpLabel +%196 = OpLoad %float %_4_lum +%197 = OpLoad %v3float %_5_result +%198 = OpLoad %float %_4_lum +%199 = OpCompositeConstruct %v3float %198 %198 %198 +%200 = OpFSub %v3float %197 %199 +%201 = OpLoad %float %alpha +%202 = OpLoad %float %_4_lum +%203 = OpFSub %float %201 %202 +%204 = OpVectorTimesScalar %v3float %200 %203 +%205 = OpLoad %float %_7_maxComp +%206 = OpLoad %float %_4_lum +%207 = OpFSub %float %205 %206 +%208 = OpFDiv %float %float_1 %207 +%209 = OpVectorTimesScalar %v3float %204 %208 +%210 = OpCompositeConstruct %v3float %196 %196 %196 +%211 = OpFAdd %v3float %210 %209 +OpStore %_5_result %211 +OpBranch %195 +%195 = OpLabel +%212 = OpLoad %v3float %_5_result +%213 = OpLoad %v4float %41 +%214 = OpVectorShuffle %v3float %213 %213 0 1 2 +%215 = OpFAdd %v3float %212 %214 +%216 = OpLoad %v3float %dsa +%217 = OpFSub %v3float %215 %216 +%218 = OpLoad %v4float %40 +%219 = OpVectorShuffle %v3float %218 %218 0 1 2 +%220 = OpFAdd %v3float %217 %219 +%221 = OpLoad %v3float %sda +%222 = OpFSub %v3float %220 %221 +%223 = OpCompositeExtract %float %222 0 +%224 = OpCompositeExtract %float %222 1 +%225 = OpCompositeExtract %float %222 2 +%226 = OpLoad %v4float %40 +%227 = OpCompositeExtract %float %226 3 +%228 = OpLoad %v4float %41 +%229 = OpCompositeExtract %float %228 3 +%230 = OpFAdd %float %227 %229 +%231 = OpLoad %float %alpha +%232 = OpFSub %float %230 %231 +%233 = OpCompositeConstruct %v4float %223 %224 %225 %232 +OpReturnValue %233 OpFunctionEnd -%main = OpFunction %void None %111 -%112 = OpLabel -%_0_alpha = OpVariable %_ptr_Function_float Function -%_1_sda = OpVariable %_ptr_Function_v3float Function -%_2_dsa = OpVariable %_ptr_Function_v3float Function -%142 = OpVariable %_ptr_Function_v3float Function -%144 = OpVariable %_ptr_Function_float Function -%146 = OpVariable %_ptr_Function_v3float Function -%114 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%118 = OpLoad %v4float %114 -%119 = OpCompositeExtract %float %118 3 -%120 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%122 = OpLoad %v4float %120 -%123 = OpCompositeExtract %float %122 3 -%124 = OpFMul %float %119 %123 -OpStore %_0_alpha %124 -%126 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%127 = OpLoad %v4float %126 -%128 = OpVectorShuffle %v3float %127 %127 0 1 2 -%129 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%130 = OpLoad %v4float %129 -%131 = OpCompositeExtract %float %130 3 -%132 = OpVectorTimesScalar %v3float %128 %131 -OpStore %_1_sda %132 -%134 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%135 = OpLoad %v4float %134 -%136 = OpVectorShuffle %v3float %135 %135 0 1 2 -%137 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%138 = OpLoad %v4float %137 -%139 = OpCompositeExtract %float %138 3 -%140 = OpVectorTimesScalar %v3float %136 %139 -OpStore %_2_dsa %140 -%141 = OpLoad %v3float %_2_dsa -OpStore %142 %141 -%143 = OpLoad %float %_0_alpha -OpStore %144 %143 -%145 = OpLoad %v3float %_1_sda -OpStore %146 %145 -%147 = OpFunctionCall %v3float %blend_set_color_luminance_Qh3h3hh3 %142 %144 %146 -%148 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%149 = OpLoad %v4float %148 -%150 = OpVectorShuffle %v3float %149 %149 0 1 2 -%151 = OpFAdd %v3float %147 %150 -%152 = OpLoad %v3float %_2_dsa -%153 = OpFSub %v3float %151 %152 -%154 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%155 = OpLoad %v4float %154 -%156 = OpVectorShuffle %v3float %155 %155 0 1 2 -%157 = OpFAdd %v3float %153 %156 -%158 = OpLoad %v3float %_1_sda -%159 = OpFSub %v3float %157 %158 -%160 = OpCompositeExtract %float %159 0 -%161 = OpCompositeExtract %float %159 1 -%162 = OpCompositeExtract %float %159 2 -%163 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%164 = OpLoad %v4float %163 -%165 = OpCompositeExtract %float %164 3 -%166 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%167 = OpLoad %v4float %166 -%168 = OpCompositeExtract %float %167 3 -%169 = OpFAdd %float %165 %168 -%170 = OpLoad %float %_0_alpha -%171 = OpFSub %float %169 %170 -%172 = OpCompositeConstruct %v4float %160 %161 %162 %171 -OpStore %sk_FragColor %172 +%main = OpFunction %void None %235 +%236 = OpLabel +%242 = OpVariable %_ptr_Function_v4float Function +%246 = OpVariable %_ptr_Function_v4float Function +%248 = OpVariable %_ptr_Function_bool Function +%249 = OpVariable %_ptr_Function_bool Function +%237 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 +%241 = OpLoad %v4float %237 +OpStore %242 %241 +%243 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 +%245 = OpLoad %v4float %243 +OpStore %246 %245 +OpStore %248 %true +OpStore %249 %false +%250 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %242 %246 %248 %249 +OpStore %sk_FragColor %250 OpReturn OpFunctionEnd diff --git a/third_party/skia/tests/sksl/blend/BlendLuminosity.glsl b/third_party/skia/tests/sksl/blend/BlendLuminosity.glsl index 2014559de2e0..77567a85ba29 100644 --- a/third_party/skia/tests/sksl/blend/BlendLuminosity.glsl +++ b/third_party/skia/tests/sksl/blend/BlendLuminosity.glsl @@ -2,23 +2,33 @@ out vec4 sk_FragColor; uniform vec4 src; uniform vec4 dst; -vec3 blend_set_color_luminance_Qh3h3hh3(vec3 hueSatColor, float alpha, vec3 lumColor) { - float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor); - vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor; - float minComp = min(min(result.x, result.y), result.z); - float maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0 && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); +float blend_color_saturation_Qhh3(vec3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); +} +vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) { + float alpha = dst.w * src.w; + vec3 sda = src.xyz * dst.w; + vec3 dsa = dst.xyz * src.w; + vec3 l = flip ? dsa : sda; + vec3 r = flip ? sda : dsa; + if (saturate) { + float _2_mn = min(min(l.x, l.y), l.z); + float _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0); + r = dsa; + } + float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r); + vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l; + float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0 && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } void main() { - float _0_alpha = dst.w * src.w; - vec3 _1_sda = src.xyz * dst.w; - vec3 _2_dsa = dst.xyz * src.w; - sk_FragColor = vec4((((blend_set_color_luminance_Qh3h3hh3(_2_dsa, _0_alpha, _1_sda) + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha); + sk_FragColor = blend_hslc_h4h4h4bb(src, dst, true, false); } diff --git a/third_party/skia/tests/sksl/blend/BlendLuminosity.metal b/third_party/skia/tests/sksl/blend/BlendLuminosity.metal index 7427535cf4db..f0df8ad3b8ce 100644 --- a/third_party/skia/tests/sksl/blend/BlendLuminosity.metal +++ b/third_party/skia/tests/sksl/blend/BlendLuminosity.metal @@ -10,26 +10,36 @@ struct Inputs { struct Outputs { half4 sk_FragColor [[color(0)]]; }; -half3 blend_set_color_luminance_Qh3h3hh3(half3 hueSatColor, half alpha, half3 lumColor) { - half lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), lumColor); - half3 result = (lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), hueSatColor)) + hueSatColor; - half minComp = min(min(result.x, result.y), result.z); - half maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0h && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); +half blend_color_saturation_Qhh3(half3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); +} +half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) { + half alpha = dst.w * src.w; + half3 sda = src.xyz * dst.w; + half3 dsa = dst.xyz * src.w; + half3 l = flip ? dsa : sda; + half3 r = flip ? sda : dsa; + if (saturate) { + half _2_mn = min(min(l.x, l.y), l.z); + half _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : half3(0.0h); + r = dsa; + } + half _4_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r); + half3 _5_result = (_4_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l; + half _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + half _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0h && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return half4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { Outputs _out; (void)_out; - half _0_alpha = _uniforms.dst.w * _uniforms.src.w; - half3 _1_sda = _uniforms.src.xyz * _uniforms.dst.w; - half3 _2_dsa = _uniforms.dst.xyz * _uniforms.src.w; - _out.sk_FragColor = half4((((blend_set_color_luminance_Qh3h3hh3(_2_dsa, _0_alpha, _1_sda) + _uniforms.dst.xyz) - _2_dsa) + _uniforms.src.xyz) - _1_sda, (_uniforms.src.w + _uniforms.dst.w) - _0_alpha); + _out.sk_FragColor = blend_hslc_h4h4h4bb(_uniforms.src, _uniforms.dst, true, false); return _out; } diff --git a/third_party/skia/tests/sksl/blend/BlendLuminosityStandaloneSettings.glsl b/third_party/skia/tests/sksl/blend/BlendLuminosityStandaloneSettings.glsl index fd36962fa611..fadbeb1670b7 100644 --- a/third_party/skia/tests/sksl/blend/BlendLuminosityStandaloneSettings.glsl +++ b/third_party/skia/tests/sksl/blend/BlendLuminosityStandaloneSettings.glsl @@ -2,23 +2,33 @@ out vec4 sk_FragColor; uniform vec4 src; uniform vec4 dst; -vec3 blend_set_color_luminance_Qh3h3hh3(vec3 hueSatColor, float alpha, vec3 lumColor) { - float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor); - vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor; - float minComp = min(min(result.x, result.y), result.z); - float maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0 && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); +float blend_color_saturation_Qhh3(vec3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); +} +vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) { + float alpha = dst.w * src.w; + vec3 sda = src.xyz * dst.w; + vec3 dsa = dst.xyz * src.w; + vec3 l = flip ? dsa : sda; + vec3 r = flip ? sda : dsa; + if (saturate) { + float _2_mn = min(min(l.x, l.y), l.z); + float _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0); + r = dsa; + } + float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r); + vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l; + float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0 && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } void main() { - float _0_alpha = dst.w * src.w; - vec3 _1_sda = src.xyz * dst.w; - vec3 _2_dsa = dst.xyz * src.w; - sk_FragColor = vec4((((blend_set_color_luminance_Qh3h3hh3(_2_dsa, _0_alpha, _1_sda) + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha); + sk_FragColor = blend_hslc_h4h4h4bb(src, dst, true, false); } diff --git a/third_party/skia/tests/sksl/blend/BlendOverlay.asm.frag b/third_party/skia/tests/sksl/blend/BlendOverlay.asm.frag index 8175bb241958..32b873a5723f 100644 --- a/third_party/skia/tests/sksl/blend/BlendOverlay.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendOverlay.asm.frag @@ -106,7 +106,7 @@ OpDecorate %130 RelaxedPrecision %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %v2float = OpTypeVector %float 2 %_ptr_Function_v2float = OpTypePointer Function %v2float -%15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float +%16 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float %float_2 = OpConstant %float 2 %_ptr_Function_float = OpTypePointer Function %float %void = OpTypeVoid @@ -118,7 +118,7 @@ OpDecorate %130 RelaxedPrecision %int_1 = OpConstant %int 1 %float_1 = OpConstant %float 1 %v3float = OpTypeVector %float 3 -%blend_overlay_component_Qhh2h2 = OpFunction %float None %15 +%blend_overlay_component_Qhh2h2 = OpFunction %float None %16 %17 = OpFunctionParameter %_ptr_Function_v2float %18 = OpFunctionParameter %_ptr_Function_v2float %19 = OpLabel diff --git a/third_party/skia/tests/sksl/blend/BlendPlus.asm.frag b/third_party/skia/tests/sksl/blend/BlendPlus.asm.frag index 8f7e6ceaa7fb..93476d14aef3 100644 --- a/third_party/skia/tests/sksl/blend/BlendPlus.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendPlus.asm.frag @@ -23,7 +23,6 @@ OpDecorate %10 DescriptorSet 0 OpDecorate %21 RelaxedPrecision OpDecorate %24 RelaxedPrecision OpDecorate %25 RelaxedPrecision -OpDecorate %27 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -41,6 +40,7 @@ OpDecorate %27 RelaxedPrecision %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 %float_1 = OpConstant %float 1 +%27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %main = OpFunction %void None %14 %15 = OpLabel %17 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 @@ -48,7 +48,6 @@ OpDecorate %27 RelaxedPrecision %22 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 %24 = OpLoad %v4float %22 %25 = OpFAdd %v4float %21 %24 -%27 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 %16 = OpExtInst %v4float %1 FMin %25 %27 OpStore %sk_FragColor %16 OpReturn diff --git a/third_party/skia/tests/sksl/blend/BlendSaturation.asm.frag b/third_party/skia/tests/sksl/blend/BlendSaturation.asm.frag index 0abfed449639..956d7b1f9b7a 100644 --- a/third_party/skia/tests/sksl/blend/BlendSaturation.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendSaturation.asm.frag @@ -8,18 +8,20 @@ OpName %sk_Clockwise "sk_Clockwise" OpName %_UniformBuffer "_UniformBuffer" OpMemberName %_UniformBuffer 0 "src" OpMemberName %_UniformBuffer 1 "dst" -OpName %blend_set_color_luminance_Qh3h3hh3 "blend_set_color_luminance_Qh3h3hh3" -OpName %lum "lum" -OpName %result "result" -OpName %minComp "minComp" -OpName %maxComp "maxComp" -OpName %blend_set_color_saturation_helper_Qh3h3h "blend_set_color_saturation_helper_Qh3h3h" -OpName %blend_set_color_saturation_Qh3h3h3 "blend_set_color_saturation_Qh3h3h3" -OpName %sat "sat" +OpName %blend_color_saturation_Qhh3 "blend_color_saturation_Qhh3" +OpName %blend_hslc_h4h4h4bb "blend_hslc_h4h4h4bb" +OpName %alpha "alpha" +OpName %sda "sda" +OpName %dsa "dsa" +OpName %l "l" +OpName %r "r" +OpName %_2_mn "_2_mn" +OpName %_3_mx "_3_mx" +OpName %_4_lum "_4_lum" +OpName %_5_result "_5_result" +OpName %_6_minComp "_6_minComp" +OpName %_7_maxComp "_7_maxComp" OpName %main "main" -OpName %_0_alpha "_0_alpha" -OpName %_1_sda "_1_sda" -OpName %_2_dsa "_2_dsa" OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 @@ -29,57 +31,58 @@ OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision OpMemberDecorate %_UniformBuffer 1 Offset 16 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpDecorate %_UniformBuffer Block -OpDecorate %13 Binding 0 -OpDecorate %13 DescriptorSet 0 -OpDecorate %lum RelaxedPrecision +OpDecorate %12 Binding 0 +OpDecorate %12 DescriptorSet 0 +OpDecorate %22 RelaxedPrecision +OpDecorate %23 RelaxedPrecision +OpDecorate %24 RelaxedPrecision OpDecorate %25 RelaxedPrecision -OpDecorate %29 RelaxedPrecision +OpDecorate %26 RelaxedPrecision +OpDecorate %27 RelaxedPrecision OpDecorate %30 RelaxedPrecision -OpDecorate %result RelaxedPrecision +OpDecorate %31 RelaxedPrecision OpDecorate %32 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %35 RelaxedPrecision OpDecorate %36 RelaxedPrecision -OpDecorate %37 RelaxedPrecision -OpDecorate %38 RelaxedPrecision -OpDecorate %minComp RelaxedPrecision -OpDecorate %42 RelaxedPrecision -OpDecorate %43 RelaxedPrecision -OpDecorate %44 RelaxedPrecision -OpDecorate %45 RelaxedPrecision -OpDecorate %46 RelaxedPrecision +OpDecorate %alpha RelaxedPrecision OpDecorate %47 RelaxedPrecision -OpDecorate %maxComp RelaxedPrecision +OpDecorate %48 RelaxedPrecision +OpDecorate %49 RelaxedPrecision +OpDecorate %50 RelaxedPrecision OpDecorate %51 RelaxedPrecision -OpDecorate %52 RelaxedPrecision +OpDecorate %sda RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision OpDecorate %55 RelaxedPrecision OpDecorate %56 RelaxedPrecision -OpDecorate %58 RelaxedPrecision +OpDecorate %57 RelaxedPrecision +OpDecorate %dsa RelaxedPrecision +OpDecorate %59 RelaxedPrecision +OpDecorate %60 RelaxedPrecision +OpDecorate %61 RelaxedPrecision +OpDecorate %62 RelaxedPrecision OpDecorate %63 RelaxedPrecision -OpDecorate %64 RelaxedPrecision -OpDecorate %69 RelaxedPrecision +OpDecorate %l RelaxedPrecision +OpDecorate %65 RelaxedPrecision OpDecorate %70 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %72 RelaxedPrecision -OpDecorate %73 RelaxedPrecision +OpDecorate %r RelaxedPrecision OpDecorate %74 RelaxedPrecision -OpDecorate %75 RelaxedPrecision -OpDecorate %76 RelaxedPrecision -OpDecorate %77 RelaxedPrecision -OpDecorate %78 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %82 RelaxedPrecision -OpDecorate %83 RelaxedPrecision -OpDecorate %87 RelaxedPrecision +OpDecorate %_2_mn RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %94 RelaxedPrecision -OpDecorate %95 RelaxedPrecision -OpDecorate %96 RelaxedPrecision +OpDecorate %89 RelaxedPrecision +OpDecorate %90 RelaxedPrecision +OpDecorate %91 RelaxedPrecision +OpDecorate %92 RelaxedPrecision +OpDecorate %93 RelaxedPrecision +OpDecorate %_3_mx RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %98 RelaxedPrecision OpDecorate %99 RelaxedPrecision @@ -88,131 +91,104 @@ OpDecorate %101 RelaxedPrecision OpDecorate %102 RelaxedPrecision OpDecorate %103 RelaxedPrecision OpDecorate %104 RelaxedPrecision -OpDecorate %105 RelaxedPrecision -OpDecorate %107 RelaxedPrecision -OpDecorate %108 RelaxedPrecision -OpDecorate %109 RelaxedPrecision OpDecorate %110 RelaxedPrecision OpDecorate %111 RelaxedPrecision -OpDecorate %116 RelaxedPrecision +OpDecorate %112 RelaxedPrecision +OpDecorate %113 RelaxedPrecision +OpDecorate %114 RelaxedPrecision OpDecorate %117 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %119 RelaxedPrecision -OpDecorate %124 RelaxedPrecision -OpDecorate %125 RelaxedPrecision +OpDecorate %120 RelaxedPrecision +OpDecorate %122 RelaxedPrecision +OpDecorate %123 RelaxedPrecision OpDecorate %126 RelaxedPrecision OpDecorate %127 RelaxedPrecision -OpDecorate %128 RelaxedPrecision +OpDecorate %_4_lum RelaxedPrecision OpDecorate %129 RelaxedPrecision -OpDecorate %130 RelaxedPrecision -OpDecorate %131 RelaxedPrecision -OpDecorate %132 RelaxedPrecision -OpDecorate %133 RelaxedPrecision OpDecorate %134 RelaxedPrecision -OpDecorate %135 RelaxedPrecision +OpDecorate %_5_result RelaxedPrecision OpDecorate %136 RelaxedPrecision OpDecorate %137 RelaxedPrecision OpDecorate %138 RelaxedPrecision OpDecorate %139 RelaxedPrecision -OpDecorate %sat RelaxedPrecision +OpDecorate %140 RelaxedPrecision +OpDecorate %141 RelaxedPrecision +OpDecorate %142 RelaxedPrecision +OpDecorate %_6_minComp RelaxedPrecision +OpDecorate %146 RelaxedPrecision OpDecorate %147 RelaxedPrecision OpDecorate %148 RelaxedPrecision OpDecorate %149 RelaxedPrecision OpDecorate %150 RelaxedPrecision OpDecorate %151 RelaxedPrecision -OpDecorate %152 RelaxedPrecision +OpDecorate %_7_maxComp RelaxedPrecision OpDecorate %155 RelaxedPrecision OpDecorate %156 RelaxedPrecision OpDecorate %157 RelaxedPrecision OpDecorate %158 RelaxedPrecision OpDecorate %159 RelaxedPrecision OpDecorate %160 RelaxedPrecision -OpDecorate %161 RelaxedPrecision OpDecorate %162 RelaxedPrecision -OpDecorate %163 RelaxedPrecision -OpDecorate %164 RelaxedPrecision -OpDecorate %165 RelaxedPrecision -OpDecorate %170 RelaxedPrecision -OpDecorate %171 RelaxedPrecision +OpDecorate %166 RelaxedPrecision +OpDecorate %167 RelaxedPrecision OpDecorate %172 RelaxedPrecision OpDecorate %173 RelaxedPrecision +OpDecorate %174 RelaxedPrecision +OpDecorate %175 RelaxedPrecision +OpDecorate %176 RelaxedPrecision +OpDecorate %177 RelaxedPrecision OpDecorate %178 RelaxedPrecision +OpDecorate %179 RelaxedPrecision OpDecorate %180 RelaxedPrecision +OpDecorate %181 RelaxedPrecision +OpDecorate %182 RelaxedPrecision OpDecorate %183 RelaxedPrecision OpDecorate %184 RelaxedPrecision OpDecorate %185 RelaxedPrecision OpDecorate %186 RelaxedPrecision +OpDecorate %190 RelaxedPrecision OpDecorate %191 RelaxedPrecision -OpDecorate %192 RelaxedPrecision -OpDecorate %194 RelaxedPrecision +OpDecorate %196 RelaxedPrecision OpDecorate %197 RelaxedPrecision OpDecorate %198 RelaxedPrecision OpDecorate %199 RelaxedPrecision +OpDecorate %200 RelaxedPrecision OpDecorate %201 RelaxedPrecision +OpDecorate %202 RelaxedPrecision +OpDecorate %203 RelaxedPrecision OpDecorate %204 RelaxedPrecision OpDecorate %205 RelaxedPrecision OpDecorate %206 RelaxedPrecision OpDecorate %207 RelaxedPrecision OpDecorate %208 RelaxedPrecision +OpDecorate %209 RelaxedPrecision +OpDecorate %210 RelaxedPrecision +OpDecorate %211 RelaxedPrecision +OpDecorate %212 RelaxedPrecision OpDecorate %213 RelaxedPrecision OpDecorate %214 RelaxedPrecision +OpDecorate %215 RelaxedPrecision OpDecorate %216 RelaxedPrecision +OpDecorate %217 RelaxedPrecision +OpDecorate %218 RelaxedPrecision OpDecorate %219 RelaxedPrecision OpDecorate %220 RelaxedPrecision OpDecorate %221 RelaxedPrecision OpDecorate %222 RelaxedPrecision OpDecorate %223 RelaxedPrecision +OpDecorate %224 RelaxedPrecision +OpDecorate %225 RelaxedPrecision +OpDecorate %226 RelaxedPrecision +OpDecorate %227 RelaxedPrecision OpDecorate %228 RelaxedPrecision OpDecorate %229 RelaxedPrecision +OpDecorate %230 RelaxedPrecision OpDecorate %231 RelaxedPrecision -OpDecorate %234 RelaxedPrecision -OpDecorate %235 RelaxedPrecision -OpDecorate %236 RelaxedPrecision -OpDecorate %238 RelaxedPrecision +OpDecorate %232 RelaxedPrecision +OpDecorate %233 RelaxedPrecision OpDecorate %241 RelaxedPrecision -OpDecorate %_0_alpha RelaxedPrecision -OpDecorate %250 RelaxedPrecision -OpDecorate %251 RelaxedPrecision -OpDecorate %254 RelaxedPrecision -OpDecorate %255 RelaxedPrecision -OpDecorate %256 RelaxedPrecision -OpDecorate %_1_sda RelaxedPrecision -OpDecorate %259 RelaxedPrecision -OpDecorate %260 RelaxedPrecision -OpDecorate %262 RelaxedPrecision -OpDecorate %263 RelaxedPrecision -OpDecorate %264 RelaxedPrecision -OpDecorate %_2_dsa RelaxedPrecision -OpDecorate %267 RelaxedPrecision -OpDecorate %268 RelaxedPrecision -OpDecorate %270 RelaxedPrecision -OpDecorate %271 RelaxedPrecision -OpDecorate %272 RelaxedPrecision -OpDecorate %273 RelaxedPrecision -OpDecorate %275 RelaxedPrecision -OpDecorate %279 RelaxedPrecision -OpDecorate %281 RelaxedPrecision -OpDecorate %285 RelaxedPrecision -OpDecorate %286 RelaxedPrecision -OpDecorate %287 RelaxedPrecision -OpDecorate %288 RelaxedPrecision -OpDecorate %289 RelaxedPrecision -OpDecorate %291 RelaxedPrecision -OpDecorate %292 RelaxedPrecision -OpDecorate %293 RelaxedPrecision -OpDecorate %294 RelaxedPrecision -OpDecorate %295 RelaxedPrecision -OpDecorate %296 RelaxedPrecision -OpDecorate %297 RelaxedPrecision -OpDecorate %298 RelaxedPrecision -OpDecorate %300 RelaxedPrecision -OpDecorate %301 RelaxedPrecision -OpDecorate %303 RelaxedPrecision -OpDecorate %304 RelaxedPrecision -OpDecorate %305 RelaxedPrecision -OpDecorate %306 RelaxedPrecision -OpDecorate %307 RelaxedPrecision -OpDecorate %308 RelaxedPrecision +OpDecorate %245 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -222,373 +198,303 @@ OpDecorate %308 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %_UniformBuffer = OpTypeStruct %v4float %v4float %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer -%13 = OpVariable %_ptr_Uniform__UniformBuffer Uniform +%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %v3float = OpTypeVector %float 3 %_ptr_Function_v3float = OpTypePointer Function %v3float +%17 = OpTypeFunction %float %_ptr_Function_v3float +%_ptr_Function_v4float = OpTypePointer Function %v4float +%_ptr_Function_bool = OpTypePointer Function %bool +%39 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v4float %_ptr_Function_bool %_ptr_Function_bool %_ptr_Function_float = OpTypePointer Function %float -%17 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_float %_ptr_Function_v3float +%float_1 = OpConstant %float 1 +%float_0 = OpConstant %float 0 +%125 = OpConstantComposite %v3float %float_0 %float_0 %float_0 %float_0_300000012 = OpConstant %float 0.300000012 %float_0_589999974 = OpConstant %float 0.589999974 %float_0_109999999 = OpConstant %float 0.109999999 -%29 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999 +%133 = OpConstantComposite %v3float %float_0_300000012 %float_0_589999974 %float_0_109999999 %false = OpConstantFalse %bool -%float_0 = OpConstant %float 0 -%float_1 = OpConstant %float 1 -%112 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_float -%139 = OpConstantComposite %v3float %float_0 %float_0 %float_0 -%140 = OpTypeFunction %v3float %_ptr_Function_v3float %_ptr_Function_v3float %void = OpTypeVoid -%243 = OpTypeFunction %void +%235 = OpTypeFunction %void %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 -%int_1 = OpConstant %int 1 %int_0 = OpConstant %int 0 -%blend_set_color_luminance_Qh3h3hh3 = OpFunction %v3float None %17 -%20 = OpFunctionParameter %_ptr_Function_v3float -%21 = OpFunctionParameter %_ptr_Function_float -%22 = OpFunctionParameter %_ptr_Function_v3float -%23 = OpLabel -%lum = OpVariable %_ptr_Function_float Function -%result = OpVariable %_ptr_Function_v3float Function -%minComp = OpVariable %_ptr_Function_float Function -%maxComp = OpVariable %_ptr_Function_float Function -%30 = OpLoad %v3float %22 -%25 = OpDot %float %29 %30 -OpStore %lum %25 -%32 = OpLoad %float %lum -%34 = OpLoad %v3float %20 -%33 = OpDot %float %29 %34 -%35 = OpFSub %float %32 %33 -%36 = OpLoad %v3float %20 -%37 = OpCompositeConstruct %v3float %35 %35 %35 -%38 = OpFAdd %v3float %37 %36 -OpStore %result %38 -%42 = OpLoad %v3float %result -%43 = OpCompositeExtract %float %42 0 -%44 = OpLoad %v3float %result -%45 = OpCompositeExtract %float %44 1 -%41 = OpExtInst %float %1 FMin %43 %45 -%46 = OpLoad %v3float %result -%47 = OpCompositeExtract %float %46 2 -%40 = OpExtInst %float %1 FMin %41 %47 -OpStore %minComp %40 -%51 = OpLoad %v3float %result -%52 = OpCompositeExtract %float %51 0 -%53 = OpLoad %v3float %result -%54 = OpCompositeExtract %float %53 1 -%50 = OpExtInst %float %1 FMax %52 %54 -%55 = OpLoad %v3float %result -%56 = OpCompositeExtract %float %55 2 -%49 = OpExtInst %float %1 FMax %50 %56 -OpStore %maxComp %49 -%58 = OpLoad %float %minComp -%60 = OpFOrdLessThan %bool %58 %float_0 -OpSelectionMerge %62 None -OpBranchConditional %60 %61 %62 -%61 = OpLabel -%63 = OpLoad %float %lum -%64 = OpLoad %float %minComp -%65 = OpFOrdNotEqual %bool %63 %64 -OpBranch %62 -%62 = OpLabel -%66 = OpPhi %bool %false %23 %65 %61 -OpSelectionMerge %68 None -OpBranchConditional %66 %67 %68 +%int_1 = OpConstant %int 1 +%true = OpConstantTrue %bool +%blend_color_saturation_Qhh3 = OpFunction %float None %17 +%18 = OpFunctionParameter %_ptr_Function_v3float +%19 = OpLabel +%22 = OpLoad %v3float %18 +%23 = OpCompositeExtract %float %22 0 +%24 = OpLoad %v3float %18 +%25 = OpCompositeExtract %float %24 1 +%21 = OpExtInst %float %1 FMax %23 %25 +%26 = OpLoad %v3float %18 +%27 = OpCompositeExtract %float %26 2 +%20 = OpExtInst %float %1 FMax %21 %27 +%30 = OpLoad %v3float %18 +%31 = OpCompositeExtract %float %30 0 +%32 = OpLoad %v3float %18 +%33 = OpCompositeExtract %float %32 1 +%29 = OpExtInst %float %1 FMin %31 %33 +%34 = OpLoad %v3float %18 +%35 = OpCompositeExtract %float %34 2 +%28 = OpExtInst %float %1 FMin %29 %35 +%36 = OpFSub %float %20 %28 +OpReturnValue %36 +OpFunctionEnd +%blend_hslc_h4h4h4bb = OpFunction %v4float None %39 +%40 = OpFunctionParameter %_ptr_Function_v4float +%41 = OpFunctionParameter %_ptr_Function_v4float +%42 = OpFunctionParameter %_ptr_Function_bool +%43 = OpFunctionParameter %_ptr_Function_bool +%44 = OpLabel +%alpha = OpVariable %_ptr_Function_float Function +%sda = OpVariable %_ptr_Function_v3float Function +%dsa = OpVariable %_ptr_Function_v3float Function +%l = OpVariable %_ptr_Function_v3float Function +%66 = OpVariable %_ptr_Function_v3float Function +%r = OpVariable %_ptr_Function_v3float Function +%75 = OpVariable %_ptr_Function_v3float Function +%_2_mn = OpVariable %_ptr_Function_float Function +%_3_mx = OpVariable %_ptr_Function_float Function +%106 = OpVariable %_ptr_Function_v3float Function +%115 = OpVariable %_ptr_Function_v3float Function +%_4_lum = OpVariable %_ptr_Function_float Function +%_5_result = OpVariable %_ptr_Function_v3float Function +%_6_minComp = OpVariable %_ptr_Function_float Function +%_7_maxComp = OpVariable %_ptr_Function_float Function +%47 = OpLoad %v4float %41 +%48 = OpCompositeExtract %float %47 3 +%49 = OpLoad %v4float %40 +%50 = OpCompositeExtract %float %49 3 +%51 = OpFMul %float %48 %50 +OpStore %alpha %51 +%53 = OpLoad %v4float %40 +%54 = OpVectorShuffle %v3float %53 %53 0 1 2 +%55 = OpLoad %v4float %41 +%56 = OpCompositeExtract %float %55 3 +%57 = OpVectorTimesScalar %v3float %54 %56 +OpStore %sda %57 +%59 = OpLoad %v4float %41 +%60 = OpVectorShuffle %v3float %59 %59 0 1 2 +%61 = OpLoad %v4float %40 +%62 = OpCompositeExtract %float %61 3 +%63 = OpVectorTimesScalar %v3float %60 %62 +OpStore %dsa %63 +%65 = OpLoad %bool %42 +OpSelectionMerge %69 None +OpBranchConditional %65 %67 %68 %67 = OpLabel -%69 = OpLoad %float %lum -%70 = OpLoad %v3float %result -%71 = OpLoad %float %lum -%72 = OpCompositeConstruct %v3float %71 %71 %71 -%73 = OpFSub %v3float %70 %72 -%74 = OpLoad %float %lum -%75 = OpLoad %float %lum -%76 = OpLoad %float %minComp -%77 = OpFSub %float %75 %76 -%78 = OpFDiv %float %74 %77 -%79 = OpVectorTimesScalar %v3float %73 %78 -%80 = OpCompositeConstruct %v3float %69 %69 %69 -%81 = OpFAdd %v3float %80 %79 -OpStore %result %81 -OpBranch %68 +%70 = OpLoad %v3float %dsa +OpStore %66 %70 +OpBranch %69 %68 = OpLabel -%82 = OpLoad %float %maxComp -%83 = OpLoad %float %21 -%84 = OpFOrdGreaterThan %bool %82 %83 -OpSelectionMerge %86 None -OpBranchConditional %84 %85 %86 -%85 = OpLabel -%87 = OpLoad %float %maxComp -%88 = OpLoad %float %lum -%89 = OpFOrdNotEqual %bool %87 %88 -OpBranch %86 -%86 = OpLabel -%90 = OpPhi %bool %false %68 %89 %85 -OpSelectionMerge %93 None -OpBranchConditional %90 %91 %92 -%91 = OpLabel -%94 = OpLoad %float %lum -%95 = OpLoad %v3float %result -%96 = OpLoad %float %lum -%97 = OpCompositeConstruct %v3float %96 %96 %96 -%98 = OpFSub %v3float %95 %97 -%99 = OpLoad %float %21 -%100 = OpLoad %float %lum -%101 = OpFSub %float %99 %100 -%102 = OpVectorTimesScalar %v3float %98 %101 -%103 = OpLoad %float %maxComp -%104 = OpLoad %float %lum -%105 = OpFSub %float %103 %104 -%107 = OpFDiv %float %float_1 %105 -%108 = OpVectorTimesScalar %v3float %102 %107 -%109 = OpCompositeConstruct %v3float %94 %94 %94 -%110 = OpFAdd %v3float %109 %108 -OpReturnValue %110 -%92 = OpLabel -%111 = OpLoad %v3float %result -OpReturnValue %111 -%93 = OpLabel -OpUnreachable -OpFunctionEnd -%blend_set_color_saturation_helper_Qh3h3h = OpFunction %v3float None %112 -%113 = OpFunctionParameter %_ptr_Function_v3float -%114 = OpFunctionParameter %_ptr_Function_float -%115 = OpLabel -%116 = OpLoad %v3float %113 -%117 = OpCompositeExtract %float %116 0 -%118 = OpLoad %v3float %113 -%119 = OpCompositeExtract %float %118 2 -%120 = OpFOrdLessThan %bool %117 %119 -OpSelectionMerge %123 None -OpBranchConditional %120 %121 %122 -%121 = OpLabel -%124 = OpLoad %float %114 -%125 = OpLoad %v3float %113 -%126 = OpCompositeExtract %float %125 1 -%127 = OpLoad %v3float %113 -%128 = OpCompositeExtract %float %127 0 -%129 = OpFSub %float %126 %128 -%130 = OpFMul %float %124 %129 -%131 = OpLoad %v3float %113 -%132 = OpCompositeExtract %float %131 2 -%133 = OpLoad %v3float %113 -%134 = OpCompositeExtract %float %133 0 -%135 = OpFSub %float %132 %134 -%136 = OpFDiv %float %130 %135 -%137 = OpLoad %float %114 -%138 = OpCompositeConstruct %v3float %float_0 %136 %137 -OpReturnValue %138 -%122 = OpLabel -OpReturnValue %139 -%123 = OpLabel -OpUnreachable -OpFunctionEnd -%blend_set_color_saturation_Qh3h3h3 = OpFunction %v3float None %140 -%141 = OpFunctionParameter %_ptr_Function_v3float -%142 = OpFunctionParameter %_ptr_Function_v3float -%143 = OpLabel -%sat = OpVariable %_ptr_Function_float Function -%179 = OpVariable %_ptr_Function_v3float Function -%181 = OpVariable %_ptr_Function_float Function -%193 = OpVariable %_ptr_Function_v3float Function -%195 = OpVariable %_ptr_Function_float Function -%200 = OpVariable %_ptr_Function_v3float Function -%202 = OpVariable %_ptr_Function_float Function -%215 = OpVariable %_ptr_Function_v3float Function -%217 = OpVariable %_ptr_Function_float Function -%230 = OpVariable %_ptr_Function_v3float Function -%232 = OpVariable %_ptr_Function_float Function -%237 = OpVariable %_ptr_Function_v3float Function -%239 = OpVariable %_ptr_Function_float Function -%147 = OpLoad %v3float %142 -%148 = OpCompositeExtract %float %147 0 -%149 = OpLoad %v3float %142 -%150 = OpCompositeExtract %float %149 1 -%146 = OpExtInst %float %1 FMax %148 %150 -%151 = OpLoad %v3float %142 -%152 = OpCompositeExtract %float %151 2 -%145 = OpExtInst %float %1 FMax %146 %152 -%155 = OpLoad %v3float %142 +%71 = OpLoad %v3float %sda +OpStore %66 %71 +OpBranch %69 +%69 = OpLabel +%72 = OpLoad %v3float %66 +OpStore %l %72 +%74 = OpLoad %bool %42 +OpSelectionMerge %78 None +OpBranchConditional %74 %76 %77 +%76 = OpLabel +%79 = OpLoad %v3float %sda +OpStore %75 %79 +OpBranch %78 +%77 = OpLabel +%80 = OpLoad %v3float %dsa +OpStore %75 %80 +OpBranch %78 +%78 = OpLabel +%81 = OpLoad %v3float %75 +OpStore %r %81 +%82 = OpLoad %bool %43 +OpSelectionMerge %84 None +OpBranchConditional %82 %83 %84 +%83 = OpLabel +%88 = OpLoad %v3float %l +%89 = OpCompositeExtract %float %88 0 +%90 = OpLoad %v3float %l +%91 = OpCompositeExtract %float %90 1 +%87 = OpExtInst %float %1 FMin %89 %91 +%92 = OpLoad %v3float %l +%93 = OpCompositeExtract %float %92 2 +%86 = OpExtInst %float %1 FMin %87 %93 +OpStore %_2_mn %86 +%97 = OpLoad %v3float %l +%98 = OpCompositeExtract %float %97 0 +%99 = OpLoad %v3float %l +%100 = OpCompositeExtract %float %99 1 +%96 = OpExtInst %float %1 FMax %98 %100 +%101 = OpLoad %v3float %l +%102 = OpCompositeExtract %float %101 2 +%95 = OpExtInst %float %1 FMax %96 %102 +OpStore %_3_mx %95 +%103 = OpLoad %float %_3_mx +%104 = OpLoad %float %_2_mn +%105 = OpFOrdGreaterThan %bool %103 %104 +OpSelectionMerge %109 None +OpBranchConditional %105 %107 %108 +%107 = OpLabel +%110 = OpLoad %v3float %l +%111 = OpLoad %float %_2_mn +%112 = OpCompositeConstruct %v3float %111 %111 %111 +%113 = OpFSub %v3float %110 %112 +%114 = OpLoad %v3float %r +OpStore %115 %114 +%116 = OpFunctionCall %float %blend_color_saturation_Qhh3 %115 +%117 = OpVectorTimesScalar %v3float %113 %116 +%118 = OpLoad %float %_3_mx +%119 = OpLoad %float %_2_mn +%120 = OpFSub %float %118 %119 +%122 = OpFDiv %float %float_1 %120 +%123 = OpVectorTimesScalar %v3float %117 %122 +OpStore %106 %123 +OpBranch %109 +%108 = OpLabel +OpStore %106 %125 +OpBranch %109 +%109 = OpLabel +%126 = OpLoad %v3float %106 +OpStore %l %126 +%127 = OpLoad %v3float %dsa +OpStore %r %127 +OpBranch %84 +%84 = OpLabel +%134 = OpLoad %v3float %r +%129 = OpDot %float %133 %134 +OpStore %_4_lum %129 +%136 = OpLoad %float %_4_lum +%138 = OpLoad %v3float %l +%137 = OpDot %float %133 %138 +%139 = OpFSub %float %136 %137 +%140 = OpLoad %v3float %l +%141 = OpCompositeConstruct %v3float %139 %139 %139 +%142 = OpFAdd %v3float %141 %140 +OpStore %_5_result %142 +%146 = OpLoad %v3float %_5_result +%147 = OpCompositeExtract %float %146 0 +%148 = OpLoad %v3float %_5_result +%149 = OpCompositeExtract %float %148 1 +%145 = OpExtInst %float %1 FMin %147 %149 +%150 = OpLoad %v3float %_5_result +%151 = OpCompositeExtract %float %150 2 +%144 = OpExtInst %float %1 FMin %145 %151 +OpStore %_6_minComp %144 +%155 = OpLoad %v3float %_5_result %156 = OpCompositeExtract %float %155 0 -%157 = OpLoad %v3float %142 +%157 = OpLoad %v3float %_5_result %158 = OpCompositeExtract %float %157 1 -%154 = OpExtInst %float %1 FMin %156 %158 -%159 = OpLoad %v3float %142 +%154 = OpExtInst %float %1 FMax %156 %158 +%159 = OpLoad %v3float %_5_result %160 = OpCompositeExtract %float %159 2 -%153 = OpExtInst %float %1 FMin %154 %160 -%161 = OpFSub %float %145 %153 -OpStore %sat %161 -%162 = OpLoad %v3float %141 -%163 = OpCompositeExtract %float %162 0 -%164 = OpLoad %v3float %141 -%165 = OpCompositeExtract %float %164 1 -%166 = OpFOrdLessThanEqual %bool %163 %165 -OpSelectionMerge %169 None -OpBranchConditional %166 %167 %168 -%167 = OpLabel -%170 = OpLoad %v3float %141 -%171 = OpCompositeExtract %float %170 1 -%172 = OpLoad %v3float %141 -%173 = OpCompositeExtract %float %172 2 -%174 = OpFOrdLessThanEqual %bool %171 %173 -OpSelectionMerge %177 None -OpBranchConditional %174 %175 %176 -%175 = OpLabel -%178 = OpLoad %v3float %141 -OpStore %179 %178 -%180 = OpLoad %float %sat -OpStore %181 %180 -%182 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %179 %181 -OpReturnValue %182 -%176 = OpLabel -%183 = OpLoad %v3float %141 -%184 = OpCompositeExtract %float %183 0 -%185 = OpLoad %v3float %141 -%186 = OpCompositeExtract %float %185 2 -%187 = OpFOrdLessThanEqual %bool %184 %186 -OpSelectionMerge %190 None +%153 = OpExtInst %float %1 FMax %154 %160 +OpStore %_7_maxComp %153 +%162 = OpLoad %float %_6_minComp +%163 = OpFOrdLessThan %bool %162 %float_0 +OpSelectionMerge %165 None +OpBranchConditional %163 %164 %165 +%164 = OpLabel +%166 = OpLoad %float %_4_lum +%167 = OpLoad %float %_6_minComp +%168 = OpFUnordNotEqual %bool %166 %167 +OpBranch %165 +%165 = OpLabel +%169 = OpPhi %bool %false %84 %168 %164 +OpSelectionMerge %171 None +OpBranchConditional %169 %170 %171 +%170 = OpLabel +%172 = OpLoad %float %_4_lum +%173 = OpLoad %v3float %_5_result +%174 = OpLoad %float %_4_lum +%175 = OpCompositeConstruct %v3float %174 %174 %174 +%176 = OpFSub %v3float %173 %175 +%177 = OpLoad %float %_4_lum +%178 = OpLoad %float %_4_lum +%179 = OpLoad %float %_6_minComp +%180 = OpFSub %float %178 %179 +%181 = OpFDiv %float %177 %180 +%182 = OpVectorTimesScalar %v3float %176 %181 +%183 = OpCompositeConstruct %v3float %172 %172 %172 +%184 = OpFAdd %v3float %183 %182 +OpStore %_5_result %184 +OpBranch %171 +%171 = OpLabel +%185 = OpLoad %float %_7_maxComp +%186 = OpLoad %float %alpha +%187 = OpFOrdGreaterThan %bool %185 %186 +OpSelectionMerge %189 None OpBranchConditional %187 %188 %189 %188 = OpLabel -%191 = OpLoad %v3float %141 -%192 = OpVectorShuffle %v3float %191 %191 0 2 1 -OpStore %193 %192 -%194 = OpLoad %float %sat -OpStore %195 %194 -%196 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %193 %195 -%197 = OpVectorShuffle %v3float %196 %196 0 2 1 -OpReturnValue %197 +%190 = OpLoad %float %_7_maxComp +%191 = OpLoad %float %_4_lum +%192 = OpFUnordNotEqual %bool %190 %191 +OpBranch %189 %189 = OpLabel -%198 = OpLoad %v3float %141 -%199 = OpVectorShuffle %v3float %198 %198 2 0 1 -OpStore %200 %199 -%201 = OpLoad %float %sat -OpStore %202 %201 -%203 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %200 %202 -%204 = OpVectorShuffle %v3float %203 %203 1 2 0 -OpReturnValue %204 -%190 = OpLabel -OpBranch %177 -%177 = OpLabel -OpBranch %169 -%168 = OpLabel -%205 = OpLoad %v3float %141 -%206 = OpCompositeExtract %float %205 0 -%207 = OpLoad %v3float %141 -%208 = OpCompositeExtract %float %207 2 -%209 = OpFOrdLessThanEqual %bool %206 %208 -OpSelectionMerge %212 None -OpBranchConditional %209 %210 %211 -%210 = OpLabel -%213 = OpLoad %v3float %141 -%214 = OpVectorShuffle %v3float %213 %213 1 0 2 -OpStore %215 %214 -%216 = OpLoad %float %sat -OpStore %217 %216 -%218 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %215 %217 -%219 = OpVectorShuffle %v3float %218 %218 1 0 2 -OpReturnValue %219 -%211 = OpLabel -%220 = OpLoad %v3float %141 -%221 = OpCompositeExtract %float %220 1 -%222 = OpLoad %v3float %141 -%223 = OpCompositeExtract %float %222 2 -%224 = OpFOrdLessThanEqual %bool %221 %223 -OpSelectionMerge %227 None -OpBranchConditional %224 %225 %226 -%225 = OpLabel -%228 = OpLoad %v3float %141 -%229 = OpVectorShuffle %v3float %228 %228 1 2 0 -OpStore %230 %229 -%231 = OpLoad %float %sat -OpStore %232 %231 -%233 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %230 %232 -%234 = OpVectorShuffle %v3float %233 %233 2 0 1 -OpReturnValue %234 -%226 = OpLabel -%235 = OpLoad %v3float %141 -%236 = OpVectorShuffle %v3float %235 %235 2 1 0 -OpStore %237 %236 -%238 = OpLoad %float %sat -OpStore %239 %238 -%240 = OpFunctionCall %v3float %blend_set_color_saturation_helper_Qh3h3h %237 %239 -%241 = OpVectorShuffle %v3float %240 %240 2 1 0 -OpReturnValue %241 -%227 = OpLabel -OpBranch %212 -%212 = OpLabel -OpBranch %169 -%169 = OpLabel -OpUnreachable +%193 = OpPhi %bool %false %171 %192 %188 +OpSelectionMerge %195 None +OpBranchConditional %193 %194 %195 +%194 = OpLabel +%196 = OpLoad %float %_4_lum +%197 = OpLoad %v3float %_5_result +%198 = OpLoad %float %_4_lum +%199 = OpCompositeConstruct %v3float %198 %198 %198 +%200 = OpFSub %v3float %197 %199 +%201 = OpLoad %float %alpha +%202 = OpLoad %float %_4_lum +%203 = OpFSub %float %201 %202 +%204 = OpVectorTimesScalar %v3float %200 %203 +%205 = OpLoad %float %_7_maxComp +%206 = OpLoad %float %_4_lum +%207 = OpFSub %float %205 %206 +%208 = OpFDiv %float %float_1 %207 +%209 = OpVectorTimesScalar %v3float %204 %208 +%210 = OpCompositeConstruct %v3float %196 %196 %196 +%211 = OpFAdd %v3float %210 %209 +OpStore %_5_result %211 +OpBranch %195 +%195 = OpLabel +%212 = OpLoad %v3float %_5_result +%213 = OpLoad %v4float %41 +%214 = OpVectorShuffle %v3float %213 %213 0 1 2 +%215 = OpFAdd %v3float %212 %214 +%216 = OpLoad %v3float %dsa +%217 = OpFSub %v3float %215 %216 +%218 = OpLoad %v4float %40 +%219 = OpVectorShuffle %v3float %218 %218 0 1 2 +%220 = OpFAdd %v3float %217 %219 +%221 = OpLoad %v3float %sda +%222 = OpFSub %v3float %220 %221 +%223 = OpCompositeExtract %float %222 0 +%224 = OpCompositeExtract %float %222 1 +%225 = OpCompositeExtract %float %222 2 +%226 = OpLoad %v4float %40 +%227 = OpCompositeExtract %float %226 3 +%228 = OpLoad %v4float %41 +%229 = OpCompositeExtract %float %228 3 +%230 = OpFAdd %float %227 %229 +%231 = OpLoad %float %alpha +%232 = OpFSub %float %230 %231 +%233 = OpCompositeConstruct %v4float %223 %224 %225 %232 +OpReturnValue %233 OpFunctionEnd -%main = OpFunction %void None %243 -%244 = OpLabel -%_0_alpha = OpVariable %_ptr_Function_float Function -%_1_sda = OpVariable %_ptr_Function_v3float Function -%_2_dsa = OpVariable %_ptr_Function_v3float Function -%274 = OpVariable %_ptr_Function_v3float Function -%276 = OpVariable %_ptr_Function_v3float Function -%278 = OpVariable %_ptr_Function_v3float Function -%280 = OpVariable %_ptr_Function_float Function -%282 = OpVariable %_ptr_Function_v3float Function -%246 = OpAccessChain %_ptr_Uniform_v4float %13 %int_1 -%250 = OpLoad %v4float %246 -%251 = OpCompositeExtract %float %250 3 -%252 = OpAccessChain %_ptr_Uniform_v4float %13 %int_0 -%254 = OpLoad %v4float %252 -%255 = OpCompositeExtract %float %254 3 -%256 = OpFMul %float %251 %255 -OpStore %_0_alpha %256 -%258 = OpAccessChain %_ptr_Uniform_v4float %13 %int_0 -%259 = OpLoad %v4float %258 -%260 = OpVectorShuffle %v3float %259 %259 0 1 2 -%261 = OpAccessChain %_ptr_Uniform_v4float %13 %int_1 -%262 = OpLoad %v4float %261 -%263 = OpCompositeExtract %float %262 3 -%264 = OpVectorTimesScalar %v3float %260 %263 -OpStore %_1_sda %264 -%266 = OpAccessChain %_ptr_Uniform_v4float %13 %int_1 -%267 = OpLoad %v4float %266 -%268 = OpVectorShuffle %v3float %267 %267 0 1 2 -%269 = OpAccessChain %_ptr_Uniform_v4float %13 %int_0 -%270 = OpLoad %v4float %269 -%271 = OpCompositeExtract %float %270 3 -%272 = OpVectorTimesScalar %v3float %268 %271 -OpStore %_2_dsa %272 -%273 = OpLoad %v3float %_2_dsa -OpStore %274 %273 -%275 = OpLoad %v3float %_1_sda -OpStore %276 %275 -%277 = OpFunctionCall %v3float %blend_set_color_saturation_Qh3h3h3 %274 %276 -OpStore %278 %277 -%279 = OpLoad %float %_0_alpha -OpStore %280 %279 -%281 = OpLoad %v3float %_2_dsa -OpStore %282 %281 -%283 = OpFunctionCall %v3float %blend_set_color_luminance_Qh3h3hh3 %278 %280 %282 -%284 = OpAccessChain %_ptr_Uniform_v4float %13 %int_1 -%285 = OpLoad %v4float %284 -%286 = OpVectorShuffle %v3float %285 %285 0 1 2 -%287 = OpFAdd %v3float %283 %286 -%288 = OpLoad %v3float %_2_dsa -%289 = OpFSub %v3float %287 %288 -%290 = OpAccessChain %_ptr_Uniform_v4float %13 %int_0 -%291 = OpLoad %v4float %290 -%292 = OpVectorShuffle %v3float %291 %291 0 1 2 -%293 = OpFAdd %v3float %289 %292 -%294 = OpLoad %v3float %_1_sda -%295 = OpFSub %v3float %293 %294 -%296 = OpCompositeExtract %float %295 0 -%297 = OpCompositeExtract %float %295 1 -%298 = OpCompositeExtract %float %295 2 -%299 = OpAccessChain %_ptr_Uniform_v4float %13 %int_0 -%300 = OpLoad %v4float %299 -%301 = OpCompositeExtract %float %300 3 -%302 = OpAccessChain %_ptr_Uniform_v4float %13 %int_1 -%303 = OpLoad %v4float %302 -%304 = OpCompositeExtract %float %303 3 -%305 = OpFAdd %float %301 %304 -%306 = OpLoad %float %_0_alpha -%307 = OpFSub %float %305 %306 -%308 = OpCompositeConstruct %v4float %296 %297 %298 %307 -OpStore %sk_FragColor %308 +%main = OpFunction %void None %235 +%236 = OpLabel +%242 = OpVariable %_ptr_Function_v4float Function +%246 = OpVariable %_ptr_Function_v4float Function +%248 = OpVariable %_ptr_Function_bool Function +%249 = OpVariable %_ptr_Function_bool Function +%237 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 +%241 = OpLoad %v4float %237 +OpStore %242 %241 +%243 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 +%245 = OpLoad %v4float %243 +OpStore %246 %245 +OpStore %248 %true +OpStore %249 %true +%250 = OpFunctionCall %v4float %blend_hslc_h4h4h4bb %242 %246 %248 %249 +OpStore %sk_FragColor %250 OpReturn OpFunctionEnd diff --git a/third_party/skia/tests/sksl/blend/BlendSaturation.glsl b/third_party/skia/tests/sksl/blend/BlendSaturation.glsl index cc9500a9250f..9e871ac13f7d 100644 --- a/third_party/skia/tests/sksl/blend/BlendSaturation.glsl +++ b/third_party/skia/tests/sksl/blend/BlendSaturation.glsl @@ -2,48 +2,33 @@ out vec4 sk_FragColor; uniform vec4 src; uniform vec4 dst; -vec3 blend_set_color_luminance_Qh3h3hh3(vec3 hueSatColor, float alpha, vec3 lumColor) { - float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor); - vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor; - float minComp = min(min(result.x, result.y), result.z); - float maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0 && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); - } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; - } +float blend_color_saturation_Qhh3(vec3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); } -vec3 blend_set_color_saturation_helper_Qh3h3h(vec3 minMidMax, float sat) { - if (minMidMax.x < minMidMax.z) { - return vec3(0.0, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat); - } else { - return vec3(0.0); +vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) { + float alpha = dst.w * src.w; + vec3 sda = src.xyz * dst.w; + vec3 dsa = dst.xyz * src.w; + vec3 l = flip ? dsa : sda; + vec3 r = flip ? sda : dsa; + if (saturate) { + float _2_mn = min(min(l.x, l.y), l.z); + float _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0); + r = dsa; } -} -vec3 blend_set_color_saturation_Qh3h3h3(vec3 hueLumColor, vec3 satColor) { - float sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z); - if (hueLumColor.x <= hueLumColor.y) { - if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor, sat); - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.xzy, sat).xzy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zxy, sat).yzx; - } - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yxz, sat).yxz; - } else if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yzx, sat).zxy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zyx, sat).zyx; + float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r); + vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l; + float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0 && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); + } + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } void main() { - float _0_alpha = dst.w * src.w; - vec3 _1_sda = src.xyz * dst.w; - vec3 _2_dsa = dst.xyz * src.w; - sk_FragColor = vec4((((blend_set_color_luminance_Qh3h3hh3(blend_set_color_saturation_Qh3h3h3(_2_dsa, _1_sda), _0_alpha, _2_dsa) + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha); + sk_FragColor = blend_hslc_h4h4h4bb(src, dst, true, true); } diff --git a/third_party/skia/tests/sksl/blend/BlendSaturation.metal b/third_party/skia/tests/sksl/blend/BlendSaturation.metal index f306e7411ff6..3d1e9b1ca9cc 100644 --- a/third_party/skia/tests/sksl/blend/BlendSaturation.metal +++ b/third_party/skia/tests/sksl/blend/BlendSaturation.metal @@ -10,51 +10,36 @@ struct Inputs { struct Outputs { half4 sk_FragColor [[color(0)]]; }; -half3 blend_set_color_luminance_Qh3h3hh3(half3 hueSatColor, half alpha, half3 lumColor) { - half lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), lumColor); - half3 result = (lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), hueSatColor)) + hueSatColor; - half minComp = min(min(result.x, result.y), result.z); - half maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0h && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); - } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; - } +half blend_color_saturation_Qhh3(half3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); } -half3 blend_set_color_saturation_helper_Qh3h3h(half3 minMidMax, half sat) { - if (minMidMax.x < minMidMax.z) { - return half3(0.0h, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat); - } else { - return half3(0.0h); +half4 blend_hslc_h4h4h4bb(half4 src, half4 dst, bool flip, bool saturate) { + half alpha = dst.w * src.w; + half3 sda = src.xyz * dst.w; + half3 dsa = dst.xyz * src.w; + half3 l = flip ? dsa : sda; + half3 r = flip ? sda : dsa; + if (saturate) { + half _2_mn = min(min(l.x, l.y), l.z); + half _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : half3(0.0h); + r = dsa; } -} -half3 blend_set_color_saturation_Qh3h3h3(half3 hueLumColor, half3 satColor) { - half sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z); - if (hueLumColor.x <= hueLumColor.y) { - if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor, sat); - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.xzy, sat).xzy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zxy, sat).yzx; - } - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yxz, sat).yxz; - } else if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yzx, sat).zxy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zyx, sat).zyx; + half _4_lum = dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), r); + half3 _5_result = (_4_lum - dot(half3(0.30000001192092896h, 0.5899999737739563h, 0.10999999940395355h), l)) + l; + half _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + half _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0h && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); + } + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return half4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { Outputs _out; (void)_out; - half _0_alpha = _uniforms.dst.w * _uniforms.src.w; - half3 _1_sda = _uniforms.src.xyz * _uniforms.dst.w; - half3 _2_dsa = _uniforms.dst.xyz * _uniforms.src.w; - _out.sk_FragColor = half4((((blend_set_color_luminance_Qh3h3hh3(blend_set_color_saturation_Qh3h3h3(_2_dsa, _1_sda), _0_alpha, _2_dsa) + _uniforms.dst.xyz) - _2_dsa) + _uniforms.src.xyz) - _1_sda, (_uniforms.src.w + _uniforms.dst.w) - _0_alpha); + _out.sk_FragColor = blend_hslc_h4h4h4bb(_uniforms.src, _uniforms.dst, true, true); return _out; } diff --git a/third_party/skia/tests/sksl/blend/BlendSaturationStandaloneSettings.glsl b/third_party/skia/tests/sksl/blend/BlendSaturationStandaloneSettings.glsl index e7c40c1493eb..f1d3f372048d 100644 --- a/third_party/skia/tests/sksl/blend/BlendSaturationStandaloneSettings.glsl +++ b/third_party/skia/tests/sksl/blend/BlendSaturationStandaloneSettings.glsl @@ -2,48 +2,33 @@ out vec4 sk_FragColor; uniform vec4 src; uniform vec4 dst; -vec3 blend_set_color_luminance_Qh3h3hh3(vec3 hueSatColor, float alpha, vec3 lumColor) { - float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor); - vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor; - float minComp = min(min(result.x, result.y), result.z); - float maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0 && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); - } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; - } +float blend_color_saturation_Qhh3(vec3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); } -vec3 blend_set_color_saturation_helper_Qh3h3h(vec3 minMidMax, float sat) { - if (minMidMax.x < minMidMax.z) { - return vec3(0.0, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat); - } else { - return vec3(0.0); +vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) { + float alpha = dst.w * src.w; + vec3 sda = src.xyz * dst.w; + vec3 dsa = dst.xyz * src.w; + vec3 l = flip ? dsa : sda; + vec3 r = flip ? sda : dsa; + if (saturate) { + float _2_mn = min(min(l.x, l.y), l.z); + float _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0); + r = dsa; } -} -vec3 blend_set_color_saturation_Qh3h3h3(vec3 hueLumColor, vec3 satColor) { - float sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z); - if (hueLumColor.x <= hueLumColor.y) { - if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor, sat); - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.xzy, sat).xzy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zxy, sat).yzx; - } - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yxz, sat).yxz; - } else if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yzx, sat).zxy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zyx, sat).zyx; + float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r); + vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l; + float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0 && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); + } + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } void main() { - float _0_alpha = dst.w * src.w; - vec3 _1_sda = src.xyz * dst.w; - vec3 _2_dsa = dst.xyz * src.w; - sk_FragColor = vec4((((blend_set_color_luminance_Qh3h3hh3(blend_set_color_saturation_Qh3h3h3(_2_dsa, _1_sda), _0_alpha, _2_dsa) + dst.xyz) - _2_dsa) + src.xyz) - _1_sda, (src.w + dst.w) - _0_alpha); + sk_FragColor = blend_hslc_h4h4h4bb(src, dst, true, true); } diff --git a/third_party/skia/tests/sksl/blend/BlendScreen.asm.frag b/third_party/skia/tests/sksl/blend/BlendScreen.asm.frag index a894700b9544..339c2ac17c20 100644 --- a/third_party/skia/tests/sksl/blend/BlendScreen.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendScreen.asm.frag @@ -22,7 +22,6 @@ OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %20 RelaxedPrecision OpDecorate %23 RelaxedPrecision -OpDecorate %24 RelaxedPrecision OpDecorate %25 RelaxedPrecision OpDecorate %28 RelaxedPrecision OpDecorate %29 RelaxedPrecision @@ -43,6 +42,7 @@ OpDecorate %30 RelaxedPrecision %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %float_1 = OpConstant %float 1 +%24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %int_1 = OpConstant %int 1 %main = OpFunction %void None %14 %15 = OpLabel @@ -50,7 +50,6 @@ OpDecorate %30 RelaxedPrecision %20 = OpLoad %v4float %16 %22 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %23 = OpLoad %v4float %22 -%24 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 %25 = OpFSub %v4float %24 %23 %26 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 %28 = OpLoad %v4float %26 diff --git a/third_party/skia/tests/sksl/blend/BlendSoftLight.asm.frag b/third_party/skia/tests/sksl/blend/BlendSoftLight.asm.frag index 45b2208cbbd4..3f2f1a648d7d 100644 --- a/third_party/skia/tests/sksl/blend/BlendSoftLight.asm.frag +++ b/third_party/skia/tests/sksl/blend/BlendSoftLight.asm.frag @@ -208,7 +208,7 @@ OpDecorate %240 RelaxedPrecision %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %v2float = OpTypeVector %float 2 %_ptr_Function_v2float = OpTypePointer Function %v2float -%15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float +%16 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float %float_2 = OpConstant %float 2 %float_1 = OpConstant %float 1 %float_4 = OpConstant %float 4 @@ -225,7 +225,7 @@ OpDecorate %240 RelaxedPrecision %float_0 = OpConstant %float 0 %_ptr_Function_v4float = OpTypePointer Function %v4float %int_0 = OpConstant %int 0 -%soft_light_component_Qhh2h2 = OpFunction %float None %15 +%soft_light_component_Qhh2h2 = OpFunction %float None %16 %17 = OpFunctionParameter %_ptr_Function_v2float %18 = OpFunctionParameter %_ptr_Function_v2float %19 = OpLabel @@ -266,13 +266,13 @@ OpBranchConditional %26 %27 %28 %52 = OpFAdd %float %44 %51 %53 = OpLoad %v2float %18 %54 = OpCompositeExtract %float %53 0 -%56 = OpLoad %v2float %17 -%57 = OpCompositeExtract %float %56 1 -%55 = OpFNegate %float %57 +%55 = OpLoad %v2float %17 +%56 = OpCompositeExtract %float %55 1 +%57 = OpFNegate %float %56 %58 = OpLoad %v2float %17 %59 = OpCompositeExtract %float %58 0 %60 = OpFMul %float %float_2 %59 -%61 = OpFAdd %float %55 %60 +%61 = OpFAdd %float %57 %60 %62 = OpFAdd %float %61 %float_1 %63 = OpFMul %float %54 %62 %64 = OpFAdd %float %52 %63 diff --git a/third_party/skia/tests/sksl/errors/ArgumentCountMismatch.glsl b/third_party/skia/tests/sksl/errors/ArgumentCountMismatch.glsl index 2a70ed4b481f..54aca220dcc8 100644 --- a/third_party/skia/tests/sksl/errors/ArgumentCountMismatch.glsl +++ b/third_party/skia/tests/sksl/errors/ArgumentCountMismatch.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 6: call to 'foo' expected 1 argument, but found 2 + float x = foo(1, 2); + ^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArgumentMismatch.glsl b/third_party/skia/tests/sksl/errors/ArgumentMismatch.glsl index 275aed4518aa..5012d48de4f2 100644 --- a/third_party/skia/tests/sksl/errors/ArgumentMismatch.glsl +++ b/third_party/skia/tests/sksl/errors/ArgumentMismatch.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 6: expected 'float', but found 'bool' + float x = foo(true); + ^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArgumentModifiers.glsl b/third_party/skia/tests/sksl/errors/ArgumentModifiers.glsl index 5684bf4666be..9e99886fdec5 100644 --- a/third_party/skia/tests/sksl/errors/ArgumentModifiers.glsl +++ b/third_party/skia/tests/sksl/errors/ArgumentModifiers.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: modifiers on parameter 1 differ between declaration and definition +void test(out int x) {} + ^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArrayConstructorElementCount.glsl b/third_party/skia/tests/sksl/errors/ArrayConstructorElementCount.glsl index 22c5385d1c74..8f1756d94c2f 100644 --- a/third_party/skia/tests/sksl/errors/ArrayConstructorElementCount.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayConstructorElementCount.glsl @@ -1,6 +1,12 @@ ### Compilation failed: error: 1: invalid arguments to 'float[2]' constructor (expected 2 elements, but found 0) +float noElements[2] = float[2](); + ^^^^^^^^^^ error: 2: invalid arguments to 'float[2]' constructor (expected 2 elements, but found 1) +float notEnoughElements[2] = float[2](1); + ^^^^^^^^^^^ error: 4: invalid arguments to 'float[2]' constructor (expected 2 elements, but found 3) +float tooManyElements[2] = float[2](1, 2, 3); + ^^^^^^^^^^^^^^^^^ 3 errors diff --git a/third_party/skia/tests/sksl/errors/ArrayIndexOutOfRange.glsl b/third_party/skia/tests/sksl/errors/ArrayIndexOutOfRange.glsl index 1540c112a230..0bdcb7829c24 100644 --- a/third_party/skia/tests/sksl/errors/ArrayIndexOutOfRange.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayIndexOutOfRange.glsl @@ -1,8 +1,18 @@ ### Compilation failed: error: 1: index -1 out of range for 'int[123]' +void array_neg1 () { int a[123]; int v = a[-1]; } + ^^ error: 4: index 123 out of range for 'half4x4[123]' +void array_123 () { half4x4 a[123]; half4x4 v = a[123]; } + ^^^ error: 5: index 1000000000 out of range for 'int4[123]' +void array_huge () { int4 a[123]; int4 v = a[1000000000]; } + ^^^^^^^^^^ error: 6: index 3000000000 out of range for 'half3[123]' +void array_overflow () { half3 a[123]; half3 v = a[3000000000]; } + ^^^^^^^^^^ error: 7: missing index in '[]' +void array_no_index () { int a[123]; int v = a[]; } + ^^ 5 errors diff --git a/third_party/skia/tests/sksl/errors/ArrayInlinedIndexOutOfRange.glsl b/third_party/skia/tests/sksl/errors/ArrayInlinedIndexOutOfRange.glsl index bd51087fa1a6..74a07cad30b3 100644 --- a/third_party/skia/tests/sksl/errors/ArrayInlinedIndexOutOfRange.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayInlinedIndexOutOfRange.glsl @@ -1,5 +1,9 @@ ### Compilation failed: -error: 6: index -1 out of range for 'int[3]' -error: 6: index 3 out of range for 'int[3]' +error: 11: index -1 out of range for 'int[3]' + int undefined = indexArray(-1) + indexArray(3); + ^^ +error: 11: index 3 out of range for 'int[3]' + int undefined = indexArray(-1) + indexArray(3); + ^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/ArrayNegation.glsl b/third_party/skia/tests/sksl/errors/ArrayNegation.glsl index 2b6609ba18db..2a7705ade5dd 100644 --- a/third_party/skia/tests/sksl/errors/ArrayNegation.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayNegation.glsl @@ -1,9 +1,21 @@ ### Compilation failed: error: 1: '-' cannot operate on 'int[123]' +void array_negate_int () { int a[123]; -a; } + ^^ error: 2: '-' cannot operate on 'int4[123]' +void array_negate_int4 () { int4 a[123]; -a; } + ^^ error: 3: '-' cannot operate on 'float[123]' +void array_negate_float () { float a[123]; -a; } + ^^ error: 4: '-' cannot operate on 'half3[123]' +void array_negate_half3 () { half3 a[123]; -a; } + ^^ error: 5: '-' cannot operate on 'bool2[123]' +void array_negate_bool2 () { bool2 a[123]; -a; } + ^^ error: 6: '-' cannot operate on 'half4x4[123]' +void array_negate_half4x4() { half4x4 a[123]; -a; } + ^^ 6 errors diff --git a/third_party/skia/tests/sksl/errors/ArrayOfInvalidSize.glsl b/third_party/skia/tests/sksl/errors/ArrayOfInvalidSize.glsl index 850b035fc953..9188e61231b9 100644 --- a/third_party/skia/tests/sksl/errors/ArrayOfInvalidSize.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayOfInvalidSize.glsl @@ -1,26 +1,72 @@ ### Compilation failed: error: 1: array size must be positive +void a1() { float[-2]; } + ^^ error: 2: array size must be positive +void b1() { float[-1]; } + ^^ error: 3: array size must be positive +void c1() { float[0]; } + ^ error: 4: expected 'int', but found 'float' +void d1() { float[1.5]; } + ^^^ error: 5: integer is out of range for type 'int': 4000000000 +void e1() { float[4000000000]; } + ^^^^^^^^^^ error: 5: array size must be positive +void e1() { float[4000000000]; } + ^^^^^^^^^^ error: 6: expected 'int', but found 'bool' +void f1() { float[true]; } + ^^^^ error: 7: expected 'int', but found 'bool' +void g1() { float[false]; } + ^^^^^ error: 8: expected 'int', but found 'int2' +void h1() { float[int2(2, 2)]; } + ^^^^^^^^^^ error: 9: missing index in '[]' +void i1() { float[]; } + ^^ error: 10: integer is out of range for type 'int': 4000000000 +void j1() { float[int3(4000000000)]; } + ^^^^^^^^^^ error: 11: integer is out of range for type 'int': 100000002004087734272 +void k1() { float[int(1e20)]; } + ^^^^ error: 13: array size must be positive +void a2() { float x[-2]; } + ^^ error: 14: array size must be positive +void b2() { float x[-1]; } + ^^ error: 15: array size must be positive +void c2() { float x[0]; } + ^ error: 16: array size must be an integer +void d2() { float x[1.5]; } + ^^^ error: 17: array size out of bounds +void e2() { float x[4000000000]; } + ^^^^^^^^^^ error: 18: array size must be an integer +void f2() { float x[true]; } + ^^^^ error: 19: array size must be an integer +void g2() { float x[false]; } + ^^^^^ error: 20: array size must be an integer +void h2() { float x[int2(2, 2)]; } + ^^^^^^^^^^ error: 21: expected array dimension +void i2() { float x[]; } + ^^ error: 22: integer is out of range for type 'int': 4000000000 +void j2() { float x[int3(4000000000)]; } + ^^^^^^^^^^ error: 23: integer is out of range for type 'int': 100000002004087734272 +void k2() { float x[int(1e20)]; } + ^^^^ 23 errors diff --git a/third_party/skia/tests/sksl/errors/ArrayOfVoid.glsl b/third_party/skia/tests/sksl/errors/ArrayOfVoid.glsl index 64f7e5d648cb..7385e2248a39 100644 --- a/third_party/skia/tests/sksl/errors/ArrayOfVoid.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayOfVoid.glsl @@ -1,10 +1,24 @@ ### Compilation failed: error: 1: type 'void' may not be used in an array +void a[2]; +^^^^^^^^^ error: 2: type 'void' may not be used in an array +void[2] b; +^^^^^^^ error: 4: type 'void' may not be used in an array +void[2] funcF() {} +^^^^^^^ error: 4: function 'funcF' can exit without returning a value +void[2] funcF() {} + ^^ error: 5: type 'void' may not be used in an array +void funcG() { void g[2]; } + ^^^^^^^^^ error: 6: type 'void' may not be used in an array +void funcH() { void[2] h; } + ^^^^^^^ error: 7: type 'void' may not be used in an array +void funcI() { void[2]; } + ^^^^^^^ 7 errors diff --git a/third_party/skia/tests/sksl/errors/ArrayPlus.glsl b/third_party/skia/tests/sksl/errors/ArrayPlus.glsl index 874b199b1478..709d6d893d8e 100644 --- a/third_party/skia/tests/sksl/errors/ArrayPlus.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayPlus.glsl @@ -1,9 +1,21 @@ ### Compilation failed: error: 1: '+' cannot operate on 'int[123]' +void array_plus_int () { int a[123]; +a; } + ^^ error: 2: '+' cannot operate on 'int4[123]' +void array_plus_int4 () { int4 a[123]; +a; } + ^^ error: 3: '+' cannot operate on 'float[123]' +void array_plus_float () { float a[123]; +a; } + ^^ error: 4: '+' cannot operate on 'half3[123]' +void array_plus_half3 () { half3 a[123]; +a; } + ^^ error: 5: '+' cannot operate on 'bool2[123]' +void array_plus_bool2 () { bool2 a[123]; +a; } + ^^ error: 6: '+' cannot operate on 'half4x4[123]' +void array_plus_half4x4() { half4x4 a[123]; +a; } + ^^ 6 errors diff --git a/third_party/skia/tests/sksl/errors/ArrayReturnTypes.glsl b/third_party/skia/tests/sksl/errors/ArrayReturnTypes.glsl index 288e4af84f64..cdb17218989f 100644 --- a/third_party/skia/tests/sksl/errors/ArrayReturnTypes.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayReturnTypes.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: functions may not return type 'float4x4[2]' +float4x4[2] return_float4x4_2() {} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: functions may not return type 'int[1]' +int[1] return_int_1() {} +^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/ArraySplitDimensions.glsl b/third_party/skia/tests/sksl/errors/ArraySplitDimensions.glsl index 7ec388d4430a..3b3d277a7253 100644 --- a/third_party/skia/tests/sksl/errors/ArraySplitDimensions.glsl +++ b/third_party/skia/tests/sksl/errors/ArraySplitDimensions.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +float[2] x[2]; +^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInFuncBody.glsl b/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInFuncBody.glsl index 7ec388d4430a..621bec61a91a 100644 --- a/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInFuncBody.glsl +++ b/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInFuncBody.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +void func() { float[2] x[2]; } + ^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInFuncDecl.glsl b/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInFuncDecl.glsl index 7ec388d4430a..d2d57c1492b9 100644 --- a/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInFuncDecl.glsl +++ b/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInFuncDecl.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +void func(float[2] x[2]) {} + ^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInStruct.glsl b/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInStruct.glsl index 7ec388d4430a..0ca97ec5da8d 100644 --- a/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInStruct.glsl +++ b/third_party/skia/tests/sksl/errors/ArraySplitDimensionsInStruct.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +struct S { float[2] x[2]; }; + ^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArrayTooManyDimensions.glsl b/third_party/skia/tests/sksl/errors/ArrayTooManyDimensions.glsl index 7ec388d4430a..7c0649fa7399 100644 --- a/third_party/skia/tests/sksl/errors/ArrayTooManyDimensions.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayTooManyDimensions.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +float x[2][2]; +^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInFuncBody.glsl b/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInFuncBody.glsl index 7ec388d4430a..53beafd3caad 100644 --- a/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInFuncBody.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInFuncBody.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +void func() { float x[2][2]; } + ^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInFuncDecl.glsl b/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInFuncDecl.glsl index 7ec388d4430a..866be68e4017 100644 --- a/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInFuncDecl.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInFuncDecl.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +void func(float x[2][2]) {} + ^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInStruct.glsl b/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInStruct.glsl index 7ec388d4430a..db2ab0b8f2b3 100644 --- a/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInStruct.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayTooManyDimensionsInStruct.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +struct S { float x[2][2]; }; + ^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensions.glsl b/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensions.glsl index 7ec388d4430a..e6b362b3e841 100644 --- a/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensions.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensions.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +float[2][2] x; +^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.glsl b/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.glsl index 7ec388d4430a..cca0b146ec9e 100644 --- a/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInFuncBody.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +void func() { float[2][2] x; } + ^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInFuncDecl.glsl b/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInFuncDecl.glsl index 7ec388d4430a..fae4ec762028 100644 --- a/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInFuncDecl.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInFuncDecl.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +void func(float[2][2] x) {} + ^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInStruct.glsl b/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInStruct.glsl index 7ec388d4430a..cd94031a4a60 100644 --- a/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInStruct.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayTypeTooManyDimensionsInStruct.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: multi-dimensional arrays are not supported +struct S { float[2][2] x; }; + ^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ArrayUnspecifiedDimensions.glsl b/third_party/skia/tests/sksl/errors/ArrayUnspecifiedDimensions.glsl index 9c6e1305d0c1..724d2a90934e 100644 --- a/third_party/skia/tests/sksl/errors/ArrayUnspecifiedDimensions.glsl +++ b/third_party/skia/tests/sksl/errors/ArrayUnspecifiedDimensions.glsl @@ -1,7 +1,15 @@ ### Compilation failed: error: 1: expected array dimension +int arrUnsized[]; + ^^ error: 2: array size must be an integer +int arrFloat[1.]; + ^^ error: 3: array size must be an integer +int arrBool[true]; + ^^^^ error: 5: missing index in '[]' +int unsized_in_expression() { return int[](0)[0]; } + ^^ 4 errors diff --git a/third_party/skia/tests/sksl/errors/AssignmentTypeMismatch.glsl b/third_party/skia/tests/sksl/errors/AssignmentTypeMismatch.glsl index ec59bdc92483..bc32aa0777a4 100644 --- a/third_party/skia/tests/sksl/errors/AssignmentTypeMismatch.glsl +++ b/third_party/skia/tests/sksl/errors/AssignmentTypeMismatch.glsl @@ -1,10 +1,24 @@ ### Compilation failed: error: 1: expected 'int', but found 'float' +void vardecl_assign_float_to_int() { int x = 1.0; } + ^^^ error: 2: type mismatch: '=' cannot operate on 'int', 'float' +void statement_assign_float_to_int() { int x; x = 1.0; } + ^^^^^^^ error: 3: type mismatch: '*=' cannot operate on 'int3', 'float' +void times_equals_int3_by_float() { int3 x = int3(0); x *= 1.0; } + ^^^^^^^^ error: 4: expected '(' to begin function call +void function_ref_in_comma_expr() { int x = (radians, 1); } + ^ error: 5: expected '(' to begin constructor invocation +void type_ref_in_comma_expr() { int x = (bool4, 1); } + ^ error: 6: expected '(' to begin function call +int function_ref_in_global_variable = mix; + ^ error: 7: expected '(' to begin constructor invocation +float3x3 type_ref_in_global_variable = float3x3; + ^ 7 errors diff --git a/third_party/skia/tests/sksl/errors/BadCaps.glsl b/third_party/skia/tests/sksl/errors/BadCaps.glsl index c17ec508ddb0..485943a23c16 100644 --- a/third_party/skia/tests/sksl/errors/BadCaps.glsl +++ b/third_party/skia/tests/sksl/errors/BadCaps.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: unknown capability flag 'bugFreeDriver' +bool b = sk_Caps.bugFreeDriver; + ^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/BadConstInitializers.glsl b/third_party/skia/tests/sksl/errors/BadConstInitializers.glsl index 25fcb940df75..c799be13db78 100644 --- a/third_party/skia/tests/sksl/errors/BadConstInitializers.glsl +++ b/third_party/skia/tests/sksl/errors/BadConstInitializers.glsl @@ -1,10 +1,24 @@ ### Compilation failed: error: 16: 'const' variable initializer must be a constant expression +void from_uniform() { const float x = u; } + ^ error: 17: 'const' variable initializer must be a constant expression +void from_parameter(float p) { const float x = p; } + ^ error: 18: 'const' variable initializer must be a constant expression +void from_const_parameter(const float p) { const float x = p; } + ^ error: 19: 'const' variable initializer must be a constant expression +void from_non_const_local() { float x = u; const float y = x; } + ^ error: 20: 'const' variable initializer must be a constant expression +void from_non_const_expression() { const float x = u + u; } + ^^^^^ error: 21: 'const' variable initializer must be a constant expression +void from_mixed_expression() { const float x = c + u; } + ^^^^^ error: 22: 'const' variable initializer must be a constant expression +void from_non_const_struct_field() { const float x = s.f; } + ^^^ 7 errors diff --git a/third_party/skia/tests/sksl/errors/BadFieldAccess.glsl b/third_party/skia/tests/sksl/errors/BadFieldAccess.glsl index fcfdd1b771a9..ca016fcf1e59 100644 --- a/third_party/skia/tests/sksl/errors/BadFieldAccess.glsl +++ b/third_party/skia/tests/sksl/errors/BadFieldAccess.glsl @@ -1,8 +1,18 @@ ### Compilation failed: error: 3: type 'S' does not have a field named 'missing' +void not_a_field() { S s; s.missing = 123; } + ^^^^^^^^^ error: 4: not a function +void not_a_function() { S s; s.f(); } + ^^^^^ error: 5: type mismatch: '=' cannot operate on 'float', 'bool3' +void not_a_bvec() { S s; s.f = bool3(true); } + ^^^^^^^^^^^^^^^^^ error: 6: invalid swizzle component 'm' +void not_a_struct() { S s; s.f.missing; } + ^^^^^^^^^^^ error: 7: expected array, but found 'float' +void not_an_array() { S s; s.f[0]; } + ^^^ 5 errors diff --git a/third_party/skia/tests/sksl/errors/BadIndex.glsl b/third_party/skia/tests/sksl/errors/BadIndex.glsl index 585bb4b9abfb..a8c33c77e766 100644 --- a/third_party/skia/tests/sksl/errors/BadIndex.glsl +++ b/third_party/skia/tests/sksl/errors/BadIndex.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: expected array, but found 'int' +void int_not_array() { int x = 2[0]; } + ^ error: 2: expected array, but found 'float' +void index_float2_twice() { float2 x = float2(0); int y = x[0][0]; } + ^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/BadModifiers.glsl b/third_party/skia/tests/sksl/errors/BadModifiers.glsl index cd15a560bd3e..8c0db2fd5ef5 100644 --- a/third_party/skia/tests/sksl/errors/BadModifiers.glsl +++ b/third_party/skia/tests/sksl/errors/BadModifiers.glsl @@ -1,21 +1,57 @@ ### Compilation failed: error: 1: 'const' is not permitted here +const in out uniform flat noperspective sk_has_side_effects inline noinline void func1() {} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 1: 'in' is not permitted here +const in out uniform flat noperspective sk_has_side_effects inline noinline void func1() {} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 1: 'out' is not permitted here +const in out uniform flat noperspective sk_has_side_effects inline noinline void func1() {} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 1: 'uniform' is not permitted here +const in out uniform flat noperspective sk_has_side_effects inline noinline void func1() {} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 1: 'flat' is not permitted here +const in out uniform flat noperspective sk_has_side_effects inline noinline void func1() {} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 1: 'noperspective' is not permitted here +const in out uniform flat noperspective sk_has_side_effects inline noinline void func1() {} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 1: functions cannot be both 'inline' and 'noinline' -error: 4: 'uniform' is not permitted here -error: 4: 'flat' is not permitted here -error: 4: 'noperspective' is not permitted here -error: 4: 'sk_has_side_effects' is not permitted here -error: 4: 'inline' is not permitted here -error: 4: 'noinline' is not permitted here +const in out uniform flat noperspective sk_has_side_effects inline noinline void func1() {} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +error: 3: 'uniform' is not permitted here +void func2(const in out uniform flat noperspective sk_has_side_effects + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... +error: 3: 'flat' is not permitted here +void func2(const in out uniform flat noperspective sk_has_side_effects + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... +error: 3: 'noperspective' is not permitted here +void func2(const in out uniform flat noperspective sk_has_side_effects + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... +error: 3: 'sk_has_side_effects' is not permitted here +void func2(const in out uniform flat noperspective sk_has_side_effects + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... +error: 3: 'inline' is not permitted here +void func2(const in out uniform flat noperspective sk_has_side_effects + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... +error: 3: 'noinline' is not permitted here +void func2(const in out uniform flat noperspective sk_has_side_effects + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... error: 6: 'in uniform' variables not permitted +const in out uniform flat noperspective sk_has_side_effects inline noinline float var; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 6: 'sk_has_side_effects' is not permitted here +const in out uniform flat noperspective sk_has_side_effects inline noinline float var; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 6: 'inline' is not permitted here +const in out uniform flat noperspective sk_has_side_effects inline noinline float var; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 6: 'noinline' is not permitted here +const in out uniform flat noperspective sk_has_side_effects inline noinline float var; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 6: 'const' variables must be initialized +const in out uniform flat noperspective sk_has_side_effects inline noinline float var; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 18 errors diff --git a/third_party/skia/tests/sksl/errors/BadOctal.glsl b/third_party/skia/tests/sksl/errors/BadOctal.glsl index 62b53d8cea9c..fb74749e8fd3 100644 --- a/third_party/skia/tests/sksl/errors/BadOctal.glsl +++ b/third_party/skia/tests/sksl/errors/BadOctal.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: '08' is not a valid octal number +int i1 = 08; + ^^ error: 1: expected expression, but found '08' +int i1 = 08; + ^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/BinaryInvalidType.glsl b/third_party/skia/tests/sksl/errors/BinaryInvalidType.glsl index 697b94dfe430..f069c0b98aa7 100644 --- a/third_party/skia/tests/sksl/errors/BinaryInvalidType.glsl +++ b/third_party/skia/tests/sksl/errors/BinaryInvalidType.glsl @@ -1,15 +1,39 @@ ### Compilation failed: error: 2: type mismatch: '*' cannot operate on '', 'int' + float x = functionLeft * 2; + ^^^^^^^^^^^^^^^^ error: 6: type mismatch: '*' cannot operate on 'int', '' + float x = 2 * functionRight; + ^^^^^^^^^^^^^^^^^ error: 10: type mismatch: '*' cannot operate on '', '' + float x = functionBoth * functionBoth; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 18: type mismatch: '*' cannot operate on 'S', 'int' + float x = s * 2; + ^^^^^ error: 22: type mismatch: '*' cannot operate on 'int', 'S' + float x = 2 * s; + ^^^^^ error: 26: type mismatch: '*' cannot operate on 'S', 'S' -error: 32: type mismatch: '*' cannot operate on 'sampler2D', 'int' -error: 36: type mismatch: '*' cannot operate on 'int', 'sampler2D' -error: 40: type mismatch: '*' cannot operate on 'sampler2D', 'sampler2D' + float x = s * s; + ^^^^^ +error: 32: type mismatch: '*' cannot operate on 'shader', 'int' + float x = shad * 2; + ^^^^^^^^ +error: 36: type mismatch: '*' cannot operate on 'int', 'shader' + float x = 2 * shad; + ^^^^^^^^ +error: 40: type mismatch: '*' cannot operate on 'shader', 'shader' + float x = shad * shad; + ^^^^^^^^^^^ error: 46: type mismatch: '*' cannot operate on 'int[1]', 'int' + float x = array * 2; + ^^^^^^^^^ error: 50: type mismatch: '*' cannot operate on 'int', 'int[1]' + float x = 2 * array; + ^^^^^^^^^ error: 54: type mismatch: '*' cannot operate on 'int[1]', 'int[1]' + float x = array * array; + ^^^^^^^^^^^^^ 12 errors diff --git a/third_party/skia/tests/sksl/errors/BinaryTypeCoercion.glsl b/third_party/skia/tests/sksl/errors/BinaryTypeCoercion.glsl index 66aa245f2674..fa2d51b415d6 100644 --- a/third_party/skia/tests/sksl/errors/BinaryTypeCoercion.glsl +++ b/third_party/skia/tests/sksl/errors/BinaryTypeCoercion.glsl @@ -1,23 +1,63 @@ ### Compilation failed: error: 11: type mismatch: '=' cannot operate on 'half', 'float' +void scalar_times_scalar_disallowed_1() { H = F * H; } + ^^^^^^^^^ error: 12: type mismatch: '=' cannot operate on 'half', 'float' +void scalar_times_scalar_disallowed_2() { H = H * F; } + ^^^^^^^^^ error: 13: type mismatch: '*=' cannot operate on 'half', 'float' +void scalar_times_scalar_disallowed_3() { H *= F; } + ^^^^^^ error: 18: type mismatch: '=' cannot operate on 'half4', 'float4' +void vector_times_vector_disallowed_1() { H4 = F4 * H4; } + ^^^^^^^^^^^^ error: 19: type mismatch: '=' cannot operate on 'half4', 'float4' +void vector_times_vector_disallowed_2() { H4 = H4 * F4; } + ^^^^^^^^^^^^ error: 20: type mismatch: '*=' cannot operate on 'half4', 'float4' +void vector_times_vector_disallowed_3() { H4 *= F4; } + ^^^^^^^^ error: 24: type mismatch: '=' cannot operate on 'half4', 'float4' +void scalar_times_vector_disallowed_1() { H4 = F * H4; } + ^^^^^^^^^^^ error: 25: type mismatch: '=' cannot operate on 'half4', 'float4' +void scalar_times_vector_disallowed_2() { H4 = H * F4; } + ^^^^^^^^^^^ error: 30: type mismatch: '=' cannot operate on 'half4', 'float4' +void vector_times_scalar_disallowed_1() { H4 = F4 * H; } + ^^^^^^^^^^^ error: 31: type mismatch: '=' cannot operate on 'half4', 'float4' +void vector_times_scalar_disallowed_2() { H4 = H4 * F; } + ^^^^^^^^^^^ error: 32: type mismatch: '*=' cannot operate on 'half4', 'float' +void vector_times_scalar_disallowed_3() { H4 *= F; } + ^^^^^^^ error: 36: type mismatch: '=' cannot operate on 'half4', 'float4' +void matrix_times_vector_disallowed_1() { H4 = F4x4 * H4; } + ^^^^^^^^^^^^^^ error: 37: type mismatch: '=' cannot operate on 'half4', 'float4' +void matrix_times_vector_disallowed_2() { H4 = H4x4 * F4; } + ^^^^^^^^^^^^^^ error: 42: type mismatch: '=' cannot operate on 'half4', 'float4' +void vector_times_matrix_disallowed_1() { H4 = F4 * H4x4; } + ^^^^^^^^^^^^^^ error: 43: type mismatch: '=' cannot operate on 'half4', 'float4' +void vector_times_matrix_disallowed_2() { H4 = H4 * F4x4; } + ^^^^^^^^^^^^^^ error: 44: type mismatch: '*=' cannot operate on 'half4', 'float4x4' +void vector_times_matrix_disallowed_3() { H4 *= F4x4; } + ^^^^^^^^^^ error: 49: type mismatch: '=' cannot operate on 'half4x4', 'float4x4' +void matrix_times_matrix_disallowed_1() { H4x4 = F4x4 * H4x4; } + ^^^^^^^^^^^^^^^^^^ error: 50: type mismatch: '=' cannot operate on 'half4x4', 'float4x4' +void matrix_times_matrix_disallowed_2() { H4x4 = H4x4 * F4x4; } + ^^^^^^^^^^^^^^^^^^ error: 51: type mismatch: '*=' cannot operate on 'half4x4', 'float4x4' +void matrix_times_matrix_disallowed_3() { H4x4 *= F4x4; } + ^^^^^^^^^^^^ error: 55: type mismatch: '*=' cannot operate on 'float4x4', 'float4' +void dimensions_disallowed_1() { F4x4 *= F4; } + ^^^^^^^^^^ 20 errors diff --git a/third_party/skia/tests/sksl/errors/BinaryTypeMismatch.glsl b/third_party/skia/tests/sksl/errors/BinaryTypeMismatch.glsl index 2d4cad182f6e..0b11c9b3252d 100644 --- a/third_party/skia/tests/sksl/errors/BinaryTypeMismatch.glsl +++ b/third_party/skia/tests/sksl/errors/BinaryTypeMismatch.glsl @@ -1,10 +1,27 @@ ### Compilation failed: error: 1: type mismatch: '*' cannot operate on 'int', 'bool' +void int_times_bool() { float x = 3 * true; } + ^^^^^^^^ error: 2: type mismatch: '||' cannot operate on 'int', 'float' +void int_or_float() { bool x = 1 || 2.0; } + ^^^^^^^^ error: 3: type mismatch: '==' cannot operate on 'float2', 'int' +void float2_eq_int() { bool x = float2(0) == 0; } + ^^^^^^^^^^^^^^ error: 4: type mismatch: '!=' cannot operate on 'float2', 'int' -error: 6: type mismatch: '<' cannot operate on 'float2', 'float2' -error: 7: type mismatch: '<' cannot operate on 'float2', 'float' -error: 8: type mismatch: '<' cannot operate on 'float', 'float2' -7 errors +void float2_neq_int() { bool x = float2(0) != 0; } + ^^^^^^^^^^^^^^ +error: 5: type mismatch: '^^' cannot operate on 'int', 'int' +void int_logicalxor_int() { bool x = 8 ^^ 6; } + ^^^^^^ +error: 7: type mismatch: '<' cannot operate on 'float2', 'float2' +void float2_lt_float2() { bool x = float2(0) < float2(1); } + ^^^^^^^^^^^^^^^^^^^^^ +error: 8: type mismatch: '<' cannot operate on 'float2', 'float' +void float2_lt_float() { bool x = float2(0) < 0.0; } + ^^^^^^^^^^^^^^^ +error: 9: type mismatch: '<' cannot operate on 'float', 'float2' +void float_lt_float2() { bool x = 0.0 < float2(0); } + ^^^^^^^^^^^^^^^ +8 errors diff --git a/third_party/skia/tests/sksl/errors/BitShiftFloat.glsl b/third_party/skia/tests/sksl/errors/BitShiftFloat.glsl index 6e013b97a41d..cd2354912b6c 100644 --- a/third_party/skia/tests/sksl/errors/BitShiftFloat.glsl +++ b/third_party/skia/tests/sksl/errors/BitShiftFloat.glsl @@ -1,13 +1,33 @@ ### Compilation failed: error: 5: type mismatch: '>>=' cannot operate on 'float', 'int' +void shr_eq() { x >>= 1; } + ^^^^^^^ error: 6: type mismatch: '<<=' cannot operate on 'float', 'int' +void shl_eq() { x <<= 1; } + ^^^^^^^ error: 7: type mismatch: '&=' cannot operate on 'float', 'int' +void and_eq() { x &= 1; } + ^^^^^^^ error: 8: type mismatch: '|=' cannot operate on 'float', 'int' +void or_eq() { x |= 1; } + ^^^^^^^ error: 9: type mismatch: '^=' cannot operate on 'float', 'int' +void xor_eq() { x ^= 1; } + ^^^^^^^ error: 11: type mismatch: '>>' cannot operate on 'float', 'int' +void shr() { x = x >> 1; } + ^^^^^^ error: 12: type mismatch: '<<' cannot operate on 'float', 'int' +void shl() { x = x << 1; } + ^^^^^^ error: 13: type mismatch: '&' cannot operate on 'float', 'int' +void and() { x = x & 1; } + ^^^^^ error: 14: type mismatch: '|' cannot operate on 'float', 'int' +void or() { x = x | 1; } + ^^^^^ error: 15: type mismatch: '^' cannot operate on 'float', 'int' +void xor() { x = x ^ 1; } + ^^^^^ 10 errors diff --git a/third_party/skia/tests/sksl/errors/BitShiftFloatMatrix.glsl b/third_party/skia/tests/sksl/errors/BitShiftFloatMatrix.glsl index 351145490c7d..8f3d5aeab897 100644 --- a/third_party/skia/tests/sksl/errors/BitShiftFloatMatrix.glsl +++ b/third_party/skia/tests/sksl/errors/BitShiftFloatMatrix.glsl @@ -1,13 +1,33 @@ ### Compilation failed: error: 5: type mismatch: '>>=' cannot operate on 'float2x2', 'int' +void shr_eq() { x >>= 1; } + ^^^^^^^ error: 6: type mismatch: '<<=' cannot operate on 'float2x2', 'int' +void shl_eq() { x <<= 1; } + ^^^^^^^ error: 7: type mismatch: '&=' cannot operate on 'float2x2', 'int' +void and_eq() { x &= 1; } + ^^^^^^^ error: 8: type mismatch: '|=' cannot operate on 'float2x2', 'int' +void or_eq() { x |= 1; } + ^^^^^^^ error: 9: type mismatch: '^=' cannot operate on 'float2x2', 'int' +void xor_eq() { x ^= 1; } + ^^^^^^^ error: 11: type mismatch: '>>' cannot operate on 'float2x2', 'int' +void shr() { x = x >> 1; } + ^^^^^^ error: 12: type mismatch: '<<' cannot operate on 'float2x2', 'int' +void shl() { x = x << 1; } + ^^^^^^ error: 13: type mismatch: '&' cannot operate on 'float2x2', 'int' +void and() { x = x & 1; } + ^^^^^ error: 14: type mismatch: '|' cannot operate on 'float2x2', 'int' +void or() { x = x | 1; } + ^^^^^ error: 15: type mismatch: '^' cannot operate on 'float2x2', 'int' +void xor() { x = x ^ 1; } + ^^^^^ 10 errors diff --git a/third_party/skia/tests/sksl/errors/BitShiftFloatVector.glsl b/third_party/skia/tests/sksl/errors/BitShiftFloatVector.glsl index 1ee9ca94fbda..5861d4b47e20 100644 --- a/third_party/skia/tests/sksl/errors/BitShiftFloatVector.glsl +++ b/third_party/skia/tests/sksl/errors/BitShiftFloatVector.glsl @@ -1,13 +1,33 @@ ### Compilation failed: error: 5: type mismatch: '>>=' cannot operate on 'float2', 'int' +void shr_eq() { x >>= 1; } + ^^^^^^^ error: 6: type mismatch: '<<=' cannot operate on 'float2', 'int' +void shl_eq() { x <<= 1; } + ^^^^^^^ error: 7: type mismatch: '&=' cannot operate on 'float2', 'int' +void and_eq() { x &= 1; } + ^^^^^^^ error: 8: type mismatch: '|=' cannot operate on 'float2', 'int' +void or_eq() { x |= 1; } + ^^^^^^^ error: 9: type mismatch: '^=' cannot operate on 'float2', 'int' +void xor_eq() { x ^= 1; } + ^^^^^^^ error: 11: type mismatch: '>>' cannot operate on 'float2', 'int' +void shr() { x = x >> 1; } + ^^^^^^ error: 12: type mismatch: '<<' cannot operate on 'float2', 'int' +void shl() { x = x << 1; } + ^^^^^^ error: 13: type mismatch: '&' cannot operate on 'float2', 'int' +void and() { x = x & 1; } + ^^^^^ error: 14: type mismatch: '|' cannot operate on 'float2', 'int' +void or() { x = x | 1; } + ^^^^^ error: 15: type mismatch: '^' cannot operate on 'float2', 'int' +void xor() { x = x ^ 1; } + ^^^^^ 10 errors diff --git a/third_party/skia/tests/sksl/errors/BooleanArithmetic.glsl b/third_party/skia/tests/sksl/errors/BooleanArithmetic.glsl index 1d233689c719..a882367cb0da 100644 --- a/third_party/skia/tests/sksl/errors/BooleanArithmetic.glsl +++ b/third_party/skia/tests/sksl/errors/BooleanArithmetic.glsl @@ -1,28 +1,78 @@ ### Compilation failed: error: 1: type mismatch: '+' cannot operate on 'bool', 'bool' +bool2 add_boolean() { return false + true; } + ^^^^^^^^^^^^ error: 2: type mismatch: '-' cannot operate on 'bool', 'bool' +bool2 sub_boolean() { return false - true; } + ^^^^^^^^^^^^ error: 3: type mismatch: '*' cannot operate on 'bool', 'bool' +bool2 mul_boolean() { return false * true; } + ^^^^^^^^^^^^ error: 4: type mismatch: '/' cannot operate on 'bool', 'bool' +bool2 div_boolean() { return false / true; } + ^^^^^^^^^^^^ error: 5: type mismatch: '%' cannot operate on 'bool', 'bool' +bool2 mod_boolean() { return false % true; } + ^^^^^^^^^^^^ error: 6: type mismatch: '<<' cannot operate on 'bool', 'bool' +bool2 shl_boolean() { return false << true; } + ^^^^^^^^^^^^^ error: 7: type mismatch: '>>' cannot operate on 'bool', 'bool' +bool2 shr_boolean() { return false >> true; } + ^^^^^^^^^^^^^ error: 8: '-' cannot operate on 'bool' +bool2 neg_boolean() { return -false; } + ^^^^^^ error: 9: '~' cannot operate on 'bool' +bool2 bitnot_boolean() { return ~false; } + ^^^^^^ error: 10: type mismatch: '&' cannot operate on 'bool', 'bool' +bool2 bitand_boolean() { return false & true; } + ^^^^^^^^^^^^ error: 11: type mismatch: '|' cannot operate on 'bool', 'bool' +bool2 bitor_boolean() { return false | true; } + ^^^^^^^^^^^^ error: 12: type mismatch: '^' cannot operate on 'bool', 'bool' +bool2 bitxor_boolean() { return false ^ true; } + ^^^^^^^^^^^^ error: 14: type mismatch: '+' cannot operate on 'bool2', 'bool2' +bool2 add_boolean_vec() { return bool2(false, false) + bool2(true, true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 15: type mismatch: '-' cannot operate on 'bool2', 'bool2' +bool2 sub_boolean_vec() { return bool2(false, false) - bool2(true, true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 16: type mismatch: '*' cannot operate on 'bool2', 'bool2' +bool2 mul_boolean_vec() { return bool2(false, false) * bool2(true, true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 17: type mismatch: '/' cannot operate on 'bool2', 'bool2' +bool2 div_boolean_vec() { return bool2(false, false) / bool2(true, true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 18: type mismatch: '%' cannot operate on 'bool2', 'bool2' +bool2 mod_boolean_vec() { return bool2(false, false) % bool2(true, true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 19: type mismatch: '<<' cannot operate on 'bool2', 'bool2' +bool2 shl_boolean_vec() { return bool2(false, false) << bool2(true, true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 20: type mismatch: '>>' cannot operate on 'bool2', 'bool2' +bool2 shr_boolean_vec() { return bool2(false, false) >> bool2(true, true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 21: '!' cannot operate on 'bool2' +bool2 not_boolean_vec() { return !bool2(false, false); } + ^^^^^^^^^^^^^^^^^^^^ error: 22: '-' cannot operate on 'bool2' +bool2 neg_boolean_vec() { return -bool2(false, false); } + ^^^^^^^^^^^^^^^^^^^^ error: 23: '~' cannot operate on 'bool2' +bool2 bitnot_boolean_vec() { return ~bool2(false, false); } + ^^^^^^^^^^^^^^^^^^^^ error: 24: type mismatch: '&' cannot operate on 'bool2', 'bool2' +bool2 bitand_boolean_vec() { return bool2(false, false) & bool2(true, true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 25: type mismatch: '|' cannot operate on 'bool2', 'bool2' +bool2 bitor_boolean_vec() { return bool2(false, false) | bool2(true, true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 26: type mismatch: '^' cannot operate on 'bool2', 'bool2' +bool2 bitxor_boolean_vec() { return bool2(false, false) ^ bool2(true, true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 25 errors diff --git a/third_party/skia/tests/sksl/errors/BreakOutsideLoop.glsl b/third_party/skia/tests/sksl/errors/BreakOutsideLoop.glsl index 15bb228b5708..765356d6a49c 100644 --- a/third_party/skia/tests/sksl/errors/BreakOutsideLoop.glsl +++ b/third_party/skia/tests/sksl/errors/BreakOutsideLoop.glsl @@ -1,4 +1,6 @@ ### Compilation failed: -error: 1: break statement must be inside a loop or switch +error: 3: break statement must be inside a loop or switch + if (true) break; + ^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/CallNonFunction.glsl b/third_party/skia/tests/sksl/errors/CallNonFunction.glsl index 165f5ca40158..cf5cf13a367c 100644 --- a/third_party/skia/tests/sksl/errors/CallNonFunction.glsl +++ b/third_party/skia/tests/sksl/errors/CallNonFunction.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 3: not a function + x(); + ^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/CanExitWithoutReturningValue.glsl b/third_party/skia/tests/sksl/errors/CanExitWithoutReturningValue.glsl index 09153fddc9de..5cc2b381cef4 100644 --- a/third_party/skia/tests/sksl/errors/CanExitWithoutReturningValue.glsl +++ b/third_party/skia/tests/sksl/errors/CanExitWithoutReturningValue.glsl @@ -1,24 +1,66 @@ ### Compilation failed: error: 6: function 'if_only' can exit without returning a value +int if_only() { if (variable == 1) return 0; } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 7: function 'return_on_if_but_not_else' can exit without returning a value +int return_on_if_but_not_else() { if (variable == 1) return 0; else variable *= 2; } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 8: function 'return_on_else_but_not_if' can exit without returning a value +int return_on_else_but_not_if() { if (variable == 1) variable *= 2; else return 1; } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 10: function 'for_with_conditional_return' can exit without returning a value +int for_with_conditional_return() { for (;;) { if (variable == 1) return 0; } } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 11: function 'for_with_conditional_break' can exit without returning a value +int for_with_conditional_break() { for (;;) { if (variable == 1) break; return 0; } } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 12: function 'for_with_conditional_continue' can exit without returning a value +int for_with_conditional_continue() { for (;;) { if (variable == 1) continue; return 0; } } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 14: function 'do_with_conditional_return' can exit without returning a value +bool do_with_conditional_return() { do { if (mystery == 1) return true; } while(true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 15: function 'do_with_conditional_break' can exit without returning a value +bool do_with_conditional_break() { do { if (mystery == 1) break; return true; } while(true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 16: function 'do_with_conditional_continue' can exit without returning a value +bool do_with_conditional_continue() { do { if (mystery == 1) continue; return true; } while(true); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 18: function 'bad_if_else_chain' can exit without returning a value +bool bad_if_else_chain() { + ^... error: 32: function 'switch_empty' can exit without returning a value +int switch_empty() { + ^... error: 36: function 'switch_with_no_default' can exit without returning a value +int switch_with_no_default() { + ^... error: 43: function 'switch_with_break' can exit without returning a value +int switch_with_break() { + ^... error: 55: continue statement cannot be used in a switch + default: continue; + ^^^^^^^^ error: 51: function 'switch_with_continue' can exit without returning a value +int switch_with_continue() { + ^... error: 59: function 'switch_with_fallthrough_off_bottom' can exit without returning a value +int switch_with_fallthrough_off_bottom() { + ^... error: 67: function 'switch_with_conditional_break' can exit without returning a value +int switch_with_conditional_break() { + ^... error: 77: continue statement cannot be used in a switch + case 1: if (mystery == 123) ; else continue; return 1; + ^^^^^^^^ error: 75: function 'switch_with_conditional_continue' can exit without returning a value +int switch_with_conditional_continue() { + ^... error: 83: function 'switch_with_conditional_if_then_return' can exit without returning a value +int switch_with_conditional_if_then_return() { + ^... error: 90: function 'switch_with_conditional_break_then_fallthrough' can exit without returning a value +int switch_with_conditional_break_then_fallthrough() { + ^... 21 errors diff --git a/third_party/skia/tests/sksl/errors/ComparisonDimensional.glsl b/third_party/skia/tests/sksl/errors/ComparisonDimensional.glsl index c28186f904c0..d2fa1cb2ff64 100644 --- a/third_party/skia/tests/sksl/errors/ComparisonDimensional.glsl +++ b/third_party/skia/tests/sksl/errors/ComparisonDimensional.glsl @@ -1,19 +1,51 @@ ### Compilation failed: error: 5: type mismatch: '==' cannot operate on 'float2', 'float' + return v == f || v == m || m == f || + ^^^^^^ error: 5: type mismatch: '==' cannot operate on 'float2', 'float2x2' + return v == f || v == m || m == f || + ^^^^^^ error: 5: type mismatch: '==' cannot operate on 'float2x2', 'float' + return v == f || v == m || m == f || + ^^^^^^ error: 6: type mismatch: '==' cannot operate on 'float', 'float2' + f == v || m == v || f == m || + ^^^^^^ error: 6: type mismatch: '==' cannot operate on 'float2x2', 'float2' + f == v || m == v || f == m || + ^^^^^^ error: 6: type mismatch: '==' cannot operate on 'float', 'float2x2' + f == v || m == v || f == m || + ^^^^^^ error: 7: type mismatch: '!=' cannot operate on 'float2', 'float' + v != f || v != m || m != f || + ^^^^^^ error: 7: type mismatch: '!=' cannot operate on 'float2', 'float2x2' + v != f || v != m || m != f || + ^^^^^^ error: 7: type mismatch: '!=' cannot operate on 'float2x2', 'float' + v != f || v != m || m != f || + ^^^^^^ error: 8: type mismatch: '!=' cannot operate on 'float', 'float2' + f != v || m != v || f != m ; + ^^^^^^ error: 8: type mismatch: '!=' cannot operate on 'float2x2', 'float2' + f != v || m != v || f != m ; + ^^^^^^ error: 8: type mismatch: '!=' cannot operate on 'float', 'float2x2' + f != v || m != v || f != m ; + ^^^^^^ error: 14: type mismatch: '==' cannot operate on 'float2x2', 'float3x3' + return m2 == m3 || m2 != m3; + ^^^^^^^^ error: 14: type mismatch: '!=' cannot operate on 'float2x2', 'float3x3' + return m2 == m3 || m2 != m3; + ^^^^^^^^ error: 20: type mismatch: '==' cannot operate on 'float2', 'float3' + return v2 == v3 || v2 != v3; + ^^^^^^^^ error: 20: type mismatch: '!=' cannot operate on 'float2', 'float3' + return v2 == v3 || v2 != v3; + ^^^^^^^^ 16 errors diff --git a/third_party/skia/tests/sksl/errors/ConstructorArgumentCount.glsl b/third_party/skia/tests/sksl/errors/ConstructorArgumentCount.glsl index dafc73305c9b..74638a4917b0 100644 --- a/third_party/skia/tests/sksl/errors/ConstructorArgumentCount.glsl +++ b/third_party/skia/tests/sksl/errors/ConstructorArgumentCount.glsl @@ -1,6 +1,12 @@ ### Compilation failed: error: 1: invalid arguments to 'float3' constructor (expected 3 scalars, but found 2) +void construct_float3_from_float_float() { float3 x = float3(1.0, 2.0); } + ^^^^^^^^^^^^^^^^ error: 2: invalid arguments to 'float3' constructor (expected 3 scalars, but found 4) +void construct_float3_from_float_float_float_float() { float3 x = float3(1.0, 2.0, 3.0, 4.0); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 3: 'int3' is not a valid parameter to 'bool' constructor +void construct_bool_from_int3() { bool x = bool(int3(77)); } + ^^^^^^^^^^^^^^ 3 errors diff --git a/third_party/skia/tests/sksl/errors/ConstructorTypeMismatch.glsl b/third_party/skia/tests/sksl/errors/ConstructorTypeMismatch.glsl index ddc7532a1d8b..8ac4710b21b7 100644 --- a/third_party/skia/tests/sksl/errors/ConstructorTypeMismatch.glsl +++ b/third_party/skia/tests/sksl/errors/ConstructorTypeMismatch.glsl @@ -1,9 +1,21 @@ ### Compilation failed: error: 5: expected 'int', but found 'float2x2' +void construct_struct_from_float2x2() { Foo x = Foo(float2x2(0)); } + ^^^^^^^^^^^ error: 6: 'Foo' is not a valid parameter to 'float' constructor +void construct_float_from_struct() { float x = float(foo); } + ^^^^^^^^^^ error: 7: 'Foo' is not a valid parameter to 'float2' constructor +void construct_float2_from_struct() { float2 x = float2(foo); } + ^^^^^^^^^^^ error: 8: 'Foo' is not a valid parameter to 'float2x2' constructor +void construct_float2x2_from_struct() { float2x2 x = float2x2(foo); } + ^^^^^^^^^^^^^ error: 9: '' is not a valid parameter to 'float2x2' constructor +void construct_float2x2_from_type() { float2x2 x = float2x2(int); } + ^^^^^^^^^^^^^ error: 10: '' is not a valid parameter to 'float2x2' constructor +void construct_float2x2_from_function() { float2x2 x = float2x2(sqrt); } + ^^^^^^^^^^^^^^ 6 errors diff --git a/third_party/skia/tests/sksl/errors/ContinueOutsideLoop.glsl b/third_party/skia/tests/sksl/errors/ContinueOutsideLoop.glsl index e841af8a6553..3a77d4b281ce 100644 --- a/third_party/skia/tests/sksl/errors/ContinueOutsideLoop.glsl +++ b/third_party/skia/tests/sksl/errors/ContinueOutsideLoop.glsl @@ -1,5 +1,9 @@ ### Compilation failed: -error: 1: continue statement must be inside a loop -error: 2: continue statement must be inside a loop +error: 3: continue statement must be inside a loop + continue; + ^^^^^^^^ +error: 8: continue statement must be inside a loop + default: continue; + ^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/DivideByZero.glsl b/third_party/skia/tests/sksl/errors/DivideByZero.glsl index 205575567980..49d1e3d7ef5d 100644 --- a/third_party/skia/tests/sksl/errors/DivideByZero.glsl +++ b/third_party/skia/tests/sksl/errors/DivideByZero.glsl @@ -1,7 +1,15 @@ ### Compilation failed: error: 1: division by zero +int a = 1 / 0; + ^^^^^ error: 2: division by zero +float b = 1 / 0; + ^^^^^ error: 3: division by zero +float c = 1.0 / 0.0; + ^^^^^^^^^ error: 4: division by zero +float d = -67.0 / (3.0 - 3); + ^^^^^^^^^^^^^^^^^ 4 errors diff --git a/third_party/skia/tests/sksl/errors/DoTypeMismatch.glsl b/third_party/skia/tests/sksl/errors/DoTypeMismatch.glsl index 5451935efc64..7283a53fe267 100644 --- a/third_party/skia/tests/sksl/errors/DoTypeMismatch.glsl +++ b/third_party/skia/tests/sksl/errors/DoTypeMismatch.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: expected 'bool', but found 'float2' + do {} while (float2(1)); + ^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/DuplicateFunction.glsl b/third_party/skia/tests/sksl/errors/DuplicateFunction.glsl index 7672b0163be8..9ee9fea95bb3 100644 --- a/third_party/skia/tests/sksl/errors/DuplicateFunction.glsl +++ b/third_party/skia/tests/sksl/errors/DuplicateFunction.glsl @@ -1,4 +1,6 @@ ### Compilation failed: -error: 2: duplicate definition of void main() +error: 2: duplicate definition of void func() +void func() {} +^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/DuplicateOutput.glsl b/third_party/skia/tests/sksl/errors/DuplicateOutput.glsl index e60c7cab9b17..995988069e99 100644 --- a/third_party/skia/tests/sksl/errors/DuplicateOutput.glsl +++ b/third_party/skia/tests/sksl/errors/DuplicateOutput.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: out location=0, index=0 is reserved for sk_FragColor +layout (location=0, index=0) out half4 duplicateOutput; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/DuplicateSymbol.glsl b/third_party/skia/tests/sksl/errors/DuplicateSymbol.glsl index 9e5cb0629374..b6ba3cfcc401 100644 --- a/third_party/skia/tests/sksl/errors/DuplicateSymbol.glsl +++ b/third_party/skia/tests/sksl/errors/DuplicateSymbol.glsl @@ -1,6 +1,12 @@ ### Compilation failed: error: 2: symbol 'x' was already defined -error: 5: symbol 'main' was already defined +int x; +^^^^^ +error: 5: symbol 'func' was already defined +void func() { +^^^^^^^^^^^ error: 6: symbol 'y' was already defined + int y,y; + ^ 3 errors diff --git a/third_party/skia/tests/sksl/errors/EmptyArray.glsl b/third_party/skia/tests/sksl/errors/EmptyArray.glsl index 9b3a396fb7aa..e397c82ad2f3 100644 --- a/third_party/skia/tests/sksl/errors/EmptyArray.glsl +++ b/third_party/skia/tests/sksl/errors/EmptyArray.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: array size must be positive +int disallowed_zero[0]; + ^ error: 2: array size must be positive +int disallowed_negative[-1]; + ^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/EmptyStruct.glsl b/third_party/skia/tests/sksl/errors/EmptyStruct.glsl index b1c6d773eb1f..8438bf0371bc 100644 --- a/third_party/skia/tests/sksl/errors/EmptyStruct.glsl +++ b/third_party/skia/tests/sksl/errors/EmptyStruct.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: struct 'S' must contain at least one field +struct S { }; +^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ErrorsInDeadCode.glsl b/third_party/skia/tests/sksl/errors/ErrorsInDeadCode.glsl index d7276f4c5304..2507f10b94ac 100644 --- a/third_party/skia/tests/sksl/errors/ErrorsInDeadCode.glsl +++ b/third_party/skia/tests/sksl/errors/ErrorsInDeadCode.glsl @@ -1,7 +1,15 @@ ### Compilation failed: error: 3: unknown identifier 'x' +void error_in_dead_else_body() { if (true) {} else x = 5; } + ^ error: 4: unknown identifier 'x' +void error_in_dead_if_body() { if (false) x = 5; } + ^ error: 5: unknown identifier 'x' +void error_in_dead_ternary_true_expr() { true ? 5 : x; } + ^ error: 6: unknown identifier 'x' +void error_in_dead_ternary_false_expr() { false ? x : 5; } + ^ 4 errors diff --git a/third_party/skia/tests/sksl/errors/FloatRemainder.glsl b/third_party/skia/tests/sksl/errors/FloatRemainder.glsl index 1ae811e3df25..bc3a61994d96 100644 --- a/third_party/skia/tests/sksl/errors/FloatRemainder.glsl +++ b/third_party/skia/tests/sksl/errors/FloatRemainder.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 6: type mismatch: '%' cannot operate on 'float', 'float' +void rem() { x = x % y; } + ^^^^^ error: 7: type mismatch: '%=' cannot operate on 'float', 'float' +void rem_eq() { x %= y; } + ^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/ForInitStmt.glsl b/third_party/skia/tests/sksl/errors/ForInitStmt.glsl index b4b4bcc4b2a1..519739df33f3 100644 --- a/third_party/skia/tests/sksl/errors/ForInitStmt.glsl +++ b/third_party/skia/tests/sksl/errors/ForInitStmt.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected expression, but found 'for' +void test_init_stmt_for() { for (for(;;);; ) {} } + ^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/ForTypeMismatch.glsl b/third_party/skia/tests/sksl/errors/ForTypeMismatch.glsl index 02afa74ade72..868762d0f067 100644 --- a/third_party/skia/tests/sksl/errors/ForTypeMismatch.glsl +++ b/third_party/skia/tests/sksl/errors/ForTypeMismatch.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: expected 'bool', but found 'int' + for (int x = 0; x; x++) {} + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/FunctionParameterOfVoid.glsl b/third_party/skia/tests/sksl/errors/FunctionParameterOfVoid.glsl index 9d2fdd8a9505..4fb4c9fe8d77 100644 --- a/third_party/skia/tests/sksl/errors/FunctionParameterOfVoid.glsl +++ b/third_party/skia/tests/sksl/errors/FunctionParameterOfVoid.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected ')', but found 'x' +void func(void x) {} + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/GenericArgumentMismatch.glsl b/third_party/skia/tests/sksl/errors/GenericArgumentMismatch.glsl index 2282c195e2d8..f357990a0f26 100644 --- a/third_party/skia/tests/sksl/errors/GenericArgumentMismatch.glsl +++ b/third_party/skia/tests/sksl/errors/GenericArgumentMismatch.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: no match for sin(int, int) +void sin_int_int() { float x = sin(1, 2); } + ^^^^^^^^^ error: 2: no match for sin(bool) +void sin_bool() { float x = sin(true); } + ^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/IfTypeMismatch.glsl b/third_party/skia/tests/sksl/errors/IfTypeMismatch.glsl index 02afa74ade72..0007c74ac20e 100644 --- a/third_party/skia/tests/sksl/errors/IfTypeMismatch.glsl +++ b/third_party/skia/tests/sksl/errors/IfTypeMismatch.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: expected 'bool', but found 'int' + if (3) {} + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/InVarWithInitializerExpression.glsl b/third_party/skia/tests/sksl/errors/InVarWithInitializerExpression.glsl index 9002a5956c33..1c5997a6a973 100644 --- a/third_party/skia/tests/sksl/errors/InVarWithInitializerExpression.glsl +++ b/third_party/skia/tests/sksl/errors/InVarWithInitializerExpression.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: 'in' variables cannot use initializer expressions +in float x = 1; + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/IncompleteExpression.glsl b/third_party/skia/tests/sksl/errors/IncompleteExpression.glsl index 9675f837773a..e0bfe3c46c94 100644 --- a/third_party/skia/tests/sksl/errors/IncompleteExpression.glsl +++ b/third_party/skia/tests/sksl/errors/IncompleteExpression.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: expected '(' to begin constructor invocation + int; + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/IncompleteFunctionCall.glsl b/third_party/skia/tests/sksl/errors/IncompleteFunctionCall.glsl index c606c42cffda..1741801c2fa4 100644 --- a/third_party/skia/tests/sksl/errors/IncompleteFunctionCall.glsl +++ b/third_party/skia/tests/sksl/errors/IncompleteFunctionCall.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: expected '(' to begin function call + mix; + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/InterfaceBlockMemberReservedName.glsl b/third_party/skia/tests/sksl/errors/InterfaceBlockMemberReservedName.glsl index 1fe3b9b21541..48278f5c7fca 100644 --- a/third_party/skia/tests/sksl/errors/InterfaceBlockMemberReservedName.glsl +++ b/third_party/skia/tests/sksl/errors/InterfaceBlockMemberReservedName.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: expected an identifier, but found type 'float' + float float; + ^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/InterfaceBlockPrivateType.glsl b/third_party/skia/tests/sksl/errors/InterfaceBlockPrivateType.glsl new file mode 100644 index 000000000000..d5c2cea1010a --- /dev/null +++ b/third_party/skia/tests/sksl/errors/InterfaceBlockPrivateType.glsl @@ -0,0 +1,6 @@ +### Compilation failed: + +error: 2: type '$mat' is private + $mat g; + ^^^^ +1 error diff --git a/third_party/skia/tests/sksl/errors/InterfaceBlockReservedName.glsl b/third_party/skia/tests/sksl/errors/InterfaceBlockReservedName.glsl index 49164ae826b0..310a2c4dc885 100644 --- a/third_party/skia/tests/sksl/errors/InterfaceBlockReservedName.glsl +++ b/third_party/skia/tests/sksl/errors/InterfaceBlockReservedName.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 3: expected ';', but found 'float' +} float; + ^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/InterfaceBlockScope.glsl b/third_party/skia/tests/sksl/errors/InterfaceBlockScope.glsl index e8c698496d7a..710916fc11e0 100644 --- a/third_party/skia/tests/sksl/errors/InterfaceBlockScope.glsl +++ b/third_party/skia/tests/sksl/errors/InterfaceBlockScope.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 3: unknown identifier 'x' +} test[x]; + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/InterfaceBlockStorageModifiers.glsl b/third_party/skia/tests/sksl/errors/InterfaceBlockStorageModifiers.glsl index b23c6a860b52..d5b998d04b0a 100644 --- a/third_party/skia/tests/sksl/errors/InterfaceBlockStorageModifiers.glsl +++ b/third_party/skia/tests/sksl/errors/InterfaceBlockStorageModifiers.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: 'out' is not permitted here +uniform foo { out int x; }; + ^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/InterfaceBlockWithNoMembers.glsl b/third_party/skia/tests/sksl/errors/InterfaceBlockWithNoMembers.glsl index c41a5d367df8..7c8f77c9ba8c 100644 --- a/third_party/skia/tests/sksl/errors/InterfaceBlockWithNoMembers.glsl +++ b/third_party/skia/tests/sksl/errors/InterfaceBlockWithNoMembers.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: interface block 'S' must contain at least one member +const S {}; + ^^^^ error: 2: interface block 'testBlock' must contain at least one member +testBlock {} x[2]; +^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/IntrinsicInGlobalVariable.glsl b/third_party/skia/tests/sksl/errors/IntrinsicInGlobalVariable.glsl index f85146c5b897..c08302dcb53a 100644 --- a/third_party/skia/tests/sksl/errors/IntrinsicInGlobalVariable.glsl +++ b/third_party/skia/tests/sksl/errors/IntrinsicInGlobalVariable.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: global variable initializer must be a constant expression +half4 c = blend_src_over(half4(1), half4(0)); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/InvalidAssignment.glsl b/third_party/skia/tests/sksl/errors/InvalidAssignment.glsl index e81d4d9c91cc..333ab42de464 100644 --- a/third_party/skia/tests/sksl/errors/InvalidAssignment.glsl +++ b/third_party/skia/tests/sksl/errors/InvalidAssignment.glsl @@ -1,16 +1,42 @@ ### Compilation failed: error: 7: cannot assign to this expression +void assign_to_literal() { 1 = 2; } + ^ error: 8: cannot modify immutable variable 'u' +void assign_to_uniform() { u = 0; } + ^ error: 9: cannot modify immutable variable 'x' +void assign_to_const() { const int x = 1; x = 0; } + ^ error: 11: cannot assign to this expression +void assign_to_const_swizzle() { const half4 x = half4(1); x.w = 0; } + ^^^ error: 12: cannot write to the same swizzle field more than once +void assign_to_repeated_swizzle() { half4 x; x.yy = half2(0); } + ^^^^ error: 14: cannot modify immutable variable 'l' +void assign_to_foldable_ternary_const_left() { const float l = 1; float r; (true ? l : r) = 0; } + ^^^^^^^^^^^^^^ error: 15: cannot modify immutable variable 'r' +void assign_to_foldable_ternary_const_right() { float l; const float r = 1; (false ? l : r) = 0; } + ^^^^^^^^^^^^^^^ error: 16: cannot modify immutable variable 'l' +void assign_to_foldable_ternary_const_both() { const float l = 1; const float r = 1; (true ? l : r) = 0; } + ^^^^^^^^^^^^^^ error: 17: cannot assign to this expression +void assign_to_unfoldable_ternary() { float l, r; (u > 0 ? l : r) = 0; } + ^^^^^^^^^^^^^^^ error: 18: cannot assign to this expression +void assign_to_unary_minus() { float x; -x = 0; } + ^^ error: 21: cannot modify immutable variable 'x' +void assign_to_const_param(const int x) { x = 0; } + ^ error: 22: cannot modify immutable variable 'x' +void assign_to_const_array_param(const int x[1]) { x[0] = 0; } + ^ error: 23: cannot modify immutable variable 's' +void assign_to_const_struct_param(const S s) { s.f = 0; } + ^ 13 errors diff --git a/third_party/skia/tests/sksl/errors/InvalidOutParams.glsl b/third_party/skia/tests/sksl/errors/InvalidOutParams.glsl index 55a5e098245c..91de66d33d8b 100644 --- a/third_party/skia/tests/sksl/errors/InvalidOutParams.glsl +++ b/third_party/skia/tests/sksl/errors/InvalidOutParams.glsl @@ -1,6 +1,12 @@ ### Compilation failed: error: 4: cannot assign to this expression +void test_a() { inc1(0); } + ^ error: 5: cannot assign to this expression +void test_b() { inc4(float4(0)); } + ^^^^^^^^^ error: 6: cannot assign to this expression +void test_c() { inc1(sqrt(1)); } + ^^^^^^^ 3 errors diff --git a/third_party/skia/tests/sksl/errors/InvalidToken.glsl b/third_party/skia/tests/sksl/errors/InvalidToken.glsl index bc5afa7f21e2..d595b0d3da42 100644 --- a/third_party/skia/tests/sksl/errors/InvalidToken.glsl +++ b/third_party/skia/tests/sksl/errors/InvalidToken.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: invalid token +💩 +^ 1 error diff --git a/third_party/skia/tests/sksl/errors/InvalidUnary.glsl b/third_party/skia/tests/sksl/errors/InvalidUnary.glsl index 7d4b209fd569..c51b8ef90a48 100644 --- a/third_party/skia/tests/sksl/errors/InvalidUnary.glsl +++ b/third_party/skia/tests/sksl/errors/InvalidUnary.glsl @@ -1,10 +1,24 @@ ### Compilation failed: error: 3: '++' cannot operate on 'float4x4' +void preincrement_matrix() { float4x4 x = float4x4(1); ++x; } + ^^^ error: 4: '--' cannot operate on 'float3' +void predecrement_vector() { float3 x = float3(1); --x; } + ^^^ error: 5: '++' cannot operate on 'float4x4' +void postincrement_matrix() { float4x4 x = float4x4(1); x++; } + ^^^ error: 6: '--' cannot operate on 'float3' +void postdecrement_vector() { float3 x = float3(1); x--; } + ^^^ error: 7: '!' cannot operate on 'int' +void not_integer() { int x = !12; } + ^^^ error: 8: '+' cannot operate on 'Foo' +void positive_struct() { Foo x = +bar; } + ^^^^ error: 9: '-' cannot operate on 'Foo' +void negative_struct() { Foo x = -bar; } + ^^^^ 7 errors diff --git a/third_party/skia/tests/sksl/errors/LayoutInFunctions.glsl b/third_party/skia/tests/sksl/errors/LayoutInFunctions.glsl index 1df52f702b77..d926fb0c3cb1 100644 --- a/third_party/skia/tests/sksl/errors/LayoutInFunctions.glsl +++ b/third_party/skia/tests/sksl/errors/LayoutInFunctions.glsl @@ -1,25 +1,69 @@ ### Compilation failed: -error: 13: layout qualifier 'origin_upper_left' is not permitted here -error: 13: layout qualifier 'push_constant' is not permitted here -error: 13: layout qualifier 'blend_support_all_equations' is not permitted here -error: 13: layout qualifier 'color' is not permitted here -error: 13: layout qualifier 'location' is not permitted here -error: 13: layout qualifier 'offset' is not permitted here -error: 13: layout qualifier 'binding' is not permitted here -error: 13: layout qualifier 'index' is not permitted here -error: 13: layout qualifier 'set' is not permitted here -error: 13: layout qualifier 'builtin' is not permitted here -error: 13: layout qualifier 'input_attachment_index' is not permitted here -error: 27: layout qualifier 'origin_upper_left' is not permitted here -error: 27: layout qualifier 'push_constant' is not permitted here -error: 27: layout qualifier 'blend_support_all_equations' is not permitted here -error: 27: layout qualifier 'color' is not permitted here -error: 27: layout qualifier 'location' is not permitted here -error: 27: layout qualifier 'offset' is not permitted here -error: 27: layout qualifier 'binding' is not permitted here -error: 27: layout qualifier 'index' is not permitted here -error: 27: layout qualifier 'set' is not permitted here -error: 27: layout qualifier 'builtin' is not permitted here -error: 27: layout qualifier 'input_attachment_index' is not permitted here +error: 1: layout qualifier 'origin_upper_left' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'push_constant' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'blend_support_all_equations' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'color' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'location' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'offset' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'binding' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'index' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'set' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'builtin' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'input_attachment_index' is not permitted here +layout ( +^^^^^^^^... +error: 16: layout qualifier 'origin_upper_left' is not permitted here +layout ( +^^^^^^^^... +error: 16: layout qualifier 'push_constant' is not permitted here +layout ( +^^^^^^^^... +error: 16: layout qualifier 'blend_support_all_equations' is not permitted here +layout ( +^^^^^^^^... +error: 16: layout qualifier 'color' is not permitted here +layout ( +^^^^^^^^... +error: 16: layout qualifier 'location' is not permitted here +layout ( +^^^^^^^^... +error: 16: layout qualifier 'offset' is not permitted here +layout ( +^^^^^^^^... +error: 16: layout qualifier 'binding' is not permitted here +layout ( +^^^^^^^^... +error: 16: layout qualifier 'index' is not permitted here +layout ( +^^^^^^^^... +error: 16: layout qualifier 'set' is not permitted here +layout ( +^^^^^^^^... +error: 16: layout qualifier 'builtin' is not permitted here +layout ( +^^^^^^^^... +error: 16: layout qualifier 'input_attachment_index' is not permitted here +layout ( +^^^^^^^^... 22 errors diff --git a/third_party/skia/tests/sksl/errors/LayoutInInterfaceBlock.asm.frag b/third_party/skia/tests/sksl/errors/LayoutInInterfaceBlock.asm.frag index 049938a34bbd..b555aeec5ce5 100644 --- a/third_party/skia/tests/sksl/errors/LayoutInInterfaceBlock.asm.frag +++ b/third_party/skia/tests/sksl/errors/LayoutInInterfaceBlock.asm.frag @@ -1,5 +1,9 @@ ### Compilation failed: error: 4: layout qualifier 'binding' is not permitted here + layout(binding=1) A y; // Not allowed + ^^^^^^^^^^^^^^^^^ error: 5: layout qualifier 'set' is not permitted here + layout(set=0) A z; // Not allowed + ^^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/LayoutInInterfaceBlock.glsl b/third_party/skia/tests/sksl/errors/LayoutInInterfaceBlock.glsl index 049938a34bbd..b555aeec5ce5 100644 --- a/third_party/skia/tests/sksl/errors/LayoutInInterfaceBlock.glsl +++ b/third_party/skia/tests/sksl/errors/LayoutInInterfaceBlock.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 4: layout qualifier 'binding' is not permitted here + layout(binding=1) A y; // Not allowed + ^^^^^^^^^^^^^^^^^ error: 5: layout qualifier 'set' is not permitted here + layout(set=0) A z; // Not allowed + ^^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/LayoutInStruct.asm.frag b/third_party/skia/tests/sksl/errors/LayoutInStruct.asm.frag index ae419f170452..9030972e1fc6 100644 --- a/third_party/skia/tests/sksl/errors/LayoutInStruct.asm.frag +++ b/third_party/skia/tests/sksl/errors/LayoutInStruct.asm.frag @@ -1,5 +1,9 @@ ### Compilation failed: error: 2: layout qualifier 'binding' is not permitted on a struct field + layout(binding = 1) int x; // Not allowed + ^^^^^^^^^^^^^^^^^^^ error: 3: layout qualifier 'set' is not permitted on a struct field + layout(set = 0) int y; // Not allowed + ^^^^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/LayoutInStruct.glsl b/third_party/skia/tests/sksl/errors/LayoutInStruct.glsl index ae419f170452..9030972e1fc6 100644 --- a/third_party/skia/tests/sksl/errors/LayoutInStruct.glsl +++ b/third_party/skia/tests/sksl/errors/LayoutInStruct.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 2: layout qualifier 'binding' is not permitted on a struct field + layout(binding = 1) int x; // Not allowed + ^^^^^^^^^^^^^^^^^^^ error: 3: layout qualifier 'set' is not permitted on a struct field + layout(set = 0) int y; // Not allowed + ^^^^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/LayoutRepeatedQualifiers.glsl b/third_party/skia/tests/sksl/errors/LayoutRepeatedQualifiers.glsl index aef4757b6e3e..b90f4873e9a7 100644 --- a/third_party/skia/tests/sksl/errors/LayoutRepeatedQualifiers.glsl +++ b/third_party/skia/tests/sksl/errors/LayoutRepeatedQualifiers.glsl @@ -1,17 +1,45 @@ ### Compilation failed: error: 14: layout qualifier 'origin_upper_left' appears more than once + origin_upper_left, + ^^^^^^^^^^^^^^^^^ error: 15: layout qualifier 'push_constant' appears more than once + push_constant, + ^^^^^^^^^^^^^ error: 16: layout qualifier 'blend_support_all_equations' appears more than once + blend_support_all_equations, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 17: layout qualifier 'color' appears more than once + color, + ^^^^^ error: 18: layout qualifier 'location' appears more than once + location = 2, + ^^^^^^^^ error: 19: layout qualifier 'offset' appears more than once + offset = 2, + ^^^^^^ error: 20: layout qualifier 'binding' appears more than once + binding = 2, + ^^^^^^^ error: 21: layout qualifier 'index' appears more than once + index = 2, + ^^^^^ error: 22: layout qualifier 'set' appears more than once + set = 2, + ^^^ error: 23: layout qualifier 'builtin' appears more than once + builtin = 2, + ^^^^^^^ error: 24: layout qualifier 'input_attachment_index' appears more than once -error: 25: 'layout(color)' is only permitted in runtime effects -error: 25: 'layout(color)' is only permitted on 'uniform' variables -error: 25: 'layout(color)' is not permitted on variables of type 'float' + input_attachment_index = 2 + ^^^^^^^^^^^^^^^^^^^^^^ +error: 1: 'layout(color)' is only permitted in runtime effects +layout ( +^^^^^^^^... +error: 1: 'layout(color)' is only permitted on 'uniform' variables +layout ( +^^^^^^^^... +error: 1: 'layout(color)' is not permitted on variables of type 'float' +layout ( +^^^^^^^^... 14 errors diff --git a/third_party/skia/tests/sksl/errors/MatrixIndexOutOfRange.glsl b/third_party/skia/tests/sksl/errors/MatrixIndexOutOfRange.glsl index 8c13198e18f3..5e9e6452a76a 100644 --- a/third_party/skia/tests/sksl/errors/MatrixIndexOutOfRange.glsl +++ b/third_party/skia/tests/sksl/errors/MatrixIndexOutOfRange.glsl @@ -1,19 +1,27 @@ ### Compilation failed: -error: 1: index -1 out of range for 'half2x4' -error: 4: index 2 out of range for 'half2x4' -error: 5: index 3 out of range for 'half2x4' -error: 6: index 4 out of range for 'half2x4' -error: 7: index 1000000000 out of range for 'half2x4' +error: 1: index -1 out of range for 'half3x3' +void half3x3_neg1() { half3x3 m; half3 v = m[-1]; } + ^^ +error: 5: index 3 out of range for 'half3x3' +void half3x3_3() { half3x3 m; half3 v = m[3]; } + ^ +error: 6: index 4 out of range for 'half3x3' +void half3x3_4() { half3x3 m; half3 v = m[4]; } + ^ +error: 7: index 1000000000 out of range for 'half3x3' +void half3x3_huge() { half3x3 m; half3 v = m[1000000000]; } + ^^^^^^^^^^ error: 9: index -1 out of range for 'half3x3' +void half3x3_neg1_constidx() { half3x3 m; const int INDEX = -1; half3 v = m[INDEX]; } + ^^^^^ error: 13: index 3 out of range for 'half3x3' +void half3x3_3_constidx() { half3x3 m; const int INDEX = 3; half3 v = m[INDEX]; } + ^^^^^ error: 14: index 4 out of range for 'half3x3' +void half3x3_4_constidx() { half3x3 m; const int INDEX = 4; half3 v = m[INDEX]; } + ^^^^^ error: 15: index 1000000000 out of range for 'half3x3' -error: 17: index -1 out of range for 'half4x2' -error: 22: index 4 out of range for 'half4x2' -error: 23: index 1000000000 out of range for 'half4x2' -error: 25: index -1 out of range for 'half3x3' -error: 29: index 3 out of range for 'half3x3' -error: 30: index 4 out of range for 'half3x3' -error: 31: index 1000000000 out of range for 'half3x3' -16 errors +void half3x3_huge_constidx() { half3x3 m; const int INDEX = 1000000000; half3 v = m[INDEX]; } + ^^^^^ +8 errors diff --git a/third_party/skia/tests/sksl/errors/MatrixIndexOutOfRangeES3.glsl b/third_party/skia/tests/sksl/errors/MatrixIndexOutOfRangeES3.glsl new file mode 100644 index 000000000000..e64d8f6fd3a1 --- /dev/null +++ b/third_party/skia/tests/sksl/errors/MatrixIndexOutOfRangeES3.glsl @@ -0,0 +1,27 @@ +### Compilation failed: + +error: 1: index -1 out of range for 'half2x4' +void half2x4_neg1() { half2x4 m; half4 v = m[-1]; } + ^^ +error: 4: index 2 out of range for 'half2x4' +void half2x4_2() { half2x4 m; half4 v = m[2]; } + ^ +error: 5: index 3 out of range for 'half2x4' +void half2x4_3() { half2x4 m; half4 v = m[3]; } + ^ +error: 6: index 4 out of range for 'half2x4' +void half2x4_4() { half2x4 m; half4 v = m[4]; } + ^ +error: 7: index 1000000000 out of range for 'half2x4' +void half2x4_huge() { half2x4 m; half4 v = m[1000000000]; } + ^^^^^^^^^^ +error: 9: index -1 out of range for 'half4x2' +void half4x2_neg1() { half4x2 m; half2 v = m[-1]; } + ^^ +error: 14: index 4 out of range for 'half4x2' +void half4x2_4() { half4x2 m; half2 v = m[4]; } + ^ +error: 15: index 1000000000 out of range for 'half4x2' +void half4x2_huge() { half4x2 m; half2 v = m[1000000000]; } + ^^^^^^^^^^ +8 errors diff --git a/third_party/skia/tests/sksl/errors/MatrixInlinedIndexOutOfRange.glsl b/third_party/skia/tests/sksl/errors/MatrixInlinedIndexOutOfRange.glsl index f10a161d9f60..6925424a12f3 100644 --- a/third_party/skia/tests/sksl/errors/MatrixInlinedIndexOutOfRange.glsl +++ b/third_party/skia/tests/sksl/errors/MatrixInlinedIndexOutOfRange.glsl @@ -1,5 +1,9 @@ ### Compilation failed: -error: 6: index -1 out of range for 'float3x3' -error: 6: index 3 out of range for 'float3x3' +error: 11: index -1 out of range for 'float3x3' + float3 undefined = indexMatrix(-1) + indexMatrix(3); + ^^ +error: 11: index 3 out of range for 'float3x3' + float3 undefined = indexMatrix(-1) + indexMatrix(3); + ^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/MatrixToVectorCast3x3.glsl b/third_party/skia/tests/sksl/errors/MatrixToVectorCast3x3.glsl index 6f2dd4147e38..b68739a1bbc7 100644 --- a/third_party/skia/tests/sksl/errors/MatrixToVectorCast3x3.glsl +++ b/third_party/skia/tests/sksl/errors/MatrixToVectorCast3x3.glsl @@ -1,7 +1,15 @@ ### Compilation failed: error: 4: 'half3x3' is not a valid parameter to 'half' constructor; use '[0][0]' instead +half testScalar = half (testMatrix3x3); + ^^^^^^^^^^^^^^^^^^^^ error: 5: 'half3x3' is not a valid parameter to 'half2' constructor +half2 testVec2 = half2(testMatrix3x3); + ^^^^^^^^^^^^^^^^^^^^ error: 6: 'half3x3' is not a valid parameter to 'half3' constructor +half3 testVec3 = half3(testMatrix3x3); + ^^^^^^^^^^^^^^^^^^^^ error: 7: 'half3x3' is not a valid parameter to 'half4' constructor +half4 testVec4 = half4(testMatrix3x3); + ^^^^^^^^^^^^^^^^^^^^ 4 errors diff --git a/third_party/skia/tests/sksl/errors/MatrixToVectorCastBoolean.glsl b/third_party/skia/tests/sksl/errors/MatrixToVectorCastBoolean.glsl index e04b333f1174..95ae39451f7a 100644 --- a/third_party/skia/tests/sksl/errors/MatrixToVectorCastBoolean.glsl +++ b/third_party/skia/tests/sksl/errors/MatrixToVectorCastBoolean.glsl @@ -1,6 +1,12 @@ ### Compilation failed: error: 4: 'half2x2' is not a valid parameter to 'bool' constructor +bool testScalar = bool (testMatrix2x2); + ^^^^^^^^^^^^^^^^^^^^ error: 5: 'half2x2' is not a valid parameter to 'bool2' constructor +bool2 testVec2 = bool2(testMatrix2x2); + ^^^^^^^^^^^^^^^^^^^^ error: 6: 'half2x2' is not a valid parameter to 'bool3' constructor +bool3 testVec3 = bool3(testMatrix2x2); + ^^^^^^^^^^^^^^^^^^^^ 3 errors diff --git a/third_party/skia/tests/sksl/errors/MatrixToVectorCastInteger.glsl b/third_party/skia/tests/sksl/errors/MatrixToVectorCastInteger.glsl index 53df3e1cc869..9444f6e6bd63 100644 --- a/third_party/skia/tests/sksl/errors/MatrixToVectorCastInteger.glsl +++ b/third_party/skia/tests/sksl/errors/MatrixToVectorCastInteger.glsl @@ -1,6 +1,12 @@ ### Compilation failed: error: 4: 'half2x2' is not a valid parameter to 'int' constructor +int testScalar = int (testMatrix2x2); + ^^^^^^^^^^^^^^^^^^^ error: 5: 'half2x2' is not a valid parameter to 'int2' constructor +int2 testVec2 = int2(testMatrix2x2); + ^^^^^^^^^^^^^^^^^^^ error: 6: 'half2x2' is not a valid parameter to 'int3' constructor +int3 testVec3 = int3(testMatrix2x2); + ^^^^^^^^^^^^^^^^^^^ 3 errors diff --git a/third_party/skia/tests/sksl/errors/MatrixToVectorCastTooSmall.glsl b/third_party/skia/tests/sksl/errors/MatrixToVectorCastTooSmall.glsl index 69c9d8d3b7c6..9d7e690b1786 100644 --- a/third_party/skia/tests/sksl/errors/MatrixToVectorCastTooSmall.glsl +++ b/third_party/skia/tests/sksl/errors/MatrixToVectorCastTooSmall.glsl @@ -1,6 +1,12 @@ ### Compilation failed: error: 4: 'half2x2' is not a valid parameter to 'half' constructor; use '[0][0]' instead +half testScalar = half (testMatrix2x2); + ^^^^^^^^^^^^^^^^^^^^ error: 5: 'half2x2' is not a valid parameter to 'half2' constructor +half2 testVec2 = half2(testMatrix2x2); + ^^^^^^^^^^^^^^^^^^^^ error: 6: 'half2x2' is not a valid parameter to 'half3' constructor +half3 testVec3 = half3(testMatrix2x2); + ^^^^^^^^^^^^^^^^^^^^ 3 errors diff --git a/third_party/skia/tests/sksl/errors/MismatchedNumbers.glsl b/third_party/skia/tests/sksl/errors/MismatchedNumbers.glsl index 9bcfd24a43d3..43f4c96957d8 100644 --- a/third_party/skia/tests/sksl/errors/MismatchedNumbers.glsl +++ b/third_party/skia/tests/sksl/errors/MismatchedNumbers.glsl @@ -1,53 +1,84 @@ ### Compilation failed: -error: 28: type mismatch: '=' cannot operate on 'int', 'float' -error: 29: type mismatch: '=' cannot operate on 'uint', 'float' -error: 30: type mismatch: '=' cannot operate on 'int', 'uint' -error: 31: type mismatch: '=' cannot operate on 'int', 'float' -error: 32: type mismatch: '=' cannot operate on 'float', 'int' -error: 32: function 'f_eq_i_disallowed' can exit without returning a value -error: 33: type mismatch: '=' cannot operate on 'float', 'uint' -error: 33: function 'f_eq_u_disallowed' can exit without returning a value -error: 34: type mismatch: '=' cannot operate on 'uint', 'int' -error: 35: type mismatch: '=' cannot operate on 'uint', 'float' -error: 36: type mismatch: '+' cannot operate on 'int', 'float' -error: 37: type mismatch: '-' cannot operate on 'int', 'float' -error: 38: type mismatch: '*' cannot operate on 'int', 'float' -error: 39: type mismatch: '/' cannot operate on 'int', 'float' -error: 40: type mismatch: '+' cannot operate on 'float', 'int' -error: 41: type mismatch: '-' cannot operate on 'float', 'int' -error: 42: type mismatch: '*' cannot operate on 'float', 'int' -error: 43: type mismatch: '/' cannot operate on 'float', 'int' -error: 44: type mismatch: '+' cannot operate on 'uint', 'float' -error: 45: type mismatch: '-' cannot operate on 'uint', 'float' -error: 46: type mismatch: '*' cannot operate on 'uint', 'float' -error: 47: type mismatch: '/' cannot operate on 'uint', 'float' -error: 48: type mismatch: '+' cannot operate on 'float', 'uint' -error: 49: type mismatch: '-' cannot operate on 'float', 'uint' -error: 50: type mismatch: '*' cannot operate on 'float', 'uint' -error: 51: type mismatch: '/' cannot operate on 'float', 'uint' -error: 52: type mismatch: '+' cannot operate on 'int', 'float' -error: 53: type mismatch: '-' cannot operate on 'int', 'float' -error: 54: type mismatch: '*' cannot operate on 'int', 'float' -error: 55: type mismatch: '/' cannot operate on 'int', 'float' -error: 56: type mismatch: '+' cannot operate on 'float', 'int' -error: 57: type mismatch: '-' cannot operate on 'float', 'int' -error: 58: type mismatch: '*' cannot operate on 'float', 'int' -error: 59: type mismatch: '/' cannot operate on 'float', 'int' -error: 60: type mismatch: '+' cannot operate on 'uint', 'float' -error: 61: type mismatch: '-' cannot operate on 'uint', 'float' -error: 62: type mismatch: '*' cannot operate on 'uint', 'float' -error: 63: type mismatch: '/' cannot operate on 'uint', 'float' -error: 64: type mismatch: '+' cannot operate on 'float', 'uint' -error: 65: type mismatch: '-' cannot operate on 'float', 'uint' -error: 66: type mismatch: '*' cannot operate on 'float', 'uint' -error: 67: type mismatch: '/' cannot operate on 'float', 'uint' -error: 68: type mismatch: '+' cannot operate on 'int', 'uint' -error: 69: type mismatch: '-' cannot operate on 'int', 'uint' -error: 70: type mismatch: '*' cannot operate on 'int', 'uint' -error: 71: type mismatch: '/' cannot operate on 'int', 'uint' -error: 72: type mismatch: '+' cannot operate on 'uint', 'int' -error: 73: type mismatch: '-' cannot operate on 'uint', 'int' -error: 74: type mismatch: '*' cannot operate on 'uint', 'int' -error: 75: type mismatch: '/' cannot operate on 'uint', 'int' -50 errors +error: 16: type mismatch: '=' cannot operate on 'int', 'float' +void i_eq_float_literal_disallowed() { i = 1.0; } + ^^^^^^^ +error: 17: type mismatch: '=' cannot operate on 'int', 'float' +void i_eq_f_disallowed() { i = f; } + ^^^^^ +error: 18: type mismatch: '=' cannot operate on 'float', 'int' +void f_eq_i_disallowed() { f = i; } + ^^^^^ +error: 19: type mismatch: '+' cannot operate on 'int', 'float' +void i_plus_float_literal_disallowed() { i + 1.0; } + ^^^^^^^ +error: 20: type mismatch: '-' cannot operate on 'int', 'float' +void i_minus_float_literal_disallowed() { i - 1.0; } + ^^^^^^^ +error: 21: type mismatch: '*' cannot operate on 'int', 'float' +void i_mul_float_literal_disallowed() { i * 1.0; } + ^^^^^^^ +error: 22: type mismatch: '/' cannot operate on 'int', 'float' +void i_div_float_literal_disallowed() { i / 1.0; } + ^^^^^^^ +error: 23: type mismatch: '+' cannot operate on 'float', 'int' +void float_literal_plus_i_disallowed() { 1.0 + i; } + ^^^^^^^ +error: 24: type mismatch: '-' cannot operate on 'float', 'int' +void float_literal_minus_i_disallowed() { 1.0 - i; } + ^^^^^^^ +error: 25: type mismatch: '*' cannot operate on 'float', 'int' +void float_literal_mul_i_disallowed() { 1.0 * i; } + ^^^^^^^ +error: 26: type mismatch: '/' cannot operate on 'float', 'int' +void float_literal_div_i_disallowed() { 1.0 / i; } + ^^^^^^^ +error: 27: type mismatch: '+' cannot operate on 'int', 'float' +void i_plus_f_disallowed() { i + f; } + ^^^^^ +error: 28: type mismatch: '-' cannot operate on 'int', 'float' +void i_minus_f_disallowed() { i - f; } + ^^^^^ +error: 29: type mismatch: '*' cannot operate on 'int', 'float' +void i_mul_f_disallowed() { i * f; } + ^^^^^ +error: 30: type mismatch: '/' cannot operate on 'int', 'float' +void i_div_f_disallowed() { i / f; } + ^^^^^ +error: 31: type mismatch: '+' cannot operate on 'float', 'int' +void f_plus_i_disallowed() { f + i; } + ^^^^^ +error: 32: type mismatch: '-' cannot operate on 'float', 'int' +void f_minus_i_disallowed() { f - i; } + ^^^^^ +error: 33: type mismatch: '*' cannot operate on 'float', 'int' +void f_mul_i_disallowed() { f * i; } + ^^^^^ +error: 34: type mismatch: '/' cannot operate on 'float', 'int' +void f_div_i_disallowed() { f / i; } + ^^^^^ +error: 35: unknown identifier 'u' +void f_plus_u_disallowed() { f + u; } + ^ +error: 36: unknown identifier 'u' +void f_minus_u_disallowed() { f - u; } + ^ +error: 37: unknown identifier 'u' +void f_mul_u_disallowed() { f * u; } + ^ +error: 38: unknown identifier 'u' +void f_div_u_disallowed() { f / u; } + ^ +error: 39: unknown identifier 'u' +void i_plus_u_disallowed() { i + u; } + ^ +error: 40: unknown identifier 'u' +void i_minus_u_disallowed() { i - u; } + ^ +error: 41: unknown identifier 'u' +void i_mul_u_disallowed() { i * u; } + ^ +error: 42: unknown identifier 'u' +void i_div_u_disallowed() { i / u; } + ^ +27 errors diff --git a/third_party/skia/tests/sksl/errors/MismatchedNumbersES3.glsl b/third_party/skia/tests/sksl/errors/MismatchedNumbersES3.glsl new file mode 100644 index 000000000000..c0effa8a48ef --- /dev/null +++ b/third_party/skia/tests/sksl/errors/MismatchedNumbersES3.glsl @@ -0,0 +1,90 @@ +### Compilation failed: + +error: 17: type mismatch: '=' cannot operate on 'uint', 'float' +void u_eq_float_literal_disallowed() { u = 1.0; } + ^^^^^^^ +error: 18: type mismatch: '=' cannot operate on 'int', 'uint' +void i_eq_u_disallowed() { i = u; } + ^^^^^ +error: 19: type mismatch: '=' cannot operate on 'float', 'uint' +void f_eq_u_disallowed() { f = u; } + ^^^^^ +error: 20: type mismatch: '=' cannot operate on 'uint', 'int' +void u_eq_i_disallowed() { u = i; } + ^^^^^ +error: 21: type mismatch: '=' cannot operate on 'uint', 'float' +void u_eq_f_disallowed() { u = f; } + ^^^^^ +error: 22: type mismatch: '+' cannot operate on 'uint', 'float' +void u_plus_float_literal_disallowed() { u + 1.0; } + ^^^^^^^ +error: 23: type mismatch: '-' cannot operate on 'uint', 'float' +void u_minus_float_literal_disallowed() { u - 1.0; } + ^^^^^^^ +error: 24: type mismatch: '*' cannot operate on 'uint', 'float' +void u_mul_float_literal_disallowed() { u * 1.0; } + ^^^^^^^ +error: 25: type mismatch: '/' cannot operate on 'uint', 'float' +void u_div_float_literal_disallowed() { u / 1.0; } + ^^^^^^^ +error: 26: type mismatch: '+' cannot operate on 'float', 'uint' +void float_literal_plus_u_disallowed() { 1.0 + u; } + ^^^^^^^ +error: 27: type mismatch: '-' cannot operate on 'float', 'uint' +void float_literal_minus_u_disallowed() { 1.0 - u; } + ^^^^^^^ +error: 28: type mismatch: '*' cannot operate on 'float', 'uint' +void float_literal_mul_u_disallowed() { 1.0 * u; } + ^^^^^^^ +error: 29: type mismatch: '/' cannot operate on 'float', 'uint' +void float_literal_div_u_disallowed() { 1.0 / u; } + ^^^^^^^ +error: 30: type mismatch: '+' cannot operate on 'uint', 'float' +void u_plus_f_disallowed() { u + f; } + ^^^^^ +error: 31: type mismatch: '-' cannot operate on 'uint', 'float' +void u_minus_f_disallowed() { u - f; } + ^^^^^ +error: 32: type mismatch: '*' cannot operate on 'uint', 'float' +void u_mul_f_disallowed() { u * f; } + ^^^^^ +error: 33: type mismatch: '/' cannot operate on 'uint', 'float' +void u_div_f_disallowed() { u / f; } + ^^^^^ +error: 34: type mismatch: '+' cannot operate on 'float', 'uint' +void f_plus_u_disallowed() { f + u; } + ^^^^^ +error: 35: type mismatch: '-' cannot operate on 'float', 'uint' +void f_minus_u_disallowed() { f - u; } + ^^^^^ +error: 36: type mismatch: '*' cannot operate on 'float', 'uint' +void f_mul_u_disallowed() { f * u; } + ^^^^^ +error: 37: type mismatch: '/' cannot operate on 'float', 'uint' +void f_div_u_disallowed() { f / u; } + ^^^^^ +error: 38: type mismatch: '+' cannot operate on 'int', 'uint' +void i_plus_u_disallowed() { i + u; } + ^^^^^ +error: 39: type mismatch: '-' cannot operate on 'int', 'uint' +void i_minus_u_disallowed() { i - u; } + ^^^^^ +error: 40: type mismatch: '*' cannot operate on 'int', 'uint' +void i_mul_u_disallowed() { i * u; } + ^^^^^ +error: 41: type mismatch: '/' cannot operate on 'int', 'uint' +void i_div_u_disallowed() { i / u; } + ^^^^^ +error: 42: type mismatch: '+' cannot operate on 'uint', 'int' +void u_plus_i_disallowed() { u + i; } + ^^^^^ +error: 43: type mismatch: '-' cannot operate on 'uint', 'int' +void u_minus_i_disallowed() { u - i; } + ^^^^^ +error: 44: type mismatch: '*' cannot operate on 'uint', 'int' +void u_mul_i_disallowed() { u * i; } + ^^^^^ +error: 45: type mismatch: '/' cannot operate on 'uint', 'int' +void u_div_i_disallowed() { u / i; } + ^^^^^ +29 errors diff --git a/third_party/skia/tests/sksl/errors/ModifiersInStruct.glsl b/third_party/skia/tests/sksl/errors/ModifiersInStruct.glsl index c22d25c49104..0f744b11f73b 100644 --- a/third_party/skia/tests/sksl/errors/ModifiersInStruct.glsl +++ b/third_party/skia/tests/sksl/errors/ModifiersInStruct.glsl @@ -1,8 +1,18 @@ ### Compilation failed: error: 2: modifier 'const' is not permitted on a struct field + const float a; + ^^^^^ error: 3: modifier 'uniform' is not permitted on a struct field + uniform int b; + ^^^^^^^ error: 4: modifier 'flat' is not permitted on a struct field + flat half4 c; + ^^^^ error: 5: modifier 'noperspective' is not permitted on a struct field + noperspective float4 d; + ^^^^^^^^^^^^^ error: 6: modifier 'inout' is not permitted on a struct field + inout bool e; + ^^^^^ 5 errors diff --git a/third_party/skia/tests/sksl/errors/MultipleFields.glsl b/third_party/skia/tests/sksl/errors/MultipleFields.glsl index 66932d7b3407..031c14df6fca 100644 --- a/third_party/skia/tests/sksl/errors/MultipleFields.glsl +++ b/third_party/skia/tests/sksl/errors/MultipleFields.glsl @@ -1,4 +1,6 @@ ### Compilation failed: -error: 1: field 'var' was already defined in the same struct ('Varyings') +error: 3: field 'var' was already defined in the same struct ('Varyings') + float var; + ^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/MultipleFieldsInInterfaceBlocks.glsl b/third_party/skia/tests/sksl/errors/MultipleFieldsInInterfaceBlocks.glsl index 55ecc1224b53..b2adf8f4a590 100644 --- a/third_party/skia/tests/sksl/errors/MultipleFieldsInInterfaceBlocks.glsl +++ b/third_party/skia/tests/sksl/errors/MultipleFieldsInInterfaceBlocks.glsl @@ -1,5 +1,9 @@ ### Compilation failed: -error: 1: field 'f' was already defined in the same interface block ('IB') +error: 3: field 'f' was already defined in the same interface block ('IB') + float f; + ^ error: 7: symbol 'f' was already defined +IB2 { float f; }; + ^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/NoES3ModifierInUserCode.glsl b/third_party/skia/tests/sksl/errors/NoES3ModifierInUserCode.glsl index 51929337f8fe..9e9840151236 100644 --- a/third_party/skia/tests/sksl/errors/NoES3ModifierInUserCode.glsl +++ b/third_party/skia/tests/sksl/errors/NoES3ModifierInUserCode.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: '$es3' is not permitted here +$es3 void fn() {} +^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/OpaqueTypeAssignment.glsl b/third_party/skia/tests/sksl/errors/OpaqueTypeAssignment.glsl index 612299704a73..3f473c991f5c 100644 --- a/third_party/skia/tests/sksl/errors/OpaqueTypeAssignment.glsl +++ b/third_party/skia/tests/sksl/errors/OpaqueTypeAssignment.glsl @@ -1,8 +1,18 @@ ### Compilation failed: error: 3: opaque type 'sampler' cannot use initializer expressions +sampler c = a; + ^ error: 4: variables of type 'sampler' must be global +void declare() { sampler d; } + ^^^^^^^^^ error: 5: variables of type 'sampler' must be global +void initialize() { sampler e = a; } + ^^^^^^^^^^^^^ error: 5: opaque type 'sampler' cannot use initializer expressions +void initialize() { sampler e = a; } + ^ error: 6: assignments to opaque type 'sampler' are not permitted +void assign() { a = b; } + ^^^^^ 5 errors diff --git a/third_party/skia/tests/sksl/errors/OpaqueTypeConstruction.glsl b/third_party/skia/tests/sksl/errors/OpaqueTypeConstruction.glsl index 82089e38fb9e..9be49dca49e1 100644 --- a/third_party/skia/tests/sksl/errors/OpaqueTypeConstruction.glsl +++ b/third_party/skia/tests/sksl/errors/OpaqueTypeConstruction.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 4: cannot construct 'sampler' + func(sampler(a)); + ^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/OpaqueTypeInArray.glsl b/third_party/skia/tests/sksl/errors/OpaqueTypeInArray.glsl index b62bac04cfca..e5b86f31b341 100644 --- a/third_party/skia/tests/sksl/errors/OpaqueTypeInArray.glsl +++ b/third_party/skia/tests/sksl/errors/OpaqueTypeInArray.glsl @@ -1,7 +1,15 @@ ### Compilation failed: error: 1: opaque type 'sampler' may not be used in an array +in sampler a[1]; +^^^^^^^^^^^^^^^ error: 2: opaque type 'sampler' may not be used in an array +in sampler[1] b; + ^^^^^^^^^^ error: 3: opaque type 'sampler' may not be used in an array +void fnC() { sampler c[1]; } + ^^^^^^^^^^^^ error: 4: opaque type 'sampler' may not be used in an array +void fnD() { sampler[1] d; } + ^^^^^^^^^^ 4 errors diff --git a/third_party/skia/tests/sksl/errors/OpaqueTypeInInterfaceBlock.glsl b/third_party/skia/tests/sksl/errors/OpaqueTypeInInterfaceBlock.glsl index 64433eda1d11..de87edfde84b 100644 --- a/third_party/skia/tests/sksl/errors/OpaqueTypeInInterfaceBlock.glsl +++ b/third_party/skia/tests/sksl/errors/OpaqueTypeInInterfaceBlock.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: variables of type 'sampler' must be global +Bad { sampler x; }; + ^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/OpaqueTypeInStruct.glsl b/third_party/skia/tests/sksl/errors/OpaqueTypeInStruct.glsl index 94f66bb9d6ce..cce6bcb77e88 100644 --- a/third_party/skia/tests/sksl/errors/OpaqueTypeInStruct.glsl +++ b/third_party/skia/tests/sksl/errors/OpaqueTypeInStruct.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: opaque type 'sampler' is not permitted in a struct +struct Bad { sampler x; }; + ^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/OpenArray.glsl b/third_party/skia/tests/sksl/errors/OpenArray.glsl index 5f76399fe3f0..b1d223d4fdc5 100644 --- a/third_party/skia/tests/sksl/errors/OpenArray.glsl +++ b/third_party/skia/tests/sksl/errors/OpenArray.glsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: 1: shader 'main' must be main() or main(float2) -error: 2: unknown identifier 'color' error: 2: expected expression, but found '=' -3 errors + coords.r[ = ( coords.g ); + ^ +1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz26700.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz26700.glsl index 163e3d437ba7..c8e564fe1eb1 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz26700.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz26700.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: expected ';', but found '=' +G { int q=_; }; + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz27614.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz27614.glsl index d11cec94242d..0bab554878c5 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz27614.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz27614.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: type mismatch: '-' cannot operate on 'float', 'int' +void main() { 0.5 - 0 * ~0 - half2(0) + 1; } + ^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz27650.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz27650.glsl index 4257eda9c5df..01eedcbd3ee7 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz27650.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz27650.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: expected 'int', but found 'float' +void main() { int i=9E7; 2+int4(i); } + ^^^ error: 1: unknown identifier 'i' +void main() { int i=9E7; 2+int4(i); } + ^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz27663.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz27663.glsl index 8cffafe221ff..405898ad6763 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz27663.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz27663.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: division by zero +void main() { sk_FragColor = float4(1) / - -half4(0); } + ^^^^^^^^^^^^^^^^^^^^^^^ error: 1: type mismatch: '=' cannot operate on 'half4', 'float4' +void main() { sk_FragColor = float4(1) / - -half4(0); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz28050.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz28050.glsl index a73760e7a92e..146e10ca5b03 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz28050.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz28050.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: invalid arguments to 'float[1]' constructor (expected 1 elements, but found 0) +void wna() { an(), float[1](); } + ^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz29444.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz29444.glsl index b14fedd313c6..0fdecfd6f135 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz29444.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz29444.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 2: invalid arguments to 'float[1]' constructor (expected 1 elements, but found 0) +void wna() { an(), float[1](), float[1](); } + ^^^^^^^^^^ error: 2: invalid arguments to 'float[1]' constructor (expected 1 elements, but found 0) +void wna() { an(), float[1](), float[1](); } + ^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz29845.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz29845.glsl index c25fffc8dff5..0e6f16cf26d6 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz29845.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz29845.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 2: no type named 'l' + l(); + ^ error: 2: expected a type, but found '(' + l(); + ^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz29849.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz29849.glsl index b6529e1838b4..8f3a02f5ab7f 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz29849.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz29849.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: variable 'a' must be created in a scope + if (2 < 2) int a; + ^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz31410.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz31410.glsl index c141bf9fc32a..054d66f4bc60 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz31410.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz31410.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: type mismatch: '*' cannot operate on 'float', 'int' + sk_FragColor+=(0), 1.*~2; + ^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz31469.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz31469.glsl index fc0880f8e5ee..465c813759ee 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz31469.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz31469.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: function 'n' can exit without returning a value +half n() {} + ^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz32156.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz32156.glsl index a577fcada1a2..82de61dc532b 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz32156.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz32156.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: array size must be an integer +int s[3456*3456*928*48*8*4*544*8*8*544*8*48*8*4*544*184-51488*48*544*5888*48*8*54*544*54*544*5888*48*8*54*544*54]; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz32587.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz32587.glsl index b5fc4743cad8..5f18b5f2fc27 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz32587.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz32587.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: unknown identifier 'x1' +const float x=1, _=x1; + ^^ error: 2: expected 'half', but found 'float' +half x=x*8; + ^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz32851.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz32851.glsl index 62e720c71456..2783329bae8a 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz32851.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz32851.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: division by zero +int v=6/int2(bool2(0)); + ^^^^^^^^^^^^^^^^ error: 1: expected 'int', but found 'int2' +int v=6/int2(bool2(0)); + ^^^^^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz36850.asm.frag b/third_party/skia/tests/sksl/errors/Ossfuzz36850.asm.frag index 64374ca89441..401b5230981d 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz36850.asm.frag +++ b/third_party/skia/tests/sksl/errors/Ossfuzz36850.asm.frag @@ -1,6 +1,6 @@ ### Compilation failed: error: 1: expected expression, but found ']' -error: 1: expected ']', but found ';' -error: 2: expected ';', but found 'void' -3 errors +T { int x; } f[]; + ^ +1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz37457.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz37457.glsl index 053c5023da52..357410136c0d 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz37457.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz37457.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: unknown identifier 'b' +float a[b]; + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz37465.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz37465.glsl index 561b73d06aea..d34bcbb08957 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz37465.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz37465.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: function 'f' can exit without returning a value +float f(const float x) { 5+x; } + ^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz37469.asm.frag b/third_party/skia/tests/sksl/errors/Ossfuzz37469.asm.frag index 4dc1ef8387a7..f9e45dd6cad4 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz37469.asm.frag +++ b/third_party/skia/tests/sksl/errors/Ossfuzz37469.asm.frag @@ -1,6 +1,6 @@ ### Compilation failed: error: 1: expected expression, but found ']' -error: 1: expected ']', but found ';' -error: 1: expected ';', but found 'void' -3 errors +k{int z;}m[];void main(){} + ^ +1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz37620.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz37620.glsl index cfd27358df22..7e27d7cf43cf 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz37620.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz37620.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected '(' to begin function call +void n() { for(;;exp); } + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz38106.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz38106.glsl index 79bf67a4709a..4345e43f284f 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz38106.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz38106.glsl @@ -1,6 +1,10 @@ ### Compilation failed: error: 1: expected identifier, but found ';' +half R = 0 .; + ^ error: 1: expected field name or swizzle mask after '.' +half R = 0 .; + ^^^^ error: 8: expected ';', but found '' 3 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz38107.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz38107.glsl index 5da5ebf2fc7f..3be45c4eb9c6 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz38107.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz38107.glsl @@ -1,4 +1,6 @@ ### Compilation failed: -error: 6: invalid token +error: 1: invalid token + +^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz38108.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz38108.glsl index 62df40c22783..8b3939279845 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz38108.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz38108.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: symbol 'a' was already defined +int a,a; + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz38140.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz38140.glsl index bb08dfec0b56..1acb4c055570 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz38140.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz38140.glsl @@ -1,7 +1,15 @@ ### Compilation failed: error: 1: function 'half4 blend_src_over(half4 src, half4 dst)' was already defined +half4 blend_src_over(half4 src, half4 dst) { + ^... error: 5: shader 'main' must be main() or main(float2) +half4 main(half4 src, half4 dst) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 6: unknown identifier 'src' + return blend_src_over(src, half4(1) - dst); + ^^^ error: 6: unknown identifier 'dst' + return blend_src_over(src, half4(1) - dst); + ^^^ 4 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz38560.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz38560.glsl index 42b75d743673..b7271f1e99cf 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz38560.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz38560.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: symbol 'r' was already defined +void n() { for(int r,r;;) int s; } + ^ error: 1: variable 's' must be created in a scope +void n() { for(int r,r;;) int s; } + ^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz39000.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz39000.glsl index 163e3d437ba7..c8e564fe1eb1 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz39000.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz39000.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: expected ';', but found '=' +G { int q=_; }; + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz40427.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz40427.glsl index 20125413f352..55a3735a39ed 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz40427.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz40427.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: integer is out of range for type 'uint': -1 +uint s, z = s.0s.0s - 1; + ^^^^^^^^^^^ error: 1: expected 'uint', but found 'uint2' +uint s, z = s.0s.0s - 1; + ^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz40428.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz40428.glsl index 564fd6de5bfa..0db80603d4cf 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz40428.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz40428.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: integer is out of range for type 'int': 2147483649 +int x[~2147483649]; + ^^^^^^^^^^ error: 1: array size must be an integer +int x[~2147483649]; + ^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz40479.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz40479.glsl index d4025948d469..398d57b1eb34 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz40479.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz40479.glsl @@ -1,8 +1,14 @@ ### Compilation failed: error: 1: integer is out of range for type 'int': 4016112253 +void[4016112253 .r1r + ^^^^^^^^^^ error: 1: array size must be an integer -error: 1: type 'void' may not be used in an array +void[4016112253 .r1r + ^^^^^^^^^^^^^^^ error: 10: expected ']', but found '' +error: 1: type 'void' may not be used in an array +void[4016112253 .r1r +^^^^^^^^^^^^^^^^^^^^... error: 10: expected an identifier, but found '' 5 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz40660.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz40660.glsl index 9fb063af2e5d..87a7396f5964 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz40660.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz40660.glsl @@ -1,9 +1,17 @@ ### Compilation failed: error: 1: unknown identifier 'f' +half i() { f[0 * (4, int4(3 `` -3689348940 + ^ error: 1: expected ')' to complete function arguments, but found '`' +half i() { f[0 * (4, int4(3 `` -3689348940 + ^ error: 1: expected ')' to complete expression, but found '`' +half i() { f[0 * (4, int4(3 `` -3689348940 + ^ error: 1: integer is out of range for type 'int': 3689348940 +half i() { f[0 * (4, int4(3 `` -3689348940 + ^^^^^^^^^^ error: 2: expected ']' to complete array access expression, but found '' error: 2: expected ';', but found '' 6 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz44045.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz44045.glsl index a288e4c05017..c4582de5056a 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz44045.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz44045.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: integer is out of range for type 'int': 3976000000 +int[int3(half3(int3(half3(662666666.*6))))[1]] x; + ^^^^^^^^^^^^^^^^^^^ error: 1: array size must be positive +int[int3(half3(int3(half3(662666666.*6))))[1]] x; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz44551.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz44551.glsl index 1b5b1cb4e2fb..76a3e5cd574e 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz44551.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz44551.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 6: type mismatch: '+' cannot operate on 'int', '' +x+x+x+x+x-+x+x+x+-x+x+++x-+ x+7+x +x-+x+x+x+++x-+x-+x+x* x+7;x+ + ^^... error: 8: expected ';', but found 'o' + void o(){{{{{{{{{{{{{{{{{{{{{{{{{ 3x+ + ^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz44555.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz44555.glsl index 4b73323932e2..5b76564a6b13 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz44555.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz44555.glsl @@ -1,7 +1,15 @@ ### Compilation failed: error: 2: unknown identifier 'intts' +switch(intts((qr-0))) {case 0:; + ^^^^^ error: 2: unknown identifier 'qr' +switch(intts((qr-0))) {case 0:; + ^^ error: 6: unknown identifier 'c' +;;c ;;/////a/a///ase 6{ + ^ error: 9: expected expression, but found '/=' +; ;/=;////6:; + ^^ 4 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz44557.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz44557.glsl index 1207028de0c0..ff0df6d473bb 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz44557.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz44557.glsl @@ -1,158 +1,468 @@ ### Compilation failed: error: 13: unknown identifier 'v2' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^^ error: 13: expected ')' to complete function arguments, but found 's' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: '' is not a valid parameter to 'int3' constructor + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^^^^^^^^^^^^^^^^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'z' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'rr' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 's' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'z' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'rr' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'b' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: unknown identifier 'r' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: expected ')' to complete function arguments, but found '{' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ error: 13: invalid arguments to 'int3[2]' constructor (expected 2 elements, but found 151) + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 13: expected ':', but found '{' + int3[2]?v2 = int3[2](int3(1, 2, 3), int3(4, 5, int s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r, s,r,b,r,r,r,b,r,r,r,r,r,b,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,b,r,r,r,r,r,r,r,z,r,b,r,r,r,r,r,r,b,r,r,r,r,r,r,rr,r,r,r,r,r,r,r,r,r,r,r,b,r,r,r,r,r,r,b,r,r{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,b,r,r4); + ^ 155 errors diff --git a/third_party/skia/tests/sksl/errors/Ossfuzz44559.glsl b/third_party/skia/tests/sksl/errors/Ossfuzz44559.glsl index af96fc798020..7145260ba424 100644 --- a/third_party/skia/tests/sksl/errors/Ossfuzz44559.glsl +++ b/third_party/skia/tests/sksl/errors/Ossfuzz44559.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: type mismatch: '<' cannot operate on 'int', '' +float an(){;an()<10&&9<1;an()<319&&10<1&&9<0&&9<0&&9<1;;;an()<4*10&&9<1;an()<3&&9<1;an()<339&&10<1&&9<0&&9<0&&9<1;;;an()<4*10&&9 2) break; } } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/StaticSwitchWithConditionalContinue.glsl b/third_party/skia/tests/sksl/errors/StaticSwitchWithConditionalContinue.glsl index aca3d8aabf88..c2c855f5267a 100644 --- a/third_party/skia/tests/sksl/errors/StaticSwitchWithConditionalContinue.glsl +++ b/third_party/skia/tests/sksl/errors/StaticSwitchWithConditionalContinue.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 3: static switch contains non-static conditional exit +void test_continue() { for (;;) { @switch (1) { case 1: if (testInputs.x > 3) continue; } } } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/StaticSwitchWithConditionalReturn.glsl b/third_party/skia/tests/sksl/errors/StaticSwitchWithConditionalReturn.glsl index aca3d8aabf88..2f133be5015b 100644 --- a/third_party/skia/tests/sksl/errors/StaticSwitchWithConditionalReturn.glsl +++ b/third_party/skia/tests/sksl/errors/StaticSwitchWithConditionalReturn.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 3: static switch contains non-static conditional exit +void test_return() { @switch (1) { case 1: if (testInputs.x > 1) return; } } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/StructMemberReservedName.glsl b/third_party/skia/tests/sksl/errors/StructMemberReservedName.glsl index 1fe3b9b21541..48278f5c7fca 100644 --- a/third_party/skia/tests/sksl/errors/StructMemberReservedName.glsl +++ b/third_party/skia/tests/sksl/errors/StructMemberReservedName.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: expected an identifier, but found type 'float' + float float; + ^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/StructNameWithoutIdentifier.glsl b/third_party/skia/tests/sksl/errors/StructNameWithoutIdentifier.glsl index 87fb7d2a9214..cda3d3a69f94 100644 --- a/third_party/skia/tests/sksl/errors/StructNameWithoutIdentifier.glsl +++ b/third_party/skia/tests/sksl/errors/StructNameWithoutIdentifier.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: expected an identifier, but found ';' +S; + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/StructTooDeeplyNested.glsl b/third_party/skia/tests/sksl/errors/StructTooDeeplyNested.glsl index e2dd5c7d670e..235e669b688f 100644 --- a/third_party/skia/tests/sksl/errors/StructTooDeeplyNested.glsl +++ b/third_party/skia/tests/sksl/errors/StructTooDeeplyNested.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 9: struct 'too_deep' is too deeply nested +struct too_deep { S8 x; }; +^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/StructVariableReservedName.glsl b/third_party/skia/tests/sksl/errors/StructVariableReservedName.glsl index 49164ae826b0..310a2c4dc885 100644 --- a/third_party/skia/tests/sksl/errors/StructVariableReservedName.glsl +++ b/third_party/skia/tests/sksl/errors/StructVariableReservedName.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 3: expected ';', but found 'float' +} float; + ^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/SwitchDuplicateCase.glsl b/third_party/skia/tests/sksl/errors/SwitchDuplicateCase.glsl index eb5a35b0629b..be9edf7c4cda 100644 --- a/third_party/skia/tests/sksl/errors/SwitchDuplicateCase.glsl +++ b/third_party/skia/tests/sksl/errors/SwitchDuplicateCase.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 5: duplicate case value '0' + case 0: + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/SwitchDuplicateDefault.glsl b/third_party/skia/tests/sksl/errors/SwitchDuplicateDefault.glsl index e9f5363ed995..d7b615c74c5e 100644 --- a/third_party/skia/tests/sksl/errors/SwitchDuplicateDefault.glsl +++ b/third_party/skia/tests/sksl/errors/SwitchDuplicateDefault.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 4: expected expression, but found 'default' + default: + ^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/SwitchTypes.glsl b/third_party/skia/tests/sksl/errors/SwitchTypes.glsl index fe77a5106ac6..0bc8d0229981 100644 --- a/third_party/skia/tests/sksl/errors/SwitchTypes.glsl +++ b/third_party/skia/tests/sksl/errors/SwitchTypes.glsl @@ -1,12 +1,30 @@ ### Compilation failed: error: 13: expected 'int', but found 'float2' +void switch_test_float2() { switch (float2(1)) { case 1: break; } } + ^^^^^^^^^ error: 14: expected 'int', but found 'float2' +void switch_case_float2() { switch (1) { case float2(1): break; } } + ^^^^^^^^^ error: 15: expected 'int', but found 'float' +void switch_test_const_float_var() { switch (cf) { case 1: break; } } + ^^ error: 16: expected 'int', but found 'float' +void switch_case_float() { switch (1) { case 0.5: break; } } + ^^^ error: 17: expected 'int', but found 'float' +void switch_case_integral_float() { switch (1) { case 1.0: break; } } + ^^^ error: 18: expected 'int', but found 'float' +void switch_case_uniform_float() { switch (1) { case uf: break; } } + ^^ error: 19: case value must be a constant integer +void switch_case_uniform_int() { switch (1) { case ui: break; } } + ^^ error: 20: expected 'int', but found 'float' +void switch_case_const_float_var() { switch (1) { case cf: break; } } + ^^ error: 21: case value must be a constant integer +void switch_case_int_var() { switch (1) { case i: break; } } + ^ 9 errors diff --git a/third_party/skia/tests/sksl/errors/SwitchWithContinueInside.glsl b/third_party/skia/tests/sksl/errors/SwitchWithContinueInside.glsl index 6103548dbc66..49c42d8e3052 100644 --- a/third_party/skia/tests/sksl/errors/SwitchWithContinueInside.glsl +++ b/third_party/skia/tests/sksl/errors/SwitchWithContinueInside.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 4: continue statement cannot be used in a switch + while (true) switch (value) { default: continue; } + ^^^^^^^^ error: 5: continue statement cannot be used in a switch + for (;;) switch (value) { case 5: continue; } + ^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/SwizzleConstantOutput.glsl b/third_party/skia/tests/sksl/errors/SwizzleConstantOutput.glsl index 3eb02b59526e..ce731a660877 100644 --- a/third_party/skia/tests/sksl/errors/SwizzleConstantOutput.glsl +++ b/third_party/skia/tests/sksl/errors/SwizzleConstantOutput.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 3: cannot assign to this expression + test.xyz0 = float4(1); + ^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/SwizzleDomain.glsl b/third_party/skia/tests/sksl/errors/SwizzleDomain.glsl index 30f38e532122..2ffe0ec0273c 100644 --- a/third_party/skia/tests/sksl/errors/SwizzleDomain.glsl +++ b/third_party/skia/tests/sksl/errors/SwizzleDomain.glsl @@ -1,19 +1,51 @@ ### Compilation failed: error: 5: invalid swizzle mask 'xyra' +float4 xyra() { return v.xyra; } + ^^^^^^ error: 6: invalid swizzle mask 'zxtq' +float4 zxtq() { return v.zxtq; } + ^^^^^^ error: 7: invalid swizzle mask 'wwRB' +float4 wwRB() { return v.wwRB; } + ^^^^^^ error: 9: invalid swizzle mask 'rgxy' +float4 rgxy() { return v.rgxy; } + ^^^^^^ error: 10: invalid swizzle mask 'bast' +float4 bast() { return v.bast; } + ^^^^^^ error: 11: invalid swizzle mask 'gbLT' +float4 gbLT() { return v.gbLT; } + ^^^^^^ error: 13: invalid swizzle mask 'sxyz' +float4 sxyz() { return v.sxyz; } + ^^^^^^ error: 14: invalid swizzle mask 'tpbb' +float4 tpbb() { return v.tpbb; } + ^^^^^^ error: 15: invalid swizzle mask 'qsTR' +float4 qsTR() { return v.qsTR; } + ^^^^^^ error: 17: invalid swizzle mask 'LTxy' +float4 LTxy() { return v.LTxy; } + ^^^^^^ error: 18: invalid swizzle mask 'TRba' +float4 TRba() { return v.TRba; } + ^^^^^^ error: 19: invalid swizzle mask 'RBst' +float4 RBst() { return v.RBst; } + ^^^^^^ error: 21: invalid swizzle mask 'xrsL' +float4 xrsL() { return v.xrsL; } + ^^^^^^ error: 22: invalid swizzle mask 'ygtT' +float4 ygtT() { return v.ygtT; } + ^^^^^^ error: 23: invalid swizzle mask 'zbpR' +float4 zbpR() { return v.zbpR; } + ^^^^^^ error: 24: invalid swizzle mask 'waqB' +float4 waqB() { return v.waqB; } + ^^^^^^ 16 errors diff --git a/third_party/skia/tests/sksl/errors/SwizzleMatrix.glsl b/third_party/skia/tests/sksl/errors/SwizzleMatrix.glsl index cbe9acc6ef84..b9dd5bd64b0d 100644 --- a/third_party/skia/tests/sksl/errors/SwizzleMatrix.glsl +++ b/third_party/skia/tests/sksl/errors/SwizzleMatrix.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 3: type 'float2x2' does not have a field named 'y' + float y = x.y; + ^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/SwizzleOnlyLiterals.glsl b/third_party/skia/tests/sksl/errors/SwizzleOnlyLiterals.glsl index 468985132d03..d75114b00c96 100644 --- a/third_party/skia/tests/sksl/errors/SwizzleOnlyLiterals.glsl +++ b/third_party/skia/tests/sksl/errors/SwizzleOnlyLiterals.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: swizzle must refer to base expression +void func() { float x = 1.0; x = x.0; } + ^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/SwizzleOutOfBounds.glsl b/third_party/skia/tests/sksl/errors/SwizzleOutOfBounds.glsl index dae2278238ac..dcd75f66590c 100644 --- a/third_party/skia/tests/sksl/errors/SwizzleOutOfBounds.glsl +++ b/third_party/skia/tests/sksl/errors/SwizzleOutOfBounds.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: invalid swizzle component 'z' +void func() { float3 test = float2(1).xyz; } + ^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/SwizzleTooManyComponents.glsl b/third_party/skia/tests/sksl/errors/SwizzleTooManyComponents.glsl index f66fc4a410d6..25e48d013f87 100644 --- a/third_party/skia/tests/sksl/errors/SwizzleTooManyComponents.glsl +++ b/third_party/skia/tests/sksl/errors/SwizzleTooManyComponents.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: too many components in swizzle mask +void func() { float4 test = float2(1).xxxxx; } + ^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/TernaryMismatch.glsl b/third_party/skia/tests/sksl/errors/TernaryMismatch.glsl index 39e846ea23bf..a1ca93f79565 100644 --- a/third_party/skia/tests/sksl/errors/TernaryMismatch.glsl +++ b/third_party/skia/tests/sksl/errors/TernaryMismatch.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: ternary operator result mismatch: 'bool', 'float' +void bool_or_float() { float x = 5 > 2 ? true : 1.0; } + ^^^^^^^^^^ error: 2: ternary operator result mismatch: 'float3', 'float' +void float3_or_float() { float x = 5 > 2 ? float3(1) : 1.0; } + ^^^^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/UnassignedOutParameter.glsl b/third_party/skia/tests/sksl/errors/UnassignedOutParameter.glsl index 453cd77d218a..9e1c8f9efe09 100644 --- a/third_party/skia/tests/sksl/errors/UnassignedOutParameter.glsl +++ b/third_party/skia/tests/sksl/errors/UnassignedOutParameter.glsl @@ -1,5 +1,9 @@ ### Compilation failed: error: 4: function 'testOut' never assigns a value to out parameter 'b' +void testOut(out float2 a, out float2 b, out float2 c) { a = float2(1); } + ^^^^^^^^^^^^ error: 4: function 'testOut' never assigns a value to out parameter 'c' +void testOut(out float2 a, out float2 b, out float2 c) { a = float2(1); } + ^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/UndeclaredFunction.glsl b/third_party/skia/tests/sksl/errors/UndeclaredFunction.glsl index 3caa0360170e..a295ee850bf6 100644 --- a/third_party/skia/tests/sksl/errors/UndeclaredFunction.glsl +++ b/third_party/skia/tests/sksl/errors/UndeclaredFunction.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: unknown identifier 'foo' +void func() { int x = foo(1); } + ^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/UndefinedFunction.asm.frag b/third_party/skia/tests/sksl/errors/UndefinedFunction.asm.frag index e4282ace8069..71873009f3de 100644 --- a/third_party/skia/tests/sksl/errors/UndefinedFunction.asm.frag +++ b/third_party/skia/tests/sksl/errors/UndefinedFunction.asm.frag @@ -1,4 +1,6 @@ ### Compilation failed: error: 3: function 'int foo(int x)' is not defined +void func() { int x = foo(1); } + ^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/UndefinedFunction.glsl b/third_party/skia/tests/sksl/errors/UndefinedFunction.glsl index e4282ace8069..71873009f3de 100644 --- a/third_party/skia/tests/sksl/errors/UndefinedFunction.glsl +++ b/third_party/skia/tests/sksl/errors/UndefinedFunction.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 3: function 'int foo(int x)' is not defined +void func() { int x = foo(1); } + ^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/UndefinedSymbol.glsl b/third_party/skia/tests/sksl/errors/UndefinedSymbol.glsl index 923a1790c586..232c5136a941 100644 --- a/third_party/skia/tests/sksl/errors/UndefinedSymbol.glsl +++ b/third_party/skia/tests/sksl/errors/UndefinedSymbol.glsl @@ -1,11 +1,27 @@ ### Compilation failed: error: 1: unknown identifier 'x' +void a() { x = float2(1); } + ^ error: 2: unknown identifier 'x' +void b() { float w = x; } + ^ error: 3: unknown identifier 'x' +void c() { float w = x, y; } + ^ error: 4: unknown identifier 'x' +void d() { float w = x, y = z; } + ^ error: 4: unknown identifier 'z' +void d() { float w = x, y = z; } + ^ error: 6: unknown identifier 'f' +float e = f, g = h; + ^ error: 6: unknown identifier 'h' +float e = f, g = h; + ^ error: 7: unknown identifier 'j' +float i = j, k; + ^ 8 errors diff --git a/third_party/skia/tests/sksl/errors/UniformVarWithInitializerExpression.glsl b/third_party/skia/tests/sksl/errors/UniformVarWithInitializerExpression.glsl index 37fe2c918329..9216e9ec6653 100644 --- a/third_party/skia/tests/sksl/errors/UniformVarWithInitializerExpression.glsl +++ b/third_party/skia/tests/sksl/errors/UniformVarWithInitializerExpression.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: 'uniform' variables cannot use initializer expressions +uniform float x = 1; + ^ 1 error diff --git a/third_party/skia/tests/sksl/errors/UnknownDivideByZero.glsl b/third_party/skia/tests/sksl/errors/UnknownDivideByZero.glsl index 507c894f3270..201f7e127420 100644 --- a/third_party/skia/tests/sksl/errors/UnknownDivideByZero.glsl +++ b/third_party/skia/tests/sksl/errors/UnknownDivideByZero.glsl @@ -1,19 +1,51 @@ ### Compilation failed: error: 5: division by zero + float x = unknownInput / 0; + ^^^^^^^^^^^^^^^^ error: 6: division by zero + x = (float2(unknownInput) / 0).x; + ^^^^^^^^^^^^^^^^^^^^^^^^ error: 7: division by zero + x = (float2(unknownInput) / float2(zero)).x; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 8: division by zero + x = (float2(unknownInput) / float2(unknownInput, 0)).x; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 9: division by zero + x = (float3(unknownInput) / float3(float(0), unknownInput, unknownInput)).x; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 10: division by zero + x = (float4(unknownInput) / float4(float2(unknownInput, float(zero)), 1, 1)).x; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 11: division by zero + x /= 0; + ^^^^^^ error: 13: division by zero + int y = int(unknownInput) / 0; + ^^^^^^^^^^^^^^^^^^^^^ error: 14: division by zero + y = int(unknownInput) % 0; + ^^^^^^^^^^^^^^^^^^^^^ error: 15: division by zero + y = (int2(unknownInput) / 0).x; + ^^^^^^^^^^^^^^^^^^^^^^ error: 16: division by zero + y = (int2(unknownInput) / int2(zero)).x; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 17: division by zero + y = (int2(unknownInput) / int2(unknownInput, 0)).x; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 18: division by zero + y = (int3(unknownInput) / int3(0, unknownInput, unknownInput)).x; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 19: division by zero + y = (int4(unknownInput) % int4(int2(unknownInput, int(zero)), 1, 1)).x; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 20: division by zero + y /= 0; + ^^^^^^ error: 21: division by zero + y %= 0; + ^^^^^^ 16 errors diff --git a/third_party/skia/tests/sksl/errors/UnscopedVariableInDoWhile.glsl b/third_party/skia/tests/sksl/errors/UnscopedVariableInDoWhile.glsl index 74112d3dc06e..8c39fb4c967f 100644 --- a/third_party/skia/tests/sksl/errors/UnscopedVariableInDoWhile.glsl +++ b/third_party/skia/tests/sksl/errors/UnscopedVariableInDoWhile.glsl @@ -1,4 +1,6 @@ ### Compilation failed: -error: 2: variable 'foo' must be created in a scope +error: 3: variable 'foo' must be created in a scope + int foo = 1, bar = foo; + ^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/UnscopedVariableInElse.glsl b/third_party/skia/tests/sksl/errors/UnscopedVariableInElse.glsl index 46151b76296c..71d0ca34bd6b 100644 --- a/third_party/skia/tests/sksl/errors/UnscopedVariableInElse.glsl +++ b/third_party/skia/tests/sksl/errors/UnscopedVariableInElse.glsl @@ -1,4 +1,6 @@ ### Compilation failed: -error: 2: variable 'color' must be created in a scope +error: 2: variable 'x' must be created in a scope + if (true) ; else half x = 1; + ^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/UnscopedVariableInFor.glsl b/third_party/skia/tests/sksl/errors/UnscopedVariableInFor.glsl index f443de71c0ea..852499af923b 100644 --- a/third_party/skia/tests/sksl/errors/UnscopedVariableInFor.glsl +++ b/third_party/skia/tests/sksl/errors/UnscopedVariableInFor.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: variable 's' must be created in a scope + for (int x=0; x<10; ++x) float s = sqrt(4); + ^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/UnscopedVariableInIf.glsl b/third_party/skia/tests/sksl/errors/UnscopedVariableInIf.glsl index 3ce2f16f512c..f3003e8ba5d6 100644 --- a/third_party/skia/tests/sksl/errors/UnscopedVariableInIf.glsl +++ b/third_party/skia/tests/sksl/errors/UnscopedVariableInIf.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: variable 'x' must be created in a scope + if (true) half4 x; + ^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/UnscopedVariableInWhile.glsl b/third_party/skia/tests/sksl/errors/UnscopedVariableInWhile.glsl index 77003b65ef0a..4df63ed6e7c2 100644 --- a/third_party/skia/tests/sksl/errors/UnscopedVariableInWhile.glsl +++ b/third_party/skia/tests/sksl/errors/UnscopedVariableInWhile.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: variable 'b' must be created in a scope + while (false) bool b; + ^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/UnsupportedGLSLIdentifiers.glsl b/third_party/skia/tests/sksl/errors/UnsupportedGLSLIdentifiers.glsl index d5b8e5a481a9..51eef615d594 100644 --- a/third_party/skia/tests/sksl/errors/UnsupportedGLSLIdentifiers.glsl +++ b/third_party/skia/tests/sksl/errors/UnsupportedGLSLIdentifiers.glsl @@ -1,7 +1,15 @@ ### Compilation failed: error: 1: 'gl_FragCoord' is a reserved word +void fragcoord() { float x = gl_FragCoord.x; } + ^^^^^^^^^^^^ error: 1: unknown identifier 'gl_FragCoord' +void fragcoord() { float x = gl_FragCoord.x; } + ^^^^^^^^^^^^ error: 2: 'gl_FragColor' is a reserved word +void fragcolor() { float r = gl_FragColor.r; } + ^^^^^^^^^^^^ error: 2: unknown identifier 'gl_FragColor' +void fragcolor() { float r = gl_FragColor.r; } + ^^^^^^^^^^^^ 4 errors diff --git a/third_party/skia/tests/sksl/errors/UsingInvalidValue.glsl b/third_party/skia/tests/sksl/errors/UsingInvalidValue.glsl index 7362c0e799f7..693d82d06488 100644 --- a/third_party/skia/tests/sksl/errors/UsingInvalidValue.glsl +++ b/third_party/skia/tests/sksl/errors/UsingInvalidValue.glsl @@ -1,11 +1,27 @@ ### Compilation failed: error: 3: expected '(' to begin constructor invocation +void expect_constructor_invocation() { int x = int; } + ^ error: 4: expected '(' to begin constructor invocation +void expect_constructor_invocation_extra_initializer() { int x, y = int; } + ^ error: 5: expected '(' to begin function call +void expect_function_call() { int x = func; } + ^ error: 6: expected '(' to begin function call +void expect_function_call_extra_initializer() { int x, y = func; } + ^ error: 8: expected '(' to begin constructor invocation +int g_expect_constructor_invocation = int; + ^ error: 9: expected '(' to begin constructor invocation +int g_expect_constructor_invocation_extra_initializer, ix = int; + ^ error: 10: expected '(' to begin function call +int g_expect_function_call = func; + ^ error: 11: expected '(' to begin function call +int g_expect_function_call_extra_initializer, iy = func; + ^ 8 errors diff --git a/third_party/skia/tests/sksl/errors/VectorIndexOutOfRange.glsl b/third_party/skia/tests/sksl/errors/VectorIndexOutOfRange.glsl index 95ec4e5539b6..e9b78a615fe7 100644 --- a/third_party/skia/tests/sksl/errors/VectorIndexOutOfRange.glsl +++ b/third_party/skia/tests/sksl/errors/VectorIndexOutOfRange.glsl @@ -1,24 +1,66 @@ ### Compilation failed: error: 1: index -1 out of range for 'half4' +void half4_neg1() { half4 h; half v = h[-1]; } + ^^ error: 6: index 4 out of range for 'half4' +void half4_4() { half4 h; half v = h[4]; } + ^ error: 7: index 1000000000 out of range for 'half4' +void half4_huge() { half4 h; half v = h[1000000000]; } + ^^^^^^^^^^ error: 9: index -1 out of range for 'half3' +void half3_neg1() { half3 h; half v = h[-1]; } + ^^ error: 13: index 3 out of range for 'half3' +void half3_3() { half3 h; half v = h[3]; } + ^ error: 14: index 4 out of range for 'half3' +void half3_4() { half3 h; half v = h[4]; } + ^ error: 15: index 1000000000 out of range for 'half3' +void half3_huge() { half3 h; half v = h[1000000000]; } + ^^^^^^^^^^ error: 17: index -1 out of range for 'half2' +void half2_neg1() { half2 h; half v = h[-1]; } + ^^ error: 20: index 2 out of range for 'half2' +void half2_2() { half2 h; half v = h[2]; } + ^ error: 21: index 3 out of range for 'half2' +void half2_3() { half2 h; half v = h[3]; } + ^ error: 22: index 4 out of range for 'half2' +void half2_4() { half2 h; half v = h[4]; } + ^ error: 23: index 1000000000 out of range for 'half2' +void half2_huge() { half2 h; half v = h[1000000000]; } + ^^^^^^^^^^ error: 25: index -1 out of range for 'half2' +void half2_neg1_constidx() { half2 h; const int INDEX = -1; half v = h[INDEX]; } + ^^^^^ error: 28: index 2 out of range for 'half2' +void half2_2_constidx() { half2 h; const int INDEX = 2; half v = h[INDEX]; } + ^^^^^ error: 29: index 1000000000 out of range for 'half2' +void half2_huge_constidx() { half2 h; const int INDEX = 1000000000; half v = h[INDEX]; } + ^^^^^ error: 31: index -1 out of range for 'half3' +void half3_neg1_constidx() { half3 h; const int INDEX = -1; half v = h[INDEX]; } + ^^^^^ error: 35: index 3 out of range for 'half3' +void half3_3_constidx() { half3 h; const int INDEX = 3; half v = h[INDEX]; } + ^^^^^ error: 36: index 1000000000 out of range for 'half3' +void half3_huge_constidx() { half3 h; const int INDEX = 1000000000; half v = h[INDEX]; } + ^^^^^ error: 38: index -1 out of range for 'half4' +void half4_neg1_constidx() { half4 h; const int INDEX = -1; half v = h[INDEX]; } + ^^^^^ error: 43: index 4 out of range for 'half4' +void half4_4_constidx() { half4 h; const int INDEX = 4; half v = h[INDEX]; } + ^^^^^ error: 44: index 1000000000 out of range for 'half4' +void half4_huge_constidx() { half4 h; const int INDEX = 1000000000; half v = h[INDEX]; } + ^^^^^ 21 errors diff --git a/third_party/skia/tests/sksl/errors/VectorInlinedIndexOutOfRange.glsl b/third_party/skia/tests/sksl/errors/VectorInlinedIndexOutOfRange.glsl index d00358d4ab33..73013e1e98ef 100644 --- a/third_party/skia/tests/sksl/errors/VectorInlinedIndexOutOfRange.glsl +++ b/third_party/skia/tests/sksl/errors/VectorInlinedIndexOutOfRange.glsl @@ -1,5 +1,9 @@ ### Compilation failed: -error: 6: index -1 out of range for 'int3' -error: 6: index 3 out of range for 'int3' +error: 11: index -1 out of range for 'int3' + int undefined = indexVector(-1) + indexVector(3); + ^^ +error: 11: index 3 out of range for 'int3' + int undefined = indexVector(-1) + indexVector(3); + ^ 2 errors diff --git a/third_party/skia/tests/sksl/errors/VectorSlice.glsl b/third_party/skia/tests/sksl/errors/VectorSlice.glsl index 99637924a399..33b801b667c3 100644 --- a/third_party/skia/tests/sksl/errors/VectorSlice.glsl +++ b/third_party/skia/tests/sksl/errors/VectorSlice.glsl @@ -1,12 +1,30 @@ ### Compilation failed: error: 7: 'half4' is not a valid parameter to 'half3' constructor; use '.xyz' instead +const half3 h3 = half3(h4); + ^^^^^^^^^ error: 8: 'half4' is not a valid parameter to 'half2' constructor; use '.xy' instead +const half2 h2 = half2(h4); + ^^^^^^^^^ error: 9: 'half4' is not a valid parameter to 'half' constructor; use '.x' instead +const half h = half (h4); + ^^^^^^^^^ error: 12: 'int4' is not a valid parameter to 'int3' constructor; use '.xyz' instead +const int3 i3 = int3(i4); + ^^^^^^^^ error: 13: 'int4' is not a valid parameter to 'int2' constructor; use '.xy' instead +const int2 i2 = int2(i4); + ^^^^^^^^ error: 14: 'int4' is not a valid parameter to 'int' constructor; use '.x' instead +const int i = int (i4); + ^^^^^^^^ error: 17: 'bool4' is not a valid parameter to 'bool3' constructor; use '.xyz' instead +const bool3 b3 = bool3(b4); + ^^^^^^^^^ error: 18: 'bool4' is not a valid parameter to 'bool2' constructor; use '.xy' instead +const bool2 b2 = bool2(b4); + ^^^^^^^^^ error: 19: 'bool4' is not a valid parameter to 'bool' constructor; use '.x' instead +const bool b = bool (b4); + ^^^^^^^^^ 9 errors diff --git a/third_party/skia/tests/sksl/errors/VertexEarlyReturn.glsl b/third_party/skia/tests/sksl/errors/VertexEarlyReturn.glsl index 8023605985cb..f5fad828b60f 100644 --- a/third_party/skia/tests/sksl/errors/VertexEarlyReturn.glsl +++ b/third_party/skia/tests/sksl/errors/VertexEarlyReturn.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 5: early returns from vertex programs are not supported + if (zoom == 1) return; + ^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/VoidConstructor.glsl b/third_party/skia/tests/sksl/errors/VoidConstructor.glsl index ed3eb611cdc5..88a325835c92 100644 --- a/third_party/skia/tests/sksl/errors/VoidConstructor.glsl +++ b/third_party/skia/tests/sksl/errors/VoidConstructor.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: cannot construct 'void' + void(); + ^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/errors/VoidInStruct.glsl b/third_party/skia/tests/sksl/errors/VoidInStruct.glsl index 00b5a92157a0..ec3aaee76431 100644 --- a/third_party/skia/tests/sksl/errors/VoidInStruct.glsl +++ b/third_party/skia/tests/sksl/errors/VoidInStruct.glsl @@ -1,7 +1,15 @@ ### Compilation failed: error: 5: type 'void' may not be used in an array + void b[2]; + ^^^^^^^^^ error: 6: type 'void' may not be used in an array + void[2] c; + ^^^^^^^ error: 7: type 'void' may not be used in an array + void[2] d[2]; + ^^^^^^^ error: 4: type 'void' is not permitted in a struct + void a; + ^^^^^^ 4 errors diff --git a/third_party/skia/tests/sksl/errors/VoidVariable.glsl b/third_party/skia/tests/sksl/errors/VoidVariable.glsl index da5226081fcd..04bdb7846deb 100644 --- a/third_party/skia/tests/sksl/errors/VoidVariable.glsl +++ b/third_party/skia/tests/sksl/errors/VoidVariable.glsl @@ -1,6 +1,12 @@ ### Compilation failed: error: 4: variables of type 'void' are not allowed +void a; +^^^^^^ error: 5: variables of type 'void' are not allowed +void b = func(); +^^^^^^^^^^^^^^^ error: 5: global variable initializer must be a constant expression +void b = func(); + ^^^^^^ 3 errors diff --git a/third_party/skia/tests/sksl/errors/WhileTypeMismatch.glsl b/third_party/skia/tests/sksl/errors/WhileTypeMismatch.glsl index 9823127cab9a..09a4635ff748 100644 --- a/third_party/skia/tests/sksl/errors/WhileTypeMismatch.glsl +++ b/third_party/skia/tests/sksl/errors/WhileTypeMismatch.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: expected 'bool', but found 'float3' + while (float3(1)) {} + ^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/folding/BoolFolding.glsl b/third_party/skia/tests/sksl/folding/BoolFolding.glsl index ff382db97054..c407c2275ac7 100644 --- a/third_party/skia/tests/sksl/folding/BoolFolding.glsl +++ b/third_party/skia/tests/sksl/folding/BoolFolding.glsl @@ -23,5 +23,7 @@ vec4 main() { bool _19_r = false; bool _20_s = true; bool _21_t = false; - return ((((((((((((((((((_0_a && !_1_b) && _2_c) && !_3_d) && _4_e) && !_5_f) && _6_g) && !_7_h) && _8_i) && !_9_j) && _12_k) && !_13_l) && _14_m) && !_15_n) && _16_o) && !_17_p) && _18_q) && !_19_r) && _20_s) && !_21_t ? colorGreen : colorRed; + bool _22_u = true; + bool _23_v = false; + return ((((((((((((((((((((_0_a && !_1_b) && _2_c) && !_3_d) && _4_e) && !_5_f) && _6_g) && !_7_h) && _8_i) && !_9_j) && _12_k) && !_13_l) && _14_m) && !_15_n) && _16_o) && !_17_p) && _18_q) && !_19_r) && _20_s) && !_21_t) && _22_u) && !_23_v ? colorGreen : colorRed; } diff --git a/third_party/skia/tests/sksl/folding/MatrixFoldingES2.glsl b/third_party/skia/tests/sksl/folding/MatrixFoldingES2.glsl index 7eb59df96737..a30a686bac31 100644 --- a/third_party/skia/tests/sksl/folding/MatrixFoldingES2.glsl +++ b/third_party/skia/tests/sksl/folding/MatrixFoldingES2.glsl @@ -20,6 +20,22 @@ bool test_matrix_op_matrix_half_b() { bool ok = true; return ok; } +bool test_vector_op_matrix_float_b() { + bool ok = true; + return ok; +} +bool test_vector_op_matrix_half_b() { + bool ok = true; + return ok; +} +bool test_matrix_op_vector_float_b() { + bool ok = true; + return ok; +} +bool test_matrix_op_vector_half_b() { + bool ok = true; + return ok; +} vec4 main() { bool _0_ok = true; _0_ok = _0_ok && mat3(unknownInput) == mat3(mat2(1.0)); @@ -29,15 +45,9 @@ vec4 main() { float _3_five = 5.0; _0_ok = _0_ok && mat3(1.0, 2.0, 3.0, 4.0, _3_five, 6.0, 7.0, 8.0, 9.0)[1] == vec3(4.0, _3_five, 6.0); } - { - float _4_num = 6.0; - _0_ok = _0_ok && mat3(1.0, 2.0, 3.0, 4.0, 5.0, _4_num++, 7.0, 8.0, 9.0)[0] == vec3(1.0, 2.0, 3.0); - _0_ok = _0_ok && mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, _4_num++, 8.0, 9.0)[1] == vec3(4.0, 5.0, 6.0); - _0_ok = _0_ok && mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, _4_num++, 9.0)[2] == vec3(7.0, 8.0, 9.0); - } { _0_ok = _0_ok && mat4(mat3(testMatrix2x2))[0] == vec4(1.0, 2.0, 0.0, 0.0); _0_ok = _0_ok && mat4(mat3(testMatrix2x2))[1] == vec4(3.0, 4.0, 0.0, 0.0); } - return (((_0_ok && test_matrix_op_scalar_float_b()) && test_matrix_op_scalar_half_b()) && test_matrix_op_matrix_float_b()) && test_matrix_op_matrix_half_b() ? colorGreen : colorRed; + return (((((((_0_ok && test_matrix_op_scalar_float_b()) && test_matrix_op_scalar_half_b()) && test_matrix_op_matrix_float_b()) && test_matrix_op_matrix_half_b()) && test_vector_op_matrix_float_b()) && test_vector_op_matrix_half_b()) && test_matrix_op_vector_float_b()) && test_matrix_op_vector_half_b() ? colorGreen : colorRed; } diff --git a/third_party/skia/tests/sksl/folding/MatrixFoldingES3.glsl b/third_party/skia/tests/sksl/folding/MatrixFoldingES3.glsl index 5b733ccea067..013658e9effb 100644 --- a/third_party/skia/tests/sksl/folding/MatrixFoldingES3.glsl +++ b/third_party/skia/tests/sksl/folding/MatrixFoldingES3.glsl @@ -14,7 +14,23 @@ bool test_matrix_op_matrix_half_b() { bool ok = true; return ok; } +bool test_vector_op_matrix_float_b() { + bool ok = true; + return ok; +} +bool test_vector_op_matrix_half_b() { + bool ok = true; + return ok; +} +bool test_matrix_op_vector_float_b() { + bool ok = true; + return ok; +} +bool test_matrix_op_vector_half_b() { + bool ok = true; + return ok; +} vec4 main() { bool _0_ok = true; - return ((_0_ok && test_eq_half_b()) && test_matrix_op_matrix_float_b()) && test_matrix_op_matrix_half_b() ? colorGreen : colorRed; + return ((((((_0_ok && test_eq_half_b()) && test_matrix_op_matrix_float_b()) && test_matrix_op_matrix_half_b()) && test_vector_op_matrix_float_b()) && test_vector_op_matrix_half_b()) && test_matrix_op_vector_float_b()) && test_matrix_op_vector_half_b() ? colorGreen : colorRed; } diff --git a/third_party/skia/tests/sksl/shared/Negation.glsl b/third_party/skia/tests/sksl/folding/Negation.glsl similarity index 100% rename from third_party/skia/tests/sksl/shared/Negation.glsl rename to third_party/skia/tests/sksl/folding/Negation.glsl diff --git a/third_party/skia/tests/sksl/folding/PreserveSideEffects.glsl b/third_party/skia/tests/sksl/folding/PreserveSideEffects.glsl new file mode 100644 index 000000000000..cff7fad2ba1b --- /dev/null +++ b/third_party/skia/tests/sksl/folding/PreserveSideEffects.glsl @@ -0,0 +1,34 @@ + +out vec4 sk_FragColor; +uniform vec4 colorGreen; +uniform vec4 colorRed; +bool test_matrix_b() { + bool ok = true; + float num = 0.0; + ok = ok && mat2(1.0, 2.0, 3.0, ++num)[0] == vec2(1.0, 2.0); + ok = ok && mat2(vec2(++num), 3.0, 4.0)[1] == vec2(3.0, 4.0); + ok = ok && mat3(vec3(1.0), vec3(++num), vec3(0.0))[0] == vec3(1.0); + ok = ok && mat3(vec3(1.0), vec3(++num), vec3(0.0))[2] == vec3(0.0); + ok = ok && mat3(vec3(++num), vec3(1.0), vec3(0.0))[1] == vec3(1.0); + ok = ok && mat3(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); + ok = ok && mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, num++, 8.0, 9.0)[1] == vec3(4.0, 5.0, 6.0); + ok = ok && mat4(vec4(++num), vec4(1.0), vec4(2.0), vec4(3.0))[1] == vec4(1.0); + ok = ok && mat4(vec4(1.0), vec4(++num), vec4(2.0), vec4(3.0))[2] == vec4(2.0); + ok = ok && mat4(vec4(1.0), vec4(1.0), vec4(++num), vec4(3.0))[3] == vec4(3.0); + ok = ok && mat4(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); + return ok && num == 11.0; +} +vec4 main() { + bool _0_ok = true; + float _1_num = 0.0; + _0_ok = _0_ok && vec2(++_1_num, 0.0).y == 0.0; + _0_ok = _0_ok && vec2(0.0, ++_1_num).x == 0.0; + _0_ok = _0_ok && vec3(++_1_num, 1.0, 0.0).yz == vec2(1.0, 0.0); + _0_ok = _0_ok && vec3(1.0, 0.0, ++_1_num).xy == vec2(1.0, 0.0); + _0_ok = _0_ok && vec3(++_1_num, 1.0, 0.0).yz == vec2(1.0, 0.0); + _0_ok = _0_ok && vec4(++_1_num, 1.0, 0.0, 0.0).yzw == vec3(1.0, 0.0, 0.0); + _0_ok = _0_ok && vec4(1.0, ++_1_num, 1.0, 0.0).x == 1.0; + _0_ok = _0_ok && vec4(1.0, 0.0, ++_1_num, 1.0).w == 1.0; + _0_ok = _0_ok && vec4(1.0, 0.0, 1.0, ++_1_num).xyz == vec3(1.0, 0.0, 1.0); + return (_0_ok && _1_num == 9.0) && test_matrix_b() ? colorGreen : colorRed; +} diff --git a/third_party/skia/tests/sksl/folding/TernaryFolding.glsl b/third_party/skia/tests/sksl/folding/TernaryFolding.glsl new file mode 100644 index 000000000000..e82b23b8a6fd --- /dev/null +++ b/third_party/skia/tests/sksl/folding/TernaryFolding.glsl @@ -0,0 +1,17 @@ + +out vec4 sk_FragColor; +uniform vec4 colorRed; +uniform vec4 colorGreen; +bool do_side_effect_bb(out bool x) { + x = true; + return false; +} +vec4 main() { + bool ok; + ok = true; + vec4 green = colorGreen; + vec4 red = colorRed; + bool param = false; + bool call = (do_side_effect_bb(param), true); + return (ok && param) && call ? green : red; +} diff --git a/third_party/skia/tests/sksl/glsl/LastFragColorWithoutCaps.glsl b/third_party/skia/tests/sksl/glsl/LastFragColorWithoutCaps.glsl index 59d172abb5ea..296d70688f59 100644 --- a/third_party/skia/tests/sksl/glsl/LastFragColorWithoutCaps.glsl +++ b/third_party/skia/tests/sksl/glsl/LastFragColorWithoutCaps.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: sk_LastFragColor requires framebuffer fetch support + sk_FragColor = sk_LastFragColor; + ^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/glsl/TextureSharpenVersion110.glsl b/third_party/skia/tests/sksl/glsl/TextureSharpenVersion110.glsl index 1921c10bdd61..7b0a3afbf274 100644 --- a/third_party/skia/tests/sksl/glsl/TextureSharpenVersion110.glsl +++ b/third_party/skia/tests/sksl/glsl/TextureSharpenVersion110.glsl @@ -2,9 +2,9 @@ uniform sampler1D one; uniform sampler2D two; void main() { - vec4 a = texture1D(one, 0.0, -0.5); - vec4 b = texture2D(two, vec2(0.0), -0.5); - vec4 c = texture1DProj(one, vec2(0.0), -0.5); - vec4 d = texture2DProj(two, vec3(0.0), -0.5); + vec4 a = texture1D(one, 0.0, -0.475); + vec4 b = texture2D(two, vec2(0.0), -0.475); + vec4 c = texture1DProj(one, vec2(0.0), -0.475); + vec4 d = texture2DProj(two, vec3(0.0), -0.475); gl_FragColor = vec4(a.x, b.x, c.x, d.x); } diff --git a/third_party/skia/tests/sksl/inliner/ExponentialGrowth.glsl b/third_party/skia/tests/sksl/inliner/ExponentialGrowth.glsl index 3d20a6b38cd5..168343843da2 100644 --- a/third_party/skia/tests/sksl/inliner/ExponentialGrowth.glsl +++ b/third_party/skia/tests/sksl/inliner/ExponentialGrowth.glsl @@ -1,6 +1,249 @@ out vec4 sk_FragColor; -void fn6_v() { +void fn7_v() { + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; @@ -244,8 +487,6 @@ void fn6_v() { sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; -} -void fn7_v() { sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; @@ -489,8 +730,6 @@ void fn7_v() { sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; - fn6_v(); - fn6_v(); } void fn8_v() { fn7_v(); diff --git a/third_party/skia/tests/sksl/inliner/ExponentialGrowthStandaloneSettings.glsl b/third_party/skia/tests/sksl/inliner/ExponentialGrowthStandaloneSettings.glsl index 3d20a6b38cd5..168343843da2 100644 --- a/third_party/skia/tests/sksl/inliner/ExponentialGrowthStandaloneSettings.glsl +++ b/third_party/skia/tests/sksl/inliner/ExponentialGrowthStandaloneSettings.glsl @@ -1,6 +1,249 @@ out vec4 sk_FragColor; -void fn6_v() { +void fn7_v() { + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; + sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; @@ -244,8 +487,6 @@ void fn6_v() { sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; -} -void fn7_v() { sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; @@ -489,8 +730,6 @@ void fn7_v() { sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; sk_FragColor.x = 0.0; - fn6_v(); - fn6_v(); } void fn8_v() { fn7_v(); diff --git a/third_party/skia/tests/sksl/inliner/InlinerCanBeDisabled.glsl b/third_party/skia/tests/sksl/inliner/InlinerCanBeDisabled.glsl index bc03088418d7..2b31990d2ae7 100644 --- a/third_party/skia/tests/sksl/inliner/InlinerCanBeDisabled.glsl +++ b/third_party/skia/tests/sksl/inliner/InlinerCanBeDisabled.glsl @@ -7,50 +7,35 @@ vec4 blend_src_in_h4h4h4(vec4 src, vec4 dst) { vec4 blend_dst_in_h4h4h4(vec4 src, vec4 dst) { return dst * src.w; } -vec3 blend_set_color_luminance_Qh3h3hh3(vec3 hueSatColor, float alpha, vec3 lumColor) { - float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor); - vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor; - float minComp = min(min(result.x, result.y), result.z); - float maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0 && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); - } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; - } +float blend_color_saturation_Qhh3(vec3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); } -vec3 blend_set_color_saturation_helper_Qh3h3h(vec3 minMidMax, float sat) { - if (minMidMax.x < minMidMax.z) { - return vec3(0.0, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat); - } else { - return vec3(0.0); +vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) { + float alpha = dst.w * src.w; + vec3 sda = src.xyz * dst.w; + vec3 dsa = dst.xyz * src.w; + vec3 l = flip ? dsa : sda; + vec3 r = flip ? sda : dsa; + if (saturate) { + float _2_mn = min(min(l.x, l.y), l.z); + float _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0); + r = dsa; } -} -vec3 blend_set_color_saturation_Qh3h3h3(vec3 hueLumColor, vec3 satColor) { - float sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z); - if (hueLumColor.x <= hueLumColor.y) { - if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor, sat); - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.xzy, sat).xzy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zxy, sat).yzx; - } - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yxz, sat).yxz; - } else if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yzx, sat).zxy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zyx, sat).zyx; + float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r); + vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l; + float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0 && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); + } + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); } + return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } vec4 blend_hue_h4h4h4(vec4 src, vec4 dst) { - float alpha = dst.w * src.w; - vec3 sda = src.xyz * dst.w; - vec3 dsa = dst.xyz * src.w; - return vec4((((blend_set_color_luminance_Qh3h3hh3(blend_set_color_saturation_Qh3h3h3(sda, dsa), alpha, dsa) + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); + return blend_hslc_h4h4h4bb(src, dst, false, true); } float singleuse_h() { return 1.25; diff --git a/third_party/skia/tests/sksl/inliner/InlinerCanBeDisabledStandaloneSettings.glsl b/third_party/skia/tests/sksl/inliner/InlinerCanBeDisabledStandaloneSettings.glsl index e4afa44c880b..0a33853ee8aa 100644 --- a/third_party/skia/tests/sksl/inliner/InlinerCanBeDisabledStandaloneSettings.glsl +++ b/third_party/skia/tests/sksl/inliner/InlinerCanBeDisabledStandaloneSettings.glsl @@ -1,50 +1,32 @@ out vec4 sk_FragColor; uniform vec4 color; -vec3 blend_set_color_luminance_Qh3h3hh3(vec3 hueSatColor, float alpha, vec3 lumColor) { - float lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), lumColor); - vec3 result = (lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), hueSatColor)) + hueSatColor; - float minComp = min(min(result.x, result.y), result.z); - float maxComp = max(max(result.x, result.y), result.z); - if (minComp < 0.0 && lum != minComp) { - result = lum + (result - lum) * (lum / (lum - minComp)); - } - if (maxComp > alpha && maxComp != lum) { - return lum + ((result - lum) * (alpha - lum)) / (maxComp - lum); - } else { - return result; - } +float blend_color_saturation_Qhh3(vec3 color) { + return max(max(color.x, color.y), color.z) - min(min(color.x, color.y), color.z); } -vec3 blend_set_color_saturation_helper_Qh3h3h(vec3 minMidMax, float sat) { - if (minMidMax.x < minMidMax.z) { - return vec3(0.0, (sat * (minMidMax.y - minMidMax.x)) / (minMidMax.z - minMidMax.x), sat); - } else { - return vec3(0.0); - } -} -vec3 blend_set_color_saturation_Qh3h3h3(vec3 hueLumColor, vec3 satColor) { - float sat = max(max(satColor.x, satColor.y), satColor.z) - min(min(satColor.x, satColor.y), satColor.z); - if (hueLumColor.x <= hueLumColor.y) { - if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor, sat); - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.xzy, sat).xzy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zxy, sat).yzx; - } - } else if (hueLumColor.x <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yxz, sat).yxz; - } else if (hueLumColor.y <= hueLumColor.z) { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.yzx, sat).zxy; - } else { - return blend_set_color_saturation_helper_Qh3h3h(hueLumColor.zyx, sat).zyx; - } -} -vec4 blend_hue_h4h4h4(vec4 src, vec4 dst) { +vec4 blend_hslc_h4h4h4bb(vec4 src, vec4 dst, bool flip, bool saturate) { float alpha = dst.w * src.w; vec3 sda = src.xyz * dst.w; vec3 dsa = dst.xyz * src.w; - return vec4((((blend_set_color_luminance_Qh3h3hh3(blend_set_color_saturation_Qh3h3h3(sda, dsa), alpha, dsa) + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); + vec3 l = flip ? dsa : sda; + vec3 r = flip ? sda : dsa; + if (saturate) { + float _2_mn = min(min(l.x, l.y), l.z); + float _3_mx = max(max(l.x, l.y), l.z); + l = _3_mx > _2_mn ? ((l - _2_mn) * blend_color_saturation_Qhh3(r)) / (_3_mx - _2_mn) : vec3(0.0); + r = dsa; + } + float _4_lum = dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), r); + vec3 _5_result = (_4_lum - dot(vec3(0.30000001192092896, 0.5899999737739563, 0.10999999940395355), l)) + l; + float _6_minComp = min(min(_5_result.x, _5_result.y), _5_result.z); + float _7_maxComp = max(max(_5_result.x, _5_result.y), _5_result.z); + if (_6_minComp < 0.0 && _4_lum != _6_minComp) { + _5_result = _4_lum + (_5_result - _4_lum) * (_4_lum / (_4_lum - _6_minComp)); + } + if (_7_maxComp > alpha && _7_maxComp != _4_lum) { + _5_result = _4_lum + ((_5_result - _4_lum) * (alpha - _4_lum)) / (_7_maxComp - _4_lum); + } + return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } void main() { float _1_c = color.x * color.y + color.z; @@ -52,6 +34,6 @@ void main() { sk_FragColor *= 1.25; sk_FragColor *= color.xxyy * color.w; sk_FragColor *= color.zzww * color.y; - sk_FragColor *= blend_hue_h4h4h4(color, color.wwww); - sk_FragColor *= blend_hue_h4h4h4(color, color.wzyx); + sk_FragColor *= blend_hslc_h4h4h4bb(color, color.wwww, false, true); + sk_FragColor *= blend_hslc_h4h4h4bb(color, color.wzyx, false, true); } diff --git a/third_party/skia/tests/sksl/intrinsics/AbsFloat.asm.frag b/third_party/skia/tests/sksl/intrinsics/AbsFloat.asm.frag index 65ec19a7d4bf..e89f2ab6eed3 100644 --- a/third_party/skia/tests/sksl/intrinsics/AbsFloat.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/AbsFloat.asm.frag @@ -39,8 +39,8 @@ OpDecorate %116 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/AbsInt.asm.frag b/third_party/skia/tests/sksl/intrinsics/AbsInt.asm.frag index 7db6b5d3ce8b..3cd96fac4b68 100644 --- a/third_party/skia/tests/sksl/intrinsics/AbsInt.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/AbsInt.asm.frag @@ -56,8 +56,8 @@ OpDecorate %139 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -111,8 +111,8 @@ OpBranchConditional %43 %44 %45 %51 = OpConvertFToS %int %50 %52 = OpCompositeExtract %float %49 1 %53 = OpConvertFToS %int %52 -%54 = OpCompositeConstruct %v2int %51 %53 -%46 = OpExtInst %v2int %1 SAbs %54 +%55 = OpCompositeConstruct %v2int %51 %53 +%46 = OpExtInst %v2int %1 SAbs %55 %56 = OpLoad %v4int %expected %57 = OpVectorShuffle %v2int %56 %56 0 1 %58 = OpIEqual %v2bool %46 %57 @@ -132,8 +132,8 @@ OpBranchConditional %61 %62 %63 %72 = OpConvertFToS %int %71 %73 = OpCompositeExtract %float %67 2 %74 = OpConvertFToS %int %73 -%75 = OpCompositeConstruct %v3int %70 %72 %74 -%64 = OpExtInst %v3int %1 SAbs %75 +%76 = OpCompositeConstruct %v3int %70 %72 %74 +%64 = OpExtInst %v3int %1 SAbs %76 %77 = OpLoad %v4int %expected %78 = OpVectorShuffle %v3int %77 %77 0 1 2 %79 = OpIEqual %v3bool %64 %78 diff --git a/third_party/skia/tests/sksl/intrinsics/Acos.asm.frag b/third_party/skia/tests/sksl/intrinsics/Acos.asm.frag index a38090d06b6e..c735d3fb8fec 100644 --- a/third_party/skia/tests/sksl/intrinsics/Acos.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Acos.asm.frag @@ -49,10 +49,8 @@ OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %94 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision -OpDecorate %103 RelaxedPrecision OpDecorate %105 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %119 RelaxedPrecision @@ -69,8 +67,8 @@ OpDecorate %120 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Acosh.asm.frag b/third_party/skia/tests/sksl/intrinsics/Acosh.asm.frag index 78071b592cc3..568155b04116 100644 --- a/third_party/skia/tests/sksl/intrinsics/Acosh.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Acosh.asm.frag @@ -49,10 +49,8 @@ OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %95 RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %98 RelaxedPrecision -OpDecorate %105 RelaxedPrecision OpDecorate %107 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %121 RelaxedPrecision @@ -69,8 +67,8 @@ OpDecorate %122 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/All.asm.frag b/third_party/skia/tests/sksl/intrinsics/All.asm.frag index 8d85cc665d2e..ebf157c16c57 100644 --- a/third_party/skia/tests/sksl/intrinsics/All.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/All.asm.frag @@ -63,8 +63,8 @@ OpDecorate %110 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Any.asm.frag b/third_party/skia/tests/sksl/intrinsics/Any.asm.frag index ee304a73eb97..acc4c115e6de 100644 --- a/third_party/skia/tests/sksl/intrinsics/Any.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Any.asm.frag @@ -63,8 +63,8 @@ OpDecorate %109 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Asin.asm.frag b/third_party/skia/tests/sksl/intrinsics/Asin.asm.frag index 4090e25be030..ad20e11e2d1a 100644 --- a/third_party/skia/tests/sksl/intrinsics/Asin.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Asin.asm.frag @@ -49,10 +49,8 @@ OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %94 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision -OpDecorate %103 RelaxedPrecision OpDecorate %105 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %119 RelaxedPrecision @@ -69,8 +67,8 @@ OpDecorate %120 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Asinh.asm.frag b/third_party/skia/tests/sksl/intrinsics/Asinh.asm.frag index 2daceaa1b0e4..4326f5be0560 100644 --- a/third_party/skia/tests/sksl/intrinsics/Asinh.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Asinh.asm.frag @@ -49,10 +49,8 @@ OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %95 RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %98 RelaxedPrecision -OpDecorate %105 RelaxedPrecision OpDecorate %107 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %121 RelaxedPrecision @@ -69,8 +67,8 @@ OpDecorate %122 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Atan.asm.frag b/third_party/skia/tests/sksl/intrinsics/Atan.asm.frag index 2fbc11addee8..66f37bec9525 100644 --- a/third_party/skia/tests/sksl/intrinsics/Atan.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Atan.asm.frag @@ -29,7 +29,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %constVal2 RelaxedPrecision -OpDecorate %29 RelaxedPrecision OpDecorate %36 RelaxedPrecision OpDecorate %37 RelaxedPrecision OpDecorate %40 RelaxedPrecision @@ -48,10 +47,8 @@ OpDecorate %84 RelaxedPrecision OpDecorate %85 RelaxedPrecision OpDecorate %91 RelaxedPrecision OpDecorate %92 RelaxedPrecision -OpDecorate %98 RelaxedPrecision OpDecorate %100 RelaxedPrecision OpDecorate %101 RelaxedPrecision -OpDecorate %107 RelaxedPrecision OpDecorate %109 RelaxedPrecision OpDecorate %117 RelaxedPrecision OpDecorate %118 RelaxedPrecision @@ -59,12 +56,10 @@ OpDecorate %120 RelaxedPrecision OpDecorate %121 RelaxedPrecision OpDecorate %128 RelaxedPrecision OpDecorate %129 RelaxedPrecision -OpDecorate %130 RelaxedPrecision OpDecorate %132 RelaxedPrecision OpDecorate %133 RelaxedPrecision OpDecorate %141 RelaxedPrecision OpDecorate %142 RelaxedPrecision -OpDecorate %143 RelaxedPrecision OpDecorate %145 RelaxedPrecision OpDecorate %146 RelaxedPrecision OpDecorate %154 RelaxedPrecision @@ -92,8 +87,8 @@ OpDecorate %201 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Atanh.asm.frag b/third_party/skia/tests/sksl/intrinsics/Atanh.asm.frag index cd8b4b0d998e..ad78b96a3525 100644 --- a/third_party/skia/tests/sksl/intrinsics/Atanh.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Atanh.asm.frag @@ -47,13 +47,10 @@ OpDecorate %70 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision -OpDecorate %87 RelaxedPrecision OpDecorate %89 RelaxedPrecision OpDecorate %90 RelaxedPrecision -OpDecorate %97 RelaxedPrecision OpDecorate %99 RelaxedPrecision OpDecorate %100 RelaxedPrecision -OpDecorate %107 RelaxedPrecision OpDecorate %109 RelaxedPrecision OpDecorate %120 RelaxedPrecision OpDecorate %123 RelaxedPrecision @@ -70,8 +67,8 @@ OpDecorate %124 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Ceil.asm.frag b/third_party/skia/tests/sksl/intrinsics/Ceil.asm.frag index 3da08ffb5d3a..9cd00eb4353c 100644 --- a/third_party/skia/tests/sksl/intrinsics/Ceil.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Ceil.asm.frag @@ -26,7 +26,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expected RelaxedPrecision -OpDecorate %31 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %38 RelaxedPrecision OpDecorate %39 RelaxedPrecision @@ -47,10 +46,8 @@ OpDecorate %72 RelaxedPrecision OpDecorate %73 RelaxedPrecision OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision -OpDecorate %86 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %94 RelaxedPrecision OpDecorate %95 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %102 RelaxedPrecision @@ -69,8 +66,8 @@ OpDecorate %116 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/ClampFloat.asm.frag b/third_party/skia/tests/sksl/intrinsics/ClampFloat.asm.frag index fb7b2575a702..ba055464e3c0 100644 --- a/third_party/skia/tests/sksl/intrinsics/ClampFloat.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/ClampFloat.asm.frag @@ -29,32 +29,22 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expectedA RelaxedPrecision -OpDecorate %31 RelaxedPrecision OpDecorate %clampLow RelaxedPrecision -OpDecorate %34 RelaxedPrecision OpDecorate %expectedB RelaxedPrecision -OpDecorate %38 RelaxedPrecision OpDecorate %clampHigh RelaxedPrecision -OpDecorate %42 RelaxedPrecision OpDecorate %49 RelaxedPrecision OpDecorate %50 RelaxedPrecision OpDecorate %51 RelaxedPrecision OpDecorate %52 RelaxedPrecision OpDecorate %58 RelaxedPrecision OpDecorate %59 RelaxedPrecision -OpDecorate %60 RelaxedPrecision -OpDecorate %61 RelaxedPrecision OpDecorate %62 RelaxedPrecision OpDecorate %63 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %73 RelaxedPrecision -OpDecorate %75 RelaxedPrecision -OpDecorate %76 RelaxedPrecision OpDecorate %77 RelaxedPrecision OpDecorate %78 RelaxedPrecision OpDecorate %87 RelaxedPrecision -OpDecorate %88 RelaxedPrecision -OpDecorate %89 RelaxedPrecision OpDecorate %90 RelaxedPrecision OpDecorate %99 RelaxedPrecision OpDecorate %100 RelaxedPrecision @@ -62,14 +52,10 @@ OpDecorate %101 RelaxedPrecision OpDecorate %102 RelaxedPrecision OpDecorate %109 RelaxedPrecision OpDecorate %110 RelaxedPrecision -OpDecorate %111 RelaxedPrecision -OpDecorate %112 RelaxedPrecision OpDecorate %113 RelaxedPrecision OpDecorate %114 RelaxedPrecision OpDecorate %122 RelaxedPrecision OpDecorate %123 RelaxedPrecision -OpDecorate %124 RelaxedPrecision -OpDecorate %125 RelaxedPrecision OpDecorate %126 RelaxedPrecision OpDecorate %127 RelaxedPrecision OpDecorate %135 RelaxedPrecision @@ -78,10 +64,8 @@ OpDecorate %137 RelaxedPrecision OpDecorate %138 RelaxedPrecision OpDecorate %144 RelaxedPrecision OpDecorate %145 RelaxedPrecision -OpDecorate %150 RelaxedPrecision OpDecorate %151 RelaxedPrecision OpDecorate %152 RelaxedPrecision -OpDecorate %158 RelaxedPrecision OpDecorate %159 RelaxedPrecision OpDecorate %160 RelaxedPrecision OpDecorate %166 RelaxedPrecision @@ -89,7 +73,6 @@ OpDecorate %172 RelaxedPrecision OpDecorate %173 RelaxedPrecision OpDecorate %178 RelaxedPrecision OpDecorate %179 RelaxedPrecision -OpDecorate %185 RelaxedPrecision OpDecorate %186 RelaxedPrecision OpDecorate %187 RelaxedPrecision OpDecorate %193 RelaxedPrecision @@ -108,8 +91,8 @@ OpDecorate %207 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -130,9 +113,15 @@ OpDecorate %207 RelaxedPrecision %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 +%60 = OpConstantComposite %v2float %float_n1 %float_n1 +%61 = OpConstantComposite %v2float %float_1 %float_1 %v2bool = OpTypeVector %bool 2 %v3float = OpTypeVector %float 3 +%75 = OpConstantComposite %v3float %float_n1 %float_n1 %float_n1 +%76 = OpConstantComposite %v3float %float_1 %float_1 %float_1 %v3bool = OpTypeVector %bool 3 +%88 = OpConstantComposite %v4float %float_n1 %float_n1 %float_n1 %float_n1 +%89 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %v4bool = OpTypeVector %bool 4 %111 = OpConstantComposite %v2float %float_n1 %float_n2 %112 = OpConstantComposite %v2float %float_1 %float_2 @@ -176,8 +165,6 @@ OpBranchConditional %53 %54 %55 %57 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %58 = OpLoad %v4float %57 %59 = OpVectorShuffle %v2float %58 %58 0 1 -%60 = OpCompositeConstruct %v2float %float_n1 %float_n1 -%61 = OpCompositeConstruct %v2float %float_1 %float_1 %56 = OpExtInst %v2float %1 FClamp %59 %60 %61 %62 = OpLoad %v4float %expectedA %63 = OpVectorShuffle %v2float %62 %62 0 1 @@ -192,8 +179,6 @@ OpBranchConditional %67 %68 %69 %71 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %72 = OpLoad %v4float %71 %73 = OpVectorShuffle %v3float %72 %72 0 1 2 -%75 = OpCompositeConstruct %v3float %float_n1 %float_n1 %float_n1 -%76 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1 %70 = OpExtInst %v3float %1 FClamp %73 %75 %76 %77 = OpLoad %v4float %expectedA %78 = OpVectorShuffle %v3float %77 %77 0 1 2 @@ -207,8 +192,6 @@ OpBranchConditional %82 %83 %84 %83 = OpLabel %86 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %87 = OpLoad %v4float %86 -%88 = OpCompositeConstruct %v4float %float_n1 %float_n1 %float_n1 %float_n1 -%89 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 %85 = OpExtInst %v4float %1 FClamp %87 %88 %89 %90 = OpLoad %v4float %expectedA %91 = OpFOrdEqual %v4bool %85 %90 diff --git a/third_party/skia/tests/sksl/intrinsics/ClampInt.asm.frag b/third_party/skia/tests/sksl/intrinsics/ClampInt.asm.frag index c3af233e9a82..4da66b4cf861 100644 --- a/third_party/skia/tests/sksl/intrinsics/ClampInt.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/ClampInt.asm.frag @@ -50,8 +50,8 @@ OpDecorate %216 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -75,9 +75,15 @@ OpDecorate %216 RelaxedPrecision %60 = OpConstantComposite %v4int %int_100 %int_200 %int_50 %int_300 %false = OpConstantFalse %bool %v2int = OpTypeVector %int 2 +%74 = OpConstantComposite %v2int %int_n100 %int_n100 +%75 = OpConstantComposite %v2int %int_100 %int_100 %v2bool = OpTypeVector %bool 2 %v3int = OpTypeVector %int 3 +%88 = OpConstantComposite %v3int %int_n100 %int_n100 %int_n100 +%89 = OpConstantComposite %v3int %int_100 %int_100 %int_100 %v3bool = OpTypeVector %bool 3 +%100 = OpConstantComposite %v4int %int_n100 %int_n100 %int_n100 %int_n100 +%101 = OpConstantComposite %v4int %int_100 %int_100 %int_100 %int_100 %v4bool = OpTypeVector %bool 4 %115 = OpConstantComposite %v2int %int_n100 %int_0 %123 = OpConstantComposite %v3int %int_n100 %int_0 %int_75 @@ -134,8 +140,6 @@ OpBranchConditional %67 %68 %69 %68 = OpLabel %71 = OpLoad %v4int %intValues %72 = OpVectorShuffle %v2int %71 %71 0 1 -%74 = OpCompositeConstruct %v2int %int_n100 %int_n100 -%75 = OpCompositeConstruct %v2int %int_100 %int_100 %70 = OpExtInst %v2int %1 SClamp %72 %74 %75 %76 = OpLoad %v4int %expectedA %77 = OpVectorShuffle %v2int %76 %76 0 1 @@ -149,8 +153,6 @@ OpBranchConditional %81 %82 %83 %82 = OpLabel %85 = OpLoad %v4int %intValues %86 = OpVectorShuffle %v3int %85 %85 0 1 2 -%88 = OpCompositeConstruct %v3int %int_n100 %int_n100 %int_n100 -%89 = OpCompositeConstruct %v3int %int_100 %int_100 %int_100 %84 = OpExtInst %v3int %1 SClamp %86 %88 %89 %90 = OpLoad %v4int %expectedA %91 = OpVectorShuffle %v3int %90 %90 0 1 2 @@ -163,8 +165,6 @@ OpSelectionMerge %97 None OpBranchConditional %95 %96 %97 %96 = OpLabel %99 = OpLoad %v4int %intValues -%100 = OpCompositeConstruct %v4int %int_n100 %int_n100 %int_n100 %int_n100 -%101 = OpCompositeConstruct %v4int %int_100 %int_100 %int_100 %int_100 %98 = OpExtInst %v4int %1 SClamp %99 %100 %101 %102 = OpLoad %v4int %expectedA %103 = OpIEqual %v4bool %98 %102 diff --git a/third_party/skia/tests/sksl/intrinsics/ClampUInt.asm.frag b/third_party/skia/tests/sksl/intrinsics/ClampUInt.asm.frag index 93160538c7b1..6967daa8b1af 100644 --- a/third_party/skia/tests/sksl/intrinsics/ClampUInt.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/ClampUInt.asm.frag @@ -31,7 +31,6 @@ OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %34 RelaxedPrecision OpDecorate %36 RelaxedPrecision -OpDecorate %38 RelaxedPrecision OpDecorate %39 RelaxedPrecision OpDecorate %40 RelaxedPrecision OpDecorate %42 RelaxedPrecision @@ -52,8 +51,8 @@ OpDecorate %221 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -65,6 +64,7 @@ OpDecorate %221 RelaxedPrecision %int_0 = OpConstant %int 0 %float_100 = OpConstant %float 100 %float_200 = OpConstant %float 200 +%38 = OpConstantComposite %v4float %float_200 %float_200 %float_200 %float_200 %uint_100 = OpConstant %uint 100 %uint_200 = OpConstant %uint 200 %uint_275 = OpConstant %uint 275 @@ -80,9 +80,15 @@ OpDecorate %221 RelaxedPrecision %65 = OpConstantComposite %v4uint %uint_300 %uint_400 %uint_250 %uint_500 %false = OpConstantFalse %bool %v2uint = OpTypeVector %uint 2 +%79 = OpConstantComposite %v2uint %uint_100 %uint_100 +%80 = OpConstantComposite %v2uint %uint_300 %uint_300 %v2bool = OpTypeVector %bool 2 %v3uint = OpTypeVector %uint 3 +%93 = OpConstantComposite %v3uint %uint_100 %uint_100 %uint_100 +%94 = OpConstantComposite %v3uint %uint_300 %uint_300 %uint_300 %v3bool = OpTypeVector %bool 3 +%105 = OpConstantComposite %v4uint %uint_100 %uint_100 %uint_100 %uint_100 +%106 = OpConstantComposite %v4uint %uint_300 %uint_300 %uint_300 %uint_300 %v4bool = OpTypeVector %bool 4 %120 = OpConstantComposite %v2uint %uint_100 %uint_200 %128 = OpConstantComposite %v3uint %uint_100 %uint_200 %uint_275 @@ -114,7 +120,6 @@ OpFunctionEnd %30 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %34 = OpLoad %v4float %30 %36 = OpVectorTimesScalar %v4float %34 %float_100 -%38 = OpCompositeConstruct %v4float %float_200 %float_200 %float_200 %float_200 %39 = OpFAdd %v4float %36 %38 %40 = OpCompositeExtract %float %39 0 %41 = OpConvertFToU %uint %40 @@ -141,8 +146,6 @@ OpBranchConditional %72 %73 %74 %73 = OpLabel %76 = OpLoad %v4uint %uintValues %77 = OpVectorShuffle %v2uint %76 %76 0 1 -%79 = OpCompositeConstruct %v2uint %uint_100 %uint_100 -%80 = OpCompositeConstruct %v2uint %uint_300 %uint_300 %75 = OpExtInst %v2uint %1 UClamp %77 %79 %80 %81 = OpLoad %v4uint %expectedA %82 = OpVectorShuffle %v2uint %81 %81 0 1 @@ -156,8 +159,6 @@ OpBranchConditional %86 %87 %88 %87 = OpLabel %90 = OpLoad %v4uint %uintValues %91 = OpVectorShuffle %v3uint %90 %90 0 1 2 -%93 = OpCompositeConstruct %v3uint %uint_100 %uint_100 %uint_100 -%94 = OpCompositeConstruct %v3uint %uint_300 %uint_300 %uint_300 %89 = OpExtInst %v3uint %1 UClamp %91 %93 %94 %95 = OpLoad %v4uint %expectedA %96 = OpVectorShuffle %v3uint %95 %95 0 1 2 @@ -170,8 +171,6 @@ OpSelectionMerge %102 None OpBranchConditional %100 %101 %102 %101 = OpLabel %104 = OpLoad %v4uint %uintValues -%105 = OpCompositeConstruct %v4uint %uint_100 %uint_100 %uint_100 %uint_100 -%106 = OpCompositeConstruct %v4uint %uint_300 %uint_300 %uint_300 %uint_300 %103 = OpExtInst %v4uint %1 UClamp %104 %105 %106 %107 = OpLoad %v4uint %expectedA %108 = OpIEqual %v4bool %103 %107 diff --git a/third_party/skia/tests/sksl/intrinsics/Cos.asm.frag b/third_party/skia/tests/sksl/intrinsics/Cos.asm.frag index 67fb2e6bdbbe..04244688f17d 100644 --- a/third_party/skia/tests/sksl/intrinsics/Cos.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Cos.asm.frag @@ -47,13 +47,10 @@ OpDecorate %70 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %82 RelaxedPrecision -OpDecorate %87 RelaxedPrecision OpDecorate %89 RelaxedPrecision OpDecorate %90 RelaxedPrecision -OpDecorate %96 RelaxedPrecision OpDecorate %98 RelaxedPrecision OpDecorate %99 RelaxedPrecision -OpDecorate %105 RelaxedPrecision OpDecorate %107 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %121 RelaxedPrecision @@ -70,8 +67,8 @@ OpDecorate %122 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Cosh.asm.frag b/third_party/skia/tests/sksl/intrinsics/Cosh.asm.frag index 67f0d9d0e57a..686f523dec7e 100644 --- a/third_party/skia/tests/sksl/intrinsics/Cosh.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Cosh.asm.frag @@ -47,13 +47,10 @@ OpDecorate %70 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %82 RelaxedPrecision -OpDecorate %87 RelaxedPrecision OpDecorate %89 RelaxedPrecision OpDecorate %90 RelaxedPrecision -OpDecorate %96 RelaxedPrecision OpDecorate %98 RelaxedPrecision OpDecorate %99 RelaxedPrecision -OpDecorate %105 RelaxedPrecision OpDecorate %107 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %121 RelaxedPrecision @@ -70,8 +67,8 @@ OpDecorate %122 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Cross.asm.frag b/third_party/skia/tests/sksl/intrinsics/Cross.asm.frag index 4e093cb3c581..2983b43704fe 100644 --- a/third_party/skia/tests/sksl/intrinsics/Cross.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Cross.asm.frag @@ -35,10 +35,8 @@ OpDecorate %32 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %35 RelaxedPrecision -OpDecorate %60 RelaxedPrecision OpDecorate %61 RelaxedPrecision OpDecorate %62 RelaxedPrecision -OpDecorate %66 RelaxedPrecision OpDecorate %67 RelaxedPrecision OpDecorate %68 RelaxedPrecision %float = OpTypeFloat 32 @@ -62,8 +60,8 @@ OpDecorate %68 RelaxedPrecision %int_2 = OpConstant %int 2 %int_3 = OpConstant %int 3 %float_12 = OpConstant %float 12 -%v3float = OpTypeVector %float 3 %float_n8 = OpConstant %float -8 +%v3float = OpTypeVector %float 3 %60 = OpConstantComposite %v3float %float_n8 %float_n8 %float_12 %float_9 = OpConstant %float 9 %float_n18 = OpConstant %float -18 diff --git a/third_party/skia/tests/sksl/intrinsics/CrossNoInline.asm.frag b/third_party/skia/tests/sksl/intrinsics/CrossNoInline.asm.frag index a26e867d46c7..e743d0081507 100644 --- a/third_party/skia/tests/sksl/intrinsics/CrossNoInline.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/CrossNoInline.asm.frag @@ -51,7 +51,7 @@ OpDecorate %57 RelaxedPrecision %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer %12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %_ptr_Function_v2float = OpTypePointer Function %v2float -%16 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float +%17 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float %void = OpTypeVoid %47 = OpTypeFunction %void %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float @@ -61,7 +61,7 @@ OpDecorate %57 RelaxedPrecision %_ptr_Output_float = OpTypePointer Output %float %int_2 = OpConstant %int 2 %int_3 = OpConstant %int 3 -%cross_length_2d_hh2h2 = OpFunction %float None %16 +%cross_length_2d_hh2h2 = OpFunction %float None %17 %18 = OpFunctionParameter %_ptr_Function_v2float %19 = OpFunctionParameter %_ptr_Function_v2float %20 = OpLabel @@ -78,7 +78,7 @@ OpDecorate %57 RelaxedPrecision %31 = OpFSub %float %25 %30 OpReturnValue %31 OpFunctionEnd -%cross_length_2d_ff2f2 = OpFunction %float None %16 +%cross_length_2d_ff2f2 = OpFunction %float None %17 %32 = OpFunctionParameter %_ptr_Function_v2float %33 = OpFunctionParameter %_ptr_Function_v2float %34 = OpLabel diff --git a/third_party/skia/tests/sksl/intrinsics/DFdx.asm.frag b/third_party/skia/tests/sksl/intrinsics/DFdx.asm.frag index ff5be54e584f..e698ca7f7775 100644 --- a/third_party/skia/tests/sksl/intrinsics/DFdx.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/DFdx.asm.frag @@ -26,7 +26,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expected RelaxedPrecision -OpDecorate %28 RelaxedPrecision OpDecorate %30 RelaxedPrecision OpDecorate %35 RelaxedPrecision OpDecorate %36 RelaxedPrecision @@ -60,8 +59,8 @@ OpDecorate %114 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/DFdy.asm.frag b/third_party/skia/tests/sksl/intrinsics/DFdy.asm.frag index 299abfff050c..2f24fe59a28c 100644 --- a/third_party/skia/tests/sksl/intrinsics/DFdy.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/DFdy.asm.frag @@ -28,7 +28,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %11 Binding 0 OpDecorate %11 DescriptorSet 0 OpDecorate %expected RelaxedPrecision -OpDecorate %29 RelaxedPrecision OpDecorate %36 RelaxedPrecision OpDecorate %37 RelaxedPrecision OpDecorate %43 RelaxedPrecision diff --git a/third_party/skia/tests/sksl/intrinsics/Degrees.asm.frag b/third_party/skia/tests/sksl/intrinsics/Degrees.asm.frag index e89c12054cdc..44587caf356e 100644 --- a/third_party/skia/tests/sksl/intrinsics/Degrees.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Degrees.asm.frag @@ -47,13 +47,10 @@ OpDecorate %70 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %82 RelaxedPrecision -OpDecorate %88 RelaxedPrecision OpDecorate %90 RelaxedPrecision OpDecorate %91 RelaxedPrecision -OpDecorate %98 RelaxedPrecision OpDecorate %100 RelaxedPrecision OpDecorate %101 RelaxedPrecision -OpDecorate %108 RelaxedPrecision OpDecorate %110 RelaxedPrecision OpDecorate %121 RelaxedPrecision OpDecorate %124 RelaxedPrecision @@ -70,8 +67,8 @@ OpDecorate %125 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Distance.asm.frag b/third_party/skia/tests/sksl/intrinsics/Distance.asm.frag index c01bee1119e2..ffc6a3fc3860 100644 --- a/third_party/skia/tests/sksl/intrinsics/Distance.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Distance.asm.frag @@ -29,7 +29,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expected RelaxedPrecision -OpDecorate %31 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %38 RelaxedPrecision OpDecorate %39 RelaxedPrecision @@ -79,8 +78,8 @@ OpDecorate %119 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Dot.asm.frag b/third_party/skia/tests/sksl/intrinsics/Dot.asm.frag index ae337ab799ac..9e5f1d01092c 100644 --- a/third_party/skia/tests/sksl/intrinsics/Dot.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Dot.asm.frag @@ -29,7 +29,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expected RelaxedPrecision -OpDecorate %32 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %39 RelaxedPrecision OpDecorate %40 RelaxedPrecision @@ -79,8 +78,8 @@ OpDecorate %120 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Exp.asm.frag b/third_party/skia/tests/sksl/intrinsics/Exp.asm.frag index 76e4ec01f24c..52748569d6b7 100644 --- a/third_party/skia/tests/sksl/intrinsics/Exp.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Exp.asm.frag @@ -47,13 +47,10 @@ OpDecorate %70 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %82 RelaxedPrecision -OpDecorate %87 RelaxedPrecision OpDecorate %89 RelaxedPrecision OpDecorate %90 RelaxedPrecision -OpDecorate %96 RelaxedPrecision OpDecorate %98 RelaxedPrecision OpDecorate %99 RelaxedPrecision -OpDecorate %105 RelaxedPrecision OpDecorate %107 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %121 RelaxedPrecision @@ -70,8 +67,8 @@ OpDecorate %122 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Exp2.asm.frag b/third_party/skia/tests/sksl/intrinsics/Exp2.asm.frag index 3456841afa9d..1e27c4f686eb 100644 --- a/third_party/skia/tests/sksl/intrinsics/Exp2.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Exp2.asm.frag @@ -47,13 +47,10 @@ OpDecorate %70 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %82 RelaxedPrecision -OpDecorate %88 RelaxedPrecision OpDecorate %90 RelaxedPrecision OpDecorate %91 RelaxedPrecision -OpDecorate %98 RelaxedPrecision OpDecorate %100 RelaxedPrecision OpDecorate %101 RelaxedPrecision -OpDecorate %108 RelaxedPrecision OpDecorate %110 RelaxedPrecision OpDecorate %121 RelaxedPrecision OpDecorate %124 RelaxedPrecision @@ -70,8 +67,8 @@ OpDecorate %125 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/FaceForward.asm.frag b/third_party/skia/tests/sksl/intrinsics/FaceForward.asm.frag index b5f8ae0cfd6e..76454594291c 100644 --- a/third_party/skia/tests/sksl/intrinsics/FaceForward.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/FaceForward.asm.frag @@ -33,9 +33,7 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expectedPos RelaxedPrecision -OpDecorate %32 RelaxedPrecision OpDecorate %expectedNeg RelaxedPrecision -OpDecorate %38 RelaxedPrecision OpDecorate %40 RelaxedPrecision OpDecorate %45 RelaxedPrecision OpDecorate %46 RelaxedPrecision @@ -70,10 +68,8 @@ OpDecorate %103 RelaxedPrecision OpDecorate %104 RelaxedPrecision OpDecorate %111 RelaxedPrecision OpDecorate %112 RelaxedPrecision -OpDecorate %117 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %119 RelaxedPrecision -OpDecorate %125 RelaxedPrecision OpDecorate %126 RelaxedPrecision OpDecorate %127 RelaxedPrecision OpDecorate %133 RelaxedPrecision @@ -92,8 +88,8 @@ OpDecorate %147 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Floor.asm.frag b/third_party/skia/tests/sksl/intrinsics/Floor.asm.frag index 8f34e49505cb..e9f72f314aa7 100644 --- a/third_party/skia/tests/sksl/intrinsics/Floor.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Floor.asm.frag @@ -26,7 +26,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expected RelaxedPrecision -OpDecorate %30 RelaxedPrecision OpDecorate %32 RelaxedPrecision OpDecorate %37 RelaxedPrecision OpDecorate %38 RelaxedPrecision @@ -47,10 +46,8 @@ OpDecorate %71 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %80 RelaxedPrecision -OpDecorate %85 RelaxedPrecision OpDecorate %86 RelaxedPrecision OpDecorate %87 RelaxedPrecision -OpDecorate %93 RelaxedPrecision OpDecorate %94 RelaxedPrecision OpDecorate %95 RelaxedPrecision OpDecorate %101 RelaxedPrecision @@ -69,8 +66,8 @@ OpDecorate %115 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Fract.asm.frag b/third_party/skia/tests/sksl/intrinsics/Fract.asm.frag index 8d85f28b7016..8a84fd1b8f56 100644 --- a/third_party/skia/tests/sksl/intrinsics/Fract.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Fract.asm.frag @@ -47,13 +47,10 @@ OpDecorate %70 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision -OpDecorate %87 RelaxedPrecision OpDecorate %89 RelaxedPrecision OpDecorate %90 RelaxedPrecision -OpDecorate %97 RelaxedPrecision OpDecorate %99 RelaxedPrecision OpDecorate %100 RelaxedPrecision -OpDecorate %107 RelaxedPrecision OpDecorate %109 RelaxedPrecision OpDecorate %120 RelaxedPrecision OpDecorate %123 RelaxedPrecision @@ -70,8 +67,8 @@ OpDecorate %124 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Frexp.asm.frag b/third_party/skia/tests/sksl/intrinsics/Frexp.asm.frag index 52756abdf284..50fa60147e43 100644 --- a/third_party/skia/tests/sksl/intrinsics/Frexp.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Frexp.asm.frag @@ -44,8 +44,8 @@ OpDecorate %135 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Fwidth.asm.frag b/third_party/skia/tests/sksl/intrinsics/Fwidth.asm.frag index 8f77751b4bce..f7915d9fe1d2 100644 --- a/third_party/skia/tests/sksl/intrinsics/Fwidth.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Fwidth.asm.frag @@ -26,7 +26,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expected RelaxedPrecision -OpDecorate %28 RelaxedPrecision OpDecorate %30 RelaxedPrecision OpDecorate %35 RelaxedPrecision OpDecorate %36 RelaxedPrecision @@ -60,8 +59,8 @@ OpDecorate %135 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Inverse.asm.frag b/third_party/skia/tests/sksl/intrinsics/Inverse.asm.frag index e65477de7c85..1a5127f67339 100644 --- a/third_party/skia/tests/sksl/intrinsics/Inverse.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Inverse.asm.frag @@ -25,44 +25,16 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %inv2x2 RelaxedPrecision -OpDecorate %33 RelaxedPrecision -OpDecorate %34 RelaxedPrecision -OpDecorate %35 RelaxedPrecision OpDecorate %inv3x3 RelaxedPrecision -OpDecorate %48 RelaxedPrecision -OpDecorate %49 RelaxedPrecision -OpDecorate %50 RelaxedPrecision -OpDecorate %51 RelaxedPrecision OpDecorate %inv4x4 RelaxedPrecision -OpDecorate %60 RelaxedPrecision -OpDecorate %61 RelaxedPrecision -OpDecorate %62 RelaxedPrecision -OpDecorate %63 RelaxedPrecision -OpDecorate %64 RelaxedPrecision OpDecorate %66 RelaxedPrecision -OpDecorate %67 RelaxedPrecision -OpDecorate %68 RelaxedPrecision -OpDecorate %69 RelaxedPrecision -OpDecorate %82 RelaxedPrecision -OpDecorate %83 RelaxedPrecision -OpDecorate %84 RelaxedPrecision -OpDecorate %85 RelaxedPrecision -OpDecorate %86 RelaxedPrecision -OpDecorate %105 RelaxedPrecision -OpDecorate %106 RelaxedPrecision -OpDecorate %107 RelaxedPrecision -OpDecorate %108 RelaxedPrecision -OpDecorate %109 RelaxedPrecision -OpDecorate %110 RelaxedPrecision -OpDecorate %134 RelaxedPrecision -OpDecorate %139 RelaxedPrecision -OpDecorate %140 RelaxedPrecision -OpDecorate %141 RelaxedPrecision -OpDecorate %142 RelaxedPrecision -OpDecorate %143 RelaxedPrecision -OpDecorate %168 RelaxedPrecision -OpDecorate %171 RelaxedPrecision -OpDecorate %172 RelaxedPrecision +OpDecorate %77 RelaxedPrecision +OpDecorate %93 RelaxedPrecision +OpDecorate %113 RelaxedPrecision +OpDecorate %122 RelaxedPrecision +OpDecorate %147 RelaxedPrecision +OpDecorate %150 RelaxedPrecision +OpDecorate %151 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -75,8 +47,8 @@ OpDecorate %172 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -86,6 +58,9 @@ OpDecorate %172 RelaxedPrecision %float_1 = OpConstant %float 1 %float_1_5 = OpConstant %float 1.5 %float_n0_5 = OpConstant %float -0.5 +%33 = OpConstantComposite %v2float %float_n2 %float_1 +%34 = OpConstantComposite %v2float %float_1_5 %float_n0_5 +%35 = OpConstantComposite %mat2v2float %33 %34 %v3float = OpTypeVector %float 3 %mat3v3float = OpTypeMatrix %v3float 3 %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float @@ -97,6 +72,10 @@ OpDecorate %172 RelaxedPrecision %float_n4 = OpConstant %float -4 %float_n5 = OpConstant %float -5 %float_4 = OpConstant %float 4 +%48 = OpConstantComposite %v3float %float_n24 %float_18 %float_5 +%49 = OpConstantComposite %v3float %float_20 %float_n15 %float_n4 +%50 = OpConstantComposite %v3float %float_n5 %float_4 %float_1 +%51 = OpConstantComposite %mat3v3float %48 %49 %50 %mat4v4float = OpTypeMatrix %v4float 4 %_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float %float_0_5 = OpConstant %float 0.5 @@ -104,6 +83,11 @@ OpDecorate %172 RelaxedPrecision %float_n1 = OpConstant %float -1 %float_2 = OpConstant %float 2 %float_3 = OpConstant %float 3 +%60 = OpConstantComposite %v4float %float_n2 %float_n0_5 %float_1 %float_0_5 +%61 = OpConstantComposite %v4float %float_1 %float_0_5 %float_0 %float_n0_5 +%62 = OpConstantComposite %v4float %float_n8 %float_n1 %float_2 %float_2 +%63 = OpConstantComposite %v4float %float_3 %float_0_5 %float_n1 %float_n0_5 +%64 = OpConstantComposite %mat4v4float %60 %61 %62 %63 %false = OpConstantFalse %bool %v2bool = OpTypeVector %bool 2 %v3bool = OpTypeVector %bool 3 @@ -112,6 +96,10 @@ OpDecorate %172 RelaxedPrecision %float_7 = OpConstant %float 7 %float_8 = OpConstant %float 8 %float_9 = OpConstant %float 9 +%118 = OpConstantComposite %v3float %float_1 %float_2 %float_3 +%119 = OpConstantComposite %v3float %float_4 %float_5 %float_6 +%120 = OpConstantComposite %v3float %float_7 %float_8 %float_9 +%121 = OpConstantComposite %mat3v3float %118 %119 %120 %_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 @@ -131,130 +119,93 @@ OpFunctionEnd %inv2x2 = OpVariable %_ptr_Function_mat2v2float Function %inv3x3 = OpVariable %_ptr_Function_mat3v3float Function %inv4x4 = OpVariable %_ptr_Function_mat4v4float Function -%159 = OpVariable %_ptr_Function_v4float Function -%33 = OpCompositeConstruct %v2float %float_n2 %float_1 -%34 = OpCompositeConstruct %v2float %float_1_5 %float_n0_5 -%35 = OpCompositeConstruct %mat2v2float %33 %34 +%138 = OpVariable %_ptr_Function_v4float Function OpStore %inv2x2 %35 -%48 = OpCompositeConstruct %v3float %float_n24 %float_18 %float_5 -%49 = OpCompositeConstruct %v3float %float_20 %float_n15 %float_n4 -%50 = OpCompositeConstruct %v3float %float_n5 %float_4 %float_1 -%51 = OpCompositeConstruct %mat3v3float %48 %49 %50 OpStore %inv3x3 %51 -%60 = OpCompositeConstruct %v4float %float_n2 %float_n0_5 %float_1 %float_0_5 -%61 = OpCompositeConstruct %v4float %float_1 %float_0_5 %float_0 %float_n0_5 -%62 = OpCompositeConstruct %v4float %float_n8 %float_n1 %float_2 %float_2 -%63 = OpCompositeConstruct %v4float %float_3 %float_0_5 %float_n1 %float_n0_5 -%64 = OpCompositeConstruct %mat4v4float %60 %61 %62 %63 OpStore %inv4x4 %64 -%66 = OpCompositeConstruct %v2float %float_n2 %float_1 -%67 = OpCompositeConstruct %v2float %float_1_5 %float_n0_5 -%68 = OpCompositeConstruct %mat2v2float %66 %67 -%69 = OpLoad %mat2v2float %inv2x2 -%71 = OpCompositeExtract %v2float %68 0 -%72 = OpCompositeExtract %v2float %69 0 -%73 = OpFOrdEqual %v2bool %71 %72 -%74 = OpAll %bool %73 -%75 = OpCompositeExtract %v2float %68 1 -%76 = OpCompositeExtract %v2float %69 1 -%77 = OpFOrdEqual %v2bool %75 %76 -%78 = OpAll %bool %77 -%79 = OpLogicalAnd %bool %74 %78 -OpSelectionMerge %81 None -OpBranchConditional %79 %80 %81 -%80 = OpLabel -%82 = OpCompositeConstruct %v3float %float_n24 %float_18 %float_5 -%83 = OpCompositeConstruct %v3float %float_20 %float_n15 %float_n4 -%84 = OpCompositeConstruct %v3float %float_n5 %float_4 %float_1 -%85 = OpCompositeConstruct %mat3v3float %82 %83 %84 -%86 = OpLoad %mat3v3float %inv3x3 -%88 = OpCompositeExtract %v3float %85 0 -%89 = OpCompositeExtract %v3float %86 0 -%90 = OpFOrdEqual %v3bool %88 %89 -%91 = OpAll %bool %90 -%92 = OpCompositeExtract %v3float %85 1 -%93 = OpCompositeExtract %v3float %86 1 -%94 = OpFOrdEqual %v3bool %92 %93 -%95 = OpAll %bool %94 -%96 = OpLogicalAnd %bool %91 %95 -%97 = OpCompositeExtract %v3float %85 2 -%98 = OpCompositeExtract %v3float %86 2 -%99 = OpFOrdEqual %v3bool %97 %98 +%66 = OpLoad %mat2v2float %inv2x2 +%68 = OpCompositeExtract %v2float %66 0 +%69 = OpFOrdEqual %v2bool %33 %68 +%70 = OpAll %bool %69 +%71 = OpCompositeExtract %v2float %66 1 +%72 = OpFOrdEqual %v2bool %34 %71 +%73 = OpAll %bool %72 +%74 = OpLogicalAnd %bool %70 %73 +OpSelectionMerge %76 None +OpBranchConditional %74 %75 %76 +%75 = OpLabel +%77 = OpLoad %mat3v3float %inv3x3 +%79 = OpCompositeExtract %v3float %77 0 +%80 = OpFOrdEqual %v3bool %48 %79 +%81 = OpAll %bool %80 +%82 = OpCompositeExtract %v3float %77 1 +%83 = OpFOrdEqual %v3bool %49 %82 +%84 = OpAll %bool %83 +%85 = OpLogicalAnd %bool %81 %84 +%86 = OpCompositeExtract %v3float %77 2 +%87 = OpFOrdEqual %v3bool %50 %86 +%88 = OpAll %bool %87 +%89 = OpLogicalAnd %bool %85 %88 +OpBranch %76 +%76 = OpLabel +%90 = OpPhi %bool %false %25 %89 %75 +OpSelectionMerge %92 None +OpBranchConditional %90 %91 %92 +%91 = OpLabel +%93 = OpLoad %mat4v4float %inv4x4 +%95 = OpCompositeExtract %v4float %93 0 +%96 = OpFOrdEqual %v4bool %60 %95 +%97 = OpAll %bool %96 +%98 = OpCompositeExtract %v4float %93 1 +%99 = OpFOrdEqual %v4bool %61 %98 %100 = OpAll %bool %99 -%101 = OpLogicalAnd %bool %96 %100 -OpBranch %81 -%81 = OpLabel -%102 = OpPhi %bool %false %25 %101 %80 -OpSelectionMerge %104 None -OpBranchConditional %102 %103 %104 -%103 = OpLabel -%105 = OpCompositeConstruct %v4float %float_n2 %float_n0_5 %float_1 %float_0_5 -%106 = OpCompositeConstruct %v4float %float_1 %float_0_5 %float_0 %float_n0_5 -%107 = OpCompositeConstruct %v4float %float_n8 %float_n1 %float_2 %float_2 -%108 = OpCompositeConstruct %v4float %float_3 %float_0_5 %float_n1 %float_n0_5 -%109 = OpCompositeConstruct %mat4v4float %105 %106 %107 %108 -%110 = OpLoad %mat4v4float %inv4x4 -%112 = OpCompositeExtract %v4float %109 0 -%113 = OpCompositeExtract %v4float %110 0 -%114 = OpFOrdEqual %v4bool %112 %113 -%115 = OpAll %bool %114 -%116 = OpCompositeExtract %v4float %109 1 -%117 = OpCompositeExtract %v4float %110 1 -%118 = OpFOrdEqual %v4bool %116 %117 -%119 = OpAll %bool %118 -%120 = OpLogicalAnd %bool %115 %119 -%121 = OpCompositeExtract %v4float %109 2 -%122 = OpCompositeExtract %v4float %110 2 -%123 = OpFOrdEqual %v4bool %121 %122 -%124 = OpAll %bool %123 -%125 = OpLogicalAnd %bool %120 %124 -%126 = OpCompositeExtract %v4float %109 3 -%127 = OpCompositeExtract %v4float %110 3 -%128 = OpFOrdEqual %v4bool %126 %127 -%129 = OpAll %bool %128 -%130 = OpLogicalAnd %bool %125 %129 -OpBranch %104 -%104 = OpLabel -%131 = OpPhi %bool %false %81 %130 %103 -OpSelectionMerge %133 None -OpBranchConditional %131 %132 %133 -%132 = OpLabel -%139 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3 -%140 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6 -%141 = OpCompositeConstruct %v3float %float_7 %float_8 %float_9 -%142 = OpCompositeConstruct %mat3v3float %139 %140 %141 -%134 = OpExtInst %mat3v3float %1 MatrixInverse %142 -%143 = OpLoad %mat3v3float %inv3x3 -%144 = OpCompositeExtract %v3float %134 0 -%145 = OpCompositeExtract %v3float %143 0 -%146 = OpFOrdNotEqual %v3bool %144 %145 -%147 = OpAny %bool %146 -%148 = OpCompositeExtract %v3float %134 1 -%149 = OpCompositeExtract %v3float %143 1 -%150 = OpFOrdNotEqual %v3bool %148 %149 -%151 = OpAny %bool %150 -%152 = OpLogicalOr %bool %147 %151 -%153 = OpCompositeExtract %v3float %134 2 -%154 = OpCompositeExtract %v3float %143 2 -%155 = OpFOrdNotEqual %v3bool %153 %154 -%156 = OpAny %bool %155 -%157 = OpLogicalOr %bool %152 %156 -OpBranch %133 -%133 = OpLabel -%158 = OpPhi %bool %false %104 %157 %132 -OpSelectionMerge %163 None -OpBranchConditional %158 %161 %162 -%161 = OpLabel -%164 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%168 = OpLoad %v4float %164 -OpStore %159 %168 -OpBranch %163 -%162 = OpLabel -%169 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%171 = OpLoad %v4float %169 -OpStore %159 %171 -OpBranch %163 -%163 = OpLabel -%172 = OpLoad %v4float %159 -OpReturnValue %172 +%101 = OpLogicalAnd %bool %97 %100 +%102 = OpCompositeExtract %v4float %93 2 +%103 = OpFOrdEqual %v4bool %62 %102 +%104 = OpAll %bool %103 +%105 = OpLogicalAnd %bool %101 %104 +%106 = OpCompositeExtract %v4float %93 3 +%107 = OpFOrdEqual %v4bool %63 %106 +%108 = OpAll %bool %107 +%109 = OpLogicalAnd %bool %105 %108 +OpBranch %92 +%92 = OpLabel +%110 = OpPhi %bool %false %76 %109 %91 +OpSelectionMerge %112 None +OpBranchConditional %110 %111 %112 +%111 = OpLabel +%113 = OpExtInst %mat3v3float %1 MatrixInverse %121 +%122 = OpLoad %mat3v3float %inv3x3 +%123 = OpCompositeExtract %v3float %113 0 +%124 = OpCompositeExtract %v3float %122 0 +%125 = OpFUnordNotEqual %v3bool %123 %124 +%126 = OpAny %bool %125 +%127 = OpCompositeExtract %v3float %113 1 +%128 = OpCompositeExtract %v3float %122 1 +%129 = OpFUnordNotEqual %v3bool %127 %128 +%130 = OpAny %bool %129 +%131 = OpLogicalOr %bool %126 %130 +%132 = OpCompositeExtract %v3float %113 2 +%133 = OpCompositeExtract %v3float %122 2 +%134 = OpFUnordNotEqual %v3bool %132 %133 +%135 = OpAny %bool %134 +%136 = OpLogicalOr %bool %131 %135 +OpBranch %112 +%112 = OpLabel +%137 = OpPhi %bool %false %92 %136 %111 +OpSelectionMerge %142 None +OpBranchConditional %137 %140 %141 +%140 = OpLabel +%143 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%147 = OpLoad %v4float %143 +OpStore %138 %147 +OpBranch %142 +%141 = OpLabel +%148 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%150 = OpLoad %v4float %148 +OpStore %138 %150 +OpBranch %142 +%142 = OpLabel +%151 = OpLoad %v4float %138 +OpReturnValue %151 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/intrinsics/Inversesqrt.asm.frag b/third_party/skia/tests/sksl/intrinsics/Inversesqrt.asm.frag index 962f83d2c899..db62471dba30 100644 --- a/third_party/skia/tests/sksl/intrinsics/Inversesqrt.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Inversesqrt.asm.frag @@ -29,7 +29,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %negativeVal RelaxedPrecision -OpDecorate %32 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %39 RelaxedPrecision OpDecorate %40 RelaxedPrecision @@ -50,23 +49,18 @@ OpDecorate %77 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %88 RelaxedPrecision OpDecorate %89 RelaxedPrecision -OpDecorate %95 RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %98 RelaxedPrecision -OpDecorate %105 RelaxedPrecision OpDecorate %107 RelaxedPrecision OpDecorate %108 RelaxedPrecision -OpDecorate %115 RelaxedPrecision OpDecorate %117 RelaxedPrecision OpDecorate %123 RelaxedPrecision OpDecorate %125 RelaxedPrecision OpDecorate %126 RelaxedPrecision OpDecorate %131 RelaxedPrecision -OpDecorate %132 RelaxedPrecision OpDecorate %134 RelaxedPrecision OpDecorate %135 RelaxedPrecision OpDecorate %141 RelaxedPrecision -OpDecorate %142 RelaxedPrecision OpDecorate %144 RelaxedPrecision OpDecorate %145 RelaxedPrecision OpDecorate %151 RelaxedPrecision @@ -87,8 +81,8 @@ OpDecorate %168 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/IsNan.asm.frag b/third_party/skia/tests/sksl/intrinsics/IsNan.asm.frag index ca47cd28e915..e2c930dff592 100644 --- a/third_party/skia/tests/sksl/intrinsics/IsNan.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/IsNan.asm.frag @@ -29,11 +29,9 @@ OpDecorate %10 DescriptorSet 0 OpDecorate %valueIsNaN RelaxedPrecision OpDecorate %32 RelaxedPrecision OpDecorate %33 RelaxedPrecision -OpDecorate %34 RelaxedPrecision OpDecorate %35 RelaxedPrecision OpDecorate %valueIsNumber RelaxedPrecision OpDecorate %39 RelaxedPrecision -OpDecorate %40 RelaxedPrecision OpDecorate %41 RelaxedPrecision OpDecorate %44 RelaxedPrecision OpDecorate %45 RelaxedPrecision @@ -64,8 +62,8 @@ OpDecorate %110 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -73,7 +71,9 @@ OpDecorate %110 RelaxedPrecision %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 +%34 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %float_1 = OpConstant %float 1 +%40 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %false = OpConstantFalse %bool %v2bool = OpTypeVector %bool 2 %v3float = OpTypeVector %float 3 @@ -98,12 +98,10 @@ OpFunctionEnd %28 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %32 = OpLoad %v4float %28 %33 = OpVectorShuffle %v4float %32 %32 1 1 1 1 -%34 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0 %35 = OpFDiv %v4float %34 %33 OpStore %valueIsNaN %35 %38 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %39 = OpLoad %v4float %38 -%40 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 %41 = OpFDiv %v4float %40 %39 OpStore %valueIsNumber %41 %44 = OpLoad %v4float %valueIsNaN diff --git a/third_party/skia/tests/sksl/intrinsics/Length.asm.frag b/third_party/skia/tests/sksl/intrinsics/Length.asm.frag index 2a2ecac1e06b..707ff7e5fda8 100644 --- a/third_party/skia/tests/sksl/intrinsics/Length.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Length.asm.frag @@ -26,7 +26,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expected RelaxedPrecision -OpDecorate %31 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %38 RelaxedPrecision OpDecorate %39 RelaxedPrecision @@ -69,8 +68,8 @@ OpDecorate %107 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Log.asm.frag b/third_party/skia/tests/sksl/intrinsics/Log.asm.frag index e59b97af5ad8..4934db0a9f30 100644 --- a/third_party/skia/tests/sksl/intrinsics/Log.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Log.asm.frag @@ -49,10 +49,8 @@ OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %94 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision -OpDecorate %103 RelaxedPrecision OpDecorate %105 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %119 RelaxedPrecision @@ -69,8 +67,8 @@ OpDecorate %120 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Log2.asm.frag b/third_party/skia/tests/sksl/intrinsics/Log2.asm.frag index 3a4faed8360b..6e75819c5053 100644 --- a/third_party/skia/tests/sksl/intrinsics/Log2.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Log2.asm.frag @@ -47,13 +47,10 @@ OpDecorate %70 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision -OpDecorate %87 RelaxedPrecision OpDecorate %89 RelaxedPrecision OpDecorate %90 RelaxedPrecision -OpDecorate %97 RelaxedPrecision OpDecorate %99 RelaxedPrecision OpDecorate %100 RelaxedPrecision -OpDecorate %107 RelaxedPrecision OpDecorate %109 RelaxedPrecision OpDecorate %120 RelaxedPrecision OpDecorate %123 RelaxedPrecision @@ -70,8 +67,8 @@ OpDecorate %124 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/MatrixCompMultES2.asm.frag b/third_party/skia/tests/sksl/intrinsics/MatrixCompMultES2.asm.frag index 51cdc4f7ade9..7406ea3bd8ef 100644 --- a/third_party/skia/tests/sksl/intrinsics/MatrixCompMultES2.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/MatrixCompMultES2.asm.frag @@ -34,11 +34,8 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %h22 RelaxedPrecision -OpDecorate %34 RelaxedPrecision -OpDecorate %35 RelaxedPrecision -OpDecorate %36 RelaxedPrecision OpDecorate %h33 RelaxedPrecision -OpDecorate %61 RelaxedPrecision +OpDecorate %59 RelaxedPrecision OpDecorate %63 RelaxedPrecision OpDecorate %64 RelaxedPrecision OpDecorate %65 RelaxedPrecision @@ -46,25 +43,11 @@ OpDecorate %66 RelaxedPrecision OpDecorate %67 RelaxedPrecision OpDecorate %68 RelaxedPrecision OpDecorate %69 RelaxedPrecision -OpDecorate %70 RelaxedPrecision OpDecorate %71 RelaxedPrecision -OpDecorate %72 RelaxedPrecision -OpDecorate %73 RelaxedPrecision -OpDecorate %74 RelaxedPrecision -OpDecorate %75 RelaxedPrecision -OpDecorate %76 RelaxedPrecision -OpDecorate %78 RelaxedPrecision -OpDecorate %79 RelaxedPrecision -OpDecorate %80 RelaxedPrecision -OpDecorate %81 RelaxedPrecision -OpDecorate %111 RelaxedPrecision -OpDecorate %118 RelaxedPrecision -OpDecorate %119 RelaxedPrecision -OpDecorate %120 RelaxedPrecision -OpDecorate %121 RelaxedPrecision -OpDecorate %146 RelaxedPrecision -OpDecorate %149 RelaxedPrecision -OpDecorate %150 RelaxedPrecision +OpDecorate %96 RelaxedPrecision +OpDecorate %128 RelaxedPrecision +OpDecorate %131 RelaxedPrecision +OpDecorate %132 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -89,23 +72,37 @@ OpDecorate %150 RelaxedPrecision %float_5 = OpConstant %float 5 %float_10 = OpConstant %float 10 %float_15 = OpConstant %float 15 +%34 = OpConstantComposite %v2float %float_0 %float_5 +%35 = OpConstantComposite %v2float %float_10 %float_15 +%36 = OpConstantComposite %mat2v2float %34 %35 %_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float %int = OpTypeInt 32 1 %int_2 = OpConstant %int 2 %float_1 = OpConstant %float 1 +%45 = OpConstantComposite %v2float %float_1 %float_0 +%46 = OpConstantComposite %v2float %float_0 %float_1 +%47 = OpConstantComposite %mat2v2float %45 %46 %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float %_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float %int_3 = OpConstant %int 3 %float_2 = OpConstant %float 2 +%61 = OpConstantComposite %v3float %float_2 %float_2 %float_2 +%62 = OpConstantComposite %mat3v3float %61 %61 %61 %false = OpConstantFalse %bool %v2bool = OpTypeVector %bool 2 %float_4 = OpConstant %float 4 +%84 = OpConstantComposite %v2float %float_0 %float_4 +%85 = OpConstantComposite %mat2v2float %45 %84 %float_6 = OpConstant %float 6 %float_8 = OpConstant %float 8 %float_12 = OpConstant %float 12 %float_14 = OpConstant %float 14 %float_16 = OpConstant %float 16 %float_18 = OpConstant %float 18 +%103 = OpConstantComposite %v3float %float_2 %float_4 %float_6 +%104 = OpConstantComposite %v3float %float_8 %float_10 %float_12 +%105 = OpConstantComposite %v3float %float_14 %float_16 %float_18 +%106 = OpConstantComposite %mat3v3float %103 %104 %105 %v3bool = OpTypeVector %bool 3 %_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float @@ -125,111 +122,79 @@ OpFunctionEnd %h22 = OpVariable %_ptr_Function_mat2v2float Function %f22 = OpVariable %_ptr_Function_mat2v2float Function %h33 = OpVariable %_ptr_Function_mat3v3float Function -%138 = OpVariable %_ptr_Function_v4float Function -%34 = OpCompositeConstruct %v2float %float_0 %float_5 -%35 = OpCompositeConstruct %v2float %float_10 %float_15 -%36 = OpCompositeConstruct %mat2v2float %34 %35 +%120 = OpVariable %_ptr_Function_v4float Function OpStore %h22 %36 %39 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2 %43 = OpLoad %mat2v2float %39 -%46 = OpCompositeConstruct %v2float %float_1 %float_0 -%47 = OpCompositeConstruct %v2float %float_0 %float_1 -%45 = OpCompositeConstruct %mat2v2float %46 %47 %48 = OpCompositeExtract %v2float %43 0 -%49 = OpCompositeExtract %v2float %45 0 -%50 = OpFMul %v2float %48 %49 -%51 = OpCompositeExtract %v2float %43 1 -%52 = OpCompositeExtract %v2float %45 1 -%53 = OpFMul %v2float %51 %52 -%54 = OpCompositeConstruct %mat2v2float %50 %53 -OpStore %f22 %54 -%58 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 -%61 = OpLoad %mat3v3float %58 -%63 = OpCompositeConstruct %v3float %float_2 %float_2 %float_2 -%64 = OpCompositeConstruct %v3float %float_2 %float_2 %float_2 -%65 = OpCompositeConstruct %v3float %float_2 %float_2 %float_2 -%66 = OpCompositeConstruct %mat3v3float %63 %64 %65 -%67 = OpCompositeExtract %v3float %61 0 -%68 = OpCompositeExtract %v3float %66 0 -%69 = OpFMul %v3float %67 %68 -%70 = OpCompositeExtract %v3float %61 1 -%71 = OpCompositeExtract %v3float %66 1 -%72 = OpFMul %v3float %70 %71 -%73 = OpCompositeExtract %v3float %61 2 -%74 = OpCompositeExtract %v3float %66 2 -%75 = OpFMul %v3float %73 %74 -%76 = OpCompositeConstruct %mat3v3float %69 %72 %75 -OpStore %h33 %76 -%78 = OpLoad %mat2v2float %h22 -%79 = OpCompositeConstruct %v2float %float_0 %float_5 -%80 = OpCompositeConstruct %v2float %float_10 %float_15 -%81 = OpCompositeConstruct %mat2v2float %79 %80 -%83 = OpCompositeExtract %v2float %78 0 -%84 = OpCompositeExtract %v2float %81 0 -%85 = OpFOrdEqual %v2bool %83 %84 -%86 = OpAll %bool %85 -%87 = OpCompositeExtract %v2float %78 1 -%88 = OpCompositeExtract %v2float %81 1 -%89 = OpFOrdEqual %v2bool %87 %88 -%90 = OpAll %bool %89 -%91 = OpLogicalAnd %bool %86 %90 -OpSelectionMerge %93 None -OpBranchConditional %91 %92 %93 -%92 = OpLabel -%94 = OpLoad %mat2v2float %f22 -%96 = OpCompositeConstruct %v2float %float_1 %float_0 -%97 = OpCompositeConstruct %v2float %float_0 %float_4 -%98 = OpCompositeConstruct %mat2v2float %96 %97 -%99 = OpCompositeExtract %v2float %94 0 -%100 = OpCompositeExtract %v2float %98 0 -%101 = OpFOrdEqual %v2bool %99 %100 -%102 = OpAll %bool %101 -%103 = OpCompositeExtract %v2float %94 1 -%104 = OpCompositeExtract %v2float %98 1 -%105 = OpFOrdEqual %v2bool %103 %104 -%106 = OpAll %bool %105 -%107 = OpLogicalAnd %bool %102 %106 -OpBranch %93 -%93 = OpLabel -%108 = OpPhi %bool %false %28 %107 %92 -OpSelectionMerge %110 None -OpBranchConditional %108 %109 %110 -%109 = OpLabel -%111 = OpLoad %mat3v3float %h33 -%118 = OpCompositeConstruct %v3float %float_2 %float_4 %float_6 -%119 = OpCompositeConstruct %v3float %float_8 %float_10 %float_12 -%120 = OpCompositeConstruct %v3float %float_14 %float_16 %float_18 -%121 = OpCompositeConstruct %mat3v3float %118 %119 %120 -%123 = OpCompositeExtract %v3float %111 0 -%124 = OpCompositeExtract %v3float %121 0 -%125 = OpFOrdEqual %v3bool %123 %124 -%126 = OpAll %bool %125 -%127 = OpCompositeExtract %v3float %111 1 -%128 = OpCompositeExtract %v3float %121 1 -%129 = OpFOrdEqual %v3bool %127 %128 -%130 = OpAll %bool %129 -%131 = OpLogicalAnd %bool %126 %130 -%132 = OpCompositeExtract %v3float %111 2 -%133 = OpCompositeExtract %v3float %121 2 -%134 = OpFOrdEqual %v3bool %132 %133 -%135 = OpAll %bool %134 -%136 = OpLogicalAnd %bool %131 %135 -OpBranch %110 -%110 = OpLabel -%137 = OpPhi %bool %false %93 %136 %109 -OpSelectionMerge %142 None -OpBranchConditional %137 %140 %141 -%140 = OpLabel -%143 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%146 = OpLoad %v4float %143 -OpStore %138 %146 -OpBranch %142 -%141 = OpLabel -%147 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%149 = OpLoad %v4float %147 -OpStore %138 %149 -OpBranch %142 -%142 = OpLabel -%150 = OpLoad %v4float %138 -OpReturnValue %150 +%49 = OpFMul %v2float %48 %45 +%50 = OpCompositeExtract %v2float %43 1 +%51 = OpFMul %v2float %50 %46 +%52 = OpCompositeConstruct %mat2v2float %49 %51 +OpStore %f22 %52 +%56 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 +%59 = OpLoad %mat3v3float %56 +%63 = OpCompositeExtract %v3float %59 0 +%64 = OpFMul %v3float %63 %61 +%65 = OpCompositeExtract %v3float %59 1 +%66 = OpFMul %v3float %65 %61 +%67 = OpCompositeExtract %v3float %59 2 +%68 = OpFMul %v3float %67 %61 +%69 = OpCompositeConstruct %mat3v3float %64 %66 %68 +OpStore %h33 %69 +%71 = OpLoad %mat2v2float %h22 +%73 = OpCompositeExtract %v2float %71 0 +%74 = OpFOrdEqual %v2bool %73 %34 +%75 = OpAll %bool %74 +%76 = OpCompositeExtract %v2float %71 1 +%77 = OpFOrdEqual %v2bool %76 %35 +%78 = OpAll %bool %77 +%79 = OpLogicalAnd %bool %75 %78 +OpSelectionMerge %81 None +OpBranchConditional %79 %80 %81 +%80 = OpLabel +%82 = OpLoad %mat2v2float %f22 +%86 = OpCompositeExtract %v2float %82 0 +%87 = OpFOrdEqual %v2bool %86 %45 +%88 = OpAll %bool %87 +%89 = OpCompositeExtract %v2float %82 1 +%90 = OpFOrdEqual %v2bool %89 %84 +%91 = OpAll %bool %90 +%92 = OpLogicalAnd %bool %88 %91 +OpBranch %81 +%81 = OpLabel +%93 = OpPhi %bool %false %28 %92 %80 +OpSelectionMerge %95 None +OpBranchConditional %93 %94 %95 +%94 = OpLabel +%96 = OpLoad %mat3v3float %h33 +%108 = OpCompositeExtract %v3float %96 0 +%109 = OpFOrdEqual %v3bool %108 %103 +%110 = OpAll %bool %109 +%111 = OpCompositeExtract %v3float %96 1 +%112 = OpFOrdEqual %v3bool %111 %104 +%113 = OpAll %bool %112 +%114 = OpLogicalAnd %bool %110 %113 +%115 = OpCompositeExtract %v3float %96 2 +%116 = OpFOrdEqual %v3bool %115 %105 +%117 = OpAll %bool %116 +%118 = OpLogicalAnd %bool %114 %117 +OpBranch %95 +%95 = OpLabel +%119 = OpPhi %bool %false %81 %118 %94 +OpSelectionMerge %124 None +OpBranchConditional %119 %122 %123 +%122 = OpLabel +%125 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%128 = OpLoad %v4float %125 +OpStore %120 %128 +OpBranch %124 +%123 = OpLabel +%129 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%131 = OpLoad %v4float %129 +OpStore %120 %131 +OpBranch %124 +%124 = OpLabel +%132 = OpLoad %v4float %120 +OpReturnValue %132 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/intrinsics/MatrixCompMultES3.asm.frag b/third_party/skia/tests/sksl/intrinsics/MatrixCompMultES3.asm.frag index 9d6c4172ebd9..5fd4f44a6d0d 100644 --- a/third_party/skia/tests/sksl/intrinsics/MatrixCompMultES3.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/MatrixCompMultES3.asm.frag @@ -25,26 +25,19 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %h24 RelaxedPrecision -OpDecorate %31 RelaxedPrecision -OpDecorate %32 RelaxedPrecision -OpDecorate %33 RelaxedPrecision -OpDecorate %38 RelaxedPrecision +OpDecorate %37 RelaxedPrecision +OpDecorate %40 RelaxedPrecision OpDecorate %41 RelaxedPrecision OpDecorate %42 RelaxedPrecision OpDecorate %43 RelaxedPrecision OpDecorate %44 RelaxedPrecision OpDecorate %45 RelaxedPrecision OpDecorate %46 RelaxedPrecision -OpDecorate %47 RelaxedPrecision -OpDecorate %48 RelaxedPrecision -OpDecorate %49 RelaxedPrecision OpDecorate %h42 RelaxedPrecision -OpDecorate %62 RelaxedPrecision -OpDecorate %63 RelaxedPrecision -OpDecorate %64 RelaxedPrecision OpDecorate %65 RelaxedPrecision -OpDecorate %66 RelaxedPrecision +OpDecorate %67 RelaxedPrecision OpDecorate %68 RelaxedPrecision +OpDecorate %69 RelaxedPrecision OpDecorate %70 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %72 RelaxedPrecision @@ -65,26 +58,11 @@ OpDecorate %86 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision OpDecorate %89 RelaxedPrecision -OpDecorate %90 RelaxedPrecision -OpDecorate %91 RelaxedPrecision -OpDecorate %92 RelaxedPrecision -OpDecorate %93 RelaxedPrecision -OpDecorate %94 RelaxedPrecision -OpDecorate %95 RelaxedPrecision -OpDecorate %96 RelaxedPrecision -OpDecorate %113 RelaxedPrecision -OpDecorate %114 RelaxedPrecision -OpDecorate %115 RelaxedPrecision -OpDecorate %116 RelaxedPrecision -OpDecorate %129 RelaxedPrecision -OpDecorate %130 RelaxedPrecision -OpDecorate %131 RelaxedPrecision -OpDecorate %132 RelaxedPrecision -OpDecorate %133 RelaxedPrecision -OpDecorate %134 RelaxedPrecision -OpDecorate %191 RelaxedPrecision -OpDecorate %193 RelaxedPrecision -OpDecorate %194 RelaxedPrecision +OpDecorate %106 RelaxedPrecision +OpDecorate %120 RelaxedPrecision +OpDecorate %169 RelaxedPrecision +OpDecorate %171 RelaxedPrecision +OpDecorate %172 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -97,14 +75,16 @@ OpDecorate %194 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 %mat2v4float = OpTypeMatrix %v4float 2 %_ptr_Function_mat2v4float = OpTypePointer Function %mat2v4float %float_9 = OpConstant %float 9 +%31 = OpConstantComposite %v4float %float_9 %float_9 %float_9 %float_9 +%32 = OpConstantComposite %mat2v4float %31 %31 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_1 = OpConstant %int 1 @@ -119,6 +99,11 @@ OpDecorate %194 RelaxedPrecision %float_6 = OpConstant %float 6 %float_7 = OpConstant %float 7 %float_8 = OpConstant %float 8 +%59 = OpConstantComposite %v2float %float_1 %float_2 +%60 = OpConstantComposite %v2float %float_3 %float_4 +%61 = OpConstantComposite %v2float %float_5 %float_6 +%62 = OpConstantComposite %v2float %float_7 %float_8 +%63 = OpConstantComposite %mat4v2float %59 %60 %61 %62 %v3float = OpTypeVector %float 3 %mat4v3float = OpTypeMatrix %v3float 4 %_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float @@ -128,8 +113,21 @@ OpDecorate %194 RelaxedPrecision %float_36 = OpConstant %float 36 %float_40 = OpConstant %float 40 %float_42 = OpConstant %float 42 +%100 = OpConstantComposite %v3float %float_12 %float_22 %float_30 +%101 = OpConstantComposite %v3float %float_36 %float_40 %float_42 +%102 = OpConstantComposite %v3float %float_42 %float_40 %float_36 +%103 = OpConstantComposite %v3float %float_30 %float_22 %float_12 +%104 = OpConstantComposite %mat4v3float %100 %101 %102 %103 %false = OpConstantFalse %bool +%107 = OpConstantComposite %v4float %float_9 %float_0 %float_0 %float_9 +%108 = OpConstantComposite %v4float %float_0 %float_9 %float_0 %float_9 +%109 = OpConstantComposite %mat2v4float %107 %108 %v4bool = OpTypeVector %bool 4 +%121 = OpConstantComposite %v2float %float_1 %float_0 +%122 = OpConstantComposite %v2float %float_0 %float_4 +%123 = OpConstantComposite %v2float %float_0 %float_6 +%124 = OpConstantComposite %v2float %float_0 %float_8 +%125 = OpConstantComposite %mat4v2float %121 %122 %123 %124 %v2bool = OpTypeVector %bool 2 %v3bool = OpTypeVector %bool 3 %_ptr_Function_v4float = OpTypePointer Function %v4float @@ -147,153 +145,111 @@ OpFunctionEnd %h24 = OpVariable %_ptr_Function_mat2v4float Function %h42 = OpVariable %_ptr_Function_mat4v2float Function %f43 = OpVariable %_ptr_Function_mat4v3float Function -%185 = OpVariable %_ptr_Function_v4float Function -%31 = OpCompositeConstruct %v4float %float_9 %float_9 %float_9 %float_9 -%32 = OpCompositeConstruct %v4float %float_9 %float_9 %float_9 %float_9 -%33 = OpCompositeConstruct %mat2v4float %31 %32 -%34 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%38 = OpLoad %v4float %34 -%39 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%41 = OpLoad %v4float %39 -%42 = OpCompositeConstruct %mat2v4float %38 %41 -%43 = OpCompositeExtract %v4float %33 0 -%44 = OpCompositeExtract %v4float %42 0 -%45 = OpFMul %v4float %43 %44 -%46 = OpCompositeExtract %v4float %33 1 -%47 = OpCompositeExtract %v4float %42 1 -%48 = OpFMul %v4float %46 %47 -%49 = OpCompositeConstruct %mat2v4float %45 %48 -OpStore %h24 %49 -%62 = OpCompositeConstruct %v2float %float_1 %float_2 -%63 = OpCompositeConstruct %v2float %float_3 %float_4 -%64 = OpCompositeConstruct %v2float %float_5 %float_6 -%65 = OpCompositeConstruct %v2float %float_7 %float_8 -%66 = OpCompositeConstruct %mat4v2float %62 %63 %64 %65 -%67 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%68 = OpLoad %v4float %67 -%69 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%70 = OpLoad %v4float %69 -%71 = OpCompositeExtract %float %68 0 -%72 = OpCompositeExtract %float %68 1 +%163 = OpVariable %_ptr_Function_v4float Function +%33 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%37 = OpLoad %v4float %33 +%38 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%40 = OpLoad %v4float %38 +%41 = OpCompositeConstruct %mat2v4float %37 %40 +%42 = OpCompositeExtract %v4float %41 0 +%43 = OpFMul %v4float %31 %42 +%44 = OpCompositeExtract %v4float %41 1 +%45 = OpFMul %v4float %31 %44 +%46 = OpCompositeConstruct %mat2v4float %43 %45 +OpStore %h24 %46 +%64 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%65 = OpLoad %v4float %64 +%66 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%67 = OpLoad %v4float %66 +%68 = OpCompositeExtract %float %65 0 +%69 = OpCompositeExtract %float %65 1 +%70 = OpCompositeConstruct %v2float %68 %69 +%71 = OpCompositeExtract %float %65 2 +%72 = OpCompositeExtract %float %65 3 %73 = OpCompositeConstruct %v2float %71 %72 -%74 = OpCompositeExtract %float %68 2 -%75 = OpCompositeExtract %float %68 3 +%74 = OpCompositeExtract %float %67 0 +%75 = OpCompositeExtract %float %67 1 %76 = OpCompositeConstruct %v2float %74 %75 -%77 = OpCompositeExtract %float %70 0 -%78 = OpCompositeExtract %float %70 1 +%77 = OpCompositeExtract %float %67 2 +%78 = OpCompositeExtract %float %67 3 %79 = OpCompositeConstruct %v2float %77 %78 -%80 = OpCompositeExtract %float %70 2 -%81 = OpCompositeExtract %float %70 3 -%82 = OpCompositeConstruct %v2float %80 %81 -%83 = OpCompositeConstruct %mat4v2float %73 %76 %79 %82 -%84 = OpCompositeExtract %v2float %66 0 -%85 = OpCompositeExtract %v2float %83 0 -%86 = OpFMul %v2float %84 %85 -%87 = OpCompositeExtract %v2float %66 1 -%88 = OpCompositeExtract %v2float %83 1 -%89 = OpFMul %v2float %87 %88 -%90 = OpCompositeExtract %v2float %66 2 -%91 = OpCompositeExtract %v2float %83 2 -%92 = OpFMul %v2float %90 %91 -%93 = OpCompositeExtract %v2float %66 3 -%94 = OpCompositeExtract %v2float %83 3 -%95 = OpFMul %v2float %93 %94 -%96 = OpCompositeConstruct %mat4v2float %86 %89 %92 %95 -OpStore %h42 %96 -%107 = OpCompositeConstruct %v3float %float_12 %float_22 %float_30 -%108 = OpCompositeConstruct %v3float %float_36 %float_40 %float_42 -%109 = OpCompositeConstruct %v3float %float_42 %float_40 %float_36 -%110 = OpCompositeConstruct %v3float %float_30 %float_22 %float_12 -%111 = OpCompositeConstruct %mat4v3float %107 %108 %109 %110 -OpStore %f43 %111 -%113 = OpLoad %mat2v4float %h24 -%114 = OpCompositeConstruct %v4float %float_9 %float_0 %float_0 %float_9 -%115 = OpCompositeConstruct %v4float %float_0 %float_9 %float_0 %float_9 -%116 = OpCompositeConstruct %mat2v4float %114 %115 -%118 = OpCompositeExtract %v4float %113 0 -%119 = OpCompositeExtract %v4float %116 0 -%120 = OpFOrdEqual %v4bool %118 %119 -%121 = OpAll %bool %120 -%122 = OpCompositeExtract %v4float %113 1 -%123 = OpCompositeExtract %v4float %116 1 -%124 = OpFOrdEqual %v4bool %122 %123 -%125 = OpAll %bool %124 -%126 = OpLogicalAnd %bool %121 %125 -OpSelectionMerge %128 None -OpBranchConditional %126 %127 %128 -%127 = OpLabel -%129 = OpLoad %mat4v2float %h42 -%130 = OpCompositeConstruct %v2float %float_1 %float_0 -%131 = OpCompositeConstruct %v2float %float_0 %float_4 -%132 = OpCompositeConstruct %v2float %float_0 %float_6 -%133 = OpCompositeConstruct %v2float %float_0 %float_8 -%134 = OpCompositeConstruct %mat4v2float %130 %131 %132 %133 -%136 = OpCompositeExtract %v2float %129 0 -%137 = OpCompositeExtract %v2float %134 0 -%138 = OpFOrdEqual %v2bool %136 %137 -%139 = OpAll %bool %138 -%140 = OpCompositeExtract %v2float %129 1 -%141 = OpCompositeExtract %v2float %134 1 -%142 = OpFOrdEqual %v2bool %140 %141 -%143 = OpAll %bool %142 -%144 = OpLogicalAnd %bool %139 %143 -%145 = OpCompositeExtract %v2float %129 2 -%146 = OpCompositeExtract %v2float %134 2 -%147 = OpFOrdEqual %v2bool %145 %146 -%148 = OpAll %bool %147 -%149 = OpLogicalAnd %bool %144 %148 -%150 = OpCompositeExtract %v2float %129 3 -%151 = OpCompositeExtract %v2float %134 3 -%152 = OpFOrdEqual %v2bool %150 %151 -%153 = OpAll %bool %152 -%154 = OpLogicalAnd %bool %149 %153 -OpBranch %128 -%128 = OpLabel -%155 = OpPhi %bool %false %25 %154 %127 -OpSelectionMerge %157 None -OpBranchConditional %155 %156 %157 -%156 = OpLabel -%158 = OpLoad %mat4v3float %f43 -%159 = OpCompositeConstruct %v3float %float_12 %float_22 %float_30 -%160 = OpCompositeConstruct %v3float %float_36 %float_40 %float_42 -%161 = OpCompositeConstruct %v3float %float_42 %float_40 %float_36 -%162 = OpCompositeConstruct %v3float %float_30 %float_22 %float_12 -%163 = OpCompositeConstruct %mat4v3float %159 %160 %161 %162 -%165 = OpCompositeExtract %v3float %158 0 -%166 = OpCompositeExtract %v3float %163 0 -%167 = OpFOrdEqual %v3bool %165 %166 -%168 = OpAll %bool %167 -%169 = OpCompositeExtract %v3float %158 1 -%170 = OpCompositeExtract %v3float %163 1 -%171 = OpFOrdEqual %v3bool %169 %170 -%172 = OpAll %bool %171 -%173 = OpLogicalAnd %bool %168 %172 -%174 = OpCompositeExtract %v3float %158 2 -%175 = OpCompositeExtract %v3float %163 2 -%176 = OpFOrdEqual %v3bool %174 %175 -%177 = OpAll %bool %176 -%178 = OpLogicalAnd %bool %173 %177 -%179 = OpCompositeExtract %v3float %158 3 -%180 = OpCompositeExtract %v3float %163 3 -%181 = OpFOrdEqual %v3bool %179 %180 -%182 = OpAll %bool %181 -%183 = OpLogicalAnd %bool %178 %182 -OpBranch %157 -%157 = OpLabel -%184 = OpPhi %bool %false %128 %183 %156 -OpSelectionMerge %189 None -OpBranchConditional %184 %187 %188 -%187 = OpLabel -%190 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%191 = OpLoad %v4float %190 -OpStore %185 %191 -OpBranch %189 -%188 = OpLabel -%192 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%193 = OpLoad %v4float %192 -OpStore %185 %193 -OpBranch %189 -%189 = OpLabel -%194 = OpLoad %v4float %185 -OpReturnValue %194 +%80 = OpCompositeConstruct %mat4v2float %70 %73 %76 %79 +%81 = OpCompositeExtract %v2float %80 0 +%82 = OpFMul %v2float %59 %81 +%83 = OpCompositeExtract %v2float %80 1 +%84 = OpFMul %v2float %60 %83 +%85 = OpCompositeExtract %v2float %80 2 +%86 = OpFMul %v2float %61 %85 +%87 = OpCompositeExtract %v2float %80 3 +%88 = OpFMul %v2float %62 %87 +%89 = OpCompositeConstruct %mat4v2float %82 %84 %86 %88 +OpStore %h42 %89 +OpStore %f43 %104 +%106 = OpLoad %mat2v4float %h24 +%111 = OpCompositeExtract %v4float %106 0 +%112 = OpFOrdEqual %v4bool %111 %107 +%113 = OpAll %bool %112 +%114 = OpCompositeExtract %v4float %106 1 +%115 = OpFOrdEqual %v4bool %114 %108 +%116 = OpAll %bool %115 +%117 = OpLogicalAnd %bool %113 %116 +OpSelectionMerge %119 None +OpBranchConditional %117 %118 %119 +%118 = OpLabel +%120 = OpLoad %mat4v2float %h42 +%127 = OpCompositeExtract %v2float %120 0 +%128 = OpFOrdEqual %v2bool %127 %121 +%129 = OpAll %bool %128 +%130 = OpCompositeExtract %v2float %120 1 +%131 = OpFOrdEqual %v2bool %130 %122 +%132 = OpAll %bool %131 +%133 = OpLogicalAnd %bool %129 %132 +%134 = OpCompositeExtract %v2float %120 2 +%135 = OpFOrdEqual %v2bool %134 %123 +%136 = OpAll %bool %135 +%137 = OpLogicalAnd %bool %133 %136 +%138 = OpCompositeExtract %v2float %120 3 +%139 = OpFOrdEqual %v2bool %138 %124 +%140 = OpAll %bool %139 +%141 = OpLogicalAnd %bool %137 %140 +OpBranch %119 +%119 = OpLabel +%142 = OpPhi %bool %false %25 %141 %118 +OpSelectionMerge %144 None +OpBranchConditional %142 %143 %144 +%143 = OpLabel +%145 = OpLoad %mat4v3float %f43 +%147 = OpCompositeExtract %v3float %145 0 +%148 = OpFOrdEqual %v3bool %147 %100 +%149 = OpAll %bool %148 +%150 = OpCompositeExtract %v3float %145 1 +%151 = OpFOrdEqual %v3bool %150 %101 +%152 = OpAll %bool %151 +%153 = OpLogicalAnd %bool %149 %152 +%154 = OpCompositeExtract %v3float %145 2 +%155 = OpFOrdEqual %v3bool %154 %102 +%156 = OpAll %bool %155 +%157 = OpLogicalAnd %bool %153 %156 +%158 = OpCompositeExtract %v3float %145 3 +%159 = OpFOrdEqual %v3bool %158 %103 +%160 = OpAll %bool %159 +%161 = OpLogicalAnd %bool %157 %160 +OpBranch %144 +%144 = OpLabel +%162 = OpPhi %bool %false %119 %161 %143 +OpSelectionMerge %167 None +OpBranchConditional %162 %165 %166 +%165 = OpLabel +%168 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%169 = OpLoad %v4float %168 +OpStore %163 %169 +OpBranch %167 +%166 = OpLabel +%170 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%171 = OpLoad %v4float %170 +OpStore %163 %171 +OpBranch %167 +%167 = OpLabel +%172 = OpLoad %v4float %163 +OpReturnValue %172 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/intrinsics/MaxFloat.asm.frag b/third_party/skia/tests/sksl/intrinsics/MaxFloat.asm.frag index da288ba4a2a2..34b14975a580 100644 --- a/third_party/skia/tests/sksl/intrinsics/MaxFloat.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/MaxFloat.asm.frag @@ -27,68 +27,59 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expectedA RelaxedPrecision -OpDecorate %31 RelaxedPrecision OpDecorate %expectedB RelaxedPrecision -OpDecorate %34 RelaxedPrecision OpDecorate %41 RelaxedPrecision OpDecorate %42 RelaxedPrecision OpDecorate %43 RelaxedPrecision OpDecorate %44 RelaxedPrecision OpDecorate %50 RelaxedPrecision OpDecorate %51 RelaxedPrecision -OpDecorate %52 RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision OpDecorate %63 RelaxedPrecision OpDecorate %64 RelaxedPrecision -OpDecorate %66 RelaxedPrecision OpDecorate %67 RelaxedPrecision OpDecorate %68 RelaxedPrecision OpDecorate %77 RelaxedPrecision -OpDecorate %78 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %86 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %92 RelaxedPrecision OpDecorate %93 RelaxedPrecision -OpDecorate %94 RelaxedPrecision OpDecorate %100 RelaxedPrecision OpDecorate %101 RelaxedPrecision -OpDecorate %102 RelaxedPrecision -OpDecorate %108 RelaxedPrecision +OpDecorate %107 RelaxedPrecision +OpDecorate %115 RelaxedPrecision OpDecorate %116 RelaxedPrecision -OpDecorate %117 RelaxedPrecision +OpDecorate %119 RelaxedPrecision OpDecorate %120 RelaxedPrecision OpDecorate %121 RelaxedPrecision OpDecorate %122 RelaxedPrecision -OpDecorate %123 RelaxedPrecision +OpDecorate %129 RelaxedPrecision OpDecorate %130 RelaxedPrecision -OpDecorate %131 RelaxedPrecision +OpDecorate %132 RelaxedPrecision OpDecorate %133 RelaxedPrecision OpDecorate %134 RelaxedPrecision OpDecorate %135 RelaxedPrecision -OpDecorate %136 RelaxedPrecision +OpDecorate %143 RelaxedPrecision OpDecorate %144 RelaxedPrecision -OpDecorate %145 RelaxedPrecision +OpDecorate %146 RelaxedPrecision OpDecorate %147 RelaxedPrecision OpDecorate %148 RelaxedPrecision OpDecorate %149 RelaxedPrecision -OpDecorate %150 RelaxedPrecision -OpDecorate %158 RelaxedPrecision +OpDecorate %157 RelaxedPrecision +OpDecorate %159 RelaxedPrecision OpDecorate %160 RelaxedPrecision -OpDecorate %161 RelaxedPrecision +OpDecorate %166 RelaxedPrecision OpDecorate %167 RelaxedPrecision -OpDecorate %168 RelaxedPrecision OpDecorate %173 RelaxedPrecision OpDecorate %174 RelaxedPrecision -OpDecorate %175 RelaxedPrecision OpDecorate %181 RelaxedPrecision OpDecorate %182 RelaxedPrecision -OpDecorate %183 RelaxedPrecision -OpDecorate %189 RelaxedPrecision -OpDecorate %198 RelaxedPrecision +OpDecorate %188 RelaxedPrecision +OpDecorate %197 RelaxedPrecision +OpDecorate %200 RelaxedPrecision OpDecorate %201 RelaxedPrecision -OpDecorate %202 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -101,8 +92,8 @@ OpDecorate %202 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -117,15 +108,17 @@ OpDecorate %202 RelaxedPrecision %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 +%52 = OpConstantComposite %v2float %float_0_5 %float_0_5 %v2bool = OpTypeVector %bool 2 %v3float = OpTypeVector %float 3 +%66 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 %v3bool = OpTypeVector %bool 3 +%78 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 %v4bool = OpTypeVector %bool 4 -%92 = OpConstantComposite %v2float %float_0_5 %float_0_5 -%100 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_75 +%99 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_75 %int_1 = OpConstant %int 1 -%173 = OpConstantComposite %v2float %float_0 %float_1 -%181 = OpConstantComposite %v3float %float_0 %float_1 %float_0_75 +%172 = OpConstantComposite %v2float %float_0 %float_1 +%180 = OpConstantComposite %v3float %float_0 %float_1 %float_0_75 %int_2 = OpConstant %int 2 %_entrypoint_v = OpFunction %void None %15 %16 = OpLabel @@ -140,7 +133,7 @@ OpFunctionEnd %25 = OpLabel %expectedA = OpVariable %_ptr_Function_v4float Function %expectedB = OpVariable %_ptr_Function_v4float Function -%193 = OpVariable %_ptr_Function_v4float Function +%192 = OpVariable %_ptr_Function_v4float Function OpStore %expectedA %31 OpStore %expectedB %34 %37 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 @@ -156,7 +149,6 @@ OpBranchConditional %45 %46 %47 %49 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %50 = OpLoad %v4float %49 %51 = OpVectorShuffle %v2float %50 %50 0 1 -%52 = OpCompositeConstruct %v2float %float_0_5 %float_0_5 %48 = OpExtInst %v2float %1 FMax %51 %52 %53 = OpLoad %v4float %expectedA %54 = OpVectorShuffle %v2float %53 %53 0 1 @@ -171,7 +163,6 @@ OpBranchConditional %58 %59 %60 %62 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %63 = OpLoad %v4float %62 %64 = OpVectorShuffle %v3float %63 %63 0 1 2 -%66 = OpCompositeConstruct %v3float %float_0_5 %float_0_5 %float_0_5 %61 = OpExtInst %v3float %1 FMax %64 %66 %67 = OpLoad %v4float %expectedA %68 = OpVectorShuffle %v3float %67 %67 0 1 2 @@ -185,7 +176,6 @@ OpBranchConditional %72 %73 %74 %73 = OpLabel %76 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %77 = OpLoad %v4float %76 -%78 = OpCompositeConstruct %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 %75 = OpExtInst %v4float %1 FMax %77 %78 %79 = OpLoad %v4float %expectedA %80 = OpFOrdEqual %v4bool %75 %79 @@ -205,147 +195,147 @@ OpBranch %85 OpSelectionMerge %91 None OpBranchConditional %89 %90 %91 %90 = OpLabel -%93 = OpLoad %v4float %expectedA -%94 = OpVectorShuffle %v2float %93 %93 0 1 -%95 = OpFOrdEqual %v2bool %92 %94 -%96 = OpAll %bool %95 +%92 = OpLoad %v4float %expectedA +%93 = OpVectorShuffle %v2float %92 %92 0 1 +%94 = OpFOrdEqual %v2bool %52 %93 +%95 = OpAll %bool %94 OpBranch %91 %91 = OpLabel -%97 = OpPhi %bool %false %85 %96 %90 -OpSelectionMerge %99 None -OpBranchConditional %97 %98 %99 +%96 = OpPhi %bool %false %85 %95 %90 +OpSelectionMerge %98 None +OpBranchConditional %96 %97 %98 +%97 = OpLabel +%100 = OpLoad %v4float %expectedA +%101 = OpVectorShuffle %v3float %100 %100 0 1 2 +%102 = OpFOrdEqual %v3bool %99 %101 +%103 = OpAll %bool %102 +OpBranch %98 %98 = OpLabel -%101 = OpLoad %v4float %expectedA -%102 = OpVectorShuffle %v3float %101 %101 0 1 2 -%103 = OpFOrdEqual %v3bool %100 %102 -%104 = OpAll %bool %103 -OpBranch %99 -%99 = OpLabel -%105 = OpPhi %bool %false %91 %104 %98 -OpSelectionMerge %107 None -OpBranchConditional %105 %106 %107 +%104 = OpPhi %bool %false %91 %103 %97 +OpSelectionMerge %106 None +OpBranchConditional %104 %105 %106 +%105 = OpLabel +%107 = OpLoad %v4float %expectedA +%108 = OpFOrdEqual %v4bool %31 %107 +%109 = OpAll %bool %108 +OpBranch %106 %106 = OpLabel -%108 = OpLoad %v4float %expectedA -%109 = OpFOrdEqual %v4bool %31 %108 -%110 = OpAll %bool %109 -OpBranch %107 -%107 = OpLabel -%111 = OpPhi %bool %false %99 %110 %106 -OpSelectionMerge %113 None -OpBranchConditional %111 %112 %113 +%110 = OpPhi %bool %false %98 %109 %105 +OpSelectionMerge %112 None +OpBranchConditional %110 %111 %112 +%111 = OpLabel +%114 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%115 = OpLoad %v4float %114 +%116 = OpCompositeExtract %float %115 0 +%117 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%119 = OpLoad %v4float %117 +%120 = OpCompositeExtract %float %119 0 +%113 = OpExtInst %float %1 FMax %116 %120 +%121 = OpLoad %v4float %expectedB +%122 = OpCompositeExtract %float %121 0 +%123 = OpFOrdEqual %bool %113 %122 +OpBranch %112 %112 = OpLabel -%115 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%116 = OpLoad %v4float %115 -%117 = OpCompositeExtract %float %116 0 -%118 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%120 = OpLoad %v4float %118 -%121 = OpCompositeExtract %float %120 0 -%114 = OpExtInst %float %1 FMax %117 %121 -%122 = OpLoad %v4float %expectedB -%123 = OpCompositeExtract %float %122 0 -%124 = OpFOrdEqual %bool %114 %123 -OpBranch %113 -%113 = OpLabel -%125 = OpPhi %bool %false %107 %124 %112 -OpSelectionMerge %127 None -OpBranchConditional %125 %126 %127 +%124 = OpPhi %bool %false %106 %123 %111 +OpSelectionMerge %126 None +OpBranchConditional %124 %125 %126 +%125 = OpLabel +%128 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%129 = OpLoad %v4float %128 +%130 = OpVectorShuffle %v2float %129 %129 0 1 +%131 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%132 = OpLoad %v4float %131 +%133 = OpVectorShuffle %v2float %132 %132 0 1 +%127 = OpExtInst %v2float %1 FMax %130 %133 +%134 = OpLoad %v4float %expectedB +%135 = OpVectorShuffle %v2float %134 %134 0 1 +%136 = OpFOrdEqual %v2bool %127 %135 +%137 = OpAll %bool %136 +OpBranch %126 %126 = OpLabel -%129 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%130 = OpLoad %v4float %129 -%131 = OpVectorShuffle %v2float %130 %130 0 1 -%132 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%133 = OpLoad %v4float %132 -%134 = OpVectorShuffle %v2float %133 %133 0 1 -%128 = OpExtInst %v2float %1 FMax %131 %134 -%135 = OpLoad %v4float %expectedB -%136 = OpVectorShuffle %v2float %135 %135 0 1 -%137 = OpFOrdEqual %v2bool %128 %136 -%138 = OpAll %bool %137 -OpBranch %127 -%127 = OpLabel -%139 = OpPhi %bool %false %113 %138 %126 -OpSelectionMerge %141 None -OpBranchConditional %139 %140 %141 +%138 = OpPhi %bool %false %112 %137 %125 +OpSelectionMerge %140 None +OpBranchConditional %138 %139 %140 +%139 = OpLabel +%142 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%143 = OpLoad %v4float %142 +%144 = OpVectorShuffle %v3float %143 %143 0 1 2 +%145 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%146 = OpLoad %v4float %145 +%147 = OpVectorShuffle %v3float %146 %146 0 1 2 +%141 = OpExtInst %v3float %1 FMax %144 %147 +%148 = OpLoad %v4float %expectedB +%149 = OpVectorShuffle %v3float %148 %148 0 1 2 +%150 = OpFOrdEqual %v3bool %141 %149 +%151 = OpAll %bool %150 +OpBranch %140 %140 = OpLabel -%143 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%144 = OpLoad %v4float %143 -%145 = OpVectorShuffle %v3float %144 %144 0 1 2 -%146 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%147 = OpLoad %v4float %146 -%148 = OpVectorShuffle %v3float %147 %147 0 1 2 -%142 = OpExtInst %v3float %1 FMax %145 %148 -%149 = OpLoad %v4float %expectedB -%150 = OpVectorShuffle %v3float %149 %149 0 1 2 -%151 = OpFOrdEqual %v3bool %142 %150 -%152 = OpAll %bool %151 -OpBranch %141 -%141 = OpLabel -%153 = OpPhi %bool %false %127 %152 %140 -OpSelectionMerge %155 None -OpBranchConditional %153 %154 %155 +%152 = OpPhi %bool %false %126 %151 %139 +OpSelectionMerge %154 None +OpBranchConditional %152 %153 %154 +%153 = OpLabel +%156 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%157 = OpLoad %v4float %156 +%158 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%159 = OpLoad %v4float %158 +%155 = OpExtInst %v4float %1 FMax %157 %159 +%160 = OpLoad %v4float %expectedB +%161 = OpFOrdEqual %v4bool %155 %160 +%162 = OpAll %bool %161 +OpBranch %154 %154 = OpLabel -%157 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%158 = OpLoad %v4float %157 -%159 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%160 = OpLoad %v4float %159 -%156 = OpExtInst %v4float %1 FMax %158 %160 -%161 = OpLoad %v4float %expectedB -%162 = OpFOrdEqual %v4bool %156 %161 -%163 = OpAll %bool %162 -OpBranch %155 -%155 = OpLabel -%164 = OpPhi %bool %false %141 %163 %154 -OpSelectionMerge %166 None -OpBranchConditional %164 %165 %166 +%163 = OpPhi %bool %false %140 %162 %153 +OpSelectionMerge %165 None +OpBranchConditional %163 %164 %165 +%164 = OpLabel +%166 = OpLoad %v4float %expectedB +%167 = OpCompositeExtract %float %166 0 +%168 = OpFOrdEqual %bool %float_0 %167 +OpBranch %165 %165 = OpLabel -%167 = OpLoad %v4float %expectedB -%168 = OpCompositeExtract %float %167 0 -%169 = OpFOrdEqual %bool %float_0 %168 -OpBranch %166 -%166 = OpLabel -%170 = OpPhi %bool %false %155 %169 %165 -OpSelectionMerge %172 None -OpBranchConditional %170 %171 %172 +%169 = OpPhi %bool %false %154 %168 %164 +OpSelectionMerge %171 None +OpBranchConditional %169 %170 %171 +%170 = OpLabel +%173 = OpLoad %v4float %expectedB +%174 = OpVectorShuffle %v2float %173 %173 0 1 +%175 = OpFOrdEqual %v2bool %172 %174 +%176 = OpAll %bool %175 +OpBranch %171 %171 = OpLabel -%174 = OpLoad %v4float %expectedB -%175 = OpVectorShuffle %v2float %174 %174 0 1 -%176 = OpFOrdEqual %v2bool %173 %175 -%177 = OpAll %bool %176 -OpBranch %172 -%172 = OpLabel -%178 = OpPhi %bool %false %166 %177 %171 -OpSelectionMerge %180 None -OpBranchConditional %178 %179 %180 +%177 = OpPhi %bool %false %165 %176 %170 +OpSelectionMerge %179 None +OpBranchConditional %177 %178 %179 +%178 = OpLabel +%181 = OpLoad %v4float %expectedB +%182 = OpVectorShuffle %v3float %181 %181 0 1 2 +%183 = OpFOrdEqual %v3bool %180 %182 +%184 = OpAll %bool %183 +OpBranch %179 %179 = OpLabel -%182 = OpLoad %v4float %expectedB -%183 = OpVectorShuffle %v3float %182 %182 0 1 2 -%184 = OpFOrdEqual %v3bool %181 %183 -%185 = OpAll %bool %184 -OpBranch %180 -%180 = OpLabel -%186 = OpPhi %bool %false %172 %185 %179 -OpSelectionMerge %188 None -OpBranchConditional %186 %187 %188 +%185 = OpPhi %bool %false %171 %184 %178 +OpSelectionMerge %187 None +OpBranchConditional %185 %186 %187 +%186 = OpLabel +%188 = OpLoad %v4float %expectedB +%189 = OpFOrdEqual %v4bool %34 %188 +%190 = OpAll %bool %189 +OpBranch %187 %187 = OpLabel -%189 = OpLoad %v4float %expectedB -%190 = OpFOrdEqual %v4bool %34 %189 -%191 = OpAll %bool %190 -OpBranch %188 -%188 = OpLabel -%192 = OpPhi %bool %false %180 %191 %187 -OpSelectionMerge %196 None -OpBranchConditional %192 %194 %195 +%191 = OpPhi %bool %false %179 %190 %186 +OpSelectionMerge %195 None +OpBranchConditional %191 %193 %194 +%193 = OpLabel +%196 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%197 = OpLoad %v4float %196 +OpStore %192 %197 +OpBranch %195 %194 = OpLabel -%197 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%198 = OpLoad %v4float %197 -OpStore %193 %198 -OpBranch %196 +%198 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 +%200 = OpLoad %v4float %198 +OpStore %192 %200 +OpBranch %195 %195 = OpLabel -%199 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 -%201 = OpLoad %v4float %199 -OpStore %193 %201 -OpBranch %196 -%196 = OpLabel -%202 = OpLoad %v4float %193 -OpReturnValue %202 +%201 = OpLoad %v4float %192 +OpReturnValue %201 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/intrinsics/MaxInt.asm.frag b/third_party/skia/tests/sksl/intrinsics/MaxInt.asm.frag index cdd38cc999b0..19ef925a67fd 100644 --- a/third_party/skia/tests/sksl/intrinsics/MaxInt.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/MaxInt.asm.frag @@ -40,9 +40,9 @@ OpDecorate %50 RelaxedPrecision OpDecorate %52 RelaxedPrecision OpDecorate %54 RelaxedPrecision OpDecorate %56 RelaxedPrecision -OpDecorate %216 RelaxedPrecision +OpDecorate %215 RelaxedPrecision +OpDecorate %218 RelaxedPrecision OpDecorate %219 RelaxedPrecision -OpDecorate %220 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -55,8 +55,8 @@ OpDecorate %220 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -75,14 +75,16 @@ OpDecorate %220 RelaxedPrecision %66 = OpConstantComposite %v4int %int_0 %int_100 %int_75 %int_225 %false = OpConstantFalse %bool %v2int = OpTypeVector %int 2 +%80 = OpConstantComposite %v2int %int_50 %int_50 %v2bool = OpTypeVector %bool 2 %v3int = OpTypeVector %int 3 +%93 = OpConstantComposite %v3int %int_50 %int_50 %int_50 %v3bool = OpTypeVector %bool 3 +%104 = OpConstantComposite %v4int %int_50 %int_50 %int_50 %int_50 %v4bool = OpTypeVector %bool 4 -%118 = OpConstantComposite %v2int %int_50 %int_50 -%126 = OpConstantComposite %v3int %int_50 %int_50 %int_75 -%190 = OpConstantComposite %v2int %int_0 %int_100 -%198 = OpConstantComposite %v3int %int_0 %int_100 %int_75 +%125 = OpConstantComposite %v3int %int_50 %int_50 %int_75 +%189 = OpConstantComposite %v2int %int_0 %int_100 +%197 = OpConstantComposite %v3int %int_0 %int_100 %int_75 %_ptr_Function_v4float = OpTypePointer Function %v4float %int_2 = OpConstant %int 2 %_entrypoint_v = OpFunction %void None %15 @@ -100,7 +102,7 @@ OpFunctionEnd %intGreen = OpVariable %_ptr_Function_v4int Function %expectedA = OpVariable %_ptr_Function_v4int Function %expectedB = OpVariable %_ptr_Function_v4int Function -%210 = OpVariable %_ptr_Function_v4float Function +%209 = OpVariable %_ptr_Function_v4float Function %30 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %33 = OpLoad %v4float %30 %35 = OpVectorTimesScalar %v4float %33 %float_100 @@ -140,7 +142,6 @@ OpBranchConditional %73 %74 %75 %74 = OpLabel %77 = OpLoad %v4int %intValues %78 = OpVectorShuffle %v2int %77 %77 0 1 -%80 = OpCompositeConstruct %v2int %int_50 %int_50 %76 = OpExtInst %v2int %1 SMax %78 %80 %81 = OpLoad %v4int %expectedA %82 = OpVectorShuffle %v2int %81 %81 0 1 @@ -154,7 +155,6 @@ OpBranchConditional %86 %87 %88 %87 = OpLabel %90 = OpLoad %v4int %intValues %91 = OpVectorShuffle %v3int %90 %90 0 1 2 -%93 = OpCompositeConstruct %v3int %int_50 %int_50 %int_50 %89 = OpExtInst %v3int %1 SMax %91 %93 %94 = OpLoad %v4int %expectedA %95 = OpVectorShuffle %v3int %94 %94 0 1 2 @@ -167,7 +167,6 @@ OpSelectionMerge %101 None OpBranchConditional %99 %100 %101 %100 = OpLabel %103 = OpLoad %v4int %intValues -%104 = OpCompositeConstruct %v4int %int_50 %int_50 %int_50 %int_50 %102 = OpExtInst %v4int %1 SMax %103 %104 %105 = OpLoad %v4int %expectedA %106 = OpIEqual %v4bool %102 %105 @@ -187,139 +186,139 @@ OpBranch %111 OpSelectionMerge %117 None OpBranchConditional %115 %116 %117 %116 = OpLabel -%119 = OpLoad %v4int %expectedA -%120 = OpVectorShuffle %v2int %119 %119 0 1 -%121 = OpIEqual %v2bool %118 %120 -%122 = OpAll %bool %121 +%118 = OpLoad %v4int %expectedA +%119 = OpVectorShuffle %v2int %118 %118 0 1 +%120 = OpIEqual %v2bool %80 %119 +%121 = OpAll %bool %120 OpBranch %117 %117 = OpLabel -%123 = OpPhi %bool %false %111 %122 %116 -OpSelectionMerge %125 None -OpBranchConditional %123 %124 %125 +%122 = OpPhi %bool %false %111 %121 %116 +OpSelectionMerge %124 None +OpBranchConditional %122 %123 %124 +%123 = OpLabel +%126 = OpLoad %v4int %expectedA +%127 = OpVectorShuffle %v3int %126 %126 0 1 2 +%128 = OpIEqual %v3bool %125 %127 +%129 = OpAll %bool %128 +OpBranch %124 %124 = OpLabel -%127 = OpLoad %v4int %expectedA -%128 = OpVectorShuffle %v3int %127 %127 0 1 2 -%129 = OpIEqual %v3bool %126 %128 -%130 = OpAll %bool %129 -OpBranch %125 -%125 = OpLabel -%131 = OpPhi %bool %false %117 %130 %124 -OpSelectionMerge %133 None -OpBranchConditional %131 %132 %133 +%130 = OpPhi %bool %false %117 %129 %123 +OpSelectionMerge %132 None +OpBranchConditional %130 %131 %132 +%131 = OpLabel +%133 = OpLoad %v4int %expectedA +%134 = OpIEqual %v4bool %63 %133 +%135 = OpAll %bool %134 +OpBranch %132 %132 = OpLabel -%134 = OpLoad %v4int %expectedA -%135 = OpIEqual %v4bool %63 %134 -%136 = OpAll %bool %135 -OpBranch %133 -%133 = OpLabel -%137 = OpPhi %bool %false %125 %136 %132 -OpSelectionMerge %139 None -OpBranchConditional %137 %138 %139 +%136 = OpPhi %bool %false %124 %135 %131 +OpSelectionMerge %138 None +OpBranchConditional %136 %137 %138 +%137 = OpLabel +%140 = OpLoad %v4int %intValues +%141 = OpCompositeExtract %int %140 0 +%142 = OpLoad %v4int %intGreen +%143 = OpCompositeExtract %int %142 0 +%139 = OpExtInst %int %1 SMax %141 %143 +%144 = OpLoad %v4int %expectedB +%145 = OpCompositeExtract %int %144 0 +%146 = OpIEqual %bool %139 %145 +OpBranch %138 %138 = OpLabel -%141 = OpLoad %v4int %intValues -%142 = OpCompositeExtract %int %141 0 -%143 = OpLoad %v4int %intGreen -%144 = OpCompositeExtract %int %143 0 -%140 = OpExtInst %int %1 SMax %142 %144 -%145 = OpLoad %v4int %expectedB -%146 = OpCompositeExtract %int %145 0 -%147 = OpIEqual %bool %140 %146 -OpBranch %139 -%139 = OpLabel -%148 = OpPhi %bool %false %133 %147 %138 -OpSelectionMerge %150 None -OpBranchConditional %148 %149 %150 +%147 = OpPhi %bool %false %132 %146 %137 +OpSelectionMerge %149 None +OpBranchConditional %147 %148 %149 +%148 = OpLabel +%151 = OpLoad %v4int %intValues +%152 = OpVectorShuffle %v2int %151 %151 0 1 +%153 = OpLoad %v4int %intGreen +%154 = OpVectorShuffle %v2int %153 %153 0 1 +%150 = OpExtInst %v2int %1 SMax %152 %154 +%155 = OpLoad %v4int %expectedB +%156 = OpVectorShuffle %v2int %155 %155 0 1 +%157 = OpIEqual %v2bool %150 %156 +%158 = OpAll %bool %157 +OpBranch %149 %149 = OpLabel -%152 = OpLoad %v4int %intValues -%153 = OpVectorShuffle %v2int %152 %152 0 1 -%154 = OpLoad %v4int %intGreen -%155 = OpVectorShuffle %v2int %154 %154 0 1 -%151 = OpExtInst %v2int %1 SMax %153 %155 -%156 = OpLoad %v4int %expectedB -%157 = OpVectorShuffle %v2int %156 %156 0 1 -%158 = OpIEqual %v2bool %151 %157 -%159 = OpAll %bool %158 -OpBranch %150 -%150 = OpLabel -%160 = OpPhi %bool %false %139 %159 %149 -OpSelectionMerge %162 None -OpBranchConditional %160 %161 %162 +%159 = OpPhi %bool %false %138 %158 %148 +OpSelectionMerge %161 None +OpBranchConditional %159 %160 %161 +%160 = OpLabel +%163 = OpLoad %v4int %intValues +%164 = OpVectorShuffle %v3int %163 %163 0 1 2 +%165 = OpLoad %v4int %intGreen +%166 = OpVectorShuffle %v3int %165 %165 0 1 2 +%162 = OpExtInst %v3int %1 SMax %164 %166 +%167 = OpLoad %v4int %expectedB +%168 = OpVectorShuffle %v3int %167 %167 0 1 2 +%169 = OpIEqual %v3bool %162 %168 +%170 = OpAll %bool %169 +OpBranch %161 %161 = OpLabel -%164 = OpLoad %v4int %intValues -%165 = OpVectorShuffle %v3int %164 %164 0 1 2 -%166 = OpLoad %v4int %intGreen -%167 = OpVectorShuffle %v3int %166 %166 0 1 2 -%163 = OpExtInst %v3int %1 SMax %165 %167 -%168 = OpLoad %v4int %expectedB -%169 = OpVectorShuffle %v3int %168 %168 0 1 2 -%170 = OpIEqual %v3bool %163 %169 -%171 = OpAll %bool %170 -OpBranch %162 -%162 = OpLabel -%172 = OpPhi %bool %false %150 %171 %161 -OpSelectionMerge %174 None -OpBranchConditional %172 %173 %174 +%171 = OpPhi %bool %false %149 %170 %160 +OpSelectionMerge %173 None +OpBranchConditional %171 %172 %173 +%172 = OpLabel +%175 = OpLoad %v4int %intValues +%176 = OpLoad %v4int %intGreen +%174 = OpExtInst %v4int %1 SMax %175 %176 +%177 = OpLoad %v4int %expectedB +%178 = OpIEqual %v4bool %174 %177 +%179 = OpAll %bool %178 +OpBranch %173 %173 = OpLabel -%176 = OpLoad %v4int %intValues -%177 = OpLoad %v4int %intGreen -%175 = OpExtInst %v4int %1 SMax %176 %177 -%178 = OpLoad %v4int %expectedB -%179 = OpIEqual %v4bool %175 %178 -%180 = OpAll %bool %179 -OpBranch %174 -%174 = OpLabel -%181 = OpPhi %bool %false %162 %180 %173 -OpSelectionMerge %183 None -OpBranchConditional %181 %182 %183 +%180 = OpPhi %bool %false %161 %179 %172 +OpSelectionMerge %182 None +OpBranchConditional %180 %181 %182 +%181 = OpLabel +%183 = OpLoad %v4int %expectedB +%184 = OpCompositeExtract %int %183 0 +%185 = OpIEqual %bool %int_0 %184 +OpBranch %182 %182 = OpLabel -%184 = OpLoad %v4int %expectedB -%185 = OpCompositeExtract %int %184 0 -%186 = OpIEqual %bool %int_0 %185 -OpBranch %183 -%183 = OpLabel -%187 = OpPhi %bool %false %174 %186 %182 -OpSelectionMerge %189 None -OpBranchConditional %187 %188 %189 +%186 = OpPhi %bool %false %173 %185 %181 +OpSelectionMerge %188 None +OpBranchConditional %186 %187 %188 +%187 = OpLabel +%190 = OpLoad %v4int %expectedB +%191 = OpVectorShuffle %v2int %190 %190 0 1 +%192 = OpIEqual %v2bool %189 %191 +%193 = OpAll %bool %192 +OpBranch %188 %188 = OpLabel -%191 = OpLoad %v4int %expectedB -%192 = OpVectorShuffle %v2int %191 %191 0 1 -%193 = OpIEqual %v2bool %190 %192 -%194 = OpAll %bool %193 -OpBranch %189 -%189 = OpLabel -%195 = OpPhi %bool %false %183 %194 %188 -OpSelectionMerge %197 None -OpBranchConditional %195 %196 %197 +%194 = OpPhi %bool %false %182 %193 %187 +OpSelectionMerge %196 None +OpBranchConditional %194 %195 %196 +%195 = OpLabel +%198 = OpLoad %v4int %expectedB +%199 = OpVectorShuffle %v3int %198 %198 0 1 2 +%200 = OpIEqual %v3bool %197 %199 +%201 = OpAll %bool %200 +OpBranch %196 %196 = OpLabel -%199 = OpLoad %v4int %expectedB -%200 = OpVectorShuffle %v3int %199 %199 0 1 2 -%201 = OpIEqual %v3bool %198 %200 -%202 = OpAll %bool %201 -OpBranch %197 -%197 = OpLabel -%203 = OpPhi %bool %false %189 %202 %196 -OpSelectionMerge %205 None -OpBranchConditional %203 %204 %205 +%202 = OpPhi %bool %false %188 %201 %195 +OpSelectionMerge %204 None +OpBranchConditional %202 %203 %204 +%203 = OpLabel +%205 = OpLoad %v4int %expectedB +%206 = OpIEqual %v4bool %66 %205 +%207 = OpAll %bool %206 +OpBranch %204 %204 = OpLabel -%206 = OpLoad %v4int %expectedB -%207 = OpIEqual %v4bool %66 %206 -%208 = OpAll %bool %207 -OpBranch %205 -%205 = OpLabel -%209 = OpPhi %bool %false %197 %208 %204 -OpSelectionMerge %214 None -OpBranchConditional %209 %212 %213 +%208 = OpPhi %bool %false %196 %207 %203 +OpSelectionMerge %213 None +OpBranchConditional %208 %211 %212 +%211 = OpLabel +%214 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%215 = OpLoad %v4float %214 +OpStore %209 %215 +OpBranch %213 %212 = OpLabel -%215 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%216 = OpLoad %v4float %215 -OpStore %210 %216 -OpBranch %214 +%216 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 +%218 = OpLoad %v4float %216 +OpStore %209 %218 +OpBranch %213 %213 = OpLabel -%217 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 -%219 = OpLoad %v4float %217 -OpStore %210 %219 -OpBranch %214 -%214 = OpLabel -%220 = OpLoad %v4float %210 -OpReturnValue %220 +%219 = OpLoad %v4float %209 +OpReturnValue %219 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/intrinsics/MinFloat.asm.frag b/third_party/skia/tests/sksl/intrinsics/MinFloat.asm.frag index e25825b806e5..12ce3566223a 100644 --- a/third_party/skia/tests/sksl/intrinsics/MinFloat.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/MinFloat.asm.frag @@ -47,8 +47,8 @@ OpDecorate %200 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -62,9 +62,12 @@ OpDecorate %200 RelaxedPrecision %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 +%51 = OpConstantComposite %v2float %float_0_5 %float_0_5 %v2bool = OpTypeVector %bool 2 %v3float = OpTypeVector %float 3 +%65 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 %v3bool = OpTypeVector %bool 3 +%77 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 %v4bool = OpTypeVector %bool 4 %91 = OpConstantComposite %v2float %float_n1_25 %float_0 %99 = OpConstantComposite %v3float %float_n1_25 %float_0 %float_0_5 @@ -100,7 +103,6 @@ OpBranchConditional %44 %45 %46 %48 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %49 = OpLoad %v4float %48 %50 = OpVectorShuffle %v2float %49 %49 0 1 -%51 = OpCompositeConstruct %v2float %float_0_5 %float_0_5 %47 = OpExtInst %v2float %1 FMin %50 %51 %52 = OpLoad %v4float %expectedA %53 = OpVectorShuffle %v2float %52 %52 0 1 @@ -115,7 +117,6 @@ OpBranchConditional %57 %58 %59 %61 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %62 = OpLoad %v4float %61 %63 = OpVectorShuffle %v3float %62 %62 0 1 2 -%65 = OpCompositeConstruct %v3float %float_0_5 %float_0_5 %float_0_5 %60 = OpExtInst %v3float %1 FMin %63 %65 %66 = OpLoad %v4float %expectedA %67 = OpVectorShuffle %v3float %66 %66 0 1 2 @@ -129,7 +130,6 @@ OpBranchConditional %71 %72 %73 %72 = OpLabel %75 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %76 = OpLoad %v4float %75 -%77 = OpCompositeConstruct %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 %74 = OpExtInst %v4float %1 FMin %76 %77 %78 = OpLoad %v4float %expectedA %79 = OpFOrdEqual %v4bool %74 %78 diff --git a/third_party/skia/tests/sksl/intrinsics/MinInt.asm.frag b/third_party/skia/tests/sksl/intrinsics/MinInt.asm.frag index db7a7b257c8e..3d912b9824d3 100644 --- a/third_party/skia/tests/sksl/intrinsics/MinInt.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/MinInt.asm.frag @@ -55,8 +55,8 @@ OpDecorate %218 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -74,9 +74,12 @@ OpDecorate %218 RelaxedPrecision %65 = OpConstantComposite %v4int %int_n125 %int_0 %int_0 %int_100 %false = OpConstantFalse %bool %v2int = OpTypeVector %int 2 +%79 = OpConstantComposite %v2int %int_50 %int_50 %v2bool = OpTypeVector %bool 2 %v3int = OpTypeVector %int 3 +%92 = OpConstantComposite %v3int %int_50 %int_50 %int_50 %v3bool = OpTypeVector %bool 3 +%103 = OpConstantComposite %v4int %int_50 %int_50 %int_50 %int_50 %v4bool = OpTypeVector %bool 4 %117 = OpConstantComposite %v2int %int_n125 %int_0 %125 = OpConstantComposite %v3int %int_n125 %int_0 %int_50 @@ -138,7 +141,6 @@ OpBranchConditional %72 %73 %74 %73 = OpLabel %76 = OpLoad %v4int %intValues %77 = OpVectorShuffle %v2int %76 %76 0 1 -%79 = OpCompositeConstruct %v2int %int_50 %int_50 %75 = OpExtInst %v2int %1 SMin %77 %79 %80 = OpLoad %v4int %expectedA %81 = OpVectorShuffle %v2int %80 %80 0 1 @@ -152,7 +154,6 @@ OpBranchConditional %85 %86 %87 %86 = OpLabel %89 = OpLoad %v4int %intValues %90 = OpVectorShuffle %v3int %89 %89 0 1 2 -%92 = OpCompositeConstruct %v3int %int_50 %int_50 %int_50 %88 = OpExtInst %v3int %1 SMin %90 %92 %93 = OpLoad %v4int %expectedA %94 = OpVectorShuffle %v3int %93 %93 0 1 2 @@ -165,7 +166,6 @@ OpSelectionMerge %100 None OpBranchConditional %98 %99 %100 %99 = OpLabel %102 = OpLoad %v4int %intValues -%103 = OpCompositeConstruct %v4int %int_50 %int_50 %int_50 %int_50 %101 = OpExtInst %v4int %1 SMin %102 %103 %104 = OpLoad %v4int %expectedA %105 = OpIEqual %v4bool %101 %104 diff --git a/third_party/skia/tests/sksl/intrinsics/MixBool.asm.frag b/third_party/skia/tests/sksl/intrinsics/MixBool.asm.frag index b8993939d8c3..f8cfc0014d46 100644 --- a/third_party/skia/tests/sksl/intrinsics/MixBool.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/MixBool.asm.frag @@ -116,23 +116,17 @@ OpDecorate %395 RelaxedPrecision OpDecorate %397 RelaxedPrecision OpDecorate %404 RelaxedPrecision OpDecorate %405 RelaxedPrecision -OpDecorate %411 RelaxedPrecision OpDecorate %413 RelaxedPrecision OpDecorate %414 RelaxedPrecision -OpDecorate %420 RelaxedPrecision OpDecorate %422 RelaxedPrecision OpDecorate %423 RelaxedPrecision -OpDecorate %429 RelaxedPrecision OpDecorate %431 RelaxedPrecision OpDecorate %438 RelaxedPrecision OpDecorate %439 RelaxedPrecision -OpDecorate %444 RelaxedPrecision OpDecorate %446 RelaxedPrecision OpDecorate %447 RelaxedPrecision -OpDecorate %453 RelaxedPrecision OpDecorate %455 RelaxedPrecision OpDecorate %456 RelaxedPrecision -OpDecorate %462 RelaxedPrecision OpDecorate %464 RelaxedPrecision OpDecorate %474 RelaxedPrecision OpDecorate %476 RelaxedPrecision @@ -149,8 +143,8 @@ OpDecorate %477 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/MixFloat.asm.frag b/third_party/skia/tests/sksl/intrinsics/MixFloat.asm.frag index e48db145c34a..5a0f0ff88345 100644 --- a/third_party/skia/tests/sksl/intrinsics/MixFloat.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/MixFloat.asm.frag @@ -33,25 +33,15 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expectedBW RelaxedPrecision -OpDecorate %30 RelaxedPrecision OpDecorate %expectedWT RelaxedPrecision -OpDecorate %33 RelaxedPrecision OpDecorate %40 RelaxedPrecision OpDecorate %43 RelaxedPrecision -OpDecorate %44 RelaxedPrecision -OpDecorate %45 RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %55 RelaxedPrecision -OpDecorate %57 RelaxedPrecision -OpDecorate %59 RelaxedPrecision OpDecorate %67 RelaxedPrecision OpDecorate %69 RelaxedPrecision -OpDecorate %70 RelaxedPrecision -OpDecorate %71 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %81 RelaxedPrecision -OpDecorate %82 RelaxedPrecision -OpDecorate %83 RelaxedPrecision OpDecorate %92 RelaxedPrecision OpDecorate %93 RelaxedPrecision OpDecorate %96 RelaxedPrecision @@ -62,65 +52,55 @@ OpDecorate %106 RelaxedPrecision OpDecorate %107 RelaxedPrecision OpDecorate %109 RelaxedPrecision OpDecorate %110 RelaxedPrecision -OpDecorate %111 RelaxedPrecision OpDecorate %112 RelaxedPrecision OpDecorate %113 RelaxedPrecision OpDecorate %122 RelaxedPrecision OpDecorate %123 RelaxedPrecision OpDecorate %126 RelaxedPrecision OpDecorate %127 RelaxedPrecision -OpDecorate %128 RelaxedPrecision OpDecorate %129 RelaxedPrecision OpDecorate %130 RelaxedPrecision OpDecorate %139 RelaxedPrecision OpDecorate %141 RelaxedPrecision -OpDecorate %142 RelaxedPrecision OpDecorate %143 RelaxedPrecision OpDecorate %149 RelaxedPrecision OpDecorate %150 RelaxedPrecision OpDecorate %155 RelaxedPrecision OpDecorate %156 RelaxedPrecision -OpDecorate %157 RelaxedPrecision +OpDecorate %162 RelaxedPrecision OpDecorate %163 RelaxedPrecision -OpDecorate %164 RelaxedPrecision -OpDecorate %165 RelaxedPrecision -OpDecorate %171 RelaxedPrecision -OpDecorate %179 RelaxedPrecision -OpDecorate %180 RelaxedPrecision +OpDecorate %169 RelaxedPrecision +OpDecorate %177 RelaxedPrecision +OpDecorate %178 RelaxedPrecision +OpDecorate %181 RelaxedPrecision +OpDecorate %182 RelaxedPrecision OpDecorate %183 RelaxedPrecision OpDecorate %184 RelaxedPrecision -OpDecorate %185 RelaxedPrecision -OpDecorate %186 RelaxedPrecision -OpDecorate %193 RelaxedPrecision +OpDecorate %191 RelaxedPrecision +OpDecorate %192 RelaxedPrecision OpDecorate %194 RelaxedPrecision -OpDecorate %196 RelaxedPrecision +OpDecorate %195 RelaxedPrecision OpDecorate %197 RelaxedPrecision OpDecorate %198 RelaxedPrecision -OpDecorate %199 RelaxedPrecision -OpDecorate %200 RelaxedPrecision -OpDecorate %208 RelaxedPrecision +OpDecorate %206 RelaxedPrecision +OpDecorate %207 RelaxedPrecision OpDecorate %209 RelaxedPrecision -OpDecorate %211 RelaxedPrecision +OpDecorate %210 RelaxedPrecision OpDecorate %212 RelaxedPrecision OpDecorate %213 RelaxedPrecision -OpDecorate %214 RelaxedPrecision -OpDecorate %215 RelaxedPrecision +OpDecorate %221 RelaxedPrecision OpDecorate %223 RelaxedPrecision OpDecorate %225 RelaxedPrecision -OpDecorate %226 RelaxedPrecision -OpDecorate %227 RelaxedPrecision -OpDecorate %233 RelaxedPrecision -OpDecorate %234 RelaxedPrecision +OpDecorate %231 RelaxedPrecision +OpDecorate %232 RelaxedPrecision +OpDecorate %238 RelaxedPrecision OpDecorate %239 RelaxedPrecision -OpDecorate %240 RelaxedPrecision -OpDecorate %241 RelaxedPrecision +OpDecorate %246 RelaxedPrecision OpDecorate %247 RelaxedPrecision -OpDecorate %248 RelaxedPrecision -OpDecorate %249 RelaxedPrecision -OpDecorate %255 RelaxedPrecision +OpDecorate %253 RelaxedPrecision +OpDecorate %262 RelaxedPrecision OpDecorate %264 RelaxedPrecision -OpDecorate %266 RelaxedPrecision -OpDecorate %267 RelaxedPrecision +OpDecorate %265 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -133,8 +113,8 @@ OpDecorate %267 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -149,26 +129,31 @@ OpDecorate %267 RelaxedPrecision %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 +%44 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %45 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 %v4bool = OpTypeVector %bool 4 %float_0_25 = OpConstant %float 0.25 +%57 = OpConstantComposite %v4float %float_0_25 %float_0_25 %float_0_25 %float_0_25 %float_0_75 = OpConstant %float 0.75 %59 = OpConstantComposite %v4float %float_0_25 %float_0_75 %float_0 %float_1 +%70 = OpConstantComposite %v4float %float_0_75 %float_0_75 %float_0_75 %float_0_75 %71 = OpConstantComposite %v4float %float_0_75 %float_0_25 %float_0 %float_1 +%82 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %83 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %int_2 = OpConstant %int 2 %int_3 = OpConstant %int 3 +%111 = OpConstantComposite %v2float %float_0_5 %float_0_5 %v2bool = OpTypeVector %bool 2 %v3float = OpTypeVector %float 3 +%128 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 %v3bool = OpTypeVector %bool 3 -%155 = OpConstantComposite %v2float %float_0_5 %float_0_5 -%163 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 +%142 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 %int_4 = OpConstant %int 4 -%198 = OpConstantComposite %v2float %float_0 %float_0_5 -%213 = OpConstantComposite %v3float %float_0 %float_0_5 %float_0 -%226 = OpConstantComposite %v4float %float_0 %float_0_5 %float_0 %float_1 -%239 = OpConstantComposite %v2float %float_1 %float_0_5 -%247 = OpConstantComposite %v3float %float_1 %float_0_5 %float_1 +%196 = OpConstantComposite %v2float %float_0 %float_0_5 +%211 = OpConstantComposite %v3float %float_0 %float_0_5 %float_0 +%224 = OpConstantComposite %v4float %float_0 %float_0_5 %float_0 %float_1 +%237 = OpConstantComposite %v2float %float_1 %float_0_5 +%245 = OpConstantComposite %v3float %float_1 %float_0_5 %float_1 %_entrypoint_v = OpFunction %void None %15 %16 = OpLabel %20 = OpVariable %_ptr_Function_v2float Function @@ -182,14 +167,13 @@ OpFunctionEnd %25 = OpLabel %expectedBW = OpVariable %_ptr_Function_v4float Function %expectedWT = OpVariable %_ptr_Function_v4float Function -%259 = OpVariable %_ptr_Function_v4float Function +%257 = OpVariable %_ptr_Function_v4float Function OpStore %expectedBW %30 OpStore %expectedWT %33 %36 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %40 = OpLoad %v4float %36 %41 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 %43 = OpLoad %v4float %41 -%44 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0 %35 = OpExtInst %v4float %1 FMix %40 %43 %44 %46 = OpFOrdEqual %v4bool %35 %45 %48 = OpAll %bool %46 @@ -200,7 +184,6 @@ OpBranchConditional %48 %49 %50 %53 = OpLoad %v4float %52 %54 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 %55 = OpLoad %v4float %54 -%57 = OpCompositeConstruct %v4float %float_0_25 %float_0_25 %float_0_25 %float_0_25 %51 = OpExtInst %v4float %1 FMix %53 %55 %57 %60 = OpFOrdEqual %v4bool %51 %59 %61 = OpAll %bool %60 @@ -214,7 +197,6 @@ OpBranchConditional %62 %63 %64 %67 = OpLoad %v4float %66 %68 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 %69 = OpLoad %v4float %68 -%70 = OpCompositeConstruct %v4float %float_0_75 %float_0_75 %float_0_75 %float_0_75 %65 = OpExtInst %v4float %1 FMix %67 %69 %70 %72 = OpFOrdEqual %v4bool %65 %71 %73 = OpAll %bool %72 @@ -228,7 +210,6 @@ OpBranchConditional %74 %75 %76 %79 = OpLoad %v4float %78 %80 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 %81 = OpLoad %v4float %80 -%82 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 %77 = OpExtInst %v4float %1 FMix %79 %81 %82 %84 = OpFOrdEqual %v4bool %77 %83 %85 = OpAll %bool %84 @@ -260,7 +241,6 @@ OpBranchConditional %101 %102 %103 %108 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %109 = OpLoad %v4float %108 %110 = OpVectorShuffle %v2float %109 %109 0 1 -%111 = OpCompositeConstruct %v2float %float_0_5 %float_0_5 %104 = OpExtInst %v2float %1 FMix %107 %110 %111 %112 = OpLoad %v4float %expectedBW %113 = OpVectorShuffle %v2float %112 %112 0 1 @@ -278,7 +258,6 @@ OpBranchConditional %117 %118 %119 %125 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %126 = OpLoad %v4float %125 %127 = OpVectorShuffle %v3float %126 %126 0 1 2 -%128 = OpCompositeConstruct %v3float %float_0_5 %float_0_5 %float_0_5 %120 = OpExtInst %v3float %1 FMix %123 %127 %128 %129 = OpLoad %v4float %expectedBW %130 = OpVectorShuffle %v3float %129 %129 0 1 2 @@ -294,7 +273,6 @@ OpBranchConditional %134 %135 %136 %139 = OpLoad %v4float %138 %140 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 %141 = OpLoad %v4float %140 -%142 = OpCompositeConstruct %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 %137 = OpExtInst %v4float %1 FMix %139 %141 %142 %143 = OpLoad %v4float %expectedBW %144 = OpFOrdEqual %v4bool %137 %143 @@ -314,147 +292,147 @@ OpBranch %148 OpSelectionMerge %154 None OpBranchConditional %152 %153 %154 %153 = OpLabel -%156 = OpLoad %v4float %expectedBW -%157 = OpVectorShuffle %v2float %156 %156 0 1 -%158 = OpFOrdEqual %v2bool %155 %157 -%159 = OpAll %bool %158 +%155 = OpLoad %v4float %expectedBW +%156 = OpVectorShuffle %v2float %155 %155 0 1 +%157 = OpFOrdEqual %v2bool %111 %156 +%158 = OpAll %bool %157 OpBranch %154 %154 = OpLabel -%160 = OpPhi %bool %false %148 %159 %153 -OpSelectionMerge %162 None -OpBranchConditional %160 %161 %162 +%159 = OpPhi %bool %false %148 %158 %153 +OpSelectionMerge %161 None +OpBranchConditional %159 %160 %161 +%160 = OpLabel +%162 = OpLoad %v4float %expectedBW +%163 = OpVectorShuffle %v3float %162 %162 0 1 2 +%164 = OpFOrdEqual %v3bool %128 %163 +%165 = OpAll %bool %164 +OpBranch %161 %161 = OpLabel -%164 = OpLoad %v4float %expectedBW -%165 = OpVectorShuffle %v3float %164 %164 0 1 2 -%166 = OpFOrdEqual %v3bool %163 %165 -%167 = OpAll %bool %166 -OpBranch %162 -%162 = OpLabel -%168 = OpPhi %bool %false %154 %167 %161 -OpSelectionMerge %170 None -OpBranchConditional %168 %169 %170 -%169 = OpLabel -%171 = OpLoad %v4float %expectedBW -%172 = OpFOrdEqual %v4bool %30 %171 -%173 = OpAll %bool %172 -OpBranch %170 -%170 = OpLabel -%174 = OpPhi %bool %false %162 %173 %169 -OpSelectionMerge %176 None -OpBranchConditional %174 %175 %176 -%175 = OpLabel -%178 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 -%179 = OpLoad %v4float %178 -%180 = OpCompositeExtract %float %179 0 -%181 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 -%183 = OpLoad %v4float %181 +%166 = OpPhi %bool %false %154 %165 %160 +OpSelectionMerge %168 None +OpBranchConditional %166 %167 %168 +%167 = OpLabel +%169 = OpLoad %v4float %expectedBW +%170 = OpFOrdEqual %v4bool %30 %169 +%171 = OpAll %bool %170 +OpBranch %168 +%168 = OpLabel +%172 = OpPhi %bool %false %161 %171 %167 +OpSelectionMerge %174 None +OpBranchConditional %172 %173 %174 +%173 = OpLabel +%176 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 +%177 = OpLoad %v4float %176 +%178 = OpCompositeExtract %float %177 0 +%179 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 +%181 = OpLoad %v4float %179 +%182 = OpCompositeExtract %float %181 0 +%175 = OpExtInst %float %1 FMix %178 %182 %float_0 +%183 = OpLoad %v4float %expectedWT %184 = OpCompositeExtract %float %183 0 -%177 = OpExtInst %float %1 FMix %180 %184 %float_0 -%185 = OpLoad %v4float %expectedWT -%186 = OpCompositeExtract %float %185 0 -%187 = OpFOrdEqual %bool %177 %186 -OpBranch %176 -%176 = OpLabel -%188 = OpPhi %bool %false %170 %187 %175 -OpSelectionMerge %190 None -OpBranchConditional %188 %189 %190 -%189 = OpLabel -%192 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 -%193 = OpLoad %v4float %192 -%194 = OpVectorShuffle %v2float %193 %193 0 1 -%195 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 -%196 = OpLoad %v4float %195 -%197 = OpVectorShuffle %v2float %196 %196 0 1 -%191 = OpExtInst %v2float %1 FMix %194 %197 %198 -%199 = OpLoad %v4float %expectedWT -%200 = OpVectorShuffle %v2float %199 %199 0 1 -%201 = OpFOrdEqual %v2bool %191 %200 -%202 = OpAll %bool %201 -OpBranch %190 -%190 = OpLabel -%203 = OpPhi %bool %false %176 %202 %189 -OpSelectionMerge %205 None -OpBranchConditional %203 %204 %205 -%204 = OpLabel -%207 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 -%208 = OpLoad %v4float %207 -%209 = OpVectorShuffle %v3float %208 %208 0 1 2 -%210 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 -%211 = OpLoad %v4float %210 -%212 = OpVectorShuffle %v3float %211 %211 0 1 2 -%206 = OpExtInst %v3float %1 FMix %209 %212 %213 -%214 = OpLoad %v4float %expectedWT -%215 = OpVectorShuffle %v3float %214 %214 0 1 2 -%216 = OpFOrdEqual %v3bool %206 %215 -%217 = OpAll %bool %216 -OpBranch %205 -%205 = OpLabel -%218 = OpPhi %bool %false %190 %217 %204 -OpSelectionMerge %220 None -OpBranchConditional %218 %219 %220 -%219 = OpLabel -%222 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 +%185 = OpFOrdEqual %bool %175 %184 +OpBranch %174 +%174 = OpLabel +%186 = OpPhi %bool %false %168 %185 %173 +OpSelectionMerge %188 None +OpBranchConditional %186 %187 %188 +%187 = OpLabel +%190 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 +%191 = OpLoad %v4float %190 +%192 = OpVectorShuffle %v2float %191 %191 0 1 +%193 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 +%194 = OpLoad %v4float %193 +%195 = OpVectorShuffle %v2float %194 %194 0 1 +%189 = OpExtInst %v2float %1 FMix %192 %195 %196 +%197 = OpLoad %v4float %expectedWT +%198 = OpVectorShuffle %v2float %197 %197 0 1 +%199 = OpFOrdEqual %v2bool %189 %198 +%200 = OpAll %bool %199 +OpBranch %188 +%188 = OpLabel +%201 = OpPhi %bool %false %174 %200 %187 +OpSelectionMerge %203 None +OpBranchConditional %201 %202 %203 +%202 = OpLabel +%205 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 +%206 = OpLoad %v4float %205 +%207 = OpVectorShuffle %v3float %206 %206 0 1 2 +%208 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 +%209 = OpLoad %v4float %208 +%210 = OpVectorShuffle %v3float %209 %209 0 1 2 +%204 = OpExtInst %v3float %1 FMix %207 %210 %211 +%212 = OpLoad %v4float %expectedWT +%213 = OpVectorShuffle %v3float %212 %212 0 1 2 +%214 = OpFOrdEqual %v3bool %204 %213 +%215 = OpAll %bool %214 +OpBranch %203 +%203 = OpLabel +%216 = OpPhi %bool %false %188 %215 %202 +OpSelectionMerge %218 None +OpBranchConditional %216 %217 %218 +%217 = OpLabel +%220 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 +%221 = OpLoad %v4float %220 +%222 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 %223 = OpLoad %v4float %222 -%224 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 -%225 = OpLoad %v4float %224 -%221 = OpExtInst %v4float %1 FMix %223 %225 %226 -%227 = OpLoad %v4float %expectedWT -%228 = OpFOrdEqual %v4bool %221 %227 -%229 = OpAll %bool %228 -OpBranch %220 -%220 = OpLabel -%230 = OpPhi %bool %false %205 %229 %219 -OpSelectionMerge %232 None -OpBranchConditional %230 %231 %232 -%231 = OpLabel -%233 = OpLoad %v4float %expectedWT -%234 = OpCompositeExtract %float %233 0 -%235 = OpFOrdEqual %bool %float_1 %234 -OpBranch %232 -%232 = OpLabel -%236 = OpPhi %bool %false %220 %235 %231 -OpSelectionMerge %238 None -OpBranchConditional %236 %237 %238 -%237 = OpLabel -%240 = OpLoad %v4float %expectedWT -%241 = OpVectorShuffle %v2float %240 %240 0 1 -%242 = OpFOrdEqual %v2bool %239 %241 -%243 = OpAll %bool %242 -OpBranch %238 -%238 = OpLabel -%244 = OpPhi %bool %false %232 %243 %237 -OpSelectionMerge %246 None -OpBranchConditional %244 %245 %246 -%245 = OpLabel -%248 = OpLoad %v4float %expectedWT -%249 = OpVectorShuffle %v3float %248 %248 0 1 2 -%250 = OpFOrdEqual %v3bool %247 %249 -%251 = OpAll %bool %250 -OpBranch %246 -%246 = OpLabel -%252 = OpPhi %bool %false %238 %251 %245 -OpSelectionMerge %254 None -OpBranchConditional %252 %253 %254 -%253 = OpLabel -%255 = OpLoad %v4float %expectedWT -%256 = OpFOrdEqual %v4bool %33 %255 -%257 = OpAll %bool %256 -OpBranch %254 -%254 = OpLabel -%258 = OpPhi %bool %false %246 %257 %253 -OpSelectionMerge %262 None -OpBranchConditional %258 %260 %261 -%260 = OpLabel -%263 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%219 = OpExtInst %v4float %1 FMix %221 %223 %224 +%225 = OpLoad %v4float %expectedWT +%226 = OpFOrdEqual %v4bool %219 %225 +%227 = OpAll %bool %226 +OpBranch %218 +%218 = OpLabel +%228 = OpPhi %bool %false %203 %227 %217 +OpSelectionMerge %230 None +OpBranchConditional %228 %229 %230 +%229 = OpLabel +%231 = OpLoad %v4float %expectedWT +%232 = OpCompositeExtract %float %231 0 +%233 = OpFOrdEqual %bool %float_1 %232 +OpBranch %230 +%230 = OpLabel +%234 = OpPhi %bool %false %218 %233 %229 +OpSelectionMerge %236 None +OpBranchConditional %234 %235 %236 +%235 = OpLabel +%238 = OpLoad %v4float %expectedWT +%239 = OpVectorShuffle %v2float %238 %238 0 1 +%240 = OpFOrdEqual %v2bool %237 %239 +%241 = OpAll %bool %240 +OpBranch %236 +%236 = OpLabel +%242 = OpPhi %bool %false %230 %241 %235 +OpSelectionMerge %244 None +OpBranchConditional %242 %243 %244 +%243 = OpLabel +%246 = OpLoad %v4float %expectedWT +%247 = OpVectorShuffle %v3float %246 %246 0 1 2 +%248 = OpFOrdEqual %v3bool %245 %247 +%249 = OpAll %bool %248 +OpBranch %244 +%244 = OpLabel +%250 = OpPhi %bool %false %236 %249 %243 +OpSelectionMerge %252 None +OpBranchConditional %250 %251 %252 +%251 = OpLabel +%253 = OpLoad %v4float %expectedWT +%254 = OpFOrdEqual %v4bool %33 %253 +%255 = OpAll %bool %254 +OpBranch %252 +%252 = OpLabel +%256 = OpPhi %bool %false %244 %255 %251 +OpSelectionMerge %260 None +OpBranchConditional %256 %258 %259 +%258 = OpLabel +%261 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%262 = OpLoad %v4float %261 +OpStore %257 %262 +OpBranch %260 +%259 = OpLabel +%263 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 %264 = OpLoad %v4float %263 -OpStore %259 %264 -OpBranch %262 -%261 = OpLabel -%265 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%266 = OpLoad %v4float %265 -OpStore %259 %266 -OpBranch %262 -%262 = OpLabel -%267 = OpLoad %v4float %259 -OpReturnValue %267 +OpStore %257 %264 +OpBranch %260 +%260 = OpLabel +%265 = OpLoad %v4float %257 +OpReturnValue %265 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/intrinsics/Mod.asm.frag b/third_party/skia/tests/sksl/intrinsics/Mod.asm.frag index b0e7fc3a7809..b6c8c4dab50a 100644 --- a/third_party/skia/tests/sksl/intrinsics/Mod.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Mod.asm.frag @@ -30,32 +30,25 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expectedA RelaxedPrecision -OpDecorate %30 RelaxedPrecision OpDecorate %expectedB RelaxedPrecision -OpDecorate %33 RelaxedPrecision OpDecorate %40 RelaxedPrecision OpDecorate %41 RelaxedPrecision OpDecorate %42 RelaxedPrecision OpDecorate %43 RelaxedPrecision OpDecorate %49 RelaxedPrecision OpDecorate %50 RelaxedPrecision -OpDecorate %51 RelaxedPrecision OpDecorate %52 RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %62 RelaxedPrecision OpDecorate %63 RelaxedPrecision -OpDecorate %65 RelaxedPrecision OpDecorate %66 RelaxedPrecision OpDecorate %67 RelaxedPrecision OpDecorate %76 RelaxedPrecision -OpDecorate %77 RelaxedPrecision OpDecorate %78 RelaxedPrecision OpDecorate %85 RelaxedPrecision OpDecorate %86 RelaxedPrecision -OpDecorate %91 RelaxedPrecision OpDecorate %92 RelaxedPrecision OpDecorate %93 RelaxedPrecision -OpDecorate %99 RelaxedPrecision OpDecorate %100 RelaxedPrecision OpDecorate %101 RelaxedPrecision OpDecorate %107 RelaxedPrecision @@ -82,10 +75,8 @@ OpDecorate %159 RelaxedPrecision OpDecorate %160 RelaxedPrecision OpDecorate %166 RelaxedPrecision OpDecorate %167 RelaxedPrecision -OpDecorate %172 RelaxedPrecision OpDecorate %173 RelaxedPrecision OpDecorate %174 RelaxedPrecision -OpDecorate %180 RelaxedPrecision OpDecorate %181 RelaxedPrecision OpDecorate %182 RelaxedPrecision OpDecorate %188 RelaxedPrecision @@ -104,8 +95,8 @@ OpDecorate %202 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -119,9 +110,12 @@ OpDecorate %202 RelaxedPrecision %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 +%51 = OpConstantComposite %v2float %float_1 %float_1 %v2bool = OpTypeVector %bool 2 %v3float = OpTypeVector %float 3 +%65 = OpConstantComposite %v3float %float_1 %float_1 %float_1 %v3bool = OpTypeVector %bool 3 +%77 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %v4bool = OpTypeVector %bool 4 %91 = OpConstantComposite %v2float %float_0_75 %float_0 %99 = OpConstantComposite %v3float %float_0_75 %float_0 %float_0_75 @@ -159,7 +153,6 @@ OpBranchConditional %44 %45 %46 %48 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %49 = OpLoad %v4float %48 %50 = OpVectorShuffle %v2float %49 %49 0 1 -%51 = OpCompositeConstruct %v2float %float_1 %float_1 %47 = OpFMod %v2float %50 %51 %52 = OpLoad %v4float %expectedA %53 = OpVectorShuffle %v2float %52 %52 0 1 @@ -174,7 +167,6 @@ OpBranchConditional %57 %58 %59 %61 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %62 = OpLoad %v4float %61 %63 = OpVectorShuffle %v3float %62 %62 0 1 2 -%65 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1 %60 = OpFMod %v3float %63 %65 %66 = OpLoad %v4float %expectedA %67 = OpVectorShuffle %v3float %66 %66 0 1 2 @@ -188,7 +180,6 @@ OpBranchConditional %71 %72 %73 %72 = OpLabel %75 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %76 = OpLoad %v4float %75 -%77 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 %74 = OpFMod %v4float %76 %77 %78 = OpLoad %v4float %expectedA %79 = OpFOrdEqual %v4bool %74 %78 diff --git a/third_party/skia/tests/sksl/intrinsics/Modf.asm.frag b/third_party/skia/tests/sksl/intrinsics/Modf.asm.frag index 1d57aa5cbd2c..ea9feaffee35 100644 --- a/third_party/skia/tests/sksl/intrinsics/Modf.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Modf.asm.frag @@ -43,8 +43,8 @@ OpDecorate %149 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Normalize.asm.frag b/third_party/skia/tests/sksl/intrinsics/Normalize.asm.frag index 7a5c319f856a..75537310f10c 100644 --- a/third_party/skia/tests/sksl/intrinsics/Normalize.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Normalize.asm.frag @@ -26,7 +26,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expectedVec RelaxedPrecision -OpDecorate %29 RelaxedPrecision OpDecorate %31 RelaxedPrecision OpDecorate %36 RelaxedPrecision OpDecorate %37 RelaxedPrecision @@ -47,10 +46,8 @@ OpDecorate %70 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %78 RelaxedPrecision OpDecorate %79 RelaxedPrecision -OpDecorate %84 RelaxedPrecision OpDecorate %85 RelaxedPrecision OpDecorate %86 RelaxedPrecision -OpDecorate %92 RelaxedPrecision OpDecorate %93 RelaxedPrecision OpDecorate %94 RelaxedPrecision OpDecorate %100 RelaxedPrecision @@ -69,8 +66,8 @@ OpDecorate %114 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Not.asm.frag b/third_party/skia/tests/sksl/intrinsics/Not.asm.frag index 7bba6ba9be1c..f35e571c2eb9 100644 --- a/third_party/skia/tests/sksl/intrinsics/Not.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Not.asm.frag @@ -63,8 +63,8 @@ OpDecorate %119 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/NotEqual.asm.frag b/third_party/skia/tests/sksl/intrinsics/NotEqual.asm.frag index 4f85b5652792..3cc058391559 100644 --- a/third_party/skia/tests/sksl/intrinsics/NotEqual.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/NotEqual.asm.frag @@ -82,7 +82,7 @@ OpStore %expectTTFF %27 %32 = OpLoad %v4float %29 %33 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 %35 = OpLoad %v4float %33 -%28 = OpFOrdNotEqual %v4bool %32 %35 +%28 = OpFUnordNotEqual %v4bool %32 %35 %36 = OpCompositeExtract %bool %28 0 %37 = OpSelect %int %36 %int_1 %int_0 %38 = OpConvertSToF %float %37 diff --git a/third_party/skia/tests/sksl/intrinsics/OuterProduct.asm.frag b/third_party/skia/tests/sksl/intrinsics/OuterProduct.asm.frag index 076d45b29aa6..242f187ffeb5 100644 --- a/third_party/skia/tests/sksl/intrinsics/OuterProduct.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/OuterProduct.asm.frag @@ -33,14 +33,13 @@ OpMemberDecorate %_UniformBuffer 4 RelaxedPrecision OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 -OpDecorate %132 RelaxedPrecision -OpDecorate %136 RelaxedPrecision -OpDecorate %137 RelaxedPrecision -OpDecorate %175 RelaxedPrecision -OpDecorate %196 RelaxedPrecision -OpDecorate %229 RelaxedPrecision -OpDecorate %231 RelaxedPrecision -OpDecorate %232 RelaxedPrecision +OpDecorate %123 RelaxedPrecision +OpDecorate %127 RelaxedPrecision +OpDecorate %161 RelaxedPrecision +OpDecorate %178 RelaxedPrecision +OpDecorate %206 RelaxedPrecision +OpDecorate %208 RelaxedPrecision +OpDecorate %209 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -75,6 +74,9 @@ OpDecorate %232 RelaxedPrecision %float_6 = OpConstant %float 6 %float_4 = OpConstant %float 4 %float_8 = OpConstant %float 8 +%51 = OpConstantComposite %v2float %float_3 %float_6 +%52 = OpConstantComposite %v2float %float_4 %float_8 +%53 = OpConstantComposite %mat2v2float %51 %52 %v2bool = OpTypeVector %bool 2 %_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float %int_3 = OpConstant %int 3 @@ -84,11 +86,18 @@ OpDecorate %232 RelaxedPrecision %float_10 = OpConstant %float 10 %float_15 = OpConstant %float 15 %float_18 = OpConstant %float 18 +%79 = OpConstantComposite %v3float %float_4 %float_8 %float_12 +%80 = OpConstantComposite %v3float %float_5 %float_10 %float_15 +%81 = OpConstantComposite %v3float %float_6 %float_12 %float_18 +%82 = OpConstantComposite %mat3v3float %79 %80 %81 %v3bool = OpTypeVector %bool 3 %mat3v2float = OpTypeMatrix %v2float 3 +%106 = OpConstantComposite %v2float %float_5 %float_10 +%107 = OpConstantComposite %v2float %float_6 %float_12 +%108 = OpConstantComposite %mat3v2float %52 %106 %107 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_4 = OpConstant %int 4 -%137 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_2 +%128 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_2 %mat4v4float = OpTypeMatrix %v4float 4 %float_n1_25 = OpConstant %float -1.25 %float_0_75 = OpConstant %float 0.75 @@ -96,9 +105,18 @@ OpDecorate %232 RelaxedPrecision %float_n2_5 = OpConstant %float -2.5 %float_1_5 = OpConstant %float 1.5 %float_4_5 = OpConstant %float 4.5 +%136 = OpConstantComposite %v4float %float_n1_25 %float_0 %float_0_75 %float_2_25 +%137 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 +%138 = OpConstantComposite %v4float %float_n2_5 %float_0 %float_1_5 %float_4_5 +%139 = OpConstantComposite %mat4v4float %136 %137 %137 %138 %v4bool = OpTypeVector %bool 4 %mat2v4float = OpTypeMatrix %v4float 2 +%164 = OpConstantComposite %mat2v4float %136 %138 %mat4v2float = OpTypeMatrix %v2float 4 +%180 = OpConstantComposite %v2float %float_n1_25 %float_n2_5 +%181 = OpConstantComposite %v2float %float_0_75 %float_1_5 +%182 = OpConstantComposite %v2float %float_2_25 %float_4_5 +%183 = OpConstantComposite %mat4v2float %180 %22 %181 %182 %_ptr_Function_v4float = OpTypePointer Function %v4float %_entrypoint_v = OpFunction %void None %19 %20 = OpLabel @@ -112,7 +130,7 @@ OpFunctionEnd %27 = OpFunctionParameter %_ptr_Function_v2float %28 = OpLabel %c12 = OpVariable %_ptr_Function_v2float Function -%223 = OpVariable %_ptr_Function_v4float Function +%200 = OpVariable %_ptr_Function_v4float Function OpStore %c12 %32 %35 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2 %40 = OpAccessChain %_ptr_Uniform_v2float %35 %int_0 @@ -121,182 +139,140 @@ OpStore %c12 %32 %45 = OpAccessChain %_ptr_Uniform_v2float %43 %int_1 %46 = OpLoad %v2float %45 %34 = OpOuterProduct %mat2v2float %42 %46 -%51 = OpCompositeConstruct %v2float %float_3 %float_6 -%52 = OpCompositeConstruct %v2float %float_4 %float_8 -%53 = OpCompositeConstruct %mat2v2float %51 %52 %55 = OpCompositeExtract %v2float %34 0 -%56 = OpCompositeExtract %v2float %53 0 -%57 = OpFOrdEqual %v2bool %55 %56 -%58 = OpAll %bool %57 -%59 = OpCompositeExtract %v2float %34 1 -%60 = OpCompositeExtract %v2float %53 1 -%61 = OpFOrdEqual %v2bool %59 %60 -%62 = OpAll %bool %61 -%63 = OpLogicalAnd %bool %58 %62 -OpSelectionMerge %65 None -OpBranchConditional %63 %64 %65 -%64 = OpLabel -%67 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 -%70 = OpAccessChain %_ptr_Uniform_v3float %67 %int_0 -%72 = OpLoad %v3float %70 -%73 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 -%74 = OpAccessChain %_ptr_Uniform_v3float %73 %int_1 -%75 = OpLoad %v3float %74 -%66 = OpOuterProduct %mat3v3float %72 %75 -%81 = OpCompositeConstruct %v3float %float_4 %float_8 %float_12 -%82 = OpCompositeConstruct %v3float %float_5 %float_10 %float_15 -%83 = OpCompositeConstruct %v3float %float_6 %float_12 %float_18 -%84 = OpCompositeConstruct %mat3v3float %81 %82 %83 -%86 = OpCompositeExtract %v3float %66 0 -%87 = OpCompositeExtract %v3float %84 0 -%88 = OpFOrdEqual %v3bool %86 %87 +%56 = OpFOrdEqual %v2bool %55 %51 +%57 = OpAll %bool %56 +%58 = OpCompositeExtract %v2float %34 1 +%59 = OpFOrdEqual %v2bool %58 %52 +%60 = OpAll %bool %59 +%61 = OpLogicalAnd %bool %57 %60 +OpSelectionMerge %63 None +OpBranchConditional %61 %62 %63 +%62 = OpLabel +%65 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 +%68 = OpAccessChain %_ptr_Uniform_v3float %65 %int_0 +%70 = OpLoad %v3float %68 +%71 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 +%72 = OpAccessChain %_ptr_Uniform_v3float %71 %int_1 +%73 = OpLoad %v3float %72 +%64 = OpOuterProduct %mat3v3float %70 %73 +%84 = OpCompositeExtract %v3float %64 0 +%85 = OpFOrdEqual %v3bool %84 %79 +%86 = OpAll %bool %85 +%87 = OpCompositeExtract %v3float %64 1 +%88 = OpFOrdEqual %v3bool %87 %80 %89 = OpAll %bool %88 -%90 = OpCompositeExtract %v3float %66 1 -%91 = OpCompositeExtract %v3float %84 1 -%92 = OpFOrdEqual %v3bool %90 %91 +%90 = OpLogicalAnd %bool %86 %89 +%91 = OpCompositeExtract %v3float %64 2 +%92 = OpFOrdEqual %v3bool %91 %81 %93 = OpAll %bool %92 -%94 = OpLogicalAnd %bool %89 %93 -%95 = OpCompositeExtract %v3float %66 2 -%96 = OpCompositeExtract %v3float %84 2 -%97 = OpFOrdEqual %v3bool %95 %96 -%98 = OpAll %bool %97 -%99 = OpLogicalAnd %bool %94 %98 -OpBranch %65 -%65 = OpLabel -%100 = OpPhi %bool %false %28 %99 %64 -OpSelectionMerge %102 None -OpBranchConditional %100 %101 %102 -%101 = OpLabel -%104 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2 -%105 = OpAccessChain %_ptr_Uniform_v2float %104 %int_0 -%106 = OpLoad %v2float %105 -%107 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 -%108 = OpAccessChain %_ptr_Uniform_v3float %107 %int_1 -%109 = OpLoad %v3float %108 -%103 = OpOuterProduct %mat3v2float %106 %109 -%111 = OpCompositeConstruct %v2float %float_4 %float_8 -%112 = OpCompositeConstruct %v2float %float_5 %float_10 -%113 = OpCompositeConstruct %v2float %float_6 %float_12 -%114 = OpCompositeConstruct %mat3v2float %111 %112 %113 -%115 = OpCompositeExtract %v2float %103 0 -%116 = OpCompositeExtract %v2float %114 0 -%117 = OpFOrdEqual %v2bool %115 %116 +%94 = OpLogicalAnd %bool %90 %93 +OpBranch %63 +%63 = OpLabel +%95 = OpPhi %bool %false %28 %94 %62 +OpSelectionMerge %97 None +OpBranchConditional %95 %96 %97 +%96 = OpLabel +%99 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2 +%100 = OpAccessChain %_ptr_Uniform_v2float %99 %int_0 +%101 = OpLoad %v2float %100 +%102 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 +%103 = OpAccessChain %_ptr_Uniform_v3float %102 %int_1 +%104 = OpLoad %v3float %103 +%98 = OpOuterProduct %mat3v2float %101 %104 +%109 = OpCompositeExtract %v2float %98 0 +%110 = OpFOrdEqual %v2bool %109 %52 +%111 = OpAll %bool %110 +%112 = OpCompositeExtract %v2float %98 1 +%113 = OpFOrdEqual %v2bool %112 %106 +%114 = OpAll %bool %113 +%115 = OpLogicalAnd %bool %111 %114 +%116 = OpCompositeExtract %v2float %98 2 +%117 = OpFOrdEqual %v2bool %116 %107 %118 = OpAll %bool %117 -%119 = OpCompositeExtract %v2float %103 1 -%120 = OpCompositeExtract %v2float %114 1 -%121 = OpFOrdEqual %v2bool %119 %120 -%122 = OpAll %bool %121 -%123 = OpLogicalAnd %bool %118 %122 -%124 = OpCompositeExtract %v2float %103 2 -%125 = OpCompositeExtract %v2float %114 2 -%126 = OpFOrdEqual %v2bool %124 %125 -%127 = OpAll %bool %126 -%128 = OpLogicalAnd %bool %123 %127 -OpBranch %102 -%102 = OpLabel -%129 = OpPhi %bool %false %65 %128 %101 -OpSelectionMerge %131 None -OpBranchConditional %129 %130 %131 -%130 = OpLabel -%133 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 -%136 = OpLoad %v4float %133 -%132 = OpOuterProduct %mat4v4float %136 %137 -%145 = OpCompositeConstruct %v4float %float_n1_25 %float_0 %float_0_75 %float_2_25 -%146 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0 -%147 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0 -%148 = OpCompositeConstruct %v4float %float_n2_5 %float_0 %float_1_5 %float_4_5 -%149 = OpCompositeConstruct %mat4v4float %145 %146 %147 %148 -%151 = OpCompositeExtract %v4float %132 0 -%152 = OpCompositeExtract %v4float %149 0 -%153 = OpFOrdEqual %v4bool %151 %152 +%119 = OpLogicalAnd %bool %115 %118 +OpBranch %97 +%97 = OpLabel +%120 = OpPhi %bool %false %63 %119 %96 +OpSelectionMerge %122 None +OpBranchConditional %120 %121 %122 +%121 = OpLabel +%124 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 +%127 = OpLoad %v4float %124 +%123 = OpOuterProduct %mat4v4float %127 %128 +%141 = OpCompositeExtract %v4float %123 0 +%142 = OpFOrdEqual %v4bool %141 %136 +%143 = OpAll %bool %142 +%144 = OpCompositeExtract %v4float %123 1 +%145 = OpFOrdEqual %v4bool %144 %137 +%146 = OpAll %bool %145 +%147 = OpLogicalAnd %bool %143 %146 +%148 = OpCompositeExtract %v4float %123 2 +%149 = OpFOrdEqual %v4bool %148 %137 +%150 = OpAll %bool %149 +%151 = OpLogicalAnd %bool %147 %150 +%152 = OpCompositeExtract %v4float %123 3 +%153 = OpFOrdEqual %v4bool %152 %138 %154 = OpAll %bool %153 -%155 = OpCompositeExtract %v4float %132 1 -%156 = OpCompositeExtract %v4float %149 1 -%157 = OpFOrdEqual %v4bool %155 %156 -%158 = OpAll %bool %157 -%159 = OpLogicalAnd %bool %154 %158 -%160 = OpCompositeExtract %v4float %132 2 -%161 = OpCompositeExtract %v4float %149 2 -%162 = OpFOrdEqual %v4bool %160 %161 -%163 = OpAll %bool %162 -%164 = OpLogicalAnd %bool %159 %163 -%165 = OpCompositeExtract %v4float %132 3 -%166 = OpCompositeExtract %v4float %149 3 -%167 = OpFOrdEqual %v4bool %165 %166 -%168 = OpAll %bool %167 -%169 = OpLogicalAnd %bool %164 %168 -OpBranch %131 -%131 = OpLabel -%170 = OpPhi %bool %false %102 %169 %130 -OpSelectionMerge %172 None -OpBranchConditional %170 %171 %172 -%171 = OpLabel -%174 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 -%175 = OpLoad %v4float %174 +%155 = OpLogicalAnd %bool %151 %154 +OpBranch %122 +%122 = OpLabel +%156 = OpPhi %bool %false %97 %155 %121 +OpSelectionMerge %158 None +OpBranchConditional %156 %157 %158 +%157 = OpLabel +%160 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 +%161 = OpLoad %v4float %160 +%162 = OpLoad %v2float %c12 +%159 = OpOuterProduct %mat2v4float %161 %162 +%165 = OpCompositeExtract %v4float %159 0 +%166 = OpFOrdEqual %v4bool %165 %136 +%167 = OpAll %bool %166 +%168 = OpCompositeExtract %v4float %159 1 +%169 = OpFOrdEqual %v4bool %168 %138 +%170 = OpAll %bool %169 +%171 = OpLogicalAnd %bool %167 %170 +OpBranch %158 +%158 = OpLabel +%172 = OpPhi %bool %false %122 %171 %157 +OpSelectionMerge %174 None +OpBranchConditional %172 %173 %174 +%173 = OpLabel %176 = OpLoad %v2float %c12 -%173 = OpOuterProduct %mat2v4float %175 %176 -%178 = OpCompositeConstruct %v4float %float_n1_25 %float_0 %float_0_75 %float_2_25 -%179 = OpCompositeConstruct %v4float %float_n2_5 %float_0 %float_1_5 %float_4_5 -%180 = OpCompositeConstruct %mat2v4float %178 %179 -%181 = OpCompositeExtract %v4float %173 0 -%182 = OpCompositeExtract %v4float %180 0 -%183 = OpFOrdEqual %v4bool %181 %182 -%184 = OpAll %bool %183 -%185 = OpCompositeExtract %v4float %173 1 -%186 = OpCompositeExtract %v4float %180 1 -%187 = OpFOrdEqual %v4bool %185 %186 -%188 = OpAll %bool %187 -%189 = OpLogicalAnd %bool %184 %188 -OpBranch %172 -%172 = OpLabel -%190 = OpPhi %bool %false %131 %189 %171 -OpSelectionMerge %192 None -OpBranchConditional %190 %191 %192 -%191 = OpLabel -%194 = OpLoad %v2float %c12 -%195 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 -%196 = OpLoad %v4float %195 -%193 = OpOuterProduct %mat4v2float %194 %196 -%198 = OpCompositeConstruct %v2float %float_n1_25 %float_n2_5 -%199 = OpCompositeConstruct %v2float %float_0 %float_0 -%200 = OpCompositeConstruct %v2float %float_0_75 %float_1_5 -%201 = OpCompositeConstruct %v2float %float_2_25 %float_4_5 -%202 = OpCompositeConstruct %mat4v2float %198 %199 %200 %201 -%203 = OpCompositeExtract %v2float %193 0 -%204 = OpCompositeExtract %v2float %202 0 -%205 = OpFOrdEqual %v2bool %203 %204 -%206 = OpAll %bool %205 -%207 = OpCompositeExtract %v2float %193 1 -%208 = OpCompositeExtract %v2float %202 1 -%209 = OpFOrdEqual %v2bool %207 %208 -%210 = OpAll %bool %209 -%211 = OpLogicalAnd %bool %206 %210 -%212 = OpCompositeExtract %v2float %193 2 -%213 = OpCompositeExtract %v2float %202 2 -%214 = OpFOrdEqual %v2bool %212 %213 -%215 = OpAll %bool %214 -%216 = OpLogicalAnd %bool %211 %215 -%217 = OpCompositeExtract %v2float %193 3 -%218 = OpCompositeExtract %v2float %202 3 -%219 = OpFOrdEqual %v2bool %217 %218 -%220 = OpAll %bool %219 -%221 = OpLogicalAnd %bool %216 %220 -OpBranch %192 -%192 = OpLabel -%222 = OpPhi %bool %false %172 %221 %191 -OpSelectionMerge %227 None -OpBranchConditional %222 %225 %226 -%225 = OpLabel -%228 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%229 = OpLoad %v4float %228 -OpStore %223 %229 -OpBranch %227 -%226 = OpLabel -%230 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%231 = OpLoad %v4float %230 -OpStore %223 %231 -OpBranch %227 -%227 = OpLabel -%232 = OpLoad %v4float %223 -OpReturnValue %232 +%177 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4 +%178 = OpLoad %v4float %177 +%175 = OpOuterProduct %mat4v2float %176 %178 +%184 = OpCompositeExtract %v2float %175 0 +%185 = OpFOrdEqual %v2bool %184 %180 +%186 = OpAll %bool %185 +%187 = OpCompositeExtract %v2float %175 1 +%188 = OpFOrdEqual %v2bool %187 %22 +%189 = OpAll %bool %188 +%190 = OpLogicalAnd %bool %186 %189 +%191 = OpCompositeExtract %v2float %175 2 +%192 = OpFOrdEqual %v2bool %191 %181 +%193 = OpAll %bool %192 +%194 = OpLogicalAnd %bool %190 %193 +%195 = OpCompositeExtract %v2float %175 3 +%196 = OpFOrdEqual %v2bool %195 %182 +%197 = OpAll %bool %196 +%198 = OpLogicalAnd %bool %194 %197 +OpBranch %174 +%174 = OpLabel +%199 = OpPhi %bool %false %158 %198 %173 +OpSelectionMerge %204 None +OpBranchConditional %199 %202 %203 +%202 = OpLabel +%205 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%206 = OpLoad %v4float %205 +OpStore %200 %206 +OpBranch %204 +%203 = OpLabel +%207 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%208 = OpLoad %v4float %207 +OpStore %200 %208 +OpBranch %204 +%204 = OpLabel +%209 = OpLoad %v4float %200 +OpReturnValue %209 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/intrinsics/PackUnorm2x16.asm.frag b/third_party/skia/tests/sksl/intrinsics/PackUnorm2x16.asm.frag index 799785379d55..cdec5ab43dcc 100644 --- a/third_party/skia/tests/sksl/intrinsics/PackUnorm2x16.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/PackUnorm2x16.asm.frag @@ -41,8 +41,8 @@ OpDecorate %76 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Pow.asm.frag b/third_party/skia/tests/sksl/intrinsics/Pow.asm.frag index c8a0482c264c..77fbb58f7b3f 100644 --- a/third_party/skia/tests/sksl/intrinsics/Pow.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Pow.asm.frag @@ -27,9 +27,7 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expected RelaxedPrecision -OpDecorate %31 RelaxedPrecision OpDecorate %exponents RelaxedPrecision -OpDecorate %37 RelaxedPrecision OpDecorate %39 RelaxedPrecision OpDecorate %44 RelaxedPrecision OpDecorate %45 RelaxedPrecision @@ -38,13 +36,11 @@ OpDecorate %47 RelaxedPrecision OpDecorate %51 RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision -OpDecorate %55 RelaxedPrecision OpDecorate %56 RelaxedPrecision OpDecorate %57 RelaxedPrecision OpDecorate %64 RelaxedPrecision OpDecorate %66 RelaxedPrecision OpDecorate %67 RelaxedPrecision -OpDecorate %69 RelaxedPrecision OpDecorate %70 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %78 RelaxedPrecision @@ -53,13 +49,10 @@ OpDecorate %81 RelaxedPrecision OpDecorate %82 RelaxedPrecision OpDecorate %90 RelaxedPrecision OpDecorate %91 RelaxedPrecision -OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %98 RelaxedPrecision -OpDecorate %104 RelaxedPrecision OpDecorate %105 RelaxedPrecision OpDecorate %106 RelaxedPrecision -OpDecorate %112 RelaxedPrecision OpDecorate %113 RelaxedPrecision OpDecorate %123 RelaxedPrecision OpDecorate %126 RelaxedPrecision @@ -76,8 +69,8 @@ OpDecorate %127 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Radians.asm.frag b/third_party/skia/tests/sksl/intrinsics/Radians.asm.frag index cab3f9de1461..81d0e23f7002 100644 --- a/third_party/skia/tests/sksl/intrinsics/Radians.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Radians.asm.frag @@ -49,10 +49,8 @@ OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %94 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision -OpDecorate %103 RelaxedPrecision OpDecorate %105 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %119 RelaxedPrecision @@ -69,8 +67,8 @@ OpDecorate %120 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Reflect.asm.frag b/third_party/skia/tests/sksl/intrinsics/Reflect.asm.frag index 5f312f586113..1a21d87dca8b 100644 --- a/third_party/skia/tests/sksl/intrinsics/Reflect.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Reflect.asm.frag @@ -33,11 +33,8 @@ OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expectedX RelaxedPrecision OpDecorate %expectedXY RelaxedPrecision -OpDecorate %32 RelaxedPrecision OpDecorate %expectedXYZ RelaxedPrecision -OpDecorate %39 RelaxedPrecision OpDecorate %expectedXYZW RelaxedPrecision -OpDecorate %46 RelaxedPrecision OpDecorate %48 RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision @@ -79,8 +76,8 @@ OpDecorate %134 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Refract.asm.frag b/third_party/skia/tests/sksl/intrinsics/Refract.asm.frag index 75e8b6c70e34..60c9e2249fda 100644 --- a/third_party/skia/tests/sksl/intrinsics/Refract.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Refract.asm.frag @@ -37,13 +37,10 @@ OpDecorate %30 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %37 RelaxedPrecision OpDecorate %39 RelaxedPrecision -OpDecorate %43 RelaxedPrecision OpDecorate %44 RelaxedPrecision OpDecorate %45 RelaxedPrecision -OpDecorate %48 RelaxedPrecision OpDecorate %49 RelaxedPrecision OpDecorate %50 RelaxedPrecision -OpDecorate %51 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -65,12 +62,12 @@ OpDecorate %51 RelaxedPrecision %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_3 = OpConstant %int 3 %int_4 = OpConstant %int 4 -%v2float = OpTypeVector %float 2 %float_0_5 = OpConstant %float 0.5 %float_n0_866025388 = OpConstant %float -0.866025388 +%v2float = OpTypeVector %float 2 %43 = OpConstantComposite %v2float %float_0_5 %float_n0_866025388 -%v3float = OpTypeVector %float 3 %float_0 = OpConstant %float 0 +%v3float = OpTypeVector %float 3 %48 = OpConstantComposite %v3float %float_0_5 %float_0 %float_n0_866025388 %51 = OpConstantComposite %v4float %float_0_5 %float_0 %float_0 %float_n0_866025388 %main = OpFunction %void None %14 diff --git a/third_party/skia/tests/sksl/intrinsics/Round.asm.frag b/third_party/skia/tests/sksl/intrinsics/Round.asm.frag index 6c5d52e9f061..d2af19c7d355 100644 --- a/third_party/skia/tests/sksl/intrinsics/Round.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Round.asm.frag @@ -51,8 +51,8 @@ OpDecorate %84 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/RoundEven.asm.frag b/third_party/skia/tests/sksl/intrinsics/RoundEven.asm.frag index 8e5651562220..00067ec1d46e 100644 --- a/third_party/skia/tests/sksl/intrinsics/RoundEven.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/RoundEven.asm.frag @@ -51,8 +51,8 @@ OpDecorate %84 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Saturate.asm.frag b/third_party/skia/tests/sksl/intrinsics/Saturate.asm.frag index afc166a79c58..3a570a43f9fa 100644 --- a/third_party/skia/tests/sksl/intrinsics/Saturate.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Saturate.asm.frag @@ -26,32 +26,30 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expected RelaxedPrecision -OpDecorate %30 RelaxedPrecision OpDecorate %37 RelaxedPrecision OpDecorate %38 RelaxedPrecision OpDecorate %39 RelaxedPrecision OpDecorate %40 RelaxedPrecision OpDecorate %46 RelaxedPrecision OpDecorate %47 RelaxedPrecision +OpDecorate %49 RelaxedPrecision OpDecorate %50 RelaxedPrecision -OpDecorate %51 RelaxedPrecision +OpDecorate %59 RelaxedPrecision OpDecorate %60 RelaxedPrecision -OpDecorate %61 RelaxedPrecision +OpDecorate %64 RelaxedPrecision OpDecorate %65 RelaxedPrecision -OpDecorate %66 RelaxedPrecision -OpDecorate %75 RelaxedPrecision -OpDecorate %78 RelaxedPrecision +OpDecorate %74 RelaxedPrecision +OpDecorate %77 RelaxedPrecision +OpDecorate %84 RelaxedPrecision OpDecorate %85 RelaxedPrecision -OpDecorate %86 RelaxedPrecision +OpDecorate %90 RelaxedPrecision OpDecorate %91 RelaxedPrecision -OpDecorate %92 RelaxedPrecision OpDecorate %98 RelaxedPrecision OpDecorate %99 RelaxedPrecision -OpDecorate %100 RelaxedPrecision -OpDecorate %106 RelaxedPrecision -OpDecorate %116 RelaxedPrecision +OpDecorate %105 RelaxedPrecision +OpDecorate %115 RelaxedPrecision +OpDecorate %118 RelaxedPrecision OpDecorate %119 RelaxedPrecision -OpDecorate %120 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -64,8 +62,8 @@ OpDecorate %120 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -77,11 +75,16 @@ OpDecorate %120 RelaxedPrecision %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 +%48 = OpConstantComposite %v2float %float_1 %float_1 %v2bool = OpTypeVector %bool 2 %v3float = OpTypeVector %float 3 +%62 = OpConstantComposite %v3float %float_0 %float_0 %float_0 +%63 = OpConstantComposite %v3float %float_1 %float_1 %float_1 %v3bool = OpTypeVector %bool 3 +%75 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 +%76 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %v4bool = OpTypeVector %bool 4 -%98 = OpConstantComposite %v3float %float_0 %float_0 %float_0_75 +%97 = OpConstantComposite %v3float %float_0 %float_0 %float_0_75 %int_1 = OpConstant %int 1 %int_2 = OpConstant %int 2 %_entrypoint_v = OpFunction %void None %15 @@ -96,7 +99,7 @@ OpFunctionEnd %24 = OpFunctionParameter %_ptr_Function_v2float %25 = OpLabel %expected = OpVariable %_ptr_Function_v4float Function -%110 = OpVariable %_ptr_Function_v4float Function +%109 = OpVariable %_ptr_Function_v4float Function OpStore %expected %30 %33 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %37 = OpLoad %v4float %33 @@ -111,97 +114,91 @@ OpBranchConditional %41 %42 %43 %45 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %46 = OpLoad %v4float %45 %47 = OpVectorShuffle %v2float %46 %46 0 1 -%48 = OpCompositeConstruct %v2float %float_0 %float_0 -%49 = OpCompositeConstruct %v2float %float_1 %float_1 -%44 = OpExtInst %v2float %1 FClamp %47 %48 %49 -%50 = OpLoad %v4float %expected -%51 = OpVectorShuffle %v2float %50 %50 0 1 -%52 = OpFOrdEqual %v2bool %44 %51 -%54 = OpAll %bool %52 +%44 = OpExtInst %v2float %1 FClamp %47 %19 %48 +%49 = OpLoad %v4float %expected +%50 = OpVectorShuffle %v2float %49 %49 0 1 +%51 = OpFOrdEqual %v2bool %44 %50 +%53 = OpAll %bool %51 OpBranch %43 %43 = OpLabel -%55 = OpPhi %bool %false %25 %54 %42 -OpSelectionMerge %57 None -OpBranchConditional %55 %56 %57 +%54 = OpPhi %bool %false %25 %53 %42 +OpSelectionMerge %56 None +OpBranchConditional %54 %55 %56 +%55 = OpLabel +%58 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%59 = OpLoad %v4float %58 +%60 = OpVectorShuffle %v3float %59 %59 0 1 2 +%57 = OpExtInst %v3float %1 FClamp %60 %62 %63 +%64 = OpLoad %v4float %expected +%65 = OpVectorShuffle %v3float %64 %64 0 1 2 +%66 = OpFOrdEqual %v3bool %57 %65 +%68 = OpAll %bool %66 +OpBranch %56 %56 = OpLabel -%59 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%60 = OpLoad %v4float %59 -%61 = OpVectorShuffle %v3float %60 %60 0 1 2 -%63 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0 -%64 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1 -%58 = OpExtInst %v3float %1 FClamp %61 %63 %64 -%65 = OpLoad %v4float %expected -%66 = OpVectorShuffle %v3float %65 %65 0 1 2 -%67 = OpFOrdEqual %v3bool %58 %66 -%69 = OpAll %bool %67 -OpBranch %57 -%57 = OpLabel -%70 = OpPhi %bool %false %43 %69 %56 -OpSelectionMerge %72 None -OpBranchConditional %70 %71 %72 +%69 = OpPhi %bool %false %43 %68 %55 +OpSelectionMerge %71 None +OpBranchConditional %69 %70 %71 +%70 = OpLabel +%73 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%74 = OpLoad %v4float %73 +%72 = OpExtInst %v4float %1 FClamp %74 %75 %76 +%77 = OpLoad %v4float %expected +%78 = OpFOrdEqual %v4bool %72 %77 +%80 = OpAll %bool %78 +OpBranch %71 %71 = OpLabel -%74 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%75 = OpLoad %v4float %74 -%76 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0 -%77 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 -%73 = OpExtInst %v4float %1 FClamp %75 %76 %77 -%78 = OpLoad %v4float %expected -%79 = OpFOrdEqual %v4bool %73 %78 -%81 = OpAll %bool %79 -OpBranch %72 -%72 = OpLabel -%82 = OpPhi %bool %false %57 %81 %71 -OpSelectionMerge %84 None -OpBranchConditional %82 %83 %84 +%81 = OpPhi %bool %false %56 %80 %70 +OpSelectionMerge %83 None +OpBranchConditional %81 %82 %83 +%82 = OpLabel +%84 = OpLoad %v4float %expected +%85 = OpCompositeExtract %float %84 0 +%86 = OpFOrdEqual %bool %float_0 %85 +OpBranch %83 %83 = OpLabel -%85 = OpLoad %v4float %expected -%86 = OpCompositeExtract %float %85 0 -%87 = OpFOrdEqual %bool %float_0 %86 -OpBranch %84 -%84 = OpLabel -%88 = OpPhi %bool %false %72 %87 %83 -OpSelectionMerge %90 None -OpBranchConditional %88 %89 %90 +%87 = OpPhi %bool %false %71 %86 %82 +OpSelectionMerge %89 None +OpBranchConditional %87 %88 %89 +%88 = OpLabel +%90 = OpLoad %v4float %expected +%91 = OpVectorShuffle %v2float %90 %90 0 1 +%92 = OpFOrdEqual %v2bool %19 %91 +%93 = OpAll %bool %92 +OpBranch %89 %89 = OpLabel -%91 = OpLoad %v4float %expected -%92 = OpVectorShuffle %v2float %91 %91 0 1 -%93 = OpFOrdEqual %v2bool %19 %92 -%94 = OpAll %bool %93 -OpBranch %90 -%90 = OpLabel -%95 = OpPhi %bool %false %84 %94 %89 -OpSelectionMerge %97 None -OpBranchConditional %95 %96 %97 +%94 = OpPhi %bool %false %83 %93 %88 +OpSelectionMerge %96 None +OpBranchConditional %94 %95 %96 +%95 = OpLabel +%98 = OpLoad %v4float %expected +%99 = OpVectorShuffle %v3float %98 %98 0 1 2 +%100 = OpFOrdEqual %v3bool %97 %99 +%101 = OpAll %bool %100 +OpBranch %96 %96 = OpLabel -%99 = OpLoad %v4float %expected -%100 = OpVectorShuffle %v3float %99 %99 0 1 2 -%101 = OpFOrdEqual %v3bool %98 %100 -%102 = OpAll %bool %101 -OpBranch %97 -%97 = OpLabel -%103 = OpPhi %bool %false %90 %102 %96 -OpSelectionMerge %105 None -OpBranchConditional %103 %104 %105 +%102 = OpPhi %bool %false %89 %101 %95 +OpSelectionMerge %104 None +OpBranchConditional %102 %103 %104 +%103 = OpLabel +%105 = OpLoad %v4float %expected +%106 = OpFOrdEqual %v4bool %30 %105 +%107 = OpAll %bool %106 +OpBranch %104 %104 = OpLabel -%106 = OpLoad %v4float %expected -%107 = OpFOrdEqual %v4bool %30 %106 -%108 = OpAll %bool %107 -OpBranch %105 -%105 = OpLabel -%109 = OpPhi %bool %false %97 %108 %104 -OpSelectionMerge %113 None -OpBranchConditional %109 %111 %112 +%108 = OpPhi %bool %false %96 %107 %103 +OpSelectionMerge %112 None +OpBranchConditional %108 %110 %111 +%110 = OpLabel +%113 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%115 = OpLoad %v4float %113 +OpStore %109 %115 +OpBranch %112 %111 = OpLabel -%114 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%116 = OpLoad %v4float %114 -OpStore %110 %116 -OpBranch %113 +%116 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 +%118 = OpLoad %v4float %116 +OpStore %109 %118 +OpBranch %112 %112 = OpLabel -%117 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 -%119 = OpLoad %v4float %117 -OpStore %110 %119 -OpBranch %113 -%113 = OpLabel -%120 = OpLoad %v4float %110 -OpReturnValue %120 +%119 = OpLoad %v4float %109 +OpReturnValue %119 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/intrinsics/SignFloat.asm.frag b/third_party/skia/tests/sksl/intrinsics/SignFloat.asm.frag index b2a0a46c631c..99e5326b69b6 100644 --- a/third_party/skia/tests/sksl/intrinsics/SignFloat.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/SignFloat.asm.frag @@ -26,7 +26,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %expected RelaxedPrecision -OpDecorate %30 RelaxedPrecision OpDecorate %32 RelaxedPrecision OpDecorate %37 RelaxedPrecision OpDecorate %38 RelaxedPrecision @@ -47,10 +46,8 @@ OpDecorate %71 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %80 RelaxedPrecision -OpDecorate %85 RelaxedPrecision OpDecorate %86 RelaxedPrecision OpDecorate %87 RelaxedPrecision -OpDecorate %93 RelaxedPrecision OpDecorate %94 RelaxedPrecision OpDecorate %95 RelaxedPrecision OpDecorate %101 RelaxedPrecision @@ -69,8 +66,8 @@ OpDecorate %115 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/SignInt.asm.frag b/third_party/skia/tests/sksl/intrinsics/SignInt.asm.frag index 97a563d95f0a..5252341c3f89 100644 --- a/third_party/skia/tests/sksl/intrinsics/SignInt.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/SignInt.asm.frag @@ -56,8 +56,8 @@ OpDecorate %140 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -112,8 +112,8 @@ OpBranchConditional %43 %44 %45 %51 = OpConvertFToS %int %50 %52 = OpCompositeExtract %float %49 1 %53 = OpConvertFToS %int %52 -%54 = OpCompositeConstruct %v2int %51 %53 -%46 = OpExtInst %v2int %1 SSign %54 +%55 = OpCompositeConstruct %v2int %51 %53 +%46 = OpExtInst %v2int %1 SSign %55 %56 = OpLoad %v4int %expected %57 = OpVectorShuffle %v2int %56 %56 0 1 %58 = OpIEqual %v2bool %46 %57 @@ -133,8 +133,8 @@ OpBranchConditional %61 %62 %63 %72 = OpConvertFToS %int %71 %73 = OpCompositeExtract %float %67 2 %74 = OpConvertFToS %int %73 -%75 = OpCompositeConstruct %v3int %70 %72 %74 -%64 = OpExtInst %v3int %1 SSign %75 +%76 = OpCompositeConstruct %v3int %70 %72 %74 +%64 = OpExtInst %v3int %1 SSign %76 %77 = OpLoad %v4int %expected %78 = OpVectorShuffle %v3int %77 %77 0 1 2 %79 = OpIEqual %v3bool %64 %78 diff --git a/third_party/skia/tests/sksl/intrinsics/Sin.asm.frag b/third_party/skia/tests/sksl/intrinsics/Sin.asm.frag index d0c5202a3f50..0938888d6a48 100644 --- a/third_party/skia/tests/sksl/intrinsics/Sin.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Sin.asm.frag @@ -49,10 +49,8 @@ OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %94 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision -OpDecorate %103 RelaxedPrecision OpDecorate %105 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %119 RelaxedPrecision @@ -69,8 +67,8 @@ OpDecorate %120 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Sinh.asm.frag b/third_party/skia/tests/sksl/intrinsics/Sinh.asm.frag index 57fee58ecf16..7cb81c1abb70 100644 --- a/third_party/skia/tests/sksl/intrinsics/Sinh.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Sinh.asm.frag @@ -49,10 +49,8 @@ OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %94 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision -OpDecorate %103 RelaxedPrecision OpDecorate %105 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %119 RelaxedPrecision @@ -69,8 +67,8 @@ OpDecorate %120 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Smoothstep.asm.frag b/third_party/skia/tests/sksl/intrinsics/Smoothstep.asm.frag index 56bc332852b2..91e24135d152 100644 --- a/third_party/skia/tests/sksl/intrinsics/Smoothstep.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Smoothstep.asm.frag @@ -28,16 +28,12 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %constVal RelaxedPrecision -OpDecorate %31 RelaxedPrecision OpDecorate %expectedA RelaxedPrecision -OpDecorate %35 RelaxedPrecision OpDecorate %expectedB RelaxedPrecision -OpDecorate %37 RelaxedPrecision OpDecorate %39 RelaxedPrecision OpDecorate %40 RelaxedPrecision OpDecorate %44 RelaxedPrecision OpDecorate %45 RelaxedPrecision -OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision OpDecorate %55 RelaxedPrecision OpDecorate %62 RelaxedPrecision @@ -60,7 +56,6 @@ OpDecorate %116 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %119 RelaxedPrecision OpDecorate %120 RelaxedPrecision -OpDecorate %121 RelaxedPrecision OpDecorate %122 RelaxedPrecision OpDecorate %123 RelaxedPrecision OpDecorate %131 RelaxedPrecision @@ -69,7 +64,6 @@ OpDecorate %133 RelaxedPrecision OpDecorate %135 RelaxedPrecision OpDecorate %136 RelaxedPrecision OpDecorate %137 RelaxedPrecision -OpDecorate %138 RelaxedPrecision OpDecorate %139 RelaxedPrecision OpDecorate %140 RelaxedPrecision OpDecorate %148 RelaxedPrecision @@ -82,10 +76,8 @@ OpDecorate %155 RelaxedPrecision OpDecorate %156 RelaxedPrecision OpDecorate %162 RelaxedPrecision OpDecorate %163 RelaxedPrecision -OpDecorate %168 RelaxedPrecision OpDecorate %169 RelaxedPrecision OpDecorate %170 RelaxedPrecision -OpDecorate %176 RelaxedPrecision OpDecorate %177 RelaxedPrecision OpDecorate %178 RelaxedPrecision OpDecorate %184 RelaxedPrecision @@ -126,8 +118,8 @@ OpDecorate %249 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Sqrt.asm.frag b/third_party/skia/tests/sksl/intrinsics/Sqrt.asm.frag index 6711473a71ae..d0d3db63d9db 100644 --- a/third_party/skia/tests/sksl/intrinsics/Sqrt.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Sqrt.asm.frag @@ -29,7 +29,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %negativeVal RelaxedPrecision -OpDecorate %32 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %39 RelaxedPrecision OpDecorate %40 RelaxedPrecision @@ -50,23 +49,18 @@ OpDecorate %77 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %88 RelaxedPrecision OpDecorate %89 RelaxedPrecision -OpDecorate %95 RelaxedPrecision OpDecorate %97 RelaxedPrecision OpDecorate %98 RelaxedPrecision -OpDecorate %105 RelaxedPrecision OpDecorate %107 RelaxedPrecision OpDecorate %108 RelaxedPrecision -OpDecorate %115 RelaxedPrecision OpDecorate %117 RelaxedPrecision OpDecorate %123 RelaxedPrecision OpDecorate %125 RelaxedPrecision OpDecorate %126 RelaxedPrecision OpDecorate %131 RelaxedPrecision -OpDecorate %132 RelaxedPrecision OpDecorate %134 RelaxedPrecision OpDecorate %135 RelaxedPrecision OpDecorate %141 RelaxedPrecision -OpDecorate %142 RelaxedPrecision OpDecorate %144 RelaxedPrecision OpDecorate %145 RelaxedPrecision OpDecorate %151 RelaxedPrecision @@ -87,8 +81,8 @@ OpDecorate %168 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Step.asm.frag b/third_party/skia/tests/sksl/intrinsics/Step.asm.frag index 8dcd901c0416..3d7b67b85fe8 100644 --- a/third_party/skia/tests/sksl/intrinsics/Step.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Step.asm.frag @@ -28,33 +28,26 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %constGreen RelaxedPrecision -OpDecorate %29 RelaxedPrecision OpDecorate %expectedA RelaxedPrecision -OpDecorate %31 RelaxedPrecision OpDecorate %expectedB RelaxedPrecision -OpDecorate %33 RelaxedPrecision OpDecorate %41 RelaxedPrecision OpDecorate %42 RelaxedPrecision OpDecorate %43 RelaxedPrecision OpDecorate %44 RelaxedPrecision -OpDecorate %49 RelaxedPrecision OpDecorate %51 RelaxedPrecision OpDecorate %52 RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision -OpDecorate %62 RelaxedPrecision OpDecorate %65 RelaxedPrecision OpDecorate %66 RelaxedPrecision OpDecorate %67 RelaxedPrecision OpDecorate %68 RelaxedPrecision -OpDecorate %76 RelaxedPrecision OpDecorate %78 RelaxedPrecision OpDecorate %79 RelaxedPrecision OpDecorate %86 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %92 RelaxedPrecision OpDecorate %93 RelaxedPrecision -OpDecorate %99 RelaxedPrecision OpDecorate %100 RelaxedPrecision OpDecorate %101 RelaxedPrecision OpDecorate %107 RelaxedPrecision @@ -64,12 +57,10 @@ OpDecorate %117 RelaxedPrecision OpDecorate %118 RelaxedPrecision OpDecorate %125 RelaxedPrecision OpDecorate %126 RelaxedPrecision -OpDecorate %127 RelaxedPrecision OpDecorate %128 RelaxedPrecision OpDecorate %129 RelaxedPrecision OpDecorate %137 RelaxedPrecision OpDecorate %138 RelaxedPrecision -OpDecorate %139 RelaxedPrecision OpDecorate %140 RelaxedPrecision OpDecorate %141 RelaxedPrecision OpDecorate %149 RelaxedPrecision @@ -77,10 +68,8 @@ OpDecorate %150 RelaxedPrecision OpDecorate %151 RelaxedPrecision OpDecorate %157 RelaxedPrecision OpDecorate %158 RelaxedPrecision -OpDecorate %163 RelaxedPrecision OpDecorate %164 RelaxedPrecision OpDecorate %165 RelaxedPrecision -OpDecorate %171 RelaxedPrecision OpDecorate %172 RelaxedPrecision OpDecorate %173 RelaxedPrecision OpDecorate %179 RelaxedPrecision @@ -99,8 +88,8 @@ OpDecorate %193 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -114,9 +103,12 @@ OpDecorate %193 RelaxedPrecision %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 +%49 = OpConstantComposite %v2float %float_0_5 %float_0_5 %v2bool = OpTypeVector %bool 2 %v3float = OpTypeVector %float 3 +%63 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 %v3bool = OpTypeVector %bool 3 +%76 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 %v4bool = OpTypeVector %bool 4 %99 = OpConstantComposite %v3float %float_0 %float_0 %float_1 %127 = OpConstantComposite %v2float %float_0 %float_1 @@ -153,7 +145,6 @@ OpStore %expectedB %33 OpSelectionMerge %47 None OpBranchConditional %45 %46 %47 %46 = OpLabel -%49 = OpCompositeConstruct %v2float %float_0_5 %float_0_5 %50 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %51 = OpLoad %v4float %50 %52 = OpVectorShuffle %v2float %51 %51 0 1 @@ -168,11 +159,10 @@ OpBranch %47 OpSelectionMerge %60 None OpBranchConditional %58 %59 %60 %59 = OpLabel -%62 = OpCompositeConstruct %v3float %float_0_5 %float_0_5 %float_0_5 %64 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %65 = OpLoad %v4float %64 %66 = OpVectorShuffle %v3float %65 %65 0 1 2 -%61 = OpExtInst %v3float %1 Step %62 %66 +%61 = OpExtInst %v3float %1 Step %63 %66 %67 = OpLoad %v4float %expectedA %68 = OpVectorShuffle %v3float %67 %67 0 1 2 %69 = OpFOrdEqual %v3bool %61 %68 @@ -183,7 +173,6 @@ OpBranch %60 OpSelectionMerge %74 None OpBranchConditional %72 %73 %74 %73 = OpLabel -%76 = OpCompositeConstruct %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 %77 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 %78 = OpLoad %v4float %77 %75 = OpExtInst %v4float %1 Step %76 %78 diff --git a/third_party/skia/tests/sksl/intrinsics/Tan.asm.frag b/third_party/skia/tests/sksl/intrinsics/Tan.asm.frag index f05d6d014505..962f09ffeb6f 100644 --- a/third_party/skia/tests/sksl/intrinsics/Tan.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Tan.asm.frag @@ -49,10 +49,8 @@ OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %94 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision -OpDecorate %103 RelaxedPrecision OpDecorate %105 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %119 RelaxedPrecision @@ -69,8 +67,8 @@ OpDecorate %120 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Tanh.asm.frag b/third_party/skia/tests/sksl/intrinsics/Tanh.asm.frag index eee5d08e0175..0ce64270e270 100644 --- a/third_party/skia/tests/sksl/intrinsics/Tanh.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Tanh.asm.frag @@ -49,10 +49,8 @@ OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %94 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %97 RelaxedPrecision -OpDecorate %103 RelaxedPrecision OpDecorate %105 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %119 RelaxedPrecision @@ -69,8 +67,8 @@ OpDecorate %120 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/intrinsics/Transpose.asm.frag b/third_party/skia/tests/sksl/intrinsics/Transpose.asm.frag index a36d3191abcb..560a6e91c9f9 100644 --- a/third_party/skia/tests/sksl/intrinsics/Transpose.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Transpose.asm.frag @@ -30,9 +30,9 @@ OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 -OpDecorate %123 RelaxedPrecision -OpDecorate %126 RelaxedPrecision -OpDecorate %127 RelaxedPrecision +OpDecorate %115 RelaxedPrecision +OpDecorate %118 RelaxedPrecision +OpDecorate %119 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -61,17 +61,31 @@ OpDecorate %127 RelaxedPrecision %float_4 = OpConstant %float 4 %float_5 = OpConstant %float 5 %float_6 = OpConstant %float 6 +%38 = OpConstantComposite %v3float %float_1 %float_2 %float_3 +%39 = OpConstantComposite %v3float %float_4 %float_5 %float_6 +%40 = OpConstantComposite %mat2v3float %38 %39 %false = OpConstantFalse %bool %_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 +%48 = OpConstantComposite %v2float %float_1 %float_3 +%49 = OpConstantComposite %v2float %float_2 %float_4 +%50 = OpConstantComposite %mat2v2float %48 %49 %v2bool = OpTypeVector %bool 2 %mat3v2float = OpTypeMatrix %v2float 3 +%64 = OpConstantComposite %v2float %float_1 %float_4 +%65 = OpConstantComposite %v2float %float_2 %float_5 +%66 = OpConstantComposite %v2float %float_3 %float_6 +%67 = OpConstantComposite %mat3v2float %64 %65 %66 %_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float %int_1 = OpConstant %int 1 %float_7 = OpConstant %float 7 %float_8 = OpConstant %float 8 %float_9 = OpConstant %float 9 +%90 = OpConstantComposite %v3float %float_1 %float_4 %float_7 +%91 = OpConstantComposite %v3float %float_2 %float_5 %float_8 +%92 = OpConstantComposite %v3float %float_3 %float_6 %float_9 +%93 = OpConstantComposite %mat3v3float %90 %91 %92 %v3bool = OpTypeVector %bool 3 %_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float @@ -89,92 +103,70 @@ OpFunctionEnd %27 = OpFunctionParameter %_ptr_Function_v2float %28 = OpLabel %testMatrix2x3 = OpVariable %_ptr_Function_mat2v3float Function -%115 = OpVariable %_ptr_Function_v4float Function -%38 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3 -%39 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6 -%40 = OpCompositeConstruct %mat2v3float %38 %39 +%107 = OpVariable %_ptr_Function_v4float Function OpStore %testMatrix2x3 %40 %43 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_0 %47 = OpLoad %mat2v2float %43 %42 = OpTranspose %mat2v2float %47 -%48 = OpCompositeConstruct %v2float %float_1 %float_3 -%49 = OpCompositeConstruct %v2float %float_2 %float_4 -%50 = OpCompositeConstruct %mat2v2float %48 %49 %52 = OpCompositeExtract %v2float %42 0 -%53 = OpCompositeExtract %v2float %50 0 -%54 = OpFOrdEqual %v2bool %52 %53 -%55 = OpAll %bool %54 -%56 = OpCompositeExtract %v2float %42 1 -%57 = OpCompositeExtract %v2float %50 1 -%58 = OpFOrdEqual %v2bool %56 %57 -%59 = OpAll %bool %58 -%60 = OpLogicalAnd %bool %55 %59 -OpSelectionMerge %62 None -OpBranchConditional %60 %61 %62 -%61 = OpLabel -%64 = OpLoad %mat2v3float %testMatrix2x3 -%63 = OpTranspose %mat3v2float %64 -%66 = OpCompositeConstruct %v2float %float_1 %float_4 -%67 = OpCompositeConstruct %v2float %float_2 %float_5 -%68 = OpCompositeConstruct %v2float %float_3 %float_6 -%69 = OpCompositeConstruct %mat3v2float %66 %67 %68 -%70 = OpCompositeExtract %v2float %63 0 -%71 = OpCompositeExtract %v2float %69 0 -%72 = OpFOrdEqual %v2bool %70 %71 +%53 = OpFOrdEqual %v2bool %52 %48 +%54 = OpAll %bool %53 +%55 = OpCompositeExtract %v2float %42 1 +%56 = OpFOrdEqual %v2bool %55 %49 +%57 = OpAll %bool %56 +%58 = OpLogicalAnd %bool %54 %57 +OpSelectionMerge %60 None +OpBranchConditional %58 %59 %60 +%59 = OpLabel +%62 = OpLoad %mat2v3float %testMatrix2x3 +%61 = OpTranspose %mat3v2float %62 +%68 = OpCompositeExtract %v2float %61 0 +%69 = OpFOrdEqual %v2bool %68 %64 +%70 = OpAll %bool %69 +%71 = OpCompositeExtract %v2float %61 1 +%72 = OpFOrdEqual %v2bool %71 %65 %73 = OpAll %bool %72 -%74 = OpCompositeExtract %v2float %63 1 -%75 = OpCompositeExtract %v2float %69 1 -%76 = OpFOrdEqual %v2bool %74 %75 +%74 = OpLogicalAnd %bool %70 %73 +%75 = OpCompositeExtract %v2float %61 2 +%76 = OpFOrdEqual %v2bool %75 %66 %77 = OpAll %bool %76 -%78 = OpLogicalAnd %bool %73 %77 -%79 = OpCompositeExtract %v2float %63 2 -%80 = OpCompositeExtract %v2float %69 2 -%81 = OpFOrdEqual %v2bool %79 %80 -%82 = OpAll %bool %81 -%83 = OpLogicalAnd %bool %78 %82 -OpBranch %62 -%62 = OpLabel -%84 = OpPhi %bool %false %28 %83 %61 -OpSelectionMerge %86 None -OpBranchConditional %84 %85 %86 -%85 = OpLabel -%88 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_1 -%91 = OpLoad %mat3v3float %88 -%87 = OpTranspose %mat3v3float %91 -%95 = OpCompositeConstruct %v3float %float_1 %float_4 %float_7 -%96 = OpCompositeConstruct %v3float %float_2 %float_5 %float_8 -%97 = OpCompositeConstruct %v3float %float_3 %float_6 %float_9 -%98 = OpCompositeConstruct %mat3v3float %95 %96 %97 -%100 = OpCompositeExtract %v3float %87 0 -%101 = OpCompositeExtract %v3float %98 0 -%102 = OpFOrdEqual %v3bool %100 %101 -%103 = OpAll %bool %102 -%104 = OpCompositeExtract %v3float %87 1 -%105 = OpCompositeExtract %v3float %98 1 -%106 = OpFOrdEqual %v3bool %104 %105 -%107 = OpAll %bool %106 -%108 = OpLogicalAnd %bool %103 %107 -%109 = OpCompositeExtract %v3float %87 2 -%110 = OpCompositeExtract %v3float %98 2 -%111 = OpFOrdEqual %v3bool %109 %110 -%112 = OpAll %bool %111 -%113 = OpLogicalAnd %bool %108 %112 -OpBranch %86 -%86 = OpLabel -%114 = OpPhi %bool %false %62 %113 %85 -OpSelectionMerge %119 None -OpBranchConditional %114 %117 %118 -%117 = OpLabel -%120 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 -%123 = OpLoad %v4float %120 -OpStore %115 %123 -OpBranch %119 -%118 = OpLabel -%124 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 -%126 = OpLoad %v4float %124 -OpStore %115 %126 -OpBranch %119 -%119 = OpLabel -%127 = OpLoad %v4float %115 -OpReturnValue %127 +%78 = OpLogicalAnd %bool %74 %77 +OpBranch %60 +%60 = OpLabel +%79 = OpPhi %bool %false %28 %78 %59 +OpSelectionMerge %81 None +OpBranchConditional %79 %80 %81 +%80 = OpLabel +%83 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_1 +%86 = OpLoad %mat3v3float %83 +%82 = OpTranspose %mat3v3float %86 +%95 = OpCompositeExtract %v3float %82 0 +%96 = OpFOrdEqual %v3bool %95 %90 +%97 = OpAll %bool %96 +%98 = OpCompositeExtract %v3float %82 1 +%99 = OpFOrdEqual %v3bool %98 %91 +%100 = OpAll %bool %99 +%101 = OpLogicalAnd %bool %97 %100 +%102 = OpCompositeExtract %v3float %82 2 +%103 = OpFOrdEqual %v3bool %102 %92 +%104 = OpAll %bool %103 +%105 = OpLogicalAnd %bool %101 %104 +OpBranch %81 +%81 = OpLabel +%106 = OpPhi %bool %false %60 %105 %80 +OpSelectionMerge %111 None +OpBranchConditional %106 %109 %110 +%109 = OpLabel +%112 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 +%115 = OpLoad %v4float %112 +OpStore %107 %115 +OpBranch %111 +%110 = OpLabel +%116 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 +%118 = OpLoad %v4float %116 +OpStore %107 %118 +OpBranch %111 +%111 = OpLabel +%119 = OpLoad %v4float %107 +OpReturnValue %119 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/intrinsics/Trunc.asm.frag b/third_party/skia/tests/sksl/intrinsics/Trunc.asm.frag index f1fb96085712..49fab6eaaffa 100644 --- a/third_party/skia/tests/sksl/intrinsics/Trunc.asm.frag +++ b/third_party/skia/tests/sksl/intrinsics/Trunc.asm.frag @@ -51,8 +51,8 @@ OpDecorate %83 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/metal/OpaqueTypeInInterfaceBlock.metal b/third_party/skia/tests/sksl/metal/OpaqueTypeInInterfaceBlock.metal index 64433eda1d11..de87edfde84b 100644 --- a/third_party/skia/tests/sksl/metal/OpaqueTypeInInterfaceBlock.metal +++ b/third_party/skia/tests/sksl/metal/OpaqueTypeInInterfaceBlock.metal @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: variables of type 'sampler' must be global +Bad { sampler x; }; + ^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/metal/OpaqueTypeInStruct.metal b/third_party/skia/tests/sksl/metal/OpaqueTypeInStruct.metal index 94f66bb9d6ce..cce6bcb77e88 100644 --- a/third_party/skia/tests/sksl/metal/OpaqueTypeInStruct.metal +++ b/third_party/skia/tests/sksl/metal/OpaqueTypeInStruct.metal @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: opaque type 'sampler' is not permitted in a struct +struct Bad { sampler x; }; + ^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/metal/OutVarsRequireLocation.metal b/third_party/skia/tests/sksl/metal/OutVarsRequireLocation.metal index 5b6bc64fbbef..29517157b07b 100644 --- a/third_party/skia/tests/sksl/metal/OutVarsRequireLocation.metal +++ b/third_party/skia/tests/sksl/metal/OutVarsRequireLocation.metal @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: Metal out variables must have 'layout(location=...)' +out int noLocation; +^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime/ChildEffects.skvm b/third_party/skia/tests/sksl/runtime/ChildEffects.skvm index 90232f40a6db..7af452e72f95 100644 --- a/third_party/skia/tests/sksl/runtime/ChildEffects.skvm +++ b/third_party/skia/tests/sksl/runtime/ChildEffects.skvm @@ -24,11 +24,11 @@ loop: 21 r6 = add_i32 r6 r0 22 r6 = shl_i32 r6 2 23 r11 = gather32 ptr0 10 r6 -24 r12 = add_i32 r3 r6 +24 r12 = add_i32 r6 r3 25 r12 = gather32 ptr0 10 r12 -26 r13 = add_i32 r4 r6 +26 r13 = add_i32 r6 r4 27 r13 = gather32 ptr0 10 r13 -28 r6 = add_i32 r5 r6 +28 r6 = add_i32 r6 r5 29 r6 = gather32 ptr0 10 r6 30 r14 = sub_f32 r2 r7 31 r11 = mul_f32 r11 r14 diff --git a/third_party/skia/tests/sksl/runtime/ConversionConstructors.skvm b/third_party/skia/tests/sksl/runtime/ConversionConstructors.skvm index a6a676cf6ea1..fa477085e799 100644 --- a/third_party/skia/tests/sksl/runtime/ConversionConstructors.skvm +++ b/third_party/skia/tests/sksl/runtime/ConversionConstructors.skvm @@ -1,24 +1,22 @@ -8 registers, 22 instructions: +7 registers, 20 instructions: 0 r0 = uniform32 ptr0 4 1 r1 = uniform32 ptr0 8 2 r2 = uniform32 ptr0 C 3 r3 = splat 0 (0) -4 r4 = splat FFFFFFFF (nan) -5 r5 = neq_f32 r0 r3 -6 r6 = splat 3F800000 (1) -7 r6 = bit_and r2 r6 -8 r7 = to_f32 r1 -9 r7 = select r5 r6 r7 -10 r3 = eq_i32 r1 r3 -11 r3 = bit_xor r4 r3 -12 r4 = splat 1 (1.4012985e-45) -13 r4 = bit_and r2 r4 -14 r0 = trunc r0 -15 r0 = select r3 r4 r0 -16 r0 = to_f32 r0 -17 r0 = mul_f32 r7 r0 +4 r4 = neq_f32 r0 r3 +5 r5 = splat 3F800000 (1) +6 r5 = bit_and r2 r5 +7 r6 = to_f32 r1 +8 r6 = select r4 r5 r6 +9 r3 = eq_i32 r1 r3 +10 r1 = splat 1 (1.4012985e-45) +11 r1 = bit_and r2 r1 +12 r0 = trunc r0 +13 r1 = select r3 r0 r1 +14 r1 = to_f32 r1 +15 r1 = mul_f32 r6 r1 loop: -18 store32 ptr1 r0 -19 store32 ptr2 r0 -20 store32 ptr3 r0 -21 store32 ptr4 r0 +16 store32 ptr1 r1 +17 store32 ptr2 r1 +18 store32 ptr3 r1 +19 store32 ptr4 r1 diff --git a/third_party/skia/tests/sksl/runtime/LargeProgram_StackDepth.stage b/third_party/skia/tests/sksl/runtime/LargeProgram_StackDepth.stage index 6e32bd302080..cc96c70b6fd5 100644 --- a/third_party/skia/tests/sksl/runtime/LargeProgram_StackDepth.stage +++ b/third_party/skia/tests/sksl/runtime/LargeProgram_StackDepth.stage @@ -1,10 +1,4 @@ half4 color_0; -void f8_0(); -void f7_0(); -void f6_0(); -void f5_0(); -void f4_0(); -void f3_0(); void f2_0(); half4 main(float2 xy) { @@ -12,32 +6,8 @@ half4 main(float2 xy) false; return half4(color_0); } -void f8_0() +void f2_0() { color_0 = half4(1.0); false; } -void f7_0() -{ - f8_0(); -} -void f6_0() -{ - f7_0(); -} -void f5_0() -{ - f6_0(); -} -void f4_0() -{ - f5_0(); -} -void f3_0() -{ - f4_0(); -} -void f2_0() -{ - f3_0(); -} diff --git a/third_party/skia/tests/sksl/runtime/LoopFloat.skvm b/third_party/skia/tests/sksl/runtime/LoopFloat.skvm index 884994496d65..cfb939391bba 100644 --- a/third_party/skia/tests/sksl/runtime/LoopFloat.skvm +++ b/third_party/skia/tests/sksl/runtime/LoopFloat.skvm @@ -78,7 +78,7 @@ F8 = bool loop_operator_gt() F9 = bool loop_operator_eq() F10 = bool loop_operator_ne() -42 registers, 948 instructions: +42 registers, 930 instructions: 0 r0 = uniform32 ptr0 0 1 r1 = uniform32 ptr0 4 2 r2 = uniform32 ptr0 8 @@ -144,33 +144,33 @@ loop: 61 trace_var 0 r34 r34 $19 = r9 62 trace_scope 0 r34 r34 1 63 trace_line 0 r34 r34 L9 -64 r35 = eq_f32 r9 r33 +64 r35 = eq_f32 r33 r9 65 trace_scope 0 r35 r34 1 66 trace_line 0 r35 r34 L9 67 trace_var 0 r35 r34 $17 = r9 68 trace_scope 0 r35 r34 -1 69 trace_scope 0 r34 r34 -1 -70 r36 = bit_xor r10 r35 +70 r36 = bit_xor r35 r10 71 trace_line 0 r36 r34 L8 72 trace_var 0 r36 r34 $19 = r15 73 trace_scope 0 r36 r34 1 74 trace_line 0 r36 r34 L9 75 r37 = eq_f32 r33 r15 -76 r37 = bit_and r36 r37 +76 r37 = bit_clear r37 r35 77 trace_scope 0 r37 r34 1 78 trace_line 0 r37 r34 L9 -79 r38 = bit_and r15 r37 +79 r38 = bit_and r37 r15 80 trace_var 0 r37 r34 $17 = r38 81 r35 = bit_or r35 r37 82 trace_scope 0 r37 r34 -1 83 trace_scope 0 r36 r34 -1 -84 r36 = bit_xor r10 r35 +84 r36 = bit_xor r35 r10 85 trace_line 0 r36 r34 L8 86 trace_var 0 r36 r34 $19 = r16 87 trace_scope 0 r36 r34 1 88 trace_line 0 r36 r34 L9 89 r37 = eq_f32 r33 r16 -90 r37 = bit_and r36 r37 +90 r37 = bit_clear r37 r35 91 trace_scope 0 r37 r34 1 92 trace_line 0 r37 r34 L9 93 r38 = select r37 r16 r38 @@ -178,13 +178,13 @@ loop: 95 r35 = bit_or r35 r37 96 trace_scope 0 r37 r34 -1 97 trace_scope 0 r36 r34 -1 -98 r36 = bit_xor r10 r35 +98 r36 = bit_xor r35 r10 99 trace_line 0 r36 r34 L8 100 trace_var 0 r36 r34 $19 = r17 101 trace_scope 0 r36 r34 1 102 trace_line 0 r36 r34 L9 103 r37 = eq_f32 r33 r17 -104 r37 = bit_and r36 r37 +104 r37 = bit_clear r37 r35 105 trace_scope 0 r37 r34 1 106 trace_line 0 r37 r34 L9 107 r38 = select r37 r17 r38 @@ -192,13 +192,13 @@ loop: 109 r35 = bit_or r35 r37 110 trace_scope 0 r37 r34 -1 111 trace_scope 0 r36 r34 -1 -112 r36 = bit_xor r10 r35 +112 r36 = bit_xor r35 r10 113 trace_line 0 r36 r34 L8 114 trace_var 0 r36 r34 $19 = r18 115 trace_scope 0 r36 r34 1 116 trace_line 0 r36 r34 L9 117 r37 = eq_f32 r33 r18 -118 r37 = bit_and r36 r37 +118 r37 = bit_clear r37 r35 119 trace_scope 0 r37 r34 1 120 trace_line 0 r37 r34 L9 121 r38 = select r37 r18 r38 @@ -206,13 +206,13 @@ loop: 123 r35 = bit_or r35 r37 124 trace_scope 0 r37 r34 -1 125 trace_scope 0 r36 r34 -1 -126 r36 = bit_xor r10 r35 +126 r36 = bit_xor r35 r10 127 trace_line 0 r36 r34 L8 128 trace_var 0 r36 r34 $19 = r14 129 trace_scope 0 r36 r34 1 130 trace_line 0 r36 r34 L9 -131 r37 = eq_f32 r14 r33 -132 r37 = bit_and r36 r37 +131 r37 = eq_f32 r33 r14 +132 r37 = bit_clear r37 r35 133 trace_scope 0 r37 r34 1 134 trace_line 0 r37 r34 L9 135 r38 = select r37 r14 r38 @@ -220,13 +220,13 @@ loop: 137 r35 = bit_or r35 r37 138 trace_scope 0 r37 r34 -1 139 trace_scope 0 r36 r34 -1 -140 r36 = bit_xor r10 r35 +140 r36 = bit_xor r35 r10 141 trace_line 0 r36 r34 L8 142 trace_var 0 r36 r34 $19 = r19 143 trace_scope 0 r36 r34 1 144 trace_line 0 r36 r34 L9 145 r37 = eq_f32 r33 r19 -146 r37 = bit_and r36 r37 +146 r37 = bit_clear r37 r35 147 trace_scope 0 r37 r34 1 148 trace_line 0 r37 r34 L9 149 r38 = select r37 r19 r38 @@ -234,13 +234,13 @@ loop: 151 r35 = bit_or r35 r37 152 trace_scope 0 r37 r34 -1 153 trace_scope 0 r36 r34 -1 -154 r36 = bit_xor r10 r35 +154 r36 = bit_xor r35 r10 155 trace_line 0 r36 r34 L8 156 trace_var 0 r36 r34 $19 = r20 157 trace_scope 0 r36 r34 1 158 trace_line 0 r36 r34 L9 159 r37 = eq_f32 r33 r20 -160 r37 = bit_and r36 r37 +160 r37 = bit_clear r37 r35 161 trace_scope 0 r37 r34 1 162 trace_line 0 r37 r34 L9 163 r38 = select r37 r20 r38 @@ -248,13 +248,13 @@ loop: 165 r35 = bit_or r35 r37 166 trace_scope 0 r37 r34 -1 167 trace_scope 0 r36 r34 -1 -168 r36 = bit_xor r10 r35 +168 r36 = bit_xor r35 r10 169 trace_line 0 r36 r34 L8 170 trace_var 0 r36 r34 $19 = r21 171 trace_scope 0 r36 r34 1 172 trace_line 0 r36 r34 L9 173 r37 = eq_f32 r33 r21 -174 r37 = bit_and r36 r37 +174 r37 = bit_clear r37 r35 175 trace_scope 0 r37 r34 1 176 trace_line 0 r37 r34 L9 177 r38 = select r37 r21 r38 @@ -262,13 +262,13 @@ loop: 179 r35 = bit_or r35 r37 180 trace_scope 0 r37 r34 -1 181 trace_scope 0 r36 r34 -1 -182 r36 = bit_xor r10 r35 +182 r36 = bit_xor r35 r10 183 trace_line 0 r36 r34 L8 184 trace_var 0 r36 r34 $19 = r22 185 trace_scope 0 r36 r34 1 186 trace_line 0 r36 r34 L9 187 r37 = eq_f32 r33 r22 -188 r37 = bit_and r36 r37 +188 r37 = bit_clear r37 r35 189 trace_scope 0 r37 r34 1 190 trace_line 0 r37 r34 L9 191 r38 = select r37 r22 r38 @@ -276,7 +276,7 @@ loop: 193 r35 = bit_or r35 r37 194 trace_scope 0 r37 r34 -1 195 trace_scope 0 r36 r34 -1 -196 r35 = bit_xor r10 r35 +196 r35 = bit_xor r35 r10 197 trace_line 0 r35 r34 L8 198 trace_scope 0 r34 r34 -1 199 trace_line 0 r35 r34 L11 @@ -284,7 +284,7 @@ loop: 201 trace_var 0 r35 r34 $17 = r38 202 trace_scope 0 r34 r34 -1 203 trace_exit 0 r34 r34 F1 -204 r38 = eq_f32 r14 r38 +204 r38 = eq_f32 r38 r14 205 trace_enter 0 r38 r34 F2 206 trace_var 0 r38 r34 $21 = r33 207 trace_scope 0 r38 r34 1 @@ -299,9 +299,9 @@ loop: 216 r35 = bit_and r38 r35 217 trace_scope 0 r35 r34 1 218 trace_line 0 r35 r34 L19 -219 r36 = bit_xor r10 r35 +219 r36 = bit_xor r35 r10 220 trace_scope 0 r35 r34 -1 -221 r37 = bit_and r38 r36 +221 r37 = bit_clear r38 r35 222 trace_line 0 r37 r34 L20 223 trace_scope 0 r38 r34 -1 224 r36 = bit_or r35 r36 @@ -315,716 +315,698 @@ loop: 232 r37 = bit_and r36 r37 233 trace_scope 0 r37 r34 1 234 trace_line 0 r37 r34 L19 -235 r39 = bit_xor r10 r37 -236 r39 = bit_and r36 r39 -237 trace_scope 0 r37 r34 -1 -238 r36 = bit_and r38 r39 -239 trace_line 0 r36 r34 L20 -240 r40 = bit_and r15 r36 -241 trace_var 0 r36 r34 $22 = r40 -242 trace_scope 0 r35 r34 -1 -243 r39 = bit_or r37 r39 -244 r37 = bit_and r38 r39 -245 trace_line 0 r37 r34 L18 -246 trace_var 0 r37 r34 $23 = r16 -247 trace_scope 0 r37 r34 1 -248 trace_line 0 r37 r34 L19 -249 r35 = gt_f32 r33 r16 -250 r35 = bit_and r38 r35 -251 r35 = bit_and r39 r35 -252 trace_scope 0 r35 r34 1 -253 trace_line 0 r35 r34 L19 -254 r36 = bit_xor r10 r35 -255 r36 = bit_and r39 r36 -256 trace_scope 0 r35 r34 -1 -257 r39 = bit_and r38 r36 -258 trace_line 0 r39 r34 L20 -259 r41 = add_f32 r16 r40 -260 r40 = select r39 r41 r40 -261 trace_var 0 r39 r34 $22 = r40 -262 trace_scope 0 r37 r34 -1 -263 r36 = bit_or r35 r36 -264 r35 = bit_and r38 r36 -265 trace_line 0 r35 r34 L18 -266 trace_var 0 r35 r34 $23 = r17 -267 trace_scope 0 r35 r34 1 -268 trace_line 0 r35 r34 L19 -269 r37 = gt_f32 r33 r17 -270 r37 = bit_and r38 r37 -271 r37 = bit_and r36 r37 -272 trace_scope 0 r37 r34 1 -273 trace_line 0 r37 r34 L19 -274 r39 = bit_xor r10 r37 -275 r39 = bit_and r36 r39 -276 trace_scope 0 r37 r34 -1 -277 r36 = bit_and r38 r39 -278 trace_line 0 r36 r34 L20 -279 r41 = add_f32 r17 r40 -280 r40 = select r36 r41 r40 -281 trace_var 0 r36 r34 $22 = r40 -282 trace_scope 0 r35 r34 -1 -283 r39 = bit_or r37 r39 -284 r37 = bit_and r38 r39 -285 trace_line 0 r37 r34 L18 -286 trace_var 0 r37 r34 $23 = r18 -287 trace_scope 0 r37 r34 1 -288 trace_line 0 r37 r34 L19 -289 r35 = gt_f32 r33 r18 -290 r35 = bit_and r38 r35 -291 r35 = bit_and r39 r35 -292 trace_scope 0 r35 r34 1 -293 trace_line 0 r35 r34 L19 -294 r36 = bit_xor r10 r35 -295 r36 = bit_and r39 r36 -296 trace_scope 0 r35 r34 -1 -297 r39 = bit_and r38 r36 -298 trace_line 0 r39 r34 L20 -299 r41 = add_f32 r18 r40 -300 r40 = select r39 r41 r40 -301 trace_var 0 r39 r34 $22 = r40 -302 trace_scope 0 r37 r34 -1 -303 r36 = bit_or r35 r36 -304 r35 = bit_and r38 r36 -305 trace_line 0 r35 r34 L18 -306 trace_var 0 r35 r34 $23 = r14 -307 trace_scope 0 r35 r34 1 -308 trace_line 0 r35 r34 L19 -309 r37 = gt_f32 r33 r14 -310 r37 = bit_and r38 r37 -311 r37 = bit_and r36 r37 -312 trace_scope 0 r37 r34 1 -313 trace_line 0 r37 r34 L19 -314 r39 = bit_xor r10 r37 -315 r39 = bit_and r36 r39 -316 trace_scope 0 r37 r34 -1 -317 r36 = bit_and r38 r39 -318 trace_line 0 r36 r34 L20 -319 r41 = add_f32 r14 r40 -320 r40 = select r36 r41 r40 -321 trace_var 0 r36 r34 $22 = r40 -322 trace_scope 0 r35 r34 -1 -323 r39 = bit_or r37 r39 -324 r37 = bit_and r38 r39 -325 trace_line 0 r37 r34 L18 -326 trace_var 0 r37 r34 $23 = r19 -327 trace_scope 0 r37 r34 1 -328 trace_line 0 r37 r34 L19 -329 r35 = gt_f32 r33 r19 -330 r35 = bit_and r38 r35 -331 r35 = bit_and r39 r35 -332 trace_scope 0 r35 r34 1 -333 trace_line 0 r35 r34 L19 -334 r36 = bit_xor r10 r35 -335 r36 = bit_and r39 r36 -336 trace_scope 0 r35 r34 -1 -337 r39 = bit_and r38 r36 -338 trace_line 0 r39 r34 L20 -339 r41 = add_f32 r19 r40 -340 r40 = select r39 r41 r40 -341 trace_var 0 r39 r34 $22 = r40 -342 trace_scope 0 r37 r34 -1 -343 r36 = bit_or r35 r36 -344 r35 = bit_and r38 r36 -345 trace_line 0 r35 r34 L18 -346 trace_var 0 r35 r34 $23 = r20 -347 trace_scope 0 r35 r34 1 -348 trace_line 0 r35 r34 L19 -349 r37 = gt_f32 r33 r20 -350 r37 = bit_and r38 r37 -351 r37 = bit_and r36 r37 -352 trace_scope 0 r37 r34 1 -353 trace_line 0 r37 r34 L19 -354 r39 = bit_xor r10 r37 -355 r39 = bit_and r36 r39 -356 trace_scope 0 r37 r34 -1 -357 r36 = bit_and r38 r39 -358 trace_line 0 r36 r34 L20 -359 r41 = add_f32 r20 r40 -360 r40 = select r36 r41 r40 -361 trace_var 0 r36 r34 $22 = r40 -362 trace_scope 0 r35 r34 -1 -363 r39 = bit_or r37 r39 -364 r37 = bit_and r38 r39 -365 trace_line 0 r37 r34 L18 -366 trace_var 0 r37 r34 $23 = r21 -367 trace_scope 0 r37 r34 1 -368 trace_line 0 r37 r34 L19 -369 r35 = gt_f32 r33 r21 -370 r35 = bit_and r38 r35 -371 r35 = bit_and r39 r35 -372 trace_scope 0 r35 r34 1 -373 trace_line 0 r35 r34 L19 -374 r36 = bit_xor r10 r35 -375 r36 = bit_and r39 r36 -376 trace_scope 0 r35 r34 -1 -377 r39 = bit_and r38 r36 -378 trace_line 0 r39 r34 L20 -379 r41 = add_f32 r21 r40 -380 r40 = select r39 r41 r40 -381 trace_var 0 r39 r34 $22 = r40 -382 trace_scope 0 r37 r34 -1 -383 r36 = bit_or r35 r36 -384 r35 = bit_and r38 r36 -385 trace_line 0 r35 r34 L18 -386 trace_var 0 r35 r34 $23 = r22 -387 trace_scope 0 r35 r34 1 -388 trace_line 0 r35 r34 L19 -389 r37 = gt_f32 r33 r22 -390 r37 = bit_and r38 r37 -391 r37 = bit_and r36 r37 -392 trace_scope 0 r37 r34 1 -393 trace_line 0 r37 r34 L19 -394 r39 = bit_xor r10 r37 -395 r39 = bit_and r36 r39 -396 trace_scope 0 r37 r34 -1 -397 r36 = bit_and r38 r39 -398 trace_line 0 r36 r34 L20 -399 r41 = add_f32 r22 r40 -400 r40 = select r36 r41 r40 -401 trace_var 0 r36 r34 $22 = r40 -402 trace_scope 0 r35 r34 -1 -403 r39 = bit_or r37 r39 -404 r39 = bit_and r38 r39 -405 trace_line 0 r39 r34 L18 -406 trace_scope 0 r38 r34 -1 -407 trace_line 0 r38 r34 L22 -408 r40 = bit_and r38 r40 -409 trace_var 0 r38 r34 $20 = r40 -410 trace_scope 0 r38 r34 -1 -411 trace_exit 0 r38 r34 F2 -412 r40 = eq_f32 r40 r23 -413 r40 = bit_and r38 r40 -414 trace_enter 0 r40 r34 F3 -415 trace_var 0 r40 r34 $25 = r33 -416 trace_scope 0 r40 r34 1 -417 trace_line 0 r40 r34 L27 -418 trace_var 0 r40 r34 $26 = r9 -419 trace_line 0 r40 r34 L28 -420 trace_var 0 r40 r34 $27 = r15 -421 trace_line 0 r40 r34 L29 -422 trace_scope 0 r40 r34 1 -423 trace_var 0 r40 r34 $28 = r9 -424 trace_scope 0 r40 r34 1 -425 trace_line 0 r40 r34 L30 -426 r38 = gt_f32 r9 r33 -427 r38 = bit_and r40 r38 -428 trace_scope 0 r38 r34 1 -429 trace_line 0 r38 r34 L30 -430 r39 = bit_xor r10 r38 -431 trace_scope 0 r38 r34 -1 -432 r38 = bit_and r40 r39 -433 trace_line 0 r38 r34 L31 -434 trace_scope 0 r40 r34 -1 -435 trace_line 0 r38 r34 L29 -436 trace_var 0 r38 r34 $28 = r15 -437 trace_scope 0 r38 r34 1 -438 trace_line 0 r38 r34 L30 -439 r37 = gt_f32 r15 r33 -440 r37 = bit_and r40 r37 -441 r37 = bit_and r39 r37 -442 trace_scope 0 r37 r34 1 -443 trace_line 0 r37 r34 L30 -444 r35 = bit_xor r10 r37 -445 r35 = bit_and r39 r35 -446 trace_scope 0 r37 r34 -1 -447 r37 = bit_and r40 r35 -448 trace_line 0 r37 r34 L31 -449 r39 = bit_and r15 r37 -450 trace_var 0 r37 r34 $26 = r39 -451 trace_scope 0 r38 r34 -1 -452 trace_line 0 r37 r34 L29 -453 trace_var 0 r37 r34 $28 = r16 -454 trace_scope 0 r37 r34 1 -455 trace_line 0 r37 r34 L30 -456 r38 = gt_f32 r16 r33 -457 r38 = bit_and r40 r38 -458 r38 = bit_and r35 r38 -459 trace_scope 0 r38 r34 1 -460 trace_line 0 r38 r34 L30 -461 r36 = bit_xor r10 r38 -462 r36 = bit_and r35 r36 -463 trace_scope 0 r38 r34 -1 -464 r38 = bit_and r40 r36 -465 trace_line 0 r38 r34 L31 -466 r35 = add_f32 r16 r39 -467 r39 = select r38 r35 r39 -468 trace_var 0 r38 r34 $26 = r39 +235 r36 = bit_clear r36 r37 +236 trace_scope 0 r37 r34 -1 +237 r39 = bit_and r38 r36 +238 trace_line 0 r39 r34 L20 +239 r40 = bit_and r39 r15 +240 trace_var 0 r39 r34 $22 = r40 +241 trace_scope 0 r35 r34 -1 +242 r36 = bit_or r37 r36 +243 r37 = bit_and r38 r36 +244 trace_line 0 r37 r34 L18 +245 trace_var 0 r37 r34 $23 = r16 +246 trace_scope 0 r37 r34 1 +247 trace_line 0 r37 r34 L19 +248 r35 = gt_f32 r33 r16 +249 r35 = bit_and r38 r35 +250 r35 = bit_and r36 r35 +251 trace_scope 0 r35 r34 1 +252 trace_line 0 r35 r34 L19 +253 r36 = bit_clear r36 r35 +254 trace_scope 0 r35 r34 -1 +255 r39 = bit_and r38 r36 +256 trace_line 0 r39 r34 L20 +257 r41 = add_f32 r40 r16 +258 r40 = select r39 r41 r40 +259 trace_var 0 r39 r34 $22 = r40 +260 trace_scope 0 r37 r34 -1 +261 r36 = bit_or r35 r36 +262 r35 = bit_and r38 r36 +263 trace_line 0 r35 r34 L18 +264 trace_var 0 r35 r34 $23 = r17 +265 trace_scope 0 r35 r34 1 +266 trace_line 0 r35 r34 L19 +267 r37 = gt_f32 r33 r17 +268 r37 = bit_and r38 r37 +269 r37 = bit_and r36 r37 +270 trace_scope 0 r37 r34 1 +271 trace_line 0 r37 r34 L19 +272 r36 = bit_clear r36 r37 +273 trace_scope 0 r37 r34 -1 +274 r39 = bit_and r38 r36 +275 trace_line 0 r39 r34 L20 +276 r41 = add_f32 r40 r17 +277 r40 = select r39 r41 r40 +278 trace_var 0 r39 r34 $22 = r40 +279 trace_scope 0 r35 r34 -1 +280 r36 = bit_or r37 r36 +281 r37 = bit_and r38 r36 +282 trace_line 0 r37 r34 L18 +283 trace_var 0 r37 r34 $23 = r18 +284 trace_scope 0 r37 r34 1 +285 trace_line 0 r37 r34 L19 +286 r35 = gt_f32 r33 r18 +287 r35 = bit_and r38 r35 +288 r35 = bit_and r36 r35 +289 trace_scope 0 r35 r34 1 +290 trace_line 0 r35 r34 L19 +291 r36 = bit_clear r36 r35 +292 trace_scope 0 r35 r34 -1 +293 r39 = bit_and r38 r36 +294 trace_line 0 r39 r34 L20 +295 r41 = add_f32 r40 r18 +296 r40 = select r39 r41 r40 +297 trace_var 0 r39 r34 $22 = r40 +298 trace_scope 0 r37 r34 -1 +299 r36 = bit_or r35 r36 +300 r35 = bit_and r38 r36 +301 trace_line 0 r35 r34 L18 +302 trace_var 0 r35 r34 $23 = r14 +303 trace_scope 0 r35 r34 1 +304 trace_line 0 r35 r34 L19 +305 r37 = gt_f32 r33 r14 +306 r37 = bit_and r38 r37 +307 r37 = bit_and r36 r37 +308 trace_scope 0 r37 r34 1 +309 trace_line 0 r37 r34 L19 +310 r36 = bit_clear r36 r37 +311 trace_scope 0 r37 r34 -1 +312 r39 = bit_and r38 r36 +313 trace_line 0 r39 r34 L20 +314 r41 = add_f32 r40 r14 +315 r40 = select r39 r41 r40 +316 trace_var 0 r39 r34 $22 = r40 +317 trace_scope 0 r35 r34 -1 +318 r36 = bit_or r37 r36 +319 r37 = bit_and r38 r36 +320 trace_line 0 r37 r34 L18 +321 trace_var 0 r37 r34 $23 = r19 +322 trace_scope 0 r37 r34 1 +323 trace_line 0 r37 r34 L19 +324 r35 = gt_f32 r33 r19 +325 r35 = bit_and r38 r35 +326 r35 = bit_and r36 r35 +327 trace_scope 0 r35 r34 1 +328 trace_line 0 r35 r34 L19 +329 r36 = bit_clear r36 r35 +330 trace_scope 0 r35 r34 -1 +331 r39 = bit_and r38 r36 +332 trace_line 0 r39 r34 L20 +333 r41 = add_f32 r40 r19 +334 r40 = select r39 r41 r40 +335 trace_var 0 r39 r34 $22 = r40 +336 trace_scope 0 r37 r34 -1 +337 r36 = bit_or r35 r36 +338 r35 = bit_and r38 r36 +339 trace_line 0 r35 r34 L18 +340 trace_var 0 r35 r34 $23 = r20 +341 trace_scope 0 r35 r34 1 +342 trace_line 0 r35 r34 L19 +343 r37 = gt_f32 r33 r20 +344 r37 = bit_and r38 r37 +345 r37 = bit_and r36 r37 +346 trace_scope 0 r37 r34 1 +347 trace_line 0 r37 r34 L19 +348 r36 = bit_clear r36 r37 +349 trace_scope 0 r37 r34 -1 +350 r39 = bit_and r38 r36 +351 trace_line 0 r39 r34 L20 +352 r41 = add_f32 r40 r20 +353 r40 = select r39 r41 r40 +354 trace_var 0 r39 r34 $22 = r40 +355 trace_scope 0 r35 r34 -1 +356 r36 = bit_or r37 r36 +357 r37 = bit_and r38 r36 +358 trace_line 0 r37 r34 L18 +359 trace_var 0 r37 r34 $23 = r21 +360 trace_scope 0 r37 r34 1 +361 trace_line 0 r37 r34 L19 +362 r35 = gt_f32 r33 r21 +363 r35 = bit_and r38 r35 +364 r35 = bit_and r36 r35 +365 trace_scope 0 r35 r34 1 +366 trace_line 0 r35 r34 L19 +367 r36 = bit_clear r36 r35 +368 trace_scope 0 r35 r34 -1 +369 r39 = bit_and r38 r36 +370 trace_line 0 r39 r34 L20 +371 r41 = add_f32 r40 r21 +372 r40 = select r39 r41 r40 +373 trace_var 0 r39 r34 $22 = r40 +374 trace_scope 0 r37 r34 -1 +375 r36 = bit_or r35 r36 +376 r35 = bit_and r38 r36 +377 trace_line 0 r35 r34 L18 +378 trace_var 0 r35 r34 $23 = r22 +379 trace_scope 0 r35 r34 1 +380 trace_line 0 r35 r34 L19 +381 r37 = gt_f32 r33 r22 +382 r37 = bit_and r38 r37 +383 r37 = bit_and r36 r37 +384 trace_scope 0 r37 r34 1 +385 trace_line 0 r37 r34 L19 +386 r36 = bit_clear r36 r37 +387 trace_scope 0 r37 r34 -1 +388 r39 = bit_and r38 r36 +389 trace_line 0 r39 r34 L20 +390 r41 = add_f32 r40 r22 +391 r40 = select r39 r41 r40 +392 trace_var 0 r39 r34 $22 = r40 +393 trace_scope 0 r35 r34 -1 +394 r36 = bit_or r37 r36 +395 r36 = bit_and r38 r36 +396 trace_line 0 r36 r34 L18 +397 trace_scope 0 r38 r34 -1 +398 trace_line 0 r38 r34 L22 +399 r40 = bit_and r38 r40 +400 trace_var 0 r38 r34 $20 = r40 +401 trace_scope 0 r38 r34 -1 +402 trace_exit 0 r38 r34 F2 +403 r40 = eq_f32 r40 r23 +404 r40 = bit_and r38 r40 +405 trace_enter 0 r40 r34 F3 +406 trace_var 0 r40 r34 $25 = r33 +407 trace_scope 0 r40 r34 1 +408 trace_line 0 r40 r34 L27 +409 trace_var 0 r40 r34 $26 = r9 +410 trace_line 0 r40 r34 L28 +411 trace_var 0 r40 r34 $27 = r15 +412 trace_line 0 r40 r34 L29 +413 trace_scope 0 r40 r34 1 +414 trace_var 0 r40 r34 $28 = r9 +415 trace_scope 0 r40 r34 1 +416 trace_line 0 r40 r34 L30 +417 r38 = gt_f32 r9 r33 +418 r38 = bit_and r40 r38 +419 trace_scope 0 r38 r34 1 +420 trace_line 0 r38 r34 L30 +421 trace_scope 0 r38 r34 -1 +422 r36 = bit_clear r40 r38 +423 trace_line 0 r36 r34 L31 +424 trace_scope 0 r40 r34 -1 +425 trace_line 0 r36 r34 L29 +426 trace_var 0 r36 r34 $28 = r15 +427 trace_scope 0 r36 r34 1 +428 trace_line 0 r36 r34 L30 +429 r37 = gt_f32 r15 r33 +430 r37 = bit_and r40 r37 +431 r37 = bit_clear r37 r38 +432 trace_scope 0 r37 r34 1 +433 trace_line 0 r37 r34 L30 +434 r35 = bit_xor r37 r10 +435 r38 = bit_clear r35 r38 +436 trace_scope 0 r37 r34 -1 +437 r37 = bit_and r40 r38 +438 trace_line 0 r37 r34 L31 +439 r35 = bit_and r37 r15 +440 trace_var 0 r37 r34 $26 = r35 +441 trace_scope 0 r36 r34 -1 +442 trace_line 0 r37 r34 L29 +443 trace_var 0 r37 r34 $28 = r16 +444 trace_scope 0 r37 r34 1 +445 trace_line 0 r37 r34 L30 +446 r36 = gt_f32 r16 r33 +447 r36 = bit_and r40 r36 +448 r36 = bit_and r38 r36 +449 trace_scope 0 r36 r34 1 +450 trace_line 0 r36 r34 L30 +451 r38 = bit_clear r38 r36 +452 trace_scope 0 r36 r34 -1 +453 r36 = bit_and r40 r38 +454 trace_line 0 r36 r34 L31 +455 r39 = add_f32 r35 r16 +456 r35 = select r36 r39 r35 +457 trace_var 0 r36 r34 $26 = r35 +458 trace_scope 0 r37 r34 -1 +459 trace_line 0 r36 r34 L29 +460 trace_var 0 r36 r34 $28 = r17 +461 trace_scope 0 r36 r34 1 +462 trace_line 0 r36 r34 L30 +463 r37 = gt_f32 r17 r33 +464 r37 = bit_and r40 r37 +465 r37 = bit_and r38 r37 +466 trace_scope 0 r37 r34 1 +467 trace_line 0 r37 r34 L30 +468 r38 = bit_clear r38 r37 469 trace_scope 0 r37 r34 -1 -470 trace_line 0 r38 r34 L29 -471 trace_var 0 r38 r34 $28 = r17 -472 trace_scope 0 r38 r34 1 -473 trace_line 0 r38 r34 L30 -474 r37 = gt_f32 r17 r33 -475 r37 = bit_and r40 r37 -476 r37 = bit_and r36 r37 -477 trace_scope 0 r37 r34 1 -478 trace_line 0 r37 r34 L30 -479 r35 = bit_xor r10 r37 -480 r35 = bit_and r36 r35 -481 trace_scope 0 r37 r34 -1 -482 r37 = bit_and r40 r35 -483 trace_line 0 r37 r34 L31 -484 r36 = add_f32 r17 r39 -485 r39 = select r37 r36 r39 -486 trace_var 0 r37 r34 $26 = r39 -487 trace_scope 0 r38 r34 -1 -488 trace_line 0 r37 r34 L29 -489 trace_var 0 r37 r34 $28 = r18 -490 trace_scope 0 r37 r34 1 -491 trace_line 0 r37 r34 L30 -492 r38 = gt_f32 r18 r33 -493 r38 = bit_and r40 r38 -494 r38 = bit_and r35 r38 -495 trace_scope 0 r38 r34 1 -496 trace_line 0 r38 r34 L30 -497 r36 = bit_xor r10 r38 -498 r36 = bit_and r35 r36 -499 trace_scope 0 r38 r34 -1 -500 r38 = bit_and r40 r36 -501 trace_line 0 r38 r34 L31 -502 r35 = add_f32 r18 r39 -503 r39 = select r38 r35 r39 -504 trace_var 0 r38 r34 $26 = r39 -505 trace_scope 0 r37 r34 -1 -506 trace_line 0 r38 r34 L29 -507 trace_var 0 r38 r34 $28 = r14 -508 trace_scope 0 r38 r34 1 -509 trace_line 0 r38 r34 L30 -510 r37 = gt_f32 r14 r33 -511 r37 = bit_and r40 r37 -512 r37 = bit_and r36 r37 -513 trace_scope 0 r37 r34 1 -514 trace_line 0 r37 r34 L30 -515 r35 = bit_xor r10 r37 -516 r35 = bit_and r36 r35 -517 trace_scope 0 r37 r34 -1 -518 r37 = bit_and r40 r35 -519 trace_line 0 r37 r34 L31 -520 r36 = add_f32 r14 r39 -521 r39 = select r37 r36 r39 -522 trace_var 0 r37 r34 $26 = r39 -523 trace_scope 0 r38 r34 -1 -524 trace_line 0 r37 r34 L29 -525 trace_var 0 r37 r34 $28 = r19 -526 trace_scope 0 r37 r34 1 -527 trace_line 0 r37 r34 L30 -528 r38 = gt_f32 r19 r33 -529 r38 = bit_and r40 r38 -530 r38 = bit_and r35 r38 -531 trace_scope 0 r38 r34 1 -532 trace_line 0 r38 r34 L30 -533 r36 = bit_xor r10 r38 -534 r36 = bit_and r35 r36 -535 trace_scope 0 r38 r34 -1 -536 r38 = bit_and r40 r36 -537 trace_line 0 r38 r34 L31 -538 r35 = add_f32 r19 r39 -539 r39 = select r38 r35 r39 -540 trace_var 0 r38 r34 $26 = r39 -541 trace_scope 0 r37 r34 -1 -542 trace_line 0 r38 r34 L29 -543 trace_var 0 r38 r34 $28 = r20 -544 trace_scope 0 r38 r34 1 -545 trace_line 0 r38 r34 L30 -546 r37 = gt_f32 r20 r33 -547 r37 = bit_and r40 r37 -548 r37 = bit_and r36 r37 -549 trace_scope 0 r37 r34 1 -550 trace_line 0 r37 r34 L30 -551 r35 = bit_xor r10 r37 -552 r35 = bit_and r36 r35 -553 trace_scope 0 r37 r34 -1 -554 r37 = bit_and r40 r35 -555 trace_line 0 r37 r34 L31 -556 r36 = add_f32 r20 r39 -557 r39 = select r37 r36 r39 -558 trace_var 0 r37 r34 $26 = r39 -559 trace_scope 0 r38 r34 -1 -560 trace_line 0 r37 r34 L29 -561 trace_var 0 r37 r34 $28 = r21 -562 trace_scope 0 r37 r34 1 -563 trace_line 0 r37 r34 L30 -564 r38 = gt_f32 r21 r33 -565 r38 = bit_and r40 r38 -566 r38 = bit_and r35 r38 -567 trace_scope 0 r38 r34 1 -568 trace_line 0 r38 r34 L30 -569 r36 = bit_xor r10 r38 -570 r36 = bit_and r35 r36 -571 trace_scope 0 r38 r34 -1 -572 r38 = bit_and r40 r36 +470 r37 = bit_and r40 r38 +471 trace_line 0 r37 r34 L31 +472 r39 = add_f32 r35 r17 +473 r35 = select r37 r39 r35 +474 trace_var 0 r37 r34 $26 = r35 +475 trace_scope 0 r36 r34 -1 +476 trace_line 0 r37 r34 L29 +477 trace_var 0 r37 r34 $28 = r18 +478 trace_scope 0 r37 r34 1 +479 trace_line 0 r37 r34 L30 +480 r36 = gt_f32 r18 r33 +481 r36 = bit_and r40 r36 +482 r36 = bit_and r38 r36 +483 trace_scope 0 r36 r34 1 +484 trace_line 0 r36 r34 L30 +485 r38 = bit_clear r38 r36 +486 trace_scope 0 r36 r34 -1 +487 r36 = bit_and r40 r38 +488 trace_line 0 r36 r34 L31 +489 r39 = add_f32 r35 r18 +490 r35 = select r36 r39 r35 +491 trace_var 0 r36 r34 $26 = r35 +492 trace_scope 0 r37 r34 -1 +493 trace_line 0 r36 r34 L29 +494 trace_var 0 r36 r34 $28 = r14 +495 trace_scope 0 r36 r34 1 +496 trace_line 0 r36 r34 L30 +497 r37 = gt_f32 r14 r33 +498 r37 = bit_and r40 r37 +499 r37 = bit_and r38 r37 +500 trace_scope 0 r37 r34 1 +501 trace_line 0 r37 r34 L30 +502 r38 = bit_clear r38 r37 +503 trace_scope 0 r37 r34 -1 +504 r37 = bit_and r40 r38 +505 trace_line 0 r37 r34 L31 +506 r39 = add_f32 r35 r14 +507 r35 = select r37 r39 r35 +508 trace_var 0 r37 r34 $26 = r35 +509 trace_scope 0 r36 r34 -1 +510 trace_line 0 r37 r34 L29 +511 trace_var 0 r37 r34 $28 = r19 +512 trace_scope 0 r37 r34 1 +513 trace_line 0 r37 r34 L30 +514 r36 = gt_f32 r19 r33 +515 r36 = bit_and r40 r36 +516 r36 = bit_and r38 r36 +517 trace_scope 0 r36 r34 1 +518 trace_line 0 r36 r34 L30 +519 r38 = bit_clear r38 r36 +520 trace_scope 0 r36 r34 -1 +521 r36 = bit_and r40 r38 +522 trace_line 0 r36 r34 L31 +523 r39 = add_f32 r35 r19 +524 r35 = select r36 r39 r35 +525 trace_var 0 r36 r34 $26 = r35 +526 trace_scope 0 r37 r34 -1 +527 trace_line 0 r36 r34 L29 +528 trace_var 0 r36 r34 $28 = r20 +529 trace_scope 0 r36 r34 1 +530 trace_line 0 r36 r34 L30 +531 r37 = gt_f32 r20 r33 +532 r37 = bit_and r40 r37 +533 r37 = bit_and r38 r37 +534 trace_scope 0 r37 r34 1 +535 trace_line 0 r37 r34 L30 +536 r38 = bit_clear r38 r37 +537 trace_scope 0 r37 r34 -1 +538 r37 = bit_and r40 r38 +539 trace_line 0 r37 r34 L31 +540 r39 = add_f32 r35 r20 +541 r35 = select r37 r39 r35 +542 trace_var 0 r37 r34 $26 = r35 +543 trace_scope 0 r36 r34 -1 +544 trace_line 0 r37 r34 L29 +545 trace_var 0 r37 r34 $28 = r21 +546 trace_scope 0 r37 r34 1 +547 trace_line 0 r37 r34 L30 +548 r36 = gt_f32 r21 r33 +549 r36 = bit_and r40 r36 +550 r36 = bit_and r38 r36 +551 trace_scope 0 r36 r34 1 +552 trace_line 0 r36 r34 L30 +553 r38 = bit_clear r38 r36 +554 trace_scope 0 r36 r34 -1 +555 r36 = bit_and r40 r38 +556 trace_line 0 r36 r34 L31 +557 r39 = add_f32 r35 r21 +558 r35 = select r36 r39 r35 +559 trace_var 0 r36 r34 $26 = r35 +560 trace_scope 0 r37 r34 -1 +561 trace_line 0 r36 r34 L29 +562 trace_var 0 r36 r34 $28 = r22 +563 trace_scope 0 r36 r34 1 +564 trace_line 0 r36 r34 L30 +565 r33 = gt_f32 r22 r33 +566 r33 = bit_and r40 r33 +567 r33 = bit_and r38 r33 +568 trace_scope 0 r33 r34 1 +569 trace_line 0 r33 r34 L30 +570 r38 = bit_clear r38 r33 +571 trace_scope 0 r33 r34 -1 +572 r38 = bit_and r40 r38 573 trace_line 0 r38 r34 L31 -574 r35 = add_f32 r21 r39 -575 r39 = select r38 r35 r39 -576 trace_var 0 r38 r34 $26 = r39 -577 trace_scope 0 r37 r34 -1 +574 r33 = add_f32 r35 r22 +575 r35 = select r38 r33 r35 +576 trace_var 0 r38 r34 $26 = r35 +577 trace_scope 0 r36 r34 -1 578 trace_line 0 r38 r34 L29 -579 trace_var 0 r38 r34 $28 = r22 -580 trace_scope 0 r38 r34 1 -581 trace_line 0 r38 r34 L30 -582 r33 = gt_f32 r22 r33 -583 r33 = bit_and r40 r33 -584 r33 = bit_and r36 r33 -585 trace_scope 0 r33 r34 1 -586 trace_line 0 r33 r34 L30 -587 r37 = bit_xor r10 r33 -588 r37 = bit_and r36 r37 -589 trace_scope 0 r33 r34 -1 -590 r37 = bit_and r40 r37 -591 trace_line 0 r37 r34 L31 -592 r33 = add_f32 r22 r39 -593 r39 = select r37 r33 r39 -594 trace_var 0 r37 r34 $26 = r39 -595 trace_scope 0 r38 r34 -1 -596 trace_line 0 r37 r34 L29 -597 trace_scope 0 r40 r34 -1 -598 trace_line 0 r40 r34 L33 -599 r39 = bit_and r40 r39 -600 trace_var 0 r40 r34 $24 = r39 -601 trace_scope 0 r40 r34 -1 -602 trace_exit 0 r40 r34 F3 -603 r39 = eq_f32 r39 r24 -604 r39 = bit_and r40 r39 -605 trace_enter 0 r39 r34 F4 -606 trace_scope 0 r39 r34 1 -607 trace_line 0 r39 r34 L38 -608 trace_var 0 r39 r34 $30 = r9 -609 trace_line 0 r39 r34 L39 -610 trace_scope 0 r39 r34 1 -611 trace_var 0 r39 r34 $31 = r25 -612 trace_scope 0 r39 r34 1 -613 trace_line 0 r39 r34 L40 -614 r40 = bit_and r39 r25 -615 trace_var 0 r39 r34 $30 = r40 -616 trace_scope 0 r39 r34 -1 -617 trace_line 0 r39 r34 L39 -618 trace_var 0 r39 r34 $31 = r26 -619 trace_scope 0 r39 r34 1 -620 trace_line 0 r39 r34 L40 -621 r37 = add_f32 r40 r26 -622 r40 = select r39 r37 r40 -623 trace_var 0 r39 r34 $30 = r40 -624 trace_scope 0 r39 r34 -1 -625 trace_line 0 r39 r34 L39 -626 trace_var 0 r39 r34 $31 = r27 -627 trace_scope 0 r39 r34 1 -628 trace_line 0 r39 r34 L40 -629 r37 = add_f32 r40 r27 -630 r40 = select r39 r37 r40 -631 trace_var 0 r39 r34 $30 = r40 -632 trace_scope 0 r39 r34 -1 -633 trace_line 0 r39 r34 L39 -634 trace_var 0 r39 r34 $31 = r28 -635 trace_scope 0 r39 r34 1 -636 trace_line 0 r39 r34 L40 -637 r37 = add_f32 r40 r28 -638 r40 = select r39 r37 r40 -639 trace_var 0 r39 r34 $30 = r40 -640 trace_scope 0 r39 r34 -1 -641 trace_line 0 r39 r34 L39 -642 trace_var 0 r39 r34 $31 = r29 -643 trace_scope 0 r39 r34 1 -644 trace_line 0 r39 r34 L40 -645 r37 = add_f32 r40 r29 -646 r40 = select r39 r37 r40 -647 trace_var 0 r39 r34 $30 = r40 -648 trace_scope 0 r39 r34 -1 -649 trace_line 0 r39 r34 L39 -650 trace_scope 0 r39 r34 -1 -651 trace_line 0 r39 r34 L42 -652 r40 = sub_f32 r40 r30 -653 r40 = bit_and r39 r40 -654 trace_var 0 r39 r34 $29 = r40 -655 trace_scope 0 r39 r34 -1 -656 trace_exit 0 r39 r34 F4 -657 r40 = bit_and r40 r31 -658 r40 = gt_f32 r32 r40 -659 r40 = bit_and r39 r40 -660 trace_enter 0 r40 r34 F5 +579 trace_scope 0 r40 r34 -1 +580 trace_line 0 r40 r34 L33 +581 r35 = bit_and r40 r35 +582 trace_var 0 r40 r34 $24 = r35 +583 trace_scope 0 r40 r34 -1 +584 trace_exit 0 r40 r34 F3 +585 r35 = eq_f32 r35 r24 +586 r35 = bit_and r40 r35 +587 trace_enter 0 r35 r34 F4 +588 trace_scope 0 r35 r34 1 +589 trace_line 0 r35 r34 L38 +590 trace_var 0 r35 r34 $30 = r9 +591 trace_line 0 r35 r34 L39 +592 trace_scope 0 r35 r34 1 +593 trace_var 0 r35 r34 $31 = r25 +594 trace_scope 0 r35 r34 1 +595 trace_line 0 r35 r34 L40 +596 r40 = bit_and r35 r25 +597 trace_var 0 r35 r34 $30 = r40 +598 trace_scope 0 r35 r34 -1 +599 trace_line 0 r35 r34 L39 +600 trace_var 0 r35 r34 $31 = r26 +601 trace_scope 0 r35 r34 1 +602 trace_line 0 r35 r34 L40 +603 r38 = add_f32 r40 r26 +604 r40 = select r35 r38 r40 +605 trace_var 0 r35 r34 $30 = r40 +606 trace_scope 0 r35 r34 -1 +607 trace_line 0 r35 r34 L39 +608 trace_var 0 r35 r34 $31 = r27 +609 trace_scope 0 r35 r34 1 +610 trace_line 0 r35 r34 L40 +611 r38 = add_f32 r40 r27 +612 r40 = select r35 r38 r40 +613 trace_var 0 r35 r34 $30 = r40 +614 trace_scope 0 r35 r34 -1 +615 trace_line 0 r35 r34 L39 +616 trace_var 0 r35 r34 $31 = r28 +617 trace_scope 0 r35 r34 1 +618 trace_line 0 r35 r34 L40 +619 r38 = add_f32 r40 r28 +620 r40 = select r35 r38 r40 +621 trace_var 0 r35 r34 $30 = r40 +622 trace_scope 0 r35 r34 -1 +623 trace_line 0 r35 r34 L39 +624 trace_var 0 r35 r34 $31 = r29 +625 trace_scope 0 r35 r34 1 +626 trace_line 0 r35 r34 L40 +627 r38 = add_f32 r40 r29 +628 r40 = select r35 r38 r40 +629 trace_var 0 r35 r34 $30 = r40 +630 trace_scope 0 r35 r34 -1 +631 trace_line 0 r35 r34 L39 +632 trace_scope 0 r35 r34 -1 +633 trace_line 0 r35 r34 L42 +634 r40 = sub_f32 r40 r30 +635 r40 = bit_and r35 r40 +636 trace_var 0 r35 r34 $29 = r40 +637 trace_scope 0 r35 r34 -1 +638 trace_exit 0 r35 r34 F4 +639 r40 = bit_and r40 r31 +640 r40 = gt_f32 r32 r40 +641 r40 = bit_and r35 r40 +642 trace_enter 0 r40 r34 F5 +643 trace_scope 0 r40 r34 1 +644 trace_line 0 r40 r34 L47 +645 trace_line 0 r40 r34 L48 +646 trace_line 0 r40 r34 L50 +647 trace_var 0 r40 r34 $33 = r22 +648 trace_var 0 r40 r34 $34 = r22 +649 trace_var 0 r40 r34 $35 = r22 +650 trace_var 0 r40 r34 $36 = r22 +651 trace_line 0 r40 r34 L51 +652 trace_scope 0 r40 r34 1 +653 trace_var 0 r40 r34 $37 = r15 +654 trace_scope 0 r40 r34 1 +655 trace_line 0 r40 r34 L52 +656 r35 = select r40 r15 r22 +657 trace_var 0 r40 r34 $36 = r35 +658 trace_scope 0 r40 r34 -1 +659 trace_line 0 r40 r34 L51 +660 trace_var 0 r40 r34 $37 = r16 661 trace_scope 0 r40 r34 1 -662 trace_line 0 r40 r34 L47 -663 trace_line 0 r40 r34 L48 -664 trace_line 0 r40 r34 L50 -665 trace_var 0 r40 r34 $33 = r22 -666 trace_var 0 r40 r34 $34 = r22 -667 trace_var 0 r40 r34 $35 = r22 -668 trace_var 0 r40 r34 $36 = r22 -669 trace_line 0 r40 r34 L51 +662 trace_line 0 r40 r34 L52 +663 r38 = select r40 r35 r22 +664 trace_var 0 r40 r34 $35 = r38 +665 r35 = select r40 r16 r35 +666 trace_var 0 r40 r34 $36 = r35 +667 trace_scope 0 r40 r34 -1 +668 trace_line 0 r40 r34 L51 +669 trace_var 0 r40 r34 $37 = r17 670 trace_scope 0 r40 r34 1 -671 trace_var 0 r40 r34 $37 = r15 -672 trace_scope 0 r40 r34 1 -673 trace_line 0 r40 r34 L52 -674 r39 = select r40 r15 r22 -675 trace_var 0 r40 r34 $36 = r39 -676 trace_scope 0 r40 r34 -1 -677 trace_line 0 r40 r34 L51 -678 trace_var 0 r40 r34 $37 = r16 -679 trace_scope 0 r40 r34 1 -680 trace_line 0 r40 r34 L52 -681 r37 = select r40 r39 r22 -682 trace_var 0 r40 r34 $35 = r37 -683 r39 = select r40 r16 r39 -684 trace_var 0 r40 r34 $36 = r39 -685 trace_scope 0 r40 r34 -1 -686 trace_line 0 r40 r34 L51 -687 trace_var 0 r40 r34 $37 = r17 -688 trace_scope 0 r40 r34 1 -689 trace_line 0 r40 r34 L52 -690 r38 = select r40 r37 r22 -691 trace_var 0 r40 r34 $34 = r38 -692 r37 = select r40 r39 r37 -693 trace_var 0 r40 r34 $35 = r37 -694 r39 = select r40 r17 r39 -695 trace_var 0 r40 r34 $36 = r39 -696 trace_scope 0 r40 r34 -1 -697 trace_line 0 r40 r34 L51 -698 trace_scope 0 r40 r34 -1 -699 trace_line 0 r40 r34 L54 -700 r38 = eq_f32 r15 r38 -701 r37 = eq_f32 r16 r37 -702 r39 = eq_f32 r17 r39 -703 r37 = bit_and r38 r37 -704 r37 = bit_and r39 r37 -705 r37 = bit_and r40 r37 -706 trace_var 0 r40 r34 $32 = r37 -707 trace_scope 0 r40 r34 -1 -708 trace_exit 0 r40 r34 F5 -709 r37 = bit_and r40 r37 -710 trace_enter 0 r37 r34 F6 -711 trace_scope 0 r37 r34 1 -712 trace_line 0 r37 r34 L59 -713 trace_line 0 r37 r34 L60 -714 trace_line 0 r37 r34 L62 -715 trace_var 0 r37 r34 $39 = r22 -716 trace_var 0 r37 r34 $40 = r22 -717 trace_var 0 r37 r34 $41 = r22 -718 trace_var 0 r37 r34 $42 = r22 -719 trace_line 0 r37 r34 L63 -720 trace_scope 0 r37 r34 1 -721 trace_var 0 r37 r34 $43 = r15 -722 trace_scope 0 r37 r34 1 -723 trace_line 0 r37 r34 L64 -724 r40 = select r37 r15 r22 -725 trace_var 0 r37 r34 $42 = r40 -726 trace_scope 0 r37 r34 -1 -727 trace_line 0 r37 r34 L63 -728 trace_var 0 r37 r34 $43 = r16 -729 trace_scope 0 r37 r34 1 -730 trace_line 0 r37 r34 L64 -731 r39 = select r37 r40 r22 -732 trace_var 0 r37 r34 $41 = r39 -733 r40 = select r37 r16 r40 -734 trace_var 0 r37 r34 $42 = r40 -735 trace_scope 0 r37 r34 -1 -736 trace_line 0 r37 r34 L63 -737 trace_var 0 r37 r34 $43 = r17 -738 trace_scope 0 r37 r34 1 -739 trace_line 0 r37 r34 L64 -740 r38 = select r37 r39 r22 -741 trace_var 0 r37 r34 $40 = r38 -742 r39 = select r37 r40 r39 -743 trace_var 0 r37 r34 $41 = r39 -744 r40 = select r37 r17 r40 -745 trace_var 0 r37 r34 $42 = r40 -746 trace_scope 0 r37 r34 -1 -747 trace_line 0 r37 r34 L63 -748 trace_scope 0 r37 r34 -1 -749 trace_line 0 r37 r34 L66 -750 r38 = eq_f32 r15 r38 -751 r39 = eq_f32 r16 r39 -752 r40 = eq_f32 r17 r40 -753 r39 = bit_and r38 r39 -754 r39 = bit_and r40 r39 -755 r39 = bit_and r37 r39 -756 trace_var 0 r37 r34 $38 = r39 -757 trace_scope 0 r37 r34 -1 -758 trace_exit 0 r37 r34 F6 -759 r39 = bit_and r37 r39 -760 trace_enter 0 r39 r34 F7 -761 trace_scope 0 r39 r34 1 -762 trace_line 0 r39 r34 L71 -763 trace_line 0 r39 r34 L72 -764 trace_line 0 r39 r34 L74 -765 trace_var 0 r39 r34 $45 = r22 -766 trace_var 0 r39 r34 $46 = r22 -767 trace_var 0 r39 r34 $47 = r22 -768 trace_var 0 r39 r34 $48 = r22 -769 trace_line 0 r39 r34 L75 -770 trace_scope 0 r39 r34 1 -771 trace_var 0 r39 r34 $49 = r17 -772 trace_scope 0 r39 r34 1 -773 trace_line 0 r39 r34 L76 -774 r37 = select r39 r17 r22 -775 trace_var 0 r39 r34 $48 = r37 -776 trace_scope 0 r39 r34 -1 -777 trace_line 0 r39 r34 L75 -778 trace_var 0 r39 r34 $49 = r16 -779 trace_scope 0 r39 r34 1 -780 trace_line 0 r39 r34 L76 -781 r40 = select r39 r37 r22 -782 trace_var 0 r39 r34 $47 = r40 -783 r37 = select r39 r16 r37 -784 trace_var 0 r39 r34 $48 = r37 -785 trace_scope 0 r39 r34 -1 -786 trace_line 0 r39 r34 L75 -787 trace_var 0 r39 r34 $49 = r15 -788 trace_scope 0 r39 r34 1 -789 trace_line 0 r39 r34 L76 -790 r38 = select r39 r40 r22 -791 trace_var 0 r39 r34 $46 = r38 -792 r40 = select r39 r37 r40 -793 trace_var 0 r39 r34 $47 = r40 -794 r37 = select r39 r15 r37 -795 trace_var 0 r39 r34 $48 = r37 -796 trace_scope 0 r39 r34 -1 -797 trace_line 0 r39 r34 L75 -798 trace_scope 0 r39 r34 -1 -799 trace_line 0 r39 r34 L78 -800 r38 = eq_f32 r17 r38 -801 r40 = eq_f32 r16 r40 -802 r37 = eq_f32 r15 r37 -803 r40 = bit_and r38 r40 -804 r40 = bit_and r37 r40 -805 r40 = bit_and r39 r40 -806 trace_var 0 r39 r34 $44 = r40 -807 trace_scope 0 r39 r34 -1 -808 trace_exit 0 r39 r34 F7 -809 r40 = bit_and r39 r40 -810 trace_enter 0 r40 r34 F8 +671 trace_line 0 r40 r34 L52 +672 r36 = select r40 r38 r22 +673 trace_var 0 r40 r34 $34 = r36 +674 r38 = select r40 r35 r38 +675 trace_var 0 r40 r34 $35 = r38 +676 r35 = select r40 r17 r35 +677 trace_var 0 r40 r34 $36 = r35 +678 trace_scope 0 r40 r34 -1 +679 trace_line 0 r40 r34 L51 +680 trace_scope 0 r40 r34 -1 +681 trace_line 0 r40 r34 L54 +682 r36 = eq_f32 r36 r15 +683 r38 = eq_f32 r38 r16 +684 r35 = eq_f32 r35 r17 +685 r38 = bit_and r36 r38 +686 r38 = bit_and r35 r38 +687 r38 = bit_and r40 r38 +688 trace_var 0 r40 r34 $32 = r38 +689 trace_scope 0 r40 r34 -1 +690 trace_exit 0 r40 r34 F5 +691 r38 = bit_and r40 r38 +692 trace_enter 0 r38 r34 F6 +693 trace_scope 0 r38 r34 1 +694 trace_line 0 r38 r34 L59 +695 trace_line 0 r38 r34 L60 +696 trace_line 0 r38 r34 L62 +697 trace_var 0 r38 r34 $39 = r22 +698 trace_var 0 r38 r34 $40 = r22 +699 trace_var 0 r38 r34 $41 = r22 +700 trace_var 0 r38 r34 $42 = r22 +701 trace_line 0 r38 r34 L63 +702 trace_scope 0 r38 r34 1 +703 trace_var 0 r38 r34 $43 = r15 +704 trace_scope 0 r38 r34 1 +705 trace_line 0 r38 r34 L64 +706 r40 = select r38 r15 r22 +707 trace_var 0 r38 r34 $42 = r40 +708 trace_scope 0 r38 r34 -1 +709 trace_line 0 r38 r34 L63 +710 trace_var 0 r38 r34 $43 = r16 +711 trace_scope 0 r38 r34 1 +712 trace_line 0 r38 r34 L64 +713 r35 = select r38 r40 r22 +714 trace_var 0 r38 r34 $41 = r35 +715 r40 = select r38 r16 r40 +716 trace_var 0 r38 r34 $42 = r40 +717 trace_scope 0 r38 r34 -1 +718 trace_line 0 r38 r34 L63 +719 trace_var 0 r38 r34 $43 = r17 +720 trace_scope 0 r38 r34 1 +721 trace_line 0 r38 r34 L64 +722 r36 = select r38 r35 r22 +723 trace_var 0 r38 r34 $40 = r36 +724 r35 = select r38 r40 r35 +725 trace_var 0 r38 r34 $41 = r35 +726 r40 = select r38 r17 r40 +727 trace_var 0 r38 r34 $42 = r40 +728 trace_scope 0 r38 r34 -1 +729 trace_line 0 r38 r34 L63 +730 trace_scope 0 r38 r34 -1 +731 trace_line 0 r38 r34 L66 +732 r36 = eq_f32 r36 r15 +733 r35 = eq_f32 r35 r16 +734 r40 = eq_f32 r40 r17 +735 r35 = bit_and r36 r35 +736 r35 = bit_and r40 r35 +737 r35 = bit_and r38 r35 +738 trace_var 0 r38 r34 $38 = r35 +739 trace_scope 0 r38 r34 -1 +740 trace_exit 0 r38 r34 F6 +741 r35 = bit_and r38 r35 +742 trace_enter 0 r35 r34 F7 +743 trace_scope 0 r35 r34 1 +744 trace_line 0 r35 r34 L71 +745 trace_line 0 r35 r34 L72 +746 trace_line 0 r35 r34 L74 +747 trace_var 0 r35 r34 $45 = r22 +748 trace_var 0 r35 r34 $46 = r22 +749 trace_var 0 r35 r34 $47 = r22 +750 trace_var 0 r35 r34 $48 = r22 +751 trace_line 0 r35 r34 L75 +752 trace_scope 0 r35 r34 1 +753 trace_var 0 r35 r34 $49 = r17 +754 trace_scope 0 r35 r34 1 +755 trace_line 0 r35 r34 L76 +756 r38 = select r35 r17 r22 +757 trace_var 0 r35 r34 $48 = r38 +758 trace_scope 0 r35 r34 -1 +759 trace_line 0 r35 r34 L75 +760 trace_var 0 r35 r34 $49 = r16 +761 trace_scope 0 r35 r34 1 +762 trace_line 0 r35 r34 L76 +763 r40 = select r35 r38 r22 +764 trace_var 0 r35 r34 $47 = r40 +765 r38 = select r35 r16 r38 +766 trace_var 0 r35 r34 $48 = r38 +767 trace_scope 0 r35 r34 -1 +768 trace_line 0 r35 r34 L75 +769 trace_var 0 r35 r34 $49 = r15 +770 trace_scope 0 r35 r34 1 +771 trace_line 0 r35 r34 L76 +772 r36 = select r35 r40 r22 +773 trace_var 0 r35 r34 $46 = r36 +774 r40 = select r35 r38 r40 +775 trace_var 0 r35 r34 $47 = r40 +776 r38 = select r35 r15 r38 +777 trace_var 0 r35 r34 $48 = r38 +778 trace_scope 0 r35 r34 -1 +779 trace_line 0 r35 r34 L75 +780 trace_scope 0 r35 r34 -1 +781 trace_line 0 r35 r34 L78 +782 r36 = eq_f32 r36 r17 +783 r40 = eq_f32 r40 r16 +784 r38 = eq_f32 r38 r15 +785 r40 = bit_and r36 r40 +786 r40 = bit_and r38 r40 +787 r40 = bit_and r35 r40 +788 trace_var 0 r35 r34 $44 = r40 +789 trace_scope 0 r35 r34 -1 +790 trace_exit 0 r35 r34 F7 +791 r40 = bit_and r35 r40 +792 trace_enter 0 r40 r34 F8 +793 trace_scope 0 r40 r34 1 +794 trace_line 0 r40 r34 L83 +795 trace_line 0 r40 r34 L84 +796 trace_line 0 r40 r34 L86 +797 trace_var 0 r40 r34 $51 = r22 +798 trace_var 0 r40 r34 $52 = r22 +799 trace_var 0 r40 r34 $53 = r22 +800 trace_var 0 r40 r34 $54 = r22 +801 trace_line 0 r40 r34 L87 +802 trace_scope 0 r40 r34 1 +803 trace_var 0 r40 r34 $55 = r17 +804 trace_scope 0 r40 r34 1 +805 trace_line 0 r40 r34 L88 +806 r35 = select r40 r17 r22 +807 trace_var 0 r40 r34 $54 = r35 +808 trace_scope 0 r40 r34 -1 +809 trace_line 0 r40 r34 L87 +810 trace_var 0 r40 r34 $55 = r16 811 trace_scope 0 r40 r34 1 -812 trace_line 0 r40 r34 L83 -813 trace_line 0 r40 r34 L84 -814 trace_line 0 r40 r34 L86 -815 trace_var 0 r40 r34 $51 = r22 -816 trace_var 0 r40 r34 $52 = r22 -817 trace_var 0 r40 r34 $53 = r22 -818 trace_var 0 r40 r34 $54 = r22 -819 trace_line 0 r40 r34 L87 +812 trace_line 0 r40 r34 L88 +813 r38 = select r40 r35 r22 +814 trace_var 0 r40 r34 $53 = r38 +815 r35 = select r40 r16 r35 +816 trace_var 0 r40 r34 $54 = r35 +817 trace_scope 0 r40 r34 -1 +818 trace_line 0 r40 r34 L87 +819 trace_var 0 r40 r34 $55 = r15 820 trace_scope 0 r40 r34 1 -821 trace_var 0 r40 r34 $55 = r17 -822 trace_scope 0 r40 r34 1 -823 trace_line 0 r40 r34 L88 -824 r39 = select r40 r17 r22 -825 trace_var 0 r40 r34 $54 = r39 -826 trace_scope 0 r40 r34 -1 -827 trace_line 0 r40 r34 L87 -828 trace_var 0 r40 r34 $55 = r16 -829 trace_scope 0 r40 r34 1 -830 trace_line 0 r40 r34 L88 -831 r37 = select r40 r39 r22 -832 trace_var 0 r40 r34 $53 = r37 -833 r39 = select r40 r16 r39 -834 trace_var 0 r40 r34 $54 = r39 -835 trace_scope 0 r40 r34 -1 -836 trace_line 0 r40 r34 L87 -837 trace_var 0 r40 r34 $55 = r15 -838 trace_scope 0 r40 r34 1 -839 trace_line 0 r40 r34 L88 -840 r38 = select r40 r37 r22 -841 trace_var 0 r40 r34 $52 = r38 -842 r37 = select r40 r39 r37 -843 trace_var 0 r40 r34 $53 = r37 -844 r39 = select r40 r15 r39 -845 trace_var 0 r40 r34 $54 = r39 -846 trace_scope 0 r40 r34 -1 -847 trace_line 0 r40 r34 L87 -848 trace_scope 0 r40 r34 -1 -849 trace_line 0 r40 r34 L90 -850 r38 = eq_f32 r17 r38 -851 r37 = eq_f32 r16 r37 -852 r39 = eq_f32 r15 r39 -853 r37 = bit_and r38 r37 -854 r37 = bit_and r39 r37 -855 r37 = bit_and r40 r37 -856 trace_var 0 r40 r34 $50 = r37 -857 trace_scope 0 r40 r34 -1 -858 trace_exit 0 r40 r34 F8 -859 r37 = bit_and r40 r37 -860 trace_enter 0 r37 r34 F9 -861 trace_scope 0 r37 r34 1 -862 trace_line 0 r37 r34 L106 -863 trace_line 0 r37 r34 L108 -864 trace_var 0 r37 r34 $57 = r22 -865 trace_var 0 r37 r34 $58 = r22 -866 trace_var 0 r37 r34 $59 = r22 -867 trace_var 0 r37 r34 $60 = r22 -868 trace_line 0 r37 r34 L109 -869 trace_scope 0 r37 r34 1 -870 trace_var 0 r37 r34 $61 = r15 -871 trace_scope 0 r37 r34 1 -872 trace_line 0 r37 r34 L110 -873 r40 = select r37 r15 r22 -874 trace_var 0 r37 r34 $60 = r40 -875 trace_scope 0 r37 r34 -1 -876 trace_line 0 r37 r34 L109 -877 trace_scope 0 r37 r34 -1 -878 trace_line 0 r37 r34 L112 -879 r40 = eq_f32 r15 r40 -880 r40 = bit_and r37 r40 -881 trace_var 0 r37 r34 $56 = r40 -882 trace_scope 0 r37 r34 -1 -883 trace_exit 0 r37 r34 F9 -884 r40 = bit_and r37 r40 -885 trace_enter 0 r40 r34 F10 -886 trace_scope 0 r40 r34 1 -887 trace_line 0 r40 r34 L95 -888 trace_line 0 r40 r34 L97 -889 trace_var 0 r40 r34 $63 = r22 -890 trace_var 0 r40 r34 $64 = r22 -891 trace_var 0 r40 r34 $65 = r22 -892 trace_var 0 r40 r34 $66 = r22 -893 trace_line 0 r40 r34 L98 +821 trace_line 0 r40 r34 L88 +822 r36 = select r40 r38 r22 +823 trace_var 0 r40 r34 $52 = r36 +824 r38 = select r40 r35 r38 +825 trace_var 0 r40 r34 $53 = r38 +826 r35 = select r40 r15 r35 +827 trace_var 0 r40 r34 $54 = r35 +828 trace_scope 0 r40 r34 -1 +829 trace_line 0 r40 r34 L87 +830 trace_scope 0 r40 r34 -1 +831 trace_line 0 r40 r34 L90 +832 r36 = eq_f32 r36 r17 +833 r38 = eq_f32 r38 r16 +834 r35 = eq_f32 r35 r15 +835 r38 = bit_and r36 r38 +836 r38 = bit_and r35 r38 +837 r38 = bit_and r40 r38 +838 trace_var 0 r40 r34 $50 = r38 +839 trace_scope 0 r40 r34 -1 +840 trace_exit 0 r40 r34 F8 +841 r38 = bit_and r40 r38 +842 trace_enter 0 r38 r34 F9 +843 trace_scope 0 r38 r34 1 +844 trace_line 0 r38 r34 L106 +845 trace_line 0 r38 r34 L108 +846 trace_var 0 r38 r34 $57 = r22 +847 trace_var 0 r38 r34 $58 = r22 +848 trace_var 0 r38 r34 $59 = r22 +849 trace_var 0 r38 r34 $60 = r22 +850 trace_line 0 r38 r34 L109 +851 trace_scope 0 r38 r34 1 +852 trace_var 0 r38 r34 $61 = r15 +853 trace_scope 0 r38 r34 1 +854 trace_line 0 r38 r34 L110 +855 r40 = select r38 r15 r22 +856 trace_var 0 r38 r34 $60 = r40 +857 trace_scope 0 r38 r34 -1 +858 trace_line 0 r38 r34 L109 +859 trace_scope 0 r38 r34 -1 +860 trace_line 0 r38 r34 L112 +861 r40 = eq_f32 r40 r15 +862 r40 = bit_and r38 r40 +863 trace_var 0 r38 r34 $56 = r40 +864 trace_scope 0 r38 r34 -1 +865 trace_exit 0 r38 r34 F9 +866 r40 = bit_and r38 r40 +867 trace_enter 0 r40 r34 F10 +868 trace_scope 0 r40 r34 1 +869 trace_line 0 r40 r34 L95 +870 trace_line 0 r40 r34 L97 +871 trace_var 0 r40 r34 $63 = r22 +872 trace_var 0 r40 r34 $64 = r22 +873 trace_var 0 r40 r34 $65 = r22 +874 trace_var 0 r40 r34 $66 = r22 +875 trace_line 0 r40 r34 L98 +876 trace_scope 0 r40 r34 1 +877 trace_var 0 r40 r34 $67 = r15 +878 trace_scope 0 r40 r34 1 +879 trace_line 0 r40 r34 L99 +880 r38 = select r40 r15 r22 +881 trace_var 0 r40 r34 $66 = r38 +882 trace_scope 0 r40 r34 -1 +883 trace_line 0 r40 r34 L98 +884 trace_var 0 r40 r34 $67 = r16 +885 trace_scope 0 r40 r34 1 +886 trace_line 0 r40 r34 L99 +887 r35 = select r40 r38 r22 +888 trace_var 0 r40 r34 $65 = r35 +889 r38 = select r40 r16 r38 +890 trace_var 0 r40 r34 $66 = r38 +891 trace_scope 0 r40 r34 -1 +892 trace_line 0 r40 r34 L98 +893 trace_var 0 r40 r34 $67 = r17 894 trace_scope 0 r40 r34 1 -895 trace_var 0 r40 r34 $67 = r15 -896 trace_scope 0 r40 r34 1 -897 trace_line 0 r40 r34 L99 -898 r37 = select r40 r15 r22 -899 trace_var 0 r40 r34 $66 = r37 -900 trace_scope 0 r40 r34 -1 -901 trace_line 0 r40 r34 L98 -902 trace_var 0 r40 r34 $67 = r16 -903 trace_scope 0 r40 r34 1 -904 trace_line 0 r40 r34 L99 -905 r39 = select r40 r37 r22 -906 trace_var 0 r40 r34 $65 = r39 -907 r37 = select r40 r16 r37 -908 trace_var 0 r40 r34 $66 = r37 -909 trace_scope 0 r40 r34 -1 -910 trace_line 0 r40 r34 L98 -911 trace_var 0 r40 r34 $67 = r17 -912 trace_scope 0 r40 r34 1 -913 trace_line 0 r40 r34 L99 -914 r38 = select r40 r39 r22 -915 trace_var 0 r40 r34 $64 = r38 -916 r39 = select r40 r37 r39 -917 trace_var 0 r40 r34 $65 = r39 -918 r37 = select r40 r17 r37 -919 trace_var 0 r40 r34 $66 = r37 -920 trace_scope 0 r40 r34 -1 -921 trace_line 0 r40 r34 L98 -922 trace_scope 0 r40 r34 -1 -923 trace_line 0 r40 r34 L101 -924 r38 = eq_f32 r15 r38 -925 r39 = eq_f32 r16 r39 -926 r37 = eq_f32 r17 r37 -927 r39 = bit_and r38 r39 -928 r39 = bit_and r37 r39 -929 r39 = bit_and r40 r39 -930 trace_var 0 r40 r34 $62 = r39 -931 trace_scope 0 r40 r34 -1 -932 trace_exit 0 r40 r34 F10 -933 r39 = bit_and r40 r39 -934 r40 = select r39 r5 r1 -935 r37 = select r39 r6 r2 -936 r38 = select r39 r7 r3 -937 r39 = select r39 r8 r4 -938 trace_var 0 r34 r34 $10 = r40 -939 trace_var 0 r34 r34 $11 = r37 -940 trace_var 0 r34 r34 $12 = r38 -941 trace_var 0 r34 r34 $13 = r39 -942 trace_scope 0 r34 r34 -1 -943 trace_exit 0 r34 r34 F0 -944 store32 ptr1 r40 -945 store32 ptr2 r37 -946 store32 ptr3 r38 -947 store32 ptr4 r39 +895 trace_line 0 r40 r34 L99 +896 r36 = select r40 r35 r22 +897 trace_var 0 r40 r34 $64 = r36 +898 r35 = select r40 r38 r35 +899 trace_var 0 r40 r34 $65 = r35 +900 r38 = select r40 r17 r38 +901 trace_var 0 r40 r34 $66 = r38 +902 trace_scope 0 r40 r34 -1 +903 trace_line 0 r40 r34 L98 +904 trace_scope 0 r40 r34 -1 +905 trace_line 0 r40 r34 L101 +906 r36 = eq_f32 r36 r15 +907 r35 = eq_f32 r35 r16 +908 r38 = eq_f32 r38 r17 +909 r35 = bit_and r36 r35 +910 r35 = bit_and r38 r35 +911 r35 = bit_and r40 r35 +912 trace_var 0 r40 r34 $62 = r35 +913 trace_scope 0 r40 r34 -1 +914 trace_exit 0 r40 r34 F10 +915 r35 = bit_and r40 r35 +916 r40 = select r35 r5 r1 +917 r38 = select r35 r6 r2 +918 r36 = select r35 r7 r3 +919 r35 = select r35 r8 r4 +920 trace_var 0 r34 r34 $10 = r40 +921 trace_var 0 r34 r34 $11 = r38 +922 trace_var 0 r34 r34 $12 = r36 +923 trace_var 0 r34 r34 $13 = r35 +924 trace_scope 0 r34 r34 -1 +925 trace_exit 0 r34 r34 F0 +926 store32 ptr1 r40 +927 store32 ptr2 r38 +928 store32 ptr3 r36 +929 store32 ptr4 r35 diff --git a/third_party/skia/tests/sksl/runtime/LoopInt.skvm b/third_party/skia/tests/sksl/runtime/LoopInt.skvm index fdd12972cf2d..23e1a9607a15 100644 --- a/third_party/skia/tests/sksl/runtime/LoopInt.skvm +++ b/third_party/skia/tests/sksl/runtime/LoopInt.skvm @@ -74,7 +74,7 @@ F7 = bool loop_operator_gt() F8 = bool loop_operator_eq() F9 = bool loop_operator_ne() -34 registers, 886 instructions: +34 registers, 760 instructions: 0 r0 = uniform32 ptr0 0 1 r1 = uniform32 ptr0 4 2 r2 = uniform32 ptr0 8 @@ -124,7 +124,7 @@ loop: 45 r25 = trunc r25 46 r25 = mul_i32 r25 r14 47 trace_var 0 r26 r26 $16 = r25 -48 trace_line 0 r26 r26 L108 +48 trace_line 0 r26 r26 L111 49 trace_enter 0 r26 r26 F1 50 trace_var 0 r26 r26 $18 = r25 51 trace_scope 0 r26 r26 1 @@ -133,33 +133,33 @@ loop: 54 trace_var 0 r26 r26 $19 = r9 55 trace_scope 0 r26 r26 1 56 trace_line 0 r26 r26 L9 -57 r27 = eq_i32 r9 r25 +57 r27 = eq_i32 r25 r9 58 trace_scope 0 r27 r26 1 59 trace_line 0 r27 r26 L9 60 trace_var 0 r27 r26 $17 = r9 61 trace_scope 0 r27 r26 -1 62 trace_scope 0 r26 r26 -1 -63 r28 = bit_xor r10 r27 +63 r28 = bit_xor r27 r10 64 trace_line 0 r28 r26 L8 65 trace_var 0 r28 r26 $19 = r15 66 trace_scope 0 r28 r26 1 67 trace_line 0 r28 r26 L9 68 r29 = eq_i32 r25 r15 -69 r29 = bit_and r28 r29 +69 r29 = bit_clear r29 r27 70 trace_scope 0 r29 r26 1 71 trace_line 0 r29 r26 L9 -72 r30 = bit_and r15 r29 +72 r30 = bit_and r29 r15 73 trace_var 0 r29 r26 $17 = r30 74 r27 = bit_or r27 r29 75 trace_scope 0 r29 r26 -1 76 trace_scope 0 r28 r26 -1 -77 r28 = bit_xor r10 r27 +77 r28 = bit_xor r27 r10 78 trace_line 0 r28 r26 L8 79 trace_var 0 r28 r26 $19 = r16 80 trace_scope 0 r28 r26 1 81 trace_line 0 r28 r26 L9 82 r29 = eq_i32 r25 r16 -83 r29 = bit_and r28 r29 +83 r29 = bit_clear r29 r27 84 trace_scope 0 r29 r26 1 85 trace_line 0 r29 r26 L9 86 r30 = select r29 r16 r30 @@ -167,13 +167,13 @@ loop: 88 r27 = bit_or r27 r29 89 trace_scope 0 r29 r26 -1 90 trace_scope 0 r28 r26 -1 -91 r28 = bit_xor r10 r27 +91 r28 = bit_xor r27 r10 92 trace_line 0 r28 r26 L8 93 trace_var 0 r28 r26 $19 = r17 94 trace_scope 0 r28 r26 1 95 trace_line 0 r28 r26 L9 96 r29 = eq_i32 r25 r17 -97 r29 = bit_and r28 r29 +97 r29 = bit_clear r29 r27 98 trace_scope 0 r29 r26 1 99 trace_line 0 r29 r26 L9 100 r30 = select r29 r17 r30 @@ -181,13 +181,13 @@ loop: 102 r27 = bit_or r27 r29 103 trace_scope 0 r29 r26 -1 104 trace_scope 0 r28 r26 -1 -105 r28 = bit_xor r10 r27 +105 r28 = bit_xor r27 r10 106 trace_line 0 r28 r26 L8 107 trace_var 0 r28 r26 $19 = r18 108 trace_scope 0 r28 r26 1 109 trace_line 0 r28 r26 L9 110 r29 = eq_i32 r25 r18 -111 r29 = bit_and r28 r29 +111 r29 = bit_clear r29 r27 112 trace_scope 0 r29 r26 1 113 trace_line 0 r29 r26 L9 114 r30 = select r29 r18 r30 @@ -195,13 +195,13 @@ loop: 116 r27 = bit_or r27 r29 117 trace_scope 0 r29 r26 -1 118 trace_scope 0 r28 r26 -1 -119 r28 = bit_xor r10 r27 +119 r28 = bit_xor r27 r10 120 trace_line 0 r28 r26 L8 121 trace_var 0 r28 r26 $19 = r14 122 trace_scope 0 r28 r26 1 123 trace_line 0 r28 r26 L9 -124 r29 = eq_i32 r14 r25 -125 r29 = bit_and r28 r29 +124 r29 = eq_i32 r25 r14 +125 r29 = bit_clear r29 r27 126 trace_scope 0 r29 r26 1 127 trace_line 0 r29 r26 L9 128 r30 = select r29 r14 r30 @@ -209,13 +209,13 @@ loop: 130 r27 = bit_or r27 r29 131 trace_scope 0 r29 r26 -1 132 trace_scope 0 r28 r26 -1 -133 r28 = bit_xor r10 r27 +133 r28 = bit_xor r27 r10 134 trace_line 0 r28 r26 L8 135 trace_var 0 r28 r26 $19 = r19 136 trace_scope 0 r28 r26 1 137 trace_line 0 r28 r26 L9 138 r29 = eq_i32 r25 r19 -139 r29 = bit_and r28 r29 +139 r29 = bit_clear r29 r27 140 trace_scope 0 r29 r26 1 141 trace_line 0 r29 r26 L9 142 r30 = select r29 r19 r30 @@ -223,13 +223,13 @@ loop: 144 r27 = bit_or r27 r29 145 trace_scope 0 r29 r26 -1 146 trace_scope 0 r28 r26 -1 -147 r28 = bit_xor r10 r27 +147 r28 = bit_xor r27 r10 148 trace_line 0 r28 r26 L8 149 trace_var 0 r28 r26 $19 = r20 150 trace_scope 0 r28 r26 1 151 trace_line 0 r28 r26 L9 152 r29 = eq_i32 r25 r20 -153 r29 = bit_and r28 r29 +153 r29 = bit_clear r29 r27 154 trace_scope 0 r29 r26 1 155 trace_line 0 r29 r26 L9 156 r30 = select r29 r20 r30 @@ -237,13 +237,13 @@ loop: 158 r27 = bit_or r27 r29 159 trace_scope 0 r29 r26 -1 160 trace_scope 0 r28 r26 -1 -161 r28 = bit_xor r10 r27 +161 r28 = bit_xor r27 r10 162 trace_line 0 r28 r26 L8 163 trace_var 0 r28 r26 $19 = r21 164 trace_scope 0 r28 r26 1 165 trace_line 0 r28 r26 L9 166 r29 = eq_i32 r25 r21 -167 r29 = bit_and r28 r29 +167 r29 = bit_clear r29 r27 168 trace_scope 0 r29 r26 1 169 trace_line 0 r29 r26 L9 170 r30 = select r29 r21 r30 @@ -251,13 +251,13 @@ loop: 172 r27 = bit_or r27 r29 173 trace_scope 0 r29 r26 -1 174 trace_scope 0 r28 r26 -1 -175 r28 = bit_xor r10 r27 +175 r28 = bit_xor r27 r10 176 trace_line 0 r28 r26 L8 177 trace_var 0 r28 r26 $19 = r22 178 trace_scope 0 r28 r26 1 179 trace_line 0 r28 r26 L9 180 r29 = eq_i32 r25 r22 -181 r29 = bit_and r28 r29 +181 r29 = bit_clear r29 r27 182 trace_scope 0 r29 r26 1 183 trace_line 0 r29 r26 L9 184 r30 = select r29 r22 r30 @@ -265,7 +265,7 @@ loop: 186 r27 = bit_or r27 r29 187 trace_scope 0 r29 r26 -1 188 trace_scope 0 r28 r26 -1 -189 r27 = bit_xor r10 r27 +189 r27 = bit_xor r27 r10 190 trace_line 0 r27 r26 L8 191 trace_scope 0 r26 r26 -1 192 trace_line 0 r27 r26 L11 @@ -273,7 +273,7 @@ loop: 194 trace_var 0 r27 r26 $17 = r30 195 trace_scope 0 r26 r26 -1 196 trace_exit 0 r26 r26 F1 -197 r30 = eq_i32 r14 r30 +197 r30 = eq_i32 r30 r14 198 trace_enter 0 r30 r26 F2 199 trace_var 0 r30 r26 $21 = r25 200 trace_scope 0 r30 r26 1 @@ -288,9 +288,9 @@ loop: 209 r27 = bit_and r30 r27 210 trace_scope 0 r27 r26 1 211 trace_line 0 r27 r26 L19 -212 r28 = bit_xor r10 r27 +212 r28 = bit_xor r27 r10 213 trace_scope 0 r27 r26 -1 -214 r29 = bit_and r30 r28 +214 r29 = bit_clear r30 r27 215 trace_line 0 r29 r26 L20 216 trace_scope 0 r30 r26 -1 217 r28 = bit_or r27 r28 @@ -304,661 +304,535 @@ loop: 225 r29 = bit_and r28 r29 226 trace_scope 0 r29 r26 1 227 trace_line 0 r29 r26 L19 -228 r31 = bit_xor r10 r29 -229 r31 = bit_and r28 r31 -230 trace_scope 0 r29 r26 -1 -231 r28 = bit_and r30 r31 -232 trace_line 0 r28 r26 L20 -233 r32 = bit_and r15 r28 -234 trace_var 0 r28 r26 $22 = r32 -235 trace_scope 0 r27 r26 -1 -236 r31 = bit_or r29 r31 -237 r29 = bit_and r30 r31 -238 trace_line 0 r29 r26 L18 -239 trace_var 0 r29 r26 $23 = r16 -240 trace_scope 0 r29 r26 1 -241 trace_line 0 r29 r26 L19 -242 r27 = gt_i32 r25 r16 -243 r27 = bit_and r30 r27 -244 r27 = bit_and r31 r27 -245 trace_scope 0 r27 r26 1 -246 trace_line 0 r27 r26 L19 -247 r28 = bit_xor r10 r27 -248 r28 = bit_and r31 r28 -249 trace_scope 0 r27 r26 -1 -250 r31 = bit_and r30 r28 -251 trace_line 0 r31 r26 L20 -252 r33 = add_i32 r16 r32 -253 r32 = select r31 r33 r32 -254 trace_var 0 r31 r26 $22 = r32 -255 trace_scope 0 r29 r26 -1 -256 r28 = bit_or r27 r28 -257 r27 = bit_and r30 r28 -258 trace_line 0 r27 r26 L18 -259 trace_var 0 r27 r26 $23 = r17 -260 trace_scope 0 r27 r26 1 -261 trace_line 0 r27 r26 L19 -262 r29 = gt_i32 r25 r17 -263 r29 = bit_and r30 r29 -264 r29 = bit_and r28 r29 -265 trace_scope 0 r29 r26 1 -266 trace_line 0 r29 r26 L19 -267 r31 = bit_xor r10 r29 -268 r31 = bit_and r28 r31 -269 trace_scope 0 r29 r26 -1 -270 r28 = bit_and r30 r31 -271 trace_line 0 r28 r26 L20 -272 r33 = add_i32 r17 r32 -273 r32 = select r28 r33 r32 -274 trace_var 0 r28 r26 $22 = r32 -275 trace_scope 0 r27 r26 -1 -276 r31 = bit_or r29 r31 -277 r29 = bit_and r30 r31 -278 trace_line 0 r29 r26 L18 -279 trace_var 0 r29 r26 $23 = r18 -280 trace_scope 0 r29 r26 1 -281 trace_line 0 r29 r26 L19 -282 r27 = gt_i32 r25 r18 -283 r27 = bit_and r30 r27 -284 r27 = bit_and r31 r27 -285 trace_scope 0 r27 r26 1 -286 trace_line 0 r27 r26 L19 -287 r28 = bit_xor r10 r27 -288 r28 = bit_and r31 r28 -289 trace_scope 0 r27 r26 -1 -290 r31 = bit_and r30 r28 -291 trace_line 0 r31 r26 L20 -292 r33 = add_i32 r18 r32 -293 r32 = select r31 r33 r32 -294 trace_var 0 r31 r26 $22 = r32 -295 trace_scope 0 r29 r26 -1 -296 r28 = bit_or r27 r28 -297 r27 = bit_and r30 r28 -298 trace_line 0 r27 r26 L18 -299 trace_var 0 r27 r26 $23 = r14 -300 trace_scope 0 r27 r26 1 -301 trace_line 0 r27 r26 L19 -302 r29 = gt_i32 r25 r14 -303 r29 = bit_and r30 r29 -304 r29 = bit_and r28 r29 -305 trace_scope 0 r29 r26 1 -306 trace_line 0 r29 r26 L19 -307 r31 = bit_xor r10 r29 -308 r31 = bit_and r28 r31 -309 trace_scope 0 r29 r26 -1 -310 r28 = bit_and r30 r31 -311 trace_line 0 r28 r26 L20 -312 r33 = add_i32 r14 r32 -313 r32 = select r28 r33 r32 -314 trace_var 0 r28 r26 $22 = r32 -315 trace_scope 0 r27 r26 -1 -316 r31 = bit_or r29 r31 -317 r29 = bit_and r30 r31 -318 trace_line 0 r29 r26 L18 -319 trace_var 0 r29 r26 $23 = r19 -320 trace_scope 0 r29 r26 1 -321 trace_line 0 r29 r26 L19 -322 r27 = gt_i32 r25 r19 -323 r27 = bit_and r30 r27 -324 r27 = bit_and r31 r27 -325 trace_scope 0 r27 r26 1 -326 trace_line 0 r27 r26 L19 -327 r28 = bit_xor r10 r27 -328 r28 = bit_and r31 r28 -329 trace_scope 0 r27 r26 -1 -330 r31 = bit_and r30 r28 -331 trace_line 0 r31 r26 L20 -332 r33 = add_i32 r19 r32 -333 r32 = select r31 r33 r32 -334 trace_var 0 r31 r26 $22 = r32 -335 trace_scope 0 r29 r26 -1 -336 r28 = bit_or r27 r28 -337 r27 = bit_and r30 r28 -338 trace_line 0 r27 r26 L18 -339 trace_var 0 r27 r26 $23 = r20 -340 trace_scope 0 r27 r26 1 -341 trace_line 0 r27 r26 L19 -342 r29 = gt_i32 r25 r20 -343 r29 = bit_and r30 r29 -344 r29 = bit_and r28 r29 -345 trace_scope 0 r29 r26 1 -346 trace_line 0 r29 r26 L19 -347 r31 = bit_xor r10 r29 -348 r31 = bit_and r28 r31 -349 trace_scope 0 r29 r26 -1 -350 r28 = bit_and r30 r31 -351 trace_line 0 r28 r26 L20 -352 r33 = add_i32 r20 r32 -353 r32 = select r28 r33 r32 -354 trace_var 0 r28 r26 $22 = r32 -355 trace_scope 0 r27 r26 -1 -356 r31 = bit_or r29 r31 -357 r29 = bit_and r30 r31 -358 trace_line 0 r29 r26 L18 -359 trace_var 0 r29 r26 $23 = r21 -360 trace_scope 0 r29 r26 1 -361 trace_line 0 r29 r26 L19 -362 r27 = gt_i32 r25 r21 -363 r27 = bit_and r30 r27 -364 r27 = bit_and r31 r27 -365 trace_scope 0 r27 r26 1 -366 trace_line 0 r27 r26 L19 -367 r28 = bit_xor r10 r27 -368 r28 = bit_and r31 r28 -369 trace_scope 0 r27 r26 -1 -370 r31 = bit_and r30 r28 -371 trace_line 0 r31 r26 L20 -372 r33 = add_i32 r21 r32 -373 r32 = select r31 r33 r32 -374 trace_var 0 r31 r26 $22 = r32 -375 trace_scope 0 r29 r26 -1 -376 r28 = bit_or r27 r28 -377 r27 = bit_and r30 r28 -378 trace_line 0 r27 r26 L18 -379 trace_var 0 r27 r26 $23 = r22 -380 trace_scope 0 r27 r26 1 -381 trace_line 0 r27 r26 L19 -382 r29 = gt_i32 r25 r22 -383 r29 = bit_and r30 r29 -384 r29 = bit_and r28 r29 -385 trace_scope 0 r29 r26 1 -386 trace_line 0 r29 r26 L19 -387 r31 = bit_xor r10 r29 -388 r31 = bit_and r28 r31 -389 trace_scope 0 r29 r26 -1 -390 r28 = bit_and r30 r31 -391 trace_line 0 r28 r26 L20 -392 r33 = add_i32 r22 r32 -393 r32 = select r28 r33 r32 -394 trace_var 0 r28 r26 $22 = r32 -395 trace_scope 0 r27 r26 -1 -396 r31 = bit_or r29 r31 -397 r31 = bit_and r30 r31 -398 trace_line 0 r31 r26 L18 -399 trace_scope 0 r30 r26 -1 -400 trace_line 0 r30 r26 L22 -401 r32 = bit_and r30 r32 -402 trace_var 0 r30 r26 $20 = r32 -403 trace_scope 0 r30 r26 -1 -404 trace_exit 0 r30 r26 F2 -405 r32 = eq_i32 r32 r23 -406 r32 = bit_and r30 r32 -407 trace_enter 0 r32 r26 F3 -408 trace_var 0 r32 r26 $25 = r25 -409 trace_scope 0 r32 r26 1 -410 trace_line 0 r32 r26 L27 -411 trace_var 0 r32 r26 $26 = r9 -412 trace_line 0 r32 r26 L28 -413 trace_var 0 r32 r26 $27 = r15 -414 trace_line 0 r32 r26 L29 -415 trace_scope 0 r32 r26 1 -416 trace_var 0 r32 r26 $28 = r9 -417 trace_scope 0 r32 r26 1 -418 trace_line 0 r32 r26 L30 -419 r30 = gt_i32 r9 r25 -420 r30 = bit_and r32 r30 -421 trace_scope 0 r30 r26 1 -422 trace_line 0 r30 r26 L30 -423 r31 = bit_xor r10 r30 -424 trace_scope 0 r30 r26 -1 -425 r30 = bit_and r32 r31 -426 trace_line 0 r30 r26 L31 -427 trace_scope 0 r32 r26 -1 -428 trace_line 0 r30 r26 L29 -429 trace_var 0 r30 r26 $28 = r15 -430 trace_scope 0 r30 r26 1 -431 trace_line 0 r30 r26 L30 -432 r29 = gt_i32 r15 r25 -433 r29 = bit_and r32 r29 -434 r29 = bit_and r31 r29 -435 trace_scope 0 r29 r26 1 -436 trace_line 0 r29 r26 L30 -437 r27 = bit_xor r10 r29 -438 r27 = bit_and r31 r27 -439 trace_scope 0 r29 r26 -1 -440 r29 = bit_and r32 r27 -441 trace_line 0 r29 r26 L31 -442 r31 = bit_and r15 r29 -443 trace_var 0 r29 r26 $26 = r31 -444 trace_scope 0 r30 r26 -1 -445 trace_line 0 r29 r26 L29 -446 trace_var 0 r29 r26 $28 = r16 -447 trace_scope 0 r29 r26 1 -448 trace_line 0 r29 r26 L30 -449 r30 = gt_i32 r16 r25 -450 r30 = bit_and r32 r30 -451 r30 = bit_and r27 r30 -452 trace_scope 0 r30 r26 1 -453 trace_line 0 r30 r26 L30 -454 r28 = bit_xor r10 r30 -455 r28 = bit_and r27 r28 -456 trace_scope 0 r30 r26 -1 -457 r30 = bit_and r32 r28 -458 trace_line 0 r30 r26 L31 -459 r27 = add_i32 r16 r31 -460 r31 = select r30 r27 r31 -461 trace_var 0 r30 r26 $26 = r31 -462 trace_scope 0 r29 r26 -1 -463 trace_line 0 r30 r26 L29 -464 trace_var 0 r30 r26 $28 = r17 -465 trace_scope 0 r30 r26 1 -466 trace_line 0 r30 r26 L30 -467 r29 = gt_i32 r17 r25 -468 r29 = bit_and r32 r29 -469 r29 = bit_and r28 r29 -470 trace_scope 0 r29 r26 1 -471 trace_line 0 r29 r26 L30 -472 r27 = bit_xor r10 r29 -473 r27 = bit_and r28 r27 -474 trace_scope 0 r29 r26 -1 -475 r29 = bit_and r32 r27 -476 trace_line 0 r29 r26 L31 -477 r28 = add_i32 r17 r31 -478 r31 = select r29 r28 r31 -479 trace_var 0 r29 r26 $26 = r31 -480 trace_scope 0 r30 r26 -1 -481 trace_line 0 r29 r26 L29 -482 trace_var 0 r29 r26 $28 = r18 -483 trace_scope 0 r29 r26 1 -484 trace_line 0 r29 r26 L30 -485 r30 = gt_i32 r18 r25 -486 r30 = bit_and r32 r30 -487 r30 = bit_and r27 r30 -488 trace_scope 0 r30 r26 1 -489 trace_line 0 r30 r26 L30 -490 r28 = bit_xor r10 r30 -491 r28 = bit_and r27 r28 -492 trace_scope 0 r30 r26 -1 -493 r30 = bit_and r32 r28 -494 trace_line 0 r30 r26 L31 -495 r27 = add_i32 r18 r31 -496 r31 = select r30 r27 r31 -497 trace_var 0 r30 r26 $26 = r31 -498 trace_scope 0 r29 r26 -1 -499 trace_line 0 r30 r26 L29 -500 trace_var 0 r30 r26 $28 = r14 -501 trace_scope 0 r30 r26 1 -502 trace_line 0 r30 r26 L30 -503 r29 = gt_i32 r14 r25 -504 r29 = bit_and r32 r29 -505 r29 = bit_and r28 r29 -506 trace_scope 0 r29 r26 1 -507 trace_line 0 r29 r26 L30 -508 r27 = bit_xor r10 r29 -509 r27 = bit_and r28 r27 -510 trace_scope 0 r29 r26 -1 -511 r29 = bit_and r32 r27 -512 trace_line 0 r29 r26 L31 -513 r28 = add_i32 r14 r31 -514 r31 = select r29 r28 r31 -515 trace_var 0 r29 r26 $26 = r31 -516 trace_scope 0 r30 r26 -1 -517 trace_line 0 r29 r26 L29 -518 trace_var 0 r29 r26 $28 = r19 -519 trace_scope 0 r29 r26 1 -520 trace_line 0 r29 r26 L30 -521 r30 = gt_i32 r19 r25 -522 r30 = bit_and r32 r30 -523 r30 = bit_and r27 r30 -524 trace_scope 0 r30 r26 1 -525 trace_line 0 r30 r26 L30 -526 r28 = bit_xor r10 r30 -527 r28 = bit_and r27 r28 -528 trace_scope 0 r30 r26 -1 -529 r30 = bit_and r32 r28 -530 trace_line 0 r30 r26 L31 -531 r27 = add_i32 r19 r31 -532 r31 = select r30 r27 r31 -533 trace_var 0 r30 r26 $26 = r31 -534 trace_scope 0 r29 r26 -1 -535 trace_line 0 r30 r26 L29 -536 trace_var 0 r30 r26 $28 = r20 -537 trace_scope 0 r30 r26 1 -538 trace_line 0 r30 r26 L30 -539 r29 = gt_i32 r20 r25 -540 r29 = bit_and r32 r29 -541 r29 = bit_and r28 r29 -542 trace_scope 0 r29 r26 1 -543 trace_line 0 r29 r26 L30 -544 r27 = bit_xor r10 r29 -545 r27 = bit_and r28 r27 -546 trace_scope 0 r29 r26 -1 -547 r29 = bit_and r32 r27 -548 trace_line 0 r29 r26 L31 -549 r28 = add_i32 r20 r31 -550 r31 = select r29 r28 r31 -551 trace_var 0 r29 r26 $26 = r31 -552 trace_scope 0 r30 r26 -1 -553 trace_line 0 r29 r26 L29 -554 trace_var 0 r29 r26 $28 = r21 -555 trace_scope 0 r29 r26 1 -556 trace_line 0 r29 r26 L30 -557 r30 = gt_i32 r21 r25 -558 r30 = bit_and r32 r30 -559 r30 = bit_and r27 r30 -560 trace_scope 0 r30 r26 1 -561 trace_line 0 r30 r26 L30 -562 r28 = bit_xor r10 r30 -563 r28 = bit_and r27 r28 -564 trace_scope 0 r30 r26 -1 -565 r30 = bit_and r32 r28 -566 trace_line 0 r30 r26 L31 -567 r27 = add_i32 r21 r31 -568 r31 = select r30 r27 r31 -569 trace_var 0 r30 r26 $26 = r31 -570 trace_scope 0 r29 r26 -1 -571 trace_line 0 r30 r26 L29 -572 trace_var 0 r30 r26 $28 = r22 -573 trace_scope 0 r30 r26 1 -574 trace_line 0 r30 r26 L30 -575 r25 = gt_i32 r22 r25 -576 r25 = bit_and r32 r25 -577 r25 = bit_and r28 r25 -578 trace_scope 0 r25 r26 1 -579 trace_line 0 r25 r26 L30 -580 r29 = bit_xor r10 r25 -581 r29 = bit_and r28 r29 -582 trace_scope 0 r25 r26 -1 -583 r29 = bit_and r32 r29 -584 trace_line 0 r29 r26 L31 -585 r25 = add_i32 r22 r31 -586 r31 = select r29 r25 r31 -587 trace_var 0 r29 r26 $26 = r31 -588 trace_scope 0 r30 r26 -1 -589 trace_line 0 r29 r26 L29 -590 trace_scope 0 r32 r26 -1 -591 trace_line 0 r32 r26 L33 -592 r31 = bit_and r32 r31 -593 trace_var 0 r32 r26 $24 = r31 -594 trace_scope 0 r32 r26 -1 -595 trace_exit 0 r32 r26 F3 -596 r31 = eq_i32 r31 r24 -597 r31 = bit_and r32 r31 -598 trace_enter 0 r31 r26 F4 -599 trace_scope 0 r31 r26 1 -600 trace_line 0 r31 r26 L38 -601 trace_line 0 r31 r26 L39 -602 trace_line 0 r31 r26 L41 -603 trace_var 0 r31 r26 $30 = r22 -604 trace_var 0 r31 r26 $31 = r22 -605 trace_var 0 r31 r26 $32 = r22 -606 trace_var 0 r31 r26 $33 = r22 -607 trace_line 0 r31 r26 L42 -608 trace_scope 0 r31 r26 1 -609 trace_var 0 r31 r26 $34 = r15 -610 trace_scope 0 r31 r26 1 -611 trace_line 0 r31 r26 L43 -612 r32 = select r31 r15 r22 -613 trace_var 0 r31 r26 $33 = r32 -614 trace_scope 0 r31 r26 -1 -615 trace_line 0 r31 r26 L42 -616 trace_var 0 r31 r26 $34 = r16 -617 trace_scope 0 r31 r26 1 -618 trace_line 0 r31 r26 L43 -619 r29 = select r31 r32 r22 -620 trace_var 0 r31 r26 $32 = r29 -621 r32 = select r31 r16 r32 -622 trace_var 0 r31 r26 $33 = r32 -623 trace_scope 0 r31 r26 -1 -624 trace_line 0 r31 r26 L42 -625 trace_var 0 r31 r26 $34 = r17 -626 trace_scope 0 r31 r26 1 -627 trace_line 0 r31 r26 L43 -628 r30 = select r31 r29 r22 -629 trace_var 0 r31 r26 $31 = r30 -630 r29 = select r31 r32 r29 -631 trace_var 0 r31 r26 $32 = r29 -632 r32 = select r31 r17 r32 -633 trace_var 0 r31 r26 $33 = r32 -634 trace_scope 0 r31 r26 -1 -635 trace_line 0 r31 r26 L42 -636 trace_scope 0 r31 r26 -1 -637 trace_line 0 r31 r26 L45 -638 r30 = eq_i32 r15 r30 -639 r29 = eq_i32 r16 r29 -640 r32 = eq_i32 r17 r32 -641 r29 = bit_and r30 r29 -642 r29 = bit_and r32 r29 -643 r29 = bit_and r31 r29 -644 trace_var 0 r31 r26 $29 = r29 -645 trace_scope 0 r31 r26 -1 -646 trace_exit 0 r31 r26 F4 -647 r29 = bit_and r31 r29 -648 trace_enter 0 r29 r26 F5 -649 trace_scope 0 r29 r26 1 -650 trace_line 0 r29 r26 L50 -651 trace_line 0 r29 r26 L51 -652 trace_line 0 r29 r26 L53 -653 trace_var 0 r29 r26 $36 = r22 -654 trace_var 0 r29 r26 $37 = r22 -655 trace_var 0 r29 r26 $38 = r22 -656 trace_var 0 r29 r26 $39 = r22 -657 trace_line 0 r29 r26 L54 -658 trace_scope 0 r29 r26 1 -659 trace_var 0 r29 r26 $40 = r15 -660 trace_scope 0 r29 r26 1 -661 trace_line 0 r29 r26 L55 -662 r31 = select r29 r15 r22 -663 trace_var 0 r29 r26 $39 = r31 -664 trace_scope 0 r29 r26 -1 -665 trace_line 0 r29 r26 L54 -666 trace_var 0 r29 r26 $40 = r16 -667 trace_scope 0 r29 r26 1 -668 trace_line 0 r29 r26 L55 -669 r32 = select r29 r31 r22 -670 trace_var 0 r29 r26 $38 = r32 -671 r31 = select r29 r16 r31 -672 trace_var 0 r29 r26 $39 = r31 -673 trace_scope 0 r29 r26 -1 -674 trace_line 0 r29 r26 L54 -675 trace_var 0 r29 r26 $40 = r17 -676 trace_scope 0 r29 r26 1 -677 trace_line 0 r29 r26 L55 -678 r30 = select r29 r32 r22 -679 trace_var 0 r29 r26 $37 = r30 -680 r32 = select r29 r31 r32 -681 trace_var 0 r29 r26 $38 = r32 -682 r31 = select r29 r17 r31 -683 trace_var 0 r29 r26 $39 = r31 -684 trace_scope 0 r29 r26 -1 -685 trace_line 0 r29 r26 L54 -686 trace_scope 0 r29 r26 -1 -687 trace_line 0 r29 r26 L57 -688 r30 = eq_i32 r15 r30 -689 r32 = eq_i32 r16 r32 -690 r31 = eq_i32 r17 r31 -691 r32 = bit_and r30 r32 -692 r32 = bit_and r31 r32 -693 r32 = bit_and r29 r32 -694 trace_var 0 r29 r26 $35 = r32 -695 trace_scope 0 r29 r26 -1 -696 trace_exit 0 r29 r26 F5 -697 r32 = bit_and r29 r32 -698 trace_enter 0 r32 r26 F6 -699 trace_scope 0 r32 r26 1 -700 trace_line 0 r32 r26 L62 -701 trace_line 0 r32 r26 L63 -702 trace_line 0 r32 r26 L65 -703 trace_var 0 r32 r26 $42 = r22 -704 trace_var 0 r32 r26 $43 = r22 -705 trace_var 0 r32 r26 $44 = r22 -706 trace_var 0 r32 r26 $45 = r22 -707 trace_line 0 r32 r26 L66 -708 trace_scope 0 r32 r26 1 -709 trace_var 0 r32 r26 $46 = r17 -710 trace_scope 0 r32 r26 1 -711 trace_line 0 r32 r26 L67 -712 r29 = select r32 r17 r22 -713 trace_var 0 r32 r26 $45 = r29 -714 trace_scope 0 r32 r26 -1 -715 trace_line 0 r32 r26 L66 -716 trace_var 0 r32 r26 $46 = r16 -717 trace_scope 0 r32 r26 1 -718 trace_line 0 r32 r26 L67 -719 r31 = select r32 r29 r22 -720 trace_var 0 r32 r26 $44 = r31 -721 r29 = select r32 r16 r29 -722 trace_var 0 r32 r26 $45 = r29 -723 trace_scope 0 r32 r26 -1 -724 trace_line 0 r32 r26 L66 -725 trace_var 0 r32 r26 $46 = r15 -726 trace_scope 0 r32 r26 1 -727 trace_line 0 r32 r26 L67 -728 r30 = select r32 r31 r22 -729 trace_var 0 r32 r26 $43 = r30 -730 r31 = select r32 r29 r31 -731 trace_var 0 r32 r26 $44 = r31 -732 r29 = select r32 r15 r29 -733 trace_var 0 r32 r26 $45 = r29 -734 trace_scope 0 r32 r26 -1 -735 trace_line 0 r32 r26 L66 -736 trace_scope 0 r32 r26 -1 -737 trace_line 0 r32 r26 L69 -738 r30 = eq_i32 r17 r30 -739 r31 = eq_i32 r16 r31 -740 r29 = eq_i32 r15 r29 -741 r31 = bit_and r30 r31 -742 r31 = bit_and r29 r31 -743 r31 = bit_and r32 r31 -744 trace_var 0 r32 r26 $41 = r31 -745 trace_scope 0 r32 r26 -1 -746 trace_exit 0 r32 r26 F6 -747 r31 = bit_and r32 r31 -748 trace_enter 0 r31 r26 F7 -749 trace_scope 0 r31 r26 1 -750 trace_line 0 r31 r26 L74 -751 trace_line 0 r31 r26 L75 -752 trace_line 0 r31 r26 L77 -753 trace_var 0 r31 r26 $48 = r22 -754 trace_var 0 r31 r26 $49 = r22 -755 trace_var 0 r31 r26 $50 = r22 -756 trace_var 0 r31 r26 $51 = r22 -757 trace_line 0 r31 r26 L78 -758 trace_scope 0 r31 r26 1 -759 trace_var 0 r31 r26 $52 = r17 -760 trace_scope 0 r31 r26 1 -761 trace_line 0 r31 r26 L79 -762 r32 = select r31 r17 r22 -763 trace_var 0 r31 r26 $51 = r32 -764 trace_scope 0 r31 r26 -1 -765 trace_line 0 r31 r26 L78 -766 trace_var 0 r31 r26 $52 = r16 -767 trace_scope 0 r31 r26 1 -768 trace_line 0 r31 r26 L79 -769 r29 = select r31 r32 r22 -770 trace_var 0 r31 r26 $50 = r29 -771 r32 = select r31 r16 r32 -772 trace_var 0 r31 r26 $51 = r32 -773 trace_scope 0 r31 r26 -1 -774 trace_line 0 r31 r26 L78 -775 trace_var 0 r31 r26 $52 = r15 -776 trace_scope 0 r31 r26 1 -777 trace_line 0 r31 r26 L79 -778 r30 = select r31 r29 r22 -779 trace_var 0 r31 r26 $49 = r30 -780 r29 = select r31 r32 r29 -781 trace_var 0 r31 r26 $50 = r29 -782 r32 = select r31 r15 r32 -783 trace_var 0 r31 r26 $51 = r32 -784 trace_scope 0 r31 r26 -1 -785 trace_line 0 r31 r26 L78 -786 trace_scope 0 r31 r26 -1 -787 trace_line 0 r31 r26 L81 -788 r30 = eq_i32 r17 r30 -789 r29 = eq_i32 r16 r29 -790 r32 = eq_i32 r15 r32 -791 r29 = bit_and r30 r29 -792 r29 = bit_and r32 r29 -793 r29 = bit_and r31 r29 -794 trace_var 0 r31 r26 $47 = r29 -795 trace_scope 0 r31 r26 -1 -796 trace_exit 0 r31 r26 F7 -797 r29 = bit_and r31 r29 -798 trace_enter 0 r29 r26 F8 -799 trace_scope 0 r29 r26 1 -800 trace_line 0 r29 r26 L97 -801 trace_line 0 r29 r26 L99 -802 trace_var 0 r29 r26 $54 = r22 -803 trace_var 0 r29 r26 $55 = r22 -804 trace_var 0 r29 r26 $56 = r22 -805 trace_var 0 r29 r26 $57 = r22 -806 trace_line 0 r29 r26 L100 -807 trace_scope 0 r29 r26 1 -808 trace_var 0 r29 r26 $58 = r15 -809 trace_scope 0 r29 r26 1 -810 trace_line 0 r29 r26 L101 -811 r31 = select r29 r15 r22 -812 trace_var 0 r29 r26 $57 = r31 -813 trace_scope 0 r29 r26 -1 -814 trace_line 0 r29 r26 L100 -815 trace_scope 0 r29 r26 -1 -816 trace_line 0 r29 r26 L103 -817 r31 = eq_i32 r15 r31 -818 r31 = bit_and r29 r31 -819 trace_var 0 r29 r26 $53 = r31 -820 trace_scope 0 r29 r26 -1 -821 trace_exit 0 r29 r26 F8 -822 r31 = bit_and r29 r31 -823 trace_enter 0 r31 r26 F9 -824 trace_scope 0 r31 r26 1 -825 trace_line 0 r31 r26 L86 -826 trace_line 0 r31 r26 L88 -827 trace_var 0 r31 r26 $60 = r22 -828 trace_var 0 r31 r26 $61 = r22 -829 trace_var 0 r31 r26 $62 = r22 -830 trace_var 0 r31 r26 $63 = r22 -831 trace_line 0 r31 r26 L89 -832 trace_scope 0 r31 r26 1 -833 trace_var 0 r31 r26 $64 = r15 -834 trace_scope 0 r31 r26 1 -835 trace_line 0 r31 r26 L90 -836 r29 = select r31 r15 r22 -837 trace_var 0 r31 r26 $63 = r29 -838 trace_scope 0 r31 r26 -1 -839 trace_line 0 r31 r26 L89 -840 trace_var 0 r31 r26 $64 = r16 -841 trace_scope 0 r31 r26 1 -842 trace_line 0 r31 r26 L90 -843 r32 = select r31 r29 r22 -844 trace_var 0 r31 r26 $62 = r32 -845 r29 = select r31 r16 r29 -846 trace_var 0 r31 r26 $63 = r29 -847 trace_scope 0 r31 r26 -1 -848 trace_line 0 r31 r26 L89 -849 trace_var 0 r31 r26 $64 = r17 -850 trace_scope 0 r31 r26 1 -851 trace_line 0 r31 r26 L90 -852 r30 = select r31 r32 r22 -853 trace_var 0 r31 r26 $61 = r30 -854 r32 = select r31 r29 r32 -855 trace_var 0 r31 r26 $62 = r32 -856 r29 = select r31 r17 r29 -857 trace_var 0 r31 r26 $63 = r29 -858 trace_scope 0 r31 r26 -1 -859 trace_line 0 r31 r26 L89 -860 trace_scope 0 r31 r26 -1 -861 trace_line 0 r31 r26 L92 -862 r30 = eq_i32 r15 r30 -863 r32 = eq_i32 r16 r32 -864 r29 = eq_i32 r17 r29 -865 r32 = bit_and r30 r32 -866 r32 = bit_and r29 r32 -867 r32 = bit_and r31 r32 -868 trace_var 0 r31 r26 $59 = r32 -869 trace_scope 0 r31 r26 -1 -870 trace_exit 0 r31 r26 F9 -871 r32 = bit_and r31 r32 -872 r31 = select r32 r5 r1 -873 r29 = select r32 r6 r2 -874 r30 = select r32 r7 r3 -875 r32 = select r32 r8 r4 -876 trace_var 0 r26 r26 $10 = r31 -877 trace_var 0 r26 r26 $11 = r29 -878 trace_var 0 r26 r26 $12 = r30 -879 trace_var 0 r26 r26 $13 = r32 -880 trace_scope 0 r26 r26 -1 -881 trace_exit 0 r26 r26 F0 -882 store32 ptr1 r31 -883 store32 ptr2 r29 -884 store32 ptr3 r30 -885 store32 ptr4 r32 +228 r28 = bit_clear r28 r29 +229 trace_scope 0 r29 r26 -1 +230 r31 = bit_and r30 r28 +231 trace_line 0 r31 r26 L20 +232 r32 = bit_and r31 r15 +233 trace_var 0 r31 r26 $22 = r32 +234 trace_scope 0 r27 r26 -1 +235 r28 = bit_or r29 r28 +236 r29 = bit_and r30 r28 +237 trace_line 0 r29 r26 L18 +238 trace_var 0 r29 r26 $23 = r16 +239 trace_scope 0 r29 r26 1 +240 trace_line 0 r29 r26 L19 +241 r27 = gt_i32 r25 r16 +242 r27 = bit_and r30 r27 +243 r27 = bit_and r28 r27 +244 trace_scope 0 r27 r26 1 +245 trace_line 0 r27 r26 L19 +246 r28 = bit_clear r28 r27 +247 trace_scope 0 r27 r26 -1 +248 r31 = bit_and r30 r28 +249 trace_line 0 r31 r26 L20 +250 r33 = add_i32 r32 r16 +251 r32 = select r31 r33 r32 +252 trace_var 0 r31 r26 $22 = r32 +253 trace_scope 0 r29 r26 -1 +254 r28 = bit_or r27 r28 +255 r27 = bit_and r30 r28 +256 trace_line 0 r27 r26 L18 +257 trace_var 0 r27 r26 $23 = r17 +258 trace_scope 0 r27 r26 1 +259 trace_line 0 r27 r26 L19 +260 r29 = gt_i32 r25 r17 +261 r29 = bit_and r30 r29 +262 r29 = bit_and r28 r29 +263 trace_scope 0 r29 r26 1 +264 trace_line 0 r29 r26 L19 +265 r28 = bit_clear r28 r29 +266 trace_scope 0 r29 r26 -1 +267 r31 = bit_and r30 r28 +268 trace_line 0 r31 r26 L20 +269 r33 = add_i32 r32 r17 +270 r32 = select r31 r33 r32 +271 trace_var 0 r31 r26 $22 = r32 +272 trace_scope 0 r27 r26 -1 +273 r28 = bit_or r29 r28 +274 r29 = bit_and r30 r28 +275 trace_line 0 r29 r26 L18 +276 trace_var 0 r29 r26 $23 = r18 +277 trace_scope 0 r29 r26 1 +278 trace_line 0 r29 r26 L19 +279 r27 = gt_i32 r25 r18 +280 r27 = bit_and r30 r27 +281 r27 = bit_and r28 r27 +282 trace_scope 0 r27 r26 1 +283 trace_line 0 r27 r26 L19 +284 r28 = bit_clear r28 r27 +285 trace_scope 0 r27 r26 -1 +286 r31 = bit_and r30 r28 +287 trace_line 0 r31 r26 L20 +288 r33 = add_i32 r32 r18 +289 r32 = select r31 r33 r32 +290 trace_var 0 r31 r26 $22 = r32 +291 trace_scope 0 r29 r26 -1 +292 r28 = bit_or r27 r28 +293 r27 = bit_and r30 r28 +294 trace_line 0 r27 r26 L18 +295 trace_var 0 r27 r26 $23 = r14 +296 trace_scope 0 r27 r26 1 +297 trace_line 0 r27 r26 L19 +298 r29 = gt_i32 r25 r14 +299 r29 = bit_and r30 r29 +300 r29 = bit_and r28 r29 +301 trace_scope 0 r29 r26 1 +302 trace_line 0 r29 r26 L19 +303 r28 = bit_clear r28 r29 +304 trace_scope 0 r29 r26 -1 +305 r31 = bit_and r30 r28 +306 trace_line 0 r31 r26 L20 +307 r33 = add_i32 r32 r14 +308 r32 = select r31 r33 r32 +309 trace_var 0 r31 r26 $22 = r32 +310 trace_scope 0 r27 r26 -1 +311 r28 = bit_or r29 r28 +312 r29 = bit_and r30 r28 +313 trace_line 0 r29 r26 L18 +314 trace_var 0 r29 r26 $23 = r19 +315 trace_scope 0 r29 r26 1 +316 trace_line 0 r29 r26 L19 +317 r27 = gt_i32 r25 r19 +318 r27 = bit_and r30 r27 +319 r27 = bit_and r28 r27 +320 trace_scope 0 r27 r26 1 +321 trace_line 0 r27 r26 L19 +322 r28 = bit_clear r28 r27 +323 trace_scope 0 r27 r26 -1 +324 r31 = bit_and r30 r28 +325 trace_line 0 r31 r26 L20 +326 r33 = add_i32 r32 r19 +327 r32 = select r31 r33 r32 +328 trace_var 0 r31 r26 $22 = r32 +329 trace_scope 0 r29 r26 -1 +330 r28 = bit_or r27 r28 +331 r27 = bit_and r30 r28 +332 trace_line 0 r27 r26 L18 +333 trace_var 0 r27 r26 $23 = r20 +334 trace_scope 0 r27 r26 1 +335 trace_line 0 r27 r26 L19 +336 r29 = gt_i32 r25 r20 +337 r29 = bit_and r30 r29 +338 r29 = bit_and r28 r29 +339 trace_scope 0 r29 r26 1 +340 trace_line 0 r29 r26 L19 +341 r28 = bit_clear r28 r29 +342 trace_scope 0 r29 r26 -1 +343 r31 = bit_and r30 r28 +344 trace_line 0 r31 r26 L20 +345 r33 = add_i32 r32 r20 +346 r32 = select r31 r33 r32 +347 trace_var 0 r31 r26 $22 = r32 +348 trace_scope 0 r27 r26 -1 +349 r28 = bit_or r29 r28 +350 r29 = bit_and r30 r28 +351 trace_line 0 r29 r26 L18 +352 trace_var 0 r29 r26 $23 = r21 +353 trace_scope 0 r29 r26 1 +354 trace_line 0 r29 r26 L19 +355 r27 = gt_i32 r25 r21 +356 r27 = bit_and r30 r27 +357 r27 = bit_and r28 r27 +358 trace_scope 0 r27 r26 1 +359 trace_line 0 r27 r26 L19 +360 r28 = bit_clear r28 r27 +361 trace_scope 0 r27 r26 -1 +362 r31 = bit_and r30 r28 +363 trace_line 0 r31 r26 L20 +364 r33 = add_i32 r32 r21 +365 r32 = select r31 r33 r32 +366 trace_var 0 r31 r26 $22 = r32 +367 trace_scope 0 r29 r26 -1 +368 r28 = bit_or r27 r28 +369 r27 = bit_and r30 r28 +370 trace_line 0 r27 r26 L18 +371 trace_var 0 r27 r26 $23 = r22 +372 trace_scope 0 r27 r26 1 +373 trace_line 0 r27 r26 L19 +374 r25 = gt_i32 r25 r22 +375 r25 = bit_and r30 r25 +376 r25 = bit_and r28 r25 +377 trace_scope 0 r25 r26 1 +378 trace_line 0 r25 r26 L19 +379 r28 = bit_clear r28 r25 +380 trace_scope 0 r25 r26 -1 +381 r29 = bit_and r30 r28 +382 trace_line 0 r29 r26 L20 +383 r31 = add_i32 r32 r22 +384 r32 = select r29 r31 r32 +385 trace_var 0 r29 r26 $22 = r32 +386 trace_scope 0 r27 r26 -1 +387 r28 = bit_or r25 r28 +388 r28 = bit_and r30 r28 +389 trace_line 0 r28 r26 L18 +390 trace_scope 0 r30 r26 -1 +391 trace_line 0 r30 r26 L22 +392 r32 = bit_and r30 r32 +393 trace_var 0 r30 r26 $20 = r32 +394 trace_scope 0 r30 r26 -1 +395 trace_exit 0 r30 r26 F2 +396 r32 = eq_i32 r32 r23 +397 r32 = bit_and r30 r32 +398 trace_enter 0 r32 r26 F3 +399 trace_var 0 r32 r26 $25 = r14 +400 trace_scope 0 r32 r26 1 +401 trace_line 0 r32 r26 L27 +402 trace_var 0 r32 r26 $26 = r9 +403 trace_line 0 r32 r26 L28 +404 trace_var 0 r32 r26 $27 = r15 +405 trace_line 0 r32 r26 L29 +406 trace_scope 0 r32 r26 1 +407 trace_var 0 r32 r26 $28 = r9 +408 trace_scope 0 r32 r26 1 +409 trace_line 0 r32 r26 L30 +410 trace_line 0 r32 r26 L31 +411 trace_scope 0 r32 r26 -1 +412 trace_line 0 r32 r26 L29 +413 trace_var 0 r32 r26 $28 = r15 +414 trace_scope 0 r32 r26 1 +415 trace_line 0 r32 r26 L30 +416 trace_line 0 r32 r26 L31 +417 r30 = bit_and r32 r15 +418 trace_var 0 r32 r26 $26 = r30 +419 trace_scope 0 r32 r26 -1 +420 trace_line 0 r32 r26 L29 +421 trace_var 0 r32 r26 $28 = r16 +422 trace_scope 0 r32 r26 1 +423 trace_line 0 r32 r26 L30 +424 trace_line 0 r32 r26 L31 +425 r28 = add_i32 r30 r16 +426 r30 = select r32 r28 r30 +427 trace_var 0 r32 r26 $26 = r30 +428 trace_scope 0 r32 r26 -1 +429 trace_line 0 r32 r26 L29 +430 trace_var 0 r32 r26 $28 = r17 +431 trace_scope 0 r32 r26 1 +432 trace_line 0 r32 r26 L30 +433 trace_line 0 r32 r26 L31 +434 r28 = add_i32 r30 r17 +435 r30 = select r32 r28 r30 +436 trace_var 0 r32 r26 $26 = r30 +437 trace_scope 0 r32 r26 -1 +438 trace_line 0 r32 r26 L29 +439 trace_var 0 r32 r26 $28 = r18 +440 trace_scope 0 r32 r26 1 +441 trace_line 0 r32 r26 L30 +442 trace_line 0 r32 r26 L31 +443 r28 = add_i32 r30 r18 +444 r30 = select r32 r28 r30 +445 trace_var 0 r32 r26 $26 = r30 +446 trace_scope 0 r32 r26 -1 +447 trace_line 0 r32 r26 L29 +448 trace_var 0 r32 r26 $28 = r14 +449 trace_scope 0 r32 r26 1 +450 trace_line 0 r32 r26 L30 +451 trace_line 0 r32 r26 L31 +452 r28 = add_i32 r30 r14 +453 r30 = select r32 r28 r30 +454 trace_var 0 r32 r26 $26 = r30 +455 trace_scope 0 r32 r26 -1 +456 trace_line 0 r32 r26 L29 +457 trace_var 0 r32 r26 $28 = r19 +458 trace_scope 0 r32 r26 1 +459 trace_line 0 r32 r26 L30 +460 trace_scope 0 r32 r26 1 +461 trace_line 0 r32 r26 L30 +462 trace_scope 0 r32 r26 -1 +463 trace_scope 0 r32 r26 -1 +464 trace_scope 0 r32 r26 -1 +465 trace_line 0 r32 r26 L33 +466 r30 = bit_and r32 r30 +467 trace_var 0 r32 r26 $24 = r30 +468 trace_scope 0 r32 r26 -1 +469 trace_exit 0 r32 r26 F3 +470 r30 = eq_i32 r30 r24 +471 r30 = bit_and r32 r30 +472 trace_enter 0 r30 r26 F4 +473 trace_scope 0 r30 r26 1 +474 trace_line 0 r30 r26 L38 +475 trace_line 0 r30 r26 L39 +476 trace_line 0 r30 r26 L41 +477 trace_var 0 r30 r26 $30 = r22 +478 trace_var 0 r30 r26 $31 = r22 +479 trace_var 0 r30 r26 $32 = r22 +480 trace_var 0 r30 r26 $33 = r22 +481 trace_line 0 r30 r26 L42 +482 trace_scope 0 r30 r26 1 +483 trace_var 0 r30 r26 $34 = r15 +484 trace_scope 0 r30 r26 1 +485 trace_line 0 r30 r26 L43 +486 r32 = select r30 r15 r22 +487 trace_var 0 r30 r26 $33 = r32 +488 trace_scope 0 r30 r26 -1 +489 trace_line 0 r30 r26 L42 +490 trace_var 0 r30 r26 $34 = r16 +491 trace_scope 0 r30 r26 1 +492 trace_line 0 r30 r26 L43 +493 r28 = select r30 r32 r22 +494 trace_var 0 r30 r26 $32 = r28 +495 r32 = select r30 r16 r32 +496 trace_var 0 r30 r26 $33 = r32 +497 trace_scope 0 r30 r26 -1 +498 trace_line 0 r30 r26 L42 +499 trace_var 0 r30 r26 $34 = r17 +500 trace_scope 0 r30 r26 1 +501 trace_line 0 r30 r26 L43 +502 r25 = select r30 r28 r22 +503 trace_var 0 r30 r26 $31 = r25 +504 r28 = select r30 r32 r28 +505 trace_var 0 r30 r26 $32 = r28 +506 r32 = select r30 r17 r32 +507 trace_var 0 r30 r26 $33 = r32 +508 trace_scope 0 r30 r26 -1 +509 trace_line 0 r30 r26 L42 +510 trace_scope 0 r30 r26 -1 +511 trace_line 0 r30 r26 L45 +512 r25 = eq_i32 r25 r15 +513 r28 = eq_i32 r28 r16 +514 r32 = eq_i32 r32 r17 +515 r28 = bit_and r25 r28 +516 r28 = bit_and r32 r28 +517 r28 = bit_and r30 r28 +518 trace_var 0 r30 r26 $29 = r28 +519 trace_scope 0 r30 r26 -1 +520 trace_exit 0 r30 r26 F4 +521 r28 = bit_and r30 r28 +522 trace_enter 0 r28 r26 F5 +523 trace_scope 0 r28 r26 1 +524 trace_line 0 r28 r26 L50 +525 trace_line 0 r28 r26 L51 +526 trace_line 0 r28 r26 L53 +527 trace_var 0 r28 r26 $36 = r22 +528 trace_var 0 r28 r26 $37 = r22 +529 trace_var 0 r28 r26 $38 = r22 +530 trace_var 0 r28 r26 $39 = r22 +531 trace_line 0 r28 r26 L54 +532 trace_scope 0 r28 r26 1 +533 trace_var 0 r28 r26 $40 = r15 +534 trace_scope 0 r28 r26 1 +535 trace_line 0 r28 r26 L55 +536 r30 = select r28 r15 r22 +537 trace_var 0 r28 r26 $39 = r30 +538 trace_scope 0 r28 r26 -1 +539 trace_line 0 r28 r26 L54 +540 trace_var 0 r28 r26 $40 = r16 +541 trace_scope 0 r28 r26 1 +542 trace_line 0 r28 r26 L55 +543 r32 = select r28 r30 r22 +544 trace_var 0 r28 r26 $38 = r32 +545 r30 = select r28 r16 r30 +546 trace_var 0 r28 r26 $39 = r30 +547 trace_scope 0 r28 r26 -1 +548 trace_line 0 r28 r26 L54 +549 trace_var 0 r28 r26 $40 = r17 +550 trace_scope 0 r28 r26 1 +551 trace_line 0 r28 r26 L55 +552 r25 = select r28 r32 r22 +553 trace_var 0 r28 r26 $37 = r25 +554 r32 = select r28 r30 r32 +555 trace_var 0 r28 r26 $38 = r32 +556 r30 = select r28 r17 r30 +557 trace_var 0 r28 r26 $39 = r30 +558 trace_scope 0 r28 r26 -1 +559 trace_line 0 r28 r26 L54 +560 trace_scope 0 r28 r26 -1 +561 trace_line 0 r28 r26 L57 +562 r25 = eq_i32 r25 r15 +563 r32 = eq_i32 r32 r16 +564 r30 = eq_i32 r30 r17 +565 r32 = bit_and r25 r32 +566 r32 = bit_and r30 r32 +567 r32 = bit_and r28 r32 +568 trace_var 0 r28 r26 $35 = r32 +569 trace_scope 0 r28 r26 -1 +570 trace_exit 0 r28 r26 F5 +571 r32 = bit_and r28 r32 +572 trace_enter 0 r32 r26 F6 +573 trace_scope 0 r32 r26 1 +574 trace_line 0 r32 r26 L62 +575 trace_line 0 r32 r26 L63 +576 trace_line 0 r32 r26 L65 +577 trace_var 0 r32 r26 $42 = r22 +578 trace_var 0 r32 r26 $43 = r22 +579 trace_var 0 r32 r26 $44 = r22 +580 trace_var 0 r32 r26 $45 = r22 +581 trace_line 0 r32 r26 L66 +582 trace_scope 0 r32 r26 1 +583 trace_var 0 r32 r26 $46 = r17 +584 trace_scope 0 r32 r26 1 +585 trace_line 0 r32 r26 L67 +586 r28 = select r32 r17 r22 +587 trace_var 0 r32 r26 $45 = r28 +588 trace_scope 0 r32 r26 -1 +589 trace_line 0 r32 r26 L66 +590 trace_var 0 r32 r26 $46 = r16 +591 trace_scope 0 r32 r26 1 +592 trace_line 0 r32 r26 L67 +593 r30 = select r32 r28 r22 +594 trace_var 0 r32 r26 $44 = r30 +595 r28 = select r32 r16 r28 +596 trace_var 0 r32 r26 $45 = r28 +597 trace_scope 0 r32 r26 -1 +598 trace_line 0 r32 r26 L66 +599 trace_var 0 r32 r26 $46 = r15 +600 trace_scope 0 r32 r26 1 +601 trace_line 0 r32 r26 L67 +602 r25 = select r32 r30 r22 +603 trace_var 0 r32 r26 $43 = r25 +604 r30 = select r32 r28 r30 +605 trace_var 0 r32 r26 $44 = r30 +606 r28 = select r32 r15 r28 +607 trace_var 0 r32 r26 $45 = r28 +608 trace_scope 0 r32 r26 -1 +609 trace_line 0 r32 r26 L66 +610 trace_scope 0 r32 r26 -1 +611 trace_line 0 r32 r26 L69 +612 r25 = eq_i32 r25 r17 +613 r30 = eq_i32 r30 r16 +614 r28 = eq_i32 r28 r15 +615 r30 = bit_and r25 r30 +616 r30 = bit_and r28 r30 +617 r30 = bit_and r32 r30 +618 trace_var 0 r32 r26 $41 = r30 +619 trace_scope 0 r32 r26 -1 +620 trace_exit 0 r32 r26 F6 +621 r30 = bit_and r32 r30 +622 trace_enter 0 r30 r26 F7 +623 trace_scope 0 r30 r26 1 +624 trace_line 0 r30 r26 L74 +625 trace_line 0 r30 r26 L75 +626 trace_line 0 r30 r26 L77 +627 trace_var 0 r30 r26 $48 = r22 +628 trace_var 0 r30 r26 $49 = r22 +629 trace_var 0 r30 r26 $50 = r22 +630 trace_var 0 r30 r26 $51 = r22 +631 trace_line 0 r30 r26 L78 +632 trace_scope 0 r30 r26 1 +633 trace_var 0 r30 r26 $52 = r17 +634 trace_scope 0 r30 r26 1 +635 trace_line 0 r30 r26 L79 +636 r32 = select r30 r17 r22 +637 trace_var 0 r30 r26 $51 = r32 +638 trace_scope 0 r30 r26 -1 +639 trace_line 0 r30 r26 L78 +640 trace_var 0 r30 r26 $52 = r16 +641 trace_scope 0 r30 r26 1 +642 trace_line 0 r30 r26 L79 +643 r28 = select r30 r32 r22 +644 trace_var 0 r30 r26 $50 = r28 +645 r32 = select r30 r16 r32 +646 trace_var 0 r30 r26 $51 = r32 +647 trace_scope 0 r30 r26 -1 +648 trace_line 0 r30 r26 L78 +649 trace_var 0 r30 r26 $52 = r15 +650 trace_scope 0 r30 r26 1 +651 trace_line 0 r30 r26 L79 +652 r25 = select r30 r28 r22 +653 trace_var 0 r30 r26 $49 = r25 +654 r28 = select r30 r32 r28 +655 trace_var 0 r30 r26 $50 = r28 +656 r32 = select r30 r15 r32 +657 trace_var 0 r30 r26 $51 = r32 +658 trace_scope 0 r30 r26 -1 +659 trace_line 0 r30 r26 L78 +660 trace_scope 0 r30 r26 -1 +661 trace_line 0 r30 r26 L81 +662 r25 = eq_i32 r25 r17 +663 r28 = eq_i32 r28 r16 +664 r32 = eq_i32 r32 r15 +665 r28 = bit_and r25 r28 +666 r28 = bit_and r32 r28 +667 r28 = bit_and r30 r28 +668 trace_var 0 r30 r26 $47 = r28 +669 trace_scope 0 r30 r26 -1 +670 trace_exit 0 r30 r26 F7 +671 r28 = bit_and r30 r28 +672 trace_enter 0 r28 r26 F8 +673 trace_scope 0 r28 r26 1 +674 trace_line 0 r28 r26 L97 +675 trace_line 0 r28 r26 L99 +676 trace_var 0 r28 r26 $54 = r22 +677 trace_var 0 r28 r26 $55 = r22 +678 trace_var 0 r28 r26 $56 = r22 +679 trace_var 0 r28 r26 $57 = r22 +680 trace_line 0 r28 r26 L100 +681 trace_scope 0 r28 r26 1 +682 trace_var 0 r28 r26 $58 = r15 +683 trace_scope 0 r28 r26 1 +684 trace_line 0 r28 r26 L101 +685 r30 = select r28 r15 r22 +686 trace_var 0 r28 r26 $57 = r30 +687 trace_scope 0 r28 r26 -1 +688 trace_line 0 r28 r26 L100 +689 trace_scope 0 r28 r26 -1 +690 trace_line 0 r28 r26 L103 +691 r30 = eq_i32 r30 r15 +692 r30 = bit_and r28 r30 +693 trace_var 0 r28 r26 $53 = r30 +694 trace_scope 0 r28 r26 -1 +695 trace_exit 0 r28 r26 F8 +696 r30 = bit_and r28 r30 +697 trace_enter 0 r30 r26 F9 +698 trace_scope 0 r30 r26 1 +699 trace_line 0 r30 r26 L86 +700 trace_line 0 r30 r26 L88 +701 trace_var 0 r30 r26 $60 = r22 +702 trace_var 0 r30 r26 $61 = r22 +703 trace_var 0 r30 r26 $62 = r22 +704 trace_var 0 r30 r26 $63 = r22 +705 trace_line 0 r30 r26 L89 +706 trace_scope 0 r30 r26 1 +707 trace_var 0 r30 r26 $64 = r15 +708 trace_scope 0 r30 r26 1 +709 trace_line 0 r30 r26 L90 +710 r28 = select r30 r15 r22 +711 trace_var 0 r30 r26 $63 = r28 +712 trace_scope 0 r30 r26 -1 +713 trace_line 0 r30 r26 L89 +714 trace_var 0 r30 r26 $64 = r16 +715 trace_scope 0 r30 r26 1 +716 trace_line 0 r30 r26 L90 +717 r32 = select r30 r28 r22 +718 trace_var 0 r30 r26 $62 = r32 +719 r28 = select r30 r16 r28 +720 trace_var 0 r30 r26 $63 = r28 +721 trace_scope 0 r30 r26 -1 +722 trace_line 0 r30 r26 L89 +723 trace_var 0 r30 r26 $64 = r17 +724 trace_scope 0 r30 r26 1 +725 trace_line 0 r30 r26 L90 +726 r25 = select r30 r32 r22 +727 trace_var 0 r30 r26 $61 = r25 +728 r32 = select r30 r28 r32 +729 trace_var 0 r30 r26 $62 = r32 +730 r28 = select r30 r17 r28 +731 trace_var 0 r30 r26 $63 = r28 +732 trace_scope 0 r30 r26 -1 +733 trace_line 0 r30 r26 L89 +734 trace_scope 0 r30 r26 -1 +735 trace_line 0 r30 r26 L92 +736 r25 = eq_i32 r25 r15 +737 r32 = eq_i32 r32 r16 +738 r28 = eq_i32 r28 r17 +739 r32 = bit_and r25 r32 +740 r32 = bit_and r28 r32 +741 r32 = bit_and r30 r32 +742 trace_var 0 r30 r26 $59 = r32 +743 trace_scope 0 r30 r26 -1 +744 trace_exit 0 r30 r26 F9 +745 r32 = bit_and r30 r32 +746 r30 = select r32 r5 r1 +747 r28 = select r32 r6 r2 +748 r25 = select r32 r7 r3 +749 r32 = select r32 r8 r4 +750 trace_var 0 r26 r26 $10 = r30 +751 trace_var 0 r26 r26 $11 = r28 +752 trace_var 0 r26 r26 $12 = r25 +753 trace_var 0 r26 r26 $13 = r32 +754 trace_scope 0 r26 r26 -1 +755 trace_exit 0 r26 r26 F0 +756 store32 ptr1 r30 +757 store32 ptr2 r28 +758 store32 ptr3 r25 +759 store32 ptr4 r32 diff --git a/third_party/skia/tests/sksl/runtime/LoopInt.stage b/third_party/skia/tests/sksl/runtime/LoopInt.stage index 2f4e6c105e90..f0afed9b6374 100644 --- a/third_party/skia/tests/sksl/runtime/LoopInt.stage +++ b/third_party/skia/tests/sksl/runtime/LoopInt.stage @@ -116,5 +116,5 @@ bool loop_operator_eq_0() half4 main(float2 pos) { int five = int(clamp(_coords.x, float(colorGreen.y), float(colorGreen.w))) * 5; - return half4((((((((return_loop_0(five) == 5 && continue_loop_0(five) == 35) && break_loop_0(five) == 15) && loop_operator_le_0()) && loop_operator_lt_0()) && loop_operator_ge_0()) && loop_operator_gt_0()) && loop_operator_eq_0()) && loop_operator_ne_0() ? colorGreen : colorRed); + return half4((((((((return_loop_0(five) == 5 && continue_loop_0(five) == 35) && break_loop_0(5) == 15) && loop_operator_le_0()) && loop_operator_lt_0()) && loop_operator_ge_0()) && loop_operator_gt_0()) && loop_operator_eq_0()) && loop_operator_ne_0() ? colorGreen : colorRed); } diff --git a/third_party/skia/tests/sksl/runtime/MultipleCallsInOneStatement.skvm b/third_party/skia/tests/sksl/runtime/MultipleCallsInOneStatement.skvm new file mode 100644 index 000000000000..fd54fc4c10ff --- /dev/null +++ b/third_party/skia/tests/sksl/runtime/MultipleCallsInOneStatement.skvm @@ -0,0 +1,88 @@ +$0 = colorRed (float4 : slot 1/4, L3) +$1 = colorRed (float4 : slot 2/4, L3) +$2 = colorRed (float4 : slot 3/4, L3) +$3 = colorRed (float4 : slot 4/4, L3) +$4 = colorGreen (float4 : slot 1/4, L3) +$5 = colorGreen (float4 : slot 2/4, L3) +$6 = colorGreen (float4 : slot 3/4, L3) +$7 = colorGreen (float4 : slot 4/4, L3) +$8 = [main].result (float4 : slot 1/4, L9) +$9 = [main].result (float4 : slot 2/4, L9) +$10 = [main].result (float4 : slot 3/4, L9) +$11 = [main].result (float4 : slot 4/4, L9) +$12 = pos (float2 : slot 1/2, L9) +$13 = pos (float2 : slot 2/2, L9) +$14 = ten (int, L11) +$15 = [get].result (int, L5) +$16 = x (int, L5) +$17 = [get].result (int, L5) +$18 = [get].result (int, L5) +F0 = half4 main(float2 pos) +F1 = int get(int x) + +17 registers, 64 instructions: +0 r0 = uniform32 ptr0 0 +1 r1 = uniform32 ptr0 4 +2 r2 = uniform32 ptr0 8 +3 r3 = uniform32 ptr0 C +4 r4 = uniform32 ptr0 10 +5 r5 = uniform32 ptr0 14 +6 r6 = uniform32 ptr0 18 +7 r7 = uniform32 ptr0 1C +8 r8 = uniform32 ptr0 20 +9 r9 = splat 3F000000 (0.5) +10 r10 = eq_f32 r0 r9 +11 r11 = splat 5 (7.0064923e-45) +12 r12 = splat 3 (4.2038954e-45) +13 r13 = splat 2 (2.8025969e-45) +14 r14 = splat A (1.4012985e-44) +loop: +15 r15 = index +16 r16 = eq_f32 r15 r9 +17 r16 = bit_and r16 r10 +18 trace_var 0 r16 r16 $0 = r1 +19 trace_var 0 r16 r16 $1 = r2 +20 trace_var 0 r16 r16 $2 = r3 +21 trace_var 0 r16 r16 $3 = r4 +22 trace_var 0 r16 r16 $4 = r5 +23 trace_var 0 r16 r16 $5 = r6 +24 trace_var 0 r16 r16 $6 = r7 +25 trace_var 0 r16 r16 $7 = r8 +26 trace_enter 0 r16 r16 F0 +27 trace_var 0 r16 r16 $12 = r15 +28 trace_var 0 r16 r16 $13 = r0 +29 trace_scope 0 r16 r16 1 +30 trace_line 0 r16 r16 L11 +31 trace_enter 0 r16 r16 F1 +32 trace_var 0 r16 r16 $16 = r11 +33 trace_scope 0 r16 r16 1 +34 trace_line 0 r16 r16 L6 +35 trace_var 0 r16 r16 $15 = r11 +36 trace_scope 0 r16 r16 -1 +37 trace_exit 0 r16 r16 F1 +38 trace_enter 0 r16 r16 F1 +39 trace_var 0 r16 r16 $16 = r12 +40 trace_scope 0 r16 r16 1 +41 trace_line 0 r16 r16 L6 +42 trace_var 0 r16 r16 $17 = r12 +43 trace_scope 0 r16 r16 -1 +44 trace_exit 0 r16 r16 F1 +45 trace_enter 0 r16 r16 F1 +46 trace_var 0 r16 r16 $16 = r13 +47 trace_scope 0 r16 r16 1 +48 trace_line 0 r16 r16 L6 +49 trace_var 0 r16 r16 $18 = r13 +50 trace_scope 0 r16 r16 -1 +51 trace_exit 0 r16 r16 F1 +52 trace_var 0 r16 r16 $14 = r14 +53 trace_line 0 r16 r16 L12 +54 trace_var 0 r16 r16 $8 = r5 +55 trace_var 0 r16 r16 $9 = r6 +56 trace_var 0 r16 r16 $10 = r7 +57 trace_var 0 r16 r16 $11 = r8 +58 trace_scope 0 r16 r16 -1 +59 trace_exit 0 r16 r16 F0 +60 store32 ptr1 r5 +61 store32 ptr2 r6 +62 store32 ptr3 r7 +63 store32 ptr4 r8 diff --git a/third_party/skia/tests/sksl/runtime/MultipleCallsInOneStatement.stage b/third_party/skia/tests/sksl/runtime/MultipleCallsInOneStatement.stage new file mode 100644 index 000000000000..913b0fea9fce --- /dev/null +++ b/third_party/skia/tests/sksl/runtime/MultipleCallsInOneStatement.stage @@ -0,0 +1,12 @@ +uniform half4 colorRed; +uniform half4 colorGreen; +int get_0(int x); +int get_0(int x) +{ + return x; +} +half4 main(float2 pos) +{ + int ten = (get_0(5) + get_0(3)) + get_0(2); + return half4(ten == 10 ? colorGreen : colorRed); +} diff --git a/third_party/skia/tests/sksl/runtime/RecursiveComparison_Arrays.skvm b/third_party/skia/tests/sksl/runtime/RecursiveComparison_Arrays.skvm index 6dbd9ade3326..015946ccb52d 100644 --- a/third_party/skia/tests/sksl/runtime/RecursiveComparison_Arrays.skvm +++ b/third_party/skia/tests/sksl/runtime/RecursiveComparison_Arrays.skvm @@ -1,4 +1,4 @@ -27 registers, 138 instructions: +25 registers, 133 instructions: 0 r0 = uniform32 ptr0 4 1 r1 = uniform32 ptr0 8 2 r2 = uniform32 ptr0 C @@ -8,133 +8,128 @@ 6 r6 = uniform32 ptr0 1C 7 r7 = uniform32 ptr0 20 8 r8 = splat 0 (0) -9 r9 = splat FFFFFFFF (nan) -10 r10 = div_f32 r0 r2 -11 r11 = div_f32 r2 r0 -12 r12 = mul_f32 r0 r2 -13 r8 = sub_f32 r8 r0 -14 r8 = mul_f32 r2 r8 -15 r13 = splat 42280000 (42) -16 r13 = mul_f32 r1 r13 -17 r14 = splat 422C0000 (43) -18 r14 = mul_f32 r1 r14 -19 r15 = splat 42300000 (44) -20 r15 = mul_f32 r1 r15 -21 r16 = splat 3F800000 (1) -22 r16 = add_f32 r0 r16 -23 r17 = mul_f32 r13 r16 -24 r18 = mul_f32 r8 r16 -25 r19 = mul_f32 r12 r16 -26 r20 = eq_f32 r13 r17 -27 r21 = eq_f32 r8 r18 -28 r22 = eq_f32 r12 r19 -29 r21 = bit_and r20 r21 -30 r21 = bit_and r22 r21 -31 r22 = bit_and r13 r21 -32 r20 = bit_and r8 r21 -33 r23 = bit_and r12 r21 -34 r24 = bit_and r17 r21 -35 r18 = bit_and r18 r21 -36 r19 = bit_and r19 r21 -37 r24 = neq_f32 r22 r24 -38 r18 = neq_f32 r20 r18 -39 r19 = neq_f32 r23 r19 -40 r18 = bit_or r24 r18 -41 r18 = bit_or r19 r18 -42 r18 = bit_and r21 r18 -43 r19 = bit_xor r9 r18 -44 r19 = bit_and r21 r19 -45 r21 = bit_and r13 r19 -46 r24 = bit_and r10 r19 -47 r23 = bit_and r11 r19 -48 r20 = bit_and r17 r19 -49 r22 = mul_f32 r10 r16 -50 r25 = bit_and r19 r22 -51 r16 = mul_f32 r11 r16 -52 r26 = bit_and r19 r16 -53 r20 = neq_f32 r21 r20 -54 r25 = neq_f32 r24 r25 -55 r26 = neq_f32 r23 r26 -56 r25 = bit_or r20 r25 -57 r25 = bit_or r26 r25 -58 r18 = select r19 r25 r18 -59 r19 = bit_and r19 r18 -60 r25 = bit_and r13 r19 -61 r26 = bit_and r10 r19 -62 r11 = bit_and r11 r19 -63 r17 = bit_and r17 r19 -64 r22 = bit_and r22 r19 -65 r16 = bit_and r16 r19 -66 r17 = eq_f32 r25 r17 -67 r22 = eq_f32 r26 r22 -68 r16 = eq_f32 r11 r16 -69 r22 = bit_and r17 r22 -70 r22 = bit_and r16 r22 -71 r18 = select r19 r22 r18 -72 r18 = bit_xor r9 r18 -73 r18 = bit_and r19 r18 -74 r19 = splat 40000000 (2) -75 r19 = add_f32 r0 r19 -76 r22 = bit_and r13 r18 -77 r16 = bit_and r14 r18 -78 r17 = bit_and r15 r18 -79 r11 = mul_f32 r13 r19 -80 r26 = bit_and r18 r11 -81 r25 = mul_f32 r14 r19 -82 r20 = bit_and r18 r25 -83 r26 = neq_f32 r22 r26 -84 r20 = neq_f32 r16 r20 -85 r17 = neq_f32 r17 r17 -86 r20 = bit_or r26 r20 -87 r20 = bit_or r17 r20 -88 r20 = bit_and r18 r20 -89 r18 = bit_and r18 r20 -90 r13 = bit_and r13 r18 -91 r14 = bit_and r14 r18 -92 r15 = bit_and r15 r18 -93 r11 = bit_and r11 r18 -94 r25 = bit_and r25 r18 -95 r11 = eq_f32 r13 r11 -96 r25 = eq_f32 r14 r25 -97 r15 = eq_f32 r15 r15 -98 r25 = bit_and r11 r25 -99 r25 = bit_and r15 r25 -100 r20 = select r18 r25 r20 -101 r25 = bit_xor r9 r20 -102 r25 = bit_and r18 r25 -103 r18 = bit_and r10 r25 -104 r15 = bit_and r8 r25 -105 r11 = bit_and r12 r25 -106 r14 = mul_f32 r10 r19 -107 r13 = bit_and r25 r14 -108 r19 = mul_f32 r8 r19 -109 r17 = bit_and r25 r19 -110 r13 = neq_f32 r18 r13 -111 r17 = neq_f32 r15 r17 -112 r11 = neq_f32 r11 r11 -113 r17 = bit_or r13 r17 -114 r17 = bit_or r11 r17 -115 r20 = select r25 r17 r20 -116 r25 = bit_and r25 r20 -117 r10 = bit_and r10 r25 -118 r8 = bit_and r8 r25 -119 r12 = bit_and r12 r25 -120 r14 = bit_and r14 r25 -121 r19 = bit_and r19 r25 -122 r14 = eq_f32 r10 r14 -123 r19 = eq_f32 r8 r19 -124 r12 = eq_f32 r12 r12 -125 r19 = bit_and r14 r19 -126 r19 = bit_and r12 r19 -127 r20 = select r25 r19 r20 -128 r20 = bit_xor r9 r20 -129 r20 = bit_and r25 r20 -130 r4 = select r20 r0 r4 -131 r5 = select r20 r1 r5 -132 r6 = select r20 r2 r6 -133 r7 = select r20 r3 r7 +9 r9 = div_f32 r0 r2 +10 r10 = div_f32 r2 r0 +11 r11 = mul_f32 r0 r2 +12 r8 = sub_f32 r8 r0 +13 r8 = mul_f32 r2 r8 +14 r12 = splat 42280000 (42) +15 r12 = mul_f32 r1 r12 +16 r13 = splat 422C0000 (43) +17 r13 = mul_f32 r1 r13 +18 r14 = splat 42300000 (44) +19 r14 = mul_f32 r1 r14 +20 r15 = splat 3F800000 (1) +21 r15 = add_f32 r0 r15 +22 r16 = mul_f32 r12 r15 +23 r17 = mul_f32 r8 r15 +24 r18 = mul_f32 r11 r15 +25 r19 = eq_f32 r12 r16 +26 r20 = eq_f32 r8 r17 +27 r21 = eq_f32 r11 r18 +28 r20 = bit_and r19 r20 +29 r20 = bit_and r21 r20 +30 r21 = bit_and r12 r20 +31 r19 = bit_and r8 r20 +32 r22 = bit_and r11 r20 +33 r23 = bit_and r16 r20 +34 r17 = bit_and r17 r20 +35 r18 = bit_and r18 r20 +36 r23 = neq_f32 r21 r23 +37 r17 = neq_f32 r19 r17 +38 r18 = neq_f32 r22 r18 +39 r17 = bit_or r23 r17 +40 r17 = bit_or r18 r17 +41 r17 = bit_and r20 r17 +42 r17 = bit_clear r20 r17 +43 r20 = bit_and r12 r17 +44 r18 = bit_and r9 r17 +45 r23 = bit_and r10 r17 +46 r22 = bit_and r16 r17 +47 r19 = mul_f32 r9 r15 +48 r21 = bit_and r17 r19 +49 r15 = mul_f32 r10 r15 +50 r24 = bit_and r17 r15 +51 r22 = neq_f32 r20 r22 +52 r21 = neq_f32 r18 r21 +53 r24 = neq_f32 r23 r24 +54 r21 = bit_or r22 r21 +55 r21 = bit_or r24 r21 +56 r21 = bit_and r17 r21 +57 r21 = bit_and r17 r21 +58 r17 = bit_and r12 r21 +59 r24 = bit_and r9 r21 +60 r10 = bit_and r10 r21 +61 r16 = bit_and r16 r21 +62 r19 = bit_and r19 r21 +63 r15 = bit_and r15 r21 +64 r16 = eq_f32 r17 r16 +65 r19 = eq_f32 r24 r19 +66 r15 = eq_f32 r10 r15 +67 r19 = bit_and r16 r19 +68 r19 = bit_and r15 r19 +69 r19 = bit_and r21 r19 +70 r19 = bit_clear r21 r19 +71 r21 = splat 40000000 (2) +72 r21 = add_f32 r0 r21 +73 r15 = bit_and r12 r19 +74 r16 = bit_and r13 r19 +75 r10 = bit_and r14 r19 +76 r24 = mul_f32 r12 r21 +77 r17 = bit_and r19 r24 +78 r22 = mul_f32 r13 r21 +79 r23 = bit_and r19 r22 +80 r17 = neq_f32 r15 r17 +81 r23 = neq_f32 r16 r23 +82 r10 = neq_f32 r10 r10 +83 r23 = bit_or r17 r23 +84 r23 = bit_or r10 r23 +85 r23 = bit_and r19 r23 +86 r23 = bit_and r19 r23 +87 r12 = bit_and r12 r23 +88 r13 = bit_and r13 r23 +89 r14 = bit_and r14 r23 +90 r24 = bit_and r24 r23 +91 r22 = bit_and r22 r23 +92 r24 = eq_f32 r12 r24 +93 r22 = eq_f32 r13 r22 +94 r14 = eq_f32 r14 r14 +95 r22 = bit_and r24 r22 +96 r22 = bit_and r14 r22 +97 r22 = bit_and r23 r22 +98 r22 = bit_clear r23 r22 +99 r23 = bit_and r9 r22 +100 r14 = bit_and r8 r22 +101 r24 = bit_and r11 r22 +102 r13 = mul_f32 r9 r21 +103 r12 = bit_and r22 r13 +104 r21 = mul_f32 r8 r21 +105 r19 = bit_and r22 r21 +106 r12 = neq_f32 r23 r12 +107 r19 = neq_f32 r14 r19 +108 r24 = neq_f32 r24 r24 +109 r19 = bit_or r12 r19 +110 r19 = bit_or r24 r19 +111 r19 = bit_and r22 r19 +112 r19 = bit_and r22 r19 +113 r9 = bit_and r9 r19 +114 r8 = bit_and r8 r19 +115 r11 = bit_and r11 r19 +116 r13 = bit_and r13 r19 +117 r21 = bit_and r21 r19 +118 r13 = eq_f32 r9 r13 +119 r21 = eq_f32 r8 r21 +120 r11 = eq_f32 r11 r11 +121 r21 = bit_and r13 r21 +122 r21 = bit_and r11 r21 +123 r21 = bit_and r19 r21 +124 r21 = bit_clear r19 r21 +125 r4 = select r21 r0 r4 +126 r5 = select r21 r1 r5 +127 r6 = select r21 r2 r6 +128 r7 = select r21 r3 r7 loop: -134 store32 ptr1 r4 -135 store32 ptr2 r5 -136 store32 ptr3 r6 -137 store32 ptr4 r7 +129 store32 ptr1 r4 +130 store32 ptr2 r5 +131 store32 ptr3 r6 +132 store32 ptr4 r7 diff --git a/third_party/skia/tests/sksl/runtime/RecursiveComparison_Structs.skvm b/third_party/skia/tests/sksl/runtime/RecursiveComparison_Structs.skvm index 6dbd9ade3326..015946ccb52d 100644 --- a/third_party/skia/tests/sksl/runtime/RecursiveComparison_Structs.skvm +++ b/third_party/skia/tests/sksl/runtime/RecursiveComparison_Structs.skvm @@ -1,4 +1,4 @@ -27 registers, 138 instructions: +25 registers, 133 instructions: 0 r0 = uniform32 ptr0 4 1 r1 = uniform32 ptr0 8 2 r2 = uniform32 ptr0 C @@ -8,133 +8,128 @@ 6 r6 = uniform32 ptr0 1C 7 r7 = uniform32 ptr0 20 8 r8 = splat 0 (0) -9 r9 = splat FFFFFFFF (nan) -10 r10 = div_f32 r0 r2 -11 r11 = div_f32 r2 r0 -12 r12 = mul_f32 r0 r2 -13 r8 = sub_f32 r8 r0 -14 r8 = mul_f32 r2 r8 -15 r13 = splat 42280000 (42) -16 r13 = mul_f32 r1 r13 -17 r14 = splat 422C0000 (43) -18 r14 = mul_f32 r1 r14 -19 r15 = splat 42300000 (44) -20 r15 = mul_f32 r1 r15 -21 r16 = splat 3F800000 (1) -22 r16 = add_f32 r0 r16 -23 r17 = mul_f32 r13 r16 -24 r18 = mul_f32 r8 r16 -25 r19 = mul_f32 r12 r16 -26 r20 = eq_f32 r13 r17 -27 r21 = eq_f32 r8 r18 -28 r22 = eq_f32 r12 r19 -29 r21 = bit_and r20 r21 -30 r21 = bit_and r22 r21 -31 r22 = bit_and r13 r21 -32 r20 = bit_and r8 r21 -33 r23 = bit_and r12 r21 -34 r24 = bit_and r17 r21 -35 r18 = bit_and r18 r21 -36 r19 = bit_and r19 r21 -37 r24 = neq_f32 r22 r24 -38 r18 = neq_f32 r20 r18 -39 r19 = neq_f32 r23 r19 -40 r18 = bit_or r24 r18 -41 r18 = bit_or r19 r18 -42 r18 = bit_and r21 r18 -43 r19 = bit_xor r9 r18 -44 r19 = bit_and r21 r19 -45 r21 = bit_and r13 r19 -46 r24 = bit_and r10 r19 -47 r23 = bit_and r11 r19 -48 r20 = bit_and r17 r19 -49 r22 = mul_f32 r10 r16 -50 r25 = bit_and r19 r22 -51 r16 = mul_f32 r11 r16 -52 r26 = bit_and r19 r16 -53 r20 = neq_f32 r21 r20 -54 r25 = neq_f32 r24 r25 -55 r26 = neq_f32 r23 r26 -56 r25 = bit_or r20 r25 -57 r25 = bit_or r26 r25 -58 r18 = select r19 r25 r18 -59 r19 = bit_and r19 r18 -60 r25 = bit_and r13 r19 -61 r26 = bit_and r10 r19 -62 r11 = bit_and r11 r19 -63 r17 = bit_and r17 r19 -64 r22 = bit_and r22 r19 -65 r16 = bit_and r16 r19 -66 r17 = eq_f32 r25 r17 -67 r22 = eq_f32 r26 r22 -68 r16 = eq_f32 r11 r16 -69 r22 = bit_and r17 r22 -70 r22 = bit_and r16 r22 -71 r18 = select r19 r22 r18 -72 r18 = bit_xor r9 r18 -73 r18 = bit_and r19 r18 -74 r19 = splat 40000000 (2) -75 r19 = add_f32 r0 r19 -76 r22 = bit_and r13 r18 -77 r16 = bit_and r14 r18 -78 r17 = bit_and r15 r18 -79 r11 = mul_f32 r13 r19 -80 r26 = bit_and r18 r11 -81 r25 = mul_f32 r14 r19 -82 r20 = bit_and r18 r25 -83 r26 = neq_f32 r22 r26 -84 r20 = neq_f32 r16 r20 -85 r17 = neq_f32 r17 r17 -86 r20 = bit_or r26 r20 -87 r20 = bit_or r17 r20 -88 r20 = bit_and r18 r20 -89 r18 = bit_and r18 r20 -90 r13 = bit_and r13 r18 -91 r14 = bit_and r14 r18 -92 r15 = bit_and r15 r18 -93 r11 = bit_and r11 r18 -94 r25 = bit_and r25 r18 -95 r11 = eq_f32 r13 r11 -96 r25 = eq_f32 r14 r25 -97 r15 = eq_f32 r15 r15 -98 r25 = bit_and r11 r25 -99 r25 = bit_and r15 r25 -100 r20 = select r18 r25 r20 -101 r25 = bit_xor r9 r20 -102 r25 = bit_and r18 r25 -103 r18 = bit_and r10 r25 -104 r15 = bit_and r8 r25 -105 r11 = bit_and r12 r25 -106 r14 = mul_f32 r10 r19 -107 r13 = bit_and r25 r14 -108 r19 = mul_f32 r8 r19 -109 r17 = bit_and r25 r19 -110 r13 = neq_f32 r18 r13 -111 r17 = neq_f32 r15 r17 -112 r11 = neq_f32 r11 r11 -113 r17 = bit_or r13 r17 -114 r17 = bit_or r11 r17 -115 r20 = select r25 r17 r20 -116 r25 = bit_and r25 r20 -117 r10 = bit_and r10 r25 -118 r8 = bit_and r8 r25 -119 r12 = bit_and r12 r25 -120 r14 = bit_and r14 r25 -121 r19 = bit_and r19 r25 -122 r14 = eq_f32 r10 r14 -123 r19 = eq_f32 r8 r19 -124 r12 = eq_f32 r12 r12 -125 r19 = bit_and r14 r19 -126 r19 = bit_and r12 r19 -127 r20 = select r25 r19 r20 -128 r20 = bit_xor r9 r20 -129 r20 = bit_and r25 r20 -130 r4 = select r20 r0 r4 -131 r5 = select r20 r1 r5 -132 r6 = select r20 r2 r6 -133 r7 = select r20 r3 r7 +9 r9 = div_f32 r0 r2 +10 r10 = div_f32 r2 r0 +11 r11 = mul_f32 r0 r2 +12 r8 = sub_f32 r8 r0 +13 r8 = mul_f32 r2 r8 +14 r12 = splat 42280000 (42) +15 r12 = mul_f32 r1 r12 +16 r13 = splat 422C0000 (43) +17 r13 = mul_f32 r1 r13 +18 r14 = splat 42300000 (44) +19 r14 = mul_f32 r1 r14 +20 r15 = splat 3F800000 (1) +21 r15 = add_f32 r0 r15 +22 r16 = mul_f32 r12 r15 +23 r17 = mul_f32 r8 r15 +24 r18 = mul_f32 r11 r15 +25 r19 = eq_f32 r12 r16 +26 r20 = eq_f32 r8 r17 +27 r21 = eq_f32 r11 r18 +28 r20 = bit_and r19 r20 +29 r20 = bit_and r21 r20 +30 r21 = bit_and r12 r20 +31 r19 = bit_and r8 r20 +32 r22 = bit_and r11 r20 +33 r23 = bit_and r16 r20 +34 r17 = bit_and r17 r20 +35 r18 = bit_and r18 r20 +36 r23 = neq_f32 r21 r23 +37 r17 = neq_f32 r19 r17 +38 r18 = neq_f32 r22 r18 +39 r17 = bit_or r23 r17 +40 r17 = bit_or r18 r17 +41 r17 = bit_and r20 r17 +42 r17 = bit_clear r20 r17 +43 r20 = bit_and r12 r17 +44 r18 = bit_and r9 r17 +45 r23 = bit_and r10 r17 +46 r22 = bit_and r16 r17 +47 r19 = mul_f32 r9 r15 +48 r21 = bit_and r17 r19 +49 r15 = mul_f32 r10 r15 +50 r24 = bit_and r17 r15 +51 r22 = neq_f32 r20 r22 +52 r21 = neq_f32 r18 r21 +53 r24 = neq_f32 r23 r24 +54 r21 = bit_or r22 r21 +55 r21 = bit_or r24 r21 +56 r21 = bit_and r17 r21 +57 r21 = bit_and r17 r21 +58 r17 = bit_and r12 r21 +59 r24 = bit_and r9 r21 +60 r10 = bit_and r10 r21 +61 r16 = bit_and r16 r21 +62 r19 = bit_and r19 r21 +63 r15 = bit_and r15 r21 +64 r16 = eq_f32 r17 r16 +65 r19 = eq_f32 r24 r19 +66 r15 = eq_f32 r10 r15 +67 r19 = bit_and r16 r19 +68 r19 = bit_and r15 r19 +69 r19 = bit_and r21 r19 +70 r19 = bit_clear r21 r19 +71 r21 = splat 40000000 (2) +72 r21 = add_f32 r0 r21 +73 r15 = bit_and r12 r19 +74 r16 = bit_and r13 r19 +75 r10 = bit_and r14 r19 +76 r24 = mul_f32 r12 r21 +77 r17 = bit_and r19 r24 +78 r22 = mul_f32 r13 r21 +79 r23 = bit_and r19 r22 +80 r17 = neq_f32 r15 r17 +81 r23 = neq_f32 r16 r23 +82 r10 = neq_f32 r10 r10 +83 r23 = bit_or r17 r23 +84 r23 = bit_or r10 r23 +85 r23 = bit_and r19 r23 +86 r23 = bit_and r19 r23 +87 r12 = bit_and r12 r23 +88 r13 = bit_and r13 r23 +89 r14 = bit_and r14 r23 +90 r24 = bit_and r24 r23 +91 r22 = bit_and r22 r23 +92 r24 = eq_f32 r12 r24 +93 r22 = eq_f32 r13 r22 +94 r14 = eq_f32 r14 r14 +95 r22 = bit_and r24 r22 +96 r22 = bit_and r14 r22 +97 r22 = bit_and r23 r22 +98 r22 = bit_clear r23 r22 +99 r23 = bit_and r9 r22 +100 r14 = bit_and r8 r22 +101 r24 = bit_and r11 r22 +102 r13 = mul_f32 r9 r21 +103 r12 = bit_and r22 r13 +104 r21 = mul_f32 r8 r21 +105 r19 = bit_and r22 r21 +106 r12 = neq_f32 r23 r12 +107 r19 = neq_f32 r14 r19 +108 r24 = neq_f32 r24 r24 +109 r19 = bit_or r12 r19 +110 r19 = bit_or r24 r19 +111 r19 = bit_and r22 r19 +112 r19 = bit_and r22 r19 +113 r9 = bit_and r9 r19 +114 r8 = bit_and r8 r19 +115 r11 = bit_and r11 r19 +116 r13 = bit_and r13 r19 +117 r21 = bit_and r21 r19 +118 r13 = eq_f32 r9 r13 +119 r21 = eq_f32 r8 r21 +120 r11 = eq_f32 r11 r11 +121 r21 = bit_and r13 r21 +122 r21 = bit_and r11 r21 +123 r21 = bit_and r19 r21 +124 r21 = bit_clear r19 r21 +125 r4 = select r21 r0 r4 +126 r5 = select r21 r1 r5 +127 r6 = select r21 r2 r6 +128 r7 = select r21 r3 r7 loop: -134 store32 ptr1 r4 -135 store32 ptr2 r5 -136 store32 ptr3 r6 -137 store32 ptr4 r7 +129 store32 ptr1 r4 +130 store32 ptr2 r5 +131 store32 ptr3 r6 +132 store32 ptr4 r7 diff --git a/third_party/skia/tests/sksl/runtime/RecursiveComparison_Types.skvm b/third_party/skia/tests/sksl/runtime/RecursiveComparison_Types.skvm index 90907d3731b2..6e8f421d4e19 100644 --- a/third_party/skia/tests/sksl/runtime/RecursiveComparison_Types.skvm +++ b/third_party/skia/tests/sksl/runtime/RecursiveComparison_Types.skvm @@ -1,4 +1,4 @@ -39 registers, 241 instructions: +37 registers, 236 instructions: 0 r0 = uniform32 ptr0 4 1 r1 = uniform32 ptr0 8 2 r2 = uniform32 ptr0 C @@ -8,236 +8,231 @@ 6 r6 = uniform32 ptr0 1C 7 r7 = uniform32 ptr0 20 8 r8 = splat 0 (0) -9 r9 = splat FFFFFFFF (nan) -10 r10 = div_f32 r0 r2 -11 r11 = div_f32 r2 r0 -12 r12 = mul_f32 r0 r2 -13 r8 = sub_f32 r8 r0 -14 r8 = mul_f32 r2 r8 -15 r13 = splat 42280000 (42) -16 r13 = mul_f32 r1 r13 -17 r14 = splat 422C0000 (43) -18 r14 = mul_f32 r1 r14 -19 r15 = splat 42300000 (44) -20 r15 = mul_f32 r1 r15 -21 r16 = splat 42340000 (45) -22 r16 = mul_f32 r1 r16 -23 r17 = splat 42380000 (46) -24 r17 = mul_f32 r1 r17 -25 r18 = splat 423C0000 (47) -26 r18 = mul_f32 r1 r18 -27 r19 = splat 3F800000 (1) -28 r19 = add_f32 r0 r19 -29 r20 = mul_f32 r13 r19 -30 r21 = mul_f32 r8 r19 -31 r22 = mul_f32 r12 r19 -32 r23 = mul_f32 r14 r19 -33 r24 = mul_f32 r15 r19 -34 r25 = mul_f32 r16 r19 -35 r26 = eq_f32 r13 r20 -36 r27 = eq_f32 r8 r21 -37 r28 = eq_f32 r12 r22 +9 r9 = div_f32 r0 r2 +10 r10 = div_f32 r2 r0 +11 r11 = mul_f32 r0 r2 +12 r8 = sub_f32 r8 r0 +13 r8 = mul_f32 r2 r8 +14 r12 = splat 42280000 (42) +15 r12 = mul_f32 r1 r12 +16 r13 = splat 422C0000 (43) +17 r13 = mul_f32 r1 r13 +18 r14 = splat 42300000 (44) +19 r14 = mul_f32 r1 r14 +20 r15 = splat 42340000 (45) +21 r15 = mul_f32 r1 r15 +22 r16 = splat 42380000 (46) +23 r16 = mul_f32 r1 r16 +24 r17 = splat 423C0000 (47) +25 r17 = mul_f32 r1 r17 +26 r18 = splat 3F800000 (1) +27 r18 = add_f32 r0 r18 +28 r19 = mul_f32 r12 r18 +29 r20 = mul_f32 r8 r18 +30 r21 = mul_f32 r11 r18 +31 r22 = mul_f32 r13 r18 +32 r23 = mul_f32 r14 r18 +33 r24 = mul_f32 r15 r18 +34 r25 = eq_f32 r12 r19 +35 r26 = eq_f32 r8 r20 +36 r27 = eq_f32 r11 r21 +37 r28 = eq_f32 r13 r22 38 r29 = eq_f32 r14 r23 39 r30 = eq_f32 r15 r24 -40 r31 = eq_f32 r16 r25 -41 r27 = bit_and r26 r27 -42 r27 = bit_and r28 r27 -43 r27 = bit_and r29 r27 -44 r27 = bit_and r30 r27 -45 r27 = bit_and r31 r27 -46 r31 = bit_and r13 r27 -47 r30 = bit_and r8 r27 -48 r29 = bit_and r12 r27 -49 r28 = bit_and r14 r27 -50 r26 = bit_and r15 r27 -51 r32 = bit_and r16 r27 -52 r33 = bit_and r20 r27 -53 r21 = bit_and r21 r27 -54 r22 = bit_and r22 r27 -55 r34 = bit_and r23 r27 -56 r35 = bit_and r24 r27 -57 r36 = bit_and r25 r27 -58 r33 = neq_f32 r31 r33 -59 r21 = neq_f32 r30 r21 -60 r22 = neq_f32 r29 r22 -61 r34 = neq_f32 r28 r34 -62 r35 = neq_f32 r26 r35 -63 r36 = neq_f32 r32 r36 -64 r21 = bit_or r33 r21 -65 r21 = bit_or r22 r21 -66 r21 = bit_or r34 r21 -67 r21 = bit_or r35 r21 -68 r21 = bit_or r36 r21 -69 r21 = bit_and r27 r21 -70 r36 = bit_xor r9 r21 -71 r36 = bit_and r27 r36 -72 r27 = bit_and r13 r36 -73 r35 = bit_and r10 r36 -74 r34 = bit_and r11 r36 -75 r22 = bit_and r14 r36 -76 r33 = bit_and r15 r36 -77 r32 = bit_and r16 r36 -78 r26 = bit_and r20 r36 -79 r28 = mul_f32 r10 r19 -80 r19 = mul_f32 r11 r19 -81 r29 = bit_and r36 r28 -82 r30 = bit_and r36 r19 -83 r31 = bit_and r23 r36 -84 r37 = bit_and r24 r36 -85 r38 = bit_and r25 r36 -86 r26 = neq_f32 r27 r26 -87 r29 = neq_f32 r35 r29 -88 r30 = neq_f32 r34 r30 -89 r31 = neq_f32 r22 r31 -90 r37 = neq_f32 r33 r37 -91 r38 = neq_f32 r32 r38 -92 r29 = bit_or r26 r29 -93 r29 = bit_or r30 r29 -94 r29 = bit_or r31 r29 -95 r29 = bit_or r37 r29 -96 r29 = bit_or r38 r29 -97 r21 = select r36 r29 r21 -98 r36 = bit_and r36 r21 -99 r29 = bit_and r13 r36 -100 r38 = bit_and r10 r36 -101 r11 = bit_and r11 r36 -102 r37 = bit_and r14 r36 -103 r31 = bit_and r15 r36 -104 r30 = bit_and r16 r36 -105 r20 = bit_and r20 r36 -106 r28 = bit_and r28 r36 -107 r19 = bit_and r19 r36 -108 r23 = bit_and r23 r36 -109 r24 = bit_and r24 r36 -110 r25 = bit_and r25 r36 -111 r20 = eq_f32 r29 r20 -112 r28 = eq_f32 r38 r28 -113 r19 = eq_f32 r11 r19 -114 r23 = eq_f32 r37 r23 -115 r24 = eq_f32 r31 r24 -116 r25 = eq_f32 r30 r25 -117 r28 = bit_and r20 r28 -118 r28 = bit_and r19 r28 -119 r28 = bit_and r23 r28 -120 r28 = bit_and r24 r28 -121 r28 = bit_and r25 r28 -122 r21 = select r36 r28 r21 -123 r21 = bit_xor r9 r21 -124 r21 = bit_and r36 r21 -125 r36 = splat 40000000 (2) -126 r36 = add_f32 r0 r36 -127 r28 = bit_and r13 r21 -128 r25 = bit_and r14 r21 -129 r24 = bit_and r15 r21 -130 r23 = bit_and r16 r21 -131 r19 = bit_and r17 r21 -132 r20 = bit_and r18 r21 -133 r30 = mul_f32 r13 r36 -134 r31 = bit_and r21 r30 -135 r37 = mul_f32 r14 r36 -136 r11 = mul_f32 r15 r36 -137 r38 = bit_and r21 r37 -138 r29 = bit_and r21 r11 -139 r26 = mul_f32 r16 r36 -140 r32 = bit_and r21 r26 -141 r33 = mul_f32 r17 r36 -142 r22 = bit_and r21 r33 -143 r31 = neq_f32 r28 r31 -144 r38 = neq_f32 r25 r38 -145 r29 = neq_f32 r24 r29 -146 r32 = neq_f32 r23 r32 -147 r22 = neq_f32 r19 r22 -148 r20 = neq_f32 r20 r20 -149 r38 = bit_or r31 r38 -150 r38 = bit_or r29 r38 -151 r38 = bit_or r32 r38 -152 r38 = bit_or r22 r38 -153 r38 = bit_or r20 r38 -154 r38 = bit_and r21 r38 -155 r21 = bit_and r21 r38 -156 r20 = bit_and r13 r21 -157 r22 = bit_and r14 r21 -158 r32 = bit_and r15 r21 -159 r16 = bit_and r16 r21 -160 r17 = bit_and r17 r21 -161 r18 = bit_and r18 r21 -162 r29 = bit_and r30 r21 -163 r31 = bit_and r37 r21 -164 r11 = bit_and r11 r21 -165 r26 = bit_and r26 r21 -166 r33 = bit_and r33 r21 -167 r29 = eq_f32 r20 r29 -168 r31 = eq_f32 r22 r31 -169 r11 = eq_f32 r32 r11 -170 r26 = eq_f32 r16 r26 -171 r33 = eq_f32 r17 r33 -172 r18 = eq_f32 r18 r18 -173 r31 = bit_and r29 r31 -174 r31 = bit_and r11 r31 -175 r31 = bit_and r26 r31 -176 r31 = bit_and r33 r31 -177 r31 = bit_and r18 r31 -178 r38 = select r21 r31 r38 -179 r31 = bit_xor r9 r38 -180 r31 = bit_and r21 r31 -181 r21 = bit_and r10 r31 -182 r18 = bit_and r8 r31 -183 r33 = bit_and r12 r31 -184 r26 = bit_and r13 r31 -185 r11 = bit_and r14 r31 -186 r29 = bit_and r15 r31 -187 r17 = mul_f32 r10 r36 -188 r16 = bit_and r31 r17 -189 r32 = mul_f32 r8 r36 -190 r36 = mul_f32 r12 r36 -191 r22 = bit_and r31 r32 -192 r20 = bit_and r31 r36 -193 r19 = bit_and r30 r31 -194 r23 = bit_and r37 r31 -195 r16 = neq_f32 r21 r16 -196 r22 = neq_f32 r18 r22 -197 r20 = neq_f32 r33 r20 -198 r19 = neq_f32 r26 r19 -199 r23 = neq_f32 r11 r23 -200 r29 = neq_f32 r29 r29 -201 r22 = bit_or r16 r22 -202 r22 = bit_or r20 r22 -203 r22 = bit_or r19 r22 -204 r22 = bit_or r23 r22 -205 r22 = bit_or r29 r22 -206 r38 = select r31 r22 r38 -207 r31 = bit_and r31 r38 -208 r10 = bit_and r10 r31 -209 r8 = bit_and r8 r31 -210 r12 = bit_and r12 r31 -211 r13 = bit_and r13 r31 -212 r14 = bit_and r14 r31 -213 r15 = bit_and r15 r31 -214 r17 = bit_and r17 r31 -215 r32 = bit_and r32 r31 -216 r36 = bit_and r36 r31 -217 r30 = bit_and r30 r31 -218 r37 = bit_and r37 r31 -219 r17 = eq_f32 r10 r17 -220 r32 = eq_f32 r8 r32 -221 r36 = eq_f32 r12 r36 -222 r30 = eq_f32 r13 r30 -223 r37 = eq_f32 r14 r37 -224 r15 = eq_f32 r15 r15 -225 r32 = bit_and r17 r32 -226 r32 = bit_and r36 r32 -227 r32 = bit_and r30 r32 -228 r32 = bit_and r37 r32 -229 r32 = bit_and r15 r32 -230 r38 = select r31 r32 r38 -231 r38 = bit_xor r9 r38 -232 r38 = bit_and r31 r38 -233 r4 = select r38 r0 r4 -234 r5 = select r38 r1 r5 -235 r6 = select r38 r2 r6 -236 r7 = select r38 r3 r7 +40 r26 = bit_and r25 r26 +41 r26 = bit_and r27 r26 +42 r26 = bit_and r28 r26 +43 r26 = bit_and r29 r26 +44 r26 = bit_and r30 r26 +45 r30 = bit_and r12 r26 +46 r29 = bit_and r8 r26 +47 r28 = bit_and r11 r26 +48 r27 = bit_and r13 r26 +49 r25 = bit_and r14 r26 +50 r31 = bit_and r15 r26 +51 r32 = bit_and r19 r26 +52 r20 = bit_and r20 r26 +53 r21 = bit_and r21 r26 +54 r33 = bit_and r22 r26 +55 r34 = bit_and r23 r26 +56 r35 = bit_and r24 r26 +57 r32 = neq_f32 r30 r32 +58 r20 = neq_f32 r29 r20 +59 r21 = neq_f32 r28 r21 +60 r33 = neq_f32 r27 r33 +61 r34 = neq_f32 r25 r34 +62 r35 = neq_f32 r31 r35 +63 r20 = bit_or r32 r20 +64 r20 = bit_or r21 r20 +65 r20 = bit_or r33 r20 +66 r20 = bit_or r34 r20 +67 r20 = bit_or r35 r20 +68 r20 = bit_and r26 r20 +69 r20 = bit_clear r26 r20 +70 r26 = bit_and r12 r20 +71 r35 = bit_and r9 r20 +72 r34 = bit_and r10 r20 +73 r33 = bit_and r13 r20 +74 r21 = bit_and r14 r20 +75 r32 = bit_and r15 r20 +76 r31 = bit_and r19 r20 +77 r25 = mul_f32 r9 r18 +78 r18 = mul_f32 r10 r18 +79 r27 = bit_and r20 r25 +80 r28 = bit_and r20 r18 +81 r29 = bit_and r22 r20 +82 r30 = bit_and r23 r20 +83 r36 = bit_and r24 r20 +84 r31 = neq_f32 r26 r31 +85 r27 = neq_f32 r35 r27 +86 r28 = neq_f32 r34 r28 +87 r29 = neq_f32 r33 r29 +88 r30 = neq_f32 r21 r30 +89 r36 = neq_f32 r32 r36 +90 r27 = bit_or r31 r27 +91 r27 = bit_or r28 r27 +92 r27 = bit_or r29 r27 +93 r27 = bit_or r30 r27 +94 r27 = bit_or r36 r27 +95 r27 = bit_and r20 r27 +96 r27 = bit_and r20 r27 +97 r20 = bit_and r12 r27 +98 r36 = bit_and r9 r27 +99 r10 = bit_and r10 r27 +100 r30 = bit_and r13 r27 +101 r29 = bit_and r14 r27 +102 r28 = bit_and r15 r27 +103 r19 = bit_and r19 r27 +104 r25 = bit_and r25 r27 +105 r18 = bit_and r18 r27 +106 r22 = bit_and r22 r27 +107 r23 = bit_and r23 r27 +108 r24 = bit_and r24 r27 +109 r19 = eq_f32 r20 r19 +110 r25 = eq_f32 r36 r25 +111 r18 = eq_f32 r10 r18 +112 r22 = eq_f32 r30 r22 +113 r23 = eq_f32 r29 r23 +114 r24 = eq_f32 r28 r24 +115 r25 = bit_and r19 r25 +116 r25 = bit_and r18 r25 +117 r25 = bit_and r22 r25 +118 r25 = bit_and r23 r25 +119 r25 = bit_and r24 r25 +120 r25 = bit_and r27 r25 +121 r25 = bit_clear r27 r25 +122 r27 = splat 40000000 (2) +123 r27 = add_f32 r0 r27 +124 r24 = bit_and r12 r25 +125 r23 = bit_and r13 r25 +126 r22 = bit_and r14 r25 +127 r18 = bit_and r15 r25 +128 r19 = bit_and r16 r25 +129 r28 = bit_and r17 r25 +130 r29 = mul_f32 r12 r27 +131 r30 = bit_and r25 r29 +132 r10 = mul_f32 r13 r27 +133 r36 = mul_f32 r14 r27 +134 r20 = bit_and r25 r10 +135 r31 = bit_and r25 r36 +136 r32 = mul_f32 r15 r27 +137 r21 = bit_and r25 r32 +138 r33 = mul_f32 r16 r27 +139 r34 = bit_and r25 r33 +140 r30 = neq_f32 r24 r30 +141 r20 = neq_f32 r23 r20 +142 r31 = neq_f32 r22 r31 +143 r21 = neq_f32 r18 r21 +144 r34 = neq_f32 r19 r34 +145 r28 = neq_f32 r28 r28 +146 r20 = bit_or r30 r20 +147 r20 = bit_or r31 r20 +148 r20 = bit_or r21 r20 +149 r20 = bit_or r34 r20 +150 r20 = bit_or r28 r20 +151 r20 = bit_and r25 r20 +152 r20 = bit_and r25 r20 +153 r25 = bit_and r12 r20 +154 r28 = bit_and r13 r20 +155 r34 = bit_and r14 r20 +156 r15 = bit_and r15 r20 +157 r16 = bit_and r16 r20 +158 r17 = bit_and r17 r20 +159 r21 = bit_and r29 r20 +160 r31 = bit_and r10 r20 +161 r36 = bit_and r36 r20 +162 r32 = bit_and r32 r20 +163 r33 = bit_and r33 r20 +164 r21 = eq_f32 r25 r21 +165 r31 = eq_f32 r28 r31 +166 r36 = eq_f32 r34 r36 +167 r32 = eq_f32 r15 r32 +168 r33 = eq_f32 r16 r33 +169 r17 = eq_f32 r17 r17 +170 r31 = bit_and r21 r31 +171 r31 = bit_and r36 r31 +172 r31 = bit_and r32 r31 +173 r31 = bit_and r33 r31 +174 r31 = bit_and r17 r31 +175 r31 = bit_and r20 r31 +176 r31 = bit_clear r20 r31 +177 r20 = bit_and r9 r31 +178 r17 = bit_and r8 r31 +179 r33 = bit_and r11 r31 +180 r32 = bit_and r12 r31 +181 r36 = bit_and r13 r31 +182 r21 = bit_and r14 r31 +183 r16 = mul_f32 r9 r27 +184 r15 = bit_and r31 r16 +185 r34 = mul_f32 r8 r27 +186 r27 = mul_f32 r11 r27 +187 r28 = bit_and r31 r34 +188 r25 = bit_and r31 r27 +189 r30 = bit_and r29 r31 +190 r19 = bit_and r10 r31 +191 r15 = neq_f32 r20 r15 +192 r28 = neq_f32 r17 r28 +193 r25 = neq_f32 r33 r25 +194 r30 = neq_f32 r32 r30 +195 r19 = neq_f32 r36 r19 +196 r21 = neq_f32 r21 r21 +197 r28 = bit_or r15 r28 +198 r28 = bit_or r25 r28 +199 r28 = bit_or r30 r28 +200 r28 = bit_or r19 r28 +201 r28 = bit_or r21 r28 +202 r28 = bit_and r31 r28 +203 r28 = bit_and r31 r28 +204 r9 = bit_and r9 r28 +205 r8 = bit_and r8 r28 +206 r11 = bit_and r11 r28 +207 r12 = bit_and r12 r28 +208 r13 = bit_and r13 r28 +209 r14 = bit_and r14 r28 +210 r16 = bit_and r16 r28 +211 r34 = bit_and r34 r28 +212 r27 = bit_and r27 r28 +213 r29 = bit_and r29 r28 +214 r10 = bit_and r10 r28 +215 r16 = eq_f32 r9 r16 +216 r34 = eq_f32 r8 r34 +217 r27 = eq_f32 r11 r27 +218 r29 = eq_f32 r12 r29 +219 r10 = eq_f32 r13 r10 +220 r14 = eq_f32 r14 r14 +221 r34 = bit_and r16 r34 +222 r34 = bit_and r27 r34 +223 r34 = bit_and r29 r34 +224 r34 = bit_and r10 r34 +225 r34 = bit_and r14 r34 +226 r34 = bit_and r28 r34 +227 r34 = bit_clear r28 r34 +228 r4 = select r34 r0 r4 +229 r5 = select r34 r1 r5 +230 r6 = select r34 r2 r6 +231 r7 = select r34 r3 r7 loop: -237 store32 ptr1 r4 -238 store32 ptr2 r5 -239 store32 ptr3 r6 -240 store32 ptr4 r7 +232 store32 ptr1 r4 +233 store32 ptr2 r5 +234 store32 ptr3 r6 +235 store32 ptr4 r7 diff --git a/third_party/skia/tests/sksl/runtime/RecursiveComparison_Vectors.skvm b/third_party/skia/tests/sksl/runtime/RecursiveComparison_Vectors.skvm index 7039de6b9a9a..dfeb1107b74f 100644 --- a/third_party/skia/tests/sksl/runtime/RecursiveComparison_Vectors.skvm +++ b/third_party/skia/tests/sksl/runtime/RecursiveComparison_Vectors.skvm @@ -1,4 +1,4 @@ -27 registers, 116 instructions: +25 registers, 111 instructions: 0 r0 = uniform32 ptr0 4 1 r1 = uniform32 ptr0 8 2 r2 = uniform32 ptr0 C @@ -8,111 +8,106 @@ 6 r6 = uniform32 ptr0 1C 7 r7 = uniform32 ptr0 20 8 r8 = splat 0 (0) -9 r9 = splat FFFFFFFF (nan) -10 r10 = div_f32 r0 r2 -11 r11 = div_f32 r2 r0 -12 r12 = mul_f32 r0 r2 -13 r8 = sub_f32 r8 r0 -14 r8 = mul_f32 r2 r8 -15 r13 = splat 42280000 (42) -16 r13 = mul_f32 r1 r13 -17 r14 = splat 422C0000 (43) -18 r14 = mul_f32 r1 r14 -19 r15 = splat 42300000 (44) -20 r15 = mul_f32 r1 r15 -21 r16 = splat 42340000 (45) -22 r16 = mul_f32 r1 r16 -23 r17 = splat 3F800000 (1) -24 r17 = add_f32 r0 r17 -25 r18 = mul_f32 r13 r17 -26 r19 = mul_f32 r8 r17 -27 r20 = mul_f32 r12 r17 -28 r21 = mul_f32 r14 r17 -29 r22 = eq_f32 r13 r18 -30 r23 = eq_f32 r8 r19 -31 r24 = eq_f32 r12 r20 -32 r25 = eq_f32 r14 r21 -33 r23 = bit_and r22 r23 -34 r23 = bit_and r24 r23 -35 r23 = bit_and r25 r23 -36 r18 = neq_f32 r13 r18 -37 r19 = neq_f32 r8 r19 -38 r20 = neq_f32 r12 r20 -39 r21 = neq_f32 r14 r21 -40 r19 = bit_or r18 r19 -41 r19 = bit_or r20 r19 -42 r19 = bit_or r21 r19 -43 r19 = bit_and r23 r19 -44 r20 = bit_xor r9 r19 -45 r20 = bit_and r23 r20 -46 r23 = mul_f32 r10 r17 -47 r17 = mul_f32 r11 r17 -48 r24 = eq_f32 r10 r23 -49 r26 = eq_f32 r11 r17 -50 r24 = bit_and r22 r24 -51 r24 = bit_and r26 r24 -52 r24 = bit_and r25 r24 -53 r23 = neq_f32 r10 r23 -54 r17 = neq_f32 r11 r17 -55 r23 = bit_or r18 r23 -56 r23 = bit_or r17 r23 -57 r23 = bit_or r21 r23 -58 r19 = select r20 r23 r19 -59 r20 = bit_and r20 r19 -60 r19 = select r20 r24 r19 -61 r19 = bit_xor r9 r19 -62 r19 = bit_and r20 r19 -63 r20 = splat 40000000 (2) -64 r20 = add_f32 r0 r20 -65 r24 = mul_f32 r13 r20 -66 r23 = mul_f32 r14 r20 -67 r21 = mul_f32 r15 r20 -68 r17 = mul_f32 r16 r20 -69 r18 = eq_f32 r13 r24 -70 r11 = eq_f32 r14 r23 -71 r25 = eq_f32 r15 r21 -72 r26 = eq_f32 r16 r17 -73 r11 = bit_and r18 r11 -74 r11 = bit_and r25 r11 -75 r11 = bit_and r26 r11 -76 r24 = neq_f32 r13 r24 -77 r23 = neq_f32 r14 r23 -78 r21 = neq_f32 r15 r21 -79 r17 = neq_f32 r16 r17 -80 r23 = bit_or r24 r23 -81 r23 = bit_or r21 r23 -82 r23 = bit_or r17 r23 -83 r23 = bit_and r19 r23 -84 r19 = bit_and r19 r23 -85 r23 = select r19 r11 r23 -86 r11 = bit_xor r9 r23 -87 r11 = bit_and r19 r11 -88 r19 = mul_f32 r10 r20 -89 r17 = mul_f32 r8 r20 -90 r20 = mul_f32 r12 r20 -91 r21 = eq_f32 r10 r19 -92 r16 = eq_f32 r8 r17 -93 r15 = eq_f32 r12 r20 -94 r16 = bit_and r21 r16 -95 r16 = bit_and r15 r16 -96 r16 = bit_and r18 r16 -97 r19 = neq_f32 r10 r19 -98 r17 = neq_f32 r8 r17 -99 r20 = neq_f32 r12 r20 -100 r17 = bit_or r19 r17 -101 r17 = bit_or r20 r17 -102 r17 = bit_or r24 r17 -103 r23 = select r11 r17 r23 -104 r11 = bit_and r11 r23 -105 r23 = select r11 r16 r23 -106 r23 = bit_xor r9 r23 -107 r23 = bit_and r11 r23 -108 r4 = select r23 r0 r4 -109 r5 = select r23 r1 r5 -110 r6 = select r23 r2 r6 -111 r7 = select r23 r3 r7 +9 r9 = div_f32 r0 r2 +10 r10 = div_f32 r2 r0 +11 r11 = mul_f32 r0 r2 +12 r8 = sub_f32 r8 r0 +13 r8 = mul_f32 r2 r8 +14 r12 = splat 42280000 (42) +15 r12 = mul_f32 r1 r12 +16 r13 = splat 422C0000 (43) +17 r13 = mul_f32 r1 r13 +18 r14 = splat 42300000 (44) +19 r14 = mul_f32 r1 r14 +20 r15 = splat 42340000 (45) +21 r15 = mul_f32 r1 r15 +22 r16 = splat 3F800000 (1) +23 r16 = add_f32 r0 r16 +24 r17 = mul_f32 r12 r16 +25 r18 = mul_f32 r8 r16 +26 r19 = mul_f32 r11 r16 +27 r20 = mul_f32 r13 r16 +28 r21 = eq_f32 r12 r17 +29 r22 = eq_f32 r8 r18 +30 r23 = eq_f32 r11 r19 +31 r24 = eq_f32 r13 r20 +32 r22 = bit_and r21 r22 +33 r22 = bit_and r23 r22 +34 r22 = bit_and r24 r22 +35 r17 = neq_f32 r12 r17 +36 r18 = neq_f32 r8 r18 +37 r19 = neq_f32 r11 r19 +38 r20 = neq_f32 r13 r20 +39 r18 = bit_or r17 r18 +40 r18 = bit_or r19 r18 +41 r18 = bit_or r20 r18 +42 r18 = bit_and r22 r18 +43 r18 = bit_clear r22 r18 +44 r22 = mul_f32 r9 r16 +45 r16 = mul_f32 r10 r16 +46 r19 = eq_f32 r9 r22 +47 r23 = eq_f32 r10 r16 +48 r19 = bit_and r21 r19 +49 r19 = bit_and r23 r19 +50 r19 = bit_and r24 r19 +51 r22 = neq_f32 r9 r22 +52 r16 = neq_f32 r10 r16 +53 r22 = bit_or r17 r22 +54 r22 = bit_or r16 r22 +55 r22 = bit_or r20 r22 +56 r22 = bit_and r18 r22 +57 r22 = bit_and r18 r22 +58 r19 = bit_and r19 r22 +59 r19 = bit_clear r22 r19 +60 r22 = splat 40000000 (2) +61 r22 = add_f32 r0 r22 +62 r18 = mul_f32 r12 r22 +63 r20 = mul_f32 r13 r22 +64 r16 = mul_f32 r14 r22 +65 r17 = mul_f32 r15 r22 +66 r10 = eq_f32 r12 r18 +67 r24 = eq_f32 r13 r20 +68 r23 = eq_f32 r14 r16 +69 r21 = eq_f32 r15 r17 +70 r24 = bit_and r10 r24 +71 r24 = bit_and r23 r24 +72 r24 = bit_and r21 r24 +73 r18 = neq_f32 r12 r18 +74 r20 = neq_f32 r13 r20 +75 r16 = neq_f32 r14 r16 +76 r17 = neq_f32 r15 r17 +77 r20 = bit_or r18 r20 +78 r20 = bit_or r16 r20 +79 r20 = bit_or r17 r20 +80 r20 = bit_and r19 r20 +81 r20 = bit_and r19 r20 +82 r24 = bit_and r24 r20 +83 r24 = bit_clear r20 r24 +84 r20 = mul_f32 r9 r22 +85 r19 = mul_f32 r8 r22 +86 r22 = mul_f32 r11 r22 +87 r17 = eq_f32 r9 r20 +88 r16 = eq_f32 r8 r19 +89 r15 = eq_f32 r11 r22 +90 r16 = bit_and r17 r16 +91 r16 = bit_and r15 r16 +92 r16 = bit_and r10 r16 +93 r20 = neq_f32 r9 r20 +94 r19 = neq_f32 r8 r19 +95 r22 = neq_f32 r11 r22 +96 r19 = bit_or r20 r19 +97 r19 = bit_or r22 r19 +98 r19 = bit_or r18 r19 +99 r19 = bit_and r24 r19 +100 r19 = bit_and r24 r19 +101 r16 = bit_and r16 r19 +102 r16 = bit_clear r19 r16 +103 r4 = select r16 r0 r4 +104 r5 = select r16 r1 r5 +105 r6 = select r16 r2 r6 +106 r7 = select r16 r3 r7 loop: -112 store32 ptr1 r4 -113 store32 ptr2 r5 -114 store32 ptr3 r6 -115 store32 ptr4 r7 +107 store32 ptr1 r4 +108 store32 ptr2 r5 +109 store32 ptr3 r6 +110 store32 ptr4 r7 diff --git a/third_party/skia/tests/sksl/runtime/Switch.skvm b/third_party/skia/tests/sksl/runtime/Switch.skvm index 0c23874c0bd0..63d54d00e39f 100644 --- a/third_party/skia/tests/sksl/runtime/Switch.skvm +++ b/third_party/skia/tests/sksl/runtime/Switch.skvm @@ -1,4 +1,4 @@ -17 registers, 36 instructions: +16 registers, 33 instructions: 0 r0 = uniform32 ptr0 4 1 r1 = uniform32 ptr0 8 2 r2 = uniform32 ptr0 C @@ -10,29 +10,26 @@ 8 r8 = splat 0 (0) 9 r9 = splat FFFFFFFF (nan) 10 r10 = trunc r1 -11 r8 = eq_i32 r8 r10 +11 r8 = eq_i32 r10 r8 12 r11 = bit_and r4 r8 13 r12 = bit_and r5 r8 14 r13 = bit_and r6 r8 15 r14 = bit_and r7 r8 -16 r15 = bit_xor r9 r8 -17 r8 = bit_and r8 r15 -18 r16 = splat 1 (1.4012985e-45) -19 r16 = eq_i32 r10 r16 -20 r16 = bit_or r8 r16 -21 r16 = bit_and r15 r16 -22 r11 = select r16 r0 r11 -23 r12 = select r16 r1 r12 -24 r13 = select r16 r2 r13 -25 r14 = select r16 r3 r14 -26 r16 = bit_xor r9 r16 -27 r16 = bit_and r15 r16 -28 r11 = select r16 r4 r11 -29 r12 = select r16 r5 r12 -30 r13 = select r16 r6 r13 -31 r14 = select r16 r7 r14 +16 r15 = splat 1 (1.4012985e-45) +17 r15 = eq_i32 r10 r15 +18 r15 = bit_clear r15 r8 +19 r11 = select r15 r0 r11 +20 r12 = select r15 r1 r12 +21 r13 = select r15 r2 r13 +22 r14 = select r15 r3 r14 +23 r9 = bit_xor r15 r9 +24 r8 = bit_clear r9 r8 +25 r11 = select r8 r4 r11 +26 r12 = select r8 r5 r12 +27 r13 = select r8 r6 r13 +28 r14 = select r8 r7 r14 loop: -32 store32 ptr1 r11 -33 store32 ptr2 r12 -34 store32 ptr3 r13 -35 store32 ptr4 r14 +29 store32 ptr1 r11 +30 store32 ptr2 r12 +31 store32 ptr3 r13 +32 store32 ptr4 r14 diff --git a/third_party/skia/tests/sksl/runtime/SwitchWithFallthrough.skvm b/third_party/skia/tests/sksl/runtime/SwitchWithFallthrough.skvm index 51bc51891990..6968f5a9bacc 100644 --- a/third_party/skia/tests/sksl/runtime/SwitchWithFallthrough.skvm +++ b/third_party/skia/tests/sksl/runtime/SwitchWithFallthrough.skvm @@ -1,4 +1,4 @@ -16 registers, 49 instructions: +14 registers, 41 instructions: 0 r0 = uniform32 ptr0 4 1 r1 = uniform32 ptr0 8 2 r2 = uniform32 ptr0 C @@ -12,40 +12,32 @@ 10 r10 = trunc r1 11 r11 = splat 2 (2.8025969e-45) 12 r11 = eq_i32 r10 r11 -13 r12 = bit_xor r9 r11 -14 r13 = bit_and r11 r12 -15 r14 = splat 1 (1.4012985e-45) -16 r14 = eq_i32 r10 r14 -17 r15 = bit_or r13 r14 -18 r15 = bit_and r12 r15 -19 r13 = select r15 r9 r13 -20 r8 = eq_i32 r8 r10 -21 r13 = bit_or r13 r8 -22 r13 = bit_and r12 r13 -23 r8 = bit_and r8 r13 -24 r12 = bit_xor r9 r8 -25 r8 = bit_and r8 r12 -26 r14 = bit_or r14 r8 -27 r14 = bit_and r13 r14 -28 r14 = bit_and r12 r14 -29 r8 = select r14 r9 r8 -30 r11 = bit_or r11 r8 -31 r11 = bit_and r13 r11 -32 r11 = bit_and r12 r11 -33 r8 = select r11 r9 r8 -34 r9 = splat 3 (4.2038954e-45) -35 r9 = eq_i32 r10 r9 -36 r9 = bit_or r8 r9 -37 r9 = bit_and r13 r9 -38 r9 = bit_and r12 r9 -39 r9 = bit_and r13 r9 -40 r9 = bit_and r13 r9 -41 r4 = select r9 r0 r4 -42 r5 = select r9 r1 r5 -43 r6 = select r9 r2 r6 -44 r7 = select r9 r3 r7 +13 r12 = splat 1 (1.4012985e-45) +14 r12 = eq_i32 r10 r12 +15 r13 = bit_clear r12 r11 +16 r8 = eq_i32 r10 r8 +17 r13 = bit_or r13 r8 +18 r13 = bit_clear r13 r11 +19 r8 = bit_and r8 r13 +20 r12 = bit_and r12 r13 +21 r12 = bit_clear r12 r8 +22 r11 = bit_or r11 r12 +23 r11 = bit_and r13 r11 +24 r11 = bit_clear r11 r8 +25 r12 = select r11 r9 r12 +26 r9 = splat 3 (4.2038954e-45) +27 r9 = eq_i32 r10 r9 +28 r9 = bit_or r12 r9 +29 r9 = bit_and r13 r9 +30 r8 = bit_clear r9 r8 +31 r8 = bit_and r13 r8 +32 r8 = bit_and r13 r8 +33 r4 = select r8 r0 r4 +34 r5 = select r8 r1 r5 +35 r6 = select r8 r2 r6 +36 r7 = select r8 r3 r7 loop: -45 store32 ptr1 r4 -46 store32 ptr2 r5 -47 store32 ptr3 r6 -48 store32 ptr4 r7 +37 store32 ptr1 r4 +38 store32 ptr2 r5 +39 store32 ptr3 r6 +40 store32 ptr4 r7 diff --git a/third_party/skia/tests/sksl/runtime/SwitchWithLoops.skvm b/third_party/skia/tests/sksl/runtime/SwitchWithLoops.skvm index a5c630a00e60..01ce41092fb3 100644 --- a/third_party/skia/tests/sksl/runtime/SwitchWithLoops.skvm +++ b/third_party/skia/tests/sksl/runtime/SwitchWithLoops.skvm @@ -1,4 +1,4 @@ -18 registers, 295 instructions: +17 registers, 196 instructions: 0 r0 = uniform32 ptr0 4 1 r1 = uniform32 ptr0 8 2 r2 = uniform32 ptr0 C @@ -11,287 +11,188 @@ 9 r9 = trunc r1 10 r10 = splat 1 (1.4012985e-45) 11 r9 = eq_i32 r9 r10 -12 r11 = bit_and r10 r9 -13 r12 = bit_xor r8 r9 -14 r13 = add_i32 r10 r11 -15 r14 = bit_and r9 r12 -16 r11 = select r14 r13 r11 -17 r13 = add_i32 r10 r11 -18 r11 = select r14 r13 r11 -19 r14 = bit_xor r8 r14 -20 r14 = bit_and r12 r14 -21 r12 = add_i32 r10 r11 -22 r13 = bit_and r9 r14 -23 r11 = select r13 r12 r11 -24 r12 = splat 2 (2.8025969e-45) -25 r15 = add_i32 r10 r11 -26 r11 = select r13 r15 r11 -27 r13 = bit_xor r8 r13 -28 r13 = bit_and r14 r13 -29 r14 = add_i32 r10 r11 -30 r15 = bit_and r9 r13 -31 r11 = select r15 r14 r11 -32 r14 = add_i32 r10 r11 -33 r11 = select r15 r14 r11 -34 r15 = bit_xor r8 r15 -35 r15 = bit_and r13 r15 -36 r13 = add_i32 r10 r11 -37 r14 = bit_and r9 r15 -38 r11 = select r14 r13 r11 -39 r13 = add_i32 r10 r11 -40 r11 = select r14 r13 r11 -41 r14 = bit_xor r8 r14 -42 r14 = bit_and r15 r14 -43 r15 = add_i32 r10 r11 -44 r13 = bit_and r9 r14 -45 r11 = select r13 r15 r11 -46 r15 = add_i32 r10 r11 -47 r11 = select r13 r15 r11 -48 r13 = bit_xor r8 r13 -49 r13 = bit_and r14 r13 -50 r14 = add_i32 r10 r11 -51 r15 = bit_and r9 r13 -52 r11 = select r15 r14 r11 -53 r14 = add_i32 r10 r11 -54 r11 = select r15 r14 r11 -55 r15 = bit_xor r8 r15 -56 r15 = bit_and r13 r15 -57 r13 = add_i32 r10 r11 -58 r14 = bit_and r9 r15 -59 r11 = select r14 r13 r11 -60 r13 = add_i32 r10 r11 -61 r11 = select r14 r13 r11 -62 r14 = bit_xor r8 r14 -63 r14 = bit_and r15 r14 -64 r15 = add_i32 r10 r11 -65 r13 = bit_and r9 r14 -66 r11 = select r13 r15 r11 -67 r15 = add_i32 r10 r11 -68 r11 = select r13 r15 r11 -69 r13 = bit_xor r8 r13 -70 r13 = bit_and r14 r13 -71 r14 = add_i32 r10 r11 -72 r15 = bit_and r9 r13 -73 r11 = select r15 r14 r11 -74 r14 = add_i32 r10 r11 -75 r11 = select r15 r14 r11 -76 r15 = bit_xor r8 r15 -77 r15 = bit_and r13 r15 -78 r13 = add_i32 r10 r11 -79 r15 = bit_and r9 r15 -80 r11 = select r15 r13 r11 -81 r11 = add_i32 r10 r11 -82 r11 = eq_i32 r12 r11 -83 r12 = bit_and r9 r11 -84 r13 = bit_and r10 r12 -85 r15 = bit_xor r8 r12 -86 r14 = add_i32 r10 r13 -87 r16 = bit_and r12 r15 -88 r13 = select r16 r14 r13 -89 r15 = bit_or r12 r15 -90 r14 = bit_and r12 r15 -91 r16 = add_i32 r10 r13 -92 r13 = select r14 r16 r13 -93 r16 = bit_xor r8 r14 -94 r16 = bit_and r15 r16 -95 r15 = add_i32 r10 r13 -96 r17 = bit_and r12 r16 -97 r13 = select r17 r15 r13 -98 r16 = bit_or r14 r16 -99 r14 = bit_and r12 r16 -100 r15 = add_i32 r10 r13 -101 r13 = select r14 r15 r13 -102 r15 = bit_xor r8 r14 -103 r15 = bit_and r16 r15 -104 r16 = add_i32 r10 r13 -105 r17 = bit_and r12 r15 -106 r13 = select r17 r16 r13 -107 r15 = bit_or r14 r15 -108 r14 = bit_and r12 r15 -109 r16 = add_i32 r10 r13 -110 r13 = select r14 r16 r13 -111 r16 = bit_xor r8 r14 -112 r16 = bit_and r15 r16 -113 r15 = add_i32 r10 r13 -114 r17 = bit_and r12 r16 -115 r13 = select r17 r15 r13 -116 r16 = bit_or r14 r16 -117 r14 = bit_and r12 r16 -118 r15 = add_i32 r10 r13 -119 r13 = select r14 r15 r13 -120 r15 = bit_xor r8 r14 -121 r15 = bit_and r16 r15 -122 r16 = add_i32 r10 r13 -123 r17 = bit_and r12 r15 -124 r13 = select r17 r16 r13 -125 r15 = bit_or r14 r15 -126 r14 = bit_and r12 r15 -127 r16 = add_i32 r10 r13 -128 r13 = select r14 r16 r13 -129 r16 = bit_xor r8 r14 -130 r16 = bit_and r15 r16 -131 r15 = add_i32 r10 r13 -132 r17 = bit_and r12 r16 -133 r13 = select r17 r15 r13 -134 r16 = bit_or r14 r16 -135 r14 = bit_and r12 r16 -136 r15 = add_i32 r10 r13 -137 r13 = select r14 r15 r13 -138 r15 = bit_xor r8 r14 -139 r15 = bit_and r16 r15 -140 r16 = add_i32 r10 r13 -141 r17 = bit_and r12 r15 -142 r13 = select r17 r16 r13 -143 r15 = bit_or r14 r15 -144 r14 = bit_and r12 r15 -145 r16 = add_i32 r10 r13 -146 r13 = select r14 r16 r13 -147 r16 = bit_xor r8 r14 -148 r16 = bit_and r15 r16 -149 r15 = add_i32 r10 r13 -150 r17 = bit_and r12 r16 -151 r13 = select r17 r15 r13 -152 r16 = bit_or r14 r16 -153 r14 = bit_and r12 r16 -154 r15 = add_i32 r10 r13 -155 r13 = select r14 r15 r13 -156 r15 = bit_xor r8 r14 -157 r15 = bit_and r16 r15 -158 r16 = add_i32 r10 r13 -159 r17 = bit_and r12 r15 -160 r13 = select r17 r16 r13 -161 r15 = bit_or r14 r15 -162 r14 = bit_and r12 r15 -163 r16 = add_i32 r10 r13 -164 r13 = select r14 r16 r13 -165 r14 = bit_xor r8 r14 -166 r14 = bit_and r15 r14 -167 r15 = add_i32 r10 r13 -168 r14 = bit_and r12 r14 -169 r13 = select r14 r15 r13 -170 r15 = add_i32 r10 r13 -171 r13 = select r11 r15 r13 -172 r15 = splat B (1.5414283e-44) -173 r15 = eq_i32 r13 r15 -174 r15 = bit_and r11 r15 -175 r15 = bit_and r11 r15 -176 r9 = bit_and r9 r15 -177 r11 = bit_and r10 r9 -178 r13 = bit_xor r8 r9 -179 r13 = bit_and r15 r13 -180 r14 = add_i32 r10 r11 -181 r12 = bit_xor r8 r13 -182 r16 = bit_and r15 r12 -183 r11 = select r16 r14 r11 -184 r14 = bit_and r9 r12 -185 r16 = add_i32 r10 r11 -186 r11 = select r14 r16 r11 -187 r14 = bit_xor r8 r14 -188 r14 = bit_and r15 r14 -189 r14 = bit_and r12 r14 -190 r14 = bit_or r13 r14 -191 r13 = add_i32 r10 r11 -192 r12 = bit_xor r8 r14 -193 r16 = bit_and r15 r12 -194 r11 = select r16 r13 r11 -195 r13 = bit_and r9 r12 -196 r16 = add_i32 r10 r11 -197 r11 = select r13 r16 r11 -198 r13 = bit_xor r8 r13 -199 r13 = bit_and r15 r13 -200 r13 = bit_and r12 r13 -201 r13 = bit_or r14 r13 -202 r14 = add_i32 r10 r11 -203 r12 = bit_xor r8 r13 -204 r16 = bit_and r15 r12 -205 r11 = select r16 r14 r11 -206 r14 = bit_and r9 r12 -207 r16 = add_i32 r10 r11 -208 r11 = select r14 r16 r11 -209 r14 = bit_xor r8 r14 -210 r14 = bit_and r15 r14 -211 r14 = bit_and r12 r14 -212 r14 = bit_or r13 r14 -213 r13 = add_i32 r10 r11 -214 r12 = bit_xor r8 r14 -215 r16 = bit_and r15 r12 -216 r11 = select r16 r13 r11 -217 r13 = bit_and r9 r12 -218 r16 = add_i32 r10 r11 -219 r11 = select r13 r16 r11 -220 r13 = bit_xor r8 r13 -221 r13 = bit_and r15 r13 -222 r13 = bit_and r12 r13 -223 r13 = bit_or r14 r13 -224 r14 = add_i32 r10 r11 -225 r12 = bit_xor r8 r13 -226 r16 = bit_and r15 r12 -227 r11 = select r16 r14 r11 -228 r14 = bit_and r9 r12 -229 r16 = add_i32 r10 r11 -230 r11 = select r14 r16 r11 -231 r14 = bit_xor r8 r14 -232 r14 = bit_and r15 r14 -233 r14 = bit_and r12 r14 -234 r14 = bit_or r13 r14 -235 r13 = add_i32 r10 r11 -236 r12 = bit_xor r8 r14 -237 r16 = bit_and r15 r12 -238 r11 = select r16 r13 r11 -239 r13 = bit_and r9 r12 -240 r16 = add_i32 r10 r11 -241 r11 = select r13 r16 r11 -242 r13 = bit_xor r8 r13 -243 r13 = bit_and r15 r13 -244 r13 = bit_and r12 r13 -245 r13 = bit_or r14 r13 -246 r14 = add_i32 r10 r11 -247 r12 = bit_xor r8 r13 -248 r16 = bit_and r15 r12 -249 r11 = select r16 r14 r11 -250 r14 = bit_and r9 r12 -251 r16 = add_i32 r10 r11 -252 r11 = select r14 r16 r11 -253 r14 = bit_xor r8 r14 -254 r14 = bit_and r15 r14 -255 r14 = bit_and r12 r14 -256 r14 = bit_or r13 r14 -257 r13 = add_i32 r10 r11 -258 r12 = bit_xor r8 r14 -259 r16 = bit_and r15 r12 -260 r11 = select r16 r13 r11 -261 r13 = bit_and r9 r12 -262 r16 = add_i32 r10 r11 -263 r11 = select r13 r16 r11 -264 r13 = bit_xor r8 r13 -265 r13 = bit_and r15 r13 -266 r13 = bit_and r12 r13 -267 r13 = bit_or r14 r13 -268 r14 = add_i32 r10 r11 -269 r12 = bit_xor r8 r13 -270 r16 = bit_and r15 r12 -271 r11 = select r16 r14 r11 -272 r9 = bit_and r9 r12 -273 r14 = add_i32 r10 r11 -274 r11 = select r9 r14 r11 -275 r9 = bit_xor r8 r9 -276 r9 = bit_and r15 r9 -277 r9 = bit_and r12 r9 -278 r9 = bit_or r13 r9 -279 r10 = add_i32 r10 r11 -280 r9 = bit_xor r8 r9 -281 r9 = bit_and r15 r9 -282 r11 = select r9 r10 r11 -283 r10 = splat 14 (2.8025969e-44) -284 r10 = eq_i32 r11 r10 -285 r10 = bit_and r9 r10 -286 r10 = bit_and r15 r10 -287 r4 = select r10 r0 r4 -288 r5 = select r10 r1 r5 -289 r6 = select r10 r2 r6 -290 r7 = select r10 r3 r7 +12 r11 = bit_and r9 r10 +13 r11 = add_i32 r11 r10 +14 r12 = splat 2 (2.8025969e-45) +15 r12 = eq_i32 r11 r12 +16 r11 = bit_and r9 r12 +17 r13 = bit_and r11 r10 +18 r8 = bit_xor r11 r8 +19 r14 = add_i32 r13 r10 +20 r8 = bit_or r11 r8 +21 r15 = bit_and r11 r8 +22 r13 = select r15 r14 r13 +23 r8 = bit_clear r8 r15 +24 r14 = add_i32 r13 r10 +25 r16 = bit_and r11 r8 +26 r13 = select r16 r14 r13 +27 r8 = bit_or r15 r8 +28 r15 = bit_and r11 r8 +29 r14 = add_i32 r13 r10 +30 r13 = select r15 r14 r13 +31 r8 = bit_clear r8 r15 +32 r14 = add_i32 r13 r10 +33 r16 = bit_and r11 r8 +34 r13 = select r16 r14 r13 +35 r8 = bit_or r15 r8 +36 r15 = bit_and r11 r8 +37 r14 = add_i32 r13 r10 +38 r13 = select r15 r14 r13 +39 r8 = bit_clear r8 r15 +40 r14 = add_i32 r13 r10 +41 r16 = bit_and r11 r8 +42 r13 = select r16 r14 r13 +43 r8 = bit_or r15 r8 +44 r15 = bit_and r11 r8 +45 r14 = add_i32 r13 r10 +46 r13 = select r15 r14 r13 +47 r8 = bit_clear r8 r15 +48 r14 = add_i32 r13 r10 +49 r16 = bit_and r11 r8 +50 r13 = select r16 r14 r13 +51 r8 = bit_or r15 r8 +52 r15 = bit_and r11 r8 +53 r14 = add_i32 r13 r10 +54 r13 = select r15 r14 r13 +55 r8 = bit_clear r8 r15 +56 r14 = add_i32 r13 r10 +57 r16 = bit_and r11 r8 +58 r13 = select r16 r14 r13 +59 r8 = bit_or r15 r8 +60 r15 = bit_and r11 r8 +61 r14 = add_i32 r13 r10 +62 r13 = select r15 r14 r13 +63 r8 = bit_clear r8 r15 +64 r14 = add_i32 r13 r10 +65 r16 = bit_and r11 r8 +66 r13 = select r16 r14 r13 +67 r8 = bit_or r15 r8 +68 r15 = bit_and r11 r8 +69 r14 = add_i32 r13 r10 +70 r13 = select r15 r14 r13 +71 r8 = bit_clear r8 r15 +72 r14 = add_i32 r13 r10 +73 r16 = bit_and r11 r8 +74 r13 = select r16 r14 r13 +75 r8 = bit_or r15 r8 +76 r15 = bit_and r11 r8 +77 r14 = add_i32 r13 r10 +78 r13 = select r15 r14 r13 +79 r8 = bit_clear r8 r15 +80 r14 = add_i32 r13 r10 +81 r16 = bit_and r11 r8 +82 r13 = select r16 r14 r13 +83 r8 = bit_or r15 r8 +84 r15 = bit_and r11 r8 +85 r14 = add_i32 r13 r10 +86 r13 = select r15 r14 r13 +87 r15 = bit_clear r8 r15 +88 r8 = add_i32 r13 r10 +89 r15 = bit_and r11 r15 +90 r13 = select r15 r8 r13 +91 r8 = add_i32 r13 r10 +92 r13 = select r12 r8 r13 +93 r8 = splat B (1.5414283e-44) +94 r8 = eq_i32 r13 r8 +95 r8 = bit_and r12 r8 +96 r8 = bit_and r12 r8 +97 r9 = bit_and r9 r8 +98 r12 = bit_and r9 r10 +99 r13 = bit_clear r8 r9 +100 r15 = add_i32 r12 r10 +101 r11 = bit_clear r8 r13 +102 r12 = select r11 r15 r12 +103 r15 = bit_clear r9 r13 +104 r11 = add_i32 r12 r10 +105 r12 = select r15 r11 r12 +106 r15 = bit_clear r8 r15 +107 r15 = bit_clear r15 r13 +108 r15 = bit_or r13 r15 +109 r13 = add_i32 r12 r10 +110 r11 = bit_clear r8 r15 +111 r12 = select r11 r13 r12 +112 r13 = bit_clear r9 r15 +113 r11 = add_i32 r12 r10 +114 r12 = select r13 r11 r12 +115 r13 = bit_clear r8 r13 +116 r13 = bit_clear r13 r15 +117 r13 = bit_or r15 r13 +118 r15 = add_i32 r12 r10 +119 r11 = bit_clear r8 r13 +120 r12 = select r11 r15 r12 +121 r15 = bit_clear r9 r13 +122 r11 = add_i32 r12 r10 +123 r12 = select r15 r11 r12 +124 r15 = bit_clear r8 r15 +125 r15 = bit_clear r15 r13 +126 r15 = bit_or r13 r15 +127 r13 = add_i32 r12 r10 +128 r11 = bit_clear r8 r15 +129 r12 = select r11 r13 r12 +130 r13 = bit_clear r9 r15 +131 r11 = add_i32 r12 r10 +132 r12 = select r13 r11 r12 +133 r13 = bit_clear r8 r13 +134 r13 = bit_clear r13 r15 +135 r13 = bit_or r15 r13 +136 r15 = add_i32 r12 r10 +137 r11 = bit_clear r8 r13 +138 r12 = select r11 r15 r12 +139 r15 = bit_clear r9 r13 +140 r11 = add_i32 r12 r10 +141 r12 = select r15 r11 r12 +142 r15 = bit_clear r8 r15 +143 r15 = bit_clear r15 r13 +144 r15 = bit_or r13 r15 +145 r13 = add_i32 r12 r10 +146 r11 = bit_clear r8 r15 +147 r12 = select r11 r13 r12 +148 r13 = bit_clear r9 r15 +149 r11 = add_i32 r12 r10 +150 r12 = select r13 r11 r12 +151 r13 = bit_clear r8 r13 +152 r13 = bit_clear r13 r15 +153 r13 = bit_or r15 r13 +154 r15 = add_i32 r12 r10 +155 r11 = bit_clear r8 r13 +156 r12 = select r11 r15 r12 +157 r15 = bit_clear r9 r13 +158 r11 = add_i32 r12 r10 +159 r12 = select r15 r11 r12 +160 r15 = bit_clear r8 r15 +161 r15 = bit_clear r15 r13 +162 r15 = bit_or r13 r15 +163 r13 = add_i32 r12 r10 +164 r11 = bit_clear r8 r15 +165 r12 = select r11 r13 r12 +166 r13 = bit_clear r9 r15 +167 r11 = add_i32 r12 r10 +168 r12 = select r13 r11 r12 +169 r13 = bit_clear r8 r13 +170 r13 = bit_clear r13 r15 +171 r13 = bit_or r15 r13 +172 r15 = add_i32 r12 r10 +173 r11 = bit_clear r8 r13 +174 r12 = select r11 r15 r12 +175 r9 = bit_clear r9 r13 +176 r15 = add_i32 r12 r10 +177 r12 = select r9 r15 r12 +178 r9 = bit_clear r8 r9 +179 r9 = bit_clear r9 r13 +180 r9 = bit_or r13 r9 +181 r10 = add_i32 r12 r10 +182 r9 = bit_clear r8 r9 +183 r12 = select r9 r10 r12 +184 r10 = splat 14 (2.8025969e-44) +185 r10 = eq_i32 r12 r10 +186 r10 = bit_and r9 r10 +187 r10 = bit_and r8 r10 +188 r4 = select r10 r0 r4 +189 r5 = select r10 r1 r5 +190 r6 = select r10 r2 r6 +191 r7 = select r10 r3 r7 loop: -291 store32 ptr1 r4 -292 store32 ptr2 r5 -293 store32 ptr3 r6 -294 store32 ptr4 r7 +192 store32 ptr1 r4 +193 store32 ptr2 r5 +194 store32 ptr3 r6 +195 store32 ptr4 r7 diff --git a/third_party/skia/tests/sksl/runtime_errors/DerivativesES2.skvm b/third_party/skia/tests/sksl/runtime_errors/DerivativesES2.skvm index d1b39eccda55..34489ab12b49 100644 --- a/third_party/skia/tests/sksl/runtime_errors/DerivativesES2.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/DerivativesES2.skvm @@ -1,5 +1,9 @@ ### Compilation failed: error: 1: no match for dFdx(float2) +float2 dx(float2 coords) { return dFdx(coords); } + ^^^^^^^^^^^^ error: 2: no match for dFdy(float2) +float2 dy(float2 coords) { return dFdy(coords); } + ^^^^^^^^^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/ES3Types.skvm b/third_party/skia/tests/sksl/runtime_errors/ES3Types.skvm index dc69504bdae6..29df84028b9c 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ES3Types.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ES3Types.skvm @@ -1,39 +1,111 @@ ### Compilation failed: error: 1: type 'float2x3' is not supported +void f23() { float2x3 x; } + ^^^^^^^^ error: 2: type 'float2x4' is not supported +void f24() { float2x4 x; } + ^^^^^^^^ error: 3: type 'float3x2' is not supported +void f32() { float3x2 x; } + ^^^^^^^^ error: 4: type 'float3x4' is not supported +void f34() { float3x4 x; } + ^^^^^^^^ error: 5: type 'float4x2' is not supported +void f42() { float4x2 x; } + ^^^^^^^^ error: 6: type 'float4x3' is not supported +void f43() { float4x3 x; } + ^^^^^^^^ error: 8: type 'half2x3' is not supported +void h23() { half2x3 x; } + ^^^^^^^ error: 9: type 'half2x4' is not supported +void h24() { half2x4 x; } + ^^^^^^^ error: 10: type 'half3x2' is not supported +void h32() { half3x2 x; } + ^^^^^^^ error: 11: type 'half3x4' is not supported +void h34() { half3x4 x; } + ^^^^^^^ error: 12: type 'half4x2' is not supported +void h42() { half4x2 x; } + ^^^^^^^ error: 13: type 'half4x3' is not supported +void h43() { half4x3 x; } + ^^^^^^^ error: 15: type 'uint' is not supported +void u() { uint x; } + ^^^^ error: 16: type 'uint2' is not supported +void u2() { uint2 x; } + ^^^^^ error: 17: type 'uint3' is not supported +void u3() { uint3 x; } + ^^^^^ error: 18: type 'uint4' is not supported +void u4() { uint4 x; } + ^^^^^ error: 20: type 'ushort' is not supported +void us() { ushort x; } + ^^^^^^ error: 21: type 'ushort2' is not supported +void us2() { ushort2 x; } + ^^^^^^^ error: 22: type 'ushort3' is not supported +void us3() { ushort3 x; } + ^^^^^^^ error: 23: type 'ushort4' is not supported +void us4() { ushort4 x; } + ^^^^^^^ error: 25: type 'uint4' is not supported +void au4() { uint4 x[2]; } + ^^^^^ error: 26: type 'ushort' is not supported +void aus() { ushort x[2]; } + ^^^^^^ error: 27: type 'float2x3' is not supported +void af23() { float2x3 x[2]; } + ^^^^^^^^ error: 29: type 'half4x2' is not supported +struct Sh42 { half4x2 x; }; + ^^^^^^^ error: 30: type 'ushort' is not supported +struct Sus { ushort x; }; + ^^^^^^ error: 31: type 'uint' is not supported +struct Sau { uint x[2]; }; + ^^^^ error: 33: type 'float2x3' is not supported +void ctor_f23() { float2x3(0); } + ^^^^^^^^ error: 34: type 'half4x2' is not supported +void ctor_h42() { half4x2(0); } + ^^^^^^^ error: 35: type 'uint' is not supported +void ctor_u() { uint(0); } + ^^^^ error: 36: type 'ushort4' is not supported +void ctor_us4() { ushort4(0); } + ^^^^^^^ error: 37: type 'ushort' is not supported +void ctor_aus() { ushort[2](0, 0); } + ^^^^^^ error: 39: type 'float2x3' is not supported +void access_f23() { float2x3 var; var[0][0]; } + ^^^^^^^^ error: 40: type 'half4x2' is not supported +void access_h42() { half4x2 var; var[0][0]; } + ^^^^^^^ error: 41: type 'uint' is not supported +void access_u() { uint var; var.x; } + ^^^^ error: 42: type 'ushort4' is not supported +void access_us4() { ushort4 var; var.x; } + ^^^^^^^ error: 43: type 'ushort' is not supported +void access_aus() { ushort var[2]; var[0].x; } + ^^^^^^ 36 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/FirstClassArrays.skvm b/third_party/skia/tests/sksl/runtime_errors/FirstClassArrays.skvm index 112163c008bf..f117a0b55f71 100644 --- a/third_party/skia/tests/sksl/runtime_errors/FirstClassArrays.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/FirstClassArrays.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 8: construction of array type 'float[3]' is not supported +void array_ctor() { float[3](1, 2, 3); } + ^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/IllegalArrayOps.skvm b/third_party/skia/tests/sksl/runtime_errors/IllegalArrayOps.skvm index 642debdb730d..062afd8c28d4 100644 --- a/third_party/skia/tests/sksl/runtime_errors/IllegalArrayOps.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/IllegalArrayOps.skvm @@ -1,20 +1,54 @@ ### Compilation failed: error: 16: operator '=' can not operate on arrays (or structs containing arrays) +void assign_A() { a1 = a2; } + ^^^^^^^ error: 17: operator '=' can not operate on arrays (or structs containing arrays) +void assign_S() { s1 = s2; } + ^^^^^^^ error: 18: operator '=' can not operate on arrays (or structs containing arrays) +void assign_T() { t1 = t2; } + ^^^^^^^ error: 21: functions may not return structs containing arrays +S return_S() { return s1; } +^^^^^^^^^^^^ error: 22: functions may not return structs containing arrays +T return_T() { return t1; } +^^^^^^^^^^^^ error: 24: operator '==' can not operate on arrays (or structs containing arrays) +bool equals_A() { return a1 == a2; } + ^^^^^^^^ error: 25: operator '==' can not operate on arrays (or structs containing arrays) +bool equals_S() { return s1 == s2; } + ^^^^^^^^ error: 26: operator '==' can not operate on arrays (or structs containing arrays) +bool equals_T() { return t1 == t2; } + ^^^^^^^^ error: 28: operator '!=' can not operate on arrays (or structs containing arrays) +bool notequals_A() { return a1 != a2; } + ^^^^^^^^ error: 29: operator '!=' can not operate on arrays (or structs containing arrays) +bool notequals_S() { return s1 != s2; } + ^^^^^^^^ error: 30: operator '!=' can not operate on arrays (or structs containing arrays) +bool notequals_T() { return t1 != t2; } + ^^^^^^^^ error: 32: operator ',' can not operate on arrays (or structs containing arrays) +void sequence_A() { a1, a2; } + ^^^^^^ error: 33: operator ',' can not operate on arrays (or structs containing arrays) +void sequence_S() { s1, s2; } + ^^^^^^ error: 34: operator ',' can not operate on arrays (or structs containing arrays) +void sequence_T() { t1, t2; } + ^^^^^^ error: 36: ternary operator result may not be an array (or struct containing an array) +int ternary_A(bool b) { return (b ? a1 : a2) [0]; } + ^^^^^^^^^^^ error: 37: ternary operator result may not be an array (or struct containing an array) +int ternary_S(bool b) { return (b ? s1 : s2) .x[0]; } + ^^^^^^^^^^^ error: 38: ternary operator result may not be an array (or struct containing an array) +int ternary_T(bool b) { return (b ? t1 : t2).s.x[0]; } + ^^^^^^^^^^^ 17 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/IllegalIndexing.skvm b/third_party/skia/tests/sksl/runtime_errors/IllegalIndexing.skvm index 5fc877667255..ba39ad2df554 100644 --- a/third_party/skia/tests/sksl/runtime_errors/IllegalIndexing.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/IllegalIndexing.skvm @@ -1,5 +1,9 @@ ### Compilation failed: error: 23: index expression must be constant +void uniform_index() { int a[2]; a[u] = 0; } + ^^^^ error: 24: index expression must be constant +void param_index(int p) { int a[2]; a[p] = 0; } + ^^^^ 2 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/IllegalOperators.skvm b/third_party/skia/tests/sksl/runtime_errors/IllegalOperators.skvm index 44c383c44621..ceefd844a4ec 100644 --- a/third_party/skia/tests/sksl/runtime_errors/IllegalOperators.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/IllegalOperators.skvm @@ -1,16 +1,42 @@ ### Compilation failed: error: 1: operator '~' is not allowed +int bit_not(int x) { return ~x; } + ^^ error: 3: operator '%' is not allowed +int remainder(int x) { return x % 2; } + ^^^^^^ error: 4: operator '%=' is not allowed +int remainder_eq(int x) { return x %= 2;} + ^^^^^^ error: 6: operator '<<' is not allowed +int shl (int x) { return x << 1; } + ^^^^^^^ error: 7: operator '<<=' is not allowed +int shl_eq(int x) { return x <<= 1; } + ^^^^^^^ error: 8: operator '>>' is not allowed +int shr (int x) { return x >> 1; } + ^^^^^^^ error: 9: operator '>>=' is not allowed +int shr_eq(int x) { return x >>= 1; } + ^^^^^^^ error: 11: operator '&' is not allowed +int bit_and (int x) { return x & 1; } + ^^^^^^ error: 12: operator '&=' is not allowed +int bit_and_eq(int x) { return x &= 1; } + ^^^^^^ error: 13: operator '|' is not allowed +int bit_or (int x) { return x | 1; } + ^^^^^^ error: 14: operator '|=' is not allowed +int bit_or_eq (int x) { return x |= 1; } + ^^^^^^ error: 15: operator '^' is not allowed +int bit_xor (int x) { return x ^ 1; } + ^^^^^^ error: 16: operator '^=' is not allowed +int bit_xor_eq(int x) { return x ^= 1; } + ^^^^^^ 13 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/IllegalPrecisionQualifiers.skvm b/third_party/skia/tests/sksl/runtime_errors/IllegalPrecisionQualifiers.skvm index 38c01cf79768..2c45991a1f36 100644 --- a/third_party/skia/tests/sksl/runtime_errors/IllegalPrecisionQualifiers.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/IllegalPrecisionQualifiers.skvm @@ -1,13 +1,33 @@ ### Compilation failed: error: 5: only one precision qualifier can be used +mediump highp int no_multiple_qualifiers; +^^^^^^^^^^^^^ error: 6: only one precision qualifier can be used +mediump lowp int no_multiple_qualifiers_2; +^^^^^^^^^^^^ error: 7: only one precision qualifier can be used +highp lowp int no_multiple_qualifiers_3; +^^^^^^^^^^ error: 8: only one precision qualifier can be used +highp mediump lowp int no_multiple_qualifiers_4; +^^^^^^^^^^^^^^^^^^ error: 9: type 'S' does not support precision qualifiers +highp S no_structs; +^^^^^ error: 10: type 'bool' does not support precision qualifiers +mediump bool no_bools; +^^^^^^^ error: 11: type 'colorFilter' does not support precision qualifiers +uniform lowp colorFilter no_opaque; +^^^^^^^^^^^^ error: 12: type 'half' does not support precision qualifiers +uniform highp half no_half_highp; +^^^^^^^^^^^^^ error: 13: type 'half' does not support precision qualifiers +uniform mediump half no_half_mediump; +^^^^^^^^^^^^^^^ error: 14: type 'half' does not support precision qualifiers +uniform lowp half no_lowp_mediump; +^^^^^^^^^^^^ 10 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionComplex.skvm b/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionComplex.skvm index eefba2d77b41..f5630907aae2 100644 --- a/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionComplex.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionComplex.skvm @@ -5,4 +5,6 @@ error: 16: potential recursion (function call cycle) not allowed: void f_two(int n) void f_three(int n) void f_one(int n) +void f_one(int n) { + ^... 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionMutual.skvm b/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionMutual.skvm index 34f1b6b62d94..cf99699d255a 100644 --- a/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionMutual.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionMutual.skvm @@ -4,4 +4,6 @@ error: 5: potential recursion (function call cycle) not allowed: bool is_odd(int n) bool is_even(int n) bool is_odd(int n) +bool is_odd (int n) { return n == 0 ? false : is_even(n - 1); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionSimple.skvm b/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionSimple.skvm index 6659d2038ce7..af9701bcd35f 100644 --- a/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionSimple.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/IllegalRecursionSimple.skvm @@ -3,4 +3,6 @@ error: 4: potential recursion (function call cycle) not allowed: int fibonacci(int n) int fibonacci(int n) +int fibonacci(int n) { return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/IllegalShaderSampling.skvm b/third_party/skia/tests/sksl/runtime_errors/IllegalShaderSampling.skvm index 2a6cb1526f86..cf3b86788176 100644 --- a/third_party/skia/tests/sksl/runtime_errors/IllegalShaderSampling.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/IllegalShaderSampling.skvm @@ -1,18 +1,48 @@ ### Compilation failed: error: 11: no match for shader::eval(float2, half4) +half4 eval_shader_xy_color() { return s.eval(xy, color); } + ^^^^^^^^^^^^^^^^^ error: 12: no match for shader::eval(half4) +half4 eval_shader_color() { return s.eval(color); } + ^^^^^^^^^^^^^ error: 13: no match for shader::eval(half4, float2) +half4 eval_shader_color_xy() { return s.eval(color, xy); } + ^^^^^^^^^^^^^^^^^ error: 14: no match for shader::eval() +half4 eval_shader_empty() { return s.eval(); } + ^^^^^^^^ error: 15: no match for shader::eval(float3x3) +half4 eval_shader_matrix() { return s.eval(float3x3(1)); } + ^^^^^^^^^^^^^^^^^^^ error: 16: type mismatch: ',' cannot operate on 'int', 'shader' +half4 eval_shader_comma_expr() { return (i++, s).eval(xy); } + ^^^^^^ error: 18: no match for colorFilter::eval() +half4 eval_colorFilter_empty() { return f.eval(); } + ^^^^^^^^ error: 19: no match for colorFilter::eval(float2) +half4 eval_colorFilter_xy() { return f.eval(xy); } + ^^^^^^^^^^ error: 20: no match for colorFilter::eval(float2, half4) +half4 eval_colorFilter_xy_color() { return f.eval(xy, color); } + ^^^^^^^^^^^^^^^^^ error: 21: type mismatch: ',' cannot operate on 'shader', 'colorFilter' +half4 eval_colorFilter_comma_expr() { return (s, f).eval(color); } + ^^^^ error: 23: no match for blender::eval() +half4 eval_blender_empty() { return b.eval(); } + ^^^^^^^^ error: 24: no match for blender::eval(half4) +half4 eval_blender_color() { return b.eval(color); } + ^^^^^^^^^^^^^ error: 25: no match for blender::eval(float2) +half4 eval_blender_xy() { return b.eval(xy); } + ^^^^^^^^^^ error: 26: no match for blender::eval(float2, half4) +half4 eval_blender_xy_color() { return b.eval(xy, color); } + ^^^^^^^^^^^^^^^^^ error: 27: type mismatch: ',' cannot operate on 'blender', 'blender' +half4 eval_blender_comma_expr() { return (b, b).eval(color, color); } + ^^^^ 15 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/IllegalShaderUse.skvm b/third_party/skia/tests/sksl/runtime_errors/IllegalShaderUse.skvm index 403980412785..ac36f7fd3d66 100644 --- a/third_party/skia/tests/sksl/runtime_errors/IllegalShaderUse.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/IllegalShaderUse.skvm @@ -1,15 +1,72 @@ ### Compilation failed: error: 10: variables of type 'shader' must be uniform +shader s3; +^^^^^^^^^ error: 11: 'in' variables not permitted in runtime effects +in shader s4; +^^^^^^^^^^^^ error: 11: variables of type 'shader' must be uniform -error: 14: variables of type 'shader' must be global -error: 14: variables of type 'shader' must be uniform -error: 15: parameters of type 'shader' not allowed -error: 15: unknown identifier 's' -error: 16: functions may not return opaque type 'shader' -error: 17: cannot construct 'shader' -error: 18: ternary expression of opaque type 'shader' not allowed -error: 19: expected '(' to begin method call -error: 19: function 'dangling_eval' can exit without returning a value -12 errors +in shader s4; +^^^^^^^^^^^^ +error: 13: opaque type 'shader' is not permitted in a struct +struct S { shader sh; }; + ^^^^^^^^^ +error: 15: opaque type 'shader' may not be used in an array +uniform shader s6[2]; +^^^^^^^^^^^^^^^^^^^^ +error: 18: type mismatch: '==' cannot operate on 'shader', 'shader' +bool equality() { return s1 == s2; } + ^^^^^^^^ +error: 19: type mismatch: '<' cannot operate on 'shader', 'shader' +bool comparison() { return s1 < s2; } + ^^^^^^^ +error: 20: '!' cannot operate on 'shader' +bool unary_not() { return !s1; } + ^^^ +error: 21: '-' cannot operate on 'shader' +void unary_neg() { -s1; } + ^^^ +error: 22: '+' cannot operate on 'shader' +void unary_pos() { +s1; } + ^^^ +error: 23: type mismatch: '*' cannot operate on 'shader', 'shader' +void arithmetic() { s1 * s2; } + ^^^^^^^ +error: 24: expected array, but found 'shader' +void index() { s1[0]; } + ^^ +error: 25: type 'shader' has no method named 'xyz' +void swizzle() { s1.xyz; } + ^^^^^^ +error: 26: cannot modify immutable variable 's1' +void assignment() { s1 = s2; } + ^^ +error: 27: variables of type 'shader' must be global +half4 local() { shader s; return s.eval(xy); } + ^^^^^^^^ +error: 27: variables of type 'shader' must be uniform +half4 local() { shader s; return s.eval(xy); } + ^^^^^^^^ +error: 28: parameters of type 'shader' not allowed +half4 parameter(shader s) { return s.eval(xy); } + ^^^^^^^^ +error: 28: unknown identifier 's' +half4 parameter(shader s) { return s.eval(xy); } + ^ +error: 29: functions may not return opaque type 'shader' +shader returned() { return s1; } +^^^^^^^^^^^^^^^^^ +error: 30: cannot construct 'shader' +half4 constructed() { return shader(s1).eval(xy); } + ^^^^^^^^^^ +error: 31: ternary expression of opaque type 'shader' not allowed +half4 expression(bool b) { return (b ? s1 : s2).eval(xy); } + ^^^^^^^^^^^ +error: 32: expected '(' to begin method call +half4 dangling_eval() { s1.eval; } + ^ +error: 32: function 'dangling_eval' can exit without returning a value +half4 dangling_eval() { s1.eval; } + ^^^^^^^^^^^^ +23 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/IllegalStatements.skvm b/third_party/skia/tests/sksl/runtime_errors/IllegalStatements.skvm index 9bfd33d7fbb6..ca800a5f8578 100644 --- a/third_party/skia/tests/sksl/runtime_errors/IllegalStatements.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/IllegalStatements.skvm @@ -1,6 +1,12 @@ ### Compilation failed: error: 3: discard statement is only permitted in fragment shaders +void discard_stmt() { discard; } + ^^^^^^^ error: 5: do-while loops are not supported +int do_loop(int x) { do { x++; } while(x < 1); return x; } + ^^^^^^^^^^^^^^^^^^^^^^^^^ error: 7: while loops are not supported +int while_loop(int x) { while (x < 1) { x++; } return x; } + ^^^^^^^^^^^^^^^^^^^^^^ 3 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/InvalidBlendMain.skvm b/third_party/skia/tests/sksl/runtime_errors/InvalidBlendMain.skvm index 33b2db6c0a3b..84d819d462c5 100644 --- a/third_party/skia/tests/sksl/runtime_errors/InvalidBlendMain.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/InvalidBlendMain.skvm @@ -1,14 +1,36 @@ ### Compilation failed: error: 6: 'main' parameters must be (vec4|float4|half4, vec4|float4|half4) +half4 main() { return half4(1); } +^^^^^^^^^^^^ error: 7: 'main' parameters must be (vec4|float4|half4, vec4|float4|half4) +half4 main(half4 src) { return src; } +^^^^^^^^^^^^^^^^^^^^^ error: 7: unknown identifier 'src' +half4 main(half4 src) { return src; } + ^^^ error: 8: 'main' parameters must be (vec4|float4|half4, vec4|float4|half4) +half4 main(half2 coords, half4 src) { return src; } +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 8: unknown identifier 'src' +half4 main(half2 coords, half4 src) { return src; } + ^^^ error: 9: 'main' parameters must be (vec4|float4|half4, vec4|float4|half4) +half4 main(half2 coords, half4 src, half4 dst) { return src * dst; } +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 9: unknown identifier 'src' +half4 main(half2 coords, half4 src, half4 dst) { return src * dst; } + ^^^ error: 9: unknown identifier 'dst' +half4 main(half2 coords, half4 src, half4 dst) { return src * dst; } + ^^^ error: 10: 'main' parameters must be (vec4|float4|half4, vec4|float4|half4) +half4 main(half4 src, half4 dst, half4 bonusColor) { return src * dst; } +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 10: unknown identifier 'src' +half4 main(half4 src, half4 dst, half4 bonusColor) { return src * dst; } + ^^^ error: 10: unknown identifier 'dst' +half4 main(half4 src, half4 dst, half4 bonusColor) { return src * dst; } + ^^^ 11 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/InvalidColorFilterFeatures.skvm b/third_party/skia/tests/sksl/runtime_errors/InvalidColorFilterFeatures.skvm index 7d603090781c..9ceded9384f1 100644 --- a/third_party/skia/tests/sksl/runtime_errors/InvalidColorFilterFeatures.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/InvalidColorFilterFeatures.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 6: unknown identifier 'sk_FragCoord' + return sk_FragCoord.xy01; + ^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/InvalidColorFilterMain.skvm b/third_party/skia/tests/sksl/runtime_errors/InvalidColorFilterMain.skvm index 2620888ffeaf..68d4a4a37829 100644 --- a/third_party/skia/tests/sksl/runtime_errors/InvalidColorFilterMain.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/InvalidColorFilterMain.skvm @@ -1,9 +1,21 @@ ### Compilation failed: error: 6: 'main' parameter must be 'vec4', 'float4', or 'half4' +half4 main() { return half(1); } +^^^^^^^^^^^^ error: 7: 'main' parameter must be 'vec4', 'float4', or 'half4' +half4 main(float2 coord) { return half4(1); } +^^^^^^^^^^^^^^^^^^^^^^^^ error: 8: 'main' parameter must be 'vec4', 'float4', or 'half4' +half4 main(float2 coord, half4 color) { return color; } +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 8: unknown identifier 'color' +half4 main(float2 coord, half4 color) { return color; } + ^^^^^ error: 9: 'main' parameter must be 'vec4', 'float4', or 'half4' +half4 main(half4 color, half4 bonusColor) { return color; } +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 9: unknown identifier 'color' +half4 main(half4 color, half4 bonusColor) { return color; } + ^^^^^ 6 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/InvalidShaderMain.skvm b/third_party/skia/tests/sksl/runtime_errors/InvalidShaderMain.skvm index c79a619d1a31..0cd51456eaf4 100644 --- a/third_party/skia/tests/sksl/runtime_errors/InvalidShaderMain.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/InvalidShaderMain.skvm @@ -1,10 +1,24 @@ ### Compilation failed: error: 6: 'main' parameters must be (float2, (vec4|float4|half4)?) +half4 main() { return half4(1); } +^^^^^^^^^^^^ error: 7: 'main' parameters must be (float2, (vec4|float4|half4)?) +half4 main(half4 color) { return color; } +^^^^^^^^^^^^^^^^^^^^^^^ error: 7: unknown identifier 'color' +half4 main(half4 color) { return color; } + ^^^^^ error: 8: 'main' parameters must be (float2, (vec4|float4|half4)?) +half4 main(float2 xy, half4 color, half4 bonusColor) { return color; } +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 8: unknown identifier 'color' +half4 main(float2 xy, half4 color, half4 bonusColor) { return color; } + ^^^^^ error: 9: 'main' parameters must be (float2, (vec4|float4|half4)?) +half4 main(half4 outOfOrderColor, float2 outOfOrderXy) { return color; } +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 9: unknown identifier 'color' +half4 main(half4 outOfOrderColor, float2 outOfOrderXy) { return color; } + ^^^^^ 7 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/LoopConditionErrors.skvm b/third_party/skia/tests/sksl/runtime_errors/LoopConditionErrors.skvm index bf5e9b443cbc..9b45dee96f00 100644 --- a/third_party/skia/tests/sksl/runtime_errors/LoopConditionErrors.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/LoopConditionErrors.skvm @@ -1,12 +1,30 @@ ### Compilation failed: error: 3: missing condition +void no_condition() { for (int i = 0;;i++) {} } + ^^^^^^^^^^^^^^^^^^^^^^^ error: 5: invalid condition +void unary_cond_op() { for (int i = 0; !(i > 1); ++i) {} } + ^^^^^^^^ error: 6: invalid condition +void implict_cond_op() { for (int i = 1; bool(i); --i) {} } + ^^^^^^^ error: 7: expected loop index on left hand side of condition +void complex_cond_op() { for (int i = 0; i < 1 && i < 2; ++i) {} } + ^^^^^^^^^^^^^^ error: 9: expected loop index on left hand side of condition +void cond_wrong_var() { int j = 0; for (int i = 0; j < 1; ++i) {} } + ^^^^^ error: 10: expected loop index on left hand side of condition +void cond_wrong_side() { for (int i = 0; 1 > i; ++i) {} } + ^^^^^ error: 11: expected loop index on left hand side of condition +void cond_index_cast() { for (int i = 0; float(i) < 1.5; ++i) {} } + ^^^^^^^^^^^^^^ error: 15: loop index must be compared with a constant expression +void cond_uniform_val() { for (int i = 0; i < u; ++i) {} } + ^^^^^ error: 16: loop index must be compared with a constant expression +void cond_param_val(int p) { for (int i = 0; i < p; ++i) {} } + ^^^^^ 9 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/LoopExpressionErrors.skvm b/third_party/skia/tests/sksl/runtime_errors/LoopExpressionErrors.skvm index d0e92e17252c..9e54ac8bb431 100644 --- a/third_party/skia/tests/sksl/runtime_errors/LoopExpressionErrors.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/LoopExpressionErrors.skvm @@ -1,10 +1,24 @@ ### Compilation failed: error: 3: missing loop expression +void no_expression() { for (int i = 0; i < 1;) {} } + ^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 5: invalid operator in loop expression +void expression_equals() { for (int i = 0; i < 1; i = 1) {} } + ^^^^^ error: 6: loop index must be modified by a constant expression +void expression_equal_plus() { for (int i = 0; i < 1; i = i + 1) {} } + ^^^^^^^^^ error: 7: invalid operator in loop expression +void expression_times_eq() { for (int i = 1; i < 2; i *= 2) {} } + ^^^^^^ error: 8: invalid operator in loop expression +void expression_bad_unary() { for (int i = 0; i < 1; -i) {} } + ^^ error: 12: loop index must be modified by a constant expression +void expression_uniform_val() { for (int i = 0; i < 1; i += u) {} } + ^^^^^^ error: 13: loop index must be modified by a constant expression +void expression_param_val(int p) { for (int i = 0; i < 1; i += p) {} } + ^^^^^^ 7 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/LoopInitializerErrors.skvm b/third_party/skia/tests/sksl/runtime_errors/LoopInitializerErrors.skvm index a2a673b4bc63..9b7cf19dd452 100644 --- a/third_party/skia/tests/sksl/runtime_errors/LoopInitializerErrors.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/LoopInitializerErrors.skvm @@ -1,13 +1,33 @@ ### Compilation failed: error: 3: missing init declaration +void no_initializer() { int i = 0; for ( ; i < 1; i++) {} } + ^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 4: invalid init declaration +void init_not_decl() { int i; for (i = 0; i < 1; i++) {} } + ^^^^^ error: 5: missing loop index initializer +void index_no_init() { for (int i; i < 1; i++) {} } + ^^^^^ error: 7: invalid type for loop index +void bool_index() { for (bool i = false; i != true; i = !i) {} } + ^^^^^^^^^^^^^^ error: 8: invalid type for loop index +void vec_index() { for (float2 i = float2(0); i.x < 1; i.x++) {} } + ^^^^^^^^^^^^^^^^^^^^ error: 9: construction of array type 'int[2]' is not supported +void array_index() { for (int i[2] = int[2](0, 0); i[0] < 1; ++i[0]) {} } + ^^^^^^^^^^^^ error: 9: unknown identifier 'i' +void array_index() { for (int i[2] = int[2](0, 0); i[0] < 1; ++i[0]) {} } + ^ error: 9: unknown identifier 'i' +void array_index() { for (int i[2] = int[2](0, 0); i[0] < 1; ++i[0]) {} } + ^ error: 13: loop index initializer must be a constant expression +void uniform_init() { for (int i = u; i < 1; ++i) {} } + ^^^^^^^^^ error: 14: loop index initializer must be a constant expression +void param_init(int p) { for (int i = p; i < 1; ++i) {} } + ^^^^^^^^^ 10 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/LoopStructureErrors.skvm b/third_party/skia/tests/sksl/runtime_errors/LoopStructureErrors.skvm index ecc5560c479a..aa4ae8a39bba 100644 --- a/third_party/skia/tests/sksl/runtime_errors/LoopStructureErrors.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/LoopStructureErrors.skvm @@ -1,18 +1,48 @@ ### Compilation failed: error: 6: loop must guarantee termination in fewer iterations +void loop_length_100000() { for (int i = 0; i < 100000; i++) {} } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 7: invalid loop expression +void infinite_loop1() { for (int i = 0; i < 1; i += 0) {} } + ^^^^^^ error: 8: invalid loop expression +void infinite_loop2() { for (int i = 3; i >= 3; i += 0) {} } + ^^^^^^ error: 9: loop must guarantee termination in fewer iterations +void infinite_loop3() { for (float i = 3; i >= 3; i += 1e-20) {} } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 14: loop index must not be modified within body of the loop +void index_modified() { for (int i = 0; i < 2; i++) { i++; } } + ^^^^^^^^ error: 15: loop index must not be modified within body of the loop +void index_out_param() { for (int i = 0; i < 1; i++) { set(i); } } + ^^^^^^^^^^^ error: 16: loop index must not be modified within body of the loop +void index_inout_param() { for (int i = 0; i < 1; i++) { inc(i); } } + ^^^^^^^^^^^ error: 18: loop must guarantee termination in fewer iterations +void infinite_loop_le() { for (int i = 0; i <= 3; --i) {} } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 19: loop must guarantee termination in fewer iterations +void infinite_loop_lt() { for (int i = 0; i < 4; --i) {} } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 20: loop must guarantee termination in fewer iterations +void infinite_loop_ge() { for (int i = 3; i >= 0; ++i) {} } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 21: loop must guarantee termination in fewer iterations +void infinite_loop_gt() { for (int i = 3; i > -1; ++i) {} } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 22: invalid loop expression +void infinite_loop_eq1() { for (int i = 0; i == 0; i-=0) {} } + ^^^^ error: 23: invalid loop expression +void infinite_loop_eq2() { for (int i = 1; i == 1; i+=0) {} } + ^^^^ error: 24: loop must guarantee termination in fewer iterations +void infinite_loop_ne1() { for (int i = 0; i != 4; i--) {} } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 25: loop must guarantee termination in fewer iterations +void infinite_loop_ne2() { for (int i = 0; i != 4; i+=3) {} } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 15 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/Ossfuzz36655.skvm b/third_party/skia/tests/sksl/runtime_errors/Ossfuzz36655.skvm index e65a7652d9c0..5766e87e02ec 100644 --- a/third_party/skia/tests/sksl/runtime_errors/Ossfuzz36655.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/Ossfuzz36655.skvm @@ -1,15 +1,39 @@ ### Compilation failed: error: 2: expected '(' to begin constructor invocation + ;int x;+(2);;;;;;colorFilter;;;;;;;; + ^ error: 11: expected '(' to begin function call + n();n();;;;;;;;;;atan;;;;;;;;;;;2; + ^ error: 17: expected '(' to begin function call + ;0;;;l();n;; + ^ error: 21: expected '(' to begin function call + (32/43/4-half3x3(5)[2].ttt+4/35).ss00*1752).s > 5)n();;0;n;n() + ^ error: 23: expected '(' to begin constructor invocation + ;float[992]; + ^ error: 26: expected '(' to begin function call + (2).ss00*2147483648).s > 0)n();1;n;n() + ^ error: 32: expected '(' to begin function call + 052).s >=5)n();1;n;n + ^ error: 32: expected '(' to begin function call + 052).s >=5)n();1;n;n + ^ error: 35: expected '(' to begin function call + ;0;;;l();n;; + ^ error: 39: expected '(' to begin function call + (32/43/4-half3x3(5)[2].ttt+4/35).ss00*1752).s > 5)n();;1;n;n() + ^ error: 43: expected '(' to begin constructor invocation + ;float[992]; + ^ error: 46: expected '(' to begin function call + (2).ss00*7152).s > 0)n();1;n;n() + ^ 12 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/Ossfuzz38131.skvm b/third_party/skia/tests/sksl/runtime_errors/Ossfuzz38131.skvm index 59a77adf9d92..74ea458f56da 100644 --- a/third_party/skia/tests/sksl/runtime_errors/Ossfuzz38131.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/Ossfuzz38131.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: interface blocks are not allowed in this kind of program +s{int i;}; +^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/Ossfuzz45279.skvm b/third_party/skia/tests/sksl/runtime_errors/Ossfuzz45279.skvm new file mode 100644 index 000000000000..c7d3da838907 --- /dev/null +++ b/third_party/skia/tests/sksl/runtime_errors/Ossfuzz45279.skvm @@ -0,0 +1,6 @@ +### Compilation failed: + +error: 2: type mismatch: '==' cannot operate on 'void', 'void' +void b(int i) { c(i)==c(i); } + ^^^^^^^^^^ +1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/ProgramTooLarge_StackDepth.skvm b/third_party/skia/tests/sksl/runtime_errors/ProgramTooLarge_StackDepth.skvm index 5ce57c6846d7..cf2ef961dfc4 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ProgramTooLarge_StackDepth.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ProgramTooLarge_StackDepth.skvm @@ -52,4 +52,6 @@ error: 11: exceeded max function call depth: void f48() void f49() void f50() +void f50() { f51(); } + ^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/ReservedNameISampler2D.skvm b/third_party/skia/tests/sksl/runtime_errors/ReservedNameISampler2D.skvm index e0d3619c3831..2c748537cc61 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ReservedNameISampler2D.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ReservedNameISampler2D.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected an identifier, but found type 'isampler2D' +int isampler2D; + ^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler.skvm b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler.skvm index 4bce8786afeb..4c65015488ae 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected an identifier, but found type 'sampler' +int sampler; + ^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler1D.skvm b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler1D.skvm index 70264fd58b8e..4f92cb9a9bf0 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler1D.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler1D.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected an identifier, but found type 'sampler1D' +int sampler1D; + ^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler2D.skvm b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler2D.skvm index d8fbc3aaef70..7ca9d9e7b2c2 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler2D.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler2D.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected an identifier, but found type 'sampler2D' +int sampler2D; + ^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler2DRect.skvm b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler2DRect.skvm index f0d4429d5653..b9a75fee05ba 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler2DRect.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler2DRect.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected an identifier, but found type 'sampler2DRect' +int sampler2DRect; + ^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler3D.skvm b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler3D.skvm index e984d6a0c25d..ba35eed981b9 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler3D.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSampler3D.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected an identifier, but found type 'sampler3D' +int sampler3D; + ^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSamplerExternalOES.skvm b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSamplerExternalOES.skvm index 99baf0adfd3b..ec72b496046c 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSamplerExternalOES.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSamplerExternalOES.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected an identifier, but found type 'samplerExternalOES' +int samplerExternalOES; + ^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSubpassInput.skvm b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSubpassInput.skvm index c19fa4f6e1d1..94119dd281b2 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSubpassInput.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSubpassInput.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected an identifier, but found type 'subpassInput' +int subpassInput; + ^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSubpassInputMS.skvm b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSubpassInputMS.skvm index e61ed93d419e..37ca40cc11f3 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ReservedNameSubpassInputMS.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ReservedNameSubpassInputMS.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected an identifier, but found type 'subpassInputMS' +int subpassInputMS; + ^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/ReservedNameTexture2D.skvm b/third_party/skia/tests/sksl/runtime_errors/ReservedNameTexture2D.skvm index 7ef55ad63d39..750acfe5d805 100644 --- a/third_party/skia/tests/sksl/runtime_errors/ReservedNameTexture2D.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/ReservedNameTexture2D.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: expected an identifier, but found type 'texture2D' +int texture2D; + ^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/TypeAliases.skvm b/third_party/skia/tests/sksl/runtime_errors/TypeAliases.skvm index a08c4ea88a8e..8f96a9ba77ed 100644 --- a/third_party/skia/tests/sksl/runtime_errors/TypeAliases.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/TypeAliases.skvm @@ -1,9 +1,21 @@ ### Compilation failed: error: 9: expected 'vec2', but found 'int' + vec2 bad1 = 0; + ^ error: 10: expected 'int', but found 'mat2' + int bad2 = mat2(0); + ^^^^^^^ error: 11: expected 'bvec2', but found 'vec2' + bvec2 bad3 = vec2(0); + ^^^^^^^ error: 12: expected 'float2', but found 'vec3' + float2 bad4 = vec3(0); + ^^^^^^^ error: 13: expected 'mat4', but found 'float3x3' + mat4 bad5 = float3x3(0); + ^^^^^^^^^^^ error: 14: expected 'vec4', but found 'ivec4' + return ivec4(1); + ^^^^^^^^ 6 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/UnsupportedExtension.skvm b/third_party/skia/tests/sksl/runtime_errors/UnsupportedExtension.skvm index 447ee63e22ac..2eeb30a4d5d8 100644 --- a/third_party/skia/tests/sksl/runtime_errors/UnsupportedExtension.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/UnsupportedExtension.skvm @@ -1,6 +1,12 @@ ### Compilation failed: error: 1: unsupported directive '#extension' +#extension i:enable +^^^^^^^^^^ error: 1: no type named 'i' +#extension i:enable + ^ error: 1: expected a type, but found ':' +#extension i:enable + ^ 3 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeFragmentProcessor.skvm b/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeFragmentProcessor.skvm index 54bf305f5f2f..502e2f7937f0 100644 --- a/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeFragmentProcessor.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeFragmentProcessor.skvm @@ -1,6 +1,12 @@ ### Compilation failed: error: 1: no type named 'fragmentProcessor' +uniform fragmentProcessor s; + ^^^^^^^^^^^^^^^^^ error: 1: no type named 's' +uniform fragmentProcessor s; + ^ error: 1: expected a declaration, but found ';' +uniform fragmentProcessor s; + ^ 3 errors diff --git a/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeSampler.skvm b/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeSampler.skvm index 703c4feba8ec..ea74dbe13fbb 100644 --- a/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeSampler.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeSampler.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: invalid type +uniform sampler2D s; +^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeTexture.skvm b/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeTexture.skvm index 703c4feba8ec..d2d37400b144 100644 --- a/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeTexture.skvm +++ b/third_party/skia/tests/sksl/runtime_errors/UnsupportedTypeTexture.skvm @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: invalid type +uniform texture2D s; +^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/shared/ArrayCast.asm.frag b/third_party/skia/tests/sksl/shared/ArrayCast.asm.frag index 4569d2b4d95e..572181af3e93 100644 --- a/third_party/skia/tests/sksl/shared/ArrayCast.asm.frag +++ b/third_party/skia/tests/sksl/shared/ArrayCast.asm.frag @@ -29,24 +29,18 @@ OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %_arr_float_int_4 ArrayStride 16 OpDecorate %h RelaxedPrecision -OpDecorate %39 RelaxedPrecision +OpDecorate %38 RelaxedPrecision OpDecorate %_arr_v3int_int_3 ArrayStride 16 -OpDecorate %55 RelaxedPrecision +OpDecorate %53 RelaxedPrecision OpDecorate %_arr_mat2v2float_int_2 ArrayStride 32 -OpDecorate %61 RelaxedPrecision -OpDecorate %62 RelaxedPrecision -OpDecorate %63 RelaxedPrecision -OpDecorate %68 RelaxedPrecision -OpDecorate %69 RelaxedPrecision -OpDecorate %70 RelaxedPrecision -OpDecorate %74 RelaxedPrecision -OpDecorate %75 RelaxedPrecision -OpDecorate %79 RelaxedPrecision -OpDecorate %98 RelaxedPrecision -OpDecorate %118 RelaxedPrecision +OpDecorate %71 RelaxedPrecision +OpDecorate %72 RelaxedPrecision +OpDecorate %76 RelaxedPrecision +OpDecorate %95 RelaxedPrecision +OpDecorate %115 RelaxedPrecision +OpDecorate %149 RelaxedPrecision +OpDecorate %151 RelaxedPrecision OpDecorate %152 RelaxedPrecision -OpDecorate %154 RelaxedPrecision -OpDecorate %155 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -59,8 +53,8 @@ OpDecorate %155 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -72,25 +66,28 @@ OpDecorate %155 RelaxedPrecision %float_2 = OpConstant %float 2 %float_3 = OpConstant %float 3 %float_4 = OpConstant %float 4 -%_ptr_Function__arr_float_int_4_0 = OpTypePointer Function %_arr_float_int_4 %v3int = OpTypeVector %int 3 %int_3 = OpConstant %int 3 %_arr_v3int_int_3 = OpTypeArray %v3int %int_3 %_ptr_Function__arr_v3int_int_3 = OpTypePointer Function %_arr_v3int_int_3 %int_1 = OpConstant %int 1 -%47 = OpConstantComposite %v3int %int_1 %int_1 %int_1 +%46 = OpConstantComposite %v3int %int_1 %int_1 %int_1 %int_2 = OpConstant %int 2 -%49 = OpConstantComposite %v3int %int_2 %int_2 %int_2 -%50 = OpConstantComposite %v3int %int_3 %int_3 %int_3 -%_ptr_Function__arr_v3int_int_3_0 = OpTypePointer Function %_arr_v3int_int_3 +%48 = OpConstantComposite %v3int %int_2 %int_2 %int_2 +%49 = OpConstantComposite %v3int %int_3 %int_3 %int_3 %mat2v2float = OpTypeMatrix %v2float 2 %_arr_mat2v2float_int_2 = OpTypeArray %mat2v2float %int_2 %_ptr_Function__arr_mat2v2float_int_2 = OpTypePointer Function %_arr_mat2v2float_int_2 +%59 = OpConstantComposite %v2float %float_1 %float_2 +%60 = OpConstantComposite %v2float %float_3 %float_4 +%61 = OpConstantComposite %mat2v2float %59 %60 %float_5 = OpConstant %float 5 %float_6 = OpConstant %float 6 %float_7 = OpConstant %float 7 %float_8 = OpConstant %float 8 -%_ptr_Function__arr_mat2v2float_int_2_0 = OpTypePointer Function %_arr_mat2v2float_int_2 +%66 = OpConstantComposite %v2float %float_5 %float_6 +%67 = OpConstantComposite %v2float %float_7 %float_8 +%68 = OpConstantComposite %mat2v2float %66 %67 %false = OpConstantFalse %bool %v3bool = OpTypeVector %bool 3 %v2bool = OpTypeVector %bool 2 @@ -109,125 +106,119 @@ OpFunctionEnd %24 = OpFunctionParameter %_ptr_Function_v2float %25 = OpLabel %f = OpVariable %_ptr_Function__arr_float_int_4 Function -%h = OpVariable %_ptr_Function__arr_float_int_4_0 Function +%h = OpVariable %_ptr_Function__arr_float_int_4 Function %i3 = OpVariable %_ptr_Function__arr_v3int_int_3 Function -%s3 = OpVariable %_ptr_Function__arr_v3int_int_3_0 Function +%s3 = OpVariable %_ptr_Function__arr_v3int_int_3 Function %h2x2 = OpVariable %_ptr_Function__arr_mat2v2float_int_2 Function -%f2x2 = OpVariable %_ptr_Function__arr_mat2v2float_int_2_0 Function -%144 = OpVariable %_ptr_Function_v4float Function +%f2x2 = OpVariable %_ptr_Function__arr_mat2v2float_int_2 Function +%141 = OpVariable %_ptr_Function_v4float Function %35 = OpCompositeConstruct %_arr_float_int_4 %float_1 %float_2 %float_3 %float_4 OpStore %f %35 -%38 = OpLoad %_arr_float_int_4 %f -OpStore %h %38 -%39 = OpLoad %_arr_float_int_4 %h -OpStore %f %39 -%40 = OpLoad %_arr_float_int_4 %f -OpStore %h %40 -%51 = OpCompositeConstruct %_arr_v3int_int_3 %47 %49 %50 -OpStore %i3 %51 +%37 = OpLoad %_arr_float_int_4 %f +OpStore %h %37 +%38 = OpLoad %_arr_float_int_4 %h +OpStore %f %38 +%39 = OpLoad %_arr_float_int_4 %f +OpStore %h %39 +%50 = OpCompositeConstruct %_arr_v3int_int_3 %46 %48 %49 +OpStore %i3 %50 +%52 = OpLoad %_arr_v3int_int_3 %i3 +OpStore %s3 %52 +%53 = OpLoad %_arr_v3int_int_3 %s3 +OpStore %i3 %53 %54 = OpLoad %_arr_v3int_int_3 %i3 OpStore %s3 %54 -%55 = OpLoad %_arr_v3int_int_3 %s3 -OpStore %i3 %55 -%56 = OpLoad %_arr_v3int_int_3 %i3 -OpStore %s3 %56 -%61 = OpCompositeConstruct %v2float %float_1 %float_2 -%62 = OpCompositeConstruct %v2float %float_3 %float_4 -%63 = OpCompositeConstruct %mat2v2float %61 %62 -%68 = OpCompositeConstruct %v2float %float_5 %float_6 -%69 = OpCompositeConstruct %v2float %float_7 %float_8 -%70 = OpCompositeConstruct %mat2v2float %68 %69 -%71 = OpCompositeConstruct %_arr_mat2v2float_int_2 %63 %70 -OpStore %h2x2 %71 -%74 = OpLoad %_arr_mat2v2float_int_2 %h2x2 -OpStore %f2x2 %74 -%75 = OpLoad %_arr_mat2v2float_int_2 %h2x2 -OpStore %f2x2 %75 -%76 = OpLoad %_arr_mat2v2float_int_2 %f2x2 -OpStore %h2x2 %76 -%78 = OpLoad %_arr_float_int_4 %f -%79 = OpLoad %_arr_float_int_4 %h -%80 = OpCompositeExtract %float %78 0 -%81 = OpCompositeExtract %float %79 0 +%69 = OpCompositeConstruct %_arr_mat2v2float_int_2 %61 %68 +OpStore %h2x2 %69 +%71 = OpLoad %_arr_mat2v2float_int_2 %h2x2 +OpStore %f2x2 %71 +%72 = OpLoad %_arr_mat2v2float_int_2 %h2x2 +OpStore %f2x2 %72 +%73 = OpLoad %_arr_mat2v2float_int_2 %f2x2 +OpStore %h2x2 %73 +%75 = OpLoad %_arr_float_int_4 %f +%76 = OpLoad %_arr_float_int_4 %h +%77 = OpCompositeExtract %float %75 0 +%78 = OpCompositeExtract %float %76 0 +%79 = OpFOrdEqual %bool %77 %78 +%80 = OpCompositeExtract %float %75 1 +%81 = OpCompositeExtract %float %76 1 %82 = OpFOrdEqual %bool %80 %81 -%83 = OpCompositeExtract %float %78 1 -%84 = OpCompositeExtract %float %79 1 -%85 = OpFOrdEqual %bool %83 %84 -%86 = OpLogicalAnd %bool %85 %82 -%87 = OpCompositeExtract %float %78 2 -%88 = OpCompositeExtract %float %79 2 -%89 = OpFOrdEqual %bool %87 %88 -%90 = OpLogicalAnd %bool %89 %86 -%91 = OpCompositeExtract %float %78 3 -%92 = OpCompositeExtract %float %79 3 -%93 = OpFOrdEqual %bool %91 %92 -%94 = OpLogicalAnd %bool %93 %90 -OpSelectionMerge %96 None -OpBranchConditional %94 %95 %96 -%95 = OpLabel -%97 = OpLoad %_arr_v3int_int_3 %i3 -%98 = OpLoad %_arr_v3int_int_3 %s3 -%99 = OpCompositeExtract %v3int %97 0 -%100 = OpCompositeExtract %v3int %98 0 -%101 = OpIEqual %v3bool %99 %100 -%103 = OpAll %bool %101 -%104 = OpCompositeExtract %v3int %97 1 -%105 = OpCompositeExtract %v3int %98 1 -%106 = OpIEqual %v3bool %104 %105 -%107 = OpAll %bool %106 -%108 = OpLogicalAnd %bool %107 %103 -%109 = OpCompositeExtract %v3int %97 2 -%110 = OpCompositeExtract %v3int %98 2 -%111 = OpIEqual %v3bool %109 %110 -%112 = OpAll %bool %111 -%113 = OpLogicalAnd %bool %112 %108 -OpBranch %96 -%96 = OpLabel -%114 = OpPhi %bool %false %25 %113 %95 -OpSelectionMerge %116 None -OpBranchConditional %114 %115 %116 -%115 = OpLabel -%117 = OpLoad %_arr_mat2v2float_int_2 %f2x2 -%118 = OpLoad %_arr_mat2v2float_int_2 %h2x2 -%119 = OpCompositeExtract %mat2v2float %117 0 -%120 = OpCompositeExtract %mat2v2float %118 0 -%122 = OpCompositeExtract %v2float %119 0 -%123 = OpCompositeExtract %v2float %120 0 -%124 = OpFOrdEqual %v2bool %122 %123 -%125 = OpAll %bool %124 -%126 = OpCompositeExtract %v2float %119 1 -%127 = OpCompositeExtract %v2float %120 1 -%128 = OpFOrdEqual %v2bool %126 %127 -%129 = OpAll %bool %128 -%130 = OpLogicalAnd %bool %125 %129 -%131 = OpCompositeExtract %mat2v2float %117 1 -%132 = OpCompositeExtract %mat2v2float %118 1 -%133 = OpCompositeExtract %v2float %131 0 -%134 = OpCompositeExtract %v2float %132 0 -%135 = OpFOrdEqual %v2bool %133 %134 -%136 = OpAll %bool %135 -%137 = OpCompositeExtract %v2float %131 1 -%138 = OpCompositeExtract %v2float %132 1 -%139 = OpFOrdEqual %v2bool %137 %138 -%140 = OpAll %bool %139 -%141 = OpLogicalAnd %bool %136 %140 -%142 = OpLogicalAnd %bool %141 %130 -OpBranch %116 -%116 = OpLabel -%143 = OpPhi %bool %false %96 %142 %115 -OpSelectionMerge %148 None -OpBranchConditional %143 %146 %147 -%146 = OpLabel -%149 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%152 = OpLoad %v4float %149 -OpStore %144 %152 -OpBranch %148 -%147 = OpLabel -%153 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%154 = OpLoad %v4float %153 -OpStore %144 %154 -OpBranch %148 -%148 = OpLabel -%155 = OpLoad %v4float %144 -OpReturnValue %155 +%83 = OpLogicalAnd %bool %82 %79 +%84 = OpCompositeExtract %float %75 2 +%85 = OpCompositeExtract %float %76 2 +%86 = OpFOrdEqual %bool %84 %85 +%87 = OpLogicalAnd %bool %86 %83 +%88 = OpCompositeExtract %float %75 3 +%89 = OpCompositeExtract %float %76 3 +%90 = OpFOrdEqual %bool %88 %89 +%91 = OpLogicalAnd %bool %90 %87 +OpSelectionMerge %93 None +OpBranchConditional %91 %92 %93 +%92 = OpLabel +%94 = OpLoad %_arr_v3int_int_3 %i3 +%95 = OpLoad %_arr_v3int_int_3 %s3 +%96 = OpCompositeExtract %v3int %94 0 +%97 = OpCompositeExtract %v3int %95 0 +%98 = OpIEqual %v3bool %96 %97 +%100 = OpAll %bool %98 +%101 = OpCompositeExtract %v3int %94 1 +%102 = OpCompositeExtract %v3int %95 1 +%103 = OpIEqual %v3bool %101 %102 +%104 = OpAll %bool %103 +%105 = OpLogicalAnd %bool %104 %100 +%106 = OpCompositeExtract %v3int %94 2 +%107 = OpCompositeExtract %v3int %95 2 +%108 = OpIEqual %v3bool %106 %107 +%109 = OpAll %bool %108 +%110 = OpLogicalAnd %bool %109 %105 +OpBranch %93 +%93 = OpLabel +%111 = OpPhi %bool %false %25 %110 %92 +OpSelectionMerge %113 None +OpBranchConditional %111 %112 %113 +%112 = OpLabel +%114 = OpLoad %_arr_mat2v2float_int_2 %f2x2 +%115 = OpLoad %_arr_mat2v2float_int_2 %h2x2 +%116 = OpCompositeExtract %mat2v2float %114 0 +%117 = OpCompositeExtract %mat2v2float %115 0 +%119 = OpCompositeExtract %v2float %116 0 +%120 = OpCompositeExtract %v2float %117 0 +%121 = OpFOrdEqual %v2bool %119 %120 +%122 = OpAll %bool %121 +%123 = OpCompositeExtract %v2float %116 1 +%124 = OpCompositeExtract %v2float %117 1 +%125 = OpFOrdEqual %v2bool %123 %124 +%126 = OpAll %bool %125 +%127 = OpLogicalAnd %bool %122 %126 +%128 = OpCompositeExtract %mat2v2float %114 1 +%129 = OpCompositeExtract %mat2v2float %115 1 +%130 = OpCompositeExtract %v2float %128 0 +%131 = OpCompositeExtract %v2float %129 0 +%132 = OpFOrdEqual %v2bool %130 %131 +%133 = OpAll %bool %132 +%134 = OpCompositeExtract %v2float %128 1 +%135 = OpCompositeExtract %v2float %129 1 +%136 = OpFOrdEqual %v2bool %134 %135 +%137 = OpAll %bool %136 +%138 = OpLogicalAnd %bool %133 %137 +%139 = OpLogicalAnd %bool %138 %127 +OpBranch %113 +%113 = OpLabel +%140 = OpPhi %bool %false %93 %139 %112 +OpSelectionMerge %145 None +OpBranchConditional %140 %143 %144 +%143 = OpLabel +%146 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%149 = OpLoad %v4float %146 +OpStore %141 %149 +OpBranch %145 +%144 = OpLabel +%150 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%151 = OpLoad %v4float %150 +OpStore %141 %151 +OpBranch %145 +%145 = OpLabel +%152 = OpLoad %v4float %141 +OpReturnValue %152 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/ArrayComparison.asm.frag b/third_party/skia/tests/sksl/shared/ArrayComparison.asm.frag index 9d7470df12e2..e0c876730fbe 100644 --- a/third_party/skia/tests/sksl/shared/ArrayComparison.asm.frag +++ b/third_party/skia/tests/sksl/shared/ArrayComparison.asm.frag @@ -39,59 +39,32 @@ OpDecorate %10 DescriptorSet 0 OpDecorate %_arr_float_int_4 ArrayStride 16 OpDecorate %_arr_v3int_int_2 ArrayStride 16 OpDecorate %_arr_mat2v2float_int_3 ArrayStride 32 -OpDecorate %63 RelaxedPrecision -OpDecorate %64 RelaxedPrecision -OpDecorate %65 RelaxedPrecision -OpDecorate %66 RelaxedPrecision -OpDecorate %67 RelaxedPrecision -OpDecorate %68 RelaxedPrecision -OpDecorate %71 RelaxedPrecision -OpDecorate %72 RelaxedPrecision -OpDecorate %73 RelaxedPrecision -OpDecorate %76 RelaxedPrecision -OpDecorate %77 RelaxedPrecision -OpDecorate %78 RelaxedPrecision -OpDecorate %79 RelaxedPrecision -OpDecorate %80 RelaxedPrecision -OpDecorate %81 RelaxedPrecision -OpDecorate %82 RelaxedPrecision -OpDecorate %83 RelaxedPrecision -OpDecorate %84 RelaxedPrecision -OpDecorate %87 RelaxedPrecision -OpDecorate %88 RelaxedPrecision -OpDecorate %89 RelaxedPrecision -OpDecorate %90 RelaxedPrecision -OpDecorate %91 RelaxedPrecision -OpDecorate %92 RelaxedPrecision -OpDecorate %93 RelaxedPrecision -OpDecorate %94 RelaxedPrecision -OpDecorate %95 RelaxedPrecision OpMemberDecorate %S 0 Offset 0 OpMemberDecorate %S 1 Offset 4 OpDecorate %_arr_S_int_3 ArrayStride 16 -OpDecorate %185 RelaxedPrecision -OpDecorate %186 RelaxedPrecision -OpDecorate %187 RelaxedPrecision -OpDecorate %188 RelaxedPrecision -OpDecorate %199 RelaxedPrecision -OpDecorate %200 RelaxedPrecision -OpDecorate %211 RelaxedPrecision -OpDecorate %212 RelaxedPrecision -OpDecorate %226 RelaxedPrecision -OpDecorate %227 RelaxedPrecision -OpDecorate %228 RelaxedPrecision -OpDecorate %229 RelaxedPrecision -OpDecorate %239 RelaxedPrecision -OpDecorate %240 RelaxedPrecision -OpDecorate %251 RelaxedPrecision -OpDecorate %252 RelaxedPrecision -OpDecorate %266 RelaxedPrecision -OpDecorate %267 RelaxedPrecision -OpDecorate %300 RelaxedPrecision -OpDecorate %301 RelaxedPrecision -OpDecorate %339 RelaxedPrecision -OpDecorate %341 RelaxedPrecision -OpDecorate %342 RelaxedPrecision +OpDecorate %164 RelaxedPrecision +OpDecorate %165 RelaxedPrecision +OpDecorate %166 RelaxedPrecision +OpDecorate %167 RelaxedPrecision +OpDecorate %178 RelaxedPrecision +OpDecorate %179 RelaxedPrecision +OpDecorate %190 RelaxedPrecision +OpDecorate %191 RelaxedPrecision +OpDecorate %205 RelaxedPrecision +OpDecorate %206 RelaxedPrecision +OpDecorate %207 RelaxedPrecision +OpDecorate %208 RelaxedPrecision +OpDecorate %218 RelaxedPrecision +OpDecorate %219 RelaxedPrecision +OpDecorate %230 RelaxedPrecision +OpDecorate %231 RelaxedPrecision +OpDecorate %245 RelaxedPrecision +OpDecorate %246 RelaxedPrecision +OpDecorate %279 RelaxedPrecision +OpDecorate %280 RelaxedPrecision +OpDecorate %318 RelaxedPrecision +OpDecorate %320 RelaxedPrecision +OpDecorate %321 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -104,8 +77,8 @@ OpDecorate %342 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -124,17 +97,32 @@ OpDecorate %342 RelaxedPrecision %_ptr_Function__arr_v3int_int_2 = OpTypePointer Function %_arr_v3int_int_2 %int_1 = OpConstant %int 1 %int_3 = OpConstant %int 3 -%48 = OpConstantComposite %v3int %int_1 %int_2 %int_3 +%47 = OpConstantComposite %v3int %int_1 %int_2 %int_3 %int_5 = OpConstant %int 5 %int_6 = OpConstant %int 6 -%51 = OpConstantComposite %v3int %int_4 %int_5 %int_6 +%50 = OpConstantComposite %v3int %int_4 %int_5 %int_6 %int_n6 = OpConstant %int -6 -%57 = OpConstantComposite %v3int %int_4 %int_5 %int_n6 +%55 = OpConstantComposite %v3int %int_4 %int_5 %int_n6 %mat2v2float = OpTypeMatrix %v2float 2 %_arr_mat2v2float_int_3 = OpTypeArray %mat2v2float %int_3 %_ptr_Function__arr_mat2v2float_int_3 = OpTypePointer Function %_arr_mat2v2float_int_3 +%61 = OpConstantComposite %v2float %float_1 %float_0 +%62 = OpConstantComposite %v2float %float_0 %float_1 +%63 = OpConstantComposite %mat2v2float %61 %62 +%64 = OpConstantComposite %v2float %float_2 %float_0 +%65 = OpConstantComposite %v2float %float_0 %float_2 +%66 = OpConstantComposite %mat2v2float %64 %65 %float_5 = OpConstant %float 5 %float_6 = OpConstant %float 6 +%69 = OpConstantComposite %v2float %float_3 %float_4 +%70 = OpConstantComposite %v2float %float_5 %float_6 +%71 = OpConstantComposite %mat2v2float %69 %70 +%75 = OpConstantComposite %v2float %float_2 %float_3 +%76 = OpConstantComposite %v2float %float_4 %float_5 +%77 = OpConstantComposite %mat2v2float %75 %76 +%78 = OpConstantComposite %v2float %float_6 %float_0 +%79 = OpConstantComposite %v2float %float_0 %float_6 +%80 = OpConstantComposite %mat2v2float %78 %79 %S = OpTypeStruct %int %int %_arr_S_int_3 = OpTypeArray %S %int_3 %_ptr_Function__arr_S_int_3 = OpTypePointer Function %_arr_S_int_3 @@ -167,314 +155,278 @@ OpFunctionEnd %s1 = OpVariable %_ptr_Function__arr_S_int_3 Function %s2 = OpVariable %_ptr_Function__arr_S_int_3 Function %s3 = OpVariable %_ptr_Function__arr_S_int_3 Function -%332 = OpVariable %_ptr_Function_v4float Function +%311 = OpVariable %_ptr_Function_v4float Function %35 = OpCompositeConstruct %_arr_float_int_4 %float_1 %float_2 %float_3 %float_4 OpStore %f1 %35 -%37 = OpCompositeConstruct %_arr_float_int_4 %float_1 %float_2 %float_3 %float_4 -OpStore %f2 %37 -%40 = OpCompositeConstruct %_arr_float_int_4 %float_1 %float_2 %float_3 %float_n4 -OpStore %f3 %40 -%52 = OpCompositeConstruct %_arr_v3int_int_2 %48 %51 -OpStore %v1 %52 -%54 = OpCompositeConstruct %_arr_v3int_int_2 %48 %51 -OpStore %v2 %54 -%58 = OpCompositeConstruct %_arr_v3int_int_2 %48 %57 -OpStore %v3 %58 -%64 = OpCompositeConstruct %v2float %float_1 %float_0 -%65 = OpCompositeConstruct %v2float %float_0 %float_1 -%63 = OpCompositeConstruct %mat2v2float %64 %65 -%67 = OpCompositeConstruct %v2float %float_2 %float_0 -%68 = OpCompositeConstruct %v2float %float_0 %float_2 -%66 = OpCompositeConstruct %mat2v2float %67 %68 -%71 = OpCompositeConstruct %v2float %float_3 %float_4 -%72 = OpCompositeConstruct %v2float %float_5 %float_6 -%73 = OpCompositeConstruct %mat2v2float %71 %72 -%74 = OpCompositeConstruct %_arr_mat2v2float_int_3 %63 %66 %73 -OpStore %m1 %74 -%77 = OpCompositeConstruct %v2float %float_1 %float_0 -%78 = OpCompositeConstruct %v2float %float_0 %float_1 -%76 = OpCompositeConstruct %mat2v2float %77 %78 -%80 = OpCompositeConstruct %v2float %float_2 %float_0 -%81 = OpCompositeConstruct %v2float %float_0 %float_2 -%79 = OpCompositeConstruct %mat2v2float %80 %81 -%82 = OpCompositeConstruct %v2float %float_3 %float_4 -%83 = OpCompositeConstruct %v2float %float_5 %float_6 -%84 = OpCompositeConstruct %mat2v2float %82 %83 -%85 = OpCompositeConstruct %_arr_mat2v2float_int_3 %76 %79 %84 -OpStore %m2 %85 -%88 = OpCompositeConstruct %v2float %float_1 %float_0 -%89 = OpCompositeConstruct %v2float %float_0 %float_1 -%87 = OpCompositeConstruct %mat2v2float %88 %89 -%90 = OpCompositeConstruct %v2float %float_2 %float_3 -%91 = OpCompositeConstruct %v2float %float_4 %float_5 -%92 = OpCompositeConstruct %mat2v2float %90 %91 -%94 = OpCompositeConstruct %v2float %float_6 %float_0 -%95 = OpCompositeConstruct %v2float %float_0 %float_6 -%93 = OpCompositeConstruct %mat2v2float %94 %95 -%96 = OpCompositeConstruct %_arr_mat2v2float_int_3 %87 %92 %93 -OpStore %m3 %96 -%101 = OpCompositeConstruct %S %int_1 %int_2 -%102 = OpCompositeConstruct %S %int_3 %int_4 -%103 = OpCompositeConstruct %S %int_5 %int_6 -%104 = OpCompositeConstruct %_arr_S_int_3 %101 %102 %103 -OpStore %s1 %104 -%106 = OpCompositeConstruct %S %int_1 %int_2 -%108 = OpCompositeConstruct %S %int_0 %int_0 -%109 = OpCompositeConstruct %S %int_5 %int_6 -%110 = OpCompositeConstruct %_arr_S_int_3 %106 %108 %109 -OpStore %s2 %110 -%112 = OpCompositeConstruct %S %int_1 %int_2 -%113 = OpCompositeConstruct %S %int_3 %int_4 -%114 = OpCompositeConstruct %S %int_5 %int_6 -%115 = OpCompositeConstruct %_arr_S_int_3 %112 %113 %114 -OpStore %s3 %115 -%117 = OpLoad %_arr_float_int_4 %f1 -%118 = OpLoad %_arr_float_int_4 %f2 -%119 = OpCompositeExtract %float %117 0 -%120 = OpCompositeExtract %float %118 0 -%121 = OpFOrdEqual %bool %119 %120 -%122 = OpCompositeExtract %float %117 1 -%123 = OpCompositeExtract %float %118 1 -%124 = OpFOrdEqual %bool %122 %123 -%125 = OpLogicalAnd %bool %124 %121 -%126 = OpCompositeExtract %float %117 2 -%127 = OpCompositeExtract %float %118 2 -%128 = OpFOrdEqual %bool %126 %127 -%129 = OpLogicalAnd %bool %128 %125 -%130 = OpCompositeExtract %float %117 3 -%131 = OpCompositeExtract %float %118 3 -%132 = OpFOrdEqual %bool %130 %131 -%133 = OpLogicalAnd %bool %132 %129 -OpSelectionMerge %135 None -OpBranchConditional %133 %134 %135 +OpStore %f2 %35 +%39 = OpCompositeConstruct %_arr_float_int_4 %float_1 %float_2 %float_3 %float_n4 +OpStore %f3 %39 +%51 = OpCompositeConstruct %_arr_v3int_int_2 %47 %50 +OpStore %v1 %51 +OpStore %v2 %51 +%56 = OpCompositeConstruct %_arr_v3int_int_2 %47 %55 +OpStore %v3 %56 +%72 = OpCompositeConstruct %_arr_mat2v2float_int_3 %63 %66 %71 +OpStore %m1 %72 +OpStore %m2 %72 +%81 = OpCompositeConstruct %_arr_mat2v2float_int_3 %63 %77 %80 +OpStore %m3 %81 +%86 = OpCompositeConstruct %S %int_1 %int_2 +%87 = OpCompositeConstruct %S %int_3 %int_4 +%88 = OpCompositeConstruct %S %int_5 %int_6 +%89 = OpCompositeConstruct %_arr_S_int_3 %86 %87 %88 +OpStore %s1 %89 +%92 = OpCompositeConstruct %S %int_0 %int_0 +%93 = OpCompositeConstruct %_arr_S_int_3 %86 %92 %88 +OpStore %s2 %93 +OpStore %s3 %89 +%96 = OpLoad %_arr_float_int_4 %f1 +%97 = OpLoad %_arr_float_int_4 %f2 +%98 = OpCompositeExtract %float %96 0 +%99 = OpCompositeExtract %float %97 0 +%100 = OpFOrdEqual %bool %98 %99 +%101 = OpCompositeExtract %float %96 1 +%102 = OpCompositeExtract %float %97 1 +%103 = OpFOrdEqual %bool %101 %102 +%104 = OpLogicalAnd %bool %103 %100 +%105 = OpCompositeExtract %float %96 2 +%106 = OpCompositeExtract %float %97 2 +%107 = OpFOrdEqual %bool %105 %106 +%108 = OpLogicalAnd %bool %107 %104 +%109 = OpCompositeExtract %float %96 3 +%110 = OpCompositeExtract %float %97 3 +%111 = OpFOrdEqual %bool %109 %110 +%112 = OpLogicalAnd %bool %111 %108 +OpSelectionMerge %114 None +OpBranchConditional %112 %113 %114 +%113 = OpLabel +%115 = OpLoad %_arr_float_int_4 %f1 +%116 = OpLoad %_arr_float_int_4 %f3 +%117 = OpCompositeExtract %float %115 0 +%118 = OpCompositeExtract %float %116 0 +%119 = OpFUnordNotEqual %bool %117 %118 +%120 = OpCompositeExtract %float %115 1 +%121 = OpCompositeExtract %float %116 1 +%122 = OpFUnordNotEqual %bool %120 %121 +%123 = OpLogicalOr %bool %122 %119 +%124 = OpCompositeExtract %float %115 2 +%125 = OpCompositeExtract %float %116 2 +%126 = OpFUnordNotEqual %bool %124 %125 +%127 = OpLogicalOr %bool %126 %123 +%128 = OpCompositeExtract %float %115 3 +%129 = OpCompositeExtract %float %116 3 +%130 = OpFUnordNotEqual %bool %128 %129 +%131 = OpLogicalOr %bool %130 %127 +OpBranch %114 +%114 = OpLabel +%132 = OpPhi %bool %false %25 %131 %113 +OpSelectionMerge %134 None +OpBranchConditional %132 %133 %134 +%133 = OpLabel +%135 = OpLoad %_arr_v3int_int_2 %v1 +%136 = OpLoad %_arr_v3int_int_2 %v2 +%137 = OpCompositeExtract %v3int %135 0 +%138 = OpCompositeExtract %v3int %136 0 +%139 = OpIEqual %v3bool %137 %138 +%141 = OpAll %bool %139 +%142 = OpCompositeExtract %v3int %135 1 +%143 = OpCompositeExtract %v3int %136 1 +%144 = OpIEqual %v3bool %142 %143 +%145 = OpAll %bool %144 +%146 = OpLogicalAnd %bool %145 %141 +OpBranch %134 %134 = OpLabel -%136 = OpLoad %_arr_float_int_4 %f1 -%137 = OpLoad %_arr_float_int_4 %f3 -%138 = OpCompositeExtract %float %136 0 -%139 = OpCompositeExtract %float %137 0 -%140 = OpFOrdNotEqual %bool %138 %139 -%141 = OpCompositeExtract %float %136 1 -%142 = OpCompositeExtract %float %137 1 -%143 = OpFOrdNotEqual %bool %141 %142 -%144 = OpLogicalOr %bool %143 %140 -%145 = OpCompositeExtract %float %136 2 -%146 = OpCompositeExtract %float %137 2 -%147 = OpFOrdNotEqual %bool %145 %146 -%148 = OpLogicalOr %bool %147 %144 -%149 = OpCompositeExtract %float %136 3 -%150 = OpCompositeExtract %float %137 3 -%151 = OpFOrdNotEqual %bool %149 %150 -%152 = OpLogicalOr %bool %151 %148 -OpBranch %135 -%135 = OpLabel -%153 = OpPhi %bool %false %25 %152 %134 -OpSelectionMerge %155 None -OpBranchConditional %153 %154 %155 -%154 = OpLabel -%156 = OpLoad %_arr_v3int_int_2 %v1 -%157 = OpLoad %_arr_v3int_int_2 %v2 -%158 = OpCompositeExtract %v3int %156 0 -%159 = OpCompositeExtract %v3int %157 0 -%160 = OpIEqual %v3bool %158 %159 -%162 = OpAll %bool %160 -%163 = OpCompositeExtract %v3int %156 1 -%164 = OpCompositeExtract %v3int %157 1 -%165 = OpIEqual %v3bool %163 %164 -%166 = OpAll %bool %165 -%167 = OpLogicalAnd %bool %166 %162 -OpBranch %155 -%155 = OpLabel -%168 = OpPhi %bool %false %135 %167 %154 -OpSelectionMerge %170 None -OpBranchConditional %168 %169 %170 -%169 = OpLabel -%171 = OpLoad %_arr_v3int_int_2 %v1 -%172 = OpLoad %_arr_v3int_int_2 %v3 -%173 = OpCompositeExtract %v3int %171 0 -%174 = OpCompositeExtract %v3int %172 0 -%175 = OpINotEqual %v3bool %173 %174 -%176 = OpAny %bool %175 -%177 = OpCompositeExtract %v3int %171 1 -%178 = OpCompositeExtract %v3int %172 1 -%179 = OpINotEqual %v3bool %177 %178 -%180 = OpAny %bool %179 -%181 = OpLogicalOr %bool %180 %176 -OpBranch %170 -%170 = OpLabel -%182 = OpPhi %bool %false %155 %181 %169 -OpSelectionMerge %184 None -OpBranchConditional %182 %183 %184 -%183 = OpLabel -%185 = OpLoad %_arr_mat2v2float_int_3 %m1 -%186 = OpLoad %_arr_mat2v2float_int_3 %m2 -%187 = OpCompositeExtract %mat2v2float %185 0 -%188 = OpCompositeExtract %mat2v2float %186 0 -%190 = OpCompositeExtract %v2float %187 0 -%191 = OpCompositeExtract %v2float %188 0 -%192 = OpFOrdEqual %v2bool %190 %191 -%193 = OpAll %bool %192 -%194 = OpCompositeExtract %v2float %187 1 -%195 = OpCompositeExtract %v2float %188 1 -%196 = OpFOrdEqual %v2bool %194 %195 -%197 = OpAll %bool %196 -%198 = OpLogicalAnd %bool %193 %197 -%199 = OpCompositeExtract %mat2v2float %185 1 -%200 = OpCompositeExtract %mat2v2float %186 1 -%201 = OpCompositeExtract %v2float %199 0 -%202 = OpCompositeExtract %v2float %200 0 -%203 = OpFOrdEqual %v2bool %201 %202 -%204 = OpAll %bool %203 -%205 = OpCompositeExtract %v2float %199 1 -%206 = OpCompositeExtract %v2float %200 1 -%207 = OpFOrdEqual %v2bool %205 %206 -%208 = OpAll %bool %207 -%209 = OpLogicalAnd %bool %204 %208 -%210 = OpLogicalAnd %bool %209 %198 -%211 = OpCompositeExtract %mat2v2float %185 2 -%212 = OpCompositeExtract %mat2v2float %186 2 -%213 = OpCompositeExtract %v2float %211 0 -%214 = OpCompositeExtract %v2float %212 0 -%215 = OpFOrdEqual %v2bool %213 %214 -%216 = OpAll %bool %215 -%217 = OpCompositeExtract %v2float %211 1 -%218 = OpCompositeExtract %v2float %212 1 -%219 = OpFOrdEqual %v2bool %217 %218 -%220 = OpAll %bool %219 -%221 = OpLogicalAnd %bool %216 %220 -%222 = OpLogicalAnd %bool %221 %210 -OpBranch %184 -%184 = OpLabel -%223 = OpPhi %bool %false %170 %222 %183 -OpSelectionMerge %225 None -OpBranchConditional %223 %224 %225 -%224 = OpLabel -%226 = OpLoad %_arr_mat2v2float_int_3 %m1 -%227 = OpLoad %_arr_mat2v2float_int_3 %m3 -%228 = OpCompositeExtract %mat2v2float %226 0 -%229 = OpCompositeExtract %mat2v2float %227 0 -%230 = OpCompositeExtract %v2float %228 0 -%231 = OpCompositeExtract %v2float %229 0 -%232 = OpFOrdNotEqual %v2bool %230 %231 -%233 = OpAny %bool %232 -%234 = OpCompositeExtract %v2float %228 1 -%235 = OpCompositeExtract %v2float %229 1 -%236 = OpFOrdNotEqual %v2bool %234 %235 -%237 = OpAny %bool %236 -%238 = OpLogicalOr %bool %233 %237 -%239 = OpCompositeExtract %mat2v2float %226 1 -%240 = OpCompositeExtract %mat2v2float %227 1 -%241 = OpCompositeExtract %v2float %239 0 -%242 = OpCompositeExtract %v2float %240 0 -%243 = OpFOrdNotEqual %v2bool %241 %242 -%244 = OpAny %bool %243 -%245 = OpCompositeExtract %v2float %239 1 -%246 = OpCompositeExtract %v2float %240 1 -%247 = OpFOrdNotEqual %v2bool %245 %246 -%248 = OpAny %bool %247 -%249 = OpLogicalOr %bool %244 %248 -%250 = OpLogicalOr %bool %249 %238 -%251 = OpCompositeExtract %mat2v2float %226 2 -%252 = OpCompositeExtract %mat2v2float %227 2 -%253 = OpCompositeExtract %v2float %251 0 -%254 = OpCompositeExtract %v2float %252 0 -%255 = OpFOrdNotEqual %v2bool %253 %254 -%256 = OpAny %bool %255 -%257 = OpCompositeExtract %v2float %251 1 -%258 = OpCompositeExtract %v2float %252 1 -%259 = OpFOrdNotEqual %v2bool %257 %258 -%260 = OpAny %bool %259 -%261 = OpLogicalOr %bool %256 %260 -%262 = OpLogicalOr %bool %261 %250 -OpBranch %225 -%225 = OpLabel -%263 = OpPhi %bool %false %184 %262 %224 -OpSelectionMerge %265 None -OpBranchConditional %263 %264 %265 -%264 = OpLabel -%266 = OpLoad %_arr_S_int_3 %s1 -%267 = OpLoad %_arr_S_int_3 %s2 -%268 = OpCompositeExtract %S %266 0 -%269 = OpCompositeExtract %S %267 0 -%270 = OpCompositeExtract %int %268 0 -%271 = OpCompositeExtract %int %269 0 -%272 = OpINotEqual %bool %270 %271 -%273 = OpCompositeExtract %int %268 1 -%274 = OpCompositeExtract %int %269 1 -%275 = OpINotEqual %bool %273 %274 -%276 = OpLogicalOr %bool %275 %272 -%277 = OpCompositeExtract %S %266 1 -%278 = OpCompositeExtract %S %267 1 -%279 = OpCompositeExtract %int %277 0 -%280 = OpCompositeExtract %int %278 0 -%281 = OpINotEqual %bool %279 %280 -%282 = OpCompositeExtract %int %277 1 -%283 = OpCompositeExtract %int %278 1 -%284 = OpINotEqual %bool %282 %283 -%285 = OpLogicalOr %bool %284 %281 -%286 = OpLogicalOr %bool %285 %276 -%287 = OpCompositeExtract %S %266 2 -%288 = OpCompositeExtract %S %267 2 -%289 = OpCompositeExtract %int %287 0 -%290 = OpCompositeExtract %int %288 0 -%291 = OpINotEqual %bool %289 %290 -%292 = OpCompositeExtract %int %287 1 -%293 = OpCompositeExtract %int %288 1 -%294 = OpINotEqual %bool %292 %293 -%295 = OpLogicalOr %bool %294 %291 -%296 = OpLogicalOr %bool %295 %286 -OpBranch %265 -%265 = OpLabel -%297 = OpPhi %bool %false %225 %296 %264 -OpSelectionMerge %299 None -OpBranchConditional %297 %298 %299 -%298 = OpLabel -%300 = OpLoad %_arr_S_int_3 %s3 -%301 = OpLoad %_arr_S_int_3 %s1 -%302 = OpCompositeExtract %S %300 0 -%303 = OpCompositeExtract %S %301 0 -%304 = OpCompositeExtract %int %302 0 -%305 = OpCompositeExtract %int %303 0 -%306 = OpIEqual %bool %304 %305 -%307 = OpCompositeExtract %int %302 1 -%308 = OpCompositeExtract %int %303 1 -%309 = OpIEqual %bool %307 %308 -%310 = OpLogicalAnd %bool %309 %306 -%311 = OpCompositeExtract %S %300 1 -%312 = OpCompositeExtract %S %301 1 -%313 = OpCompositeExtract %int %311 0 -%314 = OpCompositeExtract %int %312 0 -%315 = OpIEqual %bool %313 %314 -%316 = OpCompositeExtract %int %311 1 -%317 = OpCompositeExtract %int %312 1 -%318 = OpIEqual %bool %316 %317 -%319 = OpLogicalAnd %bool %318 %315 -%320 = OpLogicalAnd %bool %319 %310 -%321 = OpCompositeExtract %S %300 2 -%322 = OpCompositeExtract %S %301 2 -%323 = OpCompositeExtract %int %321 0 -%324 = OpCompositeExtract %int %322 0 -%325 = OpIEqual %bool %323 %324 -%326 = OpCompositeExtract %int %321 1 -%327 = OpCompositeExtract %int %322 1 -%328 = OpIEqual %bool %326 %327 -%329 = OpLogicalAnd %bool %328 %325 -%330 = OpLogicalAnd %bool %329 %320 -OpBranch %299 -%299 = OpLabel -%331 = OpPhi %bool %false %265 %330 %298 -OpSelectionMerge %336 None -OpBranchConditional %331 %334 %335 -%334 = OpLabel -%337 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%339 = OpLoad %v4float %337 -OpStore %332 %339 -OpBranch %336 -%335 = OpLabel -%340 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%341 = OpLoad %v4float %340 -OpStore %332 %341 -OpBranch %336 -%336 = OpLabel -%342 = OpLoad %v4float %332 -OpReturnValue %342 +%147 = OpPhi %bool %false %114 %146 %133 +OpSelectionMerge %149 None +OpBranchConditional %147 %148 %149 +%148 = OpLabel +%150 = OpLoad %_arr_v3int_int_2 %v1 +%151 = OpLoad %_arr_v3int_int_2 %v3 +%152 = OpCompositeExtract %v3int %150 0 +%153 = OpCompositeExtract %v3int %151 0 +%154 = OpINotEqual %v3bool %152 %153 +%155 = OpAny %bool %154 +%156 = OpCompositeExtract %v3int %150 1 +%157 = OpCompositeExtract %v3int %151 1 +%158 = OpINotEqual %v3bool %156 %157 +%159 = OpAny %bool %158 +%160 = OpLogicalOr %bool %159 %155 +OpBranch %149 +%149 = OpLabel +%161 = OpPhi %bool %false %134 %160 %148 +OpSelectionMerge %163 None +OpBranchConditional %161 %162 %163 +%162 = OpLabel +%164 = OpLoad %_arr_mat2v2float_int_3 %m1 +%165 = OpLoad %_arr_mat2v2float_int_3 %m2 +%166 = OpCompositeExtract %mat2v2float %164 0 +%167 = OpCompositeExtract %mat2v2float %165 0 +%169 = OpCompositeExtract %v2float %166 0 +%170 = OpCompositeExtract %v2float %167 0 +%171 = OpFOrdEqual %v2bool %169 %170 +%172 = OpAll %bool %171 +%173 = OpCompositeExtract %v2float %166 1 +%174 = OpCompositeExtract %v2float %167 1 +%175 = OpFOrdEqual %v2bool %173 %174 +%176 = OpAll %bool %175 +%177 = OpLogicalAnd %bool %172 %176 +%178 = OpCompositeExtract %mat2v2float %164 1 +%179 = OpCompositeExtract %mat2v2float %165 1 +%180 = OpCompositeExtract %v2float %178 0 +%181 = OpCompositeExtract %v2float %179 0 +%182 = OpFOrdEqual %v2bool %180 %181 +%183 = OpAll %bool %182 +%184 = OpCompositeExtract %v2float %178 1 +%185 = OpCompositeExtract %v2float %179 1 +%186 = OpFOrdEqual %v2bool %184 %185 +%187 = OpAll %bool %186 +%188 = OpLogicalAnd %bool %183 %187 +%189 = OpLogicalAnd %bool %188 %177 +%190 = OpCompositeExtract %mat2v2float %164 2 +%191 = OpCompositeExtract %mat2v2float %165 2 +%192 = OpCompositeExtract %v2float %190 0 +%193 = OpCompositeExtract %v2float %191 0 +%194 = OpFOrdEqual %v2bool %192 %193 +%195 = OpAll %bool %194 +%196 = OpCompositeExtract %v2float %190 1 +%197 = OpCompositeExtract %v2float %191 1 +%198 = OpFOrdEqual %v2bool %196 %197 +%199 = OpAll %bool %198 +%200 = OpLogicalAnd %bool %195 %199 +%201 = OpLogicalAnd %bool %200 %189 +OpBranch %163 +%163 = OpLabel +%202 = OpPhi %bool %false %149 %201 %162 +OpSelectionMerge %204 None +OpBranchConditional %202 %203 %204 +%203 = OpLabel +%205 = OpLoad %_arr_mat2v2float_int_3 %m1 +%206 = OpLoad %_arr_mat2v2float_int_3 %m3 +%207 = OpCompositeExtract %mat2v2float %205 0 +%208 = OpCompositeExtract %mat2v2float %206 0 +%209 = OpCompositeExtract %v2float %207 0 +%210 = OpCompositeExtract %v2float %208 0 +%211 = OpFUnordNotEqual %v2bool %209 %210 +%212 = OpAny %bool %211 +%213 = OpCompositeExtract %v2float %207 1 +%214 = OpCompositeExtract %v2float %208 1 +%215 = OpFUnordNotEqual %v2bool %213 %214 +%216 = OpAny %bool %215 +%217 = OpLogicalOr %bool %212 %216 +%218 = OpCompositeExtract %mat2v2float %205 1 +%219 = OpCompositeExtract %mat2v2float %206 1 +%220 = OpCompositeExtract %v2float %218 0 +%221 = OpCompositeExtract %v2float %219 0 +%222 = OpFUnordNotEqual %v2bool %220 %221 +%223 = OpAny %bool %222 +%224 = OpCompositeExtract %v2float %218 1 +%225 = OpCompositeExtract %v2float %219 1 +%226 = OpFUnordNotEqual %v2bool %224 %225 +%227 = OpAny %bool %226 +%228 = OpLogicalOr %bool %223 %227 +%229 = OpLogicalOr %bool %228 %217 +%230 = OpCompositeExtract %mat2v2float %205 2 +%231 = OpCompositeExtract %mat2v2float %206 2 +%232 = OpCompositeExtract %v2float %230 0 +%233 = OpCompositeExtract %v2float %231 0 +%234 = OpFUnordNotEqual %v2bool %232 %233 +%235 = OpAny %bool %234 +%236 = OpCompositeExtract %v2float %230 1 +%237 = OpCompositeExtract %v2float %231 1 +%238 = OpFUnordNotEqual %v2bool %236 %237 +%239 = OpAny %bool %238 +%240 = OpLogicalOr %bool %235 %239 +%241 = OpLogicalOr %bool %240 %229 +OpBranch %204 +%204 = OpLabel +%242 = OpPhi %bool %false %163 %241 %203 +OpSelectionMerge %244 None +OpBranchConditional %242 %243 %244 +%243 = OpLabel +%245 = OpLoad %_arr_S_int_3 %s1 +%246 = OpLoad %_arr_S_int_3 %s2 +%247 = OpCompositeExtract %S %245 0 +%248 = OpCompositeExtract %S %246 0 +%249 = OpCompositeExtract %int %247 0 +%250 = OpCompositeExtract %int %248 0 +%251 = OpINotEqual %bool %249 %250 +%252 = OpCompositeExtract %int %247 1 +%253 = OpCompositeExtract %int %248 1 +%254 = OpINotEqual %bool %252 %253 +%255 = OpLogicalOr %bool %254 %251 +%256 = OpCompositeExtract %S %245 1 +%257 = OpCompositeExtract %S %246 1 +%258 = OpCompositeExtract %int %256 0 +%259 = OpCompositeExtract %int %257 0 +%260 = OpINotEqual %bool %258 %259 +%261 = OpCompositeExtract %int %256 1 +%262 = OpCompositeExtract %int %257 1 +%263 = OpINotEqual %bool %261 %262 +%264 = OpLogicalOr %bool %263 %260 +%265 = OpLogicalOr %bool %264 %255 +%266 = OpCompositeExtract %S %245 2 +%267 = OpCompositeExtract %S %246 2 +%268 = OpCompositeExtract %int %266 0 +%269 = OpCompositeExtract %int %267 0 +%270 = OpINotEqual %bool %268 %269 +%271 = OpCompositeExtract %int %266 1 +%272 = OpCompositeExtract %int %267 1 +%273 = OpINotEqual %bool %271 %272 +%274 = OpLogicalOr %bool %273 %270 +%275 = OpLogicalOr %bool %274 %265 +OpBranch %244 +%244 = OpLabel +%276 = OpPhi %bool %false %204 %275 %243 +OpSelectionMerge %278 None +OpBranchConditional %276 %277 %278 +%277 = OpLabel +%279 = OpLoad %_arr_S_int_3 %s3 +%280 = OpLoad %_arr_S_int_3 %s1 +%281 = OpCompositeExtract %S %279 0 +%282 = OpCompositeExtract %S %280 0 +%283 = OpCompositeExtract %int %281 0 +%284 = OpCompositeExtract %int %282 0 +%285 = OpIEqual %bool %283 %284 +%286 = OpCompositeExtract %int %281 1 +%287 = OpCompositeExtract %int %282 1 +%288 = OpIEqual %bool %286 %287 +%289 = OpLogicalAnd %bool %288 %285 +%290 = OpCompositeExtract %S %279 1 +%291 = OpCompositeExtract %S %280 1 +%292 = OpCompositeExtract %int %290 0 +%293 = OpCompositeExtract %int %291 0 +%294 = OpIEqual %bool %292 %293 +%295 = OpCompositeExtract %int %290 1 +%296 = OpCompositeExtract %int %291 1 +%297 = OpIEqual %bool %295 %296 +%298 = OpLogicalAnd %bool %297 %294 +%299 = OpLogicalAnd %bool %298 %289 +%300 = OpCompositeExtract %S %279 2 +%301 = OpCompositeExtract %S %280 2 +%302 = OpCompositeExtract %int %300 0 +%303 = OpCompositeExtract %int %301 0 +%304 = OpIEqual %bool %302 %303 +%305 = OpCompositeExtract %int %300 1 +%306 = OpCompositeExtract %int %301 1 +%307 = OpIEqual %bool %305 %306 +%308 = OpLogicalAnd %bool %307 %304 +%309 = OpLogicalAnd %bool %308 %299 +OpBranch %278 +%278 = OpLabel +%310 = OpPhi %bool %false %244 %309 %277 +OpSelectionMerge %315 None +OpBranchConditional %310 %313 %314 +%313 = OpLabel +%316 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%318 = OpLoad %v4float %316 +OpStore %311 %318 +OpBranch %315 +%314 = OpLabel +%319 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%320 = OpLoad %v4float %319 +OpStore %311 %320 +OpBranch %315 +%315 = OpLabel +%321 = OpLoad %v4float %311 +OpReturnValue %321 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/ArrayConstructors.asm.frag b/third_party/skia/tests/sksl/shared/ArrayConstructors.asm.frag index 580cac234b8a..b3a77039087b 100644 --- a/third_party/skia/tests/sksl/shared/ArrayConstructors.asm.frag +++ b/third_party/skia/tests/sksl/shared/ArrayConstructors.asm.frag @@ -42,8 +42,8 @@ OpDecorate %80 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -65,6 +65,11 @@ OpDecorate %80 RelaxedPrecision %_arr_mat4v4float_int_1 = OpTypeArray %mat4v4float %int_1 %_ptr_Function__arr_mat4v4float_int_1 = OpTypePointer Function %_arr_mat4v4float_int_1 %float_16 = OpConstant %float 16 +%49 = OpConstantComposite %v4float %float_16 %float_0 %float_0 %float_0 +%50 = OpConstantComposite %v4float %float_0 %float_16 %float_0 %float_0 +%51 = OpConstantComposite %v4float %float_0 %float_0 %float_16 %float_0 +%52 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_16 +%53 = OpConstantComposite %mat4v4float %49 %50 %51 %52 %int_3 = OpConstant %int 3 %_ptr_Function_float = OpTypePointer Function %float %int_0 = OpConstant %int 0 @@ -90,12 +95,7 @@ OpFunctionEnd OpStore %test1 %35 %42 = OpCompositeConstruct %_arr_v2float_int_2 %40 %41 OpStore %test2 %42 -%50 = OpCompositeConstruct %v4float %float_16 %float_0 %float_0 %float_0 -%51 = OpCompositeConstruct %v4float %float_0 %float_16 %float_0 %float_0 -%52 = OpCompositeConstruct %v4float %float_0 %float_0 %float_16 %float_0 -%53 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_16 -%49 = OpCompositeConstruct %mat4v4float %50 %51 %52 %53 -%54 = OpCompositeConstruct %_arr_mat4v4float_int_1 %49 +%54 = OpCompositeConstruct %_arr_mat4v4float_int_1 %53 OpStore %test3 %54 %56 = OpAccessChain %_ptr_Function_float %test1 %int_3 %58 = OpLoad %float %56 diff --git a/third_party/skia/tests/sksl/shared/ArrayFollowedByScalar.asm.frag b/third_party/skia/tests/sksl/shared/ArrayFollowedByScalar.asm.frag index d2e794ef8f2f..f4eafeb878d1 100644 --- a/third_party/skia/tests/sksl/shared/ArrayFollowedByScalar.asm.frag +++ b/third_party/skia/tests/sksl/shared/ArrayFollowedByScalar.asm.frag @@ -30,8 +30,8 @@ OpDecorate %44 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/ArrayNarrowingConversions.asm.frag b/third_party/skia/tests/sksl/shared/ArrayNarrowingConversions.asm.frag index 71c54e88a0cb..acf67f1b77cf 100644 --- a/third_party/skia/tests/sksl/shared/ArrayNarrowingConversions.asm.frag +++ b/third_party/skia/tests/sksl/shared/ArrayNarrowingConversions.asm.frag @@ -28,18 +28,18 @@ OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %_arr_int_int_2 ArrayStride 16 OpDecorate %s2 RelaxedPrecision -OpDecorate %35 RelaxedPrecision +OpDecorate %34 RelaxedPrecision OpDecorate %_arr_float_int_2 ArrayStride 16 OpDecorate %h2 RelaxedPrecision -OpDecorate %44 RelaxedPrecision +OpDecorate %42 RelaxedPrecision +OpDecorate %43 RelaxedPrecision OpDecorate %45 RelaxedPrecision -OpDecorate %47 RelaxedPrecision -OpDecorate %53 RelaxedPrecision -OpDecorate %64 RelaxedPrecision -OpDecorate %87 RelaxedPrecision -OpDecorate %105 RelaxedPrecision -OpDecorate %107 RelaxedPrecision -OpDecorate %108 RelaxedPrecision +OpDecorate %50 RelaxedPrecision +OpDecorate %61 RelaxedPrecision +OpDecorate %83 RelaxedPrecision +OpDecorate %101 RelaxedPrecision +OpDecorate %103 RelaxedPrecision +OpDecorate %104 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -52,8 +52,8 @@ OpDecorate %108 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -62,12 +62,10 @@ OpDecorate %108 RelaxedPrecision %_arr_int_int_2 = OpTypeArray %int %int_2 %_ptr_Function__arr_int_int_2 = OpTypePointer Function %_arr_int_int_2 %int_1 = OpConstant %int 1 -%_ptr_Function__arr_int_int_2_0 = OpTypePointer Function %_arr_int_int_2 %_arr_float_int_2 = OpTypeArray %float %int_2 %_ptr_Function__arr_float_int_2 = OpTypePointer Function %_arr_float_int_2 %float_1 = OpConstant %float 1 %float_2 = OpConstant %float 2 -%_ptr_Function__arr_float_int_2_0 = OpTypePointer Function %_arr_float_int_2 %false = OpConstantFalse %bool %_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float @@ -84,96 +82,94 @@ OpFunctionEnd %24 = OpFunctionParameter %_ptr_Function_v2float %25 = OpLabel %i2 = OpVariable %_ptr_Function__arr_int_int_2 Function -%s2 = OpVariable %_ptr_Function__arr_int_int_2_0 Function +%s2 = OpVariable %_ptr_Function__arr_int_int_2 Function %f2 = OpVariable %_ptr_Function__arr_float_int_2 Function -%h2 = OpVariable %_ptr_Function__arr_float_int_2_0 Function +%h2 = OpVariable %_ptr_Function__arr_float_int_2 Function %cf2 = OpVariable %_ptr_Function__arr_float_int_2 Function -%97 = OpVariable %_ptr_Function_v4float Function +%93 = OpVariable %_ptr_Function_v4float Function %32 = OpCompositeConstruct %_arr_int_int_2 %int_1 %int_2 OpStore %i2 %32 -%35 = OpCompositeConstruct %_arr_int_int_2 %int_1 %int_2 -OpStore %s2 %35 -%41 = OpCompositeConstruct %_arr_float_int_2 %float_1 %float_2 -OpStore %f2 %41 -%44 = OpCompositeConstruct %_arr_float_int_2 %float_1 %float_2 -OpStore %h2 %44 -%45 = OpLoad %_arr_int_int_2 %s2 -OpStore %i2 %45 -%46 = OpLoad %_arr_int_int_2 %i2 -OpStore %s2 %46 -%47 = OpLoad %_arr_float_int_2 %h2 -OpStore %f2 %47 -%48 = OpLoad %_arr_float_int_2 %f2 -OpStore %h2 %48 -%50 = OpCompositeConstruct %_arr_float_int_2 %float_1 %float_2 -OpStore %cf2 %50 -%52 = OpLoad %_arr_int_int_2 %i2 -%53 = OpLoad %_arr_int_int_2 %s2 -%54 = OpCompositeExtract %int %52 0 -%55 = OpCompositeExtract %int %53 0 +%34 = OpCompositeConstruct %_arr_int_int_2 %int_1 %int_2 +OpStore %s2 %34 +%40 = OpCompositeConstruct %_arr_float_int_2 %float_1 %float_2 +OpStore %f2 %40 +%42 = OpCompositeConstruct %_arr_float_int_2 %float_1 %float_2 +OpStore %h2 %42 +%43 = OpLoad %_arr_int_int_2 %s2 +OpStore %i2 %43 +%44 = OpLoad %_arr_int_int_2 %i2 +OpStore %s2 %44 +%45 = OpLoad %_arr_float_int_2 %h2 +OpStore %f2 %45 +%46 = OpLoad %_arr_float_int_2 %f2 +OpStore %h2 %46 +OpStore %cf2 %40 +%49 = OpLoad %_arr_int_int_2 %i2 +%50 = OpLoad %_arr_int_int_2 %s2 +%51 = OpCompositeExtract %int %49 0 +%52 = OpCompositeExtract %int %50 0 +%53 = OpIEqual %bool %51 %52 +%54 = OpCompositeExtract %int %49 1 +%55 = OpCompositeExtract %int %50 1 %56 = OpIEqual %bool %54 %55 -%57 = OpCompositeExtract %int %52 1 -%58 = OpCompositeExtract %int %53 1 -%59 = OpIEqual %bool %57 %58 -%60 = OpLogicalAnd %bool %59 %56 -OpSelectionMerge %62 None -OpBranchConditional %60 %61 %62 -%61 = OpLabel -%63 = OpLoad %_arr_float_int_2 %f2 -%64 = OpLoad %_arr_float_int_2 %h2 -%65 = OpCompositeExtract %float %63 0 -%66 = OpCompositeExtract %float %64 0 +%57 = OpLogicalAnd %bool %56 %53 +OpSelectionMerge %59 None +OpBranchConditional %57 %58 %59 +%58 = OpLabel +%60 = OpLoad %_arr_float_int_2 %f2 +%61 = OpLoad %_arr_float_int_2 %h2 +%62 = OpCompositeExtract %float %60 0 +%63 = OpCompositeExtract %float %61 0 +%64 = OpFOrdEqual %bool %62 %63 +%65 = OpCompositeExtract %float %60 1 +%66 = OpCompositeExtract %float %61 1 %67 = OpFOrdEqual %bool %65 %66 -%68 = OpCompositeExtract %float %63 1 -%69 = OpCompositeExtract %float %64 1 -%70 = OpFOrdEqual %bool %68 %69 -%71 = OpLogicalAnd %bool %70 %67 -OpBranch %62 -%62 = OpLabel -%72 = OpPhi %bool %false %25 %71 %61 -OpSelectionMerge %74 None -OpBranchConditional %72 %73 %74 -%73 = OpLabel -%75 = OpLoad %_arr_int_int_2 %i2 -%76 = OpCompositeConstruct %_arr_int_int_2 %int_1 %int_2 -%77 = OpCompositeExtract %int %75 0 -%78 = OpCompositeExtract %int %76 0 -%79 = OpIEqual %bool %77 %78 -%80 = OpCompositeExtract %int %75 1 -%81 = OpCompositeExtract %int %76 1 -%82 = OpIEqual %bool %80 %81 -%83 = OpLogicalAnd %bool %82 %79 -OpBranch %74 -%74 = OpLabel -%84 = OpPhi %bool %false %62 %83 %73 -OpSelectionMerge %86 None -OpBranchConditional %84 %85 %86 -%85 = OpLabel -%87 = OpLoad %_arr_float_int_2 %h2 -%88 = OpLoad %_arr_float_int_2 %cf2 -%89 = OpCompositeExtract %float %87 0 -%90 = OpCompositeExtract %float %88 0 -%91 = OpFOrdEqual %bool %89 %90 -%92 = OpCompositeExtract %float %87 1 -%93 = OpCompositeExtract %float %88 1 -%94 = OpFOrdEqual %bool %92 %93 -%95 = OpLogicalAnd %bool %94 %91 -OpBranch %86 -%86 = OpLabel -%96 = OpPhi %bool %false %74 %95 %85 -OpSelectionMerge %101 None -OpBranchConditional %96 %99 %100 -%99 = OpLabel -%102 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%105 = OpLoad %v4float %102 -OpStore %97 %105 -OpBranch %101 -%100 = OpLabel -%106 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%107 = OpLoad %v4float %106 -OpStore %97 %107 -OpBranch %101 -%101 = OpLabel -%108 = OpLoad %v4float %97 -OpReturnValue %108 +%68 = OpLogicalAnd %bool %67 %64 +OpBranch %59 +%59 = OpLabel +%69 = OpPhi %bool %false %25 %68 %58 +OpSelectionMerge %71 None +OpBranchConditional %69 %70 %71 +%70 = OpLabel +%72 = OpLoad %_arr_int_int_2 %i2 +%73 = OpCompositeExtract %int %72 0 +%74 = OpCompositeExtract %int %32 0 +%75 = OpIEqual %bool %73 %74 +%76 = OpCompositeExtract %int %72 1 +%77 = OpCompositeExtract %int %32 1 +%78 = OpIEqual %bool %76 %77 +%79 = OpLogicalAnd %bool %78 %75 +OpBranch %71 +%71 = OpLabel +%80 = OpPhi %bool %false %59 %79 %70 +OpSelectionMerge %82 None +OpBranchConditional %80 %81 %82 +%81 = OpLabel +%83 = OpLoad %_arr_float_int_2 %h2 +%84 = OpLoad %_arr_float_int_2 %cf2 +%85 = OpCompositeExtract %float %83 0 +%86 = OpCompositeExtract %float %84 0 +%87 = OpFOrdEqual %bool %85 %86 +%88 = OpCompositeExtract %float %83 1 +%89 = OpCompositeExtract %float %84 1 +%90 = OpFOrdEqual %bool %88 %89 +%91 = OpLogicalAnd %bool %90 %87 +OpBranch %82 +%82 = OpLabel +%92 = OpPhi %bool %false %71 %91 %81 +OpSelectionMerge %97 None +OpBranchConditional %92 %95 %96 +%95 = OpLabel +%98 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%101 = OpLoad %v4float %98 +OpStore %93 %101 +OpBranch %97 +%96 = OpLabel +%102 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%103 = OpLoad %v4float %102 +OpStore %93 %103 +OpBranch %97 +%97 = OpLabel +%104 = OpLoad %v4float %93 +OpReturnValue %104 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/ArrayTypes.asm.frag b/third_party/skia/tests/sksl/shared/ArrayTypes.asm.frag index f49cb87c4999..9dfc95a3e70e 100644 --- a/third_party/skia/tests/sksl/shared/ArrayTypes.asm.frag +++ b/third_party/skia/tests/sksl/shared/ArrayTypes.asm.frag @@ -30,8 +30,8 @@ OpDecorate %99 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %13 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %17 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %S = OpTypeStruct %v2float @@ -39,7 +39,7 @@ OpDecorate %99 RelaxedPrecision %int_2 = OpConstant %int 2 %_arr_S_int_2 = OpTypeArray %S %int_2 %_ptr_Function__arr_S_int_2 = OpTypePointer Function %_arr_S_int_2 -%25 = OpTypeFunction %void %_ptr_Function__arr_S_int_2 +%26 = OpTypeFunction %void %_ptr_Function__arr_S_int_2 %float_1 = OpConstant %float 1 %30 = OpConstantComposite %v2float %float_0 %float_1 %int_0 = OpConstant %int 0 @@ -60,7 +60,7 @@ OpStore %18 %17 OpStore %sk_FragColor %20 OpReturn OpFunctionEnd -%initialize_vS = OpFunction %void None %25 +%initialize_vS = OpFunction %void None %26 %27 = OpFunctionParameter %_ptr_Function__arr_S_int_2 %28 = OpLabel %32 = OpAccessChain %_ptr_Function_v2float %27 %int_0 %int_0 diff --git a/third_party/skia/tests/sksl/shared/Assignment.asm.frag b/third_party/skia/tests/sksl/shared/Assignment.asm.frag index d8ed6a820445..5e808528e843 100644 --- a/third_party/skia/tests/sksl/shared/Assignment.asm.frag +++ b/third_party/skia/tests/sksl/shared/Assignment.asm.frag @@ -50,27 +50,19 @@ OpDecorate %68 RelaxedPrecision OpDecorate %_arr_int_int_1 ArrayStride 16 OpDecorate %_arr_v4int_int_1 ArrayStride 16 OpDecorate %_arr_mat3v3float_int_1 ArrayStride 48 -OpDecorate %80 RelaxedPrecision -OpDecorate %81 RelaxedPrecision -OpDecorate %82 RelaxedPrecision -OpDecorate %83 RelaxedPrecision OpDecorate %_arr_v4float_int_1 ArrayStride 16 -OpDecorate %98 RelaxedPrecision +OpDecorate %96 RelaxedPrecision +OpDecorate %97 RelaxedPrecision OpDecorate %100 RelaxedPrecision OpDecorate %101 RelaxedPrecision -OpDecorate %102 RelaxedPrecision -OpDecorate %104 RelaxedPrecision -OpDecorate %105 RelaxedPrecision -OpDecorate %106 RelaxedPrecision OpDecorate %l RelaxedPrecision -OpDecorate %119 RelaxedPrecision -OpDecorate %125 RelaxedPrecision -OpDecorate %126 RelaxedPrecision -OpDecorate %133 RelaxedPrecision +OpDecorate %121 RelaxedPrecision +OpDecorate %122 RelaxedPrecision +OpDecorate %129 RelaxedPrecision +OpDecorate %130 RelaxedPrecision +OpDecorate %131 RelaxedPrecision OpDecorate %134 RelaxedPrecision -OpDecorate %135 RelaxedPrecision OpDecorate %138 RelaxedPrecision -OpDecorate %142 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -92,8 +84,8 @@ OpDecorate %142 RelaxedPrecision %19 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %24 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %28 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %32 = OpTypeFunction %v4float %_ptr_Function_v2float @@ -118,6 +110,10 @@ OpDecorate %142 RelaxedPrecision %float_7 = OpConstant %float 7 %float_8 = OpConstant %float 8 %float_9 = OpConstant %float 9 +%59 = OpConstantComposite %v3float %float_1 %float_2 %float_3 +%60 = OpConstantComposite %v3float %float_4 %float_5 %float_6 +%61 = OpConstantComposite %v3float %float_7 %float_8 %float_9 +%62 = OpConstantComposite %mat3v3float %59 %60 %61 %_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Function_float = OpTypePointer Function %float %_arr_int_int_1 = OpTypeArray %int %int_1 @@ -128,13 +124,13 @@ OpDecorate %142 RelaxedPrecision %_ptr_Function__arr_mat3v3float_int_1 = OpTypePointer Function %_arr_mat3v3float_int_1 %_arr_v4float_int_1 = OpTypeArray %v4float %int_1 %_ptr_Function__arr_v4float_int_1 = OpTypePointer Function %_arr_v4float_int_1 -%90 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 +%86 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %_ptr_Function_S = OpTypePointer Function %S -%98 = OpConstantComposite %v3float %float_9 %float_9 %float_9 -%102 = OpConstantComposite %v2float %float_5 %float_5 -%106 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 +%94 = OpConstantComposite %v3float %float_9 %float_9 %float_9 +%98 = OpConstantComposite %v2float %float_5 %float_5 +%102 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %_ptr_Private_float = OpTypePointer Private %float -%119 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 +%115 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 %_ptr_Function_v3float = OpTypePointer Function %v3float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %_entrypoint_v = OpFunction %void None %24 @@ -160,10 +156,6 @@ OpFunctionEnd %l = OpVariable %_ptr_Function_float Function OpStore %i %int_0 OpStore %i4 %45 -%59 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3 -%60 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6 -%61 = OpCompositeConstruct %v3float %float_7 %float_8 %float_9 -%62 = OpCompositeConstruct %mat3v3float %59 %60 %61 OpStore %f3x3 %62 %65 = OpAccessChain %_ptr_Function_float %x %int_3 OpStore %65 %float_0 @@ -174,73 +166,69 @@ OpStore %x %68 OpStore %72 %int_0 %76 = OpAccessChain %_ptr_Function_v4int %ai4 %int_0 OpStore %76 %45 -%80 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3 -%81 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6 -%82 = OpCompositeConstruct %v3float %float_7 %float_8 %float_9 -%83 = OpCompositeConstruct %mat3v3float %80 %81 %82 -%84 = OpAccessChain %_ptr_Function_mat3v3float %ah2x4 %int_0 -OpStore %84 %83 -%88 = OpAccessChain %_ptr_Function_v4float %af4 %int_0 -%89 = OpAccessChain %_ptr_Function_float %88 %int_0 -OpStore %89 %float_0 -%91 = OpAccessChain %_ptr_Function_v4float %af4 %int_0 -%92 = OpLoad %v4float %91 -%93 = OpVectorShuffle %v4float %92 %90 6 4 7 5 -OpStore %91 %93 -%96 = OpAccessChain %_ptr_Function_float %s %int_0 -OpStore %96 %float_0 -%97 = OpAccessChain %_ptr_Function_float %s %int_1 %int_1 -OpStore %97 %float_0 -%99 = OpAccessChain %_ptr_Function_v4float %s %int_2 +%80 = OpAccessChain %_ptr_Function_mat3v3float %ah2x4 %int_0 +OpStore %80 %62 +%84 = OpAccessChain %_ptr_Function_v4float %af4 %int_0 +%85 = OpAccessChain %_ptr_Function_float %84 %int_0 +OpStore %85 %float_0 +%87 = OpAccessChain %_ptr_Function_v4float %af4 %int_0 +%88 = OpLoad %v4float %87 +%89 = OpVectorShuffle %v4float %88 %86 6 4 7 5 +OpStore %87 %89 +%92 = OpAccessChain %_ptr_Function_float %s %int_0 +OpStore %92 %float_0 +%93 = OpAccessChain %_ptr_Function_float %s %int_1 %int_1 +OpStore %93 %float_0 +%95 = OpAccessChain %_ptr_Function_v4float %s %int_2 +%96 = OpLoad %v4float %95 +%97 = OpVectorShuffle %v4float %96 %94 5 6 4 3 +OpStore %95 %97 +%99 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_2 %100 = OpLoad %v4float %99 -%101 = OpVectorShuffle %v4float %100 %98 5 6 4 3 +%101 = OpVectorShuffle %v4float %100 %98 0 4 2 5 OpStore %99 %101 -%103 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_2 -%104 = OpLoad %v4float %103 -%105 = OpVectorShuffle %v4float %104 %102 0 4 2 5 -OpStore %103 %105 -OpStore %globalVar %106 -%107 = OpAccessChain %_ptr_Private_float %globalStruct %int_0 -OpStore %107 %float_0 +OpStore %globalVar %102 +%103 = OpAccessChain %_ptr_Private_float %globalStruct %int_0 +OpStore %103 %float_0 OpStore %l %float_0 -%110 = OpAccessChain %_ptr_Function_int %ai %int_0 -%111 = OpLoad %int %110 -%112 = OpAccessChain %_ptr_Function_v4int %ai4 %int_0 -%113 = OpLoad %v4int %112 -%114 = OpCompositeExtract %int %113 0 -%115 = OpIAdd %int %111 %114 -OpStore %110 %115 -%116 = OpAccessChain %_ptr_Function_float %s %int_0 -OpStore %116 %float_1 -%117 = OpAccessChain %_ptr_Function_float %s %int_1 %int_0 -OpStore %117 %float_2 -%118 = OpAccessChain %_ptr_Function_v4float %s %int_2 -OpStore %118 %90 -%120 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_0 -OpStore %120 %119 -%121 = OpAccessChain %_ptr_Function_v4float %af4 %int_0 -%122 = OpLoad %v4float %121 -%123 = OpAccessChain %_ptr_Function_v3float %ah2x4 %int_0 %int_0 -%125 = OpLoad %v3float %123 -%126 = OpCompositeExtract %float %125 0 -%127 = OpVectorTimesScalar %v4float %122 %126 -OpStore %121 %127 -%128 = OpAccessChain %_ptr_Function_int %i4 %int_1 -%129 = OpLoad %int %128 -%130 = OpLoad %int %i -%131 = OpIMul %int %129 %130 +%106 = OpAccessChain %_ptr_Function_int %ai %int_0 +%107 = OpLoad %int %106 +%108 = OpAccessChain %_ptr_Function_v4int %ai4 %int_0 +%109 = OpLoad %v4int %108 +%110 = OpCompositeExtract %int %109 0 +%111 = OpIAdd %int %107 %110 +OpStore %106 %111 +%112 = OpAccessChain %_ptr_Function_float %s %int_0 +OpStore %112 %float_1 +%113 = OpAccessChain %_ptr_Function_float %s %int_1 %int_0 +OpStore %113 %float_2 +%114 = OpAccessChain %_ptr_Function_v4float %s %int_2 +OpStore %114 %86 +%116 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_0 +OpStore %116 %115 +%117 = OpAccessChain %_ptr_Function_v4float %af4 %int_0 +%118 = OpLoad %v4float %117 +%119 = OpAccessChain %_ptr_Function_v3float %ah2x4 %int_0 %int_0 +%121 = OpLoad %v3float %119 +%122 = OpCompositeExtract %float %121 0 +%123 = OpVectorTimesScalar %v4float %118 %122 +OpStore %117 %123 +%124 = OpAccessChain %_ptr_Function_int %i4 %int_1 +%125 = OpLoad %int %124 +%126 = OpLoad %int %i +%127 = OpIMul %int %125 %126 +OpStore %124 %127 +%128 = OpAccessChain %_ptr_Function_float %x %int_1 +%129 = OpLoad %float %128 +%130 = OpLoad %float %l +%131 = OpFMul %float %129 %130 OpStore %128 %131 -%132 = OpAccessChain %_ptr_Function_float %x %int_1 +%132 = OpAccessChain %_ptr_Function_float %s %int_0 %133 = OpLoad %float %132 %134 = OpLoad %float %l %135 = OpFMul %float %133 %134 OpStore %132 %135 -%136 = OpAccessChain %_ptr_Function_float %s %int_0 -%137 = OpLoad %float %136 -%138 = OpLoad %float %l -%139 = OpFMul %float %137 %138 -OpStore %136 %139 -%140 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 -%142 = OpLoad %v4float %140 -OpReturnValue %142 +%136 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 +%138 = OpLoad %v4float %136 +OpReturnValue %138 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/Caps.asm.frag b/third_party/skia/tests/sksl/shared/Caps.asm.frag index 4ba5887f8ba6..4885d3eb633f 100644 --- a/third_party/skia/tests/sksl/shared/Caps.asm.frag +++ b/third_party/skia/tests/sksl/shared/Caps.asm.frag @@ -16,7 +16,7 @@ OpDecorate %sk_Clockwise BuiltIn FrontFacing OpDecorate %21 RelaxedPrecision OpDecorate %23 RelaxedPrecision OpDecorate %25 RelaxedPrecision -OpDecorate %26 RelaxedPrecision +OpDecorate %27 RelaxedPrecision OpDecorate %28 RelaxedPrecision OpDecorate %29 RelaxedPrecision %float = OpTypeFloat 32 @@ -49,9 +49,9 @@ OpStore %z %int_1 %23 = OpConvertSToF %float %22 %24 = OpLoad %int %z %25 = OpConvertSToF %float %24 -%26 = OpCompositeConstruct %v3float %21 %23 %25 +%27 = OpCompositeConstruct %v3float %21 %23 %25 %28 = OpLoad %v4float %sk_FragColor -%29 = OpVectorShuffle %v4float %28 %26 4 5 6 3 +%29 = OpVectorShuffle %v4float %28 %27 4 5 6 3 OpStore %sk_FragColor %29 OpReturn OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/CastsRoundTowardZero.asm.frag b/third_party/skia/tests/sksl/shared/CastsRoundTowardZero.asm.frag index 2fbcfe687319..06f0c42ecffc 100644 --- a/third_party/skia/tests/sksl/shared/CastsRoundTowardZero.asm.frag +++ b/third_party/skia/tests/sksl/shared/CastsRoundTowardZero.asm.frag @@ -38,8 +38,8 @@ OpDecorate %43 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/CommaMixedTypes.asm.frag b/third_party/skia/tests/sksl/shared/CommaMixedTypes.asm.frag index cb666b6eb337..faddb69d01e0 100644 --- a/third_party/skia/tests/sksl/shared/CommaMixedTypes.asm.frag +++ b/third_party/skia/tests/sksl/shared/CommaMixedTypes.asm.frag @@ -43,8 +43,8 @@ OpDecorate %51 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/CommaSideEffects.asm.frag b/third_party/skia/tests/sksl/shared/CommaSideEffects.asm.frag index 42da5a8364c0..5588d3351251 100644 --- a/third_party/skia/tests/sksl/shared/CommaSideEffects.asm.frag +++ b/third_party/skia/tests/sksl/shared/CommaSideEffects.asm.frag @@ -77,12 +77,12 @@ OpDecorate %103 RelaxedPrecision %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %16 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %20 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %_ptr_Function_v4float = OpTypePointer Function %v4float -%24 = OpTypeFunction %void %_ptr_Function_v4float +%25 = OpTypeFunction %void %_ptr_Function_v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_3 = OpConstant %int 3 @@ -100,7 +100,7 @@ OpStore %21 %20 OpStore %sk_FragColor %23 OpReturn OpFunctionEnd -%setToColorBlack_vh4 = OpFunction %void None %24 +%setToColorBlack_vh4 = OpFunction %void None %25 %26 = OpFunctionParameter %_ptr_Function_v4float %27 = OpLabel %28 = OpAccessChain %_ptr_Uniform_v4float %11 %int_3 diff --git a/third_party/skia/tests/sksl/shared/ComplexDelete.asm.frag b/third_party/skia/tests/sksl/shared/ComplexDelete.asm.frag index d546cf668f53..4bccf3f2ab7b 100644 --- a/third_party/skia/tests/sksl/shared/ComplexDelete.asm.frag +++ b/third_party/skia/tests/sksl/shared/ComplexDelete.asm.frag @@ -31,8 +31,8 @@ OpDecorate %24 RelaxedPrecision %bool = OpTypeBool %_ptr_Input_bool = OpTypePointer Input %bool %sk_Clockwise = OpVariable %_ptr_Input_bool Input -%13 = OpTypeImage %float 2D 0 0 0 1 Unknown -%12 = OpTypeSampledImage %13 +%11 = OpTypeImage %float 2D 0 0 0 1 Unknown +%12 = OpTypeSampledImage %11 %_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 %s = OpVariable %_ptr_UniformConstant_12 UniformConstant %mat4v4float = OpTypeMatrix %v4float 4 @@ -42,80 +42,76 @@ OpDecorate %24 RelaxedPrecision %void = OpTypeVoid %19 = OpTypeFunction %void %_ptr_Function_v4float = OpTypePointer Function %v4float -%v2float = OpTypeVector %float 2 %float_1 = OpConstant %float 1 +%v2float = OpTypeVector %float 2 %27 = OpConstantComposite %v2float %float_1 %float_1 %_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %float_0 = OpConstant %float 0 +%34 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_0 +%35 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_0 +%36 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_0 +%37 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 +%38 = OpConstantComposite %mat4v4float %34 %35 %36 %37 %v4bool = OpTypeVector %bool 4 %v3float = OpTypeVector %float 3 +%71 = OpConstantComposite %v3float %float_0 %float_0 %float_0 %main = OpFunction %void None %19 %20 = OpLabel %tmpColor = OpVariable %_ptr_Function_v4float Function -%59 = OpVariable %_ptr_Function_v4float Function +%55 = OpVariable %_ptr_Function_v4float Function %24 = OpLoad %12 %s %23 = OpImageSampleImplicitLod %v4float %24 %27 OpStore %tmpColor %23 %28 = OpAccessChain %_ptr_Uniform_mat4v4float %14 %int_0 %32 = OpLoad %mat4v4float %28 -%35 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0 -%36 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0 -%37 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0 -%38 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 -%33 = OpCompositeConstruct %mat4v4float %35 %36 %37 %38 %40 = OpCompositeExtract %v4float %32 0 -%41 = OpCompositeExtract %v4float %33 0 -%42 = OpFOrdNotEqual %v4bool %40 %41 -%43 = OpAny %bool %42 -%44 = OpCompositeExtract %v4float %32 1 -%45 = OpCompositeExtract %v4float %33 1 -%46 = OpFOrdNotEqual %v4bool %44 %45 -%47 = OpAny %bool %46 -%48 = OpLogicalOr %bool %43 %47 -%49 = OpCompositeExtract %v4float %32 2 -%50 = OpCompositeExtract %v4float %33 2 -%51 = OpFOrdNotEqual %v4bool %49 %50 -%52 = OpAny %bool %51 -%53 = OpLogicalOr %bool %48 %52 -%54 = OpCompositeExtract %v4float %32 3 -%55 = OpCompositeExtract %v4float %33 3 -%56 = OpFOrdNotEqual %v4bool %54 %55 -%57 = OpAny %bool %56 -%58 = OpLogicalOr %bool %53 %57 -OpSelectionMerge %62 None -OpBranchConditional %58 %60 %61 -%60 = OpLabel -%64 = OpAccessChain %_ptr_Uniform_mat4v4float %14 %int_0 -%65 = OpLoad %mat4v4float %64 -%66 = OpLoad %v4float %tmpColor -%67 = OpVectorShuffle %v3float %66 %66 0 1 2 -%69 = OpCompositeExtract %float %67 0 -%70 = OpCompositeExtract %float %67 1 -%71 = OpCompositeExtract %float %67 2 -%72 = OpCompositeConstruct %v4float %69 %70 %71 %float_1 -%73 = OpMatrixTimesVector %v4float %65 %72 -%74 = OpVectorShuffle %v3float %73 %73 0 1 2 -%75 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0 -%76 = OpLoad %v4float %tmpColor -%77 = OpCompositeExtract %float %76 3 -%78 = OpCompositeConstruct %v3float %77 %77 %77 -%63 = OpExtInst %v3float %1 FClamp %74 %75 %78 -%79 = OpCompositeExtract %float %63 0 -%80 = OpCompositeExtract %float %63 1 -%81 = OpCompositeExtract %float %63 2 -%82 = OpLoad %v4float %tmpColor -%83 = OpCompositeExtract %float %82 3 -%84 = OpCompositeConstruct %v4float %79 %80 %81 %83 -OpStore %59 %84 -OpBranch %62 -%61 = OpLabel -%85 = OpLoad %v4float %tmpColor -OpStore %59 %85 -OpBranch %62 -%62 = OpLabel -%86 = OpLoad %v4float %59 -OpStore %sk_FragColor %86 +%41 = OpFUnordNotEqual %v4bool %40 %34 +%42 = OpAny %bool %41 +%43 = OpCompositeExtract %v4float %32 1 +%44 = OpFUnordNotEqual %v4bool %43 %35 +%45 = OpAny %bool %44 +%46 = OpLogicalOr %bool %42 %45 +%47 = OpCompositeExtract %v4float %32 2 +%48 = OpFUnordNotEqual %v4bool %47 %36 +%49 = OpAny %bool %48 +%50 = OpLogicalOr %bool %46 %49 +%51 = OpCompositeExtract %v4float %32 3 +%52 = OpFUnordNotEqual %v4bool %51 %37 +%53 = OpAny %bool %52 +%54 = OpLogicalOr %bool %50 %53 +OpSelectionMerge %58 None +OpBranchConditional %54 %56 %57 +%56 = OpLabel +%60 = OpAccessChain %_ptr_Uniform_mat4v4float %14 %int_0 +%61 = OpLoad %mat4v4float %60 +%62 = OpLoad %v4float %tmpColor +%63 = OpVectorShuffle %v3float %62 %62 0 1 2 +%65 = OpCompositeExtract %float %63 0 +%66 = OpCompositeExtract %float %63 1 +%67 = OpCompositeExtract %float %63 2 +%68 = OpCompositeConstruct %v4float %65 %66 %67 %float_1 +%69 = OpMatrixTimesVector %v4float %61 %68 +%70 = OpVectorShuffle %v3float %69 %69 0 1 2 +%72 = OpLoad %v4float %tmpColor +%73 = OpCompositeExtract %float %72 3 +%74 = OpCompositeConstruct %v3float %73 %73 %73 +%59 = OpExtInst %v3float %1 FClamp %70 %71 %74 +%75 = OpCompositeExtract %float %59 0 +%76 = OpCompositeExtract %float %59 1 +%77 = OpCompositeExtract %float %59 2 +%78 = OpLoad %v4float %tmpColor +%79 = OpCompositeExtract %float %78 3 +%80 = OpCompositeConstruct %v4float %75 %76 %77 %79 +OpStore %55 %80 +OpBranch %58 +%57 = OpLabel +%81 = OpLoad %v4float %tmpColor +OpStore %55 %81 +OpBranch %58 +%58 = OpLabel +%82 = OpLoad %v4float %55 +OpStore %sk_FragColor %82 OpReturn OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/ConstArray.asm.frag b/third_party/skia/tests/sksl/shared/ConstArray.asm.frag index 52204f0063a4..2981be413049 100644 --- a/third_party/skia/tests/sksl/shared/ConstArray.asm.frag +++ b/third_party/skia/tests/sksl/shared/ConstArray.asm.frag @@ -11,7 +11,6 @@ OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpDecorate %sk_Clockwise BuiltIn FrontFacing -OpDecorate %24 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -21,8 +20,8 @@ OpDecorate %24 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/ConstVariableComparison.asm.frag b/third_party/skia/tests/sksl/shared/ConstVariableComparison.asm.frag index c5f68ea607ae..33146296e933 100644 --- a/third_party/skia/tests/sksl/shared/ConstVariableComparison.asm.frag +++ b/third_party/skia/tests/sksl/shared/ConstVariableComparison.asm.frag @@ -34,8 +34,8 @@ OpDecorate %30 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/ConstantIf.asm.frag b/third_party/skia/tests/sksl/shared/ConstantIf.asm.frag index faa820192e57..fb1302e47cf1 100644 --- a/third_party/skia/tests/sksl/shared/ConstantIf.asm.frag +++ b/third_party/skia/tests/sksl/shared/ConstantIf.asm.frag @@ -40,8 +40,8 @@ OpDecorate %64 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/Control.asm.frag b/third_party/skia/tests/sksl/shared/Control.asm.frag index 0975b334e562..1c6ce0eec892 100644 --- a/third_party/skia/tests/sksl/shared/Control.asm.frag +++ b/third_party/skia/tests/sksl/shared/Control.asm.frag @@ -18,11 +18,9 @@ OpMemberDecorate %_UniformBuffer 0 Offset 0 OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 -OpDecorate %27 RelaxedPrecision OpDecorate %38 RelaxedPrecision OpDecorate %40 RelaxedPrecision OpDecorate %49 RelaxedPrecision -OpDecorate %51 RelaxedPrecision OpDecorate %52 RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %54 RelaxedPrecision @@ -49,6 +47,7 @@ OpDecorate %54 RelaxedPrecision %float_0_5 = OpConstant %float 0.5 %int_1 = OpConstant %int 1 %float_0_25 = OpConstant %float 0.25 +%51 = OpConstantComposite %v4float %float_0_25 %float_0_25 %float_0_25 %float_0_25 %int_2 = OpConstant %int 2 %int_100 = OpConstant %int 100 %main = OpFunction %void None %14 @@ -92,7 +91,6 @@ OpLoopMerge %48 %47 None OpBranch %45 %45 = OpLabel %49 = OpLoad %v4float %sk_FragColor -%51 = OpCompositeConstruct %v4float %float_0_25 %float_0_25 %float_0_25 %float_0_25 %52 = OpFAdd %v4float %49 %51 OpStore %sk_FragColor %52 OpBranch %46 diff --git a/third_party/skia/tests/sksl/shared/DeadDoWhileLoop.asm.frag b/third_party/skia/tests/sksl/shared/DeadDoWhileLoop.asm.frag index 32499118a56d..929bc8808b5d 100644 --- a/third_party/skia/tests/sksl/shared/DeadDoWhileLoop.asm.frag +++ b/third_party/skia/tests/sksl/shared/DeadDoWhileLoop.asm.frag @@ -10,7 +10,6 @@ OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpDecorate %sk_Clockwise BuiltIn FrontFacing -OpDecorate %19 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float diff --git a/third_party/skia/tests/sksl/shared/DeadIfStatement.asm.frag b/third_party/skia/tests/sksl/shared/DeadIfStatement.asm.frag index c5f68ea607ae..33146296e933 100644 --- a/third_party/skia/tests/sksl/shared/DeadIfStatement.asm.frag +++ b/third_party/skia/tests/sksl/shared/DeadIfStatement.asm.frag @@ -34,8 +34,8 @@ OpDecorate %30 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/DeadLoopVariable.asm.frag b/third_party/skia/tests/sksl/shared/DeadLoopVariable.asm.frag index 5c8ff169c826..1f7242913fcb 100644 --- a/third_party/skia/tests/sksl/shared/DeadLoopVariable.asm.frag +++ b/third_party/skia/tests/sksl/shared/DeadLoopVariable.asm.frag @@ -32,8 +32,8 @@ OpDecorate %40 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/DeadReturn.asm.frag b/third_party/skia/tests/sksl/shared/DeadReturn.asm.frag index 049457f02a96..9b6f76b33d77 100644 --- a/third_party/skia/tests/sksl/shared/DeadReturn.asm.frag +++ b/third_party/skia/tests/sksl/shared/DeadReturn.asm.frag @@ -52,8 +52,8 @@ OpDecorate %103 RelaxedPrecision %18 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %23 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %27 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %31 = OpTypeFunction %bool diff --git a/third_party/skia/tests/sksl/shared/DeadReturnES3.asm.frag b/third_party/skia/tests/sksl/shared/DeadReturnES3.asm.frag index 689a572dfcd3..0f8682457423 100644 --- a/third_party/skia/tests/sksl/shared/DeadReturnES3.asm.frag +++ b/third_party/skia/tests/sksl/shared/DeadReturnES3.asm.frag @@ -51,8 +51,8 @@ OpDecorate %149 RelaxedPrecision %18 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %23 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %27 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %31 = OpTypeFunction %bool diff --git a/third_party/skia/tests/sksl/shared/DeadStripFunctions.asm.frag b/third_party/skia/tests/sksl/shared/DeadStripFunctions.asm.frag index 2ff8c1a6bf07..cda078d29bbf 100644 --- a/third_party/skia/tests/sksl/shared/DeadStripFunctions.asm.frag +++ b/third_party/skia/tests/sksl/shared/DeadStripFunctions.asm.frag @@ -42,11 +42,7 @@ OpDecorate %50 RelaxedPrecision OpDecorate %51 RelaxedPrecision OpDecorate %a RelaxedPrecision OpDecorate %b RelaxedPrecision -OpDecorate %58 RelaxedPrecision -OpDecorate %61 RelaxedPrecision -OpDecorate %64 RelaxedPrecision OpDecorate %68 RelaxedPrecision -OpDecorate %69 RelaxedPrecision OpDecorate %75 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %90 RelaxedPrecision @@ -63,12 +59,12 @@ OpDecorate %91 RelaxedPrecision %12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %17 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %21 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %_ptr_Function_v4float = OpTypePointer Function %v4float -%25 = OpTypeFunction %v4float %_ptr_Function_v4float +%26 = OpTypeFunction %v4float %_ptr_Function_v4float %v3float = OpTypeVector %float 3 %float_9_99999975en05 = OpConstant %float 9.99999975e-05 %float_1 = OpConstant %float 1 @@ -94,7 +90,7 @@ OpStore %22 %21 OpStore %sk_FragColor %24 OpReturn OpFunctionEnd -%unpremul_h4h4 = OpFunction %v4float None %25 +%unpremul_h4h4 = OpFunction %v4float None %26 %27 = OpFunctionParameter %_ptr_Function_v4float %28 = OpLabel %29 = OpLoad %v4float %27 @@ -138,13 +134,13 @@ OpStore %65 %64 %66 = OpFunctionCall %v4float %unpremul_h4h4 %65 OpStore %b %66 %68 = OpLoad %v4float %a -%70 = OpFOrdNotEqual %v4bool %68 %69 +%70 = OpFUnordNotEqual %v4bool %68 %69 %72 = OpAny %bool %70 OpSelectionMerge %74 None OpBranchConditional %72 %73 %74 %73 = OpLabel %75 = OpLoad %v4float %b -%76 = OpFOrdNotEqual %v4bool %75 %69 +%76 = OpFUnordNotEqual %v4bool %75 %69 %77 = OpAny %bool %76 OpBranch %74 %74 = OpLabel diff --git a/third_party/skia/tests/sksl/shared/DependentInitializers.asm.frag b/third_party/skia/tests/sksl/shared/DependentInitializers.asm.frag index 75bb5d800030..d3da87cefaa3 100644 --- a/third_party/skia/tests/sksl/shared/DependentInitializers.asm.frag +++ b/third_party/skia/tests/sksl/shared/DependentInitializers.asm.frag @@ -38,8 +38,8 @@ OpDecorate %49 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/DoWhileControlFlow.asm.frag b/third_party/skia/tests/sksl/shared/DoWhileControlFlow.asm.frag index ab8be7e3d8a2..b6dee28d2d33 100644 --- a/third_party/skia/tests/sksl/shared/DoWhileControlFlow.asm.frag +++ b/third_party/skia/tests/sksl/shared/DoWhileControlFlow.asm.frag @@ -13,7 +13,6 @@ OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpDecorate %sk_Clockwise BuiltIn FrontFacing OpDecorate %x RelaxedPrecision -OpDecorate %26 RelaxedPrecision OpDecorate %36 RelaxedPrecision OpDecorate %38 RelaxedPrecision OpDecorate %39 RelaxedPrecision @@ -36,8 +35,8 @@ OpDecorate %66 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/DoubleNegation.asm.frag b/third_party/skia/tests/sksl/shared/DoubleNegation.asm.frag new file mode 100644 index 000000000000..37228c9d4f00 --- /dev/null +++ b/third_party/skia/tests/sksl/shared/DoubleNegation.asm.frag @@ -0,0 +1,77 @@ +OpCapability Shader +%1 = OpExtInstImport "GLSL.std.450" +OpMemoryModel Logical GLSL450 +OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise +OpExecutionMode %_entrypoint_v OriginUpperLeft +OpName %sk_FragColor "sk_FragColor" +OpName %sk_Clockwise "sk_Clockwise" +OpName %_UniformBuffer "_UniformBuffer" +OpMemberName %_UniformBuffer 0 "colorGreen" +OpName %_entrypoint_v "_entrypoint_v" +OpName %main "main" +OpDecorate %sk_FragColor RelaxedPrecision +OpDecorate %sk_FragColor Location 0 +OpDecorate %sk_FragColor Index 0 +OpDecorate %sk_Clockwise BuiltIn FrontFacing +OpMemberDecorate %_UniformBuffer 0 Offset 0 +OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision +OpDecorate %_UniformBuffer Block +OpDecorate %10 Binding 0 +OpDecorate %10 DescriptorSet 0 +OpDecorate %30 RelaxedPrecision +OpDecorate %31 RelaxedPrecision +OpDecorate %33 RelaxedPrecision +OpDecorate %35 RelaxedPrecision +OpDecorate %36 RelaxedPrecision +OpDecorate %38 RelaxedPrecision +OpDecorate %39 RelaxedPrecision +OpDecorate %40 RelaxedPrecision +OpDecorate %41 RelaxedPrecision +OpDecorate %42 RelaxedPrecision +%float = OpTypeFloat 32 +%v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float +%sk_FragColor = OpVariable %_ptr_Output_v4float Output +%bool = OpTypeBool +%_ptr_Input_bool = OpTypePointer Input %bool +%sk_Clockwise = OpVariable %_ptr_Input_bool Input +%_UniformBuffer = OpTypeStruct %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 +%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float +%int = OpTypeInt 32 1 +%int_0 = OpConstant %int 0 +%_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 +%26 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%30 = OpLoad %v4float %26 +%31 = OpCompositeExtract %float %30 0 +%32 = OpConvertFToS %int %31 +%33 = OpConvertSToF %float %32 +%34 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%35 = OpLoad %v4float %34 +%36 = OpCompositeExtract %float %35 1 +%37 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%38 = OpLoad %v4float %37 +%39 = OpVectorShuffle %v2float %38 %38 2 3 +%40 = OpCompositeExtract %float %39 0 +%41 = OpCompositeExtract %float %39 1 +%42 = OpCompositeConstruct %v4float %33 %36 %40 %41 +OpReturnValue %42 +OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/DoubleNegation.glsl b/third_party/skia/tests/sksl/shared/DoubleNegation.glsl new file mode 100644 index 000000000000..8952757f33bc --- /dev/null +++ b/third_party/skia/tests/sksl/shared/DoubleNegation.glsl @@ -0,0 +1,6 @@ + +out vec4 sk_FragColor; +uniform vec4 colorGreen; +vec4 main() { + return vec4(float(int(colorGreen.x)), colorGreen.y, colorGreen.zw); +} diff --git a/third_party/skia/tests/sksl/shared/DoubleNegation.metal b/third_party/skia/tests/sksl/shared/DoubleNegation.metal new file mode 100644 index 000000000000..0cbfd24381ae --- /dev/null +++ b/third_party/skia/tests/sksl/shared/DoubleNegation.metal @@ -0,0 +1,17 @@ +#include +#include +using namespace metal; +struct Uniforms { + 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; + _out.sk_FragColor = half4(half(int(_uniforms.colorGreen.x)), _uniforms.colorGreen.y, _uniforms.colorGreen.zw); + return _out; +} diff --git a/third_party/skia/tests/sksl/shared/EmptyBlocksES2.asm.frag b/third_party/skia/tests/sksl/shared/EmptyBlocksES2.asm.frag index 2a062cec830e..8429283bcaa9 100644 --- a/third_party/skia/tests/sksl/shared/EmptyBlocksES2.asm.frag +++ b/third_party/skia/tests/sksl/shared/EmptyBlocksES2.asm.frag @@ -20,7 +20,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %color RelaxedPrecision -OpDecorate %28 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %42 RelaxedPrecision OpDecorate %50 RelaxedPrecision @@ -36,8 +35,8 @@ OpDecorate %50 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/EmptyBlocksES3.asm.frag b/third_party/skia/tests/sksl/shared/EmptyBlocksES3.asm.frag index c990f9f0a047..31f6b3861d23 100644 --- a/third_party/skia/tests/sksl/shared/EmptyBlocksES3.asm.frag +++ b/third_party/skia/tests/sksl/shared/EmptyBlocksES3.asm.frag @@ -20,7 +20,6 @@ OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %color RelaxedPrecision -OpDecorate %28 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %43 RelaxedPrecision @@ -42,8 +41,8 @@ OpDecorate %70 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/ForLoopControlFlow.asm.frag b/third_party/skia/tests/sksl/shared/ForLoopControlFlow.asm.frag index 76796a51eb08..a5e2471d5c86 100644 --- a/third_party/skia/tests/sksl/shared/ForLoopControlFlow.asm.frag +++ b/third_party/skia/tests/sksl/shared/ForLoopControlFlow.asm.frag @@ -50,8 +50,8 @@ OpDecorate %75 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/ForLoopMultipleInit.asm.frag b/third_party/skia/tests/sksl/shared/ForLoopMultipleInit.asm.frag index 1a808ae82247..c73ef2b7ca02 100644 --- a/third_party/skia/tests/sksl/shared/ForLoopMultipleInit.asm.frag +++ b/third_party/skia/tests/sksl/shared/ForLoopMultipleInit.asm.frag @@ -19,7 +19,6 @@ OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpDecorate %sk_Clockwise BuiltIn FrontFacing OpDecorate %result RelaxedPrecision -OpDecorate %25 RelaxedPrecision OpDecorate %a RelaxedPrecision OpDecorate %b RelaxedPrecision OpDecorate %35 RelaxedPrecision @@ -48,8 +47,8 @@ OpDecorate %118 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/FunctionAnonymousParameters.asm.frag b/third_party/skia/tests/sksl/shared/FunctionAnonymousParameters.asm.frag index b0a5c350c7bb..c38870da49da 100644 --- a/third_party/skia/tests/sksl/shared/FunctionAnonymousParameters.asm.frag +++ b/third_party/skia/tests/sksl/shared/FunctionAnonymousParameters.asm.frag @@ -43,20 +43,20 @@ OpDecorate %71 RelaxedPrecision %12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %17 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %21 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %_ptr_Function_bool = OpTypePointer Function %bool -%25 = OpTypeFunction %v4float %_ptr_Function_bool %_ptr_Function_v2float +%26 = OpTypeFunction %v4float %_ptr_Function_bool %_ptr_Function_v2float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 -%S = OpTypeStruct %int %_ptr_Function_int = OpTypePointer Function %int %_ptr_Function_float = OpTypePointer Function %float +%S = OpTypeStruct %int %_ptr_Function_S = OpTypePointer Function %S -%36 = OpTypeFunction %v4float %_ptr_Function_int %_ptr_Function_float %_ptr_Function_S +%39 = OpTypeFunction %v4float %_ptr_Function_int %_ptr_Function_float %_ptr_Function_S %int_1 = OpConstant %int 1 %47 = OpTypeFunction %v4float %_ptr_Function_v2float %_ptr_Function_v4float = OpTypePointer Function %v4float @@ -71,7 +71,7 @@ OpStore %22 %21 OpStore %sk_FragColor %24 OpReturn OpFunctionEnd -%fnGreen_h4bf2 = OpFunction %v4float None %25 +%fnGreen_h4bf2 = OpFunction %v4float None %26 %27 = OpFunctionParameter %_ptr_Function_bool %28 = OpFunctionParameter %_ptr_Function_v2float %29 = OpLabel @@ -79,7 +79,7 @@ OpFunctionEnd %34 = OpLoad %v4float %30 OpReturnValue %34 OpFunctionEnd -%fnRed_h4ifS = OpFunction %v4float None %36 +%fnRed_h4ifS = OpFunction %v4float None %39 %40 = OpFunctionParameter %_ptr_Function_int %41 = OpFunctionParameter %_ptr_Function_float %42 = OpFunctionParameter %_ptr_Function_S diff --git a/third_party/skia/tests/sksl/shared/FunctionArgTypeMatch.asm.frag b/third_party/skia/tests/sksl/shared/FunctionArgTypeMatch.asm.frag index 47b5fbdf138e..a633581e40bc 100644 --- a/third_party/skia/tests/sksl/shared/FunctionArgTypeMatch.asm.frag +++ b/third_party/skia/tests/sksl/shared/FunctionArgTypeMatch.asm.frag @@ -44,21 +44,9 @@ OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpDecorate %_UniformBuffer Block OpDecorate %33 Binding 0 OpDecorate %33 DescriptorSet 0 -OpDecorate %217 RelaxedPrecision -OpDecorate %218 RelaxedPrecision -OpDecorate %219 RelaxedPrecision -OpDecorate %225 RelaxedPrecision -OpDecorate %226 RelaxedPrecision -OpDecorate %227 RelaxedPrecision -OpDecorate %228 RelaxedPrecision -OpDecorate %234 RelaxedPrecision -OpDecorate %235 RelaxedPrecision -OpDecorate %236 RelaxedPrecision -OpDecorate %237 RelaxedPrecision -OpDecorate %238 RelaxedPrecision -OpDecorate %299 RelaxedPrecision -OpDecorate %301 RelaxedPrecision -OpDecorate %302 RelaxedPrecision +OpDecorate %287 RelaxedPrecision +OpDecorate %289 RelaxedPrecision +OpDecorate %290 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -71,52 +59,52 @@ OpDecorate %302 RelaxedPrecision %33 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %38 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %42 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %46 = OpTypeFunction %bool %true = OpConstantTrue %bool %_ptr_Function_float = OpTypePointer Function %float -%49 = OpTypeFunction %bool %_ptr_Function_float +%50 = OpTypeFunction %bool %_ptr_Function_float %53 = OpTypeFunction %bool %_ptr_Function_v2float %v3float = OpTypeVector %float 3 %_ptr_Function_v3float = OpTypePointer Function %v3float -%57 = OpTypeFunction %bool %_ptr_Function_v3float +%58 = OpTypeFunction %bool %_ptr_Function_v3float %_ptr_Function_v4float = OpTypePointer Function %v4float -%61 = OpTypeFunction %bool %_ptr_Function_v4float +%62 = OpTypeFunction %bool %_ptr_Function_v4float %mat2v2float = OpTypeMatrix %v2float 2 %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float -%66 = OpTypeFunction %bool %_ptr_Function_mat2v2float +%67 = OpTypeFunction %bool %_ptr_Function_mat2v2float %mat3v3float = OpTypeMatrix %v3float 3 %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float -%71 = OpTypeFunction %bool %_ptr_Function_mat3v3float +%72 = OpTypeFunction %bool %_ptr_Function_mat3v3float %mat4v4float = OpTypeMatrix %v4float 4 %_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float -%76 = OpTypeFunction %bool %_ptr_Function_mat4v4float +%77 = OpTypeFunction %bool %_ptr_Function_mat4v4float %_ptr_Function_bool = OpTypePointer Function %bool -%94 = OpTypeFunction %bool %_ptr_Function_bool +%95 = OpTypeFunction %bool %_ptr_Function_bool %v2bool = OpTypeVector %bool 2 %_ptr_Function_v2bool = OpTypePointer Function %v2bool -%99 = OpTypeFunction %bool %_ptr_Function_v2bool +%100 = OpTypeFunction %bool %_ptr_Function_v2bool %v3bool = OpTypeVector %bool 3 %_ptr_Function_v3bool = OpTypePointer Function %v3bool -%104 = OpTypeFunction %bool %_ptr_Function_v3bool +%105 = OpTypeFunction %bool %_ptr_Function_v3bool %v4bool = OpTypeVector %bool 4 %_ptr_Function_v4bool = OpTypePointer Function %v4bool -%109 = OpTypeFunction %bool %_ptr_Function_v4bool +%110 = OpTypeFunction %bool %_ptr_Function_v4bool %int = OpTypeInt 32 1 %_ptr_Function_int = OpTypePointer Function %int -%114 = OpTypeFunction %bool %_ptr_Function_int +%115 = OpTypeFunction %bool %_ptr_Function_int %v2int = OpTypeVector %int 2 %_ptr_Function_v2int = OpTypePointer Function %v2int -%119 = OpTypeFunction %bool %_ptr_Function_v2int +%120 = OpTypeFunction %bool %_ptr_Function_v2int %v3int = OpTypeVector %int 3 %_ptr_Function_v3int = OpTypePointer Function %v3int -%124 = OpTypeFunction %bool %_ptr_Function_v3int +%125 = OpTypeFunction %bool %_ptr_Function_v3int %v4int = OpTypeVector %int 4 %_ptr_Function_v4int = OpTypePointer Function %v4int -%129 = OpTypeFunction %bool %_ptr_Function_v4int +%130 = OpTypeFunction %bool %_ptr_Function_v4int %133 = OpTypeFunction %v4float %_ptr_Function_v2float %false = OpConstantFalse %bool %float_1 = OpConstant %float 1 @@ -126,16 +114,28 @@ OpDecorate %302 RelaxedPrecision %157 = OpConstantComposite %v3float %float_3 %float_3 %float_3 %float_4 = OpConstant %float 4 %164 = OpConstantComposite %v4float %float_4 %float_4 %float_4 %float_4 -%249 = OpConstantComposite %v2bool %true %true -%255 = OpConstantComposite %v3bool %true %true %true -%261 = OpConstantComposite %v4bool %true %true %true %true +%170 = OpConstantComposite %v2float %float_2 %float_0 +%171 = OpConstantComposite %v2float %float_0 %float_2 +%172 = OpConstantComposite %mat2v2float %170 %171 +%178 = OpConstantComposite %v3float %float_3 %float_0 %float_0 +%179 = OpConstantComposite %v3float %float_0 %float_3 %float_0 +%180 = OpConstantComposite %v3float %float_0 %float_0 %float_3 +%181 = OpConstantComposite %mat3v3float %178 %179 %180 +%187 = OpConstantComposite %v4float %float_4 %float_0 %float_0 %float_0 +%188 = OpConstantComposite %v4float %float_0 %float_4 %float_0 %float_0 +%189 = OpConstantComposite %v4float %float_0 %float_0 %float_4 %float_0 +%190 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_4 +%191 = OpConstantComposite %mat4v4float %187 %188 %189 %190 +%237 = OpConstantComposite %v2bool %true %true +%243 = OpConstantComposite %v3bool %true %true %true +%249 = OpConstantComposite %v4bool %true %true %true %true %int_1 = OpConstant %int 1 %int_2 = OpConstant %int 2 -%274 = OpConstantComposite %v2int %int_2 %int_2 +%262 = OpConstantComposite %v2int %int_2 %int_2 %int_3 = OpConstant %int 3 -%281 = OpConstantComposite %v3int %int_3 %int_3 %int_3 +%269 = OpConstantComposite %v3int %int_3 %int_3 %int_3 %int_4 = OpConstant %int 4 -%288 = OpConstantComposite %v4int %int_4 %int_4 %int_4 %int_4 +%276 = OpConstantComposite %v4int %int_4 %int_4 %int_4 %int_4 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_0 = OpConstant %int 0 %_entrypoint_v = OpFunction %void None %38 @@ -150,7 +150,7 @@ OpFunctionEnd %47 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_float_bf = OpFunction %bool None %49 +%takes_float_bf = OpFunction %bool None %50 %51 = OpFunctionParameter %_ptr_Function_float %52 = OpLabel OpReturnValue %true @@ -160,32 +160,32 @@ OpFunctionEnd %55 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_float3_bf3 = OpFunction %bool None %57 +%takes_float3_bf3 = OpFunction %bool None %58 %59 = OpFunctionParameter %_ptr_Function_v3float %60 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_float4_bf4 = OpFunction %bool None %61 +%takes_float4_bf4 = OpFunction %bool None %62 %63 = OpFunctionParameter %_ptr_Function_v4float %64 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_float2x2_bf22 = OpFunction %bool None %66 +%takes_float2x2_bf22 = OpFunction %bool None %67 %68 = OpFunctionParameter %_ptr_Function_mat2v2float %69 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_float3x3_bf33 = OpFunction %bool None %71 +%takes_float3x3_bf33 = OpFunction %bool None %72 %73 = OpFunctionParameter %_ptr_Function_mat3v3float %74 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_float4x4_bf44 = OpFunction %bool None %76 +%takes_float4x4_bf44 = OpFunction %bool None %77 %78 = OpFunctionParameter %_ptr_Function_mat4v4float %79 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_half_bh = OpFunction %bool None %49 +%takes_half_bh = OpFunction %bool None %50 %80 = OpFunctionParameter %_ptr_Function_float %81 = OpLabel OpReturnValue %true @@ -195,67 +195,67 @@ OpFunctionEnd %83 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_half3_bh3 = OpFunction %bool None %57 +%takes_half3_bh3 = OpFunction %bool None %58 %84 = OpFunctionParameter %_ptr_Function_v3float %85 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_half4_bh4 = OpFunction %bool None %61 +%takes_half4_bh4 = OpFunction %bool None %62 %86 = OpFunctionParameter %_ptr_Function_v4float %87 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_half2x2_bh22 = OpFunction %bool None %66 +%takes_half2x2_bh22 = OpFunction %bool None %67 %88 = OpFunctionParameter %_ptr_Function_mat2v2float %89 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_half3x3_bh33 = OpFunction %bool None %71 +%takes_half3x3_bh33 = OpFunction %bool None %72 %90 = OpFunctionParameter %_ptr_Function_mat3v3float %91 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_half4x4_bh44 = OpFunction %bool None %76 +%takes_half4x4_bh44 = OpFunction %bool None %77 %92 = OpFunctionParameter %_ptr_Function_mat4v4float %93 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_bool_bb = OpFunction %bool None %94 +%takes_bool_bb = OpFunction %bool None %95 %96 = OpFunctionParameter %_ptr_Function_bool %97 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_bool2_bb2 = OpFunction %bool None %99 +%takes_bool2_bb2 = OpFunction %bool None %100 %101 = OpFunctionParameter %_ptr_Function_v2bool %102 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_bool3_bb3 = OpFunction %bool None %104 +%takes_bool3_bb3 = OpFunction %bool None %105 %106 = OpFunctionParameter %_ptr_Function_v3bool %107 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_bool4_bb4 = OpFunction %bool None %109 +%takes_bool4_bb4 = OpFunction %bool None %110 %111 = OpFunctionParameter %_ptr_Function_v4bool %112 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_int_bi = OpFunction %bool None %114 +%takes_int_bi = OpFunction %bool None %115 %116 = OpFunctionParameter %_ptr_Function_int %117 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_int2_bi2 = OpFunction %bool None %119 +%takes_int2_bi2 = OpFunction %bool None %120 %121 = OpFunctionParameter %_ptr_Function_v2int %122 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_int3_bi3 = OpFunction %bool None %124 +%takes_int3_bi3 = OpFunction %bool None %125 %126 = OpFunctionParameter %_ptr_Function_v3int %127 = OpLabel OpReturnValue %true OpFunctionEnd -%takes_int4_bi4 = OpFunction %bool None %129 +%takes_int4_bi4 = OpFunction %bool None %130 %131 = OpFunctionParameter %_ptr_Function_v4int %132 = OpLabel OpReturnValue %true @@ -274,18 +274,18 @@ OpFunctionEnd %202 = OpVariable %_ptr_Function_v2float Function %207 = OpVariable %_ptr_Function_v3float Function %212 = OpVariable %_ptr_Function_v4float Function -%220 = OpVariable %_ptr_Function_mat2v2float Function -%229 = OpVariable %_ptr_Function_mat3v3float Function -%239 = OpVariable %_ptr_Function_mat4v4float Function -%244 = OpVariable %_ptr_Function_bool Function -%250 = OpVariable %_ptr_Function_v2bool Function -%256 = OpVariable %_ptr_Function_v3bool Function -%262 = OpVariable %_ptr_Function_v4bool Function -%268 = OpVariable %_ptr_Function_int Function -%275 = OpVariable %_ptr_Function_v2int Function -%282 = OpVariable %_ptr_Function_v3int Function -%289 = OpVariable %_ptr_Function_v4int Function -%292 = OpVariable %_ptr_Function_v4float Function +%217 = OpVariable %_ptr_Function_mat2v2float Function +%222 = OpVariable %_ptr_Function_mat3v3float Function +%227 = OpVariable %_ptr_Function_mat4v4float Function +%232 = OpVariable %_ptr_Function_bool Function +%238 = OpVariable %_ptr_Function_v2bool Function +%244 = OpVariable %_ptr_Function_v3bool Function +%250 = OpVariable %_ptr_Function_v4bool Function +%256 = OpVariable %_ptr_Function_int Function +%263 = OpVariable %_ptr_Function_v2int Function +%270 = OpVariable %_ptr_Function_v3int Function +%277 = OpVariable %_ptr_Function_v4int Function +%280 = OpVariable %_ptr_Function_v4float Function OpSelectionMerge %138 None OpBranchConditional %true %137 %138 %137 = OpLabel @@ -328,10 +328,7 @@ OpBranch %162 OpSelectionMerge %169 None OpBranchConditional %167 %168 %169 %168 = OpLabel -%171 = OpCompositeConstruct %v2float %float_2 %float_0 -%172 = OpCompositeConstruct %v2float %float_0 %float_2 -%170 = OpCompositeConstruct %mat2v2float %171 %172 -OpStore %173 %170 +OpStore %173 %172 %174 = OpFunctionCall %bool %takes_float2x2_bf22 %173 OpBranch %169 %169 = OpLabel @@ -339,11 +336,7 @@ OpBranch %169 OpSelectionMerge %177 None OpBranchConditional %175 %176 %177 %176 = OpLabel -%179 = OpCompositeConstruct %v3float %float_3 %float_0 %float_0 -%180 = OpCompositeConstruct %v3float %float_0 %float_3 %float_0 -%181 = OpCompositeConstruct %v3float %float_0 %float_0 %float_3 -%178 = OpCompositeConstruct %mat3v3float %179 %180 %181 -OpStore %182 %178 +OpStore %182 %181 %183 = OpFunctionCall %bool %takes_float3x3_bf33 %182 OpBranch %177 %177 = OpLabel @@ -351,12 +344,7 @@ OpBranch %177 OpSelectionMerge %186 None OpBranchConditional %184 %185 %186 %185 = OpLabel -%188 = OpCompositeConstruct %v4float %float_4 %float_0 %float_0 %float_0 -%189 = OpCompositeConstruct %v4float %float_0 %float_4 %float_0 %float_0 -%190 = OpCompositeConstruct %v4float %float_0 %float_0 %float_4 %float_0 -%191 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_4 -%187 = OpCompositeConstruct %mat4v4float %188 %189 %190 %191 -OpStore %192 %187 +OpStore %192 %191 %193 = OpFunctionCall %bool %takes_float4x4_bf44 %192 OpBranch %186 %186 = OpLabel @@ -396,116 +384,104 @@ OpBranch %211 OpSelectionMerge %216 None OpBranchConditional %214 %215 %216 %215 = OpLabel -%218 = OpCompositeConstruct %v2float %float_2 %float_0 -%219 = OpCompositeConstruct %v2float %float_0 %float_2 -%217 = OpCompositeConstruct %mat2v2float %218 %219 -OpStore %220 %217 -%221 = OpFunctionCall %bool %takes_half2x2_bh22 %220 +OpStore %217 %172 +%218 = OpFunctionCall %bool %takes_half2x2_bh22 %217 OpBranch %216 %216 = OpLabel -%222 = OpPhi %bool %false %211 %221 %215 -OpSelectionMerge %224 None -OpBranchConditional %222 %223 %224 -%223 = OpLabel -%226 = OpCompositeConstruct %v3float %float_3 %float_0 %float_0 -%227 = OpCompositeConstruct %v3float %float_0 %float_3 %float_0 -%228 = OpCompositeConstruct %v3float %float_0 %float_0 %float_3 -%225 = OpCompositeConstruct %mat3v3float %226 %227 %228 -OpStore %229 %225 -%230 = OpFunctionCall %bool %takes_half3x3_bh33 %229 -OpBranch %224 -%224 = OpLabel -%231 = OpPhi %bool %false %216 %230 %223 -OpSelectionMerge %233 None -OpBranchConditional %231 %232 %233 -%232 = OpLabel -%235 = OpCompositeConstruct %v4float %float_4 %float_0 %float_0 %float_0 -%236 = OpCompositeConstruct %v4float %float_0 %float_4 %float_0 %float_0 -%237 = OpCompositeConstruct %v4float %float_0 %float_0 %float_4 %float_0 -%238 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_4 -%234 = OpCompositeConstruct %mat4v4float %235 %236 %237 %238 -OpStore %239 %234 -%240 = OpFunctionCall %bool %takes_half4x4_bh44 %239 -OpBranch %233 -%233 = OpLabel -%241 = OpPhi %bool %false %224 %240 %232 -OpSelectionMerge %243 None -OpBranchConditional %241 %242 %243 +%219 = OpPhi %bool %false %211 %218 %215 +OpSelectionMerge %221 None +OpBranchConditional %219 %220 %221 +%220 = OpLabel +OpStore %222 %181 +%223 = OpFunctionCall %bool %takes_half3x3_bh33 %222 +OpBranch %221 +%221 = OpLabel +%224 = OpPhi %bool %false %216 %223 %220 +OpSelectionMerge %226 None +OpBranchConditional %224 %225 %226 +%225 = OpLabel +OpStore %227 %191 +%228 = OpFunctionCall %bool %takes_half4x4_bh44 %227 +OpBranch %226 +%226 = OpLabel +%229 = OpPhi %bool %false %221 %228 %225 +OpSelectionMerge %231 None +OpBranchConditional %229 %230 %231 +%230 = OpLabel +OpStore %232 %true +%233 = OpFunctionCall %bool %takes_bool_bb %232 +OpBranch %231 +%231 = OpLabel +%234 = OpPhi %bool %false %226 %233 %230 +OpSelectionMerge %236 None +OpBranchConditional %234 %235 %236 +%235 = OpLabel +OpStore %238 %237 +%239 = OpFunctionCall %bool %takes_bool2_bb2 %238 +OpBranch %236 +%236 = OpLabel +%240 = OpPhi %bool %false %231 %239 %235 +OpSelectionMerge %242 None +OpBranchConditional %240 %241 %242 +%241 = OpLabel +OpStore %244 %243 +%245 = OpFunctionCall %bool %takes_bool3_bb3 %244 +OpBranch %242 %242 = OpLabel -OpStore %244 %true -%245 = OpFunctionCall %bool %takes_bool_bb %244 -OpBranch %243 -%243 = OpLabel -%246 = OpPhi %bool %false %233 %245 %242 +%246 = OpPhi %bool %false %236 %245 %241 OpSelectionMerge %248 None OpBranchConditional %246 %247 %248 %247 = OpLabel OpStore %250 %249 -%251 = OpFunctionCall %bool %takes_bool2_bb2 %250 +%251 = OpFunctionCall %bool %takes_bool4_bb4 %250 OpBranch %248 %248 = OpLabel -%252 = OpPhi %bool %false %243 %251 %247 +%252 = OpPhi %bool %false %242 %251 %247 OpSelectionMerge %254 None OpBranchConditional %252 %253 %254 %253 = OpLabel -OpStore %256 %255 -%257 = OpFunctionCall %bool %takes_bool3_bb3 %256 +OpStore %256 %int_1 +%257 = OpFunctionCall %bool %takes_int_bi %256 OpBranch %254 %254 = OpLabel %258 = OpPhi %bool %false %248 %257 %253 OpSelectionMerge %260 None OpBranchConditional %258 %259 %260 %259 = OpLabel -OpStore %262 %261 -%263 = OpFunctionCall %bool %takes_bool4_bb4 %262 +OpStore %263 %262 +%264 = OpFunctionCall %bool %takes_int2_bi2 %263 OpBranch %260 %260 = OpLabel -%264 = OpPhi %bool %false %254 %263 %259 -OpSelectionMerge %266 None -OpBranchConditional %264 %265 %266 -%265 = OpLabel -OpStore %268 %int_1 -%269 = OpFunctionCall %bool %takes_int_bi %268 -OpBranch %266 +%265 = OpPhi %bool %false %254 %264 %259 +OpSelectionMerge %267 None +OpBranchConditional %265 %266 %267 %266 = OpLabel -%270 = OpPhi %bool %false %260 %269 %265 -OpSelectionMerge %272 None -OpBranchConditional %270 %271 %272 -%271 = OpLabel -OpStore %275 %274 -%276 = OpFunctionCall %bool %takes_int2_bi2 %275 -OpBranch %272 -%272 = OpLabel -%277 = OpPhi %bool %false %266 %276 %271 -OpSelectionMerge %279 None -OpBranchConditional %277 %278 %279 -%278 = OpLabel -OpStore %282 %281 -%283 = OpFunctionCall %bool %takes_int3_bi3 %282 -OpBranch %279 -%279 = OpLabel -%284 = OpPhi %bool %false %272 %283 %278 -OpSelectionMerge %286 None -OpBranchConditional %284 %285 %286 -%285 = OpLabel -OpStore %289 %288 -%290 = OpFunctionCall %bool %takes_int4_bi4 %289 -OpBranch %286 -%286 = OpLabel -%291 = OpPhi %bool %false %279 %290 %285 -OpSelectionMerge %295 None -OpBranchConditional %291 %293 %294 -%293 = OpLabel -%296 = OpAccessChain %_ptr_Uniform_v4float %33 %int_0 -%299 = OpLoad %v4float %296 -OpStore %292 %299 -OpBranch %295 -%294 = OpLabel -%300 = OpAccessChain %_ptr_Uniform_v4float %33 %int_1 -%301 = OpLoad %v4float %300 -OpStore %292 %301 -OpBranch %295 -%295 = OpLabel -%302 = OpLoad %v4float %292 -OpReturnValue %302 +OpStore %270 %269 +%271 = OpFunctionCall %bool %takes_int3_bi3 %270 +OpBranch %267 +%267 = OpLabel +%272 = OpPhi %bool %false %260 %271 %266 +OpSelectionMerge %274 None +OpBranchConditional %272 %273 %274 +%273 = OpLabel +OpStore %277 %276 +%278 = OpFunctionCall %bool %takes_int4_bi4 %277 +OpBranch %274 +%274 = OpLabel +%279 = OpPhi %bool %false %267 %278 %273 +OpSelectionMerge %283 None +OpBranchConditional %279 %281 %282 +%281 = OpLabel +%284 = OpAccessChain %_ptr_Uniform_v4float %33 %int_0 +%287 = OpLoad %v4float %284 +OpStore %280 %287 +OpBranch %283 +%282 = OpLabel +%288 = OpAccessChain %_ptr_Uniform_v4float %33 %int_1 +%289 = OpLoad %v4float %288 +OpStore %280 %289 +OpBranch %283 +%283 = OpLabel +%290 = OpLoad %v4float %280 +OpReturnValue %290 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/FunctionPrototype.asm.frag b/third_party/skia/tests/sksl/shared/FunctionPrototype.asm.frag index 2030e6c62c2c..41e40e94b1cb 100644 --- a/third_party/skia/tests/sksl/shared/FunctionPrototype.asm.frag +++ b/third_party/skia/tests/sksl/shared/FunctionPrototype.asm.frag @@ -21,7 +21,7 @@ OpDecorate %11 Binding 0 OpDecorate %11 DescriptorSet 0 OpDecorate %28 RelaxedPrecision OpDecorate %29 RelaxedPrecision -OpDecorate %33 RelaxedPrecision +OpDecorate %37 RelaxedPrecision OpDecorate %38 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 @@ -35,12 +35,12 @@ OpDecorate %38 RelaxedPrecision %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %16 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %20 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %_ptr_Function_v4float = OpTypePointer Function %v4float -%24 = OpTypeFunction %v4float %_ptr_Function_v4float +%25 = OpTypeFunction %v4float %_ptr_Function_v4float %30 = OpTypeFunction %v4float %_ptr_Function_v2float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 @@ -53,21 +53,21 @@ OpStore %21 %20 OpStore %sk_FragColor %23 OpReturn OpFunctionEnd -%this_function_is_defined_before_use_h4h4 = OpFunction %v4float None %24 +%this_function_is_defined_before_use_h4h4 = OpFunction %v4float None %25 %26 = OpFunctionParameter %_ptr_Function_v4float %27 = OpLabel -%29 = OpLoad %v4float %26 -%28 = OpFNegate %v4float %29 -OpReturnValue %28 +%28 = OpLoad %v4float %26 +%29 = OpFNegate %v4float %28 +OpReturnValue %29 OpFunctionEnd %main = OpFunction %v4float None %30 %31 = OpFunctionParameter %_ptr_Function_v2float %32 = OpLabel %39 = OpVariable %_ptr_Function_v4float Function -%34 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%38 = OpLoad %v4float %34 -%33 = OpFNegate %v4float %38 -OpStore %39 %33 +%33 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 +%37 = OpLoad %v4float %33 +%38 = OpFNegate %v4float %37 +OpStore %39 %38 %40 = OpFunctionCall %v4float %this_function_is_defined_before_use_h4h4 %39 OpReturnValue %40 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/FunctionReturnTypeMatch.asm.frag b/third_party/skia/tests/sksl/shared/FunctionReturnTypeMatch.asm.frag index 49e85932d35a..96524974c98b 100644 --- a/third_party/skia/tests/sksl/shared/FunctionReturnTypeMatch.asm.frag +++ b/third_party/skia/tests/sksl/shared/FunctionReturnTypeMatch.asm.frag @@ -64,51 +64,27 @@ OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpDecorate %_UniformBuffer Block OpDecorate %31 Binding 0 OpDecorate %31 DescriptorSet 0 -OpDecorate %85 RelaxedPrecision -OpDecorate %86 RelaxedPrecision -OpDecorate %87 RelaxedPrecision -OpDecorate %89 RelaxedPrecision -OpDecorate %90 RelaxedPrecision -OpDecorate %91 RelaxedPrecision -OpDecorate %92 RelaxedPrecision -OpDecorate %94 RelaxedPrecision -OpDecorate %95 RelaxedPrecision -OpDecorate %96 RelaxedPrecision -OpDecorate %97 RelaxedPrecision -OpDecorate %98 RelaxedPrecision OpDecorate %x8 RelaxedPrecision OpDecorate %x9 RelaxedPrecision OpDecorate %x10 RelaxedPrecision OpDecorate %x11 RelaxedPrecision OpDecorate %x12 RelaxedPrecision -OpDecorate %166 RelaxedPrecision -OpDecorate %167 RelaxedPrecision -OpDecorate %168 RelaxedPrecision OpDecorate %x13 RelaxedPrecision -OpDecorate %170 RelaxedPrecision -OpDecorate %171 RelaxedPrecision -OpDecorate %172 RelaxedPrecision -OpDecorate %173 RelaxedPrecision OpDecorate %x14 RelaxedPrecision -OpDecorate %175 RelaxedPrecision -OpDecorate %176 RelaxedPrecision -OpDecorate %177 RelaxedPrecision -OpDecorate %178 RelaxedPrecision -OpDecorate %179 RelaxedPrecision -OpDecorate %279 RelaxedPrecision -OpDecorate %285 RelaxedPrecision -OpDecorate %292 RelaxedPrecision -OpDecorate %299 RelaxedPrecision -OpDecorate %306 RelaxedPrecision -OpDecorate %320 RelaxedPrecision -OpDecorate %339 RelaxedPrecision -OpDecorate %363 RelaxedPrecision -OpDecorate %369 RelaxedPrecision -OpDecorate %376 RelaxedPrecision -OpDecorate %383 RelaxedPrecision -OpDecorate %422 RelaxedPrecision -OpDecorate %424 RelaxedPrecision -OpDecorate %425 RelaxedPrecision +OpDecorate %243 RelaxedPrecision +OpDecorate %249 RelaxedPrecision +OpDecorate %256 RelaxedPrecision +OpDecorate %263 RelaxedPrecision +OpDecorate %270 RelaxedPrecision +OpDecorate %284 RelaxedPrecision +OpDecorate %303 RelaxedPrecision +OpDecorate %327 RelaxedPrecision +OpDecorate %333 RelaxedPrecision +OpDecorate %340 RelaxedPrecision +OpDecorate %347 RelaxedPrecision +OpDecorate %386 RelaxedPrecision +OpDecorate %388 RelaxedPrecision +OpDecorate %389 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -121,8 +97,8 @@ OpDecorate %425 RelaxedPrecision %31 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %36 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %40 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %44 = OpTypeFunction %v2float @@ -137,39 +113,51 @@ OpDecorate %425 RelaxedPrecision %56 = OpConstantComposite %v4float %float_4 %float_4 %float_4 %float_4 %mat2v2float = OpTypeMatrix %v2float 2 %58 = OpTypeFunction %mat2v2float +%60 = OpConstantComposite %v2float %float_2 %float_0 +%61 = OpConstantComposite %v2float %float_0 %float_2 +%62 = OpConstantComposite %mat2v2float %60 %61 %mat3v3float = OpTypeMatrix %v3float 3 %64 = OpTypeFunction %mat3v3float +%66 = OpConstantComposite %v3float %float_3 %float_0 %float_0 +%67 = OpConstantComposite %v3float %float_0 %float_3 %float_0 +%68 = OpConstantComposite %v3float %float_0 %float_0 %float_3 +%69 = OpConstantComposite %mat3v3float %66 %67 %68 %mat4v4float = OpTypeMatrix %v4float 4 %71 = OpTypeFunction %mat4v4float +%73 = OpConstantComposite %v4float %float_4 %float_0 %float_0 %float_0 +%74 = OpConstantComposite %v4float %float_0 %float_4 %float_0 %float_0 +%75 = OpConstantComposite %v4float %float_0 %float_0 %float_4 %float_0 +%76 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_4 +%77 = OpConstantComposite %mat4v4float %73 %74 %75 %76 %78 = OpTypeFunction %float %float_1 = OpConstant %float 1 -%99 = OpTypeFunction %bool +%87 = OpTypeFunction %bool %true = OpConstantTrue %bool %v2bool = OpTypeVector %bool 2 -%103 = OpTypeFunction %v2bool -%105 = OpConstantComposite %v2bool %true %true +%91 = OpTypeFunction %v2bool +%93 = OpConstantComposite %v2bool %true %true %v3bool = OpTypeVector %bool 3 -%107 = OpTypeFunction %v3bool -%109 = OpConstantComposite %v3bool %true %true %true +%95 = OpTypeFunction %v3bool +%97 = OpConstantComposite %v3bool %true %true %true %v4bool = OpTypeVector %bool 4 -%111 = OpTypeFunction %v4bool -%113 = OpConstantComposite %v4bool %true %true %true %true +%99 = OpTypeFunction %v4bool +%101 = OpConstantComposite %v4bool %true %true %true %true %int = OpTypeInt 32 1 -%115 = OpTypeFunction %int +%103 = OpTypeFunction %int %int_1 = OpConstant %int 1 %v2int = OpTypeVector %int 2 -%119 = OpTypeFunction %v2int +%107 = OpTypeFunction %v2int %int_2 = OpConstant %int 2 -%122 = OpConstantComposite %v2int %int_2 %int_2 +%110 = OpConstantComposite %v2int %int_2 %int_2 %v3int = OpTypeVector %int 3 -%124 = OpTypeFunction %v3int +%112 = OpTypeFunction %v3int %int_3 = OpConstant %int 3 -%127 = OpConstantComposite %v3int %int_3 %int_3 %int_3 +%115 = OpConstantComposite %v3int %int_3 %int_3 %int_3 %v4int = OpTypeVector %int 4 -%129 = OpTypeFunction %v4int +%117 = OpTypeFunction %v4int %int_4 = OpConstant %int 4 -%132 = OpConstantComposite %v4int %int_4 %int_4 %int_4 %int_4 -%133 = OpTypeFunction %v4float %_ptr_Function_v2float +%120 = OpConstantComposite %v4int %int_4 %int_4 %int_4 %int_4 +%121 = OpTypeFunction %v4float %_ptr_Function_v2float %_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_v3float = OpTypePointer Function %v3float %_ptr_Function_v4float = OpTypePointer Function %v4float @@ -209,27 +197,15 @@ OpReturnValue %56 OpFunctionEnd %returns_float2x2_f22 = OpFunction %mat2v2float None %58 %59 = OpLabel -%61 = OpCompositeConstruct %v2float %float_2 %float_0 -%62 = OpCompositeConstruct %v2float %float_0 %float_2 -%60 = OpCompositeConstruct %mat2v2float %61 %62 -OpReturnValue %60 +OpReturnValue %62 OpFunctionEnd %returns_float3x3_f33 = OpFunction %mat3v3float None %64 %65 = OpLabel -%67 = OpCompositeConstruct %v3float %float_3 %float_0 %float_0 -%68 = OpCompositeConstruct %v3float %float_0 %float_3 %float_0 -%69 = OpCompositeConstruct %v3float %float_0 %float_0 %float_3 -%66 = OpCompositeConstruct %mat3v3float %67 %68 %69 -OpReturnValue %66 +OpReturnValue %69 OpFunctionEnd %returns_float4x4_f44 = OpFunction %mat4v4float None %71 %72 = OpLabel -%74 = OpCompositeConstruct %v4float %float_4 %float_0 %float_0 %float_0 -%75 = OpCompositeConstruct %v4float %float_0 %float_4 %float_0 %float_0 -%76 = OpCompositeConstruct %v4float %float_0 %float_0 %float_4 %float_0 -%77 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_4 -%73 = OpCompositeConstruct %mat4v4float %74 %75 %76 %77 -OpReturnValue %73 +OpReturnValue %77 OpFunctionEnd %returns_half_h = OpFunction %float None %78 %79 = OpLabel @@ -249,63 +225,51 @@ OpReturnValue %56 OpFunctionEnd %returns_half2x2_h22 = OpFunction %mat2v2float None %58 %84 = OpLabel -%86 = OpCompositeConstruct %v2float %float_2 %float_0 -%87 = OpCompositeConstruct %v2float %float_0 %float_2 -%85 = OpCompositeConstruct %mat2v2float %86 %87 -OpReturnValue %85 +OpReturnValue %62 OpFunctionEnd %returns_half3x3_h33 = OpFunction %mat3v3float None %64 -%88 = OpLabel -%90 = OpCompositeConstruct %v3float %float_3 %float_0 %float_0 -%91 = OpCompositeConstruct %v3float %float_0 %float_3 %float_0 -%92 = OpCompositeConstruct %v3float %float_0 %float_0 %float_3 -%89 = OpCompositeConstruct %mat3v3float %90 %91 %92 -OpReturnValue %89 +%85 = OpLabel +OpReturnValue %69 OpFunctionEnd %returns_half4x4_h44 = OpFunction %mat4v4float None %71 -%93 = OpLabel -%95 = OpCompositeConstruct %v4float %float_4 %float_0 %float_0 %float_0 -%96 = OpCompositeConstruct %v4float %float_0 %float_4 %float_0 %float_0 -%97 = OpCompositeConstruct %v4float %float_0 %float_0 %float_4 %float_0 -%98 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_4 -%94 = OpCompositeConstruct %mat4v4float %95 %96 %97 %98 -OpReturnValue %94 +%86 = OpLabel +OpReturnValue %77 OpFunctionEnd -%returns_bool_b = OpFunction %bool None %99 -%100 = OpLabel +%returns_bool_b = OpFunction %bool None %87 +%88 = OpLabel OpReturnValue %true OpFunctionEnd -%returns_bool2_b2 = OpFunction %v2bool None %103 -%104 = OpLabel -OpReturnValue %105 +%returns_bool2_b2 = OpFunction %v2bool None %91 +%92 = OpLabel +OpReturnValue %93 OpFunctionEnd -%returns_bool3_b3 = OpFunction %v3bool None %107 -%108 = OpLabel -OpReturnValue %109 +%returns_bool3_b3 = OpFunction %v3bool None %95 +%96 = OpLabel +OpReturnValue %97 OpFunctionEnd -%returns_bool4_b4 = OpFunction %v4bool None %111 -%112 = OpLabel -OpReturnValue %113 +%returns_bool4_b4 = OpFunction %v4bool None %99 +%100 = OpLabel +OpReturnValue %101 OpFunctionEnd -%returns_int_i = OpFunction %int None %115 -%116 = OpLabel +%returns_int_i = OpFunction %int None %103 +%104 = OpLabel OpReturnValue %int_1 OpFunctionEnd -%returns_int2_i2 = OpFunction %v2int None %119 -%120 = OpLabel -OpReturnValue %122 +%returns_int2_i2 = OpFunction %v2int None %107 +%108 = OpLabel +OpReturnValue %110 OpFunctionEnd -%returns_int3_i3 = OpFunction %v3int None %124 -%125 = OpLabel -OpReturnValue %127 +%returns_int3_i3 = OpFunction %v3int None %112 +%113 = OpLabel +OpReturnValue %115 OpFunctionEnd -%returns_int4_i4 = OpFunction %v4int None %129 -%130 = OpLabel -OpReturnValue %132 +%returns_int4_i4 = OpFunction %v4int None %117 +%118 = OpLabel +OpReturnValue %120 OpFunctionEnd -%main = OpFunction %v4float None %133 -%134 = OpFunctionParameter %_ptr_Function_v2float -%135 = OpLabel +%main = OpFunction %v4float None %121 +%122 = OpFunctionParameter %_ptr_Function_v2float +%123 = OpLabel %x1 = OpVariable %_ptr_Function_float Function %x2 = OpVariable %_ptr_Function_v2float Function %x3 = OpVariable %_ptr_Function_v3float Function @@ -328,347 +292,323 @@ OpFunctionEnd %x20 = OpVariable %_ptr_Function_v2int Function %x21 = OpVariable %_ptr_Function_v3int Function %x22 = OpVariable %_ptr_Function_v4int Function -%415 = OpVariable %_ptr_Function_v4float Function +%379 = OpVariable %_ptr_Function_v4float Function OpStore %x1 %float_1 OpStore %x2 %47 OpStore %x3 %52 OpStore %x4 %56 -%146 = OpCompositeConstruct %v2float %float_2 %float_0 -%147 = OpCompositeConstruct %v2float %float_0 %float_2 -%145 = OpCompositeConstruct %mat2v2float %146 %147 -OpStore %x5 %145 -%151 = OpCompositeConstruct %v3float %float_3 %float_0 %float_0 -%152 = OpCompositeConstruct %v3float %float_0 %float_3 %float_0 -%153 = OpCompositeConstruct %v3float %float_0 %float_0 %float_3 -%150 = OpCompositeConstruct %mat3v3float %151 %152 %153 -OpStore %x6 %150 -%157 = OpCompositeConstruct %v4float %float_4 %float_0 %float_0 %float_0 -%158 = OpCompositeConstruct %v4float %float_0 %float_4 %float_0 %float_0 -%159 = OpCompositeConstruct %v4float %float_0 %float_0 %float_4 %float_0 -%160 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_4 -%156 = OpCompositeConstruct %mat4v4float %157 %158 %159 %160 -OpStore %x7 %156 +OpStore %x5 %62 +OpStore %x6 %69 +OpStore %x7 %77 OpStore %x8 %float_1 OpStore %x9 %47 OpStore %x10 %52 OpStore %x11 %56 -%167 = OpCompositeConstruct %v2float %float_2 %float_0 -%168 = OpCompositeConstruct %v2float %float_0 %float_2 -%166 = OpCompositeConstruct %mat2v2float %167 %168 -OpStore %x12 %166 -%171 = OpCompositeConstruct %v3float %float_3 %float_0 %float_0 -%172 = OpCompositeConstruct %v3float %float_0 %float_3 %float_0 -%173 = OpCompositeConstruct %v3float %float_0 %float_0 %float_3 -%170 = OpCompositeConstruct %mat3v3float %171 %172 %173 -OpStore %x13 %170 -%176 = OpCompositeConstruct %v4float %float_4 %float_0 %float_0 %float_0 -%177 = OpCompositeConstruct %v4float %float_0 %float_4 %float_0 %float_0 -%178 = OpCompositeConstruct %v4float %float_0 %float_0 %float_4 %float_0 -%179 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_4 -%175 = OpCompositeConstruct %mat4v4float %176 %177 %178 %179 -OpStore %x14 %175 +OpStore %x12 %62 +OpStore %x13 %69 +OpStore %x14 %77 OpStore %x15 %true -OpStore %x16 %105 -OpStore %x17 %109 -OpStore %x18 %113 +OpStore %x16 %93 +OpStore %x17 %97 +OpStore %x18 %101 OpStore %x19 %int_1 -OpStore %x20 %122 -OpStore %x21 %127 -OpStore %x22 %132 -%197 = OpLoad %float %x1 -%198 = OpFOrdEqual %bool %197 %float_1 -OpSelectionMerge %200 None -OpBranchConditional %198 %199 %200 +OpStore %x20 %110 +OpStore %x21 %115 +OpStore %x22 %120 +%161 = OpLoad %float %x1 +%162 = OpFOrdEqual %bool %161 %float_1 +OpSelectionMerge %164 None +OpBranchConditional %162 %163 %164 +%163 = OpLabel +%165 = OpLoad %v2float %x2 +%166 = OpFunctionCall %v2float %returns_float2_f2 +%167 = OpFOrdEqual %v2bool %165 %166 +%168 = OpAll %bool %167 +OpBranch %164 +%164 = OpLabel +%169 = OpPhi %bool %false %123 %168 %163 +OpSelectionMerge %171 None +OpBranchConditional %169 %170 %171 +%170 = OpLabel +%172 = OpLoad %v3float %x3 +%173 = OpFunctionCall %v3float %returns_float3_f3 +%174 = OpFOrdEqual %v3bool %172 %173 +%175 = OpAll %bool %174 +OpBranch %171 +%171 = OpLabel +%176 = OpPhi %bool %false %164 %175 %170 +OpSelectionMerge %178 None +OpBranchConditional %176 %177 %178 +%177 = OpLabel +%179 = OpLoad %v4float %x4 +%180 = OpFunctionCall %v4float %returns_float4_f4 +%181 = OpFOrdEqual %v4bool %179 %180 +%182 = OpAll %bool %181 +OpBranch %178 +%178 = OpLabel +%183 = OpPhi %bool %false %171 %182 %177 +OpSelectionMerge %185 None +OpBranchConditional %183 %184 %185 +%184 = OpLabel +%186 = OpLoad %mat2v2float %x5 +%187 = OpFunctionCall %mat2v2float %returns_float2x2_f22 +%188 = OpCompositeExtract %v2float %186 0 +%189 = OpCompositeExtract %v2float %187 0 +%190 = OpFOrdEqual %v2bool %188 %189 +%191 = OpAll %bool %190 +%192 = OpCompositeExtract %v2float %186 1 +%193 = OpCompositeExtract %v2float %187 1 +%194 = OpFOrdEqual %v2bool %192 %193 +%195 = OpAll %bool %194 +%196 = OpLogicalAnd %bool %191 %195 +OpBranch %185 +%185 = OpLabel +%197 = OpPhi %bool %false %178 %196 %184 +OpSelectionMerge %199 None +OpBranchConditional %197 %198 %199 +%198 = OpLabel +%200 = OpLoad %mat3v3float %x6 +%201 = OpFunctionCall %mat3v3float %returns_float3x3_f33 +%202 = OpCompositeExtract %v3float %200 0 +%203 = OpCompositeExtract %v3float %201 0 +%204 = OpFOrdEqual %v3bool %202 %203 +%205 = OpAll %bool %204 +%206 = OpCompositeExtract %v3float %200 1 +%207 = OpCompositeExtract %v3float %201 1 +%208 = OpFOrdEqual %v3bool %206 %207 +%209 = OpAll %bool %208 +%210 = OpLogicalAnd %bool %205 %209 +%211 = OpCompositeExtract %v3float %200 2 +%212 = OpCompositeExtract %v3float %201 2 +%213 = OpFOrdEqual %v3bool %211 %212 +%214 = OpAll %bool %213 +%215 = OpLogicalAnd %bool %210 %214 +OpBranch %199 %199 = OpLabel -%201 = OpLoad %v2float %x2 -%202 = OpFunctionCall %v2float %returns_float2_f2 -%203 = OpFOrdEqual %v2bool %201 %202 -%204 = OpAll %bool %203 -OpBranch %200 -%200 = OpLabel -%205 = OpPhi %bool %false %135 %204 %199 -OpSelectionMerge %207 None -OpBranchConditional %205 %206 %207 -%206 = OpLabel -%208 = OpLoad %v3float %x3 -%209 = OpFunctionCall %v3float %returns_float3_f3 -%210 = OpFOrdEqual %v3bool %208 %209 -%211 = OpAll %bool %210 -OpBranch %207 -%207 = OpLabel -%212 = OpPhi %bool %false %200 %211 %206 -OpSelectionMerge %214 None -OpBranchConditional %212 %213 %214 -%213 = OpLabel -%215 = OpLoad %v4float %x4 -%216 = OpFunctionCall %v4float %returns_float4_f4 -%217 = OpFOrdEqual %v4bool %215 %216 -%218 = OpAll %bool %217 -OpBranch %214 -%214 = OpLabel -%219 = OpPhi %bool %false %207 %218 %213 -OpSelectionMerge %221 None -OpBranchConditional %219 %220 %221 -%220 = OpLabel -%222 = OpLoad %mat2v2float %x5 -%223 = OpFunctionCall %mat2v2float %returns_float2x2_f22 -%224 = OpCompositeExtract %v2float %222 0 -%225 = OpCompositeExtract %v2float %223 0 -%226 = OpFOrdEqual %v2bool %224 %225 -%227 = OpAll %bool %226 -%228 = OpCompositeExtract %v2float %222 1 -%229 = OpCompositeExtract %v2float %223 1 -%230 = OpFOrdEqual %v2bool %228 %229 -%231 = OpAll %bool %230 -%232 = OpLogicalAnd %bool %227 %231 -OpBranch %221 -%221 = OpLabel -%233 = OpPhi %bool %false %214 %232 %220 -OpSelectionMerge %235 None -OpBranchConditional %233 %234 %235 -%234 = OpLabel -%236 = OpLoad %mat3v3float %x6 -%237 = OpFunctionCall %mat3v3float %returns_float3x3_f33 -%238 = OpCompositeExtract %v3float %236 0 -%239 = OpCompositeExtract %v3float %237 0 -%240 = OpFOrdEqual %v3bool %238 %239 -%241 = OpAll %bool %240 -%242 = OpCompositeExtract %v3float %236 1 -%243 = OpCompositeExtract %v3float %237 1 -%244 = OpFOrdEqual %v3bool %242 %243 -%245 = OpAll %bool %244 -%246 = OpLogicalAnd %bool %241 %245 -%247 = OpCompositeExtract %v3float %236 2 -%248 = OpCompositeExtract %v3float %237 2 -%249 = OpFOrdEqual %v3bool %247 %248 -%250 = OpAll %bool %249 -%251 = OpLogicalAnd %bool %246 %250 -OpBranch %235 -%235 = OpLabel -%252 = OpPhi %bool %false %221 %251 %234 -OpSelectionMerge %254 None -OpBranchConditional %252 %253 %254 -%253 = OpLabel -%255 = OpLoad %mat4v4float %x7 -%256 = OpFunctionCall %mat4v4float %returns_float4x4_f44 -%257 = OpCompositeExtract %v4float %255 0 -%258 = OpCompositeExtract %v4float %256 0 -%259 = OpFOrdEqual %v4bool %257 %258 -%260 = OpAll %bool %259 -%261 = OpCompositeExtract %v4float %255 1 -%262 = OpCompositeExtract %v4float %256 1 -%263 = OpFOrdEqual %v4bool %261 %262 -%264 = OpAll %bool %263 -%265 = OpLogicalAnd %bool %260 %264 -%266 = OpCompositeExtract %v4float %255 2 -%267 = OpCompositeExtract %v4float %256 2 -%268 = OpFOrdEqual %v4bool %266 %267 -%269 = OpAll %bool %268 -%270 = OpLogicalAnd %bool %265 %269 -%271 = OpCompositeExtract %v4float %255 3 -%272 = OpCompositeExtract %v4float %256 3 -%273 = OpFOrdEqual %v4bool %271 %272 -%274 = OpAll %bool %273 -%275 = OpLogicalAnd %bool %270 %274 -OpBranch %254 +%216 = OpPhi %bool %false %185 %215 %198 +OpSelectionMerge %218 None +OpBranchConditional %216 %217 %218 +%217 = OpLabel +%219 = OpLoad %mat4v4float %x7 +%220 = OpFunctionCall %mat4v4float %returns_float4x4_f44 +%221 = OpCompositeExtract %v4float %219 0 +%222 = OpCompositeExtract %v4float %220 0 +%223 = OpFOrdEqual %v4bool %221 %222 +%224 = OpAll %bool %223 +%225 = OpCompositeExtract %v4float %219 1 +%226 = OpCompositeExtract %v4float %220 1 +%227 = OpFOrdEqual %v4bool %225 %226 +%228 = OpAll %bool %227 +%229 = OpLogicalAnd %bool %224 %228 +%230 = OpCompositeExtract %v4float %219 2 +%231 = OpCompositeExtract %v4float %220 2 +%232 = OpFOrdEqual %v4bool %230 %231 +%233 = OpAll %bool %232 +%234 = OpLogicalAnd %bool %229 %233 +%235 = OpCompositeExtract %v4float %219 3 +%236 = OpCompositeExtract %v4float %220 3 +%237 = OpFOrdEqual %v4bool %235 %236 +%238 = OpAll %bool %237 +%239 = OpLogicalAnd %bool %234 %238 +OpBranch %218 +%218 = OpLabel +%240 = OpPhi %bool %false %199 %239 %217 +OpSelectionMerge %242 None +OpBranchConditional %240 %241 %242 +%241 = OpLabel +%243 = OpLoad %float %x8 +%244 = OpFunctionCall %float %returns_half_h +%245 = OpFOrdEqual %bool %243 %244 +OpBranch %242 +%242 = OpLabel +%246 = OpPhi %bool %false %218 %245 %241 +OpSelectionMerge %248 None +OpBranchConditional %246 %247 %248 +%247 = OpLabel +%249 = OpLoad %v2float %x9 +%250 = OpFunctionCall %v2float %returns_half2_h2 +%251 = OpFOrdEqual %v2bool %249 %250 +%252 = OpAll %bool %251 +OpBranch %248 +%248 = OpLabel +%253 = OpPhi %bool %false %242 %252 %247 +OpSelectionMerge %255 None +OpBranchConditional %253 %254 %255 %254 = OpLabel -%276 = OpPhi %bool %false %235 %275 %253 -OpSelectionMerge %278 None -OpBranchConditional %276 %277 %278 -%277 = OpLabel -%279 = OpLoad %float %x8 -%280 = OpFunctionCall %float %returns_half_h -%281 = OpFOrdEqual %bool %279 %280 -OpBranch %278 -%278 = OpLabel -%282 = OpPhi %bool %false %254 %281 %277 -OpSelectionMerge %284 None -OpBranchConditional %282 %283 %284 +%256 = OpLoad %v3float %x10 +%257 = OpFunctionCall %v3float %returns_half3_h3 +%258 = OpFOrdEqual %v3bool %256 %257 +%259 = OpAll %bool %258 +OpBranch %255 +%255 = OpLabel +%260 = OpPhi %bool %false %248 %259 %254 +OpSelectionMerge %262 None +OpBranchConditional %260 %261 %262 +%261 = OpLabel +%263 = OpLoad %v4float %x11 +%264 = OpFunctionCall %v4float %returns_half4_h4 +%265 = OpFOrdEqual %v4bool %263 %264 +%266 = OpAll %bool %265 +OpBranch %262 +%262 = OpLabel +%267 = OpPhi %bool %false %255 %266 %261 +OpSelectionMerge %269 None +OpBranchConditional %267 %268 %269 +%268 = OpLabel +%270 = OpLoad %mat2v2float %x12 +%271 = OpFunctionCall %mat2v2float %returns_half2x2_h22 +%272 = OpCompositeExtract %v2float %270 0 +%273 = OpCompositeExtract %v2float %271 0 +%274 = OpFOrdEqual %v2bool %272 %273 +%275 = OpAll %bool %274 +%276 = OpCompositeExtract %v2float %270 1 +%277 = OpCompositeExtract %v2float %271 1 +%278 = OpFOrdEqual %v2bool %276 %277 +%279 = OpAll %bool %278 +%280 = OpLogicalAnd %bool %275 %279 +OpBranch %269 +%269 = OpLabel +%281 = OpPhi %bool %false %262 %280 %268 +OpSelectionMerge %283 None +OpBranchConditional %281 %282 %283 +%282 = OpLabel +%284 = OpLoad %mat3v3float %x13 +%285 = OpFunctionCall %mat3v3float %returns_half3x3_h33 +%286 = OpCompositeExtract %v3float %284 0 +%287 = OpCompositeExtract %v3float %285 0 +%288 = OpFOrdEqual %v3bool %286 %287 +%289 = OpAll %bool %288 +%290 = OpCompositeExtract %v3float %284 1 +%291 = OpCompositeExtract %v3float %285 1 +%292 = OpFOrdEqual %v3bool %290 %291 +%293 = OpAll %bool %292 +%294 = OpLogicalAnd %bool %289 %293 +%295 = OpCompositeExtract %v3float %284 2 +%296 = OpCompositeExtract %v3float %285 2 +%297 = OpFOrdEqual %v3bool %295 %296 +%298 = OpAll %bool %297 +%299 = OpLogicalAnd %bool %294 %298 +OpBranch %283 %283 = OpLabel -%285 = OpLoad %v2float %x9 -%286 = OpFunctionCall %v2float %returns_half2_h2 -%287 = OpFOrdEqual %v2bool %285 %286 -%288 = OpAll %bool %287 -OpBranch %284 -%284 = OpLabel -%289 = OpPhi %bool %false %278 %288 %283 -OpSelectionMerge %291 None -OpBranchConditional %289 %290 %291 -%290 = OpLabel -%292 = OpLoad %v3float %x10 -%293 = OpFunctionCall %v3float %returns_half3_h3 -%294 = OpFOrdEqual %v3bool %292 %293 -%295 = OpAll %bool %294 -OpBranch %291 -%291 = OpLabel -%296 = OpPhi %bool %false %284 %295 %290 -OpSelectionMerge %298 None -OpBranchConditional %296 %297 %298 -%297 = OpLabel -%299 = OpLoad %v4float %x11 -%300 = OpFunctionCall %v4float %returns_half4_h4 -%301 = OpFOrdEqual %v4bool %299 %300 -%302 = OpAll %bool %301 -OpBranch %298 -%298 = OpLabel -%303 = OpPhi %bool %false %291 %302 %297 -OpSelectionMerge %305 None -OpBranchConditional %303 %304 %305 -%304 = OpLabel -%306 = OpLoad %mat2v2float %x12 -%307 = OpFunctionCall %mat2v2float %returns_half2x2_h22 -%308 = OpCompositeExtract %v2float %306 0 -%309 = OpCompositeExtract %v2float %307 0 -%310 = OpFOrdEqual %v2bool %308 %309 -%311 = OpAll %bool %310 -%312 = OpCompositeExtract %v2float %306 1 -%313 = OpCompositeExtract %v2float %307 1 -%314 = OpFOrdEqual %v2bool %312 %313 -%315 = OpAll %bool %314 -%316 = OpLogicalAnd %bool %311 %315 -OpBranch %305 -%305 = OpLabel -%317 = OpPhi %bool %false %298 %316 %304 -OpSelectionMerge %319 None -OpBranchConditional %317 %318 %319 -%318 = OpLabel -%320 = OpLoad %mat3v3float %x13 -%321 = OpFunctionCall %mat3v3float %returns_half3x3_h33 -%322 = OpCompositeExtract %v3float %320 0 -%323 = OpCompositeExtract %v3float %321 0 -%324 = OpFOrdEqual %v3bool %322 %323 -%325 = OpAll %bool %324 -%326 = OpCompositeExtract %v3float %320 1 -%327 = OpCompositeExtract %v3float %321 1 -%328 = OpFOrdEqual %v3bool %326 %327 -%329 = OpAll %bool %328 -%330 = OpLogicalAnd %bool %325 %329 -%331 = OpCompositeExtract %v3float %320 2 -%332 = OpCompositeExtract %v3float %321 2 -%333 = OpFOrdEqual %v3bool %331 %332 -%334 = OpAll %bool %333 -%335 = OpLogicalAnd %bool %330 %334 -OpBranch %319 -%319 = OpLabel -%336 = OpPhi %bool %false %305 %335 %318 -OpSelectionMerge %338 None -OpBranchConditional %336 %337 %338 -%337 = OpLabel -%339 = OpLoad %mat4v4float %x14 -%340 = OpFunctionCall %mat4v4float %returns_half4x4_h44 -%341 = OpCompositeExtract %v4float %339 0 -%342 = OpCompositeExtract %v4float %340 0 -%343 = OpFOrdEqual %v4bool %341 %342 -%344 = OpAll %bool %343 -%345 = OpCompositeExtract %v4float %339 1 -%346 = OpCompositeExtract %v4float %340 1 -%347 = OpFOrdEqual %v4bool %345 %346 -%348 = OpAll %bool %347 -%349 = OpLogicalAnd %bool %344 %348 -%350 = OpCompositeExtract %v4float %339 2 -%351 = OpCompositeExtract %v4float %340 2 -%352 = OpFOrdEqual %v4bool %350 %351 -%353 = OpAll %bool %352 -%354 = OpLogicalAnd %bool %349 %353 -%355 = OpCompositeExtract %v4float %339 3 -%356 = OpCompositeExtract %v4float %340 3 -%357 = OpFOrdEqual %v4bool %355 %356 -%358 = OpAll %bool %357 -%359 = OpLogicalAnd %bool %354 %358 -OpBranch %338 +%300 = OpPhi %bool %false %269 %299 %282 +OpSelectionMerge %302 None +OpBranchConditional %300 %301 %302 +%301 = OpLabel +%303 = OpLoad %mat4v4float %x14 +%304 = OpFunctionCall %mat4v4float %returns_half4x4_h44 +%305 = OpCompositeExtract %v4float %303 0 +%306 = OpCompositeExtract %v4float %304 0 +%307 = OpFOrdEqual %v4bool %305 %306 +%308 = OpAll %bool %307 +%309 = OpCompositeExtract %v4float %303 1 +%310 = OpCompositeExtract %v4float %304 1 +%311 = OpFOrdEqual %v4bool %309 %310 +%312 = OpAll %bool %311 +%313 = OpLogicalAnd %bool %308 %312 +%314 = OpCompositeExtract %v4float %303 2 +%315 = OpCompositeExtract %v4float %304 2 +%316 = OpFOrdEqual %v4bool %314 %315 +%317 = OpAll %bool %316 +%318 = OpLogicalAnd %bool %313 %317 +%319 = OpCompositeExtract %v4float %303 3 +%320 = OpCompositeExtract %v4float %304 3 +%321 = OpFOrdEqual %v4bool %319 %320 +%322 = OpAll %bool %321 +%323 = OpLogicalAnd %bool %318 %322 +OpBranch %302 +%302 = OpLabel +%324 = OpPhi %bool %false %283 %323 %301 +OpSelectionMerge %326 None +OpBranchConditional %324 %325 %326 +%325 = OpLabel +%327 = OpLoad %bool %x15 +%328 = OpFunctionCall %bool %returns_bool_b +%329 = OpLogicalEqual %bool %327 %328 +OpBranch %326 +%326 = OpLabel +%330 = OpPhi %bool %false %302 %329 %325 +OpSelectionMerge %332 None +OpBranchConditional %330 %331 %332 +%331 = OpLabel +%333 = OpLoad %v2bool %x16 +%334 = OpFunctionCall %v2bool %returns_bool2_b2 +%335 = OpLogicalEqual %v2bool %333 %334 +%336 = OpAll %bool %335 +OpBranch %332 +%332 = OpLabel +%337 = OpPhi %bool %false %326 %336 %331 +OpSelectionMerge %339 None +OpBranchConditional %337 %338 %339 %338 = OpLabel -%360 = OpPhi %bool %false %319 %359 %337 -OpSelectionMerge %362 None -OpBranchConditional %360 %361 %362 -%361 = OpLabel -%363 = OpLoad %bool %x15 -%364 = OpFunctionCall %bool %returns_bool_b -%365 = OpLogicalEqual %bool %363 %364 -OpBranch %362 -%362 = OpLabel -%366 = OpPhi %bool %false %338 %365 %361 -OpSelectionMerge %368 None -OpBranchConditional %366 %367 %368 -%367 = OpLabel -%369 = OpLoad %v2bool %x16 -%370 = OpFunctionCall %v2bool %returns_bool2_b2 -%371 = OpLogicalEqual %v2bool %369 %370 -%372 = OpAll %bool %371 -OpBranch %368 -%368 = OpLabel -%373 = OpPhi %bool %false %362 %372 %367 -OpSelectionMerge %375 None -OpBranchConditional %373 %374 %375 -%374 = OpLabel -%376 = OpLoad %v3bool %x17 -%377 = OpFunctionCall %v3bool %returns_bool3_b3 -%378 = OpLogicalEqual %v3bool %376 %377 -%379 = OpAll %bool %378 -OpBranch %375 -%375 = OpLabel -%380 = OpPhi %bool %false %368 %379 %374 +%340 = OpLoad %v3bool %x17 +%341 = OpFunctionCall %v3bool %returns_bool3_b3 +%342 = OpLogicalEqual %v3bool %340 %341 +%343 = OpAll %bool %342 +OpBranch %339 +%339 = OpLabel +%344 = OpPhi %bool %false %332 %343 %338 +OpSelectionMerge %346 None +OpBranchConditional %344 %345 %346 +%345 = OpLabel +%347 = OpLoad %v4bool %x18 +%348 = OpFunctionCall %v4bool %returns_bool4_b4 +%349 = OpLogicalEqual %v4bool %347 %348 +%350 = OpAll %bool %349 +OpBranch %346 +%346 = OpLabel +%351 = OpPhi %bool %false %339 %350 %345 +OpSelectionMerge %353 None +OpBranchConditional %351 %352 %353 +%352 = OpLabel +%354 = OpLoad %int %x19 +%355 = OpFunctionCall %int %returns_int_i +%356 = OpIEqual %bool %354 %355 +OpBranch %353 +%353 = OpLabel +%357 = OpPhi %bool %false %346 %356 %352 +OpSelectionMerge %359 None +OpBranchConditional %357 %358 %359 +%358 = OpLabel +%360 = OpLoad %v2int %x20 +%361 = OpFunctionCall %v2int %returns_int2_i2 +%362 = OpIEqual %v2bool %360 %361 +%363 = OpAll %bool %362 +OpBranch %359 +%359 = OpLabel +%364 = OpPhi %bool %false %353 %363 %358 +OpSelectionMerge %366 None +OpBranchConditional %364 %365 %366 +%365 = OpLabel +%367 = OpLoad %v3int %x21 +%368 = OpFunctionCall %v3int %returns_int3_i3 +%369 = OpIEqual %v3bool %367 %368 +%370 = OpAll %bool %369 +OpBranch %366 +%366 = OpLabel +%371 = OpPhi %bool %false %359 %370 %365 +OpSelectionMerge %373 None +OpBranchConditional %371 %372 %373 +%372 = OpLabel +%374 = OpLoad %v4int %x22 +%375 = OpFunctionCall %v4int %returns_int4_i4 +%376 = OpIEqual %v4bool %374 %375 +%377 = OpAll %bool %376 +OpBranch %373 +%373 = OpLabel +%378 = OpPhi %bool %false %366 %377 %372 OpSelectionMerge %382 None -OpBranchConditional %380 %381 %382 +OpBranchConditional %378 %380 %381 +%380 = OpLabel +%383 = OpAccessChain %_ptr_Uniform_v4float %31 %int_0 +%386 = OpLoad %v4float %383 +OpStore %379 %386 +OpBranch %382 %381 = OpLabel -%383 = OpLoad %v4bool %x18 -%384 = OpFunctionCall %v4bool %returns_bool4_b4 -%385 = OpLogicalEqual %v4bool %383 %384 -%386 = OpAll %bool %385 +%387 = OpAccessChain %_ptr_Uniform_v4float %31 %int_1 +%388 = OpLoad %v4float %387 +OpStore %379 %388 OpBranch %382 %382 = OpLabel -%387 = OpPhi %bool %false %375 %386 %381 -OpSelectionMerge %389 None -OpBranchConditional %387 %388 %389 -%388 = OpLabel -%390 = OpLoad %int %x19 -%391 = OpFunctionCall %int %returns_int_i -%392 = OpIEqual %bool %390 %391 -OpBranch %389 -%389 = OpLabel -%393 = OpPhi %bool %false %382 %392 %388 -OpSelectionMerge %395 None -OpBranchConditional %393 %394 %395 -%394 = OpLabel -%396 = OpLoad %v2int %x20 -%397 = OpFunctionCall %v2int %returns_int2_i2 -%398 = OpIEqual %v2bool %396 %397 -%399 = OpAll %bool %398 -OpBranch %395 -%395 = OpLabel -%400 = OpPhi %bool %false %389 %399 %394 -OpSelectionMerge %402 None -OpBranchConditional %400 %401 %402 -%401 = OpLabel -%403 = OpLoad %v3int %x21 -%404 = OpFunctionCall %v3int %returns_int3_i3 -%405 = OpIEqual %v3bool %403 %404 -%406 = OpAll %bool %405 -OpBranch %402 -%402 = OpLabel -%407 = OpPhi %bool %false %395 %406 %401 -OpSelectionMerge %409 None -OpBranchConditional %407 %408 %409 -%408 = OpLabel -%410 = OpLoad %v4int %x22 -%411 = OpFunctionCall %v4int %returns_int4_i4 -%412 = OpIEqual %v4bool %410 %411 -%413 = OpAll %bool %412 -OpBranch %409 -%409 = OpLabel -%414 = OpPhi %bool %false %402 %413 %408 -OpSelectionMerge %418 None -OpBranchConditional %414 %416 %417 -%416 = OpLabel -%419 = OpAccessChain %_ptr_Uniform_v4float %31 %int_0 -%422 = OpLoad %v4float %419 -OpStore %415 %422 -OpBranch %418 -%417 = OpLabel -%423 = OpAccessChain %_ptr_Uniform_v4float %31 %int_1 -%424 = OpLoad %v4float %423 -OpStore %415 %424 -OpBranch %418 -%418 = OpLabel -%425 = OpLoad %v4float %415 -OpReturnValue %425 +%389 = OpLoad %v4float %379 +OpReturnValue %389 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/Functions.asm.frag b/third_party/skia/tests/sksl/shared/Functions.asm.frag index 2735ce225ba7..03a0a0ded970 100644 --- a/third_party/skia/tests/sksl/shared/Functions.asm.frag +++ b/third_party/skia/tests/sksl/shared/Functions.asm.frag @@ -41,13 +41,13 @@ OpDecorate %79 RelaxedPrecision %12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %17 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %21 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %25 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_float = OpTypePointer Function %float -%33 = OpTypeFunction %void %_ptr_Function_float +%34 = OpTypeFunction %void %_ptr_Function_float %int = OpTypeInt 32 1 %int_2 = OpConstant %int 2 %_arr_float_int_2 = OpTypeArray %float %int_2 @@ -78,7 +78,7 @@ OpFunctionEnd %32 = OpFMul %float %29 %31 OpReturnValue %32 OpFunctionEnd -%bar_vf = OpFunction %void None %33 +%bar_vf = OpFunction %void None %34 %35 = OpFunctionParameter %_ptr_Function_float %36 = OpLabel %y = OpVariable %_ptr_Function__arr_float_int_2 Function diff --git a/third_party/skia/tests/sksl/shared/GaussianBlur.asm.frag b/third_party/skia/tests/sksl/shared/GaussianBlur.asm.frag index 3def5bf1ab3f..8ef73e96b1e4 100644 --- a/third_party/skia/tests/sksl/shared/GaussianBlur.asm.frag +++ b/third_party/skia/tests/sksl/shared/GaussianBlur.asm.frag @@ -58,10 +58,8 @@ OpDecorate %98 RelaxedPrecision OpDecorate %99 RelaxedPrecision OpDecorate %outputColor_Stage0 RelaxedPrecision OpDecorate %outputCoverage_Stage0 RelaxedPrecision -OpDecorate %105 RelaxedPrecision OpDecorate %output_Stage1 RelaxedPrecision OpDecorate %_6_output RelaxedPrecision -OpDecorate %109 RelaxedPrecision OpDecorate %115 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %121 RelaxedPrecision @@ -262,15 +260,15 @@ OpDecorate %527 RelaxedPrecision %bool = OpTypeBool %_ptr_Input_bool = OpTypePointer Input %bool %sk_Clockwise = OpVariable %_ptr_Input_bool Input -%23 = OpTypeImage %float 2D 0 0 0 1 Unknown -%22 = OpTypeSampledImage %23 +%21 = OpTypeImage %float 2D 0 0 0 1 Unknown +%22 = OpTypeSampledImage %21 %_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22 %uTextureSampler_0_Stage1 = OpVariable %_ptr_UniformConstant_22 UniformConstant %_ptr_Input_v2float = OpTypePointer Input %v2float %vLocalCoord_Stage0 = OpVariable %_ptr_Input_v2float Input %_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Function_v2float = OpTypePointer Function %v2float -%26 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v2float +%28 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v2float %int_3 = OpConstant %int 3 %_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float %float_1 = OpConstant %float 1 @@ -293,7 +291,7 @@ OpDecorate %527 RelaxedPrecision %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %119 = OpConstantComposite %v2float %float_0 %float_0 %int_2 = OpConstant %int 2 -%MatrixEffect_Stage1_c0_c0_h4h4f2 = OpFunction %v4float None %26 +%MatrixEffect_Stage1_c0_c0_h4h4f2 = OpFunction %v4float None %28 %29 = OpFunctionParameter %_ptr_Function_v4float %30 = OpFunctionParameter %_ptr_Function_v2float %31 = OpLabel diff --git a/third_party/skia/tests/sksl/shared/GeometricIntrinsics.asm.frag b/third_party/skia/tests/sksl/shared/GeometricIntrinsics.asm.frag index 3e3ddf1d7073..427a95884e76 100644 --- a/third_party/skia/tests/sksl/shared/GeometricIntrinsics.asm.frag +++ b/third_party/skia/tests/sksl/shared/GeometricIntrinsics.asm.frag @@ -33,8 +33,8 @@ OpDecorate %58 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/HelloWorld.asm.frag b/third_party/skia/tests/sksl/shared/HelloWorld.asm.frag index 52204f0063a4..2981be413049 100644 --- a/third_party/skia/tests/sksl/shared/HelloWorld.asm.frag +++ b/third_party/skia/tests/sksl/shared/HelloWorld.asm.frag @@ -11,7 +11,6 @@ OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpDecorate %sk_Clockwise BuiltIn FrontFacing -OpDecorate %24 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -21,8 +20,8 @@ OpDecorate %24 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/HelloWorld.wgsl b/third_party/skia/tests/sksl/shared/HelloWorld.wgsl new file mode 100644 index 000000000000..23fff9528e3a --- /dev/null +++ b/third_party/skia/tests/sksl/shared/HelloWorld.wgsl @@ -0,0 +1,15 @@ +struct FSIn { + @builtin(front_facing) sk_Clockwise: bool; + @builtin(position) sk_FragCoord: vec4; +}; +struct FSOut { + @location(0) sk_FragColor: vec4; +}; +fn main(coords: vec2) -> vec4 { + return vec4(0.0, 1.0, 0.0, 1.0); +} +@stage(fragment) fn fragmentMain(_stageIn: FSIn) -> FSOut { + var _stageOut: FSOut; + _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + return _stageOut; +} diff --git a/third_party/skia/tests/sksl/shared/Hex.asm.frag b/third_party/skia/tests/sksl/shared/Hex.asm.frag index 2c3912a5b9b0..9d876e1b3863 100644 --- a/third_party/skia/tests/sksl/shared/Hex.asm.frag +++ b/third_party/skia/tests/sksl/shared/Hex.asm.frag @@ -36,8 +36,8 @@ OpDecorate %51 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/HexUnsigned.asm.frag b/third_party/skia/tests/sksl/shared/HexUnsigned.asm.frag index 1558158f4a6d..926150953aef 100644 --- a/third_party/skia/tests/sksl/shared/HexUnsigned.asm.frag +++ b/third_party/skia/tests/sksl/shared/HexUnsigned.asm.frag @@ -39,8 +39,8 @@ OpDecorate %53 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/InoutParameters.asm.frag b/third_party/skia/tests/sksl/shared/InoutParameters.asm.frag index c5f2a33b3d83..3d0a71306b3b 100644 --- a/third_party/skia/tests/sksl/shared/InoutParameters.asm.frag +++ b/third_party/skia/tests/sksl/shared/InoutParameters.asm.frag @@ -56,12 +56,12 @@ OpDecorate %71 RelaxedPrecision %14 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %19 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %23 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %_ptr_Function_v4float = OpTypePointer Function %v4float -%27 = OpTypeFunction %void %_ptr_Function_v4float +%28 = OpTypeFunction %void %_ptr_Function_v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 @@ -75,7 +75,7 @@ OpStore %24 %23 OpStore %sk_FragColor %26 OpReturn OpFunctionEnd -%outParameterWrite_vh4 = OpFunction %void None %27 +%outParameterWrite_vh4 = OpFunction %void None %28 %29 = OpFunctionParameter %_ptr_Function_v4float %30 = OpLabel %31 = OpAccessChain %_ptr_Uniform_v4float %14 %int_0 @@ -83,7 +83,7 @@ OpFunctionEnd OpStore %29 %35 OpReturn OpFunctionEnd -%outParameterWriteIndirect_vh4 = OpFunction %void None %27 +%outParameterWriteIndirect_vh4 = OpFunction %void None %28 %36 = OpFunctionParameter %_ptr_Function_v4float %37 = OpLabel %38 = OpVariable %_ptr_Function_v4float Function @@ -92,7 +92,7 @@ OpFunctionEnd OpStore %36 %40 OpReturn OpFunctionEnd -%inoutParameterWrite_vh4 = OpFunction %void None %27 +%inoutParameterWrite_vh4 = OpFunction %void None %28 %41 = OpFunctionParameter %_ptr_Function_v4float %42 = OpLabel %43 = OpLoad %v4float %41 @@ -101,7 +101,7 @@ OpFunctionEnd OpStore %41 %45 OpReturn OpFunctionEnd -%inoutParameterWriteIndirect_vh4 = OpFunction %void None %27 +%inoutParameterWriteIndirect_vh4 = OpFunction %void None %28 %46 = OpFunctionParameter %_ptr_Function_v4float %47 = OpLabel %49 = OpVariable %_ptr_Function_v4float Function diff --git a/third_party/skia/tests/sksl/shared/InoutParamsAreDistinct.asm.frag b/third_party/skia/tests/sksl/shared/InoutParamsAreDistinct.asm.frag new file mode 100644 index 000000000000..98d5b936e79c --- /dev/null +++ b/third_party/skia/tests/sksl/shared/InoutParamsAreDistinct.asm.frag @@ -0,0 +1,123 @@ +OpCapability Shader +%1 = OpExtInstImport "GLSL.std.450" +OpMemoryModel Logical GLSL450 +OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise +OpExecutionMode %_entrypoint_v OriginUpperLeft +OpName %sk_FragColor "sk_FragColor" +OpName %sk_Clockwise "sk_Clockwise" +OpName %_UniformBuffer "_UniformBuffer" +OpMemberName %_UniformBuffer 0 "colorGreen" +OpMemberName %_UniformBuffer 1 "colorRed" +OpName %_entrypoint_v "_entrypoint_v" +OpName %inout_params_are_distinct_bhh "inout_params_are_distinct_bhh" +OpName %main "main" +OpName %x "x" +OpDecorate %sk_FragColor RelaxedPrecision +OpDecorate %sk_FragColor Location 0 +OpDecorate %sk_FragColor Index 0 +OpDecorate %sk_Clockwise BuiltIn FrontFacing +OpMemberDecorate %_UniformBuffer 0 Offset 0 +OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision +OpMemberDecorate %_UniformBuffer 1 Offset 16 +OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision +OpDecorate %_UniformBuffer Block +OpDecorate %11 Binding 0 +OpDecorate %11 DescriptorSet 0 +OpDecorate %32 RelaxedPrecision +OpDecorate %36 RelaxedPrecision +OpDecorate %x RelaxedPrecision +OpDecorate %43 RelaxedPrecision +OpDecorate %44 RelaxedPrecision +OpDecorate %45 RelaxedPrecision +OpDecorate %46 RelaxedPrecision +OpDecorate %48 RelaxedPrecision +OpDecorate %49 RelaxedPrecision +OpDecorate %59 RelaxedPrecision +OpDecorate %62 RelaxedPrecision +OpDecorate %63 RelaxedPrecision +%float = OpTypeFloat 32 +%v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float +%sk_FragColor = OpVariable %_ptr_Output_v4float Output +%bool = OpTypeBool +%_ptr_Input_bool = OpTypePointer Input %bool +%sk_Clockwise = OpVariable %_ptr_Input_bool Input +%_UniformBuffer = OpTypeStruct %v4float %v4float +%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer +%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform +%void = OpTypeVoid +%16 = OpTypeFunction %void +%float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 +%20 = OpConstantComposite %v2float %float_0 %float_0 +%_ptr_Function_v2float = OpTypePointer Function %v2float +%_ptr_Function_float = OpTypePointer Function %float +%25 = OpTypeFunction %bool %_ptr_Function_float %_ptr_Function_float +%float_1 = OpConstant %float 1 +%float_2 = OpConstant %float 2 +%false = OpConstantFalse %bool +%39 = OpTypeFunction %v4float %_ptr_Function_v2float +%_ptr_Function_v4float = OpTypePointer Function %v4float +%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float +%int = OpTypeInt 32 1 +%int_0 = OpConstant %int 0 +%int_1 = OpConstant %int 1 +%_entrypoint_v = OpFunction %void None %16 +%17 = OpLabel +%21 = OpVariable %_ptr_Function_v2float Function +OpStore %21 %20 +%23 = OpFunctionCall %v4float %main %21 +OpStore %sk_FragColor %23 +OpReturn +OpFunctionEnd +%inout_params_are_distinct_bhh = OpFunction %bool None %25 +%26 = OpFunctionParameter %_ptr_Function_float +%27 = OpFunctionParameter %_ptr_Function_float +%28 = OpLabel +OpStore %26 %float_1 +OpStore %27 %float_2 +%32 = OpLoad %float %26 +%33 = OpFOrdEqual %bool %32 %float_1 +OpSelectionMerge %35 None +OpBranchConditional %33 %34 %35 +%34 = OpLabel +%36 = OpLoad %float %27 +%37 = OpFOrdEqual %bool %36 %float_2 +OpBranch %35 +%35 = OpLabel +%38 = OpPhi %bool %false %28 %37 %34 +OpReturnValue %38 +OpFunctionEnd +%main = OpFunction %v4float None %39 +%40 = OpFunctionParameter %_ptr_Function_v2float +%41 = OpLabel +%x = OpVariable %_ptr_Function_float Function +%44 = OpVariable %_ptr_Function_float Function +%46 = OpVariable %_ptr_Function_float Function +%50 = OpVariable %_ptr_Function_v4float Function +OpStore %x %float_0 +%43 = OpLoad %float %x +OpStore %44 %43 +%45 = OpLoad %float %x +OpStore %46 %45 +%47 = OpFunctionCall %bool %inout_params_are_distinct_bhh %44 %46 +%48 = OpLoad %float %44 +OpStore %x %48 +%49 = OpLoad %float %46 +OpStore %x %49 +OpSelectionMerge %54 None +OpBranchConditional %47 %52 %53 +%52 = OpLabel +%55 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 +%59 = OpLoad %v4float %55 +OpStore %50 %59 +OpBranch %54 +%53 = OpLabel +%60 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 +%62 = OpLoad %v4float %60 +OpStore %50 %62 +OpBranch %54 +%54 = OpLabel +%63 = OpLoad %v4float %50 +OpReturnValue %63 +OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/InoutParamsAreDistinct.glsl b/third_party/skia/tests/sksl/shared/InoutParamsAreDistinct.glsl new file mode 100644 index 000000000000..92cd940fc55b --- /dev/null +++ b/third_party/skia/tests/sksl/shared/InoutParamsAreDistinct.glsl @@ -0,0 +1,13 @@ + +out vec4 sk_FragColor; +uniform vec4 colorGreen; +uniform vec4 colorRed; +bool inout_params_are_distinct_bhh(inout float x, inout float y) { + x = 1.0; + y = 2.0; + return x == 1.0 && y == 2.0; +} +vec4 main() { + float x = 0.0; + return inout_params_are_distinct_bhh(x, x) ? colorGreen : colorRed; +} diff --git a/third_party/skia/tests/sksl/shared/InoutParamsAreDistinct.metal b/third_party/skia/tests/sksl/shared/InoutParamsAreDistinct.metal new file mode 100644 index 000000000000..86d42ee18974 --- /dev/null +++ b/third_party/skia/tests/sksl/shared/InoutParamsAreDistinct.metal @@ -0,0 +1,33 @@ +#include +#include +using namespace metal; +struct Uniforms { + half4 colorGreen; + half4 colorRed; +}; +struct Inputs { +}; +struct Outputs { + half4 sk_FragColor [[color(0)]]; +}; +bool inout_params_are_distinct_bhh(thread half& x, thread half& y); +bool _skOutParamHelper0_inout_params_are_distinct_bhh(thread half& x, thread half&) { + half _var0 = x; + half _var1 = x; + bool _skResult = inout_params_are_distinct_bhh(_var0, _var1); + x = _var0; + x = _var1; + return _skResult; +} +bool inout_params_are_distinct_bhh(thread half& x, thread half& y) { + x = 1.0h; + y = 2.0h; + return x == 1.0h && y == 2.0h; +} +fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { + Outputs _out; + (void)_out; + half x = 0.0h; + _out.sk_FragColor = _skOutParamHelper0_inout_params_are_distinct_bhh(x, x) ? _uniforms.colorGreen : _uniforms.colorRed; + return _out; +} diff --git a/third_party/skia/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag b/third_party/skia/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag index 320f21c0c1ca..897568222e87 100644 --- a/third_party/skia/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag +++ b/third_party/skia/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag @@ -1,6 +1,6 @@ ### Compilation failed: -error: SPIR-V validation error: Block decoration on target '4[%_arr_testBlock_int_2]' must be a structure type +error: SPIR-V validation error: Block decoration on target '8[%_arr_testBlock_int_2]' must be a structure type OpDecorate %_arr_testBlock_int_2 Block OpCapability Shader diff --git a/third_party/skia/tests/sksl/shared/Matrices.asm.frag b/third_party/skia/tests/sksl/shared/Matrices.asm.frag index ac798d3bdf68..af83877631a0 100644 --- a/third_party/skia/tests/sksl/shared/Matrices.asm.frag +++ b/third_party/skia/tests/sksl/shared/Matrices.asm.frag @@ -44,139 +44,81 @@ OpDecorate %_UniformBuffer Block OpDecorate %12 Binding 0 OpDecorate %12 DescriptorSet 0 OpDecorate %m1 RelaxedPrecision -OpDecorate %37 RelaxedPrecision -OpDecorate %38 RelaxedPrecision -OpDecorate %39 RelaxedPrecision OpDecorate %41 RelaxedPrecision OpDecorate %44 RelaxedPrecision -OpDecorate %45 RelaxedPrecision -OpDecorate %46 RelaxedPrecision -OpDecorate %47 RelaxedPrecision OpDecorate %m3 RelaxedPrecision -OpDecorate %60 RelaxedPrecision -OpDecorate %61 RelaxedPrecision -OpDecorate %64 RelaxedPrecision -OpDecorate %65 RelaxedPrecision -OpDecorate %66 RelaxedPrecision -OpDecorate %67 RelaxedPrecision +OpDecorate %55 RelaxedPrecision +OpDecorate %56 RelaxedPrecision +OpDecorate %59 RelaxedPrecision OpDecorate %m4 RelaxedPrecision -OpDecorate %80 RelaxedPrecision -OpDecorate %81 RelaxedPrecision -OpDecorate %82 RelaxedPrecision -OpDecorate %83 RelaxedPrecision +OpDecorate %73 RelaxedPrecision +OpDecorate %76 RelaxedPrecision +OpDecorate %85 RelaxedPrecision OpDecorate %86 RelaxedPrecision OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision -OpDecorate %89 RelaxedPrecision -OpDecorate %100 RelaxedPrecision -OpDecorate %101 RelaxedPrecision -OpDecorate %102 RelaxedPrecision -OpDecorate %103 RelaxedPrecision -OpDecorate %106 RelaxedPrecision +OpDecorate %91 RelaxedPrecision +OpDecorate %m5 RelaxedPrecision OpDecorate %110 RelaxedPrecision OpDecorate %111 RelaxedPrecision OpDecorate %112 RelaxedPrecision -OpDecorate %m5 RelaxedPrecision -OpDecorate %127 RelaxedPrecision -OpDecorate %128 RelaxedPrecision -OpDecorate %129 RelaxedPrecision +OpDecorate %113 RelaxedPrecision +OpDecorate %114 RelaxedPrecision +OpDecorate %115 RelaxedPrecision +OpDecorate %118 RelaxedPrecision OpDecorate %130 RelaxedPrecision OpDecorate %131 RelaxedPrecision OpDecorate %132 RelaxedPrecision +OpDecorate %133 RelaxedPrecision +OpDecorate %134 RelaxedPrecision OpDecorate %135 RelaxedPrecision OpDecorate %136 RelaxedPrecision OpDecorate %137 RelaxedPrecision OpDecorate %138 RelaxedPrecision -OpDecorate %149 RelaxedPrecision -OpDecorate %150 RelaxedPrecision -OpDecorate %151 RelaxedPrecision -OpDecorate %152 RelaxedPrecision -OpDecorate %153 RelaxedPrecision -OpDecorate %154 RelaxedPrecision -OpDecorate %155 RelaxedPrecision -OpDecorate %156 RelaxedPrecision -OpDecorate %157 RelaxedPrecision -OpDecorate %158 RelaxedPrecision +OpDecorate %139 RelaxedPrecision +OpDecorate %142 RelaxedPrecision +OpDecorate %m7 RelaxedPrecision OpDecorate %161 RelaxedPrecision OpDecorate %164 RelaxedPrecision -OpDecorate %165 RelaxedPrecision -OpDecorate %166 RelaxedPrecision -OpDecorate %m7 RelaxedPrecision -OpDecorate %179 RelaxedPrecision -OpDecorate %180 RelaxedPrecision -OpDecorate %181 RelaxedPrecision +OpDecorate %m9 RelaxedPrecision OpDecorate %182 RelaxedPrecision OpDecorate %185 RelaxedPrecision -OpDecorate %186 RelaxedPrecision -OpDecorate %187 RelaxedPrecision -OpDecorate %188 RelaxedPrecision -OpDecorate %m9 RelaxedPrecision -OpDecorate %204 RelaxedPrecision -OpDecorate %205 RelaxedPrecision -OpDecorate %206 RelaxedPrecision -OpDecorate %207 RelaxedPrecision +OpDecorate %m10 RelaxedPrecision OpDecorate %208 RelaxedPrecision OpDecorate %211 RelaxedPrecision -OpDecorate %212 RelaxedPrecision -OpDecorate %213 RelaxedPrecision -OpDecorate %214 RelaxedPrecision -OpDecorate %215 RelaxedPrecision -OpDecorate %m10 RelaxedPrecision +OpDecorate %m11 RelaxedPrecision +OpDecorate %233 RelaxedPrecision +OpDecorate %234 RelaxedPrecision +OpDecorate %235 RelaxedPrecision OpDecorate %236 RelaxedPrecision OpDecorate %237 RelaxedPrecision OpDecorate %238 RelaxedPrecision OpDecorate %239 RelaxedPrecision OpDecorate %240 RelaxedPrecision OpDecorate %241 RelaxedPrecision +OpDecorate %242 RelaxedPrecision +OpDecorate %243 RelaxedPrecision OpDecorate %244 RelaxedPrecision OpDecorate %245 RelaxedPrecision OpDecorate %246 RelaxedPrecision OpDecorate %247 RelaxedPrecision OpDecorate %248 RelaxedPrecision -OpDecorate %249 RelaxedPrecision -OpDecorate %m11 RelaxedPrecision +OpDecorate %251 RelaxedPrecision OpDecorate %273 RelaxedPrecision -OpDecorate %274 RelaxedPrecision -OpDecorate %275 RelaxedPrecision -OpDecorate %276 RelaxedPrecision -OpDecorate %277 RelaxedPrecision -OpDecorate %278 RelaxedPrecision -OpDecorate %279 RelaxedPrecision -OpDecorate %280 RelaxedPrecision -OpDecorate %281 RelaxedPrecision -OpDecorate %282 RelaxedPrecision -OpDecorate %283 RelaxedPrecision -OpDecorate %284 RelaxedPrecision -OpDecorate %285 RelaxedPrecision -OpDecorate %286 RelaxedPrecision -OpDecorate %287 RelaxedPrecision -OpDecorate %288 RelaxedPrecision -OpDecorate %289 RelaxedPrecision -OpDecorate %290 RelaxedPrecision -OpDecorate %291 RelaxedPrecision -OpDecorate %292 RelaxedPrecision OpDecorate %293 RelaxedPrecision -OpDecorate %296 RelaxedPrecision -OpDecorate %297 RelaxedPrecision -OpDecorate %298 RelaxedPrecision -OpDecorate %299 RelaxedPrecision -OpDecorate %300 RelaxedPrecision -OpDecorate %301 RelaxedPrecision -OpDecorate %322 RelaxedPrecision -OpDecorate %351 RelaxedPrecision -OpDecorate %370 RelaxedPrecision -OpDecorate %391 RelaxedPrecision -OpDecorate %411 RelaxedPrecision -OpDecorate %435 RelaxedPrecision -OpDecorate %461 RelaxedPrecision -OpDecorate %482 RelaxedPrecision -OpDecorate %504 RelaxedPrecision -OpDecorate %533 RelaxedPrecision -OpDecorate %583 RelaxedPrecision -OpDecorate %612 RelaxedPrecision -OpDecorate %629 RelaxedPrecision -OpDecorate %631 RelaxedPrecision -OpDecorate %632 RelaxedPrecision +OpDecorate %307 RelaxedPrecision +OpDecorate %320 RelaxedPrecision +OpDecorate %335 RelaxedPrecision +OpDecorate %354 RelaxedPrecision +OpDecorate %375 RelaxedPrecision +OpDecorate %388 RelaxedPrecision +OpDecorate %401 RelaxedPrecision +OpDecorate %418 RelaxedPrecision +OpDecorate %454 RelaxedPrecision +OpDecorate %474 RelaxedPrecision +OpDecorate %491 RelaxedPrecision +OpDecorate %493 RelaxedPrecision +OpDecorate %494 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -189,8 +131,8 @@ OpDecorate %632 RelaxedPrecision %12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %17 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %21 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %25 = OpTypeFunction %bool @@ -202,28 +144,62 @@ OpDecorate %632 RelaxedPrecision %float_2 = OpConstant %float 2 %float_3 = OpConstant %float 3 %float_4 = OpConstant %float 4 +%37 = OpConstantComposite %v2float %float_1 %float_2 +%38 = OpConstantComposite %v2float %float_3 %float_4 +%39 = OpConstantComposite %mat2v2float %37 %38 %false = OpConstantFalse %bool %v2bool = OpTypeVector %bool 2 %float_6 = OpConstant %float 6 +%70 = OpConstantComposite %v2float %float_6 %float_0 +%71 = OpConstantComposite %v2float %float_0 %float_6 +%72 = OpConstantComposite %mat2v2float %70 %71 %float_12 = OpConstant %float 12 %float_18 = OpConstant %float 18 %float_24 = OpConstant %float 24 +%95 = OpConstantComposite %v2float %float_6 %float_12 +%96 = OpConstantComposite %v2float %float_18 %float_24 +%97 = OpConstantComposite %mat2v2float %95 %96 %int = OpTypeInt 32 1 %int_1 = OpConstant %int 1 +%119 = OpConstantComposite %v2float %float_4 %float_0 +%120 = OpConstantComposite %v2float %float_0 %float_4 +%121 = OpConstantComposite %mat2v2float %119 %120 %float_5 = OpConstant %float 5 %float_8 = OpConstant %float 8 +%145 = OpConstantComposite %v2float %float_5 %float_2 +%146 = OpConstantComposite %v2float %float_3 %float_8 +%147 = OpConstantComposite %mat2v2float %145 %146 %float_7 = OpConstant %float 7 +%158 = OpConstantComposite %v2float %float_5 %float_6 +%159 = OpConstantComposite %v2float %float_7 %float_8 +%160 = OpConstantComposite %mat2v2float %158 %159 %v3float = OpTypeVector %float 3 %mat3v3float = OpTypeMatrix %v3float 3 %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float %float_9 = OpConstant %float 9 +%178 = OpConstantComposite %v3float %float_9 %float_0 %float_0 +%179 = OpConstantComposite %v3float %float_0 %float_9 %float_0 +%180 = OpConstantComposite %v3float %float_0 %float_0 %float_9 +%181 = OpConstantComposite %mat3v3float %178 %179 %180 %v3bool = OpTypeVector %bool 3 %mat4v4float = OpTypeMatrix %v4float 4 %_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float %float_11 = OpConstant %float 11 +%203 = OpConstantComposite %v4float %float_11 %float_0 %float_0 %float_0 +%204 = OpConstantComposite %v4float %float_0 %float_11 %float_0 %float_0 +%205 = OpConstantComposite %v4float %float_0 %float_0 %float_11 %float_0 +%206 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_11 +%207 = OpConstantComposite %mat4v4float %203 %204 %205 %206 %v4bool = OpTypeVector %bool 4 %float_20 = OpConstant %float 20 -%343 = OpTypeFunction %v4float %_ptr_Function_v2float +%231 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_20 +%232 = OpConstantComposite %mat4v4float %231 %231 %231 %231 +%252 = OpConstantComposite %v4float %float_9 %float_20 %float_20 %float_20 +%253 = OpConstantComposite %v4float %float_20 %float_9 %float_20 %float_20 +%254 = OpConstantComposite %v4float %float_20 %float_20 %float_9 %float_20 +%255 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_9 +%256 = OpConstantComposite %mat4v4float %252 %253 %254 %255 +%288 = OpTypeFunction %v4float %_ptr_Function_v2float %_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_0 = OpConstant %int 0 @@ -247,345 +223,256 @@ OpFunctionEnd %m10 = OpVariable %_ptr_Function_mat4v4float Function %m11 = OpVariable %_ptr_Function_mat4v4float Function OpStore %ok %true -%37 = OpCompositeConstruct %v2float %float_1 %float_2 -%38 = OpCompositeConstruct %v2float %float_3 %float_4 -%39 = OpCompositeConstruct %mat2v2float %37 %38 OpStore %m1 %39 %41 = OpLoad %bool %ok OpSelectionMerge %43 None OpBranchConditional %41 %42 %43 %42 = OpLabel %44 = OpLoad %mat2v2float %m1 -%45 = OpCompositeConstruct %v2float %float_1 %float_2 -%46 = OpCompositeConstruct %v2float %float_3 %float_4 -%47 = OpCompositeConstruct %mat2v2float %45 %46 -%49 = OpCompositeExtract %v2float %44 0 -%50 = OpCompositeExtract %v2float %47 0 -%51 = OpFOrdEqual %v2bool %49 %50 -%52 = OpAll %bool %51 -%53 = OpCompositeExtract %v2float %44 1 -%54 = OpCompositeExtract %v2float %47 1 -%55 = OpFOrdEqual %v2bool %53 %54 -%56 = OpAll %bool %55 -%57 = OpLogicalAnd %bool %52 %56 +%46 = OpCompositeExtract %v2float %44 0 +%47 = OpFOrdEqual %v2bool %46 %37 +%48 = OpAll %bool %47 +%49 = OpCompositeExtract %v2float %44 1 +%50 = OpFOrdEqual %v2bool %49 %38 +%51 = OpAll %bool %50 +%52 = OpLogicalAnd %bool %48 %51 OpBranch %43 %43 = OpLabel -%58 = OpPhi %bool %false %26 %57 %42 -OpStore %ok %58 -%60 = OpLoad %mat2v2float %m1 -OpStore %m3 %60 -%61 = OpLoad %bool %ok -OpSelectionMerge %63 None -OpBranchConditional %61 %62 %63 -%62 = OpLabel -%64 = OpLoad %mat2v2float %m3 -%65 = OpCompositeConstruct %v2float %float_1 %float_2 -%66 = OpCompositeConstruct %v2float %float_3 %float_4 -%67 = OpCompositeConstruct %mat2v2float %65 %66 -%68 = OpCompositeExtract %v2float %64 0 -%69 = OpCompositeExtract %v2float %67 0 -%70 = OpFOrdEqual %v2bool %68 %69 -%71 = OpAll %bool %70 -%72 = OpCompositeExtract %v2float %64 1 -%73 = OpCompositeExtract %v2float %67 1 -%74 = OpFOrdEqual %v2bool %72 %73 -%75 = OpAll %bool %74 -%76 = OpLogicalAnd %bool %71 %75 -OpBranch %63 -%63 = OpLabel -%77 = OpPhi %bool %false %43 %76 %62 -OpStore %ok %77 -%81 = OpCompositeConstruct %v2float %float_6 %float_0 -%82 = OpCompositeConstruct %v2float %float_0 %float_6 -%80 = OpCompositeConstruct %mat2v2float %81 %82 -OpStore %m4 %80 -%83 = OpLoad %bool %ok -OpSelectionMerge %85 None -OpBranchConditional %83 %84 %85 -%84 = OpLabel +%53 = OpPhi %bool %false %26 %52 %42 +OpStore %ok %53 +%55 = OpLoad %mat2v2float %m1 +OpStore %m3 %55 +%56 = OpLoad %bool %ok +OpSelectionMerge %58 None +OpBranchConditional %56 %57 %58 +%57 = OpLabel +%59 = OpLoad %mat2v2float %m3 +%60 = OpCompositeExtract %v2float %59 0 +%61 = OpFOrdEqual %v2bool %60 %37 +%62 = OpAll %bool %61 +%63 = OpCompositeExtract %v2float %59 1 +%64 = OpFOrdEqual %v2bool %63 %38 +%65 = OpAll %bool %64 +%66 = OpLogicalAnd %bool %62 %65 +OpBranch %58 +%58 = OpLabel +%67 = OpPhi %bool %false %43 %66 %57 +OpStore %ok %67 +OpStore %m4 %72 +%73 = OpLoad %bool %ok +OpSelectionMerge %75 None +OpBranchConditional %73 %74 %75 +%74 = OpLabel +%76 = OpLoad %mat2v2float %m4 +%77 = OpCompositeExtract %v2float %76 0 +%78 = OpFOrdEqual %v2bool %77 %70 +%79 = OpAll %bool %78 +%80 = OpCompositeExtract %v2float %76 1 +%81 = OpFOrdEqual %v2bool %80 %71 +%82 = OpAll %bool %81 +%83 = OpLogicalAnd %bool %79 %82 +OpBranch %75 +%75 = OpLabel +%84 = OpPhi %bool %false %58 %83 %74 +OpStore %ok %84 +%85 = OpLoad %mat2v2float %m3 %86 = OpLoad %mat2v2float %m4 -%87 = OpCompositeConstruct %v2float %float_6 %float_0 -%88 = OpCompositeConstruct %v2float %float_0 %float_6 -%89 = OpCompositeConstruct %mat2v2float %87 %88 -%90 = OpCompositeExtract %v2float %86 0 -%91 = OpCompositeExtract %v2float %89 0 -%92 = OpFOrdEqual %v2bool %90 %91 -%93 = OpAll %bool %92 -%94 = OpCompositeExtract %v2float %86 1 -%95 = OpCompositeExtract %v2float %89 1 -%96 = OpFOrdEqual %v2bool %94 %95 -%97 = OpAll %bool %96 -%98 = OpLogicalAnd %bool %93 %97 -OpBranch %85 -%85 = OpLabel -%99 = OpPhi %bool %false %63 %98 %84 -OpStore %ok %99 -%100 = OpLoad %mat2v2float %m3 -%101 = OpLoad %mat2v2float %m4 -%102 = OpMatrixTimesMatrix %mat2v2float %100 %101 -OpStore %m3 %102 -%103 = OpLoad %bool %ok -OpSelectionMerge %105 None -OpBranchConditional %103 %104 %105 -%104 = OpLabel -%106 = OpLoad %mat2v2float %m3 -%110 = OpCompositeConstruct %v2float %float_6 %float_12 -%111 = OpCompositeConstruct %v2float %float_18 %float_24 -%112 = OpCompositeConstruct %mat2v2float %110 %111 -%113 = OpCompositeExtract %v2float %106 0 -%114 = OpCompositeExtract %v2float %112 0 -%115 = OpFOrdEqual %v2bool %113 %114 -%116 = OpAll %bool %115 -%117 = OpCompositeExtract %v2float %106 1 -%118 = OpCompositeExtract %v2float %112 1 -%119 = OpFOrdEqual %v2bool %117 %118 -%120 = OpAll %bool %119 -%121 = OpLogicalAnd %bool %116 %120 -OpBranch %105 -%105 = OpLabel -%122 = OpPhi %bool %false %85 %121 %104 -OpStore %ok %122 -%126 = OpAccessChain %_ptr_Function_v2float %m1 %int_1 -%127 = OpLoad %v2float %126 -%128 = OpCompositeExtract %float %127 1 -%130 = OpCompositeConstruct %v2float %128 %float_0 -%131 = OpCompositeConstruct %v2float %float_0 %128 -%129 = OpCompositeConstruct %mat2v2float %130 %131 -OpStore %m5 %129 -%132 = OpLoad %bool %ok -OpSelectionMerge %134 None -OpBranchConditional %132 %133 %134 -%133 = OpLabel -%135 = OpLoad %mat2v2float %m5 -%136 = OpCompositeConstruct %v2float %float_4 %float_0 -%137 = OpCompositeConstruct %v2float %float_0 %float_4 -%138 = OpCompositeConstruct %mat2v2float %136 %137 -%139 = OpCompositeExtract %v2float %135 0 -%140 = OpCompositeExtract %v2float %138 0 -%141 = OpFOrdEqual %v2bool %139 %140 -%142 = OpAll %bool %141 -%143 = OpCompositeExtract %v2float %135 1 -%144 = OpCompositeExtract %v2float %138 1 -%145 = OpFOrdEqual %v2bool %143 %144 -%146 = OpAll %bool %145 -%147 = OpLogicalAnd %bool %142 %146 -OpBranch %134 -%134 = OpLabel -%148 = OpPhi %bool %false %105 %147 %133 -OpStore %ok %148 -%149 = OpLoad %mat2v2float %m1 -%150 = OpLoad %mat2v2float %m5 -%151 = OpCompositeExtract %v2float %149 0 -%152 = OpCompositeExtract %v2float %150 0 -%153 = OpFAdd %v2float %151 %152 -%154 = OpCompositeExtract %v2float %149 1 -%155 = OpCompositeExtract %v2float %150 1 -%156 = OpFAdd %v2float %154 %155 -%157 = OpCompositeConstruct %mat2v2float %153 %156 -OpStore %m1 %157 -%158 = OpLoad %bool %ok -OpSelectionMerge %160 None -OpBranchConditional %158 %159 %160 -%159 = OpLabel -%161 = OpLoad %mat2v2float %m1 -%164 = OpCompositeConstruct %v2float %float_5 %float_2 -%165 = OpCompositeConstruct %v2float %float_3 %float_8 -%166 = OpCompositeConstruct %mat2v2float %164 %165 -%167 = OpCompositeExtract %v2float %161 0 -%168 = OpCompositeExtract %v2float %166 0 -%169 = OpFOrdEqual %v2bool %167 %168 +%87 = OpMatrixTimesMatrix %mat2v2float %85 %86 +OpStore %m3 %87 +%88 = OpLoad %bool %ok +OpSelectionMerge %90 None +OpBranchConditional %88 %89 %90 +%89 = OpLabel +%91 = OpLoad %mat2v2float %m3 +%98 = OpCompositeExtract %v2float %91 0 +%99 = OpFOrdEqual %v2bool %98 %95 +%100 = OpAll %bool %99 +%101 = OpCompositeExtract %v2float %91 1 +%102 = OpFOrdEqual %v2bool %101 %96 +%103 = OpAll %bool %102 +%104 = OpLogicalAnd %bool %100 %103 +OpBranch %90 +%90 = OpLabel +%105 = OpPhi %bool %false %75 %104 %89 +OpStore %ok %105 +%109 = OpAccessChain %_ptr_Function_v2float %m1 %int_1 +%110 = OpLoad %v2float %109 +%111 = OpCompositeExtract %float %110 1 +%112 = OpCompositeConstruct %v2float %111 %float_0 +%113 = OpCompositeConstruct %v2float %float_0 %111 +%114 = OpCompositeConstruct %mat2v2float %112 %113 +OpStore %m5 %114 +%115 = OpLoad %bool %ok +OpSelectionMerge %117 None +OpBranchConditional %115 %116 %117 +%116 = OpLabel +%118 = OpLoad %mat2v2float %m5 +%122 = OpCompositeExtract %v2float %118 0 +%123 = OpFOrdEqual %v2bool %122 %119 +%124 = OpAll %bool %123 +%125 = OpCompositeExtract %v2float %118 1 +%126 = OpFOrdEqual %v2bool %125 %120 +%127 = OpAll %bool %126 +%128 = OpLogicalAnd %bool %124 %127 +OpBranch %117 +%117 = OpLabel +%129 = OpPhi %bool %false %90 %128 %116 +OpStore %ok %129 +%130 = OpLoad %mat2v2float %m1 +%131 = OpLoad %mat2v2float %m5 +%132 = OpCompositeExtract %v2float %130 0 +%133 = OpCompositeExtract %v2float %131 0 +%134 = OpFAdd %v2float %132 %133 +%135 = OpCompositeExtract %v2float %130 1 +%136 = OpCompositeExtract %v2float %131 1 +%137 = OpFAdd %v2float %135 %136 +%138 = OpCompositeConstruct %mat2v2float %134 %137 +OpStore %m1 %138 +%139 = OpLoad %bool %ok +OpSelectionMerge %141 None +OpBranchConditional %139 %140 %141 +%140 = OpLabel +%142 = OpLoad %mat2v2float %m1 +%148 = OpCompositeExtract %v2float %142 0 +%149 = OpFOrdEqual %v2bool %148 %145 +%150 = OpAll %bool %149 +%151 = OpCompositeExtract %v2float %142 1 +%152 = OpFOrdEqual %v2bool %151 %146 +%153 = OpAll %bool %152 +%154 = OpLogicalAnd %bool %150 %153 +OpBranch %141 +%141 = OpLabel +%155 = OpPhi %bool %false %117 %154 %140 +OpStore %ok %155 +OpStore %m7 %160 +%161 = OpLoad %bool %ok +OpSelectionMerge %163 None +OpBranchConditional %161 %162 %163 +%162 = OpLabel +%164 = OpLoad %mat2v2float %m7 +%165 = OpCompositeExtract %v2float %164 0 +%166 = OpFOrdEqual %v2bool %165 %158 +%167 = OpAll %bool %166 +%168 = OpCompositeExtract %v2float %164 1 +%169 = OpFOrdEqual %v2bool %168 %159 %170 = OpAll %bool %169 -%171 = OpCompositeExtract %v2float %161 1 -%172 = OpCompositeExtract %v2float %166 1 -%173 = OpFOrdEqual %v2bool %171 %172 -%174 = OpAll %bool %173 -%175 = OpLogicalAnd %bool %170 %174 -OpBranch %160 -%160 = OpLabel -%176 = OpPhi %bool %false %134 %175 %159 -OpStore %ok %176 -%179 = OpCompositeConstruct %v2float %float_5 %float_6 -%180 = OpCompositeConstruct %v2float %float_7 %float_8 -%181 = OpCompositeConstruct %mat2v2float %179 %180 -OpStore %m7 %181 +%171 = OpLogicalAnd %bool %167 %170 +OpBranch %163 +%163 = OpLabel +%172 = OpPhi %bool %false %141 %171 %162 +OpStore %ok %172 +OpStore %m9 %181 %182 = OpLoad %bool %ok OpSelectionMerge %184 None OpBranchConditional %182 %183 %184 %183 = OpLabel -%185 = OpLoad %mat2v2float %m7 -%186 = OpCompositeConstruct %v2float %float_5 %float_6 -%187 = OpCompositeConstruct %v2float %float_7 %float_8 -%188 = OpCompositeConstruct %mat2v2float %186 %187 -%189 = OpCompositeExtract %v2float %185 0 -%190 = OpCompositeExtract %v2float %188 0 -%191 = OpFOrdEqual %v2bool %189 %190 +%185 = OpLoad %mat3v3float %m9 +%187 = OpCompositeExtract %v3float %185 0 +%188 = OpFOrdEqual %v3bool %187 %178 +%189 = OpAll %bool %188 +%190 = OpCompositeExtract %v3float %185 1 +%191 = OpFOrdEqual %v3bool %190 %179 %192 = OpAll %bool %191 -%193 = OpCompositeExtract %v2float %185 1 -%194 = OpCompositeExtract %v2float %188 1 -%195 = OpFOrdEqual %v2bool %193 %194 +%193 = OpLogicalAnd %bool %189 %192 +%194 = OpCompositeExtract %v3float %185 2 +%195 = OpFOrdEqual %v3bool %194 %180 %196 = OpAll %bool %195 -%197 = OpLogicalAnd %bool %192 %196 +%197 = OpLogicalAnd %bool %193 %196 OpBranch %184 %184 = OpLabel -%198 = OpPhi %bool %false %160 %197 %183 +%198 = OpPhi %bool %false %163 %197 %183 OpStore %ok %198 -%205 = OpCompositeConstruct %v3float %float_9 %float_0 %float_0 -%206 = OpCompositeConstruct %v3float %float_0 %float_9 %float_0 -%207 = OpCompositeConstruct %v3float %float_0 %float_0 %float_9 -%204 = OpCompositeConstruct %mat3v3float %205 %206 %207 -OpStore %m9 %204 +OpStore %m10 %207 %208 = OpLoad %bool %ok OpSelectionMerge %210 None OpBranchConditional %208 %209 %210 %209 = OpLabel -%211 = OpLoad %mat3v3float %m9 -%212 = OpCompositeConstruct %v3float %float_9 %float_0 %float_0 -%213 = OpCompositeConstruct %v3float %float_0 %float_9 %float_0 -%214 = OpCompositeConstruct %v3float %float_0 %float_0 %float_9 -%215 = OpCompositeConstruct %mat3v3float %212 %213 %214 -%217 = OpCompositeExtract %v3float %211 0 -%218 = OpCompositeExtract %v3float %215 0 -%219 = OpFOrdEqual %v3bool %217 %218 -%220 = OpAll %bool %219 -%221 = OpCompositeExtract %v3float %211 1 -%222 = OpCompositeExtract %v3float %215 1 -%223 = OpFOrdEqual %v3bool %221 %222 -%224 = OpAll %bool %223 -%225 = OpLogicalAnd %bool %220 %224 -%226 = OpCompositeExtract %v3float %211 2 -%227 = OpCompositeExtract %v3float %215 2 -%228 = OpFOrdEqual %v3bool %226 %227 -%229 = OpAll %bool %228 -%230 = OpLogicalAnd %bool %225 %229 +%211 = OpLoad %mat4v4float %m10 +%213 = OpCompositeExtract %v4float %211 0 +%214 = OpFOrdEqual %v4bool %213 %203 +%215 = OpAll %bool %214 +%216 = OpCompositeExtract %v4float %211 1 +%217 = OpFOrdEqual %v4bool %216 %204 +%218 = OpAll %bool %217 +%219 = OpLogicalAnd %bool %215 %218 +%220 = OpCompositeExtract %v4float %211 2 +%221 = OpFOrdEqual %v4bool %220 %205 +%222 = OpAll %bool %221 +%223 = OpLogicalAnd %bool %219 %222 +%224 = OpCompositeExtract %v4float %211 3 +%225 = OpFOrdEqual %v4bool %224 %206 +%226 = OpAll %bool %225 +%227 = OpLogicalAnd %bool %223 %226 OpBranch %210 %210 = OpLabel -%231 = OpPhi %bool %false %184 %230 %209 -OpStore %ok %231 -%237 = OpCompositeConstruct %v4float %float_11 %float_0 %float_0 %float_0 -%238 = OpCompositeConstruct %v4float %float_0 %float_11 %float_0 %float_0 -%239 = OpCompositeConstruct %v4float %float_0 %float_0 %float_11 %float_0 -%240 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_11 -%236 = OpCompositeConstruct %mat4v4float %237 %238 %239 %240 -OpStore %m10 %236 -%241 = OpLoad %bool %ok -OpSelectionMerge %243 None -OpBranchConditional %241 %242 %243 -%242 = OpLabel -%244 = OpLoad %mat4v4float %m10 -%245 = OpCompositeConstruct %v4float %float_11 %float_0 %float_0 %float_0 -%246 = OpCompositeConstruct %v4float %float_0 %float_11 %float_0 %float_0 -%247 = OpCompositeConstruct %v4float %float_0 %float_0 %float_11 %float_0 -%248 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_11 -%249 = OpCompositeConstruct %mat4v4float %245 %246 %247 %248 -%251 = OpCompositeExtract %v4float %244 0 -%252 = OpCompositeExtract %v4float %249 0 -%253 = OpFOrdEqual %v4bool %251 %252 -%254 = OpAll %bool %253 -%255 = OpCompositeExtract %v4float %244 1 -%256 = OpCompositeExtract %v4float %249 1 -%257 = OpFOrdEqual %v4bool %255 %256 -%258 = OpAll %bool %257 -%259 = OpLogicalAnd %bool %254 %258 -%260 = OpCompositeExtract %v4float %244 2 -%261 = OpCompositeExtract %v4float %249 2 -%262 = OpFOrdEqual %v4bool %260 %261 -%263 = OpAll %bool %262 -%264 = OpLogicalAnd %bool %259 %263 -%265 = OpCompositeExtract %v4float %244 3 -%266 = OpCompositeExtract %v4float %249 3 -%267 = OpFOrdEqual %v4bool %265 %266 -%268 = OpAll %bool %267 -%269 = OpLogicalAnd %bool %264 %268 -OpBranch %243 -%243 = OpLabel -%270 = OpPhi %bool %false %210 %269 %242 -OpStore %ok %270 -%273 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 -%274 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 -%275 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 -%276 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 -%277 = OpCompositeConstruct %mat4v4float %273 %274 %275 %276 -OpStore %m11 %277 -%278 = OpLoad %mat4v4float %m11 -%279 = OpLoad %mat4v4float %m10 -%280 = OpCompositeExtract %v4float %278 0 -%281 = OpCompositeExtract %v4float %279 0 -%282 = OpFSub %v4float %280 %281 -%283 = OpCompositeExtract %v4float %278 1 -%284 = OpCompositeExtract %v4float %279 1 -%285 = OpFSub %v4float %283 %284 -%286 = OpCompositeExtract %v4float %278 2 -%287 = OpCompositeExtract %v4float %279 2 -%288 = OpFSub %v4float %286 %287 -%289 = OpCompositeExtract %v4float %278 3 -%290 = OpCompositeExtract %v4float %279 3 -%291 = OpFSub %v4float %289 %290 -%292 = OpCompositeConstruct %mat4v4float %282 %285 %288 %291 -OpStore %m11 %292 -%293 = OpLoad %bool %ok -OpSelectionMerge %295 None -OpBranchConditional %293 %294 %295 -%294 = OpLabel -%296 = OpLoad %mat4v4float %m11 -%297 = OpCompositeConstruct %v4float %float_9 %float_20 %float_20 %float_20 -%298 = OpCompositeConstruct %v4float %float_20 %float_9 %float_20 %float_20 -%299 = OpCompositeConstruct %v4float %float_20 %float_20 %float_9 %float_20 -%300 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_9 -%301 = OpCompositeConstruct %mat4v4float %297 %298 %299 %300 -%302 = OpCompositeExtract %v4float %296 0 -%303 = OpCompositeExtract %v4float %301 0 -%304 = OpFOrdEqual %v4bool %302 %303 -%305 = OpAll %bool %304 -%306 = OpCompositeExtract %v4float %296 1 -%307 = OpCompositeExtract %v4float %301 1 -%308 = OpFOrdEqual %v4bool %306 %307 -%309 = OpAll %bool %308 -%310 = OpLogicalAnd %bool %305 %309 -%311 = OpCompositeExtract %v4float %296 2 -%312 = OpCompositeExtract %v4float %301 2 -%313 = OpFOrdEqual %v4bool %311 %312 -%314 = OpAll %bool %313 -%315 = OpLogicalAnd %bool %310 %314 -%316 = OpCompositeExtract %v4float %296 3 -%317 = OpCompositeExtract %v4float %301 3 -%318 = OpFOrdEqual %v4bool %316 %317 -%319 = OpAll %bool %318 -%320 = OpLogicalAnd %bool %315 %319 -OpBranch %295 -%295 = OpLabel -%321 = OpPhi %bool %false %243 %320 %294 -OpStore %ok %321 -%322 = OpLoad %bool %ok -OpReturnValue %322 +%228 = OpPhi %bool %false %184 %227 %209 +OpStore %ok %228 +OpStore %m11 %232 +%233 = OpLoad %mat4v4float %m11 +%234 = OpLoad %mat4v4float %m10 +%235 = OpCompositeExtract %v4float %233 0 +%236 = OpCompositeExtract %v4float %234 0 +%237 = OpFSub %v4float %235 %236 +%238 = OpCompositeExtract %v4float %233 1 +%239 = OpCompositeExtract %v4float %234 1 +%240 = OpFSub %v4float %238 %239 +%241 = OpCompositeExtract %v4float %233 2 +%242 = OpCompositeExtract %v4float %234 2 +%243 = OpFSub %v4float %241 %242 +%244 = OpCompositeExtract %v4float %233 3 +%245 = OpCompositeExtract %v4float %234 3 +%246 = OpFSub %v4float %244 %245 +%247 = OpCompositeConstruct %mat4v4float %237 %240 %243 %246 +OpStore %m11 %247 +%248 = OpLoad %bool %ok +OpSelectionMerge %250 None +OpBranchConditional %248 %249 %250 +%249 = OpLabel +%251 = OpLoad %mat4v4float %m11 +%257 = OpCompositeExtract %v4float %251 0 +%258 = OpFOrdEqual %v4bool %257 %252 +%259 = OpAll %bool %258 +%260 = OpCompositeExtract %v4float %251 1 +%261 = OpFOrdEqual %v4bool %260 %253 +%262 = OpAll %bool %261 +%263 = OpLogicalAnd %bool %259 %262 +%264 = OpCompositeExtract %v4float %251 2 +%265 = OpFOrdEqual %v4bool %264 %254 +%266 = OpAll %bool %265 +%267 = OpLogicalAnd %bool %263 %266 +%268 = OpCompositeExtract %v4float %251 3 +%269 = OpFOrdEqual %v4bool %268 %255 +%270 = OpAll %bool %269 +%271 = OpLogicalAnd %bool %267 %270 +OpBranch %250 +%250 = OpLabel +%272 = OpPhi %bool %false %210 %271 %249 +OpStore %ok %272 +%273 = OpLoad %bool %ok +OpReturnValue %273 OpFunctionEnd %test_comma_b = OpFunction %bool None %25 -%323 = OpLabel +%274 = OpLabel %x = OpVariable %_ptr_Function_mat2v2float Function %y = OpVariable %_ptr_Function_mat2v2float Function -%326 = OpCompositeConstruct %v2float %float_1 %float_2 -%327 = OpCompositeConstruct %v2float %float_3 %float_4 -%328 = OpCompositeConstruct %mat2v2float %326 %327 -OpStore %x %328 -%329 = OpCompositeConstruct %v2float %float_1 %float_2 -%330 = OpCompositeConstruct %v2float %float_3 %float_4 -%331 = OpCompositeConstruct %mat2v2float %329 %330 -OpStore %y %331 -%332 = OpLoad %mat2v2float %x -%333 = OpLoad %mat2v2float %y -%334 = OpCompositeExtract %v2float %332 0 -%335 = OpCompositeExtract %v2float %333 0 -%336 = OpFOrdEqual %v2bool %334 %335 -%337 = OpAll %bool %336 -%338 = OpCompositeExtract %v2float %332 1 -%339 = OpCompositeExtract %v2float %333 1 -%340 = OpFOrdEqual %v2bool %338 %339 -%341 = OpAll %bool %340 -%342 = OpLogicalAnd %bool %337 %341 -OpReturnValue %342 +OpStore %x %39 +OpStore %y %39 +%277 = OpLoad %mat2v2float %x +%278 = OpLoad %mat2v2float %y +%279 = OpCompositeExtract %v2float %277 0 +%280 = OpCompositeExtract %v2float %278 0 +%281 = OpFOrdEqual %v2bool %279 %280 +%282 = OpAll %bool %281 +%283 = OpCompositeExtract %v2float %277 1 +%284 = OpCompositeExtract %v2float %278 1 +%285 = OpFOrdEqual %v2bool %283 %284 +%286 = OpAll %bool %285 +%287 = OpLogicalAnd %bool %282 %286 +OpReturnValue %287 OpFunctionEnd -%main = OpFunction %v4float None %343 -%344 = OpFunctionParameter %_ptr_Function_v2float -%345 = OpLabel +%main = OpFunction %v4float None %288 +%289 = OpFunctionParameter %_ptr_Function_v2float +%290 = OpLabel %_0_ok = OpVariable %_ptr_Function_bool Function %_1_m1 = OpVariable %_ptr_Function_mat2v2float Function %_2_m3 = OpVariable %_ptr_Function_mat2v2float Function @@ -595,344 +482,261 @@ OpFunctionEnd %_6_m9 = OpVariable %_ptr_Function_mat3v3float Function %_7_m10 = OpVariable %_ptr_Function_mat4v4float Function %_8_m11 = OpVariable %_ptr_Function_mat4v4float Function -%621 = OpVariable %_ptr_Function_v4float Function +%483 = OpVariable %_ptr_Function_v4float Function OpStore %_0_ok %true -%348 = OpCompositeConstruct %v2float %float_1 %float_2 -%349 = OpCompositeConstruct %v2float %float_3 %float_4 -%350 = OpCompositeConstruct %mat2v2float %348 %349 -OpStore %_1_m1 %350 -%351 = OpLoad %bool %_0_ok -OpSelectionMerge %353 None -OpBranchConditional %351 %352 %353 -%352 = OpLabel -%354 = OpLoad %mat2v2float %_1_m1 -%355 = OpCompositeConstruct %v2float %float_1 %float_2 -%356 = OpCompositeConstruct %v2float %float_3 %float_4 -%357 = OpCompositeConstruct %mat2v2float %355 %356 -%358 = OpCompositeExtract %v2float %354 0 -%359 = OpCompositeExtract %v2float %357 0 -%360 = OpFOrdEqual %v2bool %358 %359 -%361 = OpAll %bool %360 -%362 = OpCompositeExtract %v2float %354 1 -%363 = OpCompositeExtract %v2float %357 1 -%364 = OpFOrdEqual %v2bool %362 %363 -%365 = OpAll %bool %364 -%366 = OpLogicalAnd %bool %361 %365 -OpBranch %353 -%353 = OpLabel -%367 = OpPhi %bool %false %345 %366 %352 -OpStore %_0_ok %367 -%369 = OpLoad %mat2v2float %_1_m1 -OpStore %_2_m3 %369 -%370 = OpLoad %bool %_0_ok -OpSelectionMerge %372 None -OpBranchConditional %370 %371 %372 -%371 = OpLabel -%373 = OpLoad %mat2v2float %_2_m3 -%374 = OpCompositeConstruct %v2float %float_1 %float_2 -%375 = OpCompositeConstruct %v2float %float_3 %float_4 -%376 = OpCompositeConstruct %mat2v2float %374 %375 -%377 = OpCompositeExtract %v2float %373 0 -%378 = OpCompositeExtract %v2float %376 0 -%379 = OpFOrdEqual %v2bool %377 %378 -%380 = OpAll %bool %379 -%381 = OpCompositeExtract %v2float %373 1 -%382 = OpCompositeExtract %v2float %376 1 -%383 = OpFOrdEqual %v2bool %381 %382 +OpStore %_1_m1 %39 +%293 = OpLoad %bool %_0_ok +OpSelectionMerge %295 None +OpBranchConditional %293 %294 %295 +%294 = OpLabel +%296 = OpLoad %mat2v2float %_1_m1 +%297 = OpCompositeExtract %v2float %296 0 +%298 = OpFOrdEqual %v2bool %297 %37 +%299 = OpAll %bool %298 +%300 = OpCompositeExtract %v2float %296 1 +%301 = OpFOrdEqual %v2bool %300 %38 +%302 = OpAll %bool %301 +%303 = OpLogicalAnd %bool %299 %302 +OpBranch %295 +%295 = OpLabel +%304 = OpPhi %bool %false %290 %303 %294 +OpStore %_0_ok %304 +%306 = OpLoad %mat2v2float %_1_m1 +OpStore %_2_m3 %306 +%307 = OpLoad %bool %_0_ok +OpSelectionMerge %309 None +OpBranchConditional %307 %308 %309 +%308 = OpLabel +%310 = OpLoad %mat2v2float %_2_m3 +%311 = OpCompositeExtract %v2float %310 0 +%312 = OpFOrdEqual %v2bool %311 %37 +%313 = OpAll %bool %312 +%314 = OpCompositeExtract %v2float %310 1 +%315 = OpFOrdEqual %v2bool %314 %38 +%316 = OpAll %bool %315 +%317 = OpLogicalAnd %bool %313 %316 +OpBranch %309 +%309 = OpLabel +%318 = OpPhi %bool %false %295 %317 %308 +OpStore %_0_ok %318 +OpStore %_3_m4 %72 +%320 = OpLoad %bool %_0_ok +OpSelectionMerge %322 None +OpBranchConditional %320 %321 %322 +%321 = OpLabel +%323 = OpLoad %mat2v2float %_3_m4 +%324 = OpCompositeExtract %v2float %323 0 +%325 = OpFOrdEqual %v2bool %324 %70 +%326 = OpAll %bool %325 +%327 = OpCompositeExtract %v2float %323 1 +%328 = OpFOrdEqual %v2bool %327 %71 +%329 = OpAll %bool %328 +%330 = OpLogicalAnd %bool %326 %329 +OpBranch %322 +%322 = OpLabel +%331 = OpPhi %bool %false %309 %330 %321 +OpStore %_0_ok %331 +%332 = OpLoad %mat2v2float %_2_m3 +%333 = OpLoad %mat2v2float %_3_m4 +%334 = OpMatrixTimesMatrix %mat2v2float %332 %333 +OpStore %_2_m3 %334 +%335 = OpLoad %bool %_0_ok +OpSelectionMerge %337 None +OpBranchConditional %335 %336 %337 +%336 = OpLabel +%338 = OpLoad %mat2v2float %_2_m3 +%339 = OpCompositeExtract %v2float %338 0 +%340 = OpFOrdEqual %v2bool %339 %95 +%341 = OpAll %bool %340 +%342 = OpCompositeExtract %v2float %338 1 +%343 = OpFOrdEqual %v2bool %342 %96 +%344 = OpAll %bool %343 +%345 = OpLogicalAnd %bool %341 %344 +OpBranch %337 +%337 = OpLabel +%346 = OpPhi %bool %false %322 %345 %336 +OpStore %_0_ok %346 +%348 = OpAccessChain %_ptr_Function_v2float %_1_m1 %int_1 +%349 = OpLoad %v2float %348 +%350 = OpCompositeExtract %float %349 1 +%351 = OpCompositeConstruct %v2float %350 %float_0 +%352 = OpCompositeConstruct %v2float %float_0 %350 +%353 = OpCompositeConstruct %mat2v2float %351 %352 +OpStore %_4_m5 %353 +%354 = OpLoad %bool %_0_ok +OpSelectionMerge %356 None +OpBranchConditional %354 %355 %356 +%355 = OpLabel +%357 = OpLoad %mat2v2float %_4_m5 +%358 = OpCompositeExtract %v2float %357 0 +%359 = OpFOrdEqual %v2bool %358 %119 +%360 = OpAll %bool %359 +%361 = OpCompositeExtract %v2float %357 1 +%362 = OpFOrdEqual %v2bool %361 %120 +%363 = OpAll %bool %362 +%364 = OpLogicalAnd %bool %360 %363 +OpBranch %356 +%356 = OpLabel +%365 = OpPhi %bool %false %337 %364 %355 +OpStore %_0_ok %365 +%366 = OpLoad %mat2v2float %_1_m1 +%367 = OpLoad %mat2v2float %_4_m5 +%368 = OpCompositeExtract %v2float %366 0 +%369 = OpCompositeExtract %v2float %367 0 +%370 = OpFAdd %v2float %368 %369 +%371 = OpCompositeExtract %v2float %366 1 +%372 = OpCompositeExtract %v2float %367 1 +%373 = OpFAdd %v2float %371 %372 +%374 = OpCompositeConstruct %mat2v2float %370 %373 +OpStore %_1_m1 %374 +%375 = OpLoad %bool %_0_ok +OpSelectionMerge %377 None +OpBranchConditional %375 %376 %377 +%376 = OpLabel +%378 = OpLoad %mat2v2float %_1_m1 +%379 = OpCompositeExtract %v2float %378 0 +%380 = OpFOrdEqual %v2bool %379 %145 +%381 = OpAll %bool %380 +%382 = OpCompositeExtract %v2float %378 1 +%383 = OpFOrdEqual %v2bool %382 %146 %384 = OpAll %bool %383 -%385 = OpLogicalAnd %bool %380 %384 -OpBranch %372 -%372 = OpLabel -%386 = OpPhi %bool %false %353 %385 %371 +%385 = OpLogicalAnd %bool %381 %384 +OpBranch %377 +%377 = OpLabel +%386 = OpPhi %bool %false %356 %385 %376 OpStore %_0_ok %386 -%389 = OpCompositeConstruct %v2float %float_6 %float_0 -%390 = OpCompositeConstruct %v2float %float_0 %float_6 -%388 = OpCompositeConstruct %mat2v2float %389 %390 -OpStore %_3_m4 %388 -%391 = OpLoad %bool %_0_ok -OpSelectionMerge %393 None -OpBranchConditional %391 %392 %393 -%392 = OpLabel -%394 = OpLoad %mat2v2float %_3_m4 -%395 = OpCompositeConstruct %v2float %float_6 %float_0 -%396 = OpCompositeConstruct %v2float %float_0 %float_6 -%397 = OpCompositeConstruct %mat2v2float %395 %396 -%398 = OpCompositeExtract %v2float %394 0 -%399 = OpCompositeExtract %v2float %397 0 -%400 = OpFOrdEqual %v2bool %398 %399 -%401 = OpAll %bool %400 -%402 = OpCompositeExtract %v2float %394 1 -%403 = OpCompositeExtract %v2float %397 1 -%404 = OpFOrdEqual %v2bool %402 %403 -%405 = OpAll %bool %404 -%406 = OpLogicalAnd %bool %401 %405 -OpBranch %393 -%393 = OpLabel -%407 = OpPhi %bool %false %372 %406 %392 -OpStore %_0_ok %407 -%408 = OpLoad %mat2v2float %_2_m3 -%409 = OpLoad %mat2v2float %_3_m4 -%410 = OpMatrixTimesMatrix %mat2v2float %408 %409 -OpStore %_2_m3 %410 -%411 = OpLoad %bool %_0_ok -OpSelectionMerge %413 None -OpBranchConditional %411 %412 %413 -%412 = OpLabel -%414 = OpLoad %mat2v2float %_2_m3 -%415 = OpCompositeConstruct %v2float %float_6 %float_12 -%416 = OpCompositeConstruct %v2float %float_18 %float_24 -%417 = OpCompositeConstruct %mat2v2float %415 %416 -%418 = OpCompositeExtract %v2float %414 0 -%419 = OpCompositeExtract %v2float %417 0 -%420 = OpFOrdEqual %v2bool %418 %419 -%421 = OpAll %bool %420 -%422 = OpCompositeExtract %v2float %414 1 -%423 = OpCompositeExtract %v2float %417 1 -%424 = OpFOrdEqual %v2bool %422 %423 -%425 = OpAll %bool %424 -%426 = OpLogicalAnd %bool %421 %425 -OpBranch %413 -%413 = OpLabel -%427 = OpPhi %bool %false %393 %426 %412 -OpStore %_0_ok %427 -%429 = OpAccessChain %_ptr_Function_v2float %_1_m1 %int_1 -%430 = OpLoad %v2float %429 -%431 = OpCompositeExtract %float %430 1 -%433 = OpCompositeConstruct %v2float %431 %float_0 -%434 = OpCompositeConstruct %v2float %float_0 %431 -%432 = OpCompositeConstruct %mat2v2float %433 %434 -OpStore %_4_m5 %432 -%435 = OpLoad %bool %_0_ok -OpSelectionMerge %437 None -OpBranchConditional %435 %436 %437 -%436 = OpLabel -%438 = OpLoad %mat2v2float %_4_m5 -%439 = OpCompositeConstruct %v2float %float_4 %float_0 -%440 = OpCompositeConstruct %v2float %float_0 %float_4 -%441 = OpCompositeConstruct %mat2v2float %439 %440 -%442 = OpCompositeExtract %v2float %438 0 -%443 = OpCompositeExtract %v2float %441 0 -%444 = OpFOrdEqual %v2bool %442 %443 -%445 = OpAll %bool %444 -%446 = OpCompositeExtract %v2float %438 1 -%447 = OpCompositeExtract %v2float %441 1 -%448 = OpFOrdEqual %v2bool %446 %447 -%449 = OpAll %bool %448 -%450 = OpLogicalAnd %bool %445 %449 -OpBranch %437 -%437 = OpLabel -%451 = OpPhi %bool %false %413 %450 %436 -OpStore %_0_ok %451 -%452 = OpLoad %mat2v2float %_1_m1 -%453 = OpLoad %mat2v2float %_4_m5 -%454 = OpCompositeExtract %v2float %452 0 -%455 = OpCompositeExtract %v2float %453 0 -%456 = OpFAdd %v2float %454 %455 -%457 = OpCompositeExtract %v2float %452 1 -%458 = OpCompositeExtract %v2float %453 1 -%459 = OpFAdd %v2float %457 %458 -%460 = OpCompositeConstruct %mat2v2float %456 %459 -OpStore %_1_m1 %460 -%461 = OpLoad %bool %_0_ok -OpSelectionMerge %463 None -OpBranchConditional %461 %462 %463 -%462 = OpLabel -%464 = OpLoad %mat2v2float %_1_m1 -%465 = OpCompositeConstruct %v2float %float_5 %float_2 -%466 = OpCompositeConstruct %v2float %float_3 %float_8 -%467 = OpCompositeConstruct %mat2v2float %465 %466 -%468 = OpCompositeExtract %v2float %464 0 -%469 = OpCompositeExtract %v2float %467 0 -%470 = OpFOrdEqual %v2bool %468 %469 +OpStore %_5_m7 %160 +%388 = OpLoad %bool %_0_ok +OpSelectionMerge %390 None +OpBranchConditional %388 %389 %390 +%389 = OpLabel +%391 = OpLoad %mat2v2float %_5_m7 +%392 = OpCompositeExtract %v2float %391 0 +%393 = OpFOrdEqual %v2bool %392 %158 +%394 = OpAll %bool %393 +%395 = OpCompositeExtract %v2float %391 1 +%396 = OpFOrdEqual %v2bool %395 %159 +%397 = OpAll %bool %396 +%398 = OpLogicalAnd %bool %394 %397 +OpBranch %390 +%390 = OpLabel +%399 = OpPhi %bool %false %377 %398 %389 +OpStore %_0_ok %399 +OpStore %_6_m9 %181 +%401 = OpLoad %bool %_0_ok +OpSelectionMerge %403 None +OpBranchConditional %401 %402 %403 +%402 = OpLabel +%404 = OpLoad %mat3v3float %_6_m9 +%405 = OpCompositeExtract %v3float %404 0 +%406 = OpFOrdEqual %v3bool %405 %178 +%407 = OpAll %bool %406 +%408 = OpCompositeExtract %v3float %404 1 +%409 = OpFOrdEqual %v3bool %408 %179 +%410 = OpAll %bool %409 +%411 = OpLogicalAnd %bool %407 %410 +%412 = OpCompositeExtract %v3float %404 2 +%413 = OpFOrdEqual %v3bool %412 %180 +%414 = OpAll %bool %413 +%415 = OpLogicalAnd %bool %411 %414 +OpBranch %403 +%403 = OpLabel +%416 = OpPhi %bool %false %390 %415 %402 +OpStore %_0_ok %416 +OpStore %_7_m10 %207 +%418 = OpLoad %bool %_0_ok +OpSelectionMerge %420 None +OpBranchConditional %418 %419 %420 +%419 = OpLabel +%421 = OpLoad %mat4v4float %_7_m10 +%422 = OpCompositeExtract %v4float %421 0 +%423 = OpFOrdEqual %v4bool %422 %203 +%424 = OpAll %bool %423 +%425 = OpCompositeExtract %v4float %421 1 +%426 = OpFOrdEqual %v4bool %425 %204 +%427 = OpAll %bool %426 +%428 = OpLogicalAnd %bool %424 %427 +%429 = OpCompositeExtract %v4float %421 2 +%430 = OpFOrdEqual %v4bool %429 %205 +%431 = OpAll %bool %430 +%432 = OpLogicalAnd %bool %428 %431 +%433 = OpCompositeExtract %v4float %421 3 +%434 = OpFOrdEqual %v4bool %433 %206 +%435 = OpAll %bool %434 +%436 = OpLogicalAnd %bool %432 %435 +OpBranch %420 +%420 = OpLabel +%437 = OpPhi %bool %false %403 %436 %419 +OpStore %_0_ok %437 +OpStore %_8_m11 %232 +%439 = OpLoad %mat4v4float %_8_m11 +%440 = OpLoad %mat4v4float %_7_m10 +%441 = OpCompositeExtract %v4float %439 0 +%442 = OpCompositeExtract %v4float %440 0 +%443 = OpFSub %v4float %441 %442 +%444 = OpCompositeExtract %v4float %439 1 +%445 = OpCompositeExtract %v4float %440 1 +%446 = OpFSub %v4float %444 %445 +%447 = OpCompositeExtract %v4float %439 2 +%448 = OpCompositeExtract %v4float %440 2 +%449 = OpFSub %v4float %447 %448 +%450 = OpCompositeExtract %v4float %439 3 +%451 = OpCompositeExtract %v4float %440 3 +%452 = OpFSub %v4float %450 %451 +%453 = OpCompositeConstruct %mat4v4float %443 %446 %449 %452 +OpStore %_8_m11 %453 +%454 = OpLoad %bool %_0_ok +OpSelectionMerge %456 None +OpBranchConditional %454 %455 %456 +%455 = OpLabel +%457 = OpLoad %mat4v4float %_8_m11 +%458 = OpCompositeExtract %v4float %457 0 +%459 = OpFOrdEqual %v4bool %458 %252 +%460 = OpAll %bool %459 +%461 = OpCompositeExtract %v4float %457 1 +%462 = OpFOrdEqual %v4bool %461 %253 +%463 = OpAll %bool %462 +%464 = OpLogicalAnd %bool %460 %463 +%465 = OpCompositeExtract %v4float %457 2 +%466 = OpFOrdEqual %v4bool %465 %254 +%467 = OpAll %bool %466 +%468 = OpLogicalAnd %bool %464 %467 +%469 = OpCompositeExtract %v4float %457 3 +%470 = OpFOrdEqual %v4bool %469 %255 %471 = OpAll %bool %470 -%472 = OpCompositeExtract %v2float %464 1 -%473 = OpCompositeExtract %v2float %467 1 -%474 = OpFOrdEqual %v2bool %472 %473 -%475 = OpAll %bool %474 -%476 = OpLogicalAnd %bool %471 %475 -OpBranch %463 -%463 = OpLabel -%477 = OpPhi %bool %false %437 %476 %462 -OpStore %_0_ok %477 -%479 = OpCompositeConstruct %v2float %float_5 %float_6 -%480 = OpCompositeConstruct %v2float %float_7 %float_8 -%481 = OpCompositeConstruct %mat2v2float %479 %480 -OpStore %_5_m7 %481 -%482 = OpLoad %bool %_0_ok -OpSelectionMerge %484 None -OpBranchConditional %482 %483 %484 -%483 = OpLabel -%485 = OpLoad %mat2v2float %_5_m7 -%486 = OpCompositeConstruct %v2float %float_5 %float_6 -%487 = OpCompositeConstruct %v2float %float_7 %float_8 -%488 = OpCompositeConstruct %mat2v2float %486 %487 -%489 = OpCompositeExtract %v2float %485 0 -%490 = OpCompositeExtract %v2float %488 0 -%491 = OpFOrdEqual %v2bool %489 %490 -%492 = OpAll %bool %491 -%493 = OpCompositeExtract %v2float %485 1 -%494 = OpCompositeExtract %v2float %488 1 -%495 = OpFOrdEqual %v2bool %493 %494 -%496 = OpAll %bool %495 -%497 = OpLogicalAnd %bool %492 %496 -OpBranch %484 -%484 = OpLabel -%498 = OpPhi %bool %false %463 %497 %483 -OpStore %_0_ok %498 -%501 = OpCompositeConstruct %v3float %float_9 %float_0 %float_0 -%502 = OpCompositeConstruct %v3float %float_0 %float_9 %float_0 -%503 = OpCompositeConstruct %v3float %float_0 %float_0 %float_9 -%500 = OpCompositeConstruct %mat3v3float %501 %502 %503 -OpStore %_6_m9 %500 -%504 = OpLoad %bool %_0_ok -OpSelectionMerge %506 None -OpBranchConditional %504 %505 %506 -%505 = OpLabel -%507 = OpLoad %mat3v3float %_6_m9 -%508 = OpCompositeConstruct %v3float %float_9 %float_0 %float_0 -%509 = OpCompositeConstruct %v3float %float_0 %float_9 %float_0 -%510 = OpCompositeConstruct %v3float %float_0 %float_0 %float_9 -%511 = OpCompositeConstruct %mat3v3float %508 %509 %510 -%512 = OpCompositeExtract %v3float %507 0 -%513 = OpCompositeExtract %v3float %511 0 -%514 = OpFOrdEqual %v3bool %512 %513 -%515 = OpAll %bool %514 -%516 = OpCompositeExtract %v3float %507 1 -%517 = OpCompositeExtract %v3float %511 1 -%518 = OpFOrdEqual %v3bool %516 %517 -%519 = OpAll %bool %518 -%520 = OpLogicalAnd %bool %515 %519 -%521 = OpCompositeExtract %v3float %507 2 -%522 = OpCompositeExtract %v3float %511 2 -%523 = OpFOrdEqual %v3bool %521 %522 -%524 = OpAll %bool %523 -%525 = OpLogicalAnd %bool %520 %524 -OpBranch %506 -%506 = OpLabel -%526 = OpPhi %bool %false %484 %525 %505 -OpStore %_0_ok %526 -%529 = OpCompositeConstruct %v4float %float_11 %float_0 %float_0 %float_0 -%530 = OpCompositeConstruct %v4float %float_0 %float_11 %float_0 %float_0 -%531 = OpCompositeConstruct %v4float %float_0 %float_0 %float_11 %float_0 -%532 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_11 -%528 = OpCompositeConstruct %mat4v4float %529 %530 %531 %532 -OpStore %_7_m10 %528 -%533 = OpLoad %bool %_0_ok -OpSelectionMerge %535 None -OpBranchConditional %533 %534 %535 -%534 = OpLabel -%536 = OpLoad %mat4v4float %_7_m10 -%537 = OpCompositeConstruct %v4float %float_11 %float_0 %float_0 %float_0 -%538 = OpCompositeConstruct %v4float %float_0 %float_11 %float_0 %float_0 -%539 = OpCompositeConstruct %v4float %float_0 %float_0 %float_11 %float_0 -%540 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_11 -%541 = OpCompositeConstruct %mat4v4float %537 %538 %539 %540 -%542 = OpCompositeExtract %v4float %536 0 -%543 = OpCompositeExtract %v4float %541 0 -%544 = OpFOrdEqual %v4bool %542 %543 -%545 = OpAll %bool %544 -%546 = OpCompositeExtract %v4float %536 1 -%547 = OpCompositeExtract %v4float %541 1 -%548 = OpFOrdEqual %v4bool %546 %547 -%549 = OpAll %bool %548 -%550 = OpLogicalAnd %bool %545 %549 -%551 = OpCompositeExtract %v4float %536 2 -%552 = OpCompositeExtract %v4float %541 2 -%553 = OpFOrdEqual %v4bool %551 %552 -%554 = OpAll %bool %553 -%555 = OpLogicalAnd %bool %550 %554 -%556 = OpCompositeExtract %v4float %536 3 -%557 = OpCompositeExtract %v4float %541 3 -%558 = OpFOrdEqual %v4bool %556 %557 -%559 = OpAll %bool %558 -%560 = OpLogicalAnd %bool %555 %559 -OpBranch %535 -%535 = OpLabel -%561 = OpPhi %bool %false %506 %560 %534 -OpStore %_0_ok %561 -%563 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 -%564 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 -%565 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 -%566 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_20 -%567 = OpCompositeConstruct %mat4v4float %563 %564 %565 %566 -OpStore %_8_m11 %567 -%568 = OpLoad %mat4v4float %_8_m11 -%569 = OpLoad %mat4v4float %_7_m10 -%570 = OpCompositeExtract %v4float %568 0 -%571 = OpCompositeExtract %v4float %569 0 -%572 = OpFSub %v4float %570 %571 -%573 = OpCompositeExtract %v4float %568 1 -%574 = OpCompositeExtract %v4float %569 1 -%575 = OpFSub %v4float %573 %574 -%576 = OpCompositeExtract %v4float %568 2 -%577 = OpCompositeExtract %v4float %569 2 -%578 = OpFSub %v4float %576 %577 -%579 = OpCompositeExtract %v4float %568 3 -%580 = OpCompositeExtract %v4float %569 3 -%581 = OpFSub %v4float %579 %580 -%582 = OpCompositeConstruct %mat4v4float %572 %575 %578 %581 -OpStore %_8_m11 %582 -%583 = OpLoad %bool %_0_ok -OpSelectionMerge %585 None -OpBranchConditional %583 %584 %585 -%584 = OpLabel -%586 = OpLoad %mat4v4float %_8_m11 -%587 = OpCompositeConstruct %v4float %float_9 %float_20 %float_20 %float_20 -%588 = OpCompositeConstruct %v4float %float_20 %float_9 %float_20 %float_20 -%589 = OpCompositeConstruct %v4float %float_20 %float_20 %float_9 %float_20 -%590 = OpCompositeConstruct %v4float %float_20 %float_20 %float_20 %float_9 -%591 = OpCompositeConstruct %mat4v4float %587 %588 %589 %590 -%592 = OpCompositeExtract %v4float %586 0 -%593 = OpCompositeExtract %v4float %591 0 -%594 = OpFOrdEqual %v4bool %592 %593 -%595 = OpAll %bool %594 -%596 = OpCompositeExtract %v4float %586 1 -%597 = OpCompositeExtract %v4float %591 1 -%598 = OpFOrdEqual %v4bool %596 %597 -%599 = OpAll %bool %598 -%600 = OpLogicalAnd %bool %595 %599 -%601 = OpCompositeExtract %v4float %586 2 -%602 = OpCompositeExtract %v4float %591 2 -%603 = OpFOrdEqual %v4bool %601 %602 -%604 = OpAll %bool %603 -%605 = OpLogicalAnd %bool %600 %604 -%606 = OpCompositeExtract %v4float %586 3 -%607 = OpCompositeExtract %v4float %591 3 -%608 = OpFOrdEqual %v4bool %606 %607 -%609 = OpAll %bool %608 -%610 = OpLogicalAnd %bool %605 %609 -OpBranch %585 -%585 = OpLabel -%611 = OpPhi %bool %false %535 %610 %584 -OpStore %_0_ok %611 -%612 = OpLoad %bool %_0_ok -OpSelectionMerge %614 None -OpBranchConditional %612 %613 %614 -%613 = OpLabel -%615 = OpFunctionCall %bool %test_half_b -OpBranch %614 -%614 = OpLabel -%616 = OpPhi %bool %false %585 %615 %613 -OpSelectionMerge %618 None -OpBranchConditional %616 %617 %618 -%617 = OpLabel -%619 = OpFunctionCall %bool %test_comma_b -OpBranch %618 -%618 = OpLabel -%620 = OpPhi %bool %false %614 %619 %617 -OpSelectionMerge %625 None -OpBranchConditional %620 %623 %624 -%623 = OpLabel -%626 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 -%629 = OpLoad %v4float %626 -OpStore %621 %629 -OpBranch %625 -%624 = OpLabel -%630 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 -%631 = OpLoad %v4float %630 -OpStore %621 %631 -OpBranch %625 -%625 = OpLabel -%632 = OpLoad %v4float %621 -OpReturnValue %632 +%472 = OpLogicalAnd %bool %468 %471 +OpBranch %456 +%456 = OpLabel +%473 = OpPhi %bool %false %420 %472 %455 +OpStore %_0_ok %473 +%474 = OpLoad %bool %_0_ok +OpSelectionMerge %476 None +OpBranchConditional %474 %475 %476 +%475 = OpLabel +%477 = OpFunctionCall %bool %test_half_b +OpBranch %476 +%476 = OpLabel +%478 = OpPhi %bool %false %456 %477 %475 +OpSelectionMerge %480 None +OpBranchConditional %478 %479 %480 +%479 = OpLabel +%481 = OpFunctionCall %bool %test_comma_b +OpBranch %480 +%480 = OpLabel +%482 = OpPhi %bool %false %476 %481 %479 +OpSelectionMerge %487 None +OpBranchConditional %482 %485 %486 +%485 = OpLabel +%488 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 +%491 = OpLoad %v4float %488 +OpStore %483 %491 +OpBranch %487 +%486 = OpLabel +%492 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 +%493 = OpLoad %v4float %492 +OpStore %483 %493 +OpBranch %487 +%487 = OpLabel +%494 = OpLoad %v4float %483 +OpReturnValue %494 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/MatricesNonsquare.asm.frag b/third_party/skia/tests/sksl/shared/MatricesNonsquare.asm.frag index c9d4128eb86e..3987bad549f1 100644 --- a/third_party/skia/tests/sksl/shared/MatricesNonsquare.asm.frag +++ b/third_party/skia/tests/sksl/shared/MatricesNonsquare.asm.frag @@ -41,155 +41,77 @@ OpDecorate %_UniformBuffer Block OpDecorate %11 Binding 0 OpDecorate %11 DescriptorSet 0 OpDecorate %m23 RelaxedPrecision -OpDecorate %34 RelaxedPrecision -OpDecorate %35 RelaxedPrecision -OpDecorate %36 RelaxedPrecision OpDecorate %38 RelaxedPrecision OpDecorate %41 RelaxedPrecision -OpDecorate %42 RelaxedPrecision -OpDecorate %43 RelaxedPrecision -OpDecorate %44 RelaxedPrecision OpDecorate %m24 RelaxedPrecision -OpDecorate %60 RelaxedPrecision +OpDecorate %58 RelaxedPrecision OpDecorate %61 RelaxedPrecision -OpDecorate %62 RelaxedPrecision -OpDecorate %63 RelaxedPrecision -OpDecorate %66 RelaxedPrecision -OpDecorate %67 RelaxedPrecision -OpDecorate %68 RelaxedPrecision -OpDecorate %69 RelaxedPrecision OpDecorate %m32 RelaxedPrecision -OpDecorate %85 RelaxedPrecision -OpDecorate %86 RelaxedPrecision -OpDecorate %87 RelaxedPrecision -OpDecorate %88 RelaxedPrecision -OpDecorate %89 RelaxedPrecision -OpDecorate %92 RelaxedPrecision -OpDecorate %93 RelaxedPrecision -OpDecorate %94 RelaxedPrecision -OpDecorate %95 RelaxedPrecision -OpDecorate %96 RelaxedPrecision +OpDecorate %78 RelaxedPrecision +OpDecorate %81 RelaxedPrecision OpDecorate %m34 RelaxedPrecision -OpDecorate %117 RelaxedPrecision -OpDecorate %118 RelaxedPrecision -OpDecorate %119 RelaxedPrecision -OpDecorate %120 RelaxedPrecision -OpDecorate %121 RelaxedPrecision -OpDecorate %124 RelaxedPrecision -OpDecorate %125 RelaxedPrecision -OpDecorate %126 RelaxedPrecision -OpDecorate %127 RelaxedPrecision -OpDecorate %128 RelaxedPrecision +OpDecorate %103 RelaxedPrecision +OpDecorate %106 RelaxedPrecision OpDecorate %m42 RelaxedPrecision -OpDecorate %148 RelaxedPrecision -OpDecorate %149 RelaxedPrecision -OpDecorate %150 RelaxedPrecision -OpDecorate %151 RelaxedPrecision -OpDecorate %152 RelaxedPrecision -OpDecorate %153 RelaxedPrecision -OpDecorate %156 RelaxedPrecision -OpDecorate %157 RelaxedPrecision -OpDecorate %158 RelaxedPrecision -OpDecorate %159 RelaxedPrecision -OpDecorate %160 RelaxedPrecision -OpDecorate %161 RelaxedPrecision +OpDecorate %126 RelaxedPrecision +OpDecorate %129 RelaxedPrecision OpDecorate %m43 RelaxedPrecision -OpDecorate %186 RelaxedPrecision -OpDecorate %187 RelaxedPrecision -OpDecorate %188 RelaxedPrecision -OpDecorate %189 RelaxedPrecision -OpDecorate %190 RelaxedPrecision -OpDecorate %191 RelaxedPrecision -OpDecorate %194 RelaxedPrecision -OpDecorate %195 RelaxedPrecision -OpDecorate %196 RelaxedPrecision -OpDecorate %197 RelaxedPrecision -OpDecorate %198 RelaxedPrecision -OpDecorate %199 RelaxedPrecision +OpDecorate %155 RelaxedPrecision +OpDecorate %158 RelaxedPrecision OpDecorate %m22 RelaxedPrecision -OpDecorate %223 RelaxedPrecision +OpDecorate %178 RelaxedPrecision +OpDecorate %179 RelaxedPrecision +OpDecorate %180 RelaxedPrecision +OpDecorate %181 RelaxedPrecision +OpDecorate %184 RelaxedPrecision +OpDecorate %m33 RelaxedPrecision +OpDecorate %200 RelaxedPrecision +OpDecorate %201 RelaxedPrecision +OpDecorate %202 RelaxedPrecision +OpDecorate %203 RelaxedPrecision +OpDecorate %206 RelaxedPrecision OpDecorate %224 RelaxedPrecision -OpDecorate %225 RelaxedPrecision -OpDecorate %226 RelaxedPrecision +OpDecorate %228 RelaxedPrecision OpDecorate %229 RelaxedPrecision +OpDecorate %230 RelaxedPrecision OpDecorate %231 RelaxedPrecision OpDecorate %232 RelaxedPrecision OpDecorate %233 RelaxedPrecision -OpDecorate %m33 RelaxedPrecision -OpDecorate %247 RelaxedPrecision +OpDecorate %236 RelaxedPrecision OpDecorate %248 RelaxedPrecision -OpDecorate %249 RelaxedPrecision -OpDecorate %250 RelaxedPrecision +OpDecorate %251 RelaxedPrecision +OpDecorate %252 RelaxedPrecision OpDecorate %253 RelaxedPrecision +OpDecorate %254 RelaxedPrecision OpDecorate %255 RelaxedPrecision OpDecorate %256 RelaxedPrecision OpDecorate %257 RelaxedPrecision OpDecorate %258 RelaxedPrecision -OpDecorate %274 RelaxedPrecision -OpDecorate %276 RelaxedPrecision -OpDecorate %277 RelaxedPrecision -OpDecorate %278 RelaxedPrecision +OpDecorate %261 RelaxedPrecision OpDecorate %279 RelaxedPrecision -OpDecorate %280 RelaxedPrecision -OpDecorate %281 RelaxedPrecision OpDecorate %282 RelaxedPrecision OpDecorate %283 RelaxedPrecision OpDecorate %284 RelaxedPrecision OpDecorate %285 RelaxedPrecision -OpDecorate %288 RelaxedPrecision -OpDecorate %289 RelaxedPrecision +OpDecorate %286 RelaxedPrecision +OpDecorate %287 RelaxedPrecision OpDecorate %290 RelaxedPrecision -OpDecorate %291 RelaxedPrecision -OpDecorate %302 RelaxedPrecision OpDecorate %303 RelaxedPrecision -OpDecorate %304 RelaxedPrecision -OpDecorate %305 RelaxedPrecision -OpDecorate %306 RelaxedPrecision -OpDecorate %307 RelaxedPrecision -OpDecorate %308 RelaxedPrecision OpDecorate %309 RelaxedPrecision -OpDecorate %310 RelaxedPrecision -OpDecorate %311 RelaxedPrecision -OpDecorate %312 RelaxedPrecision -OpDecorate %313 RelaxedPrecision -OpDecorate %314 RelaxedPrecision -OpDecorate %315 RelaxedPrecision -OpDecorate %318 RelaxedPrecision -OpDecorate %320 RelaxedPrecision -OpDecorate %321 RelaxedPrecision OpDecorate %322 RelaxedPrecision -OpDecorate %323 RelaxedPrecision -OpDecorate %339 RelaxedPrecision -OpDecorate %340 RelaxedPrecision -OpDecorate %341 RelaxedPrecision -OpDecorate %342 RelaxedPrecision -OpDecorate %343 RelaxedPrecision -OpDecorate %344 RelaxedPrecision -OpDecorate %345 RelaxedPrecision -OpDecorate %346 RelaxedPrecision -OpDecorate %347 RelaxedPrecision -OpDecorate %348 RelaxedPrecision -OpDecorate %349 RelaxedPrecision +OpDecorate %335 RelaxedPrecision OpDecorate %352 RelaxedPrecision -OpDecorate %354 RelaxedPrecision -OpDecorate %355 RelaxedPrecision -OpDecorate %356 RelaxedPrecision -OpDecorate %367 RelaxedPrecision -OpDecorate %376 RelaxedPrecision -OpDecorate %397 RelaxedPrecision -OpDecorate %419 RelaxedPrecision -OpDecorate %447 RelaxedPrecision -OpDecorate %476 RelaxedPrecision -OpDecorate %511 RelaxedPrecision -OpDecorate %544 RelaxedPrecision -OpDecorate %565 RelaxedPrecision -OpDecorate %598 RelaxedPrecision -OpDecorate %628 RelaxedPrecision -OpDecorate %661 RelaxedPrecision -OpDecorate %678 RelaxedPrecision -OpDecorate %692 RelaxedPrecision -OpDecorate %695 RelaxedPrecision -OpDecorate %696 RelaxedPrecision +OpDecorate %369 RelaxedPrecision +OpDecorate %390 RelaxedPrecision +OpDecorate %414 RelaxedPrecision +OpDecorate %430 RelaxedPrecision +OpDecorate %452 RelaxedPrecision +OpDecorate %472 RelaxedPrecision +OpDecorate %494 RelaxedPrecision +OpDecorate %506 RelaxedPrecision +OpDecorate %520 RelaxedPrecision +OpDecorate %523 RelaxedPrecision +OpDecorate %524 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -202,8 +124,8 @@ OpDecorate %696 RelaxedPrecision %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %16 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %20 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %24 = OpTypeFunction %bool @@ -213,35 +135,79 @@ OpDecorate %696 RelaxedPrecision %mat2v3float = OpTypeMatrix %v3float 2 %_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float %float_2 = OpConstant %float 2 +%34 = OpConstantComposite %v3float %float_2 %float_0 %float_0 +%35 = OpConstantComposite %v3float %float_0 %float_2 %float_0 +%36 = OpConstantComposite %mat2v3float %34 %35 %false = OpConstantFalse %bool %v3bool = OpTypeVector %bool 3 %mat2v4float = OpTypeMatrix %v4float 2 %_ptr_Function_mat2v4float = OpTypePointer Function %mat2v4float %float_3 = OpConstant %float 3 +%55 = OpConstantComposite %v4float %float_3 %float_0 %float_0 %float_0 +%56 = OpConstantComposite %v4float %float_0 %float_3 %float_0 %float_0 +%57 = OpConstantComposite %mat2v4float %55 %56 %v4bool = OpTypeVector %bool 4 %mat3v2float = OpTypeMatrix %v2float 3 %_ptr_Function_mat3v2float = OpTypePointer Function %mat3v2float %float_4 = OpConstant %float 4 +%75 = OpConstantComposite %v2float %float_4 %float_0 +%76 = OpConstantComposite %v2float %float_0 %float_4 +%77 = OpConstantComposite %mat3v2float %75 %76 %20 %v2bool = OpTypeVector %bool 2 %mat3v4float = OpTypeMatrix %v4float 3 %_ptr_Function_mat3v4float = OpTypePointer Function %mat3v4float %float_5 = OpConstant %float 5 +%99 = OpConstantComposite %v4float %float_5 %float_0 %float_0 %float_0 +%100 = OpConstantComposite %v4float %float_0 %float_5 %float_0 %float_0 +%101 = OpConstantComposite %v4float %float_0 %float_0 %float_5 %float_0 +%102 = OpConstantComposite %mat3v4float %99 %100 %101 %mat4v2float = OpTypeMatrix %v2float 4 %_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float %float_6 = OpConstant %float 6 +%123 = OpConstantComposite %v2float %float_6 %float_0 +%124 = OpConstantComposite %v2float %float_0 %float_6 +%125 = OpConstantComposite %mat4v2float %123 %124 %20 %20 %mat4v3float = OpTypeMatrix %v3float 4 %_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float %float_7 = OpConstant %float 7 +%150 = OpConstantComposite %v3float %float_7 %float_0 %float_0 +%151 = OpConstantComposite %v3float %float_0 %float_7 %float_0 +%152 = OpConstantComposite %v3float %float_0 %float_0 %float_7 +%153 = OpConstantComposite %v3float %float_0 %float_0 %float_0 +%154 = OpConstantComposite %mat4v3float %150 %151 %152 %153 %mat2v2float = OpTypeMatrix %v2float 2 %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float %float_8 = OpConstant %float 8 +%186 = OpConstantComposite %v2float %float_8 %float_0 +%187 = OpConstantComposite %v2float %float_0 %float_8 +%188 = OpConstantComposite %mat2v2float %186 %187 %mat3v3float = OpTypeMatrix %v3float 3 %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float %float_35 = OpConstant %float 35 +%208 = OpConstantComposite %v3float %float_35 %float_0 %float_0 +%209 = OpConstantComposite %v3float %float_0 %float_35 %float_0 +%210 = OpConstantComposite %v3float %float_0 %float_0 %float_35 +%211 = OpConstantComposite %mat3v3float %208 %209 %210 %float_1 = OpConstant %float 1 +%226 = OpConstantComposite %v3float %float_1 %float_1 %float_1 +%227 = OpConstantComposite %mat2v3float %226 %226 +%237 = OpConstantComposite %v3float %float_3 %float_1 %float_1 +%238 = OpConstantComposite %v3float %float_1 %float_3 %float_1 +%239 = OpConstantComposite %mat2v3float %237 %238 +%249 = OpConstantComposite %v2float %float_2 %float_2 +%250 = OpConstantComposite %mat3v2float %249 %249 %249 %float_n2 = OpConstant %float -2 +%263 = OpConstantComposite %v2float %float_2 %float_n2 +%264 = OpConstantComposite %v2float %float_n2 %float_2 +%265 = OpConstantComposite %v2float %float_n2 %float_n2 +%266 = OpConstantComposite %mat3v2float %263 %264 %265 +%280 = OpConstantComposite %v4float %float_4 %float_4 %float_4 %float_4 +%281 = OpConstantComposite %mat2v4float %280 %280 %float_0_75 = OpConstant %float 0.75 -%368 = OpTypeFunction %v4float %_ptr_Function_v2float +%292 = OpConstantComposite %v4float %float_0_75 %float_0 %float_0 %float_0 +%293 = OpConstantComposite %v4float %float_0 %float_0_75 %float_0 %float_0 +%294 = OpConstantComposite %mat2v4float %292 %293 +%304 = OpTypeFunction %v4float %_ptr_Function_v2float %_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 @@ -267,365 +233,257 @@ OpFunctionEnd %m22 = OpVariable %_ptr_Function_mat2v2float Function %m33 = OpVariable %_ptr_Function_mat3v3float Function OpStore %ok %true -%35 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0 -%36 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0 -%34 = OpCompositeConstruct %mat2v3float %35 %36 -OpStore %m23 %34 +OpStore %m23 %36 %38 = OpLoad %bool %ok OpSelectionMerge %40 None OpBranchConditional %38 %39 %40 %39 = OpLabel %41 = OpLoad %mat2v3float %m23 -%42 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0 -%43 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0 -%44 = OpCompositeConstruct %mat2v3float %42 %43 -%46 = OpCompositeExtract %v3float %41 0 -%47 = OpCompositeExtract %v3float %44 0 -%48 = OpFOrdEqual %v3bool %46 %47 -%49 = OpAll %bool %48 -%50 = OpCompositeExtract %v3float %41 1 -%51 = OpCompositeExtract %v3float %44 1 -%52 = OpFOrdEqual %v3bool %50 %51 -%53 = OpAll %bool %52 -%54 = OpLogicalAnd %bool %49 %53 +%43 = OpCompositeExtract %v3float %41 0 +%44 = OpFOrdEqual %v3bool %43 %34 +%45 = OpAll %bool %44 +%46 = OpCompositeExtract %v3float %41 1 +%47 = OpFOrdEqual %v3bool %46 %35 +%48 = OpAll %bool %47 +%49 = OpLogicalAnd %bool %45 %48 OpBranch %40 %40 = OpLabel -%55 = OpPhi %bool %false %25 %54 %39 -OpStore %ok %55 -%61 = OpCompositeConstruct %v4float %float_3 %float_0 %float_0 %float_0 -%62 = OpCompositeConstruct %v4float %float_0 %float_3 %float_0 %float_0 -%60 = OpCompositeConstruct %mat2v4float %61 %62 -OpStore %m24 %60 -%63 = OpLoad %bool %ok -OpSelectionMerge %65 None -OpBranchConditional %63 %64 %65 -%64 = OpLabel -%66 = OpLoad %mat2v4float %m24 -%67 = OpCompositeConstruct %v4float %float_3 %float_0 %float_0 %float_0 -%68 = OpCompositeConstruct %v4float %float_0 %float_3 %float_0 %float_0 -%69 = OpCompositeConstruct %mat2v4float %67 %68 -%71 = OpCompositeExtract %v4float %66 0 -%72 = OpCompositeExtract %v4float %69 0 -%73 = OpFOrdEqual %v4bool %71 %72 -%74 = OpAll %bool %73 -%75 = OpCompositeExtract %v4float %66 1 -%76 = OpCompositeExtract %v4float %69 1 -%77 = OpFOrdEqual %v4bool %75 %76 -%78 = OpAll %bool %77 -%79 = OpLogicalAnd %bool %74 %78 -OpBranch %65 -%65 = OpLabel -%80 = OpPhi %bool %false %40 %79 %64 -OpStore %ok %80 -%86 = OpCompositeConstruct %v2float %float_4 %float_0 -%87 = OpCompositeConstruct %v2float %float_0 %float_4 -%88 = OpCompositeConstruct %v2float %float_0 %float_0 -%85 = OpCompositeConstruct %mat3v2float %86 %87 %88 -OpStore %m32 %85 -%89 = OpLoad %bool %ok -OpSelectionMerge %91 None -OpBranchConditional %89 %90 %91 -%90 = OpLabel -%92 = OpLoad %mat3v2float %m32 -%93 = OpCompositeConstruct %v2float %float_4 %float_0 -%94 = OpCompositeConstruct %v2float %float_0 %float_4 -%95 = OpCompositeConstruct %v2float %float_0 %float_0 -%96 = OpCompositeConstruct %mat3v2float %93 %94 %95 -%98 = OpCompositeExtract %v2float %92 0 -%99 = OpCompositeExtract %v2float %96 0 -%100 = OpFOrdEqual %v2bool %98 %99 -%101 = OpAll %bool %100 -%102 = OpCompositeExtract %v2float %92 1 -%103 = OpCompositeExtract %v2float %96 1 -%104 = OpFOrdEqual %v2bool %102 %103 -%105 = OpAll %bool %104 -%106 = OpLogicalAnd %bool %101 %105 -%107 = OpCompositeExtract %v2float %92 2 -%108 = OpCompositeExtract %v2float %96 2 -%109 = OpFOrdEqual %v2bool %107 %108 -%110 = OpAll %bool %109 -%111 = OpLogicalAnd %bool %106 %110 -OpBranch %91 -%91 = OpLabel -%112 = OpPhi %bool %false %65 %111 %90 -OpStore %ok %112 -%118 = OpCompositeConstruct %v4float %float_5 %float_0 %float_0 %float_0 -%119 = OpCompositeConstruct %v4float %float_0 %float_5 %float_0 %float_0 -%120 = OpCompositeConstruct %v4float %float_0 %float_0 %float_5 %float_0 -%117 = OpCompositeConstruct %mat3v4float %118 %119 %120 -OpStore %m34 %117 -%121 = OpLoad %bool %ok -OpSelectionMerge %123 None -OpBranchConditional %121 %122 %123 -%122 = OpLabel -%124 = OpLoad %mat3v4float %m34 -%125 = OpCompositeConstruct %v4float %float_5 %float_0 %float_0 %float_0 -%126 = OpCompositeConstruct %v4float %float_0 %float_5 %float_0 %float_0 -%127 = OpCompositeConstruct %v4float %float_0 %float_0 %float_5 %float_0 -%128 = OpCompositeConstruct %mat3v4float %125 %126 %127 -%129 = OpCompositeExtract %v4float %124 0 -%130 = OpCompositeExtract %v4float %128 0 -%131 = OpFOrdEqual %v4bool %129 %130 +%50 = OpPhi %bool %false %25 %49 %39 +OpStore %ok %50 +OpStore %m24 %57 +%58 = OpLoad %bool %ok +OpSelectionMerge %60 None +OpBranchConditional %58 %59 %60 +%59 = OpLabel +%61 = OpLoad %mat2v4float %m24 +%63 = OpCompositeExtract %v4float %61 0 +%64 = OpFOrdEqual %v4bool %63 %55 +%65 = OpAll %bool %64 +%66 = OpCompositeExtract %v4float %61 1 +%67 = OpFOrdEqual %v4bool %66 %56 +%68 = OpAll %bool %67 +%69 = OpLogicalAnd %bool %65 %68 +OpBranch %60 +%60 = OpLabel +%70 = OpPhi %bool %false %40 %69 %59 +OpStore %ok %70 +OpStore %m32 %77 +%78 = OpLoad %bool %ok +OpSelectionMerge %80 None +OpBranchConditional %78 %79 %80 +%79 = OpLabel +%81 = OpLoad %mat3v2float %m32 +%83 = OpCompositeExtract %v2float %81 0 +%84 = OpFOrdEqual %v2bool %83 %75 +%85 = OpAll %bool %84 +%86 = OpCompositeExtract %v2float %81 1 +%87 = OpFOrdEqual %v2bool %86 %76 +%88 = OpAll %bool %87 +%89 = OpLogicalAnd %bool %85 %88 +%90 = OpCompositeExtract %v2float %81 2 +%91 = OpFOrdEqual %v2bool %90 %20 +%92 = OpAll %bool %91 +%93 = OpLogicalAnd %bool %89 %92 +OpBranch %80 +%80 = OpLabel +%94 = OpPhi %bool %false %60 %93 %79 +OpStore %ok %94 +OpStore %m34 %102 +%103 = OpLoad %bool %ok +OpSelectionMerge %105 None +OpBranchConditional %103 %104 %105 +%104 = OpLabel +%106 = OpLoad %mat3v4float %m34 +%107 = OpCompositeExtract %v4float %106 0 +%108 = OpFOrdEqual %v4bool %107 %99 +%109 = OpAll %bool %108 +%110 = OpCompositeExtract %v4float %106 1 +%111 = OpFOrdEqual %v4bool %110 %100 +%112 = OpAll %bool %111 +%113 = OpLogicalAnd %bool %109 %112 +%114 = OpCompositeExtract %v4float %106 2 +%115 = OpFOrdEqual %v4bool %114 %101 +%116 = OpAll %bool %115 +%117 = OpLogicalAnd %bool %113 %116 +OpBranch %105 +%105 = OpLabel +%118 = OpPhi %bool %false %80 %117 %104 +OpStore %ok %118 +OpStore %m42 %125 +%126 = OpLoad %bool %ok +OpSelectionMerge %128 None +OpBranchConditional %126 %127 %128 +%127 = OpLabel +%129 = OpLoad %mat4v2float %m42 +%130 = OpCompositeExtract %v2float %129 0 +%131 = OpFOrdEqual %v2bool %130 %123 %132 = OpAll %bool %131 -%133 = OpCompositeExtract %v4float %124 1 -%134 = OpCompositeExtract %v4float %128 1 -%135 = OpFOrdEqual %v4bool %133 %134 -%136 = OpAll %bool %135 -%137 = OpLogicalAnd %bool %132 %136 -%138 = OpCompositeExtract %v4float %124 2 -%139 = OpCompositeExtract %v4float %128 2 -%140 = OpFOrdEqual %v4bool %138 %139 -%141 = OpAll %bool %140 -%142 = OpLogicalAnd %bool %137 %141 -OpBranch %123 -%123 = OpLabel -%143 = OpPhi %bool %false %91 %142 %122 -OpStore %ok %143 -%149 = OpCompositeConstruct %v2float %float_6 %float_0 -%150 = OpCompositeConstruct %v2float %float_0 %float_6 -%151 = OpCompositeConstruct %v2float %float_0 %float_0 -%152 = OpCompositeConstruct %v2float %float_0 %float_0 -%148 = OpCompositeConstruct %mat4v2float %149 %150 %151 %152 -OpStore %m42 %148 -%153 = OpLoad %bool %ok -OpSelectionMerge %155 None -OpBranchConditional %153 %154 %155 -%154 = OpLabel -%156 = OpLoad %mat4v2float %m42 -%157 = OpCompositeConstruct %v2float %float_6 %float_0 -%158 = OpCompositeConstruct %v2float %float_0 %float_6 -%159 = OpCompositeConstruct %v2float %float_0 %float_0 -%160 = OpCompositeConstruct %v2float %float_0 %float_0 -%161 = OpCompositeConstruct %mat4v2float %157 %158 %159 %160 -%162 = OpCompositeExtract %v2float %156 0 -%163 = OpCompositeExtract %v2float %161 0 -%164 = OpFOrdEqual %v2bool %162 %163 -%165 = OpAll %bool %164 -%166 = OpCompositeExtract %v2float %156 1 -%167 = OpCompositeExtract %v2float %161 1 -%168 = OpFOrdEqual %v2bool %166 %167 -%169 = OpAll %bool %168 -%170 = OpLogicalAnd %bool %165 %169 -%171 = OpCompositeExtract %v2float %156 2 -%172 = OpCompositeExtract %v2float %161 2 -%173 = OpFOrdEqual %v2bool %171 %172 -%174 = OpAll %bool %173 -%175 = OpLogicalAnd %bool %170 %174 -%176 = OpCompositeExtract %v2float %156 3 -%177 = OpCompositeExtract %v2float %161 3 -%178 = OpFOrdEqual %v2bool %176 %177 -%179 = OpAll %bool %178 -%180 = OpLogicalAnd %bool %175 %179 -OpBranch %155 -%155 = OpLabel -%181 = OpPhi %bool %false %123 %180 %154 -OpStore %ok %181 -%187 = OpCompositeConstruct %v3float %float_7 %float_0 %float_0 -%188 = OpCompositeConstruct %v3float %float_0 %float_7 %float_0 -%189 = OpCompositeConstruct %v3float %float_0 %float_0 %float_7 -%190 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0 -%186 = OpCompositeConstruct %mat4v3float %187 %188 %189 %190 -OpStore %m43 %186 -%191 = OpLoad %bool %ok -OpSelectionMerge %193 None -OpBranchConditional %191 %192 %193 -%192 = OpLabel -%194 = OpLoad %mat4v3float %m43 -%195 = OpCompositeConstruct %v3float %float_7 %float_0 %float_0 -%196 = OpCompositeConstruct %v3float %float_0 %float_7 %float_0 -%197 = OpCompositeConstruct %v3float %float_0 %float_0 %float_7 -%198 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0 -%199 = OpCompositeConstruct %mat4v3float %195 %196 %197 %198 -%200 = OpCompositeExtract %v3float %194 0 -%201 = OpCompositeExtract %v3float %199 0 -%202 = OpFOrdEqual %v3bool %200 %201 -%203 = OpAll %bool %202 -%204 = OpCompositeExtract %v3float %194 1 -%205 = OpCompositeExtract %v3float %199 1 -%206 = OpFOrdEqual %v3bool %204 %205 -%207 = OpAll %bool %206 -%208 = OpLogicalAnd %bool %203 %207 -%209 = OpCompositeExtract %v3float %194 2 -%210 = OpCompositeExtract %v3float %199 2 -%211 = OpFOrdEqual %v3bool %209 %210 -%212 = OpAll %bool %211 -%213 = OpLogicalAnd %bool %208 %212 -%214 = OpCompositeExtract %v3float %194 3 -%215 = OpCompositeExtract %v3float %199 3 -%216 = OpFOrdEqual %v3bool %214 %215 +%133 = OpCompositeExtract %v2float %129 1 +%134 = OpFOrdEqual %v2bool %133 %124 +%135 = OpAll %bool %134 +%136 = OpLogicalAnd %bool %132 %135 +%137 = OpCompositeExtract %v2float %129 2 +%138 = OpFOrdEqual %v2bool %137 %20 +%139 = OpAll %bool %138 +%140 = OpLogicalAnd %bool %136 %139 +%141 = OpCompositeExtract %v2float %129 3 +%142 = OpFOrdEqual %v2bool %141 %20 +%143 = OpAll %bool %142 +%144 = OpLogicalAnd %bool %140 %143 +OpBranch %128 +%128 = OpLabel +%145 = OpPhi %bool %false %105 %144 %127 +OpStore %ok %145 +OpStore %m43 %154 +%155 = OpLoad %bool %ok +OpSelectionMerge %157 None +OpBranchConditional %155 %156 %157 +%156 = OpLabel +%158 = OpLoad %mat4v3float %m43 +%159 = OpCompositeExtract %v3float %158 0 +%160 = OpFOrdEqual %v3bool %159 %150 +%161 = OpAll %bool %160 +%162 = OpCompositeExtract %v3float %158 1 +%163 = OpFOrdEqual %v3bool %162 %151 +%164 = OpAll %bool %163 +%165 = OpLogicalAnd %bool %161 %164 +%166 = OpCompositeExtract %v3float %158 2 +%167 = OpFOrdEqual %v3bool %166 %152 +%168 = OpAll %bool %167 +%169 = OpLogicalAnd %bool %165 %168 +%170 = OpCompositeExtract %v3float %158 3 +%171 = OpFOrdEqual %v3bool %170 %153 +%172 = OpAll %bool %171 +%173 = OpLogicalAnd %bool %169 %172 +OpBranch %157 +%157 = OpLabel +%174 = OpPhi %bool %false %128 %173 %156 +OpStore %ok %174 +%178 = OpLoad %mat3v2float %m32 +%179 = OpLoad %mat2v3float %m23 +%180 = OpMatrixTimesMatrix %mat2v2float %178 %179 +OpStore %m22 %180 +%181 = OpLoad %bool %ok +OpSelectionMerge %183 None +OpBranchConditional %181 %182 %183 +%182 = OpLabel +%184 = OpLoad %mat2v2float %m22 +%189 = OpCompositeExtract %v2float %184 0 +%190 = OpFOrdEqual %v2bool %189 %186 +%191 = OpAll %bool %190 +%192 = OpCompositeExtract %v2float %184 1 +%193 = OpFOrdEqual %v2bool %192 %187 +%194 = OpAll %bool %193 +%195 = OpLogicalAnd %bool %191 %194 +OpBranch %183 +%183 = OpLabel +%196 = OpPhi %bool %false %157 %195 %182 +OpStore %ok %196 +%200 = OpLoad %mat4v3float %m43 +%201 = OpLoad %mat3v4float %m34 +%202 = OpMatrixTimesMatrix %mat3v3float %200 %201 +OpStore %m33 %202 +%203 = OpLoad %bool %ok +OpSelectionMerge %205 None +OpBranchConditional %203 %204 %205 +%204 = OpLabel +%206 = OpLoad %mat3v3float %m33 +%212 = OpCompositeExtract %v3float %206 0 +%213 = OpFOrdEqual %v3bool %212 %208 +%214 = OpAll %bool %213 +%215 = OpCompositeExtract %v3float %206 1 +%216 = OpFOrdEqual %v3bool %215 %209 %217 = OpAll %bool %216 -%218 = OpLogicalAnd %bool %213 %217 -OpBranch %193 -%193 = OpLabel -%219 = OpPhi %bool %false %155 %218 %192 -OpStore %ok %219 -%223 = OpLoad %mat3v2float %m32 +%218 = OpLogicalAnd %bool %214 %217 +%219 = OpCompositeExtract %v3float %206 2 +%220 = OpFOrdEqual %v3bool %219 %210 +%221 = OpAll %bool %220 +%222 = OpLogicalAnd %bool %218 %221 +OpBranch %205 +%205 = OpLabel +%223 = OpPhi %bool %false %183 %222 %204 +OpStore %ok %223 %224 = OpLoad %mat2v3float %m23 -%225 = OpMatrixTimesMatrix %mat2v2float %223 %224 -OpStore %m22 %225 -%226 = OpLoad %bool %ok -OpSelectionMerge %228 None -OpBranchConditional %226 %227 %228 -%227 = OpLabel -%229 = OpLoad %mat2v2float %m22 -%232 = OpCompositeConstruct %v2float %float_8 %float_0 -%233 = OpCompositeConstruct %v2float %float_0 %float_8 -%231 = OpCompositeConstruct %mat2v2float %232 %233 -%234 = OpCompositeExtract %v2float %229 0 -%235 = OpCompositeExtract %v2float %231 0 -%236 = OpFOrdEqual %v2bool %234 %235 -%237 = OpAll %bool %236 -%238 = OpCompositeExtract %v2float %229 1 -%239 = OpCompositeExtract %v2float %231 1 -%240 = OpFOrdEqual %v2bool %238 %239 -%241 = OpAll %bool %240 -%242 = OpLogicalAnd %bool %237 %241 -OpBranch %228 -%228 = OpLabel -%243 = OpPhi %bool %false %193 %242 %227 -OpStore %ok %243 -%247 = OpLoad %mat4v3float %m43 -%248 = OpLoad %mat3v4float %m34 -%249 = OpMatrixTimesMatrix %mat3v3float %247 %248 -OpStore %m33 %249 -%250 = OpLoad %bool %ok -OpSelectionMerge %252 None -OpBranchConditional %250 %251 %252 -%251 = OpLabel -%253 = OpLoad %mat3v3float %m33 -%256 = OpCompositeConstruct %v3float %float_35 %float_0 %float_0 -%257 = OpCompositeConstruct %v3float %float_0 %float_35 %float_0 -%258 = OpCompositeConstruct %v3float %float_0 %float_0 %float_35 -%255 = OpCompositeConstruct %mat3v3float %256 %257 %258 -%259 = OpCompositeExtract %v3float %253 0 -%260 = OpCompositeExtract %v3float %255 0 -%261 = OpFOrdEqual %v3bool %259 %260 -%262 = OpAll %bool %261 -%263 = OpCompositeExtract %v3float %253 1 -%264 = OpCompositeExtract %v3float %255 1 -%265 = OpFOrdEqual %v3bool %263 %264 -%266 = OpAll %bool %265 -%267 = OpLogicalAnd %bool %262 %266 -%268 = OpCompositeExtract %v3float %253 2 -%269 = OpCompositeExtract %v3float %255 2 -%270 = OpFOrdEqual %v3bool %268 %269 -%271 = OpAll %bool %270 -%272 = OpLogicalAnd %bool %267 %271 -OpBranch %252 -%252 = OpLabel -%273 = OpPhi %bool %false %228 %272 %251 -OpStore %ok %273 -%274 = OpLoad %mat2v3float %m23 -%276 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1 -%277 = OpCompositeConstruct %mat2v3float %276 %276 -%278 = OpCompositeExtract %v3float %274 0 -%279 = OpCompositeExtract %v3float %277 0 -%280 = OpFAdd %v3float %278 %279 -%281 = OpCompositeExtract %v3float %274 1 -%282 = OpCompositeExtract %v3float %277 1 -%283 = OpFAdd %v3float %281 %282 -%284 = OpCompositeConstruct %mat2v3float %280 %283 -OpStore %m23 %284 -%285 = OpLoad %bool %ok -OpSelectionMerge %287 None -OpBranchConditional %285 %286 %287 -%286 = OpLabel -%288 = OpLoad %mat2v3float %m23 -%289 = OpCompositeConstruct %v3float %float_3 %float_1 %float_1 -%290 = OpCompositeConstruct %v3float %float_1 %float_3 %float_1 -%291 = OpCompositeConstruct %mat2v3float %289 %290 -%292 = OpCompositeExtract %v3float %288 0 -%293 = OpCompositeExtract %v3float %291 0 -%294 = OpFOrdEqual %v3bool %292 %293 -%295 = OpAll %bool %294 -%296 = OpCompositeExtract %v3float %288 1 -%297 = OpCompositeExtract %v3float %291 1 -%298 = OpFOrdEqual %v3bool %296 %297 -%299 = OpAll %bool %298 -%300 = OpLogicalAnd %bool %295 %299 -OpBranch %287 -%287 = OpLabel -%301 = OpPhi %bool %false %252 %300 %286 -OpStore %ok %301 -%302 = OpLoad %mat3v2float %m32 -%303 = OpCompositeConstruct %v2float %float_2 %float_2 -%304 = OpCompositeConstruct %mat3v2float %303 %303 %303 -%305 = OpCompositeExtract %v2float %302 0 -%306 = OpCompositeExtract %v2float %304 0 -%307 = OpFSub %v2float %305 %306 -%308 = OpCompositeExtract %v2float %302 1 -%309 = OpCompositeExtract %v2float %304 1 -%310 = OpFSub %v2float %308 %309 -%311 = OpCompositeExtract %v2float %302 2 -%312 = OpCompositeExtract %v2float %304 2 -%313 = OpFSub %v2float %311 %312 -%314 = OpCompositeConstruct %mat3v2float %307 %310 %313 -OpStore %m32 %314 -%315 = OpLoad %bool %ok -OpSelectionMerge %317 None -OpBranchConditional %315 %316 %317 -%316 = OpLabel -%318 = OpLoad %mat3v2float %m32 -%320 = OpCompositeConstruct %v2float %float_2 %float_n2 -%321 = OpCompositeConstruct %v2float %float_n2 %float_2 -%322 = OpCompositeConstruct %v2float %float_n2 %float_n2 -%323 = OpCompositeConstruct %mat3v2float %320 %321 %322 -%324 = OpCompositeExtract %v2float %318 0 -%325 = OpCompositeExtract %v2float %323 0 -%326 = OpFOrdEqual %v2bool %324 %325 -%327 = OpAll %bool %326 -%328 = OpCompositeExtract %v2float %318 1 -%329 = OpCompositeExtract %v2float %323 1 -%330 = OpFOrdEqual %v2bool %328 %329 -%331 = OpAll %bool %330 -%332 = OpLogicalAnd %bool %327 %331 -%333 = OpCompositeExtract %v2float %318 2 -%334 = OpCompositeExtract %v2float %323 2 -%335 = OpFOrdEqual %v2bool %333 %334 -%336 = OpAll %bool %335 -%337 = OpLogicalAnd %bool %332 %336 -OpBranch %317 -%317 = OpLabel -%338 = OpPhi %bool %false %287 %337 %316 -OpStore %ok %338 -%339 = OpLoad %mat2v4float %m24 -%340 = OpCompositeConstruct %v4float %float_4 %float_4 %float_4 %float_4 -%341 = OpCompositeConstruct %mat2v4float %340 %340 -%342 = OpCompositeExtract %v4float %339 0 -%343 = OpCompositeExtract %v4float %341 0 -%344 = OpFDiv %v4float %342 %343 -%345 = OpCompositeExtract %v4float %339 1 -%346 = OpCompositeExtract %v4float %341 1 -%347 = OpFDiv %v4float %345 %346 -%348 = OpCompositeConstruct %mat2v4float %344 %347 -OpStore %m24 %348 -%349 = OpLoad %bool %ok -OpSelectionMerge %351 None -OpBranchConditional %349 %350 %351 -%350 = OpLabel -%352 = OpLoad %mat2v4float %m24 -%354 = OpCompositeConstruct %v4float %float_0_75 %float_0 %float_0 %float_0 -%355 = OpCompositeConstruct %v4float %float_0 %float_0_75 %float_0 %float_0 -%356 = OpCompositeConstruct %mat2v4float %354 %355 -%357 = OpCompositeExtract %v4float %352 0 -%358 = OpCompositeExtract %v4float %356 0 -%359 = OpFOrdEqual %v4bool %357 %358 -%360 = OpAll %bool %359 -%361 = OpCompositeExtract %v4float %352 1 -%362 = OpCompositeExtract %v4float %356 1 -%363 = OpFOrdEqual %v4bool %361 %362 -%364 = OpAll %bool %363 -%365 = OpLogicalAnd %bool %360 %364 -OpBranch %351 -%351 = OpLabel -%366 = OpPhi %bool %false %317 %365 %350 -OpStore %ok %366 -%367 = OpLoad %bool %ok -OpReturnValue %367 +%228 = OpCompositeExtract %v3float %224 0 +%229 = OpFAdd %v3float %228 %226 +%230 = OpCompositeExtract %v3float %224 1 +%231 = OpFAdd %v3float %230 %226 +%232 = OpCompositeConstruct %mat2v3float %229 %231 +OpStore %m23 %232 +%233 = OpLoad %bool %ok +OpSelectionMerge %235 None +OpBranchConditional %233 %234 %235 +%234 = OpLabel +%236 = OpLoad %mat2v3float %m23 +%240 = OpCompositeExtract %v3float %236 0 +%241 = OpFOrdEqual %v3bool %240 %237 +%242 = OpAll %bool %241 +%243 = OpCompositeExtract %v3float %236 1 +%244 = OpFOrdEqual %v3bool %243 %238 +%245 = OpAll %bool %244 +%246 = OpLogicalAnd %bool %242 %245 +OpBranch %235 +%235 = OpLabel +%247 = OpPhi %bool %false %205 %246 %234 +OpStore %ok %247 +%248 = OpLoad %mat3v2float %m32 +%251 = OpCompositeExtract %v2float %248 0 +%252 = OpFSub %v2float %251 %249 +%253 = OpCompositeExtract %v2float %248 1 +%254 = OpFSub %v2float %253 %249 +%255 = OpCompositeExtract %v2float %248 2 +%256 = OpFSub %v2float %255 %249 +%257 = OpCompositeConstruct %mat3v2float %252 %254 %256 +OpStore %m32 %257 +%258 = OpLoad %bool %ok +OpSelectionMerge %260 None +OpBranchConditional %258 %259 %260 +%259 = OpLabel +%261 = OpLoad %mat3v2float %m32 +%267 = OpCompositeExtract %v2float %261 0 +%268 = OpFOrdEqual %v2bool %267 %263 +%269 = OpAll %bool %268 +%270 = OpCompositeExtract %v2float %261 1 +%271 = OpFOrdEqual %v2bool %270 %264 +%272 = OpAll %bool %271 +%273 = OpLogicalAnd %bool %269 %272 +%274 = OpCompositeExtract %v2float %261 2 +%275 = OpFOrdEqual %v2bool %274 %265 +%276 = OpAll %bool %275 +%277 = OpLogicalAnd %bool %273 %276 +OpBranch %260 +%260 = OpLabel +%278 = OpPhi %bool %false %235 %277 %259 +OpStore %ok %278 +%279 = OpLoad %mat2v4float %m24 +%282 = OpCompositeExtract %v4float %279 0 +%283 = OpFDiv %v4float %282 %280 +%284 = OpCompositeExtract %v4float %279 1 +%285 = OpFDiv %v4float %284 %280 +%286 = OpCompositeConstruct %mat2v4float %283 %285 +OpStore %m24 %286 +%287 = OpLoad %bool %ok +OpSelectionMerge %289 None +OpBranchConditional %287 %288 %289 +%288 = OpLabel +%290 = OpLoad %mat2v4float %m24 +%295 = OpCompositeExtract %v4float %290 0 +%296 = OpFOrdEqual %v4bool %295 %292 +%297 = OpAll %bool %296 +%298 = OpCompositeExtract %v4float %290 1 +%299 = OpFOrdEqual %v4bool %298 %293 +%300 = OpAll %bool %299 +%301 = OpLogicalAnd %bool %297 %300 +OpBranch %289 +%289 = OpLabel +%302 = OpPhi %bool %false %260 %301 %288 +OpStore %ok %302 +%303 = OpLoad %bool %ok +OpReturnValue %303 OpFunctionEnd -%main = OpFunction %v4float None %368 -%369 = OpFunctionParameter %_ptr_Function_v2float -%370 = OpLabel +%main = OpFunction %v4float None %304 +%305 = OpFunctionParameter %_ptr_Function_v2float +%306 = OpLabel %_0_ok = OpVariable %_ptr_Function_bool Function %_1_m23 = OpVariable %_ptr_Function_mat2v3float Function %_2_m24 = OpVariable %_ptr_Function_mat2v4float Function @@ -635,382 +493,274 @@ OpFunctionEnd %_6_m43 = OpVariable %_ptr_Function_mat4v3float Function %_7_m22 = OpVariable %_ptr_Function_mat2v2float Function %_8_m33 = OpVariable %_ptr_Function_mat3v3float Function -%683 = OpVariable %_ptr_Function_v4float Function +%511 = OpVariable %_ptr_Function_v4float Function OpStore %_0_ok %true -%374 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0 -%375 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0 -%373 = OpCompositeConstruct %mat2v3float %374 %375 -OpStore %_1_m23 %373 -%376 = OpLoad %bool %_0_ok -OpSelectionMerge %378 None -OpBranchConditional %376 %377 %378 -%377 = OpLabel -%379 = OpLoad %mat2v3float %_1_m23 -%380 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0 -%381 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0 -%382 = OpCompositeConstruct %mat2v3float %380 %381 -%383 = OpCompositeExtract %v3float %379 0 -%384 = OpCompositeExtract %v3float %382 0 -%385 = OpFOrdEqual %v3bool %383 %384 +OpStore %_1_m23 %36 +%309 = OpLoad %bool %_0_ok +OpSelectionMerge %311 None +OpBranchConditional %309 %310 %311 +%310 = OpLabel +%312 = OpLoad %mat2v3float %_1_m23 +%313 = OpCompositeExtract %v3float %312 0 +%314 = OpFOrdEqual %v3bool %313 %34 +%315 = OpAll %bool %314 +%316 = OpCompositeExtract %v3float %312 1 +%317 = OpFOrdEqual %v3bool %316 %35 +%318 = OpAll %bool %317 +%319 = OpLogicalAnd %bool %315 %318 +OpBranch %311 +%311 = OpLabel +%320 = OpPhi %bool %false %306 %319 %310 +OpStore %_0_ok %320 +OpStore %_2_m24 %57 +%322 = OpLoad %bool %_0_ok +OpSelectionMerge %324 None +OpBranchConditional %322 %323 %324 +%323 = OpLabel +%325 = OpLoad %mat2v4float %_2_m24 +%326 = OpCompositeExtract %v4float %325 0 +%327 = OpFOrdEqual %v4bool %326 %55 +%328 = OpAll %bool %327 +%329 = OpCompositeExtract %v4float %325 1 +%330 = OpFOrdEqual %v4bool %329 %56 +%331 = OpAll %bool %330 +%332 = OpLogicalAnd %bool %328 %331 +OpBranch %324 +%324 = OpLabel +%333 = OpPhi %bool %false %311 %332 %323 +OpStore %_0_ok %333 +OpStore %_3_m32 %77 +%335 = OpLoad %bool %_0_ok +OpSelectionMerge %337 None +OpBranchConditional %335 %336 %337 +%336 = OpLabel +%338 = OpLoad %mat3v2float %_3_m32 +%339 = OpCompositeExtract %v2float %338 0 +%340 = OpFOrdEqual %v2bool %339 %75 +%341 = OpAll %bool %340 +%342 = OpCompositeExtract %v2float %338 1 +%343 = OpFOrdEqual %v2bool %342 %76 +%344 = OpAll %bool %343 +%345 = OpLogicalAnd %bool %341 %344 +%346 = OpCompositeExtract %v2float %338 2 +%347 = OpFOrdEqual %v2bool %346 %20 +%348 = OpAll %bool %347 +%349 = OpLogicalAnd %bool %345 %348 +OpBranch %337 +%337 = OpLabel +%350 = OpPhi %bool %false %324 %349 %336 +OpStore %_0_ok %350 +OpStore %_4_m34 %102 +%352 = OpLoad %bool %_0_ok +OpSelectionMerge %354 None +OpBranchConditional %352 %353 %354 +%353 = OpLabel +%355 = OpLoad %mat3v4float %_4_m34 +%356 = OpCompositeExtract %v4float %355 0 +%357 = OpFOrdEqual %v4bool %356 %99 +%358 = OpAll %bool %357 +%359 = OpCompositeExtract %v4float %355 1 +%360 = OpFOrdEqual %v4bool %359 %100 +%361 = OpAll %bool %360 +%362 = OpLogicalAnd %bool %358 %361 +%363 = OpCompositeExtract %v4float %355 2 +%364 = OpFOrdEqual %v4bool %363 %101 +%365 = OpAll %bool %364 +%366 = OpLogicalAnd %bool %362 %365 +OpBranch %354 +%354 = OpLabel +%367 = OpPhi %bool %false %337 %366 %353 +OpStore %_0_ok %367 +OpStore %_5_m42 %125 +%369 = OpLoad %bool %_0_ok +OpSelectionMerge %371 None +OpBranchConditional %369 %370 %371 +%370 = OpLabel +%372 = OpLoad %mat4v2float %_5_m42 +%373 = OpCompositeExtract %v2float %372 0 +%374 = OpFOrdEqual %v2bool %373 %123 +%375 = OpAll %bool %374 +%376 = OpCompositeExtract %v2float %372 1 +%377 = OpFOrdEqual %v2bool %376 %124 +%378 = OpAll %bool %377 +%379 = OpLogicalAnd %bool %375 %378 +%380 = OpCompositeExtract %v2float %372 2 +%381 = OpFOrdEqual %v2bool %380 %20 +%382 = OpAll %bool %381 +%383 = OpLogicalAnd %bool %379 %382 +%384 = OpCompositeExtract %v2float %372 3 +%385 = OpFOrdEqual %v2bool %384 %20 %386 = OpAll %bool %385 -%387 = OpCompositeExtract %v3float %379 1 -%388 = OpCompositeExtract %v3float %382 1 -%389 = OpFOrdEqual %v3bool %387 %388 -%390 = OpAll %bool %389 -%391 = OpLogicalAnd %bool %386 %390 -OpBranch %378 -%378 = OpLabel -%392 = OpPhi %bool %false %370 %391 %377 -OpStore %_0_ok %392 -%395 = OpCompositeConstruct %v4float %float_3 %float_0 %float_0 %float_0 -%396 = OpCompositeConstruct %v4float %float_0 %float_3 %float_0 %float_0 -%394 = OpCompositeConstruct %mat2v4float %395 %396 -OpStore %_2_m24 %394 -%397 = OpLoad %bool %_0_ok -OpSelectionMerge %399 None -OpBranchConditional %397 %398 %399 -%398 = OpLabel -%400 = OpLoad %mat2v4float %_2_m24 -%401 = OpCompositeConstruct %v4float %float_3 %float_0 %float_0 %float_0 -%402 = OpCompositeConstruct %v4float %float_0 %float_3 %float_0 %float_0 -%403 = OpCompositeConstruct %mat2v4float %401 %402 -%404 = OpCompositeExtract %v4float %400 0 -%405 = OpCompositeExtract %v4float %403 0 -%406 = OpFOrdEqual %v4bool %404 %405 +%387 = OpLogicalAnd %bool %383 %386 +OpBranch %371 +%371 = OpLabel +%388 = OpPhi %bool %false %354 %387 %370 +OpStore %_0_ok %388 +OpStore %_6_m43 %154 +%390 = OpLoad %bool %_0_ok +OpSelectionMerge %392 None +OpBranchConditional %390 %391 %392 +%391 = OpLabel +%393 = OpLoad %mat4v3float %_6_m43 +%394 = OpCompositeExtract %v3float %393 0 +%395 = OpFOrdEqual %v3bool %394 %150 +%396 = OpAll %bool %395 +%397 = OpCompositeExtract %v3float %393 1 +%398 = OpFOrdEqual %v3bool %397 %151 +%399 = OpAll %bool %398 +%400 = OpLogicalAnd %bool %396 %399 +%401 = OpCompositeExtract %v3float %393 2 +%402 = OpFOrdEqual %v3bool %401 %152 +%403 = OpAll %bool %402 +%404 = OpLogicalAnd %bool %400 %403 +%405 = OpCompositeExtract %v3float %393 3 +%406 = OpFOrdEqual %v3bool %405 %153 %407 = OpAll %bool %406 -%408 = OpCompositeExtract %v4float %400 1 -%409 = OpCompositeExtract %v4float %403 1 -%410 = OpFOrdEqual %v4bool %408 %409 -%411 = OpAll %bool %410 -%412 = OpLogicalAnd %bool %407 %411 -OpBranch %399 -%399 = OpLabel -%413 = OpPhi %bool %false %378 %412 %398 -OpStore %_0_ok %413 -%416 = OpCompositeConstruct %v2float %float_4 %float_0 -%417 = OpCompositeConstruct %v2float %float_0 %float_4 -%418 = OpCompositeConstruct %v2float %float_0 %float_0 -%415 = OpCompositeConstruct %mat3v2float %416 %417 %418 -OpStore %_3_m32 %415 -%419 = OpLoad %bool %_0_ok -OpSelectionMerge %421 None -OpBranchConditional %419 %420 %421 -%420 = OpLabel -%422 = OpLoad %mat3v2float %_3_m32 -%423 = OpCompositeConstruct %v2float %float_4 %float_0 -%424 = OpCompositeConstruct %v2float %float_0 %float_4 -%425 = OpCompositeConstruct %v2float %float_0 %float_0 -%426 = OpCompositeConstruct %mat3v2float %423 %424 %425 -%427 = OpCompositeExtract %v2float %422 0 -%428 = OpCompositeExtract %v2float %426 0 -%429 = OpFOrdEqual %v2bool %427 %428 -%430 = OpAll %bool %429 -%431 = OpCompositeExtract %v2float %422 1 -%432 = OpCompositeExtract %v2float %426 1 -%433 = OpFOrdEqual %v2bool %431 %432 -%434 = OpAll %bool %433 -%435 = OpLogicalAnd %bool %430 %434 -%436 = OpCompositeExtract %v2float %422 2 -%437 = OpCompositeExtract %v2float %426 2 -%438 = OpFOrdEqual %v2bool %436 %437 +%408 = OpLogicalAnd %bool %404 %407 +OpBranch %392 +%392 = OpLabel +%409 = OpPhi %bool %false %371 %408 %391 +OpStore %_0_ok %409 +%411 = OpLoad %mat3v2float %_3_m32 +%412 = OpLoad %mat2v3float %_1_m23 +%413 = OpMatrixTimesMatrix %mat2v2float %411 %412 +OpStore %_7_m22 %413 +%414 = OpLoad %bool %_0_ok +OpSelectionMerge %416 None +OpBranchConditional %414 %415 %416 +%415 = OpLabel +%417 = OpLoad %mat2v2float %_7_m22 +%418 = OpCompositeExtract %v2float %417 0 +%419 = OpFOrdEqual %v2bool %418 %186 +%420 = OpAll %bool %419 +%421 = OpCompositeExtract %v2float %417 1 +%422 = OpFOrdEqual %v2bool %421 %187 +%423 = OpAll %bool %422 +%424 = OpLogicalAnd %bool %420 %423 +OpBranch %416 +%416 = OpLabel +%425 = OpPhi %bool %false %392 %424 %415 +OpStore %_0_ok %425 +%427 = OpLoad %mat4v3float %_6_m43 +%428 = OpLoad %mat3v4float %_4_m34 +%429 = OpMatrixTimesMatrix %mat3v3float %427 %428 +OpStore %_8_m33 %429 +%430 = OpLoad %bool %_0_ok +OpSelectionMerge %432 None +OpBranchConditional %430 %431 %432 +%431 = OpLabel +%433 = OpLoad %mat3v3float %_8_m33 +%434 = OpCompositeExtract %v3float %433 0 +%435 = OpFOrdEqual %v3bool %434 %208 +%436 = OpAll %bool %435 +%437 = OpCompositeExtract %v3float %433 1 +%438 = OpFOrdEqual %v3bool %437 %209 %439 = OpAll %bool %438 -%440 = OpLogicalAnd %bool %435 %439 -OpBranch %421 -%421 = OpLabel -%441 = OpPhi %bool %false %399 %440 %420 -OpStore %_0_ok %441 -%444 = OpCompositeConstruct %v4float %float_5 %float_0 %float_0 %float_0 -%445 = OpCompositeConstruct %v4float %float_0 %float_5 %float_0 %float_0 -%446 = OpCompositeConstruct %v4float %float_0 %float_0 %float_5 %float_0 -%443 = OpCompositeConstruct %mat3v4float %444 %445 %446 -OpStore %_4_m34 %443 -%447 = OpLoad %bool %_0_ok -OpSelectionMerge %449 None -OpBranchConditional %447 %448 %449 -%448 = OpLabel -%450 = OpLoad %mat3v4float %_4_m34 -%451 = OpCompositeConstruct %v4float %float_5 %float_0 %float_0 %float_0 -%452 = OpCompositeConstruct %v4float %float_0 %float_5 %float_0 %float_0 -%453 = OpCompositeConstruct %v4float %float_0 %float_0 %float_5 %float_0 -%454 = OpCompositeConstruct %mat3v4float %451 %452 %453 -%455 = OpCompositeExtract %v4float %450 0 -%456 = OpCompositeExtract %v4float %454 0 -%457 = OpFOrdEqual %v4bool %455 %456 +%440 = OpLogicalAnd %bool %436 %439 +%441 = OpCompositeExtract %v3float %433 2 +%442 = OpFOrdEqual %v3bool %441 %210 +%443 = OpAll %bool %442 +%444 = OpLogicalAnd %bool %440 %443 +OpBranch %432 +%432 = OpLabel +%445 = OpPhi %bool %false %416 %444 %431 +OpStore %_0_ok %445 +%446 = OpLoad %mat2v3float %_1_m23 +%447 = OpCompositeExtract %v3float %446 0 +%448 = OpFAdd %v3float %447 %226 +%449 = OpCompositeExtract %v3float %446 1 +%450 = OpFAdd %v3float %449 %226 +%451 = OpCompositeConstruct %mat2v3float %448 %450 +OpStore %_1_m23 %451 +%452 = OpLoad %bool %_0_ok +OpSelectionMerge %454 None +OpBranchConditional %452 %453 %454 +%453 = OpLabel +%455 = OpLoad %mat2v3float %_1_m23 +%456 = OpCompositeExtract %v3float %455 0 +%457 = OpFOrdEqual %v3bool %456 %237 %458 = OpAll %bool %457 -%459 = OpCompositeExtract %v4float %450 1 -%460 = OpCompositeExtract %v4float %454 1 -%461 = OpFOrdEqual %v4bool %459 %460 -%462 = OpAll %bool %461 -%463 = OpLogicalAnd %bool %458 %462 -%464 = OpCompositeExtract %v4float %450 2 -%465 = OpCompositeExtract %v4float %454 2 -%466 = OpFOrdEqual %v4bool %464 %465 -%467 = OpAll %bool %466 -%468 = OpLogicalAnd %bool %463 %467 -OpBranch %449 -%449 = OpLabel -%469 = OpPhi %bool %false %421 %468 %448 -OpStore %_0_ok %469 -%472 = OpCompositeConstruct %v2float %float_6 %float_0 -%473 = OpCompositeConstruct %v2float %float_0 %float_6 -%474 = OpCompositeConstruct %v2float %float_0 %float_0 -%475 = OpCompositeConstruct %v2float %float_0 %float_0 -%471 = OpCompositeConstruct %mat4v2float %472 %473 %474 %475 -OpStore %_5_m42 %471 -%476 = OpLoad %bool %_0_ok -OpSelectionMerge %478 None -OpBranchConditional %476 %477 %478 -%477 = OpLabel -%479 = OpLoad %mat4v2float %_5_m42 -%480 = OpCompositeConstruct %v2float %float_6 %float_0 -%481 = OpCompositeConstruct %v2float %float_0 %float_6 -%482 = OpCompositeConstruct %v2float %float_0 %float_0 -%483 = OpCompositeConstruct %v2float %float_0 %float_0 -%484 = OpCompositeConstruct %mat4v2float %480 %481 %482 %483 -%485 = OpCompositeExtract %v2float %479 0 -%486 = OpCompositeExtract %v2float %484 0 -%487 = OpFOrdEqual %v2bool %485 %486 -%488 = OpAll %bool %487 -%489 = OpCompositeExtract %v2float %479 1 -%490 = OpCompositeExtract %v2float %484 1 -%491 = OpFOrdEqual %v2bool %489 %490 -%492 = OpAll %bool %491 -%493 = OpLogicalAnd %bool %488 %492 -%494 = OpCompositeExtract %v2float %479 2 -%495 = OpCompositeExtract %v2float %484 2 -%496 = OpFOrdEqual %v2bool %494 %495 -%497 = OpAll %bool %496 -%498 = OpLogicalAnd %bool %493 %497 -%499 = OpCompositeExtract %v2float %479 3 -%500 = OpCompositeExtract %v2float %484 3 -%501 = OpFOrdEqual %v2bool %499 %500 -%502 = OpAll %bool %501 -%503 = OpLogicalAnd %bool %498 %502 -OpBranch %478 -%478 = OpLabel -%504 = OpPhi %bool %false %449 %503 %477 -OpStore %_0_ok %504 -%507 = OpCompositeConstruct %v3float %float_7 %float_0 %float_0 -%508 = OpCompositeConstruct %v3float %float_0 %float_7 %float_0 -%509 = OpCompositeConstruct %v3float %float_0 %float_0 %float_7 -%510 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0 -%506 = OpCompositeConstruct %mat4v3float %507 %508 %509 %510 -OpStore %_6_m43 %506 -%511 = OpLoad %bool %_0_ok -OpSelectionMerge %513 None -OpBranchConditional %511 %512 %513 -%512 = OpLabel -%514 = OpLoad %mat4v3float %_6_m43 -%515 = OpCompositeConstruct %v3float %float_7 %float_0 %float_0 -%516 = OpCompositeConstruct %v3float %float_0 %float_7 %float_0 -%517 = OpCompositeConstruct %v3float %float_0 %float_0 %float_7 -%518 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0 -%519 = OpCompositeConstruct %mat4v3float %515 %516 %517 %518 -%520 = OpCompositeExtract %v3float %514 0 -%521 = OpCompositeExtract %v3float %519 0 -%522 = OpFOrdEqual %v3bool %520 %521 -%523 = OpAll %bool %522 -%524 = OpCompositeExtract %v3float %514 1 -%525 = OpCompositeExtract %v3float %519 1 -%526 = OpFOrdEqual %v3bool %524 %525 -%527 = OpAll %bool %526 -%528 = OpLogicalAnd %bool %523 %527 -%529 = OpCompositeExtract %v3float %514 2 -%530 = OpCompositeExtract %v3float %519 2 -%531 = OpFOrdEqual %v3bool %529 %530 -%532 = OpAll %bool %531 -%533 = OpLogicalAnd %bool %528 %532 -%534 = OpCompositeExtract %v3float %514 3 -%535 = OpCompositeExtract %v3float %519 3 -%536 = OpFOrdEqual %v3bool %534 %535 -%537 = OpAll %bool %536 -%538 = OpLogicalAnd %bool %533 %537 -OpBranch %513 +%459 = OpCompositeExtract %v3float %455 1 +%460 = OpFOrdEqual %v3bool %459 %238 +%461 = OpAll %bool %460 +%462 = OpLogicalAnd %bool %458 %461 +OpBranch %454 +%454 = OpLabel +%463 = OpPhi %bool %false %432 %462 %453 +OpStore %_0_ok %463 +%464 = OpLoad %mat3v2float %_3_m32 +%465 = OpCompositeExtract %v2float %464 0 +%466 = OpFSub %v2float %465 %249 +%467 = OpCompositeExtract %v2float %464 1 +%468 = OpFSub %v2float %467 %249 +%469 = OpCompositeExtract %v2float %464 2 +%470 = OpFSub %v2float %469 %249 +%471 = OpCompositeConstruct %mat3v2float %466 %468 %470 +OpStore %_3_m32 %471 +%472 = OpLoad %bool %_0_ok +OpSelectionMerge %474 None +OpBranchConditional %472 %473 %474 +%473 = OpLabel +%475 = OpLoad %mat3v2float %_3_m32 +%476 = OpCompositeExtract %v2float %475 0 +%477 = OpFOrdEqual %v2bool %476 %263 +%478 = OpAll %bool %477 +%479 = OpCompositeExtract %v2float %475 1 +%480 = OpFOrdEqual %v2bool %479 %264 +%481 = OpAll %bool %480 +%482 = OpLogicalAnd %bool %478 %481 +%483 = OpCompositeExtract %v2float %475 2 +%484 = OpFOrdEqual %v2bool %483 %265 +%485 = OpAll %bool %484 +%486 = OpLogicalAnd %bool %482 %485 +OpBranch %474 +%474 = OpLabel +%487 = OpPhi %bool %false %454 %486 %473 +OpStore %_0_ok %487 +%488 = OpLoad %mat2v4float %_2_m24 +%489 = OpCompositeExtract %v4float %488 0 +%490 = OpFDiv %v4float %489 %280 +%491 = OpCompositeExtract %v4float %488 1 +%492 = OpFDiv %v4float %491 %280 +%493 = OpCompositeConstruct %mat2v4float %490 %492 +OpStore %_2_m24 %493 +%494 = OpLoad %bool %_0_ok +OpSelectionMerge %496 None +OpBranchConditional %494 %495 %496 +%495 = OpLabel +%497 = OpLoad %mat2v4float %_2_m24 +%498 = OpCompositeExtract %v4float %497 0 +%499 = OpFOrdEqual %v4bool %498 %292 +%500 = OpAll %bool %499 +%501 = OpCompositeExtract %v4float %497 1 +%502 = OpFOrdEqual %v4bool %501 %293 +%503 = OpAll %bool %502 +%504 = OpLogicalAnd %bool %500 %503 +OpBranch %496 +%496 = OpLabel +%505 = OpPhi %bool %false %474 %504 %495 +OpStore %_0_ok %505 +%506 = OpLoad %bool %_0_ok +OpSelectionMerge %508 None +OpBranchConditional %506 %507 %508 +%507 = OpLabel +%509 = OpFunctionCall %bool %test_half_b +OpBranch %508 +%508 = OpLabel +%510 = OpPhi %bool %false %496 %509 %507 +OpSelectionMerge %515 None +OpBranchConditional %510 %513 %514 %513 = OpLabel -%539 = OpPhi %bool %false %478 %538 %512 -OpStore %_0_ok %539 -%541 = OpLoad %mat3v2float %_3_m32 -%542 = OpLoad %mat2v3float %_1_m23 -%543 = OpMatrixTimesMatrix %mat2v2float %541 %542 -OpStore %_7_m22 %543 -%544 = OpLoad %bool %_0_ok -OpSelectionMerge %546 None -OpBranchConditional %544 %545 %546 -%545 = OpLabel -%547 = OpLoad %mat2v2float %_7_m22 -%549 = OpCompositeConstruct %v2float %float_8 %float_0 -%550 = OpCompositeConstruct %v2float %float_0 %float_8 -%548 = OpCompositeConstruct %mat2v2float %549 %550 -%551 = OpCompositeExtract %v2float %547 0 -%552 = OpCompositeExtract %v2float %548 0 -%553 = OpFOrdEqual %v2bool %551 %552 -%554 = OpAll %bool %553 -%555 = OpCompositeExtract %v2float %547 1 -%556 = OpCompositeExtract %v2float %548 1 -%557 = OpFOrdEqual %v2bool %555 %556 -%558 = OpAll %bool %557 -%559 = OpLogicalAnd %bool %554 %558 -OpBranch %546 -%546 = OpLabel -%560 = OpPhi %bool %false %513 %559 %545 -OpStore %_0_ok %560 -%562 = OpLoad %mat4v3float %_6_m43 -%563 = OpLoad %mat3v4float %_4_m34 -%564 = OpMatrixTimesMatrix %mat3v3float %562 %563 -OpStore %_8_m33 %564 -%565 = OpLoad %bool %_0_ok -OpSelectionMerge %567 None -OpBranchConditional %565 %566 %567 -%566 = OpLabel -%568 = OpLoad %mat3v3float %_8_m33 -%570 = OpCompositeConstruct %v3float %float_35 %float_0 %float_0 -%571 = OpCompositeConstruct %v3float %float_0 %float_35 %float_0 -%572 = OpCompositeConstruct %v3float %float_0 %float_0 %float_35 -%569 = OpCompositeConstruct %mat3v3float %570 %571 %572 -%573 = OpCompositeExtract %v3float %568 0 -%574 = OpCompositeExtract %v3float %569 0 -%575 = OpFOrdEqual %v3bool %573 %574 -%576 = OpAll %bool %575 -%577 = OpCompositeExtract %v3float %568 1 -%578 = OpCompositeExtract %v3float %569 1 -%579 = OpFOrdEqual %v3bool %577 %578 -%580 = OpAll %bool %579 -%581 = OpLogicalAnd %bool %576 %580 -%582 = OpCompositeExtract %v3float %568 2 -%583 = OpCompositeExtract %v3float %569 2 -%584 = OpFOrdEqual %v3bool %582 %583 -%585 = OpAll %bool %584 -%586 = OpLogicalAnd %bool %581 %585 -OpBranch %567 -%567 = OpLabel -%587 = OpPhi %bool %false %546 %586 %566 -OpStore %_0_ok %587 -%588 = OpLoad %mat2v3float %_1_m23 -%589 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1 -%590 = OpCompositeConstruct %mat2v3float %589 %589 -%591 = OpCompositeExtract %v3float %588 0 -%592 = OpCompositeExtract %v3float %590 0 -%593 = OpFAdd %v3float %591 %592 -%594 = OpCompositeExtract %v3float %588 1 -%595 = OpCompositeExtract %v3float %590 1 -%596 = OpFAdd %v3float %594 %595 -%597 = OpCompositeConstruct %mat2v3float %593 %596 -OpStore %_1_m23 %597 -%598 = OpLoad %bool %_0_ok -OpSelectionMerge %600 None -OpBranchConditional %598 %599 %600 -%599 = OpLabel -%601 = OpLoad %mat2v3float %_1_m23 -%602 = OpCompositeConstruct %v3float %float_3 %float_1 %float_1 -%603 = OpCompositeConstruct %v3float %float_1 %float_3 %float_1 -%604 = OpCompositeConstruct %mat2v3float %602 %603 -%605 = OpCompositeExtract %v3float %601 0 -%606 = OpCompositeExtract %v3float %604 0 -%607 = OpFOrdEqual %v3bool %605 %606 -%608 = OpAll %bool %607 -%609 = OpCompositeExtract %v3float %601 1 -%610 = OpCompositeExtract %v3float %604 1 -%611 = OpFOrdEqual %v3bool %609 %610 -%612 = OpAll %bool %611 -%613 = OpLogicalAnd %bool %608 %612 -OpBranch %600 -%600 = OpLabel -%614 = OpPhi %bool %false %567 %613 %599 -OpStore %_0_ok %614 -%615 = OpLoad %mat3v2float %_3_m32 -%616 = OpCompositeConstruct %v2float %float_2 %float_2 -%617 = OpCompositeConstruct %mat3v2float %616 %616 %616 -%618 = OpCompositeExtract %v2float %615 0 -%619 = OpCompositeExtract %v2float %617 0 -%620 = OpFSub %v2float %618 %619 -%621 = OpCompositeExtract %v2float %615 1 -%622 = OpCompositeExtract %v2float %617 1 -%623 = OpFSub %v2float %621 %622 -%624 = OpCompositeExtract %v2float %615 2 -%625 = OpCompositeExtract %v2float %617 2 -%626 = OpFSub %v2float %624 %625 -%627 = OpCompositeConstruct %mat3v2float %620 %623 %626 -OpStore %_3_m32 %627 -%628 = OpLoad %bool %_0_ok -OpSelectionMerge %630 None -OpBranchConditional %628 %629 %630 -%629 = OpLabel -%631 = OpLoad %mat3v2float %_3_m32 -%632 = OpCompositeConstruct %v2float %float_2 %float_n2 -%633 = OpCompositeConstruct %v2float %float_n2 %float_2 -%634 = OpCompositeConstruct %v2float %float_n2 %float_n2 -%635 = OpCompositeConstruct %mat3v2float %632 %633 %634 -%636 = OpCompositeExtract %v2float %631 0 -%637 = OpCompositeExtract %v2float %635 0 -%638 = OpFOrdEqual %v2bool %636 %637 -%639 = OpAll %bool %638 -%640 = OpCompositeExtract %v2float %631 1 -%641 = OpCompositeExtract %v2float %635 1 -%642 = OpFOrdEqual %v2bool %640 %641 -%643 = OpAll %bool %642 -%644 = OpLogicalAnd %bool %639 %643 -%645 = OpCompositeExtract %v2float %631 2 -%646 = OpCompositeExtract %v2float %635 2 -%647 = OpFOrdEqual %v2bool %645 %646 -%648 = OpAll %bool %647 -%649 = OpLogicalAnd %bool %644 %648 -OpBranch %630 -%630 = OpLabel -%650 = OpPhi %bool %false %600 %649 %629 -OpStore %_0_ok %650 -%651 = OpLoad %mat2v4float %_2_m24 -%652 = OpCompositeConstruct %v4float %float_4 %float_4 %float_4 %float_4 -%653 = OpCompositeConstruct %mat2v4float %652 %652 -%654 = OpCompositeExtract %v4float %651 0 -%655 = OpCompositeExtract %v4float %653 0 -%656 = OpFDiv %v4float %654 %655 -%657 = OpCompositeExtract %v4float %651 1 -%658 = OpCompositeExtract %v4float %653 1 -%659 = OpFDiv %v4float %657 %658 -%660 = OpCompositeConstruct %mat2v4float %656 %659 -OpStore %_2_m24 %660 -%661 = OpLoad %bool %_0_ok -OpSelectionMerge %663 None -OpBranchConditional %661 %662 %663 -%662 = OpLabel -%664 = OpLoad %mat2v4float %_2_m24 -%665 = OpCompositeConstruct %v4float %float_0_75 %float_0 %float_0 %float_0 -%666 = OpCompositeConstruct %v4float %float_0 %float_0_75 %float_0 %float_0 -%667 = OpCompositeConstruct %mat2v4float %665 %666 -%668 = OpCompositeExtract %v4float %664 0 -%669 = OpCompositeExtract %v4float %667 0 -%670 = OpFOrdEqual %v4bool %668 %669 -%671 = OpAll %bool %670 -%672 = OpCompositeExtract %v4float %664 1 -%673 = OpCompositeExtract %v4float %667 1 -%674 = OpFOrdEqual %v4bool %672 %673 -%675 = OpAll %bool %674 -%676 = OpLogicalAnd %bool %671 %675 -OpBranch %663 -%663 = OpLabel -%677 = OpPhi %bool %false %630 %676 %662 -OpStore %_0_ok %677 -%678 = OpLoad %bool %_0_ok -OpSelectionMerge %680 None -OpBranchConditional %678 %679 %680 -%679 = OpLabel -%681 = OpFunctionCall %bool %test_half_b -OpBranch %680 -%680 = OpLabel -%682 = OpPhi %bool %false %663 %681 %679 -OpSelectionMerge %687 None -OpBranchConditional %682 %685 %686 -%685 = OpLabel -%688 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%692 = OpLoad %v4float %688 -OpStore %683 %692 -OpBranch %687 -%686 = OpLabel -%693 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%695 = OpLoad %v4float %693 -OpStore %683 %695 -OpBranch %687 -%687 = OpLabel -%696 = OpLoad %v4float %683 -OpReturnValue %696 +%516 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 +%520 = OpLoad %v4float %516 +OpStore %511 %520 +OpBranch %515 +%514 = OpLabel +%521 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 +%523 = OpLoad %v4float %521 +OpStore %511 %523 +OpBranch %515 +%515 = OpLabel +%524 = OpLoad %v4float %511 +OpReturnValue %524 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/MatrixConstructorsES2.asm.frag b/third_party/skia/tests/sksl/shared/MatrixConstructorsES2.asm.frag index ef6437cf5e2f..5add957d3626 100644 --- a/third_party/skia/tests/sksl/shared/MatrixConstructorsES2.asm.frag +++ b/third_party/skia/tests/sksl/shared/MatrixConstructorsES2.asm.frag @@ -27,12 +27,12 @@ OpMemberDecorate %_UniformBuffer 2 MatrixStride 16 OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 -OpDecorate %68 RelaxedPrecision -OpDecorate %111 RelaxedPrecision +OpDecorate %66 RelaxedPrecision +OpDecorate %106 RelaxedPrecision +OpDecorate %154 RelaxedPrecision +OpDecorate %162 RelaxedPrecision +OpDecorate %165 RelaxedPrecision OpDecorate %166 RelaxedPrecision -OpDecorate %174 RelaxedPrecision -OpDecorate %177 RelaxedPrecision -OpDecorate %178 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -61,11 +61,20 @@ OpDecorate %178 RelaxedPrecision %float_1 = OpConstant %float 1 %float_2 = OpConstant %float 2 %float_3 = OpConstant %float 3 +%54 = OpConstantComposite %v2float %float_1 %float_2 +%55 = OpConstantComposite %v2float %float_3 %float_4 +%56 = OpConstantComposite %mat2v2float %54 %55 %v2bool = OpTypeVector %bool 2 %false = OpConstantFalse %bool %mat3v3float = OpTypeMatrix %v3float 3 +%89 = OpConstantComposite %v3float %float_1 %float_2 %float_3 +%90 = OpConstantComposite %v3float %float_4 %float_1 %float_2 +%91 = OpConstantComposite %v3float %float_3 %float_4 %float_1 +%92 = OpConstantComposite %mat3v3float %89 %90 %91 %v3bool = OpTypeVector %bool 3 %mat4v4float = OpTypeMatrix %v4float 4 +%135 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4 +%136 = OpConstantComposite %mat4v4float %135 %135 %135 %135 %v4bool = OpTypeVector %bool 4 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_0 = OpConstant %int 0 @@ -83,7 +92,7 @@ OpFunctionEnd %26 = OpLabel %f4 = OpVariable %_ptr_Function_v4float Function %ok = OpVariable %_ptr_Function_bool Function -%167 = OpVariable %_ptr_Function_v4float Function +%155 = OpVariable %_ptr_Function_v4float Function %29 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2 %33 = OpLoad %mat2v2float %29 %34 = OpCompositeExtract %float %33 0 0 @@ -100,135 +109,114 @@ OpStore %f4 %38 %48 = OpCompositeExtract %float %42 2 %49 = OpCompositeConstruct %v2float %48 %float_4 %50 = OpCompositeConstruct %mat2v2float %47 %49 -%54 = OpCompositeConstruct %v2float %float_1 %float_2 -%55 = OpCompositeConstruct %v2float %float_3 %float_4 -%56 = OpCompositeConstruct %mat2v2float %54 %55 %58 = OpCompositeExtract %v2float %50 0 -%59 = OpCompositeExtract %v2float %56 0 -%60 = OpFOrdEqual %v2bool %58 %59 -%61 = OpAll %bool %60 -%62 = OpCompositeExtract %v2float %50 1 -%63 = OpCompositeExtract %v2float %56 1 -%64 = OpFOrdEqual %v2bool %62 %63 -%65 = OpAll %bool %64 -%66 = OpLogicalAnd %bool %61 %65 -OpStore %ok %66 -%68 = OpLoad %bool %ok -OpSelectionMerge %70 None -OpBranchConditional %68 %69 %70 -%69 = OpLabel +%59 = OpFOrdEqual %v2bool %58 %54 +%60 = OpAll %bool %59 +%61 = OpCompositeExtract %v2float %50 1 +%62 = OpFOrdEqual %v2bool %61 %55 +%63 = OpAll %bool %62 +%64 = OpLogicalAnd %bool %60 %63 +OpStore %ok %64 +%66 = OpLoad %bool %ok +OpSelectionMerge %68 None +OpBranchConditional %66 %67 %68 +%67 = OpLabel +%69 = OpLoad %v4float %f4 +%70 = OpVectorShuffle %v2float %69 %69 0 1 %71 = OpLoad %v4float %f4 -%72 = OpVectorShuffle %v2float %71 %71 0 1 +%72 = OpVectorShuffle %v2float %71 %71 2 3 %73 = OpLoad %v4float %f4 -%74 = OpVectorShuffle %v2float %73 %73 2 3 -%75 = OpLoad %v4float %f4 -%76 = OpLoad %v4float %f4 -%77 = OpCompositeExtract %float %76 0 +%74 = OpLoad %v4float %f4 +%75 = OpCompositeExtract %float %74 0 +%76 = OpCompositeExtract %float %70 0 +%77 = OpCompositeExtract %float %70 1 %78 = OpCompositeExtract %float %72 0 -%79 = OpCompositeExtract %float %72 1 -%80 = OpCompositeExtract %float %74 0 -%81 = OpCompositeConstruct %v3float %78 %79 %80 -%82 = OpCompositeExtract %float %74 1 -%83 = OpCompositeExtract %float %75 0 -%84 = OpCompositeExtract %float %75 1 -%85 = OpCompositeConstruct %v3float %82 %83 %84 -%86 = OpCompositeExtract %float %75 2 -%87 = OpCompositeExtract %float %75 3 -%88 = OpCompositeConstruct %v3float %86 %87 %77 -%89 = OpCompositeConstruct %mat3v3float %81 %85 %88 -%91 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3 -%92 = OpCompositeConstruct %v3float %float_4 %float_1 %float_2 -%93 = OpCompositeConstruct %v3float %float_3 %float_4 %float_1 -%94 = OpCompositeConstruct %mat3v3float %91 %92 %93 -%96 = OpCompositeExtract %v3float %89 0 -%97 = OpCompositeExtract %v3float %94 0 -%98 = OpFOrdEqual %v3bool %96 %97 +%79 = OpCompositeConstruct %v3float %76 %77 %78 +%80 = OpCompositeExtract %float %72 1 +%81 = OpCompositeExtract %float %73 0 +%82 = OpCompositeExtract %float %73 1 +%83 = OpCompositeConstruct %v3float %80 %81 %82 +%84 = OpCompositeExtract %float %73 2 +%85 = OpCompositeExtract %float %73 3 +%86 = OpCompositeConstruct %v3float %84 %85 %75 +%88 = OpCompositeConstruct %mat3v3float %79 %83 %86 +%94 = OpCompositeExtract %v3float %88 0 +%95 = OpFOrdEqual %v3bool %94 %89 +%96 = OpAll %bool %95 +%97 = OpCompositeExtract %v3float %88 1 +%98 = OpFOrdEqual %v3bool %97 %90 %99 = OpAll %bool %98 -%100 = OpCompositeExtract %v3float %89 1 -%101 = OpCompositeExtract %v3float %94 1 -%102 = OpFOrdEqual %v3bool %100 %101 +%100 = OpLogicalAnd %bool %96 %99 +%101 = OpCompositeExtract %v3float %88 2 +%102 = OpFOrdEqual %v3bool %101 %91 %103 = OpAll %bool %102 -%104 = OpLogicalAnd %bool %99 %103 -%105 = OpCompositeExtract %v3float %89 2 -%106 = OpCompositeExtract %v3float %94 2 -%107 = OpFOrdEqual %v3bool %105 %106 -%108 = OpAll %bool %107 -%109 = OpLogicalAnd %bool %104 %108 -OpBranch %70 -%70 = OpLabel -%110 = OpPhi %bool %false %26 %109 %69 -OpStore %ok %110 -%111 = OpLoad %bool %ok -OpSelectionMerge %113 None -OpBranchConditional %111 %112 %113 -%112 = OpLabel -%114 = OpLoad %v4float %f4 -%115 = OpVectorShuffle %v3float %114 %114 0 1 2 -%116 = OpLoad %v4float %f4 -%117 = OpVectorShuffle %v3float %116 %116 3 0 1 -%118 = OpLoad %v4float %f4 -%119 = OpVectorShuffle %v4float %118 %118 2 3 0 1 -%120 = OpLoad %v4float %f4 -%121 = OpVectorShuffle %v2float %120 %120 2 3 -%122 = OpLoad %v4float %f4 -%123 = OpCompositeExtract %float %115 0 -%124 = OpCompositeExtract %float %115 1 -%125 = OpCompositeExtract %float %115 2 -%126 = OpCompositeExtract %float %117 0 +%104 = OpLogicalAnd %bool %100 %103 +OpBranch %68 +%68 = OpLabel +%105 = OpPhi %bool %false %26 %104 %67 +OpStore %ok %105 +%106 = OpLoad %bool %ok +OpSelectionMerge %108 None +OpBranchConditional %106 %107 %108 +%107 = OpLabel +%109 = OpLoad %v4float %f4 +%110 = OpVectorShuffle %v3float %109 %109 0 1 2 +%111 = OpLoad %v4float %f4 +%112 = OpVectorShuffle %v3float %111 %111 3 0 1 +%113 = OpLoad %v4float %f4 +%114 = OpVectorShuffle %v4float %113 %113 2 3 0 1 +%115 = OpLoad %v4float %f4 +%116 = OpVectorShuffle %v2float %115 %115 2 3 +%117 = OpLoad %v4float %f4 +%118 = OpCompositeExtract %float %110 0 +%119 = OpCompositeExtract %float %110 1 +%120 = OpCompositeExtract %float %110 2 +%121 = OpCompositeExtract %float %112 0 +%122 = OpCompositeConstruct %v4float %118 %119 %120 %121 +%123 = OpCompositeExtract %float %112 1 +%124 = OpCompositeExtract %float %112 2 +%125 = OpCompositeExtract %float %114 0 +%126 = OpCompositeExtract %float %114 1 %127 = OpCompositeConstruct %v4float %123 %124 %125 %126 -%128 = OpCompositeExtract %float %117 1 -%129 = OpCompositeExtract %float %117 2 -%130 = OpCompositeExtract %float %119 0 -%131 = OpCompositeExtract %float %119 1 +%128 = OpCompositeExtract %float %114 2 +%129 = OpCompositeExtract %float %114 3 +%130 = OpCompositeExtract %float %116 0 +%131 = OpCompositeExtract %float %116 1 %132 = OpCompositeConstruct %v4float %128 %129 %130 %131 -%133 = OpCompositeExtract %float %119 2 -%134 = OpCompositeExtract %float %119 3 -%135 = OpCompositeExtract %float %121 0 -%136 = OpCompositeExtract %float %121 1 -%137 = OpCompositeConstruct %v4float %133 %134 %135 %136 -%138 = OpCompositeConstruct %mat4v4float %127 %132 %137 %122 -%140 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4 -%141 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4 -%142 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4 -%143 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4 -%144 = OpCompositeConstruct %mat4v4float %140 %141 %142 %143 -%146 = OpCompositeExtract %v4float %138 0 -%147 = OpCompositeExtract %v4float %144 0 -%148 = OpFOrdEqual %v4bool %146 %147 -%149 = OpAll %bool %148 -%150 = OpCompositeExtract %v4float %138 1 -%151 = OpCompositeExtract %v4float %144 1 -%152 = OpFOrdEqual %v4bool %150 %151 -%153 = OpAll %bool %152 -%154 = OpLogicalAnd %bool %149 %153 -%155 = OpCompositeExtract %v4float %138 2 -%156 = OpCompositeExtract %v4float %144 2 -%157 = OpFOrdEqual %v4bool %155 %156 -%158 = OpAll %bool %157 -%159 = OpLogicalAnd %bool %154 %158 -%160 = OpCompositeExtract %v4float %138 3 -%161 = OpCompositeExtract %v4float %144 3 -%162 = OpFOrdEqual %v4bool %160 %161 -%163 = OpAll %bool %162 -%164 = OpLogicalAnd %bool %159 %163 -OpBranch %113 -%113 = OpLabel -%165 = OpPhi %bool %false %70 %164 %112 -OpStore %ok %165 -%166 = OpLoad %bool %ok -OpSelectionMerge %170 None -OpBranchConditional %166 %168 %169 -%168 = OpLabel -%171 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%174 = OpLoad %v4float %171 -OpStore %167 %174 -OpBranch %170 -%169 = OpLabel -%175 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%177 = OpLoad %v4float %175 -OpStore %167 %177 -OpBranch %170 -%170 = OpLabel -%178 = OpLoad %v4float %167 -OpReturnValue %178 +%134 = OpCompositeConstruct %mat4v4float %122 %127 %132 %117 +%138 = OpCompositeExtract %v4float %134 0 +%139 = OpFOrdEqual %v4bool %138 %135 +%140 = OpAll %bool %139 +%141 = OpCompositeExtract %v4float %134 1 +%142 = OpFOrdEqual %v4bool %141 %135 +%143 = OpAll %bool %142 +%144 = OpLogicalAnd %bool %140 %143 +%145 = OpCompositeExtract %v4float %134 2 +%146 = OpFOrdEqual %v4bool %145 %135 +%147 = OpAll %bool %146 +%148 = OpLogicalAnd %bool %144 %147 +%149 = OpCompositeExtract %v4float %134 3 +%150 = OpFOrdEqual %v4bool %149 %135 +%151 = OpAll %bool %150 +%152 = OpLogicalAnd %bool %148 %151 +OpBranch %108 +%108 = OpLabel +%153 = OpPhi %bool %false %68 %152 %107 +OpStore %ok %153 +%154 = OpLoad %bool %ok +OpSelectionMerge %158 None +OpBranchConditional %154 %156 %157 +%156 = OpLabel +%159 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%162 = OpLoad %v4float %159 +OpStore %155 %162 +OpBranch %158 +%157 = OpLabel +%163 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%165 = OpLoad %v4float %163 +OpStore %155 %165 +OpBranch %158 +%158 = OpLabel +%166 = OpLoad %v4float %155 +OpReturnValue %166 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/MatrixConstructorsES3.asm.frag b/third_party/skia/tests/sksl/shared/MatrixConstructorsES3.asm.frag index 079b6d0cfd8d..89e49927fb84 100644 --- a/third_party/skia/tests/sksl/shared/MatrixConstructorsES3.asm.frag +++ b/third_party/skia/tests/sksl/shared/MatrixConstructorsES3.asm.frag @@ -27,14 +27,14 @@ OpMemberDecorate %_UniformBuffer 2 MatrixStride 16 OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 -OpDecorate %73 RelaxedPrecision -OpDecorate %107 RelaxedPrecision -OpDecorate %149 RelaxedPrecision -OpDecorate %197 RelaxedPrecision -OpDecorate %246 RelaxedPrecision -OpDecorate %254 RelaxedPrecision -OpDecorate %257 RelaxedPrecision -OpDecorate %258 RelaxedPrecision +OpDecorate %71 RelaxedPrecision +OpDecorate %102 RelaxedPrecision +OpDecorate %139 RelaxedPrecision +OpDecorate %181 RelaxedPrecision +OpDecorate %223 RelaxedPrecision +OpDecorate %231 RelaxedPrecision +OpDecorate %234 RelaxedPrecision +OpDecorate %235 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -64,14 +64,26 @@ OpDecorate %258 RelaxedPrecision %float_2 = OpConstant %float 2 %float_3 = OpConstant %float 3 %float_4 = OpConstant %float 4 +%59 = OpConstantComposite %v3float %float_1 %float_2 %float_3 +%60 = OpConstantComposite %v3float %float_4 %float_1 %float_2 +%61 = OpConstantComposite %mat2v3float %59 %60 %v3bool = OpTypeVector %bool 3 %false = OpConstantFalse %bool %mat2v4float = OpTypeMatrix %v4float 2 +%91 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4 +%92 = OpConstantComposite %mat2v4float %91 %91 %v4bool = OpTypeVector %bool 4 %mat3v3float = OpTypeMatrix %v3float 3 +%125 = OpConstantComposite %v3float %float_3 %float_4 %float_1 +%126 = OpConstantComposite %mat3v3float %59 %60 %125 %mat4v2float = OpTypeMatrix %v2float 4 +%161 = OpConstantComposite %v2float %float_1 %float_2 +%162 = OpConstantComposite %v2float %float_3 %float_4 +%163 = OpConstantComposite %mat4v2float %161 %162 %161 %162 %v2bool = OpTypeVector %bool 2 %mat4v3float = OpTypeMatrix %v3float 4 +%205 = OpConstantComposite %v3float %float_2 %float_3 %float_4 +%206 = OpConstantComposite %mat4v3float %59 %60 %125 %205 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 @@ -88,7 +100,7 @@ OpFunctionEnd %26 = OpLabel %f4 = OpVariable %_ptr_Function_v4float Function %ok = OpVariable %_ptr_Function_bool Function -%247 = OpVariable %_ptr_Function_v4float Function +%224 = OpVariable %_ptr_Function_v4float Function %29 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2 %33 = OpLoad %mat2v2float %29 %34 = OpCompositeExtract %float %33 0 0 @@ -103,222 +115,187 @@ OpStore %f4 %38 %44 = OpCompositeExtract %float %41 0 %45 = OpCompositeExtract %float %41 1 %46 = OpCompositeExtract %float %41 2 -%47 = OpCompositeConstruct %v3float %44 %45 %46 +%48 = OpCompositeConstruct %v3float %44 %45 %46 %49 = OpCompositeExtract %float %41 3 %50 = OpCompositeExtract %float %43 0 %51 = OpCompositeExtract %float %43 1 %52 = OpCompositeConstruct %v3float %49 %50 %51 -%53 = OpCompositeConstruct %mat2v3float %47 %52 -%59 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3 -%60 = OpCompositeConstruct %v3float %float_4 %float_1 %float_2 -%61 = OpCompositeConstruct %mat2v3float %59 %60 -%63 = OpCompositeExtract %v3float %53 0 -%64 = OpCompositeExtract %v3float %61 0 -%65 = OpFOrdEqual %v3bool %63 %64 -%66 = OpAll %bool %65 -%67 = OpCompositeExtract %v3float %53 1 -%68 = OpCompositeExtract %v3float %61 1 -%69 = OpFOrdEqual %v3bool %67 %68 -%70 = OpAll %bool %69 -%71 = OpLogicalAnd %bool %66 %70 -OpStore %ok %71 -%73 = OpLoad %bool %ok -OpSelectionMerge %75 None -OpBranchConditional %73 %74 %75 -%74 = OpLabel +%54 = OpCompositeConstruct %mat2v3float %48 %52 +%63 = OpCompositeExtract %v3float %54 0 +%64 = OpFOrdEqual %v3bool %63 %59 +%65 = OpAll %bool %64 +%66 = OpCompositeExtract %v3float %54 1 +%67 = OpFOrdEqual %v3bool %66 %60 +%68 = OpAll %bool %67 +%69 = OpLogicalAnd %bool %65 %68 +OpStore %ok %69 +%71 = OpLoad %bool %ok +OpSelectionMerge %73 None +OpBranchConditional %71 %72 %73 +%72 = OpLabel +%74 = OpLoad %v4float %f4 +%75 = OpVectorShuffle %v3float %74 %74 0 1 2 %76 = OpLoad %v4float %f4 -%77 = OpVectorShuffle %v3float %76 %76 0 1 2 +%77 = OpVectorShuffle %v4float %76 %76 3 0 1 2 %78 = OpLoad %v4float %f4 -%79 = OpVectorShuffle %v4float %78 %78 3 0 1 2 -%80 = OpLoad %v4float %f4 -%81 = OpCompositeExtract %float %80 3 -%82 = OpCompositeExtract %float %77 0 -%83 = OpCompositeExtract %float %77 1 -%84 = OpCompositeExtract %float %77 2 -%85 = OpCompositeExtract %float %79 0 -%86 = OpCompositeConstruct %v4float %82 %83 %84 %85 -%87 = OpCompositeExtract %float %79 1 -%88 = OpCompositeExtract %float %79 2 -%89 = OpCompositeExtract %float %79 3 -%90 = OpCompositeConstruct %v4float %87 %88 %89 %81 -%91 = OpCompositeConstruct %mat2v4float %86 %90 -%93 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4 -%94 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4 -%95 = OpCompositeConstruct %mat2v4float %93 %94 -%97 = OpCompositeExtract %v4float %91 0 -%98 = OpCompositeExtract %v4float %95 0 -%99 = OpFOrdEqual %v4bool %97 %98 -%100 = OpAll %bool %99 -%101 = OpCompositeExtract %v4float %91 1 -%102 = OpCompositeExtract %v4float %95 1 -%103 = OpFOrdEqual %v4bool %101 %102 -%104 = OpAll %bool %103 -%105 = OpLogicalAnd %bool %100 %104 -OpBranch %75 -%75 = OpLabel -%106 = OpPhi %bool %false %26 %105 %74 -OpStore %ok %106 -%107 = OpLoad %bool %ok -OpSelectionMerge %109 None -OpBranchConditional %107 %108 %109 -%108 = OpLabel +%79 = OpCompositeExtract %float %78 3 +%80 = OpCompositeExtract %float %75 0 +%81 = OpCompositeExtract %float %75 1 +%82 = OpCompositeExtract %float %75 2 +%83 = OpCompositeExtract %float %77 0 +%84 = OpCompositeConstruct %v4float %80 %81 %82 %83 +%85 = OpCompositeExtract %float %77 1 +%86 = OpCompositeExtract %float %77 2 +%87 = OpCompositeExtract %float %77 3 +%88 = OpCompositeConstruct %v4float %85 %86 %87 %79 +%90 = OpCompositeConstruct %mat2v4float %84 %88 +%94 = OpCompositeExtract %v4float %90 0 +%95 = OpFOrdEqual %v4bool %94 %91 +%96 = OpAll %bool %95 +%97 = OpCompositeExtract %v4float %90 1 +%98 = OpFOrdEqual %v4bool %97 %91 +%99 = OpAll %bool %98 +%100 = OpLogicalAnd %bool %96 %99 +OpBranch %73 +%73 = OpLabel +%101 = OpPhi %bool %false %26 %100 %72 +OpStore %ok %101 +%102 = OpLoad %bool %ok +OpSelectionMerge %104 None +OpBranchConditional %102 %103 %104 +%103 = OpLabel +%105 = OpLoad %v4float %f4 +%106 = OpVectorShuffle %v2float %105 %105 0 1 +%107 = OpLoad %v4float %f4 +%108 = OpVectorShuffle %v2float %107 %107 2 3 +%109 = OpLoad %v4float %f4 %110 = OpLoad %v4float %f4 -%111 = OpVectorShuffle %v2float %110 %110 0 1 -%112 = OpLoad %v4float %f4 -%113 = OpVectorShuffle %v2float %112 %112 2 3 -%114 = OpLoad %v4float %f4 -%115 = OpLoad %v4float %f4 -%116 = OpCompositeExtract %float %115 0 -%117 = OpCompositeExtract %float %111 0 -%118 = OpCompositeExtract %float %111 1 -%119 = OpCompositeExtract %float %113 0 -%120 = OpCompositeConstruct %v3float %117 %118 %119 -%121 = OpCompositeExtract %float %113 1 -%122 = OpCompositeExtract %float %114 0 -%123 = OpCompositeExtract %float %114 1 -%124 = OpCompositeConstruct %v3float %121 %122 %123 -%125 = OpCompositeExtract %float %114 2 -%126 = OpCompositeExtract %float %114 3 -%127 = OpCompositeConstruct %v3float %125 %126 %116 -%128 = OpCompositeConstruct %mat3v3float %120 %124 %127 -%130 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3 -%131 = OpCompositeConstruct %v3float %float_4 %float_1 %float_2 -%132 = OpCompositeConstruct %v3float %float_3 %float_4 %float_1 -%133 = OpCompositeConstruct %mat3v3float %130 %131 %132 -%134 = OpCompositeExtract %v3float %128 0 -%135 = OpCompositeExtract %v3float %133 0 -%136 = OpFOrdEqual %v3bool %134 %135 -%137 = OpAll %bool %136 -%138 = OpCompositeExtract %v3float %128 1 -%139 = OpCompositeExtract %v3float %133 1 -%140 = OpFOrdEqual %v3bool %138 %139 -%141 = OpAll %bool %140 -%142 = OpLogicalAnd %bool %137 %141 -%143 = OpCompositeExtract %v3float %128 2 -%144 = OpCompositeExtract %v3float %133 2 -%145 = OpFOrdEqual %v3bool %143 %144 -%146 = OpAll %bool %145 -%147 = OpLogicalAnd %bool %142 %146 -OpBranch %109 -%109 = OpLabel -%148 = OpPhi %bool %false %75 %147 %108 -OpStore %ok %148 -%149 = OpLoad %bool %ok -OpSelectionMerge %151 None -OpBranchConditional %149 %150 %151 -%150 = OpLabel -%152 = OpLoad %v4float %f4 -%153 = OpVectorShuffle %v3float %152 %152 0 1 2 -%154 = OpLoad %v4float %f4 -%155 = OpVectorShuffle %v4float %154 %154 3 0 1 2 -%156 = OpLoad %v4float %f4 -%157 = OpCompositeExtract %float %156 3 -%158 = OpCompositeExtract %float %153 0 -%159 = OpCompositeExtract %float %153 1 -%160 = OpCompositeConstruct %v2float %158 %159 -%161 = OpCompositeExtract %float %153 2 -%162 = OpCompositeExtract %float %155 0 -%163 = OpCompositeConstruct %v2float %161 %162 -%164 = OpCompositeExtract %float %155 1 -%165 = OpCompositeExtract %float %155 2 -%166 = OpCompositeConstruct %v2float %164 %165 -%167 = OpCompositeExtract %float %155 3 -%168 = OpCompositeConstruct %v2float %167 %157 -%169 = OpCompositeConstruct %mat4v2float %160 %163 %166 %168 -%171 = OpCompositeConstruct %v2float %float_1 %float_2 -%172 = OpCompositeConstruct %v2float %float_3 %float_4 -%173 = OpCompositeConstruct %v2float %float_1 %float_2 -%174 = OpCompositeConstruct %v2float %float_3 %float_4 -%175 = OpCompositeConstruct %mat4v2float %171 %172 %173 %174 -%177 = OpCompositeExtract %v2float %169 0 -%178 = OpCompositeExtract %v2float %175 0 -%179 = OpFOrdEqual %v2bool %177 %178 -%180 = OpAll %bool %179 -%181 = OpCompositeExtract %v2float %169 1 -%182 = OpCompositeExtract %v2float %175 1 -%183 = OpFOrdEqual %v2bool %181 %182 -%184 = OpAll %bool %183 -%185 = OpLogicalAnd %bool %180 %184 -%186 = OpCompositeExtract %v2float %169 2 -%187 = OpCompositeExtract %v2float %175 2 -%188 = OpFOrdEqual %v2bool %186 %187 -%189 = OpAll %bool %188 -%190 = OpLogicalAnd %bool %185 %189 -%191 = OpCompositeExtract %v2float %169 3 -%192 = OpCompositeExtract %v2float %175 3 -%193 = OpFOrdEqual %v2bool %191 %192 -%194 = OpAll %bool %193 -%195 = OpLogicalAnd %bool %190 %194 -OpBranch %151 -%151 = OpLabel -%196 = OpPhi %bool %false %109 %195 %150 -OpStore %ok %196 -%197 = OpLoad %bool %ok -OpSelectionMerge %199 None -OpBranchConditional %197 %198 %199 -%198 = OpLabel -%200 = OpLoad %v4float %f4 -%201 = OpCompositeExtract %float %200 0 -%202 = OpLoad %v4float %f4 -%203 = OpVectorShuffle %v4float %202 %202 1 2 3 0 -%204 = OpLoad %v4float %f4 -%205 = OpVectorShuffle %v4float %204 %204 1 2 3 0 -%206 = OpLoad %v4float %f4 -%207 = OpVectorShuffle %v3float %206 %206 1 2 3 -%208 = OpCompositeExtract %float %203 0 -%209 = OpCompositeExtract %float %203 1 -%210 = OpCompositeConstruct %v3float %201 %208 %209 -%211 = OpCompositeExtract %float %203 2 -%212 = OpCompositeExtract %float %203 3 -%213 = OpCompositeExtract %float %205 0 -%214 = OpCompositeConstruct %v3float %211 %212 %213 -%215 = OpCompositeExtract %float %205 1 -%216 = OpCompositeExtract %float %205 2 -%217 = OpCompositeExtract %float %205 3 -%218 = OpCompositeConstruct %v3float %215 %216 %217 -%219 = OpCompositeConstruct %mat4v3float %210 %214 %218 %207 -%221 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3 -%222 = OpCompositeConstruct %v3float %float_4 %float_1 %float_2 -%223 = OpCompositeConstruct %v3float %float_3 %float_4 %float_1 -%224 = OpCompositeConstruct %v3float %float_2 %float_3 %float_4 -%225 = OpCompositeConstruct %mat4v3float %221 %222 %223 %224 -%226 = OpCompositeExtract %v3float %219 0 -%227 = OpCompositeExtract %v3float %225 0 -%228 = OpFOrdEqual %v3bool %226 %227 -%229 = OpAll %bool %228 -%230 = OpCompositeExtract %v3float %219 1 -%231 = OpCompositeExtract %v3float %225 1 -%232 = OpFOrdEqual %v3bool %230 %231 -%233 = OpAll %bool %232 -%234 = OpLogicalAnd %bool %229 %233 -%235 = OpCompositeExtract %v3float %219 2 -%236 = OpCompositeExtract %v3float %225 2 -%237 = OpFOrdEqual %v3bool %235 %236 -%238 = OpAll %bool %237 -%239 = OpLogicalAnd %bool %234 %238 -%240 = OpCompositeExtract %v3float %219 3 -%241 = OpCompositeExtract %v3float %225 3 -%242 = OpFOrdEqual %v3bool %240 %241 -%243 = OpAll %bool %242 -%244 = OpLogicalAnd %bool %239 %243 -OpBranch %199 -%199 = OpLabel -%245 = OpPhi %bool %false %151 %244 %198 -OpStore %ok %245 -%246 = OpLoad %bool %ok -OpSelectionMerge %250 None -OpBranchConditional %246 %248 %249 -%248 = OpLabel -%251 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%254 = OpLoad %v4float %251 -OpStore %247 %254 -OpBranch %250 -%249 = OpLabel -%255 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%257 = OpLoad %v4float %255 -OpStore %247 %257 -OpBranch %250 -%250 = OpLabel -%258 = OpLoad %v4float %247 -OpReturnValue %258 +%111 = OpCompositeExtract %float %110 0 +%112 = OpCompositeExtract %float %106 0 +%113 = OpCompositeExtract %float %106 1 +%114 = OpCompositeExtract %float %108 0 +%115 = OpCompositeConstruct %v3float %112 %113 %114 +%116 = OpCompositeExtract %float %108 1 +%117 = OpCompositeExtract %float %109 0 +%118 = OpCompositeExtract %float %109 1 +%119 = OpCompositeConstruct %v3float %116 %117 %118 +%120 = OpCompositeExtract %float %109 2 +%121 = OpCompositeExtract %float %109 3 +%122 = OpCompositeConstruct %v3float %120 %121 %111 +%124 = OpCompositeConstruct %mat3v3float %115 %119 %122 +%127 = OpCompositeExtract %v3float %124 0 +%128 = OpFOrdEqual %v3bool %127 %59 +%129 = OpAll %bool %128 +%130 = OpCompositeExtract %v3float %124 1 +%131 = OpFOrdEqual %v3bool %130 %60 +%132 = OpAll %bool %131 +%133 = OpLogicalAnd %bool %129 %132 +%134 = OpCompositeExtract %v3float %124 2 +%135 = OpFOrdEqual %v3bool %134 %125 +%136 = OpAll %bool %135 +%137 = OpLogicalAnd %bool %133 %136 +OpBranch %104 +%104 = OpLabel +%138 = OpPhi %bool %false %73 %137 %103 +OpStore %ok %138 +%139 = OpLoad %bool %ok +OpSelectionMerge %141 None +OpBranchConditional %139 %140 %141 +%140 = OpLabel +%142 = OpLoad %v4float %f4 +%143 = OpVectorShuffle %v3float %142 %142 0 1 2 +%144 = OpLoad %v4float %f4 +%145 = OpVectorShuffle %v4float %144 %144 3 0 1 2 +%146 = OpLoad %v4float %f4 +%147 = OpCompositeExtract %float %146 3 +%148 = OpCompositeExtract %float %143 0 +%149 = OpCompositeExtract %float %143 1 +%150 = OpCompositeConstruct %v2float %148 %149 +%151 = OpCompositeExtract %float %143 2 +%152 = OpCompositeExtract %float %145 0 +%153 = OpCompositeConstruct %v2float %151 %152 +%154 = OpCompositeExtract %float %145 1 +%155 = OpCompositeExtract %float %145 2 +%156 = OpCompositeConstruct %v2float %154 %155 +%157 = OpCompositeExtract %float %145 3 +%158 = OpCompositeConstruct %v2float %157 %147 +%160 = OpCompositeConstruct %mat4v2float %150 %153 %156 %158 +%165 = OpCompositeExtract %v2float %160 0 +%166 = OpFOrdEqual %v2bool %165 %161 +%167 = OpAll %bool %166 +%168 = OpCompositeExtract %v2float %160 1 +%169 = OpFOrdEqual %v2bool %168 %162 +%170 = OpAll %bool %169 +%171 = OpLogicalAnd %bool %167 %170 +%172 = OpCompositeExtract %v2float %160 2 +%173 = OpFOrdEqual %v2bool %172 %161 +%174 = OpAll %bool %173 +%175 = OpLogicalAnd %bool %171 %174 +%176 = OpCompositeExtract %v2float %160 3 +%177 = OpFOrdEqual %v2bool %176 %162 +%178 = OpAll %bool %177 +%179 = OpLogicalAnd %bool %175 %178 +OpBranch %141 +%141 = OpLabel +%180 = OpPhi %bool %false %104 %179 %140 +OpStore %ok %180 +%181 = OpLoad %bool %ok +OpSelectionMerge %183 None +OpBranchConditional %181 %182 %183 +%182 = OpLabel +%184 = OpLoad %v4float %f4 +%185 = OpCompositeExtract %float %184 0 +%186 = OpLoad %v4float %f4 +%187 = OpVectorShuffle %v4float %186 %186 1 2 3 0 +%188 = OpLoad %v4float %f4 +%189 = OpVectorShuffle %v4float %188 %188 1 2 3 0 +%190 = OpLoad %v4float %f4 +%191 = OpVectorShuffle %v3float %190 %190 1 2 3 +%192 = OpCompositeExtract %float %187 0 +%193 = OpCompositeExtract %float %187 1 +%194 = OpCompositeConstruct %v3float %185 %192 %193 +%195 = OpCompositeExtract %float %187 2 +%196 = OpCompositeExtract %float %187 3 +%197 = OpCompositeExtract %float %189 0 +%198 = OpCompositeConstruct %v3float %195 %196 %197 +%199 = OpCompositeExtract %float %189 1 +%200 = OpCompositeExtract %float %189 2 +%201 = OpCompositeExtract %float %189 3 +%202 = OpCompositeConstruct %v3float %199 %200 %201 +%204 = OpCompositeConstruct %mat4v3float %194 %198 %202 %191 +%207 = OpCompositeExtract %v3float %204 0 +%208 = OpFOrdEqual %v3bool %207 %59 +%209 = OpAll %bool %208 +%210 = OpCompositeExtract %v3float %204 1 +%211 = OpFOrdEqual %v3bool %210 %60 +%212 = OpAll %bool %211 +%213 = OpLogicalAnd %bool %209 %212 +%214 = OpCompositeExtract %v3float %204 2 +%215 = OpFOrdEqual %v3bool %214 %125 +%216 = OpAll %bool %215 +%217 = OpLogicalAnd %bool %213 %216 +%218 = OpCompositeExtract %v3float %204 3 +%219 = OpFOrdEqual %v3bool %218 %205 +%220 = OpAll %bool %219 +%221 = OpLogicalAnd %bool %217 %220 +OpBranch %183 +%183 = OpLabel +%222 = OpPhi %bool %false %141 %221 %182 +OpStore %ok %222 +%223 = OpLoad %bool %ok +OpSelectionMerge %227 None +OpBranchConditional %223 %225 %226 +%225 = OpLabel +%228 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%231 = OpLoad %v4float %228 +OpStore %224 %231 +OpBranch %227 +%226 = OpLabel +%232 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%234 = OpLoad %v4float %232 +OpStore %224 %234 +OpBranch %227 +%227 = OpLabel +%235 = OpLoad %v4float %224 +OpReturnValue %235 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/MatrixEquality.asm.frag b/third_party/skia/tests/sksl/shared/MatrixEquality.asm.frag index d0ac7a3a06e4..1bc696e38e19 100644 --- a/third_party/skia/tests/sksl/shared/MatrixEquality.asm.frag +++ b/third_party/skia/tests/sksl/shared/MatrixEquality.asm.frag @@ -34,30 +34,16 @@ OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 OpDecorate %33 RelaxedPrecision OpDecorate %40 RelaxedPrecision -OpDecorate %45 RelaxedPrecision -OpDecorate %46 RelaxedPrecision -OpDecorate %47 RelaxedPrecision -OpDecorate %59 RelaxedPrecision -OpDecorate %65 RelaxedPrecision -OpDecorate %71 RelaxedPrecision -OpDecorate %72 RelaxedPrecision -OpDecorate %73 RelaxedPrecision -OpDecorate %74 RelaxedPrecision -OpDecorate %91 RelaxedPrecision -OpDecorate %95 RelaxedPrecision -OpDecorate %97 RelaxedPrecision -OpDecorate %98 RelaxedPrecision -OpDecorate %99 RelaxedPrecision -OpDecorate %110 RelaxedPrecision -OpDecorate %114 RelaxedPrecision -OpDecorate %115 RelaxedPrecision -OpDecorate %116 RelaxedPrecision -OpDecorate %117 RelaxedPrecision -OpDecorate %118 RelaxedPrecision -OpDecorate %134 RelaxedPrecision -OpDecorate %143 RelaxedPrecision -OpDecorate %146 RelaxedPrecision -OpDecorate %147 RelaxedPrecision +OpDecorate %57 RelaxedPrecision +OpDecorate %63 RelaxedPrecision +OpDecorate %86 RelaxedPrecision +OpDecorate %90 RelaxedPrecision +OpDecorate %103 RelaxedPrecision +OpDecorate %107 RelaxedPrecision +OpDecorate %124 RelaxedPrecision +OpDecorate %133 RelaxedPrecision +OpDecorate %136 RelaxedPrecision +OpDecorate %137 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -88,6 +74,9 @@ OpDecorate %147 RelaxedPrecision %float_2 = OpConstant %float 2 %float_3 = OpConstant %float 3 %float_4 = OpConstant %float 4 +%45 = OpConstantComposite %v2float %float_1 %float_2 +%46 = OpConstantComposite %v2float %float_3 %float_4 +%47 = OpConstantComposite %mat2v2float %45 %46 %v2bool = OpTypeVector %bool 2 %_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float %int_3 = OpConstant %int 3 @@ -96,8 +85,19 @@ OpDecorate %147 RelaxedPrecision %float_7 = OpConstant %float 7 %float_8 = OpConstant %float 8 %float_9 = OpConstant %float 9 +%69 = OpConstantComposite %v3float %float_1 %float_2 %float_3 +%70 = OpConstantComposite %v3float %float_4 %float_5 %float_6 +%71 = OpConstantComposite %v3float %float_7 %float_8 %float_9 +%72 = OpConstantComposite %mat3v3float %69 %70 %71 %v3bool = OpTypeVector %bool 3 %float_100 = OpConstant %float 100 +%92 = OpConstantComposite %v2float %float_100 %float_0 +%93 = OpConstantComposite %v2float %float_0 %float_100 +%94 = OpConstantComposite %mat2v2float %92 %93 +%108 = OpConstantComposite %v3float %float_9 %float_8 %float_7 +%109 = OpConstantComposite %v3float %float_6 %float_5 %float_4 +%110 = OpConstantComposite %v3float %float_3 %float_2 %float_1 +%111 = OpConstantComposite %mat3v3float %108 %109 %110 %_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_0 = OpConstant %int 0 @@ -114,7 +114,7 @@ OpFunctionEnd %27 = OpFunctionParameter %_ptr_Function_v2float %28 = OpLabel %_0_ok = OpVariable %_ptr_Function_bool Function -%135 = OpVariable %_ptr_Function_v4float Function +%125 = OpVariable %_ptr_Function_v4float Function OpStore %_0_ok %true %33 = OpLoad %bool %_0_ok OpSelectionMerge %35 None @@ -122,114 +122,90 @@ OpBranchConditional %33 %34 %35 %34 = OpLabel %36 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2 %40 = OpLoad %mat2v2float %36 -%45 = OpCompositeConstruct %v2float %float_1 %float_2 -%46 = OpCompositeConstruct %v2float %float_3 %float_4 -%47 = OpCompositeConstruct %mat2v2float %45 %46 %49 = OpCompositeExtract %v2float %40 0 -%50 = OpCompositeExtract %v2float %47 0 -%51 = OpFOrdEqual %v2bool %49 %50 -%52 = OpAll %bool %51 -%53 = OpCompositeExtract %v2float %40 1 -%54 = OpCompositeExtract %v2float %47 1 -%55 = OpFOrdEqual %v2bool %53 %54 -%56 = OpAll %bool %55 -%57 = OpLogicalAnd %bool %52 %56 +%50 = OpFOrdEqual %v2bool %49 %45 +%51 = OpAll %bool %50 +%52 = OpCompositeExtract %v2float %40 1 +%53 = OpFOrdEqual %v2bool %52 %46 +%54 = OpAll %bool %53 +%55 = OpLogicalAnd %bool %51 %54 OpBranch %35 %35 = OpLabel -%58 = OpPhi %bool %false %28 %57 %34 -OpStore %_0_ok %58 -%59 = OpLoad %bool %_0_ok -OpSelectionMerge %61 None -OpBranchConditional %59 %60 %61 -%60 = OpLabel -%62 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 -%65 = OpLoad %mat3v3float %62 -%71 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3 -%72 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6 -%73 = OpCompositeConstruct %v3float %float_7 %float_8 %float_9 -%74 = OpCompositeConstruct %mat3v3float %71 %72 %73 -%76 = OpCompositeExtract %v3float %65 0 -%77 = OpCompositeExtract %v3float %74 0 -%78 = OpFOrdEqual %v3bool %76 %77 +%56 = OpPhi %bool %false %28 %55 %34 +OpStore %_0_ok %56 +%57 = OpLoad %bool %_0_ok +OpSelectionMerge %59 None +OpBranchConditional %57 %58 %59 +%58 = OpLabel +%60 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 +%63 = OpLoad %mat3v3float %60 +%74 = OpCompositeExtract %v3float %63 0 +%75 = OpFOrdEqual %v3bool %74 %69 +%76 = OpAll %bool %75 +%77 = OpCompositeExtract %v3float %63 1 +%78 = OpFOrdEqual %v3bool %77 %70 %79 = OpAll %bool %78 -%80 = OpCompositeExtract %v3float %65 1 -%81 = OpCompositeExtract %v3float %74 1 -%82 = OpFOrdEqual %v3bool %80 %81 +%80 = OpLogicalAnd %bool %76 %79 +%81 = OpCompositeExtract %v3float %63 2 +%82 = OpFOrdEqual %v3bool %81 %71 %83 = OpAll %bool %82 -%84 = OpLogicalAnd %bool %79 %83 -%85 = OpCompositeExtract %v3float %65 2 -%86 = OpCompositeExtract %v3float %74 2 -%87 = OpFOrdEqual %v3bool %85 %86 -%88 = OpAll %bool %87 -%89 = OpLogicalAnd %bool %84 %88 -OpBranch %61 -%61 = OpLabel -%90 = OpPhi %bool %false %35 %89 %60 -OpStore %_0_ok %90 -%91 = OpLoad %bool %_0_ok -OpSelectionMerge %93 None -OpBranchConditional %91 %92 %93 -%92 = OpLabel -%94 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2 -%95 = OpLoad %mat2v2float %94 -%98 = OpCompositeConstruct %v2float %float_100 %float_0 -%99 = OpCompositeConstruct %v2float %float_0 %float_100 -%97 = OpCompositeConstruct %mat2v2float %98 %99 -%100 = OpCompositeExtract %v2float %95 0 -%101 = OpCompositeExtract %v2float %97 0 -%102 = OpFOrdNotEqual %v2bool %100 %101 -%103 = OpAny %bool %102 -%104 = OpCompositeExtract %v2float %95 1 -%105 = OpCompositeExtract %v2float %97 1 -%106 = OpFOrdNotEqual %v2bool %104 %105 -%107 = OpAny %bool %106 -%108 = OpLogicalOr %bool %103 %107 -OpBranch %93 -%93 = OpLabel -%109 = OpPhi %bool %false %61 %108 %92 -OpStore %_0_ok %109 -%110 = OpLoad %bool %_0_ok -OpSelectionMerge %112 None -OpBranchConditional %110 %111 %112 -%111 = OpLabel -%113 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 -%114 = OpLoad %mat3v3float %113 -%115 = OpCompositeConstruct %v3float %float_9 %float_8 %float_7 -%116 = OpCompositeConstruct %v3float %float_6 %float_5 %float_4 -%117 = OpCompositeConstruct %v3float %float_3 %float_2 %float_1 -%118 = OpCompositeConstruct %mat3v3float %115 %116 %117 -%119 = OpCompositeExtract %v3float %114 0 -%120 = OpCompositeExtract %v3float %118 0 -%121 = OpFOrdNotEqual %v3bool %119 %120 -%122 = OpAny %bool %121 -%123 = OpCompositeExtract %v3float %114 1 -%124 = OpCompositeExtract %v3float %118 1 -%125 = OpFOrdNotEqual %v3bool %123 %124 -%126 = OpAny %bool %125 -%127 = OpLogicalOr %bool %122 %126 -%128 = OpCompositeExtract %v3float %114 2 -%129 = OpCompositeExtract %v3float %118 2 -%130 = OpFOrdNotEqual %v3bool %128 %129 -%131 = OpAny %bool %130 -%132 = OpLogicalOr %bool %127 %131 -OpBranch %112 -%112 = OpLabel -%133 = OpPhi %bool %false %93 %132 %111 -OpStore %_0_ok %133 -%134 = OpLoad %bool %_0_ok -OpSelectionMerge %139 None -OpBranchConditional %134 %137 %138 -%137 = OpLabel -%140 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%143 = OpLoad %v4float %140 -OpStore %135 %143 -OpBranch %139 -%138 = OpLabel -%144 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%146 = OpLoad %v4float %144 -OpStore %135 %146 -OpBranch %139 -%139 = OpLabel -%147 = OpLoad %v4float %135 -OpReturnValue %147 +%84 = OpLogicalAnd %bool %80 %83 +OpBranch %59 +%59 = OpLabel +%85 = OpPhi %bool %false %35 %84 %58 +OpStore %_0_ok %85 +%86 = OpLoad %bool %_0_ok +OpSelectionMerge %88 None +OpBranchConditional %86 %87 %88 +%87 = OpLabel +%89 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2 +%90 = OpLoad %mat2v2float %89 +%95 = OpCompositeExtract %v2float %90 0 +%96 = OpFUnordNotEqual %v2bool %95 %92 +%97 = OpAny %bool %96 +%98 = OpCompositeExtract %v2float %90 1 +%99 = OpFUnordNotEqual %v2bool %98 %93 +%100 = OpAny %bool %99 +%101 = OpLogicalOr %bool %97 %100 +OpBranch %88 +%88 = OpLabel +%102 = OpPhi %bool %false %59 %101 %87 +OpStore %_0_ok %102 +%103 = OpLoad %bool %_0_ok +OpSelectionMerge %105 None +OpBranchConditional %103 %104 %105 +%104 = OpLabel +%106 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3 +%107 = OpLoad %mat3v3float %106 +%112 = OpCompositeExtract %v3float %107 0 +%113 = OpFUnordNotEqual %v3bool %112 %108 +%114 = OpAny %bool %113 +%115 = OpCompositeExtract %v3float %107 1 +%116 = OpFUnordNotEqual %v3bool %115 %109 +%117 = OpAny %bool %116 +%118 = OpLogicalOr %bool %114 %117 +%119 = OpCompositeExtract %v3float %107 2 +%120 = OpFUnordNotEqual %v3bool %119 %110 +%121 = OpAny %bool %120 +%122 = OpLogicalOr %bool %118 %121 +OpBranch %105 +%105 = OpLabel +%123 = OpPhi %bool %false %88 %122 %104 +OpStore %_0_ok %123 +%124 = OpLoad %bool %_0_ok +OpSelectionMerge %129 None +OpBranchConditional %124 %127 %128 +%127 = OpLabel +%130 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%133 = OpLoad %v4float %130 +OpStore %125 %133 +OpBranch %129 +%128 = OpLabel +%134 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%136 = OpLoad %v4float %134 +OpStore %125 %136 +OpBranch %129 +%129 = OpLabel +%137 = OpLoad %v4float %125 +OpReturnValue %137 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/MatrixScalarMath.asm.frag b/third_party/skia/tests/sksl/shared/MatrixScalarMath.asm.frag index cc3da395035b..0971de54c2f8 100644 --- a/third_party/skia/tests/sksl/shared/MatrixScalarMath.asm.frag +++ b/third_party/skia/tests/sksl/shared/MatrixScalarMath.asm.frag @@ -36,22 +36,22 @@ OpDecorate %19 Binding 0 OpDecorate %19 DescriptorSet 0 OpDecorate %48 RelaxedPrecision OpDecorate %49 RelaxedPrecision -OpDecorate %150 RelaxedPrecision -OpDecorate %151 RelaxedPrecision +OpDecorate %142 RelaxedPrecision +OpDecorate %143 RelaxedPrecision +OpDecorate %146 RelaxedPrecision +OpDecorate %147 RelaxedPrecision +OpDecorate %148 RelaxedPrecision +OpDecorate %152 RelaxedPrecision +OpDecorate %153 RelaxedPrecision OpDecorate %154 RelaxedPrecision -OpDecorate %155 RelaxedPrecision -OpDecorate %156 RelaxedPrecision +OpDecorate %158 RelaxedPrecision +OpDecorate %159 RelaxedPrecision OpDecorate %160 RelaxedPrecision -OpDecorate %161 RelaxedPrecision -OpDecorate %162 RelaxedPrecision -OpDecorate %166 RelaxedPrecision -OpDecorate %167 RelaxedPrecision -OpDecorate %168 RelaxedPrecision -OpDecorate %183 RelaxedPrecision -OpDecorate %184 RelaxedPrecision -OpDecorate %333 RelaxedPrecision -OpDecorate %335 RelaxedPrecision -OpDecorate %336 RelaxedPrecision +OpDecorate %175 RelaxedPrecision +OpDecorate %176 RelaxedPrecision +OpDecorate %321 RelaxedPrecision +OpDecorate %323 RelaxedPrecision +OpDecorate %324 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -72,22 +72,26 @@ OpDecorate %336 RelaxedPrecision %19 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %24 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %28 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float -%mat2v2float = OpTypeMatrix %v2float 2 %_ptr_Function_int = OpTypePointer Function %int %_ptr_Function_float = OpTypePointer Function %float +%mat2v2float = OpTypeMatrix %v2float 2 %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float -%33 = OpTypeFunction %bool %_ptr_Function_int %_ptr_Function_float %_ptr_Function_float %_ptr_Function_float %_ptr_Function_float %_ptr_Function_mat2v2float +%36 = OpTypeFunction %bool %_ptr_Function_int %_ptr_Function_float %_ptr_Function_float %_ptr_Function_float %_ptr_Function_float %_ptr_Function_mat2v2float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_1 = OpConstant %int 1 %float_1 = OpConstant %float 1 +%74 = OpConstantComposite %v2float %float_1 %float_1 +%75 = OpConstantComposite %mat2v2float %74 %74 %float_2 = OpConstant %float 2 +%91 = OpConstantComposite %v2float %float_2 %float_2 +%92 = OpConstantComposite %mat2v2float %91 %91 %false = OpConstantFalse %bool %int_0 = OpConstant %int 0 -%145 = OpTypeFunction %v4float %_ptr_Function_v2float +%137 = OpTypeFunction %v4float %_ptr_Function_v2float %float_3 = OpConstant %float 3 %float_4 = OpConstant %float 4 %float_0_5 = OpConstant %float 0.5 @@ -100,7 +104,7 @@ OpStore %29 %28 OpStore %sk_FragColor %31 OpReturn OpFunctionEnd -%test_bifffff22 = OpFunction %bool None %33 +%test_bifffff22 = OpFunction %bool None %36 %37 = OpFunctionParameter %_ptr_Function_int %38 = OpFunctionParameter %_ptr_Function_float %39 = OpFunctionParameter %_ptr_Function_float @@ -135,100 +139,88 @@ OpSelectionMerge %67 None OpSwitch %66 %67 1 %68 2 %69 3 %70 4 %71 %68 = OpLabel %72 = OpLoad %mat2v2float %m2 -%74 = OpCompositeConstruct %v2float %float_1 %float_1 -%75 = OpCompositeConstruct %mat2v2float %74 %74 %76 = OpCompositeExtract %v2float %72 0 -%77 = OpCompositeExtract %v2float %75 0 -%78 = OpFAdd %v2float %76 %77 -%79 = OpCompositeExtract %v2float %72 1 -%80 = OpCompositeExtract %v2float %75 1 -%81 = OpFAdd %v2float %79 %80 -%82 = OpCompositeConstruct %mat2v2float %78 %81 -OpStore %m2 %82 +%77 = OpFAdd %v2float %76 %74 +%78 = OpCompositeExtract %v2float %72 1 +%79 = OpFAdd %v2float %78 %74 +%80 = OpCompositeConstruct %mat2v2float %77 %79 +OpStore %m2 %80 OpBranch %67 %69 = OpLabel -%83 = OpLoad %mat2v2float %m2 -%84 = OpCompositeConstruct %v2float %float_1 %float_1 -%85 = OpCompositeConstruct %mat2v2float %84 %84 -%86 = OpCompositeExtract %v2float %83 0 -%87 = OpCompositeExtract %v2float %85 0 -%88 = OpFSub %v2float %86 %87 -%89 = OpCompositeExtract %v2float %83 1 -%90 = OpCompositeExtract %v2float %85 1 -%91 = OpFSub %v2float %89 %90 -%92 = OpCompositeConstruct %mat2v2float %88 %91 -OpStore %m2 %92 +%81 = OpLoad %mat2v2float %m2 +%82 = OpCompositeExtract %v2float %81 0 +%83 = OpFSub %v2float %82 %74 +%84 = OpCompositeExtract %v2float %81 1 +%85 = OpFSub %v2float %84 %74 +%86 = OpCompositeConstruct %mat2v2float %83 %85 +OpStore %m2 %86 OpBranch %67 %70 = OpLabel -%93 = OpLoad %mat2v2float %m2 -%95 = OpMatrixTimesScalar %mat2v2float %93 %float_2 -OpStore %m2 %95 +%87 = OpLoad %mat2v2float %m2 +%89 = OpMatrixTimesScalar %mat2v2float %87 %float_2 +OpStore %m2 %89 OpBranch %67 %71 = OpLabel -%96 = OpLoad %mat2v2float %m2 -%97 = OpCompositeConstruct %v2float %float_2 %float_2 -%98 = OpCompositeConstruct %mat2v2float %97 %97 -%99 = OpCompositeExtract %v2float %96 0 -%100 = OpCompositeExtract %v2float %98 0 -%101 = OpFDiv %v2float %99 %100 -%102 = OpCompositeExtract %v2float %96 1 -%103 = OpCompositeExtract %v2float %98 1 -%104 = OpFDiv %v2float %102 %103 -%105 = OpCompositeConstruct %mat2v2float %101 %104 -OpStore %m2 %105 +%90 = OpLoad %mat2v2float %m2 +%93 = OpCompositeExtract %v2float %90 0 +%94 = OpFDiv %v2float %93 %91 +%95 = OpCompositeExtract %v2float %90 1 +%96 = OpFDiv %v2float %95 %91 +%97 = OpCompositeConstruct %mat2v2float %94 %96 +OpStore %m2 %97 OpBranch %67 %67 = OpLabel -%108 = OpAccessChain %_ptr_Function_v2float %m2 %int_0 -%109 = OpLoad %v2float %108 -%110 = OpCompositeExtract %float %109 0 -%111 = OpAccessChain %_ptr_Function_v2float %42 %int_0 -%112 = OpLoad %v2float %111 -%113 = OpCompositeExtract %float %112 0 -%114 = OpFOrdEqual %bool %110 %113 -OpSelectionMerge %116 None -OpBranchConditional %114 %115 %116 -%115 = OpLabel -%117 = OpAccessChain %_ptr_Function_v2float %m2 %int_0 -%118 = OpLoad %v2float %117 -%119 = OpCompositeExtract %float %118 1 -%120 = OpAccessChain %_ptr_Function_v2float %42 %int_0 -%121 = OpLoad %v2float %120 -%122 = OpCompositeExtract %float %121 1 -%123 = OpFOrdEqual %bool %119 %122 -OpBranch %116 -%116 = OpLabel -%124 = OpPhi %bool %false %67 %123 %115 -OpSelectionMerge %126 None -OpBranchConditional %124 %125 %126 -%125 = OpLabel -%127 = OpAccessChain %_ptr_Function_v2float %m2 %int_1 -%128 = OpLoad %v2float %127 -%129 = OpCompositeExtract %float %128 0 -%130 = OpAccessChain %_ptr_Function_v2float %42 %int_1 -%131 = OpLoad %v2float %130 -%132 = OpCompositeExtract %float %131 0 -%133 = OpFOrdEqual %bool %129 %132 -OpBranch %126 -%126 = OpLabel -%134 = OpPhi %bool %false %116 %133 %125 -OpSelectionMerge %136 None -OpBranchConditional %134 %135 %136 -%135 = OpLabel -%137 = OpAccessChain %_ptr_Function_v2float %m2 %int_1 -%138 = OpLoad %v2float %137 -%139 = OpCompositeExtract %float %138 1 -%140 = OpAccessChain %_ptr_Function_v2float %42 %int_1 -%141 = OpLoad %v2float %140 -%142 = OpCompositeExtract %float %141 1 -%143 = OpFOrdEqual %bool %139 %142 -OpBranch %136 -%136 = OpLabel -%144 = OpPhi %bool %false %126 %143 %135 -OpReturnValue %144 +%100 = OpAccessChain %_ptr_Function_v2float %m2 %int_0 +%101 = OpLoad %v2float %100 +%102 = OpCompositeExtract %float %101 0 +%103 = OpAccessChain %_ptr_Function_v2float %42 %int_0 +%104 = OpLoad %v2float %103 +%105 = OpCompositeExtract %float %104 0 +%106 = OpFOrdEqual %bool %102 %105 +OpSelectionMerge %108 None +OpBranchConditional %106 %107 %108 +%107 = OpLabel +%109 = OpAccessChain %_ptr_Function_v2float %m2 %int_0 +%110 = OpLoad %v2float %109 +%111 = OpCompositeExtract %float %110 1 +%112 = OpAccessChain %_ptr_Function_v2float %42 %int_0 +%113 = OpLoad %v2float %112 +%114 = OpCompositeExtract %float %113 1 +%115 = OpFOrdEqual %bool %111 %114 +OpBranch %108 +%108 = OpLabel +%116 = OpPhi %bool %false %67 %115 %107 +OpSelectionMerge %118 None +OpBranchConditional %116 %117 %118 +%117 = OpLabel +%119 = OpAccessChain %_ptr_Function_v2float %m2 %int_1 +%120 = OpLoad %v2float %119 +%121 = OpCompositeExtract %float %120 0 +%122 = OpAccessChain %_ptr_Function_v2float %42 %int_1 +%123 = OpLoad %v2float %122 +%124 = OpCompositeExtract %float %123 0 +%125 = OpFOrdEqual %bool %121 %124 +OpBranch %118 +%118 = OpLabel +%126 = OpPhi %bool %false %108 %125 %117 +OpSelectionMerge %128 None +OpBranchConditional %126 %127 %128 +%127 = OpLabel +%129 = OpAccessChain %_ptr_Function_v2float %m2 %int_1 +%130 = OpLoad %v2float %129 +%131 = OpCompositeExtract %float %130 1 +%132 = OpAccessChain %_ptr_Function_v2float %42 %int_1 +%133 = OpLoad %v2float %132 +%134 = OpCompositeExtract %float %133 1 +%135 = OpFOrdEqual %bool %131 %134 +OpBranch %128 +%128 = OpLabel +%136 = OpPhi %bool %false %118 %135 %127 +OpReturnValue %136 OpFunctionEnd -%main = OpFunction %v4float None %145 -%146 = OpFunctionParameter %_ptr_Function_v2float -%147 = OpLabel +%main = OpFunction %v4float None %137 +%138 = OpFunctionParameter %_ptr_Function_v2float +%139 = OpLabel %f1 = OpVariable %_ptr_Function_float Function %f2 = OpVariable %_ptr_Function_float Function %f3 = OpVariable %_ptr_Function_float Function @@ -236,236 +228,232 @@ OpFunctionEnd %_0_expected = OpVariable %_ptr_Function_mat2v2float Function %_1_one = OpVariable %_ptr_Function_float Function %_2_m2 = OpVariable %_ptr_Function_mat2v2float Function -%251 = OpVariable %_ptr_Function_int Function -%253 = OpVariable %_ptr_Function_float Function -%255 = OpVariable %_ptr_Function_float Function -%257 = OpVariable %_ptr_Function_float Function -%259 = OpVariable %_ptr_Function_float Function -%271 = OpVariable %_ptr_Function_mat2v2float Function -%277 = OpVariable %_ptr_Function_int Function -%279 = OpVariable %_ptr_Function_float Function -%281 = OpVariable %_ptr_Function_float Function -%283 = OpVariable %_ptr_Function_float Function -%285 = OpVariable %_ptr_Function_float Function -%297 = OpVariable %_ptr_Function_mat2v2float Function -%303 = OpVariable %_ptr_Function_int Function -%305 = OpVariable %_ptr_Function_float Function -%307 = OpVariable %_ptr_Function_float Function -%309 = OpVariable %_ptr_Function_float Function -%311 = OpVariable %_ptr_Function_float Function -%324 = OpVariable %_ptr_Function_mat2v2float Function -%327 = OpVariable %_ptr_Function_v4float Function +%239 = OpVariable %_ptr_Function_int Function +%241 = OpVariable %_ptr_Function_float Function +%243 = OpVariable %_ptr_Function_float Function +%245 = OpVariable %_ptr_Function_float Function +%247 = OpVariable %_ptr_Function_float Function +%259 = OpVariable %_ptr_Function_mat2v2float Function +%265 = OpVariable %_ptr_Function_int Function +%267 = OpVariable %_ptr_Function_float Function +%269 = OpVariable %_ptr_Function_float Function +%271 = OpVariable %_ptr_Function_float Function +%273 = OpVariable %_ptr_Function_float Function +%285 = OpVariable %_ptr_Function_mat2v2float Function +%291 = OpVariable %_ptr_Function_int Function +%293 = OpVariable %_ptr_Function_float Function +%295 = OpVariable %_ptr_Function_float Function +%297 = OpVariable %_ptr_Function_float Function +%299 = OpVariable %_ptr_Function_float Function +%312 = OpVariable %_ptr_Function_mat2v2float Function +%315 = OpVariable %_ptr_Function_v4float Function OpStore %minus %int_2 OpStore %star %int_3 OpStore %slash %int_4 -%149 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 -%150 = OpLoad %v4float %149 -%151 = OpCompositeExtract %float %150 1 -OpStore %f1 %151 -%153 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 -%154 = OpLoad %v4float %153 -%155 = OpCompositeExtract %float %154 1 -%156 = OpFMul %float %float_2 %155 -OpStore %f2 %156 -%159 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 -%160 = OpLoad %v4float %159 -%161 = OpCompositeExtract %float %160 1 -%162 = OpFMul %float %float_3 %161 -OpStore %f3 %162 -%165 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 -%166 = OpLoad %v4float %165 -%167 = OpCompositeExtract %float %166 1 -%168 = OpFMul %float %float_4 %167 -OpStore %f4 %168 -%170 = OpLoad %float %f1 -%171 = OpFAdd %float %170 %float_1 -%172 = OpLoad %float %f2 -%173 = OpFAdd %float %172 %float_1 -%174 = OpLoad %float %f3 -%175 = OpFAdd %float %174 %float_1 -%176 = OpLoad %float %f4 -%177 = OpFAdd %float %176 %float_1 -%178 = OpCompositeConstruct %v2float %171 %173 -%179 = OpCompositeConstruct %v2float %175 %177 -%180 = OpCompositeConstruct %mat2v2float %178 %179 -OpStore %_0_expected %180 -%182 = OpAccessChain %_ptr_Uniform_v4float %19 %int_1 -%183 = OpLoad %v4float %182 -%184 = OpCompositeExtract %float %183 0 -OpStore %_1_one %184 -%186 = OpLoad %float %f1 -%187 = OpLoad %float %_1_one -%188 = OpFMul %float %186 %187 -%189 = OpLoad %float %f2 -%190 = OpLoad %float %_1_one -%191 = OpFMul %float %189 %190 -%192 = OpLoad %float %f3 -%193 = OpLoad %float %_1_one -%194 = OpFMul %float %192 %193 -%195 = OpLoad %float %f4 -%196 = OpLoad %float %_1_one -%197 = OpFMul %float %195 %196 -%198 = OpCompositeConstruct %v2float %188 %191 -%199 = OpCompositeConstruct %v2float %194 %197 -%200 = OpCompositeConstruct %mat2v2float %198 %199 -OpStore %_2_m2 %200 -%201 = OpLoad %mat2v2float %_2_m2 -%202 = OpCompositeConstruct %v2float %float_1 %float_1 -%203 = OpCompositeConstruct %mat2v2float %202 %202 -%204 = OpCompositeExtract %v2float %201 0 -%205 = OpCompositeExtract %v2float %203 0 -%206 = OpFAdd %v2float %204 %205 -%207 = OpCompositeExtract %v2float %201 1 -%208 = OpCompositeExtract %v2float %203 1 -%209 = OpFAdd %v2float %207 %208 -%210 = OpCompositeConstruct %mat2v2float %206 %209 -OpStore %_2_m2 %210 -%211 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_0 +%141 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 +%142 = OpLoad %v4float %141 +%143 = OpCompositeExtract %float %142 1 +OpStore %f1 %143 +%145 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 +%146 = OpLoad %v4float %145 +%147 = OpCompositeExtract %float %146 1 +%148 = OpFMul %float %float_2 %147 +OpStore %f2 %148 +%151 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 +%152 = OpLoad %v4float %151 +%153 = OpCompositeExtract %float %152 1 +%154 = OpFMul %float %float_3 %153 +OpStore %f3 %154 +%157 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 +%158 = OpLoad %v4float %157 +%159 = OpCompositeExtract %float %158 1 +%160 = OpFMul %float %float_4 %159 +OpStore %f4 %160 +%162 = OpLoad %float %f1 +%163 = OpFAdd %float %162 %float_1 +%164 = OpLoad %float %f2 +%165 = OpFAdd %float %164 %float_1 +%166 = OpLoad %float %f3 +%167 = OpFAdd %float %166 %float_1 +%168 = OpLoad %float %f4 +%169 = OpFAdd %float %168 %float_1 +%170 = OpCompositeConstruct %v2float %163 %165 +%171 = OpCompositeConstruct %v2float %167 %169 +%172 = OpCompositeConstruct %mat2v2float %170 %171 +OpStore %_0_expected %172 +%174 = OpAccessChain %_ptr_Uniform_v4float %19 %int_1 +%175 = OpLoad %v4float %174 +%176 = OpCompositeExtract %float %175 0 +OpStore %_1_one %176 +%178 = OpLoad %float %f1 +%179 = OpLoad %float %_1_one +%180 = OpFMul %float %178 %179 +%181 = OpLoad %float %f2 +%182 = OpLoad %float %_1_one +%183 = OpFMul %float %181 %182 +%184 = OpLoad %float %f3 +%185 = OpLoad %float %_1_one +%186 = OpFMul %float %184 %185 +%187 = OpLoad %float %f4 +%188 = OpLoad %float %_1_one +%189 = OpFMul %float %187 %188 +%190 = OpCompositeConstruct %v2float %180 %183 +%191 = OpCompositeConstruct %v2float %186 %189 +%192 = OpCompositeConstruct %mat2v2float %190 %191 +OpStore %_2_m2 %192 +%193 = OpLoad %mat2v2float %_2_m2 +%194 = OpCompositeExtract %v2float %193 0 +%195 = OpFAdd %v2float %194 %74 +%196 = OpCompositeExtract %v2float %193 1 +%197 = OpFAdd %v2float %196 %74 +%198 = OpCompositeConstruct %mat2v2float %195 %197 +OpStore %_2_m2 %198 +%199 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_0 +%200 = OpLoad %v2float %199 +%201 = OpCompositeExtract %float %200 0 +%202 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_0 +%203 = OpLoad %v2float %202 +%204 = OpCompositeExtract %float %203 0 +%205 = OpFOrdEqual %bool %201 %204 +OpSelectionMerge %207 None +OpBranchConditional %205 %206 %207 +%206 = OpLabel +%208 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_0 +%209 = OpLoad %v2float %208 +%210 = OpCompositeExtract %float %209 1 +%211 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_0 %212 = OpLoad %v2float %211 -%213 = OpCompositeExtract %float %212 0 -%214 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_0 -%215 = OpLoad %v2float %214 -%216 = OpCompositeExtract %float %215 0 -%217 = OpFOrdEqual %bool %213 %216 -OpSelectionMerge %219 None -OpBranchConditional %217 %218 %219 -%218 = OpLabel -%220 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_0 -%221 = OpLoad %v2float %220 -%222 = OpCompositeExtract %float %221 1 -%223 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_0 -%224 = OpLoad %v2float %223 -%225 = OpCompositeExtract %float %224 1 -%226 = OpFOrdEqual %bool %222 %225 -OpBranch %219 -%219 = OpLabel -%227 = OpPhi %bool %false %147 %226 %218 -OpSelectionMerge %229 None -OpBranchConditional %227 %228 %229 -%228 = OpLabel -%230 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_1 -%231 = OpLoad %v2float %230 -%232 = OpCompositeExtract %float %231 0 -%233 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_1 -%234 = OpLoad %v2float %233 -%235 = OpCompositeExtract %float %234 0 -%236 = OpFOrdEqual %bool %232 %235 -OpBranch %229 -%229 = OpLabel -%237 = OpPhi %bool %false %219 %236 %228 -OpSelectionMerge %239 None -OpBranchConditional %237 %238 %239 -%238 = OpLabel -%240 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_1 -%241 = OpLoad %v2float %240 -%242 = OpCompositeExtract %float %241 1 -%243 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_1 -%244 = OpLoad %v2float %243 -%245 = OpCompositeExtract %float %244 1 -%246 = OpFOrdEqual %bool %242 %245 -OpBranch %239 -%239 = OpLabel -%247 = OpPhi %bool %false %229 %246 %238 -OpSelectionMerge %249 None -OpBranchConditional %247 %248 %249 -%248 = OpLabel -%250 = OpLoad %int %minus -OpStore %251 %250 -%252 = OpLoad %float %f1 -OpStore %253 %252 -%254 = OpLoad %float %f2 -OpStore %255 %254 -%256 = OpLoad %float %f3 -OpStore %257 %256 -%258 = OpLoad %float %f4 +%213 = OpCompositeExtract %float %212 1 +%214 = OpFOrdEqual %bool %210 %213 +OpBranch %207 +%207 = OpLabel +%215 = OpPhi %bool %false %139 %214 %206 +OpSelectionMerge %217 None +OpBranchConditional %215 %216 %217 +%216 = OpLabel +%218 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_1 +%219 = OpLoad %v2float %218 +%220 = OpCompositeExtract %float %219 0 +%221 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_1 +%222 = OpLoad %v2float %221 +%223 = OpCompositeExtract %float %222 0 +%224 = OpFOrdEqual %bool %220 %223 +OpBranch %217 +%217 = OpLabel +%225 = OpPhi %bool %false %207 %224 %216 +OpSelectionMerge %227 None +OpBranchConditional %225 %226 %227 +%226 = OpLabel +%228 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_1 +%229 = OpLoad %v2float %228 +%230 = OpCompositeExtract %float %229 1 +%231 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_1 +%232 = OpLoad %v2float %231 +%233 = OpCompositeExtract %float %232 1 +%234 = OpFOrdEqual %bool %230 %233 +OpBranch %227 +%227 = OpLabel +%235 = OpPhi %bool %false %217 %234 %226 +OpSelectionMerge %237 None +OpBranchConditional %235 %236 %237 +%236 = OpLabel +%238 = OpLoad %int %minus +OpStore %239 %238 +%240 = OpLoad %float %f1 +OpStore %241 %240 +%242 = OpLoad %float %f2 +OpStore %243 %242 +%244 = OpLoad %float %f3 +OpStore %245 %244 +%246 = OpLoad %float %f4 +OpStore %247 %246 +%248 = OpLoad %float %f1 +%249 = OpFSub %float %248 %float_1 +%250 = OpLoad %float %f2 +%251 = OpFSub %float %250 %float_1 +%252 = OpLoad %float %f3 +%253 = OpFSub %float %252 %float_1 +%254 = OpLoad %float %f4 +%255 = OpFSub %float %254 %float_1 +%256 = OpCompositeConstruct %v2float %249 %251 +%257 = OpCompositeConstruct %v2float %253 %255 +%258 = OpCompositeConstruct %mat2v2float %256 %257 OpStore %259 %258 -%260 = OpLoad %float %f1 -%261 = OpFSub %float %260 %float_1 -%262 = OpLoad %float %f2 -%263 = OpFSub %float %262 %float_1 -%264 = OpLoad %float %f3 -%265 = OpFSub %float %264 %float_1 -%266 = OpLoad %float %f4 -%267 = OpFSub %float %266 %float_1 -%268 = OpCompositeConstruct %v2float %261 %263 -%269 = OpCompositeConstruct %v2float %265 %267 -%270 = OpCompositeConstruct %mat2v2float %268 %269 +%260 = OpFunctionCall %bool %test_bifffff22 %239 %241 %243 %245 %247 %259 +OpBranch %237 +%237 = OpLabel +%261 = OpPhi %bool %false %227 %260 %236 +OpSelectionMerge %263 None +OpBranchConditional %261 %262 %263 +%262 = OpLabel +%264 = OpLoad %int %star +OpStore %265 %264 +%266 = OpLoad %float %f1 +OpStore %267 %266 +%268 = OpLoad %float %f2 +OpStore %269 %268 +%270 = OpLoad %float %f3 OpStore %271 %270 -%272 = OpFunctionCall %bool %test_bifffff22 %251 %253 %255 %257 %259 %271 -OpBranch %249 -%249 = OpLabel -%273 = OpPhi %bool %false %239 %272 %248 -OpSelectionMerge %275 None -OpBranchConditional %273 %274 %275 -%274 = OpLabel -%276 = OpLoad %int %star -OpStore %277 %276 -%278 = OpLoad %float %f1 -OpStore %279 %278 -%280 = OpLoad %float %f2 -OpStore %281 %280 -%282 = OpLoad %float %f3 -OpStore %283 %282 -%284 = OpLoad %float %f4 +%272 = OpLoad %float %f4 +OpStore %273 %272 +%274 = OpLoad %float %f1 +%275 = OpFMul %float %274 %float_2 +%276 = OpLoad %float %f2 +%277 = OpFMul %float %276 %float_2 +%278 = OpLoad %float %f3 +%279 = OpFMul %float %278 %float_2 +%280 = OpLoad %float %f4 +%281 = OpFMul %float %280 %float_2 +%282 = OpCompositeConstruct %v2float %275 %277 +%283 = OpCompositeConstruct %v2float %279 %281 +%284 = OpCompositeConstruct %mat2v2float %282 %283 OpStore %285 %284 -%286 = OpLoad %float %f1 -%287 = OpFMul %float %286 %float_2 -%288 = OpLoad %float %f2 -%289 = OpFMul %float %288 %float_2 -%290 = OpLoad %float %f3 -%291 = OpFMul %float %290 %float_2 -%292 = OpLoad %float %f4 -%293 = OpFMul %float %292 %float_2 -%294 = OpCompositeConstruct %v2float %287 %289 -%295 = OpCompositeConstruct %v2float %291 %293 -%296 = OpCompositeConstruct %mat2v2float %294 %295 +%286 = OpFunctionCall %bool %test_bifffff22 %265 %267 %269 %271 %273 %285 +OpBranch %263 +%263 = OpLabel +%287 = OpPhi %bool %false %237 %286 %262 +OpSelectionMerge %289 None +OpBranchConditional %287 %288 %289 +%288 = OpLabel +%290 = OpLoad %int %slash +OpStore %291 %290 +%292 = OpLoad %float %f1 +OpStore %293 %292 +%294 = OpLoad %float %f2 +OpStore %295 %294 +%296 = OpLoad %float %f3 OpStore %297 %296 -%298 = OpFunctionCall %bool %test_bifffff22 %277 %279 %281 %283 %285 %297 -OpBranch %275 -%275 = OpLabel -%299 = OpPhi %bool %false %249 %298 %274 -OpSelectionMerge %301 None -OpBranchConditional %299 %300 %301 -%300 = OpLabel -%302 = OpLoad %int %slash -OpStore %303 %302 -%304 = OpLoad %float %f1 -OpStore %305 %304 -%306 = OpLoad %float %f2 -OpStore %307 %306 -%308 = OpLoad %float %f3 -OpStore %309 %308 -%310 = OpLoad %float %f4 -OpStore %311 %310 -%312 = OpLoad %float %f1 -%314 = OpFMul %float %312 %float_0_5 -%315 = OpLoad %float %f2 -%316 = OpFMul %float %315 %float_0_5 -%317 = OpLoad %float %f3 -%318 = OpFMul %float %317 %float_0_5 -%319 = OpLoad %float %f4 -%320 = OpFMul %float %319 %float_0_5 -%321 = OpCompositeConstruct %v2float %314 %316 -%322 = OpCompositeConstruct %v2float %318 %320 -%323 = OpCompositeConstruct %mat2v2float %321 %322 -OpStore %324 %323 -%325 = OpFunctionCall %bool %test_bifffff22 %303 %305 %307 %309 %311 %324 -OpBranch %301 -%301 = OpLabel -%326 = OpPhi %bool %false %275 %325 %300 -OpSelectionMerge %331 None -OpBranchConditional %326 %329 %330 -%329 = OpLabel -%332 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 -%333 = OpLoad %v4float %332 -OpStore %327 %333 -OpBranch %331 -%330 = OpLabel -%334 = OpAccessChain %_ptr_Uniform_v4float %19 %int_1 -%335 = OpLoad %v4float %334 -OpStore %327 %335 -OpBranch %331 -%331 = OpLabel -%336 = OpLoad %v4float %327 -OpReturnValue %336 +%298 = OpLoad %float %f4 +OpStore %299 %298 +%300 = OpLoad %float %f1 +%302 = OpFMul %float %300 %float_0_5 +%303 = OpLoad %float %f2 +%304 = OpFMul %float %303 %float_0_5 +%305 = OpLoad %float %f3 +%306 = OpFMul %float %305 %float_0_5 +%307 = OpLoad %float %f4 +%308 = OpFMul %float %307 %float_0_5 +%309 = OpCompositeConstruct %v2float %302 %304 +%310 = OpCompositeConstruct %v2float %306 %308 +%311 = OpCompositeConstruct %mat2v2float %309 %310 +OpStore %312 %311 +%313 = OpFunctionCall %bool %test_bifffff22 %291 %293 %295 %297 %299 %312 +OpBranch %289 +%289 = OpLabel +%314 = OpPhi %bool %false %263 %313 %288 +OpSelectionMerge %319 None +OpBranchConditional %314 %317 %318 +%317 = OpLabel +%320 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0 +%321 = OpLoad %v4float %320 +OpStore %315 %321 +OpBranch %319 +%318 = OpLabel +%322 = OpAccessChain %_ptr_Uniform_v4float %19 %int_1 +%323 = OpLoad %v4float %322 +OpStore %315 %323 +OpBranch %319 +%319 = OpLabel +%324 = OpLoad %v4float %315 +OpReturnValue %324 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/MatrixToVectorCast.asm.frag b/third_party/skia/tests/sksl/shared/MatrixToVectorCast.asm.frag index f99d0d21df61..50577dd20abc 100644 --- a/third_party/skia/tests/sksl/shared/MatrixToVectorCast.asm.frag +++ b/third_party/skia/tests/sksl/shared/MatrixToVectorCast.asm.frag @@ -34,7 +34,6 @@ OpDecorate %40 RelaxedPrecision OpDecorate %41 RelaxedPrecision OpDecorate %42 RelaxedPrecision OpDecorate %43 RelaxedPrecision -OpDecorate %48 RelaxedPrecision OpDecorate %53 RelaxedPrecision OpDecorate %57 RelaxedPrecision OpDecorate %58 RelaxedPrecision @@ -174,8 +173,8 @@ OpBranchConditional %66 %67 %68 %81 = OpConvertFToS %int %80 %82 = OpCompositeExtract %float %75 3 %83 = OpConvertFToS %int %82 -%84 = OpCompositeConstruct %v4int %77 %79 %81 %83 -%90 = OpIEqual %v4bool %84 %89 +%85 = OpCompositeConstruct %v4int %77 %79 %81 %83 +%90 = OpIEqual %v4bool %85 %89 %91 = OpAll %bool %90 OpBranch %68 %68 = OpLabel diff --git a/third_party/skia/tests/sksl/shared/MultipleAssignments.asm.frag b/third_party/skia/tests/sksl/shared/MultipleAssignments.asm.frag index 533e9300cac6..9284d87525ff 100644 --- a/third_party/skia/tests/sksl/shared/MultipleAssignments.asm.frag +++ b/third_party/skia/tests/sksl/shared/MultipleAssignments.asm.frag @@ -33,8 +33,8 @@ OpDecorate %36 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/Negation.asm.frag b/third_party/skia/tests/sksl/shared/Negation.asm.frag deleted file mode 100644 index 772562ca3f0a..000000000000 --- a/third_party/skia/tests/sksl/shared/Negation.asm.frag +++ /dev/null @@ -1,215 +0,0 @@ -OpCapability Shader -%1 = OpExtInstImport "GLSL.std.450" -OpMemoryModel Logical GLSL450 -OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise -OpExecutionMode %_entrypoint_v OriginUpperLeft -OpName %sk_FragColor "sk_FragColor" -OpName %sk_Clockwise "sk_Clockwise" -OpName %_UniformBuffer "_UniformBuffer" -OpMemberName %_UniformBuffer 0 "colorGreen" -OpMemberName %_UniformBuffer 1 "colorRed" -OpName %_entrypoint_v "_entrypoint_v" -OpName %test_ivec_b "test_ivec_b" -OpName %one "one" -OpName %two "two" -OpName %ok "ok" -OpName %test_mat_b "test_mat_b" -OpName %ok_0 "ok" -OpName %main "main" -OpName %_0_one "_0_one" -OpName %_1_two "_1_two" -OpName %_4_ok "_4_ok" -OpDecorate %sk_FragColor RelaxedPrecision -OpDecorate %sk_FragColor Location 0 -OpDecorate %sk_FragColor Index 0 -OpDecorate %sk_Clockwise BuiltIn FrontFacing -OpMemberDecorate %_UniformBuffer 0 Offset 0 -OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision -OpMemberDecorate %_UniformBuffer 1 Offset 16 -OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision -OpDecorate %_UniformBuffer Block -OpDecorate %12 Binding 0 -OpDecorate %12 DescriptorSet 0 -OpDecorate %37 RelaxedPrecision -OpDecorate %57 RelaxedPrecision -OpDecorate %60 RelaxedPrecision -OpDecorate %70 RelaxedPrecision -OpDecorate %73 RelaxedPrecision -OpDecorate %75 RelaxedPrecision -OpDecorate %80 RelaxedPrecision -OpDecorate %82 RelaxedPrecision -OpDecorate %83 RelaxedPrecision -OpDecorate %84 RelaxedPrecision -OpDecorate %85 RelaxedPrecision -OpDecorate %90 RelaxedPrecision -OpDecorate %94 RelaxedPrecision -OpDecorate %95 RelaxedPrecision -OpDecorate %100 RelaxedPrecision -OpDecorate %104 RelaxedPrecision -OpDecorate %121 RelaxedPrecision -OpDecorate %123 RelaxedPrecision -OpDecorate %124 RelaxedPrecision -%float = OpTypeFloat 32 -%v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%sk_FragColor = OpVariable %_ptr_Output_v4float Output -%bool = OpTypeBool -%_ptr_Input_bool = OpTypePointer Input %bool -%sk_Clockwise = OpVariable %_ptr_Input_bool Input -%_UniformBuffer = OpTypeStruct %v4float %v4float -%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer -%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform -%void = OpTypeVoid -%17 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 -%float_0 = OpConstant %float 0 -%21 = OpConstantComposite %v2float %float_0 %float_0 -%_ptr_Function_v2float = OpTypePointer Function %v2float -%25 = OpTypeFunction %bool -%int = OpTypeInt 32 1 -%_ptr_Function_int = OpTypePointer Function %int -%int_1 = OpConstant %int 1 -%int_2 = OpConstant %int 2 -%_ptr_Function_bool = OpTypePointer Function %bool -%true = OpConstantTrue %bool -%false = OpConstantFalse %bool -%v2int = OpTypeVector %int 2 -%v2bool = OpTypeVector %bool 2 -%61 = OpTypeFunction %v4float %_ptr_Function_v2float -%_ptr_Function_float = OpTypePointer Function %float -%float_1 = OpConstant %float 1 -%float_2 = OpConstant %float 2 -%v3float = OpTypeVector %float 3 -%v4bool = OpTypeVector %bool 4 -%float_n2 = OpConstant %float -2 -%94 = OpConstantComposite %v2float %float_1 %float_n2 -%_ptr_Function_v4float = OpTypePointer Function %v4float -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float -%int_0 = OpConstant %int 0 -%_entrypoint_v = OpFunction %void None %17 -%18 = OpLabel -%22 = OpVariable %_ptr_Function_v2float Function -OpStore %22 %21 -%24 = OpFunctionCall %v4float %main %22 -OpStore %sk_FragColor %24 -OpReturn -OpFunctionEnd -%test_ivec_b = OpFunction %bool None %25 -%26 = OpLabel -%one = OpVariable %_ptr_Function_int Function -%two = OpVariable %_ptr_Function_int Function -%ok = OpVariable %_ptr_Function_bool Function -OpStore %one %int_1 -OpStore %two %int_2 -OpStore %ok %true -%37 = OpLoad %bool %ok -OpSelectionMerge %39 None -OpBranchConditional %37 %38 %39 -%38 = OpLabel -%43 = OpLoad %int %one -%42 = OpSNegate %int %43 -%44 = OpLoad %int %one -%45 = OpLoad %int %one -%46 = OpIAdd %int %44 %45 -%47 = OpCompositeConstruct %v2int %42 %46 -%40 = OpSNegate %v2int %47 -%49 = OpLoad %int %one -%50 = OpLoad %int %two -%51 = OpISub %int %49 %50 -%52 = OpCompositeConstruct %v2int %51 %int_2 -%48 = OpSNegate %v2int %52 -%53 = OpIEqual %v2bool %40 %48 -%55 = OpAll %bool %53 -OpBranch %39 -%39 = OpLabel -%56 = OpPhi %bool %false %26 %55 %38 -OpStore %ok %56 -%57 = OpLoad %bool %ok -OpReturnValue %57 -OpFunctionEnd -%test_mat_b = OpFunction %bool None %25 -%58 = OpLabel -%ok_0 = OpVariable %_ptr_Function_bool Function -OpStore %ok_0 %true -%60 = OpLoad %bool %ok_0 -OpReturnValue %60 -OpFunctionEnd -%main = OpFunction %v4float None %61 -%62 = OpFunctionParameter %_ptr_Function_v2float -%63 = OpLabel -%_0_one = OpVariable %_ptr_Function_float Function -%_1_two = OpVariable %_ptr_Function_float Function -%_4_ok = OpVariable %_ptr_Function_bool Function -%113 = OpVariable %_ptr_Function_v4float Function -OpStore %_0_one %float_1 -OpStore %_1_two %float_2 -OpStore %_4_ok %true -%70 = OpLoad %bool %_4_ok -OpSelectionMerge %72 None -OpBranchConditional %70 %71 %72 -%71 = OpLabel -%74 = OpLoad %float %_1_two -%75 = OpCompositeConstruct %v4float %74 %74 %74 %74 -%73 = OpFNegate %v4float %75 -%77 = OpLoad %float %_1_two -%76 = OpFNegate %float %77 -%79 = OpLoad %float %_1_two -%78 = OpFNegate %float %79 -%80 = OpCompositeConstruct %v3float %78 %78 %78 -%82 = OpCompositeExtract %float %80 0 -%83 = OpCompositeExtract %float %80 1 -%84 = OpCompositeExtract %float %80 2 -%85 = OpCompositeConstruct %v4float %76 %82 %83 %84 -%86 = OpFOrdEqual %v4bool %73 %85 -%88 = OpAll %bool %86 -OpBranch %72 -%72 = OpLabel -%89 = OpPhi %bool %false %63 %88 %71 -OpStore %_4_ok %89 -%90 = OpLoad %bool %_4_ok -OpSelectionMerge %92 None -OpBranchConditional %90 %91 %92 -%91 = OpLabel -%96 = OpLoad %float %_0_one -%97 = OpLoad %float %_1_two -%98 = OpFSub %float %96 %97 -%99 = OpLoad %float %_1_two -%100 = OpCompositeConstruct %v2float %98 %99 -%95 = OpFNegate %v2float %100 -%101 = OpFOrdEqual %v2bool %94 %95 -%102 = OpAll %bool %101 -OpBranch %92 -%92 = OpLabel -%103 = OpPhi %bool %false %72 %102 %91 -OpStore %_4_ok %103 -%104 = OpLoad %bool %_4_ok -OpSelectionMerge %106 None -OpBranchConditional %104 %105 %106 -%105 = OpLabel -%107 = OpFunctionCall %bool %test_ivec_b -OpBranch %106 -%106 = OpLabel -%108 = OpPhi %bool %false %92 %107 %105 -OpSelectionMerge %110 None -OpBranchConditional %108 %109 %110 -%109 = OpLabel -%111 = OpFunctionCall %bool %test_mat_b -OpBranch %110 -%110 = OpLabel -%112 = OpPhi %bool %false %106 %111 %109 -OpSelectionMerge %117 None -OpBranchConditional %112 %115 %116 -%115 = OpLabel -%118 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 -%121 = OpLoad %v4float %118 -OpStore %113 %121 -OpBranch %117 -%116 = OpLabel -%122 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 -%123 = OpLoad %v4float %122 -OpStore %113 %123 -OpBranch %117 -%117 = OpLabel -%124 = OpLoad %v4float %113 -OpReturnValue %124 -OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/Negation.metal b/third_party/skia/tests/sksl/shared/Negation.metal deleted file mode 100644 index dbebe4712a22..000000000000 --- a/third_party/skia/tests/sksl/shared/Negation.metal +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include -using namespace metal; -struct Uniforms { - half4 colorGreen; - half4 colorRed; -}; -struct Inputs { -}; -struct Outputs { - half4 sk_FragColor [[color(0)]]; -}; -bool test_ivec_b() { - int one = 1; - const int two = 2; - bool ok = true; - ok = ok && all(-int2(-one, one + one) == -int2(one - two, 2)); - return ok; -} -bool test_mat_b() { - bool ok = true; - return ok; -} -fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { - Outputs _out; - (void)_out; - const float _0_one = 1.0; - float _1_two = 2.0; - bool _4_ok = true; - _4_ok = _4_ok && all(-half4(half(_1_two)) == half4(half(-_1_two), half3(half(-_1_two)))); - _4_ok = _4_ok && all(half2(1.0h, -2.0h) == -half2(half(_0_one - _1_two), half(_1_two))); - _out.sk_FragColor = (_4_ok && test_ivec_b()) && test_mat_b() ? _uniforms.colorGreen : _uniforms.colorRed; - return _out; -} diff --git a/third_party/skia/tests/sksl/shared/NumberCasts.asm.frag b/third_party/skia/tests/sksl/shared/NumberCasts.asm.frag index 766150fa2cdb..b48565740b75 100644 --- a/third_party/skia/tests/sksl/shared/NumberCasts.asm.frag +++ b/third_party/skia/tests/sksl/shared/NumberCasts.asm.frag @@ -29,8 +29,8 @@ OpDecorate %82 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/Octal.asm.frag b/third_party/skia/tests/sksl/shared/Octal.asm.frag index 2bb8d6ba3193..af22ee892e80 100644 --- a/third_party/skia/tests/sksl/shared/Octal.asm.frag +++ b/third_party/skia/tests/sksl/shared/Octal.asm.frag @@ -40,8 +40,8 @@ OpDecorate %65 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/OperatorsES2.asm.frag b/third_party/skia/tests/sksl/shared/OperatorsES2.asm.frag index 674930ec3bcd..aa2f4fa48f58 100644 --- a/third_party/skia/tests/sksl/shared/OperatorsES2.asm.frag +++ b/third_party/skia/tests/sksl/shared/OperatorsES2.asm.frag @@ -60,8 +60,8 @@ OpDecorate %155 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/OperatorsES3.asm.frag b/third_party/skia/tests/sksl/shared/OperatorsES3.asm.frag index 404c06e59d01..bfd876d4b7c2 100644 --- a/third_party/skia/tests/sksl/shared/OperatorsES3.asm.frag +++ b/third_party/skia/tests/sksl/shared/OperatorsES3.asm.frag @@ -42,8 +42,8 @@ OpDecorate %131 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/Ossfuzz26759.asm.frag b/third_party/skia/tests/sksl/shared/Ossfuzz26759.asm.frag index f115f4c3abf4..b06ed974d22b 100644 --- a/third_party/skia/tests/sksl/shared/Ossfuzz26759.asm.frag +++ b/third_party/skia/tests/sksl/shared/Ossfuzz26759.asm.frag @@ -22,6 +22,6 @@ OpDecorate %sk_Clockwise BuiltIn FrontFacing %12 = OpLoad %int %i %14 = OpISub %int %12 %int_1 OpStore %i %14 -%15 = OpCompositeConstruct %v3int %12 %12 %12 +%16 = OpCompositeConstruct %v3int %12 %12 %12 OpReturn OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/Ossfuzz28904.asm.frag b/third_party/skia/tests/sksl/shared/Ossfuzz28904.asm.frag index 6979cf5a6e65..1336c46db0a1 100644 --- a/third_party/skia/tests/sksl/shared/Ossfuzz28904.asm.frag +++ b/third_party/skia/tests/sksl/shared/Ossfuzz28904.asm.frag @@ -10,7 +10,6 @@ OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpDecorate %sk_Clockwise BuiltIn FrontFacing -OpDecorate %15 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float diff --git a/third_party/skia/tests/sksl/shared/Ossfuzz29494.asm.frag b/third_party/skia/tests/sksl/shared/Ossfuzz29494.asm.frag index 6979cf5a6e65..1336c46db0a1 100644 --- a/third_party/skia/tests/sksl/shared/Ossfuzz29494.asm.frag +++ b/third_party/skia/tests/sksl/shared/Ossfuzz29494.asm.frag @@ -10,7 +10,6 @@ OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpDecorate %sk_Clockwise BuiltIn FrontFacing -OpDecorate %15 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float diff --git a/third_party/skia/tests/sksl/shared/Ossfuzz36770.asm.frag b/third_party/skia/tests/sksl/shared/Ossfuzz36770.asm.frag index 40e9e0f21c82..cc3e16bb7ddf 100644 --- a/third_party/skia/tests/sksl/shared/Ossfuzz36770.asm.frag +++ b/third_party/skia/tests/sksl/shared/Ossfuzz36770.asm.frag @@ -1,35 +1,31 @@ ### Compilation failed: -error: SPIR-V validation error: Member index 0 is missing a location assignment - %T = OpTypeStruct %int %v2float +error: SPIR-V validation error: [VUID-StandaloneSpirv-Location-04919] Member index 0 is missing a location assignment + %T = OpTypeStruct %int OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 -OpEntryPoint Fragment %main "main" %4 %sk_Clockwise +OpEntryPoint Fragment %main "main" %3 %sk_Clockwise OpExecutionMode %main OriginUpperLeft OpName %T "T" OpMemberName %T 0 "x" -OpMemberName %T 1 "u_skRTFlip" OpName %sk_Clockwise "sk_Clockwise" OpName %main "main" OpMemberDecorate %T 0 Offset 0 -OpMemberDecorate %T 1 Offset 16384 OpDecorate %T Block OpDecorate %sk_Clockwise BuiltIn FrontFacing %int = OpTypeInt 32 1 -%float = OpTypeFloat 32 -%v2float = OpTypeVector %float 2 -%T = OpTypeStruct %int %v2float +%T = OpTypeStruct %int %_ptr_Input_T = OpTypePointer Input %T -%4 = OpVariable %_ptr_Input_T Input +%3 = OpVariable %_ptr_Input_T Input %bool = OpTypeBool %_ptr_Input_bool = OpTypePointer Input %bool %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid -%14 = OpTypeFunction %void -%main = OpFunction %void None %14 -%15 = OpLabel +%11 = OpTypeFunction %void +%main = OpFunction %void None %11 +%12 = OpLabel OpReturn OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/Ossfuzz36770.glsl b/third_party/skia/tests/sksl/shared/Ossfuzz36770.glsl index a503b4074272..fcdab08ee4fb 100644 --- a/third_party/skia/tests/sksl/shared/Ossfuzz36770.glsl +++ b/third_party/skia/tests/sksl/shared/Ossfuzz36770.glsl @@ -1,5 +1,4 @@ -uniform vec2 u_skRTFlip; in T { int x; }; diff --git a/third_party/skia/tests/sksl/shared/Ossfuzz36770.metal b/third_party/skia/tests/sksl/shared/Ossfuzz36770.metal index c3674649a3b1..bda1c1d336e9 100644 --- a/third_party/skia/tests/sksl/shared/Ossfuzz36770.metal +++ b/third_party/skia/tests/sksl/shared/Ossfuzz36770.metal @@ -8,7 +8,6 @@ struct Outputs { }; struct T { int x; - float2 u_skRTFlip; }; struct Globals { constant T* _anonInterface0; diff --git a/third_party/skia/tests/sksl/shared/Ossfuzz36852.asm.frag b/third_party/skia/tests/sksl/shared/Ossfuzz36852.asm.frag index 065c911ec698..8c7aa730188f 100644 --- a/third_party/skia/tests/sksl/shared/Ossfuzz36852.asm.frag +++ b/third_party/skia/tests/sksl/shared/Ossfuzz36852.asm.frag @@ -14,9 +14,6 @@ OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpDecorate %sk_Clockwise BuiltIn FrontFacing OpDecorate %x RelaxedPrecision -OpDecorate %29 RelaxedPrecision -OpDecorate %30 RelaxedPrecision -OpDecorate %31 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %34 RelaxedPrecision OpDecorate %35 RelaxedPrecision @@ -33,8 +30,8 @@ OpDecorate %39 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float @@ -43,6 +40,9 @@ OpDecorate %39 RelaxedPrecision %float_1 = OpConstant %float 1 %float_2 = OpConstant %float 2 %float_3 = OpConstant %float 3 +%29 = OpConstantComposite %v2float %float_0 %float_1 +%30 = OpConstantComposite %v2float %float_2 %float_3 +%31 = OpConstantComposite %mat2v2float %29 %30 %_entrypoint_v = OpFunction %void None %12 %13 = OpLabel %17 = OpVariable %_ptr_Function_v2float Function @@ -56,9 +56,6 @@ OpFunctionEnd %22 = OpLabel %x = OpVariable %_ptr_Function_mat2v2float Function %y = OpVariable %_ptr_Function_v2float Function -%29 = OpCompositeConstruct %v2float %float_0 %float_1 -%30 = OpCompositeConstruct %v2float %float_2 %float_3 -%31 = OpCompositeConstruct %mat2v2float %29 %30 OpStore %x %31 %33 = OpLoad %mat2v2float %x %34 = OpCompositeExtract %float %33 0 0 diff --git a/third_party/skia/tests/sksl/shared/Ossfuzz37677.asm.frag b/third_party/skia/tests/sksl/shared/Ossfuzz37677.asm.frag index d7b4771c0e86..a9d66231a462 100644 --- a/third_party/skia/tests/sksl/shared/Ossfuzz37677.asm.frag +++ b/third_party/skia/tests/sksl/shared/Ossfuzz37677.asm.frag @@ -35,8 +35,8 @@ OpDecorate %40 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/Ossfuzz37900.asm.frag b/third_party/skia/tests/sksl/shared/Ossfuzz37900.asm.frag index 26806e311fb5..9751821fc01e 100644 --- a/third_party/skia/tests/sksl/shared/Ossfuzz37900.asm.frag +++ b/third_party/skia/tests/sksl/shared/Ossfuzz37900.asm.frag @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: variable 'a' exceeds the stack size limit + int[2147483646] a, b=a, c=a, d=a, e=a, f=a, g=a, h=a, i=a, j=a, k=a; + ^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/shared/Ossfuzz37900.glsl b/third_party/skia/tests/sksl/shared/Ossfuzz37900.glsl index 26806e311fb5..9751821fc01e 100644 --- a/third_party/skia/tests/sksl/shared/Ossfuzz37900.glsl +++ b/third_party/skia/tests/sksl/shared/Ossfuzz37900.glsl @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: variable 'a' exceeds the stack size limit + int[2147483646] a, b=a, c=a, d=a, e=a, f=a, g=a, h=a, i=a, j=a, k=a; + ^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/shared/Ossfuzz37900.metal b/third_party/skia/tests/sksl/shared/Ossfuzz37900.metal index 26806e311fb5..9751821fc01e 100644 --- a/third_party/skia/tests/sksl/shared/Ossfuzz37900.metal +++ b/third_party/skia/tests/sksl/shared/Ossfuzz37900.metal @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: variable 'a' exceeds the stack size limit + int[2147483646] a, b=a, c=a, d=a, e=a, f=a, g=a, h=a, i=a, j=a, k=a; + ^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/shared/OutParams.asm.frag b/third_party/skia/tests/sksl/shared/OutParams.asm.frag index 8bbc64e52bbe..a184cafa2634 100644 --- a/third_party/skia/tests/sksl/shared/OutParams.asm.frag +++ b/third_party/skia/tests/sksl/shared/OutParams.asm.frag @@ -208,52 +208,52 @@ OpDecorate %497 RelaxedPrecision %32 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %37 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %41 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %_ptr_Function_float = OpTypePointer Function %float -%45 = OpTypeFunction %void %_ptr_Function_float +%46 = OpTypeFunction %void %_ptr_Function_float %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int = OpTypeInt 32 1 %int_2 = OpConstant %int 2 %55 = OpTypeFunction %void %_ptr_Function_v2float %v3float = OpTypeVector %float 3 %_ptr_Function_v3float = OpTypePointer Function %v3float -%63 = OpTypeFunction %void %_ptr_Function_v3float +%64 = OpTypeFunction %void %_ptr_Function_v3float %_ptr_Function_v4float = OpTypePointer Function %v4float -%71 = OpTypeFunction %void %_ptr_Function_v4float +%72 = OpTypeFunction %void %_ptr_Function_v4float %mat2v2float = OpTypeMatrix %v2float 2 %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float -%80 = OpTypeFunction %void %_ptr_Function_mat2v2float +%81 = OpTypeFunction %void %_ptr_Function_mat2v2float %mat3v3float = OpTypeMatrix %v3float 3 %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float -%91 = OpTypeFunction %void %_ptr_Function_mat3v3float +%92 = OpTypeFunction %void %_ptr_Function_mat3v3float %mat4v4float = OpTypeMatrix %v4float 4 %_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float -%103 = OpTypeFunction %void %_ptr_Function_mat4v4float +%104 = OpTypeFunction %void %_ptr_Function_mat4v4float %_ptr_Function_int = OpTypePointer Function %int -%115 = OpTypeFunction %void %_ptr_Function_int +%116 = OpTypeFunction %void %_ptr_Function_int %v2int = OpTypeVector %int 2 %_ptr_Function_v2int = OpTypePointer Function %v2int -%124 = OpTypeFunction %void %_ptr_Function_v2int +%125 = OpTypeFunction %void %_ptr_Function_v2int %v3int = OpTypeVector %int 3 %_ptr_Function_v3int = OpTypePointer Function %v3int -%134 = OpTypeFunction %void %_ptr_Function_v3int +%135 = OpTypeFunction %void %_ptr_Function_v3int %v4int = OpTypeVector %int 4 %_ptr_Function_v4int = OpTypePointer Function %v4int -%144 = OpTypeFunction %void %_ptr_Function_v4int +%145 = OpTypeFunction %void %_ptr_Function_v4int %_ptr_Function_bool = OpTypePointer Function %bool -%203 = OpTypeFunction %void %_ptr_Function_bool +%204 = OpTypeFunction %void %_ptr_Function_bool %v2bool = OpTypeVector %bool 2 %_ptr_Function_v2bool = OpTypePointer Function %v2bool -%212 = OpTypeFunction %void %_ptr_Function_v2bool +%213 = OpTypeFunction %void %_ptr_Function_v2bool %v3bool = OpTypeVector %bool 3 %_ptr_Function_v3bool = OpTypePointer Function %v3bool -%222 = OpTypeFunction %void %_ptr_Function_v3bool +%223 = OpTypeFunction %void %_ptr_Function_v3bool %v4bool = OpTypeVector %bool 4 %_ptr_Function_v4bool = OpTypePointer Function %v4bool -%232 = OpTypeFunction %void %_ptr_Function_v4bool +%233 = OpTypeFunction %void %_ptr_Function_v4bool %241 = OpTypeFunction %v4float %_ptr_Function_v2float %int_1 = OpConstant %int 1 %int_3 = OpConstant %int 3 @@ -269,7 +269,7 @@ OpStore %42 %41 OpStore %sk_FragColor %44 OpReturn OpFunctionEnd -%out_half_vh = OpFunction %void None %45 +%out_half_vh = OpFunction %void None %46 %47 = OpFunctionParameter %_ptr_Function_float %48 = OpLabel %49 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -288,7 +288,7 @@ OpFunctionEnd OpStore %56 %61 OpReturn OpFunctionEnd -%out_half3_vh3 = OpFunction %void None %63 +%out_half3_vh3 = OpFunction %void None %64 %65 = OpFunctionParameter %_ptr_Function_v3float %66 = OpLabel %67 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -298,7 +298,7 @@ OpFunctionEnd OpStore %65 %70 OpReturn OpFunctionEnd -%out_half4_vh4 = OpFunction %void None %71 +%out_half4_vh4 = OpFunction %void None %72 %73 = OpFunctionParameter %_ptr_Function_v4float %74 = OpLabel %75 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -308,46 +308,46 @@ OpFunctionEnd OpStore %73 %78 OpReturn OpFunctionEnd -%out_half2x2_vh22 = OpFunction %void None %80 +%out_half2x2_vh22 = OpFunction %void None %81 %82 = OpFunctionParameter %_ptr_Function_mat2v2float %83 = OpLabel %84 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 %85 = OpLoad %v4float %84 %86 = OpCompositeExtract %float %85 0 -%88 = OpCompositeConstruct %v2float %86 %float_0 -%89 = OpCompositeConstruct %v2float %float_0 %86 -%87 = OpCompositeConstruct %mat2v2float %88 %89 -OpStore %82 %87 +%87 = OpCompositeConstruct %v2float %86 %float_0 +%88 = OpCompositeConstruct %v2float %float_0 %86 +%89 = OpCompositeConstruct %mat2v2float %87 %88 +OpStore %82 %89 OpReturn OpFunctionEnd -%out_half3x3_vh33 = OpFunction %void None %91 +%out_half3x3_vh33 = OpFunction %void None %92 %93 = OpFunctionParameter %_ptr_Function_mat3v3float %94 = OpLabel %95 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 %96 = OpLoad %v4float %95 %97 = OpCompositeExtract %float %96 1 -%99 = OpCompositeConstruct %v3float %97 %float_0 %float_0 -%100 = OpCompositeConstruct %v3float %float_0 %97 %float_0 -%101 = OpCompositeConstruct %v3float %float_0 %float_0 %97 -%98 = OpCompositeConstruct %mat3v3float %99 %100 %101 -OpStore %93 %98 +%98 = OpCompositeConstruct %v3float %97 %float_0 %float_0 +%99 = OpCompositeConstruct %v3float %float_0 %97 %float_0 +%100 = OpCompositeConstruct %v3float %float_0 %float_0 %97 +%101 = OpCompositeConstruct %mat3v3float %98 %99 %100 +OpStore %93 %101 OpReturn OpFunctionEnd -%out_half4x4_vh44 = OpFunction %void None %103 +%out_half4x4_vh44 = OpFunction %void None %104 %105 = OpFunctionParameter %_ptr_Function_mat4v4float %106 = OpLabel %107 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 %108 = OpLoad %v4float %107 %109 = OpCompositeExtract %float %108 2 -%111 = OpCompositeConstruct %v4float %109 %float_0 %float_0 %float_0 -%112 = OpCompositeConstruct %v4float %float_0 %109 %float_0 %float_0 -%113 = OpCompositeConstruct %v4float %float_0 %float_0 %109 %float_0 -%114 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %109 -%110 = OpCompositeConstruct %mat4v4float %111 %112 %113 %114 -OpStore %105 %110 +%110 = OpCompositeConstruct %v4float %109 %float_0 %float_0 %float_0 +%111 = OpCompositeConstruct %v4float %float_0 %109 %float_0 %float_0 +%112 = OpCompositeConstruct %v4float %float_0 %float_0 %109 %float_0 +%113 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %109 +%114 = OpCompositeConstruct %mat4v4float %110 %111 %112 %113 +OpStore %105 %114 OpReturn OpFunctionEnd -%out_int_vi = OpFunction %void None %115 +%out_int_vi = OpFunction %void None %116 %117 = OpFunctionParameter %_ptr_Function_int %118 = OpLabel %119 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -357,7 +357,7 @@ OpFunctionEnd OpStore %117 %122 OpReturn OpFunctionEnd -%out_int2_vi2 = OpFunction %void None %124 +%out_int2_vi2 = OpFunction %void None %125 %126 = OpFunctionParameter %_ptr_Function_v2int %127 = OpLabel %128 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -368,7 +368,7 @@ OpFunctionEnd OpStore %126 %132 OpReturn OpFunctionEnd -%out_int3_vi3 = OpFunction %void None %134 +%out_int3_vi3 = OpFunction %void None %135 %136 = OpFunctionParameter %_ptr_Function_v3int %137 = OpLabel %138 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -379,7 +379,7 @@ OpFunctionEnd OpStore %136 %142 OpReturn OpFunctionEnd -%out_int4_vi4 = OpFunction %void None %144 +%out_int4_vi4 = OpFunction %void None %145 %146 = OpFunctionParameter %_ptr_Function_v4int %147 = OpLabel %148 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -390,7 +390,7 @@ OpFunctionEnd OpStore %146 %152 OpReturn OpFunctionEnd -%out_float_vf = OpFunction %void None %45 +%out_float_vf = OpFunction %void None %46 %153 = OpFunctionParameter %_ptr_Function_float %154 = OpLabel %155 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -409,7 +409,7 @@ OpFunctionEnd OpStore %158 %163 OpReturn OpFunctionEnd -%out_float3_vf3 = OpFunction %void None %63 +%out_float3_vf3 = OpFunction %void None %64 %164 = OpFunctionParameter %_ptr_Function_v3float %165 = OpLabel %166 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -419,7 +419,7 @@ OpFunctionEnd OpStore %164 %169 OpReturn OpFunctionEnd -%out_float4_vf4 = OpFunction %void None %71 +%out_float4_vf4 = OpFunction %void None %72 %170 = OpFunctionParameter %_ptr_Function_v4float %171 = OpLabel %172 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -429,46 +429,46 @@ OpFunctionEnd OpStore %170 %175 OpReturn OpFunctionEnd -%out_float2x2_vf22 = OpFunction %void None %80 +%out_float2x2_vf22 = OpFunction %void None %81 %176 = OpFunctionParameter %_ptr_Function_mat2v2float %177 = OpLabel %178 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 %179 = OpLoad %v4float %178 %180 = OpCompositeExtract %float %179 0 -%182 = OpCompositeConstruct %v2float %180 %float_0 -%183 = OpCompositeConstruct %v2float %float_0 %180 -%181 = OpCompositeConstruct %mat2v2float %182 %183 -OpStore %176 %181 +%181 = OpCompositeConstruct %v2float %180 %float_0 +%182 = OpCompositeConstruct %v2float %float_0 %180 +%183 = OpCompositeConstruct %mat2v2float %181 %182 +OpStore %176 %183 OpReturn OpFunctionEnd -%out_float3x3_vf33 = OpFunction %void None %91 +%out_float3x3_vf33 = OpFunction %void None %92 %184 = OpFunctionParameter %_ptr_Function_mat3v3float %185 = OpLabel %186 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 %187 = OpLoad %v4float %186 %188 = OpCompositeExtract %float %187 1 -%190 = OpCompositeConstruct %v3float %188 %float_0 %float_0 -%191 = OpCompositeConstruct %v3float %float_0 %188 %float_0 -%192 = OpCompositeConstruct %v3float %float_0 %float_0 %188 -%189 = OpCompositeConstruct %mat3v3float %190 %191 %192 -OpStore %184 %189 +%189 = OpCompositeConstruct %v3float %188 %float_0 %float_0 +%190 = OpCompositeConstruct %v3float %float_0 %188 %float_0 +%191 = OpCompositeConstruct %v3float %float_0 %float_0 %188 +%192 = OpCompositeConstruct %mat3v3float %189 %190 %191 +OpStore %184 %192 OpReturn OpFunctionEnd -%out_float4x4_vf44 = OpFunction %void None %103 +%out_float4x4_vf44 = OpFunction %void None %104 %193 = OpFunctionParameter %_ptr_Function_mat4v4float %194 = OpLabel %195 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 %196 = OpLoad %v4float %195 %197 = OpCompositeExtract %float %196 2 -%199 = OpCompositeConstruct %v4float %197 %float_0 %float_0 %float_0 -%200 = OpCompositeConstruct %v4float %float_0 %197 %float_0 %float_0 -%201 = OpCompositeConstruct %v4float %float_0 %float_0 %197 %float_0 -%202 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %197 -%198 = OpCompositeConstruct %mat4v4float %199 %200 %201 %202 -OpStore %193 %198 +%198 = OpCompositeConstruct %v4float %197 %float_0 %float_0 %float_0 +%199 = OpCompositeConstruct %v4float %float_0 %197 %float_0 %float_0 +%200 = OpCompositeConstruct %v4float %float_0 %float_0 %197 %float_0 +%201 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %197 +%202 = OpCompositeConstruct %mat4v4float %198 %199 %200 %201 +OpStore %193 %202 OpReturn OpFunctionEnd -%out_bool_vb = OpFunction %void None %203 +%out_bool_vb = OpFunction %void None %204 %205 = OpFunctionParameter %_ptr_Function_bool %206 = OpLabel %207 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -478,7 +478,7 @@ OpFunctionEnd OpStore %205 %210 OpReturn OpFunctionEnd -%out_bool2_vb2 = OpFunction %void None %212 +%out_bool2_vb2 = OpFunction %void None %213 %214 = OpFunctionParameter %_ptr_Function_v2bool %215 = OpLabel %216 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -489,7 +489,7 @@ OpFunctionEnd OpStore %214 %220 OpReturn OpFunctionEnd -%out_bool3_vb3 = OpFunction %void None %222 +%out_bool3_vb3 = OpFunction %void None %223 %224 = OpFunctionParameter %_ptr_Function_v3bool %225 = OpLabel %226 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 @@ -500,7 +500,7 @@ OpFunctionEnd OpStore %224 %230 OpReturn OpFunctionEnd -%out_bool4_vb4 = OpFunction %void None %232 +%out_bool4_vb4 = OpFunction %void None %233 %234 = OpFunctionParameter %_ptr_Function_v4bool %235 = OpLabel %236 = OpAccessChain %_ptr_Uniform_v4float %32 %int_2 diff --git a/third_party/skia/tests/sksl/shared/OutParamsAreDistinct.asm.frag b/third_party/skia/tests/sksl/shared/OutParamsAreDistinct.asm.frag index 7aa5d7cf36cb..3a6d35618e78 100644 --- a/third_party/skia/tests/sksl/shared/OutParamsAreDistinct.asm.frag +++ b/third_party/skia/tests/sksl/shared/OutParamsAreDistinct.asm.frag @@ -45,12 +45,12 @@ OpDecorate %61 RelaxedPrecision %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %16 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %20 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %_ptr_Function_float = OpTypePointer Function %float -%24 = OpTypeFunction %bool %_ptr_Function_float %_ptr_Function_float +%25 = OpTypeFunction %bool %_ptr_Function_float %_ptr_Function_float %float_1 = OpConstant %float 1 %float_2 = OpConstant %float 2 %false = OpConstantFalse %bool @@ -68,7 +68,7 @@ OpStore %21 %20 OpStore %sk_FragColor %23 OpReturn OpFunctionEnd -%out_params_are_distinct_bhh = OpFunction %bool None %24 +%out_params_are_distinct_bhh = OpFunction %bool None %25 %26 = OpFunctionParameter %_ptr_Function_float %27 = OpFunctionParameter %_ptr_Function_float %28 = OpLabel diff --git a/third_party/skia/tests/sksl/shared/OutParamsAreDistinctFromGlobal.asm.frag b/third_party/skia/tests/sksl/shared/OutParamsAreDistinctFromGlobal.asm.frag new file mode 100644 index 000000000000..6b9bac8cf69b --- /dev/null +++ b/third_party/skia/tests/sksl/shared/OutParamsAreDistinctFromGlobal.asm.frag @@ -0,0 +1,111 @@ +OpCapability Shader +%1 = OpExtInstImport "GLSL.std.450" +OpMemoryModel Logical GLSL450 +OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise +OpExecutionMode %_entrypoint_v OriginUpperLeft +OpName %sk_FragColor "sk_FragColor" +OpName %sk_Clockwise "sk_Clockwise" +OpName %x "x" +OpName %_UniformBuffer "_UniformBuffer" +OpMemberName %_UniformBuffer 0 "colorGreen" +OpMemberName %_UniformBuffer 1 "colorRed" +OpName %_entrypoint_v "_entrypoint_v" +OpName %out_params_are_distinct_from_global_bh "out_params_are_distinct_from_global_bh" +OpName %main "main" +OpDecorate %sk_FragColor RelaxedPrecision +OpDecorate %sk_FragColor Location 0 +OpDecorate %sk_FragColor Index 0 +OpDecorate %sk_Clockwise BuiltIn FrontFacing +OpDecorate %x RelaxedPrecision +OpMemberDecorate %_UniformBuffer 0 Offset 0 +OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision +OpMemberDecorate %_UniformBuffer 1 Offset 16 +OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision +OpDecorate %_UniformBuffer Block +OpDecorate %14 Binding 0 +OpDecorate %14 DescriptorSet 0 +OpDecorate %33 RelaxedPrecision +OpDecorate %37 RelaxedPrecision +OpDecorate %43 RelaxedPrecision +OpDecorate %45 RelaxedPrecision +OpDecorate %55 RelaxedPrecision +OpDecorate %58 RelaxedPrecision +OpDecorate %59 RelaxedPrecision +%float = OpTypeFloat 32 +%v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float +%sk_FragColor = OpVariable %_ptr_Output_v4float Output +%bool = OpTypeBool +%_ptr_Input_bool = OpTypePointer Input %bool +%sk_Clockwise = OpVariable %_ptr_Input_bool Input +%_ptr_Private_float = OpTypePointer Private %float +%x = OpVariable %_ptr_Private_float Private +%float_1 = OpConstant %float 1 +%_UniformBuffer = OpTypeStruct %v4float %v4float +%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer +%14 = OpVariable %_ptr_Uniform__UniformBuffer Uniform +%void = OpTypeVoid +%19 = OpTypeFunction %void +%float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 +%23 = OpConstantComposite %v2float %float_0 %float_0 +%_ptr_Function_v2float = OpTypePointer Function %v2float +%_ptr_Function_float = OpTypePointer Function %float +%28 = OpTypeFunction %bool %_ptr_Function_float +%float_2 = OpConstant %float 2 +%false = OpConstantFalse %bool +%40 = OpTypeFunction %v4float %_ptr_Function_v2float +%_ptr_Function_v4float = OpTypePointer Function %v4float +%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float +%int = OpTypeInt 32 1 +%int_0 = OpConstant %int 0 +%int_1 = OpConstant %int 1 +%_entrypoint_v = OpFunction %void None %19 +%20 = OpLabel +%24 = OpVariable %_ptr_Function_v2float Function +OpStore %24 %23 +%26 = OpFunctionCall %v4float %main %24 +OpStore %sk_FragColor %26 +OpReturn +OpFunctionEnd +%out_params_are_distinct_from_global_bh = OpFunction %bool None %28 +%29 = OpFunctionParameter %_ptr_Function_float +%30 = OpLabel +OpStore %29 %float_2 +%33 = OpLoad %float %x +%34 = OpFOrdEqual %bool %33 %float_1 +OpSelectionMerge %36 None +OpBranchConditional %34 %35 %36 +%35 = OpLabel +%37 = OpLoad %float %29 +%38 = OpFOrdEqual %bool %37 %float_2 +OpBranch %36 +%36 = OpLabel +%39 = OpPhi %bool %false %30 %38 %35 +OpReturnValue %39 +OpFunctionEnd +%main = OpFunction %v4float None %40 +%41 = OpFunctionParameter %_ptr_Function_v2float +%42 = OpLabel +%43 = OpVariable %_ptr_Function_float Function +%46 = OpVariable %_ptr_Function_v4float Function +OpStore %x %float_1 +%44 = OpFunctionCall %bool %out_params_are_distinct_from_global_bh %43 +%45 = OpLoad %float %43 +OpStore %x %45 +OpSelectionMerge %50 None +OpBranchConditional %44 %48 %49 +%48 = OpLabel +%51 = OpAccessChain %_ptr_Uniform_v4float %14 %int_0 +%55 = OpLoad %v4float %51 +OpStore %46 %55 +OpBranch %50 +%49 = OpLabel +%56 = OpAccessChain %_ptr_Uniform_v4float %14 %int_1 +%58 = OpLoad %v4float %56 +OpStore %46 %58 +OpBranch %50 +%50 = OpLabel +%59 = OpLoad %v4float %46 +OpReturnValue %59 +OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/OutParamsAreDistinctFromGlobal.glsl b/third_party/skia/tests/sksl/shared/OutParamsAreDistinctFromGlobal.glsl new file mode 100644 index 000000000000..767bcf25b959 --- /dev/null +++ b/third_party/skia/tests/sksl/shared/OutParamsAreDistinctFromGlobal.glsl @@ -0,0 +1,12 @@ + +out vec4 sk_FragColor; +uniform vec4 colorGreen; +uniform vec4 colorRed; +float x = 1.0; +bool out_params_are_distinct_from_global_bh(out float y) { + y = 2.0; + return x == 1.0 && y == 2.0; +} +vec4 main() { + return out_params_are_distinct_from_global_bh(x) ? colorGreen : colorRed; +} diff --git a/third_party/skia/tests/sksl/shared/OutParamsAreDistinctFromGlobal.metal b/third_party/skia/tests/sksl/shared/OutParamsAreDistinctFromGlobal.metal new file mode 100644 index 000000000000..373f087bd038 --- /dev/null +++ b/third_party/skia/tests/sksl/shared/OutParamsAreDistinctFromGlobal.metal @@ -0,0 +1,34 @@ +#include +#include +using namespace metal; +struct Uniforms { + half4 colorGreen; + half4 colorRed; +}; +struct Inputs { +}; +struct Outputs { + half4 sk_FragColor [[color(0)]]; +}; +struct Globals { + half x; +}; +bool out_params_are_distinct_from_global_bh(thread Globals& _globals, thread half& y); +bool _skOutParamHelper0_out_params_are_distinct_from_global_bh(thread Globals& _globals, thread half& x) { + half _var0; + bool _skResult = out_params_are_distinct_from_global_bh(_globals, _var0); + x = _var0; + return _skResult; +} +bool out_params_are_distinct_from_global_bh(thread Globals& _globals, thread half& y) { + y = 2.0h; + return _globals.x == 1.0h && y == 2.0h; +} +fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { + Globals _globals{1.0h}; + (void)_globals; + Outputs _out; + (void)_out; + _out.sk_FragColor = _skOutParamHelper0_out_params_are_distinct_from_global_bh(_globals, _globals.x) ? _uniforms.colorGreen : _uniforms.colorRed; + return _out; +} diff --git a/third_party/skia/tests/sksl/shared/OutParamsTricky.asm.frag b/third_party/skia/tests/sksl/shared/OutParamsTricky.asm.frag index dca346a6c67c..09ce6708b3d7 100644 --- a/third_party/skia/tests/sksl/shared/OutParamsTricky.asm.frag +++ b/third_party/skia/tests/sksl/shared/OutParamsTricky.asm.frag @@ -43,12 +43,10 @@ OpDecorate %57 RelaxedPrecision OpDecorate %58 RelaxedPrecision OpDecorate %59 RelaxedPrecision OpDecorate %result RelaxedPrecision -OpDecorate %65 RelaxedPrecision OpDecorate %66 RelaxedPrecision OpDecorate %67 RelaxedPrecision OpDecorate %69 RelaxedPrecision OpDecorate %70 RelaxedPrecision -OpDecorate %71 RelaxedPrecision OpDecorate %83 RelaxedPrecision OpDecorate %86 RelaxedPrecision OpDecorate %87 RelaxedPrecision @@ -64,14 +62,14 @@ OpDecorate %87 RelaxedPrecision %12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %17 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %21 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %_ptr_Function_float = OpTypePointer Function %float -%25 = OpTypeFunction %v2float %_ptr_Function_float %_ptr_Function_float %_ptr_Function_v2float %_ptr_Function_float +%26 = OpTypeFunction %v2float %_ptr_Function_float %_ptr_Function_float %_ptr_Function_v2float %_ptr_Function_float %_ptr_Function_v4float = OpTypePointer Function %v4float -%39 = OpTypeFunction %void %_ptr_Function_v4float +%40 = OpTypeFunction %void %_ptr_Function_v4float %float_1 = OpConstant %float 1 %float_2 = OpConstant %float 2 %float_5 = OpConstant %float 5 @@ -92,7 +90,7 @@ OpStore %22 %21 OpStore %sk_FragColor %24 OpReturn OpFunctionEnd -%tricky_h2hhh2h = OpFunction %v2float None %25 +%tricky_h2hhh2h = OpFunction %v2float None %26 %27 = OpFunctionParameter %_ptr_Function_float %28 = OpFunctionParameter %_ptr_Function_float %29 = OpFunctionParameter %_ptr_Function_v2float @@ -108,7 +106,7 @@ OpStore %29 %33 %38 = OpCompositeConstruct %v2float %36 %37 OpReturnValue %38 OpFunctionEnd -%func_vh4 = OpFunction %void None %39 +%func_vh4 = OpFunction %void None %40 %41 = OpFunctionParameter %_ptr_Function_v4float %42 = OpLabel %t = OpVariable %_ptr_Function_v2float Function diff --git a/third_party/skia/tests/sksl/shared/Overflow.asm.frag b/third_party/skia/tests/sksl/shared/Overflow.asm.frag index 13df6fe403f4..d0af0ebfb2d0 100644 --- a/third_party/skia/tests/sksl/shared/Overflow.asm.frag +++ b/third_party/skia/tests/sksl/shared/Overflow.asm.frag @@ -111,7 +111,7 @@ OpDecorate %286 RelaxedPrecision OpDecorate %288 RelaxedPrecision OpDecorate %290 RelaxedPrecision OpDecorate %291 RelaxedPrecision -OpDecorate %294 RelaxedPrecision +OpDecorate %292 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -124,8 +124,8 @@ OpDecorate %294 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -155,6 +155,8 @@ OpDecorate %294 RelaxedPrecision %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_0 = OpConstant %int 0 %float_1 = OpConstant %float 1 +%278 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 +%279 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 %_entrypoint_v = OpFunction %void None %15 %16 = OpLabel %20 = OpVariable %_ptr_Function_v2float Function @@ -402,8 +404,6 @@ OpStore %hugeUvec %234 %275 = OpCompositeExtract %int %268 3 %276 = OpConvertSToF %float %275 %277 = OpCompositeConstruct %v4float %270 %272 %274 %276 -%278 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0 -%279 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 %267 = OpExtInst %v4float %1 FClamp %277 %278 %279 %280 = OpFMul %v4float %266 %267 %282 = OpLoad %v4uint %hugeUvec @@ -416,9 +416,7 @@ OpStore %hugeUvec %234 %289 = OpCompositeExtract %uint %282 3 %290 = OpConvertUToF %float %289 %291 = OpCompositeConstruct %v4float %284 %286 %288 %290 -%292 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0 -%293 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 -%281 = OpExtInst %v4float %1 FClamp %291 %292 %293 -%294 = OpFMul %v4float %280 %281 -OpReturnValue %294 +%281 = OpExtInst %v4float %1 FClamp %291 %278 %279 +%292 = OpFMul %v4float %280 %281 +OpReturnValue %292 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/RectangleTexture.asm.frag b/third_party/skia/tests/sksl/shared/RectangleTexture.asm.frag index 9ab545038c73..bf9be9e19bd7 100644 --- a/third_party/skia/tests/sksl/shared/RectangleTexture.asm.frag +++ b/third_party/skia/tests/sksl/shared/RectangleTexture.asm.frag @@ -28,15 +28,15 @@ OpDecorate %26 RelaxedPrecision %bool = OpTypeBool %_ptr_Input_bool = OpTypePointer Input %bool %sk_Clockwise = OpVariable %_ptr_Input_bool Input -%13 = OpTypeImage %float 2D 0 0 0 1 Unknown -%12 = OpTypeSampledImage %13 +%11 = OpTypeImage %float 2D 0 0 0 1 Unknown +%12 = OpTypeSampledImage %11 %_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 %test2D = OpVariable %_ptr_UniformConstant_12 UniformConstant %test2DRect = OpVariable %_ptr_UniformConstant_12 UniformConstant %void = OpTypeVoid %16 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0_5 = OpConstant %float 0.5 +%v2float = OpTypeVector %float 2 %22 = OpConstantComposite %v2float %float_0_5 %float_0_5 %v3float = OpTypeVector %float 3 %28 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5 diff --git a/third_party/skia/tests/sksl/shared/ResizeMatrix.asm.frag b/third_party/skia/tests/sksl/shared/ResizeMatrix.asm.frag index eca0a5db9b3e..fdca723f121b 100644 --- a/third_party/skia/tests/sksl/shared/ResizeMatrix.asm.frag +++ b/third_party/skia/tests/sksl/shared/ResizeMatrix.asm.frag @@ -28,9 +28,9 @@ OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 -OpDecorate %159 RelaxedPrecision -OpDecorate %162 RelaxedPrecision -OpDecorate %163 RelaxedPrecision +OpDecorate %116 RelaxedPrecision +OpDecorate %119 RelaxedPrecision +OpDecorate %120 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -43,8 +43,8 @@ OpDecorate %163 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -53,12 +53,24 @@ OpDecorate %163 RelaxedPrecision %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float %float_1 = OpConstant %float 1 %v3float = OpTypeVector %float 3 +%33 = OpConstantComposite %v3float %float_1 %float_0 %float_0 +%34 = OpConstantComposite %v3float %float_0 %float_1 %float_0 +%35 = OpConstantComposite %v3float %float_0 %float_0 %float_1 %mat3v3float = OpTypeMatrix %v3float 3 +%37 = OpConstantComposite %mat3v3float %33 %34 %35 %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 +%49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_0 +%50 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_0 +%51 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_0 +%52 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 %mat4v4float = OpTypeMatrix %v4float 4 +%54 = OpConstantComposite %mat4v4float %49 %50 %51 %52 %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float %_ptr_Function_v3float = OpTypePointer Function %v3float +%76 = OpConstantComposite %v2float %float_1 %float_0 +%77 = OpConstantComposite %v2float %float_0 %float_1 +%78 = OpConstantComposite %mat2v2float %76 %77 %_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float %_ptr_Function_v4float = OpTypePointer Function %v4float %float_6 = OpConstant %float 6 @@ -82,139 +94,84 @@ OpFunctionEnd %d = OpVariable %_ptr_Function_mat3v3float Function %e = OpVariable %_ptr_Function_mat4v4float Function %f = OpVariable %_ptr_Function_mat2v2float Function -%153 = OpVariable %_ptr_Function_v4float Function +%110 = OpVariable %_ptr_Function_v4float Function OpStore %result %float_0 -%34 = OpCompositeConstruct %v3float %float_1 %float_0 %float_0 -%35 = OpCompositeConstruct %v3float %float_0 %float_1 %float_0 -%36 = OpCompositeConstruct %v3float %float_0 %float_0 %float_1 -%32 = OpCompositeConstruct %mat3v3float %34 %35 %36 -%39 = OpCompositeExtract %v3float %32 0 -%40 = OpVectorShuffle %v2float %39 %39 0 1 -%41 = OpCompositeExtract %v3float %32 1 -%42 = OpVectorShuffle %v2float %41 %41 0 1 -%38 = OpCompositeConstruct %mat2v2float %40 %42 -OpStore %a %38 -%43 = OpLoad %float %result -%46 = OpAccessChain %_ptr_Function_v2float %a %int_0 -%47 = OpLoad %v2float %46 -%48 = OpCompositeExtract %float %47 0 -%49 = OpFAdd %float %43 %48 -OpStore %result %49 -%52 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0 -%53 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0 -%54 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0 -%55 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 -%51 = OpCompositeConstruct %mat4v4float %52 %53 %54 %55 -%58 = OpCompositeExtract %v4float %51 0 -%59 = OpVectorShuffle %v2float %58 %58 0 1 -%60 = OpCompositeExtract %v4float %51 1 -%61 = OpVectorShuffle %v2float %60 %60 0 1 -%57 = OpCompositeConstruct %mat2v2float %59 %61 +%38 = OpVectorShuffle %v2float %33 %33 0 1 +%39 = OpVectorShuffle %v2float %34 %34 0 1 +%40 = OpCompositeConstruct %mat2v2float %38 %39 +OpStore %a %40 +%41 = OpLoad %float %result +%44 = OpAccessChain %_ptr_Function_v2float %a %int_0 +%45 = OpLoad %v2float %44 +%46 = OpCompositeExtract %float %45 0 +%47 = OpFAdd %float %41 %46 +OpStore %result %47 +%55 = OpVectorShuffle %v2float %49 %49 0 1 +%56 = OpVectorShuffle %v2float %50 %50 0 1 +%57 = OpCompositeConstruct %mat2v2float %55 %56 OpStore %b %57 -%62 = OpLoad %float %result -%63 = OpAccessChain %_ptr_Function_v2float %b %int_0 -%64 = OpLoad %v2float %63 -%65 = OpCompositeExtract %float %64 0 -%66 = OpFAdd %float %62 %65 -OpStore %result %66 -%70 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0 -%71 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0 -%72 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0 -%73 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 -%69 = OpCompositeConstruct %mat4v4float %70 %71 %72 %73 -%75 = OpCompositeExtract %v4float %69 0 -%76 = OpVectorShuffle %v3float %75 %75 0 1 2 -%77 = OpCompositeExtract %v4float %69 1 -%78 = OpVectorShuffle %v3float %77 %77 0 1 2 -%79 = OpCompositeExtract %v4float %69 2 -%80 = OpVectorShuffle %v3float %79 %79 0 1 2 -%74 = OpCompositeConstruct %mat3v3float %76 %78 %80 -OpStore %c %74 -%81 = OpLoad %float %result -%82 = OpAccessChain %_ptr_Function_v3float %c %int_0 -%84 = OpLoad %v3float %82 -%85 = OpCompositeExtract %float %84 0 -%86 = OpFAdd %float %81 %85 -OpStore %result %86 -%89 = OpCompositeConstruct %v2float %float_1 %float_0 -%90 = OpCompositeConstruct %v2float %float_0 %float_1 -%88 = OpCompositeConstruct %mat2v2float %89 %90 -%92 = OpCompositeExtract %v2float %88 0 -%93 = OpCompositeConstruct %v3float %92 %float_0 -%94 = OpCompositeExtract %v2float %88 1 -%95 = OpCompositeConstruct %v3float %94 %float_0 -%96 = OpCompositeConstruct %v3float %float_0 %float_0 %float_1 -%91 = OpCompositeConstruct %mat3v3float %93 %95 %96 -OpStore %d %91 -%97 = OpLoad %float %result -%98 = OpAccessChain %_ptr_Function_v3float %d %int_0 -%99 = OpLoad %v3float %98 -%100 = OpCompositeExtract %float %99 0 -%101 = OpFAdd %float %97 %100 -OpStore %result %101 -%105 = OpCompositeConstruct %v2float %float_1 %float_0 -%106 = OpCompositeConstruct %v2float %float_0 %float_1 -%104 = OpCompositeConstruct %mat2v2float %105 %106 -%108 = OpCompositeExtract %v2float %104 0 -%109 = OpCompositeConstruct %v3float %108 %float_0 -%110 = OpCompositeExtract %v2float %104 1 -%111 = OpCompositeConstruct %v3float %110 %float_0 -%112 = OpCompositeConstruct %v3float %float_0 %float_0 %float_1 -%107 = OpCompositeConstruct %mat3v3float %109 %111 %112 -%114 = OpCompositeExtract %v3float %107 0 -%115 = OpCompositeConstruct %v4float %114 %float_0 -%116 = OpCompositeExtract %v3float %107 1 -%117 = OpCompositeConstruct %v4float %116 %float_0 -%118 = OpCompositeExtract %v3float %107 2 -%119 = OpCompositeConstruct %v4float %118 %float_0 -%120 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 -%113 = OpCompositeConstruct %mat4v4float %115 %117 %119 %120 -OpStore %e %113 -%121 = OpLoad %float %result -%122 = OpAccessChain %_ptr_Function_v4float %e %int_0 -%124 = OpLoad %v4float %122 -%125 = OpCompositeExtract %float %124 0 -%126 = OpFAdd %float %121 %125 -OpStore %result %126 -%129 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0 -%130 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0 -%131 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0 -%132 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 -%128 = OpCompositeConstruct %mat4v4float %129 %130 %131 %132 -%134 = OpCompositeExtract %v4float %128 0 -%135 = OpVectorShuffle %v3float %134 %134 0 1 2 -%136 = OpCompositeExtract %v4float %128 1 -%137 = OpVectorShuffle %v3float %136 %136 0 1 2 -%138 = OpCompositeExtract %v4float %128 2 -%139 = OpVectorShuffle %v3float %138 %138 0 1 2 -%133 = OpCompositeConstruct %mat3v3float %135 %137 %139 -%141 = OpCompositeExtract %v3float %133 0 -%142 = OpVectorShuffle %v2float %141 %141 0 1 -%143 = OpCompositeExtract %v3float %133 1 -%144 = OpVectorShuffle %v2float %143 %143 0 1 -%140 = OpCompositeConstruct %mat2v2float %142 %144 -OpStore %f %140 -%145 = OpLoad %float %result -%146 = OpAccessChain %_ptr_Function_v2float %f %int_0 -%147 = OpLoad %v2float %146 -%148 = OpCompositeExtract %float %147 0 -%149 = OpFAdd %float %145 %148 -OpStore %result %149 -%150 = OpLoad %float %result -%152 = OpFOrdEqual %bool %150 %float_6 -OpSelectionMerge %156 None -OpBranchConditional %152 %154 %155 -%154 = OpLabel -%157 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%159 = OpLoad %v4float %157 -OpStore %153 %159 -OpBranch %156 -%155 = OpLabel -%160 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%162 = OpLoad %v4float %160 -OpStore %153 %162 -OpBranch %156 -%156 = OpLabel -%163 = OpLoad %v4float %153 -OpReturnValue %163 +%58 = OpLoad %float %result +%59 = OpAccessChain %_ptr_Function_v2float %b %int_0 +%60 = OpLoad %v2float %59 +%61 = OpCompositeExtract %float %60 0 +%62 = OpFAdd %float %58 %61 +OpStore %result %62 +%65 = OpVectorShuffle %v3float %49 %49 0 1 2 +%66 = OpVectorShuffle %v3float %50 %50 0 1 2 +%67 = OpVectorShuffle %v3float %51 %51 0 1 2 +%68 = OpCompositeConstruct %mat3v3float %65 %66 %67 +OpStore %c %68 +%69 = OpLoad %float %result +%70 = OpAccessChain %_ptr_Function_v3float %c %int_0 +%72 = OpLoad %v3float %70 +%73 = OpCompositeExtract %float %72 0 +%74 = OpFAdd %float %69 %73 +OpStore %result %74 +OpStore %d %37 +%79 = OpLoad %float %result +%80 = OpAccessChain %_ptr_Function_v3float %d %int_0 +%81 = OpLoad %v3float %80 +%82 = OpCompositeExtract %float %81 0 +%83 = OpFAdd %float %79 %82 +OpStore %result %83 +OpStore %e %54 +%86 = OpLoad %float %result +%87 = OpAccessChain %_ptr_Function_v4float %e %int_0 +%89 = OpLoad %v4float %87 +%90 = OpCompositeExtract %float %89 0 +%91 = OpFAdd %float %86 %90 +OpStore %result %91 +%93 = OpVectorShuffle %v3float %49 %49 0 1 2 +%94 = OpVectorShuffle %v3float %50 %50 0 1 2 +%95 = OpVectorShuffle %v3float %51 %51 0 1 2 +%96 = OpCompositeConstruct %mat3v3float %93 %94 %95 +%97 = OpCompositeExtract %v3float %96 0 +%98 = OpVectorShuffle %v2float %97 %97 0 1 +%99 = OpCompositeExtract %v3float %96 1 +%100 = OpVectorShuffle %v2float %99 %99 0 1 +%101 = OpCompositeConstruct %mat2v2float %98 %100 +OpStore %f %101 +%102 = OpLoad %float %result +%103 = OpAccessChain %_ptr_Function_v2float %f %int_0 +%104 = OpLoad %v2float %103 +%105 = OpCompositeExtract %float %104 0 +%106 = OpFAdd %float %102 %105 +OpStore %result %106 +%107 = OpLoad %float %result +%109 = OpFOrdEqual %bool %107 %float_6 +OpSelectionMerge %113 None +OpBranchConditional %109 %111 %112 +%111 = OpLabel +%114 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%116 = OpLoad %v4float %114 +OpStore %110 %116 +OpBranch %113 +%112 = OpLabel +%117 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%119 = OpLoad %v4float %117 +OpStore %110 %119 +OpBranch %113 +%113 = OpLabel +%120 = OpLoad %v4float %110 +OpReturnValue %120 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/ResizeMatrixNonsquare.asm.frag b/third_party/skia/tests/sksl/shared/ResizeMatrixNonsquare.asm.frag index c2ddaf49c1c5..5b0e34d051a7 100644 --- a/third_party/skia/tests/sksl/shared/ResizeMatrixNonsquare.asm.frag +++ b/third_party/skia/tests/sksl/shared/ResizeMatrixNonsquare.asm.frag @@ -28,9 +28,9 @@ OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpDecorate %_UniformBuffer Block OpDecorate %10 Binding 0 OpDecorate %10 DescriptorSet 0 -OpDecorate %164 RelaxedPrecision -OpDecorate %167 RelaxedPrecision -OpDecorate %168 RelaxedPrecision +OpDecorate %112 RelaxedPrecision +OpDecorate %115 RelaxedPrecision +OpDecorate %116 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -43,8 +43,8 @@ OpDecorate %168 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -53,18 +53,36 @@ OpDecorate %168 RelaxedPrecision %mat3v3float = OpTypeMatrix %v3float 3 %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float %float_1 = OpConstant %float 1 +%33 = OpConstantComposite %v3float %float_1 %float_0 %float_0 +%34 = OpConstantComposite %v3float %float_0 %float_1 %float_0 %mat2v3float = OpTypeMatrix %v3float 2 +%36 = OpConstantComposite %mat2v3float %33 %34 +%37 = OpConstantComposite %v3float %float_0 %float_0 %float_1 +%38 = OpConstantComposite %mat3v3float %33 %34 %37 %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %_ptr_Function_v3float = OpTypePointer Function %v3float +%48 = OpConstantComposite %v2float %float_1 %float_0 +%49 = OpConstantComposite %v2float %float_0 %float_1 %mat3v2float = OpTypeMatrix %v2float 3 +%51 = OpConstantComposite %mat3v2float %48 %49 %19 %mat4v4float = OpTypeMatrix %v4float 4 %_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float %mat4v2float = OpTypeMatrix %v2float 4 +%61 = OpConstantComposite %mat4v2float %48 %49 %19 %19 +%62 = OpConstantComposite %v3float %float_0 %float_0 %float_0 %mat4v3float = OpTypeMatrix %v3float 4 +%64 = OpConstantComposite %mat4v3float %33 %34 %37 %62 +%65 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_0 +%66 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_0 +%67 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_0 +%68 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 +%69 = OpConstantComposite %mat4v4float %65 %66 %67 %68 %_ptr_Function_v4float = OpTypePointer Function %v4float %mat2v4float = OpTypeMatrix %v4float 2 +%78 = OpConstantComposite %mat2v4float %65 %66 %mat3v4float = OpTypeMatrix %v4float 3 +%80 = OpConstantComposite %mat3v4float %65 %66 %67 %_ptr_Function_mat2v4float = OpTypePointer Function %mat2v4float %_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float %float_6 = OpConstant %float 6 @@ -88,138 +106,68 @@ OpFunctionEnd %j = OpVariable %_ptr_Function_mat4v4float Function %k = OpVariable %_ptr_Function_mat2v4float Function %l = OpVariable %_ptr_Function_mat4v2float Function -%158 = OpVariable %_ptr_Function_v4float Function +%106 = OpVariable %_ptr_Function_v4float Function OpStore %result %float_0 -%34 = OpCompositeConstruct %v3float %float_1 %float_0 %float_0 -%35 = OpCompositeConstruct %v3float %float_0 %float_1 %float_0 -%33 = OpCompositeConstruct %mat2v3float %34 %35 -%38 = OpCompositeExtract %v3float %33 0 -%39 = OpCompositeExtract %v3float %33 1 -%40 = OpCompositeConstruct %v3float %float_0 %float_0 %float_1 -%37 = OpCompositeConstruct %mat3v3float %38 %39 %40 -OpStore %g %37 -%41 = OpLoad %float %result -%44 = OpAccessChain %_ptr_Function_v3float %g %int_0 -%46 = OpLoad %v3float %44 -%47 = OpCompositeExtract %float %46 0 -%48 = OpFAdd %float %41 %47 -OpStore %result %48 -%51 = OpCompositeConstruct %v2float %float_1 %float_0 -%52 = OpCompositeConstruct %v2float %float_0 %float_1 -%53 = OpCompositeConstruct %v2float %float_0 %float_0 -%50 = OpCompositeConstruct %mat3v2float %51 %52 %53 -%56 = OpCompositeExtract %v2float %50 0 -%57 = OpCompositeConstruct %v3float %56 %float_0 -%58 = OpCompositeExtract %v2float %50 1 -%59 = OpCompositeConstruct %v3float %58 %float_0 -%60 = OpCompositeExtract %v2float %50 2 -%61 = OpCompositeConstruct %v3float %60 %float_1 -%55 = OpCompositeConstruct %mat3v3float %57 %59 %61 -OpStore %h %55 -%62 = OpLoad %float %result -%63 = OpAccessChain %_ptr_Function_v3float %h %int_0 -%64 = OpLoad %v3float %63 -%65 = OpCompositeExtract %float %64 0 -%66 = OpFAdd %float %62 %65 -OpStore %result %66 -%71 = OpCompositeConstruct %v2float %float_1 %float_0 -%72 = OpCompositeConstruct %v2float %float_0 %float_1 -%73 = OpCompositeConstruct %v2float %float_0 %float_0 -%74 = OpCompositeConstruct %v2float %float_0 %float_0 -%70 = OpCompositeConstruct %mat4v2float %71 %72 %73 %74 -%77 = OpCompositeExtract %v2float %70 0 -%78 = OpCompositeConstruct %v3float %77 %float_0 -%79 = OpCompositeExtract %v2float %70 1 -%80 = OpCompositeConstruct %v3float %79 %float_0 -%81 = OpCompositeExtract %v2float %70 2 -%82 = OpCompositeConstruct %v3float %81 %float_1 -%83 = OpCompositeExtract %v2float %70 3 -%84 = OpCompositeConstruct %v3float %83 %float_0 -%76 = OpCompositeConstruct %mat4v3float %78 %80 %82 %84 -%87 = OpCompositeExtract %v3float %76 0 -%88 = OpCompositeConstruct %v4float %87 %float_0 -%89 = OpCompositeExtract %v3float %76 1 -%90 = OpCompositeConstruct %v4float %89 %float_0 -%91 = OpCompositeExtract %v3float %76 2 -%92 = OpCompositeConstruct %v4float %91 %float_0 -%93 = OpCompositeExtract %v3float %76 3 -%94 = OpCompositeConstruct %v4float %93 %float_1 -%86 = OpCompositeConstruct %mat4v4float %88 %90 %92 %94 -OpStore %i %86 -%95 = OpLoad %float %result -%96 = OpAccessChain %_ptr_Function_v4float %i %int_0 -%98 = OpLoad %v4float %96 -%99 = OpCompositeExtract %float %98 0 -%100 = OpFAdd %float %95 %99 -OpStore %result %100 -%103 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0 -%104 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0 -%102 = OpCompositeConstruct %mat2v4float %103 %104 -%107 = OpCompositeExtract %v4float %102 0 -%108 = OpCompositeExtract %v4float %102 1 -%109 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0 -%106 = OpCompositeConstruct %mat3v4float %107 %108 %109 -%112 = OpCompositeExtract %v4float %106 0 -%113 = OpCompositeExtract %v4float %106 1 -%114 = OpCompositeExtract %v4float %106 2 -%115 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1 -%111 = OpCompositeConstruct %mat4v4float %112 %113 %114 %115 -OpStore %j %111 -%116 = OpLoad %float %result -%117 = OpAccessChain %_ptr_Function_v4float %j %int_0 -%118 = OpLoad %v4float %117 -%119 = OpCompositeExtract %float %118 0 -%120 = OpFAdd %float %116 %119 -OpStore %result %120 -%124 = OpCompositeConstruct %v2float %float_1 %float_0 -%125 = OpCompositeConstruct %v2float %float_0 %float_1 -%126 = OpCompositeConstruct %v2float %float_0 %float_0 -%127 = OpCompositeConstruct %v2float %float_0 %float_0 -%123 = OpCompositeConstruct %mat4v2float %124 %125 %126 %127 -%129 = OpCompositeExtract %v2float %123 0 -%130 = OpCompositeConstruct %v4float %129 %float_0 %float_0 -%131 = OpCompositeExtract %v2float %123 1 -%132 = OpCompositeConstruct %v4float %131 %float_0 %float_0 -%128 = OpCompositeConstruct %mat2v4float %130 %132 -OpStore %k %128 -%133 = OpLoad %float %result -%134 = OpAccessChain %_ptr_Function_v4float %k %int_0 -%135 = OpLoad %v4float %134 -%136 = OpCompositeExtract %float %135 0 -%137 = OpFAdd %float %133 %136 -OpStore %result %137 -%141 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0 -%142 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0 -%140 = OpCompositeConstruct %mat2v4float %141 %142 -%144 = OpCompositeExtract %v4float %140 0 -%145 = OpVectorShuffle %v2float %144 %144 0 1 -%146 = OpCompositeExtract %v4float %140 1 -%147 = OpVectorShuffle %v2float %146 %146 0 1 -%148 = OpCompositeConstruct %v2float %float_0 %float_0 -%149 = OpCompositeConstruct %v2float %float_0 %float_0 -%143 = OpCompositeConstruct %mat4v2float %145 %147 %148 %149 -OpStore %l %143 -%150 = OpLoad %float %result -%151 = OpAccessChain %_ptr_Function_v2float %l %int_0 -%152 = OpLoad %v2float %151 -%153 = OpCompositeExtract %float %152 0 -%154 = OpFAdd %float %150 %153 -OpStore %result %154 -%155 = OpLoad %float %result -%157 = OpFOrdEqual %bool %155 %float_6 -OpSelectionMerge %161 None -OpBranchConditional %157 %159 %160 -%159 = OpLabel -%162 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%164 = OpLoad %v4float %162 -OpStore %158 %164 -OpBranch %161 -%160 = OpLabel -%165 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%167 = OpLoad %v4float %165 -OpStore %158 %167 -OpBranch %161 -%161 = OpLabel -%168 = OpLoad %v4float %158 -OpReturnValue %168 +OpStore %g %38 +%39 = OpLoad %float %result +%42 = OpAccessChain %_ptr_Function_v3float %g %int_0 +%44 = OpLoad %v3float %42 +%45 = OpCompositeExtract %float %44 0 +%46 = OpFAdd %float %39 %45 +OpStore %result %46 +OpStore %h %38 +%52 = OpLoad %float %result +%53 = OpAccessChain %_ptr_Function_v3float %h %int_0 +%54 = OpLoad %v3float %53 +%55 = OpCompositeExtract %float %54 0 +%56 = OpFAdd %float %52 %55 +OpStore %result %56 +OpStore %i %69 +%70 = OpLoad %float %result +%71 = OpAccessChain %_ptr_Function_v4float %i %int_0 +%73 = OpLoad %v4float %71 +%74 = OpCompositeExtract %float %73 0 +%75 = OpFAdd %float %70 %74 +OpStore %result %75 +OpStore %j %69 +%81 = OpLoad %float %result +%82 = OpAccessChain %_ptr_Function_v4float %j %int_0 +%83 = OpLoad %v4float %82 +%84 = OpCompositeExtract %float %83 0 +%85 = OpFAdd %float %81 %84 +OpStore %result %85 +OpStore %k %78 +%88 = OpLoad %float %result +%89 = OpAccessChain %_ptr_Function_v4float %k %int_0 +%90 = OpLoad %v4float %89 +%91 = OpCompositeExtract %float %90 0 +%92 = OpFAdd %float %88 %91 +OpStore %result %92 +%95 = OpVectorShuffle %v2float %65 %65 0 1 +%96 = OpVectorShuffle %v2float %66 %66 0 1 +%97 = OpCompositeConstruct %mat4v2float %95 %96 %19 %19 +OpStore %l %97 +%98 = OpLoad %float %result +%99 = OpAccessChain %_ptr_Function_v2float %l %int_0 +%100 = OpLoad %v2float %99 +%101 = OpCompositeExtract %float %100 0 +%102 = OpFAdd %float %98 %101 +OpStore %result %102 +%103 = OpLoad %float %result +%105 = OpFOrdEqual %bool %103 %float_6 +OpSelectionMerge %109 None +OpBranchConditional %105 %107 %108 +%107 = OpLabel +%110 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%112 = OpLoad %v4float %110 +OpStore %106 %112 +OpBranch %109 +%108 = OpLabel +%113 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%115 = OpLoad %v4float %113 +OpStore %106 %115 +OpBranch %109 +%109 = OpLabel +%116 = OpLoad %v4float %106 +OpReturnValue %116 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/ReturnBadTypeFromMain.metal b/third_party/skia/tests/sksl/shared/ReturnBadTypeFromMain.metal index c71f89241d93..683653c27146 100644 --- a/third_party/skia/tests/sksl/shared/ReturnBadTypeFromMain.metal +++ b/third_party/skia/tests/sksl/shared/ReturnBadTypeFromMain.metal @@ -1,4 +1,6 @@ ### Compilation failed: error: 2: Metal does not support returning 'int3' from main() + return int3(1, 2, 3); + ^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/shared/ReturnColorFromMain.asm.frag b/third_party/skia/tests/sksl/shared/ReturnColorFromMain.asm.frag index 5b58771f089d..d7963a5046f3 100644 --- a/third_party/skia/tests/sksl/shared/ReturnColorFromMain.asm.frag +++ b/third_party/skia/tests/sksl/shared/ReturnColorFromMain.asm.frag @@ -11,7 +11,6 @@ OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpDecorate %sk_Clockwise BuiltIn FrontFacing -OpDecorate %27 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -21,8 +20,8 @@ OpDecorate %27 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/ReturnsValueOnEveryPathES2.asm.frag b/third_party/skia/tests/sksl/shared/ReturnsValueOnEveryPathES2.asm.frag index 847580ef8fd3..660a78065ab7 100644 --- a/third_party/skia/tests/sksl/shared/ReturnsValueOnEveryPathES2.asm.frag +++ b/third_party/skia/tests/sksl/shared/ReturnsValueOnEveryPathES2.asm.frag @@ -53,8 +53,8 @@ OpDecorate %146 RelaxedPrecision %15 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %20 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %24 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %28 = OpTypeFunction %bool diff --git a/third_party/skia/tests/sksl/shared/ReturnsValueOnEveryPathES3.asm.frag b/third_party/skia/tests/sksl/shared/ReturnsValueOnEveryPathES3.asm.frag index 8855429d803b..459eea78ed86 100644 --- a/third_party/skia/tests/sksl/shared/ReturnsValueOnEveryPathES3.asm.frag +++ b/third_party/skia/tests/sksl/shared/ReturnsValueOnEveryPathES3.asm.frag @@ -63,8 +63,8 @@ OpDecorate %220 RelaxedPrecision %22 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %27 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %31 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %35 = OpTypeFunction %bool diff --git a/third_party/skia/tests/sksl/shared/SampleLocations.asm.vert b/third_party/skia/tests/sksl/shared/SampleLocations.asm.vert index 2bcdc65f3b71..694265fe9023 100644 --- a/third_party/skia/tests/sksl/shared/SampleLocations.asm.vert +++ b/third_party/skia/tests/sksl/shared/SampleLocations.asm.vert @@ -120,9 +120,9 @@ OpStore %outset %float_0_03125 OpSelectionMerge %72 None OpBranchConditional %67 %70 %71 %70 = OpLabel -%74 = OpLoad %float %outset -%73 = OpFNegate %float %74 -OpStore %69 %73 +%73 = OpLoad %float %outset +%74 = OpFNegate %float %73 +OpStore %69 %74 OpBranch %72 %71 = OpLabel %75 = OpLoad %float %outset diff --git a/third_party/skia/tests/sksl/shared/ScalarConversionConstructorsES2.asm.frag b/third_party/skia/tests/sksl/shared/ScalarConversionConstructorsES2.asm.frag index 99b126ea3b06..034d81d57483 100644 --- a/third_party/skia/tests/sksl/shared/ScalarConversionConstructorsES2.asm.frag +++ b/third_party/skia/tests/sksl/shared/ScalarConversionConstructorsES2.asm.frag @@ -74,8 +74,8 @@ OpDecorate %106 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/ScalarConversionConstructorsES3.asm.frag b/third_party/skia/tests/sksl/shared/ScalarConversionConstructorsES3.asm.frag index c830f2ee475f..2e7d9ca8abbb 100644 --- a/third_party/skia/tests/sksl/shared/ScalarConversionConstructorsES3.asm.frag +++ b/third_party/skia/tests/sksl/shared/ScalarConversionConstructorsES3.asm.frag @@ -99,8 +99,8 @@ OpDecorate %155 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/ScopedSymbol.asm.frag b/third_party/skia/tests/sksl/shared/ScopedSymbol.asm.frag index 35f247c2789c..6ece5e280dfc 100644 --- a/third_party/skia/tests/sksl/shared/ScopedSymbol.asm.frag +++ b/third_party/skia/tests/sksl/shared/ScopedSymbol.asm.frag @@ -53,8 +53,8 @@ OpDecorate %87 RelaxedPrecision %17 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %22 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %26 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %30 = OpTypeFunction %bool diff --git a/third_party/skia/tests/sksl/shared/StackingVectorCasts.asm.frag b/third_party/skia/tests/sksl/shared/StackingVectorCasts.asm.frag index c5f68ea607ae..33146296e933 100644 --- a/third_party/skia/tests/sksl/shared/StackingVectorCasts.asm.frag +++ b/third_party/skia/tests/sksl/shared/StackingVectorCasts.asm.frag @@ -34,8 +34,8 @@ OpDecorate %30 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/StaticIf.asm.frag b/third_party/skia/tests/sksl/shared/StaticIf.asm.frag index 707be3162170..582678d31982 100644 --- a/third_party/skia/tests/sksl/shared/StaticIf.asm.frag +++ b/third_party/skia/tests/sksl/shared/StaticIf.asm.frag @@ -38,8 +38,8 @@ OpDecorate %36 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/StaticSwitch.asm.frag b/third_party/skia/tests/sksl/shared/StaticSwitch.asm.frag index c5f68ea607ae..33146296e933 100644 --- a/third_party/skia/tests/sksl/shared/StaticSwitch.asm.frag +++ b/third_party/skia/tests/sksl/shared/StaticSwitch.asm.frag @@ -34,8 +34,8 @@ OpDecorate %30 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/StaticSwitchWithContinue.asm.frag b/third_party/skia/tests/sksl/shared/StaticSwitchWithContinue.asm.frag index bac74a4160e9..8a4f0a70f198 100644 --- a/third_party/skia/tests/sksl/shared/StaticSwitchWithContinue.asm.frag +++ b/third_party/skia/tests/sksl/shared/StaticSwitchWithContinue.asm.frag @@ -38,8 +38,8 @@ OpDecorate %55 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/StructArrayFollowedByScalar.asm.frag b/third_party/skia/tests/sksl/shared/StructArrayFollowedByScalar.asm.frag index 67d0fc940e62..656996b772c4 100644 --- a/third_party/skia/tests/sksl/shared/StructArrayFollowedByScalar.asm.frag +++ b/third_party/skia/tests/sksl/shared/StructArrayFollowedByScalar.asm.frag @@ -34,8 +34,8 @@ OpDecorate %46 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/StructsInFunctions.asm.frag b/third_party/skia/tests/sksl/shared/StructsInFunctions.asm.frag index b44a1167d37d..e55fd94d7245 100644 --- a/third_party/skia/tests/sksl/shared/StructsInFunctions.asm.frag +++ b/third_party/skia/tests/sksl/shared/StructsInFunctions.asm.frag @@ -93,8 +93,8 @@ OpDecorate %288 RelaxedPrecision %14 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %19 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %23 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %int = OpTypeInt 32 1 @@ -295,7 +295,7 @@ OpBranchConditional %161 %162 %163 %165 = OpFunctionCall %S %returns_a_struct_S %166 = OpCompositeExtract %float %164 0 %167 = OpCompositeExtract %float %165 0 -%168 = OpFOrdNotEqual %bool %166 %167 +%168 = OpFUnordNotEqual %bool %166 %167 %169 = OpCompositeExtract %int %164 1 %170 = OpCompositeExtract %int %165 1 %171 = OpINotEqual %bool %169 %170 @@ -339,7 +339,7 @@ OpBranchConditional %197 %198 %199 %203 = OpCompositeExtract %S %201 0 %204 = OpCompositeExtract %float %202 0 %205 = OpCompositeExtract %float %203 0 -%206 = OpFOrdNotEqual %bool %204 %205 +%206 = OpFUnordNotEqual %bool %204 %205 %207 = OpCompositeExtract %int %202 1 %208 = OpCompositeExtract %int %203 1 %209 = OpINotEqual %bool %207 %208 @@ -348,7 +348,7 @@ OpBranchConditional %197 %198 %199 %212 = OpCompositeExtract %S %201 1 %213 = OpCompositeExtract %float %211 0 %214 = OpCompositeExtract %float %212 0 -%215 = OpFOrdNotEqual %bool %213 %214 +%215 = OpFUnordNotEqual %bool %213 %214 %216 = OpCompositeExtract %int %211 1 %217 = OpCompositeExtract %int %212 1 %218 = OpINotEqual %bool %216 %217 @@ -410,7 +410,7 @@ OpBranchConditional %263 %264 %265 %267 = OpLoad %Compound %c3 %268 = OpCompositeExtract %v4float %266 0 %269 = OpCompositeExtract %v4float %267 0 -%270 = OpFOrdNotEqual %v4bool %268 %269 +%270 = OpFUnordNotEqual %v4bool %268 %269 %271 = OpAny %bool %270 %272 = OpCompositeExtract %v3int %266 1 %273 = OpCompositeExtract %v3int %267 1 diff --git a/third_party/skia/tests/sksl/shared/SwitchWithFallthrough.glsl b/third_party/skia/tests/sksl/shared/SwitchWithFallthrough.glsl index d281cfae44a9..460e1f708db7 100644 --- a/third_party/skia/tests/sksl/shared/SwitchWithFallthrough.glsl +++ b/third_party/skia/tests/sksl/shared/SwitchWithFallthrough.glsl @@ -11,13 +11,11 @@ bool switch_fallthrough_twice_bi(int value) { _tmpSwitchFallthrough0 = 1; } if ((_tmpSwitchFallthrough0 > 0) || (_tmpSwitchValue1 == 1)) { - { - } + ; _tmpSwitchFallthrough0 = 1; } if ((_tmpSwitchFallthrough0 > 0) || (_tmpSwitchValue1 == 2)) { - { - } + ; _tmpSwitchFallthrough0 = 1; } if ((_tmpSwitchFallthrough0 > 0) || (_tmpSwitchValue1 == 3)) { @@ -39,8 +37,7 @@ vec4 main() { _tmpSwitchFallthrough3 = 1; } if ((_tmpSwitchFallthrough3 > 0) || (_tmpSwitchValue4 == 1)) { - { - } + ; _tmpSwitchFallthrough3 = 1; } if ((_tmpSwitchFallthrough3 > 0) || (_tmpSwitchValue4 == 0)) { diff --git a/third_party/skia/tests/sksl/shared/SwizzleBoolConstants.asm.frag b/third_party/skia/tests/sksl/shared/SwizzleBoolConstants.asm.frag index b37a247c4df3..99ca5b63c2b1 100644 --- a/third_party/skia/tests/sksl/shared/SwizzleBoolConstants.asm.frag +++ b/third_party/skia/tests/sksl/shared/SwizzleBoolConstants.asm.frag @@ -73,8 +73,8 @@ OpDecorate %167 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/SwizzleByConstantIndex.asm.frag b/third_party/skia/tests/sksl/shared/SwizzleByConstantIndex.asm.frag index 0d7f6bec1533..55f74cc8a6a0 100644 --- a/third_party/skia/tests/sksl/shared/SwizzleByConstantIndex.asm.frag +++ b/third_party/skia/tests/sksl/shared/SwizzleByConstantIndex.asm.frag @@ -80,7 +80,6 @@ OpDecorate %71 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %73 RelaxedPrecision OpDecorate %_13_v RelaxedPrecision -OpDecorate %78 RelaxedPrecision OpDecorate %_14_x RelaxedPrecision OpDecorate %80 RelaxedPrecision OpDecorate %81 RelaxedPrecision @@ -100,7 +99,6 @@ OpDecorate %94 RelaxedPrecision OpDecorate %95 RelaxedPrecision OpDecorate %96 RelaxedPrecision OpDecorate %98 RelaxedPrecision -OpDecorate %102 RelaxedPrecision OpDecorate %108 RelaxedPrecision OpDecorate %114 RelaxedPrecision OpDecorate %124 RelaxedPrecision @@ -118,8 +116,8 @@ OpDecorate %128 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/SwizzleByIndex.asm.frag b/third_party/skia/tests/sksl/shared/SwizzleByIndex.asm.frag index e07b6660ea4b..31161addbcef 100644 --- a/third_party/skia/tests/sksl/shared/SwizzleByIndex.asm.frag +++ b/third_party/skia/tests/sksl/shared/SwizzleByIndex.asm.frag @@ -53,7 +53,6 @@ OpDecorate %70 RelaxedPrecision OpDecorate %71 RelaxedPrecision OpDecorate %72 RelaxedPrecision OpDecorate %73 RelaxedPrecision -OpDecorate %75 RelaxedPrecision OpDecorate %85 RelaxedPrecision OpDecorate %88 RelaxedPrecision OpDecorate %89 RelaxedPrecision @@ -69,8 +68,8 @@ OpDecorate %89 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/SwizzleConstants.asm.frag b/third_party/skia/tests/sksl/shared/SwizzleConstants.asm.frag index b3409663f870..6fe9e4fa31cf 100644 --- a/third_party/skia/tests/sksl/shared/SwizzleConstants.asm.frag +++ b/third_party/skia/tests/sksl/shared/SwizzleConstants.asm.frag @@ -140,7 +140,6 @@ OpDecorate %144 RelaxedPrecision OpDecorate %145 RelaxedPrecision OpDecorate %146 RelaxedPrecision OpDecorate %147 RelaxedPrecision -OpDecorate %148 RelaxedPrecision OpDecorate %158 RelaxedPrecision OpDecorate %161 RelaxedPrecision OpDecorate %162 RelaxedPrecision @@ -156,8 +155,8 @@ OpDecorate %162 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/SwizzleLTRB.asm.frag b/third_party/skia/tests/sksl/shared/SwizzleLTRB.asm.frag index 658c9232bff6..aef90d696922 100644 --- a/third_party/skia/tests/sksl/shared/SwizzleLTRB.asm.frag +++ b/third_party/skia/tests/sksl/shared/SwizzleLTRB.asm.frag @@ -32,8 +32,8 @@ OpDecorate %31 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/SwizzleOpt.asm.frag b/third_party/skia/tests/sksl/shared/SwizzleOpt.asm.frag index 6492bfe3b050..1f2297fedf26 100644 --- a/third_party/skia/tests/sksl/shared/SwizzleOpt.asm.frag +++ b/third_party/skia/tests/sksl/shared/SwizzleOpt.asm.frag @@ -75,7 +75,6 @@ OpDecorate %105 RelaxedPrecision OpDecorate %106 RelaxedPrecision OpDecorate %109 RelaxedPrecision OpDecorate %110 RelaxedPrecision -OpDecorate %113 RelaxedPrecision OpDecorate %116 RelaxedPrecision OpDecorate %117 RelaxedPrecision OpDecorate %118 RelaxedPrecision @@ -104,7 +103,6 @@ OpDecorate %142 RelaxedPrecision OpDecorate %143 RelaxedPrecision OpDecorate %144 RelaxedPrecision OpDecorate %145 RelaxedPrecision -OpDecorate %146 RelaxedPrecision OpDecorate %155 RelaxedPrecision OpDecorate %157 RelaxedPrecision OpDecorate %158 RelaxedPrecision @@ -120,12 +118,12 @@ OpDecorate %158 RelaxedPrecision %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %16 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %20 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %_ptr_Function_v4float = OpTypePointer Function %v4float -%24 = OpTypeFunction %float %_ptr_Function_v4float +%25 = OpTypeFunction %float %_ptr_Function_v4float %int = OpTypeInt 32 1 %_ptr_Function_int = OpTypePointer Function %int %int_1 = OpConstant %int 1 @@ -150,7 +148,7 @@ OpStore %21 %20 OpStore %sk_FragColor %23 OpReturn OpFunctionEnd -%fn_hh4 = OpFunction %float None %24 +%fn_hh4 = OpFunction %float None %25 %26 = OpFunctionParameter %_ptr_Function_v4float %27 = OpLabel %x = OpVariable %_ptr_Function_int Function diff --git a/third_party/skia/tests/sksl/shared/SwizzleScalar.asm.frag b/third_party/skia/tests/sksl/shared/SwizzleScalar.asm.frag index 1e5b9272d502..56dd7a2525af 100644 --- a/third_party/skia/tests/sksl/shared/SwizzleScalar.asm.frag +++ b/third_party/skia/tests/sksl/shared/SwizzleScalar.asm.frag @@ -45,8 +45,8 @@ OpDecorate %49 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/SwizzleScalarBool.asm.frag b/third_party/skia/tests/sksl/shared/SwizzleScalarBool.asm.frag index c6c96539603d..97f617237a0b 100644 --- a/third_party/skia/tests/sksl/shared/SwizzleScalarBool.asm.frag +++ b/third_party/skia/tests/sksl/shared/SwizzleScalarBool.asm.frag @@ -44,8 +44,8 @@ OpDecorate %62 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -80,9 +80,9 @@ OpStore %b %33 %38 = OpCompositeConstruct %v4bool %37 %37 %37 %37 OpStore %b4 %38 %39 = OpLoad %bool %b -%40 = OpCompositeConstruct %v2bool %39 %39 -%42 = OpCompositeExtract %bool %40 0 -%43 = OpCompositeExtract %bool %40 1 +%41 = OpCompositeConstruct %v2bool %39 %39 +%42 = OpCompositeExtract %bool %41 0 +%43 = OpCompositeExtract %bool %41 1 %46 = OpCompositeConstruct %v4bool %42 %43 %false %true OpStore %b4 %46 %47 = OpLoad %bool %b diff --git a/third_party/skia/tests/sksl/shared/SwizzleScalarInt.asm.frag b/third_party/skia/tests/sksl/shared/SwizzleScalarInt.asm.frag index 257809863012..711eefad4996 100644 --- a/third_party/skia/tests/sksl/shared/SwizzleScalarInt.asm.frag +++ b/third_party/skia/tests/sksl/shared/SwizzleScalarInt.asm.frag @@ -38,8 +38,8 @@ OpDecorate %60 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -72,9 +72,9 @@ OpStore %i %33 %38 = OpCompositeConstruct %v4int %37 %37 %37 %37 OpStore %i4 %38 %39 = OpLoad %int %i -%40 = OpCompositeConstruct %v2int %39 %39 -%42 = OpCompositeExtract %int %40 0 -%43 = OpCompositeExtract %int %40 1 +%41 = OpCompositeConstruct %v2int %39 %39 +%42 = OpCompositeExtract %int %41 0 +%43 = OpCompositeExtract %int %41 1 %45 = OpCompositeConstruct %v4int %42 %43 %int_0 %int_1 OpStore %i4 %45 %46 = OpLoad %int %i diff --git a/third_party/skia/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.asm.frag b/third_party/skia/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.asm.frag index 32ab40f07bfc..ad7e5fbfd66c 100644 --- a/third_party/skia/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.asm.frag +++ b/third_party/skia/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.asm.frag @@ -27,8 +27,8 @@ OpDecorate %29 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/TernaryAsLValueFoldableTest.asm.frag b/third_party/skia/tests/sksl/shared/TernaryAsLValueFoldableTest.asm.frag index 263bb3a4396d..1275729cf0ed 100644 --- a/third_party/skia/tests/sksl/shared/TernaryAsLValueFoldableTest.asm.frag +++ b/third_party/skia/tests/sksl/shared/TernaryAsLValueFoldableTest.asm.frag @@ -40,8 +40,8 @@ OpDecorate %40 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/TernaryExpression.asm.frag b/third_party/skia/tests/sksl/shared/TernaryExpression.asm.frag index b7095f1c241f..50b7dd582c3f 100644 --- a/third_party/skia/tests/sksl/shared/TernaryExpression.asm.frag +++ b/third_party/skia/tests/sksl/shared/TernaryExpression.asm.frag @@ -44,8 +44,8 @@ OpDecorate %63 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/Texture1D.asm.frag b/third_party/skia/tests/sksl/shared/Texture1D.asm.frag index 7be07a621684..b39615a23c9b 100644 --- a/third_party/skia/tests/sksl/shared/Texture1D.asm.frag +++ b/third_party/skia/tests/sksl/shared/Texture1D.asm.frag @@ -1,7 +1,7 @@ ### Compilation failed: error: SPIR-V validation error: Operand 3 of TypeImage requires one of these capabilities: Sampled1D Image1D - %13 = OpTypeImage %float 1D 0 0 0 1 Unknown + %11 = OpTypeImage %float 1D 0 0 0 1 Unknown OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" @@ -35,8 +35,8 @@ OpDecorate %35 RelaxedPrecision %bool = OpTypeBool %_ptr_Input_bool = OpTypePointer Input %bool %sk_Clockwise = OpVariable %_ptr_Input_bool Input -%13 = OpTypeImage %float 1D 0 0 0 1 Unknown -%12 = OpTypeSampledImage %13 +%11 = OpTypeImage %float 1D 0 0 0 1 Unknown +%12 = OpTypeSampledImage %11 %_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 %tex = OpVariable %_ptr_UniformConstant_12 UniformConstant %void = OpTypeVoid diff --git a/third_party/skia/tests/sksl/shared/Texture1D.metal b/third_party/skia/tests/sksl/shared/Texture1D.metal index 3ac11de35e52..bd6e665b7e48 100644 --- a/third_party/skia/tests/sksl/shared/Texture1D.metal +++ b/third_party/skia/tests/sksl/shared/Texture1D.metal @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: Unsupported texture dimensions +layout(binding=0) uniform sampler1D tex; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/shared/Texture2D.asm.frag b/third_party/skia/tests/sksl/shared/Texture2D.asm.frag index c28b3818ad27..1a28579ef22c 100644 --- a/third_party/skia/tests/sksl/shared/Texture2D.asm.frag +++ b/third_party/skia/tests/sksl/shared/Texture2D.asm.frag @@ -30,15 +30,15 @@ OpDecorate %37 RelaxedPrecision %bool = OpTypeBool %_ptr_Input_bool = OpTypePointer Input %bool %sk_Clockwise = OpVariable %_ptr_Input_bool Input -%13 = OpTypeImage %float 2D 0 0 0 1 Unknown -%12 = OpTypeSampledImage %13 +%11 = OpTypeImage %float 2D 0 0 0 1 Unknown +%12 = OpTypeSampledImage %11 %_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 %tex = OpVariable %_ptr_UniformConstant_12 UniformConstant %void = OpTypeVoid %15 = OpTypeFunction %void %_ptr_Function_v4float = OpTypePointer Function %v4float -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %23 = OpConstantComposite %v2float %float_0 %float_0 %v3float = OpTypeVector %float 3 %28 = OpConstantComposite %v3float %float_0 %float_0 %float_0 diff --git a/third_party/skia/tests/sksl/shared/TextureSharpen.asm.frag b/third_party/skia/tests/sksl/shared/TextureSharpen.asm.frag index 39d8dbfe19ff..636cb56c0d1a 100644 --- a/third_party/skia/tests/sksl/shared/TextureSharpen.asm.frag +++ b/third_party/skia/tests/sksl/shared/TextureSharpen.asm.frag @@ -1,7 +1,7 @@ ### Compilation failed: error: SPIR-V validation error: Operand 3 of TypeImage requires one of these capabilities: Sampled1D Image1D - %13 = OpTypeImage %float 1D 0 0 0 1 Unknown + %11 = OpTypeImage %float 1D 0 0 0 1 Unknown OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" @@ -39,19 +39,19 @@ OpDecorate %48 RelaxedPrecision %bool = OpTypeBool %_ptr_Input_bool = OpTypePointer Input %bool %sk_Clockwise = OpVariable %_ptr_Input_bool Input -%13 = OpTypeImage %float 1D 0 0 0 1 Unknown -%12 = OpTypeSampledImage %13 +%11 = OpTypeImage %float 1D 0 0 0 1 Unknown +%12 = OpTypeSampledImage %11 %_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12 %one = OpVariable %_ptr_UniformConstant_12 UniformConstant -%17 = OpTypeImage %float 2D 0 0 0 1 Unknown -%16 = OpTypeSampledImage %17 +%15 = OpTypeImage %float 2D 0 0 0 1 Unknown +%16 = OpTypeSampledImage %15 %_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16 %two = OpVariable %_ptr_UniformConstant_16 UniformConstant %void = OpTypeVoid %19 = OpTypeFunction %void %_ptr_Function_v4float = OpTypePointer Function %v4float %float_0 = OpConstant %float 0 -%float_n0_5 = OpConstant %float -0.5 +%float_n0_474999994 = OpConstant %float -0.474999994 %v2float = OpTypeVector %float 2 %31 = OpConstantComposite %v2float %float_0 %float_0 %v3float = OpTypeVector %float 3 @@ -63,16 +63,16 @@ OpDecorate %48 RelaxedPrecision %c = OpVariable %_ptr_Function_v4float Function %d = OpVariable %_ptr_Function_v4float Function %24 = OpLoad %12 %one -%23 = OpImageSampleImplicitLod %v4float %24 %float_0 Bias %float_n0_5 +%23 = OpImageSampleImplicitLod %v4float %24 %float_0 Bias %float_n0_474999994 OpStore %a %23 %29 = OpLoad %16 %two -%28 = OpImageSampleImplicitLod %v4float %29 %31 Bias %float_n0_5 +%28 = OpImageSampleImplicitLod %v4float %29 %31 Bias %float_n0_474999994 OpStore %b %28 %34 = OpLoad %12 %one -%33 = OpImageSampleProjImplicitLod %v4float %34 %31 Bias %float_n0_5 +%33 = OpImageSampleProjImplicitLod %v4float %34 %31 Bias %float_n0_474999994 OpStore %c %33 %37 = OpLoad %16 %two -%36 = OpImageSampleProjImplicitLod %v4float %37 %39 Bias %float_n0_5 +%36 = OpImageSampleProjImplicitLod %v4float %37 %39 Bias %float_n0_474999994 OpStore %d %36 %40 = OpLoad %v4float %a %41 = OpCompositeExtract %float %40 0 diff --git a/third_party/skia/tests/sksl/shared/TextureSharpen.glsl b/third_party/skia/tests/sksl/shared/TextureSharpen.glsl index e91ac2216826..4bc3df99150f 100644 --- a/third_party/skia/tests/sksl/shared/TextureSharpen.glsl +++ b/third_party/skia/tests/sksl/shared/TextureSharpen.glsl @@ -3,9 +3,9 @@ out vec4 sk_FragColor; layout (binding = 0) uniform sampler1D one; layout (binding = 1) uniform sampler2D two; void main() { - vec4 a = texture(one, 0.0, -0.5); - vec4 b = texture(two, vec2(0.0), -0.5); - vec4 c = textureProj(one, vec2(0.0), -0.5); - vec4 d = textureProj(two, vec3(0.0), -0.5); + vec4 a = texture(one, 0.0, -0.475); + vec4 b = texture(two, vec2(0.0), -0.475); + vec4 c = textureProj(one, vec2(0.0), -0.475); + vec4 d = textureProj(two, vec3(0.0), -0.475); sk_FragColor = vec4(a.x, b.x, c.x, d.x); } diff --git a/third_party/skia/tests/sksl/shared/TextureSharpen.metal b/third_party/skia/tests/sksl/shared/TextureSharpen.metal index bf5bf8fe1072..ca9bfdccd05a 100644 --- a/third_party/skia/tests/sksl/shared/TextureSharpen.metal +++ b/third_party/skia/tests/sksl/shared/TextureSharpen.metal @@ -1,4 +1,6 @@ ### Compilation failed: error: 3: Unsupported texture dimensions +layout(binding=0) uniform sampler1D one; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.asm.frag b/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.asm.frag index 5b4bb46238a0..2e447be4aaa4 100644 --- a/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.asm.frag +++ b/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.asm.frag @@ -9,9 +9,27 @@ OpName %_UniformBuffer "_UniformBuffer" OpMemberName %_UniformBuffer 0 "colorWhite" OpMemberName %_UniformBuffer 1 "colorGreen" OpMemberName %_UniformBuffer 2 "colorRed" +OpMemberName %_UniformBuffer 3 "testMatrix2x2" +OpMemberName %_UniformBuffer 4 "testMatrix3x3" +OpMemberName %_UniformBuffer 5 "testMatrix4x4" OpName %_entrypoint_v "_entrypoint_v" -OpName %main "main" +OpName %test_iscalar_b "test_iscalar_b" OpName %x "x" +OpName %test_fvec_b "test_fvec_b" +OpName %x_0 "x" +OpName %test_ivec_b "test_ivec_b" +OpName %x_1 "x" +OpName %test_mat2_b "test_mat2_b" +OpName %negated "negated" +OpName %x_2 "x" +OpName %test_mat3_b "test_mat3_b" +OpName %negated_0 "negated" +OpName %x_3 "x" +OpName %test_mat4_b "test_mat4_b" +OpName %negated_1 "negated" +OpName %x_4 "x" +OpName %main "main" +OpName %_0_x "_0_x" OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 @@ -22,19 +40,33 @@ OpMemberDecorate %_UniformBuffer 1 Offset 16 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision OpMemberDecorate %_UniformBuffer 2 Offset 32 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision +OpMemberDecorate %_UniformBuffer 3 Offset 48 +OpMemberDecorate %_UniformBuffer 3 ColMajor +OpMemberDecorate %_UniformBuffer 3 MatrixStride 16 +OpMemberDecorate %_UniformBuffer 4 Offset 80 +OpMemberDecorate %_UniformBuffer 4 ColMajor +OpMemberDecorate %_UniformBuffer 4 MatrixStride 16 +OpMemberDecorate %_UniformBuffer 5 Offset 128 +OpMemberDecorate %_UniformBuffer 5 ColMajor +OpMemberDecorate %_UniformBuffer 5 MatrixStride 16 OpDecorate %_UniformBuffer Block -OpDecorate %10 Binding 0 -OpDecorate %10 DescriptorSet 0 -OpDecorate %x RelaxedPrecision -OpDecorate %31 RelaxedPrecision -OpDecorate %32 RelaxedPrecision -OpDecorate %33 RelaxedPrecision -OpDecorate %34 RelaxedPrecision -OpDecorate %35 RelaxedPrecision -OpDecorate %37 RelaxedPrecision -OpDecorate %48 RelaxedPrecision -OpDecorate %51 RelaxedPrecision +OpDecorate %16 Binding 0 +OpDecorate %16 DescriptorSet 0 +OpDecorate %41 RelaxedPrecision +OpDecorate %42 RelaxedPrecision +OpDecorate %x_0 RelaxedPrecision OpDecorate %52 RelaxedPrecision +OpDecorate %53 RelaxedPrecision +OpDecorate %54 RelaxedPrecision +OpDecorate %55 RelaxedPrecision +OpDecorate %56 RelaxedPrecision +OpDecorate %67 RelaxedPrecision +OpDecorate %68 RelaxedPrecision +OpDecorate %208 RelaxedPrecision +OpDecorate %209 RelaxedPrecision +OpDecorate %246 RelaxedPrecision +OpDecorate %249 RelaxedPrecision +OpDecorate %250 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -42,61 +74,304 @@ OpDecorate %52 RelaxedPrecision %bool = OpTypeBool %_ptr_Input_bool = OpTypePointer Input %bool %sk_Clockwise = OpVariable %_ptr_Input_bool Input -%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float +%v2float = OpTypeVector %float 2 +%mat2v2float = OpTypeMatrix %v2float 2 +%v3float = OpTypeVector %float 3 +%mat3v3float = OpTypeMatrix %v3float 3 +%mat4v4float = OpTypeMatrix %v4float 4 +%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %mat2v2float %mat3v3float %mat4v4float %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer -%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform +%16 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid -%15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 +%26 = OpTypeFunction %void %float_0 = OpConstant %float 0 -%19 = OpConstantComposite %v2float %float_0 %float_0 +%29 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float -%23 = OpTypeFunction %v4float %_ptr_Function_v2float -%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float +%33 = OpTypeFunction %bool %int = OpTypeInt 32 1 +%_ptr_Function_int = OpTypePointer Function %int +%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %int_0 = OpConstant %int 0 +%int_n1 = OpConstant %int -1 %float_n1 = OpConstant %float -1 -%37 = OpConstantComposite %v2float %float_n1 %float_n1 +%58 = OpConstantComposite %v2float %float_n1 %float_n1 %v2bool = OpTypeVector %bool 2 +%v2int = OpTypeVector %int 2 +%_ptr_Function_v2int = OpTypePointer Function %v2int +%74 = OpConstantComposite %v2int %int_n1 %int_n1 +%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float +%float_n2 = OpConstant %float -2 +%float_n3 = OpConstant %float -3 +%float_n4 = OpConstant %float -4 +%83 = OpConstantComposite %v2float %float_n1 %float_n2 +%84 = OpConstantComposite %v2float %float_n3 %float_n4 +%85 = OpConstantComposite %mat2v2float %83 %84 +%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float +%int_3 = OpConstant %int 3 +%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float +%float_n5 = OpConstant %float -5 +%float_n6 = OpConstant %float -6 +%float_n7 = OpConstant %float -7 +%float_n8 = OpConstant %float -8 +%float_n9 = OpConstant %float -9 +%116 = OpConstantComposite %v3float %float_n1 %float_n2 %float_n3 +%117 = OpConstantComposite %v3float %float_n4 %float_n5 %float_n6 +%118 = OpConstantComposite %v3float %float_n7 %float_n8 %float_n9 +%119 = OpConstantComposite %mat3v3float %116 %117 %118 +%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float +%int_4 = OpConstant %int 4 +%v3bool = OpTypeVector %bool 3 +%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float +%float_n10 = OpConstant %float -10 +%float_n11 = OpConstant %float -11 +%float_n12 = OpConstant %float -12 +%float_n13 = OpConstant %float -13 +%float_n14 = OpConstant %float -14 +%float_n15 = OpConstant %float -15 +%float_n16 = OpConstant %float -16 +%160 = OpConstantComposite %v4float %float_n1 %float_n2 %float_n3 %float_n4 +%161 = OpConstantComposite %v4float %float_n5 %float_n6 %float_n7 %float_n8 +%162 = OpConstantComposite %v4float %float_n9 %float_n10 %float_n11 %float_n12 +%163 = OpConstantComposite %v4float %float_n13 %float_n14 %float_n15 %float_n16 +%164 = OpConstantComposite %mat4v4float %160 %161 %162 %163 +%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float +%int_5 = OpConstant %int 5 +%v4bool = OpTypeVector %bool 4 +%202 = OpTypeFunction %v4float %_ptr_Function_v2float +%_ptr_Function_float = OpTypePointer Function %float +%false = OpConstantFalse %bool %_ptr_Function_v4float = OpTypePointer Function %v4float %int_1 = OpConstant %int 1 %int_2 = OpConstant %int 2 -%_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 +%_entrypoint_v = OpFunction %void None %26 +%27 = OpLabel +%30 = OpVariable %_ptr_Function_v2float Function +OpStore %30 %29 +%32 = OpFunctionCall %v4float %main %30 +OpStore %sk_FragColor %32 OpReturn OpFunctionEnd -%main = OpFunction %v4float None %23 -%24 = OpFunctionParameter %_ptr_Function_v2float -%25 = OpLabel -%x = OpVariable %_ptr_Function_v2float Function -%41 = OpVariable %_ptr_Function_v4float Function -%27 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%31 = OpLoad %v4float %27 -%32 = OpVectorShuffle %v2float %31 %31 0 1 -OpStore %x %32 -%34 = OpLoad %v2float %x -%33 = OpFNegate %v2float %34 -OpStore %x %33 -%35 = OpLoad %v2float %x -%38 = OpFOrdEqual %v2bool %35 %37 -%40 = OpAll %bool %38 -OpSelectionMerge %45 None -OpBranchConditional %40 %43 %44 -%43 = OpLabel -%46 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%48 = OpLoad %v4float %46 -OpStore %41 %48 -OpBranch %45 -%44 = OpLabel -%49 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 -%51 = OpLoad %v4float %49 -OpStore %41 %51 -OpBranch %45 -%45 = OpLabel -%52 = OpLoad %v4float %41 -OpReturnValue %52 +%test_iscalar_b = OpFunction %bool None %33 +%34 = OpLabel +%x = OpVariable %_ptr_Function_int Function +%38 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0 +%41 = OpLoad %v4float %38 +%42 = OpCompositeExtract %float %41 0 +%43 = OpConvertFToS %int %42 +OpStore %x %43 +%44 = OpLoad %int %x +%45 = OpSNegate %int %44 +OpStore %x %45 +%46 = OpLoad %int %x +%48 = OpIEqual %bool %46 %int_n1 +OpReturnValue %48 +OpFunctionEnd +%test_fvec_b = OpFunction %bool None %33 +%49 = OpLabel +%x_0 = OpVariable %_ptr_Function_v2float Function +%51 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0 +%52 = OpLoad %v4float %51 +%53 = OpVectorShuffle %v2float %52 %52 0 1 +OpStore %x_0 %53 +%54 = OpLoad %v2float %x_0 +%55 = OpFNegate %v2float %54 +OpStore %x_0 %55 +%56 = OpLoad %v2float %x_0 +%59 = OpFOrdEqual %v2bool %56 %58 +%61 = OpAll %bool %59 +OpReturnValue %61 +OpFunctionEnd +%test_ivec_b = OpFunction %bool None %33 +%62 = OpLabel +%x_1 = OpVariable %_ptr_Function_v2int Function +%66 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0 +%67 = OpLoad %v4float %66 +%68 = OpCompositeExtract %float %67 0 +%69 = OpConvertFToS %int %68 +%70 = OpCompositeConstruct %v2int %69 %69 +OpStore %x_1 %70 +%71 = OpLoad %v2int %x_1 +%72 = OpSNegate %v2int %71 +OpStore %x_1 %72 +%73 = OpLoad %v2int %x_1 +%75 = OpIEqual %v2bool %73 %74 +%76 = OpAll %bool %75 +OpReturnValue %76 +OpFunctionEnd +%test_mat2_b = OpFunction %bool None %33 +%77 = OpLabel +%negated = OpVariable %_ptr_Function_mat2v2float Function +%x_2 = OpVariable %_ptr_Function_mat2v2float Function +OpStore %negated %85 +%87 = OpAccessChain %_ptr_Uniform_mat2v2float %16 %int_3 +%90 = OpLoad %mat2v2float %87 +OpStore %x_2 %90 +%91 = OpLoad %mat2v2float %x_2 +%92 = OpCompositeExtract %v2float %91 0 +%93 = OpFNegate %v2float %92 +%94 = OpCompositeExtract %v2float %91 1 +%95 = OpFNegate %v2float %94 +%96 = OpCompositeConstruct %mat2v2float %93 %95 +OpStore %x_2 %96 +%97 = OpLoad %mat2v2float %x_2 +%98 = OpLoad %mat2v2float %negated +%99 = OpCompositeExtract %v2float %97 0 +%100 = OpCompositeExtract %v2float %98 0 +%101 = OpFOrdEqual %v2bool %99 %100 +%102 = OpAll %bool %101 +%103 = OpCompositeExtract %v2float %97 1 +%104 = OpCompositeExtract %v2float %98 1 +%105 = OpFOrdEqual %v2bool %103 %104 +%106 = OpAll %bool %105 +%107 = OpLogicalAnd %bool %102 %106 +OpReturnValue %107 +OpFunctionEnd +%test_mat3_b = OpFunction %bool None %33 +%108 = OpLabel +%negated_0 = OpVariable %_ptr_Function_mat3v3float Function +%x_3 = OpVariable %_ptr_Function_mat3v3float Function +OpStore %negated_0 %119 +%121 = OpAccessChain %_ptr_Uniform_mat3v3float %16 %int_4 +%124 = OpLoad %mat3v3float %121 +OpStore %x_3 %124 +%125 = OpLoad %mat3v3float %x_3 +%126 = OpCompositeExtract %v3float %125 0 +%127 = OpFNegate %v3float %126 +%128 = OpCompositeExtract %v3float %125 1 +%129 = OpFNegate %v3float %128 +%130 = OpCompositeExtract %v3float %125 2 +%131 = OpFNegate %v3float %130 +%132 = OpCompositeConstruct %mat3v3float %127 %129 %131 +OpStore %x_3 %132 +%133 = OpLoad %mat3v3float %x_3 +%134 = OpLoad %mat3v3float %negated_0 +%136 = OpCompositeExtract %v3float %133 0 +%137 = OpCompositeExtract %v3float %134 0 +%138 = OpFOrdEqual %v3bool %136 %137 +%139 = OpAll %bool %138 +%140 = OpCompositeExtract %v3float %133 1 +%141 = OpCompositeExtract %v3float %134 1 +%142 = OpFOrdEqual %v3bool %140 %141 +%143 = OpAll %bool %142 +%144 = OpLogicalAnd %bool %139 %143 +%145 = OpCompositeExtract %v3float %133 2 +%146 = OpCompositeExtract %v3float %134 2 +%147 = OpFOrdEqual %v3bool %145 %146 +%148 = OpAll %bool %147 +%149 = OpLogicalAnd %bool %144 %148 +OpReturnValue %149 +OpFunctionEnd +%test_mat4_b = OpFunction %bool None %33 +%150 = OpLabel +%negated_1 = OpVariable %_ptr_Function_mat4v4float Function +%x_4 = OpVariable %_ptr_Function_mat4v4float Function +OpStore %negated_1 %164 +%166 = OpAccessChain %_ptr_Uniform_mat4v4float %16 %int_5 +%169 = OpLoad %mat4v4float %166 +OpStore %x_4 %169 +%170 = OpLoad %mat4v4float %x_4 +%171 = OpCompositeExtract %v4float %170 0 +%172 = OpFNegate %v4float %171 +%173 = OpCompositeExtract %v4float %170 1 +%174 = OpFNegate %v4float %173 +%175 = OpCompositeExtract %v4float %170 2 +%176 = OpFNegate %v4float %175 +%177 = OpCompositeExtract %v4float %170 3 +%178 = OpFNegate %v4float %177 +%179 = OpCompositeConstruct %mat4v4float %172 %174 %176 %178 +OpStore %x_4 %179 +%180 = OpLoad %mat4v4float %x_4 +%181 = OpLoad %mat4v4float %negated_1 +%183 = OpCompositeExtract %v4float %180 0 +%184 = OpCompositeExtract %v4float %181 0 +%185 = OpFOrdEqual %v4bool %183 %184 +%186 = OpAll %bool %185 +%187 = OpCompositeExtract %v4float %180 1 +%188 = OpCompositeExtract %v4float %181 1 +%189 = OpFOrdEqual %v4bool %187 %188 +%190 = OpAll %bool %189 +%191 = OpLogicalAnd %bool %186 %190 +%192 = OpCompositeExtract %v4float %180 2 +%193 = OpCompositeExtract %v4float %181 2 +%194 = OpFOrdEqual %v4bool %192 %193 +%195 = OpAll %bool %194 +%196 = OpLogicalAnd %bool %191 %195 +%197 = OpCompositeExtract %v4float %180 3 +%198 = OpCompositeExtract %v4float %181 3 +%199 = OpFOrdEqual %v4bool %197 %198 +%200 = OpAll %bool %199 +%201 = OpLogicalAnd %bool %196 %200 +OpReturnValue %201 +OpFunctionEnd +%main = OpFunction %v4float None %202 +%203 = OpFunctionParameter %_ptr_Function_v2float +%204 = OpLabel +%_0_x = OpVariable %_ptr_Function_float Function +%239 = OpVariable %_ptr_Function_v4float Function +%207 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0 +%208 = OpLoad %v4float %207 +%209 = OpCompositeExtract %float %208 0 +OpStore %_0_x %209 +%210 = OpLoad %float %_0_x +%211 = OpFNegate %float %210 +OpStore %_0_x %211 +%213 = OpLoad %float %_0_x +%214 = OpFOrdEqual %bool %213 %float_n1 +OpSelectionMerge %216 None +OpBranchConditional %214 %215 %216 +%215 = OpLabel +%217 = OpFunctionCall %bool %test_iscalar_b +OpBranch %216 +%216 = OpLabel +%218 = OpPhi %bool %false %204 %217 %215 +OpSelectionMerge %220 None +OpBranchConditional %218 %219 %220 +%219 = OpLabel +%221 = OpFunctionCall %bool %test_fvec_b +OpBranch %220 +%220 = OpLabel +%222 = OpPhi %bool %false %216 %221 %219 +OpSelectionMerge %224 None +OpBranchConditional %222 %223 %224 +%223 = OpLabel +%225 = OpFunctionCall %bool %test_ivec_b +OpBranch %224 +%224 = OpLabel +%226 = OpPhi %bool %false %220 %225 %223 +OpSelectionMerge %228 None +OpBranchConditional %226 %227 %228 +%227 = OpLabel +%229 = OpFunctionCall %bool %test_mat2_b +OpBranch %228 +%228 = OpLabel +%230 = OpPhi %bool %false %224 %229 %227 +OpSelectionMerge %232 None +OpBranchConditional %230 %231 %232 +%231 = OpLabel +%233 = OpFunctionCall %bool %test_mat3_b +OpBranch %232 +%232 = OpLabel +%234 = OpPhi %bool %false %228 %233 %231 +OpSelectionMerge %236 None +OpBranchConditional %234 %235 %236 +%235 = OpLabel +%237 = OpFunctionCall %bool %test_mat4_b +OpBranch %236 +%236 = OpLabel +%238 = OpPhi %bool %false %232 %237 %235 +OpSelectionMerge %243 None +OpBranchConditional %238 %241 %242 +%241 = OpLabel +%244 = OpAccessChain %_ptr_Uniform_v4float %16 %int_1 +%246 = OpLoad %v4float %244 +OpStore %239 %246 +OpBranch %243 +%242 = OpLabel +%247 = OpAccessChain %_ptr_Uniform_v4float %16 %int_2 +%249 = OpLoad %v4float %247 +OpStore %239 %249 +OpBranch %243 +%243 = OpLabel +%250 = OpLoad %v4float %239 +OpReturnValue %250 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.glsl b/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.glsl index 776df28020a3..6f05dddf7bca 100644 --- a/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.glsl +++ b/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.glsl @@ -3,8 +3,44 @@ out vec4 sk_FragColor; uniform vec4 colorWhite; uniform vec4 colorGreen; uniform vec4 colorRed; -vec4 main() { +uniform mat2 testMatrix2x2; +uniform mat3 testMatrix3x3; +uniform mat4 testMatrix4x4; +bool test_iscalar_b() { + int x = int(colorWhite.x); + x = -x; + return x == -1; +} +bool test_fvec_b() { vec2 x = colorWhite.xy; x = -x; - return x == vec2(-1.0) ? colorGreen : colorRed; + return x == vec2(-1.0); +} +bool test_ivec_b() { + ivec2 x = ivec2(int(colorWhite.x)); + x = -x; + return x == ivec2(-1); +} +bool test_mat2_b() { + const mat2 negated = mat2(-1.0, -2.0, -3.0, -4.0); + mat2 x = testMatrix2x2; + x = -x; + return x == negated; +} +bool test_mat3_b() { + const mat3 negated = mat3(-1.0, -2.0, -3.0, -4.0, -5.0, -6.0, -7.0, -8.0, -9.0); + mat3 x = testMatrix3x3; + x = -x; + return x == negated; +} +bool test_mat4_b() { + const mat4 negated = mat4(-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); + mat4 x = testMatrix4x4; + x = -x; + return x == negated; +} +vec4 main() { + float _0_x = colorWhite.x; + _0_x = -_0_x; + return (((((_0_x == -1.0 && test_iscalar_b()) && test_fvec_b()) && test_ivec_b()) && test_mat2_b()) && test_mat3_b()) && test_mat4_b() ? colorGreen : colorRed; } diff --git a/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.metal b/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.metal index d455f7a7ac29..0f125a720346 100644 --- a/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.metal +++ b/third_party/skia/tests/sksl/shared/UnaryPositiveNegative.metal @@ -5,17 +5,86 @@ struct Uniforms { half4 colorWhite; half4 colorGreen; half4 colorRed; + float2x2 testMatrix2x2; + float3x3 testMatrix3x3; + float4x4 testMatrix4x4; }; struct Inputs { }; struct Outputs { half4 sk_FragColor [[color(0)]]; }; + +thread bool operator==(const float2x2 left, const float2x2 right); +thread bool operator!=(const float2x2 left, const float2x2 right); + +thread bool operator==(const float3x3 left, const float3x3 right); +thread bool operator!=(const float3x3 left, const float3x3 right); + +thread bool operator==(const float4x4 left, const float4x4 right); +thread bool operator!=(const float4x4 left, const float4x4 right); +thread bool operator==(const float2x2 left, const float2x2 right) { + return all(left[0] == right[0]) && + all(left[1] == right[1]); +} +thread bool operator!=(const float2x2 left, const float2x2 right) { + return !(left == right); +} +thread bool operator==(const float3x3 left, const float3x3 right) { + return all(left[0] == right[0]) && + all(left[1] == right[1]) && + all(left[2] == right[2]); +} +thread bool operator!=(const float3x3 left, const float3x3 right) { + return !(left == right); +} +thread bool operator==(const float4x4 left, const float4x4 right) { + return all(left[0] == right[0]) && + all(left[1] == right[1]) && + all(left[2] == right[2]) && + all(left[3] == right[3]); +} +thread bool operator!=(const float4x4 left, const float4x4 right) { + return !(left == right); +} +bool test_iscalar_b(Uniforms _uniforms) { + int x = int(_uniforms.colorWhite.x); + x = -x; + return x == -1; +} +bool test_fvec_b(Uniforms _uniforms) { + half2 x = _uniforms.colorWhite.xy; + x = -x; + return all(x == half2(-1.0h)); +} +bool test_ivec_b(Uniforms _uniforms) { + int2 x = int2(int(_uniforms.colorWhite.x)); + x = -x; + return all(x == int2(-1)); +} +bool test_mat2_b(Uniforms _uniforms) { + const float2x2 negated = float2x2(float2(-1.0, -2.0), float2(-3.0, -4.0)); + float2x2 x = _uniforms.testMatrix2x2; + x = (-1.0 * x); + return x == negated; +} +bool test_mat3_b(Uniforms _uniforms) { + const float3x3 negated = float3x3(float3(-1.0, -2.0, -3.0), float3(-4.0, -5.0, -6.0), float3(-7.0, -8.0, -9.0)); + float3x3 x = _uniforms.testMatrix3x3; + x = (-1.0 * x); + return x == negated; +} +bool test_mat4_b(Uniforms _uniforms) { + const float4x4 negated = float4x4(float4(-1.0, -2.0, -3.0, -4.0), float4(-5.0, -6.0, -7.0, -8.0), float4(-9.0, -10.0, -11.0, -12.0), float4(-13.0, -14.0, -15.0, -16.0)); + float4x4 x = _uniforms.testMatrix4x4; + x = (-1.0 * x); + return x == negated; +} fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { Outputs _out; (void)_out; - half2 x = _uniforms.colorWhite.xy; - x = -x; - _out.sk_FragColor = all(x == half2(-1.0h)) ? _uniforms.colorGreen : _uniforms.colorRed; + float _0_x = float(_uniforms.colorWhite.x); + _0_x = -_0_x; + _out.sk_FragColor = (((((_0_x == -1.0 && test_iscalar_b(_uniforms)) && test_fvec_b(_uniforms)) && test_ivec_b(_uniforms)) && test_mat2_b(_uniforms)) && test_mat3_b(_uniforms)) && test_mat4_b(_uniforms) ? _uniforms.colorGreen : _uniforms.colorRed; return _out; } diff --git a/third_party/skia/tests/sksl/shared/UniformArray.asm.frag b/third_party/skia/tests/sksl/shared/UniformArray.asm.frag index 830fec22e351..d437cebf4c9d 100644 --- a/third_party/skia/tests/sksl/shared/UniformArray.asm.frag +++ b/third_party/skia/tests/sksl/shared/UniformArray.asm.frag @@ -42,8 +42,8 @@ OpDecorate %59 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %18 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %22 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %26 = OpTypeFunction %v4float %_ptr_Function_v2float @@ -83,7 +83,7 @@ OpBranchConditional %38 %34 %36 %45 = OpLoad %int %index %47 = OpIAdd %int %45 %int_1 %48 = OpConvertSToF %float %47 -%49 = OpFOrdNotEqual %bool %44 %48 +%49 = OpFUnordNotEqual %bool %44 %48 OpSelectionMerge %51 None OpBranchConditional %49 %50 %51 %50 = OpLabel diff --git a/third_party/skia/tests/sksl/shared/Uniforms.asm.frag b/third_party/skia/tests/sksl/shared/Uniforms.asm.frag index b003742f1d5e..e86f93266728 100644 --- a/third_party/skia/tests/sksl/shared/Uniforms.asm.frag +++ b/third_party/skia/tests/sksl/shared/Uniforms.asm.frag @@ -36,8 +36,8 @@ OpDecorate %35 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 diff --git a/third_party/skia/tests/sksl/shared/UnusedVariables.asm.frag b/third_party/skia/tests/sksl/shared/UnusedVariables.asm.frag index 3cf122d6ba73..e61b5f6ac569 100644 --- a/third_party/skia/tests/sksl/shared/UnusedVariables.asm.frag +++ b/third_party/skia/tests/sksl/shared/UnusedVariables.asm.frag @@ -29,8 +29,8 @@ OpDecorate %63 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/VectorConstructors.asm.frag b/third_party/skia/tests/sksl/shared/VectorConstructors.asm.frag index b70f6e743c10..1cd7ee680eb4 100644 --- a/third_party/skia/tests/sksl/shared/VectorConstructors.asm.frag +++ b/third_party/skia/tests/sksl/shared/VectorConstructors.asm.frag @@ -87,23 +87,23 @@ OpDecorate %214 RelaxedPrecision %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %16 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %20 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %v3float = OpTypeVector %float 3 +%_ptr_Function_v3float = OpTypePointer Function %v3float %int = OpTypeInt 32 1 %v2int = OpTypeVector %int 2 -%v4bool = OpTypeVector %bool 4 -%v2bool = OpTypeVector %bool 2 -%v3bool = OpTypeVector %bool 3 -%_ptr_Function_v3float = OpTypePointer Function %v3float %_ptr_Function_v2int = OpTypePointer Function %v2int %_ptr_Function_v4float = OpTypePointer Function %v4float +%v4bool = OpTypeVector %bool 4 %_ptr_Function_v4bool = OpTypePointer Function %v4bool +%v2bool = OpTypeVector %bool 2 %_ptr_Function_v2bool = OpTypePointer Function %v2bool +%v3bool = OpTypeVector %bool 3 %_ptr_Function_v3bool = OpTypePointer Function %v3bool -%30 = OpTypeFunction %bool %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v3float %_ptr_Function_v2int %_ptr_Function_v2int %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v4float %_ptr_Function_v2int %_ptr_Function_v4bool %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2bool %_ptr_Function_v2bool %_ptr_Function_v3bool +%36 = OpTypeFunction %bool %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v3float %_ptr_Function_v2int %_ptr_Function_v2int %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v4float %_ptr_Function_v2int %_ptr_Function_v4bool %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2bool %_ptr_Function_v2bool %_ptr_Function_v3bool %float_1 = OpConstant %float 1 %float_17 = OpConstant %float 17 %115 = OpTypeFunction %v4float %_ptr_Function_v2float @@ -135,7 +135,7 @@ OpStore %21 %20 OpStore %sk_FragColor %23 OpReturn OpFunctionEnd -%check_bf2f2f2f3i2i2f2f2f4i2b4f2f2f2b2b2b3 = OpFunction %bool None %30 +%check_bf2f2f2f3i2i2f2f2f4i2b4f2f2f2b2b2b3 = OpFunction %bool None %36 %37 = OpFunctionParameter %_ptr_Function_v2float %38 = OpFunctionParameter %_ptr_Function_v2float %39 = OpFunctionParameter %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/shared/VectorScalarMath.asm.frag b/third_party/skia/tests/sksl/shared/VectorScalarMath.asm.frag index c4f5656924a1..06ae88f7e89f 100644 --- a/third_party/skia/tests/sksl/shared/VectorScalarMath.asm.frag +++ b/third_party/skia/tests/sksl/shared/VectorScalarMath.asm.frag @@ -44,70 +44,66 @@ OpDecorate %52 RelaxedPrecision OpDecorate %54 RelaxedPrecision OpDecorate %56 RelaxedPrecision OpDecorate %65 RelaxedPrecision -OpDecorate %79 RelaxedPrecision -OpDecorate %94 RelaxedPrecision -OpDecorate %110 RelaxedPrecision -OpDecorate %125 RelaxedPrecision -OpDecorate %138 RelaxedPrecision -OpDecorate %149 RelaxedPrecision -OpDecorate %161 RelaxedPrecision -OpDecorate %174 RelaxedPrecision -OpDecorate %188 RelaxedPrecision -OpDecorate %202 RelaxedPrecision -OpDecorate %216 RelaxedPrecision -OpDecorate %236 RelaxedPrecision -OpDecorate %255 RelaxedPrecision -OpDecorate %262 RelaxedPrecision +OpDecorate %78 RelaxedPrecision +OpDecorate %93 RelaxedPrecision +OpDecorate %109 RelaxedPrecision +OpDecorate %124 RelaxedPrecision +OpDecorate %137 RelaxedPrecision +OpDecorate %147 RelaxedPrecision +OpDecorate %159 RelaxedPrecision +OpDecorate %172 RelaxedPrecision +OpDecorate %185 RelaxedPrecision +OpDecorate %199 RelaxedPrecision +OpDecorate %213 RelaxedPrecision +OpDecorate %230 RelaxedPrecision +OpDecorate %245 RelaxedPrecision +OpDecorate %252 RelaxedPrecision OpDecorate %_1_inputRed RelaxedPrecision -OpDecorate %270 RelaxedPrecision +OpDecorate %260 RelaxedPrecision OpDecorate %_2_inputGreen RelaxedPrecision -OpDecorate %273 RelaxedPrecision +OpDecorate %263 RelaxedPrecision OpDecorate %_3_x RelaxedPrecision -OpDecorate %275 RelaxedPrecision -OpDecorate %277 RelaxedPrecision +OpDecorate %265 RelaxedPrecision +OpDecorate %268 RelaxedPrecision +OpDecorate %269 RelaxedPrecision +OpDecorate %272 RelaxedPrecision OpDecorate %278 RelaxedPrecision OpDecorate %279 RelaxedPrecision -OpDecorate %282 RelaxedPrecision +OpDecorate %280 RelaxedPrecision +OpDecorate %281 RelaxedPrecision OpDecorate %284 RelaxedPrecision -OpDecorate %288 RelaxedPrecision -OpDecorate %289 RelaxedPrecision -OpDecorate %290 RelaxedPrecision OpDecorate %291 RelaxedPrecision OpDecorate %292 RelaxedPrecision +OpDecorate %293 RelaxedPrecision +OpDecorate %294 RelaxedPrecision OpDecorate %295 RelaxedPrecision -OpDecorate %298 RelaxedPrecision -OpDecorate %302 RelaxedPrecision -OpDecorate %303 RelaxedPrecision -OpDecorate %304 RelaxedPrecision +OpDecorate %296 RelaxedPrecision +OpDecorate %299 RelaxedPrecision OpDecorate %305 RelaxedPrecision OpDecorate %306 RelaxedPrecision -OpDecorate %307 RelaxedPrecision +OpDecorate %309 RelaxedPrecision OpDecorate %310 RelaxedPrecision +OpDecorate %311 RelaxedPrecision OpDecorate %312 RelaxedPrecision -OpDecorate %316 RelaxedPrecision -OpDecorate %317 RelaxedPrecision +OpDecorate %315 RelaxedPrecision OpDecorate %320 RelaxedPrecision OpDecorate %321 RelaxedPrecision OpDecorate %322 RelaxedPrecision OpDecorate %323 RelaxedPrecision -OpDecorate %326 RelaxedPrecision -OpDecorate %327 RelaxedPrecision -OpDecorate %331 RelaxedPrecision -OpDecorate %332 RelaxedPrecision -OpDecorate %333 RelaxedPrecision -OpDecorate %334 RelaxedPrecision +OpDecorate %324 RelaxedPrecision +OpDecorate %325 RelaxedPrecision +OpDecorate %328 RelaxedPrecision OpDecorate %335 RelaxedPrecision -OpDecorate %336 RelaxedPrecision +OpDecorate %337 RelaxedPrecision +OpDecorate %338 RelaxedPrecision OpDecorate %339 RelaxedPrecision OpDecorate %342 RelaxedPrecision -OpDecorate %346 RelaxedPrecision +OpDecorate %347 RelaxedPrecision OpDecorate %348 RelaxedPrecision OpDecorate %349 RelaxedPrecision -OpDecorate %350 RelaxedPrecision -OpDecorate %353 RelaxedPrecision -OpDecorate %354 RelaxedPrecision +OpDecorate %352 RelaxedPrecision +OpDecorate %357 RelaxedPrecision OpDecorate %358 RelaxedPrecision -OpDecorate %359 RelaxedPrecision OpDecorate %360 RelaxedPrecision OpDecorate %361 RelaxedPrecision OpDecorate %364 RelaxedPrecision @@ -116,44 +112,38 @@ OpDecorate %370 RelaxedPrecision OpDecorate %371 RelaxedPrecision OpDecorate %372 RelaxedPrecision OpDecorate %373 RelaxedPrecision -OpDecorate %376 RelaxedPrecision +OpDecorate %374 RelaxedPrecision OpDecorate %377 RelaxedPrecision -OpDecorate %381 RelaxedPrecision OpDecorate %382 RelaxedPrecision OpDecorate %383 RelaxedPrecision OpDecorate %384 RelaxedPrecision OpDecorate %385 RelaxedPrecision OpDecorate %386 RelaxedPrecision -OpDecorate %389 RelaxedPrecision +OpDecorate %387 RelaxedPrecision OpDecorate %390 RelaxedPrecision -OpDecorate %394 RelaxedPrecision OpDecorate %395 RelaxedPrecision OpDecorate %396 RelaxedPrecision -OpDecorate %397 RelaxedPrecision OpDecorate %398 RelaxedPrecision OpDecorate %399 RelaxedPrecision -OpDecorate %402 RelaxedPrecision -OpDecorate %407 RelaxedPrecision -OpDecorate %408 RelaxedPrecision +OpDecorate %400 RelaxedPrecision +OpDecorate %401 RelaxedPrecision +OpDecorate %404 RelaxedPrecision OpDecorate %409 RelaxedPrecision -OpDecorate %410 RelaxedPrecision OpDecorate %411 RelaxedPrecision OpDecorate %412 RelaxedPrecision OpDecorate %413 RelaxedPrecision OpDecorate %416 RelaxedPrecision -OpDecorate %417 RelaxedPrecision OpDecorate %421 RelaxedPrecision OpDecorate %422 RelaxedPrecision OpDecorate %423 RelaxedPrecision OpDecorate %424 RelaxedPrecision OpDecorate %425 RelaxedPrecision +OpDecorate %427 RelaxedPrecision OpDecorate %428 RelaxedPrecision OpDecorate %429 RelaxedPrecision -OpDecorate %433 RelaxedPrecision +OpDecorate %430 RelaxedPrecision +OpDecorate %431 RelaxedPrecision OpDecorate %434 RelaxedPrecision -OpDecorate %435 RelaxedPrecision -OpDecorate %436 RelaxedPrecision -OpDecorate %437 RelaxedPrecision OpDecorate %438 RelaxedPrecision OpDecorate %439 RelaxedPrecision OpDecorate %440 RelaxedPrecision @@ -161,23 +151,13 @@ OpDecorate %441 RelaxedPrecision OpDecorate %442 RelaxedPrecision OpDecorate %443 RelaxedPrecision OpDecorate %444 RelaxedPrecision +OpDecorate %446 RelaxedPrecision OpDecorate %447 RelaxedPrecision -OpDecorate %451 RelaxedPrecision -OpDecorate %452 RelaxedPrecision -OpDecorate %453 RelaxedPrecision +OpDecorate %450 RelaxedPrecision OpDecorate %454 RelaxedPrecision -OpDecorate %455 RelaxedPrecision -OpDecorate %456 RelaxedPrecision -OpDecorate %457 RelaxedPrecision -OpDecorate %458 RelaxedPrecision -OpDecorate %459 RelaxedPrecision -OpDecorate %461 RelaxedPrecision -OpDecorate %462 RelaxedPrecision -OpDecorate %465 RelaxedPrecision -OpDecorate %469 RelaxedPrecision -OpDecorate %479 RelaxedPrecision -OpDecorate %481 RelaxedPrecision -OpDecorate %482 RelaxedPrecision +OpDecorate %464 RelaxedPrecision +OpDecorate %466 RelaxedPrecision +OpDecorate %467 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -190,8 +170,8 @@ OpDecorate %482 RelaxedPrecision %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %16 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %20 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %24 = OpTypeFunction %bool @@ -204,53 +184,66 @@ OpDecorate %482 RelaxedPrecision %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 %int_2 = OpConstant %int 2 +%62 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2 %false = OpConstantFalse %bool %int_3 = OpConstant %int 3 %70 = OpConstantComposite %v4int %int_3 %int_2 %int_2 %int_3 %v4bool = OpTypeVector %bool 4 %int_n1 = OpConstant %int -1 %int_n2 = OpConstant %int -2 -%85 = OpConstantComposite %v4int %int_n1 %int_n1 %int_n2 %int_n2 -%98 = OpConstantComposite %v4int %int_2 %int_1 %int_1 %int_2 +%84 = OpConstantComposite %v4int %int_n1 %int_n1 %int_n2 %int_n2 +%97 = OpConstantComposite %v4int %int_2 %int_1 %int_1 %int_2 %v3int = OpTypeVector %int 3 %int_9 = OpConstant %int 9 -%114 = OpConstantComposite %v4int %int_9 %int_9 %int_9 %int_2 +%105 = OpConstantComposite %v3int %int_9 %int_9 %int_9 +%113 = OpConstantComposite %v4int %int_9 %int_9 %int_9 %int_2 %v2int = OpTypeVector %int 2 -%129 = OpConstantComposite %v4int %int_3 %int_0 %int_9 %int_2 +%120 = OpConstantComposite %v2int %int_3 %int_3 +%128 = OpConstantComposite %v4int %int_3 %int_0 %int_9 %int_2 %int_5 = OpConstant %int 5 -%142 = OpConstantComposite %v4int %int_0 %int_5 %int_5 %int_0 +%134 = OpConstantComposite %v4int %int_5 %int_5 %int_5 %int_5 +%141 = OpConstantComposite %v4int %int_0 %int_5 %int_5 %int_0 %int_10 = OpConstant %int 10 -%165 = OpConstantComposite %v4int %int_9 %int_9 %int_10 %int_10 -%178 = OpConstantComposite %v4int %int_1 %int_2 %int_1 %int_2 +%157 = OpConstantComposite %v4int %int_10 %int_10 %int_10 %int_10 +%163 = OpConstantComposite %v4int %int_9 %int_9 %int_10 %int_10 +%176 = OpConstantComposite %v4int %int_1 %int_2 %int_1 %int_2 %int_36 = OpConstant %int 36 +%195 = OpConstantComposite %v2int %int_36 %int_36 %int_4 = OpConstant %int 4 %int_18 = OpConstant %int 18 -%208 = OpConstantComposite %v4int %int_4 %int_18 %int_9 %int_2 -%220 = OpConstantComposite %v4int %int_2 %int_9 %int_18 %int_4 -%263 = OpTypeFunction %v4float %_ptr_Function_v2float +%205 = OpConstantComposite %v4int %int_4 %int_18 %int_9 %int_2 +%210 = OpConstantComposite %v4int %int_36 %int_36 %int_36 %int_36 +%217 = OpConstantComposite %v4int %int_2 %int_9 %int_18 %int_4 +%226 = OpConstantComposite %v4int %int_4 %int_4 %int_4 %int_4 +%253 = OpTypeFunction %v4float %_ptr_Function_v2float %_ptr_Function_v4float = OpTypePointer Function %v4float %float_2 = OpConstant %float 2 +%267 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 %float_3 = OpConstant %float 3 -%284 = OpConstantComposite %v4float %float_3 %float_2 %float_2 %float_3 +%274 = OpConstantComposite %v4float %float_3 %float_2 %float_2 %float_3 %float_n1 = OpConstant %float -1 %float_n2 = OpConstant %float -2 -%298 = OpConstantComposite %v4float %float_n1 %float_n1 %float_n2 %float_n2 +%287 = OpConstantComposite %v4float %float_n1 %float_n1 %float_n2 %float_n2 %float_1 = OpConstant %float 1 -%312 = OpConstantComposite %v4float %float_2 %float_1 %float_1 %float_2 +%301 = OpConstantComposite %v4float %float_2 %float_1 %float_1 %float_2 %v3float = OpTypeVector %float 3 %float_9 = OpConstant %float 9 -%327 = OpConstantComposite %v4float %float_9 %float_9 %float_9 %float_2 +%316 = OpConstantComposite %v4float %float_9 %float_9 %float_9 %float_2 %float_18 = OpConstant %float 18 %float_4 = OpConstant %float 4 -%342 = OpConstantComposite %v4float %float_18 %float_4 %float_9 %float_2 +%331 = OpConstantComposite %v4float %float_18 %float_4 %float_9 %float_2 %float_5 = OpConstant %float 5 -%354 = OpConstantComposite %v4float %float_0 %float_5 %float_5 %float_0 +%343 = OpConstantComposite %v4float %float_0 %float_5 %float_5 %float_0 %float_10 = OpConstant %float 10 -%377 = OpConstantComposite %v4float %float_9 %float_9 %float_10 %float_10 -%390 = OpConstantComposite %v4float %float_1 %float_2 %float_1 %float_2 +%359 = OpConstantComposite %v4float %float_10 %float_10 %float_10 %float_10 +%365 = OpConstantComposite %v4float %float_9 %float_9 %float_10 %float_10 +%378 = OpConstantComposite %v4float %float_1 %float_2 %float_1 %float_2 %float_36 = OpConstant %float 36 -%417 = OpConstantComposite %v4float %float_4 %float_18 %float_9 %float_2 -%429 = OpConstantComposite %v4float %float_2 %float_9 %float_18 %float_4 +%397 = OpConstantComposite %v2float %float_36 %float_36 +%405 = OpConstantComposite %v4float %float_4 %float_18 %float_9 %float_2 +%410 = OpConstantComposite %v4float %float_36 %float_36 %float_36 %float_36 +%417 = OpConstantComposite %v4float %float_2 %float_9 %float_18 %float_4 +%426 = OpConstantComposite %v4float %float_4 %float_4 %float_4 %float_4 %float_0_5 = OpConstant %float 0.5 %_entrypoint_v = OpFunction %void None %16 %17 = OpLabel @@ -292,7 +285,6 @@ OpStore %inputRed %45 %58 = OpCompositeConstruct %v4int %51 %53 %55 %57 OpStore %inputGreen %58 %60 = OpLoad %v4int %inputRed -%62 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2 %63 = OpIAdd %v4int %60 %62 OpStore %x %63 %65 = OpLoad %bool %ok @@ -308,429 +300,422 @@ OpBranch %67 OpStore %ok %74 %75 = OpLoad %v4int %inputGreen %76 = OpVectorShuffle %v4int %75 %75 1 3 0 2 -%77 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2 -%78 = OpISub %v4int %76 %77 -OpStore %x %78 -%79 = OpLoad %bool %ok -OpSelectionMerge %81 None -OpBranchConditional %79 %80 %81 +%77 = OpISub %v4int %76 %62 +OpStore %x %77 +%78 = OpLoad %bool %ok +OpSelectionMerge %80 None +OpBranchConditional %78 %79 %80 +%79 = OpLabel +%81 = OpLoad %v4int %x +%85 = OpIEqual %v4bool %81 %84 +%86 = OpAll %bool %85 +OpBranch %80 %80 = OpLabel -%82 = OpLoad %v4int %x -%86 = OpIEqual %v4bool %82 %85 -%87 = OpAll %bool %86 -OpBranch %81 -%81 = OpLabel -%88 = OpPhi %bool %false %67 %87 %80 -OpStore %ok %88 -%89 = OpLoad %v4int %inputRed -%90 = OpLoad %v4int %inputGreen -%91 = OpCompositeExtract %int %90 1 -%92 = OpCompositeConstruct %v4int %91 %91 %91 %91 -%93 = OpIAdd %v4int %89 %92 -OpStore %x %93 -%94 = OpLoad %bool %ok -OpSelectionMerge %96 None -OpBranchConditional %94 %95 %96 +%87 = OpPhi %bool %false %67 %86 %79 +OpStore %ok %87 +%88 = OpLoad %v4int %inputRed +%89 = OpLoad %v4int %inputGreen +%90 = OpCompositeExtract %int %89 1 +%91 = OpCompositeConstruct %v4int %90 %90 %90 %90 +%92 = OpIAdd %v4int %88 %91 +OpStore %x %92 +%93 = OpLoad %bool %ok +OpSelectionMerge %95 None +OpBranchConditional %93 %94 %95 +%94 = OpLabel +%96 = OpLoad %v4int %x +%98 = OpIEqual %v4bool %96 %97 +%99 = OpAll %bool %98 +OpBranch %95 %95 = OpLabel -%97 = OpLoad %v4int %x -%99 = OpIEqual %v4bool %97 %98 -%100 = OpAll %bool %99 -OpBranch %96 -%96 = OpLabel -%101 = OpPhi %bool %false %81 %100 %95 -OpStore %ok %101 -%102 = OpLoad %v4int %inputGreen -%103 = OpVectorShuffle %v3int %102 %102 3 1 3 -%106 = OpCompositeConstruct %v3int %int_9 %int_9 %int_9 -%107 = OpIMul %v3int %103 %106 -%108 = OpLoad %v4int %x -%109 = OpVectorShuffle %v4int %108 %107 4 5 6 3 -OpStore %x %109 -%110 = OpLoad %bool %ok -OpSelectionMerge %112 None -OpBranchConditional %110 %111 %112 +%100 = OpPhi %bool %false %80 %99 %94 +OpStore %ok %100 +%101 = OpLoad %v4int %inputGreen +%102 = OpVectorShuffle %v3int %101 %101 3 1 3 +%106 = OpIMul %v3int %102 %105 +%107 = OpLoad %v4int %x +%108 = OpVectorShuffle %v4int %107 %106 4 5 6 3 +OpStore %x %108 +%109 = OpLoad %bool %ok +OpSelectionMerge %111 None +OpBranchConditional %109 %110 %111 +%110 = OpLabel +%112 = OpLoad %v4int %x +%114 = OpIEqual %v4bool %112 %113 +%115 = OpAll %bool %114 +OpBranch %111 %111 = OpLabel -%113 = OpLoad %v4int %x -%115 = OpIEqual %v4bool %113 %114 -%116 = OpAll %bool %115 -OpBranch %112 -%112 = OpLabel -%117 = OpPhi %bool %false %96 %116 %111 -OpStore %ok %117 -%118 = OpLoad %v4int %x -%119 = OpVectorShuffle %v2int %118 %118 2 3 -%121 = OpCompositeConstruct %v2int %int_3 %int_3 -%122 = OpSDiv %v2int %119 %121 -%123 = OpLoad %v4int %x -%124 = OpVectorShuffle %v4int %123 %122 4 5 2 3 -OpStore %x %124 -%125 = OpLoad %bool %ok -OpSelectionMerge %127 None -OpBranchConditional %125 %126 %127 +%116 = OpPhi %bool %false %95 %115 %110 +OpStore %ok %116 +%117 = OpLoad %v4int %x +%118 = OpVectorShuffle %v2int %117 %117 2 3 +%121 = OpSDiv %v2int %118 %120 +%122 = OpLoad %v4int %x +%123 = OpVectorShuffle %v4int %122 %121 4 5 2 3 +OpStore %x %123 +%124 = OpLoad %bool %ok +OpSelectionMerge %126 None +OpBranchConditional %124 %125 %126 +%125 = OpLabel +%127 = OpLoad %v4int %x +%129 = OpIEqual %v4bool %127 %128 +%130 = OpAll %bool %129 +OpBranch %126 %126 = OpLabel -%128 = OpLoad %v4int %x -%130 = OpIEqual %v4bool %128 %129 -%131 = OpAll %bool %130 -OpBranch %127 -%127 = OpLabel -%132 = OpPhi %bool %false %112 %131 %126 -OpStore %ok %132 -%133 = OpLoad %v4int %inputRed -%135 = OpCompositeConstruct %v4int %int_5 %int_5 %int_5 %int_5 -%136 = OpIMul %v4int %133 %135 -%137 = OpVectorShuffle %v4int %136 %136 1 0 3 2 -OpStore %x %137 -%138 = OpLoad %bool %ok -OpSelectionMerge %140 None -OpBranchConditional %138 %139 %140 +%131 = OpPhi %bool %false %111 %130 %125 +OpStore %ok %131 +%132 = OpLoad %v4int %inputRed +%135 = OpIMul %v4int %132 %134 +%136 = OpVectorShuffle %v4int %135 %135 1 0 3 2 +OpStore %x %136 +%137 = OpLoad %bool %ok +OpSelectionMerge %139 None +OpBranchConditional %137 %138 %139 +%138 = OpLabel +%140 = OpLoad %v4int %x +%142 = OpIEqual %v4bool %140 %141 +%143 = OpAll %bool %142 +OpBranch %139 %139 = OpLabel -%141 = OpLoad %v4int %x -%143 = OpIEqual %v4bool %141 %142 -%144 = OpAll %bool %143 -OpBranch %140 -%140 = OpLabel -%145 = OpPhi %bool %false %127 %144 %139 -OpStore %ok %145 -%146 = OpLoad %v4int %inputRed -%147 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2 -%148 = OpIAdd %v4int %147 %146 -OpStore %x %148 -%149 = OpLoad %bool %ok -OpSelectionMerge %151 None -OpBranchConditional %149 %150 %151 -%150 = OpLabel -%152 = OpLoad %v4int %x -%153 = OpIEqual %v4bool %152 %70 -%154 = OpAll %bool %153 -OpBranch %151 -%151 = OpLabel -%155 = OpPhi %bool %false %140 %154 %150 -OpStore %ok %155 -%157 = OpLoad %v4int %inputGreen -%158 = OpVectorShuffle %v4int %157 %157 1 3 0 2 -%159 = OpCompositeConstruct %v4int %int_10 %int_10 %int_10 %int_10 -%160 = OpISub %v4int %159 %158 -OpStore %x %160 -%161 = OpLoad %bool %ok -OpSelectionMerge %163 None -OpBranchConditional %161 %162 %163 -%162 = OpLabel -%164 = OpLoad %v4int %x -%166 = OpIEqual %v4bool %164 %165 -%167 = OpAll %bool %166 -OpBranch %163 -%163 = OpLabel -%168 = OpPhi %bool %false %151 %167 %162 -OpStore %ok %168 -%169 = OpLoad %v4int %inputRed -%170 = OpCompositeExtract %int %169 0 -%171 = OpLoad %v4int %inputGreen -%172 = OpCompositeConstruct %v4int %170 %170 %170 %170 -%173 = OpIAdd %v4int %172 %171 -OpStore %x %173 -%174 = OpLoad %bool %ok -OpSelectionMerge %176 None -OpBranchConditional %174 %175 %176 -%175 = OpLabel -%177 = OpLoad %v4int %x -%179 = OpIEqual %v4bool %177 %178 -%180 = OpAll %bool %179 -OpBranch %176 -%176 = OpLabel -%181 = OpPhi %bool %false %163 %180 %175 -OpStore %ok %181 -%182 = OpLoad %v4int %inputGreen -%183 = OpVectorShuffle %v3int %182 %182 3 1 3 -%184 = OpCompositeConstruct %v3int %int_9 %int_9 %int_9 -%185 = OpIMul %v3int %184 %183 -%186 = OpLoad %v4int %x -%187 = OpVectorShuffle %v4int %186 %185 4 5 6 3 -OpStore %x %187 -%188 = OpLoad %bool %ok -OpSelectionMerge %190 None -OpBranchConditional %188 %189 %190 -%189 = OpLabel -%191 = OpLoad %v4int %x -%192 = OpIEqual %v4bool %191 %114 -%193 = OpAll %bool %192 -OpBranch %190 -%190 = OpLabel -%194 = OpPhi %bool %false %176 %193 %189 -OpStore %ok %194 -%196 = OpLoad %v4int %x -%197 = OpVectorShuffle %v2int %196 %196 2 3 -%198 = OpCompositeConstruct %v2int %int_36 %int_36 -%199 = OpSDiv %v2int %198 %197 -%200 = OpLoad %v4int %x -%201 = OpVectorShuffle %v4int %200 %199 4 5 2 3 -OpStore %x %201 -%202 = OpLoad %bool %ok -OpSelectionMerge %204 None -OpBranchConditional %202 %203 %204 -%203 = OpLabel -%205 = OpLoad %v4int %x -%209 = OpIEqual %v4bool %205 %208 -%210 = OpAll %bool %209 -OpBranch %204 -%204 = OpLabel -%211 = OpPhi %bool %false %190 %210 %203 -OpStore %ok %211 -%212 = OpLoad %v4int %x -%213 = OpCompositeConstruct %v4int %int_36 %int_36 %int_36 %int_36 -%214 = OpSDiv %v4int %213 %212 -%215 = OpVectorShuffle %v4int %214 %214 1 0 3 2 -OpStore %x %215 -%216 = OpLoad %bool %ok -OpSelectionMerge %218 None -OpBranchConditional %216 %217 %218 -%217 = OpLabel -%219 = OpLoad %v4int %x -%221 = OpIEqual %v4bool %219 %220 -%222 = OpAll %bool %221 -OpBranch %218 -%218 = OpLabel -%223 = OpPhi %bool %false %204 %222 %217 -OpStore %ok %223 -%224 = OpLoad %v4int %x -%225 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2 -%226 = OpIAdd %v4int %224 %225 -OpStore %x %226 -%227 = OpLoad %v4int %x -%228 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2 -%229 = OpIMul %v4int %227 %228 +%144 = OpPhi %bool %false %126 %143 %138 +OpStore %ok %144 +%145 = OpLoad %v4int %inputRed +%146 = OpIAdd %v4int %62 %145 +OpStore %x %146 +%147 = OpLoad %bool %ok +OpSelectionMerge %149 None +OpBranchConditional %147 %148 %149 +%148 = OpLabel +%150 = OpLoad %v4int %x +%151 = OpIEqual %v4bool %150 %70 +%152 = OpAll %bool %151 +OpBranch %149 +%149 = OpLabel +%153 = OpPhi %bool %false %139 %152 %148 +OpStore %ok %153 +%155 = OpLoad %v4int %inputGreen +%156 = OpVectorShuffle %v4int %155 %155 1 3 0 2 +%158 = OpISub %v4int %157 %156 +OpStore %x %158 +%159 = OpLoad %bool %ok +OpSelectionMerge %161 None +OpBranchConditional %159 %160 %161 +%160 = OpLabel +%162 = OpLoad %v4int %x +%164 = OpIEqual %v4bool %162 %163 +%165 = OpAll %bool %164 +OpBranch %161 +%161 = OpLabel +%166 = OpPhi %bool %false %149 %165 %160 +OpStore %ok %166 +%167 = OpLoad %v4int %inputRed +%168 = OpCompositeExtract %int %167 0 +%169 = OpLoad %v4int %inputGreen +%170 = OpCompositeConstruct %v4int %168 %168 %168 %168 +%171 = OpIAdd %v4int %170 %169 +OpStore %x %171 +%172 = OpLoad %bool %ok +OpSelectionMerge %174 None +OpBranchConditional %172 %173 %174 +%173 = OpLabel +%175 = OpLoad %v4int %x +%177 = OpIEqual %v4bool %175 %176 +%178 = OpAll %bool %177 +OpBranch %174 +%174 = OpLabel +%179 = OpPhi %bool %false %161 %178 %173 +OpStore %ok %179 +%180 = OpLoad %v4int %inputGreen +%181 = OpVectorShuffle %v3int %180 %180 3 1 3 +%182 = OpIMul %v3int %105 %181 +%183 = OpLoad %v4int %x +%184 = OpVectorShuffle %v4int %183 %182 4 5 6 3 +OpStore %x %184 +%185 = OpLoad %bool %ok +OpSelectionMerge %187 None +OpBranchConditional %185 %186 %187 +%186 = OpLabel +%188 = OpLoad %v4int %x +%189 = OpIEqual %v4bool %188 %113 +%190 = OpAll %bool %189 +OpBranch %187 +%187 = OpLabel +%191 = OpPhi %bool %false %174 %190 %186 +OpStore %ok %191 +%193 = OpLoad %v4int %x +%194 = OpVectorShuffle %v2int %193 %193 2 3 +%196 = OpSDiv %v2int %195 %194 +%197 = OpLoad %v4int %x +%198 = OpVectorShuffle %v4int %197 %196 4 5 2 3 +OpStore %x %198 +%199 = OpLoad %bool %ok +OpSelectionMerge %201 None +OpBranchConditional %199 %200 %201 +%200 = OpLabel +%202 = OpLoad %v4int %x +%206 = OpIEqual %v4bool %202 %205 +%207 = OpAll %bool %206 +OpBranch %201 +%201 = OpLabel +%208 = OpPhi %bool %false %187 %207 %200 +OpStore %ok %208 +%209 = OpLoad %v4int %x +%211 = OpSDiv %v4int %210 %209 +%212 = OpVectorShuffle %v4int %211 %211 1 0 3 2 +OpStore %x %212 +%213 = OpLoad %bool %ok +OpSelectionMerge %215 None +OpBranchConditional %213 %214 %215 +%214 = OpLabel +%216 = OpLoad %v4int %x +%218 = OpIEqual %v4bool %216 %217 +%219 = OpAll %bool %218 +OpBranch %215 +%215 = OpLabel +%220 = OpPhi %bool %false %201 %219 %214 +OpStore %ok %220 +%221 = OpLoad %v4int %x +%222 = OpIAdd %v4int %221 %62 +OpStore %x %222 +%223 = OpLoad %v4int %x +%224 = OpIMul %v4int %223 %62 +OpStore %x %224 +%225 = OpLoad %v4int %x +%227 = OpISub %v4int %225 %226 +OpStore %x %227 +%228 = OpLoad %v4int %x +%229 = OpSDiv %v4int %228 %62 OpStore %x %229 -%230 = OpLoad %v4int %x -%231 = OpCompositeConstruct %v4int %int_4 %int_4 %int_4 %int_4 -%232 = OpISub %v4int %230 %231 -OpStore %x %232 +%230 = OpLoad %bool %ok +OpSelectionMerge %232 None +OpBranchConditional %230 %231 %232 +%231 = OpLabel %233 = OpLoad %v4int %x -%234 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2 -%235 = OpSDiv %v4int %233 %234 -OpStore %x %235 -%236 = OpLoad %bool %ok -OpSelectionMerge %238 None -OpBranchConditional %236 %237 %238 -%237 = OpLabel +%234 = OpIEqual %v4bool %233 %217 +%235 = OpAll %bool %234 +OpBranch %232 +%232 = OpLabel +%236 = OpPhi %bool %false %215 %235 %231 +OpStore %ok %236 +%237 = OpLoad %v4int %x +%238 = OpIAdd %v4int %237 %62 +OpStore %x %238 %239 = OpLoad %v4int %x -%240 = OpIEqual %v4bool %239 %220 -%241 = OpAll %bool %240 -OpBranch %238 -%238 = OpLabel -%242 = OpPhi %bool %false %218 %241 %237 -OpStore %ok %242 +%240 = OpIMul %v4int %239 %62 +OpStore %x %240 +%241 = OpLoad %v4int %x +%242 = OpISub %v4int %241 %226 +OpStore %x %242 %243 = OpLoad %v4int %x -%244 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2 -%245 = OpIAdd %v4int %243 %244 -OpStore %x %245 -%246 = OpLoad %v4int %x -%247 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2 -%248 = OpIMul %v4int %246 %247 -OpStore %x %248 -%249 = OpLoad %v4int %x -%250 = OpCompositeConstruct %v4int %int_4 %int_4 %int_4 %int_4 -%251 = OpISub %v4int %249 %250 -OpStore %x %251 -%252 = OpLoad %v4int %x -%253 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2 -%254 = OpSDiv %v4int %252 %253 -OpStore %x %254 -%255 = OpLoad %bool %ok -OpSelectionMerge %257 None -OpBranchConditional %255 %256 %257 -%256 = OpLabel -%258 = OpLoad %v4int %x -%259 = OpIEqual %v4bool %258 %220 -%260 = OpAll %bool %259 -OpBranch %257 -%257 = OpLabel -%261 = OpPhi %bool %false %238 %260 %256 -OpStore %ok %261 -%262 = OpLoad %bool %ok -OpReturnValue %262 +%244 = OpSDiv %v4int %243 %62 +OpStore %x %244 +%245 = OpLoad %bool %ok +OpSelectionMerge %247 None +OpBranchConditional %245 %246 %247 +%246 = OpLabel +%248 = OpLoad %v4int %x +%249 = OpIEqual %v4bool %248 %217 +%250 = OpAll %bool %249 +OpBranch %247 +%247 = OpLabel +%251 = OpPhi %bool %false %232 %250 %246 +OpStore %ok %251 +%252 = OpLoad %bool %ok +OpReturnValue %252 OpFunctionEnd -%main = OpFunction %v4float None %263 -%264 = OpFunctionParameter %_ptr_Function_v2float -%265 = OpLabel +%main = OpFunction %v4float None %253 +%254 = OpFunctionParameter %_ptr_Function_v2float +%255 = OpLabel %_0_ok = OpVariable %_ptr_Function_bool Function %_1_inputRed = OpVariable %_ptr_Function_v4float Function %_2_inputGreen = OpVariable %_ptr_Function_v4float Function %_3_x = OpVariable %_ptr_Function_v4float Function -%474 = OpVariable %_ptr_Function_v4float Function +%459 = OpVariable %_ptr_Function_v4float Function OpStore %_0_ok %true -%269 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%270 = OpLoad %v4float %269 -OpStore %_1_inputRed %270 -%272 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%273 = OpLoad %v4float %272 -OpStore %_2_inputGreen %273 -%275 = OpLoad %v4float %_1_inputRed -%277 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2 -%278 = OpFAdd %v4float %275 %277 -OpStore %_3_x %278 -%279 = OpLoad %bool %_0_ok -OpSelectionMerge %281 None -OpBranchConditional %279 %280 %281 -%280 = OpLabel -%282 = OpLoad %v4float %_3_x -%285 = OpFOrdEqual %v4bool %282 %284 -%286 = OpAll %bool %285 -OpBranch %281 -%281 = OpLabel -%287 = OpPhi %bool %false %265 %286 %280 -OpStore %_0_ok %287 -%288 = OpLoad %v4float %_2_inputGreen -%289 = OpVectorShuffle %v4float %288 %288 1 3 0 2 -%290 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2 -%291 = OpFSub %v4float %289 %290 -OpStore %_3_x %291 -%292 = OpLoad %bool %_0_ok -OpSelectionMerge %294 None -OpBranchConditional %292 %293 %294 -%293 = OpLabel -%295 = OpLoad %v4float %_3_x -%299 = OpFOrdEqual %v4bool %295 %298 -%300 = OpAll %bool %299 -OpBranch %294 -%294 = OpLabel -%301 = OpPhi %bool %false %281 %300 %293 -OpStore %_0_ok %301 -%302 = OpLoad %v4float %_1_inputRed -%303 = OpLoad %v4float %_2_inputGreen -%304 = OpCompositeExtract %float %303 1 -%305 = OpCompositeConstruct %v4float %304 %304 %304 %304 -%306 = OpFAdd %v4float %302 %305 -OpStore %_3_x %306 -%307 = OpLoad %bool %_0_ok -OpSelectionMerge %309 None -OpBranchConditional %307 %308 %309 -%308 = OpLabel +%259 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 +%260 = OpLoad %v4float %259 +OpStore %_1_inputRed %260 +%262 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 +%263 = OpLoad %v4float %262 +OpStore %_2_inputGreen %263 +%265 = OpLoad %v4float %_1_inputRed +%268 = OpFAdd %v4float %265 %267 +OpStore %_3_x %268 +%269 = OpLoad %bool %_0_ok +OpSelectionMerge %271 None +OpBranchConditional %269 %270 %271 +%270 = OpLabel +%272 = OpLoad %v4float %_3_x +%275 = OpFOrdEqual %v4bool %272 %274 +%276 = OpAll %bool %275 +OpBranch %271 +%271 = OpLabel +%277 = OpPhi %bool %false %255 %276 %270 +OpStore %_0_ok %277 +%278 = OpLoad %v4float %_2_inputGreen +%279 = OpVectorShuffle %v4float %278 %278 1 3 0 2 +%280 = OpFSub %v4float %279 %267 +OpStore %_3_x %280 +%281 = OpLoad %bool %_0_ok +OpSelectionMerge %283 None +OpBranchConditional %281 %282 %283 +%282 = OpLabel +%284 = OpLoad %v4float %_3_x +%288 = OpFOrdEqual %v4bool %284 %287 +%289 = OpAll %bool %288 +OpBranch %283 +%283 = OpLabel +%290 = OpPhi %bool %false %271 %289 %282 +OpStore %_0_ok %290 +%291 = OpLoad %v4float %_1_inputRed +%292 = OpLoad %v4float %_2_inputGreen +%293 = OpCompositeExtract %float %292 1 +%294 = OpCompositeConstruct %v4float %293 %293 %293 %293 +%295 = OpFAdd %v4float %291 %294 +OpStore %_3_x %295 +%296 = OpLoad %bool %_0_ok +OpSelectionMerge %298 None +OpBranchConditional %296 %297 %298 +%297 = OpLabel +%299 = OpLoad %v4float %_3_x +%302 = OpFOrdEqual %v4bool %299 %301 +%303 = OpAll %bool %302 +OpBranch %298 +%298 = OpLabel +%304 = OpPhi %bool %false %283 %303 %297 +OpStore %_0_ok %304 +%305 = OpLoad %v4float %_2_inputGreen +%306 = OpVectorShuffle %v3float %305 %305 3 1 3 +%309 = OpVectorTimesScalar %v3float %306 %float_9 %310 = OpLoad %v4float %_3_x -%313 = OpFOrdEqual %v4bool %310 %312 -%314 = OpAll %bool %313 -OpBranch %309 -%309 = OpLabel -%315 = OpPhi %bool %false %294 %314 %308 -OpStore %_0_ok %315 -%316 = OpLoad %v4float %_2_inputGreen -%317 = OpVectorShuffle %v3float %316 %316 3 1 3 -%320 = OpVectorTimesScalar %v3float %317 %float_9 -%321 = OpLoad %v4float %_3_x -%322 = OpVectorShuffle %v4float %321 %320 4 5 6 3 -OpStore %_3_x %322 -%323 = OpLoad %bool %_0_ok -OpSelectionMerge %325 None -OpBranchConditional %323 %324 %325 -%324 = OpLabel -%326 = OpLoad %v4float %_3_x -%328 = OpFOrdEqual %v4bool %326 %327 -%329 = OpAll %bool %328 -OpBranch %325 -%325 = OpLabel -%330 = OpPhi %bool %false %309 %329 %324 -OpStore %_0_ok %330 -%331 = OpLoad %v4float %_3_x -%332 = OpVectorShuffle %v2float %331 %331 2 3 -%333 = OpVectorTimesScalar %v2float %332 %float_2 -%334 = OpLoad %v4float %_3_x -%335 = OpVectorShuffle %v4float %334 %333 4 5 2 3 -OpStore %_3_x %335 -%336 = OpLoad %bool %_0_ok -OpSelectionMerge %338 None -OpBranchConditional %336 %337 %338 -%337 = OpLabel -%339 = OpLoad %v4float %_3_x -%343 = OpFOrdEqual %v4bool %339 %342 -%344 = OpAll %bool %343 -OpBranch %338 -%338 = OpLabel -%345 = OpPhi %bool %false %325 %344 %337 -OpStore %_0_ok %345 -%346 = OpLoad %v4float %_1_inputRed -%348 = OpVectorTimesScalar %v4float %346 %float_5 -%349 = OpVectorShuffle %v4float %348 %348 1 0 3 2 -OpStore %_3_x %349 -%350 = OpLoad %bool %_0_ok -OpSelectionMerge %352 None -OpBranchConditional %350 %351 %352 +%311 = OpVectorShuffle %v4float %310 %309 4 5 6 3 +OpStore %_3_x %311 +%312 = OpLoad %bool %_0_ok +OpSelectionMerge %314 None +OpBranchConditional %312 %313 %314 +%313 = OpLabel +%315 = OpLoad %v4float %_3_x +%317 = OpFOrdEqual %v4bool %315 %316 +%318 = OpAll %bool %317 +OpBranch %314 +%314 = OpLabel +%319 = OpPhi %bool %false %298 %318 %313 +OpStore %_0_ok %319 +%320 = OpLoad %v4float %_3_x +%321 = OpVectorShuffle %v2float %320 %320 2 3 +%322 = OpVectorTimesScalar %v2float %321 %float_2 +%323 = OpLoad %v4float %_3_x +%324 = OpVectorShuffle %v4float %323 %322 4 5 2 3 +OpStore %_3_x %324 +%325 = OpLoad %bool %_0_ok +OpSelectionMerge %327 None +OpBranchConditional %325 %326 %327 +%326 = OpLabel +%328 = OpLoad %v4float %_3_x +%332 = OpFOrdEqual %v4bool %328 %331 +%333 = OpAll %bool %332 +OpBranch %327 +%327 = OpLabel +%334 = OpPhi %bool %false %314 %333 %326 +OpStore %_0_ok %334 +%335 = OpLoad %v4float %_1_inputRed +%337 = OpVectorTimesScalar %v4float %335 %float_5 +%338 = OpVectorShuffle %v4float %337 %337 1 0 3 2 +OpStore %_3_x %338 +%339 = OpLoad %bool %_0_ok +OpSelectionMerge %341 None +OpBranchConditional %339 %340 %341 +%340 = OpLabel +%342 = OpLoad %v4float %_3_x +%344 = OpFOrdEqual %v4bool %342 %343 +%345 = OpAll %bool %344 +OpBranch %341 +%341 = OpLabel +%346 = OpPhi %bool %false %327 %345 %340 +OpStore %_0_ok %346 +%347 = OpLoad %v4float %_1_inputRed +%348 = OpFAdd %v4float %267 %347 +OpStore %_3_x %348 +%349 = OpLoad %bool %_0_ok +OpSelectionMerge %351 None +OpBranchConditional %349 %350 %351 +%350 = OpLabel +%352 = OpLoad %v4float %_3_x +%353 = OpFOrdEqual %v4bool %352 %274 +%354 = OpAll %bool %353 +OpBranch %351 %351 = OpLabel -%353 = OpLoad %v4float %_3_x -%355 = OpFOrdEqual %v4bool %353 %354 -%356 = OpAll %bool %355 -OpBranch %352 -%352 = OpLabel -%357 = OpPhi %bool %false %338 %356 %351 -OpStore %_0_ok %357 -%358 = OpLoad %v4float %_1_inputRed -%359 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2 -%360 = OpFAdd %v4float %359 %358 +%355 = OpPhi %bool %false %341 %354 %350 +OpStore %_0_ok %355 +%357 = OpLoad %v4float %_2_inputGreen +%358 = OpVectorShuffle %v4float %357 %357 1 3 0 2 +%360 = OpFSub %v4float %359 %358 OpStore %_3_x %360 %361 = OpLoad %bool %_0_ok OpSelectionMerge %363 None OpBranchConditional %361 %362 %363 %362 = OpLabel %364 = OpLoad %v4float %_3_x -%365 = OpFOrdEqual %v4bool %364 %284 -%366 = OpAll %bool %365 +%366 = OpFOrdEqual %v4bool %364 %365 +%367 = OpAll %bool %366 OpBranch %363 %363 = OpLabel -%367 = OpPhi %bool %false %352 %366 %362 -OpStore %_0_ok %367 -%369 = OpLoad %v4float %_2_inputGreen -%370 = OpVectorShuffle %v4float %369 %369 1 3 0 2 -%371 = OpCompositeConstruct %v4float %float_10 %float_10 %float_10 %float_10 -%372 = OpFSub %v4float %371 %370 -OpStore %_3_x %372 -%373 = OpLoad %bool %_0_ok -OpSelectionMerge %375 None -OpBranchConditional %373 %374 %375 -%374 = OpLabel -%376 = OpLoad %v4float %_3_x -%378 = OpFOrdEqual %v4bool %376 %377 -%379 = OpAll %bool %378 -OpBranch %375 +%368 = OpPhi %bool %false %351 %367 %362 +OpStore %_0_ok %368 +%369 = OpLoad %v4float %_1_inputRed +%370 = OpCompositeExtract %float %369 0 +%371 = OpLoad %v4float %_2_inputGreen +%372 = OpCompositeConstruct %v4float %370 %370 %370 %370 +%373 = OpFAdd %v4float %372 %371 +OpStore %_3_x %373 +%374 = OpLoad %bool %_0_ok +OpSelectionMerge %376 None +OpBranchConditional %374 %375 %376 %375 = OpLabel -%380 = OpPhi %bool %false %363 %379 %374 -OpStore %_0_ok %380 -%381 = OpLoad %v4float %_1_inputRed -%382 = OpCompositeExtract %float %381 0 -%383 = OpLoad %v4float %_2_inputGreen -%384 = OpCompositeConstruct %v4float %382 %382 %382 %382 -%385 = OpFAdd %v4float %384 %383 -OpStore %_3_x %385 -%386 = OpLoad %bool %_0_ok -OpSelectionMerge %388 None -OpBranchConditional %386 %387 %388 -%387 = OpLabel -%389 = OpLoad %v4float %_3_x -%391 = OpFOrdEqual %v4bool %389 %390 -%392 = OpAll %bool %391 -OpBranch %388 +%377 = OpLoad %v4float %_3_x +%379 = OpFOrdEqual %v4bool %377 %378 +%380 = OpAll %bool %379 +OpBranch %376 +%376 = OpLabel +%381 = OpPhi %bool %false %363 %380 %375 +OpStore %_0_ok %381 +%382 = OpLoad %v4float %_2_inputGreen +%383 = OpVectorShuffle %v3float %382 %382 3 1 3 +%384 = OpVectorTimesScalar %v3float %383 %float_9 +%385 = OpLoad %v4float %_3_x +%386 = OpVectorShuffle %v4float %385 %384 4 5 6 3 +OpStore %_3_x %386 +%387 = OpLoad %bool %_0_ok +OpSelectionMerge %389 None +OpBranchConditional %387 %388 %389 %388 = OpLabel -%393 = OpPhi %bool %false %375 %392 %387 +%390 = OpLoad %v4float %_3_x +%391 = OpFOrdEqual %v4bool %390 %316 +%392 = OpAll %bool %391 +OpBranch %389 +%389 = OpLabel +%393 = OpPhi %bool %false %376 %392 %388 OpStore %_0_ok %393 -%394 = OpLoad %v4float %_2_inputGreen -%395 = OpVectorShuffle %v3float %394 %394 3 1 3 -%396 = OpVectorTimesScalar %v3float %395 %float_9 -%397 = OpLoad %v4float %_3_x -%398 = OpVectorShuffle %v4float %397 %396 4 5 6 3 -OpStore %_3_x %398 -%399 = OpLoad %bool %_0_ok -OpSelectionMerge %401 None -OpBranchConditional %399 %400 %401 -%400 = OpLabel -%402 = OpLoad %v4float %_3_x -%403 = OpFOrdEqual %v4bool %402 %327 -%404 = OpAll %bool %403 -OpBranch %401 -%401 = OpLabel -%405 = OpPhi %bool %false %388 %404 %400 -OpStore %_0_ok %405 -%407 = OpLoad %v4float %_3_x -%408 = OpVectorShuffle %v2float %407 %407 2 3 -%409 = OpCompositeConstruct %v2float %float_36 %float_36 -%410 = OpFDiv %v2float %409 %408 -%411 = OpLoad %v4float %_3_x -%412 = OpVectorShuffle %v4float %411 %410 4 5 2 3 +%395 = OpLoad %v4float %_3_x +%396 = OpVectorShuffle %v2float %395 %395 2 3 +%398 = OpFDiv %v2float %397 %396 +%399 = OpLoad %v4float %_3_x +%400 = OpVectorShuffle %v4float %399 %398 4 5 2 3 +OpStore %_3_x %400 +%401 = OpLoad %bool %_0_ok +OpSelectionMerge %403 None +OpBranchConditional %401 %402 %403 +%402 = OpLabel +%404 = OpLoad %v4float %_3_x +%406 = OpFOrdEqual %v4bool %404 %405 +%407 = OpAll %bool %406 +OpBranch %403 +%403 = OpLabel +%408 = OpPhi %bool %false %389 %407 %402 +OpStore %_0_ok %408 +%409 = OpLoad %v4float %_3_x +%411 = OpFDiv %v4float %410 %409 +%412 = OpVectorShuffle %v4float %411 %411 1 0 3 2 OpStore %_3_x %412 %413 = OpLoad %bool %_0_ok OpSelectionMerge %415 None @@ -741,96 +726,76 @@ OpBranchConditional %413 %414 %415 %419 = OpAll %bool %418 OpBranch %415 %415 = OpLabel -%420 = OpPhi %bool %false %401 %419 %414 +%420 = OpPhi %bool %false %403 %419 %414 OpStore %_0_ok %420 %421 = OpLoad %v4float %_3_x -%422 = OpCompositeConstruct %v4float %float_36 %float_36 %float_36 %float_36 -%423 = OpFDiv %v4float %422 %421 -%424 = OpVectorShuffle %v4float %423 %423 1 0 3 2 +%422 = OpFAdd %v4float %421 %267 +OpStore %_3_x %422 +%423 = OpLoad %v4float %_3_x +%424 = OpVectorTimesScalar %v4float %423 %float_2 OpStore %_3_x %424 -%425 = OpLoad %bool %_0_ok -OpSelectionMerge %427 None -OpBranchConditional %425 %426 %427 -%426 = OpLabel +%425 = OpLoad %v4float %_3_x +%427 = OpFSub %v4float %425 %426 +OpStore %_3_x %427 %428 = OpLoad %v4float %_3_x -%430 = OpFOrdEqual %v4bool %428 %429 -%431 = OpAll %bool %430 -OpBranch %427 -%427 = OpLabel -%432 = OpPhi %bool %false %415 %431 %426 -OpStore %_0_ok %432 -%433 = OpLoad %v4float %_3_x -%434 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2 -%435 = OpFAdd %v4float %433 %434 -OpStore %_3_x %435 -%436 = OpLoad %v4float %_3_x -%437 = OpVectorTimesScalar %v4float %436 %float_2 -OpStore %_3_x %437 +%429 = OpFDiv %float %float_1 %float_2 +%430 = OpVectorTimesScalar %v4float %428 %429 +OpStore %_3_x %430 +%431 = OpLoad %bool %_0_ok +OpSelectionMerge %433 None +OpBranchConditional %431 %432 %433 +%432 = OpLabel +%434 = OpLoad %v4float %_3_x +%435 = OpFOrdEqual %v4bool %434 %417 +%436 = OpAll %bool %435 +OpBranch %433 +%433 = OpLabel +%437 = OpPhi %bool %false %415 %436 %432 +OpStore %_0_ok %437 %438 = OpLoad %v4float %_3_x -%439 = OpCompositeConstruct %v4float %float_4 %float_4 %float_4 %float_4 -%440 = OpFSub %v4float %438 %439 -OpStore %_3_x %440 -%441 = OpLoad %v4float %_3_x -%442 = OpFDiv %float %float_1 %float_2 -%443 = OpVectorTimesScalar %v4float %441 %442 +%439 = OpFAdd %v4float %438 %267 +OpStore %_3_x %439 +%440 = OpLoad %v4float %_3_x +%441 = OpVectorTimesScalar %v4float %440 %float_2 +OpStore %_3_x %441 +%442 = OpLoad %v4float %_3_x +%443 = OpFSub %v4float %442 %426 OpStore %_3_x %443 -%444 = OpLoad %bool %_0_ok -OpSelectionMerge %446 None -OpBranchConditional %444 %445 %446 -%445 = OpLabel -%447 = OpLoad %v4float %_3_x -%448 = OpFOrdEqual %v4bool %447 %429 -%449 = OpAll %bool %448 -OpBranch %446 -%446 = OpLabel -%450 = OpPhi %bool %false %427 %449 %445 -OpStore %_0_ok %450 -%451 = OpLoad %v4float %_3_x -%452 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2 -%453 = OpFAdd %v4float %451 %452 -OpStore %_3_x %453 -%454 = OpLoad %v4float %_3_x -%455 = OpVectorTimesScalar %v4float %454 %float_2 -OpStore %_3_x %455 -%456 = OpLoad %v4float %_3_x -%457 = OpCompositeConstruct %v4float %float_4 %float_4 %float_4 %float_4 -%458 = OpFSub %v4float %456 %457 -OpStore %_3_x %458 -%459 = OpLoad %v4float %_3_x -%461 = OpVectorTimesScalar %v4float %459 %float_0_5 -OpStore %_3_x %461 -%462 = OpLoad %bool %_0_ok -OpSelectionMerge %464 None -OpBranchConditional %462 %463 %464 -%463 = OpLabel -%465 = OpLoad %v4float %_3_x -%466 = OpFOrdEqual %v4bool %465 %429 -%467 = OpAll %bool %466 -OpBranch %464 -%464 = OpLabel -%468 = OpPhi %bool %false %446 %467 %463 -OpStore %_0_ok %468 -%469 = OpLoad %bool %_0_ok -OpSelectionMerge %471 None -OpBranchConditional %469 %470 %471 -%470 = OpLabel -%472 = OpFunctionCall %bool %test_int_b -OpBranch %471 -%471 = OpLabel -%473 = OpPhi %bool %false %464 %472 %470 -OpSelectionMerge %477 None -OpBranchConditional %473 %475 %476 -%475 = OpLabel -%478 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 -%479 = OpLoad %v4float %478 -OpStore %474 %479 -OpBranch %477 -%476 = OpLabel -%480 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 -%481 = OpLoad %v4float %480 -OpStore %474 %481 -OpBranch %477 -%477 = OpLabel -%482 = OpLoad %v4float %474 -OpReturnValue %482 +%444 = OpLoad %v4float %_3_x +%446 = OpVectorTimesScalar %v4float %444 %float_0_5 +OpStore %_3_x %446 +%447 = OpLoad %bool %_0_ok +OpSelectionMerge %449 None +OpBranchConditional %447 %448 %449 +%448 = OpLabel +%450 = OpLoad %v4float %_3_x +%451 = OpFOrdEqual %v4bool %450 %417 +%452 = OpAll %bool %451 +OpBranch %449 +%449 = OpLabel +%453 = OpPhi %bool %false %433 %452 %448 +OpStore %_0_ok %453 +%454 = OpLoad %bool %_0_ok +OpSelectionMerge %456 None +OpBranchConditional %454 %455 %456 +%455 = OpLabel +%457 = OpFunctionCall %bool %test_int_b +OpBranch %456 +%456 = OpLabel +%458 = OpPhi %bool %false %449 %457 %455 +OpSelectionMerge %462 None +OpBranchConditional %458 %460 %461 +%460 = OpLabel +%463 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1 +%464 = OpLoad %v4float %463 +OpStore %459 %464 +OpBranch %462 +%461 = OpLabel +%465 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0 +%466 = OpLoad %v4float %465 +OpStore %459 %466 +OpBranch %462 +%462 = OpLabel +%467 = OpLoad %v4float %459 +OpReturnValue %467 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/VectorToMatrixCast.asm.frag b/third_party/skia/tests/sksl/shared/VectorToMatrixCast.asm.frag index 6ed72accb434..cf96d5dac0da 100644 --- a/third_party/skia/tests/sksl/shared/VectorToMatrixCast.asm.frag +++ b/third_party/skia/tests/sksl/shared/VectorToMatrixCast.asm.frag @@ -33,57 +33,54 @@ OpDecorate %40 RelaxedPrecision OpDecorate %41 RelaxedPrecision OpDecorate %42 RelaxedPrecision OpDecorate %43 RelaxedPrecision -OpDecorate %44 RelaxedPrecision -OpDecorate %49 RelaxedPrecision -OpDecorate %50 RelaxedPrecision -OpDecorate %51 RelaxedPrecision -OpDecorate %63 RelaxedPrecision -OpDecorate %67 RelaxedPrecision +OpDecorate %45 RelaxedPrecision +OpDecorate %61 RelaxedPrecision +OpDecorate %65 RelaxedPrecision +OpDecorate %81 RelaxedPrecision +OpDecorate %86 RelaxedPrecision +OpDecorate %87 RelaxedPrecision OpDecorate %88 RelaxedPrecision +OpDecorate %89 RelaxedPrecision +OpDecorate %90 RelaxedPrecision +OpDecorate %91 RelaxedPrecision +OpDecorate %92 RelaxedPrecision OpDecorate %93 RelaxedPrecision -OpDecorate %94 RelaxedPrecision -OpDecorate %95 RelaxedPrecision -OpDecorate %96 RelaxedPrecision -OpDecorate %97 RelaxedPrecision -OpDecorate %98 RelaxedPrecision -OpDecorate %99 RelaxedPrecision -OpDecorate %100 RelaxedPrecision -OpDecorate %102 RelaxedPrecision -OpDecorate %103 RelaxedPrecision -OpDecorate %104 RelaxedPrecision +OpDecorate %105 RelaxedPrecision +OpDecorate %109 RelaxedPrecision +OpDecorate %110 RelaxedPrecision +OpDecorate %111 RelaxedPrecision +OpDecorate %112 RelaxedPrecision +OpDecorate %113 RelaxedPrecision +OpDecorate %114 RelaxedPrecision OpDecorate %115 RelaxedPrecision -OpDecorate %119 RelaxedPrecision -OpDecorate %120 RelaxedPrecision -OpDecorate %121 RelaxedPrecision -OpDecorate %122 RelaxedPrecision -OpDecorate %123 RelaxedPrecision -OpDecorate %124 RelaxedPrecision +OpDecorate %116 RelaxedPrecision OpDecorate %125 RelaxedPrecision -OpDecorate %126 RelaxedPrecision -OpDecorate %127 RelaxedPrecision -OpDecorate %128 RelaxedPrecision OpDecorate %129 RelaxedPrecision -OpDecorate %140 RelaxedPrecision -OpDecorate %144 RelaxedPrecision +OpDecorate %130 RelaxedPrecision +OpDecorate %132 RelaxedPrecision +OpDecorate %134 RelaxedPrecision +OpDecorate %136 RelaxedPrecision +OpDecorate %141 RelaxedPrecision +OpDecorate %143 RelaxedPrecision OpDecorate %145 RelaxedPrecision OpDecorate %147 RelaxedPrecision +OpDecorate %148 RelaxedPrecision OpDecorate %149 RelaxedPrecision +OpDecorate %150 RelaxedPrecision OpDecorate %151 RelaxedPrecision -OpDecorate %156 RelaxedPrecision -OpDecorate %158 RelaxedPrecision -OpDecorate %160 RelaxedPrecision -OpDecorate %162 RelaxedPrecision -OpDecorate %163 RelaxedPrecision +OpDecorate %152 RelaxedPrecision +OpDecorate %153 RelaxedPrecision +OpDecorate %154 RelaxedPrecision +OpDecorate %155 RelaxedPrecision OpDecorate %164 RelaxedPrecision -OpDecorate %165 RelaxedPrecision -OpDecorate %166 RelaxedPrecision -OpDecorate %167 RelaxedPrecision OpDecorate %168 RelaxedPrecision OpDecorate %169 RelaxedPrecision OpDecorate %170 RelaxedPrecision OpDecorate %171 RelaxedPrecision OpDecorate %172 RelaxedPrecision OpDecorate %173 RelaxedPrecision +OpDecorate %174 RelaxedPrecision +OpDecorate %175 RelaxedPrecision OpDecorate %184 RelaxedPrecision OpDecorate %188 RelaxedPrecision OpDecorate %189 RelaxedPrecision @@ -93,46 +90,28 @@ OpDecorate %192 RelaxedPrecision OpDecorate %193 RelaxedPrecision OpDecorate %194 RelaxedPrecision OpDecorate %195 RelaxedPrecision -OpDecorate %196 RelaxedPrecision -OpDecorate %197 RelaxedPrecision -OpDecorate %198 RelaxedPrecision +OpDecorate %204 RelaxedPrecision +OpDecorate %208 RelaxedPrecision OpDecorate %209 RelaxedPrecision +OpDecorate %211 RelaxedPrecision OpDecorate %213 RelaxedPrecision -OpDecorate %214 RelaxedPrecision OpDecorate %215 RelaxedPrecision -OpDecorate %216 RelaxedPrecision -OpDecorate %217 RelaxedPrecision -OpDecorate %218 RelaxedPrecision -OpDecorate %219 RelaxedPrecision OpDecorate %220 RelaxedPrecision -OpDecorate %221 RelaxedPrecision OpDecorate %222 RelaxedPrecision -OpDecorate %223 RelaxedPrecision +OpDecorate %224 RelaxedPrecision +OpDecorate %226 RelaxedPrecision +OpDecorate %227 RelaxedPrecision +OpDecorate %228 RelaxedPrecision +OpDecorate %229 RelaxedPrecision +OpDecorate %230 RelaxedPrecision +OpDecorate %231 RelaxedPrecision +OpDecorate %232 RelaxedPrecision +OpDecorate %233 RelaxedPrecision OpDecorate %234 RelaxedPrecision -OpDecorate %238 RelaxedPrecision -OpDecorate %239 RelaxedPrecision -OpDecorate %241 RelaxedPrecision OpDecorate %243 RelaxedPrecision -OpDecorate %245 RelaxedPrecision OpDecorate %250 RelaxedPrecision -OpDecorate %252 RelaxedPrecision +OpDecorate %253 RelaxedPrecision OpDecorate %254 RelaxedPrecision -OpDecorate %256 RelaxedPrecision -OpDecorate %257 RelaxedPrecision -OpDecorate %258 RelaxedPrecision -OpDecorate %259 RelaxedPrecision -OpDecorate %260 RelaxedPrecision -OpDecorate %261 RelaxedPrecision -OpDecorate %262 RelaxedPrecision -OpDecorate %263 RelaxedPrecision -OpDecorate %264 RelaxedPrecision -OpDecorate %265 RelaxedPrecision -OpDecorate %266 RelaxedPrecision -OpDecorate %267 RelaxedPrecision -OpDecorate %278 RelaxedPrecision -OpDecorate %285 RelaxedPrecision -OpDecorate %288 RelaxedPrecision -OpDecorate %289 RelaxedPrecision %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float @@ -145,8 +124,8 @@ OpDecorate %289 RelaxedPrecision %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform %void = OpTypeVoid %15 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %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 @@ -160,9 +139,14 @@ OpDecorate %289 RelaxedPrecision %float_n1_25 = OpConstant %float -1.25 %float_0_75 = OpConstant %float 0.75 %float_2_25 = OpConstant %float 2.25 +%49 = OpConstantComposite %v2float %float_n1_25 %float_0 +%50 = OpConstantComposite %v2float %float_0_75 %float_2_25 +%51 = OpConstantComposite %mat2v2float %49 %50 %v2bool = OpTypeVector %bool 2 %int_0 = OpConstant %int 0 %float_1 = OpConstant %float 1 +%95 = OpConstantComposite %v2float %float_0 %float_1 +%96 = OpConstantComposite %mat2v2float %95 %95 %v4int = OpTypeVector %int 4 %v4bool = OpTypeVector %bool 4 %_ptr_Function_v4float = OpTypePointer Function %v4float @@ -179,7 +163,7 @@ OpFunctionEnd %24 = OpFunctionParameter %_ptr_Function_v2float %25 = OpLabel %ok = OpVariable %_ptr_Function_bool Function -%279 = OpVariable %_ptr_Function_v4float Function +%244 = OpVariable %_ptr_Function_v4float Function OpStore %ok %true %30 = OpLoad %bool %ok OpSelectionMerge %32 None @@ -193,156 +177,155 @@ OpBranchConditional %30 %31 %32 %41 = OpCompositeExtract %float %37 3 %42 = OpCompositeConstruct %v2float %38 %39 %43 = OpCompositeConstruct %v2float %40 %41 -%44 = OpCompositeConstruct %mat2v2float %42 %43 -%49 = OpCompositeConstruct %v2float %float_n1_25 %float_0 -%50 = OpCompositeConstruct %v2float %float_0_75 %float_2_25 -%51 = OpCompositeConstruct %mat2v2float %49 %50 -%53 = OpCompositeExtract %v2float %44 0 -%54 = OpCompositeExtract %v2float %51 0 -%55 = OpFOrdEqual %v2bool %53 %54 -%56 = OpAll %bool %55 -%57 = OpCompositeExtract %v2float %44 1 -%58 = OpCompositeExtract %v2float %51 1 -%59 = OpFOrdEqual %v2bool %57 %58 -%60 = OpAll %bool %59 -%61 = OpLogicalAnd %bool %56 %60 +%45 = OpCompositeConstruct %mat2v2float %42 %43 +%53 = OpCompositeExtract %v2float %45 0 +%54 = OpFOrdEqual %v2bool %53 %49 +%55 = OpAll %bool %54 +%56 = OpCompositeExtract %v2float %45 1 +%57 = OpFOrdEqual %v2bool %56 %50 +%58 = OpAll %bool %57 +%59 = OpLogicalAnd %bool %55 %58 OpBranch %32 %32 = OpLabel -%62 = OpPhi %bool %false %25 %61 %31 -OpStore %ok %62 -%63 = OpLoad %bool %ok -OpSelectionMerge %65 None -OpBranchConditional %63 %64 %65 -%64 = OpLabel -%66 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 -%67 = OpLoad %v4float %66 -%68 = OpCompositeExtract %float %67 0 -%69 = OpCompositeExtract %float %67 1 -%70 = OpCompositeExtract %float %67 2 -%71 = OpCompositeExtract %float %67 3 -%72 = OpCompositeConstruct %v2float %68 %69 -%73 = OpCompositeConstruct %v2float %70 %71 -%74 = OpCompositeConstruct %mat2v2float %72 %73 -%75 = OpCompositeConstruct %v2float %float_n1_25 %float_0 -%76 = OpCompositeConstruct %v2float %float_0_75 %float_2_25 -%77 = OpCompositeConstruct %mat2v2float %75 %76 -%78 = OpCompositeExtract %v2float %74 0 -%79 = OpCompositeExtract %v2float %77 0 -%80 = OpFOrdEqual %v2bool %78 %79 -%81 = OpAll %bool %80 -%82 = OpCompositeExtract %v2float %74 1 -%83 = OpCompositeExtract %v2float %77 1 -%84 = OpFOrdEqual %v2bool %82 %83 -%85 = OpAll %bool %84 -%86 = OpLogicalAnd %bool %81 %85 -OpBranch %65 -%65 = OpLabel -%87 = OpPhi %bool %false %32 %86 %64 -OpStore %ok %87 -%88 = OpLoad %bool %ok -OpSelectionMerge %90 None -OpBranchConditional %88 %89 %90 -%89 = OpLabel -%91 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%93 = OpLoad %v4float %91 -%94 = OpCompositeExtract %float %93 0 -%95 = OpCompositeExtract %float %93 1 -%96 = OpCompositeExtract %float %93 2 -%97 = OpCompositeExtract %float %93 3 -%98 = OpCompositeConstruct %v2float %94 %95 -%99 = OpCompositeConstruct %v2float %96 %97 -%100 = OpCompositeConstruct %mat2v2float %98 %99 -%102 = OpCompositeConstruct %v2float %float_0 %float_1 -%103 = OpCompositeConstruct %v2float %float_0 %float_1 -%104 = OpCompositeConstruct %mat2v2float %102 %103 -%105 = OpCompositeExtract %v2float %100 0 -%106 = OpCompositeExtract %v2float %104 0 -%107 = OpFOrdEqual %v2bool %105 %106 -%108 = OpAll %bool %107 -%109 = OpCompositeExtract %v2float %100 1 -%110 = OpCompositeExtract %v2float %104 1 -%111 = OpFOrdEqual %v2bool %109 %110 -%112 = OpAll %bool %111 -%113 = OpLogicalAnd %bool %108 %112 -OpBranch %90 -%90 = OpLabel -%114 = OpPhi %bool %false %65 %113 %89 -OpStore %ok %114 -%115 = OpLoad %bool %ok -OpSelectionMerge %117 None -OpBranchConditional %115 %116 %117 -%116 = OpLabel -%118 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%119 = OpLoad %v4float %118 -%120 = OpCompositeExtract %float %119 0 -%121 = OpCompositeExtract %float %119 1 -%122 = OpCompositeExtract %float %119 2 -%123 = OpCompositeExtract %float %119 3 -%124 = OpCompositeConstruct %v2float %120 %121 -%125 = OpCompositeConstruct %v2float %122 %123 -%126 = OpCompositeConstruct %mat2v2float %124 %125 -%127 = OpCompositeConstruct %v2float %float_0 %float_1 -%128 = OpCompositeConstruct %v2float %float_0 %float_1 -%129 = OpCompositeConstruct %mat2v2float %127 %128 -%130 = OpCompositeExtract %v2float %126 0 -%131 = OpCompositeExtract %v2float %129 0 -%132 = OpFOrdEqual %v2bool %130 %131 -%133 = OpAll %bool %132 -%134 = OpCompositeExtract %v2float %126 1 -%135 = OpCompositeExtract %v2float %129 1 -%136 = OpFOrdEqual %v2bool %134 %135 -%137 = OpAll %bool %136 -%138 = OpLogicalAnd %bool %133 %137 -OpBranch %117 -%117 = OpLabel -%139 = OpPhi %bool %false %90 %138 %116 -OpStore %ok %139 -%140 = OpLoad %bool %ok -OpSelectionMerge %142 None -OpBranchConditional %140 %141 %142 -%141 = OpLabel -%143 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%144 = OpLoad %v4float %143 -%145 = OpCompositeExtract %float %144 0 -%146 = OpConvertFToS %int %145 -%147 = OpCompositeExtract %float %144 1 -%148 = OpConvertFToS %int %147 -%149 = OpCompositeExtract %float %144 2 -%150 = OpConvertFToS %int %149 -%151 = OpCompositeExtract %float %144 3 -%152 = OpConvertFToS %int %151 -%153 = OpCompositeConstruct %v4int %146 %148 %150 %152 -%155 = OpCompositeExtract %int %153 0 -%156 = OpConvertSToF %float %155 -%157 = OpCompositeExtract %int %153 1 -%158 = OpConvertSToF %float %157 -%159 = OpCompositeExtract %int %153 2 -%160 = OpConvertSToF %float %159 -%161 = OpCompositeExtract %int %153 3 -%162 = OpConvertSToF %float %161 -%163 = OpCompositeConstruct %v4float %156 %158 %160 %162 -%164 = OpCompositeExtract %float %163 0 -%165 = OpCompositeExtract %float %163 1 -%166 = OpCompositeExtract %float %163 2 -%167 = OpCompositeExtract %float %163 3 -%168 = OpCompositeConstruct %v2float %164 %165 -%169 = OpCompositeConstruct %v2float %166 %167 -%170 = OpCompositeConstruct %mat2v2float %168 %169 -%171 = OpCompositeConstruct %v2float %float_0 %float_1 -%172 = OpCompositeConstruct %v2float %float_0 %float_1 -%173 = OpCompositeConstruct %mat2v2float %171 %172 -%174 = OpCompositeExtract %v2float %170 0 -%175 = OpCompositeExtract %v2float %173 0 -%176 = OpFOrdEqual %v2bool %174 %175 -%177 = OpAll %bool %176 -%178 = OpCompositeExtract %v2float %170 1 -%179 = OpCompositeExtract %v2float %173 1 -%180 = OpFOrdEqual %v2bool %178 %179 +%60 = OpPhi %bool %false %25 %59 %31 +OpStore %ok %60 +%61 = OpLoad %bool %ok +OpSelectionMerge %63 None +OpBranchConditional %61 %62 %63 +%62 = OpLabel +%64 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 +%65 = OpLoad %v4float %64 +%66 = OpCompositeExtract %float %65 0 +%67 = OpCompositeExtract %float %65 1 +%68 = OpCompositeExtract %float %65 2 +%69 = OpCompositeExtract %float %65 3 +%70 = OpCompositeConstruct %v2float %66 %67 +%71 = OpCompositeConstruct %v2float %68 %69 +%72 = OpCompositeConstruct %mat2v2float %70 %71 +%73 = OpCompositeExtract %v2float %72 0 +%74 = OpFOrdEqual %v2bool %73 %49 +%75 = OpAll %bool %74 +%76 = OpCompositeExtract %v2float %72 1 +%77 = OpFOrdEqual %v2bool %76 %50 +%78 = OpAll %bool %77 +%79 = OpLogicalAnd %bool %75 %78 +OpBranch %63 +%63 = OpLabel +%80 = OpPhi %bool %false %32 %79 %62 +OpStore %ok %80 +%81 = OpLoad %bool %ok +OpSelectionMerge %83 None +OpBranchConditional %81 %82 %83 +%82 = OpLabel +%84 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%86 = OpLoad %v4float %84 +%87 = OpCompositeExtract %float %86 0 +%88 = OpCompositeExtract %float %86 1 +%89 = OpCompositeExtract %float %86 2 +%90 = OpCompositeExtract %float %86 3 +%91 = OpCompositeConstruct %v2float %87 %88 +%92 = OpCompositeConstruct %v2float %89 %90 +%93 = OpCompositeConstruct %mat2v2float %91 %92 +%97 = OpCompositeExtract %v2float %93 0 +%98 = OpFOrdEqual %v2bool %97 %95 +%99 = OpAll %bool %98 +%100 = OpCompositeExtract %v2float %93 1 +%101 = OpFOrdEqual %v2bool %100 %95 +%102 = OpAll %bool %101 +%103 = OpLogicalAnd %bool %99 %102 +OpBranch %83 +%83 = OpLabel +%104 = OpPhi %bool %false %63 %103 %82 +OpStore %ok %104 +%105 = OpLoad %bool %ok +OpSelectionMerge %107 None +OpBranchConditional %105 %106 %107 +%106 = OpLabel +%108 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%109 = OpLoad %v4float %108 +%110 = OpCompositeExtract %float %109 0 +%111 = OpCompositeExtract %float %109 1 +%112 = OpCompositeExtract %float %109 2 +%113 = OpCompositeExtract %float %109 3 +%114 = OpCompositeConstruct %v2float %110 %111 +%115 = OpCompositeConstruct %v2float %112 %113 +%116 = OpCompositeConstruct %mat2v2float %114 %115 +%117 = OpCompositeExtract %v2float %116 0 +%118 = OpFOrdEqual %v2bool %117 %95 +%119 = OpAll %bool %118 +%120 = OpCompositeExtract %v2float %116 1 +%121 = OpFOrdEqual %v2bool %120 %95 +%122 = OpAll %bool %121 +%123 = OpLogicalAnd %bool %119 %122 +OpBranch %107 +%107 = OpLabel +%124 = OpPhi %bool %false %83 %123 %106 +OpStore %ok %124 +%125 = OpLoad %bool %ok +OpSelectionMerge %127 None +OpBranchConditional %125 %126 %127 +%126 = OpLabel +%128 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%129 = OpLoad %v4float %128 +%130 = OpCompositeExtract %float %129 0 +%131 = OpConvertFToS %int %130 +%132 = OpCompositeExtract %float %129 1 +%133 = OpConvertFToS %int %132 +%134 = OpCompositeExtract %float %129 2 +%135 = OpConvertFToS %int %134 +%136 = OpCompositeExtract %float %129 3 +%137 = OpConvertFToS %int %136 +%139 = OpCompositeConstruct %v4int %131 %133 %135 %137 +%140 = OpCompositeExtract %int %139 0 +%141 = OpConvertSToF %float %140 +%142 = OpCompositeExtract %int %139 1 +%143 = OpConvertSToF %float %142 +%144 = OpCompositeExtract %int %139 2 +%145 = OpConvertSToF %float %144 +%146 = OpCompositeExtract %int %139 3 +%147 = OpConvertSToF %float %146 +%148 = OpCompositeConstruct %v4float %141 %143 %145 %147 +%149 = OpCompositeExtract %float %148 0 +%150 = OpCompositeExtract %float %148 1 +%151 = OpCompositeExtract %float %148 2 +%152 = OpCompositeExtract %float %148 3 +%153 = OpCompositeConstruct %v2float %149 %150 +%154 = OpCompositeConstruct %v2float %151 %152 +%155 = OpCompositeConstruct %mat2v2float %153 %154 +%156 = OpCompositeExtract %v2float %155 0 +%157 = OpFOrdEqual %v2bool %156 %95 +%158 = OpAll %bool %157 +%159 = OpCompositeExtract %v2float %155 1 +%160 = OpFOrdEqual %v2bool %159 %95 +%161 = OpAll %bool %160 +%162 = OpLogicalAnd %bool %158 %161 +OpBranch %127 +%127 = OpLabel +%163 = OpPhi %bool %false %107 %162 %126 +OpStore %ok %163 +%164 = OpLoad %bool %ok +OpSelectionMerge %166 None +OpBranchConditional %164 %165 %166 +%165 = OpLabel +%167 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%168 = OpLoad %v4float %167 +%169 = OpCompositeExtract %float %168 0 +%170 = OpCompositeExtract %float %168 1 +%171 = OpCompositeExtract %float %168 2 +%172 = OpCompositeExtract %float %168 3 +%173 = OpCompositeConstruct %v2float %169 %170 +%174 = OpCompositeConstruct %v2float %171 %172 +%175 = OpCompositeConstruct %mat2v2float %173 %174 +%176 = OpCompositeExtract %v2float %175 0 +%177 = OpFOrdEqual %v2bool %176 %95 +%178 = OpAll %bool %177 +%179 = OpCompositeExtract %v2float %175 1 +%180 = OpFOrdEqual %v2bool %179 %95 %181 = OpAll %bool %180 -%182 = OpLogicalAnd %bool %177 %181 -OpBranch %142 -%142 = OpLabel -%183 = OpPhi %bool %false %117 %182 %141 +%182 = OpLogicalAnd %bool %178 %181 +OpBranch %166 +%166 = OpLabel +%183 = OpPhi %bool %false %127 %182 %165 OpStore %ok %183 %184 = OpLoad %bool %ok OpSelectionMerge %186 None @@ -357,112 +340,73 @@ OpBranchConditional %184 %185 %186 %193 = OpCompositeConstruct %v2float %189 %190 %194 = OpCompositeConstruct %v2float %191 %192 %195 = OpCompositeConstruct %mat2v2float %193 %194 -%196 = OpCompositeConstruct %v2float %float_0 %float_1 -%197 = OpCompositeConstruct %v2float %float_0 %float_1 -%198 = OpCompositeConstruct %mat2v2float %196 %197 -%199 = OpCompositeExtract %v2float %195 0 -%200 = OpCompositeExtract %v2float %198 0 -%201 = OpFOrdEqual %v2bool %199 %200 -%202 = OpAll %bool %201 -%203 = OpCompositeExtract %v2float %195 1 -%204 = OpCompositeExtract %v2float %198 1 -%205 = OpFOrdEqual %v2bool %203 %204 -%206 = OpAll %bool %205 -%207 = OpLogicalAnd %bool %202 %206 +%196 = OpCompositeExtract %v2float %195 0 +%197 = OpFOrdEqual %v2bool %196 %95 +%198 = OpAll %bool %197 +%199 = OpCompositeExtract %v2float %195 1 +%200 = OpFOrdEqual %v2bool %199 %95 +%201 = OpAll %bool %200 +%202 = OpLogicalAnd %bool %198 %201 OpBranch %186 %186 = OpLabel -%208 = OpPhi %bool %false %142 %207 %185 -OpStore %ok %208 -%209 = OpLoad %bool %ok -OpSelectionMerge %211 None -OpBranchConditional %209 %210 %211 -%210 = OpLabel -%212 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%213 = OpLoad %v4float %212 -%214 = OpCompositeExtract %float %213 0 -%215 = OpCompositeExtract %float %213 1 -%216 = OpCompositeExtract %float %213 2 -%217 = OpCompositeExtract %float %213 3 -%218 = OpCompositeConstruct %v2float %214 %215 -%219 = OpCompositeConstruct %v2float %216 %217 -%220 = OpCompositeConstruct %mat2v2float %218 %219 -%221 = OpCompositeConstruct %v2float %float_0 %float_1 -%222 = OpCompositeConstruct %v2float %float_0 %float_1 -%223 = OpCompositeConstruct %mat2v2float %221 %222 -%224 = OpCompositeExtract %v2float %220 0 -%225 = OpCompositeExtract %v2float %223 0 -%226 = OpFOrdEqual %v2bool %224 %225 -%227 = OpAll %bool %226 -%228 = OpCompositeExtract %v2float %220 1 -%229 = OpCompositeExtract %v2float %223 1 -%230 = OpFOrdEqual %v2bool %228 %229 -%231 = OpAll %bool %230 -%232 = OpLogicalAnd %bool %227 %231 -OpBranch %211 -%211 = OpLabel -%233 = OpPhi %bool %false %186 %232 %210 -OpStore %ok %233 -%234 = OpLoad %bool %ok -OpSelectionMerge %236 None -OpBranchConditional %234 %235 %236 -%235 = OpLabel -%237 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%238 = OpLoad %v4float %237 -%239 = OpCompositeExtract %float %238 0 -%240 = OpFUnordNotEqual %bool %239 %float_0 -%241 = OpCompositeExtract %float %238 1 -%242 = OpFUnordNotEqual %bool %241 %float_0 -%243 = OpCompositeExtract %float %238 2 -%244 = OpFUnordNotEqual %bool %243 %float_0 -%245 = OpCompositeExtract %float %238 3 -%246 = OpFUnordNotEqual %bool %245 %float_0 -%247 = OpCompositeConstruct %v4bool %240 %242 %244 %246 -%249 = OpCompositeExtract %bool %247 0 -%250 = OpSelect %float %249 %float_1 %float_0 -%251 = OpCompositeExtract %bool %247 1 -%252 = OpSelect %float %251 %float_1 %float_0 -%253 = OpCompositeExtract %bool %247 2 -%254 = OpSelect %float %253 %float_1 %float_0 -%255 = OpCompositeExtract %bool %247 3 -%256 = OpSelect %float %255 %float_1 %float_0 -%257 = OpCompositeConstruct %v4float %250 %252 %254 %256 -%258 = OpCompositeExtract %float %257 0 -%259 = OpCompositeExtract %float %257 1 -%260 = OpCompositeExtract %float %257 2 -%261 = OpCompositeExtract %float %257 3 -%262 = OpCompositeConstruct %v2float %258 %259 -%263 = OpCompositeConstruct %v2float %260 %261 -%264 = OpCompositeConstruct %mat2v2float %262 %263 -%265 = OpCompositeConstruct %v2float %float_0 %float_1 -%266 = OpCompositeConstruct %v2float %float_0 %float_1 -%267 = OpCompositeConstruct %mat2v2float %265 %266 -%268 = OpCompositeExtract %v2float %264 0 -%269 = OpCompositeExtract %v2float %267 0 -%270 = OpFOrdEqual %v2bool %268 %269 -%271 = OpAll %bool %270 -%272 = OpCompositeExtract %v2float %264 1 -%273 = OpCompositeExtract %v2float %267 1 -%274 = OpFOrdEqual %v2bool %272 %273 -%275 = OpAll %bool %274 -%276 = OpLogicalAnd %bool %271 %275 -OpBranch %236 -%236 = OpLabel -%277 = OpPhi %bool %false %211 %276 %235 -OpStore %ok %277 -%278 = OpLoad %bool %ok -OpSelectionMerge %283 None -OpBranchConditional %278 %281 %282 -%281 = OpLabel -%284 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 -%285 = OpLoad %v4float %284 -OpStore %279 %285 -OpBranch %283 -%282 = OpLabel -%286 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 -%288 = OpLoad %v4float %286 -OpStore %279 %288 -OpBranch %283 -%283 = OpLabel -%289 = OpLoad %v4float %279 -OpReturnValue %289 +%203 = OpPhi %bool %false %166 %202 %185 +OpStore %ok %203 +%204 = OpLoad %bool %ok +OpSelectionMerge %206 None +OpBranchConditional %204 %205 %206 +%205 = OpLabel +%207 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%208 = OpLoad %v4float %207 +%209 = OpCompositeExtract %float %208 0 +%210 = OpFUnordNotEqual %bool %209 %float_0 +%211 = OpCompositeExtract %float %208 1 +%212 = OpFUnordNotEqual %bool %211 %float_0 +%213 = OpCompositeExtract %float %208 2 +%214 = OpFUnordNotEqual %bool %213 %float_0 +%215 = OpCompositeExtract %float %208 3 +%216 = OpFUnordNotEqual %bool %215 %float_0 +%218 = OpCompositeConstruct %v4bool %210 %212 %214 %216 +%219 = OpCompositeExtract %bool %218 0 +%220 = OpSelect %float %219 %float_1 %float_0 +%221 = OpCompositeExtract %bool %218 1 +%222 = OpSelect %float %221 %float_1 %float_0 +%223 = OpCompositeExtract %bool %218 2 +%224 = OpSelect %float %223 %float_1 %float_0 +%225 = OpCompositeExtract %bool %218 3 +%226 = OpSelect %float %225 %float_1 %float_0 +%227 = OpCompositeConstruct %v4float %220 %222 %224 %226 +%228 = OpCompositeExtract %float %227 0 +%229 = OpCompositeExtract %float %227 1 +%230 = OpCompositeExtract %float %227 2 +%231 = OpCompositeExtract %float %227 3 +%232 = OpCompositeConstruct %v2float %228 %229 +%233 = OpCompositeConstruct %v2float %230 %231 +%234 = OpCompositeConstruct %mat2v2float %232 %233 +%235 = OpCompositeExtract %v2float %234 0 +%236 = OpFOrdEqual %v2bool %235 %95 +%237 = OpAll %bool %236 +%238 = OpCompositeExtract %v2float %234 1 +%239 = OpFOrdEqual %v2bool %238 %95 +%240 = OpAll %bool %239 +%241 = OpLogicalAnd %bool %237 %240 +OpBranch %206 +%206 = OpLabel +%242 = OpPhi %bool %false %186 %241 %205 +OpStore %ok %242 +%243 = OpLoad %bool %ok +OpSelectionMerge %248 None +OpBranchConditional %243 %246 %247 +%246 = OpLabel +%249 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%250 = OpLoad %v4float %249 +OpStore %244 %250 +OpBranch %248 +%247 = OpLabel +%251 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 +%253 = OpLoad %v4float %251 +OpStore %244 %253 +OpBranch %248 +%248 = OpLabel +%254 = OpLoad %v4float %244 +OpReturnValue %254 OpFunctionEnd diff --git a/third_party/skia/tests/sksl/shared/WhileLoopControlFlow.asm.frag b/third_party/skia/tests/sksl/shared/WhileLoopControlFlow.asm.frag index af0126ce42db..c8d7770bdba2 100644 --- a/third_party/skia/tests/sksl/shared/WhileLoopControlFlow.asm.frag +++ b/third_party/skia/tests/sksl/shared/WhileLoopControlFlow.asm.frag @@ -13,7 +13,6 @@ OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpDecorate %sk_Clockwise BuiltIn FrontFacing OpDecorate %x RelaxedPrecision -OpDecorate %26 RelaxedPrecision OpDecorate %32 RelaxedPrecision OpDecorate %33 RelaxedPrecision OpDecorate %39 RelaxedPrecision @@ -36,8 +35,8 @@ OpDecorate %66 RelaxedPrecision %sk_Clockwise = OpVariable %_ptr_Input_bool Input %void = OpTypeVoid %12 = OpTypeFunction %void -%v2float = OpTypeVector %float 2 %float_0 = OpConstant %float 0 +%v2float = OpTypeVector %float 2 %16 = OpConstantComposite %v2float %float_0 %float_0 %_ptr_Function_v2float = OpTypePointer Function %v2float %20 = OpTypeFunction %v4float %_ptr_Function_v2float diff --git a/third_party/skia/tests/sksl/spirv/ConstantVectorize.asm.frag b/third_party/skia/tests/sksl/spirv/ConstantVectorize.asm.frag new file mode 100644 index 000000000000..21aaba543d24 --- /dev/null +++ b/third_party/skia/tests/sksl/spirv/ConstantVectorize.asm.frag @@ -0,0 +1,70 @@ +OpCapability Shader +%1 = OpExtInstImport "GLSL.std.450" +OpMemoryModel Logical GLSL450 +OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise +OpExecutionMode %_entrypoint_v OriginUpperLeft +OpName %sk_FragColor "sk_FragColor" +OpName %sk_Clockwise "sk_Clockwise" +OpName %_UniformBuffer "_UniformBuffer" +OpMemberName %_UniformBuffer 0 "colorGreen" +OpName %_entrypoint_v "_entrypoint_v" +OpName %main "main" +OpName %a "a" +OpName %b "b" +OpDecorate %sk_FragColor RelaxedPrecision +OpDecorate %sk_FragColor Location 0 +OpDecorate %sk_FragColor Index 0 +OpDecorate %sk_Clockwise BuiltIn FrontFacing +OpMemberDecorate %_UniformBuffer 0 Offset 0 +OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision +OpDecorate %_UniformBuffer Block +OpDecorate %10 Binding 0 +OpDecorate %10 DescriptorSet 0 +OpDecorate %39 RelaxedPrecision +%float = OpTypeFloat 32 +%v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float +%sk_FragColor = OpVariable %_ptr_Output_v4float Output +%bool = OpTypeBool +%_ptr_Input_bool = OpTypePointer Input %bool +%sk_Clockwise = OpVariable %_ptr_Input_bool Input +%_UniformBuffer = OpTypeStruct %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 +%float_3 = OpConstant %float 3 +%30 = OpConstantComposite %v2float %float_3 %float_3 +%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float +%int = OpTypeInt 32 1 +%int_0 = OpConstant %int 0 +%_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 +%a = OpVariable %_ptr_Function_v2float Function +%b = OpVariable %_ptr_Function_v2float Function +%28 = OpLoad %v2float %24 +%27 = OpExtInst %v2float %1 FMax %28 %30 +OpStore %a %27 +%33 = OpLoad %v2float %24 +%32 = OpExtInst %v2float %1 FMin %33 %30 +OpStore %b %32 +%34 = OpLoad %v2float %b +OpStore %a %34 +%35 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 +%39 = OpLoad %v4float %35 +OpReturnValue %39 +OpFunctionEnd diff --git a/third_party/skia/tests/sksl/spirv/LayoutMultipleOf4.asm.frag b/third_party/skia/tests/sksl/spirv/LayoutMultipleOf4.asm.frag index b3b02830329c..6e93c3af1779 100644 --- a/third_party/skia/tests/sksl/spirv/LayoutMultipleOf4.asm.frag +++ b/third_party/skia/tests/sksl/spirv/LayoutMultipleOf4.asm.frag @@ -1,4 +1,6 @@ ### Compilation failed: -error: 1: offset of field 'x' must be a multiple of 4 +error: 2: offset of field 'x' must be a multiple of 4 + layout(offset = 5) int x; + ^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/spirv/LayoutOutOfOrder.asm.frag b/third_party/skia/tests/sksl/spirv/LayoutOutOfOrder.asm.frag index 6d7d1875bc12..34684c229a6e 100644 --- a/third_party/skia/tests/sksl/spirv/LayoutOutOfOrder.asm.frag +++ b/third_party/skia/tests/sksl/spirv/LayoutOutOfOrder.asm.frag @@ -1,4 +1,6 @@ ### Compilation failed: -error: 1: offset of field 'y' must be at least 4 +error: 3: offset of field 'y' must be at least 4 + layout(offset = 0) int y; + ^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/spirv/OpaqueTypeInArray.asm.frag b/third_party/skia/tests/sksl/spirv/OpaqueTypeInArray.asm.frag index dfca31884567..75d3671e10a6 100644 --- a/third_party/skia/tests/sksl/spirv/OpaqueTypeInArray.asm.frag +++ b/third_party/skia/tests/sksl/spirv/OpaqueTypeInArray.asm.frag @@ -1,4 +1,6 @@ ### Compilation failed: error: 1: opaque type 'sampler' may not be used in an array +in sampler x[1]; +^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/spirv/Ossfuzz37627.asm.frag b/third_party/skia/tests/sksl/spirv/Ossfuzz37627.asm.frag index 0e3aad54b3fd..b845d915dbdc 100644 --- a/third_party/skia/tests/sksl/spirv/Ossfuzz37627.asm.frag +++ b/third_party/skia/tests/sksl/spirv/Ossfuzz37627.asm.frag @@ -18,9 +18,9 @@ OpDecorate %sk_Clockwise BuiltIn FrontFacing %main = OpFunction %void None %7 %8 = OpLabel %x = OpVariable %_ptr_Function_uint Function -%14 = OpLoad %uint %x -%15 = OpIAdd %uint %14 %uint_1 -OpStore %x %15 -%12 = OpSNegate %uint %15 +%13 = OpLoad %uint %x +%14 = OpIAdd %uint %13 %uint_1 +OpStore %x %14 +%15 = OpSNegate %uint %14 OpReturn OpFunctionEnd diff --git a/third_party/skia/tests/sksl/spirv/Ossfuzz44096.asm.frag b/third_party/skia/tests/sksl/spirv/Ossfuzz44096.asm.frag index 77a8c8c8ee6a..6c82f687622f 100644 --- a/third_party/skia/tests/sksl/spirv/Ossfuzz44096.asm.frag +++ b/third_party/skia/tests/sksl/spirv/Ossfuzz44096.asm.frag @@ -1,4 +1,6 @@ ### Compilation failed: -error: 9: sk_SecondaryFragColor is not allowed in SPIR-V +error: 1: sk_SecondaryFragColor is not allowed in SPIR-V +void main() { half x; ++x * sk_SecondaryFragColor; } + ^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/third_party/skia/tests/sksl/spirv/UnusedInterfaceBlock.asm.frag b/third_party/skia/tests/sksl/spirv/UnusedInterfaceBlock.asm.frag index 177aabe7ae93..98ff0e434046 100644 --- a/third_party/skia/tests/sksl/spirv/UnusedInterfaceBlock.asm.frag +++ b/third_party/skia/tests/sksl/spirv/UnusedInterfaceBlock.asm.frag @@ -1,6 +1,6 @@ ### Compilation failed: -error: SPIR-V validation error: Member index 0 is missing a location assignment +error: SPIR-V validation error: [VUID-StandaloneSpirv-Location-04919] Member index 0 is missing a location assignment %s = OpTypeStruct %int OpCapability Shader diff --git a/third_party/skia/tests/sksl/workarounds/RewriteMatrixVectorMultiply.asm.frag b/third_party/skia/tests/sksl/workarounds/RewriteMatrixVectorMultiply.asm.frag index dfc9c2a99e7d..d05750bc5068 100644 --- a/third_party/skia/tests/sksl/workarounds/RewriteMatrixVectorMultiply.asm.frag +++ b/third_party/skia/tests/sksl/workarounds/RewriteMatrixVectorMultiply.asm.frag @@ -14,13 +14,7 @@ OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 OpDecorate %sk_Clockwise BuiltIn FrontFacing OpDecorate %m44 RelaxedPrecision -OpDecorate %21 RelaxedPrecision -OpDecorate %23 RelaxedPrecision -OpDecorate %24 RelaxedPrecision -OpDecorate %25 RelaxedPrecision -OpDecorate %26 RelaxedPrecision OpDecorate %v4 RelaxedPrecision -OpDecorate %32 RelaxedPrecision OpDecorate %36 RelaxedPrecision OpDecorate %37 RelaxedPrecision OpDecorate %38 RelaxedPrecision @@ -54,6 +48,11 @@ OpDecorate %60 RelaxedPrecision %_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float %float_123 = OpConstant %float 123 %float_0 = OpConstant %float 0 +%22 = OpConstantComposite %v4float %float_123 %float_0 %float_0 %float_0 +%23 = OpConstantComposite %v4float %float_0 %float_123 %float_0 %float_0 +%24 = OpConstantComposite %v4float %float_0 %float_0 %float_123 %float_0 +%25 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_123 +%26 = OpConstantComposite %mat4v4float %22 %23 %24 %25 %_ptr_Function_v4float = OpTypePointer Function %v4float %float_1 = OpConstant %float 1 %float_2 = OpConstant %float 2 @@ -74,12 +73,7 @@ OpFunctionEnd %16 = OpLabel %m44 = OpVariable %_ptr_Function_mat4v4float Function %v4 = OpVariable %_ptr_Function_v4float Function -%23 = OpCompositeConstruct %v4float %float_123 %float_0 %float_0 %float_0 -%24 = OpCompositeConstruct %v4float %float_0 %float_123 %float_0 %float_0 -%25 = OpCompositeConstruct %v4float %float_0 %float_0 %float_123 %float_0 -%26 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_123 -%21 = OpCompositeConstruct %mat4v4float %23 %24 %25 %26 -OpStore %m44 %21 +OpStore %m44 %26 OpStore %v4 %32 %35 = OpAccessChain %_ptr_Function_v4float %m44 %int_0 %36 = OpLoad %v4float %35 diff --git a/third_party/skia/third_party/BUILD.bazel b/third_party/skia/third_party/BUILD.bazel index bf92d3a0504d..0aebf318bf34 100644 --- a/third_party/skia/third_party/BUILD.bazel +++ b/third_party/skia/third_party/BUILD.bazel @@ -1,8 +1,6 @@ -# https://github.com/bazelbuild/bazel-skylib -load("@bazel_skylib//lib:selects.bzl", "selects") -load("@rules_python//python:defs.bzl", "py_binary") +load("//bazel:macros.bzl", "py_binary", "requirement", "selects") -package(default_visibility = ["//:__subpackages__"]) +licenses(["notice"]) cc_library( name = "skcms", @@ -14,6 +12,7 @@ cc_library( copts = [ "-isystem include/third_party/skcms/", ], + visibility = ["//:__subpackages__"], deps = [ "//include/third_party/skcms:skcms_hdr", ], @@ -86,6 +85,7 @@ cc_library( # This is included by //third_party/libpng/pnglibconf.h, but because it is not a .h # file, we must tell Bazel to explicitly bring it in as an "includable". textual_hdrs = ["externals/libpng/scripts/pnglibconf.h.prebuilt"], + visibility = ["//:__subpackages__"], deps = [":zlib"], ) @@ -198,6 +198,7 @@ cc_library( local_defines = ZLIB_DEFINES, # This allows users of zlib to just do #include "zlib.h" strip_include_prefix = "externals/zlib/", + visibility = ["//:__subpackages__"], ) JPEGTURBO_SRCS = [ @@ -327,6 +328,7 @@ cc_library( "externals/libjpeg-turbo/jdmrg565.c", "externals/libjpeg-turbo/jstdhuff.c", ], + visibility = ["//:__subpackages__"], ) WEBP_SRCS = [ @@ -517,6 +519,7 @@ cc_library( copts = WEBP_COPTS, local_defines = WEBP_DEFINES, strip_include_prefix = "externals/libwebp/src/", + visibility = ["//:__subpackages__"], ) cc_library( @@ -563,6 +566,7 @@ cc_library( "WUFFS_CONFIG__MODULE__LZW", ], strip_include_prefix = "externals/wuffs/release/c/", + visibility = ["//:__subpackages__"], ) cc_library( @@ -589,6 +593,7 @@ cc_library( ], local_defines = ["BREAK_IF_DEBUGGING_AND_OUT_OF_RANGE"], strip_include_prefix = "externals/piex/", + visibility = ["//:__subpackages__"], ) cc_library( @@ -766,6 +771,7 @@ cc_library( "UNIX_ENV=1", ], strip_include_prefix = "externals/dng_sdk/source/", + visibility = ["//:__subpackages__"], deps = [ ":libjpeg-turbo", ":zlib", @@ -1151,6 +1157,7 @@ cc_library( "externals/freetype/src/type1/t1objs.c", "externals/freetype/src/type1/t1parse.c", ], + visibility = ["//:__subpackages__"], deps = [ ":libpng", # TODO(kjlubick) add brotli option ], @@ -2099,6 +2106,7 @@ cc_library( "//bazel/common_config_settings:cpu_wasm": ["__i386__"], "//conditions:default": [], }), + visibility = ["//:__subpackages__"], ) _icu_version_major_num = "69" # defined in source/common/unicode/uvernum.h @@ -2222,6 +2230,7 @@ HARFBUZZ_SRCS = [ "externals/harfbuzz/src/hb-buffer-deserialize-json.hh", "externals/harfbuzz/src/hb-buffer-deserialize-text.hh", "externals/harfbuzz/src/hb-buffer-serialize.cc", + "externals/harfbuzz/src/hb-buffer-verify.cc", "externals/harfbuzz/src/hb-buffer.cc", "externals/harfbuzz/src/hb-buffer.hh", "externals/harfbuzz/src/hb-cache.hh", @@ -2410,6 +2419,7 @@ cc_library( "HB_NO_FALLBACK_SHAPE", "HB_NO_WIN1256", ], + visibility = ["//:__subpackages__"], ) cc_library( @@ -2420,4 +2430,1117 @@ cc_library( hdrs = [ "etc1/etc1.h", ], + visibility = ["//:__subpackages__"], +) + +cc_library( + name = "vulkanmemoryallocator", + srcs = [ + "vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp", + "vulkanmemoryallocator/include/vk_mem_alloc.h", + ], + hdrs = [ + "vulkanmemoryallocator/GrVulkanMemoryAllocator.h", + ], + includes = [ + "vulkanmemoryallocator", + ], + visibility = ["//:__subpackages__"], + deps = [ + "//include/third_party:skias_vulkan_headers", + ], +) + +py_binary( + name = "dawn_json_generator", + srcs = [ + "externals/dawn/generator/dawn_json_generator.py", + "externals/dawn/generator/generator_lib.py", + ], + deps = [ + requirement("jinja2"), + # jinja2 has a dep on MarkupSafe. Declaring MarkupSafe here is not necessary, but it makes + # the link easier to find than searching the Bazel cache for generated deps. + requirement("MarkupSafe"), + ], +) + +genrule( + name = "generate_webgpu_cpp", + srcs = [ + "externals/dawn/generator/templates/api_cpp.h", + "externals/dawn/generator/templates/api_cpp_print.h", + "externals/dawn/generator/templates/BSD_LICENSE", + "externals/dawn/dawn.json", + "externals/dawn/dawn_wire.json", + ], + outs = [ + "externals/dawn/include/dawn/webgpu_cpp.h", + "externals/dawn/include/dawn/webgpu_cpp_print.h", + ], + cmd = "$(location :dawn_json_generator) " + + "--dawn-json $(location externals/dawn/dawn.json) " + + "--wire-json $(location externals/dawn/dawn_wire.json) " + + "--template-dir $$(dirname $(location externals/dawn/generator/templates/api_cpp.h)) " + + "--targets cpp_headers " + + "--output-dir $(RULEDIR)/externals/dawn", + tools = [":dawn_json_generator"], +) + +genrule( + name = "generate_webgpu", + srcs = [ + "externals/dawn/generator/templates/api.h", + "externals/dawn/generator/templates/dawn_proc_table.h", + "externals/dawn/generator/templates/BSD_LICENSE", + "externals/dawn/dawn.json", + "externals/dawn/dawn_wire.json", + ], + outs = [ + "externals/dawn/include/dawn/webgpu.h", + "externals/dawn/include/dawn/dawn_proc_table.h", + ], + cmd = "$(location :dawn_json_generator) " + + "--dawn-json $(location externals/dawn/dawn.json) " + + "--wire-json $(location externals/dawn/dawn_wire.json) " + + "--template-dir $$(dirname $(location externals/dawn/generator/templates/api.h)) " + + "--targets headers " + + "--output-dir $(RULEDIR)/externals/dawn", + tools = [":dawn_json_generator"], +) + +genrule( + name = "generate_proc", + srcs = [ + "externals/dawn/dawn.json", + "externals/dawn/dawn_wire.json", + "externals/dawn/generator/templates/BSD_LICENSE", + "externals/dawn/generator/templates/dawn_proc.c", + "externals/dawn/generator/templates/dawn_thread_dispatch_proc.cpp", + ], + outs = [ + "externals/dawn/src/dawn/dawn_proc.c", + "externals/dawn/src/dawn/dawn_thread_dispatch_proc.cpp", + ], + cmd = "$(location :dawn_json_generator) " + + "--dawn-json $(location externals/dawn/dawn.json) " + + "--wire-json $(location externals/dawn/dawn_wire.json) " + + "--template-dir $$(dirname $(location externals/dawn/generator/templates/BSD_LICENSE)) " + + "--targets proc " + + "--output-dir $(RULEDIR)/externals/dawn", + tools = [":dawn_json_generator"], +) + +genrule( + name = "generate_dawn_cpp", + srcs = [ + "externals/dawn/dawn.json", + "externals/dawn/dawn_wire.json", + "externals/dawn/generator/templates/BSD_LICENSE", + "externals/dawn/generator/templates/api_cpp.cpp", + ], + outs = [ + "externals/dawn/src/dawn/webgpu_cpp.cpp", + ], + cmd = "$(location :dawn_json_generator) " + + "--dawn-json $(location externals/dawn/dawn.json) " + + "--wire-json $(location externals/dawn/dawn_wire.json) " + + "--template-dir $$(dirname $(location externals/dawn/generator/templates/BSD_LICENSE)) " + + "--targets cpp " + + "--output-dir $(RULEDIR)/externals/dawn", + tools = [":dawn_json_generator"], +) + +genrule( + name = "generate_utils", + srcs = [ + "externals/dawn/dawn.json", + "externals/dawn/dawn_wire.json", + "externals/dawn/generator/templates/BSD_LICENSE", + "externals/dawn/generator/templates/dawn/native/ChainUtils.cpp", + "externals/dawn/generator/templates/dawn/native/ChainUtils.h", + "externals/dawn/generator/templates/dawn/native/ObjectType.cpp", + "externals/dawn/generator/templates/dawn/native/ObjectType.h", + "externals/dawn/generator/templates/dawn/native/ProcTable.cpp", + "externals/dawn/generator/templates/dawn/native/ValidationUtils.cpp", + "externals/dawn/generator/templates/dawn/native/ValidationUtils.h", + "externals/dawn/generator/templates/dawn/native/api_absl_format.cpp", + "externals/dawn/generator/templates/dawn/native/api_absl_format.h", + "externals/dawn/generator/templates/dawn/native/api_structs.cpp", + "externals/dawn/generator/templates/dawn/native/api_structs.h", + "externals/dawn/generator/templates/dawn/native/dawn_platform.h", + ], + outs = [ + "externals/dawn/src/dawn/native/ChainUtils_autogen.cpp", + "externals/dawn/src/dawn/native/ChainUtils_autogen.h", + "externals/dawn/src/dawn/native/ObjectType_autogen.cpp", + "externals/dawn/src/dawn/native/ObjectType_autogen.h", + "externals/dawn/src/dawn/native/ProcTable.cpp", + "externals/dawn/src/dawn/native/ValidationUtils_autogen.cpp", + "externals/dawn/src/dawn/native/ValidationUtils_autogen.h", + "externals/dawn/src/dawn/native/dawn_platform_autogen.h", + "externals/dawn/src/dawn/native/webgpu_absl_format_autogen.cpp", + "externals/dawn/src/dawn/native/webgpu_absl_format_autogen.h", + "externals/dawn/src/dawn/native/wgpu_structs_autogen.cpp", + "externals/dawn/src/dawn/native/wgpu_structs_autogen.h", + ], + cmd = "$(location :dawn_json_generator) " + + "--dawn-json $(location externals/dawn/dawn.json) " + + "--wire-json $(location externals/dawn/dawn_wire.json) " + + "--template-dir $$(dirname $(location externals/dawn/generator/templates/BSD_LICENSE)) " + + "--targets native_utils " + + "--output-dir $(RULEDIR)/externals/dawn", + tools = [":dawn_json_generator"], +) + +DAWN_HDRS = [ + "externals/dawn/include/dawn/EnumClassBitmasks.h", + "externals/dawn/include/dawn/dawn_proc.h", + "externals/dawn/include/dawn/dawn_thread_dispatch_proc.h", + "externals/dawn/include/dawn/dawn_wsi.h", + "externals/dawn/include/dawn/native/D3D12Backend.h", + "externals/dawn/include/dawn/native/DawnNative.h", + "externals/dawn/include/dawn/native/MetalBackend.h", + "externals/dawn/include/dawn/native/NullBackend.h", + "externals/dawn/include/dawn/native/OpenGLBackend.h", + "externals/dawn/include/dawn/native/VulkanBackend.h", + "externals/dawn/include/dawn/native/dawn_native_export.h", + "externals/dawn/include/dawn/platform/DawnPlatform.h", + "externals/dawn/include/dawn/platform/dawn_platform_export.h", + "externals/dawn/include/dawn/wire/Wire.h", + "externals/dawn/include/dawn/wire/WireClient.h", + "externals/dawn/include/dawn/wire/WireServer.h", + "externals/dawn/include/dawn/wire/dawn_wire_export.h", + "externals/dawn/include/webgpu/webgpu.h", + "externals/dawn/include/webgpu/webgpu_cpp.h", +] + +DAWN_SRCS = [ + # Generated files + "externals/dawn/include/dawn/webgpu.h", + "externals/dawn/include/dawn/webgpu_cpp.h", + "externals/dawn/include/dawn/dawn_proc_table.h", + # From externals/dawn/src/dawn/native/BUILD.gn:sources + "externals/dawn/src/dawn/native/DawnNative.cpp", + "externals/dawn/src/dawn/native/Adapter.cpp", + "externals/dawn/src/dawn/native/Adapter.h", + "externals/dawn/src/dawn/native/AsyncTask.cpp", + "externals/dawn/src/dawn/native/AsyncTask.h", + "externals/dawn/src/dawn/native/AttachmentState.cpp", + "externals/dawn/src/dawn/native/AttachmentState.h", + "externals/dawn/src/dawn/native/BackendConnection.cpp", + "externals/dawn/src/dawn/native/BackendConnection.h", + "externals/dawn/src/dawn/native/BindGroup.cpp", + "externals/dawn/src/dawn/native/BindGroup.h", + "externals/dawn/src/dawn/native/BindGroupLayout.cpp", + "externals/dawn/src/dawn/native/BindGroupLayout.h", + "externals/dawn/src/dawn/native/BindGroupTracker.h", + "externals/dawn/src/dawn/native/BindingInfo.cpp", + "externals/dawn/src/dawn/native/BindingInfo.h", + "externals/dawn/src/dawn/native/BuddyAllocator.cpp", + "externals/dawn/src/dawn/native/BuddyAllocator.h", + "externals/dawn/src/dawn/native/BuddyMemoryAllocator.cpp", + "externals/dawn/src/dawn/native/BuddyMemoryAllocator.h", + "externals/dawn/src/dawn/native/Buffer.cpp", + "externals/dawn/src/dawn/native/Buffer.h", + "externals/dawn/src/dawn/native/CachedObject.cpp", + "externals/dawn/src/dawn/native/CachedObject.h", + "externals/dawn/src/dawn/native/CallbackTaskManager.cpp", + "externals/dawn/src/dawn/native/CallbackTaskManager.h", + "externals/dawn/src/dawn/native/CommandAllocator.cpp", + "externals/dawn/src/dawn/native/CommandAllocator.h", + "externals/dawn/src/dawn/native/CommandBuffer.cpp", + "externals/dawn/src/dawn/native/CommandBuffer.h", + "externals/dawn/src/dawn/native/CommandBufferStateTracker.cpp", + "externals/dawn/src/dawn/native/CommandBufferStateTracker.h", + "externals/dawn/src/dawn/native/CommandEncoder.cpp", + "externals/dawn/src/dawn/native/CommandEncoder.h", + "externals/dawn/src/dawn/native/CommandValidation.cpp", + "externals/dawn/src/dawn/native/CommandValidation.h", + "externals/dawn/src/dawn/native/Commands.cpp", + "externals/dawn/src/dawn/native/Commands.h", + "externals/dawn/src/dawn/native/CacheKey.cpp", + "externals/dawn/src/dawn/native/CacheKey.h", + "externals/dawn/src/dawn/native/CompilationMessages.cpp", + "externals/dawn/src/dawn/native/CompilationMessages.h", + "externals/dawn/src/dawn/native/ComputePassEncoder.cpp", + "externals/dawn/src/dawn/native/ComputePassEncoder.h", + "externals/dawn/src/dawn/native/ComputePipeline.cpp", + "externals/dawn/src/dawn/native/ComputePipeline.h", + "externals/dawn/src/dawn/native/CopyTextureForBrowserHelper.cpp", + "externals/dawn/src/dawn/native/CopyTextureForBrowserHelper.h", + "externals/dawn/src/dawn/native/CreatePipelineAsyncTask.cpp", + "externals/dawn/src/dawn/native/CreatePipelineAsyncTask.h", + "externals/dawn/src/dawn/native/Device.cpp", + "externals/dawn/src/dawn/native/Device.h", + "externals/dawn/src/dawn/native/DynamicUploader.cpp", + "externals/dawn/src/dawn/native/DynamicUploader.h", + "externals/dawn/src/dawn/native/EncodingContext.cpp", + "externals/dawn/src/dawn/native/EncodingContext.h", + "externals/dawn/src/dawn/native/EnumClassBitmasks.h", + "externals/dawn/src/dawn/native/EnumMaskIterator.h", + "externals/dawn/src/dawn/native/Error.cpp", + "externals/dawn/src/dawn/native/Error.h", + "externals/dawn/src/dawn/native/ErrorData.cpp", + "externals/dawn/src/dawn/native/ErrorData.h", + "externals/dawn/src/dawn/native/ErrorInjector.cpp", + "externals/dawn/src/dawn/native/ErrorInjector.h", + "externals/dawn/src/dawn/native/ErrorScope.cpp", + "externals/dawn/src/dawn/native/ErrorScope.h", + "externals/dawn/src/dawn/native/ExternalTexture.cpp", + "externals/dawn/src/dawn/native/ExternalTexture.h", + "externals/dawn/src/dawn/native/Features.cpp", + "externals/dawn/src/dawn/native/Features.h", + "externals/dawn/src/dawn/native/Format.cpp", + "externals/dawn/src/dawn/native/Format.h", + "externals/dawn/src/dawn/native/Forward.h", + "externals/dawn/src/dawn/native/IndirectDrawMetadata.cpp", + "externals/dawn/src/dawn/native/IndirectDrawMetadata.h", + "externals/dawn/src/dawn/native/IndirectDrawValidationEncoder.cpp", + "externals/dawn/src/dawn/native/IndirectDrawValidationEncoder.h", + "externals/dawn/src/dawn/native/Instance.cpp", + "externals/dawn/src/dawn/native/Instance.h", + "externals/dawn/src/dawn/native/IntegerTypes.h", + "externals/dawn/src/dawn/native/InternalPipelineStore.cpp", + "externals/dawn/src/dawn/native/InternalPipelineStore.h", + "externals/dawn/src/dawn/native/Limits.cpp", + "externals/dawn/src/dawn/native/Limits.h", + "externals/dawn/src/dawn/native/ObjectBase.cpp", + "externals/dawn/src/dawn/native/ObjectBase.h", + "externals/dawn/src/dawn/native/ObjectContentHasher.cpp", + "externals/dawn/src/dawn/native/ObjectContentHasher.h", + "externals/dawn/src/dawn/native/PassResourceUsage.h", + "externals/dawn/src/dawn/native/PassResourceUsageTracker.cpp", + "externals/dawn/src/dawn/native/PassResourceUsageTracker.h", + "externals/dawn/src/dawn/native/PerStage.cpp", + "externals/dawn/src/dawn/native/PerStage.h", + "externals/dawn/src/dawn/native/PersistentCache.cpp", + "externals/dawn/src/dawn/native/PersistentCache.h", + "externals/dawn/src/dawn/native/Pipeline.cpp", + "externals/dawn/src/dawn/native/Pipeline.h", + "externals/dawn/src/dawn/native/PipelineLayout.cpp", + "externals/dawn/src/dawn/native/PipelineLayout.h", + "externals/dawn/src/dawn/native/PooledResourceMemoryAllocator.cpp", + "externals/dawn/src/dawn/native/PooledResourceMemoryAllocator.h", + "externals/dawn/src/dawn/native/ProgrammableEncoder.cpp", + "externals/dawn/src/dawn/native/ProgrammableEncoder.h", + "externals/dawn/src/dawn/native/QueryHelper.cpp", + "externals/dawn/src/dawn/native/QueryHelper.h", + "externals/dawn/src/dawn/native/QuerySet.cpp", + "externals/dawn/src/dawn/native/QuerySet.h", + "externals/dawn/src/dawn/native/Queue.cpp", + "externals/dawn/src/dawn/native/Queue.h", + "externals/dawn/src/dawn/native/RenderBundle.cpp", + "externals/dawn/src/dawn/native/RenderBundle.h", + "externals/dawn/src/dawn/native/RenderBundleEncoder.cpp", + "externals/dawn/src/dawn/native/RenderBundleEncoder.h", + "externals/dawn/src/dawn/native/RenderEncoderBase.cpp", + "externals/dawn/src/dawn/native/RenderEncoderBase.h", + "externals/dawn/src/dawn/native/RenderPassEncoder.cpp", + "externals/dawn/src/dawn/native/RenderPassEncoder.h", + "externals/dawn/src/dawn/native/RenderPipeline.cpp", + "externals/dawn/src/dawn/native/RenderPipeline.h", + "externals/dawn/src/dawn/native/ResourceHeap.h", + "externals/dawn/src/dawn/native/ResourceHeapAllocator.h", + "externals/dawn/src/dawn/native/ResourceMemoryAllocation.cpp", + "externals/dawn/src/dawn/native/ResourceMemoryAllocation.h", + "externals/dawn/src/dawn/native/RingBufferAllocator.cpp", + "externals/dawn/src/dawn/native/RingBufferAllocator.h", + "externals/dawn/src/dawn/native/Sampler.cpp", + "externals/dawn/src/dawn/native/Sampler.h", + "externals/dawn/src/dawn/native/ScratchBuffer.cpp", + "externals/dawn/src/dawn/native/ScratchBuffer.h", + "externals/dawn/src/dawn/native/ShaderModule.cpp", + "externals/dawn/src/dawn/native/ShaderModule.h", + "externals/dawn/src/dawn/native/StagingBuffer.cpp", + "externals/dawn/src/dawn/native/StagingBuffer.h", + "externals/dawn/src/dawn/native/Subresource.cpp", + "externals/dawn/src/dawn/native/Subresource.h", + "externals/dawn/src/dawn/native/SubresourceStorage.h", + "externals/dawn/src/dawn/native/Surface.cpp", + "externals/dawn/src/dawn/native/Surface.h", + "externals/dawn/src/dawn/native/SwapChain.cpp", + "externals/dawn/src/dawn/native/SwapChain.h", + "externals/dawn/src/dawn/native/Texture.cpp", + "externals/dawn/src/dawn/native/Texture.h", + "externals/dawn/src/dawn/native/TintUtils.cpp", + "externals/dawn/src/dawn/native/TintUtils.h", + "externals/dawn/src/dawn/native/ToBackend.h", + "externals/dawn/src/dawn/native/Toggles.cpp", + "externals/dawn/src/dawn/native/Toggles.h", + "externals/dawn/src/dawn/native/VertexFormat.cpp", + "externals/dawn/src/dawn/native/VertexFormat.h", + "externals/dawn/src/dawn/native/dawn_platform.h", + "externals/dawn/src/dawn/native/utils/WGPUHelpers.cpp", + "externals/dawn/src/dawn/native/utils/WGPUHelpers.h", + "externals/dawn/src/dawn/native/webgpu_absl_format.cpp", + "externals/dawn/src/dawn/native/webgpu_absl_format.h", + # From externals/dawn/src/dawn/native/BUILD.gn:utils_gen + "externals/dawn/src/dawn/native/ChainUtils_autogen.cpp", + "externals/dawn/src/dawn/native/ChainUtils_autogen.h", + "externals/dawn/src/dawn/native/ObjectType_autogen.cpp", + "externals/dawn/src/dawn/native/ObjectType_autogen.h", + "externals/dawn/src/dawn/native/ProcTable.cpp", + "externals/dawn/src/dawn/native/ValidationUtils_autogen.cpp", + "externals/dawn/src/dawn/native/ValidationUtils_autogen.h", + "externals/dawn/src/dawn/native/webgpu_absl_format_autogen.cpp", + "externals/dawn/src/dawn/native/webgpu_absl_format_autogen.h", + "externals/dawn/src/dawn/native/dawn_platform_autogen.h", + "externals/dawn/src/dawn/native/wgpu_structs_autogen.cpp", + "externals/dawn/src/dawn/native/wgpu_structs_autogen.h", + # From externals/dawn/src/dawn/common/BUILD.gn:common + "externals/dawn/src/dawn/common/Alloc.h", + "externals/dawn/src/dawn/common/Assert.cpp", + "externals/dawn/src/dawn/common/Assert.h", + "externals/dawn/src/dawn/common/BitSetIterator.h", + "externals/dawn/src/dawn/common/Compiler.h", + "externals/dawn/src/dawn/common/ConcurrentCache.h", + "externals/dawn/src/dawn/common/Constants.h", + "externals/dawn/src/dawn/common/CoreFoundationRef.h", + "externals/dawn/src/dawn/common/DynamicLib.cpp", + "externals/dawn/src/dawn/common/DynamicLib.h", + "externals/dawn/src/dawn/common/GPUInfo.cpp", + "externals/dawn/src/dawn/common/GPUInfo.h", + "externals/dawn/src/dawn/common/HashUtils.h", + "externals/dawn/src/dawn/common/IOKitRef.h", + "externals/dawn/src/dawn/common/LinkedList.h", + "externals/dawn/src/dawn/common/Log.cpp", + "externals/dawn/src/dawn/common/Log.h", + "externals/dawn/src/dawn/common/Math.cpp", + "externals/dawn/src/dawn/common/Math.h", + "externals/dawn/src/dawn/common/NSRef.h", + "externals/dawn/src/dawn/common/NonCopyable.h", + "externals/dawn/src/dawn/common/PlacementAllocated.h", + "externals/dawn/src/dawn/common/Platform.h", + "externals/dawn/src/dawn/common/Preprocessor.h", + "externals/dawn/src/dawn/common/RefBase.h", + "externals/dawn/src/dawn/common/RefCounted.cpp", + "externals/dawn/src/dawn/common/RefCounted.h", + "externals/dawn/src/dawn/common/Result.cpp", + "externals/dawn/src/dawn/common/Result.h", + "externals/dawn/src/dawn/common/SerialMap.h", + "externals/dawn/src/dawn/common/SerialQueue.h", + "externals/dawn/src/dawn/common/SerialStorage.h", + "externals/dawn/src/dawn/common/SlabAllocator.cpp", + "externals/dawn/src/dawn/common/SlabAllocator.h", + "externals/dawn/src/dawn/common/StackContainer.h", + "externals/dawn/src/dawn/common/SwapChainUtils.h", + "externals/dawn/src/dawn/common/SystemUtils.cpp", + "externals/dawn/src/dawn/common/SystemUtils.h", + "externals/dawn/src/dawn/common/TypeTraits.h", + "externals/dawn/src/dawn/common/TypedInteger.h", + "externals/dawn/src/dawn/common/UnderlyingType.h", + "externals/dawn/src/dawn/common/ityp_array.h", + "externals/dawn/src/dawn/common/ityp_bitset.h", + "externals/dawn/src/dawn/common/ityp_span.h", + "externals/dawn/src/dawn/common/ityp_stack_vec.h", + "externals/dawn/src/dawn/common/ityp_vector.h", + "externals/dawn/src/dawn/common/vulkan_platform.h", + "externals/dawn/src/dawn/common/xlib_with_undefs.h", + # From externals/dawn/src/dawn/platform/BUILD.gn:platform + "externals/dawn/include/dawn/platform/DawnPlatform.h", + "externals/dawn/include/dawn/platform/dawn_platform_export.h", + "externals/dawn/src/dawn/platform/DawnPlatform.cpp", + "externals/dawn/src/dawn/platform/WorkerThread.cpp", + "externals/dawn/src/dawn/platform/WorkerThread.h", + "externals/dawn/src/dawn/platform/tracing/EventTracer.cpp", + "externals/dawn/src/dawn/platform/tracing/EventTracer.h", + "externals/dawn/src/dawn/platform/tracing/TraceEvent.h", +] + +DAWN_VULKAN_SRCS = [ + # From externals/dawn/src/dawn/native/BUILD.gn:sources (dawn_enable_vulkan) + "externals/dawn/src/dawn/native/SpirvValidation.cpp", + "externals/dawn/src/dawn/native/SpirvValidation.h", + "externals/dawn/src/dawn/native/vulkan/AdapterVk.cpp", + "externals/dawn/src/dawn/native/vulkan/AdapterVk.h", + "externals/dawn/src/dawn/native/vulkan/BackendVk.cpp", + "externals/dawn/src/dawn/native/vulkan/BackendVk.h", + "externals/dawn/src/dawn/native/vulkan/BindGroupLayoutVk.cpp", + "externals/dawn/src/dawn/native/vulkan/BindGroupLayoutVk.h", + "externals/dawn/src/dawn/native/vulkan/BindGroupVk.cpp", + "externals/dawn/src/dawn/native/vulkan/BindGroupVk.h", + "externals/dawn/src/dawn/native/vulkan/BufferVk.cpp", + "externals/dawn/src/dawn/native/vulkan/BufferVk.h", + "externals/dawn/src/dawn/native/vulkan/CommandBufferVk.cpp", + "externals/dawn/src/dawn/native/vulkan/CommandBufferVk.h", + "externals/dawn/src/dawn/native/vulkan/CommandRecordingContext.h", + "externals/dawn/src/dawn/native/vulkan/ComputePipelineVk.cpp", + "externals/dawn/src/dawn/native/vulkan/ComputePipelineVk.h", + "externals/dawn/src/dawn/native/vulkan/DescriptorSetAllocation.h", + "externals/dawn/src/dawn/native/vulkan/DescriptorSetAllocator.cpp", + "externals/dawn/src/dawn/native/vulkan/DescriptorSetAllocator.h", + "externals/dawn/src/dawn/native/vulkan/DeviceVk.cpp", + "externals/dawn/src/dawn/native/vulkan/DeviceVk.h", + "externals/dawn/src/dawn/native/vulkan/ExternalHandle.h", + "externals/dawn/src/dawn/native/vulkan/FencedDeleter.cpp", + "externals/dawn/src/dawn/native/vulkan/FencedDeleter.h", + "externals/dawn/src/dawn/native/vulkan/Forward.h", + "externals/dawn/src/dawn/native/vulkan/NativeSwapChainImplVk.cpp", + "externals/dawn/src/dawn/native/vulkan/NativeSwapChainImplVk.h", + "externals/dawn/src/dawn/native/vulkan/PipelineLayoutVk.cpp", + "externals/dawn/src/dawn/native/vulkan/PipelineLayoutVk.h", + "externals/dawn/src/dawn/native/vulkan/QuerySetVk.cpp", + "externals/dawn/src/dawn/native/vulkan/QuerySetVk.h", + "externals/dawn/src/dawn/native/vulkan/QueueVk.cpp", + "externals/dawn/src/dawn/native/vulkan/QueueVk.h", + "externals/dawn/src/dawn/native/vulkan/RenderPassCache.cpp", + "externals/dawn/src/dawn/native/vulkan/RenderPassCache.h", + "externals/dawn/src/dawn/native/vulkan/RenderPipelineVk.cpp", + "externals/dawn/src/dawn/native/vulkan/RenderPipelineVk.h", + "externals/dawn/src/dawn/native/vulkan/ResourceHeapVk.cpp", + "externals/dawn/src/dawn/native/vulkan/ResourceHeapVk.h", + "externals/dawn/src/dawn/native/vulkan/ResourceMemoryAllocatorVk.cpp", + "externals/dawn/src/dawn/native/vulkan/ResourceMemoryAllocatorVk.h", + "externals/dawn/src/dawn/native/vulkan/SamplerVk.cpp", + "externals/dawn/src/dawn/native/vulkan/SamplerVk.h", + "externals/dawn/src/dawn/native/vulkan/ShaderModuleVk.cpp", + "externals/dawn/src/dawn/native/vulkan/ShaderModuleVk.h", + "externals/dawn/src/dawn/native/vulkan/StagingBufferVk.cpp", + "externals/dawn/src/dawn/native/vulkan/StagingBufferVk.h", + "externals/dawn/src/dawn/native/vulkan/SwapChainVk.cpp", + "externals/dawn/src/dawn/native/vulkan/SwapChainVk.h", + "externals/dawn/src/dawn/native/vulkan/TextureVk.cpp", + "externals/dawn/src/dawn/native/vulkan/TextureVk.h", + "externals/dawn/src/dawn/native/vulkan/UtilsVulkan.cpp", + "externals/dawn/src/dawn/native/vulkan/UtilsVulkan.h", + "externals/dawn/src/dawn/native/vulkan/VulkanBackend.cpp", + "externals/dawn/src/dawn/native/vulkan/VulkanError.cpp", + "externals/dawn/src/dawn/native/vulkan/VulkanError.h", + "externals/dawn/src/dawn/native/vulkan/VulkanExtensions.cpp", + "externals/dawn/src/dawn/native/vulkan/VulkanExtensions.h", + "externals/dawn/src/dawn/native/vulkan/VulkanFunctions.cpp", + "externals/dawn/src/dawn/native/vulkan/VulkanFunctions.h", + "externals/dawn/src/dawn/native/vulkan/VulkanInfo.cpp", + "externals/dawn/src/dawn/native/vulkan/VulkanInfo.h", + "externals/dawn/src/dawn/native/vulkan/external_memory/MemoryService.h", + "externals/dawn/src/dawn/native/vulkan/external_semaphore/SemaphoreService.h", +] + +DAWN_VULKAN_LINUX_SRCS = [ + # From externals/dawn/src/dawn/native/BUILD.gn:sources (dawn_enable_vulkan && is_linux) + "externals/dawn/src/dawn/native/vulkan/external_memory/MemoryServiceOpaqueFD.cpp", + "externals/dawn/src/dawn/native/vulkan/external_semaphore/SemaphoreServiceFD.cpp", +] + +DAWN_VULKAN_DEFINES = [ + # From externals/dawn/src/dawn/common/BUILD.gn:internal_config + "DAWN_ENABLE_BACKEND_VULKAN", +] + +cc_library( + name = "dawn_native", + srcs = DAWN_SRCS + DAWN_VULKAN_SRCS + DAWN_VULKAN_LINUX_SRCS, + hdrs = DAWN_HDRS, + copts = [ + # List this as a copt, so as not to propogate it to dependents + # Skia has its own vulkan headers and we do not want these to + # interfere/override those. + "-isystem third_party/externals/vulkan-headers/include", + ], + defines = DAWN_VULKAN_DEFINES, + includes = [ + "externals/dawn/include", + "externals/dawn/src", + ], + visibility = ["//visibility:private"], # only used by :dawn + deps = [ + # Dawn specifically depends on externals/dawn/src/tint:libtint + ":tint", + "@abseil_cpp//absl/strings:str_format", + ":vulkan_headers", + ], +) + +cc_library( + name = "dawn_cpp", + srcs = [ + # From externals/dawn/src/dawn/BUILD.gn#cpp + "externals/dawn/include/dawn/webgpu.h", + "externals/dawn/include/dawn/EnumClassBitmasks.h", + "externals/dawn/include/dawn/webgpu_cpp.h", + "externals/dawn/src/dawn/webgpu_cpp.cpp", + ], + includes = [ + "externals/dawn/include", + ], + visibility = ["//visibility:private"], # only used by :dawn +) + +cc_library( + name = "dawn_proc", + srcs = [ + # From externals/dawn/src/dawn/BUILD.gn#proc + "externals/dawn/include/dawn/webgpu.h", + "externals/dawn/include/dawn/dawn_proc.h", + "externals/dawn/include/dawn/dawn_thread_dispatch_proc.h", + "externals/dawn/include/dawn/dawn_proc_table.h", + "externals/dawn/src/dawn/dawn_proc.c", + "externals/dawn/src/dawn/dawn_thread_dispatch_proc.cpp", + ], + includes = [ + "externals/dawn/include", + ], + visibility = ["//visibility:private"], # only used by :dawn +) + +cc_library( + name = "dawn", + visibility = ["//:__subpackages__"], + deps = select({ + # Emscripten provides the dawn files necessary as system headers. + "//bazel/common_config_settings:cpu_wasm": [], + "//conditions:default": [ + ":dawn_cpp", + ":dawn_native", + ":dawn_proc", + ], + }), +) + +TINT_HDRS = [ + "externals/dawn/include/tint/tint.h", +] + +TINT_SRCS = [ + # From externals/dawn/src/tint/BUILD.gn:libtint_core_all_src + "externals/dawn/src/tint/ast/access.cc", + "externals/dawn/src/tint/ast/access.h", + "externals/dawn/src/tint/ast/alias.cc", + "externals/dawn/src/tint/ast/alias.h", + "externals/dawn/src/tint/ast/array.cc", + "externals/dawn/src/tint/ast/array.h", + "externals/dawn/src/tint/ast/assignment_statement.cc", + "externals/dawn/src/tint/ast/assignment_statement.h", + "externals/dawn/src/tint/ast/ast_type.cc", + "externals/dawn/src/tint/ast/atomic.cc", + "externals/dawn/src/tint/ast/atomic.h", + "externals/dawn/src/tint/ast/attribute.cc", + "externals/dawn/src/tint/ast/attribute.h", + "externals/dawn/src/tint/ast/binary_expression.cc", + "externals/dawn/src/tint/ast/binary_expression.h", + "externals/dawn/src/tint/ast/binding_attribute.cc", + "externals/dawn/src/tint/ast/binding_attribute.h", + "externals/dawn/src/tint/ast/bitcast_expression.cc", + "externals/dawn/src/tint/ast/bitcast_expression.h", + "externals/dawn/src/tint/ast/block_statement.cc", + "externals/dawn/src/tint/ast/block_statement.h", + "externals/dawn/src/tint/ast/bool.cc", + "externals/dawn/src/tint/ast/bool.h", + "externals/dawn/src/tint/ast/bool_literal_expression.cc", + "externals/dawn/src/tint/ast/bool_literal_expression.h", + "externals/dawn/src/tint/ast/break_statement.cc", + "externals/dawn/src/tint/ast/break_statement.h", + "externals/dawn/src/tint/ast/builtin.cc", + "externals/dawn/src/tint/ast/builtin.h", + "externals/dawn/src/tint/ast/builtin_attribute.cc", + "externals/dawn/src/tint/ast/builtin_attribute.h", + "externals/dawn/src/tint/ast/call_expression.cc", + "externals/dawn/src/tint/ast/call_expression.h", + "externals/dawn/src/tint/ast/call_statement.cc", + "externals/dawn/src/tint/ast/call_statement.h", + "externals/dawn/src/tint/ast/case_statement.cc", + "externals/dawn/src/tint/ast/case_statement.h", + "externals/dawn/src/tint/ast/compound_assignment_statement.cc", + "externals/dawn/src/tint/ast/compound_assignment_statement.h", + "externals/dawn/src/tint/ast/continue_statement.cc", + "externals/dawn/src/tint/ast/continue_statement.h", + "externals/dawn/src/tint/ast/depth_multisampled_texture.cc", + "externals/dawn/src/tint/ast/depth_multisampled_texture.h", + "externals/dawn/src/tint/ast/depth_texture.cc", + "externals/dawn/src/tint/ast/depth_texture.h", + "externals/dawn/src/tint/ast/disable_validation_attribute.cc", + "externals/dawn/src/tint/ast/disable_validation_attribute.h", + "externals/dawn/src/tint/ast/discard_statement.cc", + "externals/dawn/src/tint/ast/discard_statement.h", + "externals/dawn/src/tint/ast/else_statement.cc", + "externals/dawn/src/tint/ast/else_statement.h", + "externals/dawn/src/tint/ast/expression.cc", + "externals/dawn/src/tint/ast/expression.h", + "externals/dawn/src/tint/ast/external_texture.cc", + "externals/dawn/src/tint/ast/external_texture.h", + "externals/dawn/src/tint/ast/f32.cc", + "externals/dawn/src/tint/ast/f32.h", + "externals/dawn/src/tint/ast/fallthrough_statement.cc", + "externals/dawn/src/tint/ast/fallthrough_statement.h", + "externals/dawn/src/tint/ast/float_literal_expression.cc", + "externals/dawn/src/tint/ast/float_literal_expression.h", + "externals/dawn/src/tint/ast/for_loop_statement.cc", + "externals/dawn/src/tint/ast/for_loop_statement.h", + "externals/dawn/src/tint/ast/function.cc", + "externals/dawn/src/tint/ast/function.h", + "externals/dawn/src/tint/ast/group_attribute.cc", + "externals/dawn/src/tint/ast/group_attribute.h", + "externals/dawn/src/tint/ast/i32.cc", + "externals/dawn/src/tint/ast/i32.h", + "externals/dawn/src/tint/ast/id_attribute.cc", + "externals/dawn/src/tint/ast/id_attribute.h", + "externals/dawn/src/tint/ast/identifier_expression.cc", + "externals/dawn/src/tint/ast/identifier_expression.h", + "externals/dawn/src/tint/ast/if_statement.cc", + "externals/dawn/src/tint/ast/if_statement.h", + "externals/dawn/src/tint/ast/index_accessor_expression.cc", + "externals/dawn/src/tint/ast/index_accessor_expression.h", + "externals/dawn/src/tint/ast/int_literal_expression.cc", + "externals/dawn/src/tint/ast/int_literal_expression.h", + "externals/dawn/src/tint/ast/internal_attribute.cc", + "externals/dawn/src/tint/ast/internal_attribute.h", + "externals/dawn/src/tint/ast/interpolate_attribute.cc", + "externals/dawn/src/tint/ast/interpolate_attribute.h", + "externals/dawn/src/tint/ast/invariant_attribute.cc", + "externals/dawn/src/tint/ast/invariant_attribute.h", + "externals/dawn/src/tint/ast/literal_expression.cc", + "externals/dawn/src/tint/ast/literal_expression.h", + "externals/dawn/src/tint/ast/location_attribute.cc", + "externals/dawn/src/tint/ast/location_attribute.h", + "externals/dawn/src/tint/ast/loop_statement.cc", + "externals/dawn/src/tint/ast/loop_statement.h", + "externals/dawn/src/tint/ast/matrix.cc", + "externals/dawn/src/tint/ast/matrix.h", + "externals/dawn/src/tint/ast/member_accessor_expression.cc", + "externals/dawn/src/tint/ast/member_accessor_expression.h", + "externals/dawn/src/tint/ast/module.cc", + "externals/dawn/src/tint/ast/module.h", + "externals/dawn/src/tint/ast/multisampled_texture.cc", + "externals/dawn/src/tint/ast/multisampled_texture.h", + "externals/dawn/src/tint/ast/node.cc", + "externals/dawn/src/tint/ast/node.h", + "externals/dawn/src/tint/ast/phony_expression.cc", + "externals/dawn/src/tint/ast/phony_expression.h", + "externals/dawn/src/tint/ast/pipeline_stage.cc", + "externals/dawn/src/tint/ast/pipeline_stage.h", + "externals/dawn/src/tint/ast/pointer.cc", + "externals/dawn/src/tint/ast/pointer.h", + "externals/dawn/src/tint/ast/return_statement.cc", + "externals/dawn/src/tint/ast/return_statement.h", + "externals/dawn/src/tint/ast/sampled_texture.cc", + "externals/dawn/src/tint/ast/sampled_texture.h", + "externals/dawn/src/tint/ast/sampler.cc", + "externals/dawn/src/tint/ast/sampler.h", + "externals/dawn/src/tint/ast/sint_literal_expression.cc", + "externals/dawn/src/tint/ast/sint_literal_expression.h", + "externals/dawn/src/tint/ast/stage_attribute.cc", + "externals/dawn/src/tint/ast/stage_attribute.h", + "externals/dawn/src/tint/ast/statement.cc", + "externals/dawn/src/tint/ast/statement.h", + "externals/dawn/src/tint/ast/storage_class.cc", + "externals/dawn/src/tint/ast/storage_class.h", + "externals/dawn/src/tint/ast/storage_texture.cc", + "externals/dawn/src/tint/ast/storage_texture.h", + "externals/dawn/src/tint/ast/stride_attribute.cc", + "externals/dawn/src/tint/ast/stride_attribute.h", + "externals/dawn/src/tint/ast/struct.cc", + "externals/dawn/src/tint/ast/struct.h", + "externals/dawn/src/tint/ast/struct_member.cc", + "externals/dawn/src/tint/ast/struct_member.h", + "externals/dawn/src/tint/ast/struct_member_align_attribute.cc", + "externals/dawn/src/tint/ast/struct_member_align_attribute.h", + "externals/dawn/src/tint/ast/struct_member_offset_attribute.cc", + "externals/dawn/src/tint/ast/struct_member_offset_attribute.h", + "externals/dawn/src/tint/ast/struct_member_size_attribute.cc", + "externals/dawn/src/tint/ast/struct_member_size_attribute.h", + "externals/dawn/src/tint/ast/switch_statement.cc", + "externals/dawn/src/tint/ast/switch_statement.h", + "externals/dawn/src/tint/ast/texture.cc", + "externals/dawn/src/tint/ast/texture.h", + "externals/dawn/src/tint/ast/traverse_expressions.h", + "externals/dawn/src/tint/ast/type.h", + "externals/dawn/src/tint/ast/type_decl.cc", + "externals/dawn/src/tint/ast/type_decl.h", + "externals/dawn/src/tint/ast/type_name.cc", + "externals/dawn/src/tint/ast/type_name.h", + "externals/dawn/src/tint/ast/u32.cc", + "externals/dawn/src/tint/ast/u32.h", + "externals/dawn/src/tint/ast/uint_literal_expression.cc", + "externals/dawn/src/tint/ast/uint_literal_expression.h", + "externals/dawn/src/tint/ast/unary_op.cc", + "externals/dawn/src/tint/ast/unary_op.h", + "externals/dawn/src/tint/ast/unary_op_expression.cc", + "externals/dawn/src/tint/ast/unary_op_expression.h", + "externals/dawn/src/tint/ast/variable.cc", + "externals/dawn/src/tint/ast/variable.h", + "externals/dawn/src/tint/ast/variable_decl_statement.cc", + "externals/dawn/src/tint/ast/variable_decl_statement.h", + "externals/dawn/src/tint/ast/vector.cc", + "externals/dawn/src/tint/ast/vector.h", + "externals/dawn/src/tint/ast/void.cc", + "externals/dawn/src/tint/ast/void.h", + "externals/dawn/src/tint/ast/workgroup_attribute.cc", + "externals/dawn/src/tint/ast/workgroup_attribute.h", + "externals/dawn/src/tint/builtin_table.cc", + "externals/dawn/src/tint/builtin_table.h", + "externals/dawn/src/tint/builtin_table.inl", + "externals/dawn/src/tint/castable.cc", + "externals/dawn/src/tint/castable.h", + "externals/dawn/src/tint/clone_context.cc", + "externals/dawn/src/tint/clone_context.h", + "externals/dawn/src/tint/debug.cc", + "externals/dawn/src/tint/debug.h", + "externals/dawn/src/tint/demangler.cc", + "externals/dawn/src/tint/demangler.h", + "externals/dawn/src/tint/diagnostic/diagnostic.cc", + "externals/dawn/src/tint/diagnostic/diagnostic.h", + "externals/dawn/src/tint/diagnostic/formatter.cc", + "externals/dawn/src/tint/diagnostic/formatter.h", + "externals/dawn/src/tint/diagnostic/printer.cc", + "externals/dawn/src/tint/diagnostic/printer.h", + "externals/dawn/src/tint/inspector/entry_point.cc", + "externals/dawn/src/tint/inspector/entry_point.h", + "externals/dawn/src/tint/inspector/inspector.cc", + "externals/dawn/src/tint/inspector/inspector.h", + "externals/dawn/src/tint/inspector/resource_binding.cc", + "externals/dawn/src/tint/inspector/resource_binding.h", + "externals/dawn/src/tint/inspector/scalar.cc", + "externals/dawn/src/tint/inspector/scalar.h", + "externals/dawn/src/tint/program.cc", + "externals/dawn/src/tint/program.h", + "externals/dawn/src/tint/program_builder.cc", + "externals/dawn/src/tint/program_builder.h", + "externals/dawn/src/tint/program_id.cc", + "externals/dawn/src/tint/program_id.h", + "externals/dawn/src/tint/reader/reader.cc", + "externals/dawn/src/tint/reader/reader.h", + "externals/dawn/src/tint/resolver/dependency_graph.cc", + "externals/dawn/src/tint/resolver/dependency_graph.h", + "externals/dawn/src/tint/resolver/resolver.cc", + "externals/dawn/src/tint/resolver/resolver.h", + "externals/dawn/src/tint/resolver/resolver_constants.cc", + "externals/dawn/src/tint/resolver/resolver_validation.cc", + "externals/dawn/src/tint/scope_stack.h", + "externals/dawn/src/tint/source.cc", + "externals/dawn/src/tint/source.h", + "externals/dawn/src/tint/symbol.cc", + "externals/dawn/src/tint/symbol.h", + "externals/dawn/src/tint/symbol_table.cc", + "externals/dawn/src/tint/symbol_table.h", + "externals/dawn/src/tint/text/unicode.cc", + "externals/dawn/src/tint/text/unicode.h", + "externals/dawn/src/tint/traits.h", + "externals/dawn/src/tint/transform/add_empty_entry_point.cc", + "externals/dawn/src/tint/transform/add_empty_entry_point.h", + "externals/dawn/src/tint/transform/add_spirv_block_attribute.cc", + "externals/dawn/src/tint/transform/add_spirv_block_attribute.h", + "externals/dawn/src/tint/transform/array_length_from_uniform.cc", + "externals/dawn/src/tint/transform/array_length_from_uniform.h", + "externals/dawn/src/tint/transform/binding_remapper.cc", + "externals/dawn/src/tint/transform/binding_remapper.h", + "externals/dawn/src/tint/transform/builtin_polyfill.cc", + "externals/dawn/src/tint/transform/builtin_polyfill.h", + "externals/dawn/src/tint/transform/calculate_array_length.cc", + "externals/dawn/src/tint/transform/calculate_array_length.h", + "externals/dawn/src/tint/transform/canonicalize_entry_point_io.cc", + "externals/dawn/src/tint/transform/canonicalize_entry_point_io.h", + "externals/dawn/src/tint/transform/combine_samplers.cc", + "externals/dawn/src/tint/transform/combine_samplers.h", + "externals/dawn/src/tint/transform/decompose_memory_access.cc", + "externals/dawn/src/tint/transform/decompose_memory_access.h", + "externals/dawn/src/tint/transform/decompose_strided_array.cc", + "externals/dawn/src/tint/transform/decompose_strided_array.h", + "externals/dawn/src/tint/transform/decompose_strided_matrix.cc", + "externals/dawn/src/tint/transform/decompose_strided_matrix.h", + "externals/dawn/src/tint/transform/expand_compound_assignment.cc", + "externals/dawn/src/tint/transform/expand_compound_assignment.h", + "externals/dawn/src/tint/transform/first_index_offset.cc", + "externals/dawn/src/tint/transform/first_index_offset.h", + "externals/dawn/src/tint/transform/fold_constants.cc", + "externals/dawn/src/tint/transform/fold_constants.h", + "externals/dawn/src/tint/transform/fold_trivial_single_use_lets.cc", + "externals/dawn/src/tint/transform/fold_trivial_single_use_lets.h", + "externals/dawn/src/tint/transform/for_loop_to_loop.cc", + "externals/dawn/src/tint/transform/for_loop_to_loop.h", + "externals/dawn/src/tint/transform/localize_struct_array_assignment.cc", + "externals/dawn/src/tint/transform/localize_struct_array_assignment.h", + "externals/dawn/src/tint/transform/loop_to_for_loop.cc", + "externals/dawn/src/tint/transform/loop_to_for_loop.h", + "externals/dawn/src/tint/transform/manager.cc", + "externals/dawn/src/tint/transform/manager.h", + "externals/dawn/src/tint/transform/module_scope_var_to_entry_point_param.cc", + "externals/dawn/src/tint/transform/module_scope_var_to_entry_point_param.h", + "externals/dawn/src/tint/transform/multiplanar_external_texture.cc", + "externals/dawn/src/tint/transform/multiplanar_external_texture.h", + "externals/dawn/src/tint/transform/num_workgroups_from_uniform.cc", + "externals/dawn/src/tint/transform/num_workgroups_from_uniform.h", + "externals/dawn/src/tint/transform/promote_initializers_to_const_var.cc", + "externals/dawn/src/tint/transform/promote_initializers_to_const_var.h", + "externals/dawn/src/tint/transform/promote_side_effects_to_decl.cc", + "externals/dawn/src/tint/transform/promote_side_effects_to_decl.h", + "externals/dawn/src/tint/transform/remove_phonies.cc", + "externals/dawn/src/tint/transform/remove_phonies.h", + "externals/dawn/src/tint/transform/remove_unreachable_statements.cc", + "externals/dawn/src/tint/transform/remove_unreachable_statements.h", + "externals/dawn/src/tint/transform/renamer.cc", + "externals/dawn/src/tint/transform/renamer.h", + "externals/dawn/src/tint/transform/robustness.cc", + "externals/dawn/src/tint/transform/robustness.h", + "externals/dawn/src/tint/transform/simplify_pointers.cc", + "externals/dawn/src/tint/transform/simplify_pointers.h", + "externals/dawn/src/tint/transform/single_entry_point.cc", + "externals/dawn/src/tint/transform/single_entry_point.h", + "externals/dawn/src/tint/transform/transform.cc", + "externals/dawn/src/tint/transform/transform.h", + "externals/dawn/src/tint/transform/unshadow.cc", + "externals/dawn/src/tint/transform/unshadow.h", + "externals/dawn/src/tint/transform/unwind_discard_functions.cc", + "externals/dawn/src/tint/transform/unwind_discard_functions.h", + "externals/dawn/src/tint/transform/utils/hoist_to_decl_before.cc", + "externals/dawn/src/tint/transform/utils/hoist_to_decl_before.h", + "externals/dawn/src/tint/transform/utils/get_insertion_point.cc", + "externals/dawn/src/tint/transform/utils/get_insertion_point.h", + "externals/dawn/src/tint/transform/var_for_dynamic_index.cc", + "externals/dawn/src/tint/transform/var_for_dynamic_index.h", + "externals/dawn/src/tint/transform/vectorize_scalar_matrix_constructors.cc", + "externals/dawn/src/tint/transform/vectorize_scalar_matrix_constructors.h", + "externals/dawn/src/tint/transform/vertex_pulling.cc", + "externals/dawn/src/tint/transform/vertex_pulling.h", + "externals/dawn/src/tint/transform/wrap_arrays_in_structs.cc", + "externals/dawn/src/tint/transform/wrap_arrays_in_structs.h", + "externals/dawn/src/tint/transform/zero_init_workgroup_memory.cc", + "externals/dawn/src/tint/transform/zero_init_workgroup_memory.h", + "externals/dawn/src/tint/utils/block_allocator.h", + "externals/dawn/src/tint/utils/concat.h", + "externals/dawn/src/tint/utils/crc32.h", + "externals/dawn/src/tint/utils/debugger.cc", + "externals/dawn/src/tint/utils/debugger.h", + "externals/dawn/src/tint/utils/defer.h", + "externals/dawn/src/tint/utils/enum_set.h", + "externals/dawn/src/tint/utils/hash.h", + "externals/dawn/src/tint/utils/map.h", + "externals/dawn/src/tint/utils/math.h", + "externals/dawn/src/tint/utils/reverse.h", + "externals/dawn/src/tint/utils/scoped_assignment.h", + "externals/dawn/src/tint/utils/string.h", + "externals/dawn/src/tint/utils/to_const_ptr_vec.h", + "externals/dawn/src/tint/utils/transform.h", + "externals/dawn/src/tint/utils/unique_allocator.h", + "externals/dawn/src/tint/utils/unique_vector.h", + "externals/dawn/src/tint/writer/append_vector.cc", + "externals/dawn/src/tint/writer/append_vector.h", + "externals/dawn/src/tint/writer/array_length_from_uniform_options.cc", + "externals/dawn/src/tint/writer/array_length_from_uniform_options.h", + "externals/dawn/src/tint/writer/float_to_string.cc", + "externals/dawn/src/tint/writer/float_to_string.h", + "externals/dawn/src/tint/writer/generate_external_texture_bindings.cc", + "externals/dawn/src/tint/writer/generate_external_texture_bindings.h", + "externals/dawn/src/tint/writer/text.cc", + "externals/dawn/src/tint/writer/text.h", + "externals/dawn/src/tint/writer/text_generator.cc", + "externals/dawn/src/tint/writer/text_generator.h", + "externals/dawn/src/tint/writer/writer.cc", + "externals/dawn/src/tint/writer/writer.h", + # From externals/dawn/src/tint/BUILD.gn:libtint_sem_src + "externals/dawn/src/tint/sem/array.cc", + "externals/dawn/src/tint/sem/array.h", + "externals/dawn/src/tint/sem/atomic_type.cc", + "externals/dawn/src/tint/sem/atomic_type.h", + "externals/dawn/src/tint/sem/behavior.cc", + "externals/dawn/src/tint/sem/behavior.h", + "externals/dawn/src/tint/sem/binding_point.h", + "externals/dawn/src/tint/sem/block_statement.cc", + "externals/dawn/src/tint/sem/block_statement.h", + "externals/dawn/src/tint/sem/bool_type.cc", + "externals/dawn/src/tint/sem/bool_type.h", + "externals/dawn/src/tint/sem/builtin.cc", + "externals/dawn/src/tint/sem/builtin.h", + "externals/dawn/src/tint/sem/builtin_type.cc", + "externals/dawn/src/tint/sem/builtin_type.h", + "externals/dawn/src/tint/sem/call.cc", + "externals/dawn/src/tint/sem/call.h", + "externals/dawn/src/tint/sem/call_target.cc", + "externals/dawn/src/tint/sem/call_target.h", + "externals/dawn/src/tint/sem/constant.cc", + "externals/dawn/src/tint/sem/constant.h", + "externals/dawn/src/tint/sem/depth_multisampled_texture_type.cc", + "externals/dawn/src/tint/sem/depth_multisampled_texture_type.h", + "externals/dawn/src/tint/sem/depth_texture_type.cc", + "externals/dawn/src/tint/sem/depth_texture_type.h", + "externals/dawn/src/tint/sem/expression.cc", + "externals/dawn/src/tint/sem/expression.h", + "externals/dawn/src/tint/sem/external_texture_type.cc", + "externals/dawn/src/tint/sem/external_texture_type.h", + "externals/dawn/src/tint/sem/f32_type.cc", + "externals/dawn/src/tint/sem/f32_type.h", + "externals/dawn/src/tint/sem/for_loop_statement.cc", + "externals/dawn/src/tint/sem/for_loop_statement.h", + "externals/dawn/src/tint/sem/function.cc", + "externals/dawn/src/tint/sem/function.h", + "externals/dawn/src/tint/sem/i32_type.cc", + "externals/dawn/src/tint/sem/i32_type.h", + "externals/dawn/src/tint/sem/if_statement.cc", + "externals/dawn/src/tint/sem/if_statement.h", + "externals/dawn/src/tint/sem/info.cc", + "externals/dawn/src/tint/sem/info.h", + "externals/dawn/src/tint/sem/loop_statement.cc", + "externals/dawn/src/tint/sem/loop_statement.h", + "externals/dawn/src/tint/sem/matrix_type.cc", + "externals/dawn/src/tint/sem/matrix_type.h", + "externals/dawn/src/tint/sem/member_accessor_expression.cc", + "externals/dawn/src/tint/sem/member_accessor_expression.h", + "externals/dawn/src/tint/sem/module.cc", + "externals/dawn/src/tint/sem/module.h", + "externals/dawn/src/tint/sem/multisampled_texture_type.cc", + "externals/dawn/src/tint/sem/multisampled_texture_type.h", + "externals/dawn/src/tint/sem/node.cc", + "externals/dawn/src/tint/sem/node.h", + "externals/dawn/src/tint/sem/parameter_usage.cc", + "externals/dawn/src/tint/sem/parameter_usage.h", + "externals/dawn/src/tint/sem/pipeline_stage_set.h", + "externals/dawn/src/tint/sem/pointer_type.cc", + "externals/dawn/src/tint/sem/pointer_type.h", + "externals/dawn/src/tint/sem/reference_type.cc", + "externals/dawn/src/tint/sem/reference_type.h", + "externals/dawn/src/tint/sem/sampled_texture_type.cc", + "externals/dawn/src/tint/sem/sampled_texture_type.h", + "externals/dawn/src/tint/sem/sampler_texture_pair.h", + "externals/dawn/src/tint/sem/sampler_type.cc", + "externals/dawn/src/tint/sem/sampler_type.h", + "externals/dawn/src/tint/sem/statement.cc", + "externals/dawn/src/tint/sem/statement.h", + "externals/dawn/src/tint/sem/storage_texture_type.cc", + "externals/dawn/src/tint/sem/storage_texture_type.h", + "externals/dawn/src/tint/sem/struct.cc", + "externals/dawn/src/tint/sem/struct.h", + "externals/dawn/src/tint/sem/switch_statement.cc", + "externals/dawn/src/tint/sem/switch_statement.h", + "externals/dawn/src/tint/sem/texture_type.cc", + "externals/dawn/src/tint/sem/texture_type.h", + "externals/dawn/src/tint/sem/type.cc", + "externals/dawn/src/tint/sem/type.h", + "externals/dawn/src/tint/sem/type_constructor.cc", + "externals/dawn/src/tint/sem/type_constructor.h", + "externals/dawn/src/tint/sem/type_conversion.cc", + "externals/dawn/src/tint/sem/type_conversion.h", + "externals/dawn/src/tint/sem/type_manager.cc", + "externals/dawn/src/tint/sem/type_manager.h", + "externals/dawn/src/tint/sem/type_mappings.h", + "externals/dawn/src/tint/sem/u32_type.cc", + "externals/dawn/src/tint/sem/u32_type.h", + "externals/dawn/src/tint/sem/variable.cc", + "externals/dawn/src/tint/sem/variable.h", + "externals/dawn/src/tint/sem/vector_type.cc", + "externals/dawn/src/tint/sem/vector_type.h", + "externals/dawn/src/tint/sem/void_type.cc", + "externals/dawn/src/tint/sem/void_type.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 externals/dawn/src/tint/BUILD.gn:libtint_spv_reader_src + "externals/dawn/src/tint/reader/spirv/construct.cc", + "externals/dawn/src/tint/reader/spirv/construct.h", + "externals/dawn/src/tint/reader/spirv/entry_point_info.cc", + "externals/dawn/src/tint/reader/spirv/entry_point_info.h", + "externals/dawn/src/tint/reader/spirv/enum_converter.cc", + "externals/dawn/src/tint/reader/spirv/enum_converter.h", + "externals/dawn/src/tint/reader/spirv/fail_stream.h", + "externals/dawn/src/tint/reader/spirv/function.cc", + "externals/dawn/src/tint/reader/spirv/function.h", + "externals/dawn/src/tint/reader/spirv/namer.cc", + "externals/dawn/src/tint/reader/spirv/namer.h", + "externals/dawn/src/tint/reader/spirv/parser.cc", + "externals/dawn/src/tint/reader/spirv/parser.h", + "externals/dawn/src/tint/reader/spirv/parser_impl.cc", + "externals/dawn/src/tint/reader/spirv/parser_impl.h", + "externals/dawn/src/tint/reader/spirv/parser_type.cc", + "externals/dawn/src/tint/reader/spirv/parser_type.h", + "externals/dawn/src/tint/reader/spirv/usage.cc", + "externals/dawn/src/tint/reader/spirv/usage.h", + # From externals/dawn/src/tint/BUILD.gn:libtint_spv_writer_src + "externals/dawn/src/tint/writer/spirv/binary_writer.cc", + "externals/dawn/src/tint/writer/spirv/binary_writer.h", + "externals/dawn/src/tint/writer/spirv/builder.cc", + "externals/dawn/src/tint/writer/spirv/builder.h", + "externals/dawn/src/tint/writer/spirv/function.cc", + "externals/dawn/src/tint/writer/spirv/function.h", + "externals/dawn/src/tint/writer/spirv/generator.cc", + "externals/dawn/src/tint/writer/spirv/generator.h", + "externals/dawn/src/tint/writer/spirv/instruction.cc", + "externals/dawn/src/tint/writer/spirv/instruction.h", + "externals/dawn/src/tint/writer/spirv/operand.cc", + "externals/dawn/src/tint/writer/spirv/operand.h", + "externals/dawn/src/tint/writer/spirv/scalar_constant.h", + # From externals/dawn/src/tint/BUILD.gn:libtint_wgsl_reader_src + "externals/dawn/src/tint/reader/wgsl/lexer.cc", + "externals/dawn/src/tint/reader/wgsl/lexer.h", + "externals/dawn/src/tint/reader/wgsl/parser.cc", + "externals/dawn/src/tint/reader/wgsl/parser.h", + "externals/dawn/src/tint/reader/wgsl/parser_impl.cc", + "externals/dawn/src/tint/reader/wgsl/parser_impl.h", + "externals/dawn/src/tint/reader/wgsl/parser_impl_detail.h", + "externals/dawn/src/tint/reader/wgsl/token.cc", + "externals/dawn/src/tint/reader/wgsl/token.h", + # From externals/dawn/src/tint/BUILD.gn:libtint_wgsl_writer_src + "externals/dawn/src/tint/writer/wgsl/generator.cc", + "externals/dawn/src/tint/writer/wgsl/generator.h", + "externals/dawn/src/tint/writer/wgsl/generator_impl.cc", + "externals/dawn/src/tint/writer/wgsl/generator_impl.h", +] + +cc_library( + name = "tint", + srcs = TINT_SRCS, + hdrs = TINT_HDRS, + defines = [ + # From From externals/dawn/src/tint/BUILD.gn:tint_public_config, using the options + # set by Skia in //build_overrides/tint.gni + "TINT_BUILD_SPV_READER=1", + "TINT_BUILD_SPV_WRITER=1", + "TINT_BUILD_WGSL_READER=1", + "TINT_BUILD_WGSL_WRITER=1", + ], + includes = [ + "externals/dawn/", + "externals/dawn/include", + ], + visibility = ["//visibility:private"], # only used by :dawn + deps = [ + # Tint specifically depends on externals/spirv-tools/BUILD.gn:spirv_opt + "@spirv_tools//:spirv_tools_opt", + # Tint requires "include/spirv/unified1/spirv.hpp11", which is provided + # by this rule + "@spirv_headers//:spirv_cpp11_headers", + ], +) + +cc_library( + name = "vulkan_headers", + hdrs = [ + "externals/vulkan-headers/include/vulkan/vk_platform.h", + "externals/vulkan-headers/include/vulkan/vulkan.h", + "externals/vulkan-headers/include/vulkan/vulkan_core.h", + ], + visibility = ["//visibility:private"], # only used by :dawn +) + +cc_library( + name = "spirv_cross", + srcs = [ + "externals/spirv-cross/GLSL.std.450.h", + "externals/spirv-cross/spirv.hpp", + "externals/spirv-cross/spirv_cfg.cpp", + "externals/spirv-cross/spirv_cfg.hpp", + "externals/spirv-cross/spirv_common.hpp", + "externals/spirv-cross/spirv_cpp.cpp", + "externals/spirv-cross/spirv_cpp.hpp", + "externals/spirv-cross/spirv_cross.cpp", + "externals/spirv-cross/spirv_cross.hpp", + "externals/spirv-cross/spirv_cross_containers.hpp", + "externals/spirv-cross/spirv_cross_error_handling.hpp", + "externals/spirv-cross/spirv_cross_parsed_ir.cpp", + "externals/spirv-cross/spirv_cross_parsed_ir.hpp", + "externals/spirv-cross/spirv_glsl.cpp", + "externals/spirv-cross/spirv_glsl.hpp", + "externals/spirv-cross/spirv_hlsl.cpp", + "externals/spirv-cross/spirv_msl.cpp", + "externals/spirv-cross/spirv_msl.hpp", + "externals/spirv-cross/spirv_parser.cpp", + "externals/spirv-cross/spirv_parser.hpp", + "externals/spirv-cross/spirv_reflect.cpp", + "externals/spirv-cross/spirv_reflect.hpp", + ], + hdrs = [ + "externals/spirv-cross/spirv_hlsl.hpp", + ], + defines = ["SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS"], + visibility = ["//:__subpackages__"], ) diff --git a/third_party/skia/third_party/file_map_for_bazel.json b/third_party/skia/third_party/file_map_for_bazel.json index aa60b62877c6..733b328af297 100644 --- a/third_party/skia/third_party/file_map_for_bazel.json +++ b/third_party/skia/third_party/file_map_for_bazel.json @@ -1,7 +1,14 @@ { "D3D12MemAlloc.h": "SK_GAZELLE_IGNORE TODO //third_party:d3d12allocator", - "dawn/webgpu_cpp.h": "SK_GAZELLE_IGNORE TODO //third_party:dawn", + "dawn/dawn_proc.h": "//third_party:dawn", + "dawn/dawn_wsi.h": "//third_party:dawn", + "dawn/native/D3D12Backend.h": "//third_party:dawn", + "dawn/native/DawnNative.h": "//third_party:dawn", + "dawn/native/OpenGLBackend.h": "//third_party:dawn", + "dawn/native/VulkanBackend.h": "//third_party:dawn", + "webgpu/webgpu.h": "//third_party:dawn", + "webgpu/webgpu_cpp.h": "//third_party:dawn", "dng_area_task.h": "//third_party:dng_sdk", "dng_color_space.h": "//third_party:dng_sdk", @@ -55,28 +62,30 @@ "sample/chromium/font_subsetter.h": "SK_GAZELLE_IGNORE TODO //third_party:sfntly", - "third_party/externals/spirv-cross/spirv_hlsl.hpp": "SK_GAZELLE_IGNORE TODO //third_party:spirv_cross", - "spirv-tools/libspirv.hpp": "SK_GAZELLE_IGNORE TODO //third_party:spirv_tools", - - "vk_platform.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_android.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_beta.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_core.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_directfb.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_fuchsia.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_ggp.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_ios.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_macos.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_metal.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_screen.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_vi.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_wayland.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_win32.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_xcb.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_xlib.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - "vulkan_xlib_xrandr.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkan", - - "GrVulkanMemoryAllocator.h": "SK_GAZELLE_IGNORE TODO //third_party:vulkanmemoryallocator", + "third_party/externals/spirv-cross/spirv_hlsl.hpp": "//third_party:spirv_cross", + "spirv-tools/libspirv.hpp": "@spirv_tools//:spirv_tools", + + "vk_platform.h": "//include/third_party/vulkan/vulkan:vk_platform_hdr", + "vulkan_android.h": "//include/third_party/vulkan/vulkan:vulkan_android_hdr", + "vulkan_core.h": "//include/third_party/vulkan/vulkan:vulkan_core_hdr", + "vulkan_ios.h": "//include/third_party/vulkan/vulkan:vulkan_ios_hdr", + "vulkan_macos.h": "//include/third_party/vulkan/vulkan:vulkan_macos_hdr", + "vulkan_win32.h": "//include/third_party/vulkan/vulkan:vulkan_win32_hdr", + "vulkan_xcb.h": "//include/third_party/vulkan/vulkan:vulkan_xcb_hdr", + "vulkan/vulkan.h": "//include/third_party:skias_vulkan_headers", + + "vulkan_beta.h": "SK_GAZELLE_IGNORE not actually included by us", + "vulkan_directfb.h": "SK_GAZELLE_IGNORE not actually included by us", + "vulkan_fuchsia.h": "SK_GAZELLE_IGNORE not actually included by us", + "vulkan_ggp.h": "SK_GAZELLE_IGNORE not actually included by us", + "vulkan_metal.h": "SK_GAZELLE_IGNORE not actually included by us", + "vulkan_screen.h": "SK_GAZELLE_IGNORE not actually included by us", + "vulkan_vi.h": "SK_GAZELLE_IGNORE not actually included by us", + "vulkan_wayland.h": "SK_GAZELLE_IGNORE not actually included by us", + "vulkan_xlib.h": "SK_GAZELLE_IGNORE not actually included by us", + "vulkan_xlib_xrandr.h": "SK_GAZELLE_IGNORE not actually included by us", + + "GrVulkanMemoryAllocator.h": "//third_party:vulkanmemoryallocator", "wuffs-v0.3.c": "//third_party:wuffs", diff --git a/third_party/skia/third_party/harfbuzz/BUILD.gn b/third_party/skia/third_party/harfbuzz/BUILD.gn index 17a717804a75..4e4fb6b11c79 100644 --- a/third_party/skia/third_party/harfbuzz/BUILD.gn +++ b/third_party/skia/third_party/harfbuzz/BUILD.gn @@ -86,6 +86,7 @@ if (skia_use_system_harfbuzz) { "$_src/hb-buffer-deserialize-json.hh", "$_src/hb-buffer-deserialize-text.hh", "$_src/hb-buffer-serialize.cc", + "$_src/hb-buffer-verify.cc", "$_src/hb-buffer.cc", "$_src/hb-buffer.hh", "$_src/hb-cache.hh", diff --git a/third_party/skia/third_party/skcms/version.sha1 b/third_party/skia/third_party/skcms/version.sha1 index 74f68c662284..7b72b153317b 100755 --- a/third_party/skia/third_party/skcms/version.sha1 +++ b/third_party/skia/third_party/skcms/version.sha1 @@ -1 +1 @@ -30c8e303800c256febb03a09fdcda7f75d119b1b +dcb0286a1e17fcd6a3645281c52aab11e466fb1d diff --git a/third_party/skia/toolchain/BUILD.bazel b/third_party/skia/toolchain/BUILD.bazel index 1d44aab9e18f..9c09e8d57224 100644 --- a/third_party/skia/toolchain/BUILD.bazel +++ b/third_party/skia/toolchain/BUILD.bazel @@ -1,23 +1,31 @@ load("@rules_cc//cc:defs.bzl", "cc_toolchain", "cc_toolchain_suite") -load(":clang_toolchain_config.bzl", "provide_clang_toolchain_config") +load(":linux_amd64_toolchain_config.bzl", "provide_linux_amd64_toolchain_config") + +licenses(["notice"]) package(default_visibility = ["//visibility:public"]) -# https://docs.bazel.build/versions/main/be/c-cpp.html#cc_toolchain_suite +# https://bazel.build/reference/be/c-cpp#cc_toolchain_suite cc_toolchain_suite( name = "clang_suite", toolchains = { # The key is target_cpu|compiler - "k8|clang": ":clang_toolchain", - "x86_64|clang": ":clang_toolchain", + # compiler appears to be a string we can choose arbitrarily + # https://bazel.build/reference/command-line-reference?hl=en#flag--compiler + "k8|host_is_linux_amd64": ":linux_amd64_host", + "x86_64|host_is_linux_amd64": ":linux_amd64_host", + "k8": ":linux_amd64_host", + # TODO(jmbetancourt) + # "arm64|host_is_mac_M1": ":mac_M1_host", }, ) filegroup(name = "not_implemented") filegroup( - name = "all-toolchain-files", + name = "all_linux_amd64_files", srcs = [ + "IWYU_mapping.imp", "ar_trampoline.sh", "clang_trampoline.sh", "lld_trampoline.sh", @@ -25,20 +33,20 @@ filegroup( ], ) -provide_clang_toolchain_config( - name = "clang_toolchain_config", +provide_linux_amd64_toolchain_config( + name = "linux_amd64_toolchain_config", ) +# https://bazel.build/reference/be/c-cpp#cc_toolchain cc_toolchain( - name = "clang_toolchain", - all_files = ":all-toolchain-files", - ar_files = ":all-toolchain-files", - compiler_files = ":all-toolchain-files", + name = "linux_amd64_host", + all_files = ":all_linux_amd64_files", + ar_files = ":all_linux_amd64_files", + compiler_files = ":all_linux_amd64_files", dwp_files = ":not_implemented", - linker_files = ":all-toolchain-files", + linker_files = ":all_linux_amd64_files", objcopy_files = ":not_implemented", strip_files = ":not_implemented", - supports_param_files = 0, - toolchain_config = ":clang_toolchain_config", - toolchain_identifier = "clang-toolchain", + supports_param_files = False, + toolchain_config = ":linux_amd64_toolchain_config", ) diff --git a/third_party/skia/toolchain/IWYU_mapping.imp b/third_party/skia/toolchain/IWYU_mapping.imp new file mode 100644 index 000000000000..bdbbb3c0beaa --- /dev/null +++ b/third_party/skia/toolchain/IWYU_mapping.imp @@ -0,0 +1,30 @@ +[ + { include: ["<__algorithm/copy.h>", "private", "", "public"] }, + { include: ["<__algorithm/copy_n.h>", "private", "", "public"] }, + { include: ["<__algorithm/max.h>", "private", "", "public"] }, + { include: ["<__algorithm/min.h>", "private", "", "public"] }, + { include: ["<__algorithm/remove_if.h>", "private", "", "public"] }, + { include: ["<__algorithm/sort.h>", "private", "", "public"] }, + { include: ["<__algorithm/stable_sort.h>", "private", "", "public"] }, + + { include: ["<__functional/function.h>", "private", "", "public"] }, + + { include: ["<__locale>", "private", "", "public"] }, + + { include: ["<__memory/shared_ptr.h>", "private", "", "public"] }, + { include: ["<__memory/unique_ptr.h>", "private", "", "public"] }, + + { include: ["<__tree>", "private", "", "public"] }, + + { symbol: ["va_list", "public", "", "public"] }, + + { include: ["", "public", "", "public"] }, + { symbol: ["std::string", "public", "", "public"] }, + + { include: ["<__hash_table>", "private", "", "public"] }, + + { include: ["<__utility/forward.h>", "private", "", "public"] }, + { include: ["<__utility/move.h>", "private", "", "public"] }, + { include: ["<__utility/swap.h>", "private", "", "public"] }, + { include: ["<__utility/pair.h>", "private", "", "public"] }, +] \ No newline at end of file diff --git a/third_party/skia/toolchain/clang_trampoline.sh b/third_party/skia/toolchain/clang_trampoline.sh index c7319183f189..16b33be452f2 100755 --- a/third_party/skia/toolchain/clang_trampoline.sh +++ b/third_party/skia/toolchain/clang_trampoline.sh @@ -4,4 +4,40 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -external/clang_linux_amd64/bin/clang $@ +export LD_LIBRARY_PATH="external/clang_linux_amd64/usr/lib/x86_64-linux-gnu:external/clang_linux_amd64/usr/lib/llvm-13/lib" + +# If compilation fails, we want to exit right away +set -e +# We only want to run include-what-you-use if SKIA_ENFORCE_IWYU_FOR_THIS_FILE is in the arguments +# passed in (i.e. the "skia_opt_file_into_iwyu" feature is enabled) and we are not linking +# (as detected by the presence of -fuse-ld). +if [[ "$@" != *SKIA_ENFORCE_IWYU_FOR_THIS_FILE* || "$@" == *use-ld* ]]; then + external/clang_linux_amd64/bin/clang $@ + exit 0 +else + # Now try to compile with Clang, and then verify with IWYU + external/clang_linux_amd64/bin/clang $@ + # IWYU always returns a non-zero code because it doesn't produce the .o file (that's why + # we ran Clang first). As such, we do not want bash to fail after running IWYU. + set +e + # Get absolute path to the mapping file because resolving the relative path is tricky, given + # how Bazel locates the toolchain files. + MAPPING_FILE=$(realpath $(dirname ${BASH_SOURCE[0]}))"/IWYU_mapping.imp" + # IWYU always outputs something to stderr, which can be noisy if everything is fixed. + # Otherwise, we send the exact same arguments to include-what-you-use that we would for + # regular compilation with clang. + external/clang_linux_amd64/usr/bin/include-what-you-use \ + -Xiwyu --mapping_file=$MAPPING_FILE $@ 2>/dev/null + # IWYU returns 2 if everything looks good. It returns some other non-zero exit code otherwise. + if [ $? -eq 2 ]; then + exit 0 # keep the build going + else + # Run IWYU again, but this time display the output. Then return non-zero to fail the build. + # These flags are a little different, but only in ways that affect what was displayed, not the + # analysis. If we aren't sure why IWYU wants to include something, try changing verbose to 3. + external/clang_linux_amd64/usr/bin/include-what-you-use \ + -Xiwyu --mapping_file=$MAPPING_FILE -Xiwyu --no_comments \ + -Xiwyu --quoted_includes_first -Xiwyu --verbose=3 $@ + exit 1 # fail the build + fi +fi diff --git a/third_party/skia/toolchain/build_toolchain.bzl b/third_party/skia/toolchain/download_linux_amd64_toolchain.bzl similarity index 57% rename from third_party/skia/toolchain/build_toolchain.bzl rename to third_party/skia/toolchain/download_linux_amd64_toolchain.bzl index 5a092300e862..1d8ac2f5bb07 100644 --- a/third_party/skia/toolchain/build_toolchain.bzl +++ b/third_party/skia/toolchain/download_linux_amd64_toolchain.bzl @@ -1,7 +1,16 @@ """ -This file assembles a toolchain for Linux using the Clang Compiler glibc. +This file assembles a toolchain for an amd64 Linux host using the Clang Compiler and glibc. -It downloads the necessary header files and pre-compiled static/shared libraries to +It downloads the necessary headers, executables, and pre-compiled static/shared libraries to +the external subfolder of the Bazel cache (the same place third party deps are downloaded with +http_archive or similar functions in WORKSPACE.bazel). These will be able to be used via our +custom c++ toolchain configuration (see //toolchain/clang_toolchain_config.bzl) + +Most files are downloaded as .deb files from packages.debian.org (with us acting as the dependency +resolver) and extracted to + [outputRoot (aka Bazel cache)]/[outputUserRoot]/[outputBase]/external/clang_linux_amd64 + (See https://bazel.build/docs/output_directories#layout-diagram) +which will act as our sysroot. """ # From https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.0/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz.sha256 @@ -13,11 +22,12 @@ clang_url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0 # still have their file extension, as some of the Starlark functions sniff the file extension # (e.g. download_and_extract). See //bazel/gcs_mirror for an automated way to update this mirror. mirror_prefix = "https://storage.googleapis.com/skia-world-readable/bazel/" + # Set this to True to only use the files from the mirror host. This can be used to test the data # in the mirrors is not corrupt and publicly accessible. # If testing this, you need to delete the download cache, which defaults to # ~/.cache/bazel/_bazel_$USER/cache/repos/v1/ -# https://docs.bazel.build/versions/main/guide.html#the-repository-cache +# https://bazel.build/docs/build#repository-cache force_test_of_mirrors = False debs_to_install = [ @@ -92,39 +102,94 @@ debs_to_install = [ "sha256": "f300f9610b5f05f1ce566c4095f1bf2170e512ac5d201c40d895b8fce29dec98", "url": "https://ftp.debian.org/debian/pool/main/libg/libglvnd/libgl1_1.3.2-1_amd64.deb", }, + # This is used by sk_app for Vulkan and Dawn on Unix. + { + # From https://packages.debian.org/bullseye/amd64/libx11-xcb-dev/download + "sha256": "80a2413ace2a0a073f2472059b9e589737cbf8a336fb6862684a5811bf640aa3", + "url": "https://ftp.debian.org/debian/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_amd64.deb", + }, + # This is used to make sure we include only the headers we need. This corresponds to + # IWYU version 0.17, which uses Clang 13, like we compile with. + { + # From https://packages.debian.org/sid/amd64/iwyu/download + "sha256": "9fd6932a7609e89364f7edc5f9613892c98c21c88a3931e51cf1a0f8744759bd", + "url": "https://ftp.debian.org/debian/pool/main/i/iwyu/iwyu_8.17-1_amd64.deb", + }, + { + # This is a requirement of iwyu + # https://packages.debian.org/sid/amd64/libclang-cpp13/download + "sha256": "c6e2471de8f3ec06e40c8e006e06bbd251dd0c8000dee820a4b6dca3d3290c0d", + "url": "https://ftp.debian.org/debian/pool/main/l/llvm-toolchain-13/libclang-cpp13_13.0.1-3+b1_amd64.deb", + }, + { + # This is a requirement of libclang-cpp13 + # https://packages.debian.org/sid/amd64/libstdc++6/download + "sha256": "f37e5954423955938c5309a8d0e475f7e84e92b56b8301487fb885192dee8085", + "url": "https://ftp.debian.org/debian/pool/main/g/gcc-12/libstdc++6_12-20220319-1_amd64.deb", + }, + { + # This is a requirement of iwyu + # https://packages.debian.org/sid/amd64/libllvm13/download + "sha256": "49f29a6c9fbc3097077931529e7fe1c032b1d04a984d971aa1e6990a5133556e", + "url": "https://ftp.debian.org/debian/pool/main/l/llvm-toolchain-13/libllvm13_13.0.1-3+b1_amd64.deb", + }, + { + # This is a requirement of libllvm13 + # https://packages.debian.org/sid/amd64/libffi8/download + "sha256": "87c55b36951aed18ef2c357683e15c365713bda6090f15386998b57df433b387", + "url": "https://ftp.debian.org/debian/pool/main/libf/libffi/libffi8_3.4.2-4_amd64.deb", + }, + { + # This is a requirement of libllvm13 + # https://packages.debian.org/sid/libz3-4 + "sha256": "b415b863678625dee3f3c75bd48b1b9e3b6e11279ebec337904d7f09630d107f", + "url": "https://ftp.debian.org/debian/pool/main/z/z3/libz3-4_4.8.12-1+b1_amd64.deb", + }, ] def _download_and_extract_deb(ctx, deb, sha256, prefix, output = ""): """Downloads a debian file and extracts the data into the provided output directory""" - # https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#download - download_info = ctx.download( - url = _mirror([deb, mirror_prefix+sha256+".deb"]), - output = "deb.ar", + # https://bazel.build/rules/lib/repository_ctx#download + # .deb files are also .ar archives. + ctx.download( + url = _mirror([deb, mirror_prefix + sha256 + ".deb"]), + output = "tmp/deb.ar", sha256 = sha256, ) - # https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#execute - # This uses the extracted llvm-ar that comes with clang. - ctx.execute(["bin/llvm-ar", "x", "deb.ar"]) + # https://bazel.build/rules/lib/repository_ctx#execute + # This uses the statically built binary from the infra repo + res = ctx.execute(["bin/open_ar", "--input", "tmp/deb.ar", "--output_dir", "tmp"], quiet = False) + if res.return_code != 0: + # Run it again to display the error + fail("Could not open deb.ar from " + deb) - # https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#extract + # https://bazel.build/rules/lib/repository_ctx#extract extract_info = ctx.extract( - archive = "data.tar.xz", + archive = "tmp/data.tar.xz", output = output, stripPrefix = prefix, ) # Clean up - ctx.delete("deb.ar") - ctx.delete("data.tar.xz") - ctx.delete("control.tar.xz") + ctx.delete("tmp") + +def _download_linux_amd64_toolchain_impl(ctx): + # Workaround for Bazel not yet supporting .ar files + # See https://skia-review.googlesource.com/c/buildbot/+/524764 + # https://bazel.build/rules/lib/repository_ctx#download + ctx.download( + url = mirror_prefix + "open_ar_v1", + sha256 = "55bb74d9ce5d6fa06e390b2319a410ec595dbb591a3ce650da356efe970f86d3", + executable = True, + output = "bin/open_ar", + ) -def _build_cpp_toolchain_impl(ctx): # Download the clang toolchain (the extraction can take a while) - # https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#download_and_extract - download_info = ctx.download_and_extract( - url = _mirror([clang_url, mirror_prefix+clang_sha256+".tar.xz"]), + # https://bazel.build/rules/lib/repository_ctx#download_and_extract + ctx.download_and_extract( + url = _mirror([clang_url, mirror_prefix + clang_sha256 + ".tar.xz"]), output = "", stripPrefix = clang_prefix, sha256 = clang_sha256, @@ -142,7 +207,7 @@ def _build_cpp_toolchain_impl(ctx): # Create a BUILD.bazel file that makes all the files in this subfolder # available for use in rules, i.e. in the toolchain declaration. - # https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#file + # https://bazel.build/rules/lib/repository_ctx#file ctx.file( "BUILD.bazel", content = """ @@ -164,8 +229,10 @@ def _mirror(arr): return [arr[1]] return arr -build_cpp_toolchain = repository_rule( - implementation = _build_cpp_toolchain_impl, +# https://bazel.build/rules/repository_rules +download_linux_amd64_toolchain = repository_rule( + implementation = _download_linux_amd64_toolchain_impl, attrs = {}, - doc = "", + doc = "Downloads clang, and all supporting headers, executables, " + + "and shared libraries required to build Skia on a Linux amd64 host", ) diff --git a/third_party/skia/toolchain/download_mac_m1_toolchain.bzl b/third_party/skia/toolchain/download_mac_m1_toolchain.bzl new file mode 100644 index 000000000000..a1e291da094e --- /dev/null +++ b/third_party/skia/toolchain/download_mac_m1_toolchain.bzl @@ -0,0 +1,20 @@ +""" +This file assembles a toolchain for a Mac M1 host using the Clang Compiler and glibc. + +It downloads the necessary headers, executables, and pre-compiled static/shared libraries to +the external subfolder of the Bazel cache (the same place third party deps are downloaded with +http_archive or similar functions in WORKSPACE.bazel). These will be able to be used via our +custom c++ toolchain configuration (see //toolchain/clang_toolchain_config.bzl) +""" + +def _download_mac_m1_toolchain(ctx): + # TODO(jmbetancourt) + pass + +# https://bazel.build/rules/repository_rules +download_mac_m1_toolchain = repository_rule( + implementation = _download_mac_m1_toolchain, + attrs = {}, + doc = "Downloads clang, and all supporting headers, executables, " + + "and shared libraries required to build Skia on a Mac M1 host", +) diff --git a/third_party/skia/toolchain/download_toolchains.bzl b/third_party/skia/toolchain/download_toolchains.bzl new file mode 100644 index 000000000000..2df5fed3e50c --- /dev/null +++ b/third_party/skia/toolchain/download_toolchains.bzl @@ -0,0 +1,29 @@ +""" +This file exports the various toolchains for the hosts that we support building Skia on. + +Supported: + - Linux amd64 + +Planned: + - Mac M1 + - Windows amd64 + +""" + +load(":download_linux_amd64_toolchain.bzl", "download_linux_amd64_toolchain") +load(":download_mac_m1_toolchain.bzl", "download_mac_m1_toolchain") + +# This key in this dictionary (and thus the name passed into the rule) controls what the subfolder +# will be called in the external directory. It must match what we use in the appropriate +# toolchain_config.bzl file or it will not be able to locate the sysroot to build with. +name_toolchain = { + "clang_linux_amd64": download_linux_amd64_toolchain, + "clang_mac_m1": download_mac_m1_toolchain, +} + +def download_toolchains_for_skia(*args): + for toolchain_name in args: + if toolchain_name not in name_toolchain: + fail("unrecognized toolchain name " + toolchain_name) + download_toolchain = name_toolchain[toolchain_name] + download_toolchain(name = toolchain_name) diff --git a/third_party/skia/toolchain/clang_toolchain_config.bzl b/third_party/skia/toolchain/linux_amd64_toolchain_config.bzl similarity index 86% rename from third_party/skia/toolchain/clang_toolchain_config.bzl rename to third_party/skia/toolchain/linux_amd64_toolchain_config.bzl index 7fbc0431bd9c..96eac915567f 100644 --- a/third_party/skia/toolchain/clang_toolchain_config.bzl +++ b/third_party/skia/toolchain/linux_amd64_toolchain_config.bzl @@ -1,5 +1,5 @@ """ -This file specifies a clang toolchain that can run on a Linux host which does depend on any +This file specifies a clang toolchain that can run on a Linux host which doesn't depend on any installed packages from the host machine. See build_toolchain.bzl for more details on the creation of the toolchain. @@ -15,6 +15,7 @@ load( "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", "action_config", "feature", + "feature_set", "flag_group", "flag_set", "tool", @@ -25,11 +26,12 @@ load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") # The location of the created clang toolchain. EXTERNAL_TOOLCHAIN = "external/clang_linux_amd64" -def _clang_impl(ctx): +def _linux_amd64_toolchain_info(ctx): action_configs = _make_action_configs() features = [] features += _make_default_flags() features += _make_diagnostic_flags() + features += _make_iwyu_flags() # https://docs.bazel.build/versions/main/skylark/lib/cc_common.html#create_cc_toolchain_config_info # Note, this rule is defined in Java code, not Starlark @@ -57,10 +59,10 @@ def _clang_impl(ctx): toolchain_identifier = "clang-toolchain", ) -provide_clang_toolchain_config = rule( +provide_linux_amd64_toolchain_config = rule( attrs = {}, provides = [CcToolchainConfigInfo], - implementation = _clang_impl, + implementation = _linux_amd64_toolchain_info, ) def _make_action_configs(): @@ -329,3 +331,49 @@ def _make_diagnostic_flags(): ], ), ] + +def _make_iwyu_flags(): + """Here we define the flags that signal whether or not to enforce IWYU.""" + + # https://bazel.build/docs/cc-toolchain-config-reference#features + opt_file_into_iwyu = flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ], + flag_groups = [ + flag_group( + flags = [ + # This define does not impact compilation, but it acts as a signal to the + # clang_trampoline.sh whether check the file with include-what-you-use + # A define was chosen because it is ignored by clang and IWYU, but can be + # easily found with bash. + "-DSKIA_ENFORCE_IWYU_FOR_THIS_FILE", + ], + ), + ], + ) + + return [ + feature( + # The IWYU checks can add some overhead to the build (1-5 seconds per file), so we only + # want to run them sometimes. By adding --feature skia_enforce_iwyu to the Bazel + # command, this will turn on the checking (for all files that have not been opted-out). + "skia_enforce_iwyu", + enabled = False, + ), + feature( + "skia_opt_file_into_iwyu", + enabled = False, + flag_sets = [ + opt_file_into_iwyu, + ], + # If the skia_enforce_iwyu features is not enabled (e.g. globally via a CLI flag), we + # will not run the IWYU analysis on any files. + requires = [ + feature_set(features = [ + "skia_enforce_iwyu", + ]), + ], + ), + ] diff --git a/third_party/skia/tools/BUILD.bazel b/third_party/skia/tools/BUILD.bazel index 5ca48b287e1f..3c4de721f5a9 100644 --- a/third_party/skia/tools/BUILD.bazel +++ b/third_party/skia/tools/BUILD.bazel @@ -1,5 +1,6 @@ -load("//bazel:macros.bzl", "generated_cc_atom") -load("@rules_python//python:defs.bzl", "py_binary") +load("//bazel:macros.bzl", "generated_cc_atom", "py_binary") + +licenses(["notice"]) py_binary( name = "embed_resources", @@ -96,7 +97,7 @@ generated_cc_atom( "//src/core:SkCachedData_hdr", "//src/core:SkMipmap_hdr", "//src/core:SkTaskGroup_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//src/image:SkImage_Base_hdr", "//src/image:SkImage_GpuYUVA_hdr", ], @@ -130,7 +131,7 @@ generated_cc_atom( "//include/gpu:GrDirectContext_hdr", "//src/core:SkDeferredDisplayListPriv_hdr", "//src/core:SkTaskGroup_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//src/image:SkImage_Gpu_hdr", ], ) @@ -152,8 +153,10 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":HashAndEncode_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkICC_hdr", "//include/core:SkString_hdr", + "//include/third_party/skcms:skcms_hdr", "//third_party:libpng", ], ) @@ -240,6 +243,8 @@ generated_cc_atom( hdrs = ["Resources.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkBitmap_hdr", + "//include/core:SkData_hdr", "//include/core:SkImage_hdr", "//include/core:SkString_hdr", ], @@ -253,6 +258,7 @@ generated_cc_atom( ":ResourceFactory_hdr", ":Resources_hdr", "//include/core:SkBitmap_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkData_hdr", "//include/core:SkImageGenerator_hdr", "//include/core:SkImage_hdr", @@ -325,6 +331,7 @@ generated_cc_atom( "//include/core:SkData_hdr", "//include/core:SkImage_hdr", "//include/core:SkSerialProcs_hdr", + "//include/core:SkStream_hdr", ], ) @@ -561,7 +568,10 @@ generated_cc_atom( name = "list_gpu_unit_tests_src", srcs = ["list_gpu_unit_tests.cpp"], visibility = ["//:__subpackages__"], - deps = ["//tests:Test_hdr"], + deps = [ + "//tests:TestHarness_hdr", + "//tests:Test_hdr", + ], ) generated_cc_atom( @@ -592,6 +602,7 @@ generated_cc_atom( srcs = ["remote_demo.cpp"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkColorSpace_hdr", "//include/core:SkGraphics_hdr", "//include/core:SkSurface_hdr", "//include/private/chromium:SkChromeRemoteGlyphCache_hdr", @@ -625,9 +636,11 @@ generated_cc_atom( srcs = ["skp_parser.cpp"], visibility = ["//:__subpackages__"], deps = [ + ":UrlDataManager_hdr", "//include/core:SkPicture_hdr", "//include/core:SkStream_hdr", "//include/utils:SkNullCanvas_hdr", + "//src/utils:SkJSONWriter_hdr", "//tools/debugger:DebugCanvas_hdr", ], ) diff --git a/third_party/skia/tools/DDLPromiseImageHelper.cpp b/third_party/skia/tools/DDLPromiseImageHelper.cpp index 565beb79b468..e370aa7d7468 100644 --- a/third_party/skia/tools/DDLPromiseImageHelper.cpp +++ b/third_party/skia/tools/DDLPromiseImageHelper.cpp @@ -16,7 +16,7 @@ #include "src/core/SkCachedData.h" #include "src/core/SkMipmap.h" #include "src/core/SkTaskGroup.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_GpuYUVA.h" diff --git a/third_party/skia/tools/DDLTileHelper.cpp b/third_party/skia/tools/DDLTileHelper.cpp index c825194a2f49..e04de66ad75e 100644 --- a/third_party/skia/tools/DDLTileHelper.cpp +++ b/third_party/skia/tools/DDLTileHelper.cpp @@ -15,7 +15,7 @@ #include "include/gpu/GrDirectContext.h" #include "src/core/SkDeferredDisplayListPriv.h" #include "src/core/SkTaskGroup.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/image/SkImage_Gpu.h" #include "tools/DDLPromiseImageHelper.h" diff --git a/third_party/skia/tools/HashAndEncode.cpp b/third_party/skia/tools/HashAndEncode.cpp index c2fcd0f7d143..f436c1bfe005 100644 --- a/third_party/skia/tools/HashAndEncode.cpp +++ b/third_party/skia/tools/HashAndEncode.cpp @@ -1,9 +1,12 @@ // Copyright 2019 Google LLC. // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. +#include "tools/HashAndEncode.h" + +#include "include/core/SkColorSpace.h" #include "include/core/SkICC.h" #include "include/core/SkString.h" -#include "tools/HashAndEncode.h" +#include "include/third_party/skcms/skcms.h" #include diff --git a/third_party/skia/tools/Registry.h b/third_party/skia/tools/Registry.h index d5731a74bf49..a770610dd314 100644 --- a/third_party/skia/tools/Registry.h +++ b/third_party/skia/tools/Registry.h @@ -13,27 +13,17 @@ namespace sk_tools { -/** Template class that registers itself (in the constructor) into a linked-list - and provides a function-pointer. This can be used to auto-register a set of - services, e.g. a set of image codecs. +/** + * Template class that registers itself (in the constructor) into a linked-list + * and provides a function-pointer. This can be used to auto-register a set of + * services, e.g. a set of image codecs. */ template class Registry : SkNoncopyable { public: - explicit Registry(T value) : fValue(value) { -#ifdef SK_BUILD_FOR_ANDROID - // work-around for double-initialization bug - { - Registry* reg = gHead; - while (reg) { - if (reg == this) { - return; - } - reg = reg->fChain; - } + explicit Registry(T value, bool condition = true) : fValue(value) { + if (condition) { + this->linkToRegistryHead(); } -#endif - fChain = gHead; - gHead = this; } static const Registry* Head() { return gHead; } @@ -54,6 +44,11 @@ template class Registry : SkNoncopyable { }; private: + void linkToRegistryHead() { + fChain = gHead; + gHead = this; + } + T fValue; Registry* fChain; diff --git a/third_party/skia/tools/Resources.cpp b/third_party/skia/tools/Resources.cpp index 89f857e7f23b..5e239251adfa 100644 --- a/third_party/skia/tools/Resources.cpp +++ b/third_party/skia/tools/Resources.cpp @@ -6,6 +6,7 @@ */ #include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkData.h" #include "include/core/SkImage.h" #include "include/core/SkImageGenerator.h" diff --git a/third_party/skia/tools/Resources.h b/third_party/skia/tools/Resources.h index 81bdd1bdb046..0ab7fdf23c10 100644 --- a/third_party/skia/tools/Resources.h +++ b/third_party/skia/tools/Resources.h @@ -8,6 +8,8 @@ #ifndef Resources_DEFINED #define Resources_DEFINED +#include "include/core/SkBitmap.h" +#include "include/core/SkData.h" #include "include/core/SkImage.h" #include "include/core/SkString.h" diff --git a/third_party/skia/tools/SkSharingProc.cpp b/third_party/skia/tools/SkSharingProc.cpp index 67d824131b96..41bd4d6e258b 100644 --- a/third_party/skia/tools/SkSharingProc.cpp +++ b/third_party/skia/tools/SkSharingProc.cpp @@ -11,6 +11,7 @@ #include "include/core/SkData.h" #include "include/core/SkImage.h" #include "include/core/SkSerialProcs.h" +#include "include/core/SkStream.h" namespace { sk_sp collectNonTextureImagesProc(SkImage* img, void* ctx) { diff --git a/third_party/skia/tools/build_command_buffer.py b/third_party/skia/tools/build_command_buffer.py index 39c089da5c39..ce5e98732878 100755 --- a/third_party/skia/tools/build_command_buffer.py +++ b/third_party/skia/tools/build_command_buffer.py @@ -84,11 +84,16 @@ def main(): platform = 'win32' shared_lib_name = 'libcommand_buffer_gles2.so' + egl_lib_name = 'libEGL.so' + gles_lib_name = 'libGLESv2.so' gclient = 'gclient' if platform == 'darwin': shared_lib_name = 'libcommand_buffer_gles2.dylib' + egl_lib_name = 'libEGL.dylib' + gles_lib_name = 'libGLESv2.dylib' elif platform == 'win32': shared_lib_name = 'command_buffer_gles2.dll' + # TODO: Not sure about naming of libEGL and libGLESv2 on Windows... gclient = 'gclient.bat' if not args.no_sync: @@ -149,15 +154,31 @@ def main(): shared_lib_src = os.path.join(shared_lib_src_dir, shared_lib_name) shared_lib_dst = os.path.join(args.output_dir, shared_lib_name) + egl_lib_src = os.path.join(shared_lib_src_dir, egl_lib_name) + egl_lib_dst = os.path.join(args.output_dir, egl_lib_name) + gles_lib_src = os.path.join(shared_lib_src_dir, gles_lib_name) + gles_lib_dst = os.path.join(args.output_dir, gles_lib_name) if not os.path.isfile(shared_lib_src): sys.exit('Command buffer shared library not at expected location: ' + shared_lib_src) + if not os.path.isfile(egl_lib_src): + sys.exit('ANGLE EGL shared library not at expected location: ' + + egl_lib_src) + if not os.path.isfile(gles_lib_src): + sys.exit('ANGLE GLES shared library not at expected location: ' + + gles_lib_src) shutil.copy2(shared_lib_src, shared_lib_dst) + shutil.copy2(egl_lib_src, egl_lib_dst) + shutil.copy2(gles_lib_src, gles_lib_dst) if not os.path.isfile(shared_lib_dst): sys.exit('Command buffer library not copied to ' + shared_lib_dst) + if not os.path.isfile(egl_lib_dst): + sys.exit('ANGLE EGL library not copied to ' + egl_lib_dst) + if not os.path.isfile(gles_lib_dst): + sys.exit('ANGLE GLES library not copied to ' + gles_lib_dst) print('Command buffer library copied to ' + shared_lib_dst) diff --git a/third_party/skia/tools/debugger/BUILD.bazel b/third_party/skia/tools/debugger/BUILD.bazel index 7f00249b4caf..0c89071301e8 100644 --- a/third_party/skia/tools/debugger/BUILD.bazel +++ b/third_party/skia/tools/debugger/BUILD.bazel @@ -1,4 +1,8 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "enforce_iwyu_on_package", "generated_cc_atom") + +licenses(["notice"]) + +enforce_iwyu_on_package() cc_library( name = "debugger", @@ -18,15 +22,18 @@ generated_cc_atom( hdrs = ["DebugCanvas.h"], visibility = ["//:__subpackages__"], deps = [ - ":DrawCommand_hdr", + "//include/core:SkBlendMode_hdr", "//include/core:SkCanvasVirtualEnforcer_hdr", "//include/core:SkCanvas_hdr", - "//include/core:SkPath_hdr", - "//include/core:SkString_hdr", - "//include/core:SkVertices_hdr", - "//include/pathops:SkPathOps_hdr", - "//include/private:SkTArray_hdr", - "//tools:UrlDataManager_hdr", + "//include/core:SkClipOp_hdr", + "//include/core:SkColor_hdr", + "//include/core:SkM44_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkSamplingOptions_hdr", + "//include/core:SkScalar_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkTDArray_hdr", ], ) @@ -38,17 +45,27 @@ generated_cc_atom( ":DebugCanvas_hdr", ":DebugLayerManager_hdr", ":DrawCommand_hdr", + "//include/core:SkData_hdr", + "//include/core:SkMatrix_hdr", "//include/core:SkPaint_hdr", "//include/core:SkPath_hdr", "//include/core:SkPicture_hdr", "//include/core:SkPoint_hdr", + "//include/core:SkRSXform_hdr", + "//include/core:SkShader_hdr", + "//include/core:SkString_hdr", "//include/core:SkTextBlob_hdr", + "//include/core:SkVertices_hdr", "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//include/private:SkTArray_hdr", "//include/utils:SkPaintFilterCanvas_hdr", "//src/core:SkCanvasPriv_hdr", "//src/core:SkRectPriv_hdr", - "//src/gpu:GrAuditTrail_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrAuditTrail_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrRenderTargetProxy_hdr", + "//src/gpu/ganesh:GrSurfaceProxy_hdr", "//src/utils:SkJSONWriter_hdr", ], ) @@ -59,9 +76,11 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":DebugCanvas_hdr", + "//include/core:SkColor_hdr", "//include/core:SkImage_hdr", + "//include/core:SkRefCnt_hdr", + "//include/core:SkSize_hdr", "//include/private:SkTHash_hdr", - "//src/utils:SkJSONWriter_hdr", ], ) @@ -72,10 +91,15 @@ generated_cc_atom( deps = [ ":DebugCanvas_hdr", ":DebugLayerManager_hdr", + "//include/core:SkAlphaType_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkColorType_hdr", "//include/core:SkImageInfo_hdr", "//include/core:SkImage_hdr", "//include/core:SkPicture_hdr", + "//include/core:SkRect_hdr", "//include/core:SkSurface_hdr", + "//include/core:SkTypes_hdr", "//include/private:SkTHash_hdr", ], ) @@ -85,20 +109,35 @@ generated_cc_atom( hdrs = ["DrawCommand.h"], visibility = ["//:__subpackages__"], deps = [ - "//include/core:SkBitmap_hdr", + "//include/core:SkBlendMode_hdr", "//include/core:SkCanvas_hdr", - "//include/core:SkFlattenable_hdr", + "//include/core:SkClipOp_hdr", + "//include/core:SkColor_hdr", + "//include/core:SkData_hdr", + "//include/core:SkDrawable_hdr", + "//include/core:SkImageFilter_hdr", + "//include/core:SkImage_hdr", + "//include/core:SkM44_hdr", + "//include/core:SkMatrix_hdr", + "//include/core:SkPaint_hdr", "//include/core:SkPath_hdr", + "//include/core:SkPicture_hdr", + "//include/core:SkPoint_hdr", "//include/core:SkRRect_hdr", - "//include/core:SkRSXform_hdr", + "//include/core:SkRect_hdr", + "//include/core:SkRefCnt_hdr", "//include/core:SkRegion_hdr", + "//include/core:SkSamplingOptions_hdr", + "//include/core:SkScalar_hdr", + "//include/core:SkShader_hdr", "//include/core:SkString_hdr", + "//include/core:SkTextBlob_hdr", + "//include/core:SkTypes_hdr", "//include/core:SkVertices_hdr", "//include/private:SkTDArray_hdr", + "//include/private:SkTemplates_hdr", "//src/core:SkDrawShadowInfo_hdr", "//src/core:SkTLazy_hdr", - "//src/utils:SkJSONWriter_hdr", - "//tools:UrlDataManager_hdr", ], ) @@ -110,28 +149,43 @@ generated_cc_atom( ":DebugLayerManager_hdr", ":DrawCommand_hdr", ":JsonWriteBuffer_hdr", + "//include/core:SkAlphaType_hdr", + "//include/core:SkBitmap_hdr", + "//include/core:SkBlurTypes_hdr", "//include/core:SkColorFilter_hdr", + "//include/core:SkColorType_hdr", "//include/core:SkDrawable_hdr", + "//include/core:SkFlattenable_hdr", + "//include/core:SkFontTypes_hdr", + "//include/core:SkFont_hdr", "//include/core:SkImageFilter_hdr", + "//include/core:SkImageInfo_hdr", + "//include/core:SkMaskFilter_hdr", "//include/core:SkPathEffect_hdr", + "//include/core:SkPathTypes_hdr", "//include/core:SkPicture_hdr", + "//include/core:SkPixmap_hdr", + "//include/core:SkPoint3_hdr", + "//include/core:SkRSXform_hdr", + "//include/core:SkSamplingOptions_hdr", + "//include/core:SkSize_hdr", + "//include/core:SkStream_hdr", "//include/core:SkTypeface_hdr", - "//include/effects:SkDashPathEffect_hdr", "//include/encode:SkPngEncoder_hdr", - "//include/gpu:GrDirectContext_hdr", + "//include/gpu:GrRecordingContext_hdr", + "//include/private:SkMalloc_hdr", "//include/private:SkShadowFlags_hdr", - "//include/private:SkTHash_hdr", + "//include/private/gpu/ganesh:GrImageContext_hdr", "//src/core:SkAutoMalloc_hdr", "//src/core:SkCanvasPriv_hdr", - "//src/core:SkLatticeIter_hdr", "//src/core:SkMaskFilterBase_hdr", "//src/core:SkPaintDefaults_hdr", - "//src/core:SkPaintPriv_hdr", - "//src/core:SkReadBuffer_hdr", "//src/core:SkRectPriv_hdr", "//src/core:SkTextBlobPriv_hdr", "//src/core:SkWriteBuffer_hdr", "//src/image:SkImage_Base_hdr", + "//src/utils:SkJSONWriter_hdr", + "//tools:UrlDataManager_hdr", ], ) @@ -139,7 +193,13 @@ generated_cc_atom( name = "JsonWriteBuffer_hdr", hdrs = ["JsonWriteBuffer.h"], visibility = ["//:__subpackages__"], - deps = ["//src/core:SkWriteBuffer_hdr"], + deps = [ + "//include/core:SkColor_hdr", + "//include/core:SkM44_hdr", + "//include/core:SkScalar_hdr", + "//include/core:SkTypes_hdr", + "//src/core:SkWriteBuffer_hdr", + ], ) generated_cc_atom( @@ -149,5 +209,9 @@ generated_cc_atom( deps = [ ":DrawCommand_hdr", ":JsonWriteBuffer_hdr", + "//include/core:SkFlattenable_hdr", + "//include/core:SkPoint_hdr", + "//include/core:SkString_hdr", + "//src/utils:SkJSONWriter_hdr", ], ) diff --git a/third_party/skia/tools/debugger/DebugCanvas.cpp b/third_party/skia/tools/debugger/DebugCanvas.cpp index 2661939d269c..fc666bfa0a44 100644 --- a/third_party/skia/tools/debugger/DebugCanvas.cpp +++ b/third_party/skia/tools/debugger/DebugCanvas.cpp @@ -7,24 +7,42 @@ #include "tools/debugger/DebugCanvas.h" +#include "include/core/SkData.h" +#include "include/core/SkMatrix.h" #include "include/core/SkPaint.h" #include "include/core/SkPath.h" #include "include/core/SkPicture.h" #include "include/core/SkPoint.h" +#include "include/core/SkRSXform.h" +#include "include/core/SkShader.h" +#include "include/core/SkString.h" #include "include/core/SkTextBlob.h" +#include "include/core/SkVertices.h" #include "include/gpu/GrDirectContext.h" +#include "include/gpu/GrRecordingContext.h" +#include "include/private/SkTArray.h" #include "include/utils/SkPaintFilterCanvas.h" #include "src/core/SkCanvasPriv.h" #include "src/core/SkRectPriv.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrSurfaceProxy.h" #include "src/utils/SkJSONWriter.h" #include "tools/debugger/DebugLayerManager.h" #include "tools/debugger/DrawCommand.h" #include +#include + +class SkDrawable; +class SkImage; +class SkRRect; +class SkRegion; +class UrlDataManager; +struct SkDrawShadowRec; #if SK_GPU_V1 -#include "src/gpu/GrAuditTrail.h" +#include "src/gpu/ganesh/GrAuditTrail.h" #endif #define SKDEBUGCANVAS_VERSION 1 diff --git a/third_party/skia/tools/debugger/DebugCanvas.h b/third_party/skia/tools/debugger/DebugCanvas.h index c67f0c4b89c5..3b930784f696 100644 --- a/third_party/skia/tools/debugger/DebugCanvas.h +++ b/third_party/skia/tools/debugger/DebugCanvas.h @@ -8,23 +8,42 @@ #ifndef SKDEBUGCANVAS_H_ #define SKDEBUGCANVAS_H_ +#include "include/core/SkBlendMode.h" #include "include/core/SkCanvas.h" #include "include/core/SkCanvasVirtualEnforcer.h" -#include "include/core/SkPath.h" -#include "include/core/SkString.h" -#include "include/core/SkVertices.h" -#include "include/pathops/SkPathOps.h" -#include "include/private/SkTArray.h" -#include "tools/UrlDataManager.h" -#include "tools/debugger/DrawCommand.h" +#include "include/core/SkClipOp.h" +#include "include/core/SkColor.h" +#include "include/core/SkM44.h" +#include "include/core/SkRect.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkSamplingOptions.h" +#include "include/core/SkScalar.h" +#include "include/core/SkTypes.h" +#include "include/private/SkTDArray.h" #include #include +class DebugLayerManager; +class DrawCommand; class GrAuditTrail; -class SkNWayCanvas; +class SkData; +class SkDrawable; +class SkImage; +class SkJSONWriter; +class SkMatrix; +class SkPaint; +class SkPath; class SkPicture; -class DebugLayerManager; +class SkRRect; +class SkRegion; +class SkShader; +class SkTextBlob; +class SkVertices; +class UrlDataManager; +struct SkDrawShadowRec; +struct SkPoint; +struct SkRSXform; class DebugCanvas : public SkCanvasVirtualEnforcer { public: diff --git a/third_party/skia/tools/debugger/DebugLayerManager.cpp b/third_party/skia/tools/debugger/DebugLayerManager.cpp index c2deb46bca4a..c7b74bf94c83 100644 --- a/third_party/skia/tools/debugger/DebugLayerManager.cpp +++ b/third_party/skia/tools/debugger/DebugLayerManager.cpp @@ -7,17 +7,22 @@ #include "tools/debugger/DebugLayerManager.h" +#include "include/core/SkAlphaType.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkColorType.h" #include "include/core/SkImage.h" #include "include/core/SkImageInfo.h" #include "include/core/SkPicture.h" +#include "include/core/SkRect.h" #include "include/core/SkSurface.h" +#include "include/core/SkTypes.h" #include "include/private/SkTHash.h" #include "tools/debugger/DebugCanvas.h" #include -#include -#include #include +#include +#include void DebugLayerManager::setCommand(int nodeId, int frame, int command) { auto* drawEvent = fDraws.find({frame, nodeId}); diff --git a/third_party/skia/tools/debugger/DebugLayerManager.h b/third_party/skia/tools/debugger/DebugLayerManager.h index c9de96a9ef05..711e8fe66a4b 100644 --- a/third_party/skia/tools/debugger/DebugLayerManager.h +++ b/third_party/skia/tools/debugger/DebugLayerManager.h @@ -8,13 +8,23 @@ #ifndef DEBUGLAYERMANAGER_H_ #define DEBUGLAYERMANAGER_H_ +#include "include/core/SkColor.h" #include "include/core/SkImage.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkSize.h" #include "include/private/SkTHash.h" -#include "src/utils/SkJSONWriter.h" #include "tools/debugger/DebugCanvas.h" +#include #include +class SkCanvas; +class SkJSONWriter; +class SkPicture; +class SkSurface; +class UrlDataManager; +struct SkIRect; + // A class to assist in playing back and debugging an mskp file containing offscreen layer commands. // Holds SkPictures necessary to draw layers in one or more DebugCanvases. During @@ -32,8 +42,6 @@ // this class will return a rendering of how it looked on that frame. // returning an SkImage snapshot of the internally managed surface. -class DebugCanvas; - class DebugLayerManager { public: DebugLayerManager() {} diff --git a/third_party/skia/tools/debugger/DrawCommand.cpp b/third_party/skia/tools/debugger/DrawCommand.cpp index 07400acaf8d4..c53302448926 100644 --- a/third_party/skia/tools/debugger/DrawCommand.cpp +++ b/third_party/skia/tools/debugger/DrawCommand.cpp @@ -7,37 +7,56 @@ #include "tools/debugger/DrawCommand.h" -#include +#include "include/core/SkAlphaType.h" +#include "include/core/SkBitmap.h" +#include "include/core/SkBlurTypes.h" #include "include/core/SkColorFilter.h" +#include "include/core/SkColorType.h" #include "include/core/SkDrawable.h" +#include "include/core/SkFlattenable.h" +#include "include/core/SkFont.h" +#include "include/core/SkFontTypes.h" #include "include/core/SkImageFilter.h" +#include "include/core/SkImageInfo.h" +#include "include/core/SkMaskFilter.h" #include "include/core/SkPathEffect.h" +#include "include/core/SkPathTypes.h" #include "include/core/SkPicture.h" +#include "include/core/SkPixmap.h" +#include "include/core/SkPoint3.h" +#include "include/core/SkRSXform.h" +#include "include/core/SkSamplingOptions.h" +#include "include/core/SkSize.h" +#include "include/core/SkStream.h" #include "include/core/SkTypeface.h" -#include "include/effects/SkDashPathEffect.h" #include "include/encode/SkPngEncoder.h" +#include "include/private/SkMalloc.h" #include "include/private/SkShadowFlags.h" -#include "include/private/SkTHash.h" +#include "include/private/gpu/ganesh/GrImageContext.h" #include "src/core/SkAutoMalloc.h" #include "src/core/SkCanvasPriv.h" -#include "src/core/SkLatticeIter.h" #include "src/core/SkMaskFilterBase.h" #include "src/core/SkPaintDefaults.h" -#include "src/core/SkPaintPriv.h" -#include "src/core/SkReadBuffer.h" #include "src/core/SkRectPriv.h" #include "src/core/SkTextBlobPriv.h" #include "src/core/SkWriteBuffer.h" #include "src/image/SkImage_Base.h" +#include "src/utils/SkJSONWriter.h" +#include "tools/UrlDataManager.h" #include "tools/debugger/DebugLayerManager.h" #include "tools/debugger/JsonWriteBuffer.h" -#if SK_SUPPORT_GPU -#include "include/gpu/GrDirectContext.h" -#else +#include +#include +#include + class GrDirectContext; + +#if SK_SUPPORT_GPU +#include "include/gpu/GrRecordingContext.h" #endif +#define DEBUGCANVAS_ATTRIBUTE_DUMP "dump" #define DEBUGCANVAS_ATTRIBUTE_COMMAND "command" #define DEBUGCANVAS_ATTRIBUTE_VISIBLE "visible" #define DEBUGCANVAS_ATTRIBUTE_MATRIX "matrix" @@ -56,6 +75,7 @@ class GrDirectContext; #define DEBUGCANVAS_ATTRIBUTE_COLOR "color" #define DEBUGCANVAS_ATTRIBUTE_ALPHA "alpha" #define DEBUGCANVAS_ATTRIBUTE_BLENDMODE "blendMode" +#define DEBUGCANVAS_ATTRIBUTE_SAMPLING "sampling" #define DEBUGCANVAS_ATTRIBUTE_STYLE "style" #define DEBUGCANVAS_ATTRIBUTE_STROKEWIDTH "strokeWidth" #define DEBUGCANVAS_ATTRIBUTE_STROKEMITER "strokeMiter" @@ -465,6 +485,13 @@ void DrawCommand::MakeJsonMatrix44(SkJSONWriter& writer, const SkM44& matrix) { void DrawCommand::MakeJsonPath(SkJSONWriter& writer, const SkPath& path) { writer.beginObject(); + + SkDynamicMemoryWStream wstream; + path.dump(&wstream, false); + auto data = wstream.detachAsData(); + SkString dumpString((char*)data->bytes(), data->size()); + writer.appendString(DEBUGCANVAS_ATTRIBUTE_DUMP, dumpString.c_str()); + switch (path.getFillType()) { case SkPathFillType::kWinding: writer.appendString(DEBUGCANVAS_ATTRIBUTE_FILLTYPE, DEBUGCANVAS_FILLTYPE_WINDING); @@ -543,6 +570,16 @@ void DrawCommand::MakeJsonRegion(SkJSONWriter& writer, const SkRegion& region) { MakeJsonPath(writer, path); } +void DrawCommand::MakeJsonSampling(SkJSONWriter& writer, const SkSamplingOptions& sampling) { + writer.beginObject(); + writer.appendBool("useCubic", sampling.useCubic); + writer.appendS32("filter", (int)sampling.filter); + writer.appendS32("mipmap", (int)sampling.mipmap); + writer.appendFloat("cubic.B", sampling.cubic.B); + writer.appendFloat("cubic.C", sampling.cubic.C); + writer.endObject(); +} + static const char* clipop_name(SkClipOp op) { switch (op) { case SkClipOp::kDifference: return DEBUGCANVAS_CLIPOP_DIFFERENCE; @@ -1188,6 +1225,8 @@ void DrawImageCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManag writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT); MakeJsonPaint(writer, *fPaint, urlDataManager); } + writer.appendName(DEBUGCANVAS_ATTRIBUTE_SAMPLING); + MakeJsonSampling(writer, fSampling); writer.appendU32(DEBUGCANVAS_ATTRIBUTE_UNIQUE_ID, fImage->uniqueID()); writer.appendS32(DEBUGCANVAS_ATTRIBUTE_WIDTH, fImage->width()); @@ -1293,6 +1332,8 @@ void DrawImageRectCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataM MakeJsonRect(writer, fSrc); writer.appendName(DEBUGCANVAS_ATTRIBUTE_DST); MakeJsonRect(writer, fDst); + writer.appendName(DEBUGCANVAS_ATTRIBUTE_SAMPLING); + MakeJsonSampling(writer, fSampling); if (fPaint.isValid()) { writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT); MakeJsonPaint(writer, *fPaint, urlDataManager); @@ -1352,6 +1393,8 @@ void DrawImageRectLayerCommand::toJSON(SkJSONWriter& writer, UrlDataManager& url writer.appendName(DEBUGCANVAS_ATTRIBUTE_DST); MakeJsonRect(writer, fDst); + writer.appendName(DEBUGCANVAS_ATTRIBUTE_SAMPLING); + MakeJsonSampling(writer, fSampling); if (fPaint.isValid()) { writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT); MakeJsonPaint(writer, *fPaint, urlDataManager); diff --git a/third_party/skia/tools/debugger/DrawCommand.h b/third_party/skia/tools/debugger/DrawCommand.h index 57d54f623683..8e47e3d22f7f 100644 --- a/third_party/skia/tools/debugger/DrawCommand.h +++ b/third_party/skia/tools/debugger/DrawCommand.h @@ -8,22 +8,44 @@ #ifndef SKDRAWCOMMAND_H_ #define SKDRAWCOMMAND_H_ -#include "include/core/SkBitmap.h" +#include "include/core/SkBlendMode.h" #include "include/core/SkCanvas.h" -#include "include/core/SkFlattenable.h" +#include "include/core/SkClipOp.h" +#include "include/core/SkColor.h" +#include "include/core/SkData.h" +#include "include/core/SkDrawable.h" +#include "include/core/SkImage.h" +#include "include/core/SkImageFilter.h" +#include "include/core/SkM44.h" +#include "include/core/SkMatrix.h" +#include "include/core/SkPaint.h" #include "include/core/SkPath.h" +#include "include/core/SkPicture.h" +#include "include/core/SkPoint.h" #include "include/core/SkRRect.h" -#include "include/core/SkRSXform.h" +#include "include/core/SkRect.h" +#include "include/core/SkRefCnt.h" #include "include/core/SkRegion.h" +#include "include/core/SkSamplingOptions.h" +#include "include/core/SkScalar.h" +#include "include/core/SkShader.h" #include "include/core/SkString.h" +#include "include/core/SkTextBlob.h" +#include "include/core/SkTypes.h" #include "include/core/SkVertices.h" #include "include/private/SkTDArray.h" +#include "include/private/SkTemplates.h" #include "src/core/SkDrawShadowInfo.h" #include "src/core/SkTLazy.h" -#include "src/utils/SkJSONWriter.h" -#include "tools/UrlDataManager.h" class DebugLayerManager; +class SkBitmap; +class SkFlattenable; +class SkJSONWriter; +class SkWStream; +class UrlDataManager; +struct SkPoint3; +struct SkRSXform; class DrawCommand { public: @@ -104,6 +126,7 @@ class DrawCommand { static void MakeJsonMatrix44(SkJSONWriter&, const SkM44&); static void MakeJsonPath(SkJSONWriter&, const SkPath& path); static void MakeJsonRegion(SkJSONWriter&, const SkRegion& region); + static void MakeJsonSampling(SkJSONWriter&, const SkSamplingOptions& sampling); static void MakeJsonPaint(SkJSONWriter&, const SkPaint& paint, UrlDataManager& urlDataManager); static void MakeJsonLattice(SkJSONWriter&, const SkCanvas::Lattice& lattice); diff --git a/third_party/skia/tools/debugger/JsonWriteBuffer.cpp b/third_party/skia/tools/debugger/JsonWriteBuffer.cpp index 316bd5af6d67..71fb2a8a655a 100644 --- a/third_party/skia/tools/debugger/JsonWriteBuffer.cpp +++ b/third_party/skia/tools/debugger/JsonWriteBuffer.cpp @@ -7,8 +7,22 @@ #include "tools/debugger/JsonWriteBuffer.h" +#include "include/core/SkFlattenable.h" +#include "include/core/SkPoint.h" +#include "include/core/SkString.h" +#include "src/utils/SkJSONWriter.h" #include "tools/debugger/DrawCommand.h" +class SkImage; +class SkMatrix; +class SkPaint; +class SkRegion; +class SkStream; +class SkTypeface; +struct SkIRect; +struct SkPoint3; +struct SkRect; + void JsonWriteBuffer::append(const char* type) { SkString fullName = SkStringPrintf("%02d_%s", fCount++, type); fWriter->appendName(fullName.c_str()); @@ -178,6 +192,11 @@ void JsonWriteBuffer::writePath(const SkPath& path) { DrawCommand::MakeJsonPath(*fWriter, path); } +void JsonWriteBuffer::writeSampling(const SkSamplingOptions& sampling) { + this->append("sampling"); + DrawCommand::MakeJsonSampling(*fWriter, sampling); +} + size_t JsonWriteBuffer::writeStream(SkStream* stream, size_t length) { // Contents not supported this->append("stream"); diff --git a/third_party/skia/tools/debugger/JsonWriteBuffer.h b/third_party/skia/tools/debugger/JsonWriteBuffer.h index e668720891b7..ba160570d6e1 100644 --- a/third_party/skia/tools/debugger/JsonWriteBuffer.h +++ b/third_party/skia/tools/debugger/JsonWriteBuffer.h @@ -8,11 +8,27 @@ #ifndef JsonWriteBuffer_DEFINED #define JsonWriteBuffer_DEFINED +#include "include/core/SkColor.h" +#include "include/core/SkM44.h" +#include "include/core/SkScalar.h" +#include "include/core/SkTypes.h" #include "src/core/SkWriteBuffer.h" +class SkFlattenable; +class SkImage; class SkJSONWriter; +class SkMatrix; +class SkPaint; class SkPath; +class SkRegion; +struct SkSamplingOptions; +class SkStream; +class SkTypeface; class UrlDataManager; +struct SkIRect; +struct SkPoint3; +struct SkPoint; +struct SkRect; class JsonWriteBuffer final : public SkWriteBuffer { public: @@ -43,6 +59,7 @@ class JsonWriteBuffer final : public SkWriteBuffer { void writeRect(const SkRect& rect) override; void writeRegion(const SkRegion& region) override; void writePath(const SkPath& path) override; + void writeSampling(const SkSamplingOptions&) override; size_t writeStream(SkStream* stream, size_t length) override; void writeImage(const SkImage*) override; void writeTypeface(SkTypeface* typeface) override; diff --git a/third_party/skia/tools/doxygen/README.md b/third_party/skia/tools/doxygen/README.md index d01cecb4b4c7..2d5db59accde 100644 --- a/third_party/skia/tools/doxygen/README.md +++ b/third_party/skia/tools/doxygen/README.md @@ -1,8 +1,6 @@ -Doxygen -======= +# Doxygen -To generate all the documentation run the following -from this directory: +To generate all the documentation run the following from this directory: doxygen Doxyfile @@ -12,19 +10,18 @@ The resulting output goes to To view those file locally in your browser run: - cd /tmp/doxygen/html; python -m SimpleHTTPServer 8000 + cd /tmp/doxygen/html; python3 -m http.server 8000 and visit http://localhost:8000 -If you want to have the documentation regenerated on every save then -you can install `entr` and run the following from this directory: +If you want to have the documentation regenerated on every save then you can +install `entr` and run the following from this directory: find ../../include/ ../../src/ . | entr doxygen ./Doxyfile -Install -------- +## Install For a linux desktop you can install the doxygen tool via: diff --git a/third_party/skia/tools/fiddle/BUILD.bazel b/third_party/skia/tools/fiddle/BUILD.bazel index 7e0381e60ce0..d113db1a1d94 100644 --- a/third_party/skia/tools/fiddle/BUILD.bazel +++ b/third_party/skia/tools/fiddle/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "all_examples_src", srcs = ["all_examples.cpp"], @@ -1273,10 +1275,10 @@ generated_cc_atom( "//src/core:SkAutoPixmapStorage_hdr", "//src/core:SkMipmap_hdr", "//src/core:SkOpts_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrRenderTarget_hdr", - "//src/gpu:GrResourceProvider_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrRenderTarget_hdr", + "//src/gpu/ganesh:GrResourceProvider_hdr", "//tools/flags:CommandLineFlags_hdr", "//tools/gpu:ManagedBackendTexture_hdr", "//tools/gpu/gl:GLTestContext_hdr", diff --git a/third_party/skia/tools/fiddle/fiddle_main.cpp b/third_party/skia/tools/fiddle/fiddle_main.cpp index 5870be2ef6b2..997c466c3542 100644 --- a/third_party/skia/tools/fiddle/fiddle_main.cpp +++ b/third_party/skia/tools/fiddle/fiddle_main.cpp @@ -23,10 +23,10 @@ static DEFINE_double(frame, 1.0, "A double value in [0, 1] that specifies the point in animation to draw."); #include "include/gpu/GrBackendSurface.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrRenderTarget.h" -#include "src/gpu/GrResourceProvider.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrResourceProvider.h" #include "tools/gpu/ManagedBackendTexture.h" #include "tools/gpu/gl/GLTestContext.h" diff --git a/third_party/skia/tools/flags/BUILD.bazel b/third_party/skia/tools/flags/BUILD.bazel index 4aae132bb258..d8a75efb478c 100644 --- a/third_party/skia/tools/flags/BUILD.bazel +++ b/third_party/skia/tools/flags/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "CommandLineFlags_hdr", hdrs = ["CommandLineFlags.h"], diff --git a/third_party/skia/tools/flags/CommonFlagsConfig.cpp b/third_party/skia/tools/flags/CommonFlagsConfig.cpp index dbe5beb20b1d..86a87c03fb9e 100644 --- a/third_party/skia/tools/flags/CommonFlagsConfig.cpp +++ b/third_party/skia/tools/flags/CommonFlagsConfig.cpp @@ -68,6 +68,7 @@ static const struct { { "glnostencils", "gpu", "api=gl,stencils=false" }, { "gldft", "gpu", "api=gl,dit=true" }, { "glesdft", "gpu", "api=gles,dit=true" }, + { "glslug", "gpu", "api=gl,slug=true" }, { "gltestthreading", "gpu", "api=gl,testThreading=true" }, { "gltestpersistentcache", "gpu", "api=gl,testPersistentCache=1" }, { "gltestglslcache", "gpu", "api=gl,testPersistentCache=2" }, @@ -531,6 +532,7 @@ SkCommandLineConfigGpu::SkCommandLineConfigGpu(const SkString& tag, bool testPrecompile, bool useDDLSink, bool OOPRish, + bool slug, bool reducedShaders, SurfType surfType) : SkCommandLineConfig(tag, SkString("gpu"), viaParts) @@ -545,6 +547,7 @@ SkCommandLineConfigGpu::SkCommandLineConfigGpu(const SkString& tag, , fTestPrecompile(testPrecompile) , fUseDDLSink(useDDLSink) , fOOPRish(OOPRish) + , fSlug(slug) , fReducedShaders(reducedShaders) , fSurfType(surfType) { if (!useStencilBuffers) { @@ -574,6 +577,7 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString& bool testPrecompile = false; bool useDDLs = false; bool ooprish = false; + bool slug = false; bool reducedShaders = false; bool fakeGLESVersion2 = false; SkCommandLineConfigGpu::SurfType surfType = SkCommandLineConfigGpu::SurfType::kDefault; @@ -596,6 +600,7 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString& extendedOptions.get_option_bool("testPrecompile", &testPrecompile) && extendedOptions.get_option_bool("useDDLSink", &useDDLs) && extendedOptions.get_option_bool("OOPRish", &ooprish) && + extendedOptions.get_option_bool("slug", &slug) && extendedOptions.get_option_bool("reducedShaders", &reducedShaders) && extendedOptions.get_option_gpu_surf_type("surf", &surfType); @@ -626,6 +631,7 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString& testPrecompile, useDDLs, ooprish, + slug, reducedShaders, surfType); } diff --git a/third_party/skia/tools/flags/CommonFlagsConfig.h b/third_party/skia/tools/flags/CommonFlagsConfig.h index f48a3c76d550..19954cf3cac5 100644 --- a/third_party/skia/tools/flags/CommonFlagsConfig.h +++ b/third_party/skia/tools/flags/CommonFlagsConfig.h @@ -69,6 +69,7 @@ class SkCommandLineConfigGpu : public SkCommandLineConfig { bool testPrecompile, bool useDDLSink, bool OOPRish, + bool slug, bool reducedShaders, SurfType); @@ -84,6 +85,7 @@ class SkCommandLineConfigGpu : public SkCommandLineConfig { bool getTestPrecompile() const { return fTestPrecompile; } bool getUseDDLSink() const { return fUseDDLSink; } bool getOOPRish() const { return fOOPRish; } + bool getSlug() const { return fSlug; } bool getReducedShaders() const { return fReducedShaders; } SurfType getSurfType() const { return fSurfType; } @@ -99,6 +101,7 @@ class SkCommandLineConfigGpu : public SkCommandLineConfig { bool fTestPrecompile; bool fUseDDLSink; bool fOOPRish; + bool fSlug; bool fReducedShaders; SurfType fSurfType; }; diff --git a/third_party/skia/tools/flags/CommonFlagsGpu.cpp b/third_party/skia/tools/flags/CommonFlagsGpu.cpp index 25b9a2f4cc19..bcb2cd8689fd 100644 --- a/third_party/skia/tools/flags/CommonFlagsGpu.cpp +++ b/third_party/skia/tools/flags/CommonFlagsGpu.cpp @@ -14,6 +14,8 @@ DEFINE_int(gpuThreads, "Create this many extra threads to assist with GPU work, " "including software path rendering. Defaults to two."); +extern bool gSkBlobAsSlugTesting; + namespace CommonFlags { static DEFINE_bool(cachePathMasks, true, @@ -109,6 +111,8 @@ void SetCtxOptions(GrContextOptions* ctxOptions) { ctxOptions->fGpuPathRenderers = collect_gpu_path_renderers_from_flags(); ctxOptions->fDisableDriverCorrectnessWorkarounds = FLAGS_disableDriverCorrectnessWorkarounds; ctxOptions->fResourceCacheLimitOverride = FLAGS_gpuResourceCacheLimit; + // If testing with slugs ensure that padding is added in the atlas. + ctxOptions->fSupportBilerpFromGlyphAtlas |= gSkBlobAsSlugTesting; if (FLAGS_internalSamples >= 0) { ctxOptions->fInternalMultisampleCount = FLAGS_internalSamples; diff --git a/third_party/skia/tools/fm/BUILD.bazel b/third_party/skia/tools/fm/BUILD.bazel index 336604672cf5..af36a2a6ae81 100644 --- a/third_party/skia/tools/fm/BUILD.bazel +++ b/third_party/skia/tools/fm/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "fm_src", srcs = ["fm.cpp"], @@ -24,9 +26,10 @@ generated_cc_atom( "//src/core:SkMD5_hdr", "//src/core:SkOSFile_hdr", "//src/core:SkTaskGroup_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", "//src/utils:SkOSPath_hdr", + "//tests:TestHarness_hdr", "//tests:Test_hdr", "//tools:AutoreleasePool_hdr", "//tools:CrashHandler_hdr", diff --git a/third_party/skia/tools/fm/fm.cpp b/third_party/skia/tools/fm/fm.cpp index 239f3dc473a0..ea5934f22cda 100644 --- a/third_party/skia/tools/fm/fm.cpp +++ b/third_party/skia/tools/fm/fm.cpp @@ -16,10 +16,11 @@ #include "src/core/SkMD5.h" #include "src/core/SkOSFile.h" #include "src/core/SkTaskGroup.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" #include "src/utils/SkOSPath.h" #include "tests/Test.h" +#include "tests/TestHarness.h" #include "tools/AutoreleasePool.h" #include "tools/CrashHandler.h" #include "tools/HashAndEncode.h" @@ -370,6 +371,10 @@ static sk_sp draw_with_gpu(std::function draw, return image; } +TestHarness CurrentTestHarness() { + return TestHarness::kFM; +} + extern bool gUseSkVMBlitter; extern bool gSkVMAllowJIT; extern bool gSkVMJITViaDylib; diff --git a/third_party/skia/tools/fm/fm_bot/BUILD.bazel b/third_party/skia/tools/fm/fm_bot/BUILD.bazel index 7e2c0344a5a3..bb226b72addb 100644 --- a/third_party/skia/tools/fm/fm_bot/BUILD.bazel +++ b/third_party/skia/tools/fm/fm_bot/BUILD.bazel @@ -1,5 +1,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") +licenses(["notice"]) + go_library( name = "fm_bot_lib", srcs = ["fm_bot.go"], diff --git a/third_party/skia/tools/fonts/BUILD.bazel b/third_party/skia/tools/fonts/BUILD.bazel index aca61d0c16b5..17f4d2d71c7c 100644 --- a/third_party/skia/tools/fonts/BUILD.bazel +++ b/third_party/skia/tools/fonts/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "test_font_manager", testonly = True, diff --git a/third_party/skia/tools/git-sync-deps b/third_party/skia/tools/git-sync-deps index 44d936b426b7..b09d17669a91 100755 --- a/third_party/skia/tools/git-sync-deps +++ b/third_party/skia/tools/git-sync-deps @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # Copyright 2014 Google Inc. # # Use of this source code is governed by a BSD-style license that can be diff --git a/third_party/skia/tools/gpu/BUILD.bazel b/third_party/skia/tools/gpu/BUILD.bazel index 3f92be3b8cba..f8de11f1146b 100644 --- a/third_party/skia/tools/gpu/BUILD.bazel +++ b/third_party/skia/tools/gpu/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_library( name = "gpu_tool_utils", testonly = True, @@ -39,7 +41,8 @@ generated_cc_atom( hdrs = ["BackendSurfaceFactory.h"], visibility = ["//:__subpackages__"], deps = [ - "//include/core:SkImageInfo_hdr", + "//include/core:SkColorSpace_hdr", + "//include/core:SkRefCnt_hdr", "//include/core:SkSize_hdr", "//include/gpu:GrTypes_hdr", "//include/private:SkColorData_hdr", @@ -55,8 +58,8 @@ generated_cc_atom( ":ManagedBackendTexture_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", ], ) @@ -66,6 +69,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ "//include/core:SkColor_hdr", + "//include/core:SkImageInfo_hdr", "//include/core:SkRefCnt_hdr", "//include/gpu:GrTypes_hdr", ], @@ -78,6 +82,7 @@ generated_cc_atom( deps = [ ":BackendTextureImageFactory_hdr", ":ManagedBackendTexture_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", "//include/core:SkPixmap_hdr", "//include/gpu:GrBackendSurface_hdr", @@ -97,7 +102,10 @@ generated_cc_atom( name = "FlushFinishTracker_hdr", hdrs = ["FlushFinishTracker.h"], visibility = ["//:__subpackages__"], - deps = ["//include/core:SkRefCnt_hdr"], + deps = [ + "//include/core:SkRefCnt_hdr", + "//include/gpu:GpuTypes_hdr", + ], ) generated_cc_atom( @@ -107,6 +115,7 @@ generated_cc_atom( deps = [ ":FlushFinishTracker_hdr", "//include/gpu:GrDirectContext_hdr", + "//include/gpu/graphite:Context_hdr", "//src/core:SkTraceEvent_hdr", ], ) @@ -138,8 +147,8 @@ generated_cc_atom( deps = [ ":GrContextFactory_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", "//tools/gpu/d3d:D3DTestContext_hdr", "//tools/gpu/dawn:DawnTestContext_hdr", "//tools/gpu/gl:GLTestContext_hdr", @@ -162,22 +171,22 @@ generated_cc_atom( "//include/gpu:GrRecordingContext_hdr", "//include/private:SkTo_hdr", "//src/core:SkMathPriv_hdr", - "//src/gpu:GrClip_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawOpAtlas_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrGpuResourceCacheAccess_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu:GrRenderTargetProxy_hdr", - "//src/gpu:GrResourceCache_hdr", - "//src/gpu:GrSemaphore_hdr", - "//src/gpu:GrTexture_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu/text:GrStrikeCache_hdr", - "//src/gpu/text:GrTextBlobRedrawCoordinator_hdr", - "//src/gpu/v1:SurfaceDrawContext_v1_hdr", + "//src/gpu/ganesh:GrClip_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawOpAtlas_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrGpuResourceCacheAccess_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrRenderTargetProxy_hdr", + "//src/gpu/ganesh:GrResourceCache_hdr", + "//src/gpu/ganesh:GrSemaphore_hdr", + "//src/gpu/ganesh:GrTexture_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh/text:GrStrikeCache_hdr", + "//src/gpu/ganesh/text:GrTextBlobRedrawCoordinator_hdr", + "//src/gpu/ganesh/v1:SurfaceDrawContext_v1_hdr", "//src/image:SkImage_Gpu_hdr", ], ) @@ -201,8 +210,9 @@ generated_cc_atom( ":ManagedBackendTexture_hdr", "//include/core:SkBitmap_hdr", "//include/core:SkImageInfo_hdr", - "//include/private:GrTypesPriv_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", "//src/core:SkMipmap_hdr", + "//src/gpu:RefCntedCallback_hdr", ], ) @@ -226,8 +236,8 @@ generated_cc_atom( "//include/utils:SkBase64_hdr", "//src/core:SkMD5_hdr", "//src/core:SkReadBuffer_hdr", - "//src/gpu:GrPersistentCacheUtils_hdr", - "//src/gpu/vk:GrVkGpu_hdr", + "//src/gpu/ganesh:GrPersistentCacheUtils_hdr", + "//src/gpu/ganesh/vk:GrVkGpu_hdr", ], ) @@ -236,10 +246,10 @@ generated_cc_atom( hdrs = ["ProxyUtils.h"], visibility = ["//:__subpackages__"], deps = [ - "//include/private:GrTypesPriv_hdr", - "//src/gpu:GrImageInfo_hdr", - "//src/gpu:GrPipeline_hdr", - "//src/gpu:GrTextureProxy_hdr", + "//include/private/gpu/ganesh:GrTypesPriv_hdr", + "//src/gpu/ganesh:GrImageInfo_hdr", + "//src/gpu/ganesh:GrPipeline_hdr", + "//src/gpu/ganesh:GrTextureProxy_hdr", ], ) @@ -252,17 +262,17 @@ generated_cc_atom( "//include/core:SkColor_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", - "//include/private:GrImageContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrDrawingManager_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrImageContextPriv_hdr", - "//src/gpu:GrPixmap_hdr", - "//src/gpu:GrProgramInfo_hdr", - "//src/gpu:GrProxyProvider_hdr", - "//src/gpu:SkGr_hdr", - "//src/gpu:SurfaceContext_hdr", - "//src/gpu/ops:GrSimpleMeshDrawOpHelper_hdr", + "//include/private/gpu/ganesh:GrImageContext_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrDrawingManager_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrImageContextPriv_hdr", + "//src/gpu/ganesh:GrPixmap_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh:GrProxyProvider_hdr", + "//src/gpu/ganesh:SkGr_hdr", + "//src/gpu/ganesh:SurfaceContext_hdr", + "//src/gpu/ganesh/ops:GrSimpleMeshDrawOpHelper_hdr", "//src/image:SkImage_Base_hdr", ], ) @@ -301,8 +311,8 @@ generated_cc_atom( deps = [ "//include/core:SkRefCnt_hdr", "//include/gpu:GrRecordingContext_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", - "//src/gpu/ops:GrOp_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh/ops:GrOp_hdr", ], ) @@ -314,16 +324,16 @@ generated_cc_atom( ":TestOps_hdr", "//src/core:SkPointPriv_hdr", "//src/gpu:BufferWriter_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrGeometryProcessor_hdr", - "//src/gpu:GrMemoryPool_hdr", - "//src/gpu:GrOpFlushState_hdr", - "//src/gpu:GrProgramInfo_hdr", "//src/gpu:KeyBuilder_hdr", - "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr", - "//src/gpu/glsl:GrGLSLVarying_hdr", - "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr", - "//src/gpu/ops:GrSimpleMeshDrawOpHelper_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrGeometryProcessor_hdr", + "//src/gpu/ganesh:GrMemoryPool_hdr", + "//src/gpu/ganesh:GrOpFlushState_hdr", + "//src/gpu/ganesh:GrProgramInfo_hdr", + "//src/gpu/ganesh/glsl:GrGLSLFragmentShaderBuilder_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVarying_hdr", + "//src/gpu/ganesh/glsl:GrGLSLVertexGeoBuilder_hdr", + "//src/gpu/ganesh/ops:GrSimpleMeshDrawOpHelper_hdr", ], ) @@ -332,6 +342,7 @@ generated_cc_atom( hdrs = ["YUVUtils.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkColorSpace_hdr", "//include/core:SkImage_hdr", "//include/core:SkYUVAPixmaps_hdr", "//include/gpu:GrBackendSurface_hdr", @@ -356,7 +367,7 @@ generated_cc_atom( "//src/codec:SkCodecImageGenerator_hdr", "//src/core:SkYUVAInfoLocation_hdr", "//src/core:SkYUVMath_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrRecordingContextPriv_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrRecordingContextPriv_hdr", ], ) diff --git a/third_party/skia/tools/gpu/BackendSurfaceFactory.cpp b/third_party/skia/tools/gpu/BackendSurfaceFactory.cpp index 6616be137876..59fcfdf70464 100644 --- a/third_party/skia/tools/gpu/BackendSurfaceFactory.cpp +++ b/third_party/skia/tools/gpu/BackendSurfaceFactory.cpp @@ -9,8 +9,8 @@ #include "include/core/SkSurface.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" #include "tools/gpu/ManagedBackendTexture.h" namespace sk_gpu_test { diff --git a/third_party/skia/tools/gpu/BackendSurfaceFactory.h b/third_party/skia/tools/gpu/BackendSurfaceFactory.h index ca35a47ed0d8..26b4d2823a8f 100644 --- a/third_party/skia/tools/gpu/BackendSurfaceFactory.h +++ b/third_party/skia/tools/gpu/BackendSurfaceFactory.h @@ -8,7 +8,8 @@ #ifndef TestSurface_DEFINED #define TestSurface_DEFINED -#include "include/core/SkImageInfo.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkRefCnt.h" #include "include/core/SkSize.h" #include "include/gpu/GrTypes.h" #include "include/private/SkColorData.h" @@ -16,6 +17,8 @@ class GrDirectContext; class SkSurface; class SkSurfaceProps; +enum SkColorType : int; +struct SkImageInfo; namespace sk_gpu_test { diff --git a/third_party/skia/tools/gpu/BackendTextureImageFactory.cpp b/third_party/skia/tools/gpu/BackendTextureImageFactory.cpp index 4132dec3c8cd..764433b352c9 100644 --- a/third_party/skia/tools/gpu/BackendTextureImageFactory.cpp +++ b/third_party/skia/tools/gpu/BackendTextureImageFactory.cpp @@ -7,6 +7,7 @@ #include "tools/gpu/BackendTextureImageFactory.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkPixmap.h" #include "include/gpu/GrBackendSurface.h" diff --git a/third_party/skia/tools/gpu/BackendTextureImageFactory.h b/third_party/skia/tools/gpu/BackendTextureImageFactory.h index 289f268818a6..bfa14861e635 100644 --- a/third_party/skia/tools/gpu/BackendTextureImageFactory.h +++ b/third_party/skia/tools/gpu/BackendTextureImageFactory.h @@ -6,6 +6,7 @@ */ #include "include/core/SkColor.h" +#include "include/core/SkImageInfo.h" #include "include/core/SkRefCnt.h" #include "include/gpu/GrTypes.h" diff --git a/third_party/skia/tools/gpu/FlushFinishTracker.cpp b/third_party/skia/tools/gpu/FlushFinishTracker.cpp index b536701114f9..352c346daf18 100644 --- a/third_party/skia/tools/gpu/FlushFinishTracker.cpp +++ b/third_party/skia/tools/gpu/FlushFinishTracker.cpp @@ -10,6 +10,10 @@ #include "include/gpu/GrDirectContext.h" #include "src/core/SkTraceEvent.h" +#ifdef SK_GRAPHITE_ENABLED +#include "include/gpu/graphite/Context.h" +#endif + #include namespace sk_gpu_test { @@ -19,7 +23,16 @@ void FlushFinishTracker::waitTillFinished() { auto begin = std::chrono::steady_clock::now(); auto end = begin; while (!fIsFinished && (end - begin) < std::chrono::seconds(2)) { - fContext->checkAsyncWorkCompletion(); + if (fContext) { + fContext->checkAsyncWorkCompletion(); + } else { +#ifdef SK_GRAPHITE_ENABLED + SkASSERT(fGraphiteContext); + fGraphiteContext->checkAsyncWorkCompletion(); +#else + SkDEBUGFAIL("No valid context"); +#endif + } end = std::chrono::steady_clock::now(); } if (!fIsFinished) { diff --git a/third_party/skia/tools/gpu/FlushFinishTracker.h b/third_party/skia/tools/gpu/FlushFinishTracker.h index 22478cc6b691..1536d1c1e0e2 100644 --- a/third_party/skia/tools/gpu/FlushFinishTracker.h +++ b/third_party/skia/tools/gpu/FlushFinishTracker.h @@ -9,9 +9,14 @@ #define FlushFinishTracker_DEFINED #include "include/core/SkRefCnt.h" +#include "include/gpu/GpuTypes.h" class GrDirectContext; +#ifdef SK_GRAPHITE_ENABLED +namespace skgpu::graphite { class Context; } +#endif + namespace sk_gpu_test { class FlushFinishTracker : public SkRefCnt { @@ -22,14 +27,24 @@ class FlushFinishTracker : public SkRefCnt { tracker->unref(); } + static void FlushFinishedResult(void* finishedContext, skgpu::CallbackResult) { + FlushFinished(finishedContext); + } + FlushFinishTracker(GrDirectContext* context) : fContext(context) {} +#ifdef SK_GRAPHITE_ENABLED + FlushFinishTracker(skgpu::graphite::Context* context) : fGraphiteContext(context) {} +#endif void setFinished() { fIsFinished = true; } void waitTillFinished(); private: - GrDirectContext* fContext; + GrDirectContext* fContext = nullptr; +#ifdef SK_GRAPHITE_ENABLED + skgpu::graphite::Context* fGraphiteContext = nullptr; +#endif // Currently we don't have the this bool be atomic cause all current uses of this class happen // on a single thread. In other words we call flush, checkAsyncWorkCompletion, and diff --git a/third_party/skia/tools/gpu/GrContextFactory.cpp b/third_party/skia/tools/gpu/GrContextFactory.cpp index 8702496e17dd..c301800f9af0 100644 --- a/third_party/skia/tools/gpu/GrContextFactory.cpp +++ b/third_party/skia/tools/gpu/GrContextFactory.cpp @@ -7,7 +7,7 @@ */ #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tools/gpu/GrContextFactory.h" #ifdef SK_GL #include "tools/gpu/gl/GLTestContext.h" @@ -29,7 +29,7 @@ #ifdef SK_DAWN #include "tools/gpu/dawn/DawnTestContext.h" #endif -#include "src/gpu/GrCaps.h" +#include "src/gpu/ganesh/GrCaps.h" #include "tools/gpu/mock/MockTestContext.h" #if defined(SK_BUILD_FOR_WIN) && defined(SK_ENABLE_DISCRETE_GPU) diff --git a/third_party/skia/tools/gpu/GrTest.cpp b/third_party/skia/tools/gpu/GrTest.cpp index dfc8f83abb54..ea8aeac958a7 100644 --- a/third_party/skia/tools/gpu/GrTest.cpp +++ b/third_party/skia/tools/gpu/GrTest.cpp @@ -11,22 +11,22 @@ #include "include/gpu/GrRecordingContext.h" #include "include/private/SkTo.h" #include "src/core/SkMathPriv.h" -#include "src/gpu/GrClip.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawOpAtlas.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrGpuResourceCacheAccess.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/GrRenderTargetProxy.h" -#include "src/gpu/GrResourceCache.h" -#include "src/gpu/GrSemaphore.h" -#include "src/gpu/GrTexture.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/text/GrStrikeCache.h" -#include "src/gpu/text/GrTextBlobRedrawCoordinator.h" -#include "src/gpu/v1/SurfaceDrawContext_v1.h" +#include "src/gpu/ganesh/GrClip.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawOpAtlas.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrGpuResourceCacheAccess.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrRenderTargetProxy.h" +#include "src/gpu/ganesh/GrResourceCache.h" +#include "src/gpu/ganesh/GrSemaphore.h" +#include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/text/GrStrikeCache.h" +#include "src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h" +#include "src/gpu/ganesh/v1/SurfaceDrawContext_v1.h" #include "src/image/SkImage_Gpu.h" #include diff --git a/third_party/skia/tools/gpu/ManagedBackendTexture.cpp b/third_party/skia/tools/gpu/ManagedBackendTexture.cpp index 061ad89b3163..c2b86fc632f9 100644 --- a/third_party/skia/tools/gpu/ManagedBackendTexture.cpp +++ b/third_party/skia/tools/gpu/ManagedBackendTexture.cpp @@ -9,8 +9,9 @@ #include "include/core/SkBitmap.h" #include "include/core/SkImageInfo.h" -#include "include/private/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkMipmap.h" +#include "src/gpu/RefCntedCallback.h" namespace { @@ -53,8 +54,8 @@ void* ManagedBackendTexture::MakeYUVAReleaseContext( return context; } -sk_sp ManagedBackendTexture::refCountedCallback() const { - return GrRefCntedCallback::Make(ReleaseProc, this->releaseContext()); +sk_sp ManagedBackendTexture::refCountedCallback() const { + return skgpu::RefCntedCallback::Make(ReleaseProc, this->releaseContext()); } void ManagedBackendTexture::wasAdopted() { fTexture = {}; } diff --git a/third_party/skia/tools/gpu/ManagedBackendTexture.h b/third_party/skia/tools/gpu/ManagedBackendTexture.h index 61786b99175f..a64a7528c9a3 100644 --- a/third_party/skia/tools/gpu/ManagedBackendTexture.h +++ b/third_party/skia/tools/gpu/ManagedBackendTexture.h @@ -12,7 +12,9 @@ #include "include/core/SkYUVAInfo.h" #include "include/gpu/GrDirectContext.h" -class GrRefCntedCallback; +namespace skgpu { + class RefCntedCallback; +} struct SkImageInfo; namespace sk_gpu_test { @@ -69,7 +71,7 @@ class ManagedBackendTexture : public SkNVRefCnt { void* releaseContext(GrGpuFinishedProc wrappedProc = nullptr, GrGpuFinishedContext wrappedContext = nullptr) const; - sk_sp refCountedCallback() const; + sk_sp refCountedCallback() const; /** * Call if the underlying GrBackendTexture was adopted by a GrContext. This clears this out the diff --git a/third_party/skia/tools/gpu/MemoryCache.cpp b/third_party/skia/tools/gpu/MemoryCache.cpp index e5f83216e3d6..5285b5f5072f 100644 --- a/third_party/skia/tools/gpu/MemoryCache.cpp +++ b/third_party/skia/tools/gpu/MemoryCache.cpp @@ -8,11 +8,11 @@ #include "include/utils/SkBase64.h" #include "src/core/SkMD5.h" #include "src/core/SkReadBuffer.h" -#include "src/gpu/GrPersistentCacheUtils.h" +#include "src/gpu/ganesh/GrPersistentCacheUtils.h" #include "tools/gpu/MemoryCache.h" #if defined(SK_VULKAN) -#include "src/gpu/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" #endif // Change this to 1 to log cache hits/misses/stores using SkDebugf. diff --git a/third_party/skia/tools/gpu/ProxyUtils.cpp b/third_party/skia/tools/gpu/ProxyUtils.cpp index 85450a51a84b..6032bd3214c1 100644 --- a/third_party/skia/tools/gpu/ProxyUtils.cpp +++ b/third_party/skia/tools/gpu/ProxyUtils.cpp @@ -10,26 +10,26 @@ #include "include/core/SkColor.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" -#include "include/private/GrImageContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrDrawingManager.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrImageContextPriv.h" -#include "src/gpu/GrPixmap.h" -#include "src/gpu/GrProgramInfo.h" -#include "src/gpu/GrProxyProvider.h" -#include "src/gpu/SkGr.h" -#include "src/gpu/SurfaceContext.h" +#include "include/private/gpu/ganesh/GrImageContext.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrDrawingManager.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrImageContextPriv.h" +#include "src/gpu/ganesh/GrPixmap.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/GrProxyProvider.h" +#include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceContext.h" #include "src/image/SkImage_Base.h" #if SK_GPU_V1 -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" #endif namespace sk_gpu_test { GrTextureProxy* GetTextureImageProxy(SkImage* image, GrRecordingContext* rContext) { - if (!image->isTextureBacked() || as_IB(image)->isYUVA()) { + if (!as_IB(image)->isGaneshBacked() || as_IB(image)->isYUVA()) { return nullptr; } if (!rContext) { diff --git a/third_party/skia/tools/gpu/ProxyUtils.h b/third_party/skia/tools/gpu/ProxyUtils.h index 41cdaec84096..a3ae4fa911eb 100644 --- a/third_party/skia/tools/gpu/ProxyUtils.h +++ b/third_party/skia/tools/gpu/ProxyUtils.h @@ -8,10 +8,10 @@ #ifndef ProxyUtils_DEFINED #define ProxyUtils_DEFINED -#include "include/private/GrTypesPriv.h" -#include "src/gpu/GrImageInfo.h" -#include "src/gpu/GrPipeline.h" -#include "src/gpu/GrTextureProxy.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrImageInfo.h" +#include "src/gpu/ganesh/GrPipeline.h" +#include "src/gpu/ganesh/GrTextureProxy.h" class GrDirectContext; class GrProgramInfo; diff --git a/third_party/skia/tools/gpu/TestOps.cpp b/third_party/skia/tools/gpu/TestOps.cpp index 398b3a735bfb..6c2183e84ad4 100644 --- a/third_party/skia/tools/gpu/TestOps.cpp +++ b/third_party/skia/tools/gpu/TestOps.cpp @@ -9,16 +9,16 @@ #include "src/core/SkPointPriv.h" #include "src/gpu/BufferWriter.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrGeometryProcessor.h" -#include "src/gpu/GrMemoryPool.h" -#include "src/gpu/GrOpFlushState.h" -#include "src/gpu/GrProgramInfo.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/glsl/GrGLSLVarying.h" -#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h" -#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrGeometryProcessor.h" +#include "src/gpu/ganesh/GrMemoryPool.h" +#include "src/gpu/ganesh/GrOpFlushState.h" +#include "src/gpu/ganesh/GrProgramInfo.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLVarying.h" +#include "src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder.h" +#include "src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h" namespace { diff --git a/third_party/skia/tools/gpu/TestOps.h b/third_party/skia/tools/gpu/TestOps.h index 0f8376189df5..5b7b52089a2b 100644 --- a/third_party/skia/tools/gpu/TestOps.h +++ b/third_party/skia/tools/gpu/TestOps.h @@ -10,8 +10,8 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/GrRecordingContext.h" -#include "src/gpu/GrRecordingContextPriv.h" -#include "src/gpu/ops/GrOp.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/ops/GrOp.h" class GrPaint; diff --git a/third_party/skia/tools/gpu/YUVUtils.cpp b/third_party/skia/tools/gpu/YUVUtils.cpp index b74a9b00b392..d049575a3d45 100644 --- a/third_party/skia/tools/gpu/YUVUtils.cpp +++ b/third_party/skia/tools/gpu/YUVUtils.cpp @@ -17,8 +17,8 @@ #include "src/codec/SkCodecImageGenerator.h" #include "src/core/SkYUVAInfoLocation.h" #include "src/core/SkYUVMath.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" #include "tools/gpu/ManagedBackendTexture.h" namespace { diff --git a/third_party/skia/tools/gpu/YUVUtils.h b/third_party/skia/tools/gpu/YUVUtils.h index 7762a626af53..7911ad12cec6 100644 --- a/third_party/skia/tools/gpu/YUVUtils.h +++ b/third_party/skia/tools/gpu/YUVUtils.h @@ -8,6 +8,7 @@ #ifndef YUVUtils_DEFINED #define YUVUtils_DEFINED +#include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkYUVAPixmaps.h" #include "include/gpu/GrBackendSurface.h" diff --git a/third_party/skia/tools/gpu/d3d/BUILD.bazel b/third_party/skia/tools/gpu/d3d/BUILD.bazel index 043d7f2df64b..c184e5748471 100644 --- a/third_party/skia/tools/gpu/d3d/BUILD.bazel +++ b/third_party/skia/tools/gpu/d3d/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "D3DTestContext_hdr", hdrs = ["D3DTestContext.h"], diff --git a/third_party/skia/tools/gpu/dawn/BUILD.bazel b/third_party/skia/tools/gpu/dawn/BUILD.bazel index a2e299aac5c3..b67103b9d2e3 100644 --- a/third_party/skia/tools/gpu/dawn/BUILD.bazel +++ b/third_party/skia/tools/gpu/dawn/BUILD.bazel @@ -1,10 +1,15 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "DawnTestContext_hdr", hdrs = ["DawnTestContext.h"], visibility = ["//:__subpackages__"], - deps = ["//tools/gpu:TestContext_hdr"], + deps = [ + "//third_party:dawn", + "//tools/gpu:TestContext_hdr", + ], ) generated_cc_atom( @@ -14,10 +19,8 @@ generated_cc_atom( deps = [ ":DawnTestContext_hdr", "//GL:glx_hdr", - "//dawn:dawn_proc_hdr", - "//dawn:webgpu_hdr", - "//dawn_native:OpenGLBackend_hdr", "//include/gpu:GrDirectContext_hdr", + "//third_party:dawn", "//tools:AutoreleasePool_hdr", ], ) diff --git a/third_party/skia/tools/gpu/dawn/DawnTestContext.cpp b/third_party/skia/tools/gpu/dawn/DawnTestContext.cpp index 1c990c89ff9f..5727ab351f76 100644 --- a/third_party/skia/tools/gpu/dawn/DawnTestContext.cpp +++ b/third_party/skia/tools/gpu/dawn/DawnTestContext.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "dawn/webgpu_cpp.h" +#include "webgpu/webgpu_cpp.h" #include "tools/gpu/dawn/DawnTestContext.h" #ifdef SK_BUILD_FOR_UNIX @@ -19,12 +19,12 @@ #define USE_OPENGL_BACKEND 0 #ifdef SK_DAWN -#include "dawn/webgpu.h" +#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" +#include "dawn/native/OpenGLBackend.h" #endif #if defined(SK_BUILD_FOR_MAC) && USE_OPENGL_BACKEND @@ -83,13 +83,13 @@ static void PrintDeviceError(WGPUErrorType, const char* message, void*) { class DawnTestContextImpl : public sk_gpu_test::DawnTestContext { public: - static wgpu::Device createDevice(const dawn_native::Instance& instance, + static wgpu::Device createDevice(const dawn::native::Instance& instance, wgpu::BackendType type) { - DawnProcTable backendProcs = dawn_native::GetProcs(); + DawnProcTable backendProcs = dawn::native::GetProcs(); dawnProcSetProcs(&backendProcs); - std::vector adapters = instance.GetAdapters(); - for (dawn_native::Adapter adapter : adapters) { + std::vector adapters = instance.GetAdapters(); + for (dawn::native::Adapter adapter : adapters) { wgpu::AdapterProperties properties; adapter.GetProperties(&properties); if (properties.backendType == type) { @@ -100,14 +100,14 @@ class DawnTestContextImpl : public sk_gpu_test::DawnTestContext { } static DawnTestContext* Create(DawnTestContext* sharedContext) { - std::unique_ptr instance = std::make_unique(); + std::unique_ptr instance = std::make_unique(); wgpu::Device device; if (sharedContext) { device = sharedContext->getDevice(); } else { wgpu::BackendType type; #if USE_OPENGL_BACKEND - dawn_native::opengl::AdapterDiscoveryOptions adapterOptions; + dawn::native::opengl::AdapterDiscoveryOptions adapterOptions; adapterOptions.getProc = reinterpret_cast( #if defined(SK_BUILD_FOR_UNIX) glXGetProcAddress @@ -154,7 +154,7 @@ class DawnTestContextImpl : public sk_gpu_test::DawnTestContext { } private: - DawnTestContextImpl(std::unique_ptr instance, + DawnTestContextImpl(std::unique_ptr instance, const wgpu::Device& device) : DawnTestContext(std::move(instance), device) { fFenceSupport = true; diff --git a/third_party/skia/tools/gpu/dawn/DawnTestContext.h b/third_party/skia/tools/gpu/dawn/DawnTestContext.h index b967b054ff4a..e90414680db3 100644 --- a/third_party/skia/tools/gpu/dawn/DawnTestContext.h +++ b/third_party/skia/tools/gpu/dawn/DawnTestContext.h @@ -9,7 +9,7 @@ #define DawnTestContext_DEFINED #include "tools/gpu/TestContext.h" -#include +#include "dawn/native/DawnNative.h" #ifdef SK_DAWN @@ -23,10 +23,10 @@ class DawnTestContext : public TestContext { } protected: - DawnTestContext(std::unique_ptr instance, const wgpu::Device& device) + DawnTestContext(std::unique_ptr instance, const wgpu::Device& device) : fInstance(std::move(instance)), fDevice(device) {} - std::unique_ptr fInstance; + std::unique_ptr fInstance; wgpu::Device fDevice; private: diff --git a/third_party/skia/tools/gpu/gl/BUILD.bazel b/third_party/skia/tools/gpu/gl/BUILD.bazel index 4a85813352db..1e1ba8b20239 100644 --- a/third_party/skia/tools/gpu/gl/BUILD.bazel +++ b/third_party/skia/tools/gpu/gl/BUILD.bazel @@ -1,12 +1,14 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GLTestContext_hdr", hdrs = ["GLTestContext.h"], visibility = ["//:__subpackages__"], deps = [ "//include/gpu/gl:GrGLInterface_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", "//tools/gpu:TestContext_hdr", ], ) @@ -18,7 +20,7 @@ generated_cc_atom( deps = [ ":GLTestContext_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", "//tools/gpu:GpuTimer_hdr", ], ) diff --git a/third_party/skia/tools/gpu/gl/GLTestContext.cpp b/third_party/skia/tools/gpu/gl/GLTestContext.cpp index ffada97b266c..c9844f9d0168 100644 --- a/third_party/skia/tools/gpu/gl/GLTestContext.cpp +++ b/third_party/skia/tools/gpu/gl/GLTestContext.cpp @@ -8,7 +8,7 @@ #include "tools/gpu/gl/GLTestContext.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include "tools/gpu/GpuTimer.h" namespace { diff --git a/third_party/skia/tools/gpu/gl/GLTestContext.h b/third_party/skia/tools/gpu/gl/GLTestContext.h index 1fef420967c4..32344bb4ef8a 100644 --- a/third_party/skia/tools/gpu/gl/GLTestContext.h +++ b/third_party/skia/tools/gpu/gl/GLTestContext.h @@ -9,7 +9,7 @@ #define GLTestContext_DEFINED #include "include/gpu/gl/GrGLInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include "tools/gpu/TestContext.h" namespace sk_gpu_test { diff --git a/third_party/skia/tools/gpu/gl/angle/BUILD.bazel b/third_party/skia/tools/gpu/gl/angle/BUILD.bazel index 4af49151f2b9..1d9e4f39f86b 100644 --- a/third_party/skia/tools/gpu/gl/angle/BUILD.bazel +++ b/third_party/skia/tools/gpu/gl/angle/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GLTestContext_angle_hdr", hdrs = ["GLTestContext_angle.h"], @@ -17,8 +19,8 @@ generated_cc_atom( "//include/gpu/gl:GrGLAssembleInterface_hdr", "//include/gpu/gl:GrGLInterface_hdr", "//src/core:SkTraceEvent_hdr", - "//src/gpu/gl:GrGLDefines_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", "//src/ports:SkOSLibrary_hdr", "//third_party/externals/angle2/include/platform:Platform_hdr", ], diff --git a/third_party/skia/tools/gpu/gl/angle/GLTestContext_angle.cpp b/third_party/skia/tools/gpu/gl/angle/GLTestContext_angle.cpp index bbc97f2bdcbd..27c6acf80fff 100644 --- a/third_party/skia/tools/gpu/gl/angle/GLTestContext_angle.cpp +++ b/third_party/skia/tools/gpu/gl/angle/GLTestContext_angle.cpp @@ -11,8 +11,8 @@ #include "include/gpu/gl/GrGLAssembleInterface.h" #include "include/gpu/gl/GrGLInterface.h" #include "src/core/SkTraceEvent.h" -#include "src/gpu/gl/GrGLDefines.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include "src/ports/SkOSLibrary.h" #include "third_party/externals/angle2/include/platform/Platform.h" diff --git a/third_party/skia/tools/gpu/gl/command_buffer/BUILD.bazel b/third_party/skia/tools/gpu/gl/command_buffer/BUILD.bazel index 8b6656b949e3..9940b009ef65 100644 --- a/third_party/skia/tools/gpu/gl/command_buffer/BUILD.bazel +++ b/third_party/skia/tools/gpu/gl/command_buffer/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GLTestContext_command_buffer_hdr", hdrs = ["GLTestContext_command_buffer.h"], diff --git a/third_party/skia/tools/gpu/gl/egl/BUILD.bazel b/third_party/skia/tools/gpu/gl/egl/BUILD.bazel index 68d4c3205c4b..37e32d7f79bb 100644 --- a/third_party/skia/tools/gpu/gl/egl/BUILD.bazel +++ b/third_party/skia/tools/gpu/gl/egl/BUILD.bazel @@ -1,12 +1,14 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "CreatePlatformGLTestContext_egl_src", srcs = ["CreatePlatformGLTestContext_egl.cpp"], visibility = ["//:__subpackages__"], deps = [ - "//src/gpu/gl:GrGLDefines_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", "//tools/gpu/gl:GLTestContext_hdr", ], ) diff --git a/third_party/skia/tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp b/third_party/skia/tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp index c7ca11be11cb..8cd7c39deb9e 100644 --- a/third_party/skia/tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp +++ b/third_party/skia/tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp @@ -5,8 +5,8 @@ * found in the LICENSE file. */ -#include "src/gpu/gl/GrGLDefines.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include "tools/gpu/gl/GLTestContext.h" #define GL_GLEXT_PROTOTYPES diff --git a/third_party/skia/tools/gpu/gl/glx/BUILD.bazel b/third_party/skia/tools/gpu/gl/glx/BUILD.bazel index f07e4d7fee7d..08e4fe898e84 100644 --- a/third_party/skia/tools/gpu/gl/glx/BUILD.bazel +++ b/third_party/skia/tools/gpu/gl/glx/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "CreatePlatformGLTestContext_glx_src", srcs = ["CreatePlatformGLTestContext_glx.cpp"], diff --git a/third_party/skia/tools/gpu/gl/iOS/CreatePlatformGLTestContext_iOS.mm b/third_party/skia/tools/gpu/gl/iOS/CreatePlatformGLTestContext_iOS.mm index ad045bf718ca..590c1d5faef7 100644 --- a/third_party/skia/tools/gpu/gl/iOS/CreatePlatformGLTestContext_iOS.mm +++ b/third_party/skia/tools/gpu/gl/iOS/CreatePlatformGLTestContext_iOS.mm @@ -58,7 +58,7 @@ SkScopeExit restorer(context_restorer()); [EAGLContext setCurrentContext:fEAGLContext.get()]; - sk_sp gl(GrGLCreateNativeInterface()); + sk_sp gl = GrGLMakeNativeInterface(); if (nullptr == gl.get()) { SkDebugf("Failed to create gl interface"); this->destroyGLContext(); diff --git a/third_party/skia/tools/gpu/gl/interface/BUILD.bazel b/third_party/skia/tools/gpu/gl/interface/BUILD.bazel index de3ccaba328d..ac2c08682605 100644 --- a/third_party/skia/tools/gpu/gl/interface/BUILD.bazel +++ b/third_party/skia/tools/gpu/gl/interface/BUILD.bazel @@ -1,5 +1,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") +licenses(["notice"]) + go_library( name = "interface_lib", srcs = [ diff --git a/third_party/skia/tools/gpu/gl/interface/Makefile b/third_party/skia/tools/gpu/gl/interface/Makefile index b7f5ced9ba61..d504dfdff9f5 100644 --- a/third_party/skia/tools/gpu/gl/interface/Makefile +++ b/third_party/skia/tools/gpu/gl/interface/Makefile @@ -1,5 +1,5 @@ generate: - go run *.go --in_table "./interface.json5" --out_dir "../../../../src/gpu/gl" + go run *.go --in_table "./interface.json5" --out_dir "../../../../src/gpu/ganesh/gl" dryrun: - go run *.go --in_table "./interface.json5" --out_dir "../../../../src/gpu/gl" --dryrun \ No newline at end of file + go run *.go --in_table "./interface.json5" --out_dir "../../../../src/gpu/ganesh/gl" --dryrun diff --git a/third_party/skia/tools/gpu/gl/interface/gen_interface.go b/third_party/skia/tools/gpu/gl/interface/gen_interface.go index 6eb94a56055b..0a4dc57f3a48 100644 --- a/third_party/skia/tools/gpu/gl/interface/gen_interface.go +++ b/third_party/skia/tools/gpu/gl/interface/gen_interface.go @@ -21,7 +21,7 @@ import ( ) var ( - outDir = flag.String("out_dir", "../../src/gpu/gl", "Where to output the GrGlAssembleInterface_* and GrGlInterface.cpp files") + outDir = flag.String("out_dir", "../../src/gpu/ganesh/gl", "Where to output the GrGlAssembleInterface_* and GrGlInterface.cpp files") inTable = flag.String("in_table", "./interface.json5", "The JSON5 table to read in") dryRun = flag.Bool("dryrun", false, "Print the outputs, don't write to file") ) diff --git a/third_party/skia/tools/gpu/gl/interface/interface.json5 b/third_party/skia/tools/gpu/gl/interface/interface.json5 index 207af58bae75..9a56e7819550 100644 --- a/third_party/skia/tools/gpu/gl/interface/interface.json5 +++ b/third_party/skia/tools/gpu/gl/interface/interface.json5 @@ -32,7 +32,7 @@ "EnableVertexAttribArray", "Finish", "Flush", "FrontFace", "GenBuffers", "GenTextures", "GetBufferParameteriv", "GetError", - "GetIntegerv", "GetProgramInfoLog", + "GetFloatv", "GetIntegerv", "GetProgramInfoLog", "GetProgramiv", "GetShaderInfoLog", "GetShaderiv", "GetString", "GetUniformLocation", "IsTexture", "LineWidth", "LinkProgram", "PixelStorei", @@ -610,7 +610,7 @@ "functions": [ "BindSampler", "DeleteSamplers", "GenSamplers", - "SamplerParameteri", "SamplerParameteriv", + "SamplerParameterf", "SamplerParameteri", "SamplerParameteriv", ], }, diff --git a/third_party/skia/tools/gpu/gl/interface/templates.go b/third_party/skia/tools/gpu/gl/interface/templates.go index a88b9a4e6a01..f2d674e50be3 100644 --- a/third_party/skia/tools/gpu/gl/interface/templates.go +++ b/third_party/skia/tools/gpu/gl/interface/templates.go @@ -17,7 +17,7 @@ const ASSEMBLE_INTERFACE_GL_ES = `/* #include "include/gpu/gl/GrGLAssembleHelpers.h" #include "include/gpu/gl/GrGLAssembleInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #define GET_PROC(F) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F) #define GET_PROC_SUFFIX(F, S) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F #S) @@ -94,7 +94,7 @@ const ASSEMBLE_INTERFACE_GL = `/* #include "include/gpu/gl/GrGLAssembleHelpers.h" #include "include/gpu/gl/GrGLAssembleInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #define GET_PROC(F) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F) #define GET_PROC_SUFFIX(F, S) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F #S) @@ -161,7 +161,7 @@ const ASSEMBLE_INTERFACE_WEBGL = `/* #include "include/gpu/gl/GrGLAssembleHelpers.h" #include "include/gpu/gl/GrGLAssembleInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #if SK_DISABLE_WEBGL_INTERFACE || !defined(SK_USE_WEBGL) sk_sp GrGLMakeAssembledWebGLInterface(void *ctx, GrGLGetProc get) { @@ -233,7 +233,7 @@ const VALIDATE_INTERFACE = `/* #include "include/gpu/gl/GrGLExtensions.h" #include "include/gpu/gl/GrGLInterface.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include diff --git a/third_party/skia/tools/gpu/gl/mac/BUILD.bazel b/third_party/skia/tools/gpu/gl/mac/BUILD.bazel index c7978257339b..bd7ee26172b2 100644 --- a/third_party/skia/tools/gpu/gl/mac/BUILD.bazel +++ b/third_party/skia/tools/gpu/gl/mac/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "CreatePlatformGLTestContext_mac_src", srcs = ["CreatePlatformGLTestContext_mac.cpp"], diff --git a/third_party/skia/tools/gpu/gl/none/BUILD.bazel b/third_party/skia/tools/gpu/gl/none/BUILD.bazel index 49098b374529..93fa2a03e720 100644 --- a/third_party/skia/tools/gpu/gl/none/BUILD.bazel +++ b/third_party/skia/tools/gpu/gl/none/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "CreatePlatformGLTestContext_none_src", srcs = ["CreatePlatformGLTestContext_none.cpp"], diff --git a/third_party/skia/tools/gpu/gl/win/BUILD.bazel b/third_party/skia/tools/gpu/gl/win/BUILD.bazel index 3254e1daaa4c..4d3ff25810df 100644 --- a/third_party/skia/tools/gpu/gl/win/BUILD.bazel +++ b/third_party/skia/tools/gpu/gl/win/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "CreatePlatformGLTestContext_win_src", srcs = ["CreatePlatformGLTestContext_win.cpp"], diff --git a/third_party/skia/tools/gpu/mock/BUILD.bazel b/third_party/skia/tools/gpu/mock/BUILD.bazel index d0ccc1bd7785..1a41d8654282 100644 --- a/third_party/skia/tools/gpu/mock/BUILD.bazel +++ b/third_party/skia/tools/gpu/mock/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "MockTestContext_hdr", hdrs = ["MockTestContext.h"], diff --git a/third_party/skia/tools/gpu/mtl/BUILD.bazel b/third_party/skia/tools/gpu/mtl/BUILD.bazel index df9925c240e4..6d87ec1a27bf 100644 --- a/third_party/skia/tools/gpu/mtl/BUILD.bazel +++ b/third_party/skia/tools/gpu/mtl/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "MtlTestContext_hdr", hdrs = ["MtlTestContext.h"], diff --git a/third_party/skia/tools/gpu/mtl/MtlTestContext.mm b/third_party/skia/tools/gpu/mtl/MtlTestContext.mm index 4e4b12c2f52c..1b4388fa8358 100644 --- a/third_party/skia/tools/gpu/mtl/MtlTestContext.mm +++ b/third_party/skia/tools/gpu/mtl/MtlTestContext.mm @@ -10,7 +10,7 @@ #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" -#include "src/gpu/mtl/GrMtlUtil.h" +#include "src/gpu/ganesh/mtl/GrMtlUtil.h" #ifdef SK_METAL diff --git a/third_party/skia/tools/gpu/vk/BUILD.bazel b/third_party/skia/tools/gpu/vk/BUILD.bazel index b82e254d29c2..157b051d8c1c 100644 --- a/third_party/skia/tools/gpu/vk/BUILD.bazel +++ b/third_party/skia/tools/gpu/vk/BUILD.bazel @@ -1,10 +1,15 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrVulkanDefines_hdr", hdrs = ["GrVulkanDefines.h"], visibility = ["//:__subpackages__"], - deps = ["//include/core:SkTypes_hdr"], + deps = [ + "//include/core:SkTypes_hdr", + "//include/third_party:skias_vulkan_headers", + ], ) generated_cc_atom( @@ -96,8 +101,8 @@ generated_cc_atom( deps = [ ":VkYcbcrSamplerHelper_hdr", "//include/gpu:GrDirectContext_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu/vk:GrVkGpu_hdr", - "//src/gpu/vk:GrVkUtil_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh/vk:GrVkGpu_hdr", + "//src/gpu/ganesh/vk:GrVkUtil_hdr", ], ) diff --git a/third_party/skia/tools/gpu/vk/VkTestUtils.cpp b/third_party/skia/tools/gpu/vk/VkTestUtils.cpp index 974039365761..e5cd87998b73 100644 --- a/third_party/skia/tools/gpu/vk/VkTestUtils.cpp +++ b/third_party/skia/tools/gpu/vk/VkTestUtils.cpp @@ -15,7 +15,8 @@ #elif defined SK_BUILD_FOR_MAC #define SK_GPU_TOOLS_VK_LIBRARY_NAME libvk_swiftshader.dylib #else - #define SK_GPU_TOOLS_VK_LIBRARY_NAME libvulkan.so + #define SK_GPU_TOOLS_VK_LIBRARY_NAME libvulkan.so + #define SK_GPU_TOOLS_VK_LIBRARY_NAME_BACKUP libvulkan.so.1 #endif #endif @@ -44,7 +45,16 @@ bool LoadVkLibraryAndGetProcAddrFuncs(PFN_vkGetInstanceProcAddr* instProc) { if (!vkLib) { vkLib = SkLoadDynamicLibrary(STRINGIFY(SK_GPU_TOOLS_VK_LIBRARY_NAME)); if (!vkLib) { + // vulkaninfo tries to load the library from two places, so we do as well + // https://github.com/KhronosGroup/Vulkan-Tools/blob/078d44e4664b7efa0b6c96ebced1995c4425d57a/vulkaninfo/vulkaninfo.h#L249 +#ifdef SK_GPU_TOOLS_VK_LIBRARY_NAME_BACKUP + vkLib = SkLoadDynamicLibrary(STRINGIFY(SK_GPU_TOOLS_VK_LIBRARY_NAME_BACKUP)); + if (!vkLib) { + return false; + } +#else return false; +#endif } localInstProc = (PFN_vkGetInstanceProcAddr) SkGetProcedureAddress(vkLib, "vkGetInstanceProcAddr"); diff --git a/third_party/skia/tools/gpu/vk/VkYcbcrSamplerHelper.cpp b/third_party/skia/tools/gpu/vk/VkYcbcrSamplerHelper.cpp index 82e688c5c1bd..73b4bde32ebc 100644 --- a/third_party/skia/tools/gpu/vk/VkYcbcrSamplerHelper.cpp +++ b/third_party/skia/tools/gpu/vk/VkYcbcrSamplerHelper.cpp @@ -10,9 +10,9 @@ #ifdef SK_VULKAN #include "include/gpu/GrDirectContext.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/vk/GrVkGpu.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/vk/GrVkGpu.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" int VkYcbcrSamplerHelper::GetExpectedY(int x, int y, int width, int height) { return 16 + (x + y) * 219 / (width + height - 2); diff --git a/third_party/skia/tools/graphite/BUILD.bazel b/third_party/skia/tools/graphite/BUILD.bazel index be9fd3a1ece9..abf43aac8cd6 100644 --- a/third_party/skia/tools/graphite/BUILD.bazel +++ b/third_party/skia/tools/graphite/BUILD.bazel @@ -1,13 +1,15 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "ContextFactory_hdr", hdrs = ["ContextFactory.h"], visibility = ["//:__subpackages__"], deps = [ ":GraphiteTestContext_hdr", - "//experimental/graphite/include:GraphiteTypes_hdr", "//include/core:SkRefCnt_hdr", + "//include/gpu/graphite:GraphiteTypes_hdr", ], ) @@ -17,7 +19,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":ContextFactory_hdr", - "//experimental/graphite/include:Context_hdr", + "//include/gpu/graphite:Context_hdr", "//tools/graphite/mtl:GraphiteMtlTestContext_hdr", ], ) @@ -27,8 +29,8 @@ generated_cc_atom( hdrs = ["GraphiteTestContext.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include:GraphiteTypes_hdr", "//include/core:SkRefCnt_hdr", + "//include/gpu/graphite:GraphiteTypes_hdr", ], ) @@ -36,5 +38,12 @@ generated_cc_atom( name = "GraphiteTestContext_src", srcs = ["GraphiteTestContext.cpp"], visibility = ["//:__subpackages__"], - deps = [":GraphiteTestContext_hdr"], + deps = [ + ":GraphiteTestContext_hdr", + "//include/gpu/graphite:Context_hdr", + "//include/gpu/graphite:GraphiteTypes_hdr", + "//include/gpu/graphite:Recording_hdr", + "//src/core:SkTraceEvent_hdr", + "//tools/gpu:FlushFinishTracker_hdr", + ], ) diff --git a/third_party/skia/tools/graphite/ContextFactory.cpp b/third_party/skia/tools/graphite/ContextFactory.cpp index c88c7379fbf1..9955b22b8649 100644 --- a/third_party/skia/tools/graphite/ContextFactory.cpp +++ b/third_party/skia/tools/graphite/ContextFactory.cpp @@ -7,7 +7,7 @@ #include "tools/graphite/ContextFactory.h" -#include "experimental/graphite/include/Context.h" +#include "include/gpu/graphite/Context.h" #ifdef SK_METAL #include "tools/graphite/mtl/GraphiteMtlTestContext.h" @@ -23,14 +23,14 @@ ContextFactory::ContextInfo::ContextInfo(ContextInfo&& other) ContextFactory::ContextInfo::ContextInfo(ContextFactory::ContextType type, std::unique_ptr testContext, - std::unique_ptr context) + std::unique_ptr context) : fType(type) , fTestContext(std::move(testContext)) , fContext(std::move(context)) { } //////////////////////////////////////////////////////////////////////////////////////////////////// -std::tuple ContextFactory::getContextInfo( +std::tuple ContextFactory::getContextInfo( ContextType type) { for (ContextInfo& c : fContexts) { @@ -44,7 +44,7 @@ std::tuple ContextFactory::getContextInfo switch (type) { case ContextType::kMetal: { #ifdef SK_METAL - testCtx = mtl::TestContext::Make(); + testCtx = graphite::MtlTestContext::Make(); #endif } break; @@ -56,7 +56,7 @@ std::tuple ContextFactory::getContextInfo return {}; } - std::unique_ptr context = testCtx->makeContext(); + std::unique_ptr context = testCtx->makeContext(); if (!context) { return {}; } diff --git a/third_party/skia/tools/graphite/ContextFactory.h b/third_party/skia/tools/graphite/ContextFactory.h index 4d238313f5b1..bb2646409251 100644 --- a/third_party/skia/tools/graphite/ContextFactory.h +++ b/third_party/skia/tools/graphite/ContextFactory.h @@ -9,11 +9,11 @@ #define skiatest_graphite_ContextFactory_DEFINED #include -#include "experimental/graphite/include/GraphiteTypes.h" #include "include/core/SkRefCnt.h" +#include "include/gpu/graphite/GraphiteTypes.h" #include "tools/graphite/GraphiteTestContext.h" -namespace skgpu { +namespace skgpu::graphite { class Context; }; @@ -36,7 +36,7 @@ class ContextFactory { ContextFactory::ContextType type() const { return fType; } - skgpu::Context* context() const { return fContext.get(); } + skgpu::graphite::Context* context() const { return fContext.get(); } GraphiteTestContext* testContext() const { return fTestContext.get(); } private: @@ -44,11 +44,11 @@ class ContextFactory { ContextInfo(ContextFactory::ContextType type, std::unique_ptr testContext, - std::unique_ptr context); + std::unique_ptr context); - ContextType fType = ContextType::kMock; - std::unique_ptr fTestContext; - std::unique_ptr fContext; + ContextType fType = ContextType::kMock; + std::unique_ptr fTestContext; + std::unique_ptr fContext; }; ContextFactory() = default; @@ -57,7 +57,7 @@ class ContextFactory { ~ContextFactory() = default; - std::tuple getContextInfo(ContextType); + std::tuple getContextInfo(ContextType); private: std::vector fContexts; diff --git a/third_party/skia/tools/graphite/GraphiteTestContext.cpp b/third_party/skia/tools/graphite/GraphiteTestContext.cpp index 8b7648214075..44ad1fc1562f 100644 --- a/third_party/skia/tools/graphite/GraphiteTestContext.cpp +++ b/third_party/skia/tools/graphite/GraphiteTestContext.cpp @@ -7,10 +7,43 @@ #include "tools/graphite/GraphiteTestContext.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/GraphiteTypes.h" +#include "include/gpu/graphite/Recording.h" +#include "src/core/SkTraceEvent.h" +#include "tools/gpu/FlushFinishTracker.h" + namespace skiatest::graphite { GraphiteTestContext::GraphiteTestContext() {} GraphiteTestContext::~GraphiteTestContext() {} +void GraphiteTestContext::submitRecordingAndWaitOnSync(skgpu::graphite::Context* context, + skgpu::graphite::Recording* recording) { + TRACE_EVENT0("skia.gpu", TRACE_FUNC); + SkASSERT(context); + SkASSERT(recording); + + if (fFinishTrackers[fCurrentFlushIdx]) { + fFinishTrackers[fCurrentFlushIdx]->waitTillFinished(); + } + + fFinishTrackers[fCurrentFlushIdx].reset(new sk_gpu_test::FlushFinishTracker(context)); + + // We add an additional ref to the current flush tracker here. This ref is owned by the finish + // callback on the flush call. The finish callback will unref the tracker when called. + fFinishTrackers[fCurrentFlushIdx]->ref(); + + skgpu::graphite::InsertRecordingInfo info; + info.fRecording = recording; + info.fFinishedContext = fFinishTrackers[fCurrentFlushIdx].get(); + info.fFinishedProc = sk_gpu_test::FlushFinishTracker::FlushFinishedResult; + context->insertRecording(info); + + context->submit(skgpu::graphite::SyncToCpu::kNo); + + fCurrentFlushIdx = (fCurrentFlushIdx + 1) % SK_ARRAY_COUNT(fFinishTrackers); +} + } // namespace skiatest::graphite diff --git a/third_party/skia/tools/graphite/GraphiteTestContext.h b/third_party/skia/tools/graphite/GraphiteTestContext.h index 47e358e4b98e..0a63a45e7bd1 100644 --- a/third_party/skia/tools/graphite/GraphiteTestContext.h +++ b/third_party/skia/tools/graphite/GraphiteTestContext.h @@ -8,10 +8,15 @@ #ifndef skiatest_graphite_GraphiteTestContext_DEFINED #define skiatest_graphite_GraphiteTestContext_DEFINED -#include "experimental/graphite/include/GraphiteTypes.h" #include "include/core/SkRefCnt.h" +#include "include/gpu/graphite/GraphiteTypes.h" -namespace skgpu { class Context; } +namespace skgpu::graphite { +class Context; +class Recording; +} + +namespace sk_gpu_test { class FlushFinishTracker; } namespace skiatest::graphite { @@ -26,11 +31,29 @@ class GraphiteTestContext { virtual ~GraphiteTestContext(); - virtual skgpu::BackendApi backend() = 0; + virtual skgpu::graphite::BackendApi backend() = 0; + + virtual std::unique_ptr makeContext() = 0; + + bool getMaxGpuFrameLag(int *maxFrameLag) const { + *maxFrameLag = kMaxFrameLag; + return true; + } - virtual std::unique_ptr makeContext() = 0; + /** + * This will insert a Recording and submit work to the GPU. Additionally, we will add a finished + * callback to our insert recording call. We allow ourselves to have kMaxFrameLag number of + * unfinished flushes active on the GPU at a time. If we have 2 outstanding flushes then we will + * wait on the CPU until one has finished. + */ + void submitRecordingAndWaitOnSync(skgpu::graphite::Context*, skgpu::graphite::Recording*); protected: + static constexpr int kMaxFrameLag = 3; + + sk_sp fFinishTrackers[kMaxFrameLag - 1]; + int fCurrentFlushIdx = 0; + GraphiteTestContext(); }; diff --git a/third_party/skia/tools/graphite/mtl/BUILD.bazel b/third_party/skia/tools/graphite/mtl/BUILD.bazel index 280790a763ed..c3c123ed7869 100644 --- a/third_party/skia/tools/graphite/mtl/BUILD.bazel +++ b/third_party/skia/tools/graphite/mtl/BUILD.bazel @@ -1,11 +1,13 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GraphiteMtlTestContext_hdr", hdrs = ["GraphiteMtlTestContext.h"], visibility = ["//:__subpackages__"], deps = [ - "//experimental/graphite/include/mtl:MtlBackendContext_hdr", + "//include/gpu/graphite/mtl:MtlBackendContext_hdr", "//tools/graphite:GraphiteTestContext_hdr", ], ) diff --git a/third_party/skia/tools/graphite/mtl/GraphiteMtlTestContext.h b/third_party/skia/tools/graphite/mtl/GraphiteMtlTestContext.h index f12ded4ca146..783a62acda9c 100644 --- a/third_party/skia/tools/graphite/mtl/GraphiteMtlTestContext.h +++ b/third_party/skia/tools/graphite/mtl/GraphiteMtlTestContext.h @@ -12,31 +12,31 @@ #ifdef SK_METAL -#include "experimental/graphite/include/mtl/MtlBackendContext.h" +#include "include/gpu/graphite/mtl/MtlBackendContext.h" -namespace skiatest::graphite::mtl { +namespace skiatest::graphite { -class TestContext : public GraphiteTestContext { +class MtlTestContext : public GraphiteTestContext { public: - ~TestContext() override {} + ~MtlTestContext() override {} static std::unique_ptr Make(); - skgpu::BackendApi backend() override { return skgpu::BackendApi::kMetal; } + skgpu::graphite::BackendApi backend() override { return skgpu::graphite::BackendApi::kMetal; } - std::unique_ptr makeContext() override; + std::unique_ptr makeContext() override; - const skgpu::mtl::BackendContext& getBackendContext() const { + const skgpu::graphite::MtlBackendContext& getBackendContext() const { return fMtl; } protected: - TestContext(const skgpu::mtl::BackendContext& mtl) : fMtl(mtl) {} + MtlTestContext(const skgpu::graphite::MtlBackendContext& mtl) : fMtl(mtl) {} - skgpu::mtl::BackendContext fMtl; + skgpu::graphite::MtlBackendContext fMtl; }; -} // namespace skiatest::graphite::mtl +} // namespace skiatest::graphite #endif // SK_METAL diff --git a/third_party/skia/tools/graphite/mtl/MtlTestContext.mm b/third_party/skia/tools/graphite/mtl/MtlTestContext.mm index f46790f0c0e6..c3c5e53fa17c 100644 --- a/third_party/skia/tools/graphite/mtl/MtlTestContext.mm +++ b/third_party/skia/tools/graphite/mtl/MtlTestContext.mm @@ -7,16 +7,16 @@ #include "tools/graphite/mtl/GraphiteMtlTestContext.h" -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/mtl/MtlTypes.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/mtl/MtlTypes.h" #ifdef SK_METAL #import -namespace skiatest::graphite::mtl { +namespace skiatest::graphite { -std::unique_ptr TestContext::Make() { +std::unique_ptr MtlTestContext::Make() { sk_cfp> device; #ifdef SK_BUILD_FOR_MAC sk_cfp>*> availableDevices(MTLCopyAllDevices()); @@ -40,15 +40,15 @@ device.reset(MTLCreateSystemDefaultDevice()); #endif - skgpu::mtl::BackendContext backendContext = {}; + skgpu::graphite::MtlBackendContext backendContext = {}; backendContext.fDevice.retain(device.get()); backendContext.fQueue.reset([*device newCommandQueue]); - return std::unique_ptr(new TestContext(backendContext)); + return std::unique_ptr(new MtlTestContext(backendContext)); } -std::unique_ptr TestContext::makeContext() { - return skgpu::Context::MakeMetal(fMtl); +std::unique_ptr MtlTestContext::makeContext() { + return skgpu::graphite::Context::MakeMetal(fMtl); } } // namespace skiatest::graphite::mtl diff --git a/third_party/skia/tools/list_gpu_unit_tests.cpp b/third_party/skia/tools/list_gpu_unit_tests.cpp index b40fc809154c..380a88fc1575 100644 --- a/third_party/skia/tools/list_gpu_unit_tests.cpp +++ b/third_party/skia/tools/list_gpu_unit_tests.cpp @@ -11,6 +11,11 @@ #include #include "tests/Test.h" +#include "tests/TestHarness.h" + +TestHarness CurrentTestHarness() { + return TestHarness::kListGpuUnitTests; +} int main() { std::vector tests; diff --git a/third_party/skia/tools/mdbviz/BUILD.bazel b/third_party/skia/tools/mdbviz/BUILD.bazel index c91733b52699..1c75571c8497 100644 --- a/third_party/skia/tools/mdbviz/BUILD.bazel +++ b/third_party/skia/tools/mdbviz/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "Model_hdr", hdrs = ["Model.h"], diff --git a/third_party/skia/tools/remote_demo.cpp b/third_party/skia/tools/remote_demo.cpp index 8367659b421f..b070bb4ab61b 100644 --- a/third_party/skia/tools/remote_demo.cpp +++ b/third_party/skia/tools/remote_demo.cpp @@ -16,6 +16,7 @@ #include #include +#include "include/core/SkColorSpace.h" #include "include/core/SkGraphics.h" #include "include/core/SkSurface.h" #include "include/private/chromium/SkChromeRemoteGlyphCache.h" diff --git a/third_party/skia/tools/rewrite_includes.py b/third_party/skia/tools/rewrite_includes.py index b24450e4504b..df4474aa1ffd 100755 --- a/third_party/skia/tools/rewrite_includes.py +++ b/third_party/skia/tools/rewrite_includes.py @@ -22,28 +22,31 @@ args = parser.parse_args() roots = [ - 'bench', - 'dm', - 'docs', - 'example', - 'experimental', - 'fuzz', - 'gm', - 'include', - 'modules', - 'platform_tools/android/apps', - 'samplecode', - 'src', - 'tests', - 'third_party/etc1', - 'third_party/gif', - 'tools' - ] + 'bench', + 'dm', + 'docs', + 'example', + 'experimental', + 'fuzz', + 'gm', + 'include', + 'modules', + 'platform_tools/android/apps', + 'samplecode', + 'src', + 'tests', + 'third_party/etc1', + 'third_party/gif', + 'tools' +] -# Don't count our local Vulkan headers as Skia headers; -# we don't want #include rewritten to point to them. -# Nor do we care about things in node_modules, used by *Kits. -ignorelist = ['include/third_party/vulkan', 'node_modules'] +ignorelist = [ + # Don't count our local Vulkan headers as Skia headers; + # we don't want #include rewritten to point to them. + 'include/third_party/vulkan', + # Some node_modules/ files (used by CanvasKit et al) have c++ code which we should ignore. + 'node_modules', +] assert '/' in [os.sep, os.altsep] def fix_path(p): @@ -77,7 +80,8 @@ def to_rewrite(): for file_path in to_rewrite(): if ('/generated/' in file_path or 'tests/sksl/' in file_path or - 'third_party/skcms' in file_path): + 'third_party/skcms' in file_path or + file_path.startswith('bazel/rbe')): continue if (file_path.endswith('.h') or file_path.endswith('.c') or diff --git a/third_party/skia/tools/run-wasm-gm-tests/run-wasm-gm-tests.html b/third_party/skia/tools/run-wasm-gm-tests/run-wasm-gm-tests.html index b74d853ac483..0ef7fe438939 100644 --- a/third_party/skia/tools/run-wasm-gm-tests/run-wasm-gm-tests.html +++ b/third_party/skia/tools/run-wasm-gm-tests/run-wasm-gm-tests.html @@ -115,34 +115,54 @@ const canvas = document.getElementById('gm_canvas'); const ctx = GM.GetWebGLContext(canvas, 2); const grcontext = GM.MakeGrContext(ctx); - window._results = []; - - const names = GM.ListGMs(); - names.sort(); - // When debugging locally, it can be handy to skip to a certain GM by using - // names.indexOf here instead of 0. - let i = 0; - for (; i < names.length; i++) { - const name = names[i]; - if (gmSkipList.has(name)) { - continue; - } - log(`Starting GM ${name}`); - const pngAndMetadata = GM.RunGM(grcontext, name); - if (!pngAndMetadata || !pngAndMetadata.hash) { - console.debug('No output for ', name); - continue; // Was skipped - } - log(` drew ${pngAndMetadata.hash}`); - window._results.push({ - name: name, - digest: pngAndMetadata.hash, - }); - if (pngAndMetadata.png) { - await postPNG(pngAndMetadata.hash, pngAndMetadata.png); - } - window._testsProgress++; + if (!grcontext) { + window._error = 'Could not make GrContext for gms'; + return; } + window._results = []; + // We run these tests in batches so as not to lock up the main thread, which makes it easier + // to read the progress as well as making the page more responsive when debugging. + await new Promise((resolve, reject) => { + const names = GM.ListGMs(); + names.sort(); + // When debugging locally, it can be handy to skip to a certain GM by using + // names.indexOf here instead of 0. + let testIdx = 0; + const nextBatch = async () => { + for (let i = 0; i < 10 && testIdx < names.length; i++) { + testIdx++; + const name = names[testIdx]; + if (!name) { + testIdx = names.length; + break; + } + if (gmSkipList.has(name)) { + continue; + } + log(`Starting GM ${name}`); + const pngAndMetadata = GM.RunGM(grcontext, name); + if (!pngAndMetadata || !pngAndMetadata.hash) { + log(' No output (was skipped)'); + continue; // Was skipped + } + log(` drew ${pngAndMetadata.hash}`); + window._results.push({ + name: name, + digest: pngAndMetadata.hash, + }); + if (pngAndMetadata.png) { + await postPNG(pngAndMetadata.hash, pngAndMetadata.png); + } + window._testsProgress++; + } + if (testIdx >= names.length) { + resolve(); + return; + } + setTimeout(nextBatch); + }; + setTimeout(nextBatch); + }); grcontext.delete(); } @@ -160,9 +180,11 @@ successfulPOSTs += 1; } else { console.error('not ok response', resp); + log('not ok response ' + resp.toString()); } }).catch((e) => { console.error('Could not post PNG', e); + log('Could not post PNG ' + resp.toString()); }); } @@ -220,8 +242,8 @@ 'WritePixelsNonTextureMSAA_Gpu', // These SkSL tests fail on the Quadro P400s in the Golo - 'SkSLMatrixFoldingES2_GPU', 'SkSLCommaSideEffects_GPU', + 'SkSLPreserveSideEffects_GPU', // These tests use files on disk, which is not supported for WASM 'Stream', @@ -239,7 +261,7 @@ window._error = 'Could not make GrContext for tests'; return; } - // We run these tests in batchs so as not to lock up the main thread, which makes it easier + // We run these tests in batches so as not to lock up the main thread, which makes it easier // to read the progress as well as making the page more responsive when debugging. await new Promise((resolve, reject) => { const names = GM.ListTests(); diff --git a/third_party/skia/tools/sk_app/BUILD.bazel b/third_party/skia/tools/sk_app/BUILD.bazel index db0424d798b3..d06529fa4148 100644 --- a/third_party/skia/tools/sk_app/BUILD.bazel +++ b/third_party/skia/tools/sk_app/BUILD.bazel @@ -1,49 +1,113 @@ -load("//bazel:macros.bzl", "generated_cc_atom") +load("//bazel:macros.bzl", "generated_cc_atom", "selects") + +licenses(["notice"]) + +selects.config_setting_group( + name = "dawn_unix", + match_all = [ + "//bazel/common_config_settings:dawn_backend", + "@platforms//os:linux", + ], +) + +selects.config_setting_group( + name = "gl_unix", + match_all = [ + "//bazel/common_config_settings:gl_backend", + "@platforms//os:linux", + ], +) + +selects.config_setting_group( + name = "vulkan_unix", + match_all = [ + "//bazel/common_config_settings:vulkan_backend", + "@platforms//os:linux", + ], +) cc_library( name = "sk_app", + linkopts = select({ + "@platforms//os:linux": [ + "-lX11", + "-lxcb", # dep of X11 + "-lXau", # dep of xcb + "-lXdmcp", # dep of xcb + ], + "//conditions:default": [], + }) + selects.with_or({ + (":dawn_unix", ":vulkan_unix"): ["-lX11-xcb"], + "//conditions:default": [], + }), visibility = ["//:__subpackages__"], deps = [ ":Application_hdr", ":CommandSet_src", ":RasterWindowContext_hdr", ":WindowContext_src", - ":GLWindowContext_src", ":Window_src", - ] + [ - # TODO(kjlubick) use a select to set these based on target platform - "//tools/sk_app/unix:GLWindowContext_unix_src", - "//tools/sk_app/unix:RasterWindowContext_unix_src", - "//tools/sk_app/unix:Window_unix_src", - "//tools/sk_app/unix:keysym2ucs_src", - "//tools/sk_app/unix:main_unix_src", - ], + ] + select({ + "@platforms//os:linux": [ + "//tools/sk_app/unix:RasterWindowContext_unix_src", + "//tools/sk_app/unix:Window_unix_src", + "//tools/sk_app/unix:keysym2ucs_src", + "//tools/sk_app/unix:main_unix_src", + ], + # TODO(kjlubick) add Windows/Mac support + }) + select({ + "//bazel/common_config_settings:dawn_backend": [ + ":DawnWindowContext_src", + ], + "//bazel/common_config_settings:gl_backend": [ + ":GLWindowContext_src", + ], + "//bazel/common_config_settings:vulkan_backend": [ + ":VulkanWindowContext_src", + "//tools/gpu/vk:VkTestUtils_src", + ], + }) + select({ + ":dawn_unix": ["//tools/sk_app/unix:DawnVulkanWindowContext_unix_src"], + ":gl_unix": ["//tools/sk_app/unix:GLWindowContext_unix_src"], + ":vulkan_unix": ["//tools/sk_app/unix:VulkanWindowContext_unix_src"], + }), ) generated_cc_atom( name = "Application_hdr", hdrs = ["Application.h"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], ) generated_cc_atom( name = "CommandSet_hdr", hdrs = ["CommandSet.h"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ - ":Window_hdr", "//include/core:SkString_hdr", + "//include/core:SkTypes_hdr", + "//include/private:SkTArray_hdr", + "//tools/skui:InputState_hdr", + "//tools/skui:Key_hdr", + "//tools/skui:ModifierKey_hdr", ], ) generated_cc_atom( name = "CommandSet_src", srcs = ["CommandSet.cpp"], + enforce_iwyu = True, visibility = ["//:__subpackages__"], deps = [ ":CommandSet_hdr", + ":Window_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkFontTypes_hdr", "//include/core:SkFont_hdr", + "//include/core:SkPaint_hdr", + "//include/core:SkScalar_hdr", "//src/core:SkStringUtils_hdr", ], ) @@ -54,10 +118,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":WindowContext_hdr", - "//dawn:dawn_wsi_hdr", - "//dawn_native:DawnNative_hdr", "//include/core:SkRefCnt_hdr", "//include/core:SkSurface_hdr", + "//third_party:dawn", ], ) @@ -67,11 +130,11 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":DawnWindowContext_hdr", - "//dawn:dawn_proc_hdr", "//include/core:SkSurface_hdr", "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", "//src/core:SkAutoMalloc_hdr", + "//third_party:dawn", ], ) @@ -80,6 +143,7 @@ generated_cc_atom( hdrs = ["DisplayParams.h"], visibility = ["//:__subpackages__"], deps = [ + "//include/core:SkColorSpace_hdr", "//include/core:SkImageInfo_hdr", "//include/core:SkSurfaceProps_hdr", "//include/gpu:GrContextOptions_hdr", @@ -109,10 +173,10 @@ generated_cc_atom( "//include/gpu:GrBackendSurface_hdr", "//include/gpu:GrDirectContext_hdr", "//src/core:SkMathPriv_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu/gl:GrGLDefines_hdr", - "//src/gpu/gl:GrGLUtil_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", + "//src/gpu/ganesh/gl:GrGLUtil_hdr", "//src/image:SkImage_Base_hdr", ], ) @@ -137,7 +201,7 @@ generated_cc_atom( "//include/core:SkRefCnt_hdr", "//include/core:SkSurface_hdr", "//include/ports:SkCFObject_hdr", - "//include/private:GrMtlTypesPriv_hdr", + "//include/private/gpu/ganesh:GrMtlTypesPriv_hdr", ], ) @@ -157,7 +221,7 @@ generated_cc_atom( "//include/core:SkTypes_hdr", "//include/gpu/vk:GrVkBackendContext_hdr", "//include/gpu/vk:GrVkVulkan_hdr", - "//src/gpu/vk:GrVkInterface_hdr", + "//src/gpu/ganesh/vk:GrVkInterface_hdr", "//tools/gpu/vk:VkTestUtils_hdr", ], ) @@ -175,8 +239,8 @@ generated_cc_atom( "//include/gpu/vk:GrVkExtensions_hdr", "//include/gpu/vk:GrVkTypes_hdr", "//src/core:SkAutoMalloc_hdr", - "//src/gpu/vk:GrVkImage_hdr", - "//src/gpu/vk:GrVkUtil_hdr", + "//src/gpu/ganesh/vk:GrVkImage_hdr", + "//src/gpu/ganesh/vk:GrVkUtil_hdr", ], ) @@ -198,9 +262,9 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":WindowContext_hdr", - "//experimental/graphite/include:Context_hdr", - "//experimental/graphite/include:Recorder_hdr", "//include/gpu:GrDirectContext_hdr", + "//include/gpu/graphite:Context_hdr", + "//include/gpu/graphite:Recorder_hdr", ], ) diff --git a/third_party/skia/tools/sk_app/CommandSet.cpp b/third_party/skia/tools/sk_app/CommandSet.cpp index d814a6bc5f1c..526b6d276d01 100644 --- a/third_party/skia/tools/sk_app/CommandSet.cpp +++ b/third_party/skia/tools/sk_app/CommandSet.cpp @@ -9,7 +9,13 @@ #include "include/core/SkCanvas.h" #include "include/core/SkFont.h" +#include "include/core/SkFontTypes.h" +#include "include/core/SkPaint.h" +#include "include/core/SkScalar.h" #include "src/core/SkStringUtils.h" +#include "tools/sk_app/Window.h" + +#include namespace sk_app { diff --git a/third_party/skia/tools/sk_app/CommandSet.h b/third_party/skia/tools/sk_app/CommandSet.h index 07a7def618e2..6790028095c2 100644 --- a/third_party/skia/tools/sk_app/CommandSet.h +++ b/third_party/skia/tools/sk_app/CommandSet.h @@ -9,7 +9,11 @@ #define CommandSet_DEFINED #include "include/core/SkString.h" -#include "tools/sk_app/Window.h" +#include "include/core/SkTypes.h" +#include "include/private/SkTArray.h" +#include "tools/skui/InputState.h" +#include "tools/skui/Key.h" +#include "tools/skui/ModifierKey.h" #include #include @@ -17,6 +21,7 @@ class SkCanvas; namespace sk_app { +class Window; /** * Helper class used by applications that want to hook keypresses to trigger events. diff --git a/third_party/skia/tools/sk_app/DawnWindowContext.cpp b/third_party/skia/tools/sk_app/DawnWindowContext.cpp index f810923e9068..54215bdac038 100644 --- a/third_party/skia/tools/sk_app/DawnWindowContext.cpp +++ b/third_party/skia/tools/sk_app/DawnWindowContext.cpp @@ -27,7 +27,7 @@ DawnWindowContext::DawnWindowContext(const DisplayParams& params, wgpu::TextureFormat swapChainFormat) : WindowContext(params) , fSwapChainFormat(swapChainFormat) - , fInstance(std::make_unique()) { + , fInstance(std::make_unique()) { } void DawnWindowContext::initializeContext(int width, int height) { @@ -108,11 +108,11 @@ void DawnWindowContext::setDisplayParams(const DisplayParams& params) { wgpu::Device DawnWindowContext::createDevice(wgpu::BackendType type) { fInstance->DiscoverDefaultAdapters(); - DawnProcTable backendProcs = dawn_native::GetProcs(); + DawnProcTable backendProcs = dawn::native::GetProcs(); dawnProcSetProcs(&backendProcs); - std::vector adapters = fInstance->GetAdapters(); - for (dawn_native::Adapter adapter : adapters) { + std::vector adapters = fInstance->GetAdapters(); + for (dawn::native::Adapter adapter : adapters) { wgpu::AdapterProperties properties; adapter.GetProperties(&properties); if (properties.backendType == type) { diff --git a/third_party/skia/tools/sk_app/DawnWindowContext.h b/third_party/skia/tools/sk_app/DawnWindowContext.h index a548ca4607de..9827d4f609f2 100644 --- a/third_party/skia/tools/sk_app/DawnWindowContext.h +++ b/third_party/skia/tools/sk_app/DawnWindowContext.h @@ -11,8 +11,8 @@ #include "include/core/SkSurface.h" #include "tools/sk_app/WindowContext.h" -#include "dawn/webgpu_cpp.h" -#include "dawn_native/DawnNative.h" +#include "webgpu/webgpu_cpp.h" +#include "dawn/native/DawnNative.h" #include "dawn/dawn_wsi.h" namespace sk_app { @@ -46,7 +46,7 @@ class DawnWindowContext : public WindowContext { wgpu::TextureFormat fSwapChainFormat; wgpu::SwapChain fSwapChain; wgpu::Device fDevice; - std::unique_ptr fInstance; + std::unique_ptr fInstance; }; } // namespace sk_app diff --git a/third_party/skia/tools/sk_app/DisplayParams.h b/third_party/skia/tools/sk_app/DisplayParams.h index 644f729effd6..ad71c3e244a4 100644 --- a/third_party/skia/tools/sk_app/DisplayParams.h +++ b/third_party/skia/tools/sk_app/DisplayParams.h @@ -7,6 +7,7 @@ #ifndef DisplayParams_DEFINED #define DisplayParams_DEFINED +#include "include/core/SkColorSpace.h" #include "include/core/SkImageInfo.h" #include "include/core/SkSurfaceProps.h" #include "include/gpu/GrContextOptions.h" diff --git a/third_party/skia/tools/sk_app/GLWindowContext.cpp b/third_party/skia/tools/sk_app/GLWindowContext.cpp index ba658af3cdd8..6540090a5577 100644 --- a/third_party/skia/tools/sk_app/GLWindowContext.cpp +++ b/third_party/skia/tools/sk_app/GLWindowContext.cpp @@ -11,10 +11,10 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" #include "src/core/SkMathPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/gl/GrGLDefines.h" -#include "src/gpu/gl/GrGLUtil.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include "src/image/SkImage_Base.h" #include "tools/sk_app/GLWindowContext.h" diff --git a/third_party/skia/tools/sk_app/GraphiteMetalWindowContext.mm b/third_party/skia/tools/sk_app/GraphiteMetalWindowContext.mm index 1cc483e66211..366de746ca7d 100644 --- a/third_party/skia/tools/sk_app/GraphiteMetalWindowContext.mm +++ b/third_party/skia/tools/sk_app/GraphiteMetalWindowContext.mm @@ -9,13 +9,13 @@ #include "src/core/SkMathPriv.h" #include "tools/sk_app/GraphiteMetalWindowContext.h" -#include "experimental/graphite/include/BackendTexture.h" -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/Recorder.h" -#include "experimental/graphite/include/Recording.h" -#include "experimental/graphite/include/SkStuff.h" -#include "experimental/graphite/include/mtl/MtlBackendContext.h" -#include "experimental/graphite/include/mtl/MtlTypes.h" +#include "include/gpu/graphite/BackendTexture.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Recorder.h" +#include "include/gpu/graphite/Recording.h" +#include "include/gpu/graphite/SkStuff.h" +#include "include/gpu/graphite/mtl/MtlBackendContext.h" +#include "include/gpu/graphite/mtl/MtlTypes.h" using sk_app::DisplayParams; using sk_app::GraphiteMetalWindowContext; @@ -50,10 +50,10 @@ fValid = this->onInitializeContext(); - skgpu::mtl::BackendContext backendContext = {}; - backendContext.fDevice.retain((skgpu::mtl::Handle)fDevice.get()); - backendContext.fQueue.retain((skgpu::mtl::Handle)fQueue.get()); - fGraphiteContext = skgpu::Context::MakeMetal(backendContext); + skgpu::graphite::MtlBackendContext backendContext = {}; + backendContext.fDevice.retain((skgpu::graphite::MtlHandle)fDevice.get()); + backendContext.fQueue.retain((skgpu::graphite::MtlHandle)fQueue.get()); + fGraphiteContext = skgpu::graphite::Context::MakeMetal(backendContext); fGraphiteRecorder = fGraphiteContext->makeRecorder(); // TODO // if (!fGraphiteContext && fDisplayParams.fMSAASampleCount > 1) { @@ -65,9 +65,7 @@ void GraphiteMetalWindowContext::destroyContext() { if (fGraphiteContext) { - // TODO? - // in case we have outstanding refs to this (lua?) - // fGraphiteContext->abandonContext(); + fGraphiteRecorder.reset(); fGraphiteContext.reset(); } @@ -84,10 +82,8 @@ sk_sp surface; id currentDrawable = [fMetalLayer nextDrawable]; - skgpu::mtl::TextureInfo mtlInfo((skgpu::mtl::Handle)currentDrawable.texture); - - skgpu::BackendTexture backendTex(this->dimensions(), - (skgpu::mtl::Handle)currentDrawable.texture); + skgpu::graphite::BackendTexture backendTex(this->dimensions(), + (skgpu::graphite::MtlHandle)currentDrawable.texture); surface = MakeGraphiteFromBackendTexture(this->graphiteRecorder(), backendTex, @@ -95,7 +91,7 @@ fDisplayParams.fColorSpace, &fDisplayParams.fSurfaceProps); - fDrawableHandle = CFRetain((skgpu::mtl::Handle) currentDrawable); + fDrawableHandle = CFRetain((skgpu::graphite::MtlHandle) currentDrawable); return surface; } @@ -103,9 +99,13 @@ void GraphiteMetalWindowContext::swapBuffers() { // This chunk of code should not be in this class but higher up either in Window or // WindowContext - std::unique_ptr recording = fGraphiteRecorder->snap(); - fGraphiteContext->insertRecording(std::move(recording)); - fGraphiteContext->submit(skgpu::SyncToCpu::kNo); + std::unique_ptr recording = fGraphiteRecorder->snap(); + if (recording) { + skgpu::graphite::InsertRecordingInfo info; + info.fRecording = recording.get(); + fGraphiteContext->insertRecording(info); + } + fGraphiteContext->submit(skgpu::graphite::SyncToCpu::kNo); id currentDrawable = (id)fDrawableHandle; diff --git a/third_party/skia/tools/sk_app/MetalWindowContext.h b/third_party/skia/tools/sk_app/MetalWindowContext.h index a9eacdd66f17..106d36641543 100644 --- a/third_party/skia/tools/sk_app/MetalWindowContext.h +++ b/third_party/skia/tools/sk_app/MetalWindowContext.h @@ -10,7 +10,7 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkSurface.h" #include "include/ports/SkCFObject.h" -#include "include/private/GrMtlTypesPriv.h" +#include "include/private/gpu/ganesh/GrMtlTypesPriv.h" #include "tools/sk_app/WindowContext.h" diff --git a/third_party/skia/tools/sk_app/MetalWindowContext.mm b/third_party/skia/tools/sk_app/MetalWindowContext.mm index c464c3904a97..d972e321a66a 100644 --- a/third_party/skia/tools/sk_app/MetalWindowContext.mm +++ b/third_party/skia/tools/sk_app/MetalWindowContext.mm @@ -12,8 +12,8 @@ #include "include/gpu/mtl/GrMtlBackendContext.h" #include "include/gpu/mtl/GrMtlTypes.h" #include "src/core/SkMathPriv.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/image/SkImage_Base.h" #include "tools/sk_app/MetalWindowContext.h" diff --git a/third_party/skia/tools/sk_app/VulkanWindowContext.cpp b/third_party/skia/tools/sk_app/VulkanWindowContext.cpp index 0ba31b5376af..c9db528ca4a2 100644 --- a/third_party/skia/tools/sk_app/VulkanWindowContext.cpp +++ b/third_party/skia/tools/sk_app/VulkanWindowContext.cpp @@ -16,8 +16,8 @@ #include "include/gpu/vk/GrVkExtensions.h" #include "include/gpu/vk/GrVkTypes.h" -#include "src/gpu/vk/GrVkImage.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkImage.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #ifdef VK_USE_PLATFORM_WIN32_KHR // windows wants to define this as CreateSemaphoreA or CreateSemaphoreW diff --git a/third_party/skia/tools/sk_app/VulkanWindowContext.h b/third_party/skia/tools/sk_app/VulkanWindowContext.h index 1ba293a5ddd3..7e1fdd9af5d0 100644 --- a/third_party/skia/tools/sk_app/VulkanWindowContext.h +++ b/third_party/skia/tools/sk_app/VulkanWindowContext.h @@ -15,7 +15,7 @@ #include "include/gpu/vk/GrVkVulkan.h" #include "include/gpu/vk/GrVkBackendContext.h" -#include "src/gpu/vk/GrVkInterface.h" +#include "src/gpu/ganesh/vk/GrVkInterface.h" #include "tools/gpu/vk/VkTestUtils.h" #include "tools/sk_app/WindowContext.h" diff --git a/third_party/skia/tools/sk_app/Window.h b/third_party/skia/tools/sk_app/Window.h index ab22838ae500..429505624c05 100644 --- a/third_party/skia/tools/sk_app/Window.h +++ b/third_party/skia/tools/sk_app/Window.h @@ -24,7 +24,7 @@ class SkSurface; class SkSurfaceProps; class SkString; -namespace skgpu { +namespace skgpu::graphite { class Context; } @@ -151,7 +151,7 @@ class Window { // Returns null if there is not a GPU backend or if the backend is not yet created. GrDirectContext* directContext() const; - skgpu::Context* graphiteContext() const; + skgpu::graphite::Context* graphiteContext() const; protected: Window(); diff --git a/third_party/skia/tools/sk_app/WindowContext.cpp b/third_party/skia/tools/sk_app/WindowContext.cpp index fdd6e9e012ac..7ec4f8d27b8d 100644 --- a/third_party/skia/tools/sk_app/WindowContext.cpp +++ b/third_party/skia/tools/sk_app/WindowContext.cpp @@ -9,8 +9,8 @@ #include "include/gpu/GrDirectContext.h" #ifdef SK_GRAPHITE_ENABLED -#include "experimental/graphite/include/Context.h" -#include "experimental/graphite/include/Recorder.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Recorder.h" #endif namespace sk_app { diff --git a/third_party/skia/tools/sk_app/WindowContext.h b/third_party/skia/tools/sk_app/WindowContext.h index 75357495d937..65ab8b9aa4a2 100644 --- a/third_party/skia/tools/sk_app/WindowContext.h +++ b/third_party/skia/tools/sk_app/WindowContext.h @@ -15,7 +15,7 @@ class GrDirectContext; class SkSurface; #ifdef SK_GRAPHITE_ENABLED -namespace skgpu { +namespace skgpu::graphite { class Context; class Recorder; } @@ -44,8 +44,8 @@ class WindowContext { GrDirectContext* directContext() const { return fContext.get(); } #ifdef SK_GRAPHITE_ENABLED - skgpu::Context* graphiteContext() const { return fGraphiteContext.get(); } - skgpu::Recorder* graphiteRecorder() const { return fGraphiteRecorder.get(); } + skgpu::graphite::Context* graphiteContext() const { return fGraphiteContext.get(); } + skgpu::graphite::Recorder* graphiteRecorder() const { return fGraphiteRecorder.get(); } #endif int width() const { return fWidth; } @@ -59,8 +59,8 @@ class WindowContext { sk_sp fContext; #if SK_GRAPHITE_ENABLED - std::unique_ptr fGraphiteContext; - std::unique_ptr fGraphiteRecorder; + std::unique_ptr fGraphiteContext; + std::unique_ptr fGraphiteRecorder; #endif int fWidth; diff --git a/third_party/skia/tools/sk_app/android/BUILD.bazel b/third_party/skia/tools/sk_app/android/BUILD.bazel index 131e717e87c1..18ec7fceefc3 100644 --- a/third_party/skia/tools/sk_app/android/BUILD.bazel +++ b/third_party/skia/tools/sk_app/android/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GLWindowContext_android_src", srcs = ["GLWindowContext_android.cpp"], diff --git a/third_party/skia/tools/sk_app/ios/BUILD.bazel b/third_party/skia/tools/sk_app/ios/BUILD.bazel index cc3cee1f31e0..3a7ec2213e04 100644 --- a/third_party/skia/tools/sk_app/ios/BUILD.bazel +++ b/third_party/skia/tools/sk_app/ios/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "WindowContextFactory_ios_hdr", hdrs = ["WindowContextFactory_ios.h"], diff --git a/third_party/skia/tools/sk_app/mac/BUILD.bazel b/third_party/skia/tools/sk_app/mac/BUILD.bazel index 8b92d5e10ef3..f7606ee1c1f8 100644 --- a/third_party/skia/tools/sk_app/mac/BUILD.bazel +++ b/third_party/skia/tools/sk_app/mac/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "WindowContextFactory_mac_hdr", hdrs = ["WindowContextFactory_mac.h"], diff --git a/third_party/skia/tools/sk_app/mac/DawnMTLWindowContext_mac.mm b/third_party/skia/tools/sk_app/mac/DawnMTLWindowContext_mac.mm index 67bec74afc33..33bacbf10789 100644 --- a/third_party/skia/tools/sk_app/mac/DawnMTLWindowContext_mac.mm +++ b/third_party/skia/tools/sk_app/mac/DawnMTLWindowContext_mac.mm @@ -7,10 +7,10 @@ #include "tools/sk_app/DawnWindowContext.h" #include "tools/sk_app/mac/WindowContextFactory_mac.h" -#include "dawn/webgpu_cpp.h" +#include "webgpu/webgpu_cpp.h" #include "dawn/dawn_wsi.h" -#include "dawn_native/DawnNative.h" -#include "dawn_native/MetalBackend.h" +#include "dawn/native/DawnNative.h" +#include "dawn/native/MetalBackend.h" #import #import @@ -124,7 +124,7 @@ DawnSwapChainError Present() { return nullptr; } - fMTLDevice = dawn_native::metal::GetMetalDevice(device.Get()); + fMTLDevice = dawn::native::metal::GetMetalDevice(device.Get()); CGSize size; size.width = width(); diff --git a/third_party/skia/tools/sk_app/unix/BUILD.bazel b/third_party/skia/tools/sk_app/unix/BUILD.bazel index a0eb1fcd16cf..8db325f5e4cd 100644 --- a/third_party/skia/tools/sk_app/unix/BUILD.bazel +++ b/third_party/skia/tools/sk_app/unix/BUILD.bazel @@ -1,14 +1,16 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "DawnVulkanWindowContext_unix_src", srcs = ["DawnVulkanWindowContext_unix.cpp"], visibility = ["//:__subpackages__"], deps = [ ":WindowContextFactory_unix_hdr", - "//dawn_native:DawnNative_hdr", - "//dawn_native:VulkanBackend_hdr", + "//include/third_party:skias_vulkan_headers", "//src/ports:SkOSLibrary_hdr", + "//third_party:dawn", "//tools/gpu/vk:VkTestUtils_hdr", "//tools/sk_app:DawnWindowContext_hdr", ], @@ -43,8 +45,8 @@ generated_cc_atom( deps = [ ":WindowContextFactory_unix_hdr", "//include/gpu/vk:GrVkVulkan_hdr", - "//src/gpu/vk:GrVkInterface_hdr", - "//src/gpu/vk:GrVkUtil_hdr", + "//src/gpu/ganesh/vk:GrVkInterface_hdr", + "//src/gpu/ganesh/vk:GrVkUtil_hdr", "//tools/gpu/vk:VkTestUtils_hdr", "//tools/sk_app:VulkanWindowContext_hdr", ], @@ -54,6 +56,7 @@ generated_cc_atom( name = "WindowContextFactory_unix_hdr", hdrs = ["WindowContextFactory_unix.h"], visibility = ["//:__subpackages__"], + deps = ["//third_party:dawn"], ) generated_cc_atom( diff --git a/third_party/skia/tools/sk_app/unix/DawnVulkanWindowContext_unix.cpp b/third_party/skia/tools/sk_app/unix/DawnVulkanWindowContext_unix.cpp index f6a5b6fb56a2..5e0fd48b7de1 100644 --- a/third_party/skia/tools/sk_app/unix/DawnVulkanWindowContext_unix.cpp +++ b/third_party/skia/tools/sk_app/unix/DawnVulkanWindowContext_unix.cpp @@ -7,8 +7,8 @@ #include "tools/sk_app/DawnWindowContext.h" #include "tools/sk_app/unix/WindowContextFactory_unix.h" -#include "dawn_native/DawnNative.h" -#include "dawn_native/VulkanBackend.h" +#include "dawn/native/DawnNative.h" +#include "dawn/native/VulkanBackend.h" #include "src/ports/SkOSLibrary.h" #include "tools/gpu/vk/VkTestUtils.h" @@ -54,7 +54,7 @@ DawnVulkanWindowContext_xlib::DawnVulkanWindowContext_xlib(const XlibWindowInfo& DawnSwapChainImplementation DawnVulkanWindowContext_xlib::createSwapChainImplementation( int width, int height, const DisplayParams& params) { - return dawn_native::vulkan::CreateNativeSwapChainImpl(fDevice.Get(), fVkSurface); + return dawn::native::vulkan::CreateNativeSwapChainImpl(fDevice.Get(), fVkSurface); } wgpu::Device DawnVulkanWindowContext_xlib::onInitializeContext() { @@ -67,7 +67,7 @@ wgpu::Device DawnVulkanWindowContext_xlib::onInitializeContext() { if (!vkLib) { return nullptr; } - VkInstance instance = dawn_native::vulkan::GetInstance(device.Get()); + VkInstance instance = dawn::native::vulkan::GetInstance(device.Get()); if (!instance) { return nullptr; } diff --git a/third_party/skia/tools/sk_app/unix/VulkanWindowContext_unix.cpp b/third_party/skia/tools/sk_app/unix/VulkanWindowContext_unix.cpp index a7fd09d6e43b..2b31fedc1923 100644 --- a/third_party/skia/tools/sk_app/unix/VulkanWindowContext_unix.cpp +++ b/third_party/skia/tools/sk_app/unix/VulkanWindowContext_unix.cpp @@ -8,8 +8,8 @@ #include "include/gpu/vk/GrVkVulkan.h" -#include "src/gpu/vk/GrVkInterface.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkInterface.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #include "tools/gpu/vk/VkTestUtils.h" @@ -26,6 +26,7 @@ std::unique_ptr MakeVulkanForXlib(const XlibWindowInfo& info, const DisplayParams& displayParams) { PFN_vkGetInstanceProcAddr instProc; if (!sk_gpu_test::LoadVkLibraryAndGetProcAddrFuncs(&instProc)) { + SkDebugf("Could not load vulkan library\n"); return nullptr; } @@ -64,9 +65,9 @@ std::unique_ptr MakeVulkanForXlib(const XlibWindowInfo& info, instProc(instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR"); } - Display* display = info.fDisplay; - VisualID visualID = info.fVisualInfo->visualid; + VisualID visualID = XVisualIDFromVisual(DefaultVisual(info.fDisplay, + DefaultScreen(info.fDisplay))); VkBool32 check = getPhysicalDeviceXcbPresentationSupportKHR(physDev, queueFamilyIndex, XGetXCBConnection(display), diff --git a/third_party/skia/tools/sk_app/unix/WindowContextFactory_unix.h b/third_party/skia/tools/sk_app/unix/WindowContextFactory_unix.h index 11bd2d2ac202..a7d7d0122a4c 100644 --- a/third_party/skia/tools/sk_app/unix/WindowContextFactory_unix.h +++ b/third_party/skia/tools/sk_app/unix/WindowContextFactory_unix.h @@ -11,7 +11,7 @@ // webgpu_cpp.h and X.h don't get along. Include this first, before X11 defines None, Success etc. #ifdef SK_DAWN -#include "dawn/webgpu_cpp.h" +#include "webgpu/webgpu_cpp.h" #endif #include #include diff --git a/third_party/skia/tools/sk_app/unix/Window_unix.cpp b/third_party/skia/tools/sk_app/unix/Window_unix.cpp index 9bac509754a3..2769bb15c766 100644 --- a/third_party/skia/tools/sk_app/unix/Window_unix.cpp +++ b/third_party/skia/tools/sk_app/unix/Window_unix.cpp @@ -61,6 +61,7 @@ bool Window_unix::initWindow(Display* display) { constexpr int initialWidth = 1280; constexpr int initialHeight = 960; +#ifdef SK_GL // Attempt to create a window that supports GL // We prefer the more recent glXChooseFBConfig but fall back to glXChooseVisual. They have @@ -137,7 +138,9 @@ bool Window_unix::initWindow(Display* display) { fVisualInfo->visual, CWEventMask | CWColormap, &swa); - } else { + } +#endif + if (!fWindow) { // Create a simple window instead. We will not be able to show GL fWindow = XCreateSimpleWindow(display, DefaultRootWindow(display), diff --git a/third_party/skia/tools/sk_app/wasm/BUILD.bazel b/third_party/skia/tools/sk_app/wasm/BUILD.bazel index f30d4d18719d..a28672d37fd7 100644 --- a/third_party/skia/tools/sk_app/wasm/BUILD.bazel +++ b/third_party/skia/tools/sk_app/wasm/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "main_wasm_src", srcs = ["main_wasm.cpp"], diff --git a/third_party/skia/tools/sk_app/win/ANGLEWindowContext_win.cpp b/third_party/skia/tools/sk_app/win/ANGLEWindowContext_win.cpp index 048269a05773..ff9c137b5ada 100644 --- a/third_party/skia/tools/sk_app/win/ANGLEWindowContext_win.cpp +++ b/third_party/skia/tools/sk_app/win/ANGLEWindowContext_win.cpp @@ -11,7 +11,7 @@ #include #include #include "include/gpu/gl/GrGLAssembleInterface.h" -#include "src/gpu/gl/GrGLDefines.h" +#include "src/gpu/ganesh/gl/GrGLDefines_impl.h" #include "tools/sk_app/GLWindowContext.h" #include "tools/sk_app/win/WindowContextFactory_win.h" diff --git a/third_party/skia/tools/sk_app/win/BUILD.bazel b/third_party/skia/tools/sk_app/win/BUILD.bazel index b72417eb88a0..e058714ff011 100644 --- a/third_party/skia/tools/sk_app/win/BUILD.bazel +++ b/third_party/skia/tools/sk_app/win/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "ANGLEWindowContext_win_src", srcs = ["ANGLEWindowContext_win.cpp"], @@ -7,7 +9,7 @@ generated_cc_atom( deps = [ ":WindowContextFactory_win_hdr", "//include/gpu/gl:GrGLAssembleInterface_hdr", - "//src/gpu/gl:GrGLDefines_hdr", + "//src/gpu/ganesh/gl:GrGLDefines_impl_hdr", "//tools/sk_app:GLWindowContext_hdr", ], ) @@ -32,9 +34,7 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":WindowContextFactory_win_hdr", - "//dawn:dawn_wsi_hdr", - "//dawn_native:D3D12Backend_hdr", - "//dawn_native:DawnNative_hdr", + "//third_party:dawn", "//tools/sk_app:DawnWindowContext_hdr", ], ) @@ -71,8 +71,8 @@ generated_cc_atom( ":WindowContextFactory_win_hdr", ":Window_win_hdr", "//include/gpu/vk:GrVkVulkan_hdr", - "//src/gpu/vk:GrVkInterface_hdr", - "//src/gpu/vk:GrVkUtil_hdr", + "//src/gpu/ganesh/vk:GrVkInterface_hdr", + "//src/gpu/ganesh/vk:GrVkUtil_hdr", "//tools/gpu/vk:VkTestUtils_hdr", "//tools/sk_app:VulkanWindowContext_hdr", ], diff --git a/third_party/skia/tools/sk_app/win/DawnD3D12WindowContext_win.cpp b/third_party/skia/tools/sk_app/win/DawnD3D12WindowContext_win.cpp index 6ceaf0552413..201028cb6123 100644 --- a/third_party/skia/tools/sk_app/win/DawnD3D12WindowContext_win.cpp +++ b/third_party/skia/tools/sk_app/win/DawnD3D12WindowContext_win.cpp @@ -7,10 +7,10 @@ #include "tools/sk_app/DawnWindowContext.h" #include "tools/sk_app/win/WindowContextFactory_win.h" -#include "dawn/webgpu_cpp.h" +#include "webgpu/webgpu_cpp.h" #include "dawn/dawn_wsi.h" -#include "dawn_native/DawnNative.h" -#include "dawn_native/D3D12Backend.h" +#include "dawn/native/DawnNative.h" +#include "dawn/native/D3D12Backend.h" namespace sk_app { @@ -42,7 +42,7 @@ DawnD3D12WindowContext::~DawnD3D12WindowContext() { DawnSwapChainImplementation DawnD3D12WindowContext::createSwapChainImplementation( int width, int height, const DisplayParams& params) { - return dawn_native::d3d12::CreateNativeSwapChainImpl(fDevice.Get(), fWindow); + return dawn::native::d3d12::CreateNativeSwapChainImpl(fDevice.Get(), fWindow); } wgpu::Device DawnD3D12WindowContext::onInitializeContext() { diff --git a/third_party/skia/tools/sk_app/win/VulkanWindowContext_win.cpp b/third_party/skia/tools/sk_app/win/VulkanWindowContext_win.cpp index 8875888ebd75..976c42556e1b 100644 --- a/third_party/skia/tools/sk_app/win/VulkanWindowContext_win.cpp +++ b/third_party/skia/tools/sk_app/win/VulkanWindowContext_win.cpp @@ -13,8 +13,8 @@ #include "tools/sk_app/VulkanWindowContext.h" #include "tools/sk_app/win/Window_win.h" -#include "src/gpu/vk/GrVkInterface.h" -#include "src/gpu/vk/GrVkUtil.h" +#include "src/gpu/ganesh/vk/GrVkInterface.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" #include "tools/gpu/vk/VkTestUtils.h" diff --git a/third_party/skia/tools/skdiff/BUILD.bazel b/third_party/skia/tools/skdiff/BUILD.bazel index f9dcf1e07df5..344d5d032512 100644 --- a/third_party/skia/tools/skdiff/BUILD.bazel +++ b/third_party/skia/tools/skdiff/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + cc_binary( name = "skdiff", visibility = ["//:__subpackages__"], diff --git a/third_party/skia/tools/skiaserve/BUILD.bazel b/third_party/skia/tools/skiaserve/BUILD.bazel index fcf7e9fc915d..652fb0de7922 100644 --- a/third_party/skia/tools/skiaserve/BUILD.bazel +++ b/third_party/skia/tools/skiaserve/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "Request_hdr", hdrs = ["Request.h"], @@ -21,10 +23,13 @@ generated_cc_atom( visibility = ["//:__subpackages__"], deps = [ ":Request_hdr", + "//include/core:SkBitmap_hdr", + "//include/core:SkColorSpace_hdr", "//include/core:SkPictureRecorder_hdr", "//include/gpu:GrDirectContext_hdr", "//src/utils:SkJSONWriter_hdr", "//tools:ToolUtils_hdr", + "//tools/debugger:DrawCommand_hdr", ], ) diff --git a/third_party/skia/tools/skiaserve/Request.cpp b/third_party/skia/tools/skiaserve/Request.cpp index bc336ab3bedd..613f4715f25f 100644 --- a/third_party/skia/tools/skiaserve/Request.cpp +++ b/third_party/skia/tools/skiaserve/Request.cpp @@ -9,10 +9,13 @@ #include +#include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkPictureRecorder.h" #include "include/gpu/GrDirectContext.h" #include "src/utils/SkJSONWriter.h" #include "tools/ToolUtils.h" +#include "tools/debugger/DrawCommand.h" using namespace sk_gpu_test; diff --git a/third_party/skia/tools/skiaserve/urlhandlers/BUILD.bazel b/third_party/skia/tools/skiaserve/urlhandlers/BUILD.bazel index 0fa36cc7c0b5..bb9b88d8f548 100644 --- a/third_party/skia/tools/skiaserve/urlhandlers/BUILD.bazel +++ b/third_party/skia/tools/skiaserve/urlhandlers/BUILD.bazel @@ -1,11 +1,15 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "BreakHandler_src", srcs = ["BreakHandler.cpp"], visibility = ["//:__subpackages__"], deps = [ ":UrlHandler_hdr", + "//src/utils:SkJSONWriter_hdr", + "//tools/debugger:DrawCommand_hdr", "//tools/skiaserve:Request_hdr", "//tools/skiaserve:Response_hdr", ], diff --git a/third_party/skia/tools/skiaserve/urlhandlers/BreakHandler.cpp b/third_party/skia/tools/skiaserve/urlhandlers/BreakHandler.cpp index 5013c6df76ec..9a7fa578a856 100644 --- a/third_party/skia/tools/skiaserve/urlhandlers/BreakHandler.cpp +++ b/third_party/skia/tools/skiaserve/urlhandlers/BreakHandler.cpp @@ -8,6 +8,8 @@ #include "tools/skiaserve/urlhandlers/UrlHandler.h" #include "microhttpd.h" +#include "src/utils/SkJSONWriter.h" +#include "tools/debugger/DrawCommand.h" #include "tools/skiaserve/Request.h" #include "tools/skiaserve/Response.h" diff --git a/third_party/skia/tools/skottie_ios_app/BUILD.bazel b/third_party/skia/tools/skottie_ios_app/BUILD.bazel index b101a56fcbbc..5631999f56c9 100644 --- a/third_party/skia/tools/skottie_ios_app/BUILD.bazel +++ b/third_party/skia/tools/skottie_ios_app/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "GrContextHolder_hdr", hdrs = ["GrContextHolder.h"], diff --git a/third_party/skia/tools/skottie_ios_app/SkMetalViewBridge.mm b/third_party/skia/tools/skottie_ios_app/SkMetalViewBridge.mm index 7f1ca2bb5d61..31889b38b04d 100644 --- a/third_party/skia/tools/skottie_ios_app/SkMetalViewBridge.mm +++ b/third_party/skia/tools/skottie_ios_app/SkMetalViewBridge.mm @@ -3,6 +3,8 @@ #include "tools/skottie_ios_app/SkMetalViewBridge.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkColorType.h" #include "include/core/SkSurface.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrContextOptions.h" diff --git a/third_party/skia/tools/skottie_ios_app/SkiaUIContext.mm b/third_party/skia/tools/skottie_ios_app/SkiaUIContext.mm index 529f32f59383..a82eef99698f 100644 --- a/third_party/skia/tools/skottie_ios_app/SkiaUIContext.mm +++ b/third_party/skia/tools/skottie_ios_app/SkiaUIContext.mm @@ -3,7 +3,9 @@ #include "tools/skottie_ios_app/SkiaContext.h" +#include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" +#include "include/core/SkSize.h" #include "include/core/SkTime.h" #include "include/utils/mac/SkCGUtils.h" diff --git a/third_party/skia/tools/skp_parser.cpp b/third_party/skia/tools/skp_parser.cpp index d08bb4c15136..84a9d21dd802 100644 --- a/third_party/skia/tools/skp_parser.cpp +++ b/third_party/skia/tools/skp_parser.cpp @@ -8,6 +8,8 @@ #include "include/core/SkPicture.h" #include "include/core/SkStream.h" #include "include/utils/SkNullCanvas.h" +#include "src/utils/SkJSONWriter.h" +#include "tools/UrlDataManager.h" #include "tools/debugger/DebugCanvas.h" #include diff --git a/third_party/skia/tools/skpbench/BUILD.bazel b/third_party/skia/tools/skpbench/BUILD.bazel index 87ad965de16b..ab8e5a1af0f3 100644 --- a/third_party/skia/tools/skpbench/BUILD.bazel +++ b/third_party/skia/tools/skpbench/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "skpbench_src", srcs = ["skpbench.cpp"], @@ -19,9 +21,9 @@ generated_cc_atom( "//modules/svg/include:SkSVGDOM_hdr", "//src/core:SkOSFile_hdr", "//src/core:SkTaskGroup_hdr", - "//src/gpu:GrCaps_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:SkGr_hdr", + "//src/gpu/ganesh:GrCaps_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:SkGr_hdr", "//src/utils:SkMultiPictureDocument_hdr", "//src/utils:SkOSPath_hdr", "//src/xml:SkDOM_hdr", diff --git a/third_party/skia/tools/skpbench/skpbench.cpp b/third_party/skia/tools/skpbench/skpbench.cpp index 27d1a8595e51..8020aa4e1b48 100644 --- a/third_party/skia/tools/skpbench/skpbench.cpp +++ b/third_party/skia/tools/skpbench/skpbench.cpp @@ -18,9 +18,9 @@ #include "include/gpu/GrDirectContext.h" #include "src/core/SkOSFile.h" #include "src/core/SkTaskGroup.h" -#include "src/gpu/GrCaps.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/SkGr.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/SkGr.h" #include "src/utils/SkMultiPictureDocument.h" #include "src/utils/SkOSPath.h" #include "tools/DDLPromiseImageHelper.h" diff --git a/third_party/skia/tools/skqp/run_skqp_exe b/third_party/skia/tools/skqp/run_skqp_exe index f6ae88c270e1..c8415a9e2c60 100755 --- a/third_party/skia/tools/skqp/run_skqp_exe +++ b/third_party/skia/tools/skqp/run_skqp_exe @@ -28,7 +28,7 @@ def skqp(build): adb('push', os.path.join(build, 'skqp'), '/data/local/tmp/skqp/skqp') - cmd = "cd /data/local/tmp/skqp; ./skqp skqp_assets '' report" + cmd = "cd /data/local/tmp/skqp; ./skqp skqp_assets report" sys.stdout.write("adb 'shell' '%s'\n" % cmd) ret = subprocess.call(['adb', 'shell', cmd]) diff --git a/third_party/skia/tools/skqp/src/BUILD.bazel b/third_party/skia/tools/skqp/src/BUILD.bazel index 420e916df680..0a374edf90b5 100644 --- a/third_party/skia/tools/skqp/src/BUILD.bazel +++ b/third_party/skia/tools/skqp/src/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "jni_skqp_src", srcs = ["jni_skqp.cpp"], @@ -8,6 +10,7 @@ generated_cc_atom( ":skqp_hdr", "//include/core:SkStream_hdr", "//include/private:SkTo_hdr", + "//src/utils:SkOSPath_hdr", "//tools:ResourceFactory_hdr", ], ) @@ -26,6 +29,7 @@ generated_cc_atom( ":skqp_hdr", "//include/core:SkData_hdr", "//src/core:SkOSFile_hdr", + "//src/utils:SkOSPath_hdr", "//tools:Resources_hdr", ], ) @@ -37,6 +41,7 @@ generated_cc_atom( deps = [ ":skqp_hdr", "//gm:gm_hdr", + "//include/core:SkBitmap_hdr", "//include/core:SkFontStyle_hdr", "//include/core:SkGraphics_hdr", "//include/core:SkStream_hdr", @@ -49,7 +54,9 @@ generated_cc_atom( "//src/core:SkOSFile_hdr", "//src/core:SkStreamPriv_hdr", "//src/utils:SkOSPath_hdr", + "//tests:TestHarness_hdr", "//tests:Test_hdr", + "//tools:Resources_hdr", "//tools/fonts:TestFontMgr_hdr", "//tools/gpu/gl:GLTestContext_hdr", "//tools/gpu/vk:VkTestContext_hdr", diff --git a/third_party/skia/tools/skqp/src/jni_skqp.cpp b/third_party/skia/tools/skqp/src/jni_skqp.cpp index b4a541dad148..b86f6763e2bb 100644 --- a/third_party/skia/tools/skqp/src/jni_skqp.cpp +++ b/third_party/skia/tools/skqp/src/jni_skqp.cpp @@ -14,6 +14,7 @@ #include "include/core/SkStream.h" #include "include/private/SkTo.h" +#include "src/utils/SkOSPath.h" #include "tools/ResourceFactory.h" #include "tools/skqp/src/skqp.h" @@ -21,23 +22,22 @@ //////////////////////////////////////////////////////////////////////////////// extern "C" { JNIEXPORT void JNICALL Java_org_skia_skqp_SkQP_nInit(JNIEnv*, jobject, jobject, jstring); -JNIEXPORT jlong JNICALL Java_org_skia_skqp_SkQP_nExecuteGM(JNIEnv*, jobject, jint, jint); JNIEXPORT jobjectArray JNICALL Java_org_skia_skqp_SkQP_nExecuteUnitTest(JNIEnv*, jobject, jint); JNIEXPORT void JNICALL Java_org_skia_skqp_SkQP_nMakeReport(JNIEnv*, jobject); } // extern "C" //////////////////////////////////////////////////////////////////////////////// -static AAssetManager* gAAssetManager = nullptr; +static AAssetManager* sAAssetManager = nullptr; static sk_sp open_asset_data(const char* path) { sk_sp data; - if (gAAssetManager) { - if (AAsset* asset = AAssetManager_open(gAAssetManager, path, AASSET_MODE_STREAMING)) { + if (sAAssetManager) { + if (AAsset* asset = AAssetManager_open(sAAssetManager, path, AASSET_MODE_STREAMING)) { if (size_t size = SkToSizeT(AAsset_getLength(asset))) { data = SkData::MakeUninitialized(size); int ret = AAsset_read(asset, data->writable_data(), size); if (ret != SkToInt(size)) { - SkDebugf("ERROR: AAsset_read != AAsset_getLength (%s)\n", path); + SK_ABORT("ERROR: AAsset_read != AAsset_getLength (%s)\n", path); } } AAsset_close(asset); @@ -48,7 +48,29 @@ static sk_sp open_asset_data(const char* path) { namespace { struct AndroidAssetManager : public SkQPAssetManager { - sk_sp open(const char* path) override { return open_asset_data(path); } + sk_sp open(const char* path) override { + return open_asset_data(path); + } + + std::vector iterateDir(const char* directory, const char* extension) override { + std::vector paths; + AAssetDir* assetDir = AAssetManager_openDir(sAAssetManager, directory); + + while (const char* filename = AAssetDir_getNextFileName(assetDir)) { + const char* ext = strrchr(filename, '.'); + if (!ext) { + continue; + } + if (0 != strcasecmp(extension, ext)) { + continue; + } + SkString path = SkOSPath::Join(directory, filename); + paths.push_back(path.c_str()); + } + + AAssetDir_close(assetDir); + return paths; + } }; } @@ -63,6 +85,16 @@ static SkQP gSkQP; __FILE__ ": assert(" #cond ") failed."); \ return ret; } } while (0) +//////////////////////////////////////////////////////////////////////////////// + +static jobjectArray make_java_string_array(JNIEnv* env, jint arraySize) { + jclass stringClass = env->FindClass("java/lang/String"); + jassert(env, stringClass, nullptr); + jobjectArray jarray = env->NewObjectArray(arraySize, stringClass, nullptr); + jassert(env, jarray != nullptr, nullptr); + return jarray; +} + static void set_string_array_element(JNIEnv* env, jobjectArray a, const char* s, unsigned i) { jstring jstr = env->NewStringUTF(s); jassert(env, jstr != nullptr,); @@ -70,18 +102,13 @@ static void set_string_array_element(JNIEnv* env, jobjectArray a, const char* s, env->DeleteLocalRef(jstr); } -//////////////////////////////////////////////////////////////////////////////// - template -jobjectArray to_java_string_array(JNIEnv* env, - const std::vector& array, - F toString) { - jclass stringClass = env->FindClass("java/lang/String"); - jassert(env, stringClass, nullptr); - jobjectArray jarray = env->NewObjectArray((jint)array.size(), stringClass, nullptr); - jassert(env, jarray != nullptr, nullptr); - for (unsigned i = 0; i < array.size(); ++i) { - set_string_array_element(env, jarray, std::string(toString(array[i])).c_str(), i); +static jobjectArray to_java_string_array(JNIEnv* env, + const std::vector& array, + F stringizeFn) { + jobjectArray jarray = make_java_string_array(env, (jint)array.size()); + for (size_t i = 0; i < array.size(); ++i) { + set_string_array_element(env, jarray, stringizeFn(array[i]), i); } return jarray; } @@ -94,6 +121,14 @@ static std::string to_string(JNIEnv* env, jstring jString) { return sString; } +static const char* get_sksl_error_name(const SkQP::SkSLErrorTest& t) { + return t.name.c_str(); +} + +static const char* get_sksl_error_shader_text(const SkQP::SkSLErrorTest& t) { + return t.shaderText.c_str(); +} + void Java_org_skia_skqp_SkQP_nInit(JNIEnv* env, jobject object, jobject assetManager, jstring dataDir) { jclass SkQP_class = env->GetObjectClass(object); @@ -105,45 +140,25 @@ void Java_org_skia_skqp_SkQP_nInit(JNIEnv* env, jobject object, jobject assetMan jassert(env, assetManager,); // This global must be set before using AndroidAssetManager - gAAssetManager = AAssetManager_fromJava(env, assetManager); - jassert(env, gAAssetManager,); + sAAssetManager = AAssetManager_fromJava(env, assetManager); + jassert(env, sAAssetManager,); std::lock_guard lock(gMutex); - gSkQP.init(&gAndroidAssetManager, nullptr, reportDirectory.c_str()); + gSkQP.init(&gAndroidAssetManager, reportDirectory.c_str()); - auto backends = gSkQP.getSupportedBackends(); - jassert(env, backends.size() > 0,); - auto gms = gSkQP.getGMs(); - auto unitTests = gSkQP.getUnitTests(); + const std::vector& unitTests = gSkQP.getUnitTests(); + const std::vector& skslErrorTests = gSkQP.getSkSLErrorTests(); constexpr char kStringArrayType[] = "[Ljava/lang/String;"; - env->SetObjectField(object, env->GetFieldID(SkQP_class, "mBackends", kStringArrayType), - to_java_string_array(env, backends, SkQP::GetBackendName)); - env->SetObjectField(object, env->GetFieldID(SkQP_class, "mUnitTests", kStringArrayType), - to_java_string_array(env, unitTests, SkQP::GetUnitTestName)); - env->SetObjectField(object, env->GetFieldID(SkQP_class, "mGMs", kStringArrayType), - to_java_string_array(env, gms, SkQP::GetGMName)); -} - -jlong Java_org_skia_skqp_SkQP_nExecuteGM(JNIEnv* env, - jobject object, - jint gmIndex, - jint backendIndex) { - SkQP::RenderOutcome outcome; - std::string except; - { - std::lock_guard lock(gMutex); - jassert(env, backendIndex < (jint)gSkQP.getSupportedBackends().size(), -1); - jassert(env, gmIndex < (jint)gSkQP.getGMs().size(), -1); - SkQP::SkiaBackend backend = gSkQP.getSupportedBackends()[backendIndex]; - SkQP::GMFactory gm = gSkQP.getGMs()[gmIndex]; - std::tie(outcome, except) = gSkQP.evaluateGM(backend, gm); - } - - if (!except.empty()) { - (void)env->ThrowNew(env->FindClass("org/skia/skqp/SkQPException"), except.c_str()); - } - return (jlong)outcome.fTotalError; + env->SetObjectField(object, + env->GetFieldID(SkQP_class, "mUnitTests", kStringArrayType), + to_java_string_array(env, unitTests, &SkQP::GetUnitTestName)); + env->SetObjectField(object, + env->GetFieldID(SkQP_class, "mSkSLErrorTestName", kStringArrayType), + to_java_string_array(env, skslErrorTests, get_sksl_error_name)); + env->SetObjectField(object, + env->GetFieldID(SkQP_class, "mSkSLErrorTestShader", kStringArrayType), + to_java_string_array(env, skslErrorTests, get_sksl_error_shader_text)); } jobjectArray Java_org_skia_skqp_SkQP_nExecuteUnitTest(JNIEnv* env, @@ -151,17 +166,15 @@ jobjectArray Java_org_skia_skqp_SkQP_nExecuteUnitTest(JNIEnv* env, jint index) { std::vector errors; { - jassert(env, index < (jint)gSkQP.getUnitTests().size(), nullptr); std::lock_guard lock(gMutex); + jassert(env, index < (jint)gSkQP.getUnitTests().size(), nullptr); errors = gSkQP.executeTest(gSkQP.getUnitTests()[index]); } - if (errors.size() == 0) { + if (errors.empty()) { return nullptr; } - jclass stringClass = env->FindClass("java/lang/String"); - jassert(env, stringClass, nullptr); - jobjectArray array = env->NewObjectArray(errors.size(), stringClass, nullptr); - for (unsigned i = 0; i < errors.size(); ++i) { + jobjectArray array = make_java_string_array(env, errors.size()); + for (size_t i = 0; i < errors.size(); ++i) { set_string_array_element(env, array, errors[i].c_str(), i); } return (jobjectArray)env->NewGlobalRef(array); diff --git a/third_party/skia/tools/skqp/src/skqp.cpp b/third_party/skia/tools/skqp/src/skqp.cpp index 85ec11a239a8..7991b4f4ad7b 100644 --- a/third_party/skia/tools/skqp/src/skqp.cpp +++ b/third_party/skia/tools/skqp/src/skqp.cpp @@ -8,6 +8,7 @@ #include "tools/skqp/src/skqp.h" #include "gm/gm.h" +#include "include/core/SkBitmap.h" #include "include/core/SkFontStyle.h" #include "include/core/SkGraphics.h" #include "include/core/SkStream.h" @@ -21,6 +22,8 @@ #include "src/core/SkStreamPriv.h" #include "src/utils/SkOSPath.h" #include "tests/Test.h" +#include "tests/TestHarness.h" +#include "tools/Resources.h" #include "tools/fonts/TestFontMgr.h" #ifdef SK_GL #include "tools/gpu/gl/GLTestContext.h" @@ -32,133 +35,113 @@ #include #include #include -#include #include -namespace skqp { - -/** Prefered colortype for comparing test outcomes. */ -constexpr SkColorType kColorType = kRGBA_8888_SkColorType; - -/** Prefered alphatype for comparing test outcomes. */ -constexpr SkAlphaType kAlphaType = kUnpremul_SkAlphaType; - -} - -#define IMAGES_DIRECTORY_PATH "images" -#define PATH_MAX_PNG "max.png" -#define PATH_MIN_PNG "min.png" -#define PATH_IMG_PNG "image.png" -#define PATH_ERR_PNG "errors.png" -#define PATH_MODEL "model" - -static constexpr char kRenderTestCSVReport[] = "out.csv"; -static constexpr char kRenderTestReportPath[] = "report.html"; -static constexpr char kDefaultRenderTestsPath[] = "skqp/rendertests.txt"; static constexpr char kUnitTestReportPath[] = "unit_tests.txt"; static constexpr char kUnitTestsPath[] = "skqp/unittests.txt"; // Kind of like Python's readlines(), but without any allocation. -// Calls f() on each line. -// F is [](const char*, size_t) -> void -template -static void readlines(const void* data, size_t size, F f) { +// Calls `lineFn` on each line. +static void read_lines(const void* data, + size_t size, + const std::function& lineFn) { const char* start = (const char*)data; const char* end = start + size; const char* ptr = start; while (ptr < end) { while (*ptr++ != '\n' && ptr < end) {} size_t len = ptr - start; - f(start, len); + lineFn(std::string_view(start, len)); start = ptr; } } -// Parses the unittests.txt file. -// when exclude is true, all tests are run except those matching lines from the file -// when exclude is false, only tests matching lines from the file are run. -// Each line is a regular expression matching test names. -// Lines may start with # to indicate a comment -static void get_unit_tests(SkQPAssetManager* mgr, std::vector* unitTests, bool exclude) { - std::vector patterns; - auto insert = [&patterns](const char* s, size_t l) { - SkASSERT(l > 1) ; - if (l > 0 && s[l - 1] == '\n') { // strip line endings. - --l; - } - if (l > 0 && s[0] != '#') { // only add non-empty strings, and ignore comments. - patterns.emplace_back(std::string(s, l)); +namespace { + +// Parses the contents of the `skqp/unittests.txt` file. +// Each line in the exclusion list is a regular expression that matches against test names. +// Matches indicate tests that should be excluded. Lines may start with # to indicate a comment. +class ExclusionList { +public: + ExclusionList() {} + + void initialize(sk_sp dat) { + fPatterns = {}; + read_lines(dat->data(), dat->size(), [this](std::string_view line) { + if (!line.empty() && line.back() == '\n') { + // Strip line endings. + line.remove_suffix(1); + } + if (!line.empty() && line.front() != '#') { + // Only add non-empty strings, and ignore comments. + fPatterns.emplace_back(std::string(line)); + } + }); + } + + bool isExcluded(const std::string& name) const { + for (const auto& pat : fPatterns) { + if (std::regex_match(name, pat)) { + return true; + } } - }; - if (sk_sp dat = mgr->open(kUnitTestsPath)) { - readlines(dat->data(), dat->size(), insert); + return false; } + +private: + std::vector fPatterns; +}; +} + +// Returns a list of every unit test to be run. +static std::vector get_unit_tests(const ExclusionList& exclusionList) { + std::vector unitTests; for (const skiatest::Test& test : skiatest::TestRegistry::Range()) { - bool matches_one = false; - for (const auto& pat : patterns) { - if (std::regex_match(std::string(test.fName), pat)) { - matches_one = true; - continue; - } + if (!test.fNeedsGpu) { + continue; } - if (exclude != matches_one && test.fNeedsGpu) { - unitTests->push_back(&test); + if (exclusionList.isExcluded(test.fName)) { + continue; } + unitTests.push_back(&test); } auto lt = [](SkQP::UnitTest u, SkQP::UnitTest v) { return strcmp(u->fName, v->fName) < 0; }; - std::sort(unitTests->begin(), unitTests->end(), lt); + std::sort(unitTests.begin(), unitTests.end(), lt); + return unitTests; } -static void get_render_tests(SkQPAssetManager* mgr, - const char *renderTestsIn, - std::vector* gmlist, - std::unordered_map* gmThresholds) { - // Runs all render tests if the |renderTests| file can't be found or is empty. - const char *renderTests = (renderTestsIn && renderTestsIn[0]) ? - renderTestsIn : kDefaultRenderTestsPath; - auto insert = [gmThresholds](const char* s, size_t l) { - SkASSERT(l > 1) ; - if (l > 0 && s[l - 1] == '\n') { // strip line endings. - --l; - } - if (l == 0) { - return; - } - const char* end = s + l; - const char* ptr = s; - constexpr char kDelimeter = ','; - while (ptr < end && *ptr != kDelimeter) { ++ptr; } - if (ptr + 1 >= end) { - SkASSERT(false); // missing delimeter - return; - } - std::string key(s, ptr - s); - ++ptr; // skip delimeter - std::string number(ptr, end - ptr); // null-terminated copy. - int64_t value = 0; - if (1 != sscanf(number.c_str(), "%" SCNd64 , &value)) { - SkASSERT(false); // Not a number - return; +// Returns a list of every SkSL error test to be run. +static std::vector get_sksl_error_tests(SkQPAssetManager* assetManager, + const ExclusionList& exclusionList) { + std::vector skslErrorTests; + + auto iterateFn = [&](const char* directory, const char* extension) { + std::vector paths = assetManager->iterateDir(directory, extension); + for (const std::string& path : paths) { + SkString name = SkOSPath::Basename(path.c_str()); + if (exclusionList.isExcluded(name.c_str())) { + continue; + } + sk_sp shaderText = GetResourceAsData(path.c_str()); + if (!shaderText) { + continue; + } + skslErrorTests.push_back({ + name.c_str(), + std::string(static_cast(shaderText->data()), shaderText->size()) + }); } - gmThresholds->insert({std::move(key), value}); // (*gmThresholds)[s] = value; }; - if (sk_sp dat = mgr->open(renderTests)) { - readlines(dat->data(), dat->size(), insert); - } - using GmAndName = std::pair; - std::vector gmsWithNames; - for (skiagm::GMFactory f : skiagm::GMRegistry::Range()) { - std::string name = SkQP::GetGMName(f); - if ((gmThresholds->empty() || gmThresholds->count(name) > 0)) { - gmsWithNames.push_back(std::make_pair(f, std::move(name))); - } - } - std::sort(gmsWithNames.begin(), gmsWithNames.end(), - [](GmAndName u, GmAndName v) { return u.second < v.second; }); - gmlist->reserve(gmsWithNames.size()); - for (const GmAndName& gmn : gmsWithNames) { - gmlist->push_back(gmn.first); - } + + // Android only supports runtime shaders, not fragment shaders, color filters or blenders. + iterateFn("sksl/errors/", ".rts"); + iterateFn("sksl/runtime_errors/", ".rts"); + + auto lt = [](const SkQP::SkSLErrorTest& a, const SkQP::SkSLErrorTest& b) { + return a.name < b.name; + }; + std::sort(skslErrorTests.begin(), skslErrorTests.end(), lt); + return skslErrorTests; } static std::unique_ptr make_test_context(SkQP::SkiaBackend backend) { @@ -238,19 +221,11 @@ static void print_backend_info(const char* dstPath, //////////////////////////////////////////////////////////////////////////////// -const char* SkQP::GetBackendName(SkQP::SkiaBackend b) { - switch (b) { - case SkQP::SkiaBackend::kGL: return "gl"; - case SkQP::SkiaBackend::kGLES: return "gles"; - case SkQP::SkiaBackend::kVulkan: return "vk"; - } - return ""; +TestHarness CurrentTestHarness() { + return TestHarness::kSkQP; } -std::string SkQP::GetGMName(SkQP::GMFactory f) { - std::unique_ptr gm(f ? f() : nullptr); - return std::string(gm ? gm->getName() : ""); -} +//////////////////////////////////////////////////////////////////////////////// const char* SkQP::GetUnitTestName(SkQP::UnitTest t) { return t->fName; } @@ -258,71 +233,28 @@ SkQP::SkQP() {} SkQP::~SkQP() {} -void SkQP::init(SkQPAssetManager* am, const char* renderTests, const char* reportDirectory) { - SkASSERT_RELEASE(!fAssetManager); - SkASSERT_RELEASE(am); - fAssetManager = am; +void SkQP::init(SkQPAssetManager* assetManager, const char* reportDirectory) { + SkASSERT_RELEASE(assetManager); fReportDirectory = reportDirectory; SkGraphics::Init(); gSkFontMgr_DefaultFactory = &ToolUtils::MakePortableFontMgr; - get_render_tests(fAssetManager, renderTests, &fGMs, &fGMThresholds); - /* If the file "skqp/unittests.txt" does not exist or is empty, run all gpu - unit tests. Otherwise run only tests that do not match a line in that file. - The list is checked in at platform_tools/android/apps/skqp/src/main/assets/skqp/unittests.txt - */ - get_unit_tests(fAssetManager, &fUnitTests, true); - fSupportedBackends = get_backends(); - - print_backend_info((fReportDirectory + "/grdump.txt").c_str(), fSupportedBackends); -} - -std::tuple SkQP::evaluateGM(SkQP::SkiaBackend backend, - SkQP::GMFactory gmFact) { - SkASSERT_RELEASE(fAssetManager); - static constexpr SkQP::RenderOutcome kError = {INT_MAX, INT_MAX, INT64_MAX}; - static constexpr SkQP::RenderOutcome kPass = {0, 0, 0}; - - std::unique_ptr testCtx = make_test_context(backend); - if (!testCtx) { - return std::make_tuple(kError, "Skia Failure: test context"); + // Load the exclusion list `skqp/unittests.txt`, if it exists. + // The list is checked in at platform_tools/android/apps/skqp/src/main/assets/skqp/unittests.txt + ExclusionList exclusionList; + if (sk_sp dat = assetManager->open(kUnitTestsPath)) { + exclusionList.initialize(dat); } - testCtx->makeCurrent(); - - SkASSERT(gmFact); - std::unique_ptr gm(gmFact()); - SkASSERT(gm); - const SkISize size = gm->getISize(); - const int w = size.width(); - const int h = size.height(); - const SkImageInfo info = - SkImageInfo::Make(w, h, skqp::kColorType, kPremul_SkAlphaType, nullptr); - const SkSurfaceProps props(0, kRGB_H_SkPixelGeometry); - - sk_sp surf = SkSurface::MakeRenderTarget( - testCtx->makeContext(context_options(gm.get())).get(), - SkBudgeted::kNo, info, 0, &props); - if (!surf) { - return std::make_tuple(kError, "Skia Failure: gr-context"); - } - gm->draw(surf->getCanvas()); - - SkBitmap image; - image.allocPixels(SkImageInfo::Make(w, h, skqp::kColorType, skqp::kAlphaType)); - // SkColorTypeBytesPerPixel should be constexpr, but is not. - SkASSERT(SkColorTypeBytesPerPixel(skqp::kColorType) == sizeof(uint32_t)); - // Call readPixels because we need to compare pixels. - if (!surf->readPixels(image.pixmap(), 0, 0)) { - return std::make_tuple(kError, "Skia Failure: read pixels"); - } + fUnitTests = get_unit_tests(exclusionList); + fSkSLErrorTests = get_sksl_error_tests(assetManager, exclusionList); + fSupportedBackends = get_backends(); - return std::make_tuple(kPass, ""); + print_backend_info((fReportDirectory + "/grdump.txt").c_str(), fSupportedBackends); } std::vector SkQP::executeTest(SkQP::UnitTest test) { - SkASSERT_RELEASE(fAssetManager); struct : public skiatest::Reporter { std::vector fErrors; void reportFailed(const skiatest::Failure& failure) override { @@ -336,150 +268,35 @@ std::vector SkQP::executeTest(SkQP::UnitTest test) { test->fContextOptionsProc(&options); } test->fProc(&r, options); - fUnitTestResults.push_back(UnitTestResult{test, r.fErrors}); + fTestResults.push_back(TestResult{test->fName, r.fErrors}); return r.fErrors; } //////////////////////////////////////////////////////////////////////////////// -static constexpr char kDocHead[] = - "\n" - "\n" - "\n" - "\n" - "SkQP Report\n" - "\n" - "\n" - "\n" - "\n" - "

SkQP Report

\n"; - -static constexpr char kDocTail[] = - "
    \n" - "
    \n" - "

    Left image: test result
    \n" - "Right image: errors (white = no error, black = smallest error, red = biggest error; " - "other errors are a color between black and red.)

    \n" - "
    \n" - "\n" - "\n"; - template inline void write(SkWStream* wStream, const T& text) { wStream->write(text.c_str(), text.size()); } void SkQP::makeReport() { - SkASSERT_RELEASE(fAssetManager); - int glesErrorCount = 0, vkErrorCount = 0, gles = 0, vk = 0; - if (!sk_isdir(fReportDirectory.c_str())) { SkDebugf("Report destination does not exist: '%s'\n", fReportDirectory.c_str()); return; } - SkFILEWStream csvOut(SkOSPath::Join(fReportDirectory.c_str(), kRenderTestCSVReport).c_str()); - SkFILEWStream htmOut(SkOSPath::Join(fReportDirectory.c_str(), kRenderTestReportPath).c_str()); - SkASSERT_RELEASE(csvOut.isValid() && htmOut.isValid()); - htmOut.writeText(kDocHead); - for (const SkQP::RenderResult& run : fRenderResults) { - switch (run.fBackend) { - case SkQP::SkiaBackend::kGLES: ++gles; break; - case SkQP::SkiaBackend::kVulkan: ++vk; break; - default: break; - } - const char* backendName = SkQP::GetBackendName(run.fBackend); - std::string gmName = SkQP::GetGMName(run.fGM); - const SkQP::RenderOutcome& outcome = run.fOutcome; - auto str = SkStringPrintf("\"%s\",\"%s\",%d,%d,%" PRId64, backendName, gmName.c_str(), - outcome.fMaxError, outcome.fBadPixelCount, outcome.fTotalError); - write(&csvOut, SkStringPrintf("%s\n", str.c_str())); - - int64_t passingThreshold = fGMThresholds.empty() ? 0 : fGMThresholds[gmName]; - if (passingThreshold == -1 || outcome.fMaxError <= passingThreshold) { - continue; - } - write(&htmOut, SkStringPrintf(" f(%s);\n", str.c_str())); - switch (run.fBackend) { - case SkQP::SkiaBackend::kGLES: ++glesErrorCount; break; - case SkQP::SkiaBackend::kVulkan: ++vkErrorCount; break; - default: break; - } - } - htmOut.writeText(kDocMiddle); - write(&htmOut, SkStringPrintf("

    gles errors: %d (of %d)
    \n" - "vk errors: %d (of %d)

    \n", - glesErrorCount, gles, vkErrorCount, vk)); - htmOut.writeText(kDocTail); - SkFILEWStream unitOut(SkOSPath::Join(fReportDirectory.c_str(), kUnitTestReportPath).c_str()); - SkASSERT_RELEASE(unitOut.isValid()); - for (const SkQP::UnitTestResult& result : fUnitTestResults) { - unitOut.writeText(GetUnitTestName(result.fUnitTest)); - if (result.fErrors.empty()) { - unitOut.writeText(" PASSED\n* * *\n"); + SkFILEWStream report(SkOSPath::Join(fReportDirectory.c_str(), kUnitTestReportPath).c_str()); + SkASSERT_RELEASE(report.isValid()); + for (const SkQP::TestResult& result : fTestResults) { + report.writeText(result.name.c_str()); + if (result.errors.empty()) { + report.writeText(" PASSED\n* * *\n"); } else { - write(&unitOut, SkStringPrintf(" FAILED (%zu errors)\n", result.fErrors.size())); - for (const std::string& err : result.fErrors) { - write(&unitOut, err); - unitOut.newline(); + write(&report, SkStringPrintf(" FAILED (%zu errors)\n", result.errors.size())); + for (const std::string& err : result.errors) { + write(&report, err); + report.newline(); } - unitOut.writeText("* * *\n"); + report.writeText("* * *\n"); } } } diff --git a/third_party/skia/tools/skqp/src/skqp.h b/third_party/skia/tools/skqp/src/skqp.h index 4a76ba200775..ce6988f03083 100644 --- a/third_party/skia/tools/skqp/src/skqp.h +++ b/third_party/skia/tools/skqp/src/skqp.h @@ -11,9 +11,6 @@ #include #include #include -#include -#include -#include #include class SkData; @@ -35,6 +32,8 @@ class SkQPAssetManager { SkQPAssetManager() {} virtual ~SkQPAssetManager() {} virtual sk_sp open(const char* path) = 0; + virtual std::vector iterateDir(const char* directory, const char* extension) = 0; + private: SkQPAssetManager(const SkQPAssetManager&) = delete; SkQPAssetManager& operator=(const SkQPAssetManager&) = delete; @@ -47,15 +46,17 @@ class SkQP { kGLES, kVulkan, }; - using GMFactory = std::unique_ptr (*)(); using UnitTest = const skiatest::Test*; + struct SkSLErrorTest { + std::string name; + std::string shaderText; + }; + //////////////////////////////////////////////////////////////////////////// /** These functions provide a descriptive name for the given value.*/ - static std::string GetGMName(GMFactory); static const char* GetUnitTestName(UnitTest); - static const char* GetBackendName(SkiaBackend); SkQP(); ~SkQP(); @@ -64,57 +65,34 @@ class SkQP { Initialize Skia and the SkQP. Should be executed only once. @param assetManager - provides assets for the models. Does not take ownership. - @param renderTests - file containing list of render tests. @param reportDirectory - where to write out report. */ - void init(SkQPAssetManager* assetManager, const char* renderTests, const char* reportDirectory); - - struct RenderOutcome { - // All three values will be 0 if the test passes. - int fMaxError = 0; // maximum error of all pixel. - int fBadPixelCount = 0; // number of pixels with non-zero error. - int64_t fTotalError = 0; // sum of error for all bad pixels. - }; - - /** - @return render outcome and error string. Only errors running or - evaluating the GM will result in a non-empty error string. - */ - std::tuple evaluateGM(SkiaBackend, GMFactory); + void init(SkQPAssetManager* assetManager, const char* reportDirectory); /** @return a (hopefully empty) list of errors produced by this unit test. */ std::vector executeTest(UnitTest); - /** Call this after running all checks to write a report into the given - report directory. */ + /** Call this after running all checks to write a report into the given report directory. */ void makeReport(); - /** @return a list of backends that this version of SkQP supports. */ - const std::vector& getSupportedBackends() const { return fSupportedBackends; } - /** @return a list of all Skia GMs in lexicographic order. */ - const std::vector& getGMs() const { return fGMs; } - /** @return a list of all Skia GPU unit tests in lexicographic order. */ + /** @return a sorted list of all Skia GPU unit tests */ const std::vector& getUnitTests() const { return fUnitTests; } + + /** @return a sorted list of all SkSL error tests */ + const std::vector& getSkSLErrorTests() const { return fSkSLErrorTests; } + //////////////////////////////////////////////////////////////////////////// private: - struct RenderResult { - SkiaBackend fBackend; - GMFactory fGM; - RenderOutcome fOutcome; - }; - struct UnitTestResult { - UnitTest fUnitTest; - std::vector fErrors; + struct TestResult { + std::string name; + std::vector errors; }; - std::vector fRenderResults; - std::vector fUnitTestResults; + std::vector fTestResults; std::vector fSupportedBackends; - SkQPAssetManager* fAssetManager = nullptr; std::string fReportDirectory; std::vector fUnitTests; - std::vector fGMs; - std::unordered_map fGMThresholds; + std::vector fSkSLErrorTests; SkQP(const SkQP&) = delete; SkQP& operator=(const SkQP&) = delete; diff --git a/third_party/skia/tools/skqp/src/skqp_main.cpp b/third_party/skia/tools/skqp/src/skqp_main.cpp index f5c7830dda60..6ea58df344c1 100644 --- a/third_party/skia/tools/skqp/src/skqp_main.cpp +++ b/third_party/skia/tools/skqp/src/skqp_main.cpp @@ -12,6 +12,7 @@ #include "include/core/SkData.h" #include "src/core/SkOSFile.h" +#include "src/utils/SkOSPath.h" #include "tools/Resources.h" //////////////////////////////////////////////////////////////////////////////// @@ -21,20 +22,34 @@ class StdAssetManager : public SkQPAssetManager { public: StdAssetManager(const char* p) : fPrefix(p) { SkASSERT(!fPrefix.empty()); - //TODO(halcanary): does this need to be changed if I run SkQP in Windows? - fPrefix += "/"; } - sk_sp open(const char* path) override { - return SkData::MakeFromFileName((fPrefix + path).c_str()); + + sk_sp open(const char* subpath) override { + SkString path = SkOSPath::Join(fPrefix.c_str(), subpath); + return SkData::MakeFromFileName(path.c_str()); + } + + std::vector iterateDir(const char* directory, const char* extension) override { + std::vector paths; + SkString resourceDirectory = GetResourcePath(directory); + SkOSFile::Iter iter(resourceDirectory.c_str(), extension); + SkString name; + + while (iter.next(&name, /*getDir=*/false)) { + SkString path(SkOSPath::Join(directory, name.c_str())); + paths.push_back(path.c_str()); + } + + return paths; } + private: std::string fPrefix; }; struct Args { - char *assetDir; - char *renderTests; - char *outputDir; + char* assetDir; + char* outputDir; }; } // namespace @@ -80,15 +95,13 @@ static bool should_skip(const char* const* rules, size_t count, const char* name } static void parse_args(int argc, char *argv[], Args *args) { - if (argc < 4) { - std::cerr << "Usage:\n " << argv[0] - << " ASSET_DIR RENDER_TESTS OUTPUT_DIR [TEST_MATCH_RULES]\n" + if (argc < 3) { + std::cerr << "Usage:\n " << argv[0] << " ASSET_DIR OUTPUT_DIR [TEST_MATCH_RULES]\n" << kSkipUsage << '\n'; exit(1); } args->assetDir = argv[1]; - args->renderTests = argv[2]; - args->outputDir = argv[3]; + args->outputDir = argv[2]; } int main(int argc, char *argv[]) { @@ -100,59 +113,33 @@ int main(int argc, char *argv[]) { std::cerr << "sk_mkdir(" << args.outputDir << ") failed.\n"; return 2; } + StdAssetManager mgr(args.assetDir); SkQP skqp; - skqp.init(&mgr, args.renderTests, args.outputDir); + skqp.init(&mgr, args.outputDir); int ret = 0; - const char* const* matchRules = &argv[4]; - size_t matchRulesCount = (size_t)(argc - 4); - - // Rendering Tests - std::ostream& out = std::cout; - for (auto backend : skqp.getSupportedBackends()) { - auto testPrefix = std::string(SkQP::GetBackendName(backend)) + "_"; - for (auto gmFactory : skqp.getGMs()) { - auto testName = testPrefix + SkQP::GetGMName(gmFactory); - if (should_skip(matchRules, matchRulesCount, testName.c_str())) { - continue; - } - out << "Starting: " << testName << " "; - SkQP::RenderOutcome outcome; - std::string except; - - std::tie(outcome, except) = skqp.evaluateGM(backend, gmFactory); - if (!except.empty()) { - out << "[ERROR: " << except << "]" << std::endl; - ret = 1; - } else if (outcome.fMaxError != 0) { - out << "[FAILED: " << outcome.fMaxError << "]" << std::endl; - ret = 1; - } else { - out << "[PASSED]" << std::endl; - } - out.flush(); - } - } + const char* const* matchRules = &argv[3]; + size_t matchRulesCount = (size_t)(argc - 3); // Unit Tests - for (auto test : skqp.getUnitTests()) { - auto testName = std::string("unitTest_") + SkQP::GetUnitTestName(test); + for (SkQP::UnitTest test : skqp.getUnitTests()) { + auto testName = std::string("unitTest_") + SkQP::GetUnitTestName(test); if (should_skip(matchRules, matchRulesCount, testName.c_str())) { continue; } - out << "Starting: " << testName << " "; + std::cout << "Starting: " << testName << " "; std::vector errors = skqp.executeTest(test); if (!errors.empty()) { - out << "[FAILED: " << errors.size() << " error(s)]" << std::endl; + std::cout << "[FAILED: " << errors.size() << " error(s)]" << std::endl; for (const std::string& error : errors) { - out << " " << error << std::endl; + std::cout << " " << error << std::endl; } ret = 1; } else { - out << "[PASSED]" << std::endl; + std::cout << "[PASSED]" << std::endl; } - out.flush(); + std::cout.flush(); } skqp.makeReport(); diff --git a/third_party/skia/tools/sksl-precompile/BUILD.bazel b/third_party/skia/tools/sksl-precompile/BUILD.bazel new file mode 100644 index 000000000000..a28c4f4f9a16 --- /dev/null +++ b/third_party/skia/tools/sksl-precompile/BUILD.bazel @@ -0,0 +1,26 @@ +load("//bazel:macros.bzl", "generated_cc_atom") + +licenses(["notice"]) + +generated_cc_atom( + name = "SkSLPrecompile_src", + srcs = ["SkSLPrecompile.cpp"], + visibility = ["//:__subpackages__"], + deps = [ + "//include/core:SkGraphics_hdr", + "//include/core:SkStream_hdr", + "//include/private:SkStringView_hdr", + "//src/core:SkCpu_hdr", + "//src/core:SkOpts_hdr", + "//src/opts:SkChecksum_opts_hdr", + "//src/opts:SkVM_opts_hdr", + "//src/sksl:SkSLCompiler_hdr", + "//src/sksl:SkSLDehydrator_hdr", + "//src/sksl:SkSLFileOutputStream_hdr", + "//src/sksl:SkSLStringStream_hdr", + "//src/sksl:SkSLUtil_hdr", + "//src/sksl/ir:SkSLUnresolvedFunction_hdr", + "//src/sksl/ir:SkSLVarDeclarations_hdr", + "//src/utils:SkShaderUtils_hdr", + ], +) diff --git a/third_party/skia/tools/sksl-precompile/SkSLPrecompile.cpp b/third_party/skia/tools/sksl-precompile/SkSLPrecompile.cpp new file mode 100644 index 000000000000..23937660a907 --- /dev/null +++ b/third_party/skia/tools/sksl-precompile/SkSLPrecompile.cpp @@ -0,0 +1,149 @@ +/* + * Copyright 2022 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#define SK_OPTS_NS sksl_precompile_standalone +#include "include/core/SkGraphics.h" +#include "include/core/SkStream.h" +#include "include/private/SkStringView.h" +#include "src/core/SkCpu.h" +#include "src/core/SkOpts.h" +#include "src/opts/SkChecksum_opts.h" +#include "src/opts/SkVM_opts.h" +#include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLDehydrator.h" +#include "src/sksl/SkSLFileOutputStream.h" +#include "src/sksl/SkSLStringStream.h" +#include "src/sksl/SkSLUtil.h" +#include "src/sksl/ir/SkSLUnresolvedFunction.h" +#include "src/sksl/ir/SkSLVarDeclarations.h" +#include "src/utils/SkShaderUtils.h" + +#include +#include +#include +#include +#include + +void SkDebugf(const char format[], ...) { + va_list args; + va_start(args, format); + vfprintf(stderr, format, args); + va_end(args); +} + +namespace SkOpts { + decltype(hash_fn) hash_fn = sksl_precompile_standalone::hash_fn; + decltype(interpret_skvm) interpret_skvm; +} + +enum class ResultCode { + kSuccess = 0, + kCompileError = 1, + kInputError = 2, + kOutputError = 3, +}; + +// Given the path to a file (e.g. 'src/sksl/sksl_gpu.sksl') and the expected prefix and suffix +// (e.g. 'sksl_' and '.sksl'), returns the "base name" of the file (in this case, 'gpu'). +// If no match, returns the empty string. +static std::string base_name(const std::string& fpPath, const char* prefix, const char* suffix) { + std::string result; + const char* end = &*fpPath.end(); + const char* fileName = end; + // back up until we find a slash + while (fileName != fpPath && '/' != *(fileName - 1) && '\\' != *(fileName - 1)) { + --fileName; + } + if (!strncmp(fileName, prefix, strlen(prefix)) && + !strncmp(end - strlen(suffix), suffix, strlen(suffix))) { + result.append(fileName + strlen(prefix), end - fileName - strlen(prefix) - strlen(suffix)); + } + return result; +} + +/** + * Displays a usage banner; used when the command line arguments don't make sense. + */ +static void show_usage() { + printf("usage: sksl-precompile \n"); +} + +/** + * Handle a single input. + */ +ResultCode processCommand(const std::vector& paths) { + if (paths.size() != 2) { + show_usage(); + return ResultCode::kInputError; + } + + const std::string& outputPath = paths[0]; + const std::string& inputPath = paths[1]; + SkSL::ProgramKind kind = SkSL::ProgramKind::kFragment; + + std::ifstream in(inputPath); + std::string text((std::istreambuf_iterator(in)), std::istreambuf_iterator()); + if (in.rdstate()) { + printf("error reading '%s'\n", inputPath.c_str()); + return ResultCode::kInputError; + } + + SkSL::Program::Settings settings; + auto standaloneCaps = SkSL::ShaderCapsFactory::Standalone(); + const SkSL::ShaderCaps* caps = standaloneCaps.get(); + + // This tells the compiler where the rt-flip uniform will live should it be required. For + // testing purposes we don't care where that is, but the compiler will report an error if we + // leave them at their default invalid values, or if the offset overlaps another uniform. + settings.fRTFlipOffset = 16384; + settings.fRTFlipSet = 0; + settings.fRTFlipBinding = 0; + + // Load in the input file as a module. + SkSL::FileOutputStream out(outputPath.c_str()); + SkSL::Compiler compiler(caps); + if (!out.isValid()) { + printf("error writing '%s'\n", outputPath.c_str()); + return ResultCode::kOutputError; + } + SkSL::LoadedModule module = + compiler.loadModule(kind, SkSL::Compiler::MakeModulePath(inputPath.c_str()), + /*base=*/nullptr, /*dehydrate=*/true); + + // Dehydrate the input file into a buffer. + SkSL::Dehydrator dehydrator; + dehydrator.write(*module.fSymbols); + dehydrator.write(module.fElements); + std::string baseName = base_name(inputPath, "", ".sksl"); + SkSL::StringStream buffer; + dehydrator.finish(buffer); + const std::string& data = buffer.str(); + + // Emit the dehydrated data into our output file. + out.printf("static uint8_t SKSL_INCLUDE_%s[] = {", baseName.c_str()); + for (size_t i = 0; i < data.length(); ++i) { + out.printf("%s%d,", dehydrator.prefixAtOffset(i), uint8_t(data[i])); + } + out.printf("};\n"); + out.printf("static constexpr size_t SKSL_INCLUDE_%s_LENGTH = sizeof(SKSL_INCLUDE_%s);\n", + baseName.c_str(), baseName.c_str()); + if (!out.close()) { + printf("error writing '%s'\n", outputPath.c_str()); + return ResultCode::kOutputError; + } + + return ResultCode::kSuccess; +} + +int main(int argc, const char** argv) { + std::vector args; + for (int index=1; index as_SkWStream(SkSL::OutputStream& s) { return std::make_unique(s); } -// Given the path to a file (e.g. src/gpu/effects/GrFooFragmentProcessor.fp) and the expected -// filename prefix and suffix (e.g. "Gr" and ".fp"), returns the "base name" of the -// file (in this case, 'FooFragmentProcessor'). If no match, returns the empty string. -static std::string base_name(const std::string& fpPath, const char* prefix, const char* suffix) { - std::string result; - const char* end = &*fpPath.end(); - const char* fileName = end; - // back up until we find a slash - while (fileName != fpPath && '/' != *(fileName - 1) && '\\' != *(fileName - 1)) { - --fileName; - } - if (!strncmp(fileName, prefix, strlen(prefix)) && - !strncmp(end - strlen(suffix), suffix, strlen(suffix))) { - result.append(fileName + strlen(prefix), end - fileName - strlen(prefix) - strlen(suffix)); - } - return result; -} - static bool consume_suffix(std::string* str, const char suffix[]) { if (!skstd::ends_with(*str, suffix)) { return false; @@ -434,6 +415,11 @@ ResultCode processCommand(const std::vector& args) { [](SkSL::Compiler& compiler, SkSL::Program& program, SkSL::OutputStream& out) { return compiler.toHLSL(program, out); }); + } else if (skstd::ends_with(outputPath, ".wgsl")) { + return compileProgram( + [](SkSL::Compiler& compiler, SkSL::Program& program, SkSL::OutputStream& out) { + return compiler.toWGSL(program, out); + }); } else if (skstd::ends_with(outputPath, ".skvm")) { return compileProgramForSkVM( [&](SkSL::Compiler&, SkSL::Program& program, SkSL::OutputStream& out) { @@ -523,34 +509,6 @@ ResultCode processCommand(const std::vector& args) { out.writeString(SkShaderUtils::PrettyPrint(callbacks.fOutput)); return true; }); - } else if (skstd::ends_with(outputPath, ".dehydrated.sksl")) { - SkSL::FileOutputStream out(outputPath.c_str()); - SkSL::Compiler compiler(caps); - if (!out.isValid()) { - printf("error writing '%s'\n", outputPath.c_str()); - return ResultCode::kOutputError; - } - SkSL::LoadedModule module = - compiler.loadModule(kind, SkSL::Compiler::MakeModulePath(inputPath.c_str()), - /*base=*/nullptr, /*dehydrate=*/true); - SkSL::Dehydrator dehydrator; - dehydrator.write(*module.fSymbols); - dehydrator.write(module.fElements); - std::string baseName = base_name(inputPath, "", ".sksl"); - SkSL::StringStream buffer; - dehydrator.finish(buffer); - const std::string& data = buffer.str(); - out.printf("static uint8_t SKSL_INCLUDE_%s[] = {", baseName.c_str()); - for (size_t i = 0; i < data.length(); ++i) { - out.printf("%s%d,", dehydrator.prefixAtOffset(i), uint8_t(data[i])); - } - out.printf("};\n"); - out.printf("static constexpr size_t SKSL_INCLUDE_%s_LENGTH = sizeof(SKSL_INCLUDE_%s);\n", - baseName.c_str(), baseName.c_str()); - if (!out.close()) { - printf("error writing '%s'\n", outputPath.c_str()); - return ResultCode::kOutputError; - } } else if (skstd::ends_with(outputPath, ".html")) { settings.fAllowTraceVarInSkVMDebugTrace = false; @@ -583,8 +541,8 @@ ResultCode processCommand(const std::vector& args) { return true; }); } else { - printf("expected output path to end with one of: .glsl, .html, .metal, .hlsl, .spirv, " - ".asm.frag, .skvm, .stage, .asm.vert, .dehydrated.sksl (got '%s')\n", + printf("expected output path to end with one of: .glsl, .html, .metal, .hlsl, .wgsl, " + ".spirv, .asm.vert, .asm.frag, .skvm, .stage (got '%s')\n", outputPath.c_str()); return ResultCode::kConfigurationError; } diff --git a/third_party/skia/tools/skui/BUILD.bazel b/third_party/skia/tools/skui/BUILD.bazel index d4e94049b694..8e1c5fb67eba 100644 --- a/third_party/skia/tools/skui/BUILD.bazel +++ b/third_party/skia/tools/skui/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "InputState_hdr", hdrs = ["InputState.h"], diff --git a/third_party/skia/tools/timer/BUILD.bazel b/third_party/skia/tools/timer/BUILD.bazel index a09e1596fa41..7ae0f6fa9dd3 100644 --- a/third_party/skia/tools/timer/BUILD.bazel +++ b/third_party/skia/tools/timer/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "TimeUtils_hdr", hdrs = ["TimeUtils.h"], diff --git a/third_party/skia/tools/trace/BUILD.bazel b/third_party/skia/tools/trace/BUILD.bazel index 158ac270cb04..1b3f95c31897 100644 --- a/third_party/skia/tools/trace/BUILD.bazel +++ b/third_party/skia/tools/trace/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "ChromeTracingTracer_hdr", hdrs = ["ChromeTracingTracer.h"], diff --git a/third_party/skia/tools/valgrind.supp b/third_party/skia/tools/valgrind.supp index 57f7586ecfb3..508090943742 100644 --- a/third_party/skia/tools/valgrind.supp +++ b/third_party/skia/tools/valgrind.supp @@ -104,8 +104,23 @@ nv_driver_bug_5 Memcheck:Leak fun:malloc + ... obj:*/libGLX_nvidia.so* } +{ + nv_driver_bug_6 + Memcheck:Leak + fun:calloc + ... + obj:*/libGLX_nvidia.so* +} +{ + nv_driver_bug_7 + Memcheck:Leak + fun:realloc + ... + obj:*/libGLX_nvidia.so* +} { #Fixed by FontConfig 2.9.0 #http://cgit.freedesktop.org/fontconfig/commit/?id=1c475d5c8cb265ac939d6b9e097666e300162511 diff --git a/third_party/skia/tools/viewer/BUILD.bazel b/third_party/skia/tools/viewer/BUILD.bazel index f1703240c519..6c0fb130ae21 100644 --- a/third_party/skia/tools/viewer/BUILD.bazel +++ b/third_party/skia/tools/viewer/BUILD.bazel @@ -1,5 +1,7 @@ load("//bazel:macros.bzl", "generated_cc_atom") +licenses(["notice"]) + generated_cc_atom( name = "AnimTimer_hdr", hdrs = ["AnimTimer.h"], @@ -206,27 +208,6 @@ generated_cc_atom( ], ) -generated_cc_atom( - name = "SkRiveSlide_hdr", - hdrs = ["SkRiveSlide.h"], - visibility = ["//:__subpackages__"], - deps = [ - ":Slide_hdr", - "//experimental/skrive/include:SkRive_hdr", - ], -) - -generated_cc_atom( - name = "SkRiveSlide_src", - srcs = ["SkRiveSlide.cpp"], - visibility = ["//:__subpackages__"], - deps = [ - ":SkRiveSlide_hdr", - "//include/core:SkCanvas_hdr", - "//include/core:SkStream_hdr", - ], -) - generated_cc_atom( name = "SkSLSlide_hdr", hdrs = ["SkSLSlide.h"], @@ -247,6 +228,7 @@ generated_cc_atom( ":Viewer_hdr", "//include/core:SkCanvas_hdr", "//include/core:SkFont_hdr", + "//include/core:SkStream_hdr", "//include/effects:SkGradientShader_hdr", "//include/effects:SkPerlinNoiseShader_hdr", "//include/sksl:SkSLDebugTrace_hdr", @@ -435,7 +417,6 @@ generated_cc_atom( ":ParticlesSlide_hdr", ":SKPSlide_hdr", ":SampleSlide_hdr", - ":SkRiveSlide_hdr", ":SkSLDebuggerSlide_hdr", ":SkSLSlide_hdr", ":SkottieSlide_hdr", @@ -467,11 +448,11 @@ generated_cc_atom( "//src/core:SkTaskGroup_hdr", "//src/core:SkTextBlobPriv_hdr", "//src/core:SkVMBlitter_hdr", - "//src/gpu:GrDirectContextPriv_hdr", - "//src/gpu:GrGpu_hdr", - "//src/gpu:GrPersistentCacheUtils_hdr", - "//src/gpu/ops:AtlasPathRenderer_hdr", - "//src/gpu/ops:TessellationPathRenderer_hdr", + "//src/gpu/ganesh:GrDirectContextPriv_hdr", + "//src/gpu/ganesh:GrGpu_hdr", + "//src/gpu/ganesh:GrPersistentCacheUtils_hdr", + "//src/gpu/ganesh/ops:AtlasPathRenderer_hdr", + "//src/gpu/ganesh/ops:TessellationPathRenderer_hdr", "//src/image:SkImage_Base_hdr", "//src/sksl:SkSLCompiler_hdr", "//src/utils:SkJSONWriter_hdr", @@ -483,6 +464,7 @@ generated_cc_atom( "//tools/flags:CommandLineFlags_hdr", "//tools/flags:CommonFlags_hdr", "//tools/trace:EventTracingPriv_hdr", + "@spirv_tools", ], ) @@ -505,5 +487,6 @@ generated_cc_atom( ":SkSLDebuggerSlide_hdr", ":Viewer_hdr", "//include/core:SkCanvas_hdr", + "//include/core:SkStream_hdr", ], ) diff --git a/third_party/skia/tools/viewer/SKPSlide.cpp b/third_party/skia/tools/viewer/SKPSlide.cpp index 87e3fc6778dd..1bad11e696dd 100644 --- a/third_party/skia/tools/viewer/SKPSlide.cpp +++ b/third_party/skia/tools/viewer/SKPSlide.cpp @@ -46,7 +46,7 @@ void SKPSlide::load(SkScalar, SkScalar) { fStream->rewind(); fPic = SkPicture::MakeFromStream(fStream.get()); if (!fPic) { - SkDebugf("Could parse SkPicture from skp stream for slide %s.\n", fName.c_str()); + SkDebugf("Could not parse SkPicture from skp stream for slide %s.\n", fName.c_str()); return; } fCullRect = fPic->cullRect().roundOut(); diff --git a/third_party/skia/tools/viewer/SkRiveSlide.cpp b/third_party/skia/tools/viewer/SkRiveSlide.cpp deleted file mode 100644 index b6bc98029977..000000000000 --- a/third_party/skia/tools/viewer/SkRiveSlide.cpp +++ /dev/null @@ -1,68 +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 "tools/viewer/SkRiveSlide.h" - -#include "include/core/SkCanvas.h" -#include "include/core/SkStream.h" - -#if defined(SK_ENABLE_SKRIVE) - -SkRiveSlide::SkRiveSlide(const SkString& name, const SkString& path) - : fPath(path) { - fName = name; -} - -SkRiveSlide::~SkRiveSlide() = default; - -void SkRiveSlide::load(SkScalar w, SkScalar h) { - fWinSize = {w , h}; - fRive = skrive::SkRive::Builder().make(SkFILEStream::Make(fPath.c_str())); - fRiveBounds = SkRect::MakeEmpty(); - - if (fRive) { - SkDebugf("Loaded Rive animation: %zu artboards\n", fRive->artboards().size()); - for (const auto& ab : fRive->artboards()) { - const auto& pos = ab->getTranslation(); - const auto& size = ab->getSize(); - - fRiveBounds.join(SkRect::MakeXYWH(pos.x, pos.y, size.x, size.y)); - } - } else { - SkDebugf("Failed to load Rive animation: %s\n", fPath.c_str()); - } -} - -void SkRiveSlide::unload() { - fRive.reset(); -} - -void SkRiveSlide::resize(SkScalar w, SkScalar h) { - fWinSize = {w , h}; -} - -SkISize SkRiveSlide::getDimensions() const { - // We always scale to fill the window. - return fWinSize.toCeil(); -} - -void SkRiveSlide::draw(SkCanvas* canvas) { - if (!fRive) { - return; - } - - // Scale the Rive artboards to fill our window. - SkAutoCanvasRestore acr(canvas, true); - canvas->concat(SkMatrix::RectToRect(fRiveBounds, SkRect::MakeSize(fWinSize), - SkMatrix::kCenter_ScaleToFit)); - - for (const auto& ab : fRive->artboards()) { - ab->render(canvas); - } -} - -#endif // defined(SK_ENABLE_SKRIVE) diff --git a/third_party/skia/tools/viewer/SkRiveSlide.h b/third_party/skia/tools/viewer/SkRiveSlide.h deleted file mode 100644 index 820902e76e10..000000000000 --- a/third_party/skia/tools/viewer/SkRiveSlide.h +++ /dev/null @@ -1,41 +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. - */ - -#ifndef SkRiveSlide_DEFINED -#define SkRiveSlide_DEFINED - -#include "tools/viewer/Slide.h" - -#if defined(SK_ENABLE_SKRIVE) - -#include "experimental/skrive/include/SkRive.h" - -class SkRiveSlide final : public Slide { -public: - SkRiveSlide(const SkString& name, const SkString& path); - ~SkRiveSlide() override; - -private: - void load(SkScalar winWidth, SkScalar winHeight) override; - void unload() override; - void resize(SkScalar, SkScalar) override; - - SkISize getDimensions() const override; - - void draw(SkCanvas*) override; - - const SkString fPath; - - sk_sp fRive; - SkRect fRiveBounds; - SkSize fWinSize; - - using INHERITED = Slide; -}; - -#endif // defined(SK_ENABLE_SKRIVE) -#endif // SkRiveSlide_DEFINED diff --git a/third_party/skia/tools/viewer/SkSLDebuggerSlide.cpp b/third_party/skia/tools/viewer/SkSLDebuggerSlide.cpp index 1979b451d1b5..4b2183b88f4d 100644 --- a/third_party/skia/tools/viewer/SkSLDebuggerSlide.cpp +++ b/third_party/skia/tools/viewer/SkSLDebuggerSlide.cpp @@ -8,6 +8,7 @@ #include "tools/viewer/SkSLDebuggerSlide.h" #include "include/core/SkCanvas.h" +#include "include/core/SkStream.h" #include "tools/viewer/Viewer.h" #include diff --git a/third_party/skia/tools/viewer/SkSLSlide.cpp b/third_party/skia/tools/viewer/SkSLSlide.cpp index b5d8828873f4..6eeedad88488 100644 --- a/third_party/skia/tools/viewer/SkSLSlide.cpp +++ b/third_party/skia/tools/viewer/SkSLSlide.cpp @@ -9,6 +9,7 @@ #include "include/core/SkCanvas.h" #include "include/core/SkFont.h" +#include "include/core/SkStream.h" #include "include/effects/SkGradientShader.h" #include "include/effects/SkPerlinNoiseShader.h" #include "include/sksl/SkSLDebugTrace.h" diff --git a/third_party/skia/tools/viewer/Viewer.cpp b/third_party/skia/tools/viewer/Viewer.cpp index 5ad6d921d885..e03420f10fff 100644 --- a/third_party/skia/tools/viewer/Viewer.cpp +++ b/third_party/skia/tools/viewer/Viewer.cpp @@ -31,9 +31,9 @@ #include "src/core/SkTaskGroup.h" #include "src/core/SkTextBlobPriv.h" #include "src/core/SkVMBlitter.h" -#include "src/gpu/GrDirectContextPriv.h" -#include "src/gpu/GrGpu.h" -#include "src/gpu/GrPersistentCacheUtils.h" +#include "src/gpu/ganesh/GrDirectContextPriv.h" +#include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrPersistentCacheUtils.h" #include "src/image/SkImage_Base.h" #include "src/sksl/SkSLCompiler.h" #include "src/utils/SkJSONWriter.h" @@ -58,8 +58,8 @@ #include "tools/viewer/SvgSlide.h" #if SK_GPU_V1 -#include "src/gpu/ops/AtlasPathRenderer.h" -#include "src/gpu/ops/TessellationPathRenderer.h" +#include "src/gpu/ganesh/ops/AtlasPathRenderer.h" +#include "src/gpu/ganesh/ops/TessellationPathRenderer.h" #endif #include @@ -75,9 +75,6 @@ #if defined(SK_ENABLE_SKOTTIE) #include "tools/viewer/SkottieSlide.h" #endif -#if defined(SK_ENABLE_SKRIVE) - #include "tools/viewer/SkRiveSlide.h" -#endif class CapturingShaderErrorHandler : public GrContextOptions::ShaderErrorHandler { public: @@ -171,7 +168,6 @@ static DEFINE_string(jxls , PATH_PREFIX "jxls" , "Directory to read jxls fro static DEFINE_string(skps , PATH_PREFIX "skps" , "Directory to read skps from."); static DEFINE_string(mskps , PATH_PREFIX "mskps" , "Directory to read mskps from."); static DEFINE_string(lotties, PATH_PREFIX "lotties", "Directory to read (Bodymovin) jsons from."); -static DEFINE_string(rives , PATH_PREFIX "rives" , "Directory to read Rive (Flare) files from."); #undef PATH_PREFIX static DEFINE_string(svgs, "", "Directory to read SVGs from, or a single SVG file."); @@ -781,12 +777,6 @@ void Viewer::initSlides() { return sk_make_sp(name, path);} }, #endif - #if defined(SK_ENABLE_SKRIVE) - { ".flr", "skrive-dir", FLAGS_rives, - [](const SkString& name, const SkString& path) -> sk_sp { - return sk_make_sp(name, path);} - }, - #endif #if defined(SK_ENABLE_SVG) { ".svg", "svg-dir", FLAGS_svgs, [](const SkString& name, const SkString& path) -> sk_sp { @@ -1389,6 +1379,10 @@ class OveridePaintFilterCanvas : public SkPaintFilterCanvas { sk_sp cache; sk_sp blob = glyphRunList.makeBlob(); this->filterTextBlob(paint, blob.get(), &cache); + if (!cache) { + this->SkPaintFilterCanvas::onDrawGlyphRunList(glyphRunList, paint); + return; + } SkGlyphRunBuilder builder; const SkGlyphRunList& filtered = builder.blobToGlyphRunList(*cache, glyphRunList.origin()); this->SkPaintFilterCanvas::onDrawGlyphRunList(filtered, paint); @@ -2342,12 +2336,12 @@ void Viewer::drawImGui() { ImGui::Checkbox("Override Size", &fFontOverrides.fSize); if (fFontOverrides.fSize) { ImGui::DragFloat2("TextRange", fFontOverrides.fSizeRange, - 0.001f, -10.0f, 300.0f, "%.6f", 2.0f); + 0.001f, -10.0f, 300.0f, "%.6f", ImGuiSliderFlags_Logarithmic); float textSize = fFont.getSize(); if (ImGui::DragFloat("TextSize", &textSize, 0.001f, fFontOverrides.fSizeRange[0], fFontOverrides.fSizeRange[1], - "%.6f", 2.0f)) + "%.6f", ImGuiSliderFlags_Logarithmic)) { fFont.setSize(textSize); uiParamsChanged = true; @@ -2569,6 +2563,7 @@ void Viewer::drawImGui() { // If we are changing the compile mode, we want to reset the cache and redo // everything. + static bool sDoDeferredView = false; if (doDump || newOptLevel != fOptLevel) { sksl = doDump || (newOptLevel == kShaderOptLevel_Source); fOptLevel = (ShaderOptLevel)newOptLevel; @@ -2595,11 +2590,12 @@ void Viewer::drawImGui() { sksl ? GrContextOptions::ShaderCacheStrategy::kSkSL : GrContextOptions::ShaderCacheStrategy::kBackendSource; displayParamsChanged = true; - doView = true; fDeferredActions.push_back([=]() { // Reset the cache. fPersistentCache.reset(); + sDoDeferredView = true; + // Dump the cache once we have drawn a frame with it. if (doDump) { fDeferredActions.push_back([this]() { @@ -2636,10 +2632,11 @@ void Viewer::drawImGui() { } ImGui::EndChild(); - if (doView) { + if (doView || sDoDeferredView) { fPersistentCache.reset(); ctx->priv().getGpu()->resetShaderCacheForTesting(); gLoadPending = true; + sDoDeferredView = false; } // We don't support updating SPIRV shaders. We could re-assemble them (with edits),